commit b6820848b84314dce77d57c5e8a488b507205cf0 Author: gkachele Date: Sat Jan 17 11:40:17 2026 +0100 Modularización de GKACHELE SaaS diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..04aadcf --- /dev/null +++ b/.dockerignore @@ -0,0 +1,4 @@ +README.md +.git +.gitignore +*.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bd1a1e0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,16 @@ +# Docker +.env +*.log + +# WordPress +wp-content/uploads/ +wp-content/upgrade/ +wp-content/backup-db/ +wp-content/advanced-cache.php +wp-content/wp-cache-config.php +wp-content/cache/ +wp-content/cache/supercache/ + +# OS +.DS_Store +Thumbs.db diff --git a/INSTALAR_CRON.md b/INSTALAR_CRON.md new file mode 100644 index 0000000..3a99c97 --- /dev/null +++ b/INSTALAR_CRON.md @@ -0,0 +1,68 @@ +# 🔄 Instalar Cron para Actualizar Raspberry Automáticamente + +## En tu máquina local (Windows/WSL): + +### 1. Hacer ejecutable el script +```bash +chmod +x update-raspberry.sh +chmod +x cron-update-raspberry.sh +``` + +### 2. Instalar cron (si no está) +```bash +# En WSL +sudo apt-get install cron + +# Iniciar servicio +sudo service cron start +``` + +### 3. Agregar al crontab +```bash +# Editar crontab +crontab -e + +# Agregar esta línea (actualiza cada hora): +0 * * * * /ruta/completa/a/cron-update-raspberry.sh + +# O cada 5 minutos (para pruebas): +*/5 * * * * /ruta/completa/a/cron-update-raspberry.sh +``` + +### 4. Verificar +```bash +# Ver crontab +crontab -l + +# Ver logs +tail -f /tmp/raspberry-update.log +``` + +## En Raspberry Pi (alternativa): + +### Crear script en Raspberry +```bash +# En Raspberry +cd /home/pi +mkdir -p scripts +nano scripts/update-from-git.sh +``` + +### Contenido del script: +```bash +#!/bin/bash +cd /home/pi/gkachele-saas +# Aquí puedes hacer git pull si usas git, o scp desde tu máquina +sudo systemctl restart gkachele-saas +``` + +### Agregar a crontab en Raspberry: +```bash +crontab -e + +# Actualizar cada hora +0 * * * * /home/pi/scripts/update-from-git.sh +``` + +--- +**Nota:** Ajusta las rutas según tu configuración. diff --git a/README.md b/README.md new file mode 100644 index 0000000..5244b98 --- /dev/null +++ b/README.md @@ -0,0 +1,98 @@ +# WordPress con Docker Compose + +Ejemplo básico de WordPress usando Docker Compose con MySQL y phpMyAdmin. + +## 🚀 Inicio Rápido + +### Requisitos +- Docker instalado +- Docker Compose instalado + +### Instalación + +1. **Clonar o descargar este proyecto** + +2. **Iniciar los contenedores:** +```bash +docker-compose up -d +``` + +3. **Acceder a WordPress:** + - Abre tu navegador en: http://localhost:8080 + - Sigue el asistente de instalación de WordPress + +4. **Acceder a phpMyAdmin (opcional):** + - Abre tu navegador en: http://localhost:8081 + - Usuario: `root` + - Contraseña: `root_password` + +## 📝 Configuración + +### Cambiar puertos +Si los puertos 8080 o 8081 están ocupados, edita `docker-compose.yml`: +```yaml +ports: + - "TU_PUERTO:80" # Cambia TU_PUERTO por el que prefieras +``` + +### Cambiar credenciales +Edita las variables de entorno en `docker-compose.yml`: +- `MYSQL_PASSWORD`: Contraseña del usuario de WordPress +- `MYSQL_ROOT_PASSWORD`: Contraseña del root de MySQL +- `WORDPRESS_DB_PASSWORD`: Debe coincidir con `MYSQL_PASSWORD` + +## 🛠️ Comandos Útiles + +### Ver logs +```bash +docker-compose logs -f +``` + +### Detener contenedores +```bash +docker-compose down +``` + +### Detener y eliminar volúmenes (⚠️ borra los datos) +```bash +docker-compose down -v +``` + +### Reiniciar un servicio específico +```bash +docker-compose restart wordpress +``` + +### Ver contenedores en ejecución +```bash +docker-compose ps +``` + +## 📁 Estructura + +``` +. +├── docker-compose.yml # Configuración de servicios +├── wp-content/ # Temas y plugins personalizados (se crea automáticamente) +└── README.md # Este archivo +``` + +## 🔒 Seguridad + +⚠️ **IMPORTANTE**: Este es un ejemplo básico para desarrollo. Para producción: +- Cambia todas las contraseñas por defecto +- Usa variables de entorno seguras +- Configura SSL/TLS +- Implementa un firewall +- Usa secrets de Docker o un gestor de secretos + +## 🐳 Servicios Incluidos + +- **WordPress**: Aplicación principal (puerto 8080) +- **MySQL 8.0**: Base de datos (puerto interno) +- **phpMyAdmin**: Administrador de base de datos (puerto 8081) + +## 📚 Recursos + +- [Documentación de WordPress](https://wordpress.org/support/) +- [Documentación de Docker Compose](https://docs.docker.com/compose/) diff --git a/agent.md b/agent.md new file mode 100644 index 0000000..cf35e31 --- /dev/null +++ b/agent.md @@ -0,0 +1,40 @@ +# GKACHELE™ Agent - Configuración del Asistente + +Este archivo define las reglas y el contexto para el asistente de IA (Antigravity) trabajando en el ecosistema GKACHELE™. + +## 🎯 Misión del Proyecto +GKACHELE™ es un sistema SaaS modular para la creación y gestión de sitios web, enfocado en la flexibilidad, el control de versiones mediante Gitea y el despliegue optimizado en Raspberry Pi/Linux. + +## ⚠️ REGLAS CRÍTICAS (NUNCA ROMPER) + +### 1. Prohibición de Referencias Externas +- **NUNCA** mencionar "WordPress", "wordpress", "WP" o "wp-" en el código fuente. +- Este es un sistema **propio e independiente**. +- **Reemplazos**: + - "WordPress" -> "GKACHELE™" o "Sistema Modular". + - "wp-admin" -> "/dashboard". + - "wp_options" -> "tabla settings". + +### 2. Metodología GKACHELE™ +- **Prioridad 1: Funcionalidad**. Hacer que el código funcione y sea verificado en producción (Raspberry). +- **Prioridad 2: Limpieza**. Refactorizar y optimizar SOLO después de que la funcionalidad sea confirmada. +- **Flujo**: `Funcionalidad -> Probar -> Funciona -> Limpieza -> Documentar`. + +## 🛠️ Skills & Infraestructura + +### Gestión de Repositorios (Gitea) +- Uso de `gitea_connector.py` para automatizar la creación de organizaciones y repositorios por cliente. +- Workflows de auto-commit y auto-deploy tras cambios en el customizer. + +### Infraestructura (Raspberry Pi & Docker) +- Despliegue mediante `docker-compose`. +- Scripts de sincronización: `sync-to-raspberry.sh`, `update-code-pi.sh`. +- Dominios gestionados via DuckDNS. + +## 📝 Guías de Trabajo para el Agente +- **Análisis antes de actuar**: Siempre revisar la carpeta `memoria/` antes de realizar cambios estructurales. +- **Verificación de reglas**: Antes de cada commit, realizar un grep para asegurar que no se colaron referencias prohibidas. +- **Persistencia**: Actualizar `task.md` y la memoria del proyecto tras completar hitos importantes. + +--- +**© 2025 GKACHELE™. Todos los derechos reservados.** diff --git a/backup_completo.sh b/backup_completo.sh new file mode 100644 index 0000000..b17f1db --- /dev/null +++ b/backup_completo.sh @@ -0,0 +1,105 @@ +#!/bin/bash +# GKACHELE™ - Script de Backup Completo +# © 2025 GKACHELE™. Todos los derechos reservados. +# Uso: bash backup_completo.sh + +HASH="gkachele-login-customizer-20250114-v3-$(date +%Y%m%d-%H%M%S)" +BACKUP_DIR="backups/backup-${HASH}" +RASPBERRY_HOST="192.168.1.134" +RASPBERRY_PORT="2222" +RASPBERRY_USER="pi" +RASPBERRY_PASS="Gdk1983gdk45@" +RASPBERRY_PATH="/home/pi/gkachele-saas" + +echo "==========================================" +echo "🔄 GKACHELE™ - BACKUP COMPLETO" +echo "==========================================" +echo "Hash del Proyecto: gkachele-login-customizer-20250114-v3" +echo "Hash del Backup: ${HASH}" +echo "Fecha: $(date)" +echo "" + +# Crear directorio de backup +mkdir -p "${BACKUP_DIR}" +mkdir -p "${BACKUP_DIR}/local" +mkdir -p "${BACKUP_DIR}/raspberry" + +echo "📦 1. Respaldando código local..." +cp -r demo "${BACKUP_DIR}/local/" 2>/dev/null || echo "⚠️ No se encontró demo/" +cp -r *.md "${BACKUP_DIR}/local/" 2>/dev/null || echo "⚠️ No se encontraron .md" +cp -r *.sh "${BACKUP_DIR}/local/" 2>/dev/null || echo "⚠️ No se encontraron .sh" +cp -r *.py "${BACKUP_DIR}/local/" 2>/dev/null || echo "⚠️ No se encontraron .py" + +echo "📦 2. Respaldando desde Raspberry..." +echo " Conectando a Raspberry..." + +# Backup de código +sshpass -p "${RASPBERRY_PASS}" scp -P ${RASPBERRY_PORT} -o StrictHostKeyChecking=no -r \ + ${RASPBERRY_USER}@${RASPBERRY_HOST}:${RASPBERRY_PATH}/* \ + "${BACKUP_DIR}/raspberry/" 2>/dev/null || echo "⚠️ Error copiando código" + +# Backup de base de datos +sshpass -p "${RASPBERRY_PASS}" scp -P ${RASPBERRY_PORT} -o StrictHostKeyChecking=no \ + ${RASPBERRY_USER}@${RASPBERRY_HOST}:${RASPBERRY_PATH}/database/main.db \ + "${BACKUP_DIR}/raspberry/main.db" 2>/dev/null || echo "⚠️ Error copiando DB" + +# Backup de configuración +sshpass -p "${RASPBERRY_PASS}" ssh -p ${RASPBERRY_PORT} -o StrictHostKeyChecking=no \ + ${RASPBERRY_USER}@${RASPBERRY_HOST} \ + "sudo cat /etc/systemd/system/gkachele-saas.service" > "${BACKUP_DIR}/raspberry/gkachele-saas.service" 2>/dev/null || echo "⚠️ Error copiando service" + +sshpass -p "${RASPBERRY_PASS}" ssh -p ${RASPBERRY_PORT} -o StrictHostKeyChecking=no \ + ${RASPBERRY_USER}@${RASPBERRY_HOST} \ + "sudo cat /etc/nginx/sites-available/gk-saas.komkida.duckdns.org.conf" > "${BACKUP_DIR}/raspberry/nginx.conf" 2>/dev/null || echo "⚠️ Error copiando nginx" + +echo "" +echo "📝 3. Creando archivo de información..." +cat > "${BACKUP_DIR}/INFO.txt" << EOF +GKACHELE™ - Backup Completo +Hash del Proyecto: gkachele-login-customizer-20250114-v3 +Hash del Backup: ${HASH} +Fecha: $(date) +========================================== + +ESTADO DEL SISTEMA (Hash: gkachele-login-customizer-20250114-v3): +- ✅ Login redirige correctamente a customizer +- ✅ Sistema modular de templates (_gkachele/) +- ✅ Menús dinámicos (header, footer, sidebar) +- ✅ Widgets dinámicos +- ✅ Base de datos multi-tenant (main.db) +- ✅ Sistema de roles basado en DB +- ✅ Dashboard cliente (/dashboard) +- ✅ Customizer (/customizer/{site_id}) +- ✅ Dashboard admin (/admin) +- ✅ Servicio systemd: gkachele-saas +- ✅ Nginx reverse proxy + +ESTRUCTURA DE RUTAS: +- /customizer/{site_id} - Editar antes de publicar (cliente) +- /admin - Panel del cliente (se crea al aprobar) +- /dashboard - Panel principal admin (gestión del sistema) + +ARCHIVOS INCLUIDOS: +- Código local (demo/) +- Código Raspberry (raspberry/) +- Base de datos (raspberry/main.db) +- Configuración systemd (raspberry/gkachele-saas.service) +- Configuración nginx (raspberry/nginx.conf) + +RESTAURACIÓN: +1. Copiar raspberry/* a /home/pi/gkachele-saas/ +2. Restaurar main.db a database/main.db +3. Restaurar gkachele-saas.service a /etc/systemd/system/ +4. Restaurar nginx.conf a /etc/nginx/sites-available/ +5. Reiniciar servicios: sudo systemctl restart gkachele-saas nginx + +© 2025 GKACHELE™. Todos los derechos reservados. +EOF + +echo "✅ Backup completado en: ${BACKUP_DIR}" +echo "" +echo "📊 Resumen:" +du -sh "${BACKUP_DIR}"/* 2>/dev/null | head -5 +echo "" +echo "🎯 Hash del backup: ${HASH}" +echo "==========================================" diff --git a/backups/backup-20260114-085602/INFO.txt b/backups/backup-20260114-085602/INFO.txt new file mode 100644 index 0000000..764f8bf --- /dev/null +++ b/backups/backup-20260114-085602/INFO.txt @@ -0,0 +1,28 @@ +GKACHELE™ - Backup Completo +Hash: 20260114-085602 +Fecha: Wed Jan 14 08:56:08 CET 2026 +========================================== + +ESTADO DEL SISTEMA: +- Sistema modular de templates (_gkachele/) +- Menús dinámicos (header, footer, sidebar) +- Widgets dinámicos +- Base de datos multi-tenant (main.db) +- Servicio systemd: gkachele-saas +- Nginx reverse proxy + +ARCHIVOS INCLUIDOS: +- Código local (demo/) +- Código Raspberry (raspberry/) +- Base de datos (raspberry/main.db) +- Configuración systemd (raspberry/gkachele-saas.service) +- Configuración nginx (raspberry/nginx.conf) + +RESTAURACIÓN: +1. Copiar raspberry/* a /home/pi/gkachele-saas/ +2. Restaurar main.db a database/main.db +3. Restaurar gkachele-saas.service a /etc/systemd/system/ +4. Restaurar nginx.conf a /etc/nginx/sites-available/ +5. Reiniciar servicios: sudo systemctl restart gkachele-saas nginx + +© 2025 GKACHELE™. Todos los derechos reservados. diff --git a/backups/backup-20260114-085602/local/INSTALAR_CRON.md b/backups/backup-20260114-085602/local/INSTALAR_CRON.md new file mode 100644 index 0000000..3a99c97 --- /dev/null +++ b/backups/backup-20260114-085602/local/INSTALAR_CRON.md @@ -0,0 +1,68 @@ +# 🔄 Instalar Cron para Actualizar Raspberry Automáticamente + +## En tu máquina local (Windows/WSL): + +### 1. Hacer ejecutable el script +```bash +chmod +x update-raspberry.sh +chmod +x cron-update-raspberry.sh +``` + +### 2. Instalar cron (si no está) +```bash +# En WSL +sudo apt-get install cron + +# Iniciar servicio +sudo service cron start +``` + +### 3. Agregar al crontab +```bash +# Editar crontab +crontab -e + +# Agregar esta línea (actualiza cada hora): +0 * * * * /ruta/completa/a/cron-update-raspberry.sh + +# O cada 5 minutos (para pruebas): +*/5 * * * * /ruta/completa/a/cron-update-raspberry.sh +``` + +### 4. Verificar +```bash +# Ver crontab +crontab -l + +# Ver logs +tail -f /tmp/raspberry-update.log +``` + +## En Raspberry Pi (alternativa): + +### Crear script en Raspberry +```bash +# En Raspberry +cd /home/pi +mkdir -p scripts +nano scripts/update-from-git.sh +``` + +### Contenido del script: +```bash +#!/bin/bash +cd /home/pi/gkachele-saas +# Aquí puedes hacer git pull si usas git, o scp desde tu máquina +sudo systemctl restart gkachele-saas +``` + +### Agregar a crontab en Raspberry: +```bash +crontab -e + +# Actualizar cada hora +0 * * * * /home/pi/scripts/update-from-git.sh +``` + +--- +**Nota:** Ajusta las rutas según tu configuración. diff --git a/backups/backup-20260114-085602/local/MEMORIA_PROYECTO_COMPLETA.md b/backups/backup-20260114-085602/local/MEMORIA_PROYECTO_COMPLETA.md new file mode 100644 index 0000000..2c28c73 --- /dev/null +++ b/backups/backup-20260114-085602/local/MEMORIA_PROYECTO_COMPLETA.md @@ -0,0 +1,436 @@ +# 🎯 MEMORIA COMPLETA DEL PROYECTO - SaaS PageBuilder + +**Fecha:** 13 Enero 2025 +**Hash:** `gkachele-template-system-20250114-v1` +**Última actualización:** 14 Enero 2025 - 08:50 + +## 🎯 OBJETIVOS ACTUALES (Memorizado) + +1. **Template y Menús Profesionales:** + - Adaptar al menos un template completo + - Sistema de menús dinámicos (header, footer, sidebar) + - Múltiples ubicaciones de menú + - Estructura modular (header.php, footer.php, sidebar.php) + - Sistema de widgets/áreas + +2. **Mejorar Landing:** + - Diseño más profesional + - Mejor UX/UI + - Optimización de conversión + +3. **Automatización con Gitea:** + - Integración Gitea para repos por cliente + - Automatización de despliegues + - Workflows automáticos + - Integración con n8n (futuro - para competir en Argentina) + +## ⚠️ REQUISITOS PRINCIPALES (MEMORIZAR) + +1. **Sincronización con Hash:** Raspberry y Local deben estar sincronizados con hash +2. **Modularizado:** Código debe estar modularizado +3. **PRIMERO copiar funcionalidad similar:** NO inventar, copiar funcionalidad similar primero en Raspberry, luego ver qué sirve y qué no +4. **Iterar:** Probar → Ver qué sirve → Eliminar lo que no sirve → Mejorar + +**Ver:** `MEMORIA_SINCRONIZACION.md` para detalles + +## 📍 CONEXIÓN RASPBERRY PI + +**Credenciales SSH:** +- **Host:** `komkida.duckdns.org` o `192.168.1.134` +- **Puerto:** `2222` +- **Usuario:** `pi` +- **Password:** `Gdk1983gdk45@` + +**Comandos de conexión (CON sshpass):** +```bash +# Desde WSL - CONECTAR +wsl bash -c "sshpass -p 'Gdk1983gdk45@' ssh -p 2222 -o StrictHostKeyChecking=no pi@192.168.1.134" + +# COPIAR ARCHIVOS +wsl bash -c "sshpass -p 'Gdk1983gdk45@' scp -P 2222 -o StrictHostKeyChecking=no /mnt/c/word/demo/app.py pi@192.168.1.134:/home/pi/gkachele-saas/app.py" + +# EJECUTAR COMANDO REMOTO +wsl bash -c "sshpass -p 'Gdk1983gdk45@' ssh -p 2222 -o StrictHostKeyChecking=no pi@192.168.1.134 'comando aqui'" +``` + +## 🏗️ ARQUITECTURA + +### Stack Tecnológico +- **Backend:** Flask (Python 3) - NO Docker, directo +- **Base de datos:** SQLite (main.db + cliente-X.db) +- **Web Server:** Nginx (reverse proxy) +- **Dominio:** `gk-saas.komkida.duckdns.org` +- **Puerto Flask:** 5001 +- **Puerto Nginx:** 80 + +### Estructura en Raspberry Pi +``` +/home/pi/gkachele-saas/ +├── app.py # Flask backend principal +├── database/ +│ ├── main.db # DB principal (users, sites, requests, media) +│ └── sites/ # DBs por cliente +│ ├── cliente-1.db +│ └── cliente-2.db +├── sites/ # Sitios compilados/publicados +├── themes/ # Templates (como WordPress) +│ ├── gimnasio-claro/ +│ ├── restaurante-moderno/ +│ └── restaurante-elegante/ +├── static/ # CSS, JS, imágenes +├── templates/ # HTML templates +│ ├── landing_real.html # Landing GKACHELE™ +│ ├── register.html +│ ├── login.html +│ ├── dashboard.html # Dashboard CLIENTE +│ ├── customizer.html # Personalizador WordPress-like +│ ├── admin.html # Dashboard PRINCIPAL (tuyo) +│ └── client_admin.html # Admin del cliente +└── uploads/ # Media subida por clientes +``` + +### Estructura en Local (Desarrollo) +``` +C:\word\ +├── demo/ # Código del SaaS +│ ├── app.py +│ ├── database/ +│ ├── themes/ +│ ├── templates/ +│ └── static/ +├── update-raspberry.sh # Script para actualizar Raspberry +└── MEMORIA_PROYECTO_COMPLETA.md # Este archivo +``` + +## 🔄 FLUJO COMPLETO + +``` +1. Cliente → Landing (gk-saas.komkida.duckdns.org) +2. Cliente elige plan + rubro → /register?plan=base&rubro=restaurante +3. Cliente se registra → POST /register + ├── Crea usuario en main.db (tabla users) + ├── Crea sitio automático (tema según rubro) en main.db (tabla sites) + └── Guarda sesión → Redirige a /dashboard (equivalente a wp-admin) +4. Dashboard → Cliente ve SUS sitios +5. Customizer → /customizer/{site_id} (sidebar + preview) +6. Cliente envía → POST /dashboard/submit/{site_id} +7. Admin → /admin (solo user_id=1) aprueba +8. Publicado → /site/{slug} +``` + +## 🗄️ BASES DE DATOS + +### main.db (SQLite) - TODO EN UNA SOLA BASE DE DATOS (Multi-tenant como WordPress) + +**✅ Sistema Multi-tenant:** Todos los clientes en una sola base de datos, cada cliente solo ve SUS datos a través de `/dashboard` (equivalente a wp-admin) + +**Tabla: users** +- id, email (UNIQUE), password (hash), plan, rubro, created_at +- Todos los usuarios/clientes están aquí + +**Tabla: sites** +- id, user_id (FK), slug (UNIQUE), theme, status (draft/pending/published), content_json, created_at +- Todos los sitios, filtrados por user_id (cada cliente solo ve los suyos) + +**Tabla: requests** +- id, site_id (FK), user_id (FK), status (pending/approved/rejected), created_at +- Solicitudes de publicación + +**Tabla: media** +- id, user_id (FK), site_id (FK), filename, filepath, file_type, uploaded_at +- Archivos subidos por clientes, filtrados por user_id + +**Tabla: content** +- id, user_id (FK), site_id (FK), section, data_json, updated_at +- Contenido por sección (futuro uso), filtrado por user_id y site_id + +**Tabla: settings** +- id, user_id (FK), site_id, key, value, created_at, updated_at +- Configuraciones (como wp_options en WordPress), filtrado por user_id y site_id + +**Tabla: menus** +- id, user_id (FK), site_id (FK), location (header/footer/sidebar), title, url, order_index, parent_id, created_at +- Sistema de menús dinámicos por ubicación, filtrado por user_id y site_id + +**Tabla: widgets** +- id, user_id (FK), site_id (FK), area (sidebar/footer/etc), type, title, content, order_index, created_at, updated_at +- Sistema de widgets dinámicos por área, filtrado por user_id y site_id + +## 🎨 TEMPLATES (Sistema WordPress-like) + +### Templates Disponibles +- **gimnasio-claro:** Tema para gimnasios (rojo/negro) +- **restaurante-moderno:** Tema moderno (rojo/naranja) - 2 variantes +- **restaurante-elegante:** Tema elegante (marrón/dorado) + +### Estructura de Template (Sistema Modular GKACHELE™) +``` +themes/ +├── _gkachele/ # Sistema base modular (como WordPress) +│ ├── header.php # Header con menús dinámicos +│ ├── footer.php # Footer con copyright GKACHELE™ +│ └── sidebar.php # Sidebar con widgets dinámicos +├── {nombre}/ # Temas específicos +│ ├── config.json # Configuración (colores, tipografía, secciones) +│ ├── template.html # HTML del template (contenido principal) +│ └── style.css # CSS (opcional) +``` + +**Sistema de Renderizado:** +- `render_gkachele_template()` concatena: `header.php` + `template.html` + `sidebar.php` + `footer.php` +- Menús y widgets se cargan dinámicamente desde la base de datos +- Soporte para múltiples ubicaciones de menú (header, footer, sidebar) +- Widgets por área (sidebar, footer, etc.) + +### Asignación Automática +- **restaurante:** Aleatorio entre `restaurante-moderno` y `restaurante-elegante` +- **gimnasio/gimnasios:** `gimnasio-claro` +- **Otros:** `default` + +## 🔧 CONFIGURACIÓN NGINX + +**Archivo:** `/etc/nginx/sites-available/gk-saas.komkida.duckdns.org.conf` + +```nginx +server { + listen 80; + server_name gk-saas.komkida.duckdns.org; + + location / { + proxy_pass http://localhost:5001; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } +} +``` + +**Comandos:** +```bash +sudo nginx -t # Verificar configuración +sudo systemctl reload nginx # Recargar +tail -f /var/log/nginx/gk-saas-error.log # Ver logs +``` + +## 🔄 SERVICIO SYSTEMD + +**Archivo:** `/etc/systemd/system/gkachele-saas.service` + +```ini +[Unit] +Description=GKACHELE SaaS Flask App +After=network.target + +[Service] +Type=simple +User=pi +WorkingDirectory=/home/pi/gkachele-saas +Environment="PATH=/usr/bin:/usr/local/bin:/home/pi/.local/bin" +ExecStart=/usr/bin/python3 /home/pi/gkachele-saas/app.py +Restart=always +RestartSec=10 + +[Install] +WantedBy=multi-user.target +``` + +**Comandos:** +```bash +sudo systemctl start gkachele-saas # Iniciar +sudo systemctl stop gkachele-saas # Detener +sudo systemctl restart gkachele-saas # Reiniciar +sudo systemctl status gkachele-saas # Estado +journalctl -u gkachele-saas -f # Ver logs +``` + +## 🚀 ACTUALIZAR CÓDIGO EN RASPBERRY + +### Método Correcto (con sshpass desde WSL): +```bash +# 1. Copiar código actualizado +wsl bash -c "sshpass -p 'Gdk1983gdk45@' scp -P 2222 -o StrictHostKeyChecking=no /mnt/c/word/demo/app.py pi@192.168.1.134:/home/pi/gkachele-saas/app.py" + +# 2. Reiniciar app (matar proceso y reiniciar) +wsl bash -c "sshpass -p 'Gdk1983gdk45@' ssh -p 2222 -o StrictHostKeyChecking=no pi@192.168.1.134 'pkill -f \"python3 app.py\" && cd ~/gkachele-saas && nohup python3 app.py > /tmp/app.log 2>&1 &'" +``` + +### Instalar Servicio Systemd (una vez): +```bash +# Copiar servicio +wsl bash -c "sshpass -p 'Gdk1983gdk45@' scp -P 2222 -o StrictHostKeyChecking=no gkachele-saas.service pi@192.168.1.134:/tmp/" + +# Instalar servicio +wsl bash -c "sshpass -p 'Gdk1983gdk45@' ssh -p 2222 -o StrictHostKeyChecking=no pi@192.168.1.134 'sudo mv /tmp/gkachele-saas.service /etc/systemd/system/ && sudo systemctl daemon-reload && sudo systemctl enable gkachele-saas && sudo systemctl start gkachele-saas'" +``` + +### Configurar Cron en Raspberry (actualizar automáticamente): +```bash +# 1. Crear script de actualización +wsl bash -c "sshpass -p 'Gdk1983gdk45@' scp -P 2222 -o StrictHostKeyChecking=no update-app-raspberry.sh pi@192.168.1.134:~/scripts/update-app.sh" + +# 2. Dar permisos +wsl bash -c "sshpass -p 'Gdk1983gdk45@' ssh -p 2222 -o StrictHostKeyChecking=no pi@192.168.1.134 'chmod +x ~/scripts/update-app.sh'" + +# 3. Agregar a crontab (cada hora) - requiere permisos +wsl bash -c "sshpass -p 'Gdk1983gdk45@' ssh -p 2222 -o StrictHostKeyChecking=no pi@192.168.1.134 'echo \"0 * * * * /home/pi/scripts/update-app.sh\" | crontab -'" + +# Verificar cron +wsl bash -c "sshpass -p 'Gdk1983gdk45@' ssh -p 2222 -o StrictHostKeyChecking=no pi@192.168.1.134 'crontab -l'" +``` + +**NOTA:** El cron actualiza cada hora. Para actualizar manualmente el código, usar el método de SCP arriba. + +## 📋 RUTAS PRINCIPALES + +### Públicas +- `GET /` - Landing page +- `GET /register` - Formulario registro +- `POST /register` - Crear usuario (JSON) +- `GET /login` - Formulario login +- `POST /login` - Iniciar sesión (JSON) +- `GET /site/{slug}` - Sitio público publicado + +### Cliente (requiere sesión) +- `GET /dashboard` - Dashboard del cliente +- `GET /customizer/{site_id}` - Personalizador +- `POST /api/customizer/save` - Guardar cambios +- `GET /api/customizer/preview-frame/{site_id}` - Preview iframe +- `POST /dashboard/submit/{site_id}` - Enviar para aprobación +- `GET /dashboard/admin` - Admin del cliente (media, config) + +### APIs de Menús y Widgets +- `GET /api/menus/` - Obtener menús del sitio +- `POST /api/menus/` - Guardar/actualizar menús +- `GET /api/widgets/` - Obtener widgets del sitio +- `POST /api/widgets/` - Guardar/actualizar widgets + +### Admin Principal (solo user_id=1) +- `GET /admin` - Dashboard principal +- `POST /admin/approve/{request_id}` - Aprobar solicitud +- `POST /admin/reject/{request_id}` - Rechazar solicitud + +## 🔐 SEGURIDAD + +### Sesiones +- Flask `session` con `secret_key` +- Cookie `SESSION_COOKIE_SAMESITE = 'Lax'` +- Sesión se guarda después de login exitoso + +### Acceso +- **Clientes:** Solo ven SUS sitios (filtrado por `user_id` en sesión) +- **Admin:** Solo `user_id = 1` puede acceder a `/admin` +- **Passwords:** Hash con `werkzeug.security.generate_password_hash` + +## 🎯 ESTADO ACTUAL + +### ✅ Funcionando +- Landing page (GKACHELE™ original) +- Registro de clientes → Redirige a `/login` (sin sesión automática) +- Login de clientes → Redirige a `/dashboard` +- Dashboard del cliente +- Customizer básico (sidebar + preview) +- Templates: gimnasio-claro, restaurante-moderno, restaurante-elegante +- **Sistema modular de templates (_gkachele/header.php, footer.php, sidebar.php)** +- **Sistema de menús dinámicos (header, footer, sidebar)** +- **Sistema de widgets dinámicos (sidebar, footer, etc.)** +- **Función `render_gkachele_template()` para renderizado completo** +- **APIs para gestionar menús y widgets** +- Base de datos SQLite multi-tenant (main.db con tablas menus y widgets) +- Nginx reverse proxy +- Systemd service +- DuckDNS para dominio remoto +- Scripts de gestión: `ver_usuarios.py`, `limpiar_db.py` + +### ⚠️ Pendiente +- Drag & drop de secciones (SortableJS) +- Edición inline (contenteditable) +- Gitea para repos por cliente + automatización +- Dashboard principal para aprobar solicitudes +- Plugins sencillos (colores, tipografía avanzada) +- SSL/HTTPS (Let's Encrypt) + +### 🎯 PRÓXIMOS OBJETIVOS (PRIORITARIOS) +1. **✅ Template y Menús Profesionales (COMPLETADO):** + - ✅ Sistema modular (_gkachele/header.php, footer.php, sidebar.php) + - ✅ Sistema de menús dinámicos (header, footer, sidebar) + - ✅ Múltiples ubicaciones de menú + - ✅ Sistema de widgets/áreas + - ⚠️ **PENDIENTE:** UI completa para gestionar menús desde customizer (actualmente solo placeholder) + +2. **Mejorar Landing:** + - Diseño más profesional + - Mejor UX/UI + - Optimización de conversión + +3. **Automatización con Gitea:** + - Integración Gitea para repos por cliente + - Automatización de despliegues + - Workflows automáticos + - Integración con n8n (futuro) + +## 📦 DEPENDENCIAS + +**Python:** +- Flask +- Werkzeug (password hashing) +- SQLite3 (built-in) + +**Instalación:** +```bash +pip3 install Flask Werkzeug +``` + +## 🌐 DUCKDNS + +**Dominios:** +- **komkida.duckdns.org:** Token `9c5cff88-b6d7-4704-9b10-4a69afdff797` +- **gkachele.duckdns.org:** Token `578331b3-ad7b-4154-835d-e496465257b0` + +**Actualizar IP:** +```bash +python3 update-komkida-duckdns.py +``` + +## 🚀 MIGRACIÓN A VPS + +**Pasos:** +1. Copiar `/home/pi/gkachele-saas/` completo +2. Instalar Python3, Nginx en VPS +3. Copiar configuración Nginx +4. Copiar servicio systemd +5. Cambiar dominio (DuckDNS o dominio real) +6. Configurar SSL (Let's Encrypt) + +**Ventajas:** +- ✅ Mismo código (sin cambios) +- ✅ Misma estructura +- ✅ Más recursos +- ✅ Mejor rendimiento + +## 📝 NOTAS IMPORTANTES + +- **NO usar Docker:** Todo corre directamente (Python + Nginx) +- **NO usar GitHub:** Todo es independiente en Raspberry +- **SQLite es suficiente:** Para SaaS pequeño, no necesita MySQL +- **Raspberry Pi 3:** Recursos limitados, pero suficiente para desarrollo +- **VPS recomendado:** Para producción con muchos clientes + +## 📦 BACKUP Y VERSIONADO + +**Hash Actual:** `gkachele-template-system-20250114-v1` + +**Estado Verificado:** +- ✅ Templates _gkachele en Raspberry: header.php, footer.php, sidebar.php +- ✅ Función render_gkachele_template en app.py +- ✅ Tablas menus y widgets en main.db +- ✅ Servicio gkachele-saas activo +- ✅ Flujo de registro: Registro → Login → Dashboard → Customizer + +**Scripts de Gestión:** +- `ver_usuarios.py` - Ver usuarios y sitios registrados +- `limpiar_db.py` - Limpiar base de datos (con confirmación) +- `verificar_raspberry.sh` - Verificar estado en Raspberry + +--- +**Última actualización:** 14 Enero 2025 - 08:50 diff --git a/backups/backup-20260114-085602/local/MEMORIA_RASPBERRY_SAAS.md b/backups/backup-20260114-085602/local/MEMORIA_RASPBERRY_SAAS.md new file mode 100644 index 0000000..df4934a --- /dev/null +++ b/backups/backup-20260114-085602/local/MEMORIA_RASPBERRY_SAAS.md @@ -0,0 +1,133 @@ +# 🎯 MEMORIA: SaaS en Raspberry Pi 3 - Estado Actual + +**Fecha:** 13 Enero 2025 +**Hash:** `raspberry-pi3-saas-setup-20250113` + +## ✅ LO QUE ESTÁ FUNCIONANDO + +### 1. Flask SaaS en Raspberry Pi +- **Ubicación:** `/home/pi/gkachele-saas/` +- **Puerto:** 5001 +- **Estado:** ✅ Corriendo (2 procesos) +- **Landing:** `landing_real.html` (GKACHELE™ original) +- **Base de datos:** SQLite (`database/main.db`) + +### 2. Nginx Configurado +- **Configuración activa:** `gk-saas.komkida.duckdns.org` +- **Ubicación:** `/etc/nginx/sites-available/gk-saas.komkida.duckdns.org` +- **Proxy:** `localhost:5001` (SIN GitHub) +- **Estado:** ✅ Funcionando + +### 3. Dominio Remoto +- **URL:** `http://gk-saas.komkida.duckdns.org` +- **DuckDNS Token:** `9c5cff88-b6d7-4704-9b10-4a69afdff797` +- **IP Raspberry:** `213.195.104.66` +- **NOTA:** Este dominio NO tiene relación con GitHub + +## 📁 ESTRUCTURA EN RASPBERRY + +``` +/home/pi/gkachele-saas/ +├── app.py # Flask backend +├── database/ +│ ├── main.db # DB principal +│ └── sites/ # DBs por cliente +├── sites/ # Sitios compilados +├── themes/ # Templates +│ ├── gimnasio-claro/ +│ └── restaurante-moderno/ +├── static/ +│ └── style.css # CSS landing real +└── templates/ + ├── landing_real.html # Landing GKACHELE™ + ├── register.html + ├── login.html + ├── dashboard.html + ├── customizer.html + └── admin.html +``` + +## 🔧 CONFIGURACIÓN NGINX + +### Archivo activo: +`/etc/nginx/sites-available/gk-saas.komkida.duckdns.org` + +```nginx +server { + listen 80; + server_name gk-saas.komkida.duckdns.org; + location / { + proxy_pass http://localhost:5001; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } +} +``` + +## 🔐 CREDENCIALES + +### Raspberry Pi +- **Host:** `komkida.duckdns.org` o `192.168.1.134` +- **Puerto SSH:** 2222 +- **Usuario:** `pi` +- **Password:** `Gdk1983gdk45@` + +### DuckDNS +- **komkida.duckdns.org:** Token `9c5cff88-b6d7-4704-9b10-4a69afdff797` +- **gkachele.duckdns.org:** Token `578331b3-ad7b-4154-835d-e496465257b0` + +## 🚀 COMANDOS ÚTILES + +### Actualizar DuckDNS +```bash +python3 -c "import urllib.request; print(urllib.request.urlopen('https://www.duckdns.org/update?domains=komkida&token=9c5cff88-b6d7-4704-9b10-4a69afdff797&ip=').read())" +``` + +### Verificar Flask +```bash +curl http://localhost:5001/ +``` + +### Recargar Nginx +```bash +sudo nginx -t && sudo systemctl reload nginx +``` + +### Ver logs +```bash +tail -f /var/log/nginx/gk-saas-access.log +tail -f /var/log/nginx/gk-saas-error.log +``` + +## ⚠️ IMPORTANTE + +- **NO usar GitHub:** Todo es independiente en Raspberry +- **Dominio principal:** `gk-saas.komkida.duckdns.org` (NO `gkachele.duckdns.org`) +- **Raspberry Pi 3:** Recursos suficientes para SaaS pequeño +- **SQLite:** Base de datos ligera, perfecta para Pi + +## 📝 PRÓXIMOS PASOS + +1. ✅ Instalar Gitea en Raspberry (opcional) +2. ✅ Automatizar DuckDNS (cron cada 5 min) +3. ✅ Crear servicio systemd para Flask +4. ✅ Configurar SSL/HTTPS (Let's Encrypt) + +## 🎯 FLUJO COMPLETO + +``` +Cliente → gk-saas.komkida.duckdns.org + ↓ + Nginx (puerto 80) + ↓ + Flask (puerto 5001) + ↓ + SQLite (database/) + ↓ + Landing/SaaS funcionando +``` + +--- +**Última actualización:** 13 Enero 2025 - 15:58 diff --git a/backups/backup-20260114-085602/local/MEMORIA_SINCRONIZACION.md b/backups/backup-20260114-085602/local/MEMORIA_SINCRONIZACION.md new file mode 100644 index 0000000..ae5f611 --- /dev/null +++ b/backups/backup-20260114-085602/local/MEMORIA_SINCRONIZACION.md @@ -0,0 +1,97 @@ +# 🔄 MEMORIA: Sincronización y Modularización + +**Fecha:** 13 Enero 2025 +**Hash:** `sincronizacion-modular-wordpress-20250113` + +## ✅ REQUISITOS PRINCIPALES + +### 1. Sincronización con Hash +- **Raspberry y Local deben estar sincronizados** +- **Usar hash para verificar versiones** +- **Siempre verificar antes de actualizar** + +### 2. Modularizado +- **Código debe estar modularizado** +- **Fácil de mantener y actualizar** +- **Separar responsabilidades** + +### 3. PRIMERO: Copiar WordPress Similar en Raspberry +- **NO empezar desde cero** +- **Copiar funcionalidad similar a WordPress primero** +- **Luego ver qué sirve y qué no** +- **Iterar sobre lo que funciona** + +## 🎯 PLAN DE TRABAJO + +### FASE 1: Copiar WordPress Similar (AHORA) +1. Implementar registro simple como WordPress +2. Implementar login simple +3. Implementar dashboard básico +4. Implementar customizer básico +5. **TODO en Raspberry primero** + +### FASE 2: Verificar qué Sirve +1. Probar cada funcionalidad +2. Identificar qué funciona bien +3. Identificar qué no sirve +4. Eliminar lo que no sirve + +### FASE 3: Modularizar +1. Separar en módulos +2. Crear hash de versión +3. Sincronizar Raspberry ↔ Local + +## 🔄 SISTEMA DE HASH + +**Cada versión debe tener:** +- Hash único (ej: `v1.0.0-abc123`) +- Fecha de actualización +- Lista de cambios + +**Verificar sincronización:** +```bash +# En local +md5sum demo/app.py > local.hash + +# En Raspberry +md5sum /home/pi/gkachele-saas/app.py > raspberry.hash + +# Comparar +diff local.hash raspberry.hash +``` + +## 📋 PRÓXIMOS PASOS + +1. ✅ Memorizar requisitos +2. [ ] Copiar WordPress similar en Raspberry +3. [ ] Probar funcionalidades +4. [ ] Eliminar lo que no sirve +5. [ ] Modularizar código +6. [ ] Implementar sistema de hash + +## 🖥️ INDEPENDENCIA DEL PC + +**✅ SÍ, funciona aunque apagues el PC:** + +- **Flask:** Corre como servicio systemd en la Raspberry (auto-inicia al arrancar) +- **Nginx:** Corre como servicio systemd en la Raspberry (auto-inicia al arrancar) +- **Todo está en la Raspberry:** No depende del PC para funcionar + +**El PC solo se usa para:** +- Editar código localmente +- Copiar archivos a la Raspberry (SSH/SCP) +- **NO es necesario que esté encendido para que la página funcione** + +**Servicios configurados para auto-iniciar:** +- `gkachele-saas.service` → `enabled` (inicia automáticamente) +- `nginx.service` → `enabled` (inicia automáticamente) + +**Verificar:** +```bash +# En Raspberry +systemctl is-enabled gkachele-saas # Debe decir "enabled" +systemctl is-enabled nginx # Debe decir "enabled" +``` + +--- +**IMPORTANTE:** Primero copiar WordPress similar, luego iterar. No inventar desde cero. diff --git a/backups/backup-20260114-085602/local/README.md b/backups/backup-20260114-085602/local/README.md new file mode 100644 index 0000000..5244b98 --- /dev/null +++ b/backups/backup-20260114-085602/local/README.md @@ -0,0 +1,98 @@ +# WordPress con Docker Compose + +Ejemplo básico de WordPress usando Docker Compose con MySQL y phpMyAdmin. + +## 🚀 Inicio Rápido + +### Requisitos +- Docker instalado +- Docker Compose instalado + +### Instalación + +1. **Clonar o descargar este proyecto** + +2. **Iniciar los contenedores:** +```bash +docker-compose up -d +``` + +3. **Acceder a WordPress:** + - Abre tu navegador en: http://localhost:8080 + - Sigue el asistente de instalación de WordPress + +4. **Acceder a phpMyAdmin (opcional):** + - Abre tu navegador en: http://localhost:8081 + - Usuario: `root` + - Contraseña: `root_password` + +## 📝 Configuración + +### Cambiar puertos +Si los puertos 8080 o 8081 están ocupados, edita `docker-compose.yml`: +```yaml +ports: + - "TU_PUERTO:80" # Cambia TU_PUERTO por el que prefieras +``` + +### Cambiar credenciales +Edita las variables de entorno en `docker-compose.yml`: +- `MYSQL_PASSWORD`: Contraseña del usuario de WordPress +- `MYSQL_ROOT_PASSWORD`: Contraseña del root de MySQL +- `WORDPRESS_DB_PASSWORD`: Debe coincidir con `MYSQL_PASSWORD` + +## 🛠️ Comandos Útiles + +### Ver logs +```bash +docker-compose logs -f +``` + +### Detener contenedores +```bash +docker-compose down +``` + +### Detener y eliminar volúmenes (⚠️ borra los datos) +```bash +docker-compose down -v +``` + +### Reiniciar un servicio específico +```bash +docker-compose restart wordpress +``` + +### Ver contenedores en ejecución +```bash +docker-compose ps +``` + +## 📁 Estructura + +``` +. +├── docker-compose.yml # Configuración de servicios +├── wp-content/ # Temas y plugins personalizados (se crea automáticamente) +└── README.md # Este archivo +``` + +## 🔒 Seguridad + +⚠️ **IMPORTANTE**: Este es un ejemplo básico para desarrollo. Para producción: +- Cambia todas las contraseñas por defecto +- Usa variables de entorno seguras +- Configura SSL/TLS +- Implementa un firewall +- Usa secrets de Docker o un gestor de secretos + +## 🐳 Servicios Incluidos + +- **WordPress**: Aplicación principal (puerto 8080) +- **MySQL 8.0**: Base de datos (puerto interno) +- **phpMyAdmin**: Administrador de base de datos (puerto 8081) + +## 📚 Recursos + +- [Documentación de WordPress](https://wordpress.org/support/) +- [Documentación de Docker Compose](https://docs.docker.com/compose/) diff --git a/backups/backup-20260114-085602/local/backup_completo.sh b/backups/backup-20260114-085602/local/backup_completo.sh new file mode 100644 index 0000000..52dde01 --- /dev/null +++ b/backups/backup-20260114-085602/local/backup_completo.sh @@ -0,0 +1,92 @@ +#!/bin/bash +# GKACHELE™ - Script de Backup Completo +# © 2025 GKACHELE™. Todos los derechos reservados. +# Uso: bash backup_completo.sh + +HASH=$(date +%Y%m%d-%H%M%S) +BACKUP_DIR="backups/backup-${HASH}" +RASPBERRY_HOST="192.168.1.134" +RASPBERRY_PORT="2222" +RASPBERRY_USER="pi" +RASPBERRY_PASS="Gdk1983gdk45@" +RASPBERRY_PATH="/home/pi/gkachele-saas" + +echo "==========================================" +echo "🔄 GKACHELE™ - BACKUP COMPLETO" +echo "==========================================" +echo "Hash: ${HASH}" +echo "" + +# Crear directorio de backup +mkdir -p "${BACKUP_DIR}" +mkdir -p "${BACKUP_DIR}/local" +mkdir -p "${BACKUP_DIR}/raspberry" + +echo "📦 1. Respaldando código local..." +cp -r demo "${BACKUP_DIR}/local/" 2>/dev/null || echo "⚠️ No se encontró demo/" +cp -r *.md "${BACKUP_DIR}/local/" 2>/dev/null || echo "⚠️ No se encontraron .md" +cp -r *.sh "${BACKUP_DIR}/local/" 2>/dev/null || echo "⚠️ No se encontraron .sh" +cp -r *.py "${BACKUP_DIR}/local/" 2>/dev/null || echo "⚠️ No se encontraron .py" + +echo "📦 2. Respaldando desde Raspberry..." +echo " Conectando a Raspberry..." + +# Backup de código +sshpass -p "${RASPBERRY_PASS}" scp -P ${RASPBERRY_PORT} -o StrictHostKeyChecking=no -r \ + ${RASPBERRY_USER}@${RASPBERRY_HOST}:${RASPBERRY_PATH}/* \ + "${BACKUP_DIR}/raspberry/" 2>/dev/null || echo "⚠️ Error copiando código" + +# Backup de base de datos +sshpass -p "${RASPBERRY_PASS}" scp -P ${RASPBERRY_PORT} -o StrictHostKeyChecking=no \ + ${RASPBERRY_USER}@${RASPBERRY_HOST}:${RASPBERRY_PATH}/database/main.db \ + "${BACKUP_DIR}/raspberry/main.db" 2>/dev/null || echo "⚠️ Error copiando DB" + +# Backup de configuración +sshpass -p "${RASPBERRY_PASS}" ssh -p ${RASPBERRY_PORT} -o StrictHostKeyChecking=no \ + ${RASPBERRY_USER}@${RASPBERRY_HOST} \ + "sudo cat /etc/systemd/system/gkachele-saas.service" > "${BACKUP_DIR}/raspberry/gkachele-saas.service" 2>/dev/null || echo "⚠️ Error copiando service" + +sshpass -p "${RASPBERRY_PASS}" ssh -p ${RASPBERRY_PORT} -o StrictHostKeyChecking=no \ + ${RASPBERRY_USER}@${RASPBERRY_HOST} \ + "sudo cat /etc/nginx/sites-available/gk-saas.komkida.duckdns.org.conf" > "${BACKUP_DIR}/raspberry/nginx.conf" 2>/dev/null || echo "⚠️ Error copiando nginx" + +echo "" +echo "📝 3. Creando archivo de información..." +cat > "${BACKUP_DIR}/INFO.txt" << EOF +GKACHELE™ - Backup Completo +Hash: ${HASH} +Fecha: $(date) +========================================== + +ESTADO DEL SISTEMA: +- Sistema modular de templates (_gkachele/) +- Menús dinámicos (header, footer, sidebar) +- Widgets dinámicos +- Base de datos multi-tenant (main.db) +- Servicio systemd: gkachele-saas +- Nginx reverse proxy + +ARCHIVOS INCLUIDOS: +- Código local (demo/) +- Código Raspberry (raspberry/) +- Base de datos (raspberry/main.db) +- Configuración systemd (raspberry/gkachele-saas.service) +- Configuración nginx (raspberry/nginx.conf) + +RESTAURACIÓN: +1. Copiar raspberry/* a /home/pi/gkachele-saas/ +2. Restaurar main.db a database/main.db +3. Restaurar gkachele-saas.service a /etc/systemd/system/ +4. Restaurar nginx.conf a /etc/nginx/sites-available/ +5. Reiniciar servicios: sudo systemctl restart gkachele-saas nginx + +© 2025 GKACHELE™. Todos los derechos reservados. +EOF + +echo "✅ Backup completado en: ${BACKUP_DIR}" +echo "" +echo "📊 Resumen:" +du -sh "${BACKUP_DIR}"/* 2>/dev/null | head -5 +echo "" +echo "🎯 Hash del backup: ${HASH}" +echo "==========================================" diff --git a/backups/backup-20260114-085602/local/demo/COMO_USAR.md b/backups/backup-20260114-085602/local/demo/COMO_USAR.md new file mode 100644 index 0000000..cb4c94f --- /dev/null +++ b/backups/backup-20260114-085602/local/demo/COMO_USAR.md @@ -0,0 +1,74 @@ +# 🎯 Cómo Usar el Demo + +## ⚠️ IMPORTANTE: Python en WSL + +Tu proyecto está en WSL, así que necesitas ejecutar desde ahí. + +## 🚀 Opción 1: Desde WSL (Recomendado) + +```bash +# En WSL +cd /mnt/c/word/demo +chmod +x start.sh +./start.sh +``` + +O directamente: +```bash +cd /mnt/c/word/demo +python3 app.py +``` + +## 🚀 Opción 2: Copiar a WSL + +```bash +# En WSL +cp -r /mnt/c/word/demo ~/demo-saas +cd ~/demo-saas +python3 app.py +``` + +## 📋 Pasos para Probar + +1. **Abrir navegador**: http://localhost:5001 + +2. **Registrarse**: + - Email: test@test.com + - Password: test123 + - Plan: Base + - Rubro: Gimnasio + +3. **Crear sitio**: + - Nombre: Mi Gimnasio + - Slug: mi-gimnasio + - Título: Bienvenido + - Descripción: Tu gimnasio de confianza + +4. **Personalizar** (Customizer): + - Cambia colores + - Cambia texto + - Preview se actualiza en tiempo real + - Guarda cambios + +5. **Enviar para aprobación** + +6. **Admin** (necesitas ser user_id = 1): + - Ve a `/admin` + - Aprueba el sitio + +7. **Ver publicado**: `/site/mi-gimnasio` + +## 🔧 Si el puerto 5001 no funciona + +Cambia en `app.py` línea 400: +```python +port = int(os.environ.get('PORT', 8000)) # Cambia 5001 por 8000 +``` + +## ✅ Verificar que funciona + +```bash +# En WSL +curl http://localhost:5001 +# Debe mostrar HTML de la landing +``` diff --git a/backups/backup-20260114-085602/local/demo/EJECUTAR_AHORA.md b/backups/backup-20260114-085602/local/demo/EJECUTAR_AHORA.md new file mode 100644 index 0000000..32b4bb7 --- /dev/null +++ b/backups/backup-20260114-085602/local/demo/EJECUTAR_AHORA.md @@ -0,0 +1,57 @@ +# ✅ DEMO FUNCIONANDO - EJECUTAR AHORA + +## 🚀 Comando Simple + +**Abre WSL y ejecuta:** + +```bash +cd /mnt/c/word/demo +python3 app.py +``` + +## 📍 Luego abre en tu navegador: + +``` +http://localhost:5001 +``` + +## ✅ Verificación + +El test ya pasó: +- ✅ App importada correctamente +- ✅ Flask funcionando +- ✅ Templates encontrados +- ✅ Base de datos inicializada + +## 🎯 Flujo de Prueba + +1. **Landing** → http://localhost:5001 +2. **Registrarse** → Click "Registrarse" + - Email: test@test.com + - Password: test123 +3. **Crear sitio** → Click "Crear Sitio" + - Nombre: Mi Gimnasio + - Slug: mi-gimnasio +4. **Customizer** → Se abre automáticamente + - Cambia colores, texto + - Preview se actualiza en tiempo real +5. **Enviar** → Click "Enviar para Aprobación" +6. **Admin** → http://localhost:5001/admin + - (Necesitas ser user_id = 1, el primer usuario registrado) +7. **Ver publicado** → http://localhost:5001/site/mi-gimnasio + +## 🔧 Si el puerto 5001 está ocupado + +Edita `app.py` línea 399: +```python +port = int(os.environ.get('PORT', 8000)) # Cambia a 8000 +``` + +## ✨ Características Funcionando + +- ✅ Multi-tenant (DB por cliente) +- ✅ Customizer (sidebar + preview) +- ✅ Actualización en tiempo real +- ✅ Sistema de solicitudes +- ✅ Admin panel +- ✅ Sitios públicos diff --git a/backups/backup-20260114-085602/local/demo/INICIO_WINDOWS.md b/backups/backup-20260114-085602/local/demo/INICIO_WINDOWS.md new file mode 100644 index 0000000..1701bd9 --- /dev/null +++ b/backups/backup-20260114-085602/local/demo/INICIO_WINDOWS.md @@ -0,0 +1,69 @@ +# 🚀 Iniciar Demo en Windows + +## Opción 1: Usar Python desde WSL + +Si tienes Python en WSL (que es donde tienes tu proyecto): + +```bash +# En WSL +cd ~/mi-landing/pagebuilder-saas-prod +# O copia la carpeta demo a WSL +cd /mnt/c/word/demo +python3 app.py +``` + +## Opción 2: Usar Python de Windows + +1. **Verificar Python instalado:** +```powershell +py --version +# o +python --version +``` + +2. **Instalar dependencias:** +```powershell +cd demo +py -m pip install Flask Werkzeug +``` + +3. **Ejecutar:** +```powershell +py app.py +``` + +## Opción 3: Usar el script start.bat + +Doble click en `start.bat` (instala dependencias y ejecuta) + +## 🔧 Si no funciona + +### Verificar puerto +```powershell +netstat -ano | findstr :5001 +``` + +### Cambiar puerto +Edita `app.py` línea 400, cambia: +```python +port = int(os.environ.get('PORT', 5001)) +``` +Por: +```python +port = int(os.environ.get('PORT', 8000)) +``` + +### Ver errores +Ejecuta directamente: +```powershell +cd demo +py app.py +``` + +Y verás los errores en la consola. + +## 📍 URLs + +- Landing: http://localhost:5001 +- Admin: http://localhost:5001/admin +- Dashboard: http://localhost:5001/dashboard (requiere login) diff --git a/backups/backup-20260114-085602/local/demo/INSTRUCCIONES.md b/backups/backup-20260114-085602/local/demo/INSTRUCCIONES.md new file mode 100644 index 0000000..43f87c5 --- /dev/null +++ b/backups/backup-20260114-085602/local/demo/INSTRUCCIONES.md @@ -0,0 +1,90 @@ +# 🚀 Demo Funcional - Instrucciones + +## ✅ Lo que tienes + +1. **Backend Flask completo** con: + - Multi-tenant (DB por cliente) + - Customizer (sidebar + preview) + - Sistema de solicitudes + - Admin panel + +2. **Flujo completo**: + - Registro → Dashboard → Crear sitio → Customizer → Enviar → Admin aprueba → Publicado + +## 🎯 Cómo probarlo + +### 1. Instalar dependencias +```bash +cd demo +pip install Flask Werkzeug +``` + +### 2. Ejecutar +```bash +python app.py +``` + +### 3. Abrir navegador +``` +http://localhost:5000 +``` + +## 📋 Pasos para probar + +1. **Registrarse** (`/register`) + - Email: test@test.com + - Password: test123 + - Plan: Base + - Rubro: Gimnasio + +2. **Crear sitio** (`/dashboard/create`) + - Nombre: Mi Gimnasio + - Slug: mi-gimnasio + - Título: Bienvenido + - Descripción: Tu gimnasio de confianza + +3. **Personalizar** (`/customizer/{site_id}`) + - Cambia colores, texto, tipografía + - Preview se actualiza en tiempo real + - Guarda cambios + +4. **Enviar para aprobación** + - Click en "Enviar para Aprobación" + - Status cambia a "pending" + +5. **Admin** (`/admin`) + - Registra otro usuario (será user_id = 2) + - O modifica la DB para que el primer usuario sea admin (user_id = 1) + - Ve solicitudes pendientes + - Aprueba sitio + +6. **Ver sitio publicado** (`/site/{slug}`) + - Una vez aprobado, el sitio está público + +## 🔧 Para hacer admin + +En `app.py` línea 200, cambia: +```python +if 'user_id' not in session or session['user_id'] != 1: +``` +Por: +```python +if 'user_id' not in session: +``` +Así cualquier usuario puede ser admin (solo para demo). + +## ✨ Características del Demo + +- ✅ Multi-tenant: Cada cliente tiene su DB +- ✅ Customizer: Sidebar izquierdo + Preview derecha +- ✅ Actualización en tiempo real +- ✅ Sistema de solicitudes +- ✅ Admin panel +- ✅ Sitios públicos + +## 🐛 Si no funciona + +1. Verifica que Flask esté instalado: `pip list | findstr Flask` +2. Verifica puerto 5000 libre: `netstat -ano | findstr :5000` +3. Revisa logs en consola +4. Asegúrate de estar en la carpeta `demo/` diff --git a/backups/backup-20260114-085602/local/demo/LEEME_PRIMERO.txt b/backups/backup-20260114-085602/local/demo/LEEME_PRIMERO.txt new file mode 100644 index 0000000..2e5536f --- /dev/null +++ b/backups/backup-20260114-085602/local/demo/LEEME_PRIMERO.txt @@ -0,0 +1,47 @@ +═══════════════════════════════════════════════════════════ + ✅ DEMO FUNCIONANDO - VERSIÓN SIMPLE +═══════════════════════════════════════════════════════════ + +🚀 EJECUTAR: + +Desde WSL: + cd /mnt/c/word/demo + python3 app_simple.py + +Luego abre en navegador: + http://localhost:5001 + +═══════════════════════════════════════════════════════════ + +✨ CARACTERÍSTICAS: + +✅ Landing page +✅ Registro/Login +✅ Dashboard cliente +✅ Crear sitio +✅ Customizer (sidebar + preview en tiempo real) +✅ Enviar para aprobación +✅ Admin panel +✅ Sitios públicos + +═══════════════════════════════════════════════════════════ + +📋 FLUJO: + +1. Registrarse → /register +2. Crear sitio → /create +3. Personalizar → /customizer/{id} +4. Enviar → Click "Enviar" +5. Admin → /admin (aprobar) +6. Ver → /site/{slug} + +═══════════════════════════════════════════════════════════ + +🔧 SI NO FUNCIONA: + +1. Verifica Python: python3 --version +2. Instala Flask: pip3 install Flask Werkzeug +3. Cambia puerto en app_simple.py línea final: + port=8000 (en lugar de 5001) + +═══════════════════════════════════════════════════════════ diff --git a/backups/backup-20260114-085602/local/demo/README.md b/backups/backup-20260114-085602/local/demo/README.md new file mode 100644 index 0000000..9679af6 --- /dev/null +++ b/backups/backup-20260114-085602/local/demo/README.md @@ -0,0 +1,38 @@ +# 🚀 Demo SaaS PageBuilder + +## Inicio Rápido + +```bash +cd demo +pip install -r requirements.txt +python app.py +``` + +Abre: http://localhost:5000 + +## Flujo Demo + +1. **Registrarse** → `/register` +2. **Crear sitio** → `/dashboard/create` +3. **Personalizar** → `/customizer/{site_id}` (sidebar + preview) +4. **Enviar** → Cliente envía para aprobación +5. **Admin** → `/admin` (aprobar sitios) +6. **Publicado** → `/site/{slug}` + +## Credenciales Admin + +- User ID: 1 (primer usuario registrado) +- Accede a `/admin` con user_id = 1 + +## Estructura + +``` +demo/ +├── app.py # Backend Flask +├── database/ # SQLite DBs +│ ├── main.db # DB principal +│ └── sites/ # DB por cliente +├── sites/ # Sitios compilados +├── themes/ # Templates +└── templates/ # HTML templates +``` diff --git a/backups/backup-20260114-085602/local/demo/__pycache__/app.cpython-312.pyc b/backups/backup-20260114-085602/local/demo/__pycache__/app.cpython-312.pyc new file mode 100644 index 0000000..81ad735 Binary files /dev/null and b/backups/backup-20260114-085602/local/demo/__pycache__/app.cpython-312.pyc differ diff --git a/backups/backup-20260114-085602/local/demo/__pycache__/app_simple.cpython-312.pyc b/backups/backup-20260114-085602/local/demo/__pycache__/app_simple.cpython-312.pyc new file mode 100644 index 0000000..458dd46 Binary files /dev/null and b/backups/backup-20260114-085602/local/demo/__pycache__/app_simple.cpython-312.pyc differ diff --git a/backups/backup-20260114-085602/local/demo/app.py b/backups/backup-20260114-085602/local/demo/app.py new file mode 100644 index 0000000..673bd6d --- /dev/null +++ b/backups/backup-20260114-085602/local/demo/app.py @@ -0,0 +1,1038 @@ +""" +GKACHELE™ SaaS PageBuilder - Sistema Profesional +© 2025 GKACHELE™. Todos los derechos reservados. +Desarrollado desde noviembre 2025 por GKACHELE +Código propiedad de GKACHELE © 2025 - Prohibida su reproducción sin autorización +""" + +import os +import json +import sqlite3 +import secrets +from datetime import datetime +from flask import Flask, render_template, request, jsonify, session, redirect, url_for, send_from_directory +from werkzeug.security import generate_password_hash, check_password_hash + +app = Flask(__name__, template_folder='templates', static_folder='static') +app.secret_key = 'demo-secret-key-2025' +app.config['SESSION_COOKIE_SAMESITE'] = 'Lax' + +# Manejador de errores global - siempre devolver JSON +@app.errorhandler(500) +def handle_500(e): + print(f"❌ Error 500: {e}") + import traceback + traceback.print_exc() + # Asegurar que siempre devuelva JSON + response = jsonify({'success': False, 'error': 'Error interno del servidor'}) + response.status_code = 500 + return response + +@app.errorhandler(404) +def handle_404(e): + response = jsonify({'success': False, 'error': 'No encontrado'}) + response.status_code = 404 + return response + +@app.errorhandler(403) +def handle_403(e): + response = jsonify({'success': False, 'error': 'No autorizado'}) + response.status_code = 403 + return response + +# Manejador para excepciones no capturadas - FORZAR JSON +@app.errorhandler(Exception) +def handle_exception(e): + print(f"❌❌❌ EXCEPCIÓN NO CAPTURADA: {e}") + import traceback + traceback.print_exc() + # SIEMPRE devolver JSON, nunca HTML + response = jsonify({'success': False, 'error': f'Error: {str(e)}'}) + response.status_code = 500 + response.headers['Content-Type'] = 'application/json' + return response + +# Forzar JSON en TODAS las rutas /register, /login, /api/* +@app.before_request +def before_request(): + # Si es POST a /register o /login, forzar JSON + if request.method == 'POST' and (request.path.startswith('/register') or + request.path.startswith('/login') or + request.path.startswith('/api/')): + # Asegurar que acepta JSON + if not request.is_json and request.content_type and 'application/json' in request.content_type: + try: + request.get_json(force=True) + except: + pass + +# Directorios +BASE_DIR = os.path.dirname(__file__) +DATABASE_DIR = os.path.join(BASE_DIR, 'database') +SITES_DIR = os.path.join(BASE_DIR, 'sites') +THEMES_DIR = os.path.join(BASE_DIR, 'themes') +STATIC_DIR = os.path.join(BASE_DIR, 'static') +UPLOADS_DIR = os.path.join(BASE_DIR, 'uploads') + +# Crear directorios +# NOTA: Ya no se crean bases de datos separadas (cliente-X.db) +# TODO está en main.db (sistema multi-tenant) +for d in [DATABASE_DIR, SITES_DIR, THEMES_DIR, UPLOADS_DIR]: + os.makedirs(d, exist_ok=True) + +# DB principal +MAIN_DB = os.path.join(DATABASE_DIR, 'main.db') + +def init_db(): + """Inicializar base de datos principal - TODO EN UNA SOLA DB (sistema multi-tenant)""" + try: + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Usuarios (todos los clientes en una sola tabla) + c.execute('''CREATE TABLE IF NOT EXISTS users ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + email TEXT UNIQUE NOT NULL, + password TEXT NOT NULL, + plan TEXT DEFAULT 'base', + rubro TEXT DEFAULT 'gimnasio', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP + )''') + + # Sitios (todos los sitios, filtrados por user_id) + c.execute('''CREATE TABLE IF NOT EXISTS sites ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + slug TEXT UNIQUE NOT NULL, + theme TEXT DEFAULT 'default', + status TEXT DEFAULT 'draft', + content_json TEXT, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id) + )''') + + # Solicitudes + c.execute('''CREATE TABLE IF NOT EXISTS requests ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + site_id INTEGER NOT NULL, + user_id INTEGER NOT NULL, + status TEXT DEFAULT 'pending', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (site_id) REFERENCES sites(id), + FOREIGN KEY (user_id) REFERENCES users(id) + )''') + + # Media (fotos, imágenes del cliente) + c.execute('''CREATE TABLE IF NOT EXISTS media ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER NOT NULL, + filename TEXT NOT NULL, + filepath TEXT NOT NULL, + file_type TEXT DEFAULT 'image', + uploaded_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id) + )''') + + # Content (contenido por sección, filtrado por user_id y site_id) + c.execute('''CREATE TABLE IF NOT EXISTS content ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER NOT NULL, + section TEXT NOT NULL, + data_json TEXT, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id) + )''') + + # Settings (configuraciones por usuario/sitio) + c.execute('''CREATE TABLE IF NOT EXISTS settings ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER, + key TEXT NOT NULL, + value TEXT, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id), + UNIQUE(user_id, site_id, key) + )''') + + # Menus (sistema de menús dinámicos) + c.execute('''CREATE TABLE IF NOT EXISTS menus ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER NOT NULL, + location TEXT NOT NULL, + title TEXT NOT NULL, + url TEXT NOT NULL, + order_index INTEGER DEFAULT 0, + parent_id INTEGER, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id), + FOREIGN KEY (parent_id) REFERENCES menus(id) + )''') + + # Widgets (áreas de widgets dinámicos) + c.execute('''CREATE TABLE IF NOT EXISTS widgets ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER NOT NULL, + area TEXT NOT NULL, + type TEXT NOT NULL, + title TEXT, + content TEXT, + order_index INTEGER DEFAULT 0, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id) + )''') + + conn.commit() + conn.close() + print("✅ Base de datos inicializada (multi-tenant - todos los clientes en main.db)") + except Exception as e: + print(f"❌ Error inicializando DB: {e}") + import traceback + traceback.print_exc() + +init_db() + +# ============================================================================ +# FUNCIONES HELPER - GKACHELE™ Template System +# ============================================================================ + +def get_site_menus(site_id, user_id): + """Obtener menús del sitio organizados por ubicación""" + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('''SELECT location, title, url, order_index, parent_id + FROM menus + WHERE site_id = ? AND user_id = ? + ORDER BY location, order_index''', (site_id, user_id)) + rows = c.fetchall() + conn.close() + + menus = {'header': [], 'footer': [], 'sidebar': []} + for row in rows: + location, title, url, order_index, parent_id = row + menu_item = { + 'title': title, + 'url': url, + 'order': order_index, + 'parent_id': parent_id + } + if location in menus: + menus[location].append(menu_item) + + return menus + +def get_site_widgets(site_id, user_id, area='sidebar'): + """Obtener widgets del sitio por área""" + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('''SELECT type, title, content, order_index + FROM widgets + WHERE site_id = ? AND user_id = ? AND area = ? + ORDER BY order_index''', (site_id, user_id, area)) + rows = c.fetchall() + conn.close() + + widgets = [] + for row in rows: + widget_type, title, content, order_index = row + widgets.append({ + 'type': widget_type, + 'title': title, + 'content': content, + 'order': order_index + }) + + return widgets + +def render_gkachele_template(theme, content, site_id=None, user_id=None): + """Renderizar template usando estructura GKACHELE (header.php, footer.php, sidebar.php)""" + # Obtener menús y widgets si hay site_id + menus = {'header': [], 'footer': [], 'sidebar': []} + widgets = [] + if site_id and user_id: + try: + menus = get_site_menus(site_id, user_id) + widgets = get_site_widgets(site_id, user_id) + except Exception as e: + print(f"⚠️ Error obteniendo menús/widgets: {e}") + + # Cargar template del tema PRIMERO (es el contenido principal) + theme_template = '' + theme_path = os.path.join(THEMES_DIR, theme, 'template.html') + if os.path.exists(theme_path): + with open(theme_path, 'r', encoding='utf-8') as f: + theme_template = f.read() + else: + # Si no existe template del tema, usar template básico + theme_template = ''' +
+

{{ hero_title or 'Bienvenido' }}

+

{{ hero_description or 'Descripción del sitio' }}

+
+ ''' + + # Cargar header, footer, sidebar + header = '' + footer = '' + sidebar = '' + + header_path = os.path.join(THEMES_DIR, '_gkachele', 'header.php') + footer_path = os.path.join(THEMES_DIR, '_gkachele', 'footer.php') + sidebar_path = os.path.join(THEMES_DIR, '_gkachele', 'sidebar.php') + + if os.path.exists(header_path): + with open(header_path, 'r', encoding='utf-8') as f: + header = f.read() + else: + # Header básico si no existe + header = ''' + + + + + {{ site_name or 'GKACHELE Site' }} + + + +
+ +
+
''' + + if os.path.exists(footer_path): + with open(footer_path, 'r', encoding='utf-8') as f: + footer = f.read() + else: + footer = ''' +
+
+

© 2025 GKACHELE™. Todos los derechos reservados.
+ Desarrollado desde noviembre 2025 por GKACHELE
+ Código propiedad de GKACHELE © 2025 - Prohibida su reproducción sin autorización

+
+ +''' + + if os.path.exists(sidebar_path): + with open(sidebar_path, 'r', encoding='utf-8') as f: + sidebar = f.read() + + # Preparar contexto completo + template_data = { + 'site_name': content.get('site_name', 'GKACHELE Site'), + 'hero_title': content.get('hero_title', 'Bienvenido'), + 'hero_description': content.get('hero_description', ''), + 'colors': content.get('colors', {'primary': '#d32f2f', 'secondary': '#ff6f00', 'text': '#2c2c2c'}), + 'typography': content.get('typography', {'font_family': 'Roboto'}), + 'menus': menus, + 'widgets': widgets, + **content # Incluir todo el contenido adicional + } + + # Renderizar usando Jinja2 + from jinja2 import Template + # Construir template completo: header + contenido del tema + sidebar + footer + full_template = header + theme_template + sidebar + footer + template = Template(full_template) + return template.render(**template_data) + +# ============================================================================ +# RUTAS PÚBLICAS +# ============================================================================ + +@app.route('/') +def landing(): + """Landing page""" + return render_template('landing_real.html') + +@app.route('/register', methods=['GET', 'POST']) +def register(): + """Registro - Sistema Simple y Profesional""" + if request.method == 'POST': + try: + # Datos JSON + data = request.get_json() if request.is_json else (request.form.to_dict() if request.form else {}) + if not data: + return jsonify({'success': False, 'error': 'Sin datos'}), 400 + + email = str(data.get('email', '')).strip() + password = str(data.get('password', '')).strip() + plan = str(data.get('plan', 'base')) + rubro = str(data.get('rubro', 'gimnasio')) + + # Validar + if not email or '@' not in email: + return jsonify({'success': False, 'error': 'Email inválido'}), 400 + if not password: + return jsonify({'success': False, 'error': 'Contraseña requerida'}), 400 + + # DB + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Usuario + try: + c.execute('INSERT INTO users (email, password, plan, rubro) VALUES (?, ?, ?, ?)', + (email, generate_password_hash(password), plan, rubro)) + user_id = c.lastrowid + except sqlite3.IntegrityError: + conn.close() + return jsonify({'success': False, 'error': 'Email ya existe'}), 400 + + # Tema + import random + theme = 'default' + if rubro == 'restaurante': + theme = random.choice(['restaurante-moderno', 'restaurante-elegante']) + elif rubro in ['gimnasio', 'gimnasios']: + theme = 'gimnasio-claro' + + # Sitio + site_name = email.split('@')[0].title() + content = json.dumps({ + 'site_name': site_name + ' Site', + 'hero_title': 'Bienvenido', + 'hero_description': '', + 'colors': {'primary': '#d32f2f', 'secondary': '#ff6f00', 'text': '#2c2c2c'}, + 'typography': {'font_family': 'Roboto'} + }) + + slug = f'site-{secrets.token_hex(4)}' + c.execute('INSERT INTO sites (user_id, slug, theme, content_json) VALUES (?, ?, ?, ?)', + (user_id, slug, theme, content)) + site_id = c.lastrowid + + # Crear menús por defecto (header, footer) + default_menus = [ + ('header', 'Inicio', '#inicio', 0, None), + ('header', 'Menú', '#menu', 1, None), + ('header', 'Horarios', '#horarios', 2, None), + ('header', 'Reservas', '#reservas', 3, None), + ('header', 'Contacto', '#contacto', 4, None), + ('footer', 'Inicio', '#inicio', 0, None), + ('footer', 'Contacto', '#contacto', 1, None), + ] + + for location, title, url, order_idx, parent_id in default_menus: + c.execute('''INSERT INTO menus (user_id, site_id, location, title, url, order_index, parent_id) + VALUES (?, ?, ?, ?, ?, ?, ?)''', + (user_id, site_id, location, title, url, order_idx, parent_id)) + + conn.commit() + conn.close() + + # ✅ TODO está en main.db - no se necesitan bases separadas + # El cliente accede a /dashboard (como wp-admin) y solo ve SUS datos filtrados por user_id + + # NO crear sesión automáticamente - el usuario debe hacer login + # ÉXITO - Redirigir al login para que inicie sesión + print(f"✅ Usuario registrado: user_id={user_id}, site_id={site_id}") + return jsonify({'success': True, 'message': 'Registro exitoso. Por favor inicia sesión.', 'redirect': '/login'}) + + except Exception as e: + import traceback + traceback.print_exc() + return jsonify({'success': False, 'error': str(e)}), 500 + + # GET + return render_template('register.html', plan=request.args.get('plan', 'base'), rubro=request.args.get('rubro', 'gimnasio')) + +@app.route('/login', methods=['GET', 'POST']) +def login(): + """Login""" + if request.method == 'POST': + try: + data = request.get_json() + if not data: + return jsonify({'success': False, 'error': 'No se recibieron datos'}), 400 + + email = data.get('email') + password = data.get('password') + + if not email or not password: + return jsonify({'success': False, 'error': 'Email y contraseña son requeridos'}), 400 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT id, password FROM users WHERE email = ?', (email,)) + user = c.fetchone() + conn.close() + + if user and check_password_hash(user[1], password): + session['user_id'] = user[0] + print(f"✅ Login exitoso: user_id={user[0]}") + # Después del login, redirigir al dashboard (el usuario puede ir al customizer desde ahí) + return jsonify({'success': True, 'redirect': '/dashboard'}) + + return jsonify({'success': False, 'error': 'Credenciales inválidas'}), 401 + except Exception as e: + print(f"❌ Error en login: {e}") + import traceback + traceback.print_exc() + return jsonify({'success': False, 'error': f'Error al iniciar sesión: {str(e)}'}), 500 + + return render_template('login.html') + +@app.route('/logout') +def logout(): + session.pop('user_id', None) + return redirect(url_for('landing')) + +# ============================================================================ +# DASHBOARD CLIENTE +# ============================================================================ + +@app.route('/dashboard') +def dashboard(): + """Panel del cliente""" + if 'user_id' not in session: + return redirect(url_for('login')) + + user_id = session['user_id'] + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Info del usuario + c.execute('SELECT email, plan FROM users WHERE id = ?', (user_id,)) + user_info = c.fetchone() + + # Sitios + c.execute('SELECT id, slug, theme, status, created_at FROM sites WHERE user_id = ?', (user_id,)) + sites = [{'id': r[0], 'slug': r[1], 'theme': r[2], 'status': r[3], 'created_at': r[4]} + for r in c.fetchall()] + + # Contar media + c.execute('SELECT COUNT(*) FROM media WHERE user_id = ?', (user_id,)) + media_count = c.fetchone()[0] + + conn.close() + + return render_template('dashboard.html', + sites=sites, + user_email=user_info[0] if user_info else '', + user_plan=user_info[1] if user_info else 'base', + media_count=media_count) + +@app.route('/dashboard/admin') +def client_admin(): + """Admin del cliente - gestionar media, config, etc.""" + if 'user_id' not in session: + return redirect(url_for('login')) + + user_id = session['user_id'] + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Info del usuario + c.execute('SELECT email, plan FROM users WHERE id = ?', (user_id,)) + user_info = c.fetchone() + + # Sitios del usuario + c.execute('SELECT id, slug, theme, status FROM sites WHERE user_id = ?', (user_id,)) + sites = [{'id': r[0], 'slug': r[1], 'theme': r[2], 'status': r[3]} for r in c.fetchall()] + + conn.close() + + return render_template('client_admin.html', + user_email=user_info[0] if user_info else '', + user_plan=user_info[1] if user_info else 'base', + sites=sites) + +@app.route('/dashboard/create', methods=['GET', 'POST']) +def create_site(): + """Crear nuevo sitio""" + if 'user_id' not in session: + return redirect(url_for('login')) + + if request.method == 'POST': + data = request.get_json() + user_id = session['user_id'] + slug = data.get('slug', f'site-{secrets.token_hex(4)}') + theme = data.get('theme', 'default') + + # Contenido inicial + content = { + 'site_name': data.get('site_name', 'Mi Sitio'), + 'hero_title': data.get('hero_title', 'Bienvenido'), + 'hero_description': data.get('hero_description', ''), + 'colors': { + 'primary': '#ff4d4d', + 'secondary': '#1a1a1a', + 'text': '#333333' + }, + 'typography': { + 'font_family': 'Arial' + } + } + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('INSERT INTO sites (user_id, slug, theme, content_json) VALUES (?, ?, ?, ?)', + (user_id, slug, theme, json.dumps(content))) + site_id = c.lastrowid + conn.commit() + conn.close() + + # ✅ TODO está en main.db - no se necesitan bases separadas + + return jsonify({'success': True, 'site_id': site_id, 'slug': slug}) + + return render_template('create_site.html') + +# ============================================================================ +# CUSTOMIZER (Sistema de Personalización) +# ============================================================================ + +@app.route('/customizer/') +def customizer(site_id): + """Customizer: Sidebar + Preview""" + # Verificar que el sitio existe + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT user_id, slug, theme, content_json FROM sites WHERE id = ?', (site_id,)) + site = c.fetchone() + conn.close() + + if not site: + return "Sitio no encontrado", 404 + + # Si hay sesión, verificar que pertenece al usuario + if 'user_id' in session and site[0] != session['user_id']: + return "No autorizado", 403 + + content = json.loads(site[3]) if site[3] else {} + theme = site[2] + + # Cargar template del tema si existe + theme_template = None + theme_path = os.path.join(THEMES_DIR, theme, 'template.html') + if os.path.exists(theme_path): + with open(theme_path, 'r', encoding='utf-8') as f: + theme_template = f.read() + + return render_template('customizer.html', + site_id=site_id, + slug=site[1], + theme=theme, + content=content, + theme_template=theme_template) + +@app.route('/api/customizer/save', methods=['POST']) +def save_customizer(): + """Guardar cambios del customizer""" + data = request.get_json() + site_id = data.get('site_id') + content = data.get('content') + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('UPDATE sites SET content_json = ? WHERE id = ?', + (json.dumps(content), site_id)) + conn.commit() + conn.close() + + return jsonify({'success': True}) + +@app.route('/api/customizer/preview-frame/') +def preview_frame(site_id): + """Frame del preview - renderiza el template completo con estructura GKACHELE""" + # Obtener datos del sitio + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT theme, content_json, user_id FROM sites WHERE id = ?', (site_id,)) + site = c.fetchone() + conn.close() + + if not site: + return "Sitio no encontrado", 404 + + theme = site[0] + content = json.loads(site[1]) if site[1] else {} + user_id = site[2] + + # Usar función helper para renderizar con estructura GKACHELE + try: + rendered = render_gkachele_template(theme, content, site_id, user_id) + print(f"✅ Template renderizado correctamente para site_id={site_id}, theme={theme}") + return rendered + except Exception as e: + import traceback + print(f"❌ Error renderizando template: {e}") + traceback.print_exc() + # Fallback: cargar template directamente si existe + theme_path = os.path.join(THEMES_DIR, theme, 'template.html') + if os.path.exists(theme_path): + with open(theme_path, 'r', encoding='utf-8') as f: + template_str = f.read() + from jinja2 import Template + template = Template(template_str) + template_data = { + 'site_name': content.get('site_name', 'GKACHELE Site'), + 'hero_title': content.get('hero_title', 'Bienvenido'), + 'hero_description': content.get('hero_description', ''), + 'colors': content.get('colors', {'primary': '#d32f2f', 'secondary': '#ff6f00', 'text': '#2c2c2c'}), + 'typography': content.get('typography', {'font_family': 'Roboto'}), + **content + } + return template.render(**template_data) + + # Fallback final a preview simple + return f""" + + + Preview + +

+ {content.get('hero_title', 'Título')} +

+

+ {content.get('hero_description', 'Descripción')} +

+

+ © 2025 GKACHELE™. Todos los derechos reservados. +

+ + + """ + +# ============================================================================ +# SOLICITUDES +# ============================================================================ + +@app.route('/dashboard/submit/', methods=['POST']) +def submit_site(site_id): + """Cliente envía sitio para aprobación""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Cambiar status a pending + c.execute('UPDATE sites SET status = ? WHERE id = ?', ('pending', site_id)) + + # Crear solicitud + c.execute('INSERT INTO requests (site_id, user_id) VALUES (?, ?)', + (site_id, session['user_id'])) + + conn.commit() + conn.close() + + return jsonify({'success': True}) + +# ============================================================================ +# ADMIN +# ============================================================================ + +@app.route('/admin') +def admin(): + """Panel admin""" + # Admin simple: user_id = 1 + if 'user_id' not in session or session['user_id'] != 1: + return "Solo admin", 403 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Solicitudes pendientes + c.execute('''SELECT r.id, r.site_id, r.status, s.slug, u.email, r.created_at + FROM requests r + JOIN sites s ON r.site_id = s.id + JOIN users u ON r.user_id = u.id + WHERE r.status = 'pending' + ORDER BY r.created_at DESC''') + requests = [{'id': r[0], 'site_id': r[1], 'status': r[2], 'slug': r[3], + 'email': r[4], 'created_at': r[5]} for r in c.fetchall()] + + # Todos los sitios + c.execute('SELECT id, slug, theme, status, user_id FROM sites') + sites = [{'id': r[0], 'slug': r[1], 'theme': r[2], 'status': r[3], 'user_id': r[4]} + for r in c.fetchall()] + + conn.close() + + return render_template('admin.html', requests=requests, sites=sites) + +@app.route('/admin/approve/', methods=['POST']) +def approve_site(request_id): + """Admin aprueba sitio""" + if 'user_id' not in session or session['user_id'] != 1: + return jsonify({'error': 'No autorizado'}), 403 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Obtener site_id + c.execute('SELECT site_id FROM requests WHERE id = ?', (request_id,)) + result = c.fetchone() + if not result: + conn.close() + return jsonify({'error': 'Solicitud no encontrada'}), 404 + + site_id = result[0] + + # Aprobar: cambiar status a approved y publicar + c.execute('UPDATE sites SET status = ? WHERE id = ?', ('published', site_id)) + c.execute('UPDATE requests SET status = ? WHERE id = ?', ('approved', request_id)) + + conn.commit() + conn.close() + + return jsonify({'success': True}) + +# ============================================================================ +# SITIO PÚBLICO +# ============================================================================ + +@app.route('/site/') +def public_site(slug): + """Sitio público del cliente - usando estructura GKACHELE""" + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT id, theme, content_json, status, user_id FROM sites WHERE slug = ?', (slug,)) + site = c.fetchone() + conn.close() + + if not site or site[3] != 'published': + return "Sitio no encontrado o no publicado", 404 + + site_id = site[0] + theme = site[1] + content = json.loads(site[2]) if site[2] else {} + user_id = site[4] + + # Renderizar con estructura GKACHELE + try: + return render_gkachele_template(theme, content, site_id, user_id) + except Exception as e: + import traceback + traceback.print_exc() + return render_template('public_site.html', content=content, theme=theme) + +# ============================================================================ +# MAIN +# ============================================================================ + +# ============================================================================ +# API ADMIN CLIENTE +# ============================================================================ + +@app.route('/api/admin/upload', methods=['POST']) +def upload_media(): + """Subir imágenes""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + user_id = session['user_id'] + files = request.files.getlist('files') + + if not files: + return jsonify({'error': 'No hay archivos'}), 400 + + uploaded = [] + for file in files: + if file.filename: + filename = f"{user_id}_{secrets.token_hex(8)}_{file.filename}" + filepath = os.path.join(UPLOADS_DIR, filename) + file.save(filepath) + + # Guardar en DB + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT id FROM sites WHERE user_id = ? LIMIT 1', (user_id,)) + site = c.fetchone() + site_id = site[0] if site else None + + c.execute('INSERT INTO media (user_id, site_id, filename, filepath, file_type) VALUES (?, ?, ?, ?, ?)', + (user_id, site_id, filename, filepath, 'image')) + conn.commit() + conn.close() + + uploaded.append(filename) + + return jsonify({'success': True, 'files': uploaded}) + +@app.route('/api/admin/media') +def get_media(): + """Obtener media del usuario""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + user_id = session['user_id'] + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT id, filename, filepath, uploaded_at FROM media WHERE user_id = ? ORDER BY uploaded_at DESC', (user_id,)) + media = [{'id': r[0], 'filename': r[1], 'filepath': r[2], 'uploaded_at': r[3]} for r in c.fetchall()] + conn.close() + + return jsonify({'success': True, 'media': media}) + +@app.route('/api/admin/media/', methods=['DELETE']) +def delete_media(media_id): + """Eliminar media""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + user_id = session['user_id'] + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Verificar que pertenece al usuario + c.execute('SELECT filepath FROM media WHERE id = ? AND user_id = ?', (media_id, user_id)) + media = c.fetchone() + + if media: + # Eliminar archivo + if os.path.exists(media[0]): + os.remove(media[0]) + + # Eliminar de DB + c.execute('DELETE FROM media WHERE id = ?', (media_id,)) + conn.commit() + + conn.close() + return jsonify({'success': True}) + +@app.route('/api/admin/settings', methods=['POST']) +def update_settings(): + """Actualizar configuración del usuario""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + data = request.get_json() + user_id = session['user_id'] + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + if data.get('password'): + c.execute('UPDATE users SET password = ? WHERE id = ?', + (generate_password_hash(data['password']), user_id)) + conn.commit() + + conn.close() + return jsonify({'success': True}) + +@app.route('/uploads/') +def serve_upload(filename): + """Servir archivos subidos""" + return send_from_directory(UPLOADS_DIR, filename) + +# ============================================================================ +# API MENÚS Y WIDGETS +# ============================================================================ + +@app.route('/api/menus/', methods=['GET']) +def get_menus(site_id): + """Obtener menús del sitio""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + user_id = session['user_id'] + menus = get_site_menus(site_id, user_id) + return jsonify({'success': True, 'menus': menus}) + +@app.route('/api/menus/', methods=['POST']) +def save_menu(site_id): + """Guardar/actualizar menú""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + data = request.get_json() + user_id = session['user_id'] + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Eliminar menús existentes del sitio + c.execute('DELETE FROM menus WHERE site_id = ? AND user_id = ?', (site_id, user_id)) + + # Insertar nuevos menús + for menu_item in data.get('menus', []): + c.execute('''INSERT INTO menus (user_id, site_id, location, title, url, order_index, parent_id) + VALUES (?, ?, ?, ?, ?, ?, ?)''', + (user_id, site_id, menu_item['location'], menu_item['title'], + menu_item['url'], menu_item.get('order', 0), menu_item.get('parent_id'))) + + conn.commit() + conn.close() + + return jsonify({'success': True}) + +@app.route('/api/widgets/', methods=['GET']) +def get_widgets(site_id): + """Obtener widgets del sitio""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + user_id = session['user_id'] + area = request.args.get('area', 'sidebar') + widgets = get_site_widgets(site_id, user_id, area) + return jsonify({'success': True, 'widgets': widgets}) + +@app.route('/api/widgets/', methods=['POST']) +def save_widget(site_id): + """Guardar/actualizar widget""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + data = request.get_json() + user_id = session['user_id'] + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + c.execute('''INSERT INTO widgets (user_id, site_id, area, type, title, content, order_index) + VALUES (?, ?, ?, ?, ?, ?, ?)''', + (user_id, site_id, data.get('area', 'sidebar'), data.get('type', 'text'), + data.get('title'), data.get('content'), data.get('order', 0))) + + conn.commit() + conn.close() + + return jsonify({'success': True}) + +# ============================================================================ +# MAIN +# ============================================================================ + +# Inicializar DB al importar (con manejo de errores) +try: + init_db() +except Exception as e: + print(f"⚠️ Error en init_db: {e}") + # Continuar aunque falle, se creará cuando se use + +if __name__ == '__main__': + port = int(os.environ.get('PORT', 5001)) + print("🚀 Demo SaaS iniciado") + print(f"📍 http://localhost:{port}") + app.run(debug=True, host='0.0.0.0', port=port) diff --git a/backups/backup-20260114-085602/local/demo/app_simple.py b/backups/backup-20260114-085602/local/demo/app_simple.py new file mode 100644 index 0000000..7a8456a --- /dev/null +++ b/backups/backup-20260114-085602/local/demo/app_simple.py @@ -0,0 +1,594 @@ +""" +Demo SaaS - Versión SIMPLE que FUNCIONA +Sistema profesional automatizado - GKACHELE™ +""" + +from flask import Flask, render_template, render_template_string, request, jsonify, session, redirect +import sqlite3 +import os +import json +from werkzeug.security import generate_password_hash, check_password_hash + +app = Flask(__name__, template_folder='templates', static_folder='static') +app.secret_key = 'demo-2025' + +# DB simple +DB_PATH = 'demo.db' + +def init_db(): + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('''CREATE TABLE IF NOT EXISTS users ( + id INTEGER PRIMARY KEY, email TEXT UNIQUE, password TEXT, plan TEXT, rubro TEXT + )''') + c.execute('''CREATE TABLE IF NOT EXISTS sites ( + id INTEGER PRIMARY KEY, user_id INTEGER, slug TEXT UNIQUE, + content TEXT, status TEXT DEFAULT 'draft' + )''') + conn.commit() + conn.close() + +init_db() + +# Landing profesional (inspirada en tu landing real) +LANDING_HTML = ''' + + + + + + PageBuilder SaaS | Crea tu sitio web automatizado + + + + + + + + + +
+
+

🎨 PageBuilder SaaS

+

Crea tu sitio web automatizado

+

Sistema profesional y automatizado. Cada cliente con su admin, templates y base de datos.

+ +
+
+ + +
+
+

Nuestros Planes

+
+
+

Base

+
$50
+
    +
  • Sitio web de una página
  • +
  • Diseño profesional
  • +
  • Responsive móvil
  • +
  • Panel de administración
  • +
  • Base de datos propia
  • +
+ +
+
+

Pro

+
$100
+
    +
  • Sitio multipágina
  • +
  • Animaciones y efectos
  • +
  • Galería de imágenes
  • +
  • Formularios avanzados
  • +
  • Customizer completo
  • +
+ +
+
+

Premium

+
$200
+
    +
  • Sitio completo escalable
  • +
  • SEO optimizado
  • +
  • Panel admin avanzado
  • +
  • Integraciones
  • +
  • Soporte prioritario
  • +
+ +
+
+
+
+ + +
+
+

Contacto

+
+
+ +

Email

+

contacto@pagebuilder.com

+
+
+ +

Teléfono

+

+54 9 11 2345 6789

+
+
+ +

WhatsApp

+

Chatea con nosotros

+
+
+
+
+ + + + + + + +
+

© 2025 PageBuilder SaaS. Todos los derechos reservados.

+

Sistema profesional y automatizado - GKACHELE™

+
+ + + + +''' + +@app.route('/') +def home(): + # Usar tu landing real EXACTA + return render_template('landing_real.html') + +@app.route('/register', methods=['GET', 'POST']) +def register(): + if request.method == 'POST': + data = request.get_json() + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + try: + c.execute('INSERT INTO users (email, password, plan, rubro) VALUES (?, ?, ?, ?)', + (data['email'], generate_password_hash(data['password']), + data.get('plan', 'base'), data.get('rubro', 'gimnasio'))) + user_id = c.lastrowid + conn.commit() + session['user_id'] = user_id + return jsonify({'success': True, 'user_id': user_id}) + except: + return jsonify({'error': 'Email existe'}), 400 + finally: + conn.close() + + return render_template_string(''' + + Registro + + +

Registro

+
+ + + +
+ + + ''') + +@app.route('/login', methods=['GET', 'POST']) +def login(): + if request.method == 'POST': + data = request.get_json() + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('SELECT id, password FROM users WHERE email = ?', (data['email'],)) + user = c.fetchone() + conn.close() + if user and check_password_hash(user[1], data['password']): + session['user_id'] = user[0] + return jsonify({'success': True}) + return jsonify({'error': 'Credenciales inválidas'}), 401 + + return render_template_string(''' + + Login + + +

Login

+
+ + + +
+ + + ''') + +@app.route('/dashboard') +def dashboard(): + if 'user_id' not in session: + return redirect('/login') + + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('SELECT id, slug, status FROM sites WHERE user_id = ?', (session['user_id'],)) + sites = c.fetchall() + conn.close() + + sites_html = ''.join([f'

{s[1]}

Status: {s[2]}

Editar
' for s in sites]) + + return render_template_string(f''' + + Dashboard + + +
+

📊 Dashboard

+ ➕ Crear Sitio +
+ {sites_html if sites else '

No tienes sitios. Crear uno

'} + + ''') + +@app.route('/create', methods=['GET', 'POST']) +def create(): + if 'user_id' not in session: + return redirect('/login') + + if request.method == 'POST': + data = request.get_json() + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + content = json.dumps({ + 'site_name': data.get('site_name', 'Mi Sitio'), + 'hero_title': data.get('hero_title', 'Bienvenido'), + 'colors': {'primary': '#ff4d4d', 'secondary': '#1a1a1a'} + }) + c.execute('INSERT INTO sites (user_id, slug, content) VALUES (?, ?, ?)', + (session['user_id'], data['slug'], content)) + site_id = c.lastrowid + conn.commit() + conn.close() + return jsonify({'success': True, 'site_id': site_id}) + + return render_template_string(''' + + Crear Sitio + + +

➕ Crear Sitio

+
+ + + + +
+ + + ''') + +@app.route('/customizer/') +def customizer(site_id): + if 'user_id' not in session: + return redirect('/login') + + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('SELECT content FROM sites WHERE id = ? AND user_id = ?', (site_id, session['user_id'])) + site = c.fetchone() + conn.close() + + if not site: + return "No encontrado", 404 + + content = json.loads(site[0]) + + return render_template_string(f''' + + Customizer + + + + +
+
+

+ {content.get('hero_title', 'Título')} +

+
+
+ + + ''') + +@app.route('/api/save/', methods=['POST']) +def save(site_id): + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + data = request.get_json() + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('UPDATE sites SET content = ? WHERE id = ? AND user_id = ?', + (json.dumps(data['content']), site_id, session['user_id'])) + conn.commit() + conn.close() + return jsonify({'success': True}) + +@app.route('/api/submit/', methods=['POST']) +def submit(site_id): + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('UPDATE sites SET status = ? WHERE id = ? AND user_id = ?', + ('pending', site_id, session['user_id'])) + conn.commit() + conn.close() + return jsonify({'success': True}) + +@app.route('/admin') +def admin(): + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('SELECT id, slug, status FROM sites WHERE status = ?', ('pending',)) + requests = c.fetchall() + c.execute('SELECT id, slug, status FROM sites') + sites = c.fetchall() + conn.close() + + return render_template_string(f''' + + Admin + + +

🔧 Admin

+

Solicitudes Pendientes

+ + + {''.join([f'' for r in requests])} +
IDSlugAcción
{r[0]}{r[1]}
+

Todos los Sitios

+ + + {''.join([f'' for s in sites])} +
IDSlugStatus
{s[0]}{s[1]}{s[2]}
+ + + ''') + +@app.route('/api/approve/', methods=['POST']) +def approve(site_id): + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('UPDATE sites SET status = ? WHERE id = ?', ('published', site_id)) + conn.commit() + conn.close() + return jsonify({'success': True}) + +@app.route('/site/') +def site(slug): + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('SELECT content FROM sites WHERE slug = ? AND status = ?', (slug, 'published')) + site = c.fetchone() + conn.close() + + if not site: + return "Sitio no encontrado", 404 + + content = json.loads(site[0]) + return render_template_string(f''' + + {content.get('site_name', 'Sitio')} + + +

{content.get('hero_title', 'Título')}

+

{content.get('site_name', '')}

+ + ''') + +if __name__ == '__main__': + print("🚀 Demo SaaS SIMPLE iniciado") + print("📍 http://localhost:5001") + app.run(debug=True, host='0.0.0.0', port=5001) diff --git a/backups/backup-20260114-085602/local/demo/database/main.db b/backups/backup-20260114-085602/local/demo/database/main.db new file mode 100644 index 0000000..e09825c Binary files /dev/null and b/backups/backup-20260114-085602/local/demo/database/main.db differ diff --git a/backups/backup-20260114-085602/local/demo/demo.db b/backups/backup-20260114-085602/local/demo/demo.db new file mode 100644 index 0000000..ac78667 Binary files /dev/null and b/backups/backup-20260114-085602/local/demo/demo.db differ diff --git a/backups/backup-20260114-085602/local/demo/limpiar_db.py b/backups/backup-20260114-085602/local/demo/limpiar_db.py new file mode 100644 index 0000000..f20a802 --- /dev/null +++ b/backups/backup-20260114-085602/local/demo/limpiar_db.py @@ -0,0 +1,66 @@ +""" +GKACHELE™ - Script para limpiar base de datos +© 2025 GKACHELE™. Todos los derechos reservados. +Uso: python limpiar_db.py +""" + +import sqlite3 +import os + +BASE_DIR = os.path.dirname(__file__) +DATABASE_DIR = os.path.join(BASE_DIR, 'database') +MAIN_DB = os.path.join(DATABASE_DIR, 'main.db') + +def limpiar_db(): + """Limpiar todas las tablas de la base de datos""" + if not os.path.exists(MAIN_DB): + print(f"❌ No se encontró la base de datos en: {MAIN_DB}") + return + + try: + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Mostrar datos actuales + c.execute('SELECT COUNT(*) FROM users') + user_count = c.fetchone()[0] + c.execute('SELECT COUNT(*) FROM sites') + site_count = c.fetchone()[0] + + print("=" * 80) + print("📊 ESTADO ACTUAL DE LA BASE DE DATOS") + print("=" * 80) + print(f"Usuarios: {user_count}") + print(f"Sitios: {site_count}") + print("=" * 80) + + respuesta = input("\n⚠️ ¿Estás seguro de que quieres limpiar TODA la base de datos? (escribe 'SI' para confirmar): ") + + if respuesta.upper() != 'SI': + print("❌ Operación cancelada") + conn.close() + return + + # Limpiar en orden (respetando foreign keys) + print("\n🗑️ Limpiando base de datos...") + c.execute('DELETE FROM widgets') + c.execute('DELETE FROM menus') + c.execute('DELETE FROM media') + c.execute('DELETE FROM content') + c.execute('DELETE FROM settings') + c.execute('DELETE FROM requests') + c.execute('DELETE FROM sites') + c.execute('DELETE FROM users') + + conn.commit() + conn.close() + + print("✅ Base de datos limpiada exitosamente") + + except Exception as e: + print(f"❌ Error: {e}") + import traceback + traceback.print_exc() + +if __name__ == '__main__': + limpiar_db() diff --git a/backups/backup-20260114-085602/local/demo/requirements.txt b/backups/backup-20260114-085602/local/demo/requirements.txt new file mode 100644 index 0000000..2f2fa62 --- /dev/null +++ b/backups/backup-20260114-085602/local/demo/requirements.txt @@ -0,0 +1,2 @@ +Flask==2.3.3 +Werkzeug==2.3.7 diff --git a/backups/backup-20260114-085602/local/demo/run.sh b/backups/backup-20260114-085602/local/demo/run.sh new file mode 100644 index 0000000..05d939e --- /dev/null +++ b/backups/backup-20260114-085602/local/demo/run.sh @@ -0,0 +1,5 @@ +#!/bin/bash +cd "$(dirname "$0")" +echo "🚀 Iniciando Demo SaaS..." +echo "" +python3 app.py diff --git a/backups/backup-20260114-085602/local/demo/start.bat b/backups/backup-20260114-085602/local/demo/start.bat new file mode 100644 index 0000000..7988184 --- /dev/null +++ b/backups/backup-20260114-085602/local/demo/start.bat @@ -0,0 +1,8 @@ +@echo off +echo Instalando dependencias... +pip install Flask Werkzeug --quiet +echo. +echo Iniciando servidor en puerto 5001... +echo. +python app.py +pause diff --git a/backups/backup-20260114-085602/local/demo/start.sh b/backups/backup-20260114-085602/local/demo/start.sh new file mode 100644 index 0000000..ac0b547 --- /dev/null +++ b/backups/backup-20260114-085602/local/demo/start.sh @@ -0,0 +1,27 @@ +#!/bin/bash +# Script para iniciar el demo desde WSL + +echo "🚀 Iniciando Demo SaaS..." +echo "" + +# Verificar Python +if ! command -v python3 &> /dev/null; then + echo "❌ Python3 no encontrado" + exit 1 +fi + +# Instalar dependencias si no están +if ! python3 -c "import flask" 2>/dev/null; then + echo "📦 Instalando dependencias..." + pip3 install Flask Werkzeug --quiet +fi + +echo "" +echo "✅ Todo listo" +echo "📍 Servidor en: http://localhost:5001" +echo "" +echo "Presiona Ctrl+C para detener" +echo "" + +# Ejecutar +python3 app.py diff --git a/backups/backup-20260114-085602/local/demo/static/style.css b/backups/backup-20260114-085602/local/demo/static/style.css new file mode 100644 index 0000000..addf451 --- /dev/null +++ b/backups/backup-20260114-085602/local/demo/static/style.css @@ -0,0 +1,2409 @@ +/* GKACHELE™ - Diseño Premium Inspirado en Blow-dance */ + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --primary-orange: #FF6B35; + --dark-black: #1a1a1a; + --pure-white: #ffffff; + --light-gray: #f5f5f5; + --bg-light: #fafafa; + --card-bg: #ffffff; + --text-primary: #1a1a1a; + --text-secondary: #666; + --text-light: #888; + --border-light: rgba(0, 0, 0, 0.08); + --shadow-sm: 0 2px 10px rgba(0, 0, 0, 0.05); + --shadow-md: 0 5px 25px rgba(0, 0, 0, 0.1); + --shadow-lg: 0 10px 40px rgba(0, 0, 0, 0.15); + --shadow-orange: 0 5px 25px rgba(255, 107, 53, 0.2); + + /* Social Media Colors */ + --whatsapp: #25D366; + --whatsapp-hover: #20BA5A; + --facebook: #1877F2; + --facebook-hover: #0d65d9; + --instagram-start: #833AB4; + --instagram-mid: #E1306C; + --instagram-end: #FD1D1D; + --youtube: #FF0000; + --youtube-hover: #CC0000; + --tiktok: #000000; + --tiktok-hover: #00F2EA; +} + +body { + font-family: 'Inter', sans-serif; + background: #fafafa; + color: var(--text-primary); + line-height: 1.7; + overflow-x: hidden; + font-weight: 300; + position: relative; +} + +body::after { + content: '© GKACHELE 2025'; + position: fixed; + bottom: 20px; + left: 20px; + font-size: 0.7rem; + color: rgba(255, 255, 255, 0.03); + font-weight: bold; + z-index: -1; + pointer-events: none; + user-select: none; + transform: rotate(-45deg); + font-family: 'Arial', sans-serif; +} + +body::before { + content: ''; + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1920&h=1080&fit=crop&q=80'); + background-size: cover; + background-position: center; + background-attachment: fixed; + opacity: 0.4; + z-index: -1; + pointer-events: none; +} + +.gkachele-watermark { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip-path: inset(50%); + border: 0; + white-space: nowrap; +} + +.container-large { + max-width: 1400px; + margin: 0 auto; + padding: 0 60px; +} + +/* Navigation Sticky - Premium */ +.nav-sticky { + position: fixed; + top: 0; + left: 0; + right: 0; + background: rgba(255, 255, 255, 0.98); + backdrop-filter: blur(20px); + border-bottom: 1px solid var(--border-light); + z-index: 1000; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + padding: 25px 0; +} + +.nav-container { + max-width: 1600px; + margin: 0 auto; + padding: 0 80px; + display: flex; + justify-content: space-between; + align-items: center; +} + +.nav-logo a { + font-size: 1.4rem; + font-weight: 700; + color: var(--text-primary); + text-decoration: none; + letter-spacing: 1px; + transition: all 0.3s ease; +} + +.nav-logo a:hover { + opacity: 0.7; + transform: translateX(2px); +} + +.nav-menu { + display: flex; + gap: 60px; + align-items: center; + position: absolute; + left: 50%; + transform: translateX(-50%); +} + +.nav-menu a { + font-size: 0.95rem; + font-weight: 400; + color: var(--text-secondary); + text-decoration: none; + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + letter-spacing: 0.5px; + position: relative; +} + +.nav-menu a::after { + content: ''; + position: absolute; + bottom: -5px; + left: 0; + width: 0; + height: 1px; + background: var(--text-primary); + transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1); +} + +.nav-menu a:hover { + color: var(--primary-orange); +} + +.nav-menu a:hover::after { + width: 100%; + background: var(--primary-orange); +} + +.nav-social { + display: flex; + gap: 25px; + align-items: center; +} + +.nav-social a { + width: 40px; + height: 40px; + display: flex; + align-items: center; + justify-content: center; + color: var(--text-secondary); + text-decoration: none; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + border-radius: 50%; + background: transparent; + position: relative; + font-size: 1rem; + border-radius: 50%; +} + +.nav-social a:hover { + transform: translateY(-3px) scale(1.15); + box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15); +} + +/* Facebook - Celeste Premium */ +.nav-social a[title="Facebook"] { + color: var(--facebook); +} + +.nav-social a[title="Facebook"]:hover { + background: var(--facebook); + color: white; + box-shadow: 0 8px 25px rgba(24, 119, 242, 0.4); +} + +/* Instagram - Gradiente Icónico */ +.nav-social a[title="Instagram"] { + color: var(--instagram-mid); +} + +.nav-social a[title="Instagram"]:hover { + background: linear-gradient(135deg, var(--instagram-start) 0%, var(--instagram-mid) 50%, var(--instagram-end) 100%); + color: white; + box-shadow: 0 8px 25px rgba(225, 48, 108, 0.5); +} + +/* YouTube - Rojo Premium */ +.nav-social a[title="YouTube"] { + color: var(--youtube); +} + +.nav-social a[title="YouTube"]:hover { + background: var(--youtube); + color: white; + box-shadow: 0 8px 25px rgba(255, 0, 0, 0.4); +} + +/* TikTok - Negro con Efecto Cyan */ +.nav-social a[title="TikTok"] { + color: var(--tiktok); +} + +.nav-social a[title="TikTok"]:hover { + background: var(--tiktok); + color: var(--tiktok-hover); + box-shadow: 0 8px 25px rgba(0, 242, 234, 0.5); +} + +/* Hero Section - Premium con Imagen Difuminada */ +.hero-section { + margin-top: 100px; + padding: 180px 0 140px; + text-align: center; + background: linear-gradient(to bottom, #ffffff 0%, var(--bg-light) 100%); + position: relative; + overflow: hidden; +} + +.hero-bg-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1920&h=1080&fit=crop&q=80'); + background-size: cover; + background-position: center; + opacity: 0.2; + z-index: 0; +} + +.hero-content { + max-width: 900px; + margin: 0 auto; + position: relative; + z-index: 1; +} + +.hero-title { + font-size: 8.5rem; + font-weight: 300; + letter-spacing: -4px; + margin-bottom: 30px; + color: var(--text-primary); + line-height: 1; +} + +.hero-subtitle { + font-size: 1.8rem; + font-weight: 400; + color: var(--text-secondary); + letter-spacing: -0.5px; + margin-bottom: 40px; + background: linear-gradient(135deg, var(--text-secondary) 0%, var(--primary-orange) 100%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +.hero-description { + font-size: 1.25rem; + line-height: 1.9; + color: var(--text-light); + max-width: 700px; + margin: 0 auto; + font-weight: 300; +} + +/* Plans Section - Premium con Imagen Difuminada y Acordeón */ +.plans-section { + padding: 150px 0; + background: var(--bg-light); + position: relative; + overflow: hidden; +} + +.plans-bg-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1920&h=1080&fit=crop&q=80'); + background-size: cover; + background-position: center; + opacity: 0.18; + z-index: 0; +} + +.plans-section .container-large { + position: relative; + z-index: 1; +} + +.section-title { + font-size: 4rem; + font-weight: 300; + letter-spacing: -2.5px; + margin-bottom: 80px; + color: var(--text-primary); + text-align: center; +} + +/* Plans Accordion - Desplegable Premium */ +.plans-accordion { + max-width: 1000px; + margin: 0 auto; +} + +.plan-accordion-item { + background: var(--card-bg); + border-radius: 20px; + margin-bottom: 25px; + overflow: hidden; + transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: var(--shadow-sm); + border: 1px solid var(--border-light); + /* Asegurar que ningún plan empiece activo */ + opacity: 1; +} + +/* Transición suave al abrir/cerrar */ +.plan-accordion-item.active { + box-shadow: var(--shadow-lg), var(--shadow-orange); + border-color: rgba(255, 107, 53, 0.3); + transform: translateY(-5px); + background: linear-gradient(to bottom, #ffffff 0%, rgba(255, 107, 53, 0.02) 100%); + animation: planOpen 0.5s cubic-bezier(0.4, 0, 0.2, 1); +} + +@keyframes planOpen { + from { + transform: translateY(0); + box-shadow: var(--shadow-sm); + } + to { + transform: translateY(-5px); + box-shadow: var(--shadow-lg), var(--shadow-orange); + } +} + +/* Todos los planes iguales - sin estilos especiales para premium */ + +.plan-accordion-header { + width: 100%; + padding: 45px 50px; + background: linear-gradient(135deg, #fafafa 0%, #ffffff 100%); + border: none; + display: flex; + justify-content: space-between; + align-items: center; + cursor: pointer; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + text-align: left; + position: relative; +} + +.plan-accordion-item.active .plan-accordion-header { + background: linear-gradient(135deg, #ffffff 0%, rgba(255, 107, 53, 0.03) 100%); + padding-bottom: 40px; +} + +/* Indicador visual sutil cuando está activo */ +.plan-accordion-item.active .plan-accordion-header::before { + content: ''; + position: absolute; + left: 0; + top: 0; + bottom: 0; + width: 4px; + background: var(--primary-orange); + border-radius: 0 4px 4px 0; +} + +.plan-accordion-header:hover { + background: linear-gradient(135deg, #f5f5f5 0%, #ffffff 100%); +} + +.plan-accordion-item.active .plan-accordion-header:hover { + background: linear-gradient(135deg, rgba(255, 107, 53, 0.03) 0%, #ffffff 100%); +} + +.plan-header-content { + flex: 1; +} + +.plan-accordion-header h3 { + font-size: 2.5rem; + font-weight: 600; + letter-spacing: -1px; + margin-bottom: 12px; + color: var(--text-primary); +} + +.plan-accordion-header .plan-tagline { + font-size: 1.2rem; + color: var(--text-secondary); + font-weight: 300; +} + +.plan-chevron { + font-size: 1.2rem; + color: var(--text-secondary); + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + margin-left: 30px; + transform: rotate(0deg); +} + +.plan-accordion-item.active .plan-chevron { + color: var(--primary-orange); + transform: rotate(180deg); +} + +.plan-accordion-body { + max-height: 0; + overflow: hidden; + transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); +} + +.plan-card-body { + padding: 50px 40px; +} + +.plan-card-body h4 { + font-size: 1.5rem; + font-weight: 600; + margin: 35px 0 20px; + color: var(--text-primary); + letter-spacing: -0.3px; +} + +.plan-card-body h4:first-child { + margin-top: 0; +} + +.plan-card-body ul { + list-style: none; + padding: 0; + margin-bottom: 35px; +} + +.plan-card-body li { + padding: 12px 0; + font-size: 1.05rem; + color: var(--text-secondary); + line-height: 1.8; + font-weight: 300; + transition: all 0.3s ease; +} + +.plan-card-body li:hover { + color: var(--text-primary); + padding-left: 5px; +} + +.plan-ideal { + font-size: 1.05rem; + color: var(--text-secondary); + line-height: 1.8; + margin-bottom: 40px; + font-weight: 300; +} + +.plan-ideal strong { + color: var(--text-primary); + font-weight: 600; +} + +.qr-mini-card { + text-align: center; + margin: 50px 0; + padding: 40px 20px; + background: var(--bg-light); + border-radius: 15px; + border: 1px solid var(--border-light); +} + +.qr-mini-card img { + width: 150px; + height: 150px; + border-radius: 12px; + box-shadow: var(--shadow-md); + margin-bottom: 20px; + transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1); +} + +.qr-mini-card:hover img { + transform: scale(1.05); +} + +.qr-mini-card p { + font-size: 1rem; + color: var(--text-light); + font-weight: 300; +} + +.plan-btn { + display: block; + width: 100%; + padding: 22px 40px; + background: var(--primary-orange); + color: #ffffff; + text-decoration: none; + border: 2px solid rgba(255, 255, 255, 0.1); + border-radius: 50px; + font-weight: 600; + font-size: 1.1rem; + text-align: center; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: 0 5px 20px rgba(255, 107, 53, 0.3); + letter-spacing: 0.5px; + margin-top: 30px; +} + +.plan-btn:hover { + background: #FF5722; + border-color: rgba(255, 255, 255, 0.2); + transform: translateY(-3px); + box-shadow: 0 8px 30px rgba(255, 107, 53, 0.4); +} + +.premium-btn { + background: linear-gradient(135deg, var(--primary-orange) 0%, #FF5722 100%); + border: 2px solid rgba(255, 255, 255, 0.15); + box-shadow: 0 5px 25px rgba(255, 107, 53, 0.35); +} + +.premium-btn:hover { + background: linear-gradient(135deg, #FF5722 0%, #FF4500 100%); + border-color: rgba(255, 255, 255, 0.25); + box-shadow: 0 8px 35px rgba(255, 107, 53, 0.5); +} + +/* Demos Section */ +.demos-section { + position: relative; + padding: 5rem 0; + background: linear-gradient(135deg, #0a0a0a 0%, #1a1a1a 100%); + overflow: hidden; +} + +.demos-bg-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: radial-gradient(circle at 50% 50%, rgba(255, 107, 53, 0.05) 0%, transparent 70%); + pointer-events: none; +} + +.section-subtitle { + text-align: center; + color: #888; + font-size: 1.1rem; + margin-bottom: 3rem; +} + +/* Logo Showcase */ +.logo-showcase { + text-align: center; + margin-bottom: 4rem; + padding: 3rem; + background: rgba(255, 107, 53, 0.05); + border-radius: 20px; + border: 2px solid rgba(255, 107, 53, 0.2); +} + +.main-logo { + max-width: 300px; + height: auto; + margin-bottom: 1.5rem; + filter: drop-shadow(0 10px 30px rgba(255, 107, 53, 0.3)); + transition: transform 0.3s ease; +} + +.main-logo:hover { + transform: scale(1.05); +} + +.logo-text { + font-size: 1.3rem; + color: #ff6b35; + font-weight: 600; +} + +.demos-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); + gap: 2rem; + margin-bottom: 4rem; +} + +.demo-card { + background: rgba(30, 30, 30, 0.8); + border-radius: 15px; + overflow: hidden; + transition: all 0.3s ease; + border: 1px solid rgba(255, 107, 53, 0.1); +} + +.demo-card:hover { + transform: translateY(-10px); + border-color: #ff6b35; + box-shadow: 0 20px 40px rgba(255, 107, 53, 0.3); +} + +.demo-image { + position: relative; + width: 100%; + height: 250px; + overflow: hidden; +} + +.demo-image img { + width: 100%; + height: 100%; + object-fit: cover; + transition: transform 0.5s ease; +} + +.demo-card:hover .demo-image img { + transform: scale(1.1); +} + +.demo-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.7); + display: flex; + align-items: center; + justify-content: center; + opacity: 0; + transition: opacity 0.3s ease; +} + +.demo-card:hover .demo-overlay { + opacity: 1; +} + +.demo-btn { + background: #ff6b35; + color: white; + padding: 0.8rem 1.5rem; + border-radius: 8px; + text-decoration: none; + font-weight: 600; + display: flex; + align-items: center; + gap: 0.5rem; + transition: all 0.3s ease; +} + +.demo-btn:hover { + background: #ff8555; + transform: scale(1.05); +} + +.demo-info { + padding: 1.5rem; +} + +.demo-info h3 { + font-size: 1.5rem; + margin-bottom: 0.5rem; + color: #ff6b35; +} + +.demo-category { + font-size: 0.95rem; + color: #888; + margin-bottom: 0.5rem; +} + +.demo-plan { + font-size: 0.9rem; + margin-bottom: 1rem; +} + +.demo-plan .badge-premium, +.demo-plan .badge-pro, +.demo-plan .badge-base { + padding: 0.3rem 0.8rem; + border-radius: 20px; + font-size: 0.75rem; + font-weight: 600; + text-transform: uppercase; +} + +.demo-plan .badge-premium { + background: linear-gradient(135deg, #ff6b35, #ff8555); + color: white; +} + +.demo-plan .badge-pro { + background: linear-gradient(135deg, #3b82f6, #60a5fa); + color: white; +} + +.demo-plan .badge-base { + background: rgba(255, 255, 255, 0.1); + color: #888; +} + +.demo-description { + color: #ccc; + font-size: 0.95rem; + line-height: 1.6; +} + +/* Video Demo */ +.video-demo-section { + margin-top: 4rem; + text-align: center; +} + +.video-demo-section h3 { + font-size: 2rem; + margin-bottom: 2rem; + color: #ff6b35; +} + +.video-container { + max-width: 900px; + margin: 0 auto; + border-radius: 15px; + overflow: hidden; + background: rgba(30, 30, 30, 0.8); + border: 2px solid rgba(255, 107, 53, 0.2); +} + +.video-placeholder { + padding: 6rem 2rem; + display: flex; + flex-direction: column; + align-items: center; + gap: 1rem; +} + +.video-placeholder i { + font-size: 4rem; + color: #ff6b35; + opacity: 0.5; +} + +.video-placeholder p { + font-size: 1.2rem; + color: #888; +} + +.video-placeholder small { + font-size: 0.9rem; + color: #666; +} + +/* QR Section - Premium Card con Imagen Difuminada */ +.qr-section { + padding: 150px 0; + background: #ffffff; + position: relative; + overflow: hidden; +} + +.qr-bg-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1920&h=1080&fit=crop&q=80'); + background-size: cover; + background-position: center; + opacity: 0.15; + z-index: 0; +} + +.qr-section .container-large { + position: relative; + z-index: 1; +} + +.qr-card { + background: var(--card-bg); + padding: 80px 60px; + border-radius: 20px; + text-align: center; + box-shadow: var(--shadow-md); + border: 1px solid var(--border-light); + max-width: 600px; + margin: 0 auto; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); +} + +.qr-card:hover { + transform: translateY(-10px); + box-shadow: var(--shadow-lg), var(--shadow-orange); + border-color: rgba(255, 107, 53, 0.15); +} + +.qr-card h3 { + font-size: 2rem; + font-weight: 600; + margin-bottom: 40px; + color: var(--text-primary); + letter-spacing: -0.5px; +} + +.qr-image { + width: 250px; + height: 250px; + border-radius: 15px; + box-shadow: var(--shadow-md); + margin-bottom: 30px; + transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1); +} + +.qr-card:hover .qr-image { + transform: scale(1.05); +} + +.qr-card p { + font-size: 1.1rem; + color: var(--text-light); + font-weight: 300; +} + +/* Contact Section - Premium Cards con Imagen Difuminada */ +.contact-section { + padding: 150px 0; + background: var(--bg-light); + position: relative; + overflow: hidden; +} + +.contact-bg-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1920&h=1080&fit=crop&q=80'); + background-size: cover; + background-position: center; + opacity: 0.18; + z-index: 0; +} + +.contact-section .container-large { + position: relative; + z-index: 1; +} + +.contact-grid { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 60px; + margin-top: 80px; + max-width: 1200px; + margin-left: auto; + margin-right: auto; + justify-items: center; +} + +.contact-cards { + display: flex; + flex-direction: column; + gap: 25px; + width: 100%; + max-width: 400px; + align-items: stretch; +} + +.contact-card { + background: var(--card-bg); + padding: 30px 35px; + border-radius: 15px; + display: flex; + align-items: center; + gap: 25px; + color: var(--text-primary); + text-decoration: none; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: var(--shadow-sm); + border: 1px solid var(--border-light); +} + +.contact-card:hover { + transform: translateX(10px); + box-shadow: var(--shadow-md), var(--shadow-orange); + border-color: rgba(255, 107, 53, 0.2); +} + +.contact-card:hover i { + color: var(--primary-orange); +} + +.contact-card i { + font-size: 1.8rem; + color: var(--text-secondary); + min-width: 35px; + transition: all 0.3s ease; +} + +.contact-card:hover i { + color: var(--text-primary); + transform: scale(1.1); +} + +.contact-card .fa-whatsapp { + color: var(--whatsapp); +} + +.contact-card span { + font-size: 1.1rem; + color: var(--text-secondary); + font-weight: 400; + transition: color 0.3s ease; +} + +.contact-card:hover span { + color: var(--text-primary); +} + +.whatsapp-card:hover { + background: linear-gradient(135deg, rgba(37, 211, 102, 0.05) 0%, rgba(37, 211, 102, 0.1) 100%); +} + +.social-card { + background: var(--card-bg); + padding: 50px 40px; + border-radius: 15px; + box-shadow: var(--shadow-sm); + border: 1px solid var(--border-light); + text-align: center; + width: 100%; + max-width: 400px; +} + +.social-card h3 { + font-size: 1.8rem; + font-weight: 600; + margin-bottom: 40px; + color: var(--text-primary); + letter-spacing: -0.3px; +} + +.social-links-grid { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 20px; +} + +.social-link { + width: 100%; + height: 70px; + border-radius: 12px; + display: flex; + align-items: center; + justify-content: center; + background: var(--bg-light); + color: var(--text-secondary); + text-decoration: none; + font-size: 1.5rem; + position: relative; + overflow: hidden; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + border: 1px solid var(--border-light); +} + +.social-link:hover { + transform: translateY(-5px) scale(1.05); + color: #ffffff; +} + +/* Facebook - Celeste Premium en Contacto con Gradiente Translúcido */ +.social-link[title="Facebook"] .fa-facebook-f { + color: var(--facebook); + font-size: 2rem; + transition: all 0.4s ease; +} + +.social-link[title="Facebook"]:hover { + background: linear-gradient(135deg, rgba(24, 119, 242, 0.15) 0%, rgba(24, 119, 242, 0.25) 100%); + border-color: var(--facebook); + box-shadow: 0 10px 30px rgba(24, 119, 242, 0.4); +} + +.social-link[title="Facebook"]:hover .fa-facebook-f { + color: var(--facebook); + transform: scale(1.2); +} + +/* Instagram - Gradiente Premium en Contacto Translúcido */ +.social-link[title="Instagram"] .fa-instagram { + color: var(--instagram-mid); + font-size: 2rem; + transition: all 0.4s ease; +} + +.social-link[title="Instagram"]:hover { + background: linear-gradient(135deg, + rgba(131, 58, 180, 0.15) 0%, + rgba(225, 48, 108, 0.2) 50%, + rgba(253, 29, 29, 0.25) 100%); + border-color: var(--instagram-mid); + box-shadow: 0 10px 30px rgba(225, 48, 108, 0.5); +} + +.social-link[title="Instagram"]:hover .fa-instagram { + transform: scale(1.2); + background: linear-gradient(135deg, var(--instagram-start) 0%, var(--instagram-mid) 50%, var(--instagram-end) 100%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +/* YouTube - Rojo Premium en Contacto Translúcido */ +.social-link[title="YouTube"] .fa-youtube { + color: var(--youtube); + font-size: 2rem; + transition: all 0.4s ease; +} + +.social-link[title="YouTube"]:hover { + background: linear-gradient(135deg, rgba(255, 0, 0, 0.15) 0%, rgba(255, 0, 0, 0.25) 100%); + border-color: var(--youtube); + box-shadow: 0 10px 30px rgba(255, 0, 0, 0.4); +} + +.social-link[title="YouTube"]:hover .fa-youtube { + color: var(--youtube); + transform: scale(1.2); +} + +/* TikTok - Negro con Cyan en Contacto Translúcido */ +.social-link[title="TikTok"] .fa-tiktok { + color: var(--tiktok); + font-size: 2rem; + transition: all 0.4s ease; +} + +.social-link[title="TikTok"]:hover { + background: linear-gradient(135deg, rgba(0, 0, 0, 0.15) 0%, rgba(0, 242, 234, 0.2) 100%); + border-color: var(--tiktok-hover); + box-shadow: 0 10px 30px rgba(0, 242, 234, 0.5); +} + +.social-link[title="TikTok"]:hover .fa-tiktok { + color: var(--tiktok-hover); + transform: scale(1.2); +} + +/* WhatsApp Float Button */ +.whatsapp-float { + position: fixed; + bottom: 40px; + right: 40px; + width: 70px; + height: 70px; + background: var(--whatsapp); + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + color: #ffffff; + text-decoration: none; + box-shadow: 0 6px 30px rgba(37, 211, 102, 0.4); + z-index: 999; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + font-size: 2rem; + animation: pulse-float 2.5s infinite; +} + +.whatsapp-float:hover { + background: var(--whatsapp-hover); + transform: scale(1.15); + box-shadow: 0 8px 40px rgba(37, 211, 102, 0.5); +} + +@keyframes pulse-float { + 0%, 100% { + box-shadow: 0 6px 30px rgba(37, 211, 102, 0.4); + } + 50% { + box-shadow: 0 6px 40px rgba(37, 211, 102, 0.6); + } +} + +/* Footer - Premium con Imagen Difuminada */ +.footer-main { + padding: 150px 0 100px; + background: #1a1a1a; + color: #ffffff; + text-align: center; + position: relative; + overflow: hidden; +} + +.footer-bg-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1920&h=1080&fit=crop&q=80'); + background-size: cover; + background-position: center; + opacity: 0.25; + z-index: 0; +} + +.footer-main .container-large { + position: relative; + z-index: 1; +} + +.footer-main p { + font-size: 0.95rem; + color: rgba(255, 255, 255, 0.6); + font-weight: 300; + letter-spacing: 0.5px; +} + +/* Scroll to Top Button */ +.scroll-to-top { + position: fixed; + bottom: 120px; + right: 40px; + width: 60px; + height: 60px; + background: var(--text-primary); + color: #ffffff; + border: none; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + font-size: 1.3rem; + z-index: 998; + opacity: 0; + visibility: hidden; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2); +} + +.scroll-to-top.show { + opacity: 1; + visibility: visible; +} + +.scroll-to-top:hover { + background: #000000; + transform: translateY(-5px) scale(1.1); + box-shadow: 0 6px 30px rgba(0, 0, 0, 0.3); +} + +.scroll-to-top i { + transition: transform 0.3s ease; +} + +.scroll-to-top:hover i { + transform: translateY(-2px); +} + +/* Old Styles for Plan Pages */ +header { + background: #222; + color: white; + padding: 40px 20px; + text-align: center; + box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2); +} + +header h1 { + font-size: 3rem; + margin-bottom: 10px; +} + +.tagline { + font-size: 1.2rem; + opacity: 0.9; +} + +.plan-details { + background: #fff; + padding: 40px; + border-radius: 12px; + margin-bottom: 40px; +} + +.plan-details h2 { + font-size: 2rem; + color: #222; + margin-bottom: 30px; +} + +.plan-details h3 { + font-size: 1.5rem; + color: #222; + margin: 30px 0 15px; +} + +.plan-details ul { + list-style: none; + padding: 0; +} + +.plan-details li { + padding: 10px 0; + font-size: 1.1rem; + color: #666; +} + +.plan-details p { + font-size: 1.1rem; + color: #666; + line-height: 1.8; +} + +.plan-details a { + color: #0077B5; + text-decoration: none; +} + +.plan-details a:hover { + text-decoration: underline; +} + +.qr-mini { + text-align: center; + margin-top: 30px; +} + +.qr-mini img { + width: 100px; + height: 100px; + border-radius: 8px; +} + +.contacto { + text-align: center; + padding: 30px; + background: #fff; + border-radius: 10px; +} + +.contacto h3 { + color: #222; + margin-bottom: 20px; +} + +.contacto a { + color: #0077B5; + text-decoration: none; + font-weight: 600; +} + +.contacto a:hover { + text-decoration: underline; +} + +footer { + text-align: center; + padding: 30px; + color: #999; + background: #222; +} + +footer p { + font-size: 0.9rem; +} + +/* Responsive - Premium */ +@media (max-width: 1200px) { + .container-large { + padding: 0 40px; + } + + .plans-grid { + grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); + gap: 40px; + } + + .hero-title { + font-size: 6.5rem; + } +} + +/* Responsive Tablet/Desktop Intermedio */ +@media (max-width: 1000px) and (min-width: 769px) { + .nav-container { + padding: 0 40px; + } + + .nav-menu { + gap: 30px; + } + + .nav-social { + gap: 15px; + } +} + +/* Responsive Mobile - Vertical y Horizontal */ +@media (max-width: 768px) { + /* Asegurar que funcione en vertical y horizontal */ + html { + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; + } + + body { + overflow-x: hidden; + width: 100%; + position: relative; + } + + .container-large { + padding: 0 20px; + width: 100%; + max-width: 100%; + box-sizing: border-box; + } + + .nav-container { + padding: 15px 20px; + flex-direction: column; + gap: 15px; + width: 100%; + } + + .nav-menu { + position: static; + transform: none; + gap: 20px; + justify-content: center; + order: 2; + flex-wrap: wrap; + width: 100%; + } + + .nav-social { + order: 3; + gap: 15px; + justify-content: center; + width: 100%; + } + + .nav-logo { + order: 1; + text-align: center; + } + + .hero-section { + padding: 80px 20px; + min-height: auto; + } + + .hero-title { + font-size: 3.5rem; + letter-spacing: -1px; + line-height: 1.1; + } + + .hero-subtitle { + font-size: 1.2rem; + } + + .hero-description { + font-size: 1rem; + padding: 0 10px; + } + + .section-title { + font-size: 2.5rem; + margin-bottom: 40px; + text-align: center; + } + + .plans-section { + padding: 80px 0; + } + + .plan-accordion-item { + margin-bottom: 20px; + border-radius: 15px; + } + + .plan-accordion-header { + padding: 25px 20px; + flex-direction: row; + align-items: center; + gap: 15px; + position: relative; + } + + .plan-accordion-header h3 { + font-size: 1.8rem; + margin-bottom: 5px; + } + + .plan-accordion-header .plan-tagline { + font-size: 1rem; + } + + .plan-chevron { + position: absolute; + top: 25px; + right: 20px; + margin: 0; + font-size: 1rem; + } + + .plan-card-body { + padding: 30px 20px; + } + + .plan-card-body h4 { + font-size: 1.3rem; + } + + .plan-card-body ul { + font-size: 0.95rem; + } + + .contact-section { + padding: 80px 0; + } + + .contact-grid { + grid-template-columns: 1fr; + gap: 30px; + width: 100%; + justify-items: center; + } + + .contact-cards { + max-width: 100%; + align-items: stretch; + } + + .contact-card { + padding: 25px 20px; + width: 100%; + } + + .social-card { + padding: 40px 30px; + max-width: 100%; + } + + .social-links-grid { + grid-template-columns: repeat(2, 1fr); + gap: 15px; + } + + .social-link { + height: 60px; + font-size: 1.3rem; + } + + .whatsapp-float { + width: 55px; + height: 55px; + bottom: 20px; + right: 20px; + font-size: 1.5rem; + } + + .scroll-to-top { + width: 45px; + height: 45px; + bottom: 85px; + right: 20px; + font-size: 1rem; + } + + .qr-section { + padding: 80px 0; + } + + .qr-card { + padding: 50px 30px; + } + + .qr-image { + width: 200px; + height: 200px; + } + + .footer-main { + padding: 80px 0 60px; + } + + /* VERTICAL móvil - Reducir espacio del nav */ + @media (max-width: 768px) and (orientation: portrait) { + .nav-sticky { + padding: 10px 0; + } + + .nav-container { + padding: 8px 15px; + gap: 8px; + } + + .nav-logo a { + font-size: 1.1rem; + } + + .nav-menu { + gap: 15px; + } + + .nav-link { + font-size: 0.85rem; + } + + .nav-social { + gap: 10px; + } + + .nav-social a { + font-size: 0.9rem; + } + + .hero-section { + padding: 60px 20px 50px; + margin-top: 100px; + } + + .hero-title { + font-size: 2.8rem; + } + } + + /* Horizontal móvil - ARREGLAR SOBREPUESTO */ + @media (max-width: 900px) and (orientation: landscape) { + .nav-sticky { + padding: 8px 0 !important; + } + + .nav-container { + padding: 5px 15px !important; + gap: 8px !important; + flex-direction: column !important; + flex-wrap: wrap !important; + } + + .nav-logo { + order: 1 !important; + flex: 0 0 auto !important; + } + + .nav-logo a { + font-size: 0.9rem !important; + } + + .nav-menu { + order: 2 !important; + position: static !important; + transform: none !important; + gap: 12px !important; + flex-wrap: wrap !important; + justify-content: center !important; + width: 100% !important; + } + + .nav-menu a { + font-size: 0.75rem !important; + padding: 2px 5px !important; + } + + .nav-social { + order: 3 !important; + gap: 10px !important; + justify-content: center !important; + width: 100% !important; + } + + .nav-social a { + width: 28px !important; + height: 28px !important; + font-size: 0.75rem !important; + } + + .hero-section { + padding: 50px 20px 40px !important; + margin-top: 70px !important; + min-height: auto !important; + } + + .hero-title { + font-size: 2.5rem !important; + margin-bottom: 15px !important; + line-height: 1.1 !important; + } + + .hero-subtitle { + font-size: 1rem !important; + margin-bottom: 15px !important; + } + + .hero-description { + font-size: 0.9rem !important; + line-height: 1.5 !important; + } + + .section-title { + font-size: 2rem !important; + margin-bottom: 30px !important; + } + + .plans-section { + padding: 60px 0 !important; + } + + .plan-accordion-header { + padding: 15px 15px !important; + } + + .plan-accordion-header h3 { + font-size: 1.4rem !important; + } + + .plan-accordion-header .plan-tagline { + font-size: 0.85rem !important; + } + + .plan-card-body { + padding: 20px 15px !important; + } + + .contact-section { + padding: 60px 0 !important; + } + + .contact-grid { + grid-template-columns: 1fr !important; + gap: 20px !important; + margin-top: 40px !important; + } + + .contact-cards { + max-width: 100% !important; + } + + .contact-card { + padding: 18px 15px !important; + gap: 15px !important; + } + + .contact-card i { + font-size: 1.4rem !important; + min-width: 25px !important; + } + + .contact-card span { + font-size: 0.9rem !important; + } + + .social-card { + padding: 30px 20px !important; + } + + .social-card h3 { + font-size: 1.4rem !important; + margin-bottom: 25px !important; + } + + .social-links-grid { + gap: 12px !important; + } + + .social-link { + height: 55px !important; + font-size: 1.2rem !important; + } + + .whatsapp-float { + width: 50px !important; + height: 50px !important; + bottom: 15px !important; + right: 15px !important; + font-size: 1.3rem !important; + } + + .scroll-to-top { + width: 40px !important; + height: 40px !important; + bottom: 70px !important; + right: 15px !important; + font-size: 0.9rem !important; + } + + .demos-section { + padding: 60px 0 !important; + } + + .demos-grid { + grid-template-columns: 1fr !important; + gap: 20px !important; + } + + .demo-card { + margin-bottom: 15px !important; + } + + .demo-image { + height: 180px !important; + } + + .demo-info { + padding: 15px !important; + } + + .demo-info h3 { + font-size: 1.2rem !important; + } + + .qr-section { + padding: 60px 0 !important; + } + + .qr-card { + padding: 40px 25px !important; + } + + .qr-image { + width: 180px !important; + height: 180px !important; + } + + .footer-main { + padding: 60px 0 40px !important; + } + } +} + +/* Modal Form - Formulario de Pedido */ +.modal-form { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.7); + display: flex; + justify-content: center; + align-items: center; + z-index: 10000; + padding: 20px; + backdrop-filter: blur(5px); +} + +.modal-form-content { + background: var(--card-bg); + border-radius: 20px; + max-width: 600px; + width: 100%; + max-height: 90vh; + overflow-y: auto; + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); + animation: modalFadeIn 0.3s ease; +} + +@keyframes modalFadeIn { + from { + opacity: 0; + transform: translateY(-20px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.modal-form-header { + padding: 30px 40px; + border-bottom: 1px solid var(--border-light); + display: flex; + justify-content: space-between; + align-items: center; + background: linear-gradient(135deg, #fafafa 0%, #ffffff 100%); + border-radius: 20px 20px 0 0; +} + +.modal-form-header h2 { + font-size: 2rem; + font-weight: 600; + color: var(--text-primary); + margin: 0; +} + +.modal-form-header h2 span { + color: var(--primary-orange); +} + +.modal-close { + background: none; + border: none; + font-size: 2.5rem; + color: var(--text-secondary); + cursor: pointer; + padding: 0; + width: 40px; + height: 40px; + display: flex; + align-items: center; + justify-content: center; + border-radius: 50%; + transition: all 0.3s ease; +} + +.modal-close:hover { + background: var(--bg-light); + color: var(--text-primary); +} + +.modal-form form { + padding: 40px; +} + +.form-group { + margin-bottom: 30px; +} + +.form-group label { + display: block; + font-size: 1rem; + font-weight: 500; + color: var(--text-primary); + margin-bottom: 10px; +} + +.form-group input, +.form-group textarea { + width: 100%; + padding: 15px 20px; + border: 1px solid var(--border-light); + border-radius: 10px; + font-size: 1rem; + font-family: 'Inter', sans-serif; + background: var(--bg-light); + color: var(--text-primary); + transition: all 0.3s ease; + box-sizing: border-box; +} + +.form-group input:focus, +.form-group textarea:focus { + outline: none; + border-color: var(--primary-orange); + background: #ffffff; + box-shadow: 0 0 0 3px rgba(255, 107, 53, 0.1); +} + +.form-group textarea { + resize: vertical; + min-height: 120px; +} + +.form-group small { + display: block; + margin-top: 8px; + font-size: 0.85rem; + color: var(--text-light); +} + +.form-actions { + display: flex; + gap: 15px; + margin-top: 40px; + justify-content: flex-end; +} + +.btn-cancel, +.btn-preview, +.btn-submit { + padding: 15px 35px; + border: none; + border-radius: 10px; + font-size: 1rem; + font-weight: 500; + cursor: pointer; + transition: all 0.3s ease; + font-family: 'Inter', sans-serif; +} + +.btn-cancel { + background: var(--bg-light); + color: var(--text-secondary); +} + +.btn-cancel:hover { + background: #e5e5e5; + color: var(--text-primary); +} + +.btn-preview { + background: #3b82f6; + color: #ffffff; +} + +.btn-preview:hover { + background: #2563eb; + transform: translateY(-2px); + box-shadow: 0 5px 15px rgba(59, 130, 246, 0.3); +} + +.btn-preview:disabled { + background: #9ca3af; + cursor: not-allowed; + transform: none; +} + +.btn-submit { + background: var(--primary-orange); + color: #ffffff; +} + +.btn-submit:hover { + background: rgba(255, 107, 53, 0.9); + transform: translateY(-2px); + box-shadow: 0 5px 15px rgba(255, 107, 53, 0.3); +} + +/* Modal responsive dentro de media query móvil */ +@media (max-width: 768px) { + .modal-form { + padding: 10px; + } + + .modal-form-content { + max-height: 95vh; + border-radius: 15px; + } + + .modal-form-header { + padding: 20px 25px; + } + + .modal-form-header h2 { + font-size: 1.5rem; + } + + .modal-form form { + padding: 30px 25px; + } + + .form-actions { + flex-direction: column; + } + + .btn-cancel, + .btn-preview, + .btn-submit { + width: 100%; + } +} + +/* ============================================ + SISTEMA DE PREVIEWS - CARDS Y MODALES + ============================================ */ + +/* Grupo de botones en planes */ +.plan-buttons-group { + display: flex; + gap: 12px; + margin-top: 25px; + flex-wrap: wrap; + align-items: center; +} + +.plan-btn-preview { + background: white; + border: 2px solid #1877F2; + color: #1877F2; + padding: 12px 24px; + border-radius: 10px; + font-size: 0.95rem; + font-weight: 600; + cursor: pointer; + transition: all 0.4s ease; + display: flex; + align-items: center; + gap: 8px; + box-shadow: 0 4px 15px rgba(24, 119, 242, 0.2); + letter-spacing: 0.3px; +} + +.plan-btn-preview:hover { + background: #1877F2; + color: white; + transform: translateY(-3px) scale(1.05); + box-shadow: 0 8px 25px rgba(24, 119, 242, 0.4); +} + +.plan-btn-preview i { + font-size: 1rem; + transition: all 0.4s ease; +} + +.plan-btn-preview:hover i { + transform: scale(1.15); +} + +/* Modal de Previews */ +.previews-modal { + display: none; + position: fixed; + z-index: 10000; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.85); + backdrop-filter: blur(5px); + overflow-y: auto; + padding: 20px; +} + +.previews-modal-content { + background: white; + margin: 40px auto; + max-width: 1400px; + border-radius: 20px; + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); + overflow: hidden; + animation: modalSlideIn 0.3s ease; +} + +@keyframes modalSlideIn { + from { + opacity: 0; + transform: translateY(-30px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.previews-modal-header { + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + color: white; + padding: 25px 30px; + display: flex; + justify-content: space-between; + align-items: center; +} + +.previews-modal-header h2 { + margin: 0; + font-size: 1.8rem; + font-weight: 600; +} + +.previews-filters { + padding: 20px 30px; + background: #f8f9fa; + border-bottom: 1px solid #e0e0e0; +} + +.filter-group { + display: flex; + flex-direction: column; + gap: 8px; +} + +.filter-group label { + font-weight: 600; + color: #333; + font-size: 0.9rem; +} + +.filter-group select { + padding: 10px 15px; + border: 2px solid #ddd; + border-radius: 8px; + font-size: 1rem; + background: white; + cursor: pointer; + transition: border-color 0.3s, box-shadow 0.3s; + min-width: 250px; +} + +.filter-group select:hover { + border-color: #1877F2; +} + +.filter-group select:focus { + outline: none; + border-color: #1877F2; + box-shadow: 0 0 0 3px rgba(24, 119, 242, 0.1); +} + +/* Grid de Previews */ +.previews-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); + gap: 30px; + padding: 30px; +} + +/* Cards de Preview - Diseño Tipo Card */ +.template-card { + background: white; + border-radius: 16px; + overflow: hidden; + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15); + transition: transform 0.3s ease, box-shadow 0.3s ease; + cursor: pointer; + position: relative; +} + +.template-card:hover { + transform: translateY(-8px); + box-shadow: 0 8px 30px rgba(0, 0, 0, 0.25); +} + +.template-preview { + position: relative; + overflow: hidden; + background: #f5f5f5; + aspect-ratio: 16/9; +} + +.template-preview img { + width: 100%; + height: 100%; + object-fit: cover; + display: block; + transition: transform 0.3s ease; +} + +.template-card:hover .template-preview img { + transform: scale(1.05); +} + +.template-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: linear-gradient(to bottom, transparent 0%, rgba(0, 0, 0, 0.7) 100%); + opacity: 0; + transition: opacity 0.3s ease; + display: flex; + align-items: flex-end; + padding: 20px; +} + +.template-card:hover .template-overlay { + opacity: 1; +} + +.overlay-info { + color: white; + width: 100%; +} + +.overlay-info h4 { + margin: 0 0 5px 0; + font-size: 1.1rem; + font-weight: 600; +} + +.overlay-info p { + margin: 0; + font-size: 0.9rem; + opacity: 0.9; +} + +.template-info { + padding: 20px; +} + +.template-info h3 { + margin: 0 0 10px 0; + font-size: 1.2rem; + color: #333; + font-weight: 600; +} + +.template-meta { + display: flex; + gap: 10px; + flex-wrap: wrap; + margin-bottom: 15px; +} + +.badge-plan { + display: inline-block; + padding: 4px 12px; + border-radius: 12px; + font-size: 0.85rem; + font-weight: 600; + text-transform: uppercase; +} + +.badge-base { + background: #95a5a6; + color: white; +} + +.badge-pro { + background: #3498db; + color: white; +} + +.badge-premium { + background: #9b59b6; + color: white; +} + +.badge-vip { + background: #f39c12; + color: white; +} + +.badge-rubro { + background: #e0e0e0; + color: #333; + font-size: 0.8rem; +} + +.template-description { + color: #666; + font-size: 0.9rem; + line-height: 1.5; + margin: 0; +} + +/* Lightbox de Screenshot Grande */ +.screenshot-lightbox { + display: none; + position: fixed; + z-index: 10001; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.95); + backdrop-filter: blur(10px); + overflow-y: auto; + padding: 40px 20px; +} + +.lightbox-content { + max-width: 1200px; + margin: 0 auto; + position: relative; + background: white; + border-radius: 20px; + overflow: hidden; + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5); + animation: lightboxFadeIn 0.3s ease; +} + +@keyframes lightboxFadeIn { + from { + opacity: 0; + transform: scale(0.9); + } + to { + opacity: 1; + transform: scale(1); + } +} + +.lightbox-close { + position: absolute; + top: 20px; + right: 20px; + font-size: 2rem; + color: white; + cursor: pointer; + z-index: 10; + width: 40px; + height: 40px; + display: flex; + align-items: center; + justify-content: center; + background: rgba(0, 0, 0, 0.5); + border-radius: 50%; + transition: background 0.3s; +} + +.lightbox-close:hover { + background: rgba(0, 0, 0, 0.8); +} + +.lightbox-content img { + width: 100%; + height: auto; + display: block; +} + +.lightbox-info { + padding: 30px; + background: white; +} + +.lightbox-info h3 { + margin: 0 0 10px 0; + font-size: 1.5rem; + color: #333; +} + +.lightbox-info p { + margin: 0 0 20px 0; + color: #666; + font-size: 1rem; +} + +.btn-request-design { + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + color: white; + border: none; + padding: 15px 30px; + border-radius: 10px; + font-size: 1rem; + font-weight: 600; + cursor: pointer; + transition: transform 0.3s, box-shadow 0.3s; + display: flex; + align-items: center; + gap: 10px; +} + +.btn-request-design:hover { + transform: translateY(-2px); + box-shadow: 0 5px 20px rgba(102, 126, 234, 0.4); +} + +/* Responsive */ +@media (max-width: 768px) { + .plan-buttons-group { + flex-direction: column; + } + + .plan-btn-preview { + width: 100%; + justify-content: center; + } + + .previews-grid { + grid-template-columns: 1fr; + padding: 20px; + } + + .previews-modal-content { + margin: 20px; + border-radius: 15px; + } + + .previews-modal-header { + padding: 20px; + } + + .previews-modal-header h2 { + font-size: 1.4rem; + } + + .lightbox-content { + margin: 20px; + } +} \ No newline at end of file diff --git a/backups/backup-20260114-085602/local/demo/templates/admin.html b/backups/backup-20260114-085602/local/demo/templates/admin.html new file mode 100644 index 0000000..4bd1a0f --- /dev/null +++ b/backups/backup-20260114-085602/local/demo/templates/admin.html @@ -0,0 +1,113 @@ + + + + + Admin - Demo + + + +
+

🔧 Panel Admin

+
+ +

Solicitudes Pendientes

+ + + + + + + + + {% for req in requests %} + + + + + + + + {% endfor %} + {% if not requests %} + + {% endif %} +
IDSlugEmail ClienteFechaAcción
{{ req.id }}{{ req.slug }}{{ req.email }}{{ req.created_at }} + +
No hay solicitudes pendientes
+ +

Todos los Sitios

+ + + + + + + + + {% for site in sites %} + + + + + + + + {% endfor %} +
IDSlugTemaStatusVer
{{ site.id }}{{ site.slug }}{{ site.theme }}{{ site.status }} + {% if site.status == 'published' %} + Ver + {% endif %} +
+ + + + diff --git a/backups/backup-20260114-085602/local/demo/templates/client_admin.html b/backups/backup-20260114-085602/local/demo/templates/client_admin.html new file mode 100644 index 0000000..42ec59f --- /dev/null +++ b/backups/backup-20260114-085602/local/demo/templates/client_admin.html @@ -0,0 +1,311 @@ + + + + + Admin - Cliente + + + +
+

⚙️ Panel de Administración

+ +
+ +
+ + + +
+ + +
+

Gestionar Imágenes

+
+

📤 Arrastra imágenes aquí o haz clic para subir

+

Formatos: JPG, PNG, GIF (máx. 5MB)

+ +
+
+ +
+
+ + +
+

Configuración de Cuenta

+
+
+ + +
+
+ + +
+
+ + +
+ +
+
+ + +
+

Mis Sitios

+
+ {% for site in sites %} +
+
+
+

{{ site.slug }}

+

Tema: {{ site.theme }} | Estado: {{ site.status }}

+
+ +
+
+ {% endfor %} +
+
+ + + + diff --git a/backups/backup-20260114-085602/local/demo/templates/create_site.html b/backups/backup-20260114-085602/local/demo/templates/create_site.html new file mode 100644 index 0000000..67d7b1e --- /dev/null +++ b/backups/backup-20260114-085602/local/demo/templates/create_site.html @@ -0,0 +1,82 @@ + + + + + Crear Sitio - Demo + + + +
+

➕ Crear Nuevo Sitio

+
+ + + + + + +
+ ← Volver +
+ + + + diff --git a/backups/backup-20260114-085602/local/demo/templates/customizer.html b/backups/backup-20260114-085602/local/demo/templates/customizer.html new file mode 100644 index 0000000..8d8b056 --- /dev/null +++ b/backups/backup-20260114-085602/local/demo/templates/customizer.html @@ -0,0 +1,467 @@ + + + + + Personalizar - {{ site_name or 'Sitio' }} + + + + + +
+
+

Vista Previa

+
+ +
+
+
+
Cargando vista previa...
+ +
+
+ +
✅ Cambios guardados
+ + + + diff --git a/backups/backup-20260114-085602/local/demo/templates/dashboard.html b/backups/backup-20260114-085602/local/demo/templates/dashboard.html new file mode 100644 index 0000000..ce62c71 --- /dev/null +++ b/backups/backup-20260114-085602/local/demo/templates/dashboard.html @@ -0,0 +1,108 @@ + + + + + Dashboard - Demo + + + +
+

📊 Mi Panel de Control

+ +
+ +
+ {% for site in sites %} +
+

{{ site.slug }}

+

Tema: {{ site.theme }}

+ {{ site.status }} +
+ ✏️ Editar + {% if site.status == 'draft' %} + + {% endif %} +
+
+ {% endfor %} + + {% if not sites %} +
+

No tienes sitios aún. Crear uno

+
+ {% endif %} +
+ + + + diff --git a/backups/backup-20260114-085602/local/demo/templates/landing.html b/backups/backup-20260114-085602/local/demo/templates/landing.html new file mode 100644 index 0000000..594b57e --- /dev/null +++ b/backups/backup-20260114-085602/local/demo/templates/landing.html @@ -0,0 +1,47 @@ + + + + + PageBuilder SaaS - Demo + + + +
+

🎨 PageBuilder SaaS

+

Crea tu sitio web en minutos

+ Registrarse + Iniciar Sesión + Admin +
+ + diff --git a/backups/backup-20260114-085602/local/demo/templates/landing_real.html b/backups/backup-20260114-085602/local/demo/templates/landing_real.html new file mode 100644 index 0000000..ee88408 --- /dev/null +++ b/backups/backup-20260114-085602/local/demo/templates/landing_real.html @@ -0,0 +1,1442 @@ + + + + + + + + + + + + + + + + + + + + + + + + GKACHELE™ | Desarrollo Web Premium + + + + + + + + + +
+
+
+

GKACHELE™

+

Desarrollo Web Premium

+

Estamos listos para ayudarte a crear tu sitio moderno, rápido y personalizado.

+
+
+ + +
+
+
+

Nuestros Planes

+ + +
+ +
+ +
+
+

¿Qué incluye?

+
    +
  • ✅ Sitio web de una página
  • +
  • ✅ Diseño limpio y profesional
  • +
  • ✅ Información de contacto
  • +
  • ✅ Enlaces a redes sociales
  • +
  • ✅ Responsive (móvil y desktop)
  • +
  • ✅ Hosting gratuito
  • +
  • ✅ Dominio personalizado
  • +
+

Personalización

+
    +
  • 🎨 Color principal personalizado
  • +
  • ✍️ Tipografía a elección
  • +
  • 📝 Textos personalizados
  • +
+

Ideal para: Profesionales independientes, pequeños comercios, páginas institucionales básicas.

+
+ QR Base +

Comparte este plan

+
+
+ +
+
+
+
+ + +
+ +
+
+

¿Qué incluye?

+
    +
  • ✅ Sitio web multipágina
  • +
  • ✅ Animaciones suaves y efectos visuales
  • +
  • ✅ Galería de imágenes o portafolio
  • +
  • ✅ Formulario de contacto funcional
  • +
  • ✅ Responsive avanzado
  • +
  • ✅ Hosting gratuito
  • +
  • ✅ Dominio personalizado
  • +
+

Personalización

+
    +
  • 🎨 Paleta de colores personalizada
  • +
  • ✍️ Tipografía profesional
  • +
  • 🧩 Secciones a medida
  • +
+

Ideal para: Marcas personales, portfolios creativos, negocios que quieren destacar visualmente.

+
+ QR Pro +

Comparte este plan

+
+
+ +
+
+
+
+ + +
+ +
+
+

¿Qué incluye?

+
    +
  • ✅ Sitio web completo y escalable
  • +
  • ✅ Integración con redes sociales y herramientas externas
  • +
  • ✅ SEO optimizado
  • +
  • ✅ Panel de administración (opcional)
  • +
  • ✅ Hosting y dominio incluidos
  • +
  • ✅ Soporte técnico personalizado
  • +
+

Personalización

+
    +
  • 🎨 Diseño a medida
  • +
  • 📊 Integración con analítica
  • +
  • 🔒 Seguridad avanzada
  • +
+

Ideal para: Empresas, proyectos grandes, tiendas online, instituciones con necesidades específicas.

+
+ QR Premium +

Comparte este plan

+
+
+ +
+
+
+
+
+
+
+ + + + + + + + + + + +
+
+
+

Proyectos Demo

+

Ejemplos de sitios web que hemos creado

+ +
+ +
+
+
💃 Blow Dance
+ +
+
+

Blow Dance

+

💃 Escuela de Danza

+

Plan: Pro

+

Sitio web profesional para escuela de danza con galerías, videos y sistema de inscripción.

+
+
+ + +
+
+
🗳️ Dalmau
+ +
+
+

Dalmau Intendente

+

⚖️ Despacho Profesional

+

Plan: Base

+

Landing page profesional para despachos de abogados y contadores con información clara y llamados a la acción.

+
+
+ + +
+
+
💼 GKACHELE
+ +
+
+

GKACHELE™

+

💼 Portfolio Profesional

+

Plan: Premium

+

Sitio web premium con diseño moderno, animaciones y sistema de gestión avanzado.

+
+
+
+ + + +
+
+ + +
+
+
+
+

Comparte tu sitio

+ QR Code GKACHELE™ +

Escanea el código QR para compartir

+
+
+
+ + +
+
+ +
+ + + + + + + + + + +
+ +
+

© 2025 GKACHELE™. Todos los derechos reservados.

+ +

+ Código propiedad de GKACHELE © 2025 - Prohibida su reproducción sin autorización +

+
+
+ + + + diff --git a/backups/backup-20260114-085602/local/demo/templates/login.html b/backups/backup-20260114-085602/local/demo/templates/login.html new file mode 100644 index 0000000..3a1c3aa --- /dev/null +++ b/backups/backup-20260114-085602/local/demo/templates/login.html @@ -0,0 +1,91 @@ + + + + + Login - Demo + + + +
+

🔐 Iniciar Sesión

+
+ + + +
+

+ ¿No tienes cuenta? Regístrate +

+
+ + + + diff --git a/backups/backup-20260114-085602/local/demo/templates/public_site.html b/backups/backup-20260114-085602/local/demo/templates/public_site.html new file mode 100644 index 0000000..5705e22 --- /dev/null +++ b/backups/backup-20260114-085602/local/demo/templates/public_site.html @@ -0,0 +1,33 @@ + + + + + {{ content.site_name or 'Mi Sitio' }} + + + +
+

{{ content.hero_title or 'Título' }}

+

{{ content.hero_description or 'Descripción' }}

+
+ + diff --git a/backups/backup-20260114-085602/local/demo/templates/register.html b/backups/backup-20260114-085602/local/demo/templates/register.html new file mode 100644 index 0000000..6c5534d --- /dev/null +++ b/backups/backup-20260114-085602/local/demo/templates/register.html @@ -0,0 +1,132 @@ + + + + + Registro - Demo + + + +
+

📝 Registrarse

+
+ + + + + +
+

+ ¿Ya tienes cuenta? Inicia sesión +

+
+ + + + diff --git a/backups/backup-20260114-085602/local/demo/test.py b/backups/backup-20260114-085602/local/demo/test.py new file mode 100644 index 0000000..7013d93 --- /dev/null +++ b/backups/backup-20260114-085602/local/demo/test.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python3 +"""Test rápido para verificar que todo funciona""" + +import sys +import os + +# Agregar directorio actual al path +sys.path.insert(0, os.path.dirname(__file__)) + +try: + from app import app + print("✅ App importada correctamente") + print("✅ Flask funcionando") + print(f"✅ Templates en: {app.template_folder}") + print("\n🚀 Para iniciar:") + print(" python3 app.py") + print("\n📍 URL: http://localhost:5001") +except Exception as e: + print(f"❌ Error: {e}") + import traceback + traceback.print_exc() + sys.exit(1) diff --git a/backups/backup-20260114-085602/local/demo/themes/_gkachele/footer.php b/backups/backup-20260114-085602/local/demo/themes/_gkachele/footer.php new file mode 100644 index 0000000..97ab4fc --- /dev/null +++ b/backups/backup-20260114-085602/local/demo/themes/_gkachele/footer.php @@ -0,0 +1,22 @@ + + +
+
+ {% if menus.footer %} + + {% endif %} +

+ © 2025 GKACHELE™. Todos los derechos reservados.
+ Desarrollado desde noviembre 2025 por GKACHELE
+ Código propiedad de GKACHELE © 2025 - Prohibida su reproducción sin autorización +

+
+
+ + diff --git a/backups/backup-20260114-085602/local/demo/themes/_gkachele/header.php b/backups/backup-20260114-085602/local/demo/themes/_gkachele/header.php new file mode 100644 index 0000000..52440a7 --- /dev/null +++ b/backups/backup-20260114-085602/local/demo/themes/_gkachele/header.php @@ -0,0 +1,112 @@ + + + + + + + {% if site_name %}{{ site_name }}{% else %}GKACHELE Site{% endif %} + + + + + + +
+ +
+
diff --git a/backups/backup-20260114-085602/local/demo/themes/_gkachele/sidebar.php b/backups/backup-20260114-085602/local/demo/themes/_gkachele/sidebar.php new file mode 100644 index 0000000..a6adb25 --- /dev/null +++ b/backups/backup-20260114-085602/local/demo/themes/_gkachele/sidebar.php @@ -0,0 +1,33 @@ + + diff --git a/backups/backup-20260114-085602/local/demo/themes/gimnasio-claro/config.json b/backups/backup-20260114-085602/local/demo/themes/gimnasio-claro/config.json new file mode 100644 index 0000000..b1cffcc --- /dev/null +++ b/backups/backup-20260114-085602/local/demo/themes/gimnasio-claro/config.json @@ -0,0 +1,29 @@ +{ + "name": "Gimnasio Claro", + "rubro": "gimnasios", + "description": "Tema claro y moderno para gimnasios", + "sections": [ + "hero", + "planes_fitness", + "horarios", + "entrenadores", + "instalaciones", + "contacto" + ], + "colors": { + "primary": "#ff4d4d", + "secondary": "#1a1a1a", + "accent": "#ff6b6b" + }, + "typography": { + "font_family": "Roboto", + "headings": "Roboto" + }, + "features": { + "planes_fitness": true, + "horarios": true, + "entrenadores": true, + "instalaciones": true, + "precios": true + } +} diff --git a/backups/backup-20260114-085602/local/demo/themes/restaurante-elegante/config.json b/backups/backup-20260114-085602/local/demo/themes/restaurante-elegante/config.json new file mode 100644 index 0000000..4c06aa9 --- /dev/null +++ b/backups/backup-20260114-085602/local/demo/themes/restaurante-elegante/config.json @@ -0,0 +1,32 @@ +{ + "name": "Restaurante Elegante", + "rubro": "restaurante", + "description": "Tema sofisticado y elegante para restaurantes de alta cocina", + "sections": [ + "hero", + "menu", + "horarios", + "reservas", + "especialidad_culinaria", + "galeria", + "contacto" + ], + "colors": { + "primary": "#8b4513", + "secondary": "#d4af37", + "accent": "#f5deb3", + "text": "#2c2c2c" + }, + "typography": { + "font_family": "Georgia", + "headings": "Cormorant Garamond" + }, + "features": { + "menu_url": true, + "horarios": true, + "reservas": true, + "capacidad": true, + "especialidad_culinaria": true, + "galeria": true + } +} diff --git a/backups/backup-20260114-085602/local/demo/themes/restaurante-elegante/template.html b/backups/backup-20260114-085602/local/demo/themes/restaurante-elegante/template.html new file mode 100644 index 0000000..8541f9d --- /dev/null +++ b/backups/backup-20260114-085602/local/demo/themes/restaurante-elegante/template.html @@ -0,0 +1,649 @@ + + + + + + {{ site_name or 'Restaurante Elegante' }} + + + + + + + +
+ +
+ + +
+
+

{{ hero_title or 'Experiencia Culinaria Excepcional' }}

+

{{ hero_description or 'Donde la tradición se encuentra con la innovación' }}

+ Reservar Mesa +
+
+ + + + + +
+
+

Horarios de Atención

+
+
+

Lunes - Viernes

+

{{ horarios.lunes_viernes or '13:00 - 23:00' }}

+
+
+

Sábados

+

{{ horarios.sabados or '13:00 - 00:00' }}

+
+
+

Domingos

+

{{ horarios.domingos or '13:00 - 22:00' }}

+
+
+
+
+ + +
+
+

Reserva tu Mesa

+
+

+ Complete el formulario y nos pondremos en contacto para confirmar su reserva. +

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+
+
+ + +
+
+
+
+

{{ especialidad_culinaria.titulo or 'Nuestra Especialidad' }}

+

{{ especialidad_culinaria.descripcion or 'Cada plato es una obra de arte, preparado con ingredientes de la más alta calidad y técnicas culinarias refinadas que honran la tradición gastronómica.' }}

+
+
+ Especialidad Culinaria +
+
+
+
+ + +
+
+

Contacto

+
+
+

Información de Contacto

+

Dirección: {{ direccion or 'Avenida Principal 456, Ciudad' }}

+

Teléfono: {{ telefono or '+34 987 654 321' }}

+

Email: {{ email or 'contacto@restaurante.com' }}

+ {% if capacidad %} +

Capacidad: {{ capacidad }} personas

+ {% endif %} +
+ {% if redes_sociales.facebook %} + 📘 + {% endif %} + {% if redes_sociales.instagram %} + 📷 + {% endif %} + {% if redes_sociales.twitter %} + 🐦 + {% endif %} + {% if redes_sociales.whatsapp %} + 💬 + {% endif %} +
+
+
+

Ubicación

+ {% if mapa_url %} + + {% else %} +

Mapa de ubicación disponible próximamente

+ {% endif %} +
+
+
+
+ + +
+
+

© 2025 {{ site_name or 'Restaurante Elegante' }}. Todos los derechos reservados.

+
+
+ + diff --git a/backups/backup-20260114-085602/local/demo/themes/restaurante-moderno/config.json b/backups/backup-20260114-085602/local/demo/themes/restaurante-moderno/config.json new file mode 100644 index 0000000..59da350 --- /dev/null +++ b/backups/backup-20260114-085602/local/demo/themes/restaurante-moderno/config.json @@ -0,0 +1,29 @@ +{ + "name": "Restaurante Moderno", + "rubro": "restaurante", + "description": "Tema elegante para restaurantes", + "sections": [ + "hero", + "menu", + "horarios", + "reservas", + "especialidad_culinaria", + "contacto" + ], + "colors": { + "primary": "#d32f2f", + "secondary": "#ff6f00", + "accent": "#ff8f00" + }, + "typography": { + "font_family": "Roboto", + "headings": "Playfair Display" + }, + "features": { + "menu_url": true, + "horarios": true, + "reservas": true, + "capacidad": true, + "especialidad_culinaria": true + } +} diff --git a/backups/backup-20260114-085602/local/demo/themes/restaurante-moderno/style.css b/backups/backup-20260114-085602/local/demo/themes/restaurante-moderno/style.css new file mode 100644 index 0000000..fde8fef --- /dev/null +++ b/backups/backup-20260114-085602/local/demo/themes/restaurante-moderno/style.css @@ -0,0 +1,44 @@ +/* Estilos adicionales para el tema Restaurante Moderno */ +/* Estos estilos complementan el template.html */ + +/* Animaciones suaves */ +@keyframes fadeInUp { + from { + opacity: 0; + transform: translateY(30px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.section { + animation: fadeInUp 0.6s ease-out; +} + +/* Efectos hover mejorados */ +.menu-item, +.horario-item { + transition: all 0.3s ease; +} + +/* Scroll suave */ +html { + scroll-behavior: smooth; +} + +/* Mejoras responsive */ +@media (max-width: 480px) { + .hero h1 { + font-size: 32px; + } + + .section-title { + font-size: 32px; + } + + .menu-grid { + grid-template-columns: 1fr; + } +} diff --git a/backups/backup-20260114-085602/local/demo/themes/restaurante-moderno/template.html b/backups/backup-20260114-085602/local/demo/themes/restaurante-moderno/template.html new file mode 100644 index 0000000..29b5146 --- /dev/null +++ b/backups/backup-20260114-085602/local/demo/themes/restaurante-moderno/template.html @@ -0,0 +1,562 @@ + + + + + + {{ site_name or 'Restaurante' }} + + + + + + + +
+ +
+ + +
+
+

{{ hero_title or 'Bienvenido a Nuestro Restaurante' }}

+

{{ hero_description or 'Sabores auténticos que despiertan tus sentidos' }}

+ Reservar Mesa +
+
+ + + + + +
+
+

Horarios de Atención

+
+
+

Lunes - Viernes

+

{{ horarios.lunes_viernes or '12:00 PM - 10:00 PM' }}

+
+
+

Sábados

+

{{ horarios.sabados or '12:00 PM - 11:00 PM' }}

+
+
+

Domingos

+

{{ horarios.domingos or '12:00 PM - 9:00 PM' }}

+
+
+
+
+ + +
+
+

Reserva tu Mesa

+
+

+ Completa el formulario y nos pondremos en contacto contigo para confirmar tu reserva. +

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+
+
+ + +
+
+
+
+

{{ especialidad_culinaria.titulo or 'Nuestra Especialidad' }}

+

{{ especialidad_culinaria.descripcion or 'Cada plato es una obra de arte culinaria, preparado con ingredientes frescos y técnicas tradicionales que honran la autenticidad de nuestros sabores.' }}

+
+
+ Especialidad Culinaria +
+
+
+
+ + +
+
+

Contacto

+
+
+

Información de Contacto

+

Dirección: {{ direccion or 'Calle Principal 123, Ciudad' }}

+

Teléfono: {{ telefono or '+34 123 456 789' }}

+

Email: {{ email or 'contacto@restaurante.com' }}

+ {% if capacidad %} +

Capacidad: {{ capacidad }} personas

+ {% endif %} +
+ {% if redes_sociales.facebook %} + 📘 + {% endif %} + {% if redes_sociales.instagram %} + 📷 + {% endif %} + {% if redes_sociales.twitter %} + 🐦 + {% endif %} + {% if redes_sociales.whatsapp %} + 💬 + {% endif %} +
+
+
+

Ubicación

+ {% if mapa_url %} + + {% else %} +

Mapa de ubicación disponible próximamente

+ {% endif %} +
+
+
+
+ + +
+
+

© 2025 {{ site_name or 'Restaurante' }}. Todos los derechos reservados.

+
+
+ + diff --git a/backups/backup-20260114-085602/local/demo/ver_usuarios.py b/backups/backup-20260114-085602/local/demo/ver_usuarios.py new file mode 100644 index 0000000..a2df7f9 --- /dev/null +++ b/backups/backup-20260114-085602/local/demo/ver_usuarios.py @@ -0,0 +1,78 @@ +""" +GKACHELE™ - Script para ver usuarios registrados +© 2025 GKACHELE™. Todos los derechos reservados. +Uso: python ver_usuarios.py +""" + +import sqlite3 +import os +from datetime import datetime + +# Ruta de la base de datos +BASE_DIR = os.path.dirname(__file__) +DATABASE_DIR = os.path.join(BASE_DIR, 'database') +MAIN_DB = os.path.join(DATABASE_DIR, 'main.db') + +def ver_usuarios(): + """Ver todos los usuarios registrados""" + if not os.path.exists(MAIN_DB): + print(f"❌ No se encontró la base de datos en: {MAIN_DB}") + return + + try: + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Obtener usuarios + c.execute('SELECT id, email, plan, rubro, created_at FROM users ORDER BY id') + users = c.fetchall() + + if not users: + print("📭 No hay usuarios registrados aún") + return + + print("=" * 80) + print("👥 USUARIOS REGISTRADOS") + print("=" * 80) + print(f"{'ID':<5} {'Email':<35} {'Plan':<10} {'Rubro':<15} {'Fecha Registro':<20}") + print("-" * 80) + + for user in users: + user_id, email, plan, rubro, created_at = user + # Formatear fecha + fecha = created_at if created_at else 'N/A' + print(f"{user_id:<5} {email:<35} {plan:<10} {rubro:<15} {fecha:<20}") + + print("-" * 80) + print(f"Total: {len(users)} usuario(s)") + + # Obtener sitios por usuario + print("\n" + "=" * 80) + print("🌐 SITIOS POR USUARIO") + print("=" * 80) + + for user in users: + user_id, email, plan, rubro, created_at = user + c.execute('SELECT id, slug, theme, status, created_at FROM sites WHERE user_id = ? ORDER BY id', (user_id,)) + sites = c.fetchall() + + print(f"\n👤 Usuario ID {user_id} ({email}):") + if sites: + print(f" {'ID':<5} {'Slug':<25} {'Tema':<20} {'Estado':<12} {'Fecha':<20}") + print(" " + "-" * 82) + for site in sites: + site_id, slug, theme, status, site_created = site + fecha = site_created if site_created else 'N/A' + print(f" {site_id:<5} {slug:<25} {theme:<20} {status:<12} {fecha:<20}") + else: + print(" ⚠️ No tiene sitios creados") + + conn.close() + + except Exception as e: + print(f"❌ Error: {e}") + import traceback + traceback.print_exc() + +if __name__ == '__main__': + ver_usuarios() diff --git a/backups/backup-20260114-085602/local/setup-cron.sh b/backups/backup-20260114-085602/local/setup-cron.sh new file mode 100644 index 0000000..d4d94bd --- /dev/null +++ b/backups/backup-20260114-085602/local/setup-cron.sh @@ -0,0 +1,9 @@ +#!/bin/bash +# Script para configurar cron en Raspberry + +# Agregar entrada de cron +(crontab -l 2>/dev/null; echo "*/5 * * * * /home/pi/scripts/update-raspberry-cron.sh") | crontab - + +# Verificar +echo "Cron configurado:" +crontab -l diff --git a/backups/backup-20260114-085602/local/setup_cron.py b/backups/backup-20260114-085602/local/setup_cron.py new file mode 100644 index 0000000..3495370 --- /dev/null +++ b/backups/backup-20260114-085602/local/setup_cron.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python3 +# Script para configurar cron en Raspberry + +import subprocess +import sys + +# Obtener crontab actual +try: + result = subprocess.run(['sudo', 'crontab', '-u', 'pi', '-l'], + capture_output=True, text=True, check=False) + current_cron = result.stdout +except: + current_cron = "" + +# Nueva entrada +new_entry = "*/5 * * * * /home/pi/scripts/update-raspberry-cron.sh\n" + +# Verificar si ya existe +if new_entry.strip() in current_cron: + print("✅ La entrada de cron ya existe") + sys.exit(0) + +# Agregar nueva entrada +new_cron = current_cron + new_entry + +# Escribir nuevo crontab +try: + process = subprocess.Popen(['sudo', 'crontab', '-u', 'pi', '-'], + stdin=subprocess.PIPE, text=True) + process.communicate(input=new_cron) + if process.returncode == 0: + print("✅ Cron configurado exitosamente") + # Mostrar crontab + subprocess.run(['sudo', 'crontab', '-u', 'pi', '-l']) + else: + print("❌ Error configurando cron") + sys.exit(1) +except Exception as e: + print(f"❌ Error: {e}") + sys.exit(1) diff --git a/backups/backup-20260114-085602/local/sync-from-pc.sh b/backups/backup-20260114-085602/local/sync-from-pc.sh new file mode 100644 index 0000000..425ba6a --- /dev/null +++ b/backups/backup-20260114-085602/local/sync-from-pc.sh @@ -0,0 +1,32 @@ +#!/bin/bash +# Script para ejecutar en Raspberry - copia código desde PC local +# Este script se ejecuta en la Raspberry vía cron cada 5 minutos + +# Configuración - IP del PC (ajustar según tu red local) +PC_IP="192.168.1.XXX" # CAMBIAR POR LA IP DE TU PC +PC_USER="elanchok91" # Usuario del PC +PC_PATH="/mnt/c/word/demo" # Ruta en WSL del PC +RASPBERRY_PATH="/home/pi/gkachele-saas" +LOG_FILE="/tmp/sync-from-pc.log" + +echo "$(date '+%Y-%m-%d %H:%M:%S'): 🔄 Iniciando sincronización desde PC..." >> $LOG_FILE + +# Verificar si el PC está disponible +if ping -c 1 -W 2 $PC_IP &> /dev/null; then + # Intentar copiar usando scp (requiere SSH en el PC) + # Si el PC tiene SSH habilitado, usar esto: + # scp -o StrictHostKeyChecking=no -r $PC_USER@$PC_IP:$PC_PATH/* $RASPBERRY_PATH/ 2>>$LOG_FILE + + # Alternativa: usar rsync si está disponible + # rsync -avz --delete $PC_USER@$PC_IP:$PC_PATH/ $RASPBERRY_PATH/ 2>>$LOG_FILE + + echo "$(date '+%Y-%m-%d %H:%M:%S'): ⚠️ PC disponible pero necesita configuración SSH" >> $LOG_FILE + echo "$(date '+%Y-%m-%d %H:%M:%S'): 💡 Usar método alternativo: script en PC que copia a Raspberry" >> $LOG_FILE +else + echo "$(date '+%Y-%m-%d %H:%M:%S'): ⚠️ PC no disponible ($PC_IP)" >> $LOG_FILE +fi + +# Reiniciar servicio si hay cambios (verificar hash o timestamp) +sudo systemctl restart gkachele-saas 2>/dev/null || (sudo pkill -f "python3 app.py" && sleep 1 && cd $RASPBERRY_PATH && nohup python3 app.py > /tmp/app.log 2>&1 &) + +echo "$(date '+%Y-%m-%d %H:%M:%S'): ✅ Sincronización completada" >> $LOG_FILE diff --git a/backups/backup-20260114-085602/local/sync-to-raspberry.sh b/backups/backup-20260114-085602/local/sync-to-raspberry.sh new file mode 100644 index 0000000..a3023f9 --- /dev/null +++ b/backups/backup-20260114-085602/local/sync-to-raspberry.sh @@ -0,0 +1,31 @@ +#!/bin/bash +# Script para ejecutar en PC (WSL) - copia código a Raspberry cada 5 minutos +# Este script se ejecuta en el PC vía cron y copia a la Raspberry + +# Configuración +RASPBERRY_USER="pi" +RASPBERRY_HOST="192.168.1.134" +RASPBERRY_PORT="2222" +RASPBERRY_PASS="Gdk1983gdk45@" +RASPBERRY_PATH="/home/pi/gkachele-saas" +LOCAL_PATH="/mnt/c/word/demo" +LOG_FILE="/tmp/sync-to-raspberry.log" + +echo "$(date '+%Y-%m-%d %H:%M:%S'): 🔄 Sincronizando código a Raspberry..." >> $LOG_FILE + +# Copiar archivos principales +sshpass -p "$RASPBERRY_PASS" scp -P $RASPBERRY_PORT -o StrictHostKeyChecking=no \ + $LOCAL_PATH/app.py \ + $RASPBERRY_USER@$RASPBERRY_HOST:$RASPBERRY_PATH/app.py 2>>$LOG_FILE + +# Copiar templates +sshpass -p "$RASPBERRY_PASS" scp -P $RASPBERRY_PORT -o StrictHostKeyChecking=no -r \ + $LOCAL_PATH/templates/* \ + $RASPBERRY_USER@$RASPBERRY_HOST:$RASPBERRY_PATH/templates/ 2>>$LOG_FILE + +# Reiniciar servicio en Raspberry +sshpass -p "$RASPBERRY_PASS" ssh -p $RASPBERRY_PORT -o StrictHostKeyChecking=no \ + $RASPBERRY_USER@$RASPBERRY_HOST \ + "sudo systemctl restart gkachele-saas 2>/dev/null || (sudo pkill -f 'python3 app.py' && sleep 1 && cd $RASPBERRY_PATH && nohup python3 app.py > /tmp/app.log 2>&1 &)" 2>>$LOG_FILE + +echo "$(date '+%Y-%m-%d %H:%M:%S'): ✅ Sincronización completada" >> $LOG_FILE diff --git a/backups/backup-20260114-085602/local/update-app-raspberry.sh b/backups/backup-20260114-085602/local/update-app-raspberry.sh new file mode 100644 index 0000000..5dacb8a --- /dev/null +++ b/backups/backup-20260114-085602/local/update-app-raspberry.sh @@ -0,0 +1,5 @@ +#!/bin/bash +# Script para actualizar app en Raspberry (ejecutar desde cron) +cd ~/gkachele-saas +# Reiniciar servicio si existe, sino reiniciar proceso +sudo systemctl restart gkachele-saas 2>/dev/null || (sudo pkill -f "python3 app.py" && sleep 1 && nohup python3 app.py > /tmp/app.log 2>&1 &) diff --git a/backups/backup-20260114-085602/local/update-from-pc.sh b/backups/backup-20260114-085602/local/update-from-pc.sh new file mode 100644 index 0000000..e69de29 diff --git a/backups/backup-20260114-085602/local/update-komkida-duckdns.py b/backups/backup-20260114-085602/local/update-komkida-duckdns.py new file mode 100644 index 0000000..84fa956 --- /dev/null +++ b/backups/backup-20260114-085602/local/update-komkida-duckdns.py @@ -0,0 +1,4 @@ +#!/usr/bin/env python3 +import urllib.request +response = urllib.request.urlopen("https://www.duckdns.org/update?domains=komkida&token=9c5cff88-b6d7-4704-9b10-4a69afdff797&ip=") +print("DuckDNS actualizado:", response.read().decode()) diff --git a/backups/backup-20260114-085602/local/update-raspberry-cron.sh b/backups/backup-20260114-085602/local/update-raspberry-cron.sh new file mode 100644 index 0000000..09b83f8 --- /dev/null +++ b/backups/backup-20260114-085602/local/update-raspberry-cron.sh @@ -0,0 +1,27 @@ +#!/bin/bash +# Script para ejecutar en Raspberry - actualiza desde PC cada 5 minutos +# Este script se ejecuta en la Raspberry vía cron + +RASPBERRY_PATH="/home/pi/gkachele-saas" +LOG_FILE="/tmp/update-raspberry.log" + +echo "$(date '+%Y-%m-%d %H:%M:%S'): 🔄 Iniciando actualización..." >> $LOG_FILE + +# Ejecutar script del PC que copia a Raspberry (si está disponible) +# El script del PC se ejecuta desde WSL y copia archivos +# Por ahora, solo reiniciamos el servicio para aplicar cambios si los hay + +# Reiniciar servicio +sudo systemctl restart gkachele-saas 2>/dev/null +if [ $? -eq 0 ]; then + echo "$(date '+%Y-%m-%d %H:%M:%S'): ✅ Servicio reiniciado" >> $LOG_FILE +else + # Si no hay servicio systemd, reiniciar proceso manualmente + sudo pkill -f "python3 app.py" 2>/dev/null + sleep 1 + cd $RASPBERRY_PATH + nohup python3 app.py > /tmp/app.log 2>&1 & + echo "$(date '+%Y-%m-%d %H:%M:%S'): ✅ Proceso reiniciado manualmente" >> $LOG_FILE +fi + +echo "$(date '+%Y-%m-%d %H:%M:%S'): ✅ Actualización completada" >> $LOG_FILE diff --git a/backups/backup-20260114-085602/local/update-raspberry.sh b/backups/backup-20260114-085602/local/update-raspberry.sh new file mode 100644 index 0000000..1a99f95 --- /dev/null +++ b/backups/backup-20260114-085602/local/update-raspberry.sh @@ -0,0 +1,19 @@ +#!/bin/bash +# Script para actualizar código en Raspberry Pi automáticamente + +# Configuración +RASPBERRY_USER="pi" +RASPBERRY_HOST="komkida.duckdns.org" +RASPBERRY_PORT="2222" +RASPBERRY_PATH="/home/pi/gkachele-saas" +LOCAL_PATH="demo" + +echo "🔄 Actualizando código en Raspberry Pi..." + +# Copiar archivos +scp -P $RASPBERRY_PORT -r $LOCAL_PATH/* $RASPBERRY_USER@$RASPBERRY_HOST:$RASPBERRY_PATH/ + +# Reiniciar servicio +ssh -p $RASPBERRY_PORT $RASPBERRY_USER@$RASPBERRY_HOST "sudo systemctl restart gkachele-saas" + +echo "✅ Actualización completa" diff --git a/backups/backup-20260114-085602/local/update_duckdns.py b/backups/backup-20260114-085602/local/update_duckdns.py new file mode 100644 index 0000000..20db4d2 --- /dev/null +++ b/backups/backup-20260114-085602/local/update_duckdns.py @@ -0,0 +1,4 @@ +#!/usr/bin/env python3 +import urllib.request +response = urllib.request.urlopen("https://www.duckdns.org/update?domains=gkachele&token=578331b3-ad7b-4154-835d-e496465257b0&ip=") +print(response.read().decode()) diff --git a/backups/backup-20260114-085602/local/verificar_codigo.sh b/backups/backup-20260114-085602/local/verificar_codigo.sh new file mode 100644 index 0000000..1b6e4ea --- /dev/null +++ b/backups/backup-20260114-085602/local/verificar_codigo.sh @@ -0,0 +1,7 @@ +#!/bin/bash +echo "=== Línea 247-249 de app.py ===" +sed -n '247,249p' /home/pi/gkachele-saas/app.py + +echo "" +echo "=== Línea 120 de register.html ===" +sed -n '120p' /home/pi/gkachele-saas/templates/register.html diff --git a/backups/backup-20260114-085602/local/verificar_raspberry.sh b/backups/backup-20260114-085602/local/verificar_raspberry.sh new file mode 100644 index 0000000..6e6f448 --- /dev/null +++ b/backups/backup-20260114-085602/local/verificar_raspberry.sh @@ -0,0 +1,29 @@ +#!/bin/bash +echo "=== Verificando estructura en Raspberry ===" +echo "" +echo "1. Templates _gkachele:" +sshpass -p 'Gdk1983gdk45@' ssh -p 2222 -o StrictHostKeyChecking=no pi@192.168.1.134 'ls -la /home/pi/gkachele-saas/themes/_gkachele/' + +echo "" +echo "2. Función render_gkachele_template:" +sshpass -p 'Gdk1983gdk45@' ssh -p 2222 -o StrictHostKeyChecking=no pi@192.168.1.134 'grep -c "def render_gkachele_template" /home/pi/gkachele-saas/app.py && echo "✅ Función encontrada" || echo "❌ Función NO encontrada"' + +echo "" +echo "3. Tablas en base de datos:" +sshpass -p 'Gdk1983gdk45@' ssh -p 2222 -o StrictHostKeyChecking=no pi@192.168.1.134 'python3 << EOF +import sqlite3 +conn = sqlite3.connect("/home/pi/gkachele-saas/database/main.db") +c = conn.cursor() +c.execute("SELECT name FROM sqlite_master WHERE type=\"table\"") +tables = [r[0] for r in c.fetchall()] +print("Tablas:", ", ".join(tables)) +if "menus" in tables and "widgets" in tables: + print("✅ Tablas menus y widgets creadas") +else: + print("⚠️ Faltan tablas menus o widgets") +conn.close() +EOF' + +echo "" +echo "4. Estado del servicio:" +sshpass -p 'Gdk1983gdk45@' ssh -p 2222 -o StrictHostKeyChecking=no pi@192.168.1.134 'sudo systemctl is-active gkachele-saas && echo "✅ Servicio activo" || echo "❌ Servicio inactivo"' diff --git a/backups/backup-20260114-085602/local/verificar_redirect.sh b/backups/backup-20260114-085602/local/verificar_redirect.sh new file mode 100644 index 0000000..bd86795 --- /dev/null +++ b/backups/backup-20260114-085602/local/verificar_redirect.sh @@ -0,0 +1,7 @@ +#!/bin/bash +echo "=== Verificando app.py ===" +grep -A 2 "redirect_url\|redirect.*customizer" /home/pi/gkachele-saas/app.py | head -5 + +echo "" +echo "=== Verificando register.html ===" +grep -A 1 "redirectUrl\|result.redirect" /home/pi/gkachele-saas/templates/register.html | head -5 diff --git a/backups/backup-20260114-085602/raspberry/__pycache__/app.cpython-39.pyc b/backups/backup-20260114-085602/raspberry/__pycache__/app.cpython-39.pyc new file mode 100644 index 0000000..fc86ec1 Binary files /dev/null and b/backups/backup-20260114-085602/raspberry/__pycache__/app.cpython-39.pyc differ diff --git a/backups/backup-20260114-085602/raspberry/app.py b/backups/backup-20260114-085602/raspberry/app.py new file mode 100644 index 0000000..673bd6d --- /dev/null +++ b/backups/backup-20260114-085602/raspberry/app.py @@ -0,0 +1,1038 @@ +""" +GKACHELE™ SaaS PageBuilder - Sistema Profesional +© 2025 GKACHELE™. Todos los derechos reservados. +Desarrollado desde noviembre 2025 por GKACHELE +Código propiedad de GKACHELE © 2025 - Prohibida su reproducción sin autorización +""" + +import os +import json +import sqlite3 +import secrets +from datetime import datetime +from flask import Flask, render_template, request, jsonify, session, redirect, url_for, send_from_directory +from werkzeug.security import generate_password_hash, check_password_hash + +app = Flask(__name__, template_folder='templates', static_folder='static') +app.secret_key = 'demo-secret-key-2025' +app.config['SESSION_COOKIE_SAMESITE'] = 'Lax' + +# Manejador de errores global - siempre devolver JSON +@app.errorhandler(500) +def handle_500(e): + print(f"❌ Error 500: {e}") + import traceback + traceback.print_exc() + # Asegurar que siempre devuelva JSON + response = jsonify({'success': False, 'error': 'Error interno del servidor'}) + response.status_code = 500 + return response + +@app.errorhandler(404) +def handle_404(e): + response = jsonify({'success': False, 'error': 'No encontrado'}) + response.status_code = 404 + return response + +@app.errorhandler(403) +def handle_403(e): + response = jsonify({'success': False, 'error': 'No autorizado'}) + response.status_code = 403 + return response + +# Manejador para excepciones no capturadas - FORZAR JSON +@app.errorhandler(Exception) +def handle_exception(e): + print(f"❌❌❌ EXCEPCIÓN NO CAPTURADA: {e}") + import traceback + traceback.print_exc() + # SIEMPRE devolver JSON, nunca HTML + response = jsonify({'success': False, 'error': f'Error: {str(e)}'}) + response.status_code = 500 + response.headers['Content-Type'] = 'application/json' + return response + +# Forzar JSON en TODAS las rutas /register, /login, /api/* +@app.before_request +def before_request(): + # Si es POST a /register o /login, forzar JSON + if request.method == 'POST' and (request.path.startswith('/register') or + request.path.startswith('/login') or + request.path.startswith('/api/')): + # Asegurar que acepta JSON + if not request.is_json and request.content_type and 'application/json' in request.content_type: + try: + request.get_json(force=True) + except: + pass + +# Directorios +BASE_DIR = os.path.dirname(__file__) +DATABASE_DIR = os.path.join(BASE_DIR, 'database') +SITES_DIR = os.path.join(BASE_DIR, 'sites') +THEMES_DIR = os.path.join(BASE_DIR, 'themes') +STATIC_DIR = os.path.join(BASE_DIR, 'static') +UPLOADS_DIR = os.path.join(BASE_DIR, 'uploads') + +# Crear directorios +# NOTA: Ya no se crean bases de datos separadas (cliente-X.db) +# TODO está en main.db (sistema multi-tenant) +for d in [DATABASE_DIR, SITES_DIR, THEMES_DIR, UPLOADS_DIR]: + os.makedirs(d, exist_ok=True) + +# DB principal +MAIN_DB = os.path.join(DATABASE_DIR, 'main.db') + +def init_db(): + """Inicializar base de datos principal - TODO EN UNA SOLA DB (sistema multi-tenant)""" + try: + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Usuarios (todos los clientes en una sola tabla) + c.execute('''CREATE TABLE IF NOT EXISTS users ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + email TEXT UNIQUE NOT NULL, + password TEXT NOT NULL, + plan TEXT DEFAULT 'base', + rubro TEXT DEFAULT 'gimnasio', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP + )''') + + # Sitios (todos los sitios, filtrados por user_id) + c.execute('''CREATE TABLE IF NOT EXISTS sites ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + slug TEXT UNIQUE NOT NULL, + theme TEXT DEFAULT 'default', + status TEXT DEFAULT 'draft', + content_json TEXT, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id) + )''') + + # Solicitudes + c.execute('''CREATE TABLE IF NOT EXISTS requests ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + site_id INTEGER NOT NULL, + user_id INTEGER NOT NULL, + status TEXT DEFAULT 'pending', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (site_id) REFERENCES sites(id), + FOREIGN KEY (user_id) REFERENCES users(id) + )''') + + # Media (fotos, imágenes del cliente) + c.execute('''CREATE TABLE IF NOT EXISTS media ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER NOT NULL, + filename TEXT NOT NULL, + filepath TEXT NOT NULL, + file_type TEXT DEFAULT 'image', + uploaded_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id) + )''') + + # Content (contenido por sección, filtrado por user_id y site_id) + c.execute('''CREATE TABLE IF NOT EXISTS content ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER NOT NULL, + section TEXT NOT NULL, + data_json TEXT, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id) + )''') + + # Settings (configuraciones por usuario/sitio) + c.execute('''CREATE TABLE IF NOT EXISTS settings ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER, + key TEXT NOT NULL, + value TEXT, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id), + UNIQUE(user_id, site_id, key) + )''') + + # Menus (sistema de menús dinámicos) + c.execute('''CREATE TABLE IF NOT EXISTS menus ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER NOT NULL, + location TEXT NOT NULL, + title TEXT NOT NULL, + url TEXT NOT NULL, + order_index INTEGER DEFAULT 0, + parent_id INTEGER, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id), + FOREIGN KEY (parent_id) REFERENCES menus(id) + )''') + + # Widgets (áreas de widgets dinámicos) + c.execute('''CREATE TABLE IF NOT EXISTS widgets ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER NOT NULL, + area TEXT NOT NULL, + type TEXT NOT NULL, + title TEXT, + content TEXT, + order_index INTEGER DEFAULT 0, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id) + )''') + + conn.commit() + conn.close() + print("✅ Base de datos inicializada (multi-tenant - todos los clientes en main.db)") + except Exception as e: + print(f"❌ Error inicializando DB: {e}") + import traceback + traceback.print_exc() + +init_db() + +# ============================================================================ +# FUNCIONES HELPER - GKACHELE™ Template System +# ============================================================================ + +def get_site_menus(site_id, user_id): + """Obtener menús del sitio organizados por ubicación""" + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('''SELECT location, title, url, order_index, parent_id + FROM menus + WHERE site_id = ? AND user_id = ? + ORDER BY location, order_index''', (site_id, user_id)) + rows = c.fetchall() + conn.close() + + menus = {'header': [], 'footer': [], 'sidebar': []} + for row in rows: + location, title, url, order_index, parent_id = row + menu_item = { + 'title': title, + 'url': url, + 'order': order_index, + 'parent_id': parent_id + } + if location in menus: + menus[location].append(menu_item) + + return menus + +def get_site_widgets(site_id, user_id, area='sidebar'): + """Obtener widgets del sitio por área""" + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('''SELECT type, title, content, order_index + FROM widgets + WHERE site_id = ? AND user_id = ? AND area = ? + ORDER BY order_index''', (site_id, user_id, area)) + rows = c.fetchall() + conn.close() + + widgets = [] + for row in rows: + widget_type, title, content, order_index = row + widgets.append({ + 'type': widget_type, + 'title': title, + 'content': content, + 'order': order_index + }) + + return widgets + +def render_gkachele_template(theme, content, site_id=None, user_id=None): + """Renderizar template usando estructura GKACHELE (header.php, footer.php, sidebar.php)""" + # Obtener menús y widgets si hay site_id + menus = {'header': [], 'footer': [], 'sidebar': []} + widgets = [] + if site_id and user_id: + try: + menus = get_site_menus(site_id, user_id) + widgets = get_site_widgets(site_id, user_id) + except Exception as e: + print(f"⚠️ Error obteniendo menús/widgets: {e}") + + # Cargar template del tema PRIMERO (es el contenido principal) + theme_template = '' + theme_path = os.path.join(THEMES_DIR, theme, 'template.html') + if os.path.exists(theme_path): + with open(theme_path, 'r', encoding='utf-8') as f: + theme_template = f.read() + else: + # Si no existe template del tema, usar template básico + theme_template = ''' +
+

{{ hero_title or 'Bienvenido' }}

+

{{ hero_description or 'Descripción del sitio' }}

+
+ ''' + + # Cargar header, footer, sidebar + header = '' + footer = '' + sidebar = '' + + header_path = os.path.join(THEMES_DIR, '_gkachele', 'header.php') + footer_path = os.path.join(THEMES_DIR, '_gkachele', 'footer.php') + sidebar_path = os.path.join(THEMES_DIR, '_gkachele', 'sidebar.php') + + if os.path.exists(header_path): + with open(header_path, 'r', encoding='utf-8') as f: + header = f.read() + else: + # Header básico si no existe + header = ''' + + + + + {{ site_name or 'GKACHELE Site' }} + + + +
+ +
+
''' + + if os.path.exists(footer_path): + with open(footer_path, 'r', encoding='utf-8') as f: + footer = f.read() + else: + footer = ''' +
+
+

© 2025 GKACHELE™. Todos los derechos reservados.
+ Desarrollado desde noviembre 2025 por GKACHELE
+ Código propiedad de GKACHELE © 2025 - Prohibida su reproducción sin autorización

+
+ +''' + + if os.path.exists(sidebar_path): + with open(sidebar_path, 'r', encoding='utf-8') as f: + sidebar = f.read() + + # Preparar contexto completo + template_data = { + 'site_name': content.get('site_name', 'GKACHELE Site'), + 'hero_title': content.get('hero_title', 'Bienvenido'), + 'hero_description': content.get('hero_description', ''), + 'colors': content.get('colors', {'primary': '#d32f2f', 'secondary': '#ff6f00', 'text': '#2c2c2c'}), + 'typography': content.get('typography', {'font_family': 'Roboto'}), + 'menus': menus, + 'widgets': widgets, + **content # Incluir todo el contenido adicional + } + + # Renderizar usando Jinja2 + from jinja2 import Template + # Construir template completo: header + contenido del tema + sidebar + footer + full_template = header + theme_template + sidebar + footer + template = Template(full_template) + return template.render(**template_data) + +# ============================================================================ +# RUTAS PÚBLICAS +# ============================================================================ + +@app.route('/') +def landing(): + """Landing page""" + return render_template('landing_real.html') + +@app.route('/register', methods=['GET', 'POST']) +def register(): + """Registro - Sistema Simple y Profesional""" + if request.method == 'POST': + try: + # Datos JSON + data = request.get_json() if request.is_json else (request.form.to_dict() if request.form else {}) + if not data: + return jsonify({'success': False, 'error': 'Sin datos'}), 400 + + email = str(data.get('email', '')).strip() + password = str(data.get('password', '')).strip() + plan = str(data.get('plan', 'base')) + rubro = str(data.get('rubro', 'gimnasio')) + + # Validar + if not email or '@' not in email: + return jsonify({'success': False, 'error': 'Email inválido'}), 400 + if not password: + return jsonify({'success': False, 'error': 'Contraseña requerida'}), 400 + + # DB + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Usuario + try: + c.execute('INSERT INTO users (email, password, plan, rubro) VALUES (?, ?, ?, ?)', + (email, generate_password_hash(password), plan, rubro)) + user_id = c.lastrowid + except sqlite3.IntegrityError: + conn.close() + return jsonify({'success': False, 'error': 'Email ya existe'}), 400 + + # Tema + import random + theme = 'default' + if rubro == 'restaurante': + theme = random.choice(['restaurante-moderno', 'restaurante-elegante']) + elif rubro in ['gimnasio', 'gimnasios']: + theme = 'gimnasio-claro' + + # Sitio + site_name = email.split('@')[0].title() + content = json.dumps({ + 'site_name': site_name + ' Site', + 'hero_title': 'Bienvenido', + 'hero_description': '', + 'colors': {'primary': '#d32f2f', 'secondary': '#ff6f00', 'text': '#2c2c2c'}, + 'typography': {'font_family': 'Roboto'} + }) + + slug = f'site-{secrets.token_hex(4)}' + c.execute('INSERT INTO sites (user_id, slug, theme, content_json) VALUES (?, ?, ?, ?)', + (user_id, slug, theme, content)) + site_id = c.lastrowid + + # Crear menús por defecto (header, footer) + default_menus = [ + ('header', 'Inicio', '#inicio', 0, None), + ('header', 'Menú', '#menu', 1, None), + ('header', 'Horarios', '#horarios', 2, None), + ('header', 'Reservas', '#reservas', 3, None), + ('header', 'Contacto', '#contacto', 4, None), + ('footer', 'Inicio', '#inicio', 0, None), + ('footer', 'Contacto', '#contacto', 1, None), + ] + + for location, title, url, order_idx, parent_id in default_menus: + c.execute('''INSERT INTO menus (user_id, site_id, location, title, url, order_index, parent_id) + VALUES (?, ?, ?, ?, ?, ?, ?)''', + (user_id, site_id, location, title, url, order_idx, parent_id)) + + conn.commit() + conn.close() + + # ✅ TODO está en main.db - no se necesitan bases separadas + # El cliente accede a /dashboard (como wp-admin) y solo ve SUS datos filtrados por user_id + + # NO crear sesión automáticamente - el usuario debe hacer login + # ÉXITO - Redirigir al login para que inicie sesión + print(f"✅ Usuario registrado: user_id={user_id}, site_id={site_id}") + return jsonify({'success': True, 'message': 'Registro exitoso. Por favor inicia sesión.', 'redirect': '/login'}) + + except Exception as e: + import traceback + traceback.print_exc() + return jsonify({'success': False, 'error': str(e)}), 500 + + # GET + return render_template('register.html', plan=request.args.get('plan', 'base'), rubro=request.args.get('rubro', 'gimnasio')) + +@app.route('/login', methods=['GET', 'POST']) +def login(): + """Login""" + if request.method == 'POST': + try: + data = request.get_json() + if not data: + return jsonify({'success': False, 'error': 'No se recibieron datos'}), 400 + + email = data.get('email') + password = data.get('password') + + if not email or not password: + return jsonify({'success': False, 'error': 'Email y contraseña son requeridos'}), 400 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT id, password FROM users WHERE email = ?', (email,)) + user = c.fetchone() + conn.close() + + if user and check_password_hash(user[1], password): + session['user_id'] = user[0] + print(f"✅ Login exitoso: user_id={user[0]}") + # Después del login, redirigir al dashboard (el usuario puede ir al customizer desde ahí) + return jsonify({'success': True, 'redirect': '/dashboard'}) + + return jsonify({'success': False, 'error': 'Credenciales inválidas'}), 401 + except Exception as e: + print(f"❌ Error en login: {e}") + import traceback + traceback.print_exc() + return jsonify({'success': False, 'error': f'Error al iniciar sesión: {str(e)}'}), 500 + + return render_template('login.html') + +@app.route('/logout') +def logout(): + session.pop('user_id', None) + return redirect(url_for('landing')) + +# ============================================================================ +# DASHBOARD CLIENTE +# ============================================================================ + +@app.route('/dashboard') +def dashboard(): + """Panel del cliente""" + if 'user_id' not in session: + return redirect(url_for('login')) + + user_id = session['user_id'] + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Info del usuario + c.execute('SELECT email, plan FROM users WHERE id = ?', (user_id,)) + user_info = c.fetchone() + + # Sitios + c.execute('SELECT id, slug, theme, status, created_at FROM sites WHERE user_id = ?', (user_id,)) + sites = [{'id': r[0], 'slug': r[1], 'theme': r[2], 'status': r[3], 'created_at': r[4]} + for r in c.fetchall()] + + # Contar media + c.execute('SELECT COUNT(*) FROM media WHERE user_id = ?', (user_id,)) + media_count = c.fetchone()[0] + + conn.close() + + return render_template('dashboard.html', + sites=sites, + user_email=user_info[0] if user_info else '', + user_plan=user_info[1] if user_info else 'base', + media_count=media_count) + +@app.route('/dashboard/admin') +def client_admin(): + """Admin del cliente - gestionar media, config, etc.""" + if 'user_id' not in session: + return redirect(url_for('login')) + + user_id = session['user_id'] + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Info del usuario + c.execute('SELECT email, plan FROM users WHERE id = ?', (user_id,)) + user_info = c.fetchone() + + # Sitios del usuario + c.execute('SELECT id, slug, theme, status FROM sites WHERE user_id = ?', (user_id,)) + sites = [{'id': r[0], 'slug': r[1], 'theme': r[2], 'status': r[3]} for r in c.fetchall()] + + conn.close() + + return render_template('client_admin.html', + user_email=user_info[0] if user_info else '', + user_plan=user_info[1] if user_info else 'base', + sites=sites) + +@app.route('/dashboard/create', methods=['GET', 'POST']) +def create_site(): + """Crear nuevo sitio""" + if 'user_id' not in session: + return redirect(url_for('login')) + + if request.method == 'POST': + data = request.get_json() + user_id = session['user_id'] + slug = data.get('slug', f'site-{secrets.token_hex(4)}') + theme = data.get('theme', 'default') + + # Contenido inicial + content = { + 'site_name': data.get('site_name', 'Mi Sitio'), + 'hero_title': data.get('hero_title', 'Bienvenido'), + 'hero_description': data.get('hero_description', ''), + 'colors': { + 'primary': '#ff4d4d', + 'secondary': '#1a1a1a', + 'text': '#333333' + }, + 'typography': { + 'font_family': 'Arial' + } + } + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('INSERT INTO sites (user_id, slug, theme, content_json) VALUES (?, ?, ?, ?)', + (user_id, slug, theme, json.dumps(content))) + site_id = c.lastrowid + conn.commit() + conn.close() + + # ✅ TODO está en main.db - no se necesitan bases separadas + + return jsonify({'success': True, 'site_id': site_id, 'slug': slug}) + + return render_template('create_site.html') + +# ============================================================================ +# CUSTOMIZER (Sistema de Personalización) +# ============================================================================ + +@app.route('/customizer/') +def customizer(site_id): + """Customizer: Sidebar + Preview""" + # Verificar que el sitio existe + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT user_id, slug, theme, content_json FROM sites WHERE id = ?', (site_id,)) + site = c.fetchone() + conn.close() + + if not site: + return "Sitio no encontrado", 404 + + # Si hay sesión, verificar que pertenece al usuario + if 'user_id' in session and site[0] != session['user_id']: + return "No autorizado", 403 + + content = json.loads(site[3]) if site[3] else {} + theme = site[2] + + # Cargar template del tema si existe + theme_template = None + theme_path = os.path.join(THEMES_DIR, theme, 'template.html') + if os.path.exists(theme_path): + with open(theme_path, 'r', encoding='utf-8') as f: + theme_template = f.read() + + return render_template('customizer.html', + site_id=site_id, + slug=site[1], + theme=theme, + content=content, + theme_template=theme_template) + +@app.route('/api/customizer/save', methods=['POST']) +def save_customizer(): + """Guardar cambios del customizer""" + data = request.get_json() + site_id = data.get('site_id') + content = data.get('content') + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('UPDATE sites SET content_json = ? WHERE id = ?', + (json.dumps(content), site_id)) + conn.commit() + conn.close() + + return jsonify({'success': True}) + +@app.route('/api/customizer/preview-frame/') +def preview_frame(site_id): + """Frame del preview - renderiza el template completo con estructura GKACHELE""" + # Obtener datos del sitio + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT theme, content_json, user_id FROM sites WHERE id = ?', (site_id,)) + site = c.fetchone() + conn.close() + + if not site: + return "Sitio no encontrado", 404 + + theme = site[0] + content = json.loads(site[1]) if site[1] else {} + user_id = site[2] + + # Usar función helper para renderizar con estructura GKACHELE + try: + rendered = render_gkachele_template(theme, content, site_id, user_id) + print(f"✅ Template renderizado correctamente para site_id={site_id}, theme={theme}") + return rendered + except Exception as e: + import traceback + print(f"❌ Error renderizando template: {e}") + traceback.print_exc() + # Fallback: cargar template directamente si existe + theme_path = os.path.join(THEMES_DIR, theme, 'template.html') + if os.path.exists(theme_path): + with open(theme_path, 'r', encoding='utf-8') as f: + template_str = f.read() + from jinja2 import Template + template = Template(template_str) + template_data = { + 'site_name': content.get('site_name', 'GKACHELE Site'), + 'hero_title': content.get('hero_title', 'Bienvenido'), + 'hero_description': content.get('hero_description', ''), + 'colors': content.get('colors', {'primary': '#d32f2f', 'secondary': '#ff6f00', 'text': '#2c2c2c'}), + 'typography': content.get('typography', {'font_family': 'Roboto'}), + **content + } + return template.render(**template_data) + + # Fallback final a preview simple + return f""" + + + Preview + +

+ {content.get('hero_title', 'Título')} +

+

+ {content.get('hero_description', 'Descripción')} +

+

+ © 2025 GKACHELE™. Todos los derechos reservados. +

+ + + """ + +# ============================================================================ +# SOLICITUDES +# ============================================================================ + +@app.route('/dashboard/submit/', methods=['POST']) +def submit_site(site_id): + """Cliente envía sitio para aprobación""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Cambiar status a pending + c.execute('UPDATE sites SET status = ? WHERE id = ?', ('pending', site_id)) + + # Crear solicitud + c.execute('INSERT INTO requests (site_id, user_id) VALUES (?, ?)', + (site_id, session['user_id'])) + + conn.commit() + conn.close() + + return jsonify({'success': True}) + +# ============================================================================ +# ADMIN +# ============================================================================ + +@app.route('/admin') +def admin(): + """Panel admin""" + # Admin simple: user_id = 1 + if 'user_id' not in session or session['user_id'] != 1: + return "Solo admin", 403 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Solicitudes pendientes + c.execute('''SELECT r.id, r.site_id, r.status, s.slug, u.email, r.created_at + FROM requests r + JOIN sites s ON r.site_id = s.id + JOIN users u ON r.user_id = u.id + WHERE r.status = 'pending' + ORDER BY r.created_at DESC''') + requests = [{'id': r[0], 'site_id': r[1], 'status': r[2], 'slug': r[3], + 'email': r[4], 'created_at': r[5]} for r in c.fetchall()] + + # Todos los sitios + c.execute('SELECT id, slug, theme, status, user_id FROM sites') + sites = [{'id': r[0], 'slug': r[1], 'theme': r[2], 'status': r[3], 'user_id': r[4]} + for r in c.fetchall()] + + conn.close() + + return render_template('admin.html', requests=requests, sites=sites) + +@app.route('/admin/approve/', methods=['POST']) +def approve_site(request_id): + """Admin aprueba sitio""" + if 'user_id' not in session or session['user_id'] != 1: + return jsonify({'error': 'No autorizado'}), 403 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Obtener site_id + c.execute('SELECT site_id FROM requests WHERE id = ?', (request_id,)) + result = c.fetchone() + if not result: + conn.close() + return jsonify({'error': 'Solicitud no encontrada'}), 404 + + site_id = result[0] + + # Aprobar: cambiar status a approved y publicar + c.execute('UPDATE sites SET status = ? WHERE id = ?', ('published', site_id)) + c.execute('UPDATE requests SET status = ? WHERE id = ?', ('approved', request_id)) + + conn.commit() + conn.close() + + return jsonify({'success': True}) + +# ============================================================================ +# SITIO PÚBLICO +# ============================================================================ + +@app.route('/site/') +def public_site(slug): + """Sitio público del cliente - usando estructura GKACHELE""" + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT id, theme, content_json, status, user_id FROM sites WHERE slug = ?', (slug,)) + site = c.fetchone() + conn.close() + + if not site or site[3] != 'published': + return "Sitio no encontrado o no publicado", 404 + + site_id = site[0] + theme = site[1] + content = json.loads(site[2]) if site[2] else {} + user_id = site[4] + + # Renderizar con estructura GKACHELE + try: + return render_gkachele_template(theme, content, site_id, user_id) + except Exception as e: + import traceback + traceback.print_exc() + return render_template('public_site.html', content=content, theme=theme) + +# ============================================================================ +# MAIN +# ============================================================================ + +# ============================================================================ +# API ADMIN CLIENTE +# ============================================================================ + +@app.route('/api/admin/upload', methods=['POST']) +def upload_media(): + """Subir imágenes""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + user_id = session['user_id'] + files = request.files.getlist('files') + + if not files: + return jsonify({'error': 'No hay archivos'}), 400 + + uploaded = [] + for file in files: + if file.filename: + filename = f"{user_id}_{secrets.token_hex(8)}_{file.filename}" + filepath = os.path.join(UPLOADS_DIR, filename) + file.save(filepath) + + # Guardar en DB + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT id FROM sites WHERE user_id = ? LIMIT 1', (user_id,)) + site = c.fetchone() + site_id = site[0] if site else None + + c.execute('INSERT INTO media (user_id, site_id, filename, filepath, file_type) VALUES (?, ?, ?, ?, ?)', + (user_id, site_id, filename, filepath, 'image')) + conn.commit() + conn.close() + + uploaded.append(filename) + + return jsonify({'success': True, 'files': uploaded}) + +@app.route('/api/admin/media') +def get_media(): + """Obtener media del usuario""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + user_id = session['user_id'] + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT id, filename, filepath, uploaded_at FROM media WHERE user_id = ? ORDER BY uploaded_at DESC', (user_id,)) + media = [{'id': r[0], 'filename': r[1], 'filepath': r[2], 'uploaded_at': r[3]} for r in c.fetchall()] + conn.close() + + return jsonify({'success': True, 'media': media}) + +@app.route('/api/admin/media/', methods=['DELETE']) +def delete_media(media_id): + """Eliminar media""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + user_id = session['user_id'] + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Verificar que pertenece al usuario + c.execute('SELECT filepath FROM media WHERE id = ? AND user_id = ?', (media_id, user_id)) + media = c.fetchone() + + if media: + # Eliminar archivo + if os.path.exists(media[0]): + os.remove(media[0]) + + # Eliminar de DB + c.execute('DELETE FROM media WHERE id = ?', (media_id,)) + conn.commit() + + conn.close() + return jsonify({'success': True}) + +@app.route('/api/admin/settings', methods=['POST']) +def update_settings(): + """Actualizar configuración del usuario""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + data = request.get_json() + user_id = session['user_id'] + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + if data.get('password'): + c.execute('UPDATE users SET password = ? WHERE id = ?', + (generate_password_hash(data['password']), user_id)) + conn.commit() + + conn.close() + return jsonify({'success': True}) + +@app.route('/uploads/') +def serve_upload(filename): + """Servir archivos subidos""" + return send_from_directory(UPLOADS_DIR, filename) + +# ============================================================================ +# API MENÚS Y WIDGETS +# ============================================================================ + +@app.route('/api/menus/', methods=['GET']) +def get_menus(site_id): + """Obtener menús del sitio""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + user_id = session['user_id'] + menus = get_site_menus(site_id, user_id) + return jsonify({'success': True, 'menus': menus}) + +@app.route('/api/menus/', methods=['POST']) +def save_menu(site_id): + """Guardar/actualizar menú""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + data = request.get_json() + user_id = session['user_id'] + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Eliminar menús existentes del sitio + c.execute('DELETE FROM menus WHERE site_id = ? AND user_id = ?', (site_id, user_id)) + + # Insertar nuevos menús + for menu_item in data.get('menus', []): + c.execute('''INSERT INTO menus (user_id, site_id, location, title, url, order_index, parent_id) + VALUES (?, ?, ?, ?, ?, ?, ?)''', + (user_id, site_id, menu_item['location'], menu_item['title'], + menu_item['url'], menu_item.get('order', 0), menu_item.get('parent_id'))) + + conn.commit() + conn.close() + + return jsonify({'success': True}) + +@app.route('/api/widgets/', methods=['GET']) +def get_widgets(site_id): + """Obtener widgets del sitio""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + user_id = session['user_id'] + area = request.args.get('area', 'sidebar') + widgets = get_site_widgets(site_id, user_id, area) + return jsonify({'success': True, 'widgets': widgets}) + +@app.route('/api/widgets/', methods=['POST']) +def save_widget(site_id): + """Guardar/actualizar widget""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + data = request.get_json() + user_id = session['user_id'] + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + c.execute('''INSERT INTO widgets (user_id, site_id, area, type, title, content, order_index) + VALUES (?, ?, ?, ?, ?, ?, ?)''', + (user_id, site_id, data.get('area', 'sidebar'), data.get('type', 'text'), + data.get('title'), data.get('content'), data.get('order', 0))) + + conn.commit() + conn.close() + + return jsonify({'success': True}) + +# ============================================================================ +# MAIN +# ============================================================================ + +# Inicializar DB al importar (con manejo de errores) +try: + init_db() +except Exception as e: + print(f"⚠️ Error en init_db: {e}") + # Continuar aunque falle, se creará cuando se use + +if __name__ == '__main__': + port = int(os.environ.get('PORT', 5001)) + print("🚀 Demo SaaS iniciado") + print(f"📍 http://localhost:{port}") + app.run(debug=True, host='0.0.0.0', port=port) diff --git a/backups/backup-20260114-085602/raspberry/customizer.html b/backups/backup-20260114-085602/raspberry/customizer.html new file mode 100644 index 0000000..8d8b056 --- /dev/null +++ b/backups/backup-20260114-085602/raspberry/customizer.html @@ -0,0 +1,467 @@ + + + + + Personalizar - {{ site_name or 'Sitio' }} + + + + + +
+
+

Vista Previa

+
+ +
+
+
+
Cargando vista previa...
+ +
+
+ +
✅ Cambios guardados
+ + + + diff --git a/backups/backup-20260114-085602/raspberry/database/main.db b/backups/backup-20260114-085602/raspberry/database/main.db new file mode 100644 index 0000000..2892bc1 Binary files /dev/null and b/backups/backup-20260114-085602/raspberry/database/main.db differ diff --git a/backups/backup-20260114-085602/raspberry/database/sites/cliente-2.db b/backups/backup-20260114-085602/raspberry/database/sites/cliente-2.db new file mode 100644 index 0000000..0afb200 Binary files /dev/null and b/backups/backup-20260114-085602/raspberry/database/sites/cliente-2.db differ diff --git a/backups/backup-20260114-085602/raspberry/database/sites/cliente-3.db b/backups/backup-20260114-085602/raspberry/database/sites/cliente-3.db new file mode 100644 index 0000000..0afb200 Binary files /dev/null and b/backups/backup-20260114-085602/raspberry/database/sites/cliente-3.db differ diff --git a/backups/backup-20260114-085602/raspberry/database/sites/cliente-4.db b/backups/backup-20260114-085602/raspberry/database/sites/cliente-4.db new file mode 100644 index 0000000..0afb200 Binary files /dev/null and b/backups/backup-20260114-085602/raspberry/database/sites/cliente-4.db differ diff --git a/backups/backup-20260114-085602/raspberry/database/sites/cliente-5.db b/backups/backup-20260114-085602/raspberry/database/sites/cliente-5.db new file mode 100644 index 0000000..0afb200 Binary files /dev/null and b/backups/backup-20260114-085602/raspberry/database/sites/cliente-5.db differ diff --git a/backups/backup-20260114-085602/raspberry/database/sites/cliente-6.db b/backups/backup-20260114-085602/raspberry/database/sites/cliente-6.db new file mode 100644 index 0000000..0afb200 Binary files /dev/null and b/backups/backup-20260114-085602/raspberry/database/sites/cliente-6.db differ diff --git a/backups/backup-20260114-085602/raspberry/gkachele-saas.service b/backups/backup-20260114-085602/raspberry/gkachele-saas.service new file mode 100644 index 0000000..dedfe49 --- /dev/null +++ b/backups/backup-20260114-085602/raspberry/gkachele-saas.service @@ -0,0 +1,15 @@ +[Unit] +Description=GKACHELE SaaS Flask App +After=network.target + +[Service] +Type=simple +User=pi +WorkingDirectory=/home/pi/gkachele-saas +Environment="PATH=/usr/bin:/usr/local/bin:/home/pi/.local/bin" +ExecStart=/usr/bin/python3 /home/pi/gkachele-saas/app.py +Restart=always +RestartSec=10 + +[Install] +WantedBy=multi-user.target diff --git a/backups/backup-20260114-085602/raspberry/main.db b/backups/backup-20260114-085602/raspberry/main.db new file mode 100644 index 0000000..2892bc1 Binary files /dev/null and b/backups/backup-20260114-085602/raspberry/main.db differ diff --git a/backups/backup-20260114-085602/raspberry/nginx.conf b/backups/backup-20260114-085602/raspberry/nginx.conf new file mode 100644 index 0000000..e69de29 diff --git a/backups/backup-20260114-085602/raspberry/register.html b/backups/backup-20260114-085602/raspberry/register.html new file mode 100644 index 0000000..6c5534d --- /dev/null +++ b/backups/backup-20260114-085602/raspberry/register.html @@ -0,0 +1,132 @@ + + + + + Registro - Demo + + + +
+

📝 Registrarse

+
+ + + + + +
+

+ ¿Ya tienes cuenta? Inicia sesión +

+
+ + + + diff --git a/backups/backup-20260114-085602/raspberry/static/style.css b/backups/backup-20260114-085602/raspberry/static/style.css new file mode 100644 index 0000000..addf451 --- /dev/null +++ b/backups/backup-20260114-085602/raspberry/static/style.css @@ -0,0 +1,2409 @@ +/* GKACHELE™ - Diseño Premium Inspirado en Blow-dance */ + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --primary-orange: #FF6B35; + --dark-black: #1a1a1a; + --pure-white: #ffffff; + --light-gray: #f5f5f5; + --bg-light: #fafafa; + --card-bg: #ffffff; + --text-primary: #1a1a1a; + --text-secondary: #666; + --text-light: #888; + --border-light: rgba(0, 0, 0, 0.08); + --shadow-sm: 0 2px 10px rgba(0, 0, 0, 0.05); + --shadow-md: 0 5px 25px rgba(0, 0, 0, 0.1); + --shadow-lg: 0 10px 40px rgba(0, 0, 0, 0.15); + --shadow-orange: 0 5px 25px rgba(255, 107, 53, 0.2); + + /* Social Media Colors */ + --whatsapp: #25D366; + --whatsapp-hover: #20BA5A; + --facebook: #1877F2; + --facebook-hover: #0d65d9; + --instagram-start: #833AB4; + --instagram-mid: #E1306C; + --instagram-end: #FD1D1D; + --youtube: #FF0000; + --youtube-hover: #CC0000; + --tiktok: #000000; + --tiktok-hover: #00F2EA; +} + +body { + font-family: 'Inter', sans-serif; + background: #fafafa; + color: var(--text-primary); + line-height: 1.7; + overflow-x: hidden; + font-weight: 300; + position: relative; +} + +body::after { + content: '© GKACHELE 2025'; + position: fixed; + bottom: 20px; + left: 20px; + font-size: 0.7rem; + color: rgba(255, 255, 255, 0.03); + font-weight: bold; + z-index: -1; + pointer-events: none; + user-select: none; + transform: rotate(-45deg); + font-family: 'Arial', sans-serif; +} + +body::before { + content: ''; + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1920&h=1080&fit=crop&q=80'); + background-size: cover; + background-position: center; + background-attachment: fixed; + opacity: 0.4; + z-index: -1; + pointer-events: none; +} + +.gkachele-watermark { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip-path: inset(50%); + border: 0; + white-space: nowrap; +} + +.container-large { + max-width: 1400px; + margin: 0 auto; + padding: 0 60px; +} + +/* Navigation Sticky - Premium */ +.nav-sticky { + position: fixed; + top: 0; + left: 0; + right: 0; + background: rgba(255, 255, 255, 0.98); + backdrop-filter: blur(20px); + border-bottom: 1px solid var(--border-light); + z-index: 1000; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + padding: 25px 0; +} + +.nav-container { + max-width: 1600px; + margin: 0 auto; + padding: 0 80px; + display: flex; + justify-content: space-between; + align-items: center; +} + +.nav-logo a { + font-size: 1.4rem; + font-weight: 700; + color: var(--text-primary); + text-decoration: none; + letter-spacing: 1px; + transition: all 0.3s ease; +} + +.nav-logo a:hover { + opacity: 0.7; + transform: translateX(2px); +} + +.nav-menu { + display: flex; + gap: 60px; + align-items: center; + position: absolute; + left: 50%; + transform: translateX(-50%); +} + +.nav-menu a { + font-size: 0.95rem; + font-weight: 400; + color: var(--text-secondary); + text-decoration: none; + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + letter-spacing: 0.5px; + position: relative; +} + +.nav-menu a::after { + content: ''; + position: absolute; + bottom: -5px; + left: 0; + width: 0; + height: 1px; + background: var(--text-primary); + transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1); +} + +.nav-menu a:hover { + color: var(--primary-orange); +} + +.nav-menu a:hover::after { + width: 100%; + background: var(--primary-orange); +} + +.nav-social { + display: flex; + gap: 25px; + align-items: center; +} + +.nav-social a { + width: 40px; + height: 40px; + display: flex; + align-items: center; + justify-content: center; + color: var(--text-secondary); + text-decoration: none; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + border-radius: 50%; + background: transparent; + position: relative; + font-size: 1rem; + border-radius: 50%; +} + +.nav-social a:hover { + transform: translateY(-3px) scale(1.15); + box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15); +} + +/* Facebook - Celeste Premium */ +.nav-social a[title="Facebook"] { + color: var(--facebook); +} + +.nav-social a[title="Facebook"]:hover { + background: var(--facebook); + color: white; + box-shadow: 0 8px 25px rgba(24, 119, 242, 0.4); +} + +/* Instagram - Gradiente Icónico */ +.nav-social a[title="Instagram"] { + color: var(--instagram-mid); +} + +.nav-social a[title="Instagram"]:hover { + background: linear-gradient(135deg, var(--instagram-start) 0%, var(--instagram-mid) 50%, var(--instagram-end) 100%); + color: white; + box-shadow: 0 8px 25px rgba(225, 48, 108, 0.5); +} + +/* YouTube - Rojo Premium */ +.nav-social a[title="YouTube"] { + color: var(--youtube); +} + +.nav-social a[title="YouTube"]:hover { + background: var(--youtube); + color: white; + box-shadow: 0 8px 25px rgba(255, 0, 0, 0.4); +} + +/* TikTok - Negro con Efecto Cyan */ +.nav-social a[title="TikTok"] { + color: var(--tiktok); +} + +.nav-social a[title="TikTok"]:hover { + background: var(--tiktok); + color: var(--tiktok-hover); + box-shadow: 0 8px 25px rgba(0, 242, 234, 0.5); +} + +/* Hero Section - Premium con Imagen Difuminada */ +.hero-section { + margin-top: 100px; + padding: 180px 0 140px; + text-align: center; + background: linear-gradient(to bottom, #ffffff 0%, var(--bg-light) 100%); + position: relative; + overflow: hidden; +} + +.hero-bg-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1920&h=1080&fit=crop&q=80'); + background-size: cover; + background-position: center; + opacity: 0.2; + z-index: 0; +} + +.hero-content { + max-width: 900px; + margin: 0 auto; + position: relative; + z-index: 1; +} + +.hero-title { + font-size: 8.5rem; + font-weight: 300; + letter-spacing: -4px; + margin-bottom: 30px; + color: var(--text-primary); + line-height: 1; +} + +.hero-subtitle { + font-size: 1.8rem; + font-weight: 400; + color: var(--text-secondary); + letter-spacing: -0.5px; + margin-bottom: 40px; + background: linear-gradient(135deg, var(--text-secondary) 0%, var(--primary-orange) 100%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +.hero-description { + font-size: 1.25rem; + line-height: 1.9; + color: var(--text-light); + max-width: 700px; + margin: 0 auto; + font-weight: 300; +} + +/* Plans Section - Premium con Imagen Difuminada y Acordeón */ +.plans-section { + padding: 150px 0; + background: var(--bg-light); + position: relative; + overflow: hidden; +} + +.plans-bg-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1920&h=1080&fit=crop&q=80'); + background-size: cover; + background-position: center; + opacity: 0.18; + z-index: 0; +} + +.plans-section .container-large { + position: relative; + z-index: 1; +} + +.section-title { + font-size: 4rem; + font-weight: 300; + letter-spacing: -2.5px; + margin-bottom: 80px; + color: var(--text-primary); + text-align: center; +} + +/* Plans Accordion - Desplegable Premium */ +.plans-accordion { + max-width: 1000px; + margin: 0 auto; +} + +.plan-accordion-item { + background: var(--card-bg); + border-radius: 20px; + margin-bottom: 25px; + overflow: hidden; + transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: var(--shadow-sm); + border: 1px solid var(--border-light); + /* Asegurar que ningún plan empiece activo */ + opacity: 1; +} + +/* Transición suave al abrir/cerrar */ +.plan-accordion-item.active { + box-shadow: var(--shadow-lg), var(--shadow-orange); + border-color: rgba(255, 107, 53, 0.3); + transform: translateY(-5px); + background: linear-gradient(to bottom, #ffffff 0%, rgba(255, 107, 53, 0.02) 100%); + animation: planOpen 0.5s cubic-bezier(0.4, 0, 0.2, 1); +} + +@keyframes planOpen { + from { + transform: translateY(0); + box-shadow: var(--shadow-sm); + } + to { + transform: translateY(-5px); + box-shadow: var(--shadow-lg), var(--shadow-orange); + } +} + +/* Todos los planes iguales - sin estilos especiales para premium */ + +.plan-accordion-header { + width: 100%; + padding: 45px 50px; + background: linear-gradient(135deg, #fafafa 0%, #ffffff 100%); + border: none; + display: flex; + justify-content: space-between; + align-items: center; + cursor: pointer; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + text-align: left; + position: relative; +} + +.plan-accordion-item.active .plan-accordion-header { + background: linear-gradient(135deg, #ffffff 0%, rgba(255, 107, 53, 0.03) 100%); + padding-bottom: 40px; +} + +/* Indicador visual sutil cuando está activo */ +.plan-accordion-item.active .plan-accordion-header::before { + content: ''; + position: absolute; + left: 0; + top: 0; + bottom: 0; + width: 4px; + background: var(--primary-orange); + border-radius: 0 4px 4px 0; +} + +.plan-accordion-header:hover { + background: linear-gradient(135deg, #f5f5f5 0%, #ffffff 100%); +} + +.plan-accordion-item.active .plan-accordion-header:hover { + background: linear-gradient(135deg, rgba(255, 107, 53, 0.03) 0%, #ffffff 100%); +} + +.plan-header-content { + flex: 1; +} + +.plan-accordion-header h3 { + font-size: 2.5rem; + font-weight: 600; + letter-spacing: -1px; + margin-bottom: 12px; + color: var(--text-primary); +} + +.plan-accordion-header .plan-tagline { + font-size: 1.2rem; + color: var(--text-secondary); + font-weight: 300; +} + +.plan-chevron { + font-size: 1.2rem; + color: var(--text-secondary); + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + margin-left: 30px; + transform: rotate(0deg); +} + +.plan-accordion-item.active .plan-chevron { + color: var(--primary-orange); + transform: rotate(180deg); +} + +.plan-accordion-body { + max-height: 0; + overflow: hidden; + transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); +} + +.plan-card-body { + padding: 50px 40px; +} + +.plan-card-body h4 { + font-size: 1.5rem; + font-weight: 600; + margin: 35px 0 20px; + color: var(--text-primary); + letter-spacing: -0.3px; +} + +.plan-card-body h4:first-child { + margin-top: 0; +} + +.plan-card-body ul { + list-style: none; + padding: 0; + margin-bottom: 35px; +} + +.plan-card-body li { + padding: 12px 0; + font-size: 1.05rem; + color: var(--text-secondary); + line-height: 1.8; + font-weight: 300; + transition: all 0.3s ease; +} + +.plan-card-body li:hover { + color: var(--text-primary); + padding-left: 5px; +} + +.plan-ideal { + font-size: 1.05rem; + color: var(--text-secondary); + line-height: 1.8; + margin-bottom: 40px; + font-weight: 300; +} + +.plan-ideal strong { + color: var(--text-primary); + font-weight: 600; +} + +.qr-mini-card { + text-align: center; + margin: 50px 0; + padding: 40px 20px; + background: var(--bg-light); + border-radius: 15px; + border: 1px solid var(--border-light); +} + +.qr-mini-card img { + width: 150px; + height: 150px; + border-radius: 12px; + box-shadow: var(--shadow-md); + margin-bottom: 20px; + transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1); +} + +.qr-mini-card:hover img { + transform: scale(1.05); +} + +.qr-mini-card p { + font-size: 1rem; + color: var(--text-light); + font-weight: 300; +} + +.plan-btn { + display: block; + width: 100%; + padding: 22px 40px; + background: var(--primary-orange); + color: #ffffff; + text-decoration: none; + border: 2px solid rgba(255, 255, 255, 0.1); + border-radius: 50px; + font-weight: 600; + font-size: 1.1rem; + text-align: center; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: 0 5px 20px rgba(255, 107, 53, 0.3); + letter-spacing: 0.5px; + margin-top: 30px; +} + +.plan-btn:hover { + background: #FF5722; + border-color: rgba(255, 255, 255, 0.2); + transform: translateY(-3px); + box-shadow: 0 8px 30px rgba(255, 107, 53, 0.4); +} + +.premium-btn { + background: linear-gradient(135deg, var(--primary-orange) 0%, #FF5722 100%); + border: 2px solid rgba(255, 255, 255, 0.15); + box-shadow: 0 5px 25px rgba(255, 107, 53, 0.35); +} + +.premium-btn:hover { + background: linear-gradient(135deg, #FF5722 0%, #FF4500 100%); + border-color: rgba(255, 255, 255, 0.25); + box-shadow: 0 8px 35px rgba(255, 107, 53, 0.5); +} + +/* Demos Section */ +.demos-section { + position: relative; + padding: 5rem 0; + background: linear-gradient(135deg, #0a0a0a 0%, #1a1a1a 100%); + overflow: hidden; +} + +.demos-bg-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: radial-gradient(circle at 50% 50%, rgba(255, 107, 53, 0.05) 0%, transparent 70%); + pointer-events: none; +} + +.section-subtitle { + text-align: center; + color: #888; + font-size: 1.1rem; + margin-bottom: 3rem; +} + +/* Logo Showcase */ +.logo-showcase { + text-align: center; + margin-bottom: 4rem; + padding: 3rem; + background: rgba(255, 107, 53, 0.05); + border-radius: 20px; + border: 2px solid rgba(255, 107, 53, 0.2); +} + +.main-logo { + max-width: 300px; + height: auto; + margin-bottom: 1.5rem; + filter: drop-shadow(0 10px 30px rgba(255, 107, 53, 0.3)); + transition: transform 0.3s ease; +} + +.main-logo:hover { + transform: scale(1.05); +} + +.logo-text { + font-size: 1.3rem; + color: #ff6b35; + font-weight: 600; +} + +.demos-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); + gap: 2rem; + margin-bottom: 4rem; +} + +.demo-card { + background: rgba(30, 30, 30, 0.8); + border-radius: 15px; + overflow: hidden; + transition: all 0.3s ease; + border: 1px solid rgba(255, 107, 53, 0.1); +} + +.demo-card:hover { + transform: translateY(-10px); + border-color: #ff6b35; + box-shadow: 0 20px 40px rgba(255, 107, 53, 0.3); +} + +.demo-image { + position: relative; + width: 100%; + height: 250px; + overflow: hidden; +} + +.demo-image img { + width: 100%; + height: 100%; + object-fit: cover; + transition: transform 0.5s ease; +} + +.demo-card:hover .demo-image img { + transform: scale(1.1); +} + +.demo-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.7); + display: flex; + align-items: center; + justify-content: center; + opacity: 0; + transition: opacity 0.3s ease; +} + +.demo-card:hover .demo-overlay { + opacity: 1; +} + +.demo-btn { + background: #ff6b35; + color: white; + padding: 0.8rem 1.5rem; + border-radius: 8px; + text-decoration: none; + font-weight: 600; + display: flex; + align-items: center; + gap: 0.5rem; + transition: all 0.3s ease; +} + +.demo-btn:hover { + background: #ff8555; + transform: scale(1.05); +} + +.demo-info { + padding: 1.5rem; +} + +.demo-info h3 { + font-size: 1.5rem; + margin-bottom: 0.5rem; + color: #ff6b35; +} + +.demo-category { + font-size: 0.95rem; + color: #888; + margin-bottom: 0.5rem; +} + +.demo-plan { + font-size: 0.9rem; + margin-bottom: 1rem; +} + +.demo-plan .badge-premium, +.demo-plan .badge-pro, +.demo-plan .badge-base { + padding: 0.3rem 0.8rem; + border-radius: 20px; + font-size: 0.75rem; + font-weight: 600; + text-transform: uppercase; +} + +.demo-plan .badge-premium { + background: linear-gradient(135deg, #ff6b35, #ff8555); + color: white; +} + +.demo-plan .badge-pro { + background: linear-gradient(135deg, #3b82f6, #60a5fa); + color: white; +} + +.demo-plan .badge-base { + background: rgba(255, 255, 255, 0.1); + color: #888; +} + +.demo-description { + color: #ccc; + font-size: 0.95rem; + line-height: 1.6; +} + +/* Video Demo */ +.video-demo-section { + margin-top: 4rem; + text-align: center; +} + +.video-demo-section h3 { + font-size: 2rem; + margin-bottom: 2rem; + color: #ff6b35; +} + +.video-container { + max-width: 900px; + margin: 0 auto; + border-radius: 15px; + overflow: hidden; + background: rgba(30, 30, 30, 0.8); + border: 2px solid rgba(255, 107, 53, 0.2); +} + +.video-placeholder { + padding: 6rem 2rem; + display: flex; + flex-direction: column; + align-items: center; + gap: 1rem; +} + +.video-placeholder i { + font-size: 4rem; + color: #ff6b35; + opacity: 0.5; +} + +.video-placeholder p { + font-size: 1.2rem; + color: #888; +} + +.video-placeholder small { + font-size: 0.9rem; + color: #666; +} + +/* QR Section - Premium Card con Imagen Difuminada */ +.qr-section { + padding: 150px 0; + background: #ffffff; + position: relative; + overflow: hidden; +} + +.qr-bg-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1920&h=1080&fit=crop&q=80'); + background-size: cover; + background-position: center; + opacity: 0.15; + z-index: 0; +} + +.qr-section .container-large { + position: relative; + z-index: 1; +} + +.qr-card { + background: var(--card-bg); + padding: 80px 60px; + border-radius: 20px; + text-align: center; + box-shadow: var(--shadow-md); + border: 1px solid var(--border-light); + max-width: 600px; + margin: 0 auto; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); +} + +.qr-card:hover { + transform: translateY(-10px); + box-shadow: var(--shadow-lg), var(--shadow-orange); + border-color: rgba(255, 107, 53, 0.15); +} + +.qr-card h3 { + font-size: 2rem; + font-weight: 600; + margin-bottom: 40px; + color: var(--text-primary); + letter-spacing: -0.5px; +} + +.qr-image { + width: 250px; + height: 250px; + border-radius: 15px; + box-shadow: var(--shadow-md); + margin-bottom: 30px; + transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1); +} + +.qr-card:hover .qr-image { + transform: scale(1.05); +} + +.qr-card p { + font-size: 1.1rem; + color: var(--text-light); + font-weight: 300; +} + +/* Contact Section - Premium Cards con Imagen Difuminada */ +.contact-section { + padding: 150px 0; + background: var(--bg-light); + position: relative; + overflow: hidden; +} + +.contact-bg-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1920&h=1080&fit=crop&q=80'); + background-size: cover; + background-position: center; + opacity: 0.18; + z-index: 0; +} + +.contact-section .container-large { + position: relative; + z-index: 1; +} + +.contact-grid { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 60px; + margin-top: 80px; + max-width: 1200px; + margin-left: auto; + margin-right: auto; + justify-items: center; +} + +.contact-cards { + display: flex; + flex-direction: column; + gap: 25px; + width: 100%; + max-width: 400px; + align-items: stretch; +} + +.contact-card { + background: var(--card-bg); + padding: 30px 35px; + border-radius: 15px; + display: flex; + align-items: center; + gap: 25px; + color: var(--text-primary); + text-decoration: none; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: var(--shadow-sm); + border: 1px solid var(--border-light); +} + +.contact-card:hover { + transform: translateX(10px); + box-shadow: var(--shadow-md), var(--shadow-orange); + border-color: rgba(255, 107, 53, 0.2); +} + +.contact-card:hover i { + color: var(--primary-orange); +} + +.contact-card i { + font-size: 1.8rem; + color: var(--text-secondary); + min-width: 35px; + transition: all 0.3s ease; +} + +.contact-card:hover i { + color: var(--text-primary); + transform: scale(1.1); +} + +.contact-card .fa-whatsapp { + color: var(--whatsapp); +} + +.contact-card span { + font-size: 1.1rem; + color: var(--text-secondary); + font-weight: 400; + transition: color 0.3s ease; +} + +.contact-card:hover span { + color: var(--text-primary); +} + +.whatsapp-card:hover { + background: linear-gradient(135deg, rgba(37, 211, 102, 0.05) 0%, rgba(37, 211, 102, 0.1) 100%); +} + +.social-card { + background: var(--card-bg); + padding: 50px 40px; + border-radius: 15px; + box-shadow: var(--shadow-sm); + border: 1px solid var(--border-light); + text-align: center; + width: 100%; + max-width: 400px; +} + +.social-card h3 { + font-size: 1.8rem; + font-weight: 600; + margin-bottom: 40px; + color: var(--text-primary); + letter-spacing: -0.3px; +} + +.social-links-grid { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 20px; +} + +.social-link { + width: 100%; + height: 70px; + border-radius: 12px; + display: flex; + align-items: center; + justify-content: center; + background: var(--bg-light); + color: var(--text-secondary); + text-decoration: none; + font-size: 1.5rem; + position: relative; + overflow: hidden; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + border: 1px solid var(--border-light); +} + +.social-link:hover { + transform: translateY(-5px) scale(1.05); + color: #ffffff; +} + +/* Facebook - Celeste Premium en Contacto con Gradiente Translúcido */ +.social-link[title="Facebook"] .fa-facebook-f { + color: var(--facebook); + font-size: 2rem; + transition: all 0.4s ease; +} + +.social-link[title="Facebook"]:hover { + background: linear-gradient(135deg, rgba(24, 119, 242, 0.15) 0%, rgba(24, 119, 242, 0.25) 100%); + border-color: var(--facebook); + box-shadow: 0 10px 30px rgba(24, 119, 242, 0.4); +} + +.social-link[title="Facebook"]:hover .fa-facebook-f { + color: var(--facebook); + transform: scale(1.2); +} + +/* Instagram - Gradiente Premium en Contacto Translúcido */ +.social-link[title="Instagram"] .fa-instagram { + color: var(--instagram-mid); + font-size: 2rem; + transition: all 0.4s ease; +} + +.social-link[title="Instagram"]:hover { + background: linear-gradient(135deg, + rgba(131, 58, 180, 0.15) 0%, + rgba(225, 48, 108, 0.2) 50%, + rgba(253, 29, 29, 0.25) 100%); + border-color: var(--instagram-mid); + box-shadow: 0 10px 30px rgba(225, 48, 108, 0.5); +} + +.social-link[title="Instagram"]:hover .fa-instagram { + transform: scale(1.2); + background: linear-gradient(135deg, var(--instagram-start) 0%, var(--instagram-mid) 50%, var(--instagram-end) 100%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +/* YouTube - Rojo Premium en Contacto Translúcido */ +.social-link[title="YouTube"] .fa-youtube { + color: var(--youtube); + font-size: 2rem; + transition: all 0.4s ease; +} + +.social-link[title="YouTube"]:hover { + background: linear-gradient(135deg, rgba(255, 0, 0, 0.15) 0%, rgba(255, 0, 0, 0.25) 100%); + border-color: var(--youtube); + box-shadow: 0 10px 30px rgba(255, 0, 0, 0.4); +} + +.social-link[title="YouTube"]:hover .fa-youtube { + color: var(--youtube); + transform: scale(1.2); +} + +/* TikTok - Negro con Cyan en Contacto Translúcido */ +.social-link[title="TikTok"] .fa-tiktok { + color: var(--tiktok); + font-size: 2rem; + transition: all 0.4s ease; +} + +.social-link[title="TikTok"]:hover { + background: linear-gradient(135deg, rgba(0, 0, 0, 0.15) 0%, rgba(0, 242, 234, 0.2) 100%); + border-color: var(--tiktok-hover); + box-shadow: 0 10px 30px rgba(0, 242, 234, 0.5); +} + +.social-link[title="TikTok"]:hover .fa-tiktok { + color: var(--tiktok-hover); + transform: scale(1.2); +} + +/* WhatsApp Float Button */ +.whatsapp-float { + position: fixed; + bottom: 40px; + right: 40px; + width: 70px; + height: 70px; + background: var(--whatsapp); + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + color: #ffffff; + text-decoration: none; + box-shadow: 0 6px 30px rgba(37, 211, 102, 0.4); + z-index: 999; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + font-size: 2rem; + animation: pulse-float 2.5s infinite; +} + +.whatsapp-float:hover { + background: var(--whatsapp-hover); + transform: scale(1.15); + box-shadow: 0 8px 40px rgba(37, 211, 102, 0.5); +} + +@keyframes pulse-float { + 0%, 100% { + box-shadow: 0 6px 30px rgba(37, 211, 102, 0.4); + } + 50% { + box-shadow: 0 6px 40px rgba(37, 211, 102, 0.6); + } +} + +/* Footer - Premium con Imagen Difuminada */ +.footer-main { + padding: 150px 0 100px; + background: #1a1a1a; + color: #ffffff; + text-align: center; + position: relative; + overflow: hidden; +} + +.footer-bg-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1920&h=1080&fit=crop&q=80'); + background-size: cover; + background-position: center; + opacity: 0.25; + z-index: 0; +} + +.footer-main .container-large { + position: relative; + z-index: 1; +} + +.footer-main p { + font-size: 0.95rem; + color: rgba(255, 255, 255, 0.6); + font-weight: 300; + letter-spacing: 0.5px; +} + +/* Scroll to Top Button */ +.scroll-to-top { + position: fixed; + bottom: 120px; + right: 40px; + width: 60px; + height: 60px; + background: var(--text-primary); + color: #ffffff; + border: none; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + font-size: 1.3rem; + z-index: 998; + opacity: 0; + visibility: hidden; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2); +} + +.scroll-to-top.show { + opacity: 1; + visibility: visible; +} + +.scroll-to-top:hover { + background: #000000; + transform: translateY(-5px) scale(1.1); + box-shadow: 0 6px 30px rgba(0, 0, 0, 0.3); +} + +.scroll-to-top i { + transition: transform 0.3s ease; +} + +.scroll-to-top:hover i { + transform: translateY(-2px); +} + +/* Old Styles for Plan Pages */ +header { + background: #222; + color: white; + padding: 40px 20px; + text-align: center; + box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2); +} + +header h1 { + font-size: 3rem; + margin-bottom: 10px; +} + +.tagline { + font-size: 1.2rem; + opacity: 0.9; +} + +.plan-details { + background: #fff; + padding: 40px; + border-radius: 12px; + margin-bottom: 40px; +} + +.plan-details h2 { + font-size: 2rem; + color: #222; + margin-bottom: 30px; +} + +.plan-details h3 { + font-size: 1.5rem; + color: #222; + margin: 30px 0 15px; +} + +.plan-details ul { + list-style: none; + padding: 0; +} + +.plan-details li { + padding: 10px 0; + font-size: 1.1rem; + color: #666; +} + +.plan-details p { + font-size: 1.1rem; + color: #666; + line-height: 1.8; +} + +.plan-details a { + color: #0077B5; + text-decoration: none; +} + +.plan-details a:hover { + text-decoration: underline; +} + +.qr-mini { + text-align: center; + margin-top: 30px; +} + +.qr-mini img { + width: 100px; + height: 100px; + border-radius: 8px; +} + +.contacto { + text-align: center; + padding: 30px; + background: #fff; + border-radius: 10px; +} + +.contacto h3 { + color: #222; + margin-bottom: 20px; +} + +.contacto a { + color: #0077B5; + text-decoration: none; + font-weight: 600; +} + +.contacto a:hover { + text-decoration: underline; +} + +footer { + text-align: center; + padding: 30px; + color: #999; + background: #222; +} + +footer p { + font-size: 0.9rem; +} + +/* Responsive - Premium */ +@media (max-width: 1200px) { + .container-large { + padding: 0 40px; + } + + .plans-grid { + grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); + gap: 40px; + } + + .hero-title { + font-size: 6.5rem; + } +} + +/* Responsive Tablet/Desktop Intermedio */ +@media (max-width: 1000px) and (min-width: 769px) { + .nav-container { + padding: 0 40px; + } + + .nav-menu { + gap: 30px; + } + + .nav-social { + gap: 15px; + } +} + +/* Responsive Mobile - Vertical y Horizontal */ +@media (max-width: 768px) { + /* Asegurar que funcione en vertical y horizontal */ + html { + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; + } + + body { + overflow-x: hidden; + width: 100%; + position: relative; + } + + .container-large { + padding: 0 20px; + width: 100%; + max-width: 100%; + box-sizing: border-box; + } + + .nav-container { + padding: 15px 20px; + flex-direction: column; + gap: 15px; + width: 100%; + } + + .nav-menu { + position: static; + transform: none; + gap: 20px; + justify-content: center; + order: 2; + flex-wrap: wrap; + width: 100%; + } + + .nav-social { + order: 3; + gap: 15px; + justify-content: center; + width: 100%; + } + + .nav-logo { + order: 1; + text-align: center; + } + + .hero-section { + padding: 80px 20px; + min-height: auto; + } + + .hero-title { + font-size: 3.5rem; + letter-spacing: -1px; + line-height: 1.1; + } + + .hero-subtitle { + font-size: 1.2rem; + } + + .hero-description { + font-size: 1rem; + padding: 0 10px; + } + + .section-title { + font-size: 2.5rem; + margin-bottom: 40px; + text-align: center; + } + + .plans-section { + padding: 80px 0; + } + + .plan-accordion-item { + margin-bottom: 20px; + border-radius: 15px; + } + + .plan-accordion-header { + padding: 25px 20px; + flex-direction: row; + align-items: center; + gap: 15px; + position: relative; + } + + .plan-accordion-header h3 { + font-size: 1.8rem; + margin-bottom: 5px; + } + + .plan-accordion-header .plan-tagline { + font-size: 1rem; + } + + .plan-chevron { + position: absolute; + top: 25px; + right: 20px; + margin: 0; + font-size: 1rem; + } + + .plan-card-body { + padding: 30px 20px; + } + + .plan-card-body h4 { + font-size: 1.3rem; + } + + .plan-card-body ul { + font-size: 0.95rem; + } + + .contact-section { + padding: 80px 0; + } + + .contact-grid { + grid-template-columns: 1fr; + gap: 30px; + width: 100%; + justify-items: center; + } + + .contact-cards { + max-width: 100%; + align-items: stretch; + } + + .contact-card { + padding: 25px 20px; + width: 100%; + } + + .social-card { + padding: 40px 30px; + max-width: 100%; + } + + .social-links-grid { + grid-template-columns: repeat(2, 1fr); + gap: 15px; + } + + .social-link { + height: 60px; + font-size: 1.3rem; + } + + .whatsapp-float { + width: 55px; + height: 55px; + bottom: 20px; + right: 20px; + font-size: 1.5rem; + } + + .scroll-to-top { + width: 45px; + height: 45px; + bottom: 85px; + right: 20px; + font-size: 1rem; + } + + .qr-section { + padding: 80px 0; + } + + .qr-card { + padding: 50px 30px; + } + + .qr-image { + width: 200px; + height: 200px; + } + + .footer-main { + padding: 80px 0 60px; + } + + /* VERTICAL móvil - Reducir espacio del nav */ + @media (max-width: 768px) and (orientation: portrait) { + .nav-sticky { + padding: 10px 0; + } + + .nav-container { + padding: 8px 15px; + gap: 8px; + } + + .nav-logo a { + font-size: 1.1rem; + } + + .nav-menu { + gap: 15px; + } + + .nav-link { + font-size: 0.85rem; + } + + .nav-social { + gap: 10px; + } + + .nav-social a { + font-size: 0.9rem; + } + + .hero-section { + padding: 60px 20px 50px; + margin-top: 100px; + } + + .hero-title { + font-size: 2.8rem; + } + } + + /* Horizontal móvil - ARREGLAR SOBREPUESTO */ + @media (max-width: 900px) and (orientation: landscape) { + .nav-sticky { + padding: 8px 0 !important; + } + + .nav-container { + padding: 5px 15px !important; + gap: 8px !important; + flex-direction: column !important; + flex-wrap: wrap !important; + } + + .nav-logo { + order: 1 !important; + flex: 0 0 auto !important; + } + + .nav-logo a { + font-size: 0.9rem !important; + } + + .nav-menu { + order: 2 !important; + position: static !important; + transform: none !important; + gap: 12px !important; + flex-wrap: wrap !important; + justify-content: center !important; + width: 100% !important; + } + + .nav-menu a { + font-size: 0.75rem !important; + padding: 2px 5px !important; + } + + .nav-social { + order: 3 !important; + gap: 10px !important; + justify-content: center !important; + width: 100% !important; + } + + .nav-social a { + width: 28px !important; + height: 28px !important; + font-size: 0.75rem !important; + } + + .hero-section { + padding: 50px 20px 40px !important; + margin-top: 70px !important; + min-height: auto !important; + } + + .hero-title { + font-size: 2.5rem !important; + margin-bottom: 15px !important; + line-height: 1.1 !important; + } + + .hero-subtitle { + font-size: 1rem !important; + margin-bottom: 15px !important; + } + + .hero-description { + font-size: 0.9rem !important; + line-height: 1.5 !important; + } + + .section-title { + font-size: 2rem !important; + margin-bottom: 30px !important; + } + + .plans-section { + padding: 60px 0 !important; + } + + .plan-accordion-header { + padding: 15px 15px !important; + } + + .plan-accordion-header h3 { + font-size: 1.4rem !important; + } + + .plan-accordion-header .plan-tagline { + font-size: 0.85rem !important; + } + + .plan-card-body { + padding: 20px 15px !important; + } + + .contact-section { + padding: 60px 0 !important; + } + + .contact-grid { + grid-template-columns: 1fr !important; + gap: 20px !important; + margin-top: 40px !important; + } + + .contact-cards { + max-width: 100% !important; + } + + .contact-card { + padding: 18px 15px !important; + gap: 15px !important; + } + + .contact-card i { + font-size: 1.4rem !important; + min-width: 25px !important; + } + + .contact-card span { + font-size: 0.9rem !important; + } + + .social-card { + padding: 30px 20px !important; + } + + .social-card h3 { + font-size: 1.4rem !important; + margin-bottom: 25px !important; + } + + .social-links-grid { + gap: 12px !important; + } + + .social-link { + height: 55px !important; + font-size: 1.2rem !important; + } + + .whatsapp-float { + width: 50px !important; + height: 50px !important; + bottom: 15px !important; + right: 15px !important; + font-size: 1.3rem !important; + } + + .scroll-to-top { + width: 40px !important; + height: 40px !important; + bottom: 70px !important; + right: 15px !important; + font-size: 0.9rem !important; + } + + .demos-section { + padding: 60px 0 !important; + } + + .demos-grid { + grid-template-columns: 1fr !important; + gap: 20px !important; + } + + .demo-card { + margin-bottom: 15px !important; + } + + .demo-image { + height: 180px !important; + } + + .demo-info { + padding: 15px !important; + } + + .demo-info h3 { + font-size: 1.2rem !important; + } + + .qr-section { + padding: 60px 0 !important; + } + + .qr-card { + padding: 40px 25px !important; + } + + .qr-image { + width: 180px !important; + height: 180px !important; + } + + .footer-main { + padding: 60px 0 40px !important; + } + } +} + +/* Modal Form - Formulario de Pedido */ +.modal-form { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.7); + display: flex; + justify-content: center; + align-items: center; + z-index: 10000; + padding: 20px; + backdrop-filter: blur(5px); +} + +.modal-form-content { + background: var(--card-bg); + border-radius: 20px; + max-width: 600px; + width: 100%; + max-height: 90vh; + overflow-y: auto; + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); + animation: modalFadeIn 0.3s ease; +} + +@keyframes modalFadeIn { + from { + opacity: 0; + transform: translateY(-20px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.modal-form-header { + padding: 30px 40px; + border-bottom: 1px solid var(--border-light); + display: flex; + justify-content: space-between; + align-items: center; + background: linear-gradient(135deg, #fafafa 0%, #ffffff 100%); + border-radius: 20px 20px 0 0; +} + +.modal-form-header h2 { + font-size: 2rem; + font-weight: 600; + color: var(--text-primary); + margin: 0; +} + +.modal-form-header h2 span { + color: var(--primary-orange); +} + +.modal-close { + background: none; + border: none; + font-size: 2.5rem; + color: var(--text-secondary); + cursor: pointer; + padding: 0; + width: 40px; + height: 40px; + display: flex; + align-items: center; + justify-content: center; + border-radius: 50%; + transition: all 0.3s ease; +} + +.modal-close:hover { + background: var(--bg-light); + color: var(--text-primary); +} + +.modal-form form { + padding: 40px; +} + +.form-group { + margin-bottom: 30px; +} + +.form-group label { + display: block; + font-size: 1rem; + font-weight: 500; + color: var(--text-primary); + margin-bottom: 10px; +} + +.form-group input, +.form-group textarea { + width: 100%; + padding: 15px 20px; + border: 1px solid var(--border-light); + border-radius: 10px; + font-size: 1rem; + font-family: 'Inter', sans-serif; + background: var(--bg-light); + color: var(--text-primary); + transition: all 0.3s ease; + box-sizing: border-box; +} + +.form-group input:focus, +.form-group textarea:focus { + outline: none; + border-color: var(--primary-orange); + background: #ffffff; + box-shadow: 0 0 0 3px rgba(255, 107, 53, 0.1); +} + +.form-group textarea { + resize: vertical; + min-height: 120px; +} + +.form-group small { + display: block; + margin-top: 8px; + font-size: 0.85rem; + color: var(--text-light); +} + +.form-actions { + display: flex; + gap: 15px; + margin-top: 40px; + justify-content: flex-end; +} + +.btn-cancel, +.btn-preview, +.btn-submit { + padding: 15px 35px; + border: none; + border-radius: 10px; + font-size: 1rem; + font-weight: 500; + cursor: pointer; + transition: all 0.3s ease; + font-family: 'Inter', sans-serif; +} + +.btn-cancel { + background: var(--bg-light); + color: var(--text-secondary); +} + +.btn-cancel:hover { + background: #e5e5e5; + color: var(--text-primary); +} + +.btn-preview { + background: #3b82f6; + color: #ffffff; +} + +.btn-preview:hover { + background: #2563eb; + transform: translateY(-2px); + box-shadow: 0 5px 15px rgba(59, 130, 246, 0.3); +} + +.btn-preview:disabled { + background: #9ca3af; + cursor: not-allowed; + transform: none; +} + +.btn-submit { + background: var(--primary-orange); + color: #ffffff; +} + +.btn-submit:hover { + background: rgba(255, 107, 53, 0.9); + transform: translateY(-2px); + box-shadow: 0 5px 15px rgba(255, 107, 53, 0.3); +} + +/* Modal responsive dentro de media query móvil */ +@media (max-width: 768px) { + .modal-form { + padding: 10px; + } + + .modal-form-content { + max-height: 95vh; + border-radius: 15px; + } + + .modal-form-header { + padding: 20px 25px; + } + + .modal-form-header h2 { + font-size: 1.5rem; + } + + .modal-form form { + padding: 30px 25px; + } + + .form-actions { + flex-direction: column; + } + + .btn-cancel, + .btn-preview, + .btn-submit { + width: 100%; + } +} + +/* ============================================ + SISTEMA DE PREVIEWS - CARDS Y MODALES + ============================================ */ + +/* Grupo de botones en planes */ +.plan-buttons-group { + display: flex; + gap: 12px; + margin-top: 25px; + flex-wrap: wrap; + align-items: center; +} + +.plan-btn-preview { + background: white; + border: 2px solid #1877F2; + color: #1877F2; + padding: 12px 24px; + border-radius: 10px; + font-size: 0.95rem; + font-weight: 600; + cursor: pointer; + transition: all 0.4s ease; + display: flex; + align-items: center; + gap: 8px; + box-shadow: 0 4px 15px rgba(24, 119, 242, 0.2); + letter-spacing: 0.3px; +} + +.plan-btn-preview:hover { + background: #1877F2; + color: white; + transform: translateY(-3px) scale(1.05); + box-shadow: 0 8px 25px rgba(24, 119, 242, 0.4); +} + +.plan-btn-preview i { + font-size: 1rem; + transition: all 0.4s ease; +} + +.plan-btn-preview:hover i { + transform: scale(1.15); +} + +/* Modal de Previews */ +.previews-modal { + display: none; + position: fixed; + z-index: 10000; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.85); + backdrop-filter: blur(5px); + overflow-y: auto; + padding: 20px; +} + +.previews-modal-content { + background: white; + margin: 40px auto; + max-width: 1400px; + border-radius: 20px; + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); + overflow: hidden; + animation: modalSlideIn 0.3s ease; +} + +@keyframes modalSlideIn { + from { + opacity: 0; + transform: translateY(-30px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.previews-modal-header { + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + color: white; + padding: 25px 30px; + display: flex; + justify-content: space-between; + align-items: center; +} + +.previews-modal-header h2 { + margin: 0; + font-size: 1.8rem; + font-weight: 600; +} + +.previews-filters { + padding: 20px 30px; + background: #f8f9fa; + border-bottom: 1px solid #e0e0e0; +} + +.filter-group { + display: flex; + flex-direction: column; + gap: 8px; +} + +.filter-group label { + font-weight: 600; + color: #333; + font-size: 0.9rem; +} + +.filter-group select { + padding: 10px 15px; + border: 2px solid #ddd; + border-radius: 8px; + font-size: 1rem; + background: white; + cursor: pointer; + transition: border-color 0.3s, box-shadow 0.3s; + min-width: 250px; +} + +.filter-group select:hover { + border-color: #1877F2; +} + +.filter-group select:focus { + outline: none; + border-color: #1877F2; + box-shadow: 0 0 0 3px rgba(24, 119, 242, 0.1); +} + +/* Grid de Previews */ +.previews-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); + gap: 30px; + padding: 30px; +} + +/* Cards de Preview - Diseño Tipo Card */ +.template-card { + background: white; + border-radius: 16px; + overflow: hidden; + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15); + transition: transform 0.3s ease, box-shadow 0.3s ease; + cursor: pointer; + position: relative; +} + +.template-card:hover { + transform: translateY(-8px); + box-shadow: 0 8px 30px rgba(0, 0, 0, 0.25); +} + +.template-preview { + position: relative; + overflow: hidden; + background: #f5f5f5; + aspect-ratio: 16/9; +} + +.template-preview img { + width: 100%; + height: 100%; + object-fit: cover; + display: block; + transition: transform 0.3s ease; +} + +.template-card:hover .template-preview img { + transform: scale(1.05); +} + +.template-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: linear-gradient(to bottom, transparent 0%, rgba(0, 0, 0, 0.7) 100%); + opacity: 0; + transition: opacity 0.3s ease; + display: flex; + align-items: flex-end; + padding: 20px; +} + +.template-card:hover .template-overlay { + opacity: 1; +} + +.overlay-info { + color: white; + width: 100%; +} + +.overlay-info h4 { + margin: 0 0 5px 0; + font-size: 1.1rem; + font-weight: 600; +} + +.overlay-info p { + margin: 0; + font-size: 0.9rem; + opacity: 0.9; +} + +.template-info { + padding: 20px; +} + +.template-info h3 { + margin: 0 0 10px 0; + font-size: 1.2rem; + color: #333; + font-weight: 600; +} + +.template-meta { + display: flex; + gap: 10px; + flex-wrap: wrap; + margin-bottom: 15px; +} + +.badge-plan { + display: inline-block; + padding: 4px 12px; + border-radius: 12px; + font-size: 0.85rem; + font-weight: 600; + text-transform: uppercase; +} + +.badge-base { + background: #95a5a6; + color: white; +} + +.badge-pro { + background: #3498db; + color: white; +} + +.badge-premium { + background: #9b59b6; + color: white; +} + +.badge-vip { + background: #f39c12; + color: white; +} + +.badge-rubro { + background: #e0e0e0; + color: #333; + font-size: 0.8rem; +} + +.template-description { + color: #666; + font-size: 0.9rem; + line-height: 1.5; + margin: 0; +} + +/* Lightbox de Screenshot Grande */ +.screenshot-lightbox { + display: none; + position: fixed; + z-index: 10001; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.95); + backdrop-filter: blur(10px); + overflow-y: auto; + padding: 40px 20px; +} + +.lightbox-content { + max-width: 1200px; + margin: 0 auto; + position: relative; + background: white; + border-radius: 20px; + overflow: hidden; + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5); + animation: lightboxFadeIn 0.3s ease; +} + +@keyframes lightboxFadeIn { + from { + opacity: 0; + transform: scale(0.9); + } + to { + opacity: 1; + transform: scale(1); + } +} + +.lightbox-close { + position: absolute; + top: 20px; + right: 20px; + font-size: 2rem; + color: white; + cursor: pointer; + z-index: 10; + width: 40px; + height: 40px; + display: flex; + align-items: center; + justify-content: center; + background: rgba(0, 0, 0, 0.5); + border-radius: 50%; + transition: background 0.3s; +} + +.lightbox-close:hover { + background: rgba(0, 0, 0, 0.8); +} + +.lightbox-content img { + width: 100%; + height: auto; + display: block; +} + +.lightbox-info { + padding: 30px; + background: white; +} + +.lightbox-info h3 { + margin: 0 0 10px 0; + font-size: 1.5rem; + color: #333; +} + +.lightbox-info p { + margin: 0 0 20px 0; + color: #666; + font-size: 1rem; +} + +.btn-request-design { + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + color: white; + border: none; + padding: 15px 30px; + border-radius: 10px; + font-size: 1rem; + font-weight: 600; + cursor: pointer; + transition: transform 0.3s, box-shadow 0.3s; + display: flex; + align-items: center; + gap: 10px; +} + +.btn-request-design:hover { + transform: translateY(-2px); + box-shadow: 0 5px 20px rgba(102, 126, 234, 0.4); +} + +/* Responsive */ +@media (max-width: 768px) { + .plan-buttons-group { + flex-direction: column; + } + + .plan-btn-preview { + width: 100%; + justify-content: center; + } + + .previews-grid { + grid-template-columns: 1fr; + padding: 20px; + } + + .previews-modal-content { + margin: 20px; + border-radius: 15px; + } + + .previews-modal-header { + padding: 20px; + } + + .previews-modal-header h2 { + font-size: 1.4rem; + } + + .lightbox-content { + margin: 20px; + } +} \ No newline at end of file diff --git a/backups/backup-20260114-085602/raspberry/templates/admin.html b/backups/backup-20260114-085602/raspberry/templates/admin.html new file mode 100644 index 0000000..4bd1a0f --- /dev/null +++ b/backups/backup-20260114-085602/raspberry/templates/admin.html @@ -0,0 +1,113 @@ + + + + + Admin - Demo + + + +
+

🔧 Panel Admin

+
+ +

Solicitudes Pendientes

+ + + + + + + + + {% for req in requests %} + + + + + + + + {% endfor %} + {% if not requests %} + + {% endif %} +
IDSlugEmail ClienteFechaAcción
{{ req.id }}{{ req.slug }}{{ req.email }}{{ req.created_at }} + +
No hay solicitudes pendientes
+ +

Todos los Sitios

+ + + + + + + + + {% for site in sites %} + + + + + + + + {% endfor %} +
IDSlugTemaStatusVer
{{ site.id }}{{ site.slug }}{{ site.theme }}{{ site.status }} + {% if site.status == 'published' %} + Ver + {% endif %} +
+ + + + diff --git a/backups/backup-20260114-085602/raspberry/templates/create_site.html b/backups/backup-20260114-085602/raspberry/templates/create_site.html new file mode 100644 index 0000000..67d7b1e --- /dev/null +++ b/backups/backup-20260114-085602/raspberry/templates/create_site.html @@ -0,0 +1,82 @@ + + + + + Crear Sitio - Demo + + + +
+

➕ Crear Nuevo Sitio

+
+ + + + + + +
+ ← Volver +
+ + + + diff --git a/backups/backup-20260114-085602/raspberry/templates/customizer.html b/backups/backup-20260114-085602/raspberry/templates/customizer.html new file mode 100644 index 0000000..8d8b056 --- /dev/null +++ b/backups/backup-20260114-085602/raspberry/templates/customizer.html @@ -0,0 +1,467 @@ + + + + + Personalizar - {{ site_name or 'Sitio' }} + + + + + +
+
+

Vista Previa

+
+ +
+
+
+
Cargando vista previa...
+ +
+
+ +
✅ Cambios guardados
+ + + + diff --git a/backups/backup-20260114-085602/raspberry/templates/dashboard.html b/backups/backup-20260114-085602/raspberry/templates/dashboard.html new file mode 100644 index 0000000..031189e --- /dev/null +++ b/backups/backup-20260114-085602/raspberry/templates/dashboard.html @@ -0,0 +1,83 @@ + + + + + Dashboard - Demo + + + +
+

📊 Mi Dashboard

+ +
+ +
+ {% for site in sites %} +
+

{{ site.slug }}

+

Tema: {{ site.theme }}

+ {{ site.status }} +
+ ✏️ Editar + {% if site.status == 'draft' %} + 📤 Enviar + {% endif %} +
+
+ {% endfor %} + + {% if not sites %} +
+

No tienes sitios aún. Crear uno

+
+ {% endif %} +
+ + diff --git a/backups/backup-20260114-085602/raspberry/templates/landing.html b/backups/backup-20260114-085602/raspberry/templates/landing.html new file mode 100644 index 0000000..594b57e --- /dev/null +++ b/backups/backup-20260114-085602/raspberry/templates/landing.html @@ -0,0 +1,47 @@ + + + + + PageBuilder SaaS - Demo + + + +
+

🎨 PageBuilder SaaS

+

Crea tu sitio web en minutos

+ Registrarse + Iniciar Sesión + Admin +
+ + diff --git a/backups/backup-20260114-085602/raspberry/templates/landing_real.html b/backups/backup-20260114-085602/raspberry/templates/landing_real.html new file mode 100644 index 0000000..ee88408 --- /dev/null +++ b/backups/backup-20260114-085602/raspberry/templates/landing_real.html @@ -0,0 +1,1442 @@ + + + + + + + + + + + + + + + + + + + + + + + + GKACHELE™ | Desarrollo Web Premium + + + + + + + + + +
+
+
+

GKACHELE™

+

Desarrollo Web Premium

+

Estamos listos para ayudarte a crear tu sitio moderno, rápido y personalizado.

+
+
+ + +
+
+
+

Nuestros Planes

+ + +
+ +
+ +
+
+

¿Qué incluye?

+
    +
  • ✅ Sitio web de una página
  • +
  • ✅ Diseño limpio y profesional
  • +
  • ✅ Información de contacto
  • +
  • ✅ Enlaces a redes sociales
  • +
  • ✅ Responsive (móvil y desktop)
  • +
  • ✅ Hosting gratuito
  • +
  • ✅ Dominio personalizado
  • +
+

Personalización

+
    +
  • 🎨 Color principal personalizado
  • +
  • ✍️ Tipografía a elección
  • +
  • 📝 Textos personalizados
  • +
+

Ideal para: Profesionales independientes, pequeños comercios, páginas institucionales básicas.

+
+ QR Base +

Comparte este plan

+
+
+ +
+
+
+
+ + +
+ +
+
+

¿Qué incluye?

+
    +
  • ✅ Sitio web multipágina
  • +
  • ✅ Animaciones suaves y efectos visuales
  • +
  • ✅ Galería de imágenes o portafolio
  • +
  • ✅ Formulario de contacto funcional
  • +
  • ✅ Responsive avanzado
  • +
  • ✅ Hosting gratuito
  • +
  • ✅ Dominio personalizado
  • +
+

Personalización

+
    +
  • 🎨 Paleta de colores personalizada
  • +
  • ✍️ Tipografía profesional
  • +
  • 🧩 Secciones a medida
  • +
+

Ideal para: Marcas personales, portfolios creativos, negocios que quieren destacar visualmente.

+
+ QR Pro +

Comparte este plan

+
+
+ +
+
+
+
+ + +
+ +
+
+

¿Qué incluye?

+
    +
  • ✅ Sitio web completo y escalable
  • +
  • ✅ Integración con redes sociales y herramientas externas
  • +
  • ✅ SEO optimizado
  • +
  • ✅ Panel de administración (opcional)
  • +
  • ✅ Hosting y dominio incluidos
  • +
  • ✅ Soporte técnico personalizado
  • +
+

Personalización

+
    +
  • 🎨 Diseño a medida
  • +
  • 📊 Integración con analítica
  • +
  • 🔒 Seguridad avanzada
  • +
+

Ideal para: Empresas, proyectos grandes, tiendas online, instituciones con necesidades específicas.

+
+ QR Premium +

Comparte este plan

+
+
+ +
+
+
+
+
+
+
+ + + + + + + + + + + +
+
+
+

Proyectos Demo

+

Ejemplos de sitios web que hemos creado

+ +
+ +
+
+
💃 Blow Dance
+ +
+
+

Blow Dance

+

💃 Escuela de Danza

+

Plan: Pro

+

Sitio web profesional para escuela de danza con galerías, videos y sistema de inscripción.

+
+
+ + +
+
+
🗳️ Dalmau
+ +
+
+

Dalmau Intendente

+

⚖️ Despacho Profesional

+

Plan: Base

+

Landing page profesional para despachos de abogados y contadores con información clara y llamados a la acción.

+
+
+ + +
+
+
💼 GKACHELE
+ +
+
+

GKACHELE™

+

💼 Portfolio Profesional

+

Plan: Premium

+

Sitio web premium con diseño moderno, animaciones y sistema de gestión avanzado.

+
+
+
+ + + +
+
+ + +
+
+
+
+

Comparte tu sitio

+ QR Code GKACHELE™ +

Escanea el código QR para compartir

+
+
+
+ + +
+
+ +
+ + + + + + + + + + +
+ +
+

© 2025 GKACHELE™. Todos los derechos reservados.

+ +

+ Código propiedad de GKACHELE © 2025 - Prohibida su reproducción sin autorización +

+
+
+ + + + diff --git a/backups/backup-20260114-085602/raspberry/templates/login.html b/backups/backup-20260114-085602/raspberry/templates/login.html new file mode 100644 index 0000000..de533bb --- /dev/null +++ b/backups/backup-20260114-085602/raspberry/templates/login.html @@ -0,0 +1,82 @@ + + + + + Login - Demo + + + +
+

🔐 Iniciar Sesión

+
+ + + +
+

+ ¿No tienes cuenta? Regístrate +

+
+ + + + diff --git a/backups/backup-20260114-085602/raspberry/templates/public_site.html b/backups/backup-20260114-085602/raspberry/templates/public_site.html new file mode 100644 index 0000000..5705e22 --- /dev/null +++ b/backups/backup-20260114-085602/raspberry/templates/public_site.html @@ -0,0 +1,33 @@ + + + + + {{ content.site_name or 'Mi Sitio' }} + + + +
+

{{ content.hero_title or 'Título' }}

+

{{ content.hero_description or 'Descripción' }}

+
+ + diff --git a/backups/backup-20260114-085602/raspberry/templates/register.html b/backups/backup-20260114-085602/raspberry/templates/register.html new file mode 100644 index 0000000..6c5534d --- /dev/null +++ b/backups/backup-20260114-085602/raspberry/templates/register.html @@ -0,0 +1,132 @@ + + + + + Registro - Demo + + + +
+

📝 Registrarse

+
+ + + + + +
+

+ ¿Ya tienes cuenta? Inicia sesión +

+
+ + + + diff --git a/backups/backup-20260114-085602/raspberry/themes/_gkachele/footer.php b/backups/backup-20260114-085602/raspberry/themes/_gkachele/footer.php new file mode 100644 index 0000000..97ab4fc --- /dev/null +++ b/backups/backup-20260114-085602/raspberry/themes/_gkachele/footer.php @@ -0,0 +1,22 @@ +
+ +
+
+ {% if menus.footer %} + + {% endif %} +

+ © 2025 GKACHELE™. Todos los derechos reservados.
+ Desarrollado desde noviembre 2025 por GKACHELE
+ Código propiedad de GKACHELE © 2025 - Prohibida su reproducción sin autorización +

+
+
+ + diff --git a/backups/backup-20260114-085602/raspberry/themes/_gkachele/header.php b/backups/backup-20260114-085602/raspberry/themes/_gkachele/header.php new file mode 100644 index 0000000..52440a7 --- /dev/null +++ b/backups/backup-20260114-085602/raspberry/themes/_gkachele/header.php @@ -0,0 +1,112 @@ + + + + + + + {% if site_name %}{{ site_name }}{% else %}GKACHELE Site{% endif %} + + + + + + +
+ +
+
diff --git a/backups/backup-20260114-085602/raspberry/themes/_gkachele/sidebar.php b/backups/backup-20260114-085602/raspberry/themes/_gkachele/sidebar.php new file mode 100644 index 0000000..a6adb25 --- /dev/null +++ b/backups/backup-20260114-085602/raspberry/themes/_gkachele/sidebar.php @@ -0,0 +1,33 @@ + + diff --git a/backups/backup-20260114-085602/raspberry/themes/gimnasio-claro/config.json b/backups/backup-20260114-085602/raspberry/themes/gimnasio-claro/config.json new file mode 100644 index 0000000..b1cffcc --- /dev/null +++ b/backups/backup-20260114-085602/raspberry/themes/gimnasio-claro/config.json @@ -0,0 +1,29 @@ +{ + "name": "Gimnasio Claro", + "rubro": "gimnasios", + "description": "Tema claro y moderno para gimnasios", + "sections": [ + "hero", + "planes_fitness", + "horarios", + "entrenadores", + "instalaciones", + "contacto" + ], + "colors": { + "primary": "#ff4d4d", + "secondary": "#1a1a1a", + "accent": "#ff6b6b" + }, + "typography": { + "font_family": "Roboto", + "headings": "Roboto" + }, + "features": { + "planes_fitness": true, + "horarios": true, + "entrenadores": true, + "instalaciones": true, + "precios": true + } +} diff --git a/backups/backup-20260114-085602/raspberry/themes/restaurante-moderno/config.json b/backups/backup-20260114-085602/raspberry/themes/restaurante-moderno/config.json new file mode 100644 index 0000000..59da350 --- /dev/null +++ b/backups/backup-20260114-085602/raspberry/themes/restaurante-moderno/config.json @@ -0,0 +1,29 @@ +{ + "name": "Restaurante Moderno", + "rubro": "restaurante", + "description": "Tema elegante para restaurantes", + "sections": [ + "hero", + "menu", + "horarios", + "reservas", + "especialidad_culinaria", + "contacto" + ], + "colors": { + "primary": "#d32f2f", + "secondary": "#ff6f00", + "accent": "#ff8f00" + }, + "typography": { + "font_family": "Roboto", + "headings": "Playfair Display" + }, + "features": { + "menu_url": true, + "horarios": true, + "reservas": true, + "capacidad": true, + "especialidad_culinaria": true + } +} diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/INFO.txt b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/INFO.txt new file mode 100644 index 0000000..65a86c5 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/INFO.txt @@ -0,0 +1,39 @@ +GKACHELE™ - Backup Completo +Hash del Proyecto: gkachele-login-customizer-20250114-v3 +Hash del Backup: gkachele-login-customizer-20250114-v3-20260114-122058 +Fecha: Wed Jan 14 12:21:04 CET 2026 +========================================== + +ESTADO DEL SISTEMA (Hash: gkachele-login-customizer-20250114-v3): +- ✅ Login redirige correctamente a customizer +- ✅ Sistema modular de templates (_gkachele/) +- ✅ Menús dinámicos (header, footer, sidebar) +- ✅ Widgets dinámicos +- ✅ Base de datos multi-tenant (main.db) +- ✅ Sistema de roles basado en DB +- ✅ Dashboard cliente (/dashboard) +- ✅ Customizer (/customizer/{site_id}) +- ✅ Dashboard admin (/admin) +- ✅ Servicio systemd: gkachele-saas +- ✅ Nginx reverse proxy + +ESTRUCTURA DE RUTAS: +- /customizer/{site_id} - Editar antes de publicar (cliente) +- /admin - Panel del cliente (se crea al aprobar) +- /dashboard - Panel principal admin (gestión del sistema) + +ARCHIVOS INCLUIDOS: +- Código local (demo/) +- Código Raspberry (raspberry/) +- Base de datos (raspberry/main.db) +- Configuración systemd (raspberry/gkachele-saas.service) +- Configuración nginx (raspberry/nginx.conf) + +RESTAURACIÓN: +1. Copiar raspberry/* a /home/pi/gkachele-saas/ +2. Restaurar main.db a database/main.db +3. Restaurar gkachele-saas.service a /etc/systemd/system/ +4. Restaurar nginx.conf a /etc/nginx/sites-available/ +5. Reiniciar servicios: sudo systemctl restart gkachele-saas nginx + +© 2025 GKACHELE™. Todos los derechos reservados. diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/INSTALAR_CRON.md b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/INSTALAR_CRON.md new file mode 100644 index 0000000..3a99c97 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/INSTALAR_CRON.md @@ -0,0 +1,68 @@ +# 🔄 Instalar Cron para Actualizar Raspberry Automáticamente + +## En tu máquina local (Windows/WSL): + +### 1. Hacer ejecutable el script +```bash +chmod +x update-raspberry.sh +chmod +x cron-update-raspberry.sh +``` + +### 2. Instalar cron (si no está) +```bash +# En WSL +sudo apt-get install cron + +# Iniciar servicio +sudo service cron start +``` + +### 3. Agregar al crontab +```bash +# Editar crontab +crontab -e + +# Agregar esta línea (actualiza cada hora): +0 * * * * /ruta/completa/a/cron-update-raspberry.sh + +# O cada 5 minutos (para pruebas): +*/5 * * * * /ruta/completa/a/cron-update-raspberry.sh +``` + +### 4. Verificar +```bash +# Ver crontab +crontab -l + +# Ver logs +tail -f /tmp/raspberry-update.log +``` + +## En Raspberry Pi (alternativa): + +### Crear script en Raspberry +```bash +# En Raspberry +cd /home/pi +mkdir -p scripts +nano scripts/update-from-git.sh +``` + +### Contenido del script: +```bash +#!/bin/bash +cd /home/pi/gkachele-saas +# Aquí puedes hacer git pull si usas git, o scp desde tu máquina +sudo systemctl restart gkachele-saas +``` + +### Agregar a crontab en Raspberry: +```bash +crontab -e + +# Actualizar cada hora +0 * * * * /home/pi/scripts/update-from-git.sh +``` + +--- +**Nota:** Ajusta las rutas según tu configuración. diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/README.md b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/README.md new file mode 100644 index 0000000..5244b98 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/README.md @@ -0,0 +1,98 @@ +# WordPress con Docker Compose + +Ejemplo básico de WordPress usando Docker Compose con MySQL y phpMyAdmin. + +## 🚀 Inicio Rápido + +### Requisitos +- Docker instalado +- Docker Compose instalado + +### Instalación + +1. **Clonar o descargar este proyecto** + +2. **Iniciar los contenedores:** +```bash +docker-compose up -d +``` + +3. **Acceder a WordPress:** + - Abre tu navegador en: http://localhost:8080 + - Sigue el asistente de instalación de WordPress + +4. **Acceder a phpMyAdmin (opcional):** + - Abre tu navegador en: http://localhost:8081 + - Usuario: `root` + - Contraseña: `root_password` + +## 📝 Configuración + +### Cambiar puertos +Si los puertos 8080 o 8081 están ocupados, edita `docker-compose.yml`: +```yaml +ports: + - "TU_PUERTO:80" # Cambia TU_PUERTO por el que prefieras +``` + +### Cambiar credenciales +Edita las variables de entorno en `docker-compose.yml`: +- `MYSQL_PASSWORD`: Contraseña del usuario de WordPress +- `MYSQL_ROOT_PASSWORD`: Contraseña del root de MySQL +- `WORDPRESS_DB_PASSWORD`: Debe coincidir con `MYSQL_PASSWORD` + +## 🛠️ Comandos Útiles + +### Ver logs +```bash +docker-compose logs -f +``` + +### Detener contenedores +```bash +docker-compose down +``` + +### Detener y eliminar volúmenes (⚠️ borra los datos) +```bash +docker-compose down -v +``` + +### Reiniciar un servicio específico +```bash +docker-compose restart wordpress +``` + +### Ver contenedores en ejecución +```bash +docker-compose ps +``` + +## 📁 Estructura + +``` +. +├── docker-compose.yml # Configuración de servicios +├── wp-content/ # Temas y plugins personalizados (se crea automáticamente) +└── README.md # Este archivo +``` + +## 🔒 Seguridad + +⚠️ **IMPORTANTE**: Este es un ejemplo básico para desarrollo. Para producción: +- Cambia todas las contraseñas por defecto +- Usa variables de entorno seguras +- Configura SSL/TLS +- Implementa un firewall +- Usa secrets de Docker o un gestor de secretos + +## 🐳 Servicios Incluidos + +- **WordPress**: Aplicación principal (puerto 8080) +- **MySQL 8.0**: Base de datos (puerto interno) +- **phpMyAdmin**: Administrador de base de datos (puerto 8081) + +## 📚 Recursos + +- [Documentación de WordPress](https://wordpress.org/support/) +- [Documentación de Docker Compose](https://docs.docker.com/compose/) diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/backup_completo.sh b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/backup_completo.sh new file mode 100644 index 0000000..b17f1db --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/backup_completo.sh @@ -0,0 +1,105 @@ +#!/bin/bash +# GKACHELE™ - Script de Backup Completo +# © 2025 GKACHELE™. Todos los derechos reservados. +# Uso: bash backup_completo.sh + +HASH="gkachele-login-customizer-20250114-v3-$(date +%Y%m%d-%H%M%S)" +BACKUP_DIR="backups/backup-${HASH}" +RASPBERRY_HOST="192.168.1.134" +RASPBERRY_PORT="2222" +RASPBERRY_USER="pi" +RASPBERRY_PASS="Gdk1983gdk45@" +RASPBERRY_PATH="/home/pi/gkachele-saas" + +echo "==========================================" +echo "🔄 GKACHELE™ - BACKUP COMPLETO" +echo "==========================================" +echo "Hash del Proyecto: gkachele-login-customizer-20250114-v3" +echo "Hash del Backup: ${HASH}" +echo "Fecha: $(date)" +echo "" + +# Crear directorio de backup +mkdir -p "${BACKUP_DIR}" +mkdir -p "${BACKUP_DIR}/local" +mkdir -p "${BACKUP_DIR}/raspberry" + +echo "📦 1. Respaldando código local..." +cp -r demo "${BACKUP_DIR}/local/" 2>/dev/null || echo "⚠️ No se encontró demo/" +cp -r *.md "${BACKUP_DIR}/local/" 2>/dev/null || echo "⚠️ No se encontraron .md" +cp -r *.sh "${BACKUP_DIR}/local/" 2>/dev/null || echo "⚠️ No se encontraron .sh" +cp -r *.py "${BACKUP_DIR}/local/" 2>/dev/null || echo "⚠️ No se encontraron .py" + +echo "📦 2. Respaldando desde Raspberry..." +echo " Conectando a Raspberry..." + +# Backup de código +sshpass -p "${RASPBERRY_PASS}" scp -P ${RASPBERRY_PORT} -o StrictHostKeyChecking=no -r \ + ${RASPBERRY_USER}@${RASPBERRY_HOST}:${RASPBERRY_PATH}/* \ + "${BACKUP_DIR}/raspberry/" 2>/dev/null || echo "⚠️ Error copiando código" + +# Backup de base de datos +sshpass -p "${RASPBERRY_PASS}" scp -P ${RASPBERRY_PORT} -o StrictHostKeyChecking=no \ + ${RASPBERRY_USER}@${RASPBERRY_HOST}:${RASPBERRY_PATH}/database/main.db \ + "${BACKUP_DIR}/raspberry/main.db" 2>/dev/null || echo "⚠️ Error copiando DB" + +# Backup de configuración +sshpass -p "${RASPBERRY_PASS}" ssh -p ${RASPBERRY_PORT} -o StrictHostKeyChecking=no \ + ${RASPBERRY_USER}@${RASPBERRY_HOST} \ + "sudo cat /etc/systemd/system/gkachele-saas.service" > "${BACKUP_DIR}/raspberry/gkachele-saas.service" 2>/dev/null || echo "⚠️ Error copiando service" + +sshpass -p "${RASPBERRY_PASS}" ssh -p ${RASPBERRY_PORT} -o StrictHostKeyChecking=no \ + ${RASPBERRY_USER}@${RASPBERRY_HOST} \ + "sudo cat /etc/nginx/sites-available/gk-saas.komkida.duckdns.org.conf" > "${BACKUP_DIR}/raspberry/nginx.conf" 2>/dev/null || echo "⚠️ Error copiando nginx" + +echo "" +echo "📝 3. Creando archivo de información..." +cat > "${BACKUP_DIR}/INFO.txt" << EOF +GKACHELE™ - Backup Completo +Hash del Proyecto: gkachele-login-customizer-20250114-v3 +Hash del Backup: ${HASH} +Fecha: $(date) +========================================== + +ESTADO DEL SISTEMA (Hash: gkachele-login-customizer-20250114-v3): +- ✅ Login redirige correctamente a customizer +- ✅ Sistema modular de templates (_gkachele/) +- ✅ Menús dinámicos (header, footer, sidebar) +- ✅ Widgets dinámicos +- ✅ Base de datos multi-tenant (main.db) +- ✅ Sistema de roles basado en DB +- ✅ Dashboard cliente (/dashboard) +- ✅ Customizer (/customizer/{site_id}) +- ✅ Dashboard admin (/admin) +- ✅ Servicio systemd: gkachele-saas +- ✅ Nginx reverse proxy + +ESTRUCTURA DE RUTAS: +- /customizer/{site_id} - Editar antes de publicar (cliente) +- /admin - Panel del cliente (se crea al aprobar) +- /dashboard - Panel principal admin (gestión del sistema) + +ARCHIVOS INCLUIDOS: +- Código local (demo/) +- Código Raspberry (raspberry/) +- Base de datos (raspberry/main.db) +- Configuración systemd (raspberry/gkachele-saas.service) +- Configuración nginx (raspberry/nginx.conf) + +RESTAURACIÓN: +1. Copiar raspberry/* a /home/pi/gkachele-saas/ +2. Restaurar main.db a database/main.db +3. Restaurar gkachele-saas.service a /etc/systemd/system/ +4. Restaurar nginx.conf a /etc/nginx/sites-available/ +5. Reiniciar servicios: sudo systemctl restart gkachele-saas nginx + +© 2025 GKACHELE™. Todos los derechos reservados. +EOF + +echo "✅ Backup completado en: ${BACKUP_DIR}" +echo "" +echo "📊 Resumen:" +du -sh "${BACKUP_DIR}"/* 2>/dev/null | head -5 +echo "" +echo "🎯 Hash del backup: ${HASH}" +echo "==========================================" diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/copiar_db_raspberry.sh b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/copiar_db_raspberry.sh new file mode 100644 index 0000000..2f4ce47 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/copiar_db_raspberry.sh @@ -0,0 +1,29 @@ +#!/bin/bash +# GKACHELE™ - Copiar DB desde Raspberry +# © 2025 GKACHELE™. Todos los derechos reservados. + +TIMESTAMP=$(date +%Y%m%d_%H%M%S) +RASPBERRY_HOST="192.168.1.134" +RASPBERRY_PORT="2222" +RASPBERRY_USER="pi" +RASPBERRY_PASS="Gdk1983gdk45@" +RASPBERRY_DB="/home/pi/gkachele-saas/database/main.db" +LOCAL_DB="/mnt/c/word/demo/database/main_raspberry_${TIMESTAMP}.db" + +echo "🔄 Copiando base de datos desde Raspberry..." +echo "" + +sshpass -p "${RASPBERRY_PASS}" scp -P ${RASPBERRY_PORT} -o StrictHostKeyChecking=no \ + ${RASPBERRY_USER}@${RASPBERRY_HOST}:${RASPBERRY_DB} \ + "${LOCAL_DB}" + +if [ $? -eq 0 ]; then + echo "✅ Base de datos copiada exitosamente" + echo "📍 Ubicación: ${LOCAL_DB}" + echo "" + echo "💡 Ahora puedes abrirla en DB Browser for SQLite:" + echo " ${LOCAL_DB}" +else + echo "❌ Error al copiar la base de datos" + exit 1 +fi diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/COMO_USAR.md b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/COMO_USAR.md new file mode 100644 index 0000000..cb4c94f --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/COMO_USAR.md @@ -0,0 +1,74 @@ +# 🎯 Cómo Usar el Demo + +## ⚠️ IMPORTANTE: Python en WSL + +Tu proyecto está en WSL, así que necesitas ejecutar desde ahí. + +## 🚀 Opción 1: Desde WSL (Recomendado) + +```bash +# En WSL +cd /mnt/c/word/demo +chmod +x start.sh +./start.sh +``` + +O directamente: +```bash +cd /mnt/c/word/demo +python3 app.py +``` + +## 🚀 Opción 2: Copiar a WSL + +```bash +# En WSL +cp -r /mnt/c/word/demo ~/demo-saas +cd ~/demo-saas +python3 app.py +``` + +## 📋 Pasos para Probar + +1. **Abrir navegador**: http://localhost:5001 + +2. **Registrarse**: + - Email: test@test.com + - Password: test123 + - Plan: Base + - Rubro: Gimnasio + +3. **Crear sitio**: + - Nombre: Mi Gimnasio + - Slug: mi-gimnasio + - Título: Bienvenido + - Descripción: Tu gimnasio de confianza + +4. **Personalizar** (Customizer): + - Cambia colores + - Cambia texto + - Preview se actualiza en tiempo real + - Guarda cambios + +5. **Enviar para aprobación** + +6. **Admin** (necesitas ser user_id = 1): + - Ve a `/admin` + - Aprueba el sitio + +7. **Ver publicado**: `/site/mi-gimnasio` + +## 🔧 Si el puerto 5001 no funciona + +Cambia en `app.py` línea 400: +```python +port = int(os.environ.get('PORT', 8000)) # Cambia 5001 por 8000 +``` + +## ✅ Verificar que funciona + +```bash +# En WSL +curl http://localhost:5001 +# Debe mostrar HTML de la landing +``` diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/EJECUTAR_AHORA.md b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/EJECUTAR_AHORA.md new file mode 100644 index 0000000..32b4bb7 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/EJECUTAR_AHORA.md @@ -0,0 +1,57 @@ +# ✅ DEMO FUNCIONANDO - EJECUTAR AHORA + +## 🚀 Comando Simple + +**Abre WSL y ejecuta:** + +```bash +cd /mnt/c/word/demo +python3 app.py +``` + +## 📍 Luego abre en tu navegador: + +``` +http://localhost:5001 +``` + +## ✅ Verificación + +El test ya pasó: +- ✅ App importada correctamente +- ✅ Flask funcionando +- ✅ Templates encontrados +- ✅ Base de datos inicializada + +## 🎯 Flujo de Prueba + +1. **Landing** → http://localhost:5001 +2. **Registrarse** → Click "Registrarse" + - Email: test@test.com + - Password: test123 +3. **Crear sitio** → Click "Crear Sitio" + - Nombre: Mi Gimnasio + - Slug: mi-gimnasio +4. **Customizer** → Se abre automáticamente + - Cambia colores, texto + - Preview se actualiza en tiempo real +5. **Enviar** → Click "Enviar para Aprobación" +6. **Admin** → http://localhost:5001/admin + - (Necesitas ser user_id = 1, el primer usuario registrado) +7. **Ver publicado** → http://localhost:5001/site/mi-gimnasio + +## 🔧 Si el puerto 5001 está ocupado + +Edita `app.py` línea 399: +```python +port = int(os.environ.get('PORT', 8000)) # Cambia a 8000 +``` + +## ✨ Características Funcionando + +- ✅ Multi-tenant (DB por cliente) +- ✅ Customizer (sidebar + preview) +- ✅ Actualización en tiempo real +- ✅ Sistema de solicitudes +- ✅ Admin panel +- ✅ Sitios públicos diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/INICIO_WINDOWS.md b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/INICIO_WINDOWS.md new file mode 100644 index 0000000..1701bd9 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/INICIO_WINDOWS.md @@ -0,0 +1,69 @@ +# 🚀 Iniciar Demo en Windows + +## Opción 1: Usar Python desde WSL + +Si tienes Python en WSL (que es donde tienes tu proyecto): + +```bash +# En WSL +cd ~/mi-landing/pagebuilder-saas-prod +# O copia la carpeta demo a WSL +cd /mnt/c/word/demo +python3 app.py +``` + +## Opción 2: Usar Python de Windows + +1. **Verificar Python instalado:** +```powershell +py --version +# o +python --version +``` + +2. **Instalar dependencias:** +```powershell +cd demo +py -m pip install Flask Werkzeug +``` + +3. **Ejecutar:** +```powershell +py app.py +``` + +## Opción 3: Usar el script start.bat + +Doble click en `start.bat` (instala dependencias y ejecuta) + +## 🔧 Si no funciona + +### Verificar puerto +```powershell +netstat -ano | findstr :5001 +``` + +### Cambiar puerto +Edita `app.py` línea 400, cambia: +```python +port = int(os.environ.get('PORT', 5001)) +``` +Por: +```python +port = int(os.environ.get('PORT', 8000)) +``` + +### Ver errores +Ejecuta directamente: +```powershell +cd demo +py app.py +``` + +Y verás los errores en la consola. + +## 📍 URLs + +- Landing: http://localhost:5001 +- Admin: http://localhost:5001/admin +- Dashboard: http://localhost:5001/dashboard (requiere login) diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/INSTRUCCIONES.md b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/INSTRUCCIONES.md new file mode 100644 index 0000000..43f87c5 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/INSTRUCCIONES.md @@ -0,0 +1,90 @@ +# 🚀 Demo Funcional - Instrucciones + +## ✅ Lo que tienes + +1. **Backend Flask completo** con: + - Multi-tenant (DB por cliente) + - Customizer (sidebar + preview) + - Sistema de solicitudes + - Admin panel + +2. **Flujo completo**: + - Registro → Dashboard → Crear sitio → Customizer → Enviar → Admin aprueba → Publicado + +## 🎯 Cómo probarlo + +### 1. Instalar dependencias +```bash +cd demo +pip install Flask Werkzeug +``` + +### 2. Ejecutar +```bash +python app.py +``` + +### 3. Abrir navegador +``` +http://localhost:5000 +``` + +## 📋 Pasos para probar + +1. **Registrarse** (`/register`) + - Email: test@test.com + - Password: test123 + - Plan: Base + - Rubro: Gimnasio + +2. **Crear sitio** (`/dashboard/create`) + - Nombre: Mi Gimnasio + - Slug: mi-gimnasio + - Título: Bienvenido + - Descripción: Tu gimnasio de confianza + +3. **Personalizar** (`/customizer/{site_id}`) + - Cambia colores, texto, tipografía + - Preview se actualiza en tiempo real + - Guarda cambios + +4. **Enviar para aprobación** + - Click en "Enviar para Aprobación" + - Status cambia a "pending" + +5. **Admin** (`/admin`) + - Registra otro usuario (será user_id = 2) + - O modifica la DB para que el primer usuario sea admin (user_id = 1) + - Ve solicitudes pendientes + - Aprueba sitio + +6. **Ver sitio publicado** (`/site/{slug}`) + - Una vez aprobado, el sitio está público + +## 🔧 Para hacer admin + +En `app.py` línea 200, cambia: +```python +if 'user_id' not in session or session['user_id'] != 1: +``` +Por: +```python +if 'user_id' not in session: +``` +Así cualquier usuario puede ser admin (solo para demo). + +## ✨ Características del Demo + +- ✅ Multi-tenant: Cada cliente tiene su DB +- ✅ Customizer: Sidebar izquierdo + Preview derecha +- ✅ Actualización en tiempo real +- ✅ Sistema de solicitudes +- ✅ Admin panel +- ✅ Sitios públicos + +## 🐛 Si no funciona + +1. Verifica que Flask esté instalado: `pip list | findstr Flask` +2. Verifica puerto 5000 libre: `netstat -ano | findstr :5000` +3. Revisa logs en consola +4. Asegúrate de estar en la carpeta `demo/` diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/LEEME_PRIMERO.txt b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/LEEME_PRIMERO.txt new file mode 100644 index 0000000..2e5536f --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/LEEME_PRIMERO.txt @@ -0,0 +1,47 @@ +═══════════════════════════════════════════════════════════ + ✅ DEMO FUNCIONANDO - VERSIÓN SIMPLE +═══════════════════════════════════════════════════════════ + +🚀 EJECUTAR: + +Desde WSL: + cd /mnt/c/word/demo + python3 app_simple.py + +Luego abre en navegador: + http://localhost:5001 + +═══════════════════════════════════════════════════════════ + +✨ CARACTERÍSTICAS: + +✅ Landing page +✅ Registro/Login +✅ Dashboard cliente +✅ Crear sitio +✅ Customizer (sidebar + preview en tiempo real) +✅ Enviar para aprobación +✅ Admin panel +✅ Sitios públicos + +═══════════════════════════════════════════════════════════ + +📋 FLUJO: + +1. Registrarse → /register +2. Crear sitio → /create +3. Personalizar → /customizer/{id} +4. Enviar → Click "Enviar" +5. Admin → /admin (aprobar) +6. Ver → /site/{slug} + +═══════════════════════════════════════════════════════════ + +🔧 SI NO FUNCIONA: + +1. Verifica Python: python3 --version +2. Instala Flask: pip3 install Flask Werkzeug +3. Cambia puerto en app_simple.py línea final: + port=8000 (en lugar de 5001) + +═══════════════════════════════════════════════════════════ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/README.md b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/README.md new file mode 100644 index 0000000..9679af6 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/README.md @@ -0,0 +1,38 @@ +# 🚀 Demo SaaS PageBuilder + +## Inicio Rápido + +```bash +cd demo +pip install -r requirements.txt +python app.py +``` + +Abre: http://localhost:5000 + +## Flujo Demo + +1. **Registrarse** → `/register` +2. **Crear sitio** → `/dashboard/create` +3. **Personalizar** → `/customizer/{site_id}` (sidebar + preview) +4. **Enviar** → Cliente envía para aprobación +5. **Admin** → `/admin` (aprobar sitios) +6. **Publicado** → `/site/{slug}` + +## Credenciales Admin + +- User ID: 1 (primer usuario registrado) +- Accede a `/admin` con user_id = 1 + +## Estructura + +``` +demo/ +├── app.py # Backend Flask +├── database/ # SQLite DBs +│ ├── main.db # DB principal +│ └── sites/ # DB por cliente +├── sites/ # Sitios compilados +├── themes/ # Templates +└── templates/ # HTML templates +``` diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/__pycache__/app.cpython-312.pyc b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/__pycache__/app.cpython-312.pyc new file mode 100644 index 0000000..81ad735 Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/__pycache__/app.cpython-312.pyc differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/__pycache__/app_simple.cpython-312.pyc b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/__pycache__/app_simple.cpython-312.pyc new file mode 100644 index 0000000..458dd46 Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/__pycache__/app_simple.cpython-312.pyc differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/app.py b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/app.py new file mode 100644 index 0000000..18bcb56 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/app.py @@ -0,0 +1,1220 @@ +""" +GKACHELE™ SaaS PageBuilder - Sistema Profesional +© 2025 GKACHELE™. Todos los derechos reservados. +Desarrollado desde noviembre 2025 por GKACHELE +Código propiedad de GKACHELE © 2025 - Prohibida su reproducción sin autorización +""" + +import os +import json +import sqlite3 +import secrets +from datetime import datetime +from flask import Flask, render_template, request, jsonify, session, redirect, url_for, send_from_directory +from werkzeug.security import generate_password_hash, check_password_hash + +app = Flask(__name__, template_folder='templates', static_folder='static') +app.secret_key = 'demo-secret-key-2025' +app.config['SESSION_COOKIE_SAMESITE'] = 'Lax' + +# Manejador de errores global - siempre devolver JSON +@app.errorhandler(500) +def handle_500(e): + print(f"❌ Error 500: {e}") + import traceback + traceback.print_exc() + # Asegurar que siempre devuelva JSON + response = jsonify({'success': False, 'error': 'Error interno del servidor'}) + response.status_code = 500 + return response + +@app.errorhandler(404) +def handle_404(e): + response = jsonify({'success': False, 'error': 'No encontrado'}) + response.status_code = 404 + return response + +@app.errorhandler(403) +def handle_403(e): + response = jsonify({'success': False, 'error': 'No autorizado'}) + response.status_code = 403 + return response + +# Manejador para excepciones no capturadas - FORZAR JSON +@app.errorhandler(Exception) +def handle_exception(e): + print(f"❌❌❌ EXCEPCIÓN NO CAPTURADA: {e}") + import traceback + traceback.print_exc() + # SIEMPRE devolver JSON, nunca HTML + response = jsonify({'success': False, 'error': f'Error: {str(e)}'}) + response.status_code = 500 + response.headers['Content-Type'] = 'application/json' + return response + +# Forzar JSON en TODAS las rutas /register, /login, /api/* +@app.before_request +def before_request(): + # Si es POST a /register o /login, forzar JSON + if request.method == 'POST' and (request.path.startswith('/register') or + request.path.startswith('/login') or + request.path.startswith('/api/')): + # Asegurar que acepta JSON + if not request.is_json and request.content_type and 'application/json' in request.content_type: + try: + request.get_json(force=True) + except: + pass + +# Directorios +BASE_DIR = os.path.dirname(__file__) +DATABASE_DIR = os.path.join(BASE_DIR, 'database') +SITES_DIR = os.path.join(BASE_DIR, 'sites') +THEMES_DIR = os.path.join(BASE_DIR, 'themes') +STATIC_DIR = os.path.join(BASE_DIR, 'static') +UPLOADS_DIR = os.path.join(BASE_DIR, 'uploads') + +# Crear directorios +# NOTA: Ya no se crean bases de datos separadas (cliente-X.db) +# TODO está en main.db (sistema multi-tenant) +for d in [DATABASE_DIR, SITES_DIR, THEMES_DIR, UPLOADS_DIR]: + os.makedirs(d, exist_ok=True) + +# DB principal +MAIN_DB = os.path.join(DATABASE_DIR, 'main.db') + +def init_db(): + """Inicializar base de datos principal - TODO EN UNA SOLA DB (sistema multi-tenant)""" + try: + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Usuarios (todos los clientes en una sola tabla) - Sistema GKACHELE™ + c.execute('''CREATE TABLE IF NOT EXISTS users ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + email TEXT UNIQUE NOT NULL, + password TEXT NOT NULL, + role TEXT DEFAULT 'subscriber', + plan TEXT DEFAULT 'base', + rubro TEXT DEFAULT 'gimnasio', + status TEXT DEFAULT 'active', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP + )''') + + # Añadir columna role si no existe (migración) + try: + c.execute('ALTER TABLE users ADD COLUMN role TEXT DEFAULT "subscriber"') + except: + pass # Columna ya existe + + # Añadir columna status si no existe (migración) + try: + c.execute('ALTER TABLE users ADD COLUMN status TEXT DEFAULT "active"') + except: + pass # Columna ya existe + + # Crear primer admin si no existe (user_id = 1) + c.execute('SELECT COUNT(*) FROM users WHERE id = 1') + if c.fetchone()[0] == 0: + from werkzeug.security import generate_password_hash + admin_password = generate_password_hash('admin123') # Cambiar después + c.execute('''INSERT INTO users (id, email, password, role, plan, rubro, status) + VALUES (1, 'admin@gkachele.com', ?, 'administrator', 'premium', 'admin', 'active')''', + (admin_password,)) + print("✅ Usuario administrador creado: admin@gkachele.com / admin123") + + # Sitios (todos los sitios, filtrados por user_id) + c.execute('''CREATE TABLE IF NOT EXISTS sites ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + slug TEXT UNIQUE NOT NULL, + theme TEXT DEFAULT 'default', + status TEXT DEFAULT 'draft', + content_json TEXT, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id) + )''') + + # Solicitudes + c.execute('''CREATE TABLE IF NOT EXISTS requests ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + site_id INTEGER NOT NULL, + user_id INTEGER NOT NULL, + status TEXT DEFAULT 'pending', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (site_id) REFERENCES sites(id), + FOREIGN KEY (user_id) REFERENCES users(id) + )''') + + # Media (fotos, imágenes del cliente) + c.execute('''CREATE TABLE IF NOT EXISTS media ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER NOT NULL, + filename TEXT NOT NULL, + filepath TEXT NOT NULL, + file_type TEXT DEFAULT 'image', + uploaded_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id) + )''') + + # Content (contenido por sección, filtrado por user_id y site_id) + c.execute('''CREATE TABLE IF NOT EXISTS content ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER NOT NULL, + section TEXT NOT NULL, + data_json TEXT, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id) + )''') + + # Settings (configuraciones por usuario/sitio) + c.execute('''CREATE TABLE IF NOT EXISTS settings ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER, + key TEXT NOT NULL, + value TEXT, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id), + UNIQUE(user_id, site_id, key) + )''') + + # Menus (sistema de menús dinámicos) + c.execute('''CREATE TABLE IF NOT EXISTS menus ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER NOT NULL, + location TEXT NOT NULL, + title TEXT NOT NULL, + url TEXT NOT NULL, + order_index INTEGER DEFAULT 0, + parent_id INTEGER, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id), + FOREIGN KEY (parent_id) REFERENCES menus(id) + )''') + + # Widgets (áreas de widgets dinámicos) + c.execute('''CREATE TABLE IF NOT EXISTS widgets ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER NOT NULL, + area TEXT NOT NULL, + type TEXT NOT NULL, + title TEXT, + content TEXT, + order_index INTEGER DEFAULT 0, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id) + )''') + + conn.commit() + conn.close() + print("✅ Base de datos inicializada (multi-tenant - todos los clientes en main.db)") + except Exception as e: + print(f"❌ Error inicializando DB: {e}") + import traceback + traceback.print_exc() + +init_db() + +# ============================================================================ +# FUNCIONES HELPER - GKACHELE™ Template System +# ============================================================================ + +def get_site_menus(site_id, user_id): + """Obtener menús del sitio organizados por ubicación""" + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('''SELECT location, title, url, order_index, parent_id + FROM menus + WHERE site_id = ? AND user_id = ? + ORDER BY location, order_index''', (site_id, user_id)) + rows = c.fetchall() + conn.close() + + menus = {'header': [], 'footer': [], 'sidebar': []} + for row in rows: + location, title, url, order_index, parent_id = row + menu_item = { + 'title': title, + 'url': url, + 'order': order_index, + 'parent_id': parent_id + } + if location in menus: + menus[location].append(menu_item) + + return menus + +def get_site_widgets(site_id, user_id, area='sidebar'): + """Obtener widgets del sitio por área""" + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('''SELECT type, title, content, order_index + FROM widgets + WHERE site_id = ? AND user_id = ? AND area = ? + ORDER BY order_index''', (site_id, user_id, area)) + rows = c.fetchall() + conn.close() + + widgets = [] + for row in rows: + widget_type, title, content, order_index = row + widgets.append({ + 'type': widget_type, + 'title': title, + 'content': content, + 'order': order_index + }) + + return widgets + +def render_gkachele_template(theme, content, site_id=None, user_id=None): + """Renderizar template usando estructura GKACHELE (header.php, footer.php, sidebar.php)""" + # Obtener menús y widgets si hay site_id + menus = {'header': [], 'footer': [], 'sidebar': []} + widgets = [] + if site_id and user_id: + try: + menus = get_site_menus(site_id, user_id) + widgets = get_site_widgets(site_id, user_id) + except Exception as e: + print(f"⚠️ Error obteniendo menús/widgets: {e}") + + # Cargar template del tema PRIMERO (es el contenido principal) + theme_template = '' + theme_path = os.path.join(THEMES_DIR, theme, 'template.html') + if os.path.exists(theme_path): + with open(theme_path, 'r', encoding='utf-8') as f: + theme_template = f.read() + else: + # Si no existe template del tema, usar template básico + theme_template = ''' +
+

{{ hero_title or 'Bienvenido' }}

+

{{ hero_description or 'Descripción del sitio' }}

+
+ ''' + + # Cargar header, footer, sidebar + header = '' + footer = '' + sidebar = '' + + header_path = os.path.join(THEMES_DIR, '_gkachele', 'header.php') + footer_path = os.path.join(THEMES_DIR, '_gkachele', 'footer.php') + sidebar_path = os.path.join(THEMES_DIR, '_gkachele', 'sidebar.php') + + if os.path.exists(header_path): + with open(header_path, 'r', encoding='utf-8') as f: + header = f.read() + else: + # Header básico si no existe + header = ''' + + + + + {{ site_name or 'GKACHELE Site' }} + + + +
+ +
+
''' + + if os.path.exists(footer_path): + with open(footer_path, 'r', encoding='utf-8') as f: + footer = f.read() + else: + footer = ''' +
+
+

© 2025 GKACHELE™. Todos los derechos reservados.
+ Desarrollado desde noviembre 2025 por GKACHELE
+ Código propiedad de GKACHELE © 2025 - Prohibida su reproducción sin autorización

+
+ +''' + + if os.path.exists(sidebar_path): + with open(sidebar_path, 'r', encoding='utf-8') as f: + sidebar = f.read() + + # Preparar contexto completo + template_data = { + 'site_name': content.get('site_name', 'GKACHELE Site'), + 'hero_title': content.get('hero_title', 'Bienvenido'), + 'hero_description': content.get('hero_description', ''), + 'colors': content.get('colors', {'primary': '#d32f2f', 'secondary': '#ff6f00', 'text': '#2c2c2c'}), + 'typography': content.get('typography', {'font_family': 'Roboto'}), + 'menus': menus, + 'widgets': widgets, + **content # Incluir todo el contenido adicional + } + + # Renderizar usando Jinja2 + from jinja2 import Template + # Construir template completo: header + contenido del tema + sidebar + footer + full_template = header + theme_template + sidebar + footer + template = Template(full_template) + return template.render(**template_data) + +# ============================================================================ +# RUTAS PÚBLICAS +# ============================================================================ + +@app.route('/') +def landing(): + """Landing page""" + return render_template('landing_real.html') + +@app.route('/register', methods=['GET', 'POST']) +def register(): + """Registro - Sistema Simple y Profesional""" + if request.method == 'POST': + try: + # Datos JSON + data = request.get_json() if request.is_json else (request.form.to_dict() if request.form else {}) + if not data: + return jsonify({'success': False, 'error': 'Sin datos'}), 400 + + email = str(data.get('email', '')).strip() + password = str(data.get('password', '')).strip() + plan = str(data.get('plan', 'base')) + rubro = str(data.get('rubro', 'gimnasio')) + + # Validar + if not email or '@' not in email: + return jsonify({'success': False, 'error': 'Email inválido'}), 400 + if not password: + return jsonify({'success': False, 'error': 'Contraseña requerida'}), 400 + + # DB + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Usuario + try: + c.execute('INSERT INTO users (email, password, plan, rubro) VALUES (?, ?, ?, ?)', + (email, generate_password_hash(password), plan, rubro)) + user_id = c.lastrowid + except sqlite3.IntegrityError: + conn.close() + return jsonify({'success': False, 'error': 'Email ya existe'}), 400 + + # Tema + import random + theme = 'default' + if rubro == 'restaurante': + theme = random.choice(['restaurante-moderno', 'restaurante-elegante']) + elif rubro in ['gimnasio', 'gimnasios']: + theme = 'gimnasio-claro' + + # Sitio + site_name = email.split('@')[0].title() + content = json.dumps({ + 'site_name': site_name + ' Site', + 'hero_title': 'Bienvenido', + 'hero_description': '', + 'colors': {'primary': '#d32f2f', 'secondary': '#ff6f00', 'text': '#2c2c2c'}, + 'typography': {'font_family': 'Roboto'} + }) + + slug = f'site-{secrets.token_hex(4)}' + c.execute('INSERT INTO sites (user_id, slug, theme, content_json) VALUES (?, ?, ?, ?)', + (user_id, slug, theme, content)) + site_id = c.lastrowid + + # Crear menús por defecto (header, footer) + default_menus = [ + ('header', 'Inicio', '#inicio', 0, None), + ('header', 'Menú', '#menu', 1, None), + ('header', 'Horarios', '#horarios', 2, None), + ('header', 'Reservas', '#reservas', 3, None), + ('header', 'Contacto', '#contacto', 4, None), + ('footer', 'Inicio', '#inicio', 0, None), + ('footer', 'Contacto', '#contacto', 1, None), + ] + + for location, title, url, order_idx, parent_id in default_menus: + c.execute('''INSERT INTO menus (user_id, site_id, location, title, url, order_index, parent_id) + VALUES (?, ?, ?, ?, ?, ?, ?)''', + (user_id, site_id, location, title, url, order_idx, parent_id)) + + conn.commit() + conn.close() + + # ✅ TODO está en main.db - no se necesitan bases separadas + # El cliente accede a /dashboard y solo ve SUS datos filtrados por user_id + + # NO crear sesión automáticamente - el usuario debe hacer login + # ÉXITO - Redirigir al login para que inicie sesión + print(f"✅ Usuario registrado: user_id={user_id}, site_id={site_id}") + return jsonify({'success': True, 'message': 'Registro exitoso. Por favor inicia sesión.', 'redirect': '/login'}) + + except Exception as e: + import traceback + traceback.print_exc() + return jsonify({'success': False, 'error': str(e)}), 500 + + # GET + return render_template('register.html', plan=request.args.get('plan', 'base'), rubro=request.args.get('rubro', 'gimnasio')) + +@app.route('/login', methods=['GET', 'POST']) +def login(): + """Login""" + if request.method == 'POST': + try: + data = request.get_json() + if not data: + return jsonify({'success': False, 'error': 'No se recibieron datos'}), 400 + + email = data.get('email') + password = data.get('password') + + if not email or not password: + return jsonify({'success': False, 'error': 'Email y contraseña son requeridos'}), 400 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT id, password FROM users WHERE email = ?', (email,)) + user = c.fetchone() + conn.close() + + if user and check_password_hash(user[1], password): + session['user_id'] = user[0] + user_id = user[0] + import sys + sys.stdout.flush() + print(f"✅ Login exitoso: user_id={user_id}", flush=True) + + # Buscar el primer sitio del usuario para ir al customizer directamente + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT id FROM sites WHERE user_id = ? ORDER BY id LIMIT 1', (user_id,)) + site = c.fetchone() + + # Debug: contar todos los sitios del usuario + c.execute('SELECT COUNT(*) FROM sites WHERE user_id = ?', (user_id,)) + total_sites = c.fetchone()[0] + print(f"[LOGIN] Usuario {user_id} tiene {total_sites} sitio(s)", flush=True) + + conn.close() + + # Si tiene sitio, ir al customizer; si no, al dashboard + if site: + site_id = site[0] + redirect_url = f'/customizer/{site_id}' + print(f"[LOGIN] Redirigiendo a customizer: site_id={site_id}, user_id={user_id}", flush=True) + else: + redirect_url = '/dashboard' + print(f"[LOGIN] Usuario sin sitios, redirigiendo a dashboard, user_id={user_id}", flush=True) + + print(f"[LOGIN] Respuesta JSON: redirect={redirect_url}", flush=True) + + # FORZAR respuesta JSON correcta + response_data = {'success': True, 'redirect': redirect_url} + print(f"[LOGIN] Response data: {response_data}", flush=True) + response = jsonify(response_data) + response.headers['Content-Type'] = 'application/json' + print(f"[LOGIN] Enviando respuesta JSON: {redirect_url}", flush=True) + return response + + return jsonify({'success': False, 'error': 'Credenciales inválidas'}), 401 + except Exception as e: + print(f"❌ Error en login: {e}") + import traceback + traceback.print_exc() + return jsonify({'success': False, 'error': f'Error al iniciar sesión: {str(e)}'}), 500 + + return render_template('login.html') + +@app.route('/logout') +def logout(): + session.pop('user_id', None) + return redirect(url_for('landing')) + +# ============================================================================ +# DASHBOARD CLIENTE +# ============================================================================ + +@app.route('/dashboard') +def dashboard(): + """Panel del cliente""" + if 'user_id' not in session: + return redirect(url_for('login')) + + user_id = session['user_id'] + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Info del usuario + c.execute('SELECT email, plan FROM users WHERE id = ?', (user_id,)) + user_info = c.fetchone() + + # Sitios + c.execute('SELECT id, slug, theme, status, created_at FROM sites WHERE user_id = ?', (user_id,)) + sites = [{'id': r[0], 'slug': r[1], 'theme': r[2], 'status': r[3], 'created_at': r[4]} + for r in c.fetchall()] + + # Contar media + c.execute('SELECT COUNT(*) FROM media WHERE user_id = ?', (user_id,)) + media_count = c.fetchone()[0] + + conn.close() + + return render_template('dashboard.html', + sites=sites, + user_email=user_info[0] if user_info else '', + user_plan=user_info[1] if user_info else 'base', + media_count=media_count) + +@app.route('/dashboard/admin') +def client_admin(): + """Admin del cliente - gestionar media, config, etc.""" + if 'user_id' not in session: + return redirect(url_for('login')) + + user_id = session['user_id'] + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Info del usuario + c.execute('SELECT email, plan FROM users WHERE id = ?', (user_id,)) + user_info = c.fetchone() + + # Sitios del usuario + c.execute('SELECT id, slug, theme, status FROM sites WHERE user_id = ?', (user_id,)) + sites = [{'id': r[0], 'slug': r[1], 'theme': r[2], 'status': r[3]} for r in c.fetchall()] + + conn.close() + + return render_template('client_admin.html', + user_email=user_info[0] if user_info else '', + user_plan=user_info[1] if user_info else 'base', + sites=sites) + +@app.route('/dashboard/create', methods=['GET', 'POST']) +def create_site(): + """Crear nuevo sitio""" + if 'user_id' not in session: + return redirect(url_for('login')) + + if request.method == 'POST': + data = request.get_json() + user_id = session['user_id'] + slug = data.get('slug', f'site-{secrets.token_hex(4)}') + theme = data.get('theme', 'default') + + # Contenido inicial + content = { + 'site_name': data.get('site_name', 'Mi Sitio'), + 'hero_title': data.get('hero_title', 'Bienvenido'), + 'hero_description': data.get('hero_description', ''), + 'colors': { + 'primary': '#ff4d4d', + 'secondary': '#1a1a1a', + 'text': '#333333' + }, + 'typography': { + 'font_family': 'Arial' + } + } + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('INSERT INTO sites (user_id, slug, theme, content_json) VALUES (?, ?, ?, ?)', + (user_id, slug, theme, json.dumps(content))) + site_id = c.lastrowid + conn.commit() + conn.close() + + # ✅ TODO está en main.db - no se necesitan bases separadas + + return jsonify({'success': True, 'site_id': site_id, 'slug': slug}) + + return render_template('create_site.html') + +# ============================================================================ +# CUSTOMIZER (Sistema de Personalización) +# ============================================================================ + +@app.route('/customizer/') +def customizer(site_id): + """Customizer: Sidebar + Preview""" + # Verificar que el sitio existe + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT user_id, slug, theme, content_json FROM sites WHERE id = ?', (site_id,)) + site = c.fetchone() + conn.close() + + if not site: + return "Sitio no encontrado", 404 + + # Si hay sesión, verificar que pertenece al usuario + if 'user_id' in session and site[0] != session['user_id']: + return "No autorizado", 403 + + content = json.loads(site[3]) if site[3] else {} + theme = site[2] + + # Cargar template del tema si existe + theme_template = None + theme_path = os.path.join(THEMES_DIR, theme, 'template.html') + if os.path.exists(theme_path): + with open(theme_path, 'r', encoding='utf-8') as f: + theme_template = f.read() + + return render_template('customizer.html', + site_id=site_id, + slug=site[1], + theme=theme, + content=content, + theme_template=theme_template) + +@app.route('/api/customizer/save', methods=['POST']) +def save_customizer(): + """Guardar cambios del customizer""" + data = request.get_json() + site_id = data.get('site_id') + content = data.get('content') + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('UPDATE sites SET content_json = ? WHERE id = ?', + (json.dumps(content), site_id)) + conn.commit() + conn.close() + + return jsonify({'success': True}) + +@app.route('/api/customizer/preview-frame/') +def preview_frame(site_id): + """Frame del preview - renderiza el template completo con estructura GKACHELE""" + # Obtener datos del sitio + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT theme, content_json, user_id FROM sites WHERE id = ?', (site_id,)) + site = c.fetchone() + conn.close() + + if not site: + return "Sitio no encontrado", 404 + + theme = site[0] + content = json.loads(site[1]) if site[1] else {} + user_id = site[2] + + # Usar función helper para renderizar con estructura GKACHELE + try: + rendered = render_gkachele_template(theme, content, site_id, user_id) + print(f"✅ Template renderizado correctamente para site_id={site_id}, theme={theme}") + return rendered + except Exception as e: + import traceback + print(f"❌ Error renderizando template: {e}") + traceback.print_exc() + # Fallback: cargar template directamente si existe + theme_path = os.path.join(THEMES_DIR, theme, 'template.html') + if os.path.exists(theme_path): + with open(theme_path, 'r', encoding='utf-8') as f: + template_str = f.read() + from jinja2 import Template + template = Template(template_str) + template_data = { + 'site_name': content.get('site_name', 'GKACHELE Site'), + 'hero_title': content.get('hero_title', 'Bienvenido'), + 'hero_description': content.get('hero_description', ''), + 'colors': content.get('colors', {'primary': '#d32f2f', 'secondary': '#ff6f00', 'text': '#2c2c2c'}), + 'typography': content.get('typography', {'font_family': 'Roboto'}), + **content + } + return template.render(**template_data) + + # Fallback final a preview simple + return f""" + + + Preview + +

+ {content.get('hero_title', 'Título')} +

+

+ {content.get('hero_description', 'Descripción')} +

+

+ © 2025 GKACHELE™. Todos los derechos reservados. +

+ + + """ + +# ============================================================================ +# SOLICITUDES +# ============================================================================ + +@app.route('/dashboard/submit/', methods=['POST']) +def submit_site(site_id): + """Cliente envía sitio para aprobación""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Cambiar status a pending + c.execute('UPDATE sites SET status = ? WHERE id = ?', ('pending', site_id)) + + # Crear solicitud + c.execute('INSERT INTO requests (site_id, user_id) VALUES (?, ?)', + (site_id, session['user_id'])) + + conn.commit() + conn.close() + + return jsonify({'success': True}) + +# ============================================================================ +# ADMIN +# ============================================================================ + +# ============================================================================ +# HELPER FUNCTIONS - Permisos basados en DB (sistema de roles GKACHELE™) +# ============================================================================ + +def user_has_role(user_id, required_role): + """Verificar si usuario tiene un rol específico (desde DB)""" + if not user_id: + return False + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT role FROM users WHERE id = ?', (user_id,)) + result = c.fetchone() + conn.close() + + if not result: + return False + + user_role = result[0] or 'subscriber' + + # Jerarquía de roles (sistema GKACHELE™) + role_hierarchy = { + 'administrator': 4, + 'editor': 3, + 'author': 2, + 'subscriber': 1 + } + + user_level = role_hierarchy.get(user_role, 1) + required_level = role_hierarchy.get(required_role, 1) + + return user_level >= required_level + +def user_can(user_id, capability): + """Verificar capacidad específica (desde DB)""" + if not user_id: + return False + + # Si es admin, puede todo + if user_has_role(user_id, 'administrator'): + return True + + # Otras capacidades se pueden añadir aquí + # Por ahora, solo admin puede hacer cosas administrativas + return False + +@app.route('/admin') +def admin(): + """Panel admin - Solo usuarios con rol 'administrator' (desde DB)""" + if 'user_id' not in session: + return "No autorizado", 403 + + # Verificar rol desde la base de datos (no hardcodeado) + if not user_has_role(session['user_id'], 'administrator'): + return "Solo administradores pueden acceder", 403 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Solicitudes pendientes + c.execute('''SELECT r.id, r.site_id, r.status, s.slug, u.email, r.created_at + FROM requests r + JOIN sites s ON r.site_id = s.id + JOIN users u ON r.user_id = u.id + WHERE r.status = 'pending' + ORDER BY r.created_at DESC''') + requests = [{'id': r[0], 'site_id': r[1], 'status': r[2], 'slug': r[3], + 'email': r[4], 'created_at': r[5]} for r in c.fetchall()] + + # Todos los sitios + c.execute('SELECT id, slug, theme, status, user_id FROM sites') + sites = [{'id': r[0], 'slug': r[1], 'theme': r[2], 'status': r[3], 'user_id': r[4]} + for r in c.fetchall()] + + # TODOS LOS USUARIOS con estadísticas + c.execute('''SELECT + u.id, + u.email, + u.plan, + u.rubro, + u.created_at, + COUNT(DISTINCT s.id) as num_sitios, + COUNT(DISTINCT CASE WHEN s.status = 'published' THEN s.id END) as sitios_publicados, + COUNT(DISTINCT r.id) as num_solicitudes + FROM users u + LEFT JOIN sites s ON u.id = s.user_id + LEFT JOIN requests r ON u.id = r.user_id + GROUP BY u.id + ORDER BY u.id DESC''') + + users = [] + for row in c.fetchall(): + users.append({ + 'id': row[0], + 'email': row[1], + 'plan': row[2], + 'rubro': row[3], + 'created_at': row[4], + 'num_sitios': row[5] or 0, + 'sitios_publicados': row[6] or 0, + 'num_solicitudes': row[7] or 0 + }) + + conn.close() + + return render_template('admin.html', requests=requests, sites=sites, users=users) + +@app.route('/admin/approve/', methods=['POST']) +def approve_site(request_id): + """Admin aprueba sitio - Verificar rol desde DB""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 403 + + if not user_has_role(session['user_id'], 'administrator'): + return jsonify({'error': 'Solo administradores'}), 403 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Obtener site_id + c.execute('SELECT site_id FROM requests WHERE id = ?', (request_id,)) + result = c.fetchone() + if not result: + conn.close() + return jsonify({'error': 'Solicitud no encontrada'}), 404 + + site_id = result[0] + + # Aprobar: cambiar status a approved y publicar + c.execute('UPDATE sites SET status = ? WHERE id = ?', ('published', site_id)) + c.execute('UPDATE requests SET status = ? WHERE id = ?', ('approved', request_id)) + + conn.commit() + conn.close() + + return jsonify({'success': True}) + +@app.route('/admin/users/delete/', methods=['POST']) +def delete_user(user_id): + """Eliminar usuario y todos sus datos relacionados - Verificar rol desde DB""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 403 + + # Verificar rol desde DB (no hardcodeado) + if not user_has_role(session['user_id'], 'administrator'): + return jsonify({'error': 'Solo administradores'}), 403 + + # No permitir eliminar al admin principal (user_id = 1) + if user_id == 1: + return jsonify({'error': 'No se puede eliminar al administrador principal'}), 400 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + try: + # Eliminar en orden (respetando foreign keys) + # 1. Widgets + c.execute('DELETE FROM widgets WHERE user_id = ?', (user_id,)) + # 2. Menús + c.execute('DELETE FROM menus WHERE user_id = ?', (user_id,)) + # 3. Media + c.execute('DELETE FROM media WHERE user_id = ?', (user_id,)) + # 4. Content + c.execute('DELETE FROM content WHERE user_id = ?', (user_id,)) + # 5. Settings + c.execute('DELETE FROM settings WHERE user_id = ?', (user_id,)) + # 6. Requests + c.execute('DELETE FROM requests WHERE user_id = ?', (user_id,)) + # 7. Sites + c.execute('DELETE FROM sites WHERE user_id = ?', (user_id,)) + # 8. Usuario + c.execute('DELETE FROM users WHERE id = ?', (user_id,)) + + conn.commit() + conn.close() + + return jsonify({'success': True, 'message': f'Usuario {user_id} eliminado exitosamente'}) + except Exception as e: + conn.rollback() + conn.close() + return jsonify({'error': f'Error al eliminar usuario: {str(e)}'}), 500 + +# ============================================================================ +# SITIO PÚBLICO +# ============================================================================ + +@app.route('/site/') +def public_site(slug): + """Sitio público del cliente - usando estructura GKACHELE""" + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT id, theme, content_json, status, user_id FROM sites WHERE slug = ?', (slug,)) + site = c.fetchone() + conn.close() + + if not site or site[3] != 'published': + return "Sitio no encontrado o no publicado", 404 + + site_id = site[0] + theme = site[1] + content = json.loads(site[2]) if site[2] else {} + user_id = site[4] + + # Renderizar con estructura GKACHELE + try: + return render_gkachele_template(theme, content, site_id, user_id) + except Exception as e: + import traceback + traceback.print_exc() + return render_template('public_site.html', content=content, theme=theme) + +# ============================================================================ +# MAIN +# ============================================================================ + +# ============================================================================ +# API ADMIN CLIENTE +# ============================================================================ + +@app.route('/api/admin/upload', methods=['POST']) +def upload_media(): + """Subir imágenes""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + user_id = session['user_id'] + files = request.files.getlist('files') + + if not files: + return jsonify({'error': 'No hay archivos'}), 400 + + uploaded = [] + for file in files: + if file.filename: + filename = f"{user_id}_{secrets.token_hex(8)}_{file.filename}" + filepath = os.path.join(UPLOADS_DIR, filename) + file.save(filepath) + + # Guardar en DB + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT id FROM sites WHERE user_id = ? LIMIT 1', (user_id,)) + site = c.fetchone() + site_id = site[0] if site else None + + c.execute('INSERT INTO media (user_id, site_id, filename, filepath, file_type) VALUES (?, ?, ?, ?, ?)', + (user_id, site_id, filename, filepath, 'image')) + conn.commit() + conn.close() + + uploaded.append(filename) + + return jsonify({'success': True, 'files': uploaded}) + +@app.route('/api/admin/media') +def get_media(): + """Obtener media del usuario""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + user_id = session['user_id'] + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT id, filename, filepath, uploaded_at FROM media WHERE user_id = ? ORDER BY uploaded_at DESC', (user_id,)) + media = [{'id': r[0], 'filename': r[1], 'filepath': r[2], 'uploaded_at': r[3]} for r in c.fetchall()] + conn.close() + + return jsonify({'success': True, 'media': media}) + +@app.route('/api/admin/media/', methods=['DELETE']) +def delete_media(media_id): + """Eliminar media""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + user_id = session['user_id'] + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Verificar que pertenece al usuario + c.execute('SELECT filepath FROM media WHERE id = ? AND user_id = ?', (media_id, user_id)) + media = c.fetchone() + + if media: + # Eliminar archivo + if os.path.exists(media[0]): + os.remove(media[0]) + + # Eliminar de DB + c.execute('DELETE FROM media WHERE id = ?', (media_id,)) + conn.commit() + + conn.close() + return jsonify({'success': True}) + +@app.route('/api/admin/settings', methods=['POST']) +def update_settings(): + """Actualizar configuración del usuario""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + data = request.get_json() + user_id = session['user_id'] + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + if data.get('password'): + c.execute('UPDATE users SET password = ? WHERE id = ?', + (generate_password_hash(data['password']), user_id)) + conn.commit() + + conn.close() + return jsonify({'success': True}) + +@app.route('/uploads/') +def serve_upload(filename): + """Servir archivos subidos""" + return send_from_directory(UPLOADS_DIR, filename) + +# ============================================================================ +# API MENÚS Y WIDGETS +# ============================================================================ + +@app.route('/api/menus/', methods=['GET']) +def get_menus(site_id): + """Obtener menús del sitio""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + user_id = session['user_id'] + menus = get_site_menus(site_id, user_id) + return jsonify({'success': True, 'menus': menus}) + +@app.route('/api/menus/', methods=['POST']) +def save_menu(site_id): + """Guardar/actualizar menú""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + data = request.get_json() + user_id = session['user_id'] + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Eliminar menús existentes del sitio + c.execute('DELETE FROM menus WHERE site_id = ? AND user_id = ?', (site_id, user_id)) + + # Insertar nuevos menús + for menu_item in data.get('menus', []): + c.execute('''INSERT INTO menus (user_id, site_id, location, title, url, order_index, parent_id) + VALUES (?, ?, ?, ?, ?, ?, ?)''', + (user_id, site_id, menu_item['location'], menu_item['title'], + menu_item['url'], menu_item.get('order', 0), menu_item.get('parent_id'))) + + conn.commit() + conn.close() + + return jsonify({'success': True}) + +@app.route('/api/widgets/', methods=['GET']) +def get_widgets(site_id): + """Obtener widgets del sitio""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + user_id = session['user_id'] + area = request.args.get('area', 'sidebar') + widgets = get_site_widgets(site_id, user_id, area) + return jsonify({'success': True, 'widgets': widgets}) + +@app.route('/api/widgets/', methods=['POST']) +def save_widget(site_id): + """Guardar/actualizar widget""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + data = request.get_json() + user_id = session['user_id'] + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + c.execute('''INSERT INTO widgets (user_id, site_id, area, type, title, content, order_index) + VALUES (?, ?, ?, ?, ?, ?, ?)''', + (user_id, site_id, data.get('area', 'sidebar'), data.get('type', 'text'), + data.get('title'), data.get('content'), data.get('order', 0))) + + conn.commit() + conn.close() + + return jsonify({'success': True}) + +# ============================================================================ +# MAIN +# ============================================================================ + +# Inicializar DB al importar (con manejo de errores) +try: + init_db() +except Exception as e: + print(f"⚠️ Error en init_db: {e}") + # Continuar aunque falle, se creará cuando se use + +if __name__ == '__main__': + port = int(os.environ.get('PORT', 5001)) + print("🚀 Demo SaaS iniciado") + print(f"📍 http://localhost:{port}") + app.run(debug=True, host='0.0.0.0', port=port) diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/app_simple.py b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/app_simple.py new file mode 100644 index 0000000..7a8456a --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/app_simple.py @@ -0,0 +1,594 @@ +""" +Demo SaaS - Versión SIMPLE que FUNCIONA +Sistema profesional automatizado - GKACHELE™ +""" + +from flask import Flask, render_template, render_template_string, request, jsonify, session, redirect +import sqlite3 +import os +import json +from werkzeug.security import generate_password_hash, check_password_hash + +app = Flask(__name__, template_folder='templates', static_folder='static') +app.secret_key = 'demo-2025' + +# DB simple +DB_PATH = 'demo.db' + +def init_db(): + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('''CREATE TABLE IF NOT EXISTS users ( + id INTEGER PRIMARY KEY, email TEXT UNIQUE, password TEXT, plan TEXT, rubro TEXT + )''') + c.execute('''CREATE TABLE IF NOT EXISTS sites ( + id INTEGER PRIMARY KEY, user_id INTEGER, slug TEXT UNIQUE, + content TEXT, status TEXT DEFAULT 'draft' + )''') + conn.commit() + conn.close() + +init_db() + +# Landing profesional (inspirada en tu landing real) +LANDING_HTML = ''' + + + + + + PageBuilder SaaS | Crea tu sitio web automatizado + + + + + + + + + +
+
+

🎨 PageBuilder SaaS

+

Crea tu sitio web automatizado

+

Sistema profesional y automatizado. Cada cliente con su admin, templates y base de datos.

+ +
+
+ + +
+
+

Nuestros Planes

+
+
+

Base

+
$50
+
    +
  • Sitio web de una página
  • +
  • Diseño profesional
  • +
  • Responsive móvil
  • +
  • Panel de administración
  • +
  • Base de datos propia
  • +
+ +
+
+

Pro

+
$100
+
    +
  • Sitio multipágina
  • +
  • Animaciones y efectos
  • +
  • Galería de imágenes
  • +
  • Formularios avanzados
  • +
  • Customizer completo
  • +
+ +
+
+

Premium

+
$200
+
    +
  • Sitio completo escalable
  • +
  • SEO optimizado
  • +
  • Panel admin avanzado
  • +
  • Integraciones
  • +
  • Soporte prioritario
  • +
+ +
+
+
+
+ + +
+
+

Contacto

+
+
+ +

Email

+

contacto@pagebuilder.com

+
+
+ +

Teléfono

+

+54 9 11 2345 6789

+
+
+ +

WhatsApp

+

Chatea con nosotros

+
+
+
+
+ + + + + + + +
+

© 2025 PageBuilder SaaS. Todos los derechos reservados.

+

Sistema profesional y automatizado - GKACHELE™

+
+ + + + +''' + +@app.route('/') +def home(): + # Usar tu landing real EXACTA + return render_template('landing_real.html') + +@app.route('/register', methods=['GET', 'POST']) +def register(): + if request.method == 'POST': + data = request.get_json() + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + try: + c.execute('INSERT INTO users (email, password, plan, rubro) VALUES (?, ?, ?, ?)', + (data['email'], generate_password_hash(data['password']), + data.get('plan', 'base'), data.get('rubro', 'gimnasio'))) + user_id = c.lastrowid + conn.commit() + session['user_id'] = user_id + return jsonify({'success': True, 'user_id': user_id}) + except: + return jsonify({'error': 'Email existe'}), 400 + finally: + conn.close() + + return render_template_string(''' + + Registro + + +

Registro

+
+ + + +
+ + + ''') + +@app.route('/login', methods=['GET', 'POST']) +def login(): + if request.method == 'POST': + data = request.get_json() + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('SELECT id, password FROM users WHERE email = ?', (data['email'],)) + user = c.fetchone() + conn.close() + if user and check_password_hash(user[1], data['password']): + session['user_id'] = user[0] + return jsonify({'success': True}) + return jsonify({'error': 'Credenciales inválidas'}), 401 + + return render_template_string(''' + + Login + + +

Login

+
+ + + +
+ + + ''') + +@app.route('/dashboard') +def dashboard(): + if 'user_id' not in session: + return redirect('/login') + + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('SELECT id, slug, status FROM sites WHERE user_id = ?', (session['user_id'],)) + sites = c.fetchall() + conn.close() + + sites_html = ''.join([f'

{s[1]}

Status: {s[2]}

Editar
' for s in sites]) + + return render_template_string(f''' + + Dashboard + + +
+

📊 Dashboard

+ ➕ Crear Sitio +
+ {sites_html if sites else '

No tienes sitios. Crear uno

'} + + ''') + +@app.route('/create', methods=['GET', 'POST']) +def create(): + if 'user_id' not in session: + return redirect('/login') + + if request.method == 'POST': + data = request.get_json() + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + content = json.dumps({ + 'site_name': data.get('site_name', 'Mi Sitio'), + 'hero_title': data.get('hero_title', 'Bienvenido'), + 'colors': {'primary': '#ff4d4d', 'secondary': '#1a1a1a'} + }) + c.execute('INSERT INTO sites (user_id, slug, content) VALUES (?, ?, ?)', + (session['user_id'], data['slug'], content)) + site_id = c.lastrowid + conn.commit() + conn.close() + return jsonify({'success': True, 'site_id': site_id}) + + return render_template_string(''' + + Crear Sitio + + +

➕ Crear Sitio

+
+ + + + +
+ + + ''') + +@app.route('/customizer/') +def customizer(site_id): + if 'user_id' not in session: + return redirect('/login') + + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('SELECT content FROM sites WHERE id = ? AND user_id = ?', (site_id, session['user_id'])) + site = c.fetchone() + conn.close() + + if not site: + return "No encontrado", 404 + + content = json.loads(site[0]) + + return render_template_string(f''' + + Customizer + + + + +
+
+

+ {content.get('hero_title', 'Título')} +

+
+
+ + + ''') + +@app.route('/api/save/', methods=['POST']) +def save(site_id): + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + data = request.get_json() + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('UPDATE sites SET content = ? WHERE id = ? AND user_id = ?', + (json.dumps(data['content']), site_id, session['user_id'])) + conn.commit() + conn.close() + return jsonify({'success': True}) + +@app.route('/api/submit/', methods=['POST']) +def submit(site_id): + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('UPDATE sites SET status = ? WHERE id = ? AND user_id = ?', + ('pending', site_id, session['user_id'])) + conn.commit() + conn.close() + return jsonify({'success': True}) + +@app.route('/admin') +def admin(): + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('SELECT id, slug, status FROM sites WHERE status = ?', ('pending',)) + requests = c.fetchall() + c.execute('SELECT id, slug, status FROM sites') + sites = c.fetchall() + conn.close() + + return render_template_string(f''' + + Admin + + +

🔧 Admin

+

Solicitudes Pendientes

+ + + {''.join([f'' for r in requests])} +
IDSlugAcción
{r[0]}{r[1]}
+

Todos los Sitios

+ + + {''.join([f'' for s in sites])} +
IDSlugStatus
{s[0]}{s[1]}{s[2]}
+ + + ''') + +@app.route('/api/approve/', methods=['POST']) +def approve(site_id): + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('UPDATE sites SET status = ? WHERE id = ?', ('published', site_id)) + conn.commit() + conn.close() + return jsonify({'success': True}) + +@app.route('/site/') +def site(slug): + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('SELECT content FROM sites WHERE slug = ? AND status = ?', (slug, 'published')) + site = c.fetchone() + conn.close() + + if not site: + return "Sitio no encontrado", 404 + + content = json.loads(site[0]) + return render_template_string(f''' + + {content.get('site_name', 'Sitio')} + + +

{content.get('hero_title', 'Título')}

+

{content.get('site_name', '')}

+ + ''') + +if __name__ == '__main__': + print("🚀 Demo SaaS SIMPLE iniciado") + print("📍 http://localhost:5001") + app.run(debug=True, host='0.0.0.0', port=5001) diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/database/main.db b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/database/main.db new file mode 100644 index 0000000..e09825c Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/database/main.db differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/database/main_raspberry_20260114_103649.db b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/database/main_raspberry_20260114_103649.db new file mode 100644 index 0000000..054f1fc Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/database/main_raspberry_20260114_103649.db differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/demo.db b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/demo.db new file mode 100644 index 0000000..ac78667 Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/demo.db differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/limpiar_db.py b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/limpiar_db.py new file mode 100644 index 0000000..f20a802 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/limpiar_db.py @@ -0,0 +1,66 @@ +""" +GKACHELE™ - Script para limpiar base de datos +© 2025 GKACHELE™. Todos los derechos reservados. +Uso: python limpiar_db.py +""" + +import sqlite3 +import os + +BASE_DIR = os.path.dirname(__file__) +DATABASE_DIR = os.path.join(BASE_DIR, 'database') +MAIN_DB = os.path.join(DATABASE_DIR, 'main.db') + +def limpiar_db(): + """Limpiar todas las tablas de la base de datos""" + if not os.path.exists(MAIN_DB): + print(f"❌ No se encontró la base de datos en: {MAIN_DB}") + return + + try: + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Mostrar datos actuales + c.execute('SELECT COUNT(*) FROM users') + user_count = c.fetchone()[0] + c.execute('SELECT COUNT(*) FROM sites') + site_count = c.fetchone()[0] + + print("=" * 80) + print("📊 ESTADO ACTUAL DE LA BASE DE DATOS") + print("=" * 80) + print(f"Usuarios: {user_count}") + print(f"Sitios: {site_count}") + print("=" * 80) + + respuesta = input("\n⚠️ ¿Estás seguro de que quieres limpiar TODA la base de datos? (escribe 'SI' para confirmar): ") + + if respuesta.upper() != 'SI': + print("❌ Operación cancelada") + conn.close() + return + + # Limpiar en orden (respetando foreign keys) + print("\n🗑️ Limpiando base de datos...") + c.execute('DELETE FROM widgets') + c.execute('DELETE FROM menus') + c.execute('DELETE FROM media') + c.execute('DELETE FROM content') + c.execute('DELETE FROM settings') + c.execute('DELETE FROM requests') + c.execute('DELETE FROM sites') + c.execute('DELETE FROM users') + + conn.commit() + conn.close() + + print("✅ Base de datos limpiada exitosamente") + + except Exception as e: + print(f"❌ Error: {e}") + import traceback + traceback.print_exc() + +if __name__ == '__main__': + limpiar_db() diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/requirements.txt b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/requirements.txt new file mode 100644 index 0000000..2f2fa62 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/requirements.txt @@ -0,0 +1,2 @@ +Flask==2.3.3 +Werkzeug==2.3.7 diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/run.sh b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/run.sh new file mode 100644 index 0000000..05d939e --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/run.sh @@ -0,0 +1,5 @@ +#!/bin/bash +cd "$(dirname "$0")" +echo "🚀 Iniciando Demo SaaS..." +echo "" +python3 app.py diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/start.bat b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/start.bat new file mode 100644 index 0000000..7988184 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/start.bat @@ -0,0 +1,8 @@ +@echo off +echo Instalando dependencias... +pip install Flask Werkzeug --quiet +echo. +echo Iniciando servidor en puerto 5001... +echo. +python app.py +pause diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/start.sh b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/start.sh new file mode 100644 index 0000000..ac0b547 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/start.sh @@ -0,0 +1,27 @@ +#!/bin/bash +# Script para iniciar el demo desde WSL + +echo "🚀 Iniciando Demo SaaS..." +echo "" + +# Verificar Python +if ! command -v python3 &> /dev/null; then + echo "❌ Python3 no encontrado" + exit 1 +fi + +# Instalar dependencias si no están +if ! python3 -c "import flask" 2>/dev/null; then + echo "📦 Instalando dependencias..." + pip3 install Flask Werkzeug --quiet +fi + +echo "" +echo "✅ Todo listo" +echo "📍 Servidor en: http://localhost:5001" +echo "" +echo "Presiona Ctrl+C para detener" +echo "" + +# Ejecutar +python3 app.py diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/static/style.css b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/static/style.css new file mode 100644 index 0000000..addf451 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/static/style.css @@ -0,0 +1,2409 @@ +/* GKACHELE™ - Diseño Premium Inspirado en Blow-dance */ + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --primary-orange: #FF6B35; + --dark-black: #1a1a1a; + --pure-white: #ffffff; + --light-gray: #f5f5f5; + --bg-light: #fafafa; + --card-bg: #ffffff; + --text-primary: #1a1a1a; + --text-secondary: #666; + --text-light: #888; + --border-light: rgba(0, 0, 0, 0.08); + --shadow-sm: 0 2px 10px rgba(0, 0, 0, 0.05); + --shadow-md: 0 5px 25px rgba(0, 0, 0, 0.1); + --shadow-lg: 0 10px 40px rgba(0, 0, 0, 0.15); + --shadow-orange: 0 5px 25px rgba(255, 107, 53, 0.2); + + /* Social Media Colors */ + --whatsapp: #25D366; + --whatsapp-hover: #20BA5A; + --facebook: #1877F2; + --facebook-hover: #0d65d9; + --instagram-start: #833AB4; + --instagram-mid: #E1306C; + --instagram-end: #FD1D1D; + --youtube: #FF0000; + --youtube-hover: #CC0000; + --tiktok: #000000; + --tiktok-hover: #00F2EA; +} + +body { + font-family: 'Inter', sans-serif; + background: #fafafa; + color: var(--text-primary); + line-height: 1.7; + overflow-x: hidden; + font-weight: 300; + position: relative; +} + +body::after { + content: '© GKACHELE 2025'; + position: fixed; + bottom: 20px; + left: 20px; + font-size: 0.7rem; + color: rgba(255, 255, 255, 0.03); + font-weight: bold; + z-index: -1; + pointer-events: none; + user-select: none; + transform: rotate(-45deg); + font-family: 'Arial', sans-serif; +} + +body::before { + content: ''; + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1920&h=1080&fit=crop&q=80'); + background-size: cover; + background-position: center; + background-attachment: fixed; + opacity: 0.4; + z-index: -1; + pointer-events: none; +} + +.gkachele-watermark { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip-path: inset(50%); + border: 0; + white-space: nowrap; +} + +.container-large { + max-width: 1400px; + margin: 0 auto; + padding: 0 60px; +} + +/* Navigation Sticky - Premium */ +.nav-sticky { + position: fixed; + top: 0; + left: 0; + right: 0; + background: rgba(255, 255, 255, 0.98); + backdrop-filter: blur(20px); + border-bottom: 1px solid var(--border-light); + z-index: 1000; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + padding: 25px 0; +} + +.nav-container { + max-width: 1600px; + margin: 0 auto; + padding: 0 80px; + display: flex; + justify-content: space-between; + align-items: center; +} + +.nav-logo a { + font-size: 1.4rem; + font-weight: 700; + color: var(--text-primary); + text-decoration: none; + letter-spacing: 1px; + transition: all 0.3s ease; +} + +.nav-logo a:hover { + opacity: 0.7; + transform: translateX(2px); +} + +.nav-menu { + display: flex; + gap: 60px; + align-items: center; + position: absolute; + left: 50%; + transform: translateX(-50%); +} + +.nav-menu a { + font-size: 0.95rem; + font-weight: 400; + color: var(--text-secondary); + text-decoration: none; + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + letter-spacing: 0.5px; + position: relative; +} + +.nav-menu a::after { + content: ''; + position: absolute; + bottom: -5px; + left: 0; + width: 0; + height: 1px; + background: var(--text-primary); + transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1); +} + +.nav-menu a:hover { + color: var(--primary-orange); +} + +.nav-menu a:hover::after { + width: 100%; + background: var(--primary-orange); +} + +.nav-social { + display: flex; + gap: 25px; + align-items: center; +} + +.nav-social a { + width: 40px; + height: 40px; + display: flex; + align-items: center; + justify-content: center; + color: var(--text-secondary); + text-decoration: none; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + border-radius: 50%; + background: transparent; + position: relative; + font-size: 1rem; + border-radius: 50%; +} + +.nav-social a:hover { + transform: translateY(-3px) scale(1.15); + box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15); +} + +/* Facebook - Celeste Premium */ +.nav-social a[title="Facebook"] { + color: var(--facebook); +} + +.nav-social a[title="Facebook"]:hover { + background: var(--facebook); + color: white; + box-shadow: 0 8px 25px rgba(24, 119, 242, 0.4); +} + +/* Instagram - Gradiente Icónico */ +.nav-social a[title="Instagram"] { + color: var(--instagram-mid); +} + +.nav-social a[title="Instagram"]:hover { + background: linear-gradient(135deg, var(--instagram-start) 0%, var(--instagram-mid) 50%, var(--instagram-end) 100%); + color: white; + box-shadow: 0 8px 25px rgba(225, 48, 108, 0.5); +} + +/* YouTube - Rojo Premium */ +.nav-social a[title="YouTube"] { + color: var(--youtube); +} + +.nav-social a[title="YouTube"]:hover { + background: var(--youtube); + color: white; + box-shadow: 0 8px 25px rgba(255, 0, 0, 0.4); +} + +/* TikTok - Negro con Efecto Cyan */ +.nav-social a[title="TikTok"] { + color: var(--tiktok); +} + +.nav-social a[title="TikTok"]:hover { + background: var(--tiktok); + color: var(--tiktok-hover); + box-shadow: 0 8px 25px rgba(0, 242, 234, 0.5); +} + +/* Hero Section - Premium con Imagen Difuminada */ +.hero-section { + margin-top: 100px; + padding: 180px 0 140px; + text-align: center; + background: linear-gradient(to bottom, #ffffff 0%, var(--bg-light) 100%); + position: relative; + overflow: hidden; +} + +.hero-bg-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1920&h=1080&fit=crop&q=80'); + background-size: cover; + background-position: center; + opacity: 0.2; + z-index: 0; +} + +.hero-content { + max-width: 900px; + margin: 0 auto; + position: relative; + z-index: 1; +} + +.hero-title { + font-size: 8.5rem; + font-weight: 300; + letter-spacing: -4px; + margin-bottom: 30px; + color: var(--text-primary); + line-height: 1; +} + +.hero-subtitle { + font-size: 1.8rem; + font-weight: 400; + color: var(--text-secondary); + letter-spacing: -0.5px; + margin-bottom: 40px; + background: linear-gradient(135deg, var(--text-secondary) 0%, var(--primary-orange) 100%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +.hero-description { + font-size: 1.25rem; + line-height: 1.9; + color: var(--text-light); + max-width: 700px; + margin: 0 auto; + font-weight: 300; +} + +/* Plans Section - Premium con Imagen Difuminada y Acordeón */ +.plans-section { + padding: 150px 0; + background: var(--bg-light); + position: relative; + overflow: hidden; +} + +.plans-bg-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1920&h=1080&fit=crop&q=80'); + background-size: cover; + background-position: center; + opacity: 0.18; + z-index: 0; +} + +.plans-section .container-large { + position: relative; + z-index: 1; +} + +.section-title { + font-size: 4rem; + font-weight: 300; + letter-spacing: -2.5px; + margin-bottom: 80px; + color: var(--text-primary); + text-align: center; +} + +/* Plans Accordion - Desplegable Premium */ +.plans-accordion { + max-width: 1000px; + margin: 0 auto; +} + +.plan-accordion-item { + background: var(--card-bg); + border-radius: 20px; + margin-bottom: 25px; + overflow: hidden; + transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: var(--shadow-sm); + border: 1px solid var(--border-light); + /* Asegurar que ningún plan empiece activo */ + opacity: 1; +} + +/* Transición suave al abrir/cerrar */ +.plan-accordion-item.active { + box-shadow: var(--shadow-lg), var(--shadow-orange); + border-color: rgba(255, 107, 53, 0.3); + transform: translateY(-5px); + background: linear-gradient(to bottom, #ffffff 0%, rgba(255, 107, 53, 0.02) 100%); + animation: planOpen 0.5s cubic-bezier(0.4, 0, 0.2, 1); +} + +@keyframes planOpen { + from { + transform: translateY(0); + box-shadow: var(--shadow-sm); + } + to { + transform: translateY(-5px); + box-shadow: var(--shadow-lg), var(--shadow-orange); + } +} + +/* Todos los planes iguales - sin estilos especiales para premium */ + +.plan-accordion-header { + width: 100%; + padding: 45px 50px; + background: linear-gradient(135deg, #fafafa 0%, #ffffff 100%); + border: none; + display: flex; + justify-content: space-between; + align-items: center; + cursor: pointer; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + text-align: left; + position: relative; +} + +.plan-accordion-item.active .plan-accordion-header { + background: linear-gradient(135deg, #ffffff 0%, rgba(255, 107, 53, 0.03) 100%); + padding-bottom: 40px; +} + +/* Indicador visual sutil cuando está activo */ +.plan-accordion-item.active .plan-accordion-header::before { + content: ''; + position: absolute; + left: 0; + top: 0; + bottom: 0; + width: 4px; + background: var(--primary-orange); + border-radius: 0 4px 4px 0; +} + +.plan-accordion-header:hover { + background: linear-gradient(135deg, #f5f5f5 0%, #ffffff 100%); +} + +.plan-accordion-item.active .plan-accordion-header:hover { + background: linear-gradient(135deg, rgba(255, 107, 53, 0.03) 0%, #ffffff 100%); +} + +.plan-header-content { + flex: 1; +} + +.plan-accordion-header h3 { + font-size: 2.5rem; + font-weight: 600; + letter-spacing: -1px; + margin-bottom: 12px; + color: var(--text-primary); +} + +.plan-accordion-header .plan-tagline { + font-size: 1.2rem; + color: var(--text-secondary); + font-weight: 300; +} + +.plan-chevron { + font-size: 1.2rem; + color: var(--text-secondary); + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + margin-left: 30px; + transform: rotate(0deg); +} + +.plan-accordion-item.active .plan-chevron { + color: var(--primary-orange); + transform: rotate(180deg); +} + +.plan-accordion-body { + max-height: 0; + overflow: hidden; + transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); +} + +.plan-card-body { + padding: 50px 40px; +} + +.plan-card-body h4 { + font-size: 1.5rem; + font-weight: 600; + margin: 35px 0 20px; + color: var(--text-primary); + letter-spacing: -0.3px; +} + +.plan-card-body h4:first-child { + margin-top: 0; +} + +.plan-card-body ul { + list-style: none; + padding: 0; + margin-bottom: 35px; +} + +.plan-card-body li { + padding: 12px 0; + font-size: 1.05rem; + color: var(--text-secondary); + line-height: 1.8; + font-weight: 300; + transition: all 0.3s ease; +} + +.plan-card-body li:hover { + color: var(--text-primary); + padding-left: 5px; +} + +.plan-ideal { + font-size: 1.05rem; + color: var(--text-secondary); + line-height: 1.8; + margin-bottom: 40px; + font-weight: 300; +} + +.plan-ideal strong { + color: var(--text-primary); + font-weight: 600; +} + +.qr-mini-card { + text-align: center; + margin: 50px 0; + padding: 40px 20px; + background: var(--bg-light); + border-radius: 15px; + border: 1px solid var(--border-light); +} + +.qr-mini-card img { + width: 150px; + height: 150px; + border-radius: 12px; + box-shadow: var(--shadow-md); + margin-bottom: 20px; + transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1); +} + +.qr-mini-card:hover img { + transform: scale(1.05); +} + +.qr-mini-card p { + font-size: 1rem; + color: var(--text-light); + font-weight: 300; +} + +.plan-btn { + display: block; + width: 100%; + padding: 22px 40px; + background: var(--primary-orange); + color: #ffffff; + text-decoration: none; + border: 2px solid rgba(255, 255, 255, 0.1); + border-radius: 50px; + font-weight: 600; + font-size: 1.1rem; + text-align: center; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: 0 5px 20px rgba(255, 107, 53, 0.3); + letter-spacing: 0.5px; + margin-top: 30px; +} + +.plan-btn:hover { + background: #FF5722; + border-color: rgba(255, 255, 255, 0.2); + transform: translateY(-3px); + box-shadow: 0 8px 30px rgba(255, 107, 53, 0.4); +} + +.premium-btn { + background: linear-gradient(135deg, var(--primary-orange) 0%, #FF5722 100%); + border: 2px solid rgba(255, 255, 255, 0.15); + box-shadow: 0 5px 25px rgba(255, 107, 53, 0.35); +} + +.premium-btn:hover { + background: linear-gradient(135deg, #FF5722 0%, #FF4500 100%); + border-color: rgba(255, 255, 255, 0.25); + box-shadow: 0 8px 35px rgba(255, 107, 53, 0.5); +} + +/* Demos Section */ +.demos-section { + position: relative; + padding: 5rem 0; + background: linear-gradient(135deg, #0a0a0a 0%, #1a1a1a 100%); + overflow: hidden; +} + +.demos-bg-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: radial-gradient(circle at 50% 50%, rgba(255, 107, 53, 0.05) 0%, transparent 70%); + pointer-events: none; +} + +.section-subtitle { + text-align: center; + color: #888; + font-size: 1.1rem; + margin-bottom: 3rem; +} + +/* Logo Showcase */ +.logo-showcase { + text-align: center; + margin-bottom: 4rem; + padding: 3rem; + background: rgba(255, 107, 53, 0.05); + border-radius: 20px; + border: 2px solid rgba(255, 107, 53, 0.2); +} + +.main-logo { + max-width: 300px; + height: auto; + margin-bottom: 1.5rem; + filter: drop-shadow(0 10px 30px rgba(255, 107, 53, 0.3)); + transition: transform 0.3s ease; +} + +.main-logo:hover { + transform: scale(1.05); +} + +.logo-text { + font-size: 1.3rem; + color: #ff6b35; + font-weight: 600; +} + +.demos-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); + gap: 2rem; + margin-bottom: 4rem; +} + +.demo-card { + background: rgba(30, 30, 30, 0.8); + border-radius: 15px; + overflow: hidden; + transition: all 0.3s ease; + border: 1px solid rgba(255, 107, 53, 0.1); +} + +.demo-card:hover { + transform: translateY(-10px); + border-color: #ff6b35; + box-shadow: 0 20px 40px rgba(255, 107, 53, 0.3); +} + +.demo-image { + position: relative; + width: 100%; + height: 250px; + overflow: hidden; +} + +.demo-image img { + width: 100%; + height: 100%; + object-fit: cover; + transition: transform 0.5s ease; +} + +.demo-card:hover .demo-image img { + transform: scale(1.1); +} + +.demo-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.7); + display: flex; + align-items: center; + justify-content: center; + opacity: 0; + transition: opacity 0.3s ease; +} + +.demo-card:hover .demo-overlay { + opacity: 1; +} + +.demo-btn { + background: #ff6b35; + color: white; + padding: 0.8rem 1.5rem; + border-radius: 8px; + text-decoration: none; + font-weight: 600; + display: flex; + align-items: center; + gap: 0.5rem; + transition: all 0.3s ease; +} + +.demo-btn:hover { + background: #ff8555; + transform: scale(1.05); +} + +.demo-info { + padding: 1.5rem; +} + +.demo-info h3 { + font-size: 1.5rem; + margin-bottom: 0.5rem; + color: #ff6b35; +} + +.demo-category { + font-size: 0.95rem; + color: #888; + margin-bottom: 0.5rem; +} + +.demo-plan { + font-size: 0.9rem; + margin-bottom: 1rem; +} + +.demo-plan .badge-premium, +.demo-plan .badge-pro, +.demo-plan .badge-base { + padding: 0.3rem 0.8rem; + border-radius: 20px; + font-size: 0.75rem; + font-weight: 600; + text-transform: uppercase; +} + +.demo-plan .badge-premium { + background: linear-gradient(135deg, #ff6b35, #ff8555); + color: white; +} + +.demo-plan .badge-pro { + background: linear-gradient(135deg, #3b82f6, #60a5fa); + color: white; +} + +.demo-plan .badge-base { + background: rgba(255, 255, 255, 0.1); + color: #888; +} + +.demo-description { + color: #ccc; + font-size: 0.95rem; + line-height: 1.6; +} + +/* Video Demo */ +.video-demo-section { + margin-top: 4rem; + text-align: center; +} + +.video-demo-section h3 { + font-size: 2rem; + margin-bottom: 2rem; + color: #ff6b35; +} + +.video-container { + max-width: 900px; + margin: 0 auto; + border-radius: 15px; + overflow: hidden; + background: rgba(30, 30, 30, 0.8); + border: 2px solid rgba(255, 107, 53, 0.2); +} + +.video-placeholder { + padding: 6rem 2rem; + display: flex; + flex-direction: column; + align-items: center; + gap: 1rem; +} + +.video-placeholder i { + font-size: 4rem; + color: #ff6b35; + opacity: 0.5; +} + +.video-placeholder p { + font-size: 1.2rem; + color: #888; +} + +.video-placeholder small { + font-size: 0.9rem; + color: #666; +} + +/* QR Section - Premium Card con Imagen Difuminada */ +.qr-section { + padding: 150px 0; + background: #ffffff; + position: relative; + overflow: hidden; +} + +.qr-bg-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1920&h=1080&fit=crop&q=80'); + background-size: cover; + background-position: center; + opacity: 0.15; + z-index: 0; +} + +.qr-section .container-large { + position: relative; + z-index: 1; +} + +.qr-card { + background: var(--card-bg); + padding: 80px 60px; + border-radius: 20px; + text-align: center; + box-shadow: var(--shadow-md); + border: 1px solid var(--border-light); + max-width: 600px; + margin: 0 auto; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); +} + +.qr-card:hover { + transform: translateY(-10px); + box-shadow: var(--shadow-lg), var(--shadow-orange); + border-color: rgba(255, 107, 53, 0.15); +} + +.qr-card h3 { + font-size: 2rem; + font-weight: 600; + margin-bottom: 40px; + color: var(--text-primary); + letter-spacing: -0.5px; +} + +.qr-image { + width: 250px; + height: 250px; + border-radius: 15px; + box-shadow: var(--shadow-md); + margin-bottom: 30px; + transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1); +} + +.qr-card:hover .qr-image { + transform: scale(1.05); +} + +.qr-card p { + font-size: 1.1rem; + color: var(--text-light); + font-weight: 300; +} + +/* Contact Section - Premium Cards con Imagen Difuminada */ +.contact-section { + padding: 150px 0; + background: var(--bg-light); + position: relative; + overflow: hidden; +} + +.contact-bg-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1920&h=1080&fit=crop&q=80'); + background-size: cover; + background-position: center; + opacity: 0.18; + z-index: 0; +} + +.contact-section .container-large { + position: relative; + z-index: 1; +} + +.contact-grid { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 60px; + margin-top: 80px; + max-width: 1200px; + margin-left: auto; + margin-right: auto; + justify-items: center; +} + +.contact-cards { + display: flex; + flex-direction: column; + gap: 25px; + width: 100%; + max-width: 400px; + align-items: stretch; +} + +.contact-card { + background: var(--card-bg); + padding: 30px 35px; + border-radius: 15px; + display: flex; + align-items: center; + gap: 25px; + color: var(--text-primary); + text-decoration: none; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: var(--shadow-sm); + border: 1px solid var(--border-light); +} + +.contact-card:hover { + transform: translateX(10px); + box-shadow: var(--shadow-md), var(--shadow-orange); + border-color: rgba(255, 107, 53, 0.2); +} + +.contact-card:hover i { + color: var(--primary-orange); +} + +.contact-card i { + font-size: 1.8rem; + color: var(--text-secondary); + min-width: 35px; + transition: all 0.3s ease; +} + +.contact-card:hover i { + color: var(--text-primary); + transform: scale(1.1); +} + +.contact-card .fa-whatsapp { + color: var(--whatsapp); +} + +.contact-card span { + font-size: 1.1rem; + color: var(--text-secondary); + font-weight: 400; + transition: color 0.3s ease; +} + +.contact-card:hover span { + color: var(--text-primary); +} + +.whatsapp-card:hover { + background: linear-gradient(135deg, rgba(37, 211, 102, 0.05) 0%, rgba(37, 211, 102, 0.1) 100%); +} + +.social-card { + background: var(--card-bg); + padding: 50px 40px; + border-radius: 15px; + box-shadow: var(--shadow-sm); + border: 1px solid var(--border-light); + text-align: center; + width: 100%; + max-width: 400px; +} + +.social-card h3 { + font-size: 1.8rem; + font-weight: 600; + margin-bottom: 40px; + color: var(--text-primary); + letter-spacing: -0.3px; +} + +.social-links-grid { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 20px; +} + +.social-link { + width: 100%; + height: 70px; + border-radius: 12px; + display: flex; + align-items: center; + justify-content: center; + background: var(--bg-light); + color: var(--text-secondary); + text-decoration: none; + font-size: 1.5rem; + position: relative; + overflow: hidden; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + border: 1px solid var(--border-light); +} + +.social-link:hover { + transform: translateY(-5px) scale(1.05); + color: #ffffff; +} + +/* Facebook - Celeste Premium en Contacto con Gradiente Translúcido */ +.social-link[title="Facebook"] .fa-facebook-f { + color: var(--facebook); + font-size: 2rem; + transition: all 0.4s ease; +} + +.social-link[title="Facebook"]:hover { + background: linear-gradient(135deg, rgba(24, 119, 242, 0.15) 0%, rgba(24, 119, 242, 0.25) 100%); + border-color: var(--facebook); + box-shadow: 0 10px 30px rgba(24, 119, 242, 0.4); +} + +.social-link[title="Facebook"]:hover .fa-facebook-f { + color: var(--facebook); + transform: scale(1.2); +} + +/* Instagram - Gradiente Premium en Contacto Translúcido */ +.social-link[title="Instagram"] .fa-instagram { + color: var(--instagram-mid); + font-size: 2rem; + transition: all 0.4s ease; +} + +.social-link[title="Instagram"]:hover { + background: linear-gradient(135deg, + rgba(131, 58, 180, 0.15) 0%, + rgba(225, 48, 108, 0.2) 50%, + rgba(253, 29, 29, 0.25) 100%); + border-color: var(--instagram-mid); + box-shadow: 0 10px 30px rgba(225, 48, 108, 0.5); +} + +.social-link[title="Instagram"]:hover .fa-instagram { + transform: scale(1.2); + background: linear-gradient(135deg, var(--instagram-start) 0%, var(--instagram-mid) 50%, var(--instagram-end) 100%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +/* YouTube - Rojo Premium en Contacto Translúcido */ +.social-link[title="YouTube"] .fa-youtube { + color: var(--youtube); + font-size: 2rem; + transition: all 0.4s ease; +} + +.social-link[title="YouTube"]:hover { + background: linear-gradient(135deg, rgba(255, 0, 0, 0.15) 0%, rgba(255, 0, 0, 0.25) 100%); + border-color: var(--youtube); + box-shadow: 0 10px 30px rgba(255, 0, 0, 0.4); +} + +.social-link[title="YouTube"]:hover .fa-youtube { + color: var(--youtube); + transform: scale(1.2); +} + +/* TikTok - Negro con Cyan en Contacto Translúcido */ +.social-link[title="TikTok"] .fa-tiktok { + color: var(--tiktok); + font-size: 2rem; + transition: all 0.4s ease; +} + +.social-link[title="TikTok"]:hover { + background: linear-gradient(135deg, rgba(0, 0, 0, 0.15) 0%, rgba(0, 242, 234, 0.2) 100%); + border-color: var(--tiktok-hover); + box-shadow: 0 10px 30px rgba(0, 242, 234, 0.5); +} + +.social-link[title="TikTok"]:hover .fa-tiktok { + color: var(--tiktok-hover); + transform: scale(1.2); +} + +/* WhatsApp Float Button */ +.whatsapp-float { + position: fixed; + bottom: 40px; + right: 40px; + width: 70px; + height: 70px; + background: var(--whatsapp); + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + color: #ffffff; + text-decoration: none; + box-shadow: 0 6px 30px rgba(37, 211, 102, 0.4); + z-index: 999; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + font-size: 2rem; + animation: pulse-float 2.5s infinite; +} + +.whatsapp-float:hover { + background: var(--whatsapp-hover); + transform: scale(1.15); + box-shadow: 0 8px 40px rgba(37, 211, 102, 0.5); +} + +@keyframes pulse-float { + 0%, 100% { + box-shadow: 0 6px 30px rgba(37, 211, 102, 0.4); + } + 50% { + box-shadow: 0 6px 40px rgba(37, 211, 102, 0.6); + } +} + +/* Footer - Premium con Imagen Difuminada */ +.footer-main { + padding: 150px 0 100px; + background: #1a1a1a; + color: #ffffff; + text-align: center; + position: relative; + overflow: hidden; +} + +.footer-bg-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1920&h=1080&fit=crop&q=80'); + background-size: cover; + background-position: center; + opacity: 0.25; + z-index: 0; +} + +.footer-main .container-large { + position: relative; + z-index: 1; +} + +.footer-main p { + font-size: 0.95rem; + color: rgba(255, 255, 255, 0.6); + font-weight: 300; + letter-spacing: 0.5px; +} + +/* Scroll to Top Button */ +.scroll-to-top { + position: fixed; + bottom: 120px; + right: 40px; + width: 60px; + height: 60px; + background: var(--text-primary); + color: #ffffff; + border: none; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + font-size: 1.3rem; + z-index: 998; + opacity: 0; + visibility: hidden; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2); +} + +.scroll-to-top.show { + opacity: 1; + visibility: visible; +} + +.scroll-to-top:hover { + background: #000000; + transform: translateY(-5px) scale(1.1); + box-shadow: 0 6px 30px rgba(0, 0, 0, 0.3); +} + +.scroll-to-top i { + transition: transform 0.3s ease; +} + +.scroll-to-top:hover i { + transform: translateY(-2px); +} + +/* Old Styles for Plan Pages */ +header { + background: #222; + color: white; + padding: 40px 20px; + text-align: center; + box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2); +} + +header h1 { + font-size: 3rem; + margin-bottom: 10px; +} + +.tagline { + font-size: 1.2rem; + opacity: 0.9; +} + +.plan-details { + background: #fff; + padding: 40px; + border-radius: 12px; + margin-bottom: 40px; +} + +.plan-details h2 { + font-size: 2rem; + color: #222; + margin-bottom: 30px; +} + +.plan-details h3 { + font-size: 1.5rem; + color: #222; + margin: 30px 0 15px; +} + +.plan-details ul { + list-style: none; + padding: 0; +} + +.plan-details li { + padding: 10px 0; + font-size: 1.1rem; + color: #666; +} + +.plan-details p { + font-size: 1.1rem; + color: #666; + line-height: 1.8; +} + +.plan-details a { + color: #0077B5; + text-decoration: none; +} + +.plan-details a:hover { + text-decoration: underline; +} + +.qr-mini { + text-align: center; + margin-top: 30px; +} + +.qr-mini img { + width: 100px; + height: 100px; + border-radius: 8px; +} + +.contacto { + text-align: center; + padding: 30px; + background: #fff; + border-radius: 10px; +} + +.contacto h3 { + color: #222; + margin-bottom: 20px; +} + +.contacto a { + color: #0077B5; + text-decoration: none; + font-weight: 600; +} + +.contacto a:hover { + text-decoration: underline; +} + +footer { + text-align: center; + padding: 30px; + color: #999; + background: #222; +} + +footer p { + font-size: 0.9rem; +} + +/* Responsive - Premium */ +@media (max-width: 1200px) { + .container-large { + padding: 0 40px; + } + + .plans-grid { + grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); + gap: 40px; + } + + .hero-title { + font-size: 6.5rem; + } +} + +/* Responsive Tablet/Desktop Intermedio */ +@media (max-width: 1000px) and (min-width: 769px) { + .nav-container { + padding: 0 40px; + } + + .nav-menu { + gap: 30px; + } + + .nav-social { + gap: 15px; + } +} + +/* Responsive Mobile - Vertical y Horizontal */ +@media (max-width: 768px) { + /* Asegurar que funcione en vertical y horizontal */ + html { + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; + } + + body { + overflow-x: hidden; + width: 100%; + position: relative; + } + + .container-large { + padding: 0 20px; + width: 100%; + max-width: 100%; + box-sizing: border-box; + } + + .nav-container { + padding: 15px 20px; + flex-direction: column; + gap: 15px; + width: 100%; + } + + .nav-menu { + position: static; + transform: none; + gap: 20px; + justify-content: center; + order: 2; + flex-wrap: wrap; + width: 100%; + } + + .nav-social { + order: 3; + gap: 15px; + justify-content: center; + width: 100%; + } + + .nav-logo { + order: 1; + text-align: center; + } + + .hero-section { + padding: 80px 20px; + min-height: auto; + } + + .hero-title { + font-size: 3.5rem; + letter-spacing: -1px; + line-height: 1.1; + } + + .hero-subtitle { + font-size: 1.2rem; + } + + .hero-description { + font-size: 1rem; + padding: 0 10px; + } + + .section-title { + font-size: 2.5rem; + margin-bottom: 40px; + text-align: center; + } + + .plans-section { + padding: 80px 0; + } + + .plan-accordion-item { + margin-bottom: 20px; + border-radius: 15px; + } + + .plan-accordion-header { + padding: 25px 20px; + flex-direction: row; + align-items: center; + gap: 15px; + position: relative; + } + + .plan-accordion-header h3 { + font-size: 1.8rem; + margin-bottom: 5px; + } + + .plan-accordion-header .plan-tagline { + font-size: 1rem; + } + + .plan-chevron { + position: absolute; + top: 25px; + right: 20px; + margin: 0; + font-size: 1rem; + } + + .plan-card-body { + padding: 30px 20px; + } + + .plan-card-body h4 { + font-size: 1.3rem; + } + + .plan-card-body ul { + font-size: 0.95rem; + } + + .contact-section { + padding: 80px 0; + } + + .contact-grid { + grid-template-columns: 1fr; + gap: 30px; + width: 100%; + justify-items: center; + } + + .contact-cards { + max-width: 100%; + align-items: stretch; + } + + .contact-card { + padding: 25px 20px; + width: 100%; + } + + .social-card { + padding: 40px 30px; + max-width: 100%; + } + + .social-links-grid { + grid-template-columns: repeat(2, 1fr); + gap: 15px; + } + + .social-link { + height: 60px; + font-size: 1.3rem; + } + + .whatsapp-float { + width: 55px; + height: 55px; + bottom: 20px; + right: 20px; + font-size: 1.5rem; + } + + .scroll-to-top { + width: 45px; + height: 45px; + bottom: 85px; + right: 20px; + font-size: 1rem; + } + + .qr-section { + padding: 80px 0; + } + + .qr-card { + padding: 50px 30px; + } + + .qr-image { + width: 200px; + height: 200px; + } + + .footer-main { + padding: 80px 0 60px; + } + + /* VERTICAL móvil - Reducir espacio del nav */ + @media (max-width: 768px) and (orientation: portrait) { + .nav-sticky { + padding: 10px 0; + } + + .nav-container { + padding: 8px 15px; + gap: 8px; + } + + .nav-logo a { + font-size: 1.1rem; + } + + .nav-menu { + gap: 15px; + } + + .nav-link { + font-size: 0.85rem; + } + + .nav-social { + gap: 10px; + } + + .nav-social a { + font-size: 0.9rem; + } + + .hero-section { + padding: 60px 20px 50px; + margin-top: 100px; + } + + .hero-title { + font-size: 2.8rem; + } + } + + /* Horizontal móvil - ARREGLAR SOBREPUESTO */ + @media (max-width: 900px) and (orientation: landscape) { + .nav-sticky { + padding: 8px 0 !important; + } + + .nav-container { + padding: 5px 15px !important; + gap: 8px !important; + flex-direction: column !important; + flex-wrap: wrap !important; + } + + .nav-logo { + order: 1 !important; + flex: 0 0 auto !important; + } + + .nav-logo a { + font-size: 0.9rem !important; + } + + .nav-menu { + order: 2 !important; + position: static !important; + transform: none !important; + gap: 12px !important; + flex-wrap: wrap !important; + justify-content: center !important; + width: 100% !important; + } + + .nav-menu a { + font-size: 0.75rem !important; + padding: 2px 5px !important; + } + + .nav-social { + order: 3 !important; + gap: 10px !important; + justify-content: center !important; + width: 100% !important; + } + + .nav-social a { + width: 28px !important; + height: 28px !important; + font-size: 0.75rem !important; + } + + .hero-section { + padding: 50px 20px 40px !important; + margin-top: 70px !important; + min-height: auto !important; + } + + .hero-title { + font-size: 2.5rem !important; + margin-bottom: 15px !important; + line-height: 1.1 !important; + } + + .hero-subtitle { + font-size: 1rem !important; + margin-bottom: 15px !important; + } + + .hero-description { + font-size: 0.9rem !important; + line-height: 1.5 !important; + } + + .section-title { + font-size: 2rem !important; + margin-bottom: 30px !important; + } + + .plans-section { + padding: 60px 0 !important; + } + + .plan-accordion-header { + padding: 15px 15px !important; + } + + .plan-accordion-header h3 { + font-size: 1.4rem !important; + } + + .plan-accordion-header .plan-tagline { + font-size: 0.85rem !important; + } + + .plan-card-body { + padding: 20px 15px !important; + } + + .contact-section { + padding: 60px 0 !important; + } + + .contact-grid { + grid-template-columns: 1fr !important; + gap: 20px !important; + margin-top: 40px !important; + } + + .contact-cards { + max-width: 100% !important; + } + + .contact-card { + padding: 18px 15px !important; + gap: 15px !important; + } + + .contact-card i { + font-size: 1.4rem !important; + min-width: 25px !important; + } + + .contact-card span { + font-size: 0.9rem !important; + } + + .social-card { + padding: 30px 20px !important; + } + + .social-card h3 { + font-size: 1.4rem !important; + margin-bottom: 25px !important; + } + + .social-links-grid { + gap: 12px !important; + } + + .social-link { + height: 55px !important; + font-size: 1.2rem !important; + } + + .whatsapp-float { + width: 50px !important; + height: 50px !important; + bottom: 15px !important; + right: 15px !important; + font-size: 1.3rem !important; + } + + .scroll-to-top { + width: 40px !important; + height: 40px !important; + bottom: 70px !important; + right: 15px !important; + font-size: 0.9rem !important; + } + + .demos-section { + padding: 60px 0 !important; + } + + .demos-grid { + grid-template-columns: 1fr !important; + gap: 20px !important; + } + + .demo-card { + margin-bottom: 15px !important; + } + + .demo-image { + height: 180px !important; + } + + .demo-info { + padding: 15px !important; + } + + .demo-info h3 { + font-size: 1.2rem !important; + } + + .qr-section { + padding: 60px 0 !important; + } + + .qr-card { + padding: 40px 25px !important; + } + + .qr-image { + width: 180px !important; + height: 180px !important; + } + + .footer-main { + padding: 60px 0 40px !important; + } + } +} + +/* Modal Form - Formulario de Pedido */ +.modal-form { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.7); + display: flex; + justify-content: center; + align-items: center; + z-index: 10000; + padding: 20px; + backdrop-filter: blur(5px); +} + +.modal-form-content { + background: var(--card-bg); + border-radius: 20px; + max-width: 600px; + width: 100%; + max-height: 90vh; + overflow-y: auto; + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); + animation: modalFadeIn 0.3s ease; +} + +@keyframes modalFadeIn { + from { + opacity: 0; + transform: translateY(-20px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.modal-form-header { + padding: 30px 40px; + border-bottom: 1px solid var(--border-light); + display: flex; + justify-content: space-between; + align-items: center; + background: linear-gradient(135deg, #fafafa 0%, #ffffff 100%); + border-radius: 20px 20px 0 0; +} + +.modal-form-header h2 { + font-size: 2rem; + font-weight: 600; + color: var(--text-primary); + margin: 0; +} + +.modal-form-header h2 span { + color: var(--primary-orange); +} + +.modal-close { + background: none; + border: none; + font-size: 2.5rem; + color: var(--text-secondary); + cursor: pointer; + padding: 0; + width: 40px; + height: 40px; + display: flex; + align-items: center; + justify-content: center; + border-radius: 50%; + transition: all 0.3s ease; +} + +.modal-close:hover { + background: var(--bg-light); + color: var(--text-primary); +} + +.modal-form form { + padding: 40px; +} + +.form-group { + margin-bottom: 30px; +} + +.form-group label { + display: block; + font-size: 1rem; + font-weight: 500; + color: var(--text-primary); + margin-bottom: 10px; +} + +.form-group input, +.form-group textarea { + width: 100%; + padding: 15px 20px; + border: 1px solid var(--border-light); + border-radius: 10px; + font-size: 1rem; + font-family: 'Inter', sans-serif; + background: var(--bg-light); + color: var(--text-primary); + transition: all 0.3s ease; + box-sizing: border-box; +} + +.form-group input:focus, +.form-group textarea:focus { + outline: none; + border-color: var(--primary-orange); + background: #ffffff; + box-shadow: 0 0 0 3px rgba(255, 107, 53, 0.1); +} + +.form-group textarea { + resize: vertical; + min-height: 120px; +} + +.form-group small { + display: block; + margin-top: 8px; + font-size: 0.85rem; + color: var(--text-light); +} + +.form-actions { + display: flex; + gap: 15px; + margin-top: 40px; + justify-content: flex-end; +} + +.btn-cancel, +.btn-preview, +.btn-submit { + padding: 15px 35px; + border: none; + border-radius: 10px; + font-size: 1rem; + font-weight: 500; + cursor: pointer; + transition: all 0.3s ease; + font-family: 'Inter', sans-serif; +} + +.btn-cancel { + background: var(--bg-light); + color: var(--text-secondary); +} + +.btn-cancel:hover { + background: #e5e5e5; + color: var(--text-primary); +} + +.btn-preview { + background: #3b82f6; + color: #ffffff; +} + +.btn-preview:hover { + background: #2563eb; + transform: translateY(-2px); + box-shadow: 0 5px 15px rgba(59, 130, 246, 0.3); +} + +.btn-preview:disabled { + background: #9ca3af; + cursor: not-allowed; + transform: none; +} + +.btn-submit { + background: var(--primary-orange); + color: #ffffff; +} + +.btn-submit:hover { + background: rgba(255, 107, 53, 0.9); + transform: translateY(-2px); + box-shadow: 0 5px 15px rgba(255, 107, 53, 0.3); +} + +/* Modal responsive dentro de media query móvil */ +@media (max-width: 768px) { + .modal-form { + padding: 10px; + } + + .modal-form-content { + max-height: 95vh; + border-radius: 15px; + } + + .modal-form-header { + padding: 20px 25px; + } + + .modal-form-header h2 { + font-size: 1.5rem; + } + + .modal-form form { + padding: 30px 25px; + } + + .form-actions { + flex-direction: column; + } + + .btn-cancel, + .btn-preview, + .btn-submit { + width: 100%; + } +} + +/* ============================================ + SISTEMA DE PREVIEWS - CARDS Y MODALES + ============================================ */ + +/* Grupo de botones en planes */ +.plan-buttons-group { + display: flex; + gap: 12px; + margin-top: 25px; + flex-wrap: wrap; + align-items: center; +} + +.plan-btn-preview { + background: white; + border: 2px solid #1877F2; + color: #1877F2; + padding: 12px 24px; + border-radius: 10px; + font-size: 0.95rem; + font-weight: 600; + cursor: pointer; + transition: all 0.4s ease; + display: flex; + align-items: center; + gap: 8px; + box-shadow: 0 4px 15px rgba(24, 119, 242, 0.2); + letter-spacing: 0.3px; +} + +.plan-btn-preview:hover { + background: #1877F2; + color: white; + transform: translateY(-3px) scale(1.05); + box-shadow: 0 8px 25px rgba(24, 119, 242, 0.4); +} + +.plan-btn-preview i { + font-size: 1rem; + transition: all 0.4s ease; +} + +.plan-btn-preview:hover i { + transform: scale(1.15); +} + +/* Modal de Previews */ +.previews-modal { + display: none; + position: fixed; + z-index: 10000; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.85); + backdrop-filter: blur(5px); + overflow-y: auto; + padding: 20px; +} + +.previews-modal-content { + background: white; + margin: 40px auto; + max-width: 1400px; + border-radius: 20px; + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); + overflow: hidden; + animation: modalSlideIn 0.3s ease; +} + +@keyframes modalSlideIn { + from { + opacity: 0; + transform: translateY(-30px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.previews-modal-header { + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + color: white; + padding: 25px 30px; + display: flex; + justify-content: space-between; + align-items: center; +} + +.previews-modal-header h2 { + margin: 0; + font-size: 1.8rem; + font-weight: 600; +} + +.previews-filters { + padding: 20px 30px; + background: #f8f9fa; + border-bottom: 1px solid #e0e0e0; +} + +.filter-group { + display: flex; + flex-direction: column; + gap: 8px; +} + +.filter-group label { + font-weight: 600; + color: #333; + font-size: 0.9rem; +} + +.filter-group select { + padding: 10px 15px; + border: 2px solid #ddd; + border-radius: 8px; + font-size: 1rem; + background: white; + cursor: pointer; + transition: border-color 0.3s, box-shadow 0.3s; + min-width: 250px; +} + +.filter-group select:hover { + border-color: #1877F2; +} + +.filter-group select:focus { + outline: none; + border-color: #1877F2; + box-shadow: 0 0 0 3px rgba(24, 119, 242, 0.1); +} + +/* Grid de Previews */ +.previews-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); + gap: 30px; + padding: 30px; +} + +/* Cards de Preview - Diseño Tipo Card */ +.template-card { + background: white; + border-radius: 16px; + overflow: hidden; + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15); + transition: transform 0.3s ease, box-shadow 0.3s ease; + cursor: pointer; + position: relative; +} + +.template-card:hover { + transform: translateY(-8px); + box-shadow: 0 8px 30px rgba(0, 0, 0, 0.25); +} + +.template-preview { + position: relative; + overflow: hidden; + background: #f5f5f5; + aspect-ratio: 16/9; +} + +.template-preview img { + width: 100%; + height: 100%; + object-fit: cover; + display: block; + transition: transform 0.3s ease; +} + +.template-card:hover .template-preview img { + transform: scale(1.05); +} + +.template-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: linear-gradient(to bottom, transparent 0%, rgba(0, 0, 0, 0.7) 100%); + opacity: 0; + transition: opacity 0.3s ease; + display: flex; + align-items: flex-end; + padding: 20px; +} + +.template-card:hover .template-overlay { + opacity: 1; +} + +.overlay-info { + color: white; + width: 100%; +} + +.overlay-info h4 { + margin: 0 0 5px 0; + font-size: 1.1rem; + font-weight: 600; +} + +.overlay-info p { + margin: 0; + font-size: 0.9rem; + opacity: 0.9; +} + +.template-info { + padding: 20px; +} + +.template-info h3 { + margin: 0 0 10px 0; + font-size: 1.2rem; + color: #333; + font-weight: 600; +} + +.template-meta { + display: flex; + gap: 10px; + flex-wrap: wrap; + margin-bottom: 15px; +} + +.badge-plan { + display: inline-block; + padding: 4px 12px; + border-radius: 12px; + font-size: 0.85rem; + font-weight: 600; + text-transform: uppercase; +} + +.badge-base { + background: #95a5a6; + color: white; +} + +.badge-pro { + background: #3498db; + color: white; +} + +.badge-premium { + background: #9b59b6; + color: white; +} + +.badge-vip { + background: #f39c12; + color: white; +} + +.badge-rubro { + background: #e0e0e0; + color: #333; + font-size: 0.8rem; +} + +.template-description { + color: #666; + font-size: 0.9rem; + line-height: 1.5; + margin: 0; +} + +/* Lightbox de Screenshot Grande */ +.screenshot-lightbox { + display: none; + position: fixed; + z-index: 10001; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.95); + backdrop-filter: blur(10px); + overflow-y: auto; + padding: 40px 20px; +} + +.lightbox-content { + max-width: 1200px; + margin: 0 auto; + position: relative; + background: white; + border-radius: 20px; + overflow: hidden; + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5); + animation: lightboxFadeIn 0.3s ease; +} + +@keyframes lightboxFadeIn { + from { + opacity: 0; + transform: scale(0.9); + } + to { + opacity: 1; + transform: scale(1); + } +} + +.lightbox-close { + position: absolute; + top: 20px; + right: 20px; + font-size: 2rem; + color: white; + cursor: pointer; + z-index: 10; + width: 40px; + height: 40px; + display: flex; + align-items: center; + justify-content: center; + background: rgba(0, 0, 0, 0.5); + border-radius: 50%; + transition: background 0.3s; +} + +.lightbox-close:hover { + background: rgba(0, 0, 0, 0.8); +} + +.lightbox-content img { + width: 100%; + height: auto; + display: block; +} + +.lightbox-info { + padding: 30px; + background: white; +} + +.lightbox-info h3 { + margin: 0 0 10px 0; + font-size: 1.5rem; + color: #333; +} + +.lightbox-info p { + margin: 0 0 20px 0; + color: #666; + font-size: 1rem; +} + +.btn-request-design { + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + color: white; + border: none; + padding: 15px 30px; + border-radius: 10px; + font-size: 1rem; + font-weight: 600; + cursor: pointer; + transition: transform 0.3s, box-shadow 0.3s; + display: flex; + align-items: center; + gap: 10px; +} + +.btn-request-design:hover { + transform: translateY(-2px); + box-shadow: 0 5px 20px rgba(102, 126, 234, 0.4); +} + +/* Responsive */ +@media (max-width: 768px) { + .plan-buttons-group { + flex-direction: column; + } + + .plan-btn-preview { + width: 100%; + justify-content: center; + } + + .previews-grid { + grid-template-columns: 1fr; + padding: 20px; + } + + .previews-modal-content { + margin: 20px; + border-radius: 15px; + } + + .previews-modal-header { + padding: 20px; + } + + .previews-modal-header h2 { + font-size: 1.4rem; + } + + .lightbox-content { + margin: 20px; + } +} \ No newline at end of file diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/templates/admin.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/templates/admin.html new file mode 100644 index 0000000..7c0992d --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/templates/admin.html @@ -0,0 +1,178 @@ + + + + + Admin - Demo + + + +
+

🔧 Panel Admin

+
+ +

Solicitudes Pendientes

+ + + + + + + + + {% for req in requests %} + + + + + + + + {% endfor %} + {% if not requests %} + + {% endif %} +
IDSlugEmail ClienteFechaAcción
{{ req.id }}{{ req.slug }}{{ req.email }}{{ req.created_at }} + +
No hay solicitudes pendientes
+ +

👥 Usuarios Registrados

+ + + + + + + + + + + + + {% for user in users %} + + + + + + + + + + + + {% endfor %} + {% if not users %} + + {% endif %} +
IDEmailPlanRubroSitiosPublicadosSolicitudesFechaAcción
{{ user.id }}{{ user.email }}{{ user.plan }}{{ user.rubro }}{{ user.num_sitios }}{{ user.sitios_publicados }}{{ user.num_solicitudes }}{{ user.created_at[:10] if user.created_at else 'N/A' }} + {% if user.id != 1 %} + + {% else %} + Admin Principal + {% endif %} +
No hay usuarios registrados
+ +

🌐 Todos los Sitios

+ + + + + + + + + {% for site in sites %} + + + + + + + + {% endfor %} +
IDSlugTemaStatusVer
{{ site.id }}{{ site.slug }}{{ site.theme }}{{ site.status }} + {% if site.status == 'published' %} + Ver + {% endif %} +
+ + + + + + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/templates/client_admin.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/templates/client_admin.html new file mode 100644 index 0000000..42ec59f --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/templates/client_admin.html @@ -0,0 +1,311 @@ + + + + + Admin - Cliente + + + +
+

⚙️ Panel de Administración

+ +
+ +
+ + + +
+ + +
+

Gestionar Imágenes

+
+

📤 Arrastra imágenes aquí o haz clic para subir

+

Formatos: JPG, PNG, GIF (máx. 5MB)

+ +
+
+ +
+
+ + +
+

Configuración de Cuenta

+
+
+ + +
+
+ + +
+
+ + +
+ +
+
+ + +
+

Mis Sitios

+
+ {% for site in sites %} +
+
+
+

{{ site.slug }}

+

Tema: {{ site.theme }} | Estado: {{ site.status }}

+
+ +
+
+ {% endfor %} +
+
+ + + + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/templates/create_site.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/templates/create_site.html new file mode 100644 index 0000000..67d7b1e --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/templates/create_site.html @@ -0,0 +1,82 @@ + + + + + Crear Sitio - Demo + + + +
+

➕ Crear Nuevo Sitio

+
+ + + + + + +
+ ← Volver +
+ + + + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/templates/customizer.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/templates/customizer.html new file mode 100644 index 0000000..77d7e6a --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/templates/customizer.html @@ -0,0 +1,467 @@ + + + + + Personalizar - {{ site_name or 'Sitio' }} + + + + + +
+
+

Vista Previa

+
+ +
+
+
+
Cargando vista previa...
+ +
+
+ +
✅ Cambios guardados
+ + + + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/templates/dashboard.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/templates/dashboard.html new file mode 100644 index 0000000..ce62c71 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/templates/dashboard.html @@ -0,0 +1,108 @@ + + + + + Dashboard - Demo + + + +
+

📊 Mi Panel de Control

+ +
+ +
+ {% for site in sites %} +
+

{{ site.slug }}

+

Tema: {{ site.theme }}

+ {{ site.status }} +
+ ✏️ Editar + {% if site.status == 'draft' %} + + {% endif %} +
+
+ {% endfor %} + + {% if not sites %} +
+

No tienes sitios aún. Crear uno

+
+ {% endif %} +
+ + + + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/templates/landing.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/templates/landing.html new file mode 100644 index 0000000..594b57e --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/templates/landing.html @@ -0,0 +1,47 @@ + + + + + PageBuilder SaaS - Demo + + + +
+

🎨 PageBuilder SaaS

+

Crea tu sitio web en minutos

+ Registrarse + Iniciar Sesión + Admin +
+ + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/templates/landing_real.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/templates/landing_real.html new file mode 100644 index 0000000..ee88408 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/templates/landing_real.html @@ -0,0 +1,1442 @@ + + + + + + + + + + + + + + + + + + + + + + + + GKACHELE™ | Desarrollo Web Premium + + + + + + + + + +
+
+
+

GKACHELE™

+

Desarrollo Web Premium

+

Estamos listos para ayudarte a crear tu sitio moderno, rápido y personalizado.

+
+
+ + +
+
+
+

Nuestros Planes

+ + +
+ +
+ +
+
+

¿Qué incluye?

+
    +
  • ✅ Sitio web de una página
  • +
  • ✅ Diseño limpio y profesional
  • +
  • ✅ Información de contacto
  • +
  • ✅ Enlaces a redes sociales
  • +
  • ✅ Responsive (móvil y desktop)
  • +
  • ✅ Hosting gratuito
  • +
  • ✅ Dominio personalizado
  • +
+

Personalización

+
    +
  • 🎨 Color principal personalizado
  • +
  • ✍️ Tipografía a elección
  • +
  • 📝 Textos personalizados
  • +
+

Ideal para: Profesionales independientes, pequeños comercios, páginas institucionales básicas.

+
+ QR Base +

Comparte este plan

+
+
+ +
+
+
+
+ + +
+ +
+
+

¿Qué incluye?

+
    +
  • ✅ Sitio web multipágina
  • +
  • ✅ Animaciones suaves y efectos visuales
  • +
  • ✅ Galería de imágenes o portafolio
  • +
  • ✅ Formulario de contacto funcional
  • +
  • ✅ Responsive avanzado
  • +
  • ✅ Hosting gratuito
  • +
  • ✅ Dominio personalizado
  • +
+

Personalización

+
    +
  • 🎨 Paleta de colores personalizada
  • +
  • ✍️ Tipografía profesional
  • +
  • 🧩 Secciones a medida
  • +
+

Ideal para: Marcas personales, portfolios creativos, negocios que quieren destacar visualmente.

+
+ QR Pro +

Comparte este plan

+
+
+ +
+
+
+
+ + +
+ +
+
+

¿Qué incluye?

+
    +
  • ✅ Sitio web completo y escalable
  • +
  • ✅ Integración con redes sociales y herramientas externas
  • +
  • ✅ SEO optimizado
  • +
  • ✅ Panel de administración (opcional)
  • +
  • ✅ Hosting y dominio incluidos
  • +
  • ✅ Soporte técnico personalizado
  • +
+

Personalización

+
    +
  • 🎨 Diseño a medida
  • +
  • 📊 Integración con analítica
  • +
  • 🔒 Seguridad avanzada
  • +
+

Ideal para: Empresas, proyectos grandes, tiendas online, instituciones con necesidades específicas.

+
+ QR Premium +

Comparte este plan

+
+
+ +
+
+
+
+
+
+
+ + + + + + + + + + + +
+
+
+

Proyectos Demo

+

Ejemplos de sitios web que hemos creado

+ +
+ +
+
+
💃 Blow Dance
+ +
+
+

Blow Dance

+

💃 Escuela de Danza

+

Plan: Pro

+

Sitio web profesional para escuela de danza con galerías, videos y sistema de inscripción.

+
+
+ + +
+
+
🗳️ Dalmau
+ +
+
+

Dalmau Intendente

+

⚖️ Despacho Profesional

+

Plan: Base

+

Landing page profesional para despachos de abogados y contadores con información clara y llamados a la acción.

+
+
+ + +
+
+
💼 GKACHELE
+ +
+
+

GKACHELE™

+

💼 Portfolio Profesional

+

Plan: Premium

+

Sitio web premium con diseño moderno, animaciones y sistema de gestión avanzado.

+
+
+
+ + + +
+
+ + +
+
+
+
+

Comparte tu sitio

+ QR Code GKACHELE™ +

Escanea el código QR para compartir

+
+
+
+ + +
+
+ +
+ + + + + + + + + + +
+ +
+

© 2025 GKACHELE™. Todos los derechos reservados.

+ +

+ Código propiedad de GKACHELE © 2025 - Prohibida su reproducción sin autorización +

+
+
+ + + + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/templates/login.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/templates/login.html new file mode 100644 index 0000000..97ffa6b --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/templates/login.html @@ -0,0 +1,95 @@ + + + + + Login - Demo + + + +
+

🔐 Iniciar Sesión

+
+ + + +
+

+ ¿No tienes cuenta? Regístrate +

+
+ + + + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/templates/public_site.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/templates/public_site.html new file mode 100644 index 0000000..5705e22 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/templates/public_site.html @@ -0,0 +1,33 @@ + + + + + {{ content.site_name or 'Mi Sitio' }} + + + +
+

{{ content.hero_title or 'Título' }}

+

{{ content.hero_description or 'Descripción' }}

+
+ + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/templates/register.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/templates/register.html new file mode 100644 index 0000000..6c5534d --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/templates/register.html @@ -0,0 +1,132 @@ + + + + + Registro - Demo + + + +
+

📝 Registrarse

+
+ + + + + +
+

+ ¿Ya tienes cuenta? Inicia sesión +

+
+ + + + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/test.py b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/test.py new file mode 100644 index 0000000..7013d93 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/test.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python3 +"""Test rápido para verificar que todo funciona""" + +import sys +import os + +# Agregar directorio actual al path +sys.path.insert(0, os.path.dirname(__file__)) + +try: + from app import app + print("✅ App importada correctamente") + print("✅ Flask funcionando") + print(f"✅ Templates en: {app.template_folder}") + print("\n🚀 Para iniciar:") + print(" python3 app.py") + print("\n📍 URL: http://localhost:5001") +except Exception as e: + print(f"❌ Error: {e}") + import traceback + traceback.print_exc() + sys.exit(1) diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/themes/_gkachele/footer.php b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/themes/_gkachele/footer.php new file mode 100644 index 0000000..97ab4fc --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/themes/_gkachele/footer.php @@ -0,0 +1,22 @@ +
+ +
+
+ {% if menus.footer %} + + {% endif %} +

+ © 2025 GKACHELE™. Todos los derechos reservados.
+ Desarrollado desde noviembre 2025 por GKACHELE
+ Código propiedad de GKACHELE © 2025 - Prohibida su reproducción sin autorización +

+
+
+ + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/themes/_gkachele/header.php b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/themes/_gkachele/header.php new file mode 100644 index 0000000..52440a7 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/themes/_gkachele/header.php @@ -0,0 +1,112 @@ + + + + + + + {% if site_name %}{{ site_name }}{% else %}GKACHELE Site{% endif %} + + + + + + +
+ +
+
diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/themes/_gkachele/sidebar.php b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/themes/_gkachele/sidebar.php new file mode 100644 index 0000000..a6adb25 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/themes/_gkachele/sidebar.php @@ -0,0 +1,33 @@ + + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/themes/gimnasio-claro/config.json b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/themes/gimnasio-claro/config.json new file mode 100644 index 0000000..b1cffcc --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/themes/gimnasio-claro/config.json @@ -0,0 +1,29 @@ +{ + "name": "Gimnasio Claro", + "rubro": "gimnasios", + "description": "Tema claro y moderno para gimnasios", + "sections": [ + "hero", + "planes_fitness", + "horarios", + "entrenadores", + "instalaciones", + "contacto" + ], + "colors": { + "primary": "#ff4d4d", + "secondary": "#1a1a1a", + "accent": "#ff6b6b" + }, + "typography": { + "font_family": "Roboto", + "headings": "Roboto" + }, + "features": { + "planes_fitness": true, + "horarios": true, + "entrenadores": true, + "instalaciones": true, + "precios": true + } +} diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/themes/restaurante-elegante/config.json b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/themes/restaurante-elegante/config.json new file mode 100644 index 0000000..4c06aa9 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/themes/restaurante-elegante/config.json @@ -0,0 +1,32 @@ +{ + "name": "Restaurante Elegante", + "rubro": "restaurante", + "description": "Tema sofisticado y elegante para restaurantes de alta cocina", + "sections": [ + "hero", + "menu", + "horarios", + "reservas", + "especialidad_culinaria", + "galeria", + "contacto" + ], + "colors": { + "primary": "#8b4513", + "secondary": "#d4af37", + "accent": "#f5deb3", + "text": "#2c2c2c" + }, + "typography": { + "font_family": "Georgia", + "headings": "Cormorant Garamond" + }, + "features": { + "menu_url": true, + "horarios": true, + "reservas": true, + "capacidad": true, + "especialidad_culinaria": true, + "galeria": true + } +} diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/themes/restaurante-elegante/template.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/themes/restaurante-elegante/template.html new file mode 100644 index 0000000..8541f9d --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/themes/restaurante-elegante/template.html @@ -0,0 +1,649 @@ + + + + + + {{ site_name or 'Restaurante Elegante' }} + + + + + + + +
+ +
+ + +
+
+

{{ hero_title or 'Experiencia Culinaria Excepcional' }}

+

{{ hero_description or 'Donde la tradición se encuentra con la innovación' }}

+ Reservar Mesa +
+
+ + + + + +
+
+

Horarios de Atención

+
+
+

Lunes - Viernes

+

{{ horarios.lunes_viernes or '13:00 - 23:00' }}

+
+
+

Sábados

+

{{ horarios.sabados or '13:00 - 00:00' }}

+
+
+

Domingos

+

{{ horarios.domingos or '13:00 - 22:00' }}

+
+
+
+
+ + +
+
+

Reserva tu Mesa

+
+

+ Complete el formulario y nos pondremos en contacto para confirmar su reserva. +

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+
+
+ + +
+
+
+
+

{{ especialidad_culinaria.titulo or 'Nuestra Especialidad' }}

+

{{ especialidad_culinaria.descripcion or 'Cada plato es una obra de arte, preparado con ingredientes de la más alta calidad y técnicas culinarias refinadas que honran la tradición gastronómica.' }}

+
+
+ Especialidad Culinaria +
+
+
+
+ + +
+
+

Contacto

+
+
+

Información de Contacto

+

Dirección: {{ direccion or 'Avenida Principal 456, Ciudad' }}

+

Teléfono: {{ telefono or '+34 987 654 321' }}

+

Email: {{ email or 'contacto@restaurante.com' }}

+ {% if capacidad %} +

Capacidad: {{ capacidad }} personas

+ {% endif %} +
+ {% if redes_sociales.facebook %} + 📘 + {% endif %} + {% if redes_sociales.instagram %} + 📷 + {% endif %} + {% if redes_sociales.twitter %} + 🐦 + {% endif %} + {% if redes_sociales.whatsapp %} + 💬 + {% endif %} +
+
+
+

Ubicación

+ {% if mapa_url %} + + {% else %} +

Mapa de ubicación disponible próximamente

+ {% endif %} +
+
+
+
+ + +
+
+

© 2025 {{ site_name or 'Restaurante Elegante' }}. Todos los derechos reservados.

+
+
+ + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/themes/restaurante-moderno/config.json b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/themes/restaurante-moderno/config.json new file mode 100644 index 0000000..59da350 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/themes/restaurante-moderno/config.json @@ -0,0 +1,29 @@ +{ + "name": "Restaurante Moderno", + "rubro": "restaurante", + "description": "Tema elegante para restaurantes", + "sections": [ + "hero", + "menu", + "horarios", + "reservas", + "especialidad_culinaria", + "contacto" + ], + "colors": { + "primary": "#d32f2f", + "secondary": "#ff6f00", + "accent": "#ff8f00" + }, + "typography": { + "font_family": "Roboto", + "headings": "Playfair Display" + }, + "features": { + "menu_url": true, + "horarios": true, + "reservas": true, + "capacidad": true, + "especialidad_culinaria": true + } +} diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/themes/restaurante-moderno/style.css b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/themes/restaurante-moderno/style.css new file mode 100644 index 0000000..fde8fef --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/themes/restaurante-moderno/style.css @@ -0,0 +1,44 @@ +/* Estilos adicionales para el tema Restaurante Moderno */ +/* Estos estilos complementan el template.html */ + +/* Animaciones suaves */ +@keyframes fadeInUp { + from { + opacity: 0; + transform: translateY(30px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.section { + animation: fadeInUp 0.6s ease-out; +} + +/* Efectos hover mejorados */ +.menu-item, +.horario-item { + transition: all 0.3s ease; +} + +/* Scroll suave */ +html { + scroll-behavior: smooth; +} + +/* Mejoras responsive */ +@media (max-width: 480px) { + .hero h1 { + font-size: 32px; + } + + .section-title { + font-size: 32px; + } + + .menu-grid { + grid-template-columns: 1fr; + } +} diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/themes/restaurante-moderno/template.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/themes/restaurante-moderno/template.html new file mode 100644 index 0000000..29b5146 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/themes/restaurante-moderno/template.html @@ -0,0 +1,562 @@ + + + + + + {{ site_name or 'Restaurante' }} + + + + + + + +
+ +
+ + +
+
+

{{ hero_title or 'Bienvenido a Nuestro Restaurante' }}

+

{{ hero_description or 'Sabores auténticos que despiertan tus sentidos' }}

+ Reservar Mesa +
+
+ + + + + +
+
+

Horarios de Atención

+
+
+

Lunes - Viernes

+

{{ horarios.lunes_viernes or '12:00 PM - 10:00 PM' }}

+
+
+

Sábados

+

{{ horarios.sabados or '12:00 PM - 11:00 PM' }}

+
+
+

Domingos

+

{{ horarios.domingos or '12:00 PM - 9:00 PM' }}

+
+
+
+
+ + +
+
+

Reserva tu Mesa

+
+

+ Completa el formulario y nos pondremos en contacto contigo para confirmar tu reserva. +

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+
+
+ + +
+
+
+
+

{{ especialidad_culinaria.titulo or 'Nuestra Especialidad' }}

+

{{ especialidad_culinaria.descripcion or 'Cada plato es una obra de arte culinaria, preparado con ingredientes frescos y técnicas tradicionales que honran la autenticidad de nuestros sabores.' }}

+
+
+ Especialidad Culinaria +
+
+
+
+ + +
+
+

Contacto

+
+
+

Información de Contacto

+

Dirección: {{ direccion or 'Calle Principal 123, Ciudad' }}

+

Teléfono: {{ telefono or '+34 123 456 789' }}

+

Email: {{ email or 'contacto@restaurante.com' }}

+ {% if capacidad %} +

Capacidad: {{ capacidad }} personas

+ {% endif %} +
+ {% if redes_sociales.facebook %} + 📘 + {% endif %} + {% if redes_sociales.instagram %} + 📷 + {% endif %} + {% if redes_sociales.twitter %} + 🐦 + {% endif %} + {% if redes_sociales.whatsapp %} + 💬 + {% endif %} +
+
+
+

Ubicación

+ {% if mapa_url %} + + {% else %} +

Mapa de ubicación disponible próximamente

+ {% endif %} +
+
+
+
+ + +
+
+

© 2025 {{ site_name or 'Restaurante' }}. Todos los derechos reservados.

+
+
+ + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/ver_usuarios.py b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/ver_usuarios.py new file mode 100644 index 0000000..a2df7f9 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/demo/ver_usuarios.py @@ -0,0 +1,78 @@ +""" +GKACHELE™ - Script para ver usuarios registrados +© 2025 GKACHELE™. Todos los derechos reservados. +Uso: python ver_usuarios.py +""" + +import sqlite3 +import os +from datetime import datetime + +# Ruta de la base de datos +BASE_DIR = os.path.dirname(__file__) +DATABASE_DIR = os.path.join(BASE_DIR, 'database') +MAIN_DB = os.path.join(DATABASE_DIR, 'main.db') + +def ver_usuarios(): + """Ver todos los usuarios registrados""" + if not os.path.exists(MAIN_DB): + print(f"❌ No se encontró la base de datos en: {MAIN_DB}") + return + + try: + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Obtener usuarios + c.execute('SELECT id, email, plan, rubro, created_at FROM users ORDER BY id') + users = c.fetchall() + + if not users: + print("📭 No hay usuarios registrados aún") + return + + print("=" * 80) + print("👥 USUARIOS REGISTRADOS") + print("=" * 80) + print(f"{'ID':<5} {'Email':<35} {'Plan':<10} {'Rubro':<15} {'Fecha Registro':<20}") + print("-" * 80) + + for user in users: + user_id, email, plan, rubro, created_at = user + # Formatear fecha + fecha = created_at if created_at else 'N/A' + print(f"{user_id:<5} {email:<35} {plan:<10} {rubro:<15} {fecha:<20}") + + print("-" * 80) + print(f"Total: {len(users)} usuario(s)") + + # Obtener sitios por usuario + print("\n" + "=" * 80) + print("🌐 SITIOS POR USUARIO") + print("=" * 80) + + for user in users: + user_id, email, plan, rubro, created_at = user + c.execute('SELECT id, slug, theme, status, created_at FROM sites WHERE user_id = ? ORDER BY id', (user_id,)) + sites = c.fetchall() + + print(f"\n👤 Usuario ID {user_id} ({email}):") + if sites: + print(f" {'ID':<5} {'Slug':<25} {'Tema':<20} {'Estado':<12} {'Fecha':<20}") + print(" " + "-" * 82) + for site in sites: + site_id, slug, theme, status, site_created = site + fecha = site_created if site_created else 'N/A' + print(f" {site_id:<5} {slug:<25} {theme:<20} {status:<12} {fecha:<20}") + else: + print(" ⚠️ No tiene sitios creados") + + conn.close() + + except Exception as e: + print(f"❌ Error: {e}") + import traceback + traceback.print_exc() + +if __name__ == '__main__': + ver_usuarios() diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/setup-cron.sh b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/setup-cron.sh new file mode 100644 index 0000000..d4d94bd --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/setup-cron.sh @@ -0,0 +1,9 @@ +#!/bin/bash +# Script para configurar cron en Raspberry + +# Agregar entrada de cron +(crontab -l 2>/dev/null; echo "*/5 * * * * /home/pi/scripts/update-raspberry-cron.sh") | crontab - + +# Verificar +echo "Cron configurado:" +crontab -l diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/setup_cron.py b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/setup_cron.py new file mode 100644 index 0000000..3495370 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/setup_cron.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python3 +# Script para configurar cron en Raspberry + +import subprocess +import sys + +# Obtener crontab actual +try: + result = subprocess.run(['sudo', 'crontab', '-u', 'pi', '-l'], + capture_output=True, text=True, check=False) + current_cron = result.stdout +except: + current_cron = "" + +# Nueva entrada +new_entry = "*/5 * * * * /home/pi/scripts/update-raspberry-cron.sh\n" + +# Verificar si ya existe +if new_entry.strip() in current_cron: + print("✅ La entrada de cron ya existe") + sys.exit(0) + +# Agregar nueva entrada +new_cron = current_cron + new_entry + +# Escribir nuevo crontab +try: + process = subprocess.Popen(['sudo', 'crontab', '-u', 'pi', '-'], + stdin=subprocess.PIPE, text=True) + process.communicate(input=new_cron) + if process.returncode == 0: + print("✅ Cron configurado exitosamente") + # Mostrar crontab + subprocess.run(['sudo', 'crontab', '-u', 'pi', '-l']) + else: + print("❌ Error configurando cron") + sys.exit(1) +except Exception as e: + print(f"❌ Error: {e}") + sys.exit(1) diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/sync-from-pc.sh b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/sync-from-pc.sh new file mode 100644 index 0000000..425ba6a --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/sync-from-pc.sh @@ -0,0 +1,32 @@ +#!/bin/bash +# Script para ejecutar en Raspberry - copia código desde PC local +# Este script se ejecuta en la Raspberry vía cron cada 5 minutos + +# Configuración - IP del PC (ajustar según tu red local) +PC_IP="192.168.1.XXX" # CAMBIAR POR LA IP DE TU PC +PC_USER="elanchok91" # Usuario del PC +PC_PATH="/mnt/c/word/demo" # Ruta en WSL del PC +RASPBERRY_PATH="/home/pi/gkachele-saas" +LOG_FILE="/tmp/sync-from-pc.log" + +echo "$(date '+%Y-%m-%d %H:%M:%S'): 🔄 Iniciando sincronización desde PC..." >> $LOG_FILE + +# Verificar si el PC está disponible +if ping -c 1 -W 2 $PC_IP &> /dev/null; then + # Intentar copiar usando scp (requiere SSH en el PC) + # Si el PC tiene SSH habilitado, usar esto: + # scp -o StrictHostKeyChecking=no -r $PC_USER@$PC_IP:$PC_PATH/* $RASPBERRY_PATH/ 2>>$LOG_FILE + + # Alternativa: usar rsync si está disponible + # rsync -avz --delete $PC_USER@$PC_IP:$PC_PATH/ $RASPBERRY_PATH/ 2>>$LOG_FILE + + echo "$(date '+%Y-%m-%d %H:%M:%S'): ⚠️ PC disponible pero necesita configuración SSH" >> $LOG_FILE + echo "$(date '+%Y-%m-%d %H:%M:%S'): 💡 Usar método alternativo: script en PC que copia a Raspberry" >> $LOG_FILE +else + echo "$(date '+%Y-%m-%d %H:%M:%S'): ⚠️ PC no disponible ($PC_IP)" >> $LOG_FILE +fi + +# Reiniciar servicio si hay cambios (verificar hash o timestamp) +sudo systemctl restart gkachele-saas 2>/dev/null || (sudo pkill -f "python3 app.py" && sleep 1 && cd $RASPBERRY_PATH && nohup python3 app.py > /tmp/app.log 2>&1 &) + +echo "$(date '+%Y-%m-%d %H:%M:%S'): ✅ Sincronización completada" >> $LOG_FILE diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/sync-to-raspberry.sh b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/sync-to-raspberry.sh new file mode 100644 index 0000000..a3023f9 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/sync-to-raspberry.sh @@ -0,0 +1,31 @@ +#!/bin/bash +# Script para ejecutar en PC (WSL) - copia código a Raspberry cada 5 minutos +# Este script se ejecuta en el PC vía cron y copia a la Raspberry + +# Configuración +RASPBERRY_USER="pi" +RASPBERRY_HOST="192.168.1.134" +RASPBERRY_PORT="2222" +RASPBERRY_PASS="Gdk1983gdk45@" +RASPBERRY_PATH="/home/pi/gkachele-saas" +LOCAL_PATH="/mnt/c/word/demo" +LOG_FILE="/tmp/sync-to-raspberry.log" + +echo "$(date '+%Y-%m-%d %H:%M:%S'): 🔄 Sincronizando código a Raspberry..." >> $LOG_FILE + +# Copiar archivos principales +sshpass -p "$RASPBERRY_PASS" scp -P $RASPBERRY_PORT -o StrictHostKeyChecking=no \ + $LOCAL_PATH/app.py \ + $RASPBERRY_USER@$RASPBERRY_HOST:$RASPBERRY_PATH/app.py 2>>$LOG_FILE + +# Copiar templates +sshpass -p "$RASPBERRY_PASS" scp -P $RASPBERRY_PORT -o StrictHostKeyChecking=no -r \ + $LOCAL_PATH/templates/* \ + $RASPBERRY_USER@$RASPBERRY_HOST:$RASPBERRY_PATH/templates/ 2>>$LOG_FILE + +# Reiniciar servicio en Raspberry +sshpass -p "$RASPBERRY_PASS" ssh -p $RASPBERRY_PORT -o StrictHostKeyChecking=no \ + $RASPBERRY_USER@$RASPBERRY_HOST \ + "sudo systemctl restart gkachele-saas 2>/dev/null || (sudo pkill -f 'python3 app.py' && sleep 1 && cd $RASPBERRY_PATH && nohup python3 app.py > /tmp/app.log 2>&1 &)" 2>>$LOG_FILE + +echo "$(date '+%Y-%m-%d %H:%M:%S'): ✅ Sincronización completada" >> $LOG_FILE diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/update-app-raspberry.sh b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/update-app-raspberry.sh new file mode 100644 index 0000000..5dacb8a --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/update-app-raspberry.sh @@ -0,0 +1,5 @@ +#!/bin/bash +# Script para actualizar app en Raspberry (ejecutar desde cron) +cd ~/gkachele-saas +# Reiniciar servicio si existe, sino reiniciar proceso +sudo systemctl restart gkachele-saas 2>/dev/null || (sudo pkill -f "python3 app.py" && sleep 1 && nohup python3 app.py > /tmp/app.log 2>&1 &) diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/update-from-pc.sh b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/update-from-pc.sh new file mode 100644 index 0000000..e69de29 diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/update-komkida-duckdns.py b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/update-komkida-duckdns.py new file mode 100644 index 0000000..84fa956 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/update-komkida-duckdns.py @@ -0,0 +1,4 @@ +#!/usr/bin/env python3 +import urllib.request +response = urllib.request.urlopen("https://www.duckdns.org/update?domains=komkida&token=9c5cff88-b6d7-4704-9b10-4a69afdff797&ip=") +print("DuckDNS actualizado:", response.read().decode()) diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/update-raspberry-cron.sh b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/update-raspberry-cron.sh new file mode 100644 index 0000000..09b83f8 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/update-raspberry-cron.sh @@ -0,0 +1,27 @@ +#!/bin/bash +# Script para ejecutar en Raspberry - actualiza desde PC cada 5 minutos +# Este script se ejecuta en la Raspberry vía cron + +RASPBERRY_PATH="/home/pi/gkachele-saas" +LOG_FILE="/tmp/update-raspberry.log" + +echo "$(date '+%Y-%m-%d %H:%M:%S'): 🔄 Iniciando actualización..." >> $LOG_FILE + +# Ejecutar script del PC que copia a Raspberry (si está disponible) +# El script del PC se ejecuta desde WSL y copia archivos +# Por ahora, solo reiniciamos el servicio para aplicar cambios si los hay + +# Reiniciar servicio +sudo systemctl restart gkachele-saas 2>/dev/null +if [ $? -eq 0 ]; then + echo "$(date '+%Y-%m-%d %H:%M:%S'): ✅ Servicio reiniciado" >> $LOG_FILE +else + # Si no hay servicio systemd, reiniciar proceso manualmente + sudo pkill -f "python3 app.py" 2>/dev/null + sleep 1 + cd $RASPBERRY_PATH + nohup python3 app.py > /tmp/app.log 2>&1 & + echo "$(date '+%Y-%m-%d %H:%M:%S'): ✅ Proceso reiniciado manualmente" >> $LOG_FILE +fi + +echo "$(date '+%Y-%m-%d %H:%M:%S'): ✅ Actualización completada" >> $LOG_FILE diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/update-raspberry.sh b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/update-raspberry.sh new file mode 100644 index 0000000..1a99f95 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/update-raspberry.sh @@ -0,0 +1,19 @@ +#!/bin/bash +# Script para actualizar código en Raspberry Pi automáticamente + +# Configuración +RASPBERRY_USER="pi" +RASPBERRY_HOST="komkida.duckdns.org" +RASPBERRY_PORT="2222" +RASPBERRY_PATH="/home/pi/gkachele-saas" +LOCAL_PATH="demo" + +echo "🔄 Actualizando código en Raspberry Pi..." + +# Copiar archivos +scp -P $RASPBERRY_PORT -r $LOCAL_PATH/* $RASPBERRY_USER@$RASPBERRY_HOST:$RASPBERRY_PATH/ + +# Reiniciar servicio +ssh -p $RASPBERRY_PORT $RASPBERRY_USER@$RASPBERRY_HOST "sudo systemctl restart gkachele-saas" + +echo "✅ Actualización completa" diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/update_duckdns.py b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/update_duckdns.py new file mode 100644 index 0000000..20db4d2 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/update_duckdns.py @@ -0,0 +1,4 @@ +#!/usr/bin/env python3 +import urllib.request +response = urllib.request.urlopen("https://www.duckdns.org/update?domains=gkachele&token=578331b3-ad7b-4154-835d-e496465257b0&ip=") +print(response.read().decode()) diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/verificar_codigo.sh b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/verificar_codigo.sh new file mode 100644 index 0000000..1b6e4ea --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/verificar_codigo.sh @@ -0,0 +1,7 @@ +#!/bin/bash +echo "=== Línea 247-249 de app.py ===" +sed -n '247,249p' /home/pi/gkachele-saas/app.py + +echo "" +echo "=== Línea 120 de register.html ===" +sed -n '120p' /home/pi/gkachele-saas/templates/register.html diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/verificar_raspberry.sh b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/verificar_raspberry.sh new file mode 100644 index 0000000..6e6f448 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/verificar_raspberry.sh @@ -0,0 +1,29 @@ +#!/bin/bash +echo "=== Verificando estructura en Raspberry ===" +echo "" +echo "1. Templates _gkachele:" +sshpass -p 'Gdk1983gdk45@' ssh -p 2222 -o StrictHostKeyChecking=no pi@192.168.1.134 'ls -la /home/pi/gkachele-saas/themes/_gkachele/' + +echo "" +echo "2. Función render_gkachele_template:" +sshpass -p 'Gdk1983gdk45@' ssh -p 2222 -o StrictHostKeyChecking=no pi@192.168.1.134 'grep -c "def render_gkachele_template" /home/pi/gkachele-saas/app.py && echo "✅ Función encontrada" || echo "❌ Función NO encontrada"' + +echo "" +echo "3. Tablas en base de datos:" +sshpass -p 'Gdk1983gdk45@' ssh -p 2222 -o StrictHostKeyChecking=no pi@192.168.1.134 'python3 << EOF +import sqlite3 +conn = sqlite3.connect("/home/pi/gkachele-saas/database/main.db") +c = conn.cursor() +c.execute("SELECT name FROM sqlite_master WHERE type=\"table\"") +tables = [r[0] for r in c.fetchall()] +print("Tablas:", ", ".join(tables)) +if "menus" in tables and "widgets" in tables: + print("✅ Tablas menus y widgets creadas") +else: + print("⚠️ Faltan tablas menus o widgets") +conn.close() +EOF' + +echo "" +echo "4. Estado del servicio:" +sshpass -p 'Gdk1983gdk45@' ssh -p 2222 -o StrictHostKeyChecking=no pi@192.168.1.134 'sudo systemctl is-active gkachele-saas && echo "✅ Servicio activo" || echo "❌ Servicio inactivo"' diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/verificar_redirect.sh b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/verificar_redirect.sh new file mode 100644 index 0000000..bd86795 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/local/verificar_redirect.sh @@ -0,0 +1,7 @@ +#!/bin/bash +echo "=== Verificando app.py ===" +grep -A 2 "redirect_url\|redirect.*customizer" /home/pi/gkachele-saas/app.py | head -5 + +echo "" +echo "=== Verificando register.html ===" +grep -A 1 "redirectUrl\|result.redirect" /home/pi/gkachele-saas/templates/register.html | head -5 diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/__pycache__/app.cpython-39.pyc b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/__pycache__/app.cpython-39.pyc new file mode 100644 index 0000000..fc86ec1 Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/__pycache__/app.cpython-39.pyc differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/app.py b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/app.py new file mode 100644 index 0000000..21b68bf --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/app.py @@ -0,0 +1,1215 @@ +""" +GKACHELE™ SaaS PageBuilder - Sistema Profesional +© 2025 GKACHELE™. Todos los derechos reservados. +Desarrollado desde noviembre 2025 por GKACHELE +Código propiedad de GKACHELE © 2025 - Prohibida su reproducción sin autorización +""" + +import os +import json +import sqlite3 +import secrets +from datetime import datetime +from flask import Flask, render_template, request, jsonify, session, redirect, url_for, send_from_directory +from werkzeug.security import generate_password_hash, check_password_hash + +app = Flask(__name__, template_folder='templates', static_folder='static') +app.secret_key = 'demo-secret-key-2025' +app.config['SESSION_COOKIE_SAMESITE'] = 'Lax' + +# Manejador de errores global - siempre devolver JSON +@app.errorhandler(500) +def handle_500(e): + print(f"❌ Error 500: {e}") + import traceback + traceback.print_exc() + # Asegurar que siempre devuelva JSON + response = jsonify({'success': False, 'error': 'Error interno del servidor'}) + response.status_code = 500 + return response + +@app.errorhandler(404) +def handle_404(e): + response = jsonify({'success': False, 'error': 'No encontrado'}) + response.status_code = 404 + return response + +@app.errorhandler(403) +def handle_403(e): + response = jsonify({'success': False, 'error': 'No autorizado'}) + response.status_code = 403 + return response + +# Manejador para excepciones no capturadas - FORZAR JSON +@app.errorhandler(Exception) +def handle_exception(e): + print(f"❌❌❌ EXCEPCIÓN NO CAPTURADA: {e}") + import traceback + traceback.print_exc() + # SIEMPRE devolver JSON, nunca HTML + response = jsonify({'success': False, 'error': f'Error: {str(e)}'}) + response.status_code = 500 + response.headers['Content-Type'] = 'application/json' + return response + +# Forzar JSON en TODAS las rutas /register, /login, /api/* +@app.before_request +def before_request(): + # Si es POST a /register o /login, forzar JSON + if request.method == 'POST' and (request.path.startswith('/register') or + request.path.startswith('/login') or + request.path.startswith('/api/')): + # Asegurar que acepta JSON + if not request.is_json and request.content_type and 'application/json' in request.content_type: + try: + request.get_json(force=True) + except: + pass + +# Directorios +BASE_DIR = os.path.dirname(__file__) +DATABASE_DIR = os.path.join(BASE_DIR, 'database') +SITES_DIR = os.path.join(BASE_DIR, 'sites') +THEMES_DIR = os.path.join(BASE_DIR, 'themes') +STATIC_DIR = os.path.join(BASE_DIR, 'static') +UPLOADS_DIR = os.path.join(BASE_DIR, 'uploads') + +# Crear directorios +# NOTA: Ya no se crean bases de datos separadas (cliente-X.db) +# TODO está en main.db (sistema multi-tenant) +for d in [DATABASE_DIR, SITES_DIR, THEMES_DIR, UPLOADS_DIR]: + os.makedirs(d, exist_ok=True) + +# DB principal +MAIN_DB = os.path.join(DATABASE_DIR, 'main.db') + +def init_db(): + """Inicializar base de datos principal - TODO EN UNA SOLA DB (sistema multi-tenant)""" + try: + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Usuarios (todos los clientes en una sola tabla) - Sistema GKACHELE™ + c.execute('''CREATE TABLE IF NOT EXISTS users ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + email TEXT UNIQUE NOT NULL, + password TEXT NOT NULL, + role TEXT DEFAULT 'subscriber', + plan TEXT DEFAULT 'base', + rubro TEXT DEFAULT 'gimnasio', + status TEXT DEFAULT 'active', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP + )''') + + # Añadir columna role si no existe (migración) + try: + c.execute('ALTER TABLE users ADD COLUMN role TEXT DEFAULT "subscriber"') + except: + pass # Columna ya existe + + # Añadir columna status si no existe (migración) + try: + c.execute('ALTER TABLE users ADD COLUMN status TEXT DEFAULT "active"') + except: + pass # Columna ya existe + + # Crear primer admin si no existe (user_id = 1) + c.execute('SELECT COUNT(*) FROM users WHERE id = 1') + if c.fetchone()[0] == 0: + from werkzeug.security import generate_password_hash + admin_password = generate_password_hash('admin123') # Cambiar después + c.execute('''INSERT INTO users (id, email, password, role, plan, rubro, status) + VALUES (1, 'admin@gkachele.com', ?, 'administrator', 'premium', 'admin', 'active')''', + (admin_password,)) + print("✅ Usuario administrador creado: admin@gkachele.com / admin123") + + # Sitios (todos los sitios, filtrados por user_id) + c.execute('''CREATE TABLE IF NOT EXISTS sites ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + slug TEXT UNIQUE NOT NULL, + theme TEXT DEFAULT 'default', + status TEXT DEFAULT 'draft', + content_json TEXT, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id) + )''') + + # Solicitudes + c.execute('''CREATE TABLE IF NOT EXISTS requests ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + site_id INTEGER NOT NULL, + user_id INTEGER NOT NULL, + status TEXT DEFAULT 'pending', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (site_id) REFERENCES sites(id), + FOREIGN KEY (user_id) REFERENCES users(id) + )''') + + # Media (fotos, imágenes del cliente) + c.execute('''CREATE TABLE IF NOT EXISTS media ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER NOT NULL, + filename TEXT NOT NULL, + filepath TEXT NOT NULL, + file_type TEXT DEFAULT 'image', + uploaded_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id) + )''') + + # Content (contenido por sección, filtrado por user_id y site_id) + c.execute('''CREATE TABLE IF NOT EXISTS content ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER NOT NULL, + section TEXT NOT NULL, + data_json TEXT, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id) + )''') + + # Settings (configuraciones por usuario/sitio) + c.execute('''CREATE TABLE IF NOT EXISTS settings ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER, + key TEXT NOT NULL, + value TEXT, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id), + UNIQUE(user_id, site_id, key) + )''') + + # Menus (sistema de menús dinámicos) + c.execute('''CREATE TABLE IF NOT EXISTS menus ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER NOT NULL, + location TEXT NOT NULL, + title TEXT NOT NULL, + url TEXT NOT NULL, + order_index INTEGER DEFAULT 0, + parent_id INTEGER, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id), + FOREIGN KEY (parent_id) REFERENCES menus(id) + )''') + + # Widgets (áreas de widgets dinámicos) + c.execute('''CREATE TABLE IF NOT EXISTS widgets ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER NOT NULL, + area TEXT NOT NULL, + type TEXT NOT NULL, + title TEXT, + content TEXT, + order_index INTEGER DEFAULT 0, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id) + )''') + + conn.commit() + conn.close() + print("✅ Base de datos inicializada (multi-tenant - todos los clientes en main.db)") + except Exception as e: + print(f"❌ Error inicializando DB: {e}") + import traceback + traceback.print_exc() + +init_db() + +# ============================================================================ +# FUNCIONES HELPER - GKACHELE™ Template System +# ============================================================================ + +def get_site_menus(site_id, user_id): + """Obtener menús del sitio organizados por ubicación""" + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('''SELECT location, title, url, order_index, parent_id + FROM menus + WHERE site_id = ? AND user_id = ? + ORDER BY location, order_index''', (site_id, user_id)) + rows = c.fetchall() + conn.close() + + menus = {'header': [], 'footer': [], 'sidebar': []} + for row in rows: + location, title, url, order_index, parent_id = row + menu_item = { + 'title': title, + 'url': url, + 'order': order_index, + 'parent_id': parent_id + } + if location in menus: + menus[location].append(menu_item) + + return menus + +def get_site_widgets(site_id, user_id, area='sidebar'): + """Obtener widgets del sitio por área""" + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('''SELECT type, title, content, order_index + FROM widgets + WHERE site_id = ? AND user_id = ? AND area = ? + ORDER BY order_index''', (site_id, user_id, area)) + rows = c.fetchall() + conn.close() + + widgets = [] + for row in rows: + widget_type, title, content, order_index = row + widgets.append({ + 'type': widget_type, + 'title': title, + 'content': content, + 'order': order_index + }) + + return widgets + +def render_gkachele_template(theme, content, site_id=None, user_id=None): + """Renderizar template usando estructura GKACHELE (header.php, footer.php, sidebar.php)""" + # Obtener menús y widgets si hay site_id + menus = {'header': [], 'footer': [], 'sidebar': []} + widgets = [] + if site_id and user_id: + try: + menus = get_site_menus(site_id, user_id) + widgets = get_site_widgets(site_id, user_id) + except Exception as e: + print(f"⚠️ Error obteniendo menús/widgets: {e}") + + # Cargar template del tema PRIMERO (es el contenido principal) + theme_template = '' + theme_path = os.path.join(THEMES_DIR, theme, 'template.html') + if os.path.exists(theme_path): + with open(theme_path, 'r', encoding='utf-8') as f: + theme_template = f.read() + else: + # Si no existe template del tema, usar template básico + theme_template = ''' +
+

{{ hero_title or 'Bienvenido' }}

+

{{ hero_description or 'Descripción del sitio' }}

+
+ ''' + + # Cargar header, footer, sidebar + header = '' + footer = '' + sidebar = '' + + header_path = os.path.join(THEMES_DIR, '_gkachele', 'header.php') + footer_path = os.path.join(THEMES_DIR, '_gkachele', 'footer.php') + sidebar_path = os.path.join(THEMES_DIR, '_gkachele', 'sidebar.php') + + if os.path.exists(header_path): + with open(header_path, 'r', encoding='utf-8') as f: + header = f.read() + else: + # Header básico si no existe + header = ''' + + + + + {{ site_name or 'GKACHELE Site' }} + + + +
+ +
+
''' + + if os.path.exists(footer_path): + with open(footer_path, 'r', encoding='utf-8') as f: + footer = f.read() + else: + footer = ''' +
+
+

© 2025 GKACHELE™. Todos los derechos reservados.
+ Desarrollado desde noviembre 2025 por GKACHELE
+ Código propiedad de GKACHELE © 2025 - Prohibida su reproducción sin autorización

+
+ +''' + + if os.path.exists(sidebar_path): + with open(sidebar_path, 'r', encoding='utf-8') as f: + sidebar = f.read() + + # Preparar contexto completo + template_data = { + 'site_name': content.get('site_name', 'GKACHELE Site'), + 'hero_title': content.get('hero_title', 'Bienvenido'), + 'hero_description': content.get('hero_description', ''), + 'colors': content.get('colors', {'primary': '#d32f2f', 'secondary': '#ff6f00', 'text': '#2c2c2c'}), + 'typography': content.get('typography', {'font_family': 'Roboto'}), + 'menus': menus, + 'widgets': widgets, + **content # Incluir todo el contenido adicional + } + + # Renderizar usando Jinja2 + from jinja2 import Template + # Construir template completo: header + contenido del tema + sidebar + footer + full_template = header + theme_template + sidebar + footer + template = Template(full_template) + return template.render(**template_data) + +# ============================================================================ +# RUTAS PÚBLICAS +# ============================================================================ + +@app.route('/') +def landing(): + """Landing page""" + return render_template('landing_real.html') + +@app.route('/register', methods=['GET', 'POST']) +def register(): + """Registro - Sistema Simple y Profesional""" + if request.method == 'POST': + try: + # Datos JSON + data = request.get_json() if request.is_json else (request.form.to_dict() if request.form else {}) + if not data: + return jsonify({'success': False, 'error': 'Sin datos'}), 400 + + email = str(data.get('email', '')).strip() + password = str(data.get('password', '')).strip() + plan = str(data.get('plan', 'base')) + rubro = str(data.get('rubro', 'gimnasio')) + + # Validar + if not email or '@' not in email: + return jsonify({'success': False, 'error': 'Email inválido'}), 400 + if not password: + return jsonify({'success': False, 'error': 'Contraseña requerida'}), 400 + + # DB + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Usuario + try: + c.execute('INSERT INTO users (email, password, plan, rubro) VALUES (?, ?, ?, ?)', + (email, generate_password_hash(password), plan, rubro)) + user_id = c.lastrowid + except sqlite3.IntegrityError: + conn.close() + return jsonify({'success': False, 'error': 'Email ya existe'}), 400 + + # Tema + import random + theme = 'default' + if rubro == 'restaurante': + theme = random.choice(['restaurante-moderno', 'restaurante-elegante']) + elif rubro in ['gimnasio', 'gimnasios']: + theme = 'gimnasio-claro' + + # Sitio + site_name = email.split('@')[0].title() + content = json.dumps({ + 'site_name': site_name + ' Site', + 'hero_title': 'Bienvenido', + 'hero_description': '', + 'colors': {'primary': '#d32f2f', 'secondary': '#ff6f00', 'text': '#2c2c2c'}, + 'typography': {'font_family': 'Roboto'} + }) + + slug = f'site-{secrets.token_hex(4)}' + c.execute('INSERT INTO sites (user_id, slug, theme, content_json) VALUES (?, ?, ?, ?)', + (user_id, slug, theme, content)) + site_id = c.lastrowid + + # Crear menús por defecto (header, footer) + default_menus = [ + ('header', 'Inicio', '#inicio', 0, None), + ('header', 'Menú', '#menu', 1, None), + ('header', 'Horarios', '#horarios', 2, None), + ('header', 'Reservas', '#reservas', 3, None), + ('header', 'Contacto', '#contacto', 4, None), + ('footer', 'Inicio', '#inicio', 0, None), + ('footer', 'Contacto', '#contacto', 1, None), + ] + + for location, title, url, order_idx, parent_id in default_menus: + c.execute('''INSERT INTO menus (user_id, site_id, location, title, url, order_index, parent_id) + VALUES (?, ?, ?, ?, ?, ?, ?)''', + (user_id, site_id, location, title, url, order_idx, parent_id)) + + conn.commit() + conn.close() + + # ✅ TODO está en main.db - no se necesitan bases separadas + # El cliente accede a /dashboard y solo ve SUS datos filtrados por user_id + + # NO crear sesión automáticamente - el usuario debe hacer login + # ÉXITO - Redirigir al login para que inicie sesión + print(f"✅ Usuario registrado: user_id={user_id}, site_id={site_id}") + return jsonify({'success': True, 'message': 'Registro exitoso. Por favor inicia sesión.', 'redirect': '/login'}) + + except Exception as e: + import traceback + traceback.print_exc() + return jsonify({'success': False, 'error': str(e)}), 500 + + # GET + return render_template('register.html', plan=request.args.get('plan', 'base'), rubro=request.args.get('rubro', 'gimnasio')) + +@app.route('/login', methods=['GET', 'POST']) +def login(): + """Login""" + if request.method == 'POST': + try: + data = request.get_json() + if not data: + return jsonify({'success': False, 'error': 'No se recibieron datos'}), 400 + + email = data.get('email') + password = data.get('password') + + if not email or not password: + return jsonify({'success': False, 'error': 'Email y contraseña son requeridos'}), 400 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT id, password FROM users WHERE email = ?', (email,)) + user = c.fetchone() + conn.close() + + if user and check_password_hash(user[1], password): + session['user_id'] = user[0] + user_id = user[0] + import sys + sys.stdout.flush() + print(f"✅ Login exitoso: user_id={user_id}", flush=True) + + # Buscar el primer sitio del usuario para ir al customizer directamente + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT id FROM sites WHERE user_id = ? ORDER BY id LIMIT 1', (user_id,)) + site = c.fetchone() + + # Debug: contar todos los sitios del usuario + c.execute('SELECT COUNT(*) FROM sites WHERE user_id = ?', (user_id,)) + total_sites = c.fetchone()[0] + print(f"[LOGIN] Usuario {user_id} tiene {total_sites} sitio(s)", flush=True) + + conn.close() + + # Si tiene sitio, ir al customizer; si no, al dashboard + if site: + site_id = site[0] + redirect_url = f'/customizer/{site_id}' + print(f"[LOGIN] Redirigiendo a customizer: site_id={site_id}, user_id={user_id}", flush=True) + else: + redirect_url = '/dashboard' + print(f"[LOGIN] Usuario sin sitios, redirigiendo a dashboard, user_id={user_id}", flush=True) + + print(f"[LOGIN] Respuesta JSON: redirect={redirect_url}", flush=True) + response = jsonify({'success': True, 'redirect': redirect_url}) + print(f"[LOGIN] Enviando respuesta: {redirect_url}", flush=True) + return response + + return jsonify({'success': False, 'error': 'Credenciales inválidas'}), 401 + except Exception as e: + print(f"❌ Error en login: {e}") + import traceback + traceback.print_exc() + return jsonify({'success': False, 'error': f'Error al iniciar sesión: {str(e)}'}), 500 + + return render_template('login.html') + +@app.route('/logout') +def logout(): + session.pop('user_id', None) + return redirect(url_for('landing')) + +# ============================================================================ +# DASHBOARD CLIENTE +# ============================================================================ + +@app.route('/dashboard') +def dashboard(): + """Panel del cliente""" + if 'user_id' not in session: + return redirect(url_for('login')) + + user_id = session['user_id'] + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Info del usuario + c.execute('SELECT email, plan FROM users WHERE id = ?', (user_id,)) + user_info = c.fetchone() + + # Sitios + c.execute('SELECT id, slug, theme, status, created_at FROM sites WHERE user_id = ?', (user_id,)) + sites = [{'id': r[0], 'slug': r[1], 'theme': r[2], 'status': r[3], 'created_at': r[4]} + for r in c.fetchall()] + + # Contar media + c.execute('SELECT COUNT(*) FROM media WHERE user_id = ?', (user_id,)) + media_count = c.fetchone()[0] + + conn.close() + + return render_template('dashboard.html', + sites=sites, + user_email=user_info[0] if user_info else '', + user_plan=user_info[1] if user_info else 'base', + media_count=media_count) + +@app.route('/dashboard/admin') +def client_admin(): + """Admin del cliente - gestionar media, config, etc.""" + if 'user_id' not in session: + return redirect(url_for('login')) + + user_id = session['user_id'] + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Info del usuario + c.execute('SELECT email, plan FROM users WHERE id = ?', (user_id,)) + user_info = c.fetchone() + + # Sitios del usuario + c.execute('SELECT id, slug, theme, status FROM sites WHERE user_id = ?', (user_id,)) + sites = [{'id': r[0], 'slug': r[1], 'theme': r[2], 'status': r[3]} for r in c.fetchall()] + + conn.close() + + return render_template('client_admin.html', + user_email=user_info[0] if user_info else '', + user_plan=user_info[1] if user_info else 'base', + sites=sites) + +@app.route('/dashboard/create', methods=['GET', 'POST']) +def create_site(): + """Crear nuevo sitio""" + if 'user_id' not in session: + return redirect(url_for('login')) + + if request.method == 'POST': + data = request.get_json() + user_id = session['user_id'] + slug = data.get('slug', f'site-{secrets.token_hex(4)}') + theme = data.get('theme', 'default') + + # Contenido inicial + content = { + 'site_name': data.get('site_name', 'Mi Sitio'), + 'hero_title': data.get('hero_title', 'Bienvenido'), + 'hero_description': data.get('hero_description', ''), + 'colors': { + 'primary': '#ff4d4d', + 'secondary': '#1a1a1a', + 'text': '#333333' + }, + 'typography': { + 'font_family': 'Arial' + } + } + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('INSERT INTO sites (user_id, slug, theme, content_json) VALUES (?, ?, ?, ?)', + (user_id, slug, theme, json.dumps(content))) + site_id = c.lastrowid + conn.commit() + conn.close() + + # ✅ TODO está en main.db - no se necesitan bases separadas + + return jsonify({'success': True, 'site_id': site_id, 'slug': slug}) + + return render_template('create_site.html') + +# ============================================================================ +# CUSTOMIZER (Sistema de Personalización) +# ============================================================================ + +@app.route('/customizer/') +def customizer(site_id): + """Customizer: Sidebar + Preview""" + # Verificar que el sitio existe + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT user_id, slug, theme, content_json FROM sites WHERE id = ?', (site_id,)) + site = c.fetchone() + conn.close() + + if not site: + return "Sitio no encontrado", 404 + + # Si hay sesión, verificar que pertenece al usuario + if 'user_id' in session and site[0] != session['user_id']: + return "No autorizado", 403 + + content = json.loads(site[3]) if site[3] else {} + theme = site[2] + + # Cargar template del tema si existe + theme_template = None + theme_path = os.path.join(THEMES_DIR, theme, 'template.html') + if os.path.exists(theme_path): + with open(theme_path, 'r', encoding='utf-8') as f: + theme_template = f.read() + + return render_template('customizer.html', + site_id=site_id, + slug=site[1], + theme=theme, + content=content, + theme_template=theme_template) + +@app.route('/api/customizer/save', methods=['POST']) +def save_customizer(): + """Guardar cambios del customizer""" + data = request.get_json() + site_id = data.get('site_id') + content = data.get('content') + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('UPDATE sites SET content_json = ? WHERE id = ?', + (json.dumps(content), site_id)) + conn.commit() + conn.close() + + return jsonify({'success': True}) + +@app.route('/api/customizer/preview-frame/') +def preview_frame(site_id): + """Frame del preview - renderiza el template completo con estructura GKACHELE""" + # Obtener datos del sitio + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT theme, content_json, user_id FROM sites WHERE id = ?', (site_id,)) + site = c.fetchone() + conn.close() + + if not site: + return "Sitio no encontrado", 404 + + theme = site[0] + content = json.loads(site[1]) if site[1] else {} + user_id = site[2] + + # Usar función helper para renderizar con estructura GKACHELE + try: + rendered = render_gkachele_template(theme, content, site_id, user_id) + print(f"✅ Template renderizado correctamente para site_id={site_id}, theme={theme}") + return rendered + except Exception as e: + import traceback + print(f"❌ Error renderizando template: {e}") + traceback.print_exc() + # Fallback: cargar template directamente si existe + theme_path = os.path.join(THEMES_DIR, theme, 'template.html') + if os.path.exists(theme_path): + with open(theme_path, 'r', encoding='utf-8') as f: + template_str = f.read() + from jinja2 import Template + template = Template(template_str) + template_data = { + 'site_name': content.get('site_name', 'GKACHELE Site'), + 'hero_title': content.get('hero_title', 'Bienvenido'), + 'hero_description': content.get('hero_description', ''), + 'colors': content.get('colors', {'primary': '#d32f2f', 'secondary': '#ff6f00', 'text': '#2c2c2c'}), + 'typography': content.get('typography', {'font_family': 'Roboto'}), + **content + } + return template.render(**template_data) + + # Fallback final a preview simple + return f""" + + + Preview + +

+ {content.get('hero_title', 'Título')} +

+

+ {content.get('hero_description', 'Descripción')} +

+

+ © 2025 GKACHELE™. Todos los derechos reservados. +

+ + + """ + +# ============================================================================ +# SOLICITUDES +# ============================================================================ + +@app.route('/dashboard/submit/', methods=['POST']) +def submit_site(site_id): + """Cliente envía sitio para aprobación""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Cambiar status a pending + c.execute('UPDATE sites SET status = ? WHERE id = ?', ('pending', site_id)) + + # Crear solicitud + c.execute('INSERT INTO requests (site_id, user_id) VALUES (?, ?)', + (site_id, session['user_id'])) + + conn.commit() + conn.close() + + return jsonify({'success': True}) + +# ============================================================================ +# ADMIN +# ============================================================================ + +# ============================================================================ +# HELPER FUNCTIONS - Permisos basados en DB (sistema de roles GKACHELE™) +# ============================================================================ + +def user_has_role(user_id, required_role): + """Verificar si usuario tiene un rol específico (desde DB)""" + if not user_id: + return False + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT role FROM users WHERE id = ?', (user_id,)) + result = c.fetchone() + conn.close() + + if not result: + return False + + user_role = result[0] or 'subscriber' + + # Jerarquía de roles (sistema GKACHELE™) + role_hierarchy = { + 'administrator': 4, + 'editor': 3, + 'author': 2, + 'subscriber': 1 + } + + user_level = role_hierarchy.get(user_role, 1) + required_level = role_hierarchy.get(required_role, 1) + + return user_level >= required_level + +def user_can(user_id, capability): + """Verificar capacidad específica (desde DB)""" + if not user_id: + return False + + # Si es admin, puede todo + if user_has_role(user_id, 'administrator'): + return True + + # Otras capacidades se pueden añadir aquí + # Por ahora, solo admin puede hacer cosas administrativas + return False + +@app.route('/admin') +def admin(): + """Panel admin - Solo usuarios con rol 'administrator' (desde DB)""" + if 'user_id' not in session: + return "No autorizado", 403 + + # Verificar rol desde la base de datos (no hardcodeado) + if not user_has_role(session['user_id'], 'administrator'): + return "Solo administradores pueden acceder", 403 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Solicitudes pendientes + c.execute('''SELECT r.id, r.site_id, r.status, s.slug, u.email, r.created_at + FROM requests r + JOIN sites s ON r.site_id = s.id + JOIN users u ON r.user_id = u.id + WHERE r.status = 'pending' + ORDER BY r.created_at DESC''') + requests = [{'id': r[0], 'site_id': r[1], 'status': r[2], 'slug': r[3], + 'email': r[4], 'created_at': r[5]} for r in c.fetchall()] + + # Todos los sitios + c.execute('SELECT id, slug, theme, status, user_id FROM sites') + sites = [{'id': r[0], 'slug': r[1], 'theme': r[2], 'status': r[3], 'user_id': r[4]} + for r in c.fetchall()] + + # TODOS LOS USUARIOS con estadísticas + c.execute('''SELECT + u.id, + u.email, + u.plan, + u.rubro, + u.created_at, + COUNT(DISTINCT s.id) as num_sitios, + COUNT(DISTINCT CASE WHEN s.status = 'published' THEN s.id END) as sitios_publicados, + COUNT(DISTINCT r.id) as num_solicitudes + FROM users u + LEFT JOIN sites s ON u.id = s.user_id + LEFT JOIN requests r ON u.id = r.user_id + GROUP BY u.id + ORDER BY u.id DESC''') + + users = [] + for row in c.fetchall(): + users.append({ + 'id': row[0], + 'email': row[1], + 'plan': row[2], + 'rubro': row[3], + 'created_at': row[4], + 'num_sitios': row[5] or 0, + 'sitios_publicados': row[6] or 0, + 'num_solicitudes': row[7] or 0 + }) + + conn.close() + + return render_template('admin.html', requests=requests, sites=sites, users=users) + +@app.route('/admin/approve/', methods=['POST']) +def approve_site(request_id): + """Admin aprueba sitio - Verificar rol desde DB""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 403 + + if not user_has_role(session['user_id'], 'administrator'): + return jsonify({'error': 'Solo administradores'}), 403 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Obtener site_id + c.execute('SELECT site_id FROM requests WHERE id = ?', (request_id,)) + result = c.fetchone() + if not result: + conn.close() + return jsonify({'error': 'Solicitud no encontrada'}), 404 + + site_id = result[0] + + # Aprobar: cambiar status a approved y publicar + c.execute('UPDATE sites SET status = ? WHERE id = ?', ('published', site_id)) + c.execute('UPDATE requests SET status = ? WHERE id = ?', ('approved', request_id)) + + conn.commit() + conn.close() + + return jsonify({'success': True}) + +@app.route('/admin/users/delete/', methods=['POST']) +def delete_user(user_id): + """Eliminar usuario y todos sus datos relacionados - Verificar rol desde DB""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 403 + + # Verificar rol desde DB (no hardcodeado) + if not user_has_role(session['user_id'], 'administrator'): + return jsonify({'error': 'Solo administradores'}), 403 + + # No permitir eliminar al admin principal (user_id = 1) + if user_id == 1: + return jsonify({'error': 'No se puede eliminar al administrador principal'}), 400 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + try: + # Eliminar en orden (respetando foreign keys) + # 1. Widgets + c.execute('DELETE FROM widgets WHERE user_id = ?', (user_id,)) + # 2. Menús + c.execute('DELETE FROM menus WHERE user_id = ?', (user_id,)) + # 3. Media + c.execute('DELETE FROM media WHERE user_id = ?', (user_id,)) + # 4. Content + c.execute('DELETE FROM content WHERE user_id = ?', (user_id,)) + # 5. Settings + c.execute('DELETE FROM settings WHERE user_id = ?', (user_id,)) + # 6. Requests + c.execute('DELETE FROM requests WHERE user_id = ?', (user_id,)) + # 7. Sites + c.execute('DELETE FROM sites WHERE user_id = ?', (user_id,)) + # 8. Usuario + c.execute('DELETE FROM users WHERE id = ?', (user_id,)) + + conn.commit() + conn.close() + + return jsonify({'success': True, 'message': f'Usuario {user_id} eliminado exitosamente'}) + except Exception as e: + conn.rollback() + conn.close() + return jsonify({'error': f'Error al eliminar usuario: {str(e)}'}), 500 + +# ============================================================================ +# SITIO PÚBLICO +# ============================================================================ + +@app.route('/site/') +def public_site(slug): + """Sitio público del cliente - usando estructura GKACHELE""" + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT id, theme, content_json, status, user_id FROM sites WHERE slug = ?', (slug,)) + site = c.fetchone() + conn.close() + + if not site or site[3] != 'published': + return "Sitio no encontrado o no publicado", 404 + + site_id = site[0] + theme = site[1] + content = json.loads(site[2]) if site[2] else {} + user_id = site[4] + + # Renderizar con estructura GKACHELE + try: + return render_gkachele_template(theme, content, site_id, user_id) + except Exception as e: + import traceback + traceback.print_exc() + return render_template('public_site.html', content=content, theme=theme) + +# ============================================================================ +# MAIN +# ============================================================================ + +# ============================================================================ +# API ADMIN CLIENTE +# ============================================================================ + +@app.route('/api/admin/upload', methods=['POST']) +def upload_media(): + """Subir imágenes""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + user_id = session['user_id'] + files = request.files.getlist('files') + + if not files: + return jsonify({'error': 'No hay archivos'}), 400 + + uploaded = [] + for file in files: + if file.filename: + filename = f"{user_id}_{secrets.token_hex(8)}_{file.filename}" + filepath = os.path.join(UPLOADS_DIR, filename) + file.save(filepath) + + # Guardar en DB + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT id FROM sites WHERE user_id = ? LIMIT 1', (user_id,)) + site = c.fetchone() + site_id = site[0] if site else None + + c.execute('INSERT INTO media (user_id, site_id, filename, filepath, file_type) VALUES (?, ?, ?, ?, ?)', + (user_id, site_id, filename, filepath, 'image')) + conn.commit() + conn.close() + + uploaded.append(filename) + + return jsonify({'success': True, 'files': uploaded}) + +@app.route('/api/admin/media') +def get_media(): + """Obtener media del usuario""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + user_id = session['user_id'] + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT id, filename, filepath, uploaded_at FROM media WHERE user_id = ? ORDER BY uploaded_at DESC', (user_id,)) + media = [{'id': r[0], 'filename': r[1], 'filepath': r[2], 'uploaded_at': r[3]} for r in c.fetchall()] + conn.close() + + return jsonify({'success': True, 'media': media}) + +@app.route('/api/admin/media/', methods=['DELETE']) +def delete_media(media_id): + """Eliminar media""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + user_id = session['user_id'] + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Verificar que pertenece al usuario + c.execute('SELECT filepath FROM media WHERE id = ? AND user_id = ?', (media_id, user_id)) + media = c.fetchone() + + if media: + # Eliminar archivo + if os.path.exists(media[0]): + os.remove(media[0]) + + # Eliminar de DB + c.execute('DELETE FROM media WHERE id = ?', (media_id,)) + conn.commit() + + conn.close() + return jsonify({'success': True}) + +@app.route('/api/admin/settings', methods=['POST']) +def update_settings(): + """Actualizar configuración del usuario""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + data = request.get_json() + user_id = session['user_id'] + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + if data.get('password'): + c.execute('UPDATE users SET password = ? WHERE id = ?', + (generate_password_hash(data['password']), user_id)) + conn.commit() + + conn.close() + return jsonify({'success': True}) + +@app.route('/uploads/') +def serve_upload(filename): + """Servir archivos subidos""" + return send_from_directory(UPLOADS_DIR, filename) + +# ============================================================================ +# API MENÚS Y WIDGETS +# ============================================================================ + +@app.route('/api/menus/', methods=['GET']) +def get_menus(site_id): + """Obtener menús del sitio""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + user_id = session['user_id'] + menus = get_site_menus(site_id, user_id) + return jsonify({'success': True, 'menus': menus}) + +@app.route('/api/menus/', methods=['POST']) +def save_menu(site_id): + """Guardar/actualizar menú""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + data = request.get_json() + user_id = session['user_id'] + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Eliminar menús existentes del sitio + c.execute('DELETE FROM menus WHERE site_id = ? AND user_id = ?', (site_id, user_id)) + + # Insertar nuevos menús + for menu_item in data.get('menus', []): + c.execute('''INSERT INTO menus (user_id, site_id, location, title, url, order_index, parent_id) + VALUES (?, ?, ?, ?, ?, ?, ?)''', + (user_id, site_id, menu_item['location'], menu_item['title'], + menu_item['url'], menu_item.get('order', 0), menu_item.get('parent_id'))) + + conn.commit() + conn.close() + + return jsonify({'success': True}) + +@app.route('/api/widgets/', methods=['GET']) +def get_widgets(site_id): + """Obtener widgets del sitio""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + user_id = session['user_id'] + area = request.args.get('area', 'sidebar') + widgets = get_site_widgets(site_id, user_id, area) + return jsonify({'success': True, 'widgets': widgets}) + +@app.route('/api/widgets/', methods=['POST']) +def save_widget(site_id): + """Guardar/actualizar widget""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + data = request.get_json() + user_id = session['user_id'] + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + c.execute('''INSERT INTO widgets (user_id, site_id, area, type, title, content, order_index) + VALUES (?, ?, ?, ?, ?, ?, ?)''', + (user_id, site_id, data.get('area', 'sidebar'), data.get('type', 'text'), + data.get('title'), data.get('content'), data.get('order', 0))) + + conn.commit() + conn.close() + + return jsonify({'success': True}) + +# ============================================================================ +# MAIN +# ============================================================================ + +# Inicializar DB al importar (con manejo de errores) +try: + init_db() +except Exception as e: + print(f"⚠️ Error en init_db: {e}") + # Continuar aunque falle, se creará cuando se use + +if __name__ == '__main__': + port = int(os.environ.get('PORT', 5001)) + print("🚀 Demo SaaS iniciado") + print(f"📍 http://localhost:{port}") + app.run(debug=True, host='0.0.0.0', port=port) diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/customizer.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/customizer.html new file mode 100644 index 0000000..8d8b056 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/customizer.html @@ -0,0 +1,467 @@ + + + + + Personalizar - {{ site_name or 'Sitio' }} + + + + + +
+
+

Vista Previa

+
+ +
+
+
+
Cargando vista previa...
+ +
+
+ +
✅ Cambios guardados
+ + + + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/database/main.db b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/database/main.db new file mode 100644 index 0000000..fc3bcb0 Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/database/main.db differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/database/sites/cliente-2.db b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/database/sites/cliente-2.db new file mode 100644 index 0000000..0afb200 Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/database/sites/cliente-2.db differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/database/sites/cliente-3.db b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/database/sites/cliente-3.db new file mode 100644 index 0000000..0afb200 Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/database/sites/cliente-3.db differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/database/sites/cliente-4.db b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/database/sites/cliente-4.db new file mode 100644 index 0000000..0afb200 Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/database/sites/cliente-4.db differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/database/sites/cliente-5.db b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/database/sites/cliente-5.db new file mode 100644 index 0000000..0afb200 Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/database/sites/cliente-5.db differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/database/sites/cliente-6.db b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/database/sites/cliente-6.db new file mode 100644 index 0000000..0afb200 Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/database/sites/cliente-6.db differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/gkachele-saas.service b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/gkachele-saas.service new file mode 100644 index 0000000..dedfe49 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/gkachele-saas.service @@ -0,0 +1,15 @@ +[Unit] +Description=GKACHELE SaaS Flask App +After=network.target + +[Service] +Type=simple +User=pi +WorkingDirectory=/home/pi/gkachele-saas +Environment="PATH=/usr/bin:/usr/local/bin:/home/pi/.local/bin" +ExecStart=/usr/bin/python3 /home/pi/gkachele-saas/app.py +Restart=always +RestartSec=10 + +[Install] +WantedBy=multi-user.target diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/main.db b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/main.db new file mode 100644 index 0000000..fc3bcb0 Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/main.db differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/nginx.conf b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/nginx.conf new file mode 100644 index 0000000..e69de29 diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/register.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/register.html new file mode 100644 index 0000000..6c5534d --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/register.html @@ -0,0 +1,132 @@ + + + + + Registro - Demo + + + +
+

📝 Registrarse

+
+ + + + + +
+

+ ¿Ya tienes cuenta? Inicia sesión +

+
+ + + + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/static/style.css b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/static/style.css new file mode 100644 index 0000000..addf451 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/static/style.css @@ -0,0 +1,2409 @@ +/* GKACHELE™ - Diseño Premium Inspirado en Blow-dance */ + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --primary-orange: #FF6B35; + --dark-black: #1a1a1a; + --pure-white: #ffffff; + --light-gray: #f5f5f5; + --bg-light: #fafafa; + --card-bg: #ffffff; + --text-primary: #1a1a1a; + --text-secondary: #666; + --text-light: #888; + --border-light: rgba(0, 0, 0, 0.08); + --shadow-sm: 0 2px 10px rgba(0, 0, 0, 0.05); + --shadow-md: 0 5px 25px rgba(0, 0, 0, 0.1); + --shadow-lg: 0 10px 40px rgba(0, 0, 0, 0.15); + --shadow-orange: 0 5px 25px rgba(255, 107, 53, 0.2); + + /* Social Media Colors */ + --whatsapp: #25D366; + --whatsapp-hover: #20BA5A; + --facebook: #1877F2; + --facebook-hover: #0d65d9; + --instagram-start: #833AB4; + --instagram-mid: #E1306C; + --instagram-end: #FD1D1D; + --youtube: #FF0000; + --youtube-hover: #CC0000; + --tiktok: #000000; + --tiktok-hover: #00F2EA; +} + +body { + font-family: 'Inter', sans-serif; + background: #fafafa; + color: var(--text-primary); + line-height: 1.7; + overflow-x: hidden; + font-weight: 300; + position: relative; +} + +body::after { + content: '© GKACHELE 2025'; + position: fixed; + bottom: 20px; + left: 20px; + font-size: 0.7rem; + color: rgba(255, 255, 255, 0.03); + font-weight: bold; + z-index: -1; + pointer-events: none; + user-select: none; + transform: rotate(-45deg); + font-family: 'Arial', sans-serif; +} + +body::before { + content: ''; + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1920&h=1080&fit=crop&q=80'); + background-size: cover; + background-position: center; + background-attachment: fixed; + opacity: 0.4; + z-index: -1; + pointer-events: none; +} + +.gkachele-watermark { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip-path: inset(50%); + border: 0; + white-space: nowrap; +} + +.container-large { + max-width: 1400px; + margin: 0 auto; + padding: 0 60px; +} + +/* Navigation Sticky - Premium */ +.nav-sticky { + position: fixed; + top: 0; + left: 0; + right: 0; + background: rgba(255, 255, 255, 0.98); + backdrop-filter: blur(20px); + border-bottom: 1px solid var(--border-light); + z-index: 1000; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + padding: 25px 0; +} + +.nav-container { + max-width: 1600px; + margin: 0 auto; + padding: 0 80px; + display: flex; + justify-content: space-between; + align-items: center; +} + +.nav-logo a { + font-size: 1.4rem; + font-weight: 700; + color: var(--text-primary); + text-decoration: none; + letter-spacing: 1px; + transition: all 0.3s ease; +} + +.nav-logo a:hover { + opacity: 0.7; + transform: translateX(2px); +} + +.nav-menu { + display: flex; + gap: 60px; + align-items: center; + position: absolute; + left: 50%; + transform: translateX(-50%); +} + +.nav-menu a { + font-size: 0.95rem; + font-weight: 400; + color: var(--text-secondary); + text-decoration: none; + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + letter-spacing: 0.5px; + position: relative; +} + +.nav-menu a::after { + content: ''; + position: absolute; + bottom: -5px; + left: 0; + width: 0; + height: 1px; + background: var(--text-primary); + transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1); +} + +.nav-menu a:hover { + color: var(--primary-orange); +} + +.nav-menu a:hover::after { + width: 100%; + background: var(--primary-orange); +} + +.nav-social { + display: flex; + gap: 25px; + align-items: center; +} + +.nav-social a { + width: 40px; + height: 40px; + display: flex; + align-items: center; + justify-content: center; + color: var(--text-secondary); + text-decoration: none; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + border-radius: 50%; + background: transparent; + position: relative; + font-size: 1rem; + border-radius: 50%; +} + +.nav-social a:hover { + transform: translateY(-3px) scale(1.15); + box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15); +} + +/* Facebook - Celeste Premium */ +.nav-social a[title="Facebook"] { + color: var(--facebook); +} + +.nav-social a[title="Facebook"]:hover { + background: var(--facebook); + color: white; + box-shadow: 0 8px 25px rgba(24, 119, 242, 0.4); +} + +/* Instagram - Gradiente Icónico */ +.nav-social a[title="Instagram"] { + color: var(--instagram-mid); +} + +.nav-social a[title="Instagram"]:hover { + background: linear-gradient(135deg, var(--instagram-start) 0%, var(--instagram-mid) 50%, var(--instagram-end) 100%); + color: white; + box-shadow: 0 8px 25px rgba(225, 48, 108, 0.5); +} + +/* YouTube - Rojo Premium */ +.nav-social a[title="YouTube"] { + color: var(--youtube); +} + +.nav-social a[title="YouTube"]:hover { + background: var(--youtube); + color: white; + box-shadow: 0 8px 25px rgba(255, 0, 0, 0.4); +} + +/* TikTok - Negro con Efecto Cyan */ +.nav-social a[title="TikTok"] { + color: var(--tiktok); +} + +.nav-social a[title="TikTok"]:hover { + background: var(--tiktok); + color: var(--tiktok-hover); + box-shadow: 0 8px 25px rgba(0, 242, 234, 0.5); +} + +/* Hero Section - Premium con Imagen Difuminada */ +.hero-section { + margin-top: 100px; + padding: 180px 0 140px; + text-align: center; + background: linear-gradient(to bottom, #ffffff 0%, var(--bg-light) 100%); + position: relative; + overflow: hidden; +} + +.hero-bg-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1920&h=1080&fit=crop&q=80'); + background-size: cover; + background-position: center; + opacity: 0.2; + z-index: 0; +} + +.hero-content { + max-width: 900px; + margin: 0 auto; + position: relative; + z-index: 1; +} + +.hero-title { + font-size: 8.5rem; + font-weight: 300; + letter-spacing: -4px; + margin-bottom: 30px; + color: var(--text-primary); + line-height: 1; +} + +.hero-subtitle { + font-size: 1.8rem; + font-weight: 400; + color: var(--text-secondary); + letter-spacing: -0.5px; + margin-bottom: 40px; + background: linear-gradient(135deg, var(--text-secondary) 0%, var(--primary-orange) 100%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +.hero-description { + font-size: 1.25rem; + line-height: 1.9; + color: var(--text-light); + max-width: 700px; + margin: 0 auto; + font-weight: 300; +} + +/* Plans Section - Premium con Imagen Difuminada y Acordeón */ +.plans-section { + padding: 150px 0; + background: var(--bg-light); + position: relative; + overflow: hidden; +} + +.plans-bg-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1920&h=1080&fit=crop&q=80'); + background-size: cover; + background-position: center; + opacity: 0.18; + z-index: 0; +} + +.plans-section .container-large { + position: relative; + z-index: 1; +} + +.section-title { + font-size: 4rem; + font-weight: 300; + letter-spacing: -2.5px; + margin-bottom: 80px; + color: var(--text-primary); + text-align: center; +} + +/* Plans Accordion - Desplegable Premium */ +.plans-accordion { + max-width: 1000px; + margin: 0 auto; +} + +.plan-accordion-item { + background: var(--card-bg); + border-radius: 20px; + margin-bottom: 25px; + overflow: hidden; + transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: var(--shadow-sm); + border: 1px solid var(--border-light); + /* Asegurar que ningún plan empiece activo */ + opacity: 1; +} + +/* Transición suave al abrir/cerrar */ +.plan-accordion-item.active { + box-shadow: var(--shadow-lg), var(--shadow-orange); + border-color: rgba(255, 107, 53, 0.3); + transform: translateY(-5px); + background: linear-gradient(to bottom, #ffffff 0%, rgba(255, 107, 53, 0.02) 100%); + animation: planOpen 0.5s cubic-bezier(0.4, 0, 0.2, 1); +} + +@keyframes planOpen { + from { + transform: translateY(0); + box-shadow: var(--shadow-sm); + } + to { + transform: translateY(-5px); + box-shadow: var(--shadow-lg), var(--shadow-orange); + } +} + +/* Todos los planes iguales - sin estilos especiales para premium */ + +.plan-accordion-header { + width: 100%; + padding: 45px 50px; + background: linear-gradient(135deg, #fafafa 0%, #ffffff 100%); + border: none; + display: flex; + justify-content: space-between; + align-items: center; + cursor: pointer; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + text-align: left; + position: relative; +} + +.plan-accordion-item.active .plan-accordion-header { + background: linear-gradient(135deg, #ffffff 0%, rgba(255, 107, 53, 0.03) 100%); + padding-bottom: 40px; +} + +/* Indicador visual sutil cuando está activo */ +.plan-accordion-item.active .plan-accordion-header::before { + content: ''; + position: absolute; + left: 0; + top: 0; + bottom: 0; + width: 4px; + background: var(--primary-orange); + border-radius: 0 4px 4px 0; +} + +.plan-accordion-header:hover { + background: linear-gradient(135deg, #f5f5f5 0%, #ffffff 100%); +} + +.plan-accordion-item.active .plan-accordion-header:hover { + background: linear-gradient(135deg, rgba(255, 107, 53, 0.03) 0%, #ffffff 100%); +} + +.plan-header-content { + flex: 1; +} + +.plan-accordion-header h3 { + font-size: 2.5rem; + font-weight: 600; + letter-spacing: -1px; + margin-bottom: 12px; + color: var(--text-primary); +} + +.plan-accordion-header .plan-tagline { + font-size: 1.2rem; + color: var(--text-secondary); + font-weight: 300; +} + +.plan-chevron { + font-size: 1.2rem; + color: var(--text-secondary); + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + margin-left: 30px; + transform: rotate(0deg); +} + +.plan-accordion-item.active .plan-chevron { + color: var(--primary-orange); + transform: rotate(180deg); +} + +.plan-accordion-body { + max-height: 0; + overflow: hidden; + transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); +} + +.plan-card-body { + padding: 50px 40px; +} + +.plan-card-body h4 { + font-size: 1.5rem; + font-weight: 600; + margin: 35px 0 20px; + color: var(--text-primary); + letter-spacing: -0.3px; +} + +.plan-card-body h4:first-child { + margin-top: 0; +} + +.plan-card-body ul { + list-style: none; + padding: 0; + margin-bottom: 35px; +} + +.plan-card-body li { + padding: 12px 0; + font-size: 1.05rem; + color: var(--text-secondary); + line-height: 1.8; + font-weight: 300; + transition: all 0.3s ease; +} + +.plan-card-body li:hover { + color: var(--text-primary); + padding-left: 5px; +} + +.plan-ideal { + font-size: 1.05rem; + color: var(--text-secondary); + line-height: 1.8; + margin-bottom: 40px; + font-weight: 300; +} + +.plan-ideal strong { + color: var(--text-primary); + font-weight: 600; +} + +.qr-mini-card { + text-align: center; + margin: 50px 0; + padding: 40px 20px; + background: var(--bg-light); + border-radius: 15px; + border: 1px solid var(--border-light); +} + +.qr-mini-card img { + width: 150px; + height: 150px; + border-radius: 12px; + box-shadow: var(--shadow-md); + margin-bottom: 20px; + transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1); +} + +.qr-mini-card:hover img { + transform: scale(1.05); +} + +.qr-mini-card p { + font-size: 1rem; + color: var(--text-light); + font-weight: 300; +} + +.plan-btn { + display: block; + width: 100%; + padding: 22px 40px; + background: var(--primary-orange); + color: #ffffff; + text-decoration: none; + border: 2px solid rgba(255, 255, 255, 0.1); + border-radius: 50px; + font-weight: 600; + font-size: 1.1rem; + text-align: center; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: 0 5px 20px rgba(255, 107, 53, 0.3); + letter-spacing: 0.5px; + margin-top: 30px; +} + +.plan-btn:hover { + background: #FF5722; + border-color: rgba(255, 255, 255, 0.2); + transform: translateY(-3px); + box-shadow: 0 8px 30px rgba(255, 107, 53, 0.4); +} + +.premium-btn { + background: linear-gradient(135deg, var(--primary-orange) 0%, #FF5722 100%); + border: 2px solid rgba(255, 255, 255, 0.15); + box-shadow: 0 5px 25px rgba(255, 107, 53, 0.35); +} + +.premium-btn:hover { + background: linear-gradient(135deg, #FF5722 0%, #FF4500 100%); + border-color: rgba(255, 255, 255, 0.25); + box-shadow: 0 8px 35px rgba(255, 107, 53, 0.5); +} + +/* Demos Section */ +.demos-section { + position: relative; + padding: 5rem 0; + background: linear-gradient(135deg, #0a0a0a 0%, #1a1a1a 100%); + overflow: hidden; +} + +.demos-bg-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: radial-gradient(circle at 50% 50%, rgba(255, 107, 53, 0.05) 0%, transparent 70%); + pointer-events: none; +} + +.section-subtitle { + text-align: center; + color: #888; + font-size: 1.1rem; + margin-bottom: 3rem; +} + +/* Logo Showcase */ +.logo-showcase { + text-align: center; + margin-bottom: 4rem; + padding: 3rem; + background: rgba(255, 107, 53, 0.05); + border-radius: 20px; + border: 2px solid rgba(255, 107, 53, 0.2); +} + +.main-logo { + max-width: 300px; + height: auto; + margin-bottom: 1.5rem; + filter: drop-shadow(0 10px 30px rgba(255, 107, 53, 0.3)); + transition: transform 0.3s ease; +} + +.main-logo:hover { + transform: scale(1.05); +} + +.logo-text { + font-size: 1.3rem; + color: #ff6b35; + font-weight: 600; +} + +.demos-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); + gap: 2rem; + margin-bottom: 4rem; +} + +.demo-card { + background: rgba(30, 30, 30, 0.8); + border-radius: 15px; + overflow: hidden; + transition: all 0.3s ease; + border: 1px solid rgba(255, 107, 53, 0.1); +} + +.demo-card:hover { + transform: translateY(-10px); + border-color: #ff6b35; + box-shadow: 0 20px 40px rgba(255, 107, 53, 0.3); +} + +.demo-image { + position: relative; + width: 100%; + height: 250px; + overflow: hidden; +} + +.demo-image img { + width: 100%; + height: 100%; + object-fit: cover; + transition: transform 0.5s ease; +} + +.demo-card:hover .demo-image img { + transform: scale(1.1); +} + +.demo-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.7); + display: flex; + align-items: center; + justify-content: center; + opacity: 0; + transition: opacity 0.3s ease; +} + +.demo-card:hover .demo-overlay { + opacity: 1; +} + +.demo-btn { + background: #ff6b35; + color: white; + padding: 0.8rem 1.5rem; + border-radius: 8px; + text-decoration: none; + font-weight: 600; + display: flex; + align-items: center; + gap: 0.5rem; + transition: all 0.3s ease; +} + +.demo-btn:hover { + background: #ff8555; + transform: scale(1.05); +} + +.demo-info { + padding: 1.5rem; +} + +.demo-info h3 { + font-size: 1.5rem; + margin-bottom: 0.5rem; + color: #ff6b35; +} + +.demo-category { + font-size: 0.95rem; + color: #888; + margin-bottom: 0.5rem; +} + +.demo-plan { + font-size: 0.9rem; + margin-bottom: 1rem; +} + +.demo-plan .badge-premium, +.demo-plan .badge-pro, +.demo-plan .badge-base { + padding: 0.3rem 0.8rem; + border-radius: 20px; + font-size: 0.75rem; + font-weight: 600; + text-transform: uppercase; +} + +.demo-plan .badge-premium { + background: linear-gradient(135deg, #ff6b35, #ff8555); + color: white; +} + +.demo-plan .badge-pro { + background: linear-gradient(135deg, #3b82f6, #60a5fa); + color: white; +} + +.demo-plan .badge-base { + background: rgba(255, 255, 255, 0.1); + color: #888; +} + +.demo-description { + color: #ccc; + font-size: 0.95rem; + line-height: 1.6; +} + +/* Video Demo */ +.video-demo-section { + margin-top: 4rem; + text-align: center; +} + +.video-demo-section h3 { + font-size: 2rem; + margin-bottom: 2rem; + color: #ff6b35; +} + +.video-container { + max-width: 900px; + margin: 0 auto; + border-radius: 15px; + overflow: hidden; + background: rgba(30, 30, 30, 0.8); + border: 2px solid rgba(255, 107, 53, 0.2); +} + +.video-placeholder { + padding: 6rem 2rem; + display: flex; + flex-direction: column; + align-items: center; + gap: 1rem; +} + +.video-placeholder i { + font-size: 4rem; + color: #ff6b35; + opacity: 0.5; +} + +.video-placeholder p { + font-size: 1.2rem; + color: #888; +} + +.video-placeholder small { + font-size: 0.9rem; + color: #666; +} + +/* QR Section - Premium Card con Imagen Difuminada */ +.qr-section { + padding: 150px 0; + background: #ffffff; + position: relative; + overflow: hidden; +} + +.qr-bg-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1920&h=1080&fit=crop&q=80'); + background-size: cover; + background-position: center; + opacity: 0.15; + z-index: 0; +} + +.qr-section .container-large { + position: relative; + z-index: 1; +} + +.qr-card { + background: var(--card-bg); + padding: 80px 60px; + border-radius: 20px; + text-align: center; + box-shadow: var(--shadow-md); + border: 1px solid var(--border-light); + max-width: 600px; + margin: 0 auto; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); +} + +.qr-card:hover { + transform: translateY(-10px); + box-shadow: var(--shadow-lg), var(--shadow-orange); + border-color: rgba(255, 107, 53, 0.15); +} + +.qr-card h3 { + font-size: 2rem; + font-weight: 600; + margin-bottom: 40px; + color: var(--text-primary); + letter-spacing: -0.5px; +} + +.qr-image { + width: 250px; + height: 250px; + border-radius: 15px; + box-shadow: var(--shadow-md); + margin-bottom: 30px; + transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1); +} + +.qr-card:hover .qr-image { + transform: scale(1.05); +} + +.qr-card p { + font-size: 1.1rem; + color: var(--text-light); + font-weight: 300; +} + +/* Contact Section - Premium Cards con Imagen Difuminada */ +.contact-section { + padding: 150px 0; + background: var(--bg-light); + position: relative; + overflow: hidden; +} + +.contact-bg-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1920&h=1080&fit=crop&q=80'); + background-size: cover; + background-position: center; + opacity: 0.18; + z-index: 0; +} + +.contact-section .container-large { + position: relative; + z-index: 1; +} + +.contact-grid { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 60px; + margin-top: 80px; + max-width: 1200px; + margin-left: auto; + margin-right: auto; + justify-items: center; +} + +.contact-cards { + display: flex; + flex-direction: column; + gap: 25px; + width: 100%; + max-width: 400px; + align-items: stretch; +} + +.contact-card { + background: var(--card-bg); + padding: 30px 35px; + border-radius: 15px; + display: flex; + align-items: center; + gap: 25px; + color: var(--text-primary); + text-decoration: none; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: var(--shadow-sm); + border: 1px solid var(--border-light); +} + +.contact-card:hover { + transform: translateX(10px); + box-shadow: var(--shadow-md), var(--shadow-orange); + border-color: rgba(255, 107, 53, 0.2); +} + +.contact-card:hover i { + color: var(--primary-orange); +} + +.contact-card i { + font-size: 1.8rem; + color: var(--text-secondary); + min-width: 35px; + transition: all 0.3s ease; +} + +.contact-card:hover i { + color: var(--text-primary); + transform: scale(1.1); +} + +.contact-card .fa-whatsapp { + color: var(--whatsapp); +} + +.contact-card span { + font-size: 1.1rem; + color: var(--text-secondary); + font-weight: 400; + transition: color 0.3s ease; +} + +.contact-card:hover span { + color: var(--text-primary); +} + +.whatsapp-card:hover { + background: linear-gradient(135deg, rgba(37, 211, 102, 0.05) 0%, rgba(37, 211, 102, 0.1) 100%); +} + +.social-card { + background: var(--card-bg); + padding: 50px 40px; + border-radius: 15px; + box-shadow: var(--shadow-sm); + border: 1px solid var(--border-light); + text-align: center; + width: 100%; + max-width: 400px; +} + +.social-card h3 { + font-size: 1.8rem; + font-weight: 600; + margin-bottom: 40px; + color: var(--text-primary); + letter-spacing: -0.3px; +} + +.social-links-grid { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 20px; +} + +.social-link { + width: 100%; + height: 70px; + border-radius: 12px; + display: flex; + align-items: center; + justify-content: center; + background: var(--bg-light); + color: var(--text-secondary); + text-decoration: none; + font-size: 1.5rem; + position: relative; + overflow: hidden; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + border: 1px solid var(--border-light); +} + +.social-link:hover { + transform: translateY(-5px) scale(1.05); + color: #ffffff; +} + +/* Facebook - Celeste Premium en Contacto con Gradiente Translúcido */ +.social-link[title="Facebook"] .fa-facebook-f { + color: var(--facebook); + font-size: 2rem; + transition: all 0.4s ease; +} + +.social-link[title="Facebook"]:hover { + background: linear-gradient(135deg, rgba(24, 119, 242, 0.15) 0%, rgba(24, 119, 242, 0.25) 100%); + border-color: var(--facebook); + box-shadow: 0 10px 30px rgba(24, 119, 242, 0.4); +} + +.social-link[title="Facebook"]:hover .fa-facebook-f { + color: var(--facebook); + transform: scale(1.2); +} + +/* Instagram - Gradiente Premium en Contacto Translúcido */ +.social-link[title="Instagram"] .fa-instagram { + color: var(--instagram-mid); + font-size: 2rem; + transition: all 0.4s ease; +} + +.social-link[title="Instagram"]:hover { + background: linear-gradient(135deg, + rgba(131, 58, 180, 0.15) 0%, + rgba(225, 48, 108, 0.2) 50%, + rgba(253, 29, 29, 0.25) 100%); + border-color: var(--instagram-mid); + box-shadow: 0 10px 30px rgba(225, 48, 108, 0.5); +} + +.social-link[title="Instagram"]:hover .fa-instagram { + transform: scale(1.2); + background: linear-gradient(135deg, var(--instagram-start) 0%, var(--instagram-mid) 50%, var(--instagram-end) 100%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +/* YouTube - Rojo Premium en Contacto Translúcido */ +.social-link[title="YouTube"] .fa-youtube { + color: var(--youtube); + font-size: 2rem; + transition: all 0.4s ease; +} + +.social-link[title="YouTube"]:hover { + background: linear-gradient(135deg, rgba(255, 0, 0, 0.15) 0%, rgba(255, 0, 0, 0.25) 100%); + border-color: var(--youtube); + box-shadow: 0 10px 30px rgba(255, 0, 0, 0.4); +} + +.social-link[title="YouTube"]:hover .fa-youtube { + color: var(--youtube); + transform: scale(1.2); +} + +/* TikTok - Negro con Cyan en Contacto Translúcido */ +.social-link[title="TikTok"] .fa-tiktok { + color: var(--tiktok); + font-size: 2rem; + transition: all 0.4s ease; +} + +.social-link[title="TikTok"]:hover { + background: linear-gradient(135deg, rgba(0, 0, 0, 0.15) 0%, rgba(0, 242, 234, 0.2) 100%); + border-color: var(--tiktok-hover); + box-shadow: 0 10px 30px rgba(0, 242, 234, 0.5); +} + +.social-link[title="TikTok"]:hover .fa-tiktok { + color: var(--tiktok-hover); + transform: scale(1.2); +} + +/* WhatsApp Float Button */ +.whatsapp-float { + position: fixed; + bottom: 40px; + right: 40px; + width: 70px; + height: 70px; + background: var(--whatsapp); + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + color: #ffffff; + text-decoration: none; + box-shadow: 0 6px 30px rgba(37, 211, 102, 0.4); + z-index: 999; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + font-size: 2rem; + animation: pulse-float 2.5s infinite; +} + +.whatsapp-float:hover { + background: var(--whatsapp-hover); + transform: scale(1.15); + box-shadow: 0 8px 40px rgba(37, 211, 102, 0.5); +} + +@keyframes pulse-float { + 0%, 100% { + box-shadow: 0 6px 30px rgba(37, 211, 102, 0.4); + } + 50% { + box-shadow: 0 6px 40px rgba(37, 211, 102, 0.6); + } +} + +/* Footer - Premium con Imagen Difuminada */ +.footer-main { + padding: 150px 0 100px; + background: #1a1a1a; + color: #ffffff; + text-align: center; + position: relative; + overflow: hidden; +} + +.footer-bg-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1920&h=1080&fit=crop&q=80'); + background-size: cover; + background-position: center; + opacity: 0.25; + z-index: 0; +} + +.footer-main .container-large { + position: relative; + z-index: 1; +} + +.footer-main p { + font-size: 0.95rem; + color: rgba(255, 255, 255, 0.6); + font-weight: 300; + letter-spacing: 0.5px; +} + +/* Scroll to Top Button */ +.scroll-to-top { + position: fixed; + bottom: 120px; + right: 40px; + width: 60px; + height: 60px; + background: var(--text-primary); + color: #ffffff; + border: none; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + font-size: 1.3rem; + z-index: 998; + opacity: 0; + visibility: hidden; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2); +} + +.scroll-to-top.show { + opacity: 1; + visibility: visible; +} + +.scroll-to-top:hover { + background: #000000; + transform: translateY(-5px) scale(1.1); + box-shadow: 0 6px 30px rgba(0, 0, 0, 0.3); +} + +.scroll-to-top i { + transition: transform 0.3s ease; +} + +.scroll-to-top:hover i { + transform: translateY(-2px); +} + +/* Old Styles for Plan Pages */ +header { + background: #222; + color: white; + padding: 40px 20px; + text-align: center; + box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2); +} + +header h1 { + font-size: 3rem; + margin-bottom: 10px; +} + +.tagline { + font-size: 1.2rem; + opacity: 0.9; +} + +.plan-details { + background: #fff; + padding: 40px; + border-radius: 12px; + margin-bottom: 40px; +} + +.plan-details h2 { + font-size: 2rem; + color: #222; + margin-bottom: 30px; +} + +.plan-details h3 { + font-size: 1.5rem; + color: #222; + margin: 30px 0 15px; +} + +.plan-details ul { + list-style: none; + padding: 0; +} + +.plan-details li { + padding: 10px 0; + font-size: 1.1rem; + color: #666; +} + +.plan-details p { + font-size: 1.1rem; + color: #666; + line-height: 1.8; +} + +.plan-details a { + color: #0077B5; + text-decoration: none; +} + +.plan-details a:hover { + text-decoration: underline; +} + +.qr-mini { + text-align: center; + margin-top: 30px; +} + +.qr-mini img { + width: 100px; + height: 100px; + border-radius: 8px; +} + +.contacto { + text-align: center; + padding: 30px; + background: #fff; + border-radius: 10px; +} + +.contacto h3 { + color: #222; + margin-bottom: 20px; +} + +.contacto a { + color: #0077B5; + text-decoration: none; + font-weight: 600; +} + +.contacto a:hover { + text-decoration: underline; +} + +footer { + text-align: center; + padding: 30px; + color: #999; + background: #222; +} + +footer p { + font-size: 0.9rem; +} + +/* Responsive - Premium */ +@media (max-width: 1200px) { + .container-large { + padding: 0 40px; + } + + .plans-grid { + grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); + gap: 40px; + } + + .hero-title { + font-size: 6.5rem; + } +} + +/* Responsive Tablet/Desktop Intermedio */ +@media (max-width: 1000px) and (min-width: 769px) { + .nav-container { + padding: 0 40px; + } + + .nav-menu { + gap: 30px; + } + + .nav-social { + gap: 15px; + } +} + +/* Responsive Mobile - Vertical y Horizontal */ +@media (max-width: 768px) { + /* Asegurar que funcione en vertical y horizontal */ + html { + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; + } + + body { + overflow-x: hidden; + width: 100%; + position: relative; + } + + .container-large { + padding: 0 20px; + width: 100%; + max-width: 100%; + box-sizing: border-box; + } + + .nav-container { + padding: 15px 20px; + flex-direction: column; + gap: 15px; + width: 100%; + } + + .nav-menu { + position: static; + transform: none; + gap: 20px; + justify-content: center; + order: 2; + flex-wrap: wrap; + width: 100%; + } + + .nav-social { + order: 3; + gap: 15px; + justify-content: center; + width: 100%; + } + + .nav-logo { + order: 1; + text-align: center; + } + + .hero-section { + padding: 80px 20px; + min-height: auto; + } + + .hero-title { + font-size: 3.5rem; + letter-spacing: -1px; + line-height: 1.1; + } + + .hero-subtitle { + font-size: 1.2rem; + } + + .hero-description { + font-size: 1rem; + padding: 0 10px; + } + + .section-title { + font-size: 2.5rem; + margin-bottom: 40px; + text-align: center; + } + + .plans-section { + padding: 80px 0; + } + + .plan-accordion-item { + margin-bottom: 20px; + border-radius: 15px; + } + + .plan-accordion-header { + padding: 25px 20px; + flex-direction: row; + align-items: center; + gap: 15px; + position: relative; + } + + .plan-accordion-header h3 { + font-size: 1.8rem; + margin-bottom: 5px; + } + + .plan-accordion-header .plan-tagline { + font-size: 1rem; + } + + .plan-chevron { + position: absolute; + top: 25px; + right: 20px; + margin: 0; + font-size: 1rem; + } + + .plan-card-body { + padding: 30px 20px; + } + + .plan-card-body h4 { + font-size: 1.3rem; + } + + .plan-card-body ul { + font-size: 0.95rem; + } + + .contact-section { + padding: 80px 0; + } + + .contact-grid { + grid-template-columns: 1fr; + gap: 30px; + width: 100%; + justify-items: center; + } + + .contact-cards { + max-width: 100%; + align-items: stretch; + } + + .contact-card { + padding: 25px 20px; + width: 100%; + } + + .social-card { + padding: 40px 30px; + max-width: 100%; + } + + .social-links-grid { + grid-template-columns: repeat(2, 1fr); + gap: 15px; + } + + .social-link { + height: 60px; + font-size: 1.3rem; + } + + .whatsapp-float { + width: 55px; + height: 55px; + bottom: 20px; + right: 20px; + font-size: 1.5rem; + } + + .scroll-to-top { + width: 45px; + height: 45px; + bottom: 85px; + right: 20px; + font-size: 1rem; + } + + .qr-section { + padding: 80px 0; + } + + .qr-card { + padding: 50px 30px; + } + + .qr-image { + width: 200px; + height: 200px; + } + + .footer-main { + padding: 80px 0 60px; + } + + /* VERTICAL móvil - Reducir espacio del nav */ + @media (max-width: 768px) and (orientation: portrait) { + .nav-sticky { + padding: 10px 0; + } + + .nav-container { + padding: 8px 15px; + gap: 8px; + } + + .nav-logo a { + font-size: 1.1rem; + } + + .nav-menu { + gap: 15px; + } + + .nav-link { + font-size: 0.85rem; + } + + .nav-social { + gap: 10px; + } + + .nav-social a { + font-size: 0.9rem; + } + + .hero-section { + padding: 60px 20px 50px; + margin-top: 100px; + } + + .hero-title { + font-size: 2.8rem; + } + } + + /* Horizontal móvil - ARREGLAR SOBREPUESTO */ + @media (max-width: 900px) and (orientation: landscape) { + .nav-sticky { + padding: 8px 0 !important; + } + + .nav-container { + padding: 5px 15px !important; + gap: 8px !important; + flex-direction: column !important; + flex-wrap: wrap !important; + } + + .nav-logo { + order: 1 !important; + flex: 0 0 auto !important; + } + + .nav-logo a { + font-size: 0.9rem !important; + } + + .nav-menu { + order: 2 !important; + position: static !important; + transform: none !important; + gap: 12px !important; + flex-wrap: wrap !important; + justify-content: center !important; + width: 100% !important; + } + + .nav-menu a { + font-size: 0.75rem !important; + padding: 2px 5px !important; + } + + .nav-social { + order: 3 !important; + gap: 10px !important; + justify-content: center !important; + width: 100% !important; + } + + .nav-social a { + width: 28px !important; + height: 28px !important; + font-size: 0.75rem !important; + } + + .hero-section { + padding: 50px 20px 40px !important; + margin-top: 70px !important; + min-height: auto !important; + } + + .hero-title { + font-size: 2.5rem !important; + margin-bottom: 15px !important; + line-height: 1.1 !important; + } + + .hero-subtitle { + font-size: 1rem !important; + margin-bottom: 15px !important; + } + + .hero-description { + font-size: 0.9rem !important; + line-height: 1.5 !important; + } + + .section-title { + font-size: 2rem !important; + margin-bottom: 30px !important; + } + + .plans-section { + padding: 60px 0 !important; + } + + .plan-accordion-header { + padding: 15px 15px !important; + } + + .plan-accordion-header h3 { + font-size: 1.4rem !important; + } + + .plan-accordion-header .plan-tagline { + font-size: 0.85rem !important; + } + + .plan-card-body { + padding: 20px 15px !important; + } + + .contact-section { + padding: 60px 0 !important; + } + + .contact-grid { + grid-template-columns: 1fr !important; + gap: 20px !important; + margin-top: 40px !important; + } + + .contact-cards { + max-width: 100% !important; + } + + .contact-card { + padding: 18px 15px !important; + gap: 15px !important; + } + + .contact-card i { + font-size: 1.4rem !important; + min-width: 25px !important; + } + + .contact-card span { + font-size: 0.9rem !important; + } + + .social-card { + padding: 30px 20px !important; + } + + .social-card h3 { + font-size: 1.4rem !important; + margin-bottom: 25px !important; + } + + .social-links-grid { + gap: 12px !important; + } + + .social-link { + height: 55px !important; + font-size: 1.2rem !important; + } + + .whatsapp-float { + width: 50px !important; + height: 50px !important; + bottom: 15px !important; + right: 15px !important; + font-size: 1.3rem !important; + } + + .scroll-to-top { + width: 40px !important; + height: 40px !important; + bottom: 70px !important; + right: 15px !important; + font-size: 0.9rem !important; + } + + .demos-section { + padding: 60px 0 !important; + } + + .demos-grid { + grid-template-columns: 1fr !important; + gap: 20px !important; + } + + .demo-card { + margin-bottom: 15px !important; + } + + .demo-image { + height: 180px !important; + } + + .demo-info { + padding: 15px !important; + } + + .demo-info h3 { + font-size: 1.2rem !important; + } + + .qr-section { + padding: 60px 0 !important; + } + + .qr-card { + padding: 40px 25px !important; + } + + .qr-image { + width: 180px !important; + height: 180px !important; + } + + .footer-main { + padding: 60px 0 40px !important; + } + } +} + +/* Modal Form - Formulario de Pedido */ +.modal-form { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.7); + display: flex; + justify-content: center; + align-items: center; + z-index: 10000; + padding: 20px; + backdrop-filter: blur(5px); +} + +.modal-form-content { + background: var(--card-bg); + border-radius: 20px; + max-width: 600px; + width: 100%; + max-height: 90vh; + overflow-y: auto; + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); + animation: modalFadeIn 0.3s ease; +} + +@keyframes modalFadeIn { + from { + opacity: 0; + transform: translateY(-20px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.modal-form-header { + padding: 30px 40px; + border-bottom: 1px solid var(--border-light); + display: flex; + justify-content: space-between; + align-items: center; + background: linear-gradient(135deg, #fafafa 0%, #ffffff 100%); + border-radius: 20px 20px 0 0; +} + +.modal-form-header h2 { + font-size: 2rem; + font-weight: 600; + color: var(--text-primary); + margin: 0; +} + +.modal-form-header h2 span { + color: var(--primary-orange); +} + +.modal-close { + background: none; + border: none; + font-size: 2.5rem; + color: var(--text-secondary); + cursor: pointer; + padding: 0; + width: 40px; + height: 40px; + display: flex; + align-items: center; + justify-content: center; + border-radius: 50%; + transition: all 0.3s ease; +} + +.modal-close:hover { + background: var(--bg-light); + color: var(--text-primary); +} + +.modal-form form { + padding: 40px; +} + +.form-group { + margin-bottom: 30px; +} + +.form-group label { + display: block; + font-size: 1rem; + font-weight: 500; + color: var(--text-primary); + margin-bottom: 10px; +} + +.form-group input, +.form-group textarea { + width: 100%; + padding: 15px 20px; + border: 1px solid var(--border-light); + border-radius: 10px; + font-size: 1rem; + font-family: 'Inter', sans-serif; + background: var(--bg-light); + color: var(--text-primary); + transition: all 0.3s ease; + box-sizing: border-box; +} + +.form-group input:focus, +.form-group textarea:focus { + outline: none; + border-color: var(--primary-orange); + background: #ffffff; + box-shadow: 0 0 0 3px rgba(255, 107, 53, 0.1); +} + +.form-group textarea { + resize: vertical; + min-height: 120px; +} + +.form-group small { + display: block; + margin-top: 8px; + font-size: 0.85rem; + color: var(--text-light); +} + +.form-actions { + display: flex; + gap: 15px; + margin-top: 40px; + justify-content: flex-end; +} + +.btn-cancel, +.btn-preview, +.btn-submit { + padding: 15px 35px; + border: none; + border-radius: 10px; + font-size: 1rem; + font-weight: 500; + cursor: pointer; + transition: all 0.3s ease; + font-family: 'Inter', sans-serif; +} + +.btn-cancel { + background: var(--bg-light); + color: var(--text-secondary); +} + +.btn-cancel:hover { + background: #e5e5e5; + color: var(--text-primary); +} + +.btn-preview { + background: #3b82f6; + color: #ffffff; +} + +.btn-preview:hover { + background: #2563eb; + transform: translateY(-2px); + box-shadow: 0 5px 15px rgba(59, 130, 246, 0.3); +} + +.btn-preview:disabled { + background: #9ca3af; + cursor: not-allowed; + transform: none; +} + +.btn-submit { + background: var(--primary-orange); + color: #ffffff; +} + +.btn-submit:hover { + background: rgba(255, 107, 53, 0.9); + transform: translateY(-2px); + box-shadow: 0 5px 15px rgba(255, 107, 53, 0.3); +} + +/* Modal responsive dentro de media query móvil */ +@media (max-width: 768px) { + .modal-form { + padding: 10px; + } + + .modal-form-content { + max-height: 95vh; + border-radius: 15px; + } + + .modal-form-header { + padding: 20px 25px; + } + + .modal-form-header h2 { + font-size: 1.5rem; + } + + .modal-form form { + padding: 30px 25px; + } + + .form-actions { + flex-direction: column; + } + + .btn-cancel, + .btn-preview, + .btn-submit { + width: 100%; + } +} + +/* ============================================ + SISTEMA DE PREVIEWS - CARDS Y MODALES + ============================================ */ + +/* Grupo de botones en planes */ +.plan-buttons-group { + display: flex; + gap: 12px; + margin-top: 25px; + flex-wrap: wrap; + align-items: center; +} + +.plan-btn-preview { + background: white; + border: 2px solid #1877F2; + color: #1877F2; + padding: 12px 24px; + border-radius: 10px; + font-size: 0.95rem; + font-weight: 600; + cursor: pointer; + transition: all 0.4s ease; + display: flex; + align-items: center; + gap: 8px; + box-shadow: 0 4px 15px rgba(24, 119, 242, 0.2); + letter-spacing: 0.3px; +} + +.plan-btn-preview:hover { + background: #1877F2; + color: white; + transform: translateY(-3px) scale(1.05); + box-shadow: 0 8px 25px rgba(24, 119, 242, 0.4); +} + +.plan-btn-preview i { + font-size: 1rem; + transition: all 0.4s ease; +} + +.plan-btn-preview:hover i { + transform: scale(1.15); +} + +/* Modal de Previews */ +.previews-modal { + display: none; + position: fixed; + z-index: 10000; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.85); + backdrop-filter: blur(5px); + overflow-y: auto; + padding: 20px; +} + +.previews-modal-content { + background: white; + margin: 40px auto; + max-width: 1400px; + border-radius: 20px; + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); + overflow: hidden; + animation: modalSlideIn 0.3s ease; +} + +@keyframes modalSlideIn { + from { + opacity: 0; + transform: translateY(-30px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.previews-modal-header { + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + color: white; + padding: 25px 30px; + display: flex; + justify-content: space-between; + align-items: center; +} + +.previews-modal-header h2 { + margin: 0; + font-size: 1.8rem; + font-weight: 600; +} + +.previews-filters { + padding: 20px 30px; + background: #f8f9fa; + border-bottom: 1px solid #e0e0e0; +} + +.filter-group { + display: flex; + flex-direction: column; + gap: 8px; +} + +.filter-group label { + font-weight: 600; + color: #333; + font-size: 0.9rem; +} + +.filter-group select { + padding: 10px 15px; + border: 2px solid #ddd; + border-radius: 8px; + font-size: 1rem; + background: white; + cursor: pointer; + transition: border-color 0.3s, box-shadow 0.3s; + min-width: 250px; +} + +.filter-group select:hover { + border-color: #1877F2; +} + +.filter-group select:focus { + outline: none; + border-color: #1877F2; + box-shadow: 0 0 0 3px rgba(24, 119, 242, 0.1); +} + +/* Grid de Previews */ +.previews-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); + gap: 30px; + padding: 30px; +} + +/* Cards de Preview - Diseño Tipo Card */ +.template-card { + background: white; + border-radius: 16px; + overflow: hidden; + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15); + transition: transform 0.3s ease, box-shadow 0.3s ease; + cursor: pointer; + position: relative; +} + +.template-card:hover { + transform: translateY(-8px); + box-shadow: 0 8px 30px rgba(0, 0, 0, 0.25); +} + +.template-preview { + position: relative; + overflow: hidden; + background: #f5f5f5; + aspect-ratio: 16/9; +} + +.template-preview img { + width: 100%; + height: 100%; + object-fit: cover; + display: block; + transition: transform 0.3s ease; +} + +.template-card:hover .template-preview img { + transform: scale(1.05); +} + +.template-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: linear-gradient(to bottom, transparent 0%, rgba(0, 0, 0, 0.7) 100%); + opacity: 0; + transition: opacity 0.3s ease; + display: flex; + align-items: flex-end; + padding: 20px; +} + +.template-card:hover .template-overlay { + opacity: 1; +} + +.overlay-info { + color: white; + width: 100%; +} + +.overlay-info h4 { + margin: 0 0 5px 0; + font-size: 1.1rem; + font-weight: 600; +} + +.overlay-info p { + margin: 0; + font-size: 0.9rem; + opacity: 0.9; +} + +.template-info { + padding: 20px; +} + +.template-info h3 { + margin: 0 0 10px 0; + font-size: 1.2rem; + color: #333; + font-weight: 600; +} + +.template-meta { + display: flex; + gap: 10px; + flex-wrap: wrap; + margin-bottom: 15px; +} + +.badge-plan { + display: inline-block; + padding: 4px 12px; + border-radius: 12px; + font-size: 0.85rem; + font-weight: 600; + text-transform: uppercase; +} + +.badge-base { + background: #95a5a6; + color: white; +} + +.badge-pro { + background: #3498db; + color: white; +} + +.badge-premium { + background: #9b59b6; + color: white; +} + +.badge-vip { + background: #f39c12; + color: white; +} + +.badge-rubro { + background: #e0e0e0; + color: #333; + font-size: 0.8rem; +} + +.template-description { + color: #666; + font-size: 0.9rem; + line-height: 1.5; + margin: 0; +} + +/* Lightbox de Screenshot Grande */ +.screenshot-lightbox { + display: none; + position: fixed; + z-index: 10001; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.95); + backdrop-filter: blur(10px); + overflow-y: auto; + padding: 40px 20px; +} + +.lightbox-content { + max-width: 1200px; + margin: 0 auto; + position: relative; + background: white; + border-radius: 20px; + overflow: hidden; + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5); + animation: lightboxFadeIn 0.3s ease; +} + +@keyframes lightboxFadeIn { + from { + opacity: 0; + transform: scale(0.9); + } + to { + opacity: 1; + transform: scale(1); + } +} + +.lightbox-close { + position: absolute; + top: 20px; + right: 20px; + font-size: 2rem; + color: white; + cursor: pointer; + z-index: 10; + width: 40px; + height: 40px; + display: flex; + align-items: center; + justify-content: center; + background: rgba(0, 0, 0, 0.5); + border-radius: 50%; + transition: background 0.3s; +} + +.lightbox-close:hover { + background: rgba(0, 0, 0, 0.8); +} + +.lightbox-content img { + width: 100%; + height: auto; + display: block; +} + +.lightbox-info { + padding: 30px; + background: white; +} + +.lightbox-info h3 { + margin: 0 0 10px 0; + font-size: 1.5rem; + color: #333; +} + +.lightbox-info p { + margin: 0 0 20px 0; + color: #666; + font-size: 1rem; +} + +.btn-request-design { + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + color: white; + border: none; + padding: 15px 30px; + border-radius: 10px; + font-size: 1rem; + font-weight: 600; + cursor: pointer; + transition: transform 0.3s, box-shadow 0.3s; + display: flex; + align-items: center; + gap: 10px; +} + +.btn-request-design:hover { + transform: translateY(-2px); + box-shadow: 0 5px 20px rgba(102, 126, 234, 0.4); +} + +/* Responsive */ +@media (max-width: 768px) { + .plan-buttons-group { + flex-direction: column; + } + + .plan-btn-preview { + width: 100%; + justify-content: center; + } + + .previews-grid { + grid-template-columns: 1fr; + padding: 20px; + } + + .previews-modal-content { + margin: 20px; + border-radius: 15px; + } + + .previews-modal-header { + padding: 20px; + } + + .previews-modal-header h2 { + font-size: 1.4rem; + } + + .lightbox-content { + margin: 20px; + } +} \ No newline at end of file diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/templates/admin.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/templates/admin.html new file mode 100644 index 0000000..4bd1a0f --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/templates/admin.html @@ -0,0 +1,113 @@ + + + + + Admin - Demo + + + +
+

🔧 Panel Admin

+
+ +

Solicitudes Pendientes

+ + + + + + + + + {% for req in requests %} + + + + + + + + {% endfor %} + {% if not requests %} + + {% endif %} +
IDSlugEmail ClienteFechaAcción
{{ req.id }}{{ req.slug }}{{ req.email }}{{ req.created_at }} + +
No hay solicitudes pendientes
+ +

Todos los Sitios

+ + + + + + + + + {% for site in sites %} + + + + + + + + {% endfor %} +
IDSlugTemaStatusVer
{{ site.id }}{{ site.slug }}{{ site.theme }}{{ site.status }} + {% if site.status == 'published' %} + Ver + {% endif %} +
+ + + + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/templates/create_site.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/templates/create_site.html new file mode 100644 index 0000000..67d7b1e --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/templates/create_site.html @@ -0,0 +1,82 @@ + + + + + Crear Sitio - Demo + + + +
+

➕ Crear Nuevo Sitio

+
+ + + + + + +
+ ← Volver +
+ + + + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/templates/customizer.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/templates/customizer.html new file mode 100644 index 0000000..8d8b056 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/templates/customizer.html @@ -0,0 +1,467 @@ + + + + + Personalizar - {{ site_name or 'Sitio' }} + + + + + +
+
+

Vista Previa

+
+ +
+
+
+
Cargando vista previa...
+ +
+
+ +
✅ Cambios guardados
+ + + + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/templates/dashboard.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/templates/dashboard.html new file mode 100644 index 0000000..031189e --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/templates/dashboard.html @@ -0,0 +1,83 @@ + + + + + Dashboard - Demo + + + +
+

📊 Mi Dashboard

+ +
+ +
+ {% for site in sites %} +
+

{{ site.slug }}

+

Tema: {{ site.theme }}

+ {{ site.status }} +
+ ✏️ Editar + {% if site.status == 'draft' %} + 📤 Enviar + {% endif %} +
+
+ {% endfor %} + + {% if not sites %} +
+

No tienes sitios aún. Crear uno

+
+ {% endif %} +
+ + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/templates/landing.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/templates/landing.html new file mode 100644 index 0000000..594b57e --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/templates/landing.html @@ -0,0 +1,47 @@ + + + + + PageBuilder SaaS - Demo + + + +
+

🎨 PageBuilder SaaS

+

Crea tu sitio web en minutos

+ Registrarse + Iniciar Sesión + Admin +
+ + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/templates/landing_real.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/templates/landing_real.html new file mode 100644 index 0000000..ee88408 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/templates/landing_real.html @@ -0,0 +1,1442 @@ + + + + + + + + + + + + + + + + + + + + + + + + GKACHELE™ | Desarrollo Web Premium + + + + + + + + + +
+
+
+

GKACHELE™

+

Desarrollo Web Premium

+

Estamos listos para ayudarte a crear tu sitio moderno, rápido y personalizado.

+
+
+ + +
+
+
+

Nuestros Planes

+ + +
+ +
+ +
+
+

¿Qué incluye?

+
    +
  • ✅ Sitio web de una página
  • +
  • ✅ Diseño limpio y profesional
  • +
  • ✅ Información de contacto
  • +
  • ✅ Enlaces a redes sociales
  • +
  • ✅ Responsive (móvil y desktop)
  • +
  • ✅ Hosting gratuito
  • +
  • ✅ Dominio personalizado
  • +
+

Personalización

+
    +
  • 🎨 Color principal personalizado
  • +
  • ✍️ Tipografía a elección
  • +
  • 📝 Textos personalizados
  • +
+

Ideal para: Profesionales independientes, pequeños comercios, páginas institucionales básicas.

+
+ QR Base +

Comparte este plan

+
+
+ +
+
+
+
+ + +
+ +
+
+

¿Qué incluye?

+
    +
  • ✅ Sitio web multipágina
  • +
  • ✅ Animaciones suaves y efectos visuales
  • +
  • ✅ Galería de imágenes o portafolio
  • +
  • ✅ Formulario de contacto funcional
  • +
  • ✅ Responsive avanzado
  • +
  • ✅ Hosting gratuito
  • +
  • ✅ Dominio personalizado
  • +
+

Personalización

+
    +
  • 🎨 Paleta de colores personalizada
  • +
  • ✍️ Tipografía profesional
  • +
  • 🧩 Secciones a medida
  • +
+

Ideal para: Marcas personales, portfolios creativos, negocios que quieren destacar visualmente.

+
+ QR Pro +

Comparte este plan

+
+
+ +
+
+
+
+ + +
+ +
+
+

¿Qué incluye?

+
    +
  • ✅ Sitio web completo y escalable
  • +
  • ✅ Integración con redes sociales y herramientas externas
  • +
  • ✅ SEO optimizado
  • +
  • ✅ Panel de administración (opcional)
  • +
  • ✅ Hosting y dominio incluidos
  • +
  • ✅ Soporte técnico personalizado
  • +
+

Personalización

+
    +
  • 🎨 Diseño a medida
  • +
  • 📊 Integración con analítica
  • +
  • 🔒 Seguridad avanzada
  • +
+

Ideal para: Empresas, proyectos grandes, tiendas online, instituciones con necesidades específicas.

+
+ QR Premium +

Comparte este plan

+
+
+ +
+
+
+
+
+
+
+ + + + + + + + + + + +
+
+
+

Proyectos Demo

+

Ejemplos de sitios web que hemos creado

+ +
+ +
+
+
💃 Blow Dance
+ +
+
+

Blow Dance

+

💃 Escuela de Danza

+

Plan: Pro

+

Sitio web profesional para escuela de danza con galerías, videos y sistema de inscripción.

+
+
+ + +
+
+
🗳️ Dalmau
+ +
+
+

Dalmau Intendente

+

⚖️ Despacho Profesional

+

Plan: Base

+

Landing page profesional para despachos de abogados y contadores con información clara y llamados a la acción.

+
+
+ + +
+
+
💼 GKACHELE
+ +
+
+

GKACHELE™

+

💼 Portfolio Profesional

+

Plan: Premium

+

Sitio web premium con diseño moderno, animaciones y sistema de gestión avanzado.

+
+
+
+ + + +
+
+ + +
+
+
+
+

Comparte tu sitio

+ QR Code GKACHELE™ +

Escanea el código QR para compartir

+
+
+
+ + +
+
+ +
+ + + + + + + + + + +
+ +
+

© 2025 GKACHELE™. Todos los derechos reservados.

+ +

+ Código propiedad de GKACHELE © 2025 - Prohibida su reproducción sin autorización +

+
+
+ + + + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/templates/login.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/templates/login.html new file mode 100644 index 0000000..97ffa6b --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/templates/login.html @@ -0,0 +1,95 @@ + + + + + Login - Demo + + + +
+

🔐 Iniciar Sesión

+
+ + + +
+

+ ¿No tienes cuenta? Regístrate +

+
+ + + + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/templates/public_site.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/templates/public_site.html new file mode 100644 index 0000000..5705e22 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/templates/public_site.html @@ -0,0 +1,33 @@ + + + + + {{ content.site_name or 'Mi Sitio' }} + + + +
+

{{ content.hero_title or 'Título' }}

+

{{ content.hero_description or 'Descripción' }}

+
+ + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/templates/register.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/templates/register.html new file mode 100644 index 0000000..6c5534d --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/templates/register.html @@ -0,0 +1,132 @@ + + + + + Registro - Demo + + + +
+

📝 Registrarse

+
+ + + + + +
+

+ ¿Ya tienes cuenta? Inicia sesión +

+
+ + + + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/themes/_gkachele/footer.php b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/themes/_gkachele/footer.php new file mode 100644 index 0000000..97ab4fc --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/themes/_gkachele/footer.php @@ -0,0 +1,22 @@ +
+ +
+
+ {% if menus.footer %} + + {% endif %} +

+ © 2025 GKACHELE™. Todos los derechos reservados.
+ Desarrollado desde noviembre 2025 por GKACHELE
+ Código propiedad de GKACHELE © 2025 - Prohibida su reproducción sin autorización +

+
+
+ + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/themes/_gkachele/header.php b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/themes/_gkachele/header.php new file mode 100644 index 0000000..52440a7 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/themes/_gkachele/header.php @@ -0,0 +1,112 @@ + + + + + + + {% if site_name %}{{ site_name }}{% else %}GKACHELE Site{% endif %} + + + + + + +
+ +
+
diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/themes/_gkachele/sidebar.php b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/themes/_gkachele/sidebar.php new file mode 100644 index 0000000..a6adb25 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/themes/_gkachele/sidebar.php @@ -0,0 +1,33 @@ + + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/themes/gimnasio-claro/config.json b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/themes/gimnasio-claro/config.json new file mode 100644 index 0000000..b1cffcc --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/themes/gimnasio-claro/config.json @@ -0,0 +1,29 @@ +{ + "name": "Gimnasio Claro", + "rubro": "gimnasios", + "description": "Tema claro y moderno para gimnasios", + "sections": [ + "hero", + "planes_fitness", + "horarios", + "entrenadores", + "instalaciones", + "contacto" + ], + "colors": { + "primary": "#ff4d4d", + "secondary": "#1a1a1a", + "accent": "#ff6b6b" + }, + "typography": { + "font_family": "Roboto", + "headings": "Roboto" + }, + "features": { + "planes_fitness": true, + "horarios": true, + "entrenadores": true, + "instalaciones": true, + "precios": true + } +} diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/themes/restaurante-moderno/config.json b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/themes/restaurante-moderno/config.json new file mode 100644 index 0000000..59da350 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260114-122058/raspberry/themes/restaurante-moderno/config.json @@ -0,0 +1,29 @@ +{ + "name": "Restaurante Moderno", + "rubro": "restaurante", + "description": "Tema elegante para restaurantes", + "sections": [ + "hero", + "menu", + "horarios", + "reservas", + "especialidad_culinaria", + "contacto" + ], + "colors": { + "primary": "#d32f2f", + "secondary": "#ff6f00", + "accent": "#ff8f00" + }, + "typography": { + "font_family": "Roboto", + "headings": "Playfair Display" + }, + "features": { + "menu_url": true, + "horarios": true, + "reservas": true, + "capacidad": true, + "especialidad_culinaria": true + } +} diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/INFO.txt b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/INFO.txt new file mode 100644 index 0000000..aa41695 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/INFO.txt @@ -0,0 +1,39 @@ +GKACHELE™ - Backup Completo +Hash del Proyecto: gkachele-login-customizer-20250114-v3 +Hash del Backup: gkachele-login-customizer-20250114-v3-20260116-152515 +Fecha: Fri Jan 16 15:25:25 CET 2026 +========================================== + +ESTADO DEL SISTEMA (Hash: gkachele-login-customizer-20250114-v3): +- ✅ Login redirige correctamente a customizer +- ✅ Sistema modular de templates (_gkachele/) +- ✅ Menús dinámicos (header, footer, sidebar) +- ✅ Widgets dinámicos +- ✅ Base de datos multi-tenant (main.db) +- ✅ Sistema de roles basado en DB +- ✅ Dashboard cliente (/dashboard) +- ✅ Customizer (/customizer/{site_id}) +- ✅ Dashboard admin (/admin) +- ✅ Servicio systemd: gkachele-saas +- ✅ Nginx reverse proxy + +ESTRUCTURA DE RUTAS: +- /customizer/{site_id} - Editar antes de publicar (cliente) +- /admin - Panel del cliente (se crea al aprobar) +- /dashboard - Panel principal admin (gestión del sistema) + +ARCHIVOS INCLUIDOS: +- Código local (demo/) +- Código Raspberry (raspberry/) +- Base de datos (raspberry/main.db) +- Configuración systemd (raspberry/gkachele-saas.service) +- Configuración nginx (raspberry/nginx.conf) + +RESTAURACIÓN: +1. Copiar raspberry/* a /home/pi/gkachele-saas/ +2. Restaurar main.db a database/main.db +3. Restaurar gkachele-saas.service a /etc/systemd/system/ +4. Restaurar nginx.conf a /etc/nginx/sites-available/ +5. Reiniciar servicios: sudo systemctl restart gkachele-saas nginx + +© 2025 GKACHELE™. Todos los derechos reservados. diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/INSTALAR_CRON.md b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/INSTALAR_CRON.md new file mode 100644 index 0000000..3a99c97 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/INSTALAR_CRON.md @@ -0,0 +1,68 @@ +# 🔄 Instalar Cron para Actualizar Raspberry Automáticamente + +## En tu máquina local (Windows/WSL): + +### 1. Hacer ejecutable el script +```bash +chmod +x update-raspberry.sh +chmod +x cron-update-raspberry.sh +``` + +### 2. Instalar cron (si no está) +```bash +# En WSL +sudo apt-get install cron + +# Iniciar servicio +sudo service cron start +``` + +### 3. Agregar al crontab +```bash +# Editar crontab +crontab -e + +# Agregar esta línea (actualiza cada hora): +0 * * * * /ruta/completa/a/cron-update-raspberry.sh + +# O cada 5 minutos (para pruebas): +*/5 * * * * /ruta/completa/a/cron-update-raspberry.sh +``` + +### 4. Verificar +```bash +# Ver crontab +crontab -l + +# Ver logs +tail -f /tmp/raspberry-update.log +``` + +## En Raspberry Pi (alternativa): + +### Crear script en Raspberry +```bash +# En Raspberry +cd /home/pi +mkdir -p scripts +nano scripts/update-from-git.sh +``` + +### Contenido del script: +```bash +#!/bin/bash +cd /home/pi/gkachele-saas +# Aquí puedes hacer git pull si usas git, o scp desde tu máquina +sudo systemctl restart gkachele-saas +``` + +### Agregar a crontab en Raspberry: +```bash +crontab -e + +# Actualizar cada hora +0 * * * * /home/pi/scripts/update-from-git.sh +``` + +--- +**Nota:** Ajusta las rutas según tu configuración. diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/README.md b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/README.md new file mode 100644 index 0000000..5244b98 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/README.md @@ -0,0 +1,98 @@ +# WordPress con Docker Compose + +Ejemplo básico de WordPress usando Docker Compose con MySQL y phpMyAdmin. + +## 🚀 Inicio Rápido + +### Requisitos +- Docker instalado +- Docker Compose instalado + +### Instalación + +1. **Clonar o descargar este proyecto** + +2. **Iniciar los contenedores:** +```bash +docker-compose up -d +``` + +3. **Acceder a WordPress:** + - Abre tu navegador en: http://localhost:8080 + - Sigue el asistente de instalación de WordPress + +4. **Acceder a phpMyAdmin (opcional):** + - Abre tu navegador en: http://localhost:8081 + - Usuario: `root` + - Contraseña: `root_password` + +## 📝 Configuración + +### Cambiar puertos +Si los puertos 8080 o 8081 están ocupados, edita `docker-compose.yml`: +```yaml +ports: + - "TU_PUERTO:80" # Cambia TU_PUERTO por el que prefieras +``` + +### Cambiar credenciales +Edita las variables de entorno en `docker-compose.yml`: +- `MYSQL_PASSWORD`: Contraseña del usuario de WordPress +- `MYSQL_ROOT_PASSWORD`: Contraseña del root de MySQL +- `WORDPRESS_DB_PASSWORD`: Debe coincidir con `MYSQL_PASSWORD` + +## 🛠️ Comandos Útiles + +### Ver logs +```bash +docker-compose logs -f +``` + +### Detener contenedores +```bash +docker-compose down +``` + +### Detener y eliminar volúmenes (⚠️ borra los datos) +```bash +docker-compose down -v +``` + +### Reiniciar un servicio específico +```bash +docker-compose restart wordpress +``` + +### Ver contenedores en ejecución +```bash +docker-compose ps +``` + +## 📁 Estructura + +``` +. +├── docker-compose.yml # Configuración de servicios +├── wp-content/ # Temas y plugins personalizados (se crea automáticamente) +└── README.md # Este archivo +``` + +## 🔒 Seguridad + +⚠️ **IMPORTANTE**: Este es un ejemplo básico para desarrollo. Para producción: +- Cambia todas las contraseñas por defecto +- Usa variables de entorno seguras +- Configura SSL/TLS +- Implementa un firewall +- Usa secrets de Docker o un gestor de secretos + +## 🐳 Servicios Incluidos + +- **WordPress**: Aplicación principal (puerto 8080) +- **MySQL 8.0**: Base de datos (puerto interno) +- **phpMyAdmin**: Administrador de base de datos (puerto 8081) + +## 📚 Recursos + +- [Documentación de WordPress](https://wordpress.org/support/) +- [Documentación de Docker Compose](https://docs.docker.com/compose/) diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/backup_completo.sh b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/backup_completo.sh new file mode 100644 index 0000000..b17f1db --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/backup_completo.sh @@ -0,0 +1,105 @@ +#!/bin/bash +# GKACHELE™ - Script de Backup Completo +# © 2025 GKACHELE™. Todos los derechos reservados. +# Uso: bash backup_completo.sh + +HASH="gkachele-login-customizer-20250114-v3-$(date +%Y%m%d-%H%M%S)" +BACKUP_DIR="backups/backup-${HASH}" +RASPBERRY_HOST="192.168.1.134" +RASPBERRY_PORT="2222" +RASPBERRY_USER="pi" +RASPBERRY_PASS="Gdk1983gdk45@" +RASPBERRY_PATH="/home/pi/gkachele-saas" + +echo "==========================================" +echo "🔄 GKACHELE™ - BACKUP COMPLETO" +echo "==========================================" +echo "Hash del Proyecto: gkachele-login-customizer-20250114-v3" +echo "Hash del Backup: ${HASH}" +echo "Fecha: $(date)" +echo "" + +# Crear directorio de backup +mkdir -p "${BACKUP_DIR}" +mkdir -p "${BACKUP_DIR}/local" +mkdir -p "${BACKUP_DIR}/raspberry" + +echo "📦 1. Respaldando código local..." +cp -r demo "${BACKUP_DIR}/local/" 2>/dev/null || echo "⚠️ No se encontró demo/" +cp -r *.md "${BACKUP_DIR}/local/" 2>/dev/null || echo "⚠️ No se encontraron .md" +cp -r *.sh "${BACKUP_DIR}/local/" 2>/dev/null || echo "⚠️ No se encontraron .sh" +cp -r *.py "${BACKUP_DIR}/local/" 2>/dev/null || echo "⚠️ No se encontraron .py" + +echo "📦 2. Respaldando desde Raspberry..." +echo " Conectando a Raspberry..." + +# Backup de código +sshpass -p "${RASPBERRY_PASS}" scp -P ${RASPBERRY_PORT} -o StrictHostKeyChecking=no -r \ + ${RASPBERRY_USER}@${RASPBERRY_HOST}:${RASPBERRY_PATH}/* \ + "${BACKUP_DIR}/raspberry/" 2>/dev/null || echo "⚠️ Error copiando código" + +# Backup de base de datos +sshpass -p "${RASPBERRY_PASS}" scp -P ${RASPBERRY_PORT} -o StrictHostKeyChecking=no \ + ${RASPBERRY_USER}@${RASPBERRY_HOST}:${RASPBERRY_PATH}/database/main.db \ + "${BACKUP_DIR}/raspberry/main.db" 2>/dev/null || echo "⚠️ Error copiando DB" + +# Backup de configuración +sshpass -p "${RASPBERRY_PASS}" ssh -p ${RASPBERRY_PORT} -o StrictHostKeyChecking=no \ + ${RASPBERRY_USER}@${RASPBERRY_HOST} \ + "sudo cat /etc/systemd/system/gkachele-saas.service" > "${BACKUP_DIR}/raspberry/gkachele-saas.service" 2>/dev/null || echo "⚠️ Error copiando service" + +sshpass -p "${RASPBERRY_PASS}" ssh -p ${RASPBERRY_PORT} -o StrictHostKeyChecking=no \ + ${RASPBERRY_USER}@${RASPBERRY_HOST} \ + "sudo cat /etc/nginx/sites-available/gk-saas.komkida.duckdns.org.conf" > "${BACKUP_DIR}/raspberry/nginx.conf" 2>/dev/null || echo "⚠️ Error copiando nginx" + +echo "" +echo "📝 3. Creando archivo de información..." +cat > "${BACKUP_DIR}/INFO.txt" << EOF +GKACHELE™ - Backup Completo +Hash del Proyecto: gkachele-login-customizer-20250114-v3 +Hash del Backup: ${HASH} +Fecha: $(date) +========================================== + +ESTADO DEL SISTEMA (Hash: gkachele-login-customizer-20250114-v3): +- ✅ Login redirige correctamente a customizer +- ✅ Sistema modular de templates (_gkachele/) +- ✅ Menús dinámicos (header, footer, sidebar) +- ✅ Widgets dinámicos +- ✅ Base de datos multi-tenant (main.db) +- ✅ Sistema de roles basado en DB +- ✅ Dashboard cliente (/dashboard) +- ✅ Customizer (/customizer/{site_id}) +- ✅ Dashboard admin (/admin) +- ✅ Servicio systemd: gkachele-saas +- ✅ Nginx reverse proxy + +ESTRUCTURA DE RUTAS: +- /customizer/{site_id} - Editar antes de publicar (cliente) +- /admin - Panel del cliente (se crea al aprobar) +- /dashboard - Panel principal admin (gestión del sistema) + +ARCHIVOS INCLUIDOS: +- Código local (demo/) +- Código Raspberry (raspberry/) +- Base de datos (raspberry/main.db) +- Configuración systemd (raspberry/gkachele-saas.service) +- Configuración nginx (raspberry/nginx.conf) + +RESTAURACIÓN: +1. Copiar raspberry/* a /home/pi/gkachele-saas/ +2. Restaurar main.db a database/main.db +3. Restaurar gkachele-saas.service a /etc/systemd/system/ +4. Restaurar nginx.conf a /etc/nginx/sites-available/ +5. Reiniciar servicios: sudo systemctl restart gkachele-saas nginx + +© 2025 GKACHELE™. Todos los derechos reservados. +EOF + +echo "✅ Backup completado en: ${BACKUP_DIR}" +echo "" +echo "📊 Resumen:" +du -sh "${BACKUP_DIR}"/* 2>/dev/null | head -5 +echo "" +echo "🎯 Hash del backup: ${HASH}" +echo "==========================================" diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/check-logs.sh b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/check-logs.sh new file mode 100644 index 0000000..db25a88 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/check-logs.sh @@ -0,0 +1,2 @@ +#!/bin/bash +sshpass -p 'Gdk1983gdk45@' ssh -p 2222 -o StrictHostKeyChecking=no pi@192.168.1.134 'sudo journalctl -u gkachele-saas -n 50 --no-pager' diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/copiar_db_raspberry.sh b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/copiar_db_raspberry.sh new file mode 100644 index 0000000..2f4ce47 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/copiar_db_raspberry.sh @@ -0,0 +1,29 @@ +#!/bin/bash +# GKACHELE™ - Copiar DB desde Raspberry +# © 2025 GKACHELE™. Todos los derechos reservados. + +TIMESTAMP=$(date +%Y%m%d_%H%M%S) +RASPBERRY_HOST="192.168.1.134" +RASPBERRY_PORT="2222" +RASPBERRY_USER="pi" +RASPBERRY_PASS="Gdk1983gdk45@" +RASPBERRY_DB="/home/pi/gkachele-saas/database/main.db" +LOCAL_DB="/mnt/c/word/demo/database/main_raspberry_${TIMESTAMP}.db" + +echo "🔄 Copiando base de datos desde Raspberry..." +echo "" + +sshpass -p "${RASPBERRY_PASS}" scp -P ${RASPBERRY_PORT} -o StrictHostKeyChecking=no \ + ${RASPBERRY_USER}@${RASPBERRY_HOST}:${RASPBERRY_DB} \ + "${LOCAL_DB}" + +if [ $? -eq 0 ]; then + echo "✅ Base de datos copiada exitosamente" + echo "📍 Ubicación: ${LOCAL_DB}" + echo "" + echo "💡 Ahora puedes abrirla en DB Browser for SQLite:" + echo " ${LOCAL_DB}" +else + echo "❌ Error al copiar la base de datos" + exit 1 +fi diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/COMO_USAR.md b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/COMO_USAR.md new file mode 100644 index 0000000..cb4c94f --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/COMO_USAR.md @@ -0,0 +1,74 @@ +# 🎯 Cómo Usar el Demo + +## ⚠️ IMPORTANTE: Python en WSL + +Tu proyecto está en WSL, así que necesitas ejecutar desde ahí. + +## 🚀 Opción 1: Desde WSL (Recomendado) + +```bash +# En WSL +cd /mnt/c/word/demo +chmod +x start.sh +./start.sh +``` + +O directamente: +```bash +cd /mnt/c/word/demo +python3 app.py +``` + +## 🚀 Opción 2: Copiar a WSL + +```bash +# En WSL +cp -r /mnt/c/word/demo ~/demo-saas +cd ~/demo-saas +python3 app.py +``` + +## 📋 Pasos para Probar + +1. **Abrir navegador**: http://localhost:5001 + +2. **Registrarse**: + - Email: test@test.com + - Password: test123 + - Plan: Base + - Rubro: Gimnasio + +3. **Crear sitio**: + - Nombre: Mi Gimnasio + - Slug: mi-gimnasio + - Título: Bienvenido + - Descripción: Tu gimnasio de confianza + +4. **Personalizar** (Customizer): + - Cambia colores + - Cambia texto + - Preview se actualiza en tiempo real + - Guarda cambios + +5. **Enviar para aprobación** + +6. **Admin** (necesitas ser user_id = 1): + - Ve a `/admin` + - Aprueba el sitio + +7. **Ver publicado**: `/site/mi-gimnasio` + +## 🔧 Si el puerto 5001 no funciona + +Cambia en `app.py` línea 400: +```python +port = int(os.environ.get('PORT', 8000)) # Cambia 5001 por 8000 +``` + +## ✅ Verificar que funciona + +```bash +# En WSL +curl http://localhost:5001 +# Debe mostrar HTML de la landing +``` diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/EJECUTAR_AHORA.md b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/EJECUTAR_AHORA.md new file mode 100644 index 0000000..32b4bb7 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/EJECUTAR_AHORA.md @@ -0,0 +1,57 @@ +# ✅ DEMO FUNCIONANDO - EJECUTAR AHORA + +## 🚀 Comando Simple + +**Abre WSL y ejecuta:** + +```bash +cd /mnt/c/word/demo +python3 app.py +``` + +## 📍 Luego abre en tu navegador: + +``` +http://localhost:5001 +``` + +## ✅ Verificación + +El test ya pasó: +- ✅ App importada correctamente +- ✅ Flask funcionando +- ✅ Templates encontrados +- ✅ Base de datos inicializada + +## 🎯 Flujo de Prueba + +1. **Landing** → http://localhost:5001 +2. **Registrarse** → Click "Registrarse" + - Email: test@test.com + - Password: test123 +3. **Crear sitio** → Click "Crear Sitio" + - Nombre: Mi Gimnasio + - Slug: mi-gimnasio +4. **Customizer** → Se abre automáticamente + - Cambia colores, texto + - Preview se actualiza en tiempo real +5. **Enviar** → Click "Enviar para Aprobación" +6. **Admin** → http://localhost:5001/admin + - (Necesitas ser user_id = 1, el primer usuario registrado) +7. **Ver publicado** → http://localhost:5001/site/mi-gimnasio + +## 🔧 Si el puerto 5001 está ocupado + +Edita `app.py` línea 399: +```python +port = int(os.environ.get('PORT', 8000)) # Cambia a 8000 +``` + +## ✨ Características Funcionando + +- ✅ Multi-tenant (DB por cliente) +- ✅ Customizer (sidebar + preview) +- ✅ Actualización en tiempo real +- ✅ Sistema de solicitudes +- ✅ Admin panel +- ✅ Sitios públicos diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/INICIO_WINDOWS.md b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/INICIO_WINDOWS.md new file mode 100644 index 0000000..1701bd9 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/INICIO_WINDOWS.md @@ -0,0 +1,69 @@ +# 🚀 Iniciar Demo en Windows + +## Opción 1: Usar Python desde WSL + +Si tienes Python en WSL (que es donde tienes tu proyecto): + +```bash +# En WSL +cd ~/mi-landing/pagebuilder-saas-prod +# O copia la carpeta demo a WSL +cd /mnt/c/word/demo +python3 app.py +``` + +## Opción 2: Usar Python de Windows + +1. **Verificar Python instalado:** +```powershell +py --version +# o +python --version +``` + +2. **Instalar dependencias:** +```powershell +cd demo +py -m pip install Flask Werkzeug +``` + +3. **Ejecutar:** +```powershell +py app.py +``` + +## Opción 3: Usar el script start.bat + +Doble click en `start.bat` (instala dependencias y ejecuta) + +## 🔧 Si no funciona + +### Verificar puerto +```powershell +netstat -ano | findstr :5001 +``` + +### Cambiar puerto +Edita `app.py` línea 400, cambia: +```python +port = int(os.environ.get('PORT', 5001)) +``` +Por: +```python +port = int(os.environ.get('PORT', 8000)) +``` + +### Ver errores +Ejecuta directamente: +```powershell +cd demo +py app.py +``` + +Y verás los errores en la consola. + +## 📍 URLs + +- Landing: http://localhost:5001 +- Admin: http://localhost:5001/admin +- Dashboard: http://localhost:5001/dashboard (requiere login) diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/INSTRUCCIONES.md b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/INSTRUCCIONES.md new file mode 100644 index 0000000..43f87c5 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/INSTRUCCIONES.md @@ -0,0 +1,90 @@ +# 🚀 Demo Funcional - Instrucciones + +## ✅ Lo que tienes + +1. **Backend Flask completo** con: + - Multi-tenant (DB por cliente) + - Customizer (sidebar + preview) + - Sistema de solicitudes + - Admin panel + +2. **Flujo completo**: + - Registro → Dashboard → Crear sitio → Customizer → Enviar → Admin aprueba → Publicado + +## 🎯 Cómo probarlo + +### 1. Instalar dependencias +```bash +cd demo +pip install Flask Werkzeug +``` + +### 2. Ejecutar +```bash +python app.py +``` + +### 3. Abrir navegador +``` +http://localhost:5000 +``` + +## 📋 Pasos para probar + +1. **Registrarse** (`/register`) + - Email: test@test.com + - Password: test123 + - Plan: Base + - Rubro: Gimnasio + +2. **Crear sitio** (`/dashboard/create`) + - Nombre: Mi Gimnasio + - Slug: mi-gimnasio + - Título: Bienvenido + - Descripción: Tu gimnasio de confianza + +3. **Personalizar** (`/customizer/{site_id}`) + - Cambia colores, texto, tipografía + - Preview se actualiza en tiempo real + - Guarda cambios + +4. **Enviar para aprobación** + - Click en "Enviar para Aprobación" + - Status cambia a "pending" + +5. **Admin** (`/admin`) + - Registra otro usuario (será user_id = 2) + - O modifica la DB para que el primer usuario sea admin (user_id = 1) + - Ve solicitudes pendientes + - Aprueba sitio + +6. **Ver sitio publicado** (`/site/{slug}`) + - Una vez aprobado, el sitio está público + +## 🔧 Para hacer admin + +En `app.py` línea 200, cambia: +```python +if 'user_id' not in session or session['user_id'] != 1: +``` +Por: +```python +if 'user_id' not in session: +``` +Así cualquier usuario puede ser admin (solo para demo). + +## ✨ Características del Demo + +- ✅ Multi-tenant: Cada cliente tiene su DB +- ✅ Customizer: Sidebar izquierdo + Preview derecha +- ✅ Actualización en tiempo real +- ✅ Sistema de solicitudes +- ✅ Admin panel +- ✅ Sitios públicos + +## 🐛 Si no funciona + +1. Verifica que Flask esté instalado: `pip list | findstr Flask` +2. Verifica puerto 5000 libre: `netstat -ano | findstr :5000` +3. Revisa logs en consola +4. Asegúrate de estar en la carpeta `demo/` diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/LEEME_PRIMERO.txt b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/LEEME_PRIMERO.txt new file mode 100644 index 0000000..2e5536f --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/LEEME_PRIMERO.txt @@ -0,0 +1,47 @@ +═══════════════════════════════════════════════════════════ + ✅ DEMO FUNCIONANDO - VERSIÓN SIMPLE +═══════════════════════════════════════════════════════════ + +🚀 EJECUTAR: + +Desde WSL: + cd /mnt/c/word/demo + python3 app_simple.py + +Luego abre en navegador: + http://localhost:5001 + +═══════════════════════════════════════════════════════════ + +✨ CARACTERÍSTICAS: + +✅ Landing page +✅ Registro/Login +✅ Dashboard cliente +✅ Crear sitio +✅ Customizer (sidebar + preview en tiempo real) +✅ Enviar para aprobación +✅ Admin panel +✅ Sitios públicos + +═══════════════════════════════════════════════════════════ + +📋 FLUJO: + +1. Registrarse → /register +2. Crear sitio → /create +3. Personalizar → /customizer/{id} +4. Enviar → Click "Enviar" +5. Admin → /admin (aprobar) +6. Ver → /site/{slug} + +═══════════════════════════════════════════════════════════ + +🔧 SI NO FUNCIONA: + +1. Verifica Python: python3 --version +2. Instala Flask: pip3 install Flask Werkzeug +3. Cambia puerto en app_simple.py línea final: + port=8000 (en lugar de 5001) + +═══════════════════════════════════════════════════════════ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/README.md b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/README.md new file mode 100644 index 0000000..9679af6 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/README.md @@ -0,0 +1,38 @@ +# 🚀 Demo SaaS PageBuilder + +## Inicio Rápido + +```bash +cd demo +pip install -r requirements.txt +python app.py +``` + +Abre: http://localhost:5000 + +## Flujo Demo + +1. **Registrarse** → `/register` +2. **Crear sitio** → `/dashboard/create` +3. **Personalizar** → `/customizer/{site_id}` (sidebar + preview) +4. **Enviar** → Cliente envía para aprobación +5. **Admin** → `/admin` (aprobar sitios) +6. **Publicado** → `/site/{slug}` + +## Credenciales Admin + +- User ID: 1 (primer usuario registrado) +- Accede a `/admin` con user_id = 1 + +## Estructura + +``` +demo/ +├── app.py # Backend Flask +├── database/ # SQLite DBs +│ ├── main.db # DB principal +│ └── sites/ # DB por cliente +├── sites/ # Sitios compilados +├── themes/ # Templates +└── templates/ # HTML templates +``` diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/__pycache__/app.cpython-312.pyc b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/__pycache__/app.cpython-312.pyc new file mode 100644 index 0000000..81ad735 Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/__pycache__/app.cpython-312.pyc differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/__pycache__/app_simple.cpython-312.pyc b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/__pycache__/app_simple.cpython-312.pyc new file mode 100644 index 0000000..458dd46 Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/__pycache__/app_simple.cpython-312.pyc differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/app.py b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/app.py new file mode 100644 index 0000000..1e3d562 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/app.py @@ -0,0 +1,1700 @@ +""" +GKACHELE™ SaaS PageBuilder - Sistema Profesional +© 2025 GKACHELE™. Todos los derechos reservados. +Desarrollado desde noviembre 2025 por GKACHELE +Código propiedad de GKACHELE © 2025 - Prohibida su reproducción sin autorización +""" + +import os +import json +import sqlite3 +import secrets +from datetime import datetime +from flask import Flask, render_template, request, jsonify, session, redirect, url_for, send_from_directory +from werkzeug.security import generate_password_hash, check_password_hash + +app = Flask(__name__, template_folder='templates', static_folder='static') +app.secret_key = 'demo-secret-key-2025' +app.config['SESSION_COOKIE_SAMESITE'] = 'Lax' + +# Manejador de errores global - siempre devolver JSON +@app.errorhandler(500) +def handle_500(e): + print(f"❌ Error 500: {e}") + import traceback + traceback.print_exc() + # Asegurar que siempre devuelva JSON + response = jsonify({'success': False, 'error': 'Error interno del servidor'}) + response.status_code = 500 + return response + +@app.errorhandler(404) +def handle_404(e): + response = jsonify({'success': False, 'error': 'No encontrado'}) + response.status_code = 404 + return response + +@app.errorhandler(403) +def handle_403(e): + response = jsonify({'success': False, 'error': 'No autorizado'}) + response.status_code = 403 + return response + +# Manejador para excepciones no capturadas - FORZAR JSON +@app.errorhandler(Exception) +def handle_exception(e): + print(f"❌❌❌ EXCEPCIÓN NO CAPTURADA: {e}") + import traceback + traceback.print_exc() + # SIEMPRE devolver JSON, nunca HTML + response = jsonify({'success': False, 'error': f'Error: {str(e)}'}) + response.status_code = 500 + response.headers['Content-Type'] = 'application/json' + return response + +# Forzar JSON en TODAS las rutas /register, /login, /api/* +@app.before_request +def before_request(): + # Si es POST a /register o /login, forzar JSON + if request.method == 'POST' and (request.path.startswith('/register') or + request.path.startswith('/login') or + request.path.startswith('/api/')): + try: + request.get_json(force=True) + except: + pass + +@app.after_request +def add_header(response): + """Permitir iframes para el customizer""" + # Eliminar X-Frame-Options para permitir iframe + response.headers.pop('X-Frame-Options', None) + response.headers['Content-Security-Policy'] = "frame-ancestors *;" + return response + +from functools import wraps +def login_required(f): + @wraps(f) + def decorated_function(*args, **kwargs): + if 'user_id' not in session: + if request.is_json: + return jsonify({'success': False, 'error': 'No autorizado'}), 401 + return redirect(url_for('login')) + return f(*args, **kwargs) + return decorated_function + +# Directorios +BASE_DIR = os.path.dirname(__file__) +DATABASE_DIR = os.path.join(BASE_DIR, 'database') +SITES_DIR = os.path.join(BASE_DIR, 'sites') +THEMES_DIR = os.path.join(BASE_DIR, 'themes') +STATIC_DIR = os.path.join(BASE_DIR, 'static') +UPLOADS_DIR = os.path.join(BASE_DIR, 'uploads') + +# ============================================================================ +# SISTEMA DE TEMPLATES (Estilo WordPress) - GKACHELE™ +# ============================================================================ + +def scan_available_themes(): + """Escanear todos los templates disponibles y cargar sus configuraciones""" + themes = {} + if not os.path.exists(THEMES_DIR): + return themes + + for theme_dir in os.listdir(THEMES_DIR): + theme_path = os.path.join(THEMES_DIR, theme_dir) + if not os.path.isdir(theme_path) or theme_dir.startswith('_'): + continue # Ignorar archivos y carpetas que empiezan con _ + + config_path = os.path.join(theme_path, 'config.json') + template_path = os.path.join(theme_path, 'template.html') + + # Verificar que tenga config.json y template.html + if not os.path.exists(config_path) or not os.path.exists(template_path): + continue + + try: + with open(config_path, 'r', encoding='utf-8') as f: + config = json.load(f) + + themes[theme_dir] = { + 'id': theme_dir, + 'name': config.get('name', theme_dir), + 'description': config.get('description', ''), + 'rubro': config.get('rubro', 'general'), + 'sections': config.get('sections', []), + 'colors': config.get('colors', {}), + 'typography': config.get('typography', {}), + 'features': config.get('features', {}), + 'preview': f'/themes/{theme_dir}/preview.jpg' if os.path.exists(os.path.join(theme_path, 'preview.jpg')) else None + } + except Exception as e: + print(f"⚠️ Error cargando template {theme_dir}: {e}") + continue + + return themes + +def get_theme_config(theme_id): + """Obtener configuración de un template específico""" + config_path = os.path.join(THEMES_DIR, theme_id, 'config.json') + if not os.path.exists(config_path): + return None + + try: + with open(config_path, 'r', encoding='utf-8') as f: + return json.load(f) + except Exception as e: + print(f"⚠️ Error cargando config de {theme_id}: {e}") + return None + +def get_themes_by_rubro(rubro): + """Obtener templates filtrados por rubro""" + all_themes = scan_available_themes() + return {k: v for k, v in all_themes.items() if v.get('rubro') == rubro or v.get('rubro') == 'general'} + +# Crear directorios +# NOTA: Ya no se crean bases de datos separadas (cliente-X.db) +# TODO está en main.db (sistema multi-tenant) +for d in [DATABASE_DIR, SITES_DIR, THEMES_DIR, UPLOADS_DIR]: + os.makedirs(d, exist_ok=True) + +# DB principal +MAIN_DB = os.path.join(DATABASE_DIR, 'main.db') + +def init_db(): + """Inicializar base de datos principal - TODO EN UNA SOLA DB (sistema multi-tenant)""" + try: + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Usuarios (todos los clientes en una sola tabla) - Sistema GKACHELE™ + c.execute('''CREATE TABLE IF NOT EXISTS users ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + email TEXT UNIQUE NOT NULL, + password TEXT NOT NULL, + role TEXT DEFAULT 'subscriber', + plan TEXT DEFAULT 'base', + rubro TEXT DEFAULT 'gimnasio', + status TEXT DEFAULT 'active', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP + )''') + + # Añadir columna role si no existe (migración) + try: + c.execute('ALTER TABLE users ADD COLUMN role TEXT DEFAULT "subscriber"') + except: + pass # Columna ya existe + + # Añadir columna status si no existe (migración) + try: + c.execute('ALTER TABLE users ADD COLUMN status TEXT DEFAULT "active"') + except: + pass # Columna ya existe + + # Crear primer admin si no existe (user_id = 1) + c.execute('SELECT COUNT(*) FROM users WHERE id = 1') + if c.fetchone()[0] == 0: + from werkzeug.security import generate_password_hash + admin_password = generate_password_hash('admin123') # Cambiar después + c.execute('''INSERT INTO users (id, email, password, role, plan, rubro, status) + VALUES (1, 'admin@gkachele.com', ?, 'administrator', 'premium', 'admin', 'active')''', + (admin_password,)) + print("✅ Usuario administrador creado: admin@gkachele.com / admin123") + + # Sitios (todos los sitios, filtrados por user_id) + c.execute('''CREATE TABLE IF NOT EXISTS sites ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + slug TEXT UNIQUE NOT NULL, + theme TEXT DEFAULT 'default', + status TEXT DEFAULT 'draft', + content_json TEXT, + repo_url TEXT, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id) + )''') + + # Migración: Añadir repo_url si no existe + try: + c.execute('ALTER TABLE sites ADD COLUMN repo_url TEXT') + except: + pass # Ya existe + + # Solicitudes + c.execute('''CREATE TABLE IF NOT EXISTS requests ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + site_id INTEGER NOT NULL, + user_id INTEGER NOT NULL, + status TEXT DEFAULT 'pending', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (site_id) REFERENCES sites(id), + FOREIGN KEY (user_id) REFERENCES users(id) + )''') + + # Media (fotos, imágenes del cliente) + c.execute('''CREATE TABLE IF NOT EXISTS media ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER NOT NULL, + filename TEXT NOT NULL, + filepath TEXT NOT NULL, + file_type TEXT DEFAULT 'image', + uploaded_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id) + )''') + + # Content (contenido por sección, filtrado por user_id y site_id) + c.execute('''CREATE TABLE IF NOT EXISTS content ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER NOT NULL, + section TEXT NOT NULL, + data_json TEXT, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id) + )''') + + # Settings (configuraciones por usuario/sitio) + c.execute('''CREATE TABLE IF NOT EXISTS settings ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER, + key TEXT NOT NULL, + value TEXT, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id), + UNIQUE(user_id, site_id, key) + )''') + + # Menus (sistema de menús dinámicos) + c.execute('''CREATE TABLE IF NOT EXISTS menus ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER NOT NULL, + location TEXT NOT NULL, + title TEXT NOT NULL, + url TEXT NOT NULL, + order_index INTEGER DEFAULT 0, + parent_id INTEGER, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id), + FOREIGN KEY (parent_id) REFERENCES menus(id) + )''') + + # Widgets (áreas de widgets dinámicos) + c.execute('''CREATE TABLE IF NOT EXISTS widgets ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER NOT NULL, + area TEXT NOT NULL, + type TEXT NOT NULL, + title TEXT, + content TEXT, + order_index INTEGER DEFAULT 0, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id) + )''') + + conn.commit() + conn.close() + print("✅ Base de datos inicializada (multi-tenant - todos los clientes en main.db)") + except Exception as e: + print(f"❌ Error inicializando DB: {e}") + import traceback + traceback.print_exc() + +init_db() + +# ============================================================================ +# FUNCIONES HELPER - GKACHELE™ Template System +# ============================================================================ + +def get_site_menus(site_id, user_id): + """Obtener menús del sitio organizados por ubicación""" + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('''SELECT location, title, url, order_index, parent_id + FROM menus + WHERE site_id = ? AND user_id = ? + ORDER BY location, order_index''', (site_id, user_id)) + rows = c.fetchall() + conn.close() + + menus = {'header': [], 'footer': [], 'sidebar': []} + for row in rows: + location, title, url, order_index, parent_id = row + menu_item = { + 'title': title, + 'url': url, + 'order': order_index, + 'parent_id': parent_id + } + if location in menus: + menus[location].append(menu_item) + + return menus + +def get_site_widgets(site_id, user_id, area='sidebar'): + """Obtener widgets del sitio por área""" + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('''SELECT type, title, content, order_index + FROM widgets + WHERE site_id = ? AND user_id = ? AND area = ? + ORDER BY order_index''', (site_id, user_id, area)) + rows = c.fetchall() + conn.close() + + widgets = [] + for row in rows: + widget_type, title, content, order_index = row + widgets.append({ + 'type': widget_type, + 'title': title, + 'content': content, + 'order': order_index + }) + + return widgets + +def render_gkachele_template(theme, content, site_id=None, user_id=None): + """Renderizar template usando estructura GKACHELE (header.php, footer.php, sidebar.php)""" + # Obtener menús y widgets si hay site_id + menus = {'header': [], 'footer': [], 'sidebar': []} + widgets = [] + if site_id and user_id: + try: + menus = get_site_menus(site_id, user_id) + widgets = get_site_widgets(site_id, user_id) + except Exception as e: + print(f"⚠️ Error obteniendo menús/widgets: {e}") + + # Cargar template del tema PRIMERO (es el contenido principal) + theme_template = '' + theme_path = os.path.join(THEMES_DIR, theme, 'template.html') + if os.path.exists(theme_path): + with open(theme_path, 'r', encoding='utf-8') as f: + theme_template = f.read() + else: + # Si no existe template del tema, usar template básico + theme_template = ''' +
+

{{ hero_title or 'Bienvenido' }}

+

{{ hero_description or 'Descripción del sitio' }}

+
+ ''' + + # Cargar header, footer, sidebar + header = '' + footer = '' + sidebar = '' + + header_path = os.path.join(THEMES_DIR, '_gkachele', 'header.php') + footer_path = os.path.join(THEMES_DIR, '_gkachele', 'footer.php') + sidebar_path = os.path.join(THEMES_DIR, '_gkachele', 'sidebar.php') + + if os.path.exists(header_path): + with open(header_path, 'r', encoding='utf-8') as f: + header = f.read() + else: + # Header básico si no existe + header = ''' + + + + + {{ site_name or 'GKACHELE Site' }} + + + +
+ +
+
''' + + if os.path.exists(footer_path): + with open(footer_path, 'r', encoding='utf-8') as f: + footer = f.read() + else: + footer = ''' +
+
+

© 2025 GKACHELE™. Todos los derechos reservados.
+ Desarrollado desde noviembre 2025 por GKACHELE
+ Código propiedad de GKACHELE © 2025 - Prohibida su reproducción sin autorización

+
+ +''' + + if os.path.exists(sidebar_path): + with open(sidebar_path, 'r', encoding='utf-8') as f: + sidebar = f.read() + + # Preparar contexto completo - Asegurar que todas las variables esperadas existan + template_data = { + 'site_name': content.get('site_name', 'GKACHELE Site'), + 'hero_title': content.get('hero_title', 'Bienvenido'), + 'hero_description': content.get('hero_description', ''), + 'colors': content.get('colors', {'primary': '#c94d4d', 'secondary': '#d97757', 'accent': '#f4a261', 'text': '#2c2c2c'}), + 'typography': content.get('typography', {'font_family': 'Roboto'}), + 'horarios': content.get('horarios', {}), # Asegurar que horarios siempre existe + 'redes_sociales': content.get('redes_sociales', {}), # Asegurar que redes_sociales siempre existe + 'especialidad_culinaria': content.get('especialidad_culinaria', {}), # Asegurar que especialidad_culinaria siempre existe + 'direccion': content.get('direccion', ''), + 'telefono': content.get('telefono', ''), + 'email': content.get('email', ''), + 'capacidad': content.get('capacidad', ''), + 'mapa_url': content.get('mapa_url', ''), + 'menu_url': content.get('menu_url', ''), + 'menu_items': content.get('menu_items', {}), # Platos del menú + 'blocks': content.get('blocks', []), # Bloques añadibles + 'menus': menus, + 'widgets': widgets, + **content # Incluir todo el contenido adicional (esto sobrescribirá los valores por defecto si existen) + } + + # Renderizar usando Jinja2 + from jinja2 import Template + + # DETECCIÓN DE TEMPLATE COMPLETO (Full Page) + # Forzar restaurante-moderno a ser siempre full page + is_full_page = False + + if theme == 'restaurante-moderno': + is_full_page = True + elif '' in theme_template or '') +def get_theme(theme_id): + """Obtener información detallada de un template""" + config = get_theme_config(theme_id) + if not config: + return jsonify({'success': False, 'error': 'Template no encontrado'}), 404 + + return jsonify({ + 'success': True, + 'theme': { + 'id': theme_id, + **config + } + }) + +@app.route('/customizer/') +def customizer(site_id): + """Customizer: Sidebar + Preview""" + # Verificar que el sitio existe + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT user_id, slug, theme, content_json FROM sites WHERE id = ?', (site_id,)) + site = c.fetchone() + conn.close() + + if not site: + return "Sitio no encontrado", 404 + + # Si hay sesión, verificar que pertenece al usuario + if 'user_id' in session and site[0] != session['user_id']: + return "No autorizado", 403 + + content = json.loads(site[3]) if site[3] else {} + theme = site[2] + + # Cargar template del tema si existe + theme_template = None + theme_path = os.path.join(THEMES_DIR, theme, 'template.html') + if os.path.exists(theme_path): + with open(theme_path, 'r', encoding='utf-8') as f: + theme_template = f.read() + + # Cargar configuración del template + theme_config = get_theme_config(theme) + if theme_config: + # Si el contenido no tiene colores, usar los del template + if not content.get('colors'): + content['colors'] = theme_config.get('colors', {}) + # Si no tiene tipografía, usar la del template + if not content.get('typography'): + content['typography'] = theme_config.get('typography', {}) + + # Obtener todos los templates disponibles para el selector + available_themes = scan_available_themes() + + return render_template('customizer.html', + site_id=site_id, + slug=site[1], + theme=theme, + content=content, + theme_template=theme_template, + theme_config=theme_config, + available_themes=available_themes) + +@app.route('/api/customizer/save', methods=['POST']) +def save_customizer(): + """Guardar cambios del customizer""" + data = request.get_json() + site_id = data.get('site_id') + content = data.get('content') + new_theme = data.get('theme') # Permitir cambiar template + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Si se cambió el template, actualizarlo + if new_theme: + # Verificar que el template existe + theme_config = get_theme_config(new_theme) + if theme_config: + c.execute('UPDATE sites SET theme = ? WHERE id = ?', (new_theme, site_id)) + # Aplicar colores y tipografía por defecto del nuevo template si no existen + if not content.get('colors'): + content['colors'] = theme_config.get('colors', {}) + if not content.get('typography'): + content['typography'] = theme_config.get('typography', {}) + + c.execute('UPDATE sites SET content_json = ? WHERE id = ?', + (json.dumps(content), site_id)) + conn.commit() + conn.close() + + return jsonify({'success': True}) + +@app.route('/api/customizer/update-field', methods=['POST']) +def update_field(): + """Actualizar un campo específico desde preview (click to edit)""" + data = request.get_json() + site_id = data.get('site_id') + field = data.get('field') # Ej: 'hero_title', 'horarios.lunes_viernes' + value = data.get('value') + + if not site_id or not field: + return jsonify({'success': False, 'error': 'Faltan parámetros'}), 400 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Obtener contenido actual + c.execute('SELECT content_json FROM sites WHERE id = ?', (site_id,)) + result = c.fetchone() + if not result: + conn.close() + return jsonify({'success': False, 'error': 'Sitio no encontrado'}), 404 + + content = json.loads(result[0]) if result[0] else {} + + # Actualizar campo (soporta campos anidados como 'horarios.lunes_viernes' o 'menu_items.1.nombre') + if '.' in field: + # Campo anidado: 'horarios.lunes_viernes' o 'menu_items.1.nombre' + parts = field.split('.') + current = content + for i, part in enumerate(parts[:-1]): + if part not in current: + current[part] = {} + # Si es un número, mantener como string key (para menu_items.1, menu_items.2, etc.) + current = current[part] + current[parts[-1]] = value + else: + # Campo simple: 'hero_title' + content[field] = value + + # Guardar + c.execute('UPDATE sites SET content_json = ? WHERE id = ?', + (json.dumps(content), site_id)) + conn.commit() + conn.close() + + return jsonify({'success': True, 'content': content}) + +@app.route('/api/customizer/get-blocks/') +def get_blocks(site_id): + """Obtener bloques del sitio para el customizer""" + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT content_json FROM sites WHERE id = ?', (site_id,)) + result = c.fetchone() + conn.close() + + if not result: + return jsonify({'success': False, 'blocks': []}) + + content = json.loads(result[0]) if result[0] else {} + blocks = content.get('blocks', []) + return jsonify({'success': True, 'blocks': blocks}) + + +@app.route('/api/customizer/get-content/') +def get_content(site_id): + """Obtener contenido completo del sitio""" + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT content_json FROM sites WHERE id = ?', (site_id,)) + result = c.fetchone() + conn.close() + + if not result: + return jsonify({'success': False, 'error': 'Sitio no encontrado'}), 404 + + content = json.loads(result[0]) if result[0] else {} + return jsonify({'success': True, 'content': content}) + +@app.route('/api/customizer/add-block', methods=['POST']) +def add_block(): + """Añadir un nuevo bloque al sitio""" + data = request.get_json() + site_id = data.get('site_id') + block_type = data.get('block_type') + block_content = data.get('content', {}) + + if not site_id or not block_type: + return jsonify({'success': False, 'error': 'Faltan parámetros'}), 400 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT content_json FROM sites WHERE id = ?', (site_id,)) + result = c.fetchone() + + if not result: + conn.close() + return jsonify({'success': False, 'error': 'Sitio no encontrado'}), 404 + + content = json.loads(result[0]) if result[0] else {} + + # Inicializar blocks si no existe + if 'blocks' not in content: + content['blocks'] = [] + + # Crear nuevo bloque + new_block = { + 'id': f'block_{int(time.time() * 1000)}', + 'type': block_type, + 'content': block_content, + 'order': len(content['blocks']) + } + + content['blocks'].append(new_block) + + # Guardar + c.execute('UPDATE sites SET content_json = ? WHERE id = ?', (json.dumps(content), site_id)) + conn.commit() + conn.close() + + return jsonify({'success': True, 'block': new_block}) + +@app.route('/api/customizer/remove-block', methods=['POST']) +def remove_block(): + """Eliminar un bloque del sitio""" + data = request.get_json() + site_id = data.get('site_id') + block_id = data.get('block_id') + + if not site_id or not block_id: + return jsonify({'success': False, 'error': 'Faltan parámetros'}), 400 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT content_json FROM sites WHERE id = ?', (site_id,)) + result = c.fetchone() + + if not result: + conn.close() + return jsonify({'success': False, 'error': 'Sitio no encontrado'}), 404 + + content = json.loads(result[0]) if result[0] else {} + + if 'blocks' in content: + content['blocks'] = [b for b in content['blocks'] if b.get('id') != block_id] + # Reordenar + for i, block in enumerate(content['blocks']): + block['order'] = i + + # Guardar + c.execute('UPDATE sites SET content_json = ? WHERE id = ?', (json.dumps(content), site_id)) + conn.commit() + conn.close() + + return jsonify({'success': True}) + +@app.route('/api/customizer/reorder-blocks', methods=['POST']) +def reorder_blocks(): + """Reordenar bloques""" + data = request.get_json() + site_id = data.get('site_id') + block_ids = data.get('block_ids', []) + + if not site_id: + return jsonify({'success': False, 'error': 'Faltan parámetros'}), 400 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT content_json FROM sites WHERE id = ?', (site_id,)) + result = c.fetchone() + + if not result: + conn.close() + return jsonify({'success': False, 'error': 'Sitio no encontrado'}), 404 + + content = json.loads(result[0]) if result[0] else {} + + if 'blocks' in content: + # Reordenar según block_ids + blocks_dict = {b['id']: b for b in content['blocks']} + content['blocks'] = [blocks_dict[bid] for bid in block_ids if bid in blocks_dict] + for i, block in enumerate(content['blocks']): + block['order'] = i + + # Guardar + c.execute('UPDATE sites SET content_json = ? WHERE id = ?', (json.dumps(content), site_id)) + conn.commit() + conn.close() + + return jsonify({'success': True}) + +@app.route('/api/customizer/preview-frame/') +def preview_frame(site_id): + """Frame del preview - renderiza el template completo con estructura GKACHELE""" + # Obtener datos del sitio + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT theme, content_json, user_id FROM sites WHERE id = ?', (site_id,)) + site = c.fetchone() + conn.close() + + if not site: + return "Sitio no encontrado", 404 + + theme = site[0] + content = json.loads(site[1]) if site[1] else {} + user_id = site[2] + + # Usar función helper para renderizar con estructura GKACHELE + try: + rendered = render_gkachele_template(theme, content, site_id, user_id) + print(f"✅ Template renderizado correctamente para site_id={site_id}, theme={theme}") + return rendered + except Exception as e: + import traceback + print(f"❌ Error renderizando template: {e}") + traceback.print_exc() + # DEVOVER HTML VISIBLE EN EL IFRAME PARA DEBUG + return f""" +
+

❌ Error Renderizando Preview

+

Theme: {theme}

+

Error: {str(e)}

+
{traceback.format_exc()}
+
+ """, 500 + +# ============================================================================ +# SOLICITUDES +# ============================================================================ + + + +# ============================================================================ +# ADMIN +# ============================================================================ + +# ============================================================================ +# HELPER FUNCTIONS - Permisos basados en DB (sistema de roles GKACHELE™) +# ============================================================================ + +def user_has_role(user_id, required_role): + """Verificar si usuario tiene un rol específico (desde DB)""" + if not user_id: + return False + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT role FROM users WHERE id = ?', (user_id,)) + result = c.fetchone() + conn.close() + + if not result: + return False + + user_role = result[0] or 'subscriber' + + # Jerarquía de roles (sistema GKACHELE™) + role_hierarchy = { + 'administrator': 4, + 'editor': 3, + 'author': 2, + 'subscriber': 1 + } + + user_level = role_hierarchy.get(user_role, 1) + required_level = role_hierarchy.get(required_role, 1) + + return user_level >= required_level + +def user_can(user_id, capability): + """Verificar capacidad específica (desde DB)""" + if not user_id: + return False + + # Si es admin, puede todo + if user_has_role(user_id, 'administrator'): + return True + + # Otras capacidades se pueden añadir aquí + # Por ahora, solo admin puede hacer cosas administrativas + return False + +# --- SOLICITUDES Y APROBACIÓN --- + +@app.route('/dashboard/submit/', methods=['POST']) +@login_required +def submit_site(site_id): + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Verificar propiedad + c.execute('SELECT id, slug FROM sites WHERE id = ? AND user_id = ?', (site_id, session['user_id'])) + site = c.fetchone() + + if not site: + conn.close() + return jsonify({'success': False, 'error': 'Sitio no encontrado o no autorizado'}), 404 + + # Verificar si ya existe solicitud pendiente + c.execute('SELECT id FROM requests WHERE site_id = ? AND status = "pending"', (site_id,)) + if c.fetchone(): + conn.close() + return jsonify({'success': False, 'error': 'Ya existe una solicitud pendiente'}), 400 + + # Crear solicitud + try: + c.execute('INSERT INTO requests (user_id, site_id, slug, status, created_at) VALUES (?, ?, ?, "pending", CURRENT_TIMESTAMP)', + (session['user_id'], site_id, site[1])) + + # Actualizar estado del sitio + c.execute('UPDATE sites SET status = "pending" WHERE id = ?', (site_id,)) + + conn.commit() + return jsonify({'success': True}) + except Exception as e: + return jsonify({'success': False, 'error': str(e)}), 500 + finally: + conn.close() + +@app.route('/admin/approve/', methods=['POST']) +@login_required +def approve_request(request_id): + # Verificar admin (hardcoded ID 1 por ahora, o verificar email) + if session.get('user_id') != 1: + return jsonify({'success': False, 'error': 'No autorizado'}), 403 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + try: + # Obtener info de la solicitud + c.execute('''SELECT r.id, r.site_id, r.user_id, s.slug, s.content_json, s.theme, u.rubro, u.email + FROM requests r + JOIN sites s ON r.site_id = s.id + JOIN users u ON r.user_id = u.id + WHERE r.id = ?''', (request_id,)) + req = c.fetchone() + + if not req: + return jsonify({'success': False, 'error': 'Solicitud no encontrada'}), 404 + + req_id, site_id, user_id, slug, content, theme, rubro, email = req + + # --- AUTOMATIZACIÓN GITEA (MOVIDA AQUÍ) --- + repo_url = None + try: + import gitea_connector + + # Nombre del sitio + site_name = slug + if content: + import json + try: + content_data = json.loads(content) + site_name = content_data.get('site_name', slug) + except: + pass + + org_name = f"cliente-{user_id}" + repo_name = slug + + print(f"🚀 [ADMIN] Iniciando creación de repo para {org_name}/{repo_name}...") + + # 1. Crear Organización (si no existe) + gitea_connector.create_org(org_name) + + # 2. Crear Repositorio + repo_data = gitea_connector.create_repo(org_name, repo_name, description=f"Sitio {site_name} ({rubro})") + + if repo_data: + repo_url = repo_data.get('clone_url') + print(f"✅ [ADMIN] Repo creado: {repo_url}") + + # TODO: Aquí iría el commit inicial con el contenido JSON actual + # O el trigger de un webhook para desplegar + + except Exception as e: + print(f"❌ [ADMIN] Error Gitea: {e}") + import traceback + traceback.print_exc() + # ------------------------------------------ + + # Actualizar solicitud + c.execute('UPDATE requests SET status = "approved" WHERE id = ?', (request_id,)) + + # Actualizar sitio (Publicado + Repo) + c.execute('UPDATE sites SET status = "published", repo_url = ? WHERE id = ?', (repo_url, site_id)) + + # Incrementar contador de usuario (opcional, si existe la columna) + try: + c.execute('UPDATE users SET sitios_publicados = IFNULL(sitios_publicados, 0) + 1 WHERE id = ?', (user_id,)) + except: + pass + + conn.commit() + return jsonify({'success': True, 'repo_url': repo_url}) + + except Exception as e: + print(f"Error approving: {e}") + return jsonify({'success': False, 'error': str(e)}), 500 + finally: + conn.close() + +@app.route('/admin') +def admin(): + """Panel admin - Solo usuarios con rol 'administrator' (desde DB)""" + if 'user_id' not in session: + return "No autorizado", 403 + + # Verificar rol desde la base de datos (no hardcodeado) + if not user_has_role(session['user_id'], 'administrator'): + return "Solo administradores pueden acceder", 403 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Solicitudes pendientes + c.execute('''SELECT r.id, r.site_id, r.status, s.slug, u.email, r.created_at + FROM requests r + JOIN sites s ON r.site_id = s.id + JOIN users u ON r.user_id = u.id + WHERE r.status = 'pending' + ORDER BY r.created_at DESC''') + requests = [{'id': r[0], 'site_id': r[1], 'status': r[2], 'slug': r[3], + 'email': r[4], 'created_at': r[5]} for r in c.fetchall()] + + # Todos los sitios + c.execute('SELECT id, slug, theme, status, user_id FROM sites') + sites = [{'id': r[0], 'slug': r[1], 'theme': r[2], 'status': r[3], 'user_id': r[4]} + for r in c.fetchall()] + + # TODOS LOS USUARIOS con estadísticas + c.execute('''SELECT + u.id, + u.email, + u.plan, + u.rubro, + u.created_at, + COUNT(DISTINCT s.id) as num_sitios, + COUNT(DISTINCT CASE WHEN s.status = 'published' THEN s.id END) as sitios_publicados, + COUNT(DISTINCT r.id) as num_solicitudes + FROM users u + LEFT JOIN sites s ON u.id = s.user_id + LEFT JOIN requests r ON u.id = r.user_id + GROUP BY u.id + ORDER BY u.id DESC''') + + users = [] + for row in c.fetchall(): + users.append({ + 'id': row[0], + 'email': row[1], + 'plan': row[2], + 'rubro': row[3], + 'created_at': row[4], + 'num_sitios': row[5] or 0, + 'sitios_publicados': row[6] or 0, + 'num_solicitudes': row[7] or 0 + }) + + conn.close() + + return render_template('admin.html', requests=requests, sites=sites, users=users) + +@app.route('/admin/approve/', methods=['POST']) +def approve_site(request_id): + """Admin aprueba sitio - Verificar rol desde DB""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 403 + + if not user_has_role(session['user_id'], 'administrator'): + return jsonify({'error': 'Solo administradores'}), 403 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Obtener site_id + c.execute('SELECT site_id FROM requests WHERE id = ?', (request_id,)) + result = c.fetchone() + if not result: + conn.close() + return jsonify({'error': 'Solicitud no encontrada'}), 404 + + site_id = result[0] + + # Aprobar: cambiar status a approved y publicar + c.execute('UPDATE sites SET status = ? WHERE id = ?', ('published', site_id)) + c.execute('UPDATE requests SET status = ? WHERE id = ?', ('approved', request_id)) + + conn.commit() + conn.close() + + return jsonify({'success': True}) + +@app.route('/admin/users/delete/', methods=['POST']) +def delete_user(user_id): + """Eliminar usuario y todos sus datos relacionados - Verificar rol desde DB""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 403 + + # Verificar rol desde DB (no hardcodeado) + if not user_has_role(session['user_id'], 'administrator'): + return jsonify({'error': 'Solo administradores'}), 403 + + # No permitir eliminar al admin principal (user_id = 1) + if user_id == 1: + return jsonify({'error': 'No se puede eliminar al administrador principal'}), 400 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + try: + # Eliminar en orden (respetando foreign keys) + # 1. Widgets + c.execute('DELETE FROM widgets WHERE user_id = ?', (user_id,)) + # 2. Menús + c.execute('DELETE FROM menus WHERE user_id = ?', (user_id,)) + # 3. Media + c.execute('DELETE FROM media WHERE user_id = ?', (user_id,)) + # 4. Content + c.execute('DELETE FROM content WHERE user_id = ?', (user_id,)) + # 5. Settings + c.execute('DELETE FROM settings WHERE user_id = ?', (user_id,)) + # 6. Requests + c.execute('DELETE FROM requests WHERE user_id = ?', (user_id,)) + # 7. Sites + c.execute('DELETE FROM sites WHERE user_id = ?', (user_id,)) + # 8. Usuario + c.execute('DELETE FROM users WHERE id = ?', (user_id,)) + + conn.commit() + conn.close() + + return jsonify({'success': True, 'message': f'Usuario {user_id} eliminado exitosamente'}) + except Exception as e: + conn.rollback() + conn.close() + return jsonify({'error': f'Error al eliminar usuario: {str(e)}'}), 500 + +# ============================================================================ +# SITIO PÚBLICO +# ============================================================================ + +@app.route('/site/') +def public_site(slug): + """Sitio público del cliente - usando estructura GKACHELE""" + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT id, theme, content_json, status, user_id FROM sites WHERE slug = ?', (slug,)) + site = c.fetchone() + conn.close() + + if not site or site[3] != 'published': + return "Sitio no encontrado o no publicado", 404 + + site_id = site[0] + theme = site[1] + content = json.loads(site[2]) if site[2] else {} + user_id = site[4] + + # Renderizar con estructura GKACHELE + try: + return render_gkachele_template(theme, content, site_id, user_id) + except Exception as e: + import traceback + traceback.print_exc() + return render_template('public_site.html', content=content, theme=theme) + +# ============================================================================ +# MAIN +# ============================================================================ + +# ============================================================================ +# API ADMIN CLIENTE +# ============================================================================ + +@app.route('/api/admin/upload', methods=['POST']) +def upload_media(): + """Subir imágenes""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + user_id = session['user_id'] + files = request.files.getlist('files') + + if not files: + return jsonify({'error': 'No hay archivos'}), 400 + + uploaded = [] + for file in files: + if file.filename: + filename = f"{user_id}_{secrets.token_hex(8)}_{file.filename}" + filepath = os.path.join(UPLOADS_DIR, filename) + file.save(filepath) + + # Guardar en DB + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT id FROM sites WHERE user_id = ? LIMIT 1', (user_id,)) + site = c.fetchone() + site_id = site[0] if site else None + + c.execute('INSERT INTO media (user_id, site_id, filename, filepath, file_type) VALUES (?, ?, ?, ?, ?)', + (user_id, site_id, filename, filepath, 'image')) + conn.commit() + conn.close() + + uploaded.append(filename) + + return jsonify({'success': True, 'files': uploaded}) + +@app.route('/api/admin/media') +def get_media(): + """Obtener media del usuario""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + user_id = session['user_id'] + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT id, filename, filepath, uploaded_at FROM media WHERE user_id = ? ORDER BY uploaded_at DESC', (user_id,)) + media = [{'id': r[0], 'filename': r[1], 'filepath': r[2], 'uploaded_at': r[3]} for r in c.fetchall()] + conn.close() + + return jsonify({'success': True, 'media': media}) + +@app.route('/api/admin/media/', methods=['DELETE']) +def delete_media(media_id): + """Eliminar media""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + user_id = session['user_id'] + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Verificar que pertenece al usuario + c.execute('SELECT filepath FROM media WHERE id = ? AND user_id = ?', (media_id, user_id)) + media = c.fetchone() + + if media: + # Eliminar archivo + if os.path.exists(media[0]): + os.remove(media[0]) + + # Eliminar de DB + c.execute('DELETE FROM media WHERE id = ?', (media_id,)) + conn.commit() + + conn.close() + return jsonify({'success': True}) + +@app.route('/api/admin/settings', methods=['POST']) +def update_settings(): + """Actualizar configuración del usuario""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + data = request.get_json() + user_id = session['user_id'] + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + if data.get('password'): + c.execute('UPDATE users SET password = ? WHERE id = ?', + (generate_password_hash(data['password']), user_id)) + conn.commit() + + conn.close() + return jsonify({'success': True}) + +@app.route('/uploads/') +def serve_upload(filename): + """Servir archivos subidos""" + return send_from_directory(UPLOADS_DIR, filename) + +# ============================================================================ +# API MENÚS Y WIDGETS +# ============================================================================ + +@app.route('/api/menus/', methods=['GET']) +def get_menus(site_id): + """Obtener menús del sitio""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + user_id = session['user_id'] + menus = get_site_menus(site_id, user_id) + return jsonify({'success': True, 'menus': menus}) + +@app.route('/api/menus/', methods=['POST']) +def save_menu(site_id): + """Guardar/actualizar menú""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + data = request.get_json() + user_id = session['user_id'] + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Eliminar menús existentes del sitio + c.execute('DELETE FROM menus WHERE site_id = ? AND user_id = ?', (site_id, user_id)) + + # Insertar nuevos menús + for menu_item in data.get('menus', []): + c.execute('''INSERT INTO menus (user_id, site_id, location, title, url, order_index, parent_id) + VALUES (?, ?, ?, ?, ?, ?, ?)''', + (user_id, site_id, menu_item['location'], menu_item['title'], + menu_item['url'], menu_item.get('order', 0), menu_item.get('parent_id'))) + + conn.commit() + conn.close() + + return jsonify({'success': True}) + +@app.route('/api/widgets/', methods=['GET']) +def get_widgets(site_id): + """Obtener widgets del sitio""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + user_id = session['user_id'] + area = request.args.get('area', 'sidebar') + widgets = get_site_widgets(site_id, user_id, area) + return jsonify({'success': True, 'widgets': widgets}) + +@app.route('/api/widgets/', methods=['POST']) +def save_widget(site_id): + """Guardar/actualizar widget""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + data = request.get_json() + user_id = session['user_id'] + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + c.execute('''INSERT INTO widgets (user_id, site_id, area, type, title, content, order_index) + VALUES (?, ?, ?, ?, ?, ?, ?)''', + (user_id, site_id, data.get('area', 'sidebar'), data.get('type', 'text'), + data.get('title'), data.get('content'), data.get('order', 0))) + + conn.commit() + conn.close() + + return jsonify({'success': True}) + +# ============================================================================ +# MAIN +# ============================================================================ + +# Inicializar DB al importar (con manejo de errores) +try: + init_db() +except Exception as e: + print(f"⚠️ Error en init_db: {e}") + # Continuar aunque falle, se creará cuando se use + +if __name__ == '__main__': + port = int(os.environ.get('PORT', 5001)) + print("🚀 Demo SaaS iniciado") + print(f"📍 http://localhost:{port}") + app.run(debug=True, host='0.0.0.0', port=port) diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/app_simple.py b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/app_simple.py new file mode 100644 index 0000000..7a8456a --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/app_simple.py @@ -0,0 +1,594 @@ +""" +Demo SaaS - Versión SIMPLE que FUNCIONA +Sistema profesional automatizado - GKACHELE™ +""" + +from flask import Flask, render_template, render_template_string, request, jsonify, session, redirect +import sqlite3 +import os +import json +from werkzeug.security import generate_password_hash, check_password_hash + +app = Flask(__name__, template_folder='templates', static_folder='static') +app.secret_key = 'demo-2025' + +# DB simple +DB_PATH = 'demo.db' + +def init_db(): + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('''CREATE TABLE IF NOT EXISTS users ( + id INTEGER PRIMARY KEY, email TEXT UNIQUE, password TEXT, plan TEXT, rubro TEXT + )''') + c.execute('''CREATE TABLE IF NOT EXISTS sites ( + id INTEGER PRIMARY KEY, user_id INTEGER, slug TEXT UNIQUE, + content TEXT, status TEXT DEFAULT 'draft' + )''') + conn.commit() + conn.close() + +init_db() + +# Landing profesional (inspirada en tu landing real) +LANDING_HTML = ''' + + + + + + PageBuilder SaaS | Crea tu sitio web automatizado + + + + + + + + + +
+
+

🎨 PageBuilder SaaS

+

Crea tu sitio web automatizado

+

Sistema profesional y automatizado. Cada cliente con su admin, templates y base de datos.

+ +
+
+ + +
+
+

Nuestros Planes

+
+
+

Base

+
$50
+
    +
  • Sitio web de una página
  • +
  • Diseño profesional
  • +
  • Responsive móvil
  • +
  • Panel de administración
  • +
  • Base de datos propia
  • +
+ +
+
+

Pro

+
$100
+
    +
  • Sitio multipágina
  • +
  • Animaciones y efectos
  • +
  • Galería de imágenes
  • +
  • Formularios avanzados
  • +
  • Customizer completo
  • +
+ +
+
+

Premium

+
$200
+
    +
  • Sitio completo escalable
  • +
  • SEO optimizado
  • +
  • Panel admin avanzado
  • +
  • Integraciones
  • +
  • Soporte prioritario
  • +
+ +
+
+
+
+ + +
+
+

Contacto

+
+
+ +

Email

+

contacto@pagebuilder.com

+
+
+ +

Teléfono

+

+54 9 11 2345 6789

+
+
+ +

WhatsApp

+

Chatea con nosotros

+
+
+
+
+ + + + + + + +
+

© 2025 PageBuilder SaaS. Todos los derechos reservados.

+

Sistema profesional y automatizado - GKACHELE™

+
+ + + + +''' + +@app.route('/') +def home(): + # Usar tu landing real EXACTA + return render_template('landing_real.html') + +@app.route('/register', methods=['GET', 'POST']) +def register(): + if request.method == 'POST': + data = request.get_json() + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + try: + c.execute('INSERT INTO users (email, password, plan, rubro) VALUES (?, ?, ?, ?)', + (data['email'], generate_password_hash(data['password']), + data.get('plan', 'base'), data.get('rubro', 'gimnasio'))) + user_id = c.lastrowid + conn.commit() + session['user_id'] = user_id + return jsonify({'success': True, 'user_id': user_id}) + except: + return jsonify({'error': 'Email existe'}), 400 + finally: + conn.close() + + return render_template_string(''' + + Registro + + +

Registro

+
+ + + +
+ + + ''') + +@app.route('/login', methods=['GET', 'POST']) +def login(): + if request.method == 'POST': + data = request.get_json() + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('SELECT id, password FROM users WHERE email = ?', (data['email'],)) + user = c.fetchone() + conn.close() + if user and check_password_hash(user[1], data['password']): + session['user_id'] = user[0] + return jsonify({'success': True}) + return jsonify({'error': 'Credenciales inválidas'}), 401 + + return render_template_string(''' + + Login + + +

Login

+
+ + + +
+ + + ''') + +@app.route('/dashboard') +def dashboard(): + if 'user_id' not in session: + return redirect('/login') + + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('SELECT id, slug, status FROM sites WHERE user_id = ?', (session['user_id'],)) + sites = c.fetchall() + conn.close() + + sites_html = ''.join([f'

{s[1]}

Status: {s[2]}

Editar
' for s in sites]) + + return render_template_string(f''' + + Dashboard + + +
+

📊 Dashboard

+ ➕ Crear Sitio +
+ {sites_html if sites else '

No tienes sitios. Crear uno

'} + + ''') + +@app.route('/create', methods=['GET', 'POST']) +def create(): + if 'user_id' not in session: + return redirect('/login') + + if request.method == 'POST': + data = request.get_json() + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + content = json.dumps({ + 'site_name': data.get('site_name', 'Mi Sitio'), + 'hero_title': data.get('hero_title', 'Bienvenido'), + 'colors': {'primary': '#ff4d4d', 'secondary': '#1a1a1a'} + }) + c.execute('INSERT INTO sites (user_id, slug, content) VALUES (?, ?, ?)', + (session['user_id'], data['slug'], content)) + site_id = c.lastrowid + conn.commit() + conn.close() + return jsonify({'success': True, 'site_id': site_id}) + + return render_template_string(''' + + Crear Sitio + + +

➕ Crear Sitio

+
+ + + + +
+ + + ''') + +@app.route('/customizer/') +def customizer(site_id): + if 'user_id' not in session: + return redirect('/login') + + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('SELECT content FROM sites WHERE id = ? AND user_id = ?', (site_id, session['user_id'])) + site = c.fetchone() + conn.close() + + if not site: + return "No encontrado", 404 + + content = json.loads(site[0]) + + return render_template_string(f''' + + Customizer + + + + +
+
+

+ {content.get('hero_title', 'Título')} +

+
+
+ + + ''') + +@app.route('/api/save/', methods=['POST']) +def save(site_id): + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + data = request.get_json() + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('UPDATE sites SET content = ? WHERE id = ? AND user_id = ?', + (json.dumps(data['content']), site_id, session['user_id'])) + conn.commit() + conn.close() + return jsonify({'success': True}) + +@app.route('/api/submit/', methods=['POST']) +def submit(site_id): + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('UPDATE sites SET status = ? WHERE id = ? AND user_id = ?', + ('pending', site_id, session['user_id'])) + conn.commit() + conn.close() + return jsonify({'success': True}) + +@app.route('/admin') +def admin(): + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('SELECT id, slug, status FROM sites WHERE status = ?', ('pending',)) + requests = c.fetchall() + c.execute('SELECT id, slug, status FROM sites') + sites = c.fetchall() + conn.close() + + return render_template_string(f''' + + Admin + + +

🔧 Admin

+

Solicitudes Pendientes

+ + + {''.join([f'' for r in requests])} +
IDSlugAcción
{r[0]}{r[1]}
+

Todos los Sitios

+ + + {''.join([f'' for s in sites])} +
IDSlugStatus
{s[0]}{s[1]}{s[2]}
+ + + ''') + +@app.route('/api/approve/', methods=['POST']) +def approve(site_id): + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('UPDATE sites SET status = ? WHERE id = ?', ('published', site_id)) + conn.commit() + conn.close() + return jsonify({'success': True}) + +@app.route('/site/') +def site(slug): + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('SELECT content FROM sites WHERE slug = ? AND status = ?', (slug, 'published')) + site = c.fetchone() + conn.close() + + if not site: + return "Sitio no encontrado", 404 + + content = json.loads(site[0]) + return render_template_string(f''' + + {content.get('site_name', 'Sitio')} + + +

{content.get('hero_title', 'Título')}

+

{content.get('site_name', '')}

+ + ''') + +if __name__ == '__main__': + print("🚀 Demo SaaS SIMPLE iniciado") + print("📍 http://localhost:5001") + app.run(debug=True, host='0.0.0.0', port=5001) diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/database/main.db b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/database/main.db new file mode 100644 index 0000000..e09825c Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/database/main.db differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/database/main_raspberry_20260114_103649.db b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/database/main_raspberry_20260114_103649.db new file mode 100644 index 0000000..054f1fc Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/database/main_raspberry_20260114_103649.db differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/demo.db b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/demo.db new file mode 100644 index 0000000..ac78667 Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/demo.db differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/limpiar_db.py b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/limpiar_db.py new file mode 100644 index 0000000..f20a802 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/limpiar_db.py @@ -0,0 +1,66 @@ +""" +GKACHELE™ - Script para limpiar base de datos +© 2025 GKACHELE™. Todos los derechos reservados. +Uso: python limpiar_db.py +""" + +import sqlite3 +import os + +BASE_DIR = os.path.dirname(__file__) +DATABASE_DIR = os.path.join(BASE_DIR, 'database') +MAIN_DB = os.path.join(DATABASE_DIR, 'main.db') + +def limpiar_db(): + """Limpiar todas las tablas de la base de datos""" + if not os.path.exists(MAIN_DB): + print(f"❌ No se encontró la base de datos en: {MAIN_DB}") + return + + try: + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Mostrar datos actuales + c.execute('SELECT COUNT(*) FROM users') + user_count = c.fetchone()[0] + c.execute('SELECT COUNT(*) FROM sites') + site_count = c.fetchone()[0] + + print("=" * 80) + print("📊 ESTADO ACTUAL DE LA BASE DE DATOS") + print("=" * 80) + print(f"Usuarios: {user_count}") + print(f"Sitios: {site_count}") + print("=" * 80) + + respuesta = input("\n⚠️ ¿Estás seguro de que quieres limpiar TODA la base de datos? (escribe 'SI' para confirmar): ") + + if respuesta.upper() != 'SI': + print("❌ Operación cancelada") + conn.close() + return + + # Limpiar en orden (respetando foreign keys) + print("\n🗑️ Limpiando base de datos...") + c.execute('DELETE FROM widgets') + c.execute('DELETE FROM menus') + c.execute('DELETE FROM media') + c.execute('DELETE FROM content') + c.execute('DELETE FROM settings') + c.execute('DELETE FROM requests') + c.execute('DELETE FROM sites') + c.execute('DELETE FROM users') + + conn.commit() + conn.close() + + print("✅ Base de datos limpiada exitosamente") + + except Exception as e: + print(f"❌ Error: {e}") + import traceback + traceback.print_exc() + +if __name__ == '__main__': + limpiar_db() diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/requirements.txt b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/requirements.txt new file mode 100644 index 0000000..2f2fa62 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/requirements.txt @@ -0,0 +1,2 @@ +Flask==2.3.3 +Werkzeug==2.3.7 diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/run.sh b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/run.sh new file mode 100644 index 0000000..05d939e --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/run.sh @@ -0,0 +1,5 @@ +#!/bin/bash +cd "$(dirname "$0")" +echo "🚀 Iniciando Demo SaaS..." +echo "" +python3 app.py diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/start.bat b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/start.bat new file mode 100644 index 0000000..7988184 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/start.bat @@ -0,0 +1,8 @@ +@echo off +echo Instalando dependencias... +pip install Flask Werkzeug --quiet +echo. +echo Iniciando servidor en puerto 5001... +echo. +python app.py +pause diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/start.sh b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/start.sh new file mode 100644 index 0000000..ac0b547 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/start.sh @@ -0,0 +1,27 @@ +#!/bin/bash +# Script para iniciar el demo desde WSL + +echo "🚀 Iniciando Demo SaaS..." +echo "" + +# Verificar Python +if ! command -v python3 &> /dev/null; then + echo "❌ Python3 no encontrado" + exit 1 +fi + +# Instalar dependencias si no están +if ! python3 -c "import flask" 2>/dev/null; then + echo "📦 Instalando dependencias..." + pip3 install Flask Werkzeug --quiet +fi + +echo "" +echo "✅ Todo listo" +echo "📍 Servidor en: http://localhost:5001" +echo "" +echo "Presiona Ctrl+C para detener" +echo "" + +# Ejecutar +python3 app.py diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/static/style.css b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/static/style.css new file mode 100644 index 0000000..addf451 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/static/style.css @@ -0,0 +1,2409 @@ +/* GKACHELE™ - Diseño Premium Inspirado en Blow-dance */ + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --primary-orange: #FF6B35; + --dark-black: #1a1a1a; + --pure-white: #ffffff; + --light-gray: #f5f5f5; + --bg-light: #fafafa; + --card-bg: #ffffff; + --text-primary: #1a1a1a; + --text-secondary: #666; + --text-light: #888; + --border-light: rgba(0, 0, 0, 0.08); + --shadow-sm: 0 2px 10px rgba(0, 0, 0, 0.05); + --shadow-md: 0 5px 25px rgba(0, 0, 0, 0.1); + --shadow-lg: 0 10px 40px rgba(0, 0, 0, 0.15); + --shadow-orange: 0 5px 25px rgba(255, 107, 53, 0.2); + + /* Social Media Colors */ + --whatsapp: #25D366; + --whatsapp-hover: #20BA5A; + --facebook: #1877F2; + --facebook-hover: #0d65d9; + --instagram-start: #833AB4; + --instagram-mid: #E1306C; + --instagram-end: #FD1D1D; + --youtube: #FF0000; + --youtube-hover: #CC0000; + --tiktok: #000000; + --tiktok-hover: #00F2EA; +} + +body { + font-family: 'Inter', sans-serif; + background: #fafafa; + color: var(--text-primary); + line-height: 1.7; + overflow-x: hidden; + font-weight: 300; + position: relative; +} + +body::after { + content: '© GKACHELE 2025'; + position: fixed; + bottom: 20px; + left: 20px; + font-size: 0.7rem; + color: rgba(255, 255, 255, 0.03); + font-weight: bold; + z-index: -1; + pointer-events: none; + user-select: none; + transform: rotate(-45deg); + font-family: 'Arial', sans-serif; +} + +body::before { + content: ''; + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1920&h=1080&fit=crop&q=80'); + background-size: cover; + background-position: center; + background-attachment: fixed; + opacity: 0.4; + z-index: -1; + pointer-events: none; +} + +.gkachele-watermark { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip-path: inset(50%); + border: 0; + white-space: nowrap; +} + +.container-large { + max-width: 1400px; + margin: 0 auto; + padding: 0 60px; +} + +/* Navigation Sticky - Premium */ +.nav-sticky { + position: fixed; + top: 0; + left: 0; + right: 0; + background: rgba(255, 255, 255, 0.98); + backdrop-filter: blur(20px); + border-bottom: 1px solid var(--border-light); + z-index: 1000; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + padding: 25px 0; +} + +.nav-container { + max-width: 1600px; + margin: 0 auto; + padding: 0 80px; + display: flex; + justify-content: space-between; + align-items: center; +} + +.nav-logo a { + font-size: 1.4rem; + font-weight: 700; + color: var(--text-primary); + text-decoration: none; + letter-spacing: 1px; + transition: all 0.3s ease; +} + +.nav-logo a:hover { + opacity: 0.7; + transform: translateX(2px); +} + +.nav-menu { + display: flex; + gap: 60px; + align-items: center; + position: absolute; + left: 50%; + transform: translateX(-50%); +} + +.nav-menu a { + font-size: 0.95rem; + font-weight: 400; + color: var(--text-secondary); + text-decoration: none; + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + letter-spacing: 0.5px; + position: relative; +} + +.nav-menu a::after { + content: ''; + position: absolute; + bottom: -5px; + left: 0; + width: 0; + height: 1px; + background: var(--text-primary); + transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1); +} + +.nav-menu a:hover { + color: var(--primary-orange); +} + +.nav-menu a:hover::after { + width: 100%; + background: var(--primary-orange); +} + +.nav-social { + display: flex; + gap: 25px; + align-items: center; +} + +.nav-social a { + width: 40px; + height: 40px; + display: flex; + align-items: center; + justify-content: center; + color: var(--text-secondary); + text-decoration: none; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + border-radius: 50%; + background: transparent; + position: relative; + font-size: 1rem; + border-radius: 50%; +} + +.nav-social a:hover { + transform: translateY(-3px) scale(1.15); + box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15); +} + +/* Facebook - Celeste Premium */ +.nav-social a[title="Facebook"] { + color: var(--facebook); +} + +.nav-social a[title="Facebook"]:hover { + background: var(--facebook); + color: white; + box-shadow: 0 8px 25px rgba(24, 119, 242, 0.4); +} + +/* Instagram - Gradiente Icónico */ +.nav-social a[title="Instagram"] { + color: var(--instagram-mid); +} + +.nav-social a[title="Instagram"]:hover { + background: linear-gradient(135deg, var(--instagram-start) 0%, var(--instagram-mid) 50%, var(--instagram-end) 100%); + color: white; + box-shadow: 0 8px 25px rgba(225, 48, 108, 0.5); +} + +/* YouTube - Rojo Premium */ +.nav-social a[title="YouTube"] { + color: var(--youtube); +} + +.nav-social a[title="YouTube"]:hover { + background: var(--youtube); + color: white; + box-shadow: 0 8px 25px rgba(255, 0, 0, 0.4); +} + +/* TikTok - Negro con Efecto Cyan */ +.nav-social a[title="TikTok"] { + color: var(--tiktok); +} + +.nav-social a[title="TikTok"]:hover { + background: var(--tiktok); + color: var(--tiktok-hover); + box-shadow: 0 8px 25px rgba(0, 242, 234, 0.5); +} + +/* Hero Section - Premium con Imagen Difuminada */ +.hero-section { + margin-top: 100px; + padding: 180px 0 140px; + text-align: center; + background: linear-gradient(to bottom, #ffffff 0%, var(--bg-light) 100%); + position: relative; + overflow: hidden; +} + +.hero-bg-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1920&h=1080&fit=crop&q=80'); + background-size: cover; + background-position: center; + opacity: 0.2; + z-index: 0; +} + +.hero-content { + max-width: 900px; + margin: 0 auto; + position: relative; + z-index: 1; +} + +.hero-title { + font-size: 8.5rem; + font-weight: 300; + letter-spacing: -4px; + margin-bottom: 30px; + color: var(--text-primary); + line-height: 1; +} + +.hero-subtitle { + font-size: 1.8rem; + font-weight: 400; + color: var(--text-secondary); + letter-spacing: -0.5px; + margin-bottom: 40px; + background: linear-gradient(135deg, var(--text-secondary) 0%, var(--primary-orange) 100%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +.hero-description { + font-size: 1.25rem; + line-height: 1.9; + color: var(--text-light); + max-width: 700px; + margin: 0 auto; + font-weight: 300; +} + +/* Plans Section - Premium con Imagen Difuminada y Acordeón */ +.plans-section { + padding: 150px 0; + background: var(--bg-light); + position: relative; + overflow: hidden; +} + +.plans-bg-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1920&h=1080&fit=crop&q=80'); + background-size: cover; + background-position: center; + opacity: 0.18; + z-index: 0; +} + +.plans-section .container-large { + position: relative; + z-index: 1; +} + +.section-title { + font-size: 4rem; + font-weight: 300; + letter-spacing: -2.5px; + margin-bottom: 80px; + color: var(--text-primary); + text-align: center; +} + +/* Plans Accordion - Desplegable Premium */ +.plans-accordion { + max-width: 1000px; + margin: 0 auto; +} + +.plan-accordion-item { + background: var(--card-bg); + border-radius: 20px; + margin-bottom: 25px; + overflow: hidden; + transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: var(--shadow-sm); + border: 1px solid var(--border-light); + /* Asegurar que ningún plan empiece activo */ + opacity: 1; +} + +/* Transición suave al abrir/cerrar */ +.plan-accordion-item.active { + box-shadow: var(--shadow-lg), var(--shadow-orange); + border-color: rgba(255, 107, 53, 0.3); + transform: translateY(-5px); + background: linear-gradient(to bottom, #ffffff 0%, rgba(255, 107, 53, 0.02) 100%); + animation: planOpen 0.5s cubic-bezier(0.4, 0, 0.2, 1); +} + +@keyframes planOpen { + from { + transform: translateY(0); + box-shadow: var(--shadow-sm); + } + to { + transform: translateY(-5px); + box-shadow: var(--shadow-lg), var(--shadow-orange); + } +} + +/* Todos los planes iguales - sin estilos especiales para premium */ + +.plan-accordion-header { + width: 100%; + padding: 45px 50px; + background: linear-gradient(135deg, #fafafa 0%, #ffffff 100%); + border: none; + display: flex; + justify-content: space-between; + align-items: center; + cursor: pointer; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + text-align: left; + position: relative; +} + +.plan-accordion-item.active .plan-accordion-header { + background: linear-gradient(135deg, #ffffff 0%, rgba(255, 107, 53, 0.03) 100%); + padding-bottom: 40px; +} + +/* Indicador visual sutil cuando está activo */ +.plan-accordion-item.active .plan-accordion-header::before { + content: ''; + position: absolute; + left: 0; + top: 0; + bottom: 0; + width: 4px; + background: var(--primary-orange); + border-radius: 0 4px 4px 0; +} + +.plan-accordion-header:hover { + background: linear-gradient(135deg, #f5f5f5 0%, #ffffff 100%); +} + +.plan-accordion-item.active .plan-accordion-header:hover { + background: linear-gradient(135deg, rgba(255, 107, 53, 0.03) 0%, #ffffff 100%); +} + +.plan-header-content { + flex: 1; +} + +.plan-accordion-header h3 { + font-size: 2.5rem; + font-weight: 600; + letter-spacing: -1px; + margin-bottom: 12px; + color: var(--text-primary); +} + +.plan-accordion-header .plan-tagline { + font-size: 1.2rem; + color: var(--text-secondary); + font-weight: 300; +} + +.plan-chevron { + font-size: 1.2rem; + color: var(--text-secondary); + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + margin-left: 30px; + transform: rotate(0deg); +} + +.plan-accordion-item.active .plan-chevron { + color: var(--primary-orange); + transform: rotate(180deg); +} + +.plan-accordion-body { + max-height: 0; + overflow: hidden; + transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); +} + +.plan-card-body { + padding: 50px 40px; +} + +.plan-card-body h4 { + font-size: 1.5rem; + font-weight: 600; + margin: 35px 0 20px; + color: var(--text-primary); + letter-spacing: -0.3px; +} + +.plan-card-body h4:first-child { + margin-top: 0; +} + +.plan-card-body ul { + list-style: none; + padding: 0; + margin-bottom: 35px; +} + +.plan-card-body li { + padding: 12px 0; + font-size: 1.05rem; + color: var(--text-secondary); + line-height: 1.8; + font-weight: 300; + transition: all 0.3s ease; +} + +.plan-card-body li:hover { + color: var(--text-primary); + padding-left: 5px; +} + +.plan-ideal { + font-size: 1.05rem; + color: var(--text-secondary); + line-height: 1.8; + margin-bottom: 40px; + font-weight: 300; +} + +.plan-ideal strong { + color: var(--text-primary); + font-weight: 600; +} + +.qr-mini-card { + text-align: center; + margin: 50px 0; + padding: 40px 20px; + background: var(--bg-light); + border-radius: 15px; + border: 1px solid var(--border-light); +} + +.qr-mini-card img { + width: 150px; + height: 150px; + border-radius: 12px; + box-shadow: var(--shadow-md); + margin-bottom: 20px; + transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1); +} + +.qr-mini-card:hover img { + transform: scale(1.05); +} + +.qr-mini-card p { + font-size: 1rem; + color: var(--text-light); + font-weight: 300; +} + +.plan-btn { + display: block; + width: 100%; + padding: 22px 40px; + background: var(--primary-orange); + color: #ffffff; + text-decoration: none; + border: 2px solid rgba(255, 255, 255, 0.1); + border-radius: 50px; + font-weight: 600; + font-size: 1.1rem; + text-align: center; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: 0 5px 20px rgba(255, 107, 53, 0.3); + letter-spacing: 0.5px; + margin-top: 30px; +} + +.plan-btn:hover { + background: #FF5722; + border-color: rgba(255, 255, 255, 0.2); + transform: translateY(-3px); + box-shadow: 0 8px 30px rgba(255, 107, 53, 0.4); +} + +.premium-btn { + background: linear-gradient(135deg, var(--primary-orange) 0%, #FF5722 100%); + border: 2px solid rgba(255, 255, 255, 0.15); + box-shadow: 0 5px 25px rgba(255, 107, 53, 0.35); +} + +.premium-btn:hover { + background: linear-gradient(135deg, #FF5722 0%, #FF4500 100%); + border-color: rgba(255, 255, 255, 0.25); + box-shadow: 0 8px 35px rgba(255, 107, 53, 0.5); +} + +/* Demos Section */ +.demos-section { + position: relative; + padding: 5rem 0; + background: linear-gradient(135deg, #0a0a0a 0%, #1a1a1a 100%); + overflow: hidden; +} + +.demos-bg-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: radial-gradient(circle at 50% 50%, rgba(255, 107, 53, 0.05) 0%, transparent 70%); + pointer-events: none; +} + +.section-subtitle { + text-align: center; + color: #888; + font-size: 1.1rem; + margin-bottom: 3rem; +} + +/* Logo Showcase */ +.logo-showcase { + text-align: center; + margin-bottom: 4rem; + padding: 3rem; + background: rgba(255, 107, 53, 0.05); + border-radius: 20px; + border: 2px solid rgba(255, 107, 53, 0.2); +} + +.main-logo { + max-width: 300px; + height: auto; + margin-bottom: 1.5rem; + filter: drop-shadow(0 10px 30px rgba(255, 107, 53, 0.3)); + transition: transform 0.3s ease; +} + +.main-logo:hover { + transform: scale(1.05); +} + +.logo-text { + font-size: 1.3rem; + color: #ff6b35; + font-weight: 600; +} + +.demos-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); + gap: 2rem; + margin-bottom: 4rem; +} + +.demo-card { + background: rgba(30, 30, 30, 0.8); + border-radius: 15px; + overflow: hidden; + transition: all 0.3s ease; + border: 1px solid rgba(255, 107, 53, 0.1); +} + +.demo-card:hover { + transform: translateY(-10px); + border-color: #ff6b35; + box-shadow: 0 20px 40px rgba(255, 107, 53, 0.3); +} + +.demo-image { + position: relative; + width: 100%; + height: 250px; + overflow: hidden; +} + +.demo-image img { + width: 100%; + height: 100%; + object-fit: cover; + transition: transform 0.5s ease; +} + +.demo-card:hover .demo-image img { + transform: scale(1.1); +} + +.demo-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.7); + display: flex; + align-items: center; + justify-content: center; + opacity: 0; + transition: opacity 0.3s ease; +} + +.demo-card:hover .demo-overlay { + opacity: 1; +} + +.demo-btn { + background: #ff6b35; + color: white; + padding: 0.8rem 1.5rem; + border-radius: 8px; + text-decoration: none; + font-weight: 600; + display: flex; + align-items: center; + gap: 0.5rem; + transition: all 0.3s ease; +} + +.demo-btn:hover { + background: #ff8555; + transform: scale(1.05); +} + +.demo-info { + padding: 1.5rem; +} + +.demo-info h3 { + font-size: 1.5rem; + margin-bottom: 0.5rem; + color: #ff6b35; +} + +.demo-category { + font-size: 0.95rem; + color: #888; + margin-bottom: 0.5rem; +} + +.demo-plan { + font-size: 0.9rem; + margin-bottom: 1rem; +} + +.demo-plan .badge-premium, +.demo-plan .badge-pro, +.demo-plan .badge-base { + padding: 0.3rem 0.8rem; + border-radius: 20px; + font-size: 0.75rem; + font-weight: 600; + text-transform: uppercase; +} + +.demo-plan .badge-premium { + background: linear-gradient(135deg, #ff6b35, #ff8555); + color: white; +} + +.demo-plan .badge-pro { + background: linear-gradient(135deg, #3b82f6, #60a5fa); + color: white; +} + +.demo-plan .badge-base { + background: rgba(255, 255, 255, 0.1); + color: #888; +} + +.demo-description { + color: #ccc; + font-size: 0.95rem; + line-height: 1.6; +} + +/* Video Demo */ +.video-demo-section { + margin-top: 4rem; + text-align: center; +} + +.video-demo-section h3 { + font-size: 2rem; + margin-bottom: 2rem; + color: #ff6b35; +} + +.video-container { + max-width: 900px; + margin: 0 auto; + border-radius: 15px; + overflow: hidden; + background: rgba(30, 30, 30, 0.8); + border: 2px solid rgba(255, 107, 53, 0.2); +} + +.video-placeholder { + padding: 6rem 2rem; + display: flex; + flex-direction: column; + align-items: center; + gap: 1rem; +} + +.video-placeholder i { + font-size: 4rem; + color: #ff6b35; + opacity: 0.5; +} + +.video-placeholder p { + font-size: 1.2rem; + color: #888; +} + +.video-placeholder small { + font-size: 0.9rem; + color: #666; +} + +/* QR Section - Premium Card con Imagen Difuminada */ +.qr-section { + padding: 150px 0; + background: #ffffff; + position: relative; + overflow: hidden; +} + +.qr-bg-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1920&h=1080&fit=crop&q=80'); + background-size: cover; + background-position: center; + opacity: 0.15; + z-index: 0; +} + +.qr-section .container-large { + position: relative; + z-index: 1; +} + +.qr-card { + background: var(--card-bg); + padding: 80px 60px; + border-radius: 20px; + text-align: center; + box-shadow: var(--shadow-md); + border: 1px solid var(--border-light); + max-width: 600px; + margin: 0 auto; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); +} + +.qr-card:hover { + transform: translateY(-10px); + box-shadow: var(--shadow-lg), var(--shadow-orange); + border-color: rgba(255, 107, 53, 0.15); +} + +.qr-card h3 { + font-size: 2rem; + font-weight: 600; + margin-bottom: 40px; + color: var(--text-primary); + letter-spacing: -0.5px; +} + +.qr-image { + width: 250px; + height: 250px; + border-radius: 15px; + box-shadow: var(--shadow-md); + margin-bottom: 30px; + transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1); +} + +.qr-card:hover .qr-image { + transform: scale(1.05); +} + +.qr-card p { + font-size: 1.1rem; + color: var(--text-light); + font-weight: 300; +} + +/* Contact Section - Premium Cards con Imagen Difuminada */ +.contact-section { + padding: 150px 0; + background: var(--bg-light); + position: relative; + overflow: hidden; +} + +.contact-bg-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1920&h=1080&fit=crop&q=80'); + background-size: cover; + background-position: center; + opacity: 0.18; + z-index: 0; +} + +.contact-section .container-large { + position: relative; + z-index: 1; +} + +.contact-grid { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 60px; + margin-top: 80px; + max-width: 1200px; + margin-left: auto; + margin-right: auto; + justify-items: center; +} + +.contact-cards { + display: flex; + flex-direction: column; + gap: 25px; + width: 100%; + max-width: 400px; + align-items: stretch; +} + +.contact-card { + background: var(--card-bg); + padding: 30px 35px; + border-radius: 15px; + display: flex; + align-items: center; + gap: 25px; + color: var(--text-primary); + text-decoration: none; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: var(--shadow-sm); + border: 1px solid var(--border-light); +} + +.contact-card:hover { + transform: translateX(10px); + box-shadow: var(--shadow-md), var(--shadow-orange); + border-color: rgba(255, 107, 53, 0.2); +} + +.contact-card:hover i { + color: var(--primary-orange); +} + +.contact-card i { + font-size: 1.8rem; + color: var(--text-secondary); + min-width: 35px; + transition: all 0.3s ease; +} + +.contact-card:hover i { + color: var(--text-primary); + transform: scale(1.1); +} + +.contact-card .fa-whatsapp { + color: var(--whatsapp); +} + +.contact-card span { + font-size: 1.1rem; + color: var(--text-secondary); + font-weight: 400; + transition: color 0.3s ease; +} + +.contact-card:hover span { + color: var(--text-primary); +} + +.whatsapp-card:hover { + background: linear-gradient(135deg, rgba(37, 211, 102, 0.05) 0%, rgba(37, 211, 102, 0.1) 100%); +} + +.social-card { + background: var(--card-bg); + padding: 50px 40px; + border-radius: 15px; + box-shadow: var(--shadow-sm); + border: 1px solid var(--border-light); + text-align: center; + width: 100%; + max-width: 400px; +} + +.social-card h3 { + font-size: 1.8rem; + font-weight: 600; + margin-bottom: 40px; + color: var(--text-primary); + letter-spacing: -0.3px; +} + +.social-links-grid { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 20px; +} + +.social-link { + width: 100%; + height: 70px; + border-radius: 12px; + display: flex; + align-items: center; + justify-content: center; + background: var(--bg-light); + color: var(--text-secondary); + text-decoration: none; + font-size: 1.5rem; + position: relative; + overflow: hidden; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + border: 1px solid var(--border-light); +} + +.social-link:hover { + transform: translateY(-5px) scale(1.05); + color: #ffffff; +} + +/* Facebook - Celeste Premium en Contacto con Gradiente Translúcido */ +.social-link[title="Facebook"] .fa-facebook-f { + color: var(--facebook); + font-size: 2rem; + transition: all 0.4s ease; +} + +.social-link[title="Facebook"]:hover { + background: linear-gradient(135deg, rgba(24, 119, 242, 0.15) 0%, rgba(24, 119, 242, 0.25) 100%); + border-color: var(--facebook); + box-shadow: 0 10px 30px rgba(24, 119, 242, 0.4); +} + +.social-link[title="Facebook"]:hover .fa-facebook-f { + color: var(--facebook); + transform: scale(1.2); +} + +/* Instagram - Gradiente Premium en Contacto Translúcido */ +.social-link[title="Instagram"] .fa-instagram { + color: var(--instagram-mid); + font-size: 2rem; + transition: all 0.4s ease; +} + +.social-link[title="Instagram"]:hover { + background: linear-gradient(135deg, + rgba(131, 58, 180, 0.15) 0%, + rgba(225, 48, 108, 0.2) 50%, + rgba(253, 29, 29, 0.25) 100%); + border-color: var(--instagram-mid); + box-shadow: 0 10px 30px rgba(225, 48, 108, 0.5); +} + +.social-link[title="Instagram"]:hover .fa-instagram { + transform: scale(1.2); + background: linear-gradient(135deg, var(--instagram-start) 0%, var(--instagram-mid) 50%, var(--instagram-end) 100%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +/* YouTube - Rojo Premium en Contacto Translúcido */ +.social-link[title="YouTube"] .fa-youtube { + color: var(--youtube); + font-size: 2rem; + transition: all 0.4s ease; +} + +.social-link[title="YouTube"]:hover { + background: linear-gradient(135deg, rgba(255, 0, 0, 0.15) 0%, rgba(255, 0, 0, 0.25) 100%); + border-color: var(--youtube); + box-shadow: 0 10px 30px rgba(255, 0, 0, 0.4); +} + +.social-link[title="YouTube"]:hover .fa-youtube { + color: var(--youtube); + transform: scale(1.2); +} + +/* TikTok - Negro con Cyan en Contacto Translúcido */ +.social-link[title="TikTok"] .fa-tiktok { + color: var(--tiktok); + font-size: 2rem; + transition: all 0.4s ease; +} + +.social-link[title="TikTok"]:hover { + background: linear-gradient(135deg, rgba(0, 0, 0, 0.15) 0%, rgba(0, 242, 234, 0.2) 100%); + border-color: var(--tiktok-hover); + box-shadow: 0 10px 30px rgba(0, 242, 234, 0.5); +} + +.social-link[title="TikTok"]:hover .fa-tiktok { + color: var(--tiktok-hover); + transform: scale(1.2); +} + +/* WhatsApp Float Button */ +.whatsapp-float { + position: fixed; + bottom: 40px; + right: 40px; + width: 70px; + height: 70px; + background: var(--whatsapp); + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + color: #ffffff; + text-decoration: none; + box-shadow: 0 6px 30px rgba(37, 211, 102, 0.4); + z-index: 999; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + font-size: 2rem; + animation: pulse-float 2.5s infinite; +} + +.whatsapp-float:hover { + background: var(--whatsapp-hover); + transform: scale(1.15); + box-shadow: 0 8px 40px rgba(37, 211, 102, 0.5); +} + +@keyframes pulse-float { + 0%, 100% { + box-shadow: 0 6px 30px rgba(37, 211, 102, 0.4); + } + 50% { + box-shadow: 0 6px 40px rgba(37, 211, 102, 0.6); + } +} + +/* Footer - Premium con Imagen Difuminada */ +.footer-main { + padding: 150px 0 100px; + background: #1a1a1a; + color: #ffffff; + text-align: center; + position: relative; + overflow: hidden; +} + +.footer-bg-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1920&h=1080&fit=crop&q=80'); + background-size: cover; + background-position: center; + opacity: 0.25; + z-index: 0; +} + +.footer-main .container-large { + position: relative; + z-index: 1; +} + +.footer-main p { + font-size: 0.95rem; + color: rgba(255, 255, 255, 0.6); + font-weight: 300; + letter-spacing: 0.5px; +} + +/* Scroll to Top Button */ +.scroll-to-top { + position: fixed; + bottom: 120px; + right: 40px; + width: 60px; + height: 60px; + background: var(--text-primary); + color: #ffffff; + border: none; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + font-size: 1.3rem; + z-index: 998; + opacity: 0; + visibility: hidden; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2); +} + +.scroll-to-top.show { + opacity: 1; + visibility: visible; +} + +.scroll-to-top:hover { + background: #000000; + transform: translateY(-5px) scale(1.1); + box-shadow: 0 6px 30px rgba(0, 0, 0, 0.3); +} + +.scroll-to-top i { + transition: transform 0.3s ease; +} + +.scroll-to-top:hover i { + transform: translateY(-2px); +} + +/* Old Styles for Plan Pages */ +header { + background: #222; + color: white; + padding: 40px 20px; + text-align: center; + box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2); +} + +header h1 { + font-size: 3rem; + margin-bottom: 10px; +} + +.tagline { + font-size: 1.2rem; + opacity: 0.9; +} + +.plan-details { + background: #fff; + padding: 40px; + border-radius: 12px; + margin-bottom: 40px; +} + +.plan-details h2 { + font-size: 2rem; + color: #222; + margin-bottom: 30px; +} + +.plan-details h3 { + font-size: 1.5rem; + color: #222; + margin: 30px 0 15px; +} + +.plan-details ul { + list-style: none; + padding: 0; +} + +.plan-details li { + padding: 10px 0; + font-size: 1.1rem; + color: #666; +} + +.plan-details p { + font-size: 1.1rem; + color: #666; + line-height: 1.8; +} + +.plan-details a { + color: #0077B5; + text-decoration: none; +} + +.plan-details a:hover { + text-decoration: underline; +} + +.qr-mini { + text-align: center; + margin-top: 30px; +} + +.qr-mini img { + width: 100px; + height: 100px; + border-radius: 8px; +} + +.contacto { + text-align: center; + padding: 30px; + background: #fff; + border-radius: 10px; +} + +.contacto h3 { + color: #222; + margin-bottom: 20px; +} + +.contacto a { + color: #0077B5; + text-decoration: none; + font-weight: 600; +} + +.contacto a:hover { + text-decoration: underline; +} + +footer { + text-align: center; + padding: 30px; + color: #999; + background: #222; +} + +footer p { + font-size: 0.9rem; +} + +/* Responsive - Premium */ +@media (max-width: 1200px) { + .container-large { + padding: 0 40px; + } + + .plans-grid { + grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); + gap: 40px; + } + + .hero-title { + font-size: 6.5rem; + } +} + +/* Responsive Tablet/Desktop Intermedio */ +@media (max-width: 1000px) and (min-width: 769px) { + .nav-container { + padding: 0 40px; + } + + .nav-menu { + gap: 30px; + } + + .nav-social { + gap: 15px; + } +} + +/* Responsive Mobile - Vertical y Horizontal */ +@media (max-width: 768px) { + /* Asegurar que funcione en vertical y horizontal */ + html { + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; + } + + body { + overflow-x: hidden; + width: 100%; + position: relative; + } + + .container-large { + padding: 0 20px; + width: 100%; + max-width: 100%; + box-sizing: border-box; + } + + .nav-container { + padding: 15px 20px; + flex-direction: column; + gap: 15px; + width: 100%; + } + + .nav-menu { + position: static; + transform: none; + gap: 20px; + justify-content: center; + order: 2; + flex-wrap: wrap; + width: 100%; + } + + .nav-social { + order: 3; + gap: 15px; + justify-content: center; + width: 100%; + } + + .nav-logo { + order: 1; + text-align: center; + } + + .hero-section { + padding: 80px 20px; + min-height: auto; + } + + .hero-title { + font-size: 3.5rem; + letter-spacing: -1px; + line-height: 1.1; + } + + .hero-subtitle { + font-size: 1.2rem; + } + + .hero-description { + font-size: 1rem; + padding: 0 10px; + } + + .section-title { + font-size: 2.5rem; + margin-bottom: 40px; + text-align: center; + } + + .plans-section { + padding: 80px 0; + } + + .plan-accordion-item { + margin-bottom: 20px; + border-radius: 15px; + } + + .plan-accordion-header { + padding: 25px 20px; + flex-direction: row; + align-items: center; + gap: 15px; + position: relative; + } + + .plan-accordion-header h3 { + font-size: 1.8rem; + margin-bottom: 5px; + } + + .plan-accordion-header .plan-tagline { + font-size: 1rem; + } + + .plan-chevron { + position: absolute; + top: 25px; + right: 20px; + margin: 0; + font-size: 1rem; + } + + .plan-card-body { + padding: 30px 20px; + } + + .plan-card-body h4 { + font-size: 1.3rem; + } + + .plan-card-body ul { + font-size: 0.95rem; + } + + .contact-section { + padding: 80px 0; + } + + .contact-grid { + grid-template-columns: 1fr; + gap: 30px; + width: 100%; + justify-items: center; + } + + .contact-cards { + max-width: 100%; + align-items: stretch; + } + + .contact-card { + padding: 25px 20px; + width: 100%; + } + + .social-card { + padding: 40px 30px; + max-width: 100%; + } + + .social-links-grid { + grid-template-columns: repeat(2, 1fr); + gap: 15px; + } + + .social-link { + height: 60px; + font-size: 1.3rem; + } + + .whatsapp-float { + width: 55px; + height: 55px; + bottom: 20px; + right: 20px; + font-size: 1.5rem; + } + + .scroll-to-top { + width: 45px; + height: 45px; + bottom: 85px; + right: 20px; + font-size: 1rem; + } + + .qr-section { + padding: 80px 0; + } + + .qr-card { + padding: 50px 30px; + } + + .qr-image { + width: 200px; + height: 200px; + } + + .footer-main { + padding: 80px 0 60px; + } + + /* VERTICAL móvil - Reducir espacio del nav */ + @media (max-width: 768px) and (orientation: portrait) { + .nav-sticky { + padding: 10px 0; + } + + .nav-container { + padding: 8px 15px; + gap: 8px; + } + + .nav-logo a { + font-size: 1.1rem; + } + + .nav-menu { + gap: 15px; + } + + .nav-link { + font-size: 0.85rem; + } + + .nav-social { + gap: 10px; + } + + .nav-social a { + font-size: 0.9rem; + } + + .hero-section { + padding: 60px 20px 50px; + margin-top: 100px; + } + + .hero-title { + font-size: 2.8rem; + } + } + + /* Horizontal móvil - ARREGLAR SOBREPUESTO */ + @media (max-width: 900px) and (orientation: landscape) { + .nav-sticky { + padding: 8px 0 !important; + } + + .nav-container { + padding: 5px 15px !important; + gap: 8px !important; + flex-direction: column !important; + flex-wrap: wrap !important; + } + + .nav-logo { + order: 1 !important; + flex: 0 0 auto !important; + } + + .nav-logo a { + font-size: 0.9rem !important; + } + + .nav-menu { + order: 2 !important; + position: static !important; + transform: none !important; + gap: 12px !important; + flex-wrap: wrap !important; + justify-content: center !important; + width: 100% !important; + } + + .nav-menu a { + font-size: 0.75rem !important; + padding: 2px 5px !important; + } + + .nav-social { + order: 3 !important; + gap: 10px !important; + justify-content: center !important; + width: 100% !important; + } + + .nav-social a { + width: 28px !important; + height: 28px !important; + font-size: 0.75rem !important; + } + + .hero-section { + padding: 50px 20px 40px !important; + margin-top: 70px !important; + min-height: auto !important; + } + + .hero-title { + font-size: 2.5rem !important; + margin-bottom: 15px !important; + line-height: 1.1 !important; + } + + .hero-subtitle { + font-size: 1rem !important; + margin-bottom: 15px !important; + } + + .hero-description { + font-size: 0.9rem !important; + line-height: 1.5 !important; + } + + .section-title { + font-size: 2rem !important; + margin-bottom: 30px !important; + } + + .plans-section { + padding: 60px 0 !important; + } + + .plan-accordion-header { + padding: 15px 15px !important; + } + + .plan-accordion-header h3 { + font-size: 1.4rem !important; + } + + .plan-accordion-header .plan-tagline { + font-size: 0.85rem !important; + } + + .plan-card-body { + padding: 20px 15px !important; + } + + .contact-section { + padding: 60px 0 !important; + } + + .contact-grid { + grid-template-columns: 1fr !important; + gap: 20px !important; + margin-top: 40px !important; + } + + .contact-cards { + max-width: 100% !important; + } + + .contact-card { + padding: 18px 15px !important; + gap: 15px !important; + } + + .contact-card i { + font-size: 1.4rem !important; + min-width: 25px !important; + } + + .contact-card span { + font-size: 0.9rem !important; + } + + .social-card { + padding: 30px 20px !important; + } + + .social-card h3 { + font-size: 1.4rem !important; + margin-bottom: 25px !important; + } + + .social-links-grid { + gap: 12px !important; + } + + .social-link { + height: 55px !important; + font-size: 1.2rem !important; + } + + .whatsapp-float { + width: 50px !important; + height: 50px !important; + bottom: 15px !important; + right: 15px !important; + font-size: 1.3rem !important; + } + + .scroll-to-top { + width: 40px !important; + height: 40px !important; + bottom: 70px !important; + right: 15px !important; + font-size: 0.9rem !important; + } + + .demos-section { + padding: 60px 0 !important; + } + + .demos-grid { + grid-template-columns: 1fr !important; + gap: 20px !important; + } + + .demo-card { + margin-bottom: 15px !important; + } + + .demo-image { + height: 180px !important; + } + + .demo-info { + padding: 15px !important; + } + + .demo-info h3 { + font-size: 1.2rem !important; + } + + .qr-section { + padding: 60px 0 !important; + } + + .qr-card { + padding: 40px 25px !important; + } + + .qr-image { + width: 180px !important; + height: 180px !important; + } + + .footer-main { + padding: 60px 0 40px !important; + } + } +} + +/* Modal Form - Formulario de Pedido */ +.modal-form { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.7); + display: flex; + justify-content: center; + align-items: center; + z-index: 10000; + padding: 20px; + backdrop-filter: blur(5px); +} + +.modal-form-content { + background: var(--card-bg); + border-radius: 20px; + max-width: 600px; + width: 100%; + max-height: 90vh; + overflow-y: auto; + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); + animation: modalFadeIn 0.3s ease; +} + +@keyframes modalFadeIn { + from { + opacity: 0; + transform: translateY(-20px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.modal-form-header { + padding: 30px 40px; + border-bottom: 1px solid var(--border-light); + display: flex; + justify-content: space-between; + align-items: center; + background: linear-gradient(135deg, #fafafa 0%, #ffffff 100%); + border-radius: 20px 20px 0 0; +} + +.modal-form-header h2 { + font-size: 2rem; + font-weight: 600; + color: var(--text-primary); + margin: 0; +} + +.modal-form-header h2 span { + color: var(--primary-orange); +} + +.modal-close { + background: none; + border: none; + font-size: 2.5rem; + color: var(--text-secondary); + cursor: pointer; + padding: 0; + width: 40px; + height: 40px; + display: flex; + align-items: center; + justify-content: center; + border-radius: 50%; + transition: all 0.3s ease; +} + +.modal-close:hover { + background: var(--bg-light); + color: var(--text-primary); +} + +.modal-form form { + padding: 40px; +} + +.form-group { + margin-bottom: 30px; +} + +.form-group label { + display: block; + font-size: 1rem; + font-weight: 500; + color: var(--text-primary); + margin-bottom: 10px; +} + +.form-group input, +.form-group textarea { + width: 100%; + padding: 15px 20px; + border: 1px solid var(--border-light); + border-radius: 10px; + font-size: 1rem; + font-family: 'Inter', sans-serif; + background: var(--bg-light); + color: var(--text-primary); + transition: all 0.3s ease; + box-sizing: border-box; +} + +.form-group input:focus, +.form-group textarea:focus { + outline: none; + border-color: var(--primary-orange); + background: #ffffff; + box-shadow: 0 0 0 3px rgba(255, 107, 53, 0.1); +} + +.form-group textarea { + resize: vertical; + min-height: 120px; +} + +.form-group small { + display: block; + margin-top: 8px; + font-size: 0.85rem; + color: var(--text-light); +} + +.form-actions { + display: flex; + gap: 15px; + margin-top: 40px; + justify-content: flex-end; +} + +.btn-cancel, +.btn-preview, +.btn-submit { + padding: 15px 35px; + border: none; + border-radius: 10px; + font-size: 1rem; + font-weight: 500; + cursor: pointer; + transition: all 0.3s ease; + font-family: 'Inter', sans-serif; +} + +.btn-cancel { + background: var(--bg-light); + color: var(--text-secondary); +} + +.btn-cancel:hover { + background: #e5e5e5; + color: var(--text-primary); +} + +.btn-preview { + background: #3b82f6; + color: #ffffff; +} + +.btn-preview:hover { + background: #2563eb; + transform: translateY(-2px); + box-shadow: 0 5px 15px rgba(59, 130, 246, 0.3); +} + +.btn-preview:disabled { + background: #9ca3af; + cursor: not-allowed; + transform: none; +} + +.btn-submit { + background: var(--primary-orange); + color: #ffffff; +} + +.btn-submit:hover { + background: rgba(255, 107, 53, 0.9); + transform: translateY(-2px); + box-shadow: 0 5px 15px rgba(255, 107, 53, 0.3); +} + +/* Modal responsive dentro de media query móvil */ +@media (max-width: 768px) { + .modal-form { + padding: 10px; + } + + .modal-form-content { + max-height: 95vh; + border-radius: 15px; + } + + .modal-form-header { + padding: 20px 25px; + } + + .modal-form-header h2 { + font-size: 1.5rem; + } + + .modal-form form { + padding: 30px 25px; + } + + .form-actions { + flex-direction: column; + } + + .btn-cancel, + .btn-preview, + .btn-submit { + width: 100%; + } +} + +/* ============================================ + SISTEMA DE PREVIEWS - CARDS Y MODALES + ============================================ */ + +/* Grupo de botones en planes */ +.plan-buttons-group { + display: flex; + gap: 12px; + margin-top: 25px; + flex-wrap: wrap; + align-items: center; +} + +.plan-btn-preview { + background: white; + border: 2px solid #1877F2; + color: #1877F2; + padding: 12px 24px; + border-radius: 10px; + font-size: 0.95rem; + font-weight: 600; + cursor: pointer; + transition: all 0.4s ease; + display: flex; + align-items: center; + gap: 8px; + box-shadow: 0 4px 15px rgba(24, 119, 242, 0.2); + letter-spacing: 0.3px; +} + +.plan-btn-preview:hover { + background: #1877F2; + color: white; + transform: translateY(-3px) scale(1.05); + box-shadow: 0 8px 25px rgba(24, 119, 242, 0.4); +} + +.plan-btn-preview i { + font-size: 1rem; + transition: all 0.4s ease; +} + +.plan-btn-preview:hover i { + transform: scale(1.15); +} + +/* Modal de Previews */ +.previews-modal { + display: none; + position: fixed; + z-index: 10000; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.85); + backdrop-filter: blur(5px); + overflow-y: auto; + padding: 20px; +} + +.previews-modal-content { + background: white; + margin: 40px auto; + max-width: 1400px; + border-radius: 20px; + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); + overflow: hidden; + animation: modalSlideIn 0.3s ease; +} + +@keyframes modalSlideIn { + from { + opacity: 0; + transform: translateY(-30px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.previews-modal-header { + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + color: white; + padding: 25px 30px; + display: flex; + justify-content: space-between; + align-items: center; +} + +.previews-modal-header h2 { + margin: 0; + font-size: 1.8rem; + font-weight: 600; +} + +.previews-filters { + padding: 20px 30px; + background: #f8f9fa; + border-bottom: 1px solid #e0e0e0; +} + +.filter-group { + display: flex; + flex-direction: column; + gap: 8px; +} + +.filter-group label { + font-weight: 600; + color: #333; + font-size: 0.9rem; +} + +.filter-group select { + padding: 10px 15px; + border: 2px solid #ddd; + border-radius: 8px; + font-size: 1rem; + background: white; + cursor: pointer; + transition: border-color 0.3s, box-shadow 0.3s; + min-width: 250px; +} + +.filter-group select:hover { + border-color: #1877F2; +} + +.filter-group select:focus { + outline: none; + border-color: #1877F2; + box-shadow: 0 0 0 3px rgba(24, 119, 242, 0.1); +} + +/* Grid de Previews */ +.previews-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); + gap: 30px; + padding: 30px; +} + +/* Cards de Preview - Diseño Tipo Card */ +.template-card { + background: white; + border-radius: 16px; + overflow: hidden; + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15); + transition: transform 0.3s ease, box-shadow 0.3s ease; + cursor: pointer; + position: relative; +} + +.template-card:hover { + transform: translateY(-8px); + box-shadow: 0 8px 30px rgba(0, 0, 0, 0.25); +} + +.template-preview { + position: relative; + overflow: hidden; + background: #f5f5f5; + aspect-ratio: 16/9; +} + +.template-preview img { + width: 100%; + height: 100%; + object-fit: cover; + display: block; + transition: transform 0.3s ease; +} + +.template-card:hover .template-preview img { + transform: scale(1.05); +} + +.template-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: linear-gradient(to bottom, transparent 0%, rgba(0, 0, 0, 0.7) 100%); + opacity: 0; + transition: opacity 0.3s ease; + display: flex; + align-items: flex-end; + padding: 20px; +} + +.template-card:hover .template-overlay { + opacity: 1; +} + +.overlay-info { + color: white; + width: 100%; +} + +.overlay-info h4 { + margin: 0 0 5px 0; + font-size: 1.1rem; + font-weight: 600; +} + +.overlay-info p { + margin: 0; + font-size: 0.9rem; + opacity: 0.9; +} + +.template-info { + padding: 20px; +} + +.template-info h3 { + margin: 0 0 10px 0; + font-size: 1.2rem; + color: #333; + font-weight: 600; +} + +.template-meta { + display: flex; + gap: 10px; + flex-wrap: wrap; + margin-bottom: 15px; +} + +.badge-plan { + display: inline-block; + padding: 4px 12px; + border-radius: 12px; + font-size: 0.85rem; + font-weight: 600; + text-transform: uppercase; +} + +.badge-base { + background: #95a5a6; + color: white; +} + +.badge-pro { + background: #3498db; + color: white; +} + +.badge-premium { + background: #9b59b6; + color: white; +} + +.badge-vip { + background: #f39c12; + color: white; +} + +.badge-rubro { + background: #e0e0e0; + color: #333; + font-size: 0.8rem; +} + +.template-description { + color: #666; + font-size: 0.9rem; + line-height: 1.5; + margin: 0; +} + +/* Lightbox de Screenshot Grande */ +.screenshot-lightbox { + display: none; + position: fixed; + z-index: 10001; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.95); + backdrop-filter: blur(10px); + overflow-y: auto; + padding: 40px 20px; +} + +.lightbox-content { + max-width: 1200px; + margin: 0 auto; + position: relative; + background: white; + border-radius: 20px; + overflow: hidden; + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5); + animation: lightboxFadeIn 0.3s ease; +} + +@keyframes lightboxFadeIn { + from { + opacity: 0; + transform: scale(0.9); + } + to { + opacity: 1; + transform: scale(1); + } +} + +.lightbox-close { + position: absolute; + top: 20px; + right: 20px; + font-size: 2rem; + color: white; + cursor: pointer; + z-index: 10; + width: 40px; + height: 40px; + display: flex; + align-items: center; + justify-content: center; + background: rgba(0, 0, 0, 0.5); + border-radius: 50%; + transition: background 0.3s; +} + +.lightbox-close:hover { + background: rgba(0, 0, 0, 0.8); +} + +.lightbox-content img { + width: 100%; + height: auto; + display: block; +} + +.lightbox-info { + padding: 30px; + background: white; +} + +.lightbox-info h3 { + margin: 0 0 10px 0; + font-size: 1.5rem; + color: #333; +} + +.lightbox-info p { + margin: 0 0 20px 0; + color: #666; + font-size: 1rem; +} + +.btn-request-design { + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + color: white; + border: none; + padding: 15px 30px; + border-radius: 10px; + font-size: 1rem; + font-weight: 600; + cursor: pointer; + transition: transform 0.3s, box-shadow 0.3s; + display: flex; + align-items: center; + gap: 10px; +} + +.btn-request-design:hover { + transform: translateY(-2px); + box-shadow: 0 5px 20px rgba(102, 126, 234, 0.4); +} + +/* Responsive */ +@media (max-width: 768px) { + .plan-buttons-group { + flex-direction: column; + } + + .plan-btn-preview { + width: 100%; + justify-content: center; + } + + .previews-grid { + grid-template-columns: 1fr; + padding: 20px; + } + + .previews-modal-content { + margin: 20px; + border-radius: 15px; + } + + .previews-modal-header { + padding: 20px; + } + + .previews-modal-header h2 { + font-size: 1.4rem; + } + + .lightbox-content { + margin: 20px; + } +} \ No newline at end of file diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/templates/admin.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/templates/admin.html new file mode 100644 index 0000000..7c0992d --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/templates/admin.html @@ -0,0 +1,178 @@ + + + + + Admin - Demo + + + +
+

🔧 Panel Admin

+
+ +

Solicitudes Pendientes

+ + + + + + + + + {% for req in requests %} + + + + + + + + {% endfor %} + {% if not requests %} + + {% endif %} +
IDSlugEmail ClienteFechaAcción
{{ req.id }}{{ req.slug }}{{ req.email }}{{ req.created_at }} + +
No hay solicitudes pendientes
+ +

👥 Usuarios Registrados

+ + + + + + + + + + + + + {% for user in users %} + + + + + + + + + + + + {% endfor %} + {% if not users %} + + {% endif %} +
IDEmailPlanRubroSitiosPublicadosSolicitudesFechaAcción
{{ user.id }}{{ user.email }}{{ user.plan }}{{ user.rubro }}{{ user.num_sitios }}{{ user.sitios_publicados }}{{ user.num_solicitudes }}{{ user.created_at[:10] if user.created_at else 'N/A' }} + {% if user.id != 1 %} + + {% else %} + Admin Principal + {% endif %} +
No hay usuarios registrados
+ +

🌐 Todos los Sitios

+ + + + + + + + + {% for site in sites %} + + + + + + + + {% endfor %} +
IDSlugTemaStatusVer
{{ site.id }}{{ site.slug }}{{ site.theme }}{{ site.status }} + {% if site.status == 'published' %} + Ver + {% endif %} +
+ + + + + + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/templates/client_admin.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/templates/client_admin.html new file mode 100644 index 0000000..10dd24d --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/templates/client_admin.html @@ -0,0 +1,219 @@ + + + + + + Dashboard - Administración del Sitio + + + + + + + + + + +
+ +
+ +
+ Hola, {{ user_email }} + Salir +
+
+ + +
+

Escritorio

+ +
+
+

¡Te damos la bienvenida a tu panel!

+

Aquí puedes gestionar todos tus sitios y contenidos de forma profesional.

+
+ +
+ +
+

Tus Sitios Web

+ {% if not sites %} +

No tienes sitios creados. ¡Empieza ahora!

+ {% else %} + + + + + + + + + + + {% for site in sites %} + + + + + + + {% endfor %} + +
Nombre (Slug)TemaEstadoAcciones
{{ site.slug }}{{ site.theme }}{{ site.status|upper }} + Personalizar +
+ {% endif %} +
+ +
+

Estadísticas Rápidas

+
+
+ {{ sites|length }}
+ Sitios +
+
+ {{ user_plan|upper }}
+ Plan Actual +
+
+
+ +
+
+ + + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/templates/create_site.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/templates/create_site.html new file mode 100644 index 0000000..67d7b1e --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/templates/create_site.html @@ -0,0 +1,82 @@ + + + + + Crear Sitio - Demo + + + +
+

➕ Crear Nuevo Sitio

+
+ + + + + + +
+ ← Volver +
+ + + + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/templates/customizer-wordpress-COMPLETO.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/templates/customizer-wordpress-COMPLETO.html new file mode 100644 index 0000000..569587c --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/templates/customizer-wordpress-COMPLETO.html @@ -0,0 +1,1279 @@ + + + + + Customizer Completo - Estilo WordPress + + + + +
+
+ +
Personalizar
+
+ +
+ + +
+ +
+ + + + +
+ +
+
Identidad del sitio
+ +
+ + +
El nombre aparece en el encabezado del sitio.
+
+ +
+ + +
En pocas palabras, explica de qué trata este sitio.
+
+ +
+ +
+ + 150px +
+
+ +
+ +
+ + 24px +
+
+ +
+ +
+ + 14px +
+
+
+ + +
+
Top Bar Setting
+ +
+ +
+ +
+
+ + +
+
+ +
+ + +
+ +
+ +
+
+ + +
+
+ +
+ + +
Font Awesome icon class
+
+
📞
+
✉️
+
📍
+
🕐
+
📘
+
📷
+
+
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ +
+
+ + +
+
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ +
+
+ + +
+
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+ + +
+
Colores
+ +
+ +
+ + +
+
+ +
+ +
+ + +
+
+ +
+ +
+ + +
+
+ +
+ +
+ + +
+
+
+ + +
+
Body Typography Setting
+ +
+ + +
+ +
+ +
+ + 16px +
+
+ +
+ +
+ + 1.6 +
+
+
+ + +
+
Medios
+ +
+ + + Logo preview +
+ +
+ + + Hero preview +
+ +
+ + + Favicon preview +
+
+ + +
+
Redes Sociales
+ +
+ +
+ + +
+
+ +
+ + +
Número para el botón flotante
+
+ +
+ +
+
+
+
Red Social 1
+ +
+
+ + +
+
+ + +
+
+
+ + +
+ + +
+
Contenido
+
+ + +
+
+ + +
+
+ +
+
Contacto
+
+ + +
+
+ + +
+
+ + +
+
+
+
+ + +
+
Cargando vista previa...
+ +
+
+ + + + + + + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/templates/customizer-wordpress-demo.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/templates/customizer-wordpress-demo.html new file mode 100644 index 0000000..3db8653 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/templates/customizer-wordpress-demo.html @@ -0,0 +1,688 @@ + + + + + Customizer Demo - Estilo WordPress + + + + +
+
+ +
Personalizar
+
+ +
+ + +
+ +
+ + + + +
+ +
+
Identidad del sitio
+ +
+ + +
El nombre aparece en el encabezado del sitio.
+
+ +
+ + +
En pocas palabras, explica de qué trata este sitio.
+
+
+ + +
+
Colores
+ +
+ +
+ + +
+
+ +
+ +
+ + +
+
+ +
+ +
+ + +
+
+
+ + +
+
Tipografía
+ +
+ + +
+
+ + +
+
Contenido
+ +
+ + +
+ +
+ + +
+
+ + +
+
Medios
+ +
+ + +
URL de la imagen del logo
+
+ +
+ + +
Imagen de fondo para la sección principal
+
+
+ + +
+
Contacto
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+ + +
+
Redes Sociales
+ +
+ + +
+ +
+ + +
+ +
+ + +
Número de WhatsApp para botón flotante
+
+
+
+
+ + +
+
Cargando vista previa...
+ +
+
+ + + + + + + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/templates/customizer.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/templates/customizer.html new file mode 100644 index 0000000..5a1d1a2 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/templates/customizer.html @@ -0,0 +1,1320 @@ + + + + + + + Personalizar - {{ site_name or 'Sitio' }} + + + + + + + +
+ + +
+
+

Personalizar

+ +
+ +
+ + + +
+
+ Diseño & + Template +
+
+
+ Tema Activo + + Cambiar el tema restablecerá colores por + defecto. +
+
+
+ + + +
+
+ Identidad del + Sitio +
+
+
+ Nombre del Sitio + +
+
+ Título Hero + +
+
+ Descripción Corta + +
+
+ Logo URL + +
+
+
+ + + +
+
+ Colores +
+
+
+ Color Primario +
+ + +
+
+
+ Color Secundario +
+ + +
+
+
+ Color Texto +
+ + +
+
+
+
+ + + +
+
+ Contacto & + Ubicación +
+
+
+ Dirección + +
+
+ Teléfono + +
+ +
+ WhatsApp (Solo números) + + Añadirá un botón flotante si se rellena. +
+
+ Email + +
+
+
+ + +
+
+ Redes + Sociales +
+
+
+ Instagram URL + +
+
+ Facebook URL + +
+
+ TikTok URL + +
+
+ LinkedIn URL + +
+
+ YouTube URL + +
+
+
+ + +
+
+ Horarios de Atención +
+
+
+ Lunes - Viernes + +
+
+ Sábados + +
+
+ Domingos + +
+
+
+ + +
+
+ Especialidad Culinaria +
+
+
+ Título + +
+
+ Descripción + +
+
+ URL de Imagen + +
+
+
+ + +
+
+ Capacidad +
+
+
+ Capacidad del Restaurante + + Número de personas que puede albergar el restaurante. +
+
+
+ + +
+
+ Bloques de + Contenido +
+
+
+ +
+
+ +
+ + + +
+
+ + +
+
+ Menú + Restaurante +
+
+
+ Enlace PDF Menú + +
+
+ +
+
+
+ +
+ + + +
+ + +
+
+ +
+ + +
+ + + +
+
+ +
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/templates/dashboard.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/templates/dashboard.html new file mode 100644 index 0000000..ce62c71 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/templates/dashboard.html @@ -0,0 +1,108 @@ + + + + + Dashboard - Demo + + + +
+

📊 Mi Panel de Control

+ +
+ +
+ {% for site in sites %} +
+

{{ site.slug }}

+

Tema: {{ site.theme }}

+ {{ site.status }} +
+ ✏️ Editar + {% if site.status == 'draft' %} + + {% endif %} +
+
+ {% endfor %} + + {% if not sites %} +
+

No tienes sitios aún. Crear uno

+
+ {% endif %} +
+ + + + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/templates/landing.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/templates/landing.html new file mode 100644 index 0000000..594b57e --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/templates/landing.html @@ -0,0 +1,47 @@ + + + + + PageBuilder SaaS - Demo + + + +
+

🎨 PageBuilder SaaS

+

Crea tu sitio web en minutos

+ Registrarse + Iniciar Sesión + Admin +
+ + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/templates/landing_real.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/templates/landing_real.html new file mode 100644 index 0000000..ee88408 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/templates/landing_real.html @@ -0,0 +1,1442 @@ + + + + + + + + + + + + + + + + + + + + + + + + GKACHELE™ | Desarrollo Web Premium + + + + + + + + + +
+
+
+

GKACHELE™

+

Desarrollo Web Premium

+

Estamos listos para ayudarte a crear tu sitio moderno, rápido y personalizado.

+
+
+ + +
+
+
+

Nuestros Planes

+ + +
+ +
+ +
+
+

¿Qué incluye?

+
    +
  • ✅ Sitio web de una página
  • +
  • ✅ Diseño limpio y profesional
  • +
  • ✅ Información de contacto
  • +
  • ✅ Enlaces a redes sociales
  • +
  • ✅ Responsive (móvil y desktop)
  • +
  • ✅ Hosting gratuito
  • +
  • ✅ Dominio personalizado
  • +
+

Personalización

+
    +
  • 🎨 Color principal personalizado
  • +
  • ✍️ Tipografía a elección
  • +
  • 📝 Textos personalizados
  • +
+

Ideal para: Profesionales independientes, pequeños comercios, páginas institucionales básicas.

+
+ QR Base +

Comparte este plan

+
+
+ +
+
+
+
+ + +
+ +
+
+

¿Qué incluye?

+
    +
  • ✅ Sitio web multipágina
  • +
  • ✅ Animaciones suaves y efectos visuales
  • +
  • ✅ Galería de imágenes o portafolio
  • +
  • ✅ Formulario de contacto funcional
  • +
  • ✅ Responsive avanzado
  • +
  • ✅ Hosting gratuito
  • +
  • ✅ Dominio personalizado
  • +
+

Personalización

+
    +
  • 🎨 Paleta de colores personalizada
  • +
  • ✍️ Tipografía profesional
  • +
  • 🧩 Secciones a medida
  • +
+

Ideal para: Marcas personales, portfolios creativos, negocios que quieren destacar visualmente.

+
+ QR Pro +

Comparte este plan

+
+
+ +
+
+
+
+ + +
+ +
+
+

¿Qué incluye?

+
    +
  • ✅ Sitio web completo y escalable
  • +
  • ✅ Integración con redes sociales y herramientas externas
  • +
  • ✅ SEO optimizado
  • +
  • ✅ Panel de administración (opcional)
  • +
  • ✅ Hosting y dominio incluidos
  • +
  • ✅ Soporte técnico personalizado
  • +
+

Personalización

+
    +
  • 🎨 Diseño a medida
  • +
  • 📊 Integración con analítica
  • +
  • 🔒 Seguridad avanzada
  • +
+

Ideal para: Empresas, proyectos grandes, tiendas online, instituciones con necesidades específicas.

+
+ QR Premium +

Comparte este plan

+
+
+ +
+
+
+
+
+
+
+ + + + + + + + + + + +
+
+
+

Proyectos Demo

+

Ejemplos de sitios web que hemos creado

+ +
+ +
+
+
💃 Blow Dance
+ +
+
+

Blow Dance

+

💃 Escuela de Danza

+

Plan: Pro

+

Sitio web profesional para escuela de danza con galerías, videos y sistema de inscripción.

+
+
+ + +
+
+
🗳️ Dalmau
+ +
+
+

Dalmau Intendente

+

⚖️ Despacho Profesional

+

Plan: Base

+

Landing page profesional para despachos de abogados y contadores con información clara y llamados a la acción.

+
+
+ + +
+
+
💼 GKACHELE
+ +
+
+

GKACHELE™

+

💼 Portfolio Profesional

+

Plan: Premium

+

Sitio web premium con diseño moderno, animaciones y sistema de gestión avanzado.

+
+
+
+ + + +
+
+ + +
+
+
+
+

Comparte tu sitio

+ QR Code GKACHELE™ +

Escanea el código QR para compartir

+
+
+
+ + +
+
+ +
+ + + + + + + + + + +
+ +
+

© 2025 GKACHELE™. Todos los derechos reservados.

+ +

+ Código propiedad de GKACHELE © 2025 - Prohibida su reproducción sin autorización +

+
+
+ + + + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/templates/login.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/templates/login.html new file mode 100644 index 0000000..97ffa6b --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/templates/login.html @@ -0,0 +1,95 @@ + + + + + Login - Demo + + + +
+

🔐 Iniciar Sesión

+
+ + + +
+

+ ¿No tienes cuenta? Regístrate +

+
+ + + + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/templates/public_site.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/templates/public_site.html new file mode 100644 index 0000000..5705e22 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/templates/public_site.html @@ -0,0 +1,33 @@ + + + + + {{ content.site_name or 'Mi Sitio' }} + + + +
+

{{ content.hero_title or 'Título' }}

+

{{ content.hero_description or 'Descripción' }}

+
+ + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/templates/register.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/templates/register.html new file mode 100644 index 0000000..6c5534d --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/templates/register.html @@ -0,0 +1,132 @@ + + + + + Registro - Demo + + + +
+

📝 Registrarse

+
+ + + + + +
+

+ ¿Ya tienes cuenta? Inicia sesión +

+
+ + + + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/test.py b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/test.py new file mode 100644 index 0000000..7013d93 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/test.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python3 +"""Test rápido para verificar que todo funciona""" + +import sys +import os + +# Agregar directorio actual al path +sys.path.insert(0, os.path.dirname(__file__)) + +try: + from app import app + print("✅ App importada correctamente") + print("✅ Flask funcionando") + print(f"✅ Templates en: {app.template_folder}") + print("\n🚀 Para iniciar:") + print(" python3 app.py") + print("\n📍 URL: http://localhost:5001") +except Exception as e: + print(f"❌ Error: {e}") + import traceback + traceback.print_exc() + sys.exit(1) diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/themes/_gkachele/footer.php b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/themes/_gkachele/footer.php new file mode 100644 index 0000000..97ab4fc --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/themes/_gkachele/footer.php @@ -0,0 +1,22 @@ +
+ +
+
+ {% if menus.footer %} + + {% endif %} +

+ © 2025 GKACHELE™. Todos los derechos reservados.
+ Desarrollado desde noviembre 2025 por GKACHELE
+ Código propiedad de GKACHELE © 2025 - Prohibida su reproducción sin autorización +

+
+
+ + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/themes/_gkachele/header.php b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/themes/_gkachele/header.php new file mode 100644 index 0000000..52440a7 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/themes/_gkachele/header.php @@ -0,0 +1,112 @@ + + + + + + + {% if site_name %}{{ site_name }}{% else %}GKACHELE Site{% endif %} + + + + + + +
+ +
+
diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/themes/_gkachele/sidebar.php b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/themes/_gkachele/sidebar.php new file mode 100644 index 0000000..a6adb25 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/themes/_gkachele/sidebar.php @@ -0,0 +1,33 @@ + + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/themes/gimnasio-claro/config.json b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/themes/gimnasio-claro/config.json new file mode 100644 index 0000000..b1cffcc --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/themes/gimnasio-claro/config.json @@ -0,0 +1,29 @@ +{ + "name": "Gimnasio Claro", + "rubro": "gimnasios", + "description": "Tema claro y moderno para gimnasios", + "sections": [ + "hero", + "planes_fitness", + "horarios", + "entrenadores", + "instalaciones", + "contacto" + ], + "colors": { + "primary": "#ff4d4d", + "secondary": "#1a1a1a", + "accent": "#ff6b6b" + }, + "typography": { + "font_family": "Roboto", + "headings": "Roboto" + }, + "features": { + "planes_fitness": true, + "horarios": true, + "entrenadores": true, + "instalaciones": true, + "precios": true + } +} diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/themes/restaurante-asiatico/config.json b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/themes/restaurante-asiatico/config.json new file mode 100644 index 0000000..2ae4d4b --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/themes/restaurante-asiatico/config.json @@ -0,0 +1,32 @@ +{ + "name": "Restaurante Asiático", + "rubro": "restaurante", + "description": "Tema moderno y elegante para restaurantes asiáticos", + "sections": [ + "hero", + "menu", + "horarios", + "reservas", + "especialidad_culinaria", + "galeria", + "contacto" + ], + "colors": { + "primary": "#e63946", + "secondary": "#f77f00", + "accent": "#fcbf49", + "text": "#1d3557" + }, + "typography": { + "font_family": "Roboto", + "headings": "Oswald" + }, + "features": { + "menu_url": true, + "horarios": true, + "reservas": true, + "capacidad": true, + "especialidad_culinaria": true, + "galeria": true + } +} diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/themes/restaurante-asiatico/template.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/themes/restaurante-asiatico/template.html new file mode 100644 index 0000000..d9f0001 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/themes/restaurante-asiatico/template.html @@ -0,0 +1,731 @@ + + + + + + {{ site_name or 'Restaurante Asiático' }} + + + + + + + +
+ +
+ + +
+
+

{{ hero_title or 'TU LUGAR FAVORITO DE COMIDA ASIÁTICA EN LA CIUDAD' }}

+

{{ hero_description or 'Sabores auténticos que despiertan tus sentidos' }}

+ Reservar Mesa +
+
+ + + + + +
+
+

Horarios de Atención

+
+
+

Lunes - Viernes

+

{{ horarios.lunes_viernes or '12:00 PM - 10:00 PM' }}

+
+
+

Sábados

+

{{ horarios.sabados or '12:00 PM - 11:00 PM' }}

+
+
+

Domingos

+

{{ horarios.domingos or '12:00 PM - 9:00 PM' }}

+
+
+
+
+ + +
+
+

Reserva tu Mesa

+
+

+ Completa el formulario y nos pondremos en contacto contigo para confirmar tu reserva. +

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+
+
+ + +
+
+
+
+

{{ especialidad_culinaria.titulo or 'Nuestra Especialidad' }}

+

{{ especialidad_culinaria.descripcion or 'Cada plato es una obra de arte culinaria, preparado con ingredientes frescos y técnicas tradicionales que honran la autenticidad de nuestros sabores asiáticos.' }}

+
+
+ Especialidad Culinaria +
+
+
+
+ + +
+
+

Contacto

+
+
+

Información de Contacto

+

Dirección: {{ direccion or 'Calle Principal 123, Ciudad' }}

+

Teléfono: {{ telefono or '+34 123 456 789' }}

+

Email: {{ email or 'contacto@restaurante.com' }}

+ {% if capacidad %} +

Capacidad: {{ capacidad }} personas

+ {% endif %} +
+ {% if redes_sociales.facebook %} + 📘 + {% endif %} + {% if redes_sociales.instagram %} + 📷 + {% endif %} + {% if redes_sociales.twitter %} + 🐦 + {% endif %} + {% if redes_sociales.whatsapp %} + 💬 + {% endif %} +
+
+
+

Ubicación

+ {% if mapa_url %} + + {% else %} +

Mapa de ubicación disponible próximamente

+ {% endif %} +
+
+
+
+ + +
+
+

© 2025 {{ site_name or 'Restaurante Asiático' }}. Todos los derechos reservados.

+

© 2025 GKACHELE™. Todos los derechos reservados.

+
+
+ + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/themes/restaurante-elegante/config.json b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/themes/restaurante-elegante/config.json new file mode 100644 index 0000000..4c06aa9 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/themes/restaurante-elegante/config.json @@ -0,0 +1,32 @@ +{ + "name": "Restaurante Elegante", + "rubro": "restaurante", + "description": "Tema sofisticado y elegante para restaurantes de alta cocina", + "sections": [ + "hero", + "menu", + "horarios", + "reservas", + "especialidad_culinaria", + "galeria", + "contacto" + ], + "colors": { + "primary": "#8b4513", + "secondary": "#d4af37", + "accent": "#f5deb3", + "text": "#2c2c2c" + }, + "typography": { + "font_family": "Georgia", + "headings": "Cormorant Garamond" + }, + "features": { + "menu_url": true, + "horarios": true, + "reservas": true, + "capacidad": true, + "especialidad_culinaria": true, + "galeria": true + } +} diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/themes/restaurante-elegante/template.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/themes/restaurante-elegante/template.html new file mode 100644 index 0000000..8541f9d --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/themes/restaurante-elegante/template.html @@ -0,0 +1,649 @@ + + + + + + {{ site_name or 'Restaurante Elegante' }} + + + + + + + +
+ +
+ + +
+
+

{{ hero_title or 'Experiencia Culinaria Excepcional' }}

+

{{ hero_description or 'Donde la tradición se encuentra con la innovación' }}

+ Reservar Mesa +
+
+ + + + + +
+
+

Horarios de Atención

+
+
+

Lunes - Viernes

+

{{ horarios.lunes_viernes or '13:00 - 23:00' }}

+
+
+

Sábados

+

{{ horarios.sabados or '13:00 - 00:00' }}

+
+
+

Domingos

+

{{ horarios.domingos or '13:00 - 22:00' }}

+
+
+
+
+ + +
+
+

Reserva tu Mesa

+
+

+ Complete el formulario y nos pondremos en contacto para confirmar su reserva. +

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+
+
+ + +
+
+
+
+

{{ especialidad_culinaria.titulo or 'Nuestra Especialidad' }}

+

{{ especialidad_culinaria.descripcion or 'Cada plato es una obra de arte, preparado con ingredientes de la más alta calidad y técnicas culinarias refinadas que honran la tradición gastronómica.' }}

+
+
+ Especialidad Culinaria +
+
+
+
+ + +
+
+

Contacto

+
+
+

Información de Contacto

+

Dirección: {{ direccion or 'Avenida Principal 456, Ciudad' }}

+

Teléfono: {{ telefono or '+34 987 654 321' }}

+

Email: {{ email or 'contacto@restaurante.com' }}

+ {% if capacidad %} +

Capacidad: {{ capacidad }} personas

+ {% endif %} +
+ {% if redes_sociales.facebook %} + 📘 + {% endif %} + {% if redes_sociales.instagram %} + 📷 + {% endif %} + {% if redes_sociales.twitter %} + 🐦 + {% endif %} + {% if redes_sociales.whatsapp %} + 💬 + {% endif %} +
+
+
+

Ubicación

+ {% if mapa_url %} + + {% else %} +

Mapa de ubicación disponible próximamente

+ {% endif %} +
+
+
+
+ + +
+
+

© 2025 {{ site_name or 'Restaurante Elegante' }}. Todos los derechos reservados.

+
+
+ + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/themes/restaurante-moderno/config.json b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/themes/restaurante-moderno/config.json new file mode 100644 index 0000000..3a86663 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/themes/restaurante-moderno/config.json @@ -0,0 +1,30 @@ +{ + "name": "Restaurante Moderno", + "rubro": "restaurante", + "description": "Tema elegante para restaurantes", + "sections": [ + "hero", + "menu", + "horarios", + "reservas", + "especialidad_culinaria", + "contacto" + ], + "colors": { + "primary": "#c94d4d", + "secondary": "#d97757", + "accent": "#f4a261", + "text": "#2c2c2c" + }, + "typography": { + "font_family": "Roboto", + "headings": "Playfair Display" + }, + "features": { + "menu_url": true, + "horarios": true, + "reservas": true, + "capacidad": true, + "especialidad_culinaria": true + } +} diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/themes/restaurante-moderno/style.css b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/themes/restaurante-moderno/style.css new file mode 100644 index 0000000..fde8fef --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/themes/restaurante-moderno/style.css @@ -0,0 +1,44 @@ +/* Estilos adicionales para el tema Restaurante Moderno */ +/* Estos estilos complementan el template.html */ + +/* Animaciones suaves */ +@keyframes fadeInUp { + from { + opacity: 0; + transform: translateY(30px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.section { + animation: fadeInUp 0.6s ease-out; +} + +/* Efectos hover mejorados */ +.menu-item, +.horario-item { + transition: all 0.3s ease; +} + +/* Scroll suave */ +html { + scroll-behavior: smooth; +} + +/* Mejoras responsive */ +@media (max-width: 480px) { + .hero h1 { + font-size: 32px; + } + + .section-title { + font-size: 32px; + } + + .menu-grid { + grid-template-columns: 1fr; + } +} diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/themes/restaurante-moderno/template.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/themes/restaurante-moderno/template.html new file mode 100644 index 0000000..8e5b805 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/themes/restaurante-moderno/template.html @@ -0,0 +1,1329 @@ + + + + + + + {{ site_name or 'Restaurante' }} + + + + + + + + + +
+ +
+ + +
+
+

{{ hero_title + or 'Bienvenido a Nuestro Restaurante' }}

+

{{ + hero_description or 'Sabores auténticos que despiertan tus sentidos' }}

+ Reservar Mesa +
+
+ + + + + +
+
+

Horarios de Atención

+
+
+

Lunes - Viernes

+

{{ horarios.lunes_viernes or '12:00 PM - 10:00 PM' }}

+
+
+

Sábados

+

+ {{ horarios.sabados or '12:00 PM - 11:00 PM' }}

+
+
+

Domingos

+

+ {{ horarios.domingos or '12:00 PM - 9:00 PM' }}

+
+
+
+
+ + +
+
+

Reserva tu Mesa

+
+

+ Completa el formulario y nos pondremos en contacto contigo para confirmar tu reserva. +

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+
+
+ + +
+
+
+
+

{{ especialidad_culinaria.titulo or 'Nuestra Especialidad' }}

+

{{ especialidad_culinaria.descripcion or 'Cada plato es una obra de arte culinaria, preparado con + ingredientes frescos y técnicas tradicionales que honran la autenticidad de nuestros sabores.' + }}

+
+
+ Especialidad Culinaria +
+
+
+
+ + +
+
+

Contacto

+
+
+

Información de Contacto

+

Dirección: {{ direccion or 'Calle Principal 123, Ciudad' }}

+

Teléfono: {{ telefono or '+34 123 456 789' }}

+

Email: {{ email or 'contacto@restaurante.com' }}

+ {% if capacidad %} +

Capacidad: {{ capacidad }} personas

+ {% else %} +

Capacidad: 50 personas

+ {% endif %} + +
+ {% if redes_sociales.facebook %} + + {% endif %} + {% if redes_sociales.instagram %} + + {% endif %} + + + +
+
+
+

+ Ubicación

+ {% if mapa_url %} +
+ +
+ {% else %} + +

+ ➕ Click para añadir mapa de Google Maps

+ {% endif %} +
+
+
+
+ + +
+ {% if blocks %} + {% for block in blocks|sort(attribute='order') %} +
+
+ {% if block.type == 'video' %} +
+ {% if block.content.url %} +
+ +
+ {% else %} +

➕ Click para + añadir + URL de video (YouTube/Vimeo)

+ {% endif %} +
+ {% elif block.type == 'imagen' %} +
+ {% if block.content.url %} + {{ block.content.alt or '' }} + {% else %} +

➕ Click para + añadir + URL de imagen

+ {% endif %} +
+ {% elif block.type == 'texto' %} +
+

{{ block.content.titulo or 'Título del bloque' }}

+

{{ block.content.contenido or 'Contenido del bloque...' }}

+
+ {% elif block.type == 'redes_sociales' %} +
+

Síguenos en Redes Sociales

+
+ {% if block.content.facebook %} + + {% endif %} + {% if block.content.instagram %} + + {% endif %} +
+
+ {% elif block.type == 'mapa' %} +
+ {% if block.content.url %} + + {% else %} +

➕ Click para + añadir + URL de Google Maps (Compartir → Insertar mapa)

+ {% endif %} +
+ {% endif %} +
+ +
+ {% endfor %} + {% endif %} +
+ + +
+
+

© 2025 {{ site_name or 'Restaurante' }}. Todos los derechos reservados.

+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/ver_usuarios.py b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/ver_usuarios.py new file mode 100644 index 0000000..a2df7f9 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/demo/ver_usuarios.py @@ -0,0 +1,78 @@ +""" +GKACHELE™ - Script para ver usuarios registrados +© 2025 GKACHELE™. Todos los derechos reservados. +Uso: python ver_usuarios.py +""" + +import sqlite3 +import os +from datetime import datetime + +# Ruta de la base de datos +BASE_DIR = os.path.dirname(__file__) +DATABASE_DIR = os.path.join(BASE_DIR, 'database') +MAIN_DB = os.path.join(DATABASE_DIR, 'main.db') + +def ver_usuarios(): + """Ver todos los usuarios registrados""" + if not os.path.exists(MAIN_DB): + print(f"❌ No se encontró la base de datos en: {MAIN_DB}") + return + + try: + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Obtener usuarios + c.execute('SELECT id, email, plan, rubro, created_at FROM users ORDER BY id') + users = c.fetchall() + + if not users: + print("📭 No hay usuarios registrados aún") + return + + print("=" * 80) + print("👥 USUARIOS REGISTRADOS") + print("=" * 80) + print(f"{'ID':<5} {'Email':<35} {'Plan':<10} {'Rubro':<15} {'Fecha Registro':<20}") + print("-" * 80) + + for user in users: + user_id, email, plan, rubro, created_at = user + # Formatear fecha + fecha = created_at if created_at else 'N/A' + print(f"{user_id:<5} {email:<35} {plan:<10} {rubro:<15} {fecha:<20}") + + print("-" * 80) + print(f"Total: {len(users)} usuario(s)") + + # Obtener sitios por usuario + print("\n" + "=" * 80) + print("🌐 SITIOS POR USUARIO") + print("=" * 80) + + for user in users: + user_id, email, plan, rubro, created_at = user + c.execute('SELECT id, slug, theme, status, created_at FROM sites WHERE user_id = ? ORDER BY id', (user_id,)) + sites = c.fetchall() + + print(f"\n👤 Usuario ID {user_id} ({email}):") + if sites: + print(f" {'ID':<5} {'Slug':<25} {'Tema':<20} {'Estado':<12} {'Fecha':<20}") + print(" " + "-" * 82) + for site in sites: + site_id, slug, theme, status, site_created = site + fecha = site_created if site_created else 'N/A' + print(f" {site_id:<5} {slug:<25} {theme:<20} {status:<12} {fecha:<20}") + else: + print(" ⚠️ No tiene sitios creados") + + conn.close() + + except Exception as e: + print(f"❌ Error: {e}") + import traceback + traceback.print_exc() + +if __name__ == '__main__': + ver_usuarios() diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/deploy_full.sh b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/deploy_full.sh new file mode 100644 index 0000000..c7acd88 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/deploy_full.sh @@ -0,0 +1,32 @@ +#!/bin/bash +# Despliegue completo a Raspberry Pi + +RASPBERRY_USER="pi" +RASPBERRY_HOST="192.168.1.134" +RASPBERRY_PORT="2222" +RASPBERRY_PASS="Gdk1983gdk45@" +RASPBERRY_PATH="/home/pi/gkachele-saas" +LOCAL_PATH="/mnt/c/word/demo" + +echo "🚀 Iniciando despliegue completo..." + +# 1. Copiar app.py +echo "📦 Copiando app.py..." +sshpass -p "$RASPBERRY_PASS" scp -P $RASPBERRY_PORT -o StrictHostKeyChecking=no $LOCAL_PATH/app.py $RASPBERRY_USER@$RASPBERRY_HOST:$RASPBERRY_PATH/app.py + +# 2. Copiar Templates (customizer.html) +echo "📦 Copiando templates..." +sshpass -p "$RASPBERRY_PASS" scp -P $RASPBERRY_PORT -o StrictHostKeyChecking=no -r $LOCAL_PATH/templates/* $RASPBERRY_USER@$RASPBERRY_HOST:$RASPBERRY_PATH/templates/ + +# 3. Copiar Themes (restaurante-moderno/template.html) +# Asegurar que directorio themes existe +sshpass -p "$RASPBERRY_PASS" ssh -p $RASPBERRY_PORT -o StrictHostKeyChecking=no $RASPBERRY_USER@$RASPBERRY_HOST "mkdir -p $RASPBERRY_PATH/themes" + +echo "📦 Copiando themes..." +sshpass -p "$RASPBERRY_PASS" scp -P $RASPBERRY_PORT -o StrictHostKeyChecking=no -r $LOCAL_PATH/themes/* $RASPBERRY_USER@$RASPBERRY_HOST:$RASPBERRY_PATH/themes/ + +# 4. Reiniciar servicio +echo "🔄 Reiniciando servicio..." +sshpass -p "$RASPBERRY_PASS" ssh -p $RASPBERRY_PORT -o StrictHostKeyChecking=no $RASPBERRY_USER@$RASPBERRY_HOST 'sudo systemctl restart gkachele-saas' + +echo "✅ ¡Despliegue completado! Refresca el navegador." diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/gitea_connector.py b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/gitea_connector.py new file mode 100644 index 0000000..09b36b1 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/gitea_connector.py @@ -0,0 +1,78 @@ +import requests +import json +import os + +# CONFIGURACIÓN +# Cuando tengas el token, ponlo aquí o en variable de entorno +GITEA_URL = "http://git.gk-saas.komkida.duckdns.org" # Interno: "http://localhost:3000" si corre en la misma Pi +GITEA_TOKEN = "20e7a102677c5cd7e2e0a241e9ea1cf6364db643" + +def create_org(org_name): + """Crea una organización para un cliente (ej. 'cliente-123')""" + headers = { + 'Authorization': f'token {GITEA_TOKEN}', + 'Content-Type': 'application/json' + } + data = { + "username": org_name, + "visibility": "private", + "description": f"Organización para {org_name}", + "website": "" + } + + response = requests.post(f"{GITEA_URL}/api/v1/orgs", headers=headers, json=data) + + if response.status_code == 201: + print(f"✅ Organización '{org_name}' creada.") + return True + elif response.status_code == 422: + print(f"ℹ️ La organización '{org_name}' ya existe.") + return True + else: + print(f"❌ Error al crear organización: {response.text}") + return False + +def create_repo(org_name, repo_name, description="Sitio generado por GKACHELE SaaS"): + """Crea un repositorio dentro de una organización""" + headers = { + 'Authorization': f'token {GITEA_TOKEN}', + 'Content-Type': 'application/json' + } + data = { + "name": repo_name, + "description": description, + "private": True, + "auto_init": True, # Crea README y branch main automáticamente + "gitignores": "Python", + "license": "MIT", + "default_branch": "main" + } + + # Endpoint para crear repo en organización + url = f"{GITEA_URL}/api/v1/orgs/{org_name}/repos" + + response = requests.post(url, headers=headers, json=data) + + if response.status_code == 201: + repo_data = response.json() + print(f"✅ Repositorio '{org_name}/{repo_name}' creado exitosamente.") + print(f"🔗 Clone URL: {repo_data['clone_url']}") + return repo_data + elif response.status_code == 409: + print(f"ℹ️ El repositorio '{repo_name}' ya existe en '{org_name}'.") + # Intentar obtener el repo existente + # response = requests.get(f"{GITEA_URL}/api/v1/repos/{org_name}/{repo_name}", headers=headers) + return None + else: + print(f"❌ Error al crear repositorio: {response.text}") + return None + +if __name__ == "__main__": + print("--- 🧪 Test de Conexión con Gitea ---") + if GITEA_TOKEN == "TU_TOKEN_DE_GITEA_AQUI": + print("⚠️ Primero genera un token en Gitea (Settings -> Applications -> Generate Token)") + else: + # Prueba + CLIENTE_TEST = "cliente-prueba-1" + create_org(CLIENTE_TEST) + create_repo(CLIENTE_TEST, "sitio-web-1") diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/setup-cron.sh b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/setup-cron.sh new file mode 100644 index 0000000..d4d94bd --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/setup-cron.sh @@ -0,0 +1,9 @@ +#!/bin/bash +# Script para configurar cron en Raspberry + +# Agregar entrada de cron +(crontab -l 2>/dev/null; echo "*/5 * * * * /home/pi/scripts/update-raspberry-cron.sh") | crontab - + +# Verificar +echo "Cron configurado:" +crontab -l diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/setup_cron.py b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/setup_cron.py new file mode 100644 index 0000000..3495370 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/setup_cron.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python3 +# Script para configurar cron en Raspberry + +import subprocess +import sys + +# Obtener crontab actual +try: + result = subprocess.run(['sudo', 'crontab', '-u', 'pi', '-l'], + capture_output=True, text=True, check=False) + current_cron = result.stdout +except: + current_cron = "" + +# Nueva entrada +new_entry = "*/5 * * * * /home/pi/scripts/update-raspberry-cron.sh\n" + +# Verificar si ya existe +if new_entry.strip() in current_cron: + print("✅ La entrada de cron ya existe") + sys.exit(0) + +# Agregar nueva entrada +new_cron = current_cron + new_entry + +# Escribir nuevo crontab +try: + process = subprocess.Popen(['sudo', 'crontab', '-u', 'pi', '-'], + stdin=subprocess.PIPE, text=True) + process.communicate(input=new_cron) + if process.returncode == 0: + print("✅ Cron configurado exitosamente") + # Mostrar crontab + subprocess.run(['sudo', 'crontab', '-u', 'pi', '-l']) + else: + print("❌ Error configurando cron") + sys.exit(1) +except Exception as e: + print(f"❌ Error: {e}") + sys.exit(1) diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/sync-from-pc.sh b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/sync-from-pc.sh new file mode 100644 index 0000000..425ba6a --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/sync-from-pc.sh @@ -0,0 +1,32 @@ +#!/bin/bash +# Script para ejecutar en Raspberry - copia código desde PC local +# Este script se ejecuta en la Raspberry vía cron cada 5 minutos + +# Configuración - IP del PC (ajustar según tu red local) +PC_IP="192.168.1.XXX" # CAMBIAR POR LA IP DE TU PC +PC_USER="elanchok91" # Usuario del PC +PC_PATH="/mnt/c/word/demo" # Ruta en WSL del PC +RASPBERRY_PATH="/home/pi/gkachele-saas" +LOG_FILE="/tmp/sync-from-pc.log" + +echo "$(date '+%Y-%m-%d %H:%M:%S'): 🔄 Iniciando sincronización desde PC..." >> $LOG_FILE + +# Verificar si el PC está disponible +if ping -c 1 -W 2 $PC_IP &> /dev/null; then + # Intentar copiar usando scp (requiere SSH en el PC) + # Si el PC tiene SSH habilitado, usar esto: + # scp -o StrictHostKeyChecking=no -r $PC_USER@$PC_IP:$PC_PATH/* $RASPBERRY_PATH/ 2>>$LOG_FILE + + # Alternativa: usar rsync si está disponible + # rsync -avz --delete $PC_USER@$PC_IP:$PC_PATH/ $RASPBERRY_PATH/ 2>>$LOG_FILE + + echo "$(date '+%Y-%m-%d %H:%M:%S'): ⚠️ PC disponible pero necesita configuración SSH" >> $LOG_FILE + echo "$(date '+%Y-%m-%d %H:%M:%S'): 💡 Usar método alternativo: script en PC que copia a Raspberry" >> $LOG_FILE +else + echo "$(date '+%Y-%m-%d %H:%M:%S'): ⚠️ PC no disponible ($PC_IP)" >> $LOG_FILE +fi + +# Reiniciar servicio si hay cambios (verificar hash o timestamp) +sudo systemctl restart gkachele-saas 2>/dev/null || (sudo pkill -f "python3 app.py" && sleep 1 && cd $RASPBERRY_PATH && nohup python3 app.py > /tmp/app.log 2>&1 &) + +echo "$(date '+%Y-%m-%d %H:%M:%S'): ✅ Sincronización completada" >> $LOG_FILE diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/sync-to-raspberry.sh b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/sync-to-raspberry.sh new file mode 100644 index 0000000..a3023f9 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/sync-to-raspberry.sh @@ -0,0 +1,31 @@ +#!/bin/bash +# Script para ejecutar en PC (WSL) - copia código a Raspberry cada 5 minutos +# Este script se ejecuta en el PC vía cron y copia a la Raspberry + +# Configuración +RASPBERRY_USER="pi" +RASPBERRY_HOST="192.168.1.134" +RASPBERRY_PORT="2222" +RASPBERRY_PASS="Gdk1983gdk45@" +RASPBERRY_PATH="/home/pi/gkachele-saas" +LOCAL_PATH="/mnt/c/word/demo" +LOG_FILE="/tmp/sync-to-raspberry.log" + +echo "$(date '+%Y-%m-%d %H:%M:%S'): 🔄 Sincronizando código a Raspberry..." >> $LOG_FILE + +# Copiar archivos principales +sshpass -p "$RASPBERRY_PASS" scp -P $RASPBERRY_PORT -o StrictHostKeyChecking=no \ + $LOCAL_PATH/app.py \ + $RASPBERRY_USER@$RASPBERRY_HOST:$RASPBERRY_PATH/app.py 2>>$LOG_FILE + +# Copiar templates +sshpass -p "$RASPBERRY_PASS" scp -P $RASPBERRY_PORT -o StrictHostKeyChecking=no -r \ + $LOCAL_PATH/templates/* \ + $RASPBERRY_USER@$RASPBERRY_HOST:$RASPBERRY_PATH/templates/ 2>>$LOG_FILE + +# Reiniciar servicio en Raspberry +sshpass -p "$RASPBERRY_PASS" ssh -p $RASPBERRY_PORT -o StrictHostKeyChecking=no \ + $RASPBERRY_USER@$RASPBERRY_HOST \ + "sudo systemctl restart gkachele-saas 2>/dev/null || (sudo pkill -f 'python3 app.py' && sleep 1 && cd $RASPBERRY_PATH && nohup python3 app.py > /tmp/app.log 2>&1 &)" 2>>$LOG_FILE + +echo "$(date '+%Y-%m-%d %H:%M:%S'): ✅ Sincronización completada" >> $LOG_FILE diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/update-app-raspberry.sh b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/update-app-raspberry.sh new file mode 100644 index 0000000..5dacb8a --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/update-app-raspberry.sh @@ -0,0 +1,5 @@ +#!/bin/bash +# Script para actualizar app en Raspberry (ejecutar desde cron) +cd ~/gkachele-saas +# Reiniciar servicio si existe, sino reiniciar proceso +sudo systemctl restart gkachele-saas 2>/dev/null || (sudo pkill -f "python3 app.py" && sleep 1 && nohup python3 app.py > /tmp/app.log 2>&1 &) diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/update-code-pi.sh b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/update-code-pi.sh new file mode 100644 index 0000000..05402a0 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/update-code-pi.sh @@ -0,0 +1,7 @@ +#!/bin/bash +echo "🚀 Actualizando GKACHELE SaaS en Raspberry Pi..." +sshpass -p 'Gdk1983gdk45@' scp -P 2222 -o StrictHostKeyChecking=no /mnt/c/word/demo/app.py pi@192.168.1.134:/home/pi/gkachele-saas/app.py +sshpass -p 'Gdk1983gdk45@' scp -P 2222 -o StrictHostKeyChecking=no /mnt/c/word/gitea_connector.py pi@192.168.1.134:/home/pi/gkachele-saas/gitea_connector.py +echo "✅ Archivos copiados. Reiniciando servicio..." +sshpass -p 'Gdk1983gdk45@' ssh -p 2222 -o StrictHostKeyChecking=no pi@192.168.1.134 'sudo systemctl restart gkachele-saas' +echo "✅ Servicio reiniciado. ¡Fábrica de Sitios ACTIVA!" diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/update-from-pc.sh b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/update-from-pc.sh new file mode 100644 index 0000000..e69de29 diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/update-komkida-duckdns.py b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/update-komkida-duckdns.py new file mode 100644 index 0000000..84fa956 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/update-komkida-duckdns.py @@ -0,0 +1,4 @@ +#!/usr/bin/env python3 +import urllib.request +response = urllib.request.urlopen("https://www.duckdns.org/update?domains=komkida&token=9c5cff88-b6d7-4704-9b10-4a69afdff797&ip=") +print("DuckDNS actualizado:", response.read().decode()) diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/update-raspberry-cron.sh b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/update-raspberry-cron.sh new file mode 100644 index 0000000..09b83f8 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/update-raspberry-cron.sh @@ -0,0 +1,27 @@ +#!/bin/bash +# Script para ejecutar en Raspberry - actualiza desde PC cada 5 minutos +# Este script se ejecuta en la Raspberry vía cron + +RASPBERRY_PATH="/home/pi/gkachele-saas" +LOG_FILE="/tmp/update-raspberry.log" + +echo "$(date '+%Y-%m-%d %H:%M:%S'): 🔄 Iniciando actualización..." >> $LOG_FILE + +# Ejecutar script del PC que copia a Raspberry (si está disponible) +# El script del PC se ejecuta desde WSL y copia archivos +# Por ahora, solo reiniciamos el servicio para aplicar cambios si los hay + +# Reiniciar servicio +sudo systemctl restart gkachele-saas 2>/dev/null +if [ $? -eq 0 ]; then + echo "$(date '+%Y-%m-%d %H:%M:%S'): ✅ Servicio reiniciado" >> $LOG_FILE +else + # Si no hay servicio systemd, reiniciar proceso manualmente + sudo pkill -f "python3 app.py" 2>/dev/null + sleep 1 + cd $RASPBERRY_PATH + nohup python3 app.py > /tmp/app.log 2>&1 & + echo "$(date '+%Y-%m-%d %H:%M:%S'): ✅ Proceso reiniciado manualmente" >> $LOG_FILE +fi + +echo "$(date '+%Y-%m-%d %H:%M:%S'): ✅ Actualización completada" >> $LOG_FILE diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/update-raspberry.sh b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/update-raspberry.sh new file mode 100644 index 0000000..1a99f95 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/update-raspberry.sh @@ -0,0 +1,19 @@ +#!/bin/bash +# Script para actualizar código en Raspberry Pi automáticamente + +# Configuración +RASPBERRY_USER="pi" +RASPBERRY_HOST="komkida.duckdns.org" +RASPBERRY_PORT="2222" +RASPBERRY_PATH="/home/pi/gkachele-saas" +LOCAL_PATH="demo" + +echo "🔄 Actualizando código en Raspberry Pi..." + +# Copiar archivos +scp -P $RASPBERRY_PORT -r $LOCAL_PATH/* $RASPBERRY_USER@$RASPBERRY_HOST:$RASPBERRY_PATH/ + +# Reiniciar servicio +ssh -p $RASPBERRY_PORT $RASPBERRY_USER@$RASPBERRY_HOST "sudo systemctl restart gkachele-saas" + +echo "✅ Actualización completa" diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/update_duckdns.py b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/update_duckdns.py new file mode 100644 index 0000000..20db4d2 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/update_duckdns.py @@ -0,0 +1,4 @@ +#!/usr/bin/env python3 +import urllib.request +response = urllib.request.urlopen("https://www.duckdns.org/update?domains=gkachele&token=578331b3-ad7b-4154-835d-e496465257b0&ip=") +print(response.read().decode()) diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/verificar_codigo.sh b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/verificar_codigo.sh new file mode 100644 index 0000000..1b6e4ea --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/verificar_codigo.sh @@ -0,0 +1,7 @@ +#!/bin/bash +echo "=== Línea 247-249 de app.py ===" +sed -n '247,249p' /home/pi/gkachele-saas/app.py + +echo "" +echo "=== Línea 120 de register.html ===" +sed -n '120p' /home/pi/gkachele-saas/templates/register.html diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/verificar_raspberry.sh b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/verificar_raspberry.sh new file mode 100644 index 0000000..6e6f448 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/verificar_raspberry.sh @@ -0,0 +1,29 @@ +#!/bin/bash +echo "=== Verificando estructura en Raspberry ===" +echo "" +echo "1. Templates _gkachele:" +sshpass -p 'Gdk1983gdk45@' ssh -p 2222 -o StrictHostKeyChecking=no pi@192.168.1.134 'ls -la /home/pi/gkachele-saas/themes/_gkachele/' + +echo "" +echo "2. Función render_gkachele_template:" +sshpass -p 'Gdk1983gdk45@' ssh -p 2222 -o StrictHostKeyChecking=no pi@192.168.1.134 'grep -c "def render_gkachele_template" /home/pi/gkachele-saas/app.py && echo "✅ Función encontrada" || echo "❌ Función NO encontrada"' + +echo "" +echo "3. Tablas en base de datos:" +sshpass -p 'Gdk1983gdk45@' ssh -p 2222 -o StrictHostKeyChecking=no pi@192.168.1.134 'python3 << EOF +import sqlite3 +conn = sqlite3.connect("/home/pi/gkachele-saas/database/main.db") +c = conn.cursor() +c.execute("SELECT name FROM sqlite_master WHERE type=\"table\"") +tables = [r[0] for r in c.fetchall()] +print("Tablas:", ", ".join(tables)) +if "menus" in tables and "widgets" in tables: + print("✅ Tablas menus y widgets creadas") +else: + print("⚠️ Faltan tablas menus o widgets") +conn.close() +EOF' + +echo "" +echo "4. Estado del servicio:" +sshpass -p 'Gdk1983gdk45@' ssh -p 2222 -o StrictHostKeyChecking=no pi@192.168.1.134 'sudo systemctl is-active gkachele-saas && echo "✅ Servicio activo" || echo "❌ Servicio inactivo"' diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/verificar_redirect.sh b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/verificar_redirect.sh new file mode 100644 index 0000000..bd86795 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/local/verificar_redirect.sh @@ -0,0 +1,7 @@ +#!/bin/bash +echo "=== Verificando app.py ===" +grep -A 2 "redirect_url\|redirect.*customizer" /home/pi/gkachele-saas/app.py | head -5 + +echo "" +echo "=== Verificando register.html ===" +grep -A 1 "redirectUrl\|result.redirect" /home/pi/gkachele-saas/templates/register.html | head -5 diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/PENDIENTES_MEJORAS.md b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/PENDIENTES_MEJORAS.md new file mode 100644 index 0000000..1cdbfe5 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/PENDIENTES_MEJORAS.md @@ -0,0 +1,271 @@ +# 📋 Pendientes y Mejoras - GKACHELE™ + +**© 2025 GKACHELE™. Todos los derechos reservados.** + +**Hash:** `gkachele-pendientes-20250115-002` + +**Fecha:** 2025-01-15 + +--- + +## ✅ FUNCIONALIDADES COMPLETADAS + +1. ✅ Sistema de bloques añadibles (video, imagen, texto, redes sociales, mapa) +2. ✅ Iconos SVG para redes sociales +3. ✅ Click to edit en preview +4. ✅ Gestión de platos del menú (añadir/eliminar) +5. ✅ Actualización en tiempo real del preview +6. ✅ Drag & drop básico para bloques + +--- + +## 🔧 MEJORAS PENDIENTES + +### 1. 🗺️ Mapa Automático desde Dirección + +**Estado:** Pendiente + +**Requisito:** +- El mapa debe generarse automáticamente usando la dirección del campo "Dirección" +- No debe requerir URL manual +- Usar Google Maps Embed API sin API key (o geocoding simple) + +**Implementación:** +```javascript +// Cuando cambie la dirección, generar automáticamente el mapa +function generateMapFromAddress(address) { + // Convertir dirección a URL de Google Maps embed + const encodedAddress = encodeURIComponent(address); + const mapUrl = `https://www.google.com/maps/embed/v1/place?key=AIzaSy...&q=${encodedAddress}`; + // O usar iframe con búsqueda directa + const mapUrl = `https://www.google.com/maps?q=${encodedAddress}&output=embed`; + return mapUrl; +} +``` + +**Archivos a modificar:** +- `demo/templates/customizer.html` - Auto-generar mapa_url cuando cambie dirección +- `demo/themes/restaurante-moderno/template.html` - Usar dirección si no hay mapa_url + +--- + +### 2. 📁 Upload de Archivos (Drag & Drop) + +**Estado:** Pendiente + +**Requisito:** +- Arrastrar y soltar archivos en campos de Media +- O abrir navegador de archivos +- No usar URLs manuales +- Subir a servidor y guardar ruta + +**Implementación:** +```html + +
+ + +

O arrastra y suelta aquí

+
+``` + +```python +# En app.py +@app.route('/api/upload', methods=['POST']) +def upload_file(): + if 'file' not in request.files: + return jsonify({'error': 'No file'}), 400 + file = request.files['file'] + if file.filename == '': + return jsonify({'error': 'No file selected'}), 400 + filename = secure_filename(file.filename) + filepath = os.path.join(UPLOAD_FOLDER, filename) + file.save(filepath) + return jsonify({'url': f'/uploads/{filename}'}) +``` + +**Archivos a modificar:** +- `demo/templates/customizer.html` - Añadir drag & drop a campos Media +- `demo/app.py` - Endpoint de upload +- `demo/static/` - Carpeta para uploads + +--- + +### 3. 🗑️ Eliminar Bloques (Arreglar) + +**Estado:** Bug - No funciona + +**Problema:** +- Los bloques no se eliminan correctamente +- El botón "🗑️ Eliminar" no funciona en preview + +**Solución:** +```javascript +// En template.html - función debe estar disponible globalmente +function removeBlockFromPreview(blockId) { + if (window.parent !== window) { + window.parent.postMessage({ + type: 'remove-block', + block_id: blockId + }, '*'); + } else { + // Si no está en iframe, llamar directamente + removeBlock(blockId); + } +} + +// En customizer.html - escuchar mensaje +window.addEventListener('message', function(e) { + if (e.data && e.data.type === 'remove-block') { + removeBlock(e.data.block_id); + } +}); +``` + +**Archivos a modificar:** +- `demo/themes/restaurante-moderno/template.html` - Arreglar función removeBlockFromPreview +- `demo/templates/customizer.html` - Asegurar que escucha mensajes correctamente + +--- + +### 4. 🧩 Eliminar Zonas/Secciones (Como WordPress) + +**Estado:** Pendiente + +**Requisito:** +- Poder eliminar secciones completas (Hero, Menú, Horarios, Contacto, etc.) +- Como WordPress: cada sección puede ocultarse/eliminarse +- Guardar estado en content_json + +**Implementación:** +```json +{ + "sections": { + "hero": {"visible": true, "enabled": true}, + "menu": {"visible": true, "enabled": true}, + "horarios": {"visible": false, "enabled": false}, + "contacto": {"visible": true, "enabled": true} + } +} +``` + +```html + +{% if sections.hero.enabled %} +
+ + +
+{% endif %} +``` + +**Archivos a modificar:** +- `demo/templates/customizer.html` - Añadir controles para secciones +- `demo/themes/restaurante-moderno/template.html` - Renderizar condicionalmente +- `demo/app.py` - Endpoint para toggle de secciones + +--- + +### 5. ✏️ Edición de Contenido de Bloques + +**Estado:** Pendiente + +**Requisito:** +- Cada bloque añadido debe ser editable +- Click en bloque → editar contenido +- Modal o inline editor según tipo + +**Implementación:** +```javascript +function editBlock(blockId) { + const block = blocks.find(b => b.id === blockId); + if (!block) return; + + // Abrir modal según tipo + if (block.type === 'texto') { + openTextEditor(block); + } else if (block.type === 'video') { + openVideoEditor(block); + } else if (block.type === 'redes_sociales') { + openSocialEditor(block); + } +} +``` + +**Archivos a modificar:** +- `demo/templates/customizer.html` - Añadir función editBlock +- `demo/themes/restaurante-moderno/template.html` - Hacer bloques clickeables + +--- + +### 6. 🔄 Guardado Automático de Orden (Drag & Drop) + +**Estado:** Pendiente + +**Requisito:** +- Al arrastrar y soltar bloques, guardar orden automáticamente +- No esperar a añadir/eliminar + +**Implementación:** +```javascript +function handleDrop(e) { + e.preventDefault(); + // Reordenar bloques + const newOrder = Array.from(document.querySelectorAll('.gk-block')) + .map(block => block.dataset.blockId); + + // Guardar orden inmediatamente + fetch('/api/customizer/reorder-blocks', { + method: 'POST', + headers: {'Content-Type': 'application/json'}, + body: JSON.stringify({ + site_id: siteId, + block_ids: newOrder + }) + }); +} +``` + +**Archivos a modificar:** +- `demo/themes/restaurante-moderno/template.html` - Mejorar drag & drop +- `demo/templates/customizer.html` - Guardar orden automáticamente + +--- + +## 📝 CHECKLIST DE IMPLEMENTACIÓN + +### Prioridad Alta (Próxima sesión) +- [ ] Arreglar eliminación de bloques +- [ ] Mapa automático desde dirección +- [ ] Upload de archivos (drag & drop) + +### Prioridad Media +- [ ] Eliminar/ocultar secciones +- [ ] Edición de contenido de bloques +- [ ] Guardado automático de orden + +### Prioridad Baja +- [ ] Mejoras de UI/UX +- [ ] Validaciones adicionales +- [ ] Optimizaciones de rendimiento + +--- + +## 🔗 REFERENCIAS + +- WordPress: Sistema de secciones ocultables +- Elementor: Drag & drop de bloques +- Google Maps: Embed sin API key (búsqueda directa) + +--- + +## 📌 NOTAS + +- El menú de platos ya funciona correctamente (añadir/eliminar) ✅ +- Los iconos de redes sociales ya están implementados ✅ +- El sistema de bloques está funcional, solo necesita mejoras ✅ + +--- + +**Última actualización:** 2025-01-15 +**Próxima sesión:** Implementar prioridad alta diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/__pycache__/app.cpython-39.pyc b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/__pycache__/app.cpython-39.pyc new file mode 100644 index 0000000..fc86ec1 Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/__pycache__/app.cpython-39.pyc differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/__pycache__/gitea_connector.cpython-39.pyc b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/__pycache__/gitea_connector.cpython-39.pyc new file mode 100644 index 0000000..bf4cec6 Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/__pycache__/gitea_connector.cpython-39.pyc differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/app.py b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/app.py new file mode 100644 index 0000000..1e3d562 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/app.py @@ -0,0 +1,1700 @@ +""" +GKACHELE™ SaaS PageBuilder - Sistema Profesional +© 2025 GKACHELE™. Todos los derechos reservados. +Desarrollado desde noviembre 2025 por GKACHELE +Código propiedad de GKACHELE © 2025 - Prohibida su reproducción sin autorización +""" + +import os +import json +import sqlite3 +import secrets +from datetime import datetime +from flask import Flask, render_template, request, jsonify, session, redirect, url_for, send_from_directory +from werkzeug.security import generate_password_hash, check_password_hash + +app = Flask(__name__, template_folder='templates', static_folder='static') +app.secret_key = 'demo-secret-key-2025' +app.config['SESSION_COOKIE_SAMESITE'] = 'Lax' + +# Manejador de errores global - siempre devolver JSON +@app.errorhandler(500) +def handle_500(e): + print(f"❌ Error 500: {e}") + import traceback + traceback.print_exc() + # Asegurar que siempre devuelva JSON + response = jsonify({'success': False, 'error': 'Error interno del servidor'}) + response.status_code = 500 + return response + +@app.errorhandler(404) +def handle_404(e): + response = jsonify({'success': False, 'error': 'No encontrado'}) + response.status_code = 404 + return response + +@app.errorhandler(403) +def handle_403(e): + response = jsonify({'success': False, 'error': 'No autorizado'}) + response.status_code = 403 + return response + +# Manejador para excepciones no capturadas - FORZAR JSON +@app.errorhandler(Exception) +def handle_exception(e): + print(f"❌❌❌ EXCEPCIÓN NO CAPTURADA: {e}") + import traceback + traceback.print_exc() + # SIEMPRE devolver JSON, nunca HTML + response = jsonify({'success': False, 'error': f'Error: {str(e)}'}) + response.status_code = 500 + response.headers['Content-Type'] = 'application/json' + return response + +# Forzar JSON en TODAS las rutas /register, /login, /api/* +@app.before_request +def before_request(): + # Si es POST a /register o /login, forzar JSON + if request.method == 'POST' and (request.path.startswith('/register') or + request.path.startswith('/login') or + request.path.startswith('/api/')): + try: + request.get_json(force=True) + except: + pass + +@app.after_request +def add_header(response): + """Permitir iframes para el customizer""" + # Eliminar X-Frame-Options para permitir iframe + response.headers.pop('X-Frame-Options', None) + response.headers['Content-Security-Policy'] = "frame-ancestors *;" + return response + +from functools import wraps +def login_required(f): + @wraps(f) + def decorated_function(*args, **kwargs): + if 'user_id' not in session: + if request.is_json: + return jsonify({'success': False, 'error': 'No autorizado'}), 401 + return redirect(url_for('login')) + return f(*args, **kwargs) + return decorated_function + +# Directorios +BASE_DIR = os.path.dirname(__file__) +DATABASE_DIR = os.path.join(BASE_DIR, 'database') +SITES_DIR = os.path.join(BASE_DIR, 'sites') +THEMES_DIR = os.path.join(BASE_DIR, 'themes') +STATIC_DIR = os.path.join(BASE_DIR, 'static') +UPLOADS_DIR = os.path.join(BASE_DIR, 'uploads') + +# ============================================================================ +# SISTEMA DE TEMPLATES (Estilo WordPress) - GKACHELE™ +# ============================================================================ + +def scan_available_themes(): + """Escanear todos los templates disponibles y cargar sus configuraciones""" + themes = {} + if not os.path.exists(THEMES_DIR): + return themes + + for theme_dir in os.listdir(THEMES_DIR): + theme_path = os.path.join(THEMES_DIR, theme_dir) + if not os.path.isdir(theme_path) or theme_dir.startswith('_'): + continue # Ignorar archivos y carpetas que empiezan con _ + + config_path = os.path.join(theme_path, 'config.json') + template_path = os.path.join(theme_path, 'template.html') + + # Verificar que tenga config.json y template.html + if not os.path.exists(config_path) or not os.path.exists(template_path): + continue + + try: + with open(config_path, 'r', encoding='utf-8') as f: + config = json.load(f) + + themes[theme_dir] = { + 'id': theme_dir, + 'name': config.get('name', theme_dir), + 'description': config.get('description', ''), + 'rubro': config.get('rubro', 'general'), + 'sections': config.get('sections', []), + 'colors': config.get('colors', {}), + 'typography': config.get('typography', {}), + 'features': config.get('features', {}), + 'preview': f'/themes/{theme_dir}/preview.jpg' if os.path.exists(os.path.join(theme_path, 'preview.jpg')) else None + } + except Exception as e: + print(f"⚠️ Error cargando template {theme_dir}: {e}") + continue + + return themes + +def get_theme_config(theme_id): + """Obtener configuración de un template específico""" + config_path = os.path.join(THEMES_DIR, theme_id, 'config.json') + if not os.path.exists(config_path): + return None + + try: + with open(config_path, 'r', encoding='utf-8') as f: + return json.load(f) + except Exception as e: + print(f"⚠️ Error cargando config de {theme_id}: {e}") + return None + +def get_themes_by_rubro(rubro): + """Obtener templates filtrados por rubro""" + all_themes = scan_available_themes() + return {k: v for k, v in all_themes.items() if v.get('rubro') == rubro or v.get('rubro') == 'general'} + +# Crear directorios +# NOTA: Ya no se crean bases de datos separadas (cliente-X.db) +# TODO está en main.db (sistema multi-tenant) +for d in [DATABASE_DIR, SITES_DIR, THEMES_DIR, UPLOADS_DIR]: + os.makedirs(d, exist_ok=True) + +# DB principal +MAIN_DB = os.path.join(DATABASE_DIR, 'main.db') + +def init_db(): + """Inicializar base de datos principal - TODO EN UNA SOLA DB (sistema multi-tenant)""" + try: + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Usuarios (todos los clientes en una sola tabla) - Sistema GKACHELE™ + c.execute('''CREATE TABLE IF NOT EXISTS users ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + email TEXT UNIQUE NOT NULL, + password TEXT NOT NULL, + role TEXT DEFAULT 'subscriber', + plan TEXT DEFAULT 'base', + rubro TEXT DEFAULT 'gimnasio', + status TEXT DEFAULT 'active', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP + )''') + + # Añadir columna role si no existe (migración) + try: + c.execute('ALTER TABLE users ADD COLUMN role TEXT DEFAULT "subscriber"') + except: + pass # Columna ya existe + + # Añadir columna status si no existe (migración) + try: + c.execute('ALTER TABLE users ADD COLUMN status TEXT DEFAULT "active"') + except: + pass # Columna ya existe + + # Crear primer admin si no existe (user_id = 1) + c.execute('SELECT COUNT(*) FROM users WHERE id = 1') + if c.fetchone()[0] == 0: + from werkzeug.security import generate_password_hash + admin_password = generate_password_hash('admin123') # Cambiar después + c.execute('''INSERT INTO users (id, email, password, role, plan, rubro, status) + VALUES (1, 'admin@gkachele.com', ?, 'administrator', 'premium', 'admin', 'active')''', + (admin_password,)) + print("✅ Usuario administrador creado: admin@gkachele.com / admin123") + + # Sitios (todos los sitios, filtrados por user_id) + c.execute('''CREATE TABLE IF NOT EXISTS sites ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + slug TEXT UNIQUE NOT NULL, + theme TEXT DEFAULT 'default', + status TEXT DEFAULT 'draft', + content_json TEXT, + repo_url TEXT, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id) + )''') + + # Migración: Añadir repo_url si no existe + try: + c.execute('ALTER TABLE sites ADD COLUMN repo_url TEXT') + except: + pass # Ya existe + + # Solicitudes + c.execute('''CREATE TABLE IF NOT EXISTS requests ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + site_id INTEGER NOT NULL, + user_id INTEGER NOT NULL, + status TEXT DEFAULT 'pending', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (site_id) REFERENCES sites(id), + FOREIGN KEY (user_id) REFERENCES users(id) + )''') + + # Media (fotos, imágenes del cliente) + c.execute('''CREATE TABLE IF NOT EXISTS media ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER NOT NULL, + filename TEXT NOT NULL, + filepath TEXT NOT NULL, + file_type TEXT DEFAULT 'image', + uploaded_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id) + )''') + + # Content (contenido por sección, filtrado por user_id y site_id) + c.execute('''CREATE TABLE IF NOT EXISTS content ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER NOT NULL, + section TEXT NOT NULL, + data_json TEXT, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id) + )''') + + # Settings (configuraciones por usuario/sitio) + c.execute('''CREATE TABLE IF NOT EXISTS settings ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER, + key TEXT NOT NULL, + value TEXT, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id), + UNIQUE(user_id, site_id, key) + )''') + + # Menus (sistema de menús dinámicos) + c.execute('''CREATE TABLE IF NOT EXISTS menus ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER NOT NULL, + location TEXT NOT NULL, + title TEXT NOT NULL, + url TEXT NOT NULL, + order_index INTEGER DEFAULT 0, + parent_id INTEGER, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id), + FOREIGN KEY (parent_id) REFERENCES menus(id) + )''') + + # Widgets (áreas de widgets dinámicos) + c.execute('''CREATE TABLE IF NOT EXISTS widgets ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER NOT NULL, + area TEXT NOT NULL, + type TEXT NOT NULL, + title TEXT, + content TEXT, + order_index INTEGER DEFAULT 0, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id) + )''') + + conn.commit() + conn.close() + print("✅ Base de datos inicializada (multi-tenant - todos los clientes en main.db)") + except Exception as e: + print(f"❌ Error inicializando DB: {e}") + import traceback + traceback.print_exc() + +init_db() + +# ============================================================================ +# FUNCIONES HELPER - GKACHELE™ Template System +# ============================================================================ + +def get_site_menus(site_id, user_id): + """Obtener menús del sitio organizados por ubicación""" + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('''SELECT location, title, url, order_index, parent_id + FROM menus + WHERE site_id = ? AND user_id = ? + ORDER BY location, order_index''', (site_id, user_id)) + rows = c.fetchall() + conn.close() + + menus = {'header': [], 'footer': [], 'sidebar': []} + for row in rows: + location, title, url, order_index, parent_id = row + menu_item = { + 'title': title, + 'url': url, + 'order': order_index, + 'parent_id': parent_id + } + if location in menus: + menus[location].append(menu_item) + + return menus + +def get_site_widgets(site_id, user_id, area='sidebar'): + """Obtener widgets del sitio por área""" + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('''SELECT type, title, content, order_index + FROM widgets + WHERE site_id = ? AND user_id = ? AND area = ? + ORDER BY order_index''', (site_id, user_id, area)) + rows = c.fetchall() + conn.close() + + widgets = [] + for row in rows: + widget_type, title, content, order_index = row + widgets.append({ + 'type': widget_type, + 'title': title, + 'content': content, + 'order': order_index + }) + + return widgets + +def render_gkachele_template(theme, content, site_id=None, user_id=None): + """Renderizar template usando estructura GKACHELE (header.php, footer.php, sidebar.php)""" + # Obtener menús y widgets si hay site_id + menus = {'header': [], 'footer': [], 'sidebar': []} + widgets = [] + if site_id and user_id: + try: + menus = get_site_menus(site_id, user_id) + widgets = get_site_widgets(site_id, user_id) + except Exception as e: + print(f"⚠️ Error obteniendo menús/widgets: {e}") + + # Cargar template del tema PRIMERO (es el contenido principal) + theme_template = '' + theme_path = os.path.join(THEMES_DIR, theme, 'template.html') + if os.path.exists(theme_path): + with open(theme_path, 'r', encoding='utf-8') as f: + theme_template = f.read() + else: + # Si no existe template del tema, usar template básico + theme_template = ''' +
+

{{ hero_title or 'Bienvenido' }}

+

{{ hero_description or 'Descripción del sitio' }}

+
+ ''' + + # Cargar header, footer, sidebar + header = '' + footer = '' + sidebar = '' + + header_path = os.path.join(THEMES_DIR, '_gkachele', 'header.php') + footer_path = os.path.join(THEMES_DIR, '_gkachele', 'footer.php') + sidebar_path = os.path.join(THEMES_DIR, '_gkachele', 'sidebar.php') + + if os.path.exists(header_path): + with open(header_path, 'r', encoding='utf-8') as f: + header = f.read() + else: + # Header básico si no existe + header = ''' + + + + + {{ site_name or 'GKACHELE Site' }} + + + +
+ +
+
''' + + if os.path.exists(footer_path): + with open(footer_path, 'r', encoding='utf-8') as f: + footer = f.read() + else: + footer = ''' +
+
+

© 2025 GKACHELE™. Todos los derechos reservados.
+ Desarrollado desde noviembre 2025 por GKACHELE
+ Código propiedad de GKACHELE © 2025 - Prohibida su reproducción sin autorización

+
+ +''' + + if os.path.exists(sidebar_path): + with open(sidebar_path, 'r', encoding='utf-8') as f: + sidebar = f.read() + + # Preparar contexto completo - Asegurar que todas las variables esperadas existan + template_data = { + 'site_name': content.get('site_name', 'GKACHELE Site'), + 'hero_title': content.get('hero_title', 'Bienvenido'), + 'hero_description': content.get('hero_description', ''), + 'colors': content.get('colors', {'primary': '#c94d4d', 'secondary': '#d97757', 'accent': '#f4a261', 'text': '#2c2c2c'}), + 'typography': content.get('typography', {'font_family': 'Roboto'}), + 'horarios': content.get('horarios', {}), # Asegurar que horarios siempre existe + 'redes_sociales': content.get('redes_sociales', {}), # Asegurar que redes_sociales siempre existe + 'especialidad_culinaria': content.get('especialidad_culinaria', {}), # Asegurar que especialidad_culinaria siempre existe + 'direccion': content.get('direccion', ''), + 'telefono': content.get('telefono', ''), + 'email': content.get('email', ''), + 'capacidad': content.get('capacidad', ''), + 'mapa_url': content.get('mapa_url', ''), + 'menu_url': content.get('menu_url', ''), + 'menu_items': content.get('menu_items', {}), # Platos del menú + 'blocks': content.get('blocks', []), # Bloques añadibles + 'menus': menus, + 'widgets': widgets, + **content # Incluir todo el contenido adicional (esto sobrescribirá los valores por defecto si existen) + } + + # Renderizar usando Jinja2 + from jinja2 import Template + + # DETECCIÓN DE TEMPLATE COMPLETO (Full Page) + # Forzar restaurante-moderno a ser siempre full page + is_full_page = False + + if theme == 'restaurante-moderno': + is_full_page = True + elif '' in theme_template or '') +def get_theme(theme_id): + """Obtener información detallada de un template""" + config = get_theme_config(theme_id) + if not config: + return jsonify({'success': False, 'error': 'Template no encontrado'}), 404 + + return jsonify({ + 'success': True, + 'theme': { + 'id': theme_id, + **config + } + }) + +@app.route('/customizer/') +def customizer(site_id): + """Customizer: Sidebar + Preview""" + # Verificar que el sitio existe + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT user_id, slug, theme, content_json FROM sites WHERE id = ?', (site_id,)) + site = c.fetchone() + conn.close() + + if not site: + return "Sitio no encontrado", 404 + + # Si hay sesión, verificar que pertenece al usuario + if 'user_id' in session and site[0] != session['user_id']: + return "No autorizado", 403 + + content = json.loads(site[3]) if site[3] else {} + theme = site[2] + + # Cargar template del tema si existe + theme_template = None + theme_path = os.path.join(THEMES_DIR, theme, 'template.html') + if os.path.exists(theme_path): + with open(theme_path, 'r', encoding='utf-8') as f: + theme_template = f.read() + + # Cargar configuración del template + theme_config = get_theme_config(theme) + if theme_config: + # Si el contenido no tiene colores, usar los del template + if not content.get('colors'): + content['colors'] = theme_config.get('colors', {}) + # Si no tiene tipografía, usar la del template + if not content.get('typography'): + content['typography'] = theme_config.get('typography', {}) + + # Obtener todos los templates disponibles para el selector + available_themes = scan_available_themes() + + return render_template('customizer.html', + site_id=site_id, + slug=site[1], + theme=theme, + content=content, + theme_template=theme_template, + theme_config=theme_config, + available_themes=available_themes) + +@app.route('/api/customizer/save', methods=['POST']) +def save_customizer(): + """Guardar cambios del customizer""" + data = request.get_json() + site_id = data.get('site_id') + content = data.get('content') + new_theme = data.get('theme') # Permitir cambiar template + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Si se cambió el template, actualizarlo + if new_theme: + # Verificar que el template existe + theme_config = get_theme_config(new_theme) + if theme_config: + c.execute('UPDATE sites SET theme = ? WHERE id = ?', (new_theme, site_id)) + # Aplicar colores y tipografía por defecto del nuevo template si no existen + if not content.get('colors'): + content['colors'] = theme_config.get('colors', {}) + if not content.get('typography'): + content['typography'] = theme_config.get('typography', {}) + + c.execute('UPDATE sites SET content_json = ? WHERE id = ?', + (json.dumps(content), site_id)) + conn.commit() + conn.close() + + return jsonify({'success': True}) + +@app.route('/api/customizer/update-field', methods=['POST']) +def update_field(): + """Actualizar un campo específico desde preview (click to edit)""" + data = request.get_json() + site_id = data.get('site_id') + field = data.get('field') # Ej: 'hero_title', 'horarios.lunes_viernes' + value = data.get('value') + + if not site_id or not field: + return jsonify({'success': False, 'error': 'Faltan parámetros'}), 400 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Obtener contenido actual + c.execute('SELECT content_json FROM sites WHERE id = ?', (site_id,)) + result = c.fetchone() + if not result: + conn.close() + return jsonify({'success': False, 'error': 'Sitio no encontrado'}), 404 + + content = json.loads(result[0]) if result[0] else {} + + # Actualizar campo (soporta campos anidados como 'horarios.lunes_viernes' o 'menu_items.1.nombre') + if '.' in field: + # Campo anidado: 'horarios.lunes_viernes' o 'menu_items.1.nombre' + parts = field.split('.') + current = content + for i, part in enumerate(parts[:-1]): + if part not in current: + current[part] = {} + # Si es un número, mantener como string key (para menu_items.1, menu_items.2, etc.) + current = current[part] + current[parts[-1]] = value + else: + # Campo simple: 'hero_title' + content[field] = value + + # Guardar + c.execute('UPDATE sites SET content_json = ? WHERE id = ?', + (json.dumps(content), site_id)) + conn.commit() + conn.close() + + return jsonify({'success': True, 'content': content}) + +@app.route('/api/customizer/get-blocks/') +def get_blocks(site_id): + """Obtener bloques del sitio para el customizer""" + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT content_json FROM sites WHERE id = ?', (site_id,)) + result = c.fetchone() + conn.close() + + if not result: + return jsonify({'success': False, 'blocks': []}) + + content = json.loads(result[0]) if result[0] else {} + blocks = content.get('blocks', []) + return jsonify({'success': True, 'blocks': blocks}) + + +@app.route('/api/customizer/get-content/') +def get_content(site_id): + """Obtener contenido completo del sitio""" + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT content_json FROM sites WHERE id = ?', (site_id,)) + result = c.fetchone() + conn.close() + + if not result: + return jsonify({'success': False, 'error': 'Sitio no encontrado'}), 404 + + content = json.loads(result[0]) if result[0] else {} + return jsonify({'success': True, 'content': content}) + +@app.route('/api/customizer/add-block', methods=['POST']) +def add_block(): + """Añadir un nuevo bloque al sitio""" + data = request.get_json() + site_id = data.get('site_id') + block_type = data.get('block_type') + block_content = data.get('content', {}) + + if not site_id or not block_type: + return jsonify({'success': False, 'error': 'Faltan parámetros'}), 400 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT content_json FROM sites WHERE id = ?', (site_id,)) + result = c.fetchone() + + if not result: + conn.close() + return jsonify({'success': False, 'error': 'Sitio no encontrado'}), 404 + + content = json.loads(result[0]) if result[0] else {} + + # Inicializar blocks si no existe + if 'blocks' not in content: + content['blocks'] = [] + + # Crear nuevo bloque + new_block = { + 'id': f'block_{int(time.time() * 1000)}', + 'type': block_type, + 'content': block_content, + 'order': len(content['blocks']) + } + + content['blocks'].append(new_block) + + # Guardar + c.execute('UPDATE sites SET content_json = ? WHERE id = ?', (json.dumps(content), site_id)) + conn.commit() + conn.close() + + return jsonify({'success': True, 'block': new_block}) + +@app.route('/api/customizer/remove-block', methods=['POST']) +def remove_block(): + """Eliminar un bloque del sitio""" + data = request.get_json() + site_id = data.get('site_id') + block_id = data.get('block_id') + + if not site_id or not block_id: + return jsonify({'success': False, 'error': 'Faltan parámetros'}), 400 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT content_json FROM sites WHERE id = ?', (site_id,)) + result = c.fetchone() + + if not result: + conn.close() + return jsonify({'success': False, 'error': 'Sitio no encontrado'}), 404 + + content = json.loads(result[0]) if result[0] else {} + + if 'blocks' in content: + content['blocks'] = [b for b in content['blocks'] if b.get('id') != block_id] + # Reordenar + for i, block in enumerate(content['blocks']): + block['order'] = i + + # Guardar + c.execute('UPDATE sites SET content_json = ? WHERE id = ?', (json.dumps(content), site_id)) + conn.commit() + conn.close() + + return jsonify({'success': True}) + +@app.route('/api/customizer/reorder-blocks', methods=['POST']) +def reorder_blocks(): + """Reordenar bloques""" + data = request.get_json() + site_id = data.get('site_id') + block_ids = data.get('block_ids', []) + + if not site_id: + return jsonify({'success': False, 'error': 'Faltan parámetros'}), 400 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT content_json FROM sites WHERE id = ?', (site_id,)) + result = c.fetchone() + + if not result: + conn.close() + return jsonify({'success': False, 'error': 'Sitio no encontrado'}), 404 + + content = json.loads(result[0]) if result[0] else {} + + if 'blocks' in content: + # Reordenar según block_ids + blocks_dict = {b['id']: b for b in content['blocks']} + content['blocks'] = [blocks_dict[bid] for bid in block_ids if bid in blocks_dict] + for i, block in enumerate(content['blocks']): + block['order'] = i + + # Guardar + c.execute('UPDATE sites SET content_json = ? WHERE id = ?', (json.dumps(content), site_id)) + conn.commit() + conn.close() + + return jsonify({'success': True}) + +@app.route('/api/customizer/preview-frame/') +def preview_frame(site_id): + """Frame del preview - renderiza el template completo con estructura GKACHELE""" + # Obtener datos del sitio + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT theme, content_json, user_id FROM sites WHERE id = ?', (site_id,)) + site = c.fetchone() + conn.close() + + if not site: + return "Sitio no encontrado", 404 + + theme = site[0] + content = json.loads(site[1]) if site[1] else {} + user_id = site[2] + + # Usar función helper para renderizar con estructura GKACHELE + try: + rendered = render_gkachele_template(theme, content, site_id, user_id) + print(f"✅ Template renderizado correctamente para site_id={site_id}, theme={theme}") + return rendered + except Exception as e: + import traceback + print(f"❌ Error renderizando template: {e}") + traceback.print_exc() + # DEVOVER HTML VISIBLE EN EL IFRAME PARA DEBUG + return f""" +
+

❌ Error Renderizando Preview

+

Theme: {theme}

+

Error: {str(e)}

+
{traceback.format_exc()}
+
+ """, 500 + +# ============================================================================ +# SOLICITUDES +# ============================================================================ + + + +# ============================================================================ +# ADMIN +# ============================================================================ + +# ============================================================================ +# HELPER FUNCTIONS - Permisos basados en DB (sistema de roles GKACHELE™) +# ============================================================================ + +def user_has_role(user_id, required_role): + """Verificar si usuario tiene un rol específico (desde DB)""" + if not user_id: + return False + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT role FROM users WHERE id = ?', (user_id,)) + result = c.fetchone() + conn.close() + + if not result: + return False + + user_role = result[0] or 'subscriber' + + # Jerarquía de roles (sistema GKACHELE™) + role_hierarchy = { + 'administrator': 4, + 'editor': 3, + 'author': 2, + 'subscriber': 1 + } + + user_level = role_hierarchy.get(user_role, 1) + required_level = role_hierarchy.get(required_role, 1) + + return user_level >= required_level + +def user_can(user_id, capability): + """Verificar capacidad específica (desde DB)""" + if not user_id: + return False + + # Si es admin, puede todo + if user_has_role(user_id, 'administrator'): + return True + + # Otras capacidades se pueden añadir aquí + # Por ahora, solo admin puede hacer cosas administrativas + return False + +# --- SOLICITUDES Y APROBACIÓN --- + +@app.route('/dashboard/submit/', methods=['POST']) +@login_required +def submit_site(site_id): + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Verificar propiedad + c.execute('SELECT id, slug FROM sites WHERE id = ? AND user_id = ?', (site_id, session['user_id'])) + site = c.fetchone() + + if not site: + conn.close() + return jsonify({'success': False, 'error': 'Sitio no encontrado o no autorizado'}), 404 + + # Verificar si ya existe solicitud pendiente + c.execute('SELECT id FROM requests WHERE site_id = ? AND status = "pending"', (site_id,)) + if c.fetchone(): + conn.close() + return jsonify({'success': False, 'error': 'Ya existe una solicitud pendiente'}), 400 + + # Crear solicitud + try: + c.execute('INSERT INTO requests (user_id, site_id, slug, status, created_at) VALUES (?, ?, ?, "pending", CURRENT_TIMESTAMP)', + (session['user_id'], site_id, site[1])) + + # Actualizar estado del sitio + c.execute('UPDATE sites SET status = "pending" WHERE id = ?', (site_id,)) + + conn.commit() + return jsonify({'success': True}) + except Exception as e: + return jsonify({'success': False, 'error': str(e)}), 500 + finally: + conn.close() + +@app.route('/admin/approve/', methods=['POST']) +@login_required +def approve_request(request_id): + # Verificar admin (hardcoded ID 1 por ahora, o verificar email) + if session.get('user_id') != 1: + return jsonify({'success': False, 'error': 'No autorizado'}), 403 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + try: + # Obtener info de la solicitud + c.execute('''SELECT r.id, r.site_id, r.user_id, s.slug, s.content_json, s.theme, u.rubro, u.email + FROM requests r + JOIN sites s ON r.site_id = s.id + JOIN users u ON r.user_id = u.id + WHERE r.id = ?''', (request_id,)) + req = c.fetchone() + + if not req: + return jsonify({'success': False, 'error': 'Solicitud no encontrada'}), 404 + + req_id, site_id, user_id, slug, content, theme, rubro, email = req + + # --- AUTOMATIZACIÓN GITEA (MOVIDA AQUÍ) --- + repo_url = None + try: + import gitea_connector + + # Nombre del sitio + site_name = slug + if content: + import json + try: + content_data = json.loads(content) + site_name = content_data.get('site_name', slug) + except: + pass + + org_name = f"cliente-{user_id}" + repo_name = slug + + print(f"🚀 [ADMIN] Iniciando creación de repo para {org_name}/{repo_name}...") + + # 1. Crear Organización (si no existe) + gitea_connector.create_org(org_name) + + # 2. Crear Repositorio + repo_data = gitea_connector.create_repo(org_name, repo_name, description=f"Sitio {site_name} ({rubro})") + + if repo_data: + repo_url = repo_data.get('clone_url') + print(f"✅ [ADMIN] Repo creado: {repo_url}") + + # TODO: Aquí iría el commit inicial con el contenido JSON actual + # O el trigger de un webhook para desplegar + + except Exception as e: + print(f"❌ [ADMIN] Error Gitea: {e}") + import traceback + traceback.print_exc() + # ------------------------------------------ + + # Actualizar solicitud + c.execute('UPDATE requests SET status = "approved" WHERE id = ?', (request_id,)) + + # Actualizar sitio (Publicado + Repo) + c.execute('UPDATE sites SET status = "published", repo_url = ? WHERE id = ?', (repo_url, site_id)) + + # Incrementar contador de usuario (opcional, si existe la columna) + try: + c.execute('UPDATE users SET sitios_publicados = IFNULL(sitios_publicados, 0) + 1 WHERE id = ?', (user_id,)) + except: + pass + + conn.commit() + return jsonify({'success': True, 'repo_url': repo_url}) + + except Exception as e: + print(f"Error approving: {e}") + return jsonify({'success': False, 'error': str(e)}), 500 + finally: + conn.close() + +@app.route('/admin') +def admin(): + """Panel admin - Solo usuarios con rol 'administrator' (desde DB)""" + if 'user_id' not in session: + return "No autorizado", 403 + + # Verificar rol desde la base de datos (no hardcodeado) + if not user_has_role(session['user_id'], 'administrator'): + return "Solo administradores pueden acceder", 403 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Solicitudes pendientes + c.execute('''SELECT r.id, r.site_id, r.status, s.slug, u.email, r.created_at + FROM requests r + JOIN sites s ON r.site_id = s.id + JOIN users u ON r.user_id = u.id + WHERE r.status = 'pending' + ORDER BY r.created_at DESC''') + requests = [{'id': r[0], 'site_id': r[1], 'status': r[2], 'slug': r[3], + 'email': r[4], 'created_at': r[5]} for r in c.fetchall()] + + # Todos los sitios + c.execute('SELECT id, slug, theme, status, user_id FROM sites') + sites = [{'id': r[0], 'slug': r[1], 'theme': r[2], 'status': r[3], 'user_id': r[4]} + for r in c.fetchall()] + + # TODOS LOS USUARIOS con estadísticas + c.execute('''SELECT + u.id, + u.email, + u.plan, + u.rubro, + u.created_at, + COUNT(DISTINCT s.id) as num_sitios, + COUNT(DISTINCT CASE WHEN s.status = 'published' THEN s.id END) as sitios_publicados, + COUNT(DISTINCT r.id) as num_solicitudes + FROM users u + LEFT JOIN sites s ON u.id = s.user_id + LEFT JOIN requests r ON u.id = r.user_id + GROUP BY u.id + ORDER BY u.id DESC''') + + users = [] + for row in c.fetchall(): + users.append({ + 'id': row[0], + 'email': row[1], + 'plan': row[2], + 'rubro': row[3], + 'created_at': row[4], + 'num_sitios': row[5] or 0, + 'sitios_publicados': row[6] or 0, + 'num_solicitudes': row[7] or 0 + }) + + conn.close() + + return render_template('admin.html', requests=requests, sites=sites, users=users) + +@app.route('/admin/approve/', methods=['POST']) +def approve_site(request_id): + """Admin aprueba sitio - Verificar rol desde DB""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 403 + + if not user_has_role(session['user_id'], 'administrator'): + return jsonify({'error': 'Solo administradores'}), 403 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Obtener site_id + c.execute('SELECT site_id FROM requests WHERE id = ?', (request_id,)) + result = c.fetchone() + if not result: + conn.close() + return jsonify({'error': 'Solicitud no encontrada'}), 404 + + site_id = result[0] + + # Aprobar: cambiar status a approved y publicar + c.execute('UPDATE sites SET status = ? WHERE id = ?', ('published', site_id)) + c.execute('UPDATE requests SET status = ? WHERE id = ?', ('approved', request_id)) + + conn.commit() + conn.close() + + return jsonify({'success': True}) + +@app.route('/admin/users/delete/', methods=['POST']) +def delete_user(user_id): + """Eliminar usuario y todos sus datos relacionados - Verificar rol desde DB""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 403 + + # Verificar rol desde DB (no hardcodeado) + if not user_has_role(session['user_id'], 'administrator'): + return jsonify({'error': 'Solo administradores'}), 403 + + # No permitir eliminar al admin principal (user_id = 1) + if user_id == 1: + return jsonify({'error': 'No se puede eliminar al administrador principal'}), 400 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + try: + # Eliminar en orden (respetando foreign keys) + # 1. Widgets + c.execute('DELETE FROM widgets WHERE user_id = ?', (user_id,)) + # 2. Menús + c.execute('DELETE FROM menus WHERE user_id = ?', (user_id,)) + # 3. Media + c.execute('DELETE FROM media WHERE user_id = ?', (user_id,)) + # 4. Content + c.execute('DELETE FROM content WHERE user_id = ?', (user_id,)) + # 5. Settings + c.execute('DELETE FROM settings WHERE user_id = ?', (user_id,)) + # 6. Requests + c.execute('DELETE FROM requests WHERE user_id = ?', (user_id,)) + # 7. Sites + c.execute('DELETE FROM sites WHERE user_id = ?', (user_id,)) + # 8. Usuario + c.execute('DELETE FROM users WHERE id = ?', (user_id,)) + + conn.commit() + conn.close() + + return jsonify({'success': True, 'message': f'Usuario {user_id} eliminado exitosamente'}) + except Exception as e: + conn.rollback() + conn.close() + return jsonify({'error': f'Error al eliminar usuario: {str(e)}'}), 500 + +# ============================================================================ +# SITIO PÚBLICO +# ============================================================================ + +@app.route('/site/') +def public_site(slug): + """Sitio público del cliente - usando estructura GKACHELE""" + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT id, theme, content_json, status, user_id FROM sites WHERE slug = ?', (slug,)) + site = c.fetchone() + conn.close() + + if not site or site[3] != 'published': + return "Sitio no encontrado o no publicado", 404 + + site_id = site[0] + theme = site[1] + content = json.loads(site[2]) if site[2] else {} + user_id = site[4] + + # Renderizar con estructura GKACHELE + try: + return render_gkachele_template(theme, content, site_id, user_id) + except Exception as e: + import traceback + traceback.print_exc() + return render_template('public_site.html', content=content, theme=theme) + +# ============================================================================ +# MAIN +# ============================================================================ + +# ============================================================================ +# API ADMIN CLIENTE +# ============================================================================ + +@app.route('/api/admin/upload', methods=['POST']) +def upload_media(): + """Subir imágenes""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + user_id = session['user_id'] + files = request.files.getlist('files') + + if not files: + return jsonify({'error': 'No hay archivos'}), 400 + + uploaded = [] + for file in files: + if file.filename: + filename = f"{user_id}_{secrets.token_hex(8)}_{file.filename}" + filepath = os.path.join(UPLOADS_DIR, filename) + file.save(filepath) + + # Guardar en DB + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT id FROM sites WHERE user_id = ? LIMIT 1', (user_id,)) + site = c.fetchone() + site_id = site[0] if site else None + + c.execute('INSERT INTO media (user_id, site_id, filename, filepath, file_type) VALUES (?, ?, ?, ?, ?)', + (user_id, site_id, filename, filepath, 'image')) + conn.commit() + conn.close() + + uploaded.append(filename) + + return jsonify({'success': True, 'files': uploaded}) + +@app.route('/api/admin/media') +def get_media(): + """Obtener media del usuario""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + user_id = session['user_id'] + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT id, filename, filepath, uploaded_at FROM media WHERE user_id = ? ORDER BY uploaded_at DESC', (user_id,)) + media = [{'id': r[0], 'filename': r[1], 'filepath': r[2], 'uploaded_at': r[3]} for r in c.fetchall()] + conn.close() + + return jsonify({'success': True, 'media': media}) + +@app.route('/api/admin/media/', methods=['DELETE']) +def delete_media(media_id): + """Eliminar media""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + user_id = session['user_id'] + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Verificar que pertenece al usuario + c.execute('SELECT filepath FROM media WHERE id = ? AND user_id = ?', (media_id, user_id)) + media = c.fetchone() + + if media: + # Eliminar archivo + if os.path.exists(media[0]): + os.remove(media[0]) + + # Eliminar de DB + c.execute('DELETE FROM media WHERE id = ?', (media_id,)) + conn.commit() + + conn.close() + return jsonify({'success': True}) + +@app.route('/api/admin/settings', methods=['POST']) +def update_settings(): + """Actualizar configuración del usuario""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + data = request.get_json() + user_id = session['user_id'] + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + if data.get('password'): + c.execute('UPDATE users SET password = ? WHERE id = ?', + (generate_password_hash(data['password']), user_id)) + conn.commit() + + conn.close() + return jsonify({'success': True}) + +@app.route('/uploads/') +def serve_upload(filename): + """Servir archivos subidos""" + return send_from_directory(UPLOADS_DIR, filename) + +# ============================================================================ +# API MENÚS Y WIDGETS +# ============================================================================ + +@app.route('/api/menus/', methods=['GET']) +def get_menus(site_id): + """Obtener menús del sitio""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + user_id = session['user_id'] + menus = get_site_menus(site_id, user_id) + return jsonify({'success': True, 'menus': menus}) + +@app.route('/api/menus/', methods=['POST']) +def save_menu(site_id): + """Guardar/actualizar menú""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + data = request.get_json() + user_id = session['user_id'] + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Eliminar menús existentes del sitio + c.execute('DELETE FROM menus WHERE site_id = ? AND user_id = ?', (site_id, user_id)) + + # Insertar nuevos menús + for menu_item in data.get('menus', []): + c.execute('''INSERT INTO menus (user_id, site_id, location, title, url, order_index, parent_id) + VALUES (?, ?, ?, ?, ?, ?, ?)''', + (user_id, site_id, menu_item['location'], menu_item['title'], + menu_item['url'], menu_item.get('order', 0), menu_item.get('parent_id'))) + + conn.commit() + conn.close() + + return jsonify({'success': True}) + +@app.route('/api/widgets/', methods=['GET']) +def get_widgets(site_id): + """Obtener widgets del sitio""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + user_id = session['user_id'] + area = request.args.get('area', 'sidebar') + widgets = get_site_widgets(site_id, user_id, area) + return jsonify({'success': True, 'widgets': widgets}) + +@app.route('/api/widgets/', methods=['POST']) +def save_widget(site_id): + """Guardar/actualizar widget""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + data = request.get_json() + user_id = session['user_id'] + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + c.execute('''INSERT INTO widgets (user_id, site_id, area, type, title, content, order_index) + VALUES (?, ?, ?, ?, ?, ?, ?)''', + (user_id, site_id, data.get('area', 'sidebar'), data.get('type', 'text'), + data.get('title'), data.get('content'), data.get('order', 0))) + + conn.commit() + conn.close() + + return jsonify({'success': True}) + +# ============================================================================ +# MAIN +# ============================================================================ + +# Inicializar DB al importar (con manejo de errores) +try: + init_db() +except Exception as e: + print(f"⚠️ Error en init_db: {e}") + # Continuar aunque falle, se creará cuando se use + +if __name__ == '__main__': + port = int(os.environ.get('PORT', 5001)) + print("🚀 Demo SaaS iniciado") + print(f"📍 http://localhost:{port}") + app.run(debug=True, host='0.0.0.0', port=port) diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/customizer.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/customizer.html new file mode 100644 index 0000000..53f3c9e --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/customizer.html @@ -0,0 +1,1256 @@ + + + + + Personalizar - {{ site_name or 'Sitio' }} + + + + + +
+
+

Vista Previa

+
+ +
+
+
+
Cargando vista previa...
+ +
+
+ +
✅ Cambios guardados
+ + + + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/database/main.db b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/database/main.db new file mode 100644 index 0000000..cdd3d96 Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/database/main.db differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/database/sites/cliente-2.db b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/database/sites/cliente-2.db new file mode 100644 index 0000000..0afb200 Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/database/sites/cliente-2.db differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/database/sites/cliente-3.db b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/database/sites/cliente-3.db new file mode 100644 index 0000000..0afb200 Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/database/sites/cliente-3.db differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/database/sites/cliente-4.db b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/database/sites/cliente-4.db new file mode 100644 index 0000000..0afb200 Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/database/sites/cliente-4.db differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/database/sites/cliente-5.db b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/database/sites/cliente-5.db new file mode 100644 index 0000000..0afb200 Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/database/sites/cliente-5.db differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/database/sites/cliente-6.db b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/database/sites/cliente-6.db new file mode 100644 index 0000000..0afb200 Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/database/sites/cliente-6.db differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/docker-compose.yml b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/docker-compose.yml new file mode 100644 index 0000000..25a2b85 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/docker-compose.yml @@ -0,0 +1,27 @@ +version: "3" + +networks: + gitea: + external: false + +services: + server: + image: gitea/gitea:latest + container_name: gitea + environment: + - USER_UID=1000 + - USER_GID=1000 + - GITEA__database__DB_TYPE=sqlite3 + - GITEA__server__DOMAIN=git.gk-saas.komkida.duckdns.org + - GITEA__server__SSH_DOMAIN=git.gk-saas.komkida.duckdns.org + - GITEA__server__ROOT_URL=http://git.gk-saas.komkida.duckdns.org/ + restart: always + networks: + - gitea + volumes: + - ./gitea_data:/data + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro + ports: + - "3000:3000" + - "2223:22" diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/.ssh/authorized_keys b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/.ssh/authorized_keys new file mode 100644 index 0000000..e69de29 diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/.ssh/environment b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/.ssh/environment new file mode 100644 index 0000000..f86169b --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/.ssh/environment @@ -0,0 +1 @@ +GITEA_CUSTOM=/data/gitea diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/HEAD b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/HEAD new file mode 100644 index 0000000..b870d82 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/HEAD @@ -0,0 +1 @@ +ref: refs/heads/main diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/config b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/config new file mode 100644 index 0000000..07d359d --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/config @@ -0,0 +1,4 @@ +[core] + repositoryformatversion = 0 + filemode = true + bare = true diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/description b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/description new file mode 100644 index 0000000..498b267 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/description @@ -0,0 +1 @@ +Unnamed repository; edit this file 'description' to name the repository. diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/applypatch-msg.sample b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/applypatch-msg.sample new file mode 100644 index 0000000..a5d7b84 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/applypatch-msg.sample @@ -0,0 +1,15 @@ +#!/bin/sh +# +# An example hook script to check the commit log message taken by +# applypatch from an e-mail message. +# +# The hook should exit with non-zero status after issuing an +# appropriate message if it wants to stop the commit. The hook is +# allowed to edit the commit message file. +# +# To enable this hook, rename this file to "applypatch-msg". + +. git-sh-setup +commitmsg="$(git rev-parse --git-path hooks/commit-msg)" +test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"} +: diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/commit-msg.sample b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/commit-msg.sample new file mode 100644 index 0000000..b58d118 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/commit-msg.sample @@ -0,0 +1,24 @@ +#!/bin/sh +# +# An example hook script to check the commit log message. +# Called by "git commit" with one argument, the name of the file +# that has the commit message. The hook should exit with non-zero +# status after issuing an appropriate message if it wants to stop the +# commit. The hook is allowed to edit the commit message file. +# +# To enable this hook, rename this file to "commit-msg". + +# Uncomment the below to add a Signed-off-by line to the message. +# Doing this in a hook is a bad idea in general, but the prepare-commit-msg +# hook is more suited to it. +# +# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') +# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" + +# This example catches duplicate Signed-off-by lines. + +test "" = "$(grep '^Signed-off-by: ' "$1" | + sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || { + echo >&2 Duplicate Signed-off-by lines. + exit 1 +} diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/post-receive b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/post-receive new file mode 100644 index 0000000..80ae570 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/post-receive @@ -0,0 +1,16 @@ +#!/usr/bin/env bash +# AUTO GENERATED BY GITEA, DO NOT MODIFY +data=$(cat) +exitcodes="" +hookname=$(basename $0) +GIT_DIR=${GIT_DIR:-$(dirname $0)/..} + +for hook in ${GIT_DIR}/hooks/${hookname}.d/*; do + test -x "${hook}" && test -f "${hook}" || continue + echo "${data}" | "${hook}" + exitcodes="${exitcodes} $?" +done + +for i in ${exitcodes}; do + [ ${i} -eq 0 ] || exit ${i} +done diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/post-receive.d/gitea b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/post-receive.d/gitea new file mode 100644 index 0000000..2a84d52 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/post-receive.d/gitea @@ -0,0 +1,3 @@ +#!/usr/bin/env bash +# AUTO GENERATED BY GITEA, DO NOT MODIFY +/usr/local/bin/gitea hook --config=/data/gitea/conf/app.ini post-receive diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/post-update.sample b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/post-update.sample new file mode 100644 index 0000000..ec17ec1 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/post-update.sample @@ -0,0 +1,8 @@ +#!/bin/sh +# +# An example hook script to prepare a packed repository for use over +# dumb transports. +# +# To enable this hook, rename this file to "post-update". + +exec git update-server-info diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/pre-applypatch.sample b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/pre-applypatch.sample new file mode 100644 index 0000000..4142082 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/pre-applypatch.sample @@ -0,0 +1,14 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed +# by applypatch from an e-mail message. +# +# The hook should exit with non-zero status after issuing an +# appropriate message if it wants to stop the commit. +# +# To enable this hook, rename this file to "pre-applypatch". + +. git-sh-setup +precommit="$(git rev-parse --git-path hooks/pre-commit)" +test -x "$precommit" && exec "$precommit" ${1+"$@"} +: diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/pre-commit.sample b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/pre-commit.sample new file mode 100644 index 0000000..29ed5ee --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/pre-commit.sample @@ -0,0 +1,49 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed. +# Called by "git commit" with no arguments. The hook should +# exit with non-zero status after issuing an appropriate message if +# it wants to stop the commit. +# +# To enable this hook, rename this file to "pre-commit". + +if git rev-parse --verify HEAD >/dev/null 2>&1 +then + against=HEAD +else + # Initial commit: diff against an empty tree object + against=$(git hash-object -t tree /dev/null) +fi + +# If you want to allow non-ASCII filenames set this variable to true. +allownonascii=$(git config --type=bool hooks.allownonascii) + +# Redirect output to stderr. +exec 1>&2 + +# Cross platform projects tend to avoid non-ASCII filenames; prevent +# them from being added to the repository. We exploit the fact that the +# printable range starts at the space character and ends with tilde. +if [ "$allownonascii" != "true" ] && + # Note that the use of brackets around a tr range is ok here, (it's + # even required, for portability to Solaris 10's /usr/bin/tr), since + # the square bracket bytes happen to fall in the designated range. + test $(git diff-index --cached --name-only --diff-filter=A -z $against | + LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0 +then + cat <<\EOF +Error: Attempt to add a non-ASCII file name. + +This can cause problems if you want to work with people on other platforms. + +To be portable it is advisable to rename the file. + +If you know what you are doing you can disable this check using: + + git config hooks.allownonascii true +EOF + exit 1 +fi + +# If there are whitespace errors, print the offending file names and fail. +exec git diff-index --check --cached $against -- diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/pre-merge-commit.sample b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/pre-merge-commit.sample new file mode 100644 index 0000000..399eab1 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/pre-merge-commit.sample @@ -0,0 +1,13 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed. +# Called by "git merge" with no arguments. The hook should +# exit with non-zero status after issuing an appropriate message to +# stderr if it wants to stop the merge commit. +# +# To enable this hook, rename this file to "pre-merge-commit". + +. git-sh-setup +test -x "$GIT_DIR/hooks/pre-commit" && + exec "$GIT_DIR/hooks/pre-commit" +: diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/pre-push.sample b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/pre-push.sample new file mode 100644 index 0000000..4ce688d --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/pre-push.sample @@ -0,0 +1,53 @@ +#!/bin/sh + +# An example hook script to verify what is about to be pushed. Called by "git +# push" after it has checked the remote status, but before anything has been +# pushed. If this script exits with a non-zero status nothing will be pushed. +# +# This hook is called with the following parameters: +# +# $1 -- Name of the remote to which the push is being done +# $2 -- URL to which the push is being done +# +# If pushing without using a named remote those arguments will be equal. +# +# Information about the commits which are being pushed is supplied as lines to +# the standard input in the form: +# +# +# +# This sample shows how to prevent push of commits where the log message starts +# with "WIP" (work in progress). + +remote="$1" +url="$2" + +zero=$(git hash-object --stdin &2 "Found WIP commit in $local_ref, not pushing" + exit 1 + fi + fi +done + +exit 0 diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/pre-rebase.sample b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/pre-rebase.sample new file mode 100644 index 0000000..6cbef5c --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/pre-rebase.sample @@ -0,0 +1,169 @@ +#!/bin/sh +# +# Copyright (c) 2006, 2008 Junio C Hamano +# +# The "pre-rebase" hook is run just before "git rebase" starts doing +# its job, and can prevent the command from running by exiting with +# non-zero status. +# +# The hook is called with the following parameters: +# +# $1 -- the upstream the series was forked from. +# $2 -- the branch being rebased (or empty when rebasing the current branch). +# +# This sample shows how to prevent topic branches that are already +# merged to 'next' branch from getting rebased, because allowing it +# would result in rebasing already published history. + +publish=next +basebranch="$1" +if test "$#" = 2 +then + topic="refs/heads/$2" +else + topic=`git symbolic-ref HEAD` || + exit 0 ;# we do not interrupt rebasing detached HEAD +fi + +case "$topic" in +refs/heads/??/*) + ;; +*) + exit 0 ;# we do not interrupt others. + ;; +esac + +# Now we are dealing with a topic branch being rebased +# on top of master. Is it OK to rebase it? + +# Does the topic really exist? +git show-ref -q "$topic" || { + echo >&2 "No such branch $topic" + exit 1 +} + +# Is topic fully merged to master? +not_in_master=`git rev-list --pretty=oneline ^master "$topic"` +if test -z "$not_in_master" +then + echo >&2 "$topic is fully merged to master; better remove it." + exit 1 ;# we could allow it, but there is no point. +fi + +# Is topic ever merged to next? If so you should not be rebasing it. +only_next_1=`git rev-list ^master "^$topic" ${publish} | sort` +only_next_2=`git rev-list ^master ${publish} | sort` +if test "$only_next_1" = "$only_next_2" +then + not_in_topic=`git rev-list "^$topic" master` + if test -z "$not_in_topic" + then + echo >&2 "$topic is already up to date with master" + exit 1 ;# we could allow it, but there is no point. + else + exit 0 + fi +else + not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"` + /usr/bin/perl -e ' + my $topic = $ARGV[0]; + my $msg = "* $topic has commits already merged to public branch:\n"; + my (%not_in_next) = map { + /^([0-9a-f]+) /; + ($1 => 1); + } split(/\n/, $ARGV[1]); + for my $elem (map { + /^([0-9a-f]+) (.*)$/; + [$1 => $2]; + } split(/\n/, $ARGV[2])) { + if (!exists $not_in_next{$elem->[0]}) { + if ($msg) { + print STDERR $msg; + undef $msg; + } + print STDERR " $elem->[1]\n"; + } + } + ' "$topic" "$not_in_next" "$not_in_master" + exit 1 +fi + +<<\DOC_END + +This sample hook safeguards topic branches that have been +published from being rewound. + +The workflow assumed here is: + + * Once a topic branch forks from "master", "master" is never + merged into it again (either directly or indirectly). + + * Once a topic branch is fully cooked and merged into "master", + it is deleted. If you need to build on top of it to correct + earlier mistakes, a new topic branch is created by forking at + the tip of the "master". This is not strictly necessary, but + it makes it easier to keep your history simple. + + * Whenever you need to test or publish your changes to topic + branches, merge them into "next" branch. + +The script, being an example, hardcodes the publish branch name +to be "next", but it is trivial to make it configurable via +$GIT_DIR/config mechanism. + +With this workflow, you would want to know: + +(1) ... if a topic branch has ever been merged to "next". Young + topic branches can have stupid mistakes you would rather + clean up before publishing, and things that have not been + merged into other branches can be easily rebased without + affecting other people. But once it is published, you would + not want to rewind it. + +(2) ... if a topic branch has been fully merged to "master". + Then you can delete it. More importantly, you should not + build on top of it -- other people may already want to + change things related to the topic as patches against your + "master", so if you need further changes, it is better to + fork the topic (perhaps with the same name) afresh from the + tip of "master". + +Let's look at this example: + + o---o---o---o---o---o---o---o---o---o "next" + / / / / + / a---a---b A / / + / / / / + / / c---c---c---c B / + / / / \ / + / / / b---b C \ / + / / / / \ / + ---o---o---o---o---o---o---o---o---o---o---o "master" + + +A, B and C are topic branches. + + * A has one fix since it was merged up to "next". + + * B has finished. It has been fully merged up to "master" and "next", + and is ready to be deleted. + + * C has not merged to "next" at all. + +We would want to allow C to be rebased, refuse A, and encourage +B to be deleted. + +To compute (1): + + git rev-list ^master ^topic next + git rev-list ^master next + + if these match, topic has not merged in next at all. + +To compute (2): + + git rev-list master..topic + + if this is empty, it is fully merged to "master". + +DOC_END diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/pre-receive b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/pre-receive new file mode 100644 index 0000000..80ae570 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/pre-receive @@ -0,0 +1,16 @@ +#!/usr/bin/env bash +# AUTO GENERATED BY GITEA, DO NOT MODIFY +data=$(cat) +exitcodes="" +hookname=$(basename $0) +GIT_DIR=${GIT_DIR:-$(dirname $0)/..} + +for hook in ${GIT_DIR}/hooks/${hookname}.d/*; do + test -x "${hook}" && test -f "${hook}" || continue + echo "${data}" | "${hook}" + exitcodes="${exitcodes} $?" +done + +for i in ${exitcodes}; do + [ ${i} -eq 0 ] || exit ${i} +done diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/pre-receive.d/gitea b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/pre-receive.d/gitea new file mode 100644 index 0000000..00db788 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/pre-receive.d/gitea @@ -0,0 +1,3 @@ +#!/usr/bin/env bash +# AUTO GENERATED BY GITEA, DO NOT MODIFY +/usr/local/bin/gitea hook --config=/data/gitea/conf/app.ini pre-receive diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/pre-receive.sample b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/pre-receive.sample new file mode 100644 index 0000000..a1fd29e --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/pre-receive.sample @@ -0,0 +1,24 @@ +#!/bin/sh +# +# An example hook script to make use of push options. +# The example simply echoes all push options that start with 'echoback=' +# and rejects all pushes when the "reject" push option is used. +# +# To enable this hook, rename this file to "pre-receive". + +if test -n "$GIT_PUSH_OPTION_COUNT" +then + i=0 + while test "$i" -lt "$GIT_PUSH_OPTION_COUNT" + do + eval "value=\$GIT_PUSH_OPTION_$i" + case "$value" in + echoback=*) + echo "echo from the pre-receive-hook: ${value#*=}" >&2 + ;; + reject) + exit 1 + esac + i=$((i + 1)) + done +fi diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/prepare-commit-msg.sample b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/prepare-commit-msg.sample new file mode 100644 index 0000000..10fa14c --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/prepare-commit-msg.sample @@ -0,0 +1,42 @@ +#!/bin/sh +# +# An example hook script to prepare the commit log message. +# Called by "git commit" with the name of the file that has the +# commit message, followed by the description of the commit +# message's source. The hook's purpose is to edit the commit +# message file. If the hook fails with a non-zero status, +# the commit is aborted. +# +# To enable this hook, rename this file to "prepare-commit-msg". + +# This hook includes three examples. The first one removes the +# "# Please enter the commit message..." help message. +# +# The second includes the output of "git diff --name-status -r" +# into the message, just before the "git status" output. It is +# commented because it doesn't cope with --amend or with squashed +# commits. +# +# The third example adds a Signed-off-by line to the message, that can +# still be edited. This is rarely a good idea. + +COMMIT_MSG_FILE=$1 +COMMIT_SOURCE=$2 +SHA1=$3 + +/usr/bin/perl -i.bak -ne 'print unless(m/^. Please enter the commit message/..m/^#$/)' "$COMMIT_MSG_FILE" + +# case "$COMMIT_SOURCE,$SHA1" in +# ,|template,) +# /usr/bin/perl -i.bak -pe ' +# print "\n" . `git diff --cached --name-status -r` +# if /^#/ && $first++ == 0' "$COMMIT_MSG_FILE" ;; +# *) ;; +# esac + +# SOB=$(git var GIT_COMMITTER_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') +# git interpret-trailers --in-place --trailer "$SOB" "$COMMIT_MSG_FILE" +# if test -z "$COMMIT_SOURCE" +# then +# /usr/bin/perl -i.bak -pe 'print "\n" if !$first_line++' "$COMMIT_MSG_FILE" +# fi diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/proc-receive b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/proc-receive new file mode 100644 index 0000000..1974627 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/proc-receive @@ -0,0 +1,3 @@ +#!/usr/bin/env bash +# AUTO GENERATED BY GITEA, DO NOT MODIFY +/usr/local/bin/gitea hook --config=/data/gitea/conf/app.ini proc-receive diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/proc-receive.d/gitea b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/proc-receive.d/gitea new file mode 100644 index 0000000..e69de29 diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/push-to-checkout.sample b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/push-to-checkout.sample new file mode 100644 index 0000000..af5a0c0 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/push-to-checkout.sample @@ -0,0 +1,78 @@ +#!/bin/sh + +# An example hook script to update a checked-out tree on a git push. +# +# This hook is invoked by git-receive-pack(1) when it reacts to git +# push and updates reference(s) in its repository, and when the push +# tries to update the branch that is currently checked out and the +# receive.denyCurrentBranch configuration variable is set to +# updateInstead. +# +# By default, such a push is refused if the working tree and the index +# of the remote repository has any difference from the currently +# checked out commit; when both the working tree and the index match +# the current commit, they are updated to match the newly pushed tip +# of the branch. This hook is to be used to override the default +# behaviour; however the code below reimplements the default behaviour +# as a starting point for convenient modification. +# +# The hook receives the commit with which the tip of the current +# branch is going to be updated: +commit=$1 + +# It can exit with a non-zero status to refuse the push (when it does +# so, it must not modify the index or the working tree). +die () { + echo >&2 "$*" + exit 1 +} + +# Or it can make any necessary changes to the working tree and to the +# index to bring them to the desired state when the tip of the current +# branch is updated to the new commit, and exit with a zero status. +# +# For example, the hook can simply run git read-tree -u -m HEAD "$1" +# in order to emulate git fetch that is run in the reverse direction +# with git push, as the two-tree form of git read-tree -u -m is +# essentially the same as git switch or git checkout that switches +# branches while keeping the local changes in the working tree that do +# not interfere with the difference between the branches. + +# The below is a more-or-less exact translation to shell of the C code +# for the default behaviour for git's push-to-checkout hook defined in +# the push_to_deploy() function in builtin/receive-pack.c. +# +# Note that the hook will be executed from the repository directory, +# not from the working tree, so if you want to perform operations on +# the working tree, you will have to adapt your code accordingly, e.g. +# by adding "cd .." or using relative paths. + +if ! git update-index -q --ignore-submodules --refresh +then + die "Up-to-date check failed" +fi + +if ! git diff-files --quiet --ignore-submodules -- +then + die "Working directory has unstaged changes" +fi + +# This is a rough translation of: +# +# head_has_history() ? "HEAD" : EMPTY_TREE_SHA1_HEX +if git cat-file -e HEAD 2>/dev/null +then + head=HEAD +else + head=$(git hash-object -t tree --stdin &2 + exit 1 +} + +unset GIT_DIR GIT_WORK_TREE +cd "$worktree" && + +if grep -q "^diff --git " "$1" +then + validate_patch "$1" +else + validate_cover_letter "$1" +fi && + +if test "$GIT_SENDEMAIL_FILE_COUNTER" = "$GIT_SENDEMAIL_FILE_TOTAL" +then + git config --unset-all sendemail.validateWorktree && + trap 'git worktree remove -ff "$worktree"' EXIT && + validate_series +fi diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/update b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/update new file mode 100644 index 0000000..b3570b0 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/update @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +# AUTO GENERATED BY GITEA, DO NOT MODIFY +exitcodes="" +hookname=$(basename $0) +GIT_DIR=${GIT_DIR:-$(dirname $0/..)} + +for hook in ${GIT_DIR}/hooks/${hookname}.d/*; do + test -x "${hook}" && test -f "${hook}" || continue + "${hook}" $1 $2 $3 + exitcodes="${exitcodes} $?" +done + +for i in ${exitcodes}; do + [ ${i} -eq 0 ] || exit ${i} +done diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/update.d/gitea b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/update.d/gitea new file mode 100644 index 0000000..3f58296 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/update.d/gitea @@ -0,0 +1,3 @@ +#!/usr/bin/env bash +# AUTO GENERATED BY GITEA, DO NOT MODIFY +/usr/local/bin/gitea hook --config=/data/gitea/conf/app.ini update $1 $2 $3 diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/update.sample b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/update.sample new file mode 100644 index 0000000..c4d426b --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/hooks/update.sample @@ -0,0 +1,128 @@ +#!/bin/sh +# +# An example hook script to block unannotated tags from entering. +# Called by "git receive-pack" with arguments: refname sha1-old sha1-new +# +# To enable this hook, rename this file to "update". +# +# Config +# ------ +# hooks.allowunannotated +# This boolean sets whether unannotated tags will be allowed into the +# repository. By default they won't be. +# hooks.allowdeletetag +# This boolean sets whether deleting tags will be allowed in the +# repository. By default they won't be. +# hooks.allowmodifytag +# This boolean sets whether a tag may be modified after creation. By default +# it won't be. +# hooks.allowdeletebranch +# This boolean sets whether deleting branches will be allowed in the +# repository. By default they won't be. +# hooks.denycreatebranch +# This boolean sets whether remotely creating branches will be denied +# in the repository. By default this is allowed. +# + +# --- Command line +refname="$1" +oldrev="$2" +newrev="$3" + +# --- Safety check +if [ -z "$GIT_DIR" ]; then + echo "Don't run this script from the command line." >&2 + echo " (if you want, you could supply GIT_DIR then run" >&2 + echo " $0 )" >&2 + exit 1 +fi + +if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then + echo "usage: $0 " >&2 + exit 1 +fi + +# --- Config +allowunannotated=$(git config --type=bool hooks.allowunannotated) +allowdeletebranch=$(git config --type=bool hooks.allowdeletebranch) +denycreatebranch=$(git config --type=bool hooks.denycreatebranch) +allowdeletetag=$(git config --type=bool hooks.allowdeletetag) +allowmodifytag=$(git config --type=bool hooks.allowmodifytag) + +# check for no description +projectdesc=$(sed -e '1q' "$GIT_DIR/description") +case "$projectdesc" in +"Unnamed repository"* | "") + echo "*** Project description file hasn't been set" >&2 + exit 1 + ;; +esac + +# --- Check types +# if $newrev is 0000...0000, it's a commit to delete a ref. +zero=$(git hash-object --stdin &2 + echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2 + exit 1 + fi + ;; + refs/tags/*,delete) + # delete tag + if [ "$allowdeletetag" != "true" ]; then + echo "*** Deleting a tag is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/tags/*,tag) + # annotated tag + if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1 + then + echo "*** Tag '$refname' already exists." >&2 + echo "*** Modifying a tag is not allowed in this repository." >&2 + exit 1 + fi + ;; + refs/heads/*,commit) + # branch + if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then + echo "*** Creating a branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/heads/*,delete) + # delete branch + if [ "$allowdeletebranch" != "true" ]; then + echo "*** Deleting a branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/remotes/*,commit) + # tracking branch + ;; + refs/remotes/*,delete) + # delete tracking branch + if [ "$allowdeletebranch" != "true" ]; then + echo "*** Deleting a tracking branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + *) + # Anything else (is there anything else?) + echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2 + exit 1 + ;; +esac + +# --- Finished +exit 0 diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/info/exclude b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/info/exclude new file mode 100644 index 0000000..a5196d1 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/info/exclude @@ -0,0 +1,6 @@ +# git ls-files --others --exclude-from=.git/info/exclude +# Lines that start with '#' are comments. +# For a project mostly in C, the following would be a good set of +# exclude patterns (uncomment them if you want to use them): +# *.[oa] +# *~ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/info/refs b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/info/refs new file mode 100644 index 0000000..1527673 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/info/refs @@ -0,0 +1 @@ +366a465ed48c30bb99080746e6fc6b1d798affea refs/heads/main diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/logs/HEAD b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/logs/HEAD new file mode 100644 index 0000000..a744c01 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/logs/HEAD @@ -0,0 +1 @@ +0000000000000000000000000000000000000000 366a465ed48c30bb99080746e6fc6b1d798affea Gitea 1768497292 +0100 diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/logs/refs/heads/main b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/logs/refs/heads/main new file mode 100644 index 0000000..35e1277 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/logs/refs/heads/main @@ -0,0 +1 @@ +0000000000000000000000000000000000000000 366a465ed48c30bb99080746e6fc6b1d798affea admin 1768497291 +0100 push diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/objects/03/d2c7ab8c4b337a757086c84cceaebfe3fb3fbf b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/objects/03/d2c7ab8c4b337a757086c84cceaebfe3fb3fbf new file mode 100644 index 0000000..7098649 Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/objects/03/d2c7ab8c4b337a757086c84cceaebfe3fb3fbf differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/objects/34/c12bc7f377d37a1981de99c51348af28607538 b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/objects/34/c12bc7f377d37a1981de99c51348af28607538 new file mode 100644 index 0000000..ff0d7e6 Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/objects/34/c12bc7f377d37a1981de99c51348af28607538 differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/objects/36/6a465ed48c30bb99080746e6fc6b1d798affea b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/objects/36/6a465ed48c30bb99080746e6fc6b1d798affea new file mode 100644 index 0000000..45a2a88 Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/objects/36/6a465ed48c30bb99080746e6fc6b1d798affea differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/objects/36/b13f1e56373da9b044b8e2d023d1ffcfab5d06 b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/objects/36/b13f1e56373da9b044b8e2d023d1ffcfab5d06 new file mode 100644 index 0000000..ad5b0bb Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/objects/36/b13f1e56373da9b044b8e2d023d1ffcfab5d06 differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/objects/50/fdc2ab064954fa1ced955e4fcd4eef408a1ba6 b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/objects/50/fdc2ab064954fa1ced955e4fcd4eef408a1ba6 new file mode 100644 index 0000000..cc99095 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/objects/50/fdc2ab064954fa1ced955e4fcd4eef408a1ba6 @@ -0,0 +1,2 @@ +xKOR01ePV(,I571M2634 +,WpL+I5T(J-.I,-J4l \ No newline at end of file diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/objects/info/packs b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/objects/info/packs new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/objects/info/packs @@ -0,0 +1 @@ + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/refs/heads/main b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/refs/heads/main new file mode 100644 index 0000000..1d5543b --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-14/site-745b3612.git/refs/heads/main @@ -0,0 +1 @@ +366a465ed48c30bb99080746e6fc6b1d798affea diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/HEAD b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/HEAD new file mode 100644 index 0000000..b870d82 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/HEAD @@ -0,0 +1 @@ +ref: refs/heads/main diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/config b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/config new file mode 100644 index 0000000..07d359d --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/config @@ -0,0 +1,4 @@ +[core] + repositoryformatversion = 0 + filemode = true + bare = true diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/description b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/description new file mode 100644 index 0000000..498b267 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/description @@ -0,0 +1 @@ +Unnamed repository; edit this file 'description' to name the repository. diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/applypatch-msg.sample b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/applypatch-msg.sample new file mode 100644 index 0000000..a5d7b84 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/applypatch-msg.sample @@ -0,0 +1,15 @@ +#!/bin/sh +# +# An example hook script to check the commit log message taken by +# applypatch from an e-mail message. +# +# The hook should exit with non-zero status after issuing an +# appropriate message if it wants to stop the commit. The hook is +# allowed to edit the commit message file. +# +# To enable this hook, rename this file to "applypatch-msg". + +. git-sh-setup +commitmsg="$(git rev-parse --git-path hooks/commit-msg)" +test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"} +: diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/commit-msg.sample b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/commit-msg.sample new file mode 100644 index 0000000..b58d118 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/commit-msg.sample @@ -0,0 +1,24 @@ +#!/bin/sh +# +# An example hook script to check the commit log message. +# Called by "git commit" with one argument, the name of the file +# that has the commit message. The hook should exit with non-zero +# status after issuing an appropriate message if it wants to stop the +# commit. The hook is allowed to edit the commit message file. +# +# To enable this hook, rename this file to "commit-msg". + +# Uncomment the below to add a Signed-off-by line to the message. +# Doing this in a hook is a bad idea in general, but the prepare-commit-msg +# hook is more suited to it. +# +# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') +# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" + +# This example catches duplicate Signed-off-by lines. + +test "" = "$(grep '^Signed-off-by: ' "$1" | + sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || { + echo >&2 Duplicate Signed-off-by lines. + exit 1 +} diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/post-receive b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/post-receive new file mode 100644 index 0000000..80ae570 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/post-receive @@ -0,0 +1,16 @@ +#!/usr/bin/env bash +# AUTO GENERATED BY GITEA, DO NOT MODIFY +data=$(cat) +exitcodes="" +hookname=$(basename $0) +GIT_DIR=${GIT_DIR:-$(dirname $0)/..} + +for hook in ${GIT_DIR}/hooks/${hookname}.d/*; do + test -x "${hook}" && test -f "${hook}" || continue + echo "${data}" | "${hook}" + exitcodes="${exitcodes} $?" +done + +for i in ${exitcodes}; do + [ ${i} -eq 0 ] || exit ${i} +done diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/post-receive.d/gitea b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/post-receive.d/gitea new file mode 100644 index 0000000..2a84d52 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/post-receive.d/gitea @@ -0,0 +1,3 @@ +#!/usr/bin/env bash +# AUTO GENERATED BY GITEA, DO NOT MODIFY +/usr/local/bin/gitea hook --config=/data/gitea/conf/app.ini post-receive diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/post-update.sample b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/post-update.sample new file mode 100644 index 0000000..ec17ec1 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/post-update.sample @@ -0,0 +1,8 @@ +#!/bin/sh +# +# An example hook script to prepare a packed repository for use over +# dumb transports. +# +# To enable this hook, rename this file to "post-update". + +exec git update-server-info diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/pre-applypatch.sample b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/pre-applypatch.sample new file mode 100644 index 0000000..4142082 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/pre-applypatch.sample @@ -0,0 +1,14 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed +# by applypatch from an e-mail message. +# +# The hook should exit with non-zero status after issuing an +# appropriate message if it wants to stop the commit. +# +# To enable this hook, rename this file to "pre-applypatch". + +. git-sh-setup +precommit="$(git rev-parse --git-path hooks/pre-commit)" +test -x "$precommit" && exec "$precommit" ${1+"$@"} +: diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/pre-commit.sample b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/pre-commit.sample new file mode 100644 index 0000000..29ed5ee --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/pre-commit.sample @@ -0,0 +1,49 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed. +# Called by "git commit" with no arguments. The hook should +# exit with non-zero status after issuing an appropriate message if +# it wants to stop the commit. +# +# To enable this hook, rename this file to "pre-commit". + +if git rev-parse --verify HEAD >/dev/null 2>&1 +then + against=HEAD +else + # Initial commit: diff against an empty tree object + against=$(git hash-object -t tree /dev/null) +fi + +# If you want to allow non-ASCII filenames set this variable to true. +allownonascii=$(git config --type=bool hooks.allownonascii) + +# Redirect output to stderr. +exec 1>&2 + +# Cross platform projects tend to avoid non-ASCII filenames; prevent +# them from being added to the repository. We exploit the fact that the +# printable range starts at the space character and ends with tilde. +if [ "$allownonascii" != "true" ] && + # Note that the use of brackets around a tr range is ok here, (it's + # even required, for portability to Solaris 10's /usr/bin/tr), since + # the square bracket bytes happen to fall in the designated range. + test $(git diff-index --cached --name-only --diff-filter=A -z $against | + LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0 +then + cat <<\EOF +Error: Attempt to add a non-ASCII file name. + +This can cause problems if you want to work with people on other platforms. + +To be portable it is advisable to rename the file. + +If you know what you are doing you can disable this check using: + + git config hooks.allownonascii true +EOF + exit 1 +fi + +# If there are whitespace errors, print the offending file names and fail. +exec git diff-index --check --cached $against -- diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/pre-merge-commit.sample b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/pre-merge-commit.sample new file mode 100644 index 0000000..399eab1 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/pre-merge-commit.sample @@ -0,0 +1,13 @@ +#!/bin/sh +# +# An example hook script to verify what is about to be committed. +# Called by "git merge" with no arguments. The hook should +# exit with non-zero status after issuing an appropriate message to +# stderr if it wants to stop the merge commit. +# +# To enable this hook, rename this file to "pre-merge-commit". + +. git-sh-setup +test -x "$GIT_DIR/hooks/pre-commit" && + exec "$GIT_DIR/hooks/pre-commit" +: diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/pre-push.sample b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/pre-push.sample new file mode 100644 index 0000000..4ce688d --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/pre-push.sample @@ -0,0 +1,53 @@ +#!/bin/sh + +# An example hook script to verify what is about to be pushed. Called by "git +# push" after it has checked the remote status, but before anything has been +# pushed. If this script exits with a non-zero status nothing will be pushed. +# +# This hook is called with the following parameters: +# +# $1 -- Name of the remote to which the push is being done +# $2 -- URL to which the push is being done +# +# If pushing without using a named remote those arguments will be equal. +# +# Information about the commits which are being pushed is supplied as lines to +# the standard input in the form: +# +# +# +# This sample shows how to prevent push of commits where the log message starts +# with "WIP" (work in progress). + +remote="$1" +url="$2" + +zero=$(git hash-object --stdin &2 "Found WIP commit in $local_ref, not pushing" + exit 1 + fi + fi +done + +exit 0 diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/pre-rebase.sample b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/pre-rebase.sample new file mode 100644 index 0000000..6cbef5c --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/pre-rebase.sample @@ -0,0 +1,169 @@ +#!/bin/sh +# +# Copyright (c) 2006, 2008 Junio C Hamano +# +# The "pre-rebase" hook is run just before "git rebase" starts doing +# its job, and can prevent the command from running by exiting with +# non-zero status. +# +# The hook is called with the following parameters: +# +# $1 -- the upstream the series was forked from. +# $2 -- the branch being rebased (or empty when rebasing the current branch). +# +# This sample shows how to prevent topic branches that are already +# merged to 'next' branch from getting rebased, because allowing it +# would result in rebasing already published history. + +publish=next +basebranch="$1" +if test "$#" = 2 +then + topic="refs/heads/$2" +else + topic=`git symbolic-ref HEAD` || + exit 0 ;# we do not interrupt rebasing detached HEAD +fi + +case "$topic" in +refs/heads/??/*) + ;; +*) + exit 0 ;# we do not interrupt others. + ;; +esac + +# Now we are dealing with a topic branch being rebased +# on top of master. Is it OK to rebase it? + +# Does the topic really exist? +git show-ref -q "$topic" || { + echo >&2 "No such branch $topic" + exit 1 +} + +# Is topic fully merged to master? +not_in_master=`git rev-list --pretty=oneline ^master "$topic"` +if test -z "$not_in_master" +then + echo >&2 "$topic is fully merged to master; better remove it." + exit 1 ;# we could allow it, but there is no point. +fi + +# Is topic ever merged to next? If so you should not be rebasing it. +only_next_1=`git rev-list ^master "^$topic" ${publish} | sort` +only_next_2=`git rev-list ^master ${publish} | sort` +if test "$only_next_1" = "$only_next_2" +then + not_in_topic=`git rev-list "^$topic" master` + if test -z "$not_in_topic" + then + echo >&2 "$topic is already up to date with master" + exit 1 ;# we could allow it, but there is no point. + else + exit 0 + fi +else + not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"` + /usr/bin/perl -e ' + my $topic = $ARGV[0]; + my $msg = "* $topic has commits already merged to public branch:\n"; + my (%not_in_next) = map { + /^([0-9a-f]+) /; + ($1 => 1); + } split(/\n/, $ARGV[1]); + for my $elem (map { + /^([0-9a-f]+) (.*)$/; + [$1 => $2]; + } split(/\n/, $ARGV[2])) { + if (!exists $not_in_next{$elem->[0]}) { + if ($msg) { + print STDERR $msg; + undef $msg; + } + print STDERR " $elem->[1]\n"; + } + } + ' "$topic" "$not_in_next" "$not_in_master" + exit 1 +fi + +<<\DOC_END + +This sample hook safeguards topic branches that have been +published from being rewound. + +The workflow assumed here is: + + * Once a topic branch forks from "master", "master" is never + merged into it again (either directly or indirectly). + + * Once a topic branch is fully cooked and merged into "master", + it is deleted. If you need to build on top of it to correct + earlier mistakes, a new topic branch is created by forking at + the tip of the "master". This is not strictly necessary, but + it makes it easier to keep your history simple. + + * Whenever you need to test or publish your changes to topic + branches, merge them into "next" branch. + +The script, being an example, hardcodes the publish branch name +to be "next", but it is trivial to make it configurable via +$GIT_DIR/config mechanism. + +With this workflow, you would want to know: + +(1) ... if a topic branch has ever been merged to "next". Young + topic branches can have stupid mistakes you would rather + clean up before publishing, and things that have not been + merged into other branches can be easily rebased without + affecting other people. But once it is published, you would + not want to rewind it. + +(2) ... if a topic branch has been fully merged to "master". + Then you can delete it. More importantly, you should not + build on top of it -- other people may already want to + change things related to the topic as patches against your + "master", so if you need further changes, it is better to + fork the topic (perhaps with the same name) afresh from the + tip of "master". + +Let's look at this example: + + o---o---o---o---o---o---o---o---o---o "next" + / / / / + / a---a---b A / / + / / / / + / / c---c---c---c B / + / / / \ / + / / / b---b C \ / + / / / / \ / + ---o---o---o---o---o---o---o---o---o---o---o "master" + + +A, B and C are topic branches. + + * A has one fix since it was merged up to "next". + + * B has finished. It has been fully merged up to "master" and "next", + and is ready to be deleted. + + * C has not merged to "next" at all. + +We would want to allow C to be rebased, refuse A, and encourage +B to be deleted. + +To compute (1): + + git rev-list ^master ^topic next + git rev-list ^master next + + if these match, topic has not merged in next at all. + +To compute (2): + + git rev-list master..topic + + if this is empty, it is fully merged to "master". + +DOC_END diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/pre-receive b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/pre-receive new file mode 100644 index 0000000..80ae570 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/pre-receive @@ -0,0 +1,16 @@ +#!/usr/bin/env bash +# AUTO GENERATED BY GITEA, DO NOT MODIFY +data=$(cat) +exitcodes="" +hookname=$(basename $0) +GIT_DIR=${GIT_DIR:-$(dirname $0)/..} + +for hook in ${GIT_DIR}/hooks/${hookname}.d/*; do + test -x "${hook}" && test -f "${hook}" || continue + echo "${data}" | "${hook}" + exitcodes="${exitcodes} $?" +done + +for i in ${exitcodes}; do + [ ${i} -eq 0 ] || exit ${i} +done diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/pre-receive.d/gitea b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/pre-receive.d/gitea new file mode 100644 index 0000000..00db788 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/pre-receive.d/gitea @@ -0,0 +1,3 @@ +#!/usr/bin/env bash +# AUTO GENERATED BY GITEA, DO NOT MODIFY +/usr/local/bin/gitea hook --config=/data/gitea/conf/app.ini pre-receive diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/pre-receive.sample b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/pre-receive.sample new file mode 100644 index 0000000..a1fd29e --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/pre-receive.sample @@ -0,0 +1,24 @@ +#!/bin/sh +# +# An example hook script to make use of push options. +# The example simply echoes all push options that start with 'echoback=' +# and rejects all pushes when the "reject" push option is used. +# +# To enable this hook, rename this file to "pre-receive". + +if test -n "$GIT_PUSH_OPTION_COUNT" +then + i=0 + while test "$i" -lt "$GIT_PUSH_OPTION_COUNT" + do + eval "value=\$GIT_PUSH_OPTION_$i" + case "$value" in + echoback=*) + echo "echo from the pre-receive-hook: ${value#*=}" >&2 + ;; + reject) + exit 1 + esac + i=$((i + 1)) + done +fi diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/prepare-commit-msg.sample b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/prepare-commit-msg.sample new file mode 100644 index 0000000..10fa14c --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/prepare-commit-msg.sample @@ -0,0 +1,42 @@ +#!/bin/sh +# +# An example hook script to prepare the commit log message. +# Called by "git commit" with the name of the file that has the +# commit message, followed by the description of the commit +# message's source. The hook's purpose is to edit the commit +# message file. If the hook fails with a non-zero status, +# the commit is aborted. +# +# To enable this hook, rename this file to "prepare-commit-msg". + +# This hook includes three examples. The first one removes the +# "# Please enter the commit message..." help message. +# +# The second includes the output of "git diff --name-status -r" +# into the message, just before the "git status" output. It is +# commented because it doesn't cope with --amend or with squashed +# commits. +# +# The third example adds a Signed-off-by line to the message, that can +# still be edited. This is rarely a good idea. + +COMMIT_MSG_FILE=$1 +COMMIT_SOURCE=$2 +SHA1=$3 + +/usr/bin/perl -i.bak -ne 'print unless(m/^. Please enter the commit message/..m/^#$/)' "$COMMIT_MSG_FILE" + +# case "$COMMIT_SOURCE,$SHA1" in +# ,|template,) +# /usr/bin/perl -i.bak -pe ' +# print "\n" . `git diff --cached --name-status -r` +# if /^#/ && $first++ == 0' "$COMMIT_MSG_FILE" ;; +# *) ;; +# esac + +# SOB=$(git var GIT_COMMITTER_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') +# git interpret-trailers --in-place --trailer "$SOB" "$COMMIT_MSG_FILE" +# if test -z "$COMMIT_SOURCE" +# then +# /usr/bin/perl -i.bak -pe 'print "\n" if !$first_line++' "$COMMIT_MSG_FILE" +# fi diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/proc-receive b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/proc-receive new file mode 100644 index 0000000..1974627 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/proc-receive @@ -0,0 +1,3 @@ +#!/usr/bin/env bash +# AUTO GENERATED BY GITEA, DO NOT MODIFY +/usr/local/bin/gitea hook --config=/data/gitea/conf/app.ini proc-receive diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/proc-receive.d/gitea b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/proc-receive.d/gitea new file mode 100644 index 0000000..e69de29 diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/push-to-checkout.sample b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/push-to-checkout.sample new file mode 100644 index 0000000..af5a0c0 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/push-to-checkout.sample @@ -0,0 +1,78 @@ +#!/bin/sh + +# An example hook script to update a checked-out tree on a git push. +# +# This hook is invoked by git-receive-pack(1) when it reacts to git +# push and updates reference(s) in its repository, and when the push +# tries to update the branch that is currently checked out and the +# receive.denyCurrentBranch configuration variable is set to +# updateInstead. +# +# By default, such a push is refused if the working tree and the index +# of the remote repository has any difference from the currently +# checked out commit; when both the working tree and the index match +# the current commit, they are updated to match the newly pushed tip +# of the branch. This hook is to be used to override the default +# behaviour; however the code below reimplements the default behaviour +# as a starting point for convenient modification. +# +# The hook receives the commit with which the tip of the current +# branch is going to be updated: +commit=$1 + +# It can exit with a non-zero status to refuse the push (when it does +# so, it must not modify the index or the working tree). +die () { + echo >&2 "$*" + exit 1 +} + +# Or it can make any necessary changes to the working tree and to the +# index to bring them to the desired state when the tip of the current +# branch is updated to the new commit, and exit with a zero status. +# +# For example, the hook can simply run git read-tree -u -m HEAD "$1" +# in order to emulate git fetch that is run in the reverse direction +# with git push, as the two-tree form of git read-tree -u -m is +# essentially the same as git switch or git checkout that switches +# branches while keeping the local changes in the working tree that do +# not interfere with the difference between the branches. + +# The below is a more-or-less exact translation to shell of the C code +# for the default behaviour for git's push-to-checkout hook defined in +# the push_to_deploy() function in builtin/receive-pack.c. +# +# Note that the hook will be executed from the repository directory, +# not from the working tree, so if you want to perform operations on +# the working tree, you will have to adapt your code accordingly, e.g. +# by adding "cd .." or using relative paths. + +if ! git update-index -q --ignore-submodules --refresh +then + die "Up-to-date check failed" +fi + +if ! git diff-files --quiet --ignore-submodules -- +then + die "Working directory has unstaged changes" +fi + +# This is a rough translation of: +# +# head_has_history() ? "HEAD" : EMPTY_TREE_SHA1_HEX +if git cat-file -e HEAD 2>/dev/null +then + head=HEAD +else + head=$(git hash-object -t tree --stdin &2 + exit 1 +} + +unset GIT_DIR GIT_WORK_TREE +cd "$worktree" && + +if grep -q "^diff --git " "$1" +then + validate_patch "$1" +else + validate_cover_letter "$1" +fi && + +if test "$GIT_SENDEMAIL_FILE_COUNTER" = "$GIT_SENDEMAIL_FILE_TOTAL" +then + git config --unset-all sendemail.validateWorktree && + trap 'git worktree remove -ff "$worktree"' EXIT && + validate_series +fi diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/update b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/update new file mode 100644 index 0000000..b3570b0 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/update @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +# AUTO GENERATED BY GITEA, DO NOT MODIFY +exitcodes="" +hookname=$(basename $0) +GIT_DIR=${GIT_DIR:-$(dirname $0/..)} + +for hook in ${GIT_DIR}/hooks/${hookname}.d/*; do + test -x "${hook}" && test -f "${hook}" || continue + "${hook}" $1 $2 $3 + exitcodes="${exitcodes} $?" +done + +for i in ${exitcodes}; do + [ ${i} -eq 0 ] || exit ${i} +done diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/update.d/gitea b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/update.d/gitea new file mode 100644 index 0000000..3f58296 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/update.d/gitea @@ -0,0 +1,3 @@ +#!/usr/bin/env bash +# AUTO GENERATED BY GITEA, DO NOT MODIFY +/usr/local/bin/gitea hook --config=/data/gitea/conf/app.ini update $1 $2 $3 diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/update.sample b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/update.sample new file mode 100644 index 0000000..c4d426b --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/hooks/update.sample @@ -0,0 +1,128 @@ +#!/bin/sh +# +# An example hook script to block unannotated tags from entering. +# Called by "git receive-pack" with arguments: refname sha1-old sha1-new +# +# To enable this hook, rename this file to "update". +# +# Config +# ------ +# hooks.allowunannotated +# This boolean sets whether unannotated tags will be allowed into the +# repository. By default they won't be. +# hooks.allowdeletetag +# This boolean sets whether deleting tags will be allowed in the +# repository. By default they won't be. +# hooks.allowmodifytag +# This boolean sets whether a tag may be modified after creation. By default +# it won't be. +# hooks.allowdeletebranch +# This boolean sets whether deleting branches will be allowed in the +# repository. By default they won't be. +# hooks.denycreatebranch +# This boolean sets whether remotely creating branches will be denied +# in the repository. By default this is allowed. +# + +# --- Command line +refname="$1" +oldrev="$2" +newrev="$3" + +# --- Safety check +if [ -z "$GIT_DIR" ]; then + echo "Don't run this script from the command line." >&2 + echo " (if you want, you could supply GIT_DIR then run" >&2 + echo " $0 )" >&2 + exit 1 +fi + +if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then + echo "usage: $0 " >&2 + exit 1 +fi + +# --- Config +allowunannotated=$(git config --type=bool hooks.allowunannotated) +allowdeletebranch=$(git config --type=bool hooks.allowdeletebranch) +denycreatebranch=$(git config --type=bool hooks.denycreatebranch) +allowdeletetag=$(git config --type=bool hooks.allowdeletetag) +allowmodifytag=$(git config --type=bool hooks.allowmodifytag) + +# check for no description +projectdesc=$(sed -e '1q' "$GIT_DIR/description") +case "$projectdesc" in +"Unnamed repository"* | "") + echo "*** Project description file hasn't been set" >&2 + exit 1 + ;; +esac + +# --- Check types +# if $newrev is 0000...0000, it's a commit to delete a ref. +zero=$(git hash-object --stdin &2 + echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2 + exit 1 + fi + ;; + refs/tags/*,delete) + # delete tag + if [ "$allowdeletetag" != "true" ]; then + echo "*** Deleting a tag is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/tags/*,tag) + # annotated tag + if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1 + then + echo "*** Tag '$refname' already exists." >&2 + echo "*** Modifying a tag is not allowed in this repository." >&2 + exit 1 + fi + ;; + refs/heads/*,commit) + # branch + if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then + echo "*** Creating a branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/heads/*,delete) + # delete branch + if [ "$allowdeletebranch" != "true" ]; then + echo "*** Deleting a branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + refs/remotes/*,commit) + # tracking branch + ;; + refs/remotes/*,delete) + # delete tracking branch + if [ "$allowdeletebranch" != "true" ]; then + echo "*** Deleting a tracking branch is not allowed in this repository" >&2 + exit 1 + fi + ;; + *) + # Anything else (is there anything else?) + echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2 + exit 1 + ;; +esac + +# --- Finished +exit 0 diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/info/exclude b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/info/exclude new file mode 100644 index 0000000..a5196d1 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/info/exclude @@ -0,0 +1,6 @@ +# git ls-files --others --exclude-from=.git/info/exclude +# Lines that start with '#' are comments. +# For a project mostly in C, the following would be a good set of +# exclude patterns (uncomment them if you want to use them): +# *.[oa] +# *~ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/info/refs b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/info/refs new file mode 100644 index 0000000..8974902 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/info/refs @@ -0,0 +1 @@ +abbca9b8ca127c928f1743c9b23102c5d19d7f3b refs/heads/main diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/logs/HEAD b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/logs/HEAD new file mode 100644 index 0000000..1193e24 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/logs/HEAD @@ -0,0 +1 @@ +0000000000000000000000000000000000000000 abbca9b8ca127c928f1743c9b23102c5d19d7f3b Gitea 1768496624 +0100 diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/logs/refs/heads/main b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/logs/refs/heads/main new file mode 100644 index 0000000..b7a59b0 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/logs/refs/heads/main @@ -0,0 +1 @@ +0000000000000000000000000000000000000000 abbca9b8ca127c928f1743c9b23102c5d19d7f3b admin 1768496623 +0100 push diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/objects/00/6df5ccd246fc682473a67b5e534b0daa4940ed b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/objects/00/6df5ccd246fc682473a67b5e534b0daa4940ed new file mode 100644 index 0000000..ac3d833 Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/objects/00/6df5ccd246fc682473a67b5e534b0daa4940ed differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/objects/36/b13f1e56373da9b044b8e2d023d1ffcfab5d06 b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/objects/36/b13f1e56373da9b044b8e2d023d1ffcfab5d06 new file mode 100644 index 0000000..ad5b0bb Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/objects/36/b13f1e56373da9b044b8e2d023d1ffcfab5d06 differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/objects/ab/bca9b8ca127c928f1743c9b23102c5d19d7f3b b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/objects/ab/bca9b8ca127c928f1743c9b23102c5d19d7f3b new file mode 100644 index 0000000..12e4277 Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/objects/ab/bca9b8ca127c928f1743c9b23102c5d19d7f3b differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/objects/b9/f78b5bce6e313d14510ae538e5eac818ae7494 b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/objects/b9/f78b5bce6e313d14510ae538e5eac818ae7494 new file mode 100644 index 0000000..60bb972 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/objects/b9/f78b5bce6e313d14510ae538e5eac818ae7494 @@ -0,0 +1,3 @@ +xKOR01gPV(,-OM5 +qSRS +ܽ=\}\ܩ- \ No newline at end of file diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/objects/ff/ba22223ce0ee665c95f06e2d9d0febaa6662e6 b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/objects/ff/ba22223ce0ee665c95f06e2d9d0febaa6662e6 new file mode 100644 index 0000000..aa257e2 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/objects/ff/ba22223ce0ee665c95f06e2d9d0febaa6662e6 @@ -0,0 +1,6 @@ +x]R[k0޳~!O-]ۇ1J#FV%p`+;RҎFN6ˆ+MG Im2M{ OOߠ;OnGBJ=sƎ`z`t x g=9\h#"Y=8{qR;g[S# tO`ueqY:]`FނW{;{iFC0wAyda?f١4!|u4v>f8B1'_N0y +T,Unb #_x!J3AR}xW!,?$!6쏣HlD= GY \ No newline at end of file diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/objects/info/packs b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/objects/info/packs new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/objects/info/packs @@ -0,0 +1 @@ + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/refs/heads/main b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/refs/heads/main new file mode 100644 index 0000000..51ae413 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/git/repositories/cliente-prueba-1/sitio-web-1.git/refs/heads/main @@ -0,0 +1 @@ +abbca9b8ca127c928f1743c9b23102c5d19d7f3b diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/avatars/339cde628068dbe293da842e7f969fd5 b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/avatars/339cde628068dbe293da842e7f969fd5 new file mode 100644 index 0000000..bbecdff Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/avatars/339cde628068dbe293da842e7f969fd5 differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/avatars/4298b059a964af6c872e569ddcf6c422 b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/avatars/4298b059a964af6c872e569ddcf6c422 new file mode 100644 index 0000000..6fc681f Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/avatars/4298b059a964af6c872e569ddcf6c422 differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/avatars/ab3db2242671896d670374221420797a b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/avatars/ab3db2242671896d670374221420797a new file mode 100644 index 0000000..58776dd Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/avatars/ab3db2242671896d670374221420797a differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/conf/app.ini b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/conf/app.ini new file mode 100644 index 0000000..6d549cb --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/conf/app.ini @@ -0,0 +1,98 @@ +APP_NAME = Gitea: Git with a cup of tea +RUN_MODE = prod +RUN_USER = git +WORK_PATH = /data/gitea + +[repository] +ROOT = /data/git/repositories + +[repository.local] +LOCAL_COPY_PATH = /data/gitea/tmp/local-repo + +[repository.upload] +TEMP_PATH = /data/gitea/uploads + +[server] +APP_DATA_PATH = /data/gitea +DOMAIN = git.gk-saas.komkida.duckdns.org +SSH_DOMAIN = git.gk-saas.komkida.duckdns.org +HTTP_PORT = 3000 +ROOT_URL = http://git.gk-saas.komkida.duckdns.org/ +DISABLE_SSH = false +SSH_PORT = 22 +SSH_LISTEN_PORT = 22 +LFS_START_SERVER = true +LFS_JWT_SECRET = e26UslhmO029LfMQbTLpU8Qn_MzP38Fks_snQRBjzF4 +OFFLINE_MODE = true + +[database] +PATH = /data/gitea/gitea.db +DB_TYPE = sqlite3 +HOST = localhost:3306 +NAME = gitea +USER = root +PASSWD = +LOG_SQL = false +SCHEMA = +SSL_MODE = disable + +[indexer] +ISSUE_INDEXER_PATH = /data/gitea/indexers/issues.bleve + +[session] +PROVIDER_CONFIG = /data/gitea/sessions +PROVIDER = file + +[picture] +AVATAR_UPLOAD_PATH = /data/gitea/avatars +REPOSITORY_AVATAR_UPLOAD_PATH = /data/gitea/repo-avatars + +[attachment] +PATH = /data/gitea/attachments + +[log] +MODE = console +LEVEL = info +ROOT_PATH = /data/gitea/log + +[security] +INSTALL_LOCK = true +SECRET_KEY = +REVERSE_PROXY_LIMIT = 1 +REVERSE_PROXY_TRUSTED_PROXIES = * +INTERNAL_TOKEN = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE3Njg0OTYxMTB9.wVL_AGGU7rcilnQxINdf89bztzHr6SkFI2E3kUrR-LQ +PASSWORD_HASH_ALGO = pbkdf2 + +[service] +DISABLE_REGISTRATION = false +REQUIRE_SIGNIN_VIEW = false +REGISTER_EMAIL_CONFIRM = false +ENABLE_NOTIFY_MAIL = false +ALLOW_ONLY_EXTERNAL_REGISTRATION = false +ENABLE_CAPTCHA = false +DEFAULT_KEEP_EMAIL_PRIVATE = false +DEFAULT_ALLOW_CREATE_ORGANIZATION = true +DEFAULT_ENABLE_TIMETRACKING = true +NO_REPLY_ADDRESS = noreply.git.gk-saas.komkida.duckdns.org + +[lfs] +PATH = /data/git/lfs + +[mailer] +ENABLED = false + +[openid] +ENABLE_OPENID_SIGNIN = true +ENABLE_OPENID_SIGNUP = true + +[cron.update_checker] +ENABLED = true + +[repository.pull-request] +DEFAULT_MERGE_STYLE = merge + +[repository.signing] +DEFAULT_TRUST_MODEL = committer + +[oauth2] +JWT_SECRET = yHgPirRG4OmPueCt6KQqLEFM5L7ERrsIvRvxZnRY29Q diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/gitea.db b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/gitea.db new file mode 100644 index 0000000..fe60a6b Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/gitea.db differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/home/.gitconfig b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/home/.gitconfig new file mode 100644 index 0000000..ec57bef --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/home/.gitconfig @@ -0,0 +1,22 @@ +[diff] + algorithm = histogram +[core] + logallrefupdates = true + quotePath = false + commitGraph = true +[gc] + reflogexpire = 90 + writeCommitGraph = true +[user] + name = Gitea + email = gitea@fake.local +[receive] + advertisePushOptions = true + procReceiveRefs = refs/for +[fetch] + writeCommitGraph = true +[safe] + directory = * +[uploadpack] + allowfilter = true + allowAnySHA1InWant = true diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/indexers/issues.bleve/index_meta.json b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/indexers/issues.bleve/index_meta.json new file mode 100644 index 0000000..5dc3405 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/indexers/issues.bleve/index_meta.json @@ -0,0 +1 @@ +{"storage":"boltdb","index_type":"scorch"} \ No newline at end of file diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/indexers/issues.bleve/rupture_meta.json b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/indexers/issues.bleve/rupture_meta.json new file mode 100644 index 0000000..978d526 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/indexers/issues.bleve/rupture_meta.json @@ -0,0 +1 @@ +{"version":5} \ No newline at end of file diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/indexers/issues.bleve/store/root.bolt b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/indexers/issues.bleve/store/root.bolt new file mode 100644 index 0000000..854b9d9 Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/indexers/issues.bleve/store/root.bolt differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/jwt/private.pem b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/jwt/private.pem new file mode 100644 index 0000000..5fa68f0 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/jwt/private.pem @@ -0,0 +1,52 @@ +-----BEGIN PRIVATE KEY----- +MIIJQwIBADANBgkqhkiG9w0BAQEFAASCCS0wggkpAgEAAoICAQDdQPzDJcWuR1bF +zbi14h+T+ibX4mbj9Y3BLKY09gfA6NqlljY7cXwLTBayoFoCjXXhUkB5jX6JKQyo +USTS/LcyxuQF2qDGKm++0dQrQ8ShwlXSRtUPBsEOnyhN/CY892fZuH4fF+TVxJWd +ThUmRtFut8fa1+Gn0ODy1sU1D4W5els4ZWGPnx2Uh9qxjWLVAFgIhTr/eqqYfJyU +r+16vetFGSU5F6iOXorIleYvRak0H6bTUYcOVdlhCasmvvjJuYpaGHFzU7Xw82y9 +FVcRst3PXg8DTDDJo23Rco8SczixNl76XjurnEnitXL91vPkhfrOesES8tWwdZvD +RVzzYG+gVWiO6+c8vh9pCyVS34K/j5O561mq8/L0agyluPhBALm64qdWe9pMZjoJ +bqnXofggoKfqtPFjIFbfutuJQByB39nvsA5XuWtxbjpZZ9VsX2r1EhCR3TqcTAof +oV1Mz+qHqtd0NP1cw7KFtm6KvrTXM6SRk7N/Vhwl54znPLqJyy2sT8sHchDVDksO +V4N7P6KCfy0iSgKxOWnw+k1t1SMbs1MIYcbY/rM/e3DQxd6c3Mh1kYSmUiWhMXA8 +2jxfRhVx0R8xJQbCDugGG2kNmSy64JrV/Up8fJUiBTVJjKIXiV5DHToX+eI17U4P +C1Bqz+BY+w57dF6dRa8GUsd77GRkHwIDAQABAoICAAyqIE3DUbzCFJ4fQnLBeMaY +S7TmdAvvDagrDXB792xRZ9fmm0AXz4k4rRaYcHkzmQscEYNjrVnd4ahDd3TO8RA/ +q48HjqsJLtBLY8uo22PZozP1c1NNiFYf7MdZ/DkCfbf2rtwfcAJ/ItlC6O8B9Wb9 +r2ZAHoiOlPG8MsRGGS90E4NM5PgQRuSDn5ReNXQKdao3MMNYRX+Tp8V9tH2RdXAa +b7Ou6P+35ase+XK8mAzbFZ+ES9Nu5+coDdtFPym81xsvyalXof3Ne+yZgMcLPVXA +r+H5GynPkwT+0QsLUV7Db/hWKzA4MqUpdxA/R5f4cKd1BgGMU4hVkw7rCiuxhMdw +vbHKLyrr/gyMwELAiX3vtoYqdJYqXynKDRMjGFSQprZm/BTZBhoY+6Rk9G1UrOku +pBEO79vzZXmIYDLoYGmwYOocTLCORDfxzWokBFwJWKG1Czu8iOyR5JaNNFCHhBdR +s/lK+dsVZWOSIcw61iUIE/7Zt2aqtuSuE7ENPRuDDlwI/S/k5xTAomNGZcVAOk4a +5viFgnUs5I6eRBIVF0a4ST8SxLxmgrV648h+yVIlek5QAPX9W7T5wWabasryWrDT +5H9SvjL4mFqM9bLsPZHe8nXNEPb3JJA9Qi1cGZ4TU2p1DK05rs2OUVptkTN+YsME +l4KyvhNXk227JSqbZVdBAoIBAQDhgoovhgwQTwDCvmh1biPVbutdphsvmUIifEjZ +bMmeaI7IpGZHZblZmuq4RF1toq2877Rl4WzyP9DEpkXa1xp5OSugzqsSugR8Lons +fABO7aRBYDoZTWFbtQrX296Q1cI+WClRKyd5vxbOx79jQZ9GQX5OovqZt98Q/4Kv +Vkx0K2VYUCr7w2RdoS3x1u0FKKufEcMfB813DvgZ9ptDpNQGtiUQ6rZrATZ8lrlE +Jb19NTk2oU1W7I/BmHPkTEfRimDvDQ9j+pVVSb17uVvk4P8uX096MIAln6K66OXU +SsyCSHvXHA3/pApnPUTUkTcU59f3/mq29YGe2i49wzfQmMYxAoIBAQD7KyJzy55J +v/3/X3Fjjt3LZoKCmESLQSnk05GXG5JumsG1qYG2mNksiAFrIyBSev3oOrZO/+6t +vhkSY0MVVl55sdas1YWYw6eWR/Vq+4RVUsBkEuCJ92/LLMmwbJy1U1xYNZF6jvZr +oWKnaQh1ieJKZkmcQtrw4Jw2HJ/zYV4hbLTWANQ4rmnW+8YMKN8p/dfLPghgUwMa +okAn/f4eY62ohUY4iHspV/SvyVid2b9KV/hdTatxHvoLLrN6DPTBXQkQS1O2wLfX +AjQPuSpFHjsL+LAU0KVM786ZnPbglTMfu4gBEdPcCEPVHoYi2GzDgZ7yPTMGmshf +zoWmz+sVBStPAoIBABDZsTul14bscFEc6y9DIJhVJm8j90oSOJfdE5BziYk1pN2n +MyFIn5Xrdnh4W0bS7gp9Gsy2EG71h8L57aRRiF/gfrsQVkYa8jTZQWMTTO6Y4Tol +V5IGbyzsFThV7IaEAnSoH8Y55EQ7nBetY0amY6FbSXXUxcbwr1FU1k4Fs8bGa1cy +/lM7oWdBoO4+Mg29oT1MlXjfG2I3EyDVhXqDeXha6eAeuay7NXgPxx4pd8RAUtsb +KG1DVeaQXrCDZqZooZ+bKTg+RCRQU0FIc25hxY+QfZ7SuvCUwhMXTf0T7b4abm5/ +YShl+IUIVflQNH5yaHfWYeDz7VCSWvwwdx42HDECggEBAO5TbauGqDm+rdrly4f2 +hkp8iJY2ucORH5l7j4hcp0PAINKpduW2f0wb+YyZlg/tmIQFQfwQKYA/AzdJbNwQ +SjEbKGJzcQMVlC2rNho/csArd1b9+oWvfirB4tc/GCuOX+9rVRGAGh7i0eOcbGRr +Y4fJK0vUvD8YQeGuo6+i0ljQ936g5r6p8NAHs1LSbX9A2MSHphcQbb+V+V55Sem4 +F43yeEEocAU46nrqiOWvOi3m70pJasY56HU36SGErbHU/8awU0zz7P1dn9zTjGJt +XwXrAdmeaVtpqRZltHRB3nLb1R9+tRLx3Lua7RifWATjN9kPbR11PXB7XKJ+Y8hc +UU0CggEBALnR1khky3jZ23T/Biu9Zy1iCTWPqBzLPllu/Te2hxsILl1fxBq6dgRJ +hMFa/zMWhcmVxRoEr9AoK7vilXhlmyaA3t7d82KcR7FZewJHGJI8BZaMO5AF4F24 +P1J6gm/S5UIA8yKxogTff6dC+bOSn2pKqffG6mC1w+jRe2aVCZHihjJK/3cDaUs3 +bNSw4HooYahiOJYYC1tar/fZGgU52i33BqwwOiHQrlHQI/qjQg7gXDCrnNH2Y4V1 +W8dkPvL+B0inWUgSv5cjGLthg+vRuVf7ux5Irex+I4t23OOGE+8GF4s3BDrSl6GI +3cTHvqYbi+cfGV+B1/cpMtBCZy9OHV4= +-----END PRIVATE KEY----- diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/queues/common/CURRENT b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/queues/common/CURRENT new file mode 100644 index 0000000..feda7d6 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/queues/common/CURRENT @@ -0,0 +1 @@ +MANIFEST-000000 diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/queues/common/LOCK b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/queues/common/LOCK new file mode 100644 index 0000000..e69de29 diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/queues/common/LOG b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/queues/common/LOG new file mode 100644 index 0000000..83ac80d --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/queues/common/LOG @@ -0,0 +1,6 @@ +=============== Jan 15, 2026 (CET) =============== +17:55:19.489933 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed +17:55:19.518591 db@open opening +17:55:19.519840 version@stat F·[] S·0B[] Sc·[] +17:55:19.528240 db@janitor F·2 G·0 +17:55:19.528765 db@open done T·9.777326ms diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/queues/common/MANIFEST-000000 b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/queues/common/MANIFEST-000000 new file mode 100644 index 0000000..9d54f67 Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/queues/common/MANIFEST-000000 differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/sessions/2/a/2a0a3092fe6b311d b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/sessions/2/a/2a0a3092fe6b311d new file mode 100644 index 0000000..b712b58 Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/sessions/2/a/2a0a3092fe6b311d differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/sessions/5/e/5ed1fe0e13e85d13 b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/sessions/5/e/5ed1fe0e13e85d13 new file mode 100644 index 0000000..1e96f46 Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/sessions/5/e/5ed1fe0e13e85d13 differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/sessions/9/a/9af4cdf99d71a1b7 b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/sessions/9/a/9af4cdf99d71a1b7 new file mode 100644 index 0000000..5f9477a Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/sessions/9/a/9af4cdf99d71a1b7 differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/sessions/b/6/b688f9c59d21236d b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/sessions/b/6/b688f9c59d21236d new file mode 100644 index 0000000..b712b58 Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea/gitea_data/gitea/sessions/b/6/b688f9c59d21236d differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea_connector.py b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea_connector.py new file mode 100644 index 0000000..09b36b1 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gitea_connector.py @@ -0,0 +1,78 @@ +import requests +import json +import os + +# CONFIGURACIÓN +# Cuando tengas el token, ponlo aquí o en variable de entorno +GITEA_URL = "http://git.gk-saas.komkida.duckdns.org" # Interno: "http://localhost:3000" si corre en la misma Pi +GITEA_TOKEN = "20e7a102677c5cd7e2e0a241e9ea1cf6364db643" + +def create_org(org_name): + """Crea una organización para un cliente (ej. 'cliente-123')""" + headers = { + 'Authorization': f'token {GITEA_TOKEN}', + 'Content-Type': 'application/json' + } + data = { + "username": org_name, + "visibility": "private", + "description": f"Organización para {org_name}", + "website": "" + } + + response = requests.post(f"{GITEA_URL}/api/v1/orgs", headers=headers, json=data) + + if response.status_code == 201: + print(f"✅ Organización '{org_name}' creada.") + return True + elif response.status_code == 422: + print(f"ℹ️ La organización '{org_name}' ya existe.") + return True + else: + print(f"❌ Error al crear organización: {response.text}") + return False + +def create_repo(org_name, repo_name, description="Sitio generado por GKACHELE SaaS"): + """Crea un repositorio dentro de una organización""" + headers = { + 'Authorization': f'token {GITEA_TOKEN}', + 'Content-Type': 'application/json' + } + data = { + "name": repo_name, + "description": description, + "private": True, + "auto_init": True, # Crea README y branch main automáticamente + "gitignores": "Python", + "license": "MIT", + "default_branch": "main" + } + + # Endpoint para crear repo en organización + url = f"{GITEA_URL}/api/v1/orgs/{org_name}/repos" + + response = requests.post(url, headers=headers, json=data) + + if response.status_code == 201: + repo_data = response.json() + print(f"✅ Repositorio '{org_name}/{repo_name}' creado exitosamente.") + print(f"🔗 Clone URL: {repo_data['clone_url']}") + return repo_data + elif response.status_code == 409: + print(f"ℹ️ El repositorio '{repo_name}' ya existe en '{org_name}'.") + # Intentar obtener el repo existente + # response = requests.get(f"{GITEA_URL}/api/v1/repos/{org_name}/{repo_name}", headers=headers) + return None + else: + print(f"❌ Error al crear repositorio: {response.text}") + return None + +if __name__ == "__main__": + print("--- 🧪 Test de Conexión con Gitea ---") + if GITEA_TOKEN == "TU_TOKEN_DE_GITEA_AQUI": + print("⚠️ Primero genera un token en Gitea (Settings -> Applications -> Generate Token)") + else: + # Prueba + CLIENTE_TEST = "cliente-prueba-1" + create_org(CLIENTE_TEST) + create_repo(CLIENTE_TEST, "sitio-web-1") diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gkachele-saas.service b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gkachele-saas.service new file mode 100644 index 0000000..dedfe49 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/gkachele-saas.service @@ -0,0 +1,15 @@ +[Unit] +Description=GKACHELE SaaS Flask App +After=network.target + +[Service] +Type=simple +User=pi +WorkingDirectory=/home/pi/gkachele-saas +Environment="PATH=/usr/bin:/usr/local/bin:/home/pi/.local/bin" +ExecStart=/usr/bin/python3 /home/pi/gkachele-saas/app.py +Restart=always +RestartSec=10 + +[Install] +WantedBy=multi-user.target diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/main.db b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/main.db new file mode 100644 index 0000000..cdd3d96 Binary files /dev/null and b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/main.db differ diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/memoria/INDICE.md b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/memoria/INDICE.md new file mode 100644 index 0000000..f8ae991 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/memoria/INDICE.md @@ -0,0 +1,203 @@ +# 📚 ÍNDICE DE DOCUMENTACIÓN - GKACHELE™ + +**© 2025 GKACHELE™. Todos los derechos reservados.** + +## 🎯 IMPORTANTE: LEER SIEMPRE ESTA CARPETA ANTES DE HACER CAMBIOS + +Esta carpeta contiene **TODA** la documentación del proyecto. **SIEMPRE** consulta estos archivos antes de modificar código. + +--- + +## 📋 DOCUMENTOS PRINCIPALES + +### 1. ⚠️ **REGLA_IMPORTANTE.md** - LEER PRIMERO +- **🚫 NUNCA mencionar "WordPress" en el código** +- Reglas de branding y nomenclatura +- Reemplazos correctos +- **LEER ANTES DE ESCRIBIR CUALQUIER CÓDIGO** + +### 2. 📖 **MEMORIA_PROYECTO_COMPLETA.md** +- Documentación completa del proyecto +- Arquitectura del sistema +- Flujos y rutas +- Estado actual +- **Referencia principal del proyecto** + +### 3. 🔐 **SISTEMA_ROLES.md** +- Sistema de roles y permisos basado en DB +- Jerarquía de roles (administrator, editor, author, subscriber) +- Funciones helper: `user_has_role()`, `user_can()` +- Migración automática +- **NUNCA hardcodear permisos** + +### 4. 👥 **GESTION_USUARIOS.md** +- Sistema de gestión de usuarios +- Ver usuarios registrados +- Eliminar usuarios (con cascada) +- Consultas SQL útiles +- Panel `/admin` + +### 5. 🔌 **COMO_CONECTAR_DB.md** +- Cómo conectarse a la base de datos +- DB Browser for SQLite +- Scripts Python +- Consultas útiles +- Sincronización con Raspberry + +### 6. 🖥️ **MEMORIA_RASPBERRY_SAAS.md** +- Configuración de Raspberry Pi +- Servicio systemd +- Nginx +- DuckDNS +- Deployment + +### 7. 🔄 **MEMORIA_SINCRONIZACION.md** +- Sincronización entre local y Raspberry +- Scripts de actualización +- Cron jobs +- Verificación + +### 8. 🔐 **CREDENCIALES_CLIENTES.md** +- Credenciales de acceso de clientes +- Usuario administrador +- **ARCHIVO CONFIDENCIAL** - Mantener privado + +### 9. 🎯 **METODOLOGIA_TRABAJO.md** +- Regla: Primero funcionalidad, después limpieza +- Checklist de trabajo +- Principios de desarrollo + +### 10. 📖 **DOCUMENTACION_PROYECTO.md** +- Documentación completa del proyecto +- ¿Qué estamos construyendo? +- Arquitectura técnica +- Flujo completo del sistema +- Estado actual + +### 11. ❓ **RESPUESTAS_PREGUNTAS.md** +- Respuestas a preguntas frecuentes +- Python vs Docker +- VPS vs Raspberry Pi +- Acceso a base de datos +- Limitaciones por plan + +### 12. 🇦🇷 **OBJETIVOS_ARGENTINA.md** +- Objetivos para lanzamiento en Argentina +- Criterio de éxito (Raspberry → VPS) +- Checklist pre-argentina +- Plan de acción completo + +### 13. 🔄 **GITEA_WORKFLOWS.md** +- Integración Gitea +- Workflows automáticos +- Repositorios por cliente +- Integración con dashboard admin +- Despliegues automáticos + +### 14. 🎯 **FUNCIONALIDADES_COMPLETAS.md** +- Flujo correcto del sistema +- Funcionalidades requeridas +- Estado actual +- Checklist funcionalidad + +### 15. 🌐 **SUBDOMINIOS_PAGOS.md** +- Sistema de subdominios +- Integración pagos Nominalia +- Comodines para pagos +- Gestión de dominios + +### 16. 📊 **ESTADO_ACTUAL.md** +- Estado actual del proyecto +- Hash actual +- Funcionando vs Pendiente +- Próximos pasos + +### 17. 📝 **HISTORIAL_CAMBIOS.md** +- Historial de versiones +- Hash de cada cambio +- Log de funcionalidades + +### 18. 🗂️ **ESTRUCTURA_RUTAS.md** +- Estructura de rutas acordada +- /customizer - Editar antes de publicar +- /admin - Panel del cliente +- /dashboard - Panel principal admin +- Flujo completo + +### 19. 🎨 **SISTEMA_TEMPLATES.md** +- Sistema de templates estilo WordPress +- Cómo añadir nuevos templates fácilmente +- Estructura de carpetas y config.json +- Endpoints API para templates +- Uso en customizer + +### 20. ✏️ **EDITOR_VISUAL_PREVIEW.md** +- Análisis: Edición en preview vs sidebar +- Click to edit en preview (como WordPress) +- Sincronización bidireccional +- Plan de implementación híbrido +- Hash: `gkachele-editor-visual-20250114-1425` + +### 21. 🧩 **SISTEMA_BLOQUES_EDITABLES.md** +- Sistema de bloques añadibles/eliminables +- Drag & drop para reordenar +- Videos, imágenes, texto, redes sociales, mapas +- Iconos SVG para redes sociales +- Mapa embed sin API key +- Hash: `gkachele-bloques-editables-20250115-001` + +--- + +## 🎯 PRINCIPIOS DEL PROYECTO + +1. **Todo en Base de Datos**: Sin lógica hardcodeada +2. **Sistema Multi-tenant**: Todos los clientes en `main.db` +3. **Roles Dinámicos**: Basados en DB, no hardcodeados +4. **Branding GKACHELE™**: Sin referencias a otros sistemas +5. **Modular**: Código organizado y reutilizable + +--- + +## 📍 ESTRUCTURA DEL PROYECTO + +``` +c:\word\ +├── demo/ # Código del SaaS +│ ├── app.py # Flask backend +│ ├── database/ # main.db (multi-tenant) +│ ├── themes/ # Templates +│ ├── templates/ # HTML templates +│ └── static/ # CSS, JS +├── memoria/ # 📚 TODA LA DOCUMENTACIÓN AQUÍ +│ ├── INDICE.md # Este archivo +│ ├── REGLA_IMPORTANTE.md # ⚠️ LEER PRIMERO +│ ├── MEMORIA_PROYECTO_COMPLETA.md +│ ├── SISTEMA_ROLES.md +│ ├── GESTION_USUARIOS.md +│ ├── COMO_CONECTAR_DB.md +│ ├── MEMORIA_RASPBERRY_SAAS.md +│ └── MEMORIA_SINCRONIZACION.md +└── backups/ # Backups del proyecto +``` + +--- + +## ✅ CHECKLIST ANTES DE HACER CAMBIOS + +- [ ] Leer `REGLA_IMPORTANTE.md` (nunca mencionar WordPress) +- [ ] Consultar `MEMORIA_PROYECTO_COMPLETA.md` para entender arquitectura +- [ ] Verificar `SISTEMA_ROLES.md` si toca permisos +- [ ] Revisar documentación relevante según el cambio +- [ ] Verificar que no haya lógica hardcodeada +- [ ] Asegurar que todo esté basado en DB + +--- + +## 🔄 ACTUALIZACIÓN + +**Última actualización:** 14 Enero 2025 +**Hash:** `gkachele-docs-consolidated-20250114` + +--- + +**© 2025 GKACHELE™. Todos los derechos reservados.** diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/memoria/SISTEMA_BLOQUES_EDITABLES.md b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/memoria/SISTEMA_BLOQUES_EDITABLES.md new file mode 100644 index 0000000..5028d67 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/memoria/SISTEMA_BLOQUES_EDITABLES.md @@ -0,0 +1,247 @@ +# 🧩 Sistema de Bloques Editables - GKACHELE™ + +**© 2025 GKACHELE™. Todos los derechos reservados.** + +**Hash:** `gkachele-bloques-editables-20250115-001` + +--- + +## 📋 OBJETIVO + +Implementar sistema completo de bloques editables similar a WordPress Gutenberg: +- ✅ Añadir/eliminar bloques (videos, imágenes, texto, redes sociales) +- ✅ Mover bloques (drag & drop) +- ✅ Edición inline (click con lápiz) + sidebar +- ✅ Iconos de redes sociales automáticos +- ✅ Mapa embed sin API key +- ✅ Todo sincronizado en tiempo real + +--- + +## 🎯 FUNCIONALIDADES REQUERIDAS + +### 1. Añadir Bloques +- Botón "➕ Añadir Bloque" en sidebar +- Tipos: Video (YouTube/Vimeo), Imagen, Texto, Redes Sociales, Mapa +- Cada bloque se añade al preview y al sidebar + +### 2. Eliminar Bloques +- Botón "🗑️" en cada bloque del preview +- Confirmación antes de eliminar +- Sincronización automática + +### 3. Mover Bloques +- Drag & drop usando HTML5 Drag API +- Indicadores visuales al arrastrar +- Guardado automático del orden + +### 4. Redes Sociales con Iconos +- Al añadir URL de red social, mostrar icono automático +- Iconos: Facebook, Instagram, Twitter/X, WhatsApp, YouTube +- Usar Font Awesome o SVG inline + +### 5. Mapa Embed +- Campo para URL de Google Maps (compartir → insertar mapa) +- Renderizar iframe sin necesidad de API key +- Validación de URL + +### 6. Edición Híbrida +- Click en elemento → editar inline (modal) +- Cambios en sidebar → actualizar preview +- Bidireccional siempre + +--- + +## 🔧 IMPLEMENTACIÓN + +### Estructura de Datos + +```json +{ + "blocks": [ + { + "id": "block_1234567890", + "type": "video", + "content": { + "url": "https://www.youtube.com/embed/...", + "title": "Video Tutorial" + }, + "order": 0 + }, + { + "id": "block_1234567891", + "type": "redes_sociales", + "content": { + "facebook": "https://facebook.com/...", + "instagram": "https://instagram.com/..." + }, + "order": 1 + }, + { + "id": "block_1234567892", + "type": "mapa", + "content": { + "url": "https://www.google.com/maps/embed?pb=..." + }, + "order": 2 + } + ] +} +``` + +### Backend (app.py) + +```python +# Endpoint para añadir bloque +@app.route('/api/customizer/add-block', methods=['POST']) +def add_block(): + # Añadir nuevo bloque a content_json['blocks'] + pass + +# Endpoint para eliminar bloque +@app.route('/api/customizer/remove-block', methods=['POST']) +def remove_block(): + # Eliminar bloque por ID + pass + +# Endpoint para reordenar bloques +@app.route('/api/customizer/reorder-blocks', methods=['POST']) +def reorder_blocks(): + # Actualizar orden de bloques + pass +``` + +### Frontend (customizer.html) + +```javascript +// Añadir bloque +function addBlock(type) { + const blockId = 'block_' + Date.now(); + const newBlock = { + id: blockId, + type: type, + content: getDefaultContentForType(type), + order: blocks.length + }; + // Añadir a preview y sidebar + renderBlock(newBlock); + saveBlocks(); +} + +// Eliminar bloque +function removeBlock(blockId) { + if (confirm('¿Eliminar este bloque?')) { + // Remover del DOM y del array + saveBlocks(); + } +} + +// Drag & Drop +function initDragDrop() { + document.querySelectorAll('.gk-block').forEach(block => { + block.draggable = true; + block.addEventListener('dragstart', handleDragStart); + block.addEventListener('dragover', handleDragOver); + block.addEventListener('drop', handleDrop); + }); +} +``` + +### Template (template.html) + +```html + +{% if blocks %} + {% for block in blocks|sort(attribute='order') %} + {% if block.type == 'video' %} +
+ + +
+ {% elif block.type == 'redes_sociales' %} +
+ + +
+ {% elif block.type == 'mapa' %} +
+ + +
+ {% endif %} + {% endfor %} +{% endif %} +``` + +--- + +## 📝 CHECKLIST + +- [ ] Sistema de bloques en backend (añadir/eliminar/reordenar) +- [ ] UI para añadir bloques en sidebar +- [ ] Renderizado de bloques en template +- [ ] Drag & drop funcional +- [ ] Iconos de redes sociales (Font Awesome o SVG) +- [ ] Mapa embed sin API +- [ ] Edición inline de bloques +- [ ] Sincronización bidireccional +- [ ] Guardado automático +- [ ] Indicadores visuales (hover, drag) + +--- + +## 🎨 ESTILOS + +```css +.gk-block { + position: relative; + margin: 20px 0; + padding: 15px; + border: 2px dashed transparent; + transition: all 0.3s; +} + +.gk-block:hover { + border-color: var(--primary); +} + +.gk-block.dragging { + opacity: 0.5; +} + +.gk-block-delete { + position: absolute; + top: 10px; + right: 10px; + background: #d63638; + color: white; + border: none; + padding: 5px 10px; + border-radius: 4px; + cursor: pointer; + opacity: 0; + transition: opacity 0.2s; +} + +.gk-block:hover .gk-block-delete { + opacity: 1; +} +``` + +--- + +## 🔗 REFERENCIAS + +- WordPress Gutenberg: Sistema de bloques +- Elementor: Drag & drop visual +- Google Maps Embed: Sin API key necesario + +--- + +**Última actualización:** 2025-01-15 +**Estado:** En desarrollo diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/nginx.conf b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/nginx.conf new file mode 100644 index 0000000..e69de29 diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/register.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/register.html new file mode 100644 index 0000000..6c5534d --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/register.html @@ -0,0 +1,132 @@ + + + + + Registro - Demo + + + +
+

📝 Registrarse

+
+ + + + + +
+

+ ¿Ya tienes cuenta? Inicia sesión +

+
+ + + + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/static/style.css b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/static/style.css new file mode 100644 index 0000000..addf451 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/static/style.css @@ -0,0 +1,2409 @@ +/* GKACHELE™ - Diseño Premium Inspirado en Blow-dance */ + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --primary-orange: #FF6B35; + --dark-black: #1a1a1a; + --pure-white: #ffffff; + --light-gray: #f5f5f5; + --bg-light: #fafafa; + --card-bg: #ffffff; + --text-primary: #1a1a1a; + --text-secondary: #666; + --text-light: #888; + --border-light: rgba(0, 0, 0, 0.08); + --shadow-sm: 0 2px 10px rgba(0, 0, 0, 0.05); + --shadow-md: 0 5px 25px rgba(0, 0, 0, 0.1); + --shadow-lg: 0 10px 40px rgba(0, 0, 0, 0.15); + --shadow-orange: 0 5px 25px rgba(255, 107, 53, 0.2); + + /* Social Media Colors */ + --whatsapp: #25D366; + --whatsapp-hover: #20BA5A; + --facebook: #1877F2; + --facebook-hover: #0d65d9; + --instagram-start: #833AB4; + --instagram-mid: #E1306C; + --instagram-end: #FD1D1D; + --youtube: #FF0000; + --youtube-hover: #CC0000; + --tiktok: #000000; + --tiktok-hover: #00F2EA; +} + +body { + font-family: 'Inter', sans-serif; + background: #fafafa; + color: var(--text-primary); + line-height: 1.7; + overflow-x: hidden; + font-weight: 300; + position: relative; +} + +body::after { + content: '© GKACHELE 2025'; + position: fixed; + bottom: 20px; + left: 20px; + font-size: 0.7rem; + color: rgba(255, 255, 255, 0.03); + font-weight: bold; + z-index: -1; + pointer-events: none; + user-select: none; + transform: rotate(-45deg); + font-family: 'Arial', sans-serif; +} + +body::before { + content: ''; + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1920&h=1080&fit=crop&q=80'); + background-size: cover; + background-position: center; + background-attachment: fixed; + opacity: 0.4; + z-index: -1; + pointer-events: none; +} + +.gkachele-watermark { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip-path: inset(50%); + border: 0; + white-space: nowrap; +} + +.container-large { + max-width: 1400px; + margin: 0 auto; + padding: 0 60px; +} + +/* Navigation Sticky - Premium */ +.nav-sticky { + position: fixed; + top: 0; + left: 0; + right: 0; + background: rgba(255, 255, 255, 0.98); + backdrop-filter: blur(20px); + border-bottom: 1px solid var(--border-light); + z-index: 1000; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + padding: 25px 0; +} + +.nav-container { + max-width: 1600px; + margin: 0 auto; + padding: 0 80px; + display: flex; + justify-content: space-between; + align-items: center; +} + +.nav-logo a { + font-size: 1.4rem; + font-weight: 700; + color: var(--text-primary); + text-decoration: none; + letter-spacing: 1px; + transition: all 0.3s ease; +} + +.nav-logo a:hover { + opacity: 0.7; + transform: translateX(2px); +} + +.nav-menu { + display: flex; + gap: 60px; + align-items: center; + position: absolute; + left: 50%; + transform: translateX(-50%); +} + +.nav-menu a { + font-size: 0.95rem; + font-weight: 400; + color: var(--text-secondary); + text-decoration: none; + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + letter-spacing: 0.5px; + position: relative; +} + +.nav-menu a::after { + content: ''; + position: absolute; + bottom: -5px; + left: 0; + width: 0; + height: 1px; + background: var(--text-primary); + transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1); +} + +.nav-menu a:hover { + color: var(--primary-orange); +} + +.nav-menu a:hover::after { + width: 100%; + background: var(--primary-orange); +} + +.nav-social { + display: flex; + gap: 25px; + align-items: center; +} + +.nav-social a { + width: 40px; + height: 40px; + display: flex; + align-items: center; + justify-content: center; + color: var(--text-secondary); + text-decoration: none; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + border-radius: 50%; + background: transparent; + position: relative; + font-size: 1rem; + border-radius: 50%; +} + +.nav-social a:hover { + transform: translateY(-3px) scale(1.15); + box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15); +} + +/* Facebook - Celeste Premium */ +.nav-social a[title="Facebook"] { + color: var(--facebook); +} + +.nav-social a[title="Facebook"]:hover { + background: var(--facebook); + color: white; + box-shadow: 0 8px 25px rgba(24, 119, 242, 0.4); +} + +/* Instagram - Gradiente Icónico */ +.nav-social a[title="Instagram"] { + color: var(--instagram-mid); +} + +.nav-social a[title="Instagram"]:hover { + background: linear-gradient(135deg, var(--instagram-start) 0%, var(--instagram-mid) 50%, var(--instagram-end) 100%); + color: white; + box-shadow: 0 8px 25px rgba(225, 48, 108, 0.5); +} + +/* YouTube - Rojo Premium */ +.nav-social a[title="YouTube"] { + color: var(--youtube); +} + +.nav-social a[title="YouTube"]:hover { + background: var(--youtube); + color: white; + box-shadow: 0 8px 25px rgba(255, 0, 0, 0.4); +} + +/* TikTok - Negro con Efecto Cyan */ +.nav-social a[title="TikTok"] { + color: var(--tiktok); +} + +.nav-social a[title="TikTok"]:hover { + background: var(--tiktok); + color: var(--tiktok-hover); + box-shadow: 0 8px 25px rgba(0, 242, 234, 0.5); +} + +/* Hero Section - Premium con Imagen Difuminada */ +.hero-section { + margin-top: 100px; + padding: 180px 0 140px; + text-align: center; + background: linear-gradient(to bottom, #ffffff 0%, var(--bg-light) 100%); + position: relative; + overflow: hidden; +} + +.hero-bg-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1920&h=1080&fit=crop&q=80'); + background-size: cover; + background-position: center; + opacity: 0.2; + z-index: 0; +} + +.hero-content { + max-width: 900px; + margin: 0 auto; + position: relative; + z-index: 1; +} + +.hero-title { + font-size: 8.5rem; + font-weight: 300; + letter-spacing: -4px; + margin-bottom: 30px; + color: var(--text-primary); + line-height: 1; +} + +.hero-subtitle { + font-size: 1.8rem; + font-weight: 400; + color: var(--text-secondary); + letter-spacing: -0.5px; + margin-bottom: 40px; + background: linear-gradient(135deg, var(--text-secondary) 0%, var(--primary-orange) 100%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +.hero-description { + font-size: 1.25rem; + line-height: 1.9; + color: var(--text-light); + max-width: 700px; + margin: 0 auto; + font-weight: 300; +} + +/* Plans Section - Premium con Imagen Difuminada y Acordeón */ +.plans-section { + padding: 150px 0; + background: var(--bg-light); + position: relative; + overflow: hidden; +} + +.plans-bg-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1920&h=1080&fit=crop&q=80'); + background-size: cover; + background-position: center; + opacity: 0.18; + z-index: 0; +} + +.plans-section .container-large { + position: relative; + z-index: 1; +} + +.section-title { + font-size: 4rem; + font-weight: 300; + letter-spacing: -2.5px; + margin-bottom: 80px; + color: var(--text-primary); + text-align: center; +} + +/* Plans Accordion - Desplegable Premium */ +.plans-accordion { + max-width: 1000px; + margin: 0 auto; +} + +.plan-accordion-item { + background: var(--card-bg); + border-radius: 20px; + margin-bottom: 25px; + overflow: hidden; + transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: var(--shadow-sm); + border: 1px solid var(--border-light); + /* Asegurar que ningún plan empiece activo */ + opacity: 1; +} + +/* Transición suave al abrir/cerrar */ +.plan-accordion-item.active { + box-shadow: var(--shadow-lg), var(--shadow-orange); + border-color: rgba(255, 107, 53, 0.3); + transform: translateY(-5px); + background: linear-gradient(to bottom, #ffffff 0%, rgba(255, 107, 53, 0.02) 100%); + animation: planOpen 0.5s cubic-bezier(0.4, 0, 0.2, 1); +} + +@keyframes planOpen { + from { + transform: translateY(0); + box-shadow: var(--shadow-sm); + } + to { + transform: translateY(-5px); + box-shadow: var(--shadow-lg), var(--shadow-orange); + } +} + +/* Todos los planes iguales - sin estilos especiales para premium */ + +.plan-accordion-header { + width: 100%; + padding: 45px 50px; + background: linear-gradient(135deg, #fafafa 0%, #ffffff 100%); + border: none; + display: flex; + justify-content: space-between; + align-items: center; + cursor: pointer; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + text-align: left; + position: relative; +} + +.plan-accordion-item.active .plan-accordion-header { + background: linear-gradient(135deg, #ffffff 0%, rgba(255, 107, 53, 0.03) 100%); + padding-bottom: 40px; +} + +/* Indicador visual sutil cuando está activo */ +.plan-accordion-item.active .plan-accordion-header::before { + content: ''; + position: absolute; + left: 0; + top: 0; + bottom: 0; + width: 4px; + background: var(--primary-orange); + border-radius: 0 4px 4px 0; +} + +.plan-accordion-header:hover { + background: linear-gradient(135deg, #f5f5f5 0%, #ffffff 100%); +} + +.plan-accordion-item.active .plan-accordion-header:hover { + background: linear-gradient(135deg, rgba(255, 107, 53, 0.03) 0%, #ffffff 100%); +} + +.plan-header-content { + flex: 1; +} + +.plan-accordion-header h3 { + font-size: 2.5rem; + font-weight: 600; + letter-spacing: -1px; + margin-bottom: 12px; + color: var(--text-primary); +} + +.plan-accordion-header .plan-tagline { + font-size: 1.2rem; + color: var(--text-secondary); + font-weight: 300; +} + +.plan-chevron { + font-size: 1.2rem; + color: var(--text-secondary); + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + margin-left: 30px; + transform: rotate(0deg); +} + +.plan-accordion-item.active .plan-chevron { + color: var(--primary-orange); + transform: rotate(180deg); +} + +.plan-accordion-body { + max-height: 0; + overflow: hidden; + transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); +} + +.plan-card-body { + padding: 50px 40px; +} + +.plan-card-body h4 { + font-size: 1.5rem; + font-weight: 600; + margin: 35px 0 20px; + color: var(--text-primary); + letter-spacing: -0.3px; +} + +.plan-card-body h4:first-child { + margin-top: 0; +} + +.plan-card-body ul { + list-style: none; + padding: 0; + margin-bottom: 35px; +} + +.plan-card-body li { + padding: 12px 0; + font-size: 1.05rem; + color: var(--text-secondary); + line-height: 1.8; + font-weight: 300; + transition: all 0.3s ease; +} + +.plan-card-body li:hover { + color: var(--text-primary); + padding-left: 5px; +} + +.plan-ideal { + font-size: 1.05rem; + color: var(--text-secondary); + line-height: 1.8; + margin-bottom: 40px; + font-weight: 300; +} + +.plan-ideal strong { + color: var(--text-primary); + font-weight: 600; +} + +.qr-mini-card { + text-align: center; + margin: 50px 0; + padding: 40px 20px; + background: var(--bg-light); + border-radius: 15px; + border: 1px solid var(--border-light); +} + +.qr-mini-card img { + width: 150px; + height: 150px; + border-radius: 12px; + box-shadow: var(--shadow-md); + margin-bottom: 20px; + transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1); +} + +.qr-mini-card:hover img { + transform: scale(1.05); +} + +.qr-mini-card p { + font-size: 1rem; + color: var(--text-light); + font-weight: 300; +} + +.plan-btn { + display: block; + width: 100%; + padding: 22px 40px; + background: var(--primary-orange); + color: #ffffff; + text-decoration: none; + border: 2px solid rgba(255, 255, 255, 0.1); + border-radius: 50px; + font-weight: 600; + font-size: 1.1rem; + text-align: center; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: 0 5px 20px rgba(255, 107, 53, 0.3); + letter-spacing: 0.5px; + margin-top: 30px; +} + +.plan-btn:hover { + background: #FF5722; + border-color: rgba(255, 255, 255, 0.2); + transform: translateY(-3px); + box-shadow: 0 8px 30px rgba(255, 107, 53, 0.4); +} + +.premium-btn { + background: linear-gradient(135deg, var(--primary-orange) 0%, #FF5722 100%); + border: 2px solid rgba(255, 255, 255, 0.15); + box-shadow: 0 5px 25px rgba(255, 107, 53, 0.35); +} + +.premium-btn:hover { + background: linear-gradient(135deg, #FF5722 0%, #FF4500 100%); + border-color: rgba(255, 255, 255, 0.25); + box-shadow: 0 8px 35px rgba(255, 107, 53, 0.5); +} + +/* Demos Section */ +.demos-section { + position: relative; + padding: 5rem 0; + background: linear-gradient(135deg, #0a0a0a 0%, #1a1a1a 100%); + overflow: hidden; +} + +.demos-bg-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: radial-gradient(circle at 50% 50%, rgba(255, 107, 53, 0.05) 0%, transparent 70%); + pointer-events: none; +} + +.section-subtitle { + text-align: center; + color: #888; + font-size: 1.1rem; + margin-bottom: 3rem; +} + +/* Logo Showcase */ +.logo-showcase { + text-align: center; + margin-bottom: 4rem; + padding: 3rem; + background: rgba(255, 107, 53, 0.05); + border-radius: 20px; + border: 2px solid rgba(255, 107, 53, 0.2); +} + +.main-logo { + max-width: 300px; + height: auto; + margin-bottom: 1.5rem; + filter: drop-shadow(0 10px 30px rgba(255, 107, 53, 0.3)); + transition: transform 0.3s ease; +} + +.main-logo:hover { + transform: scale(1.05); +} + +.logo-text { + font-size: 1.3rem; + color: #ff6b35; + font-weight: 600; +} + +.demos-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); + gap: 2rem; + margin-bottom: 4rem; +} + +.demo-card { + background: rgba(30, 30, 30, 0.8); + border-radius: 15px; + overflow: hidden; + transition: all 0.3s ease; + border: 1px solid rgba(255, 107, 53, 0.1); +} + +.demo-card:hover { + transform: translateY(-10px); + border-color: #ff6b35; + box-shadow: 0 20px 40px rgba(255, 107, 53, 0.3); +} + +.demo-image { + position: relative; + width: 100%; + height: 250px; + overflow: hidden; +} + +.demo-image img { + width: 100%; + height: 100%; + object-fit: cover; + transition: transform 0.5s ease; +} + +.demo-card:hover .demo-image img { + transform: scale(1.1); +} + +.demo-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.7); + display: flex; + align-items: center; + justify-content: center; + opacity: 0; + transition: opacity 0.3s ease; +} + +.demo-card:hover .demo-overlay { + opacity: 1; +} + +.demo-btn { + background: #ff6b35; + color: white; + padding: 0.8rem 1.5rem; + border-radius: 8px; + text-decoration: none; + font-weight: 600; + display: flex; + align-items: center; + gap: 0.5rem; + transition: all 0.3s ease; +} + +.demo-btn:hover { + background: #ff8555; + transform: scale(1.05); +} + +.demo-info { + padding: 1.5rem; +} + +.demo-info h3 { + font-size: 1.5rem; + margin-bottom: 0.5rem; + color: #ff6b35; +} + +.demo-category { + font-size: 0.95rem; + color: #888; + margin-bottom: 0.5rem; +} + +.demo-plan { + font-size: 0.9rem; + margin-bottom: 1rem; +} + +.demo-plan .badge-premium, +.demo-plan .badge-pro, +.demo-plan .badge-base { + padding: 0.3rem 0.8rem; + border-radius: 20px; + font-size: 0.75rem; + font-weight: 600; + text-transform: uppercase; +} + +.demo-plan .badge-premium { + background: linear-gradient(135deg, #ff6b35, #ff8555); + color: white; +} + +.demo-plan .badge-pro { + background: linear-gradient(135deg, #3b82f6, #60a5fa); + color: white; +} + +.demo-plan .badge-base { + background: rgba(255, 255, 255, 0.1); + color: #888; +} + +.demo-description { + color: #ccc; + font-size: 0.95rem; + line-height: 1.6; +} + +/* Video Demo */ +.video-demo-section { + margin-top: 4rem; + text-align: center; +} + +.video-demo-section h3 { + font-size: 2rem; + margin-bottom: 2rem; + color: #ff6b35; +} + +.video-container { + max-width: 900px; + margin: 0 auto; + border-radius: 15px; + overflow: hidden; + background: rgba(30, 30, 30, 0.8); + border: 2px solid rgba(255, 107, 53, 0.2); +} + +.video-placeholder { + padding: 6rem 2rem; + display: flex; + flex-direction: column; + align-items: center; + gap: 1rem; +} + +.video-placeholder i { + font-size: 4rem; + color: #ff6b35; + opacity: 0.5; +} + +.video-placeholder p { + font-size: 1.2rem; + color: #888; +} + +.video-placeholder small { + font-size: 0.9rem; + color: #666; +} + +/* QR Section - Premium Card con Imagen Difuminada */ +.qr-section { + padding: 150px 0; + background: #ffffff; + position: relative; + overflow: hidden; +} + +.qr-bg-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1920&h=1080&fit=crop&q=80'); + background-size: cover; + background-position: center; + opacity: 0.15; + z-index: 0; +} + +.qr-section .container-large { + position: relative; + z-index: 1; +} + +.qr-card { + background: var(--card-bg); + padding: 80px 60px; + border-radius: 20px; + text-align: center; + box-shadow: var(--shadow-md); + border: 1px solid var(--border-light); + max-width: 600px; + margin: 0 auto; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); +} + +.qr-card:hover { + transform: translateY(-10px); + box-shadow: var(--shadow-lg), var(--shadow-orange); + border-color: rgba(255, 107, 53, 0.15); +} + +.qr-card h3 { + font-size: 2rem; + font-weight: 600; + margin-bottom: 40px; + color: var(--text-primary); + letter-spacing: -0.5px; +} + +.qr-image { + width: 250px; + height: 250px; + border-radius: 15px; + box-shadow: var(--shadow-md); + margin-bottom: 30px; + transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1); +} + +.qr-card:hover .qr-image { + transform: scale(1.05); +} + +.qr-card p { + font-size: 1.1rem; + color: var(--text-light); + font-weight: 300; +} + +/* Contact Section - Premium Cards con Imagen Difuminada */ +.contact-section { + padding: 150px 0; + background: var(--bg-light); + position: relative; + overflow: hidden; +} + +.contact-bg-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1920&h=1080&fit=crop&q=80'); + background-size: cover; + background-position: center; + opacity: 0.18; + z-index: 0; +} + +.contact-section .container-large { + position: relative; + z-index: 1; +} + +.contact-grid { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 60px; + margin-top: 80px; + max-width: 1200px; + margin-left: auto; + margin-right: auto; + justify-items: center; +} + +.contact-cards { + display: flex; + flex-direction: column; + gap: 25px; + width: 100%; + max-width: 400px; + align-items: stretch; +} + +.contact-card { + background: var(--card-bg); + padding: 30px 35px; + border-radius: 15px; + display: flex; + align-items: center; + gap: 25px; + color: var(--text-primary); + text-decoration: none; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: var(--shadow-sm); + border: 1px solid var(--border-light); +} + +.contact-card:hover { + transform: translateX(10px); + box-shadow: var(--shadow-md), var(--shadow-orange); + border-color: rgba(255, 107, 53, 0.2); +} + +.contact-card:hover i { + color: var(--primary-orange); +} + +.contact-card i { + font-size: 1.8rem; + color: var(--text-secondary); + min-width: 35px; + transition: all 0.3s ease; +} + +.contact-card:hover i { + color: var(--text-primary); + transform: scale(1.1); +} + +.contact-card .fa-whatsapp { + color: var(--whatsapp); +} + +.contact-card span { + font-size: 1.1rem; + color: var(--text-secondary); + font-weight: 400; + transition: color 0.3s ease; +} + +.contact-card:hover span { + color: var(--text-primary); +} + +.whatsapp-card:hover { + background: linear-gradient(135deg, rgba(37, 211, 102, 0.05) 0%, rgba(37, 211, 102, 0.1) 100%); +} + +.social-card { + background: var(--card-bg); + padding: 50px 40px; + border-radius: 15px; + box-shadow: var(--shadow-sm); + border: 1px solid var(--border-light); + text-align: center; + width: 100%; + max-width: 400px; +} + +.social-card h3 { + font-size: 1.8rem; + font-weight: 600; + margin-bottom: 40px; + color: var(--text-primary); + letter-spacing: -0.3px; +} + +.social-links-grid { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 20px; +} + +.social-link { + width: 100%; + height: 70px; + border-radius: 12px; + display: flex; + align-items: center; + justify-content: center; + background: var(--bg-light); + color: var(--text-secondary); + text-decoration: none; + font-size: 1.5rem; + position: relative; + overflow: hidden; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + border: 1px solid var(--border-light); +} + +.social-link:hover { + transform: translateY(-5px) scale(1.05); + color: #ffffff; +} + +/* Facebook - Celeste Premium en Contacto con Gradiente Translúcido */ +.social-link[title="Facebook"] .fa-facebook-f { + color: var(--facebook); + font-size: 2rem; + transition: all 0.4s ease; +} + +.social-link[title="Facebook"]:hover { + background: linear-gradient(135deg, rgba(24, 119, 242, 0.15) 0%, rgba(24, 119, 242, 0.25) 100%); + border-color: var(--facebook); + box-shadow: 0 10px 30px rgba(24, 119, 242, 0.4); +} + +.social-link[title="Facebook"]:hover .fa-facebook-f { + color: var(--facebook); + transform: scale(1.2); +} + +/* Instagram - Gradiente Premium en Contacto Translúcido */ +.social-link[title="Instagram"] .fa-instagram { + color: var(--instagram-mid); + font-size: 2rem; + transition: all 0.4s ease; +} + +.social-link[title="Instagram"]:hover { + background: linear-gradient(135deg, + rgba(131, 58, 180, 0.15) 0%, + rgba(225, 48, 108, 0.2) 50%, + rgba(253, 29, 29, 0.25) 100%); + border-color: var(--instagram-mid); + box-shadow: 0 10px 30px rgba(225, 48, 108, 0.5); +} + +.social-link[title="Instagram"]:hover .fa-instagram { + transform: scale(1.2); + background: linear-gradient(135deg, var(--instagram-start) 0%, var(--instagram-mid) 50%, var(--instagram-end) 100%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +/* YouTube - Rojo Premium en Contacto Translúcido */ +.social-link[title="YouTube"] .fa-youtube { + color: var(--youtube); + font-size: 2rem; + transition: all 0.4s ease; +} + +.social-link[title="YouTube"]:hover { + background: linear-gradient(135deg, rgba(255, 0, 0, 0.15) 0%, rgba(255, 0, 0, 0.25) 100%); + border-color: var(--youtube); + box-shadow: 0 10px 30px rgba(255, 0, 0, 0.4); +} + +.social-link[title="YouTube"]:hover .fa-youtube { + color: var(--youtube); + transform: scale(1.2); +} + +/* TikTok - Negro con Cyan en Contacto Translúcido */ +.social-link[title="TikTok"] .fa-tiktok { + color: var(--tiktok); + font-size: 2rem; + transition: all 0.4s ease; +} + +.social-link[title="TikTok"]:hover { + background: linear-gradient(135deg, rgba(0, 0, 0, 0.15) 0%, rgba(0, 242, 234, 0.2) 100%); + border-color: var(--tiktok-hover); + box-shadow: 0 10px 30px rgba(0, 242, 234, 0.5); +} + +.social-link[title="TikTok"]:hover .fa-tiktok { + color: var(--tiktok-hover); + transform: scale(1.2); +} + +/* WhatsApp Float Button */ +.whatsapp-float { + position: fixed; + bottom: 40px; + right: 40px; + width: 70px; + height: 70px; + background: var(--whatsapp); + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + color: #ffffff; + text-decoration: none; + box-shadow: 0 6px 30px rgba(37, 211, 102, 0.4); + z-index: 999; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + font-size: 2rem; + animation: pulse-float 2.5s infinite; +} + +.whatsapp-float:hover { + background: var(--whatsapp-hover); + transform: scale(1.15); + box-shadow: 0 8px 40px rgba(37, 211, 102, 0.5); +} + +@keyframes pulse-float { + 0%, 100% { + box-shadow: 0 6px 30px rgba(37, 211, 102, 0.4); + } + 50% { + box-shadow: 0 6px 40px rgba(37, 211, 102, 0.6); + } +} + +/* Footer - Premium con Imagen Difuminada */ +.footer-main { + padding: 150px 0 100px; + background: #1a1a1a; + color: #ffffff; + text-align: center; + position: relative; + overflow: hidden; +} + +.footer-bg-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1920&h=1080&fit=crop&q=80'); + background-size: cover; + background-position: center; + opacity: 0.25; + z-index: 0; +} + +.footer-main .container-large { + position: relative; + z-index: 1; +} + +.footer-main p { + font-size: 0.95rem; + color: rgba(255, 255, 255, 0.6); + font-weight: 300; + letter-spacing: 0.5px; +} + +/* Scroll to Top Button */ +.scroll-to-top { + position: fixed; + bottom: 120px; + right: 40px; + width: 60px; + height: 60px; + background: var(--text-primary); + color: #ffffff; + border: none; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + font-size: 1.3rem; + z-index: 998; + opacity: 0; + visibility: hidden; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2); +} + +.scroll-to-top.show { + opacity: 1; + visibility: visible; +} + +.scroll-to-top:hover { + background: #000000; + transform: translateY(-5px) scale(1.1); + box-shadow: 0 6px 30px rgba(0, 0, 0, 0.3); +} + +.scroll-to-top i { + transition: transform 0.3s ease; +} + +.scroll-to-top:hover i { + transform: translateY(-2px); +} + +/* Old Styles for Plan Pages */ +header { + background: #222; + color: white; + padding: 40px 20px; + text-align: center; + box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2); +} + +header h1 { + font-size: 3rem; + margin-bottom: 10px; +} + +.tagline { + font-size: 1.2rem; + opacity: 0.9; +} + +.plan-details { + background: #fff; + padding: 40px; + border-radius: 12px; + margin-bottom: 40px; +} + +.plan-details h2 { + font-size: 2rem; + color: #222; + margin-bottom: 30px; +} + +.plan-details h3 { + font-size: 1.5rem; + color: #222; + margin: 30px 0 15px; +} + +.plan-details ul { + list-style: none; + padding: 0; +} + +.plan-details li { + padding: 10px 0; + font-size: 1.1rem; + color: #666; +} + +.plan-details p { + font-size: 1.1rem; + color: #666; + line-height: 1.8; +} + +.plan-details a { + color: #0077B5; + text-decoration: none; +} + +.plan-details a:hover { + text-decoration: underline; +} + +.qr-mini { + text-align: center; + margin-top: 30px; +} + +.qr-mini img { + width: 100px; + height: 100px; + border-radius: 8px; +} + +.contacto { + text-align: center; + padding: 30px; + background: #fff; + border-radius: 10px; +} + +.contacto h3 { + color: #222; + margin-bottom: 20px; +} + +.contacto a { + color: #0077B5; + text-decoration: none; + font-weight: 600; +} + +.contacto a:hover { + text-decoration: underline; +} + +footer { + text-align: center; + padding: 30px; + color: #999; + background: #222; +} + +footer p { + font-size: 0.9rem; +} + +/* Responsive - Premium */ +@media (max-width: 1200px) { + .container-large { + padding: 0 40px; + } + + .plans-grid { + grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); + gap: 40px; + } + + .hero-title { + font-size: 6.5rem; + } +} + +/* Responsive Tablet/Desktop Intermedio */ +@media (max-width: 1000px) and (min-width: 769px) { + .nav-container { + padding: 0 40px; + } + + .nav-menu { + gap: 30px; + } + + .nav-social { + gap: 15px; + } +} + +/* Responsive Mobile - Vertical y Horizontal */ +@media (max-width: 768px) { + /* Asegurar que funcione en vertical y horizontal */ + html { + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; + } + + body { + overflow-x: hidden; + width: 100%; + position: relative; + } + + .container-large { + padding: 0 20px; + width: 100%; + max-width: 100%; + box-sizing: border-box; + } + + .nav-container { + padding: 15px 20px; + flex-direction: column; + gap: 15px; + width: 100%; + } + + .nav-menu { + position: static; + transform: none; + gap: 20px; + justify-content: center; + order: 2; + flex-wrap: wrap; + width: 100%; + } + + .nav-social { + order: 3; + gap: 15px; + justify-content: center; + width: 100%; + } + + .nav-logo { + order: 1; + text-align: center; + } + + .hero-section { + padding: 80px 20px; + min-height: auto; + } + + .hero-title { + font-size: 3.5rem; + letter-spacing: -1px; + line-height: 1.1; + } + + .hero-subtitle { + font-size: 1.2rem; + } + + .hero-description { + font-size: 1rem; + padding: 0 10px; + } + + .section-title { + font-size: 2.5rem; + margin-bottom: 40px; + text-align: center; + } + + .plans-section { + padding: 80px 0; + } + + .plan-accordion-item { + margin-bottom: 20px; + border-radius: 15px; + } + + .plan-accordion-header { + padding: 25px 20px; + flex-direction: row; + align-items: center; + gap: 15px; + position: relative; + } + + .plan-accordion-header h3 { + font-size: 1.8rem; + margin-bottom: 5px; + } + + .plan-accordion-header .plan-tagline { + font-size: 1rem; + } + + .plan-chevron { + position: absolute; + top: 25px; + right: 20px; + margin: 0; + font-size: 1rem; + } + + .plan-card-body { + padding: 30px 20px; + } + + .plan-card-body h4 { + font-size: 1.3rem; + } + + .plan-card-body ul { + font-size: 0.95rem; + } + + .contact-section { + padding: 80px 0; + } + + .contact-grid { + grid-template-columns: 1fr; + gap: 30px; + width: 100%; + justify-items: center; + } + + .contact-cards { + max-width: 100%; + align-items: stretch; + } + + .contact-card { + padding: 25px 20px; + width: 100%; + } + + .social-card { + padding: 40px 30px; + max-width: 100%; + } + + .social-links-grid { + grid-template-columns: repeat(2, 1fr); + gap: 15px; + } + + .social-link { + height: 60px; + font-size: 1.3rem; + } + + .whatsapp-float { + width: 55px; + height: 55px; + bottom: 20px; + right: 20px; + font-size: 1.5rem; + } + + .scroll-to-top { + width: 45px; + height: 45px; + bottom: 85px; + right: 20px; + font-size: 1rem; + } + + .qr-section { + padding: 80px 0; + } + + .qr-card { + padding: 50px 30px; + } + + .qr-image { + width: 200px; + height: 200px; + } + + .footer-main { + padding: 80px 0 60px; + } + + /* VERTICAL móvil - Reducir espacio del nav */ + @media (max-width: 768px) and (orientation: portrait) { + .nav-sticky { + padding: 10px 0; + } + + .nav-container { + padding: 8px 15px; + gap: 8px; + } + + .nav-logo a { + font-size: 1.1rem; + } + + .nav-menu { + gap: 15px; + } + + .nav-link { + font-size: 0.85rem; + } + + .nav-social { + gap: 10px; + } + + .nav-social a { + font-size: 0.9rem; + } + + .hero-section { + padding: 60px 20px 50px; + margin-top: 100px; + } + + .hero-title { + font-size: 2.8rem; + } + } + + /* Horizontal móvil - ARREGLAR SOBREPUESTO */ + @media (max-width: 900px) and (orientation: landscape) { + .nav-sticky { + padding: 8px 0 !important; + } + + .nav-container { + padding: 5px 15px !important; + gap: 8px !important; + flex-direction: column !important; + flex-wrap: wrap !important; + } + + .nav-logo { + order: 1 !important; + flex: 0 0 auto !important; + } + + .nav-logo a { + font-size: 0.9rem !important; + } + + .nav-menu { + order: 2 !important; + position: static !important; + transform: none !important; + gap: 12px !important; + flex-wrap: wrap !important; + justify-content: center !important; + width: 100% !important; + } + + .nav-menu a { + font-size: 0.75rem !important; + padding: 2px 5px !important; + } + + .nav-social { + order: 3 !important; + gap: 10px !important; + justify-content: center !important; + width: 100% !important; + } + + .nav-social a { + width: 28px !important; + height: 28px !important; + font-size: 0.75rem !important; + } + + .hero-section { + padding: 50px 20px 40px !important; + margin-top: 70px !important; + min-height: auto !important; + } + + .hero-title { + font-size: 2.5rem !important; + margin-bottom: 15px !important; + line-height: 1.1 !important; + } + + .hero-subtitle { + font-size: 1rem !important; + margin-bottom: 15px !important; + } + + .hero-description { + font-size: 0.9rem !important; + line-height: 1.5 !important; + } + + .section-title { + font-size: 2rem !important; + margin-bottom: 30px !important; + } + + .plans-section { + padding: 60px 0 !important; + } + + .plan-accordion-header { + padding: 15px 15px !important; + } + + .plan-accordion-header h3 { + font-size: 1.4rem !important; + } + + .plan-accordion-header .plan-tagline { + font-size: 0.85rem !important; + } + + .plan-card-body { + padding: 20px 15px !important; + } + + .contact-section { + padding: 60px 0 !important; + } + + .contact-grid { + grid-template-columns: 1fr !important; + gap: 20px !important; + margin-top: 40px !important; + } + + .contact-cards { + max-width: 100% !important; + } + + .contact-card { + padding: 18px 15px !important; + gap: 15px !important; + } + + .contact-card i { + font-size: 1.4rem !important; + min-width: 25px !important; + } + + .contact-card span { + font-size: 0.9rem !important; + } + + .social-card { + padding: 30px 20px !important; + } + + .social-card h3 { + font-size: 1.4rem !important; + margin-bottom: 25px !important; + } + + .social-links-grid { + gap: 12px !important; + } + + .social-link { + height: 55px !important; + font-size: 1.2rem !important; + } + + .whatsapp-float { + width: 50px !important; + height: 50px !important; + bottom: 15px !important; + right: 15px !important; + font-size: 1.3rem !important; + } + + .scroll-to-top { + width: 40px !important; + height: 40px !important; + bottom: 70px !important; + right: 15px !important; + font-size: 0.9rem !important; + } + + .demos-section { + padding: 60px 0 !important; + } + + .demos-grid { + grid-template-columns: 1fr !important; + gap: 20px !important; + } + + .demo-card { + margin-bottom: 15px !important; + } + + .demo-image { + height: 180px !important; + } + + .demo-info { + padding: 15px !important; + } + + .demo-info h3 { + font-size: 1.2rem !important; + } + + .qr-section { + padding: 60px 0 !important; + } + + .qr-card { + padding: 40px 25px !important; + } + + .qr-image { + width: 180px !important; + height: 180px !important; + } + + .footer-main { + padding: 60px 0 40px !important; + } + } +} + +/* Modal Form - Formulario de Pedido */ +.modal-form { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.7); + display: flex; + justify-content: center; + align-items: center; + z-index: 10000; + padding: 20px; + backdrop-filter: blur(5px); +} + +.modal-form-content { + background: var(--card-bg); + border-radius: 20px; + max-width: 600px; + width: 100%; + max-height: 90vh; + overflow-y: auto; + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); + animation: modalFadeIn 0.3s ease; +} + +@keyframes modalFadeIn { + from { + opacity: 0; + transform: translateY(-20px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.modal-form-header { + padding: 30px 40px; + border-bottom: 1px solid var(--border-light); + display: flex; + justify-content: space-between; + align-items: center; + background: linear-gradient(135deg, #fafafa 0%, #ffffff 100%); + border-radius: 20px 20px 0 0; +} + +.modal-form-header h2 { + font-size: 2rem; + font-weight: 600; + color: var(--text-primary); + margin: 0; +} + +.modal-form-header h2 span { + color: var(--primary-orange); +} + +.modal-close { + background: none; + border: none; + font-size: 2.5rem; + color: var(--text-secondary); + cursor: pointer; + padding: 0; + width: 40px; + height: 40px; + display: flex; + align-items: center; + justify-content: center; + border-radius: 50%; + transition: all 0.3s ease; +} + +.modal-close:hover { + background: var(--bg-light); + color: var(--text-primary); +} + +.modal-form form { + padding: 40px; +} + +.form-group { + margin-bottom: 30px; +} + +.form-group label { + display: block; + font-size: 1rem; + font-weight: 500; + color: var(--text-primary); + margin-bottom: 10px; +} + +.form-group input, +.form-group textarea { + width: 100%; + padding: 15px 20px; + border: 1px solid var(--border-light); + border-radius: 10px; + font-size: 1rem; + font-family: 'Inter', sans-serif; + background: var(--bg-light); + color: var(--text-primary); + transition: all 0.3s ease; + box-sizing: border-box; +} + +.form-group input:focus, +.form-group textarea:focus { + outline: none; + border-color: var(--primary-orange); + background: #ffffff; + box-shadow: 0 0 0 3px rgba(255, 107, 53, 0.1); +} + +.form-group textarea { + resize: vertical; + min-height: 120px; +} + +.form-group small { + display: block; + margin-top: 8px; + font-size: 0.85rem; + color: var(--text-light); +} + +.form-actions { + display: flex; + gap: 15px; + margin-top: 40px; + justify-content: flex-end; +} + +.btn-cancel, +.btn-preview, +.btn-submit { + padding: 15px 35px; + border: none; + border-radius: 10px; + font-size: 1rem; + font-weight: 500; + cursor: pointer; + transition: all 0.3s ease; + font-family: 'Inter', sans-serif; +} + +.btn-cancel { + background: var(--bg-light); + color: var(--text-secondary); +} + +.btn-cancel:hover { + background: #e5e5e5; + color: var(--text-primary); +} + +.btn-preview { + background: #3b82f6; + color: #ffffff; +} + +.btn-preview:hover { + background: #2563eb; + transform: translateY(-2px); + box-shadow: 0 5px 15px rgba(59, 130, 246, 0.3); +} + +.btn-preview:disabled { + background: #9ca3af; + cursor: not-allowed; + transform: none; +} + +.btn-submit { + background: var(--primary-orange); + color: #ffffff; +} + +.btn-submit:hover { + background: rgba(255, 107, 53, 0.9); + transform: translateY(-2px); + box-shadow: 0 5px 15px rgba(255, 107, 53, 0.3); +} + +/* Modal responsive dentro de media query móvil */ +@media (max-width: 768px) { + .modal-form { + padding: 10px; + } + + .modal-form-content { + max-height: 95vh; + border-radius: 15px; + } + + .modal-form-header { + padding: 20px 25px; + } + + .modal-form-header h2 { + font-size: 1.5rem; + } + + .modal-form form { + padding: 30px 25px; + } + + .form-actions { + flex-direction: column; + } + + .btn-cancel, + .btn-preview, + .btn-submit { + width: 100%; + } +} + +/* ============================================ + SISTEMA DE PREVIEWS - CARDS Y MODALES + ============================================ */ + +/* Grupo de botones en planes */ +.plan-buttons-group { + display: flex; + gap: 12px; + margin-top: 25px; + flex-wrap: wrap; + align-items: center; +} + +.plan-btn-preview { + background: white; + border: 2px solid #1877F2; + color: #1877F2; + padding: 12px 24px; + border-radius: 10px; + font-size: 0.95rem; + font-weight: 600; + cursor: pointer; + transition: all 0.4s ease; + display: flex; + align-items: center; + gap: 8px; + box-shadow: 0 4px 15px rgba(24, 119, 242, 0.2); + letter-spacing: 0.3px; +} + +.plan-btn-preview:hover { + background: #1877F2; + color: white; + transform: translateY(-3px) scale(1.05); + box-shadow: 0 8px 25px rgba(24, 119, 242, 0.4); +} + +.plan-btn-preview i { + font-size: 1rem; + transition: all 0.4s ease; +} + +.plan-btn-preview:hover i { + transform: scale(1.15); +} + +/* Modal de Previews */ +.previews-modal { + display: none; + position: fixed; + z-index: 10000; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.85); + backdrop-filter: blur(5px); + overflow-y: auto; + padding: 20px; +} + +.previews-modal-content { + background: white; + margin: 40px auto; + max-width: 1400px; + border-radius: 20px; + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); + overflow: hidden; + animation: modalSlideIn 0.3s ease; +} + +@keyframes modalSlideIn { + from { + opacity: 0; + transform: translateY(-30px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.previews-modal-header { + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + color: white; + padding: 25px 30px; + display: flex; + justify-content: space-between; + align-items: center; +} + +.previews-modal-header h2 { + margin: 0; + font-size: 1.8rem; + font-weight: 600; +} + +.previews-filters { + padding: 20px 30px; + background: #f8f9fa; + border-bottom: 1px solid #e0e0e0; +} + +.filter-group { + display: flex; + flex-direction: column; + gap: 8px; +} + +.filter-group label { + font-weight: 600; + color: #333; + font-size: 0.9rem; +} + +.filter-group select { + padding: 10px 15px; + border: 2px solid #ddd; + border-radius: 8px; + font-size: 1rem; + background: white; + cursor: pointer; + transition: border-color 0.3s, box-shadow 0.3s; + min-width: 250px; +} + +.filter-group select:hover { + border-color: #1877F2; +} + +.filter-group select:focus { + outline: none; + border-color: #1877F2; + box-shadow: 0 0 0 3px rgba(24, 119, 242, 0.1); +} + +/* Grid de Previews */ +.previews-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); + gap: 30px; + padding: 30px; +} + +/* Cards de Preview - Diseño Tipo Card */ +.template-card { + background: white; + border-radius: 16px; + overflow: hidden; + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15); + transition: transform 0.3s ease, box-shadow 0.3s ease; + cursor: pointer; + position: relative; +} + +.template-card:hover { + transform: translateY(-8px); + box-shadow: 0 8px 30px rgba(0, 0, 0, 0.25); +} + +.template-preview { + position: relative; + overflow: hidden; + background: #f5f5f5; + aspect-ratio: 16/9; +} + +.template-preview img { + width: 100%; + height: 100%; + object-fit: cover; + display: block; + transition: transform 0.3s ease; +} + +.template-card:hover .template-preview img { + transform: scale(1.05); +} + +.template-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: linear-gradient(to bottom, transparent 0%, rgba(0, 0, 0, 0.7) 100%); + opacity: 0; + transition: opacity 0.3s ease; + display: flex; + align-items: flex-end; + padding: 20px; +} + +.template-card:hover .template-overlay { + opacity: 1; +} + +.overlay-info { + color: white; + width: 100%; +} + +.overlay-info h4 { + margin: 0 0 5px 0; + font-size: 1.1rem; + font-weight: 600; +} + +.overlay-info p { + margin: 0; + font-size: 0.9rem; + opacity: 0.9; +} + +.template-info { + padding: 20px; +} + +.template-info h3 { + margin: 0 0 10px 0; + font-size: 1.2rem; + color: #333; + font-weight: 600; +} + +.template-meta { + display: flex; + gap: 10px; + flex-wrap: wrap; + margin-bottom: 15px; +} + +.badge-plan { + display: inline-block; + padding: 4px 12px; + border-radius: 12px; + font-size: 0.85rem; + font-weight: 600; + text-transform: uppercase; +} + +.badge-base { + background: #95a5a6; + color: white; +} + +.badge-pro { + background: #3498db; + color: white; +} + +.badge-premium { + background: #9b59b6; + color: white; +} + +.badge-vip { + background: #f39c12; + color: white; +} + +.badge-rubro { + background: #e0e0e0; + color: #333; + font-size: 0.8rem; +} + +.template-description { + color: #666; + font-size: 0.9rem; + line-height: 1.5; + margin: 0; +} + +/* Lightbox de Screenshot Grande */ +.screenshot-lightbox { + display: none; + position: fixed; + z-index: 10001; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.95); + backdrop-filter: blur(10px); + overflow-y: auto; + padding: 40px 20px; +} + +.lightbox-content { + max-width: 1200px; + margin: 0 auto; + position: relative; + background: white; + border-radius: 20px; + overflow: hidden; + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5); + animation: lightboxFadeIn 0.3s ease; +} + +@keyframes lightboxFadeIn { + from { + opacity: 0; + transform: scale(0.9); + } + to { + opacity: 1; + transform: scale(1); + } +} + +.lightbox-close { + position: absolute; + top: 20px; + right: 20px; + font-size: 2rem; + color: white; + cursor: pointer; + z-index: 10; + width: 40px; + height: 40px; + display: flex; + align-items: center; + justify-content: center; + background: rgba(0, 0, 0, 0.5); + border-radius: 50%; + transition: background 0.3s; +} + +.lightbox-close:hover { + background: rgba(0, 0, 0, 0.8); +} + +.lightbox-content img { + width: 100%; + height: auto; + display: block; +} + +.lightbox-info { + padding: 30px; + background: white; +} + +.lightbox-info h3 { + margin: 0 0 10px 0; + font-size: 1.5rem; + color: #333; +} + +.lightbox-info p { + margin: 0 0 20px 0; + color: #666; + font-size: 1rem; +} + +.btn-request-design { + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + color: white; + border: none; + padding: 15px 30px; + border-radius: 10px; + font-size: 1rem; + font-weight: 600; + cursor: pointer; + transition: transform 0.3s, box-shadow 0.3s; + display: flex; + align-items: center; + gap: 10px; +} + +.btn-request-design:hover { + transform: translateY(-2px); + box-shadow: 0 5px 20px rgba(102, 126, 234, 0.4); +} + +/* Responsive */ +@media (max-width: 768px) { + .plan-buttons-group { + flex-direction: column; + } + + .plan-btn-preview { + width: 100%; + justify-content: center; + } + + .previews-grid { + grid-template-columns: 1fr; + padding: 20px; + } + + .previews-modal-content { + margin: 20px; + border-radius: 15px; + } + + .previews-modal-header { + padding: 20px; + } + + .previews-modal-header h2 { + font-size: 1.4rem; + } + + .lightbox-content { + margin: 20px; + } +} \ No newline at end of file diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/templates/admin.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/templates/admin.html new file mode 100644 index 0000000..7c0992d --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/templates/admin.html @@ -0,0 +1,178 @@ + + + + + Admin - Demo + + + +
+

🔧 Panel Admin

+
+ +

Solicitudes Pendientes

+ + + + + + + + + {% for req in requests %} + + + + + + + + {% endfor %} + {% if not requests %} + + {% endif %} +
IDSlugEmail ClienteFechaAcción
{{ req.id }}{{ req.slug }}{{ req.email }}{{ req.created_at }} + +
No hay solicitudes pendientes
+ +

👥 Usuarios Registrados

+ + + + + + + + + + + + + {% for user in users %} + + + + + + + + + + + + {% endfor %} + {% if not users %} + + {% endif %} +
IDEmailPlanRubroSitiosPublicadosSolicitudesFechaAcción
{{ user.id }}{{ user.email }}{{ user.plan }}{{ user.rubro }}{{ user.num_sitios }}{{ user.sitios_publicados }}{{ user.num_solicitudes }}{{ user.created_at[:10] if user.created_at else 'N/A' }} + {% if user.id != 1 %} + + {% else %} + Admin Principal + {% endif %} +
No hay usuarios registrados
+ +

🌐 Todos los Sitios

+ + + + + + + + + {% for site in sites %} + + + + + + + + {% endfor %} +
IDSlugTemaStatusVer
{{ site.id }}{{ site.slug }}{{ site.theme }}{{ site.status }} + {% if site.status == 'published' %} + Ver + {% endif %} +
+ + + + + + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/templates/client_admin.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/templates/client_admin.html new file mode 100644 index 0000000..10dd24d --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/templates/client_admin.html @@ -0,0 +1,219 @@ + + + + + + Dashboard - Administración del Sitio + + + + + + + + + + +
+ +
+ +
+ Hola, {{ user_email }} + Salir +
+
+ + +
+

Escritorio

+ +
+
+

¡Te damos la bienvenida a tu panel!

+

Aquí puedes gestionar todos tus sitios y contenidos de forma profesional.

+
+ +
+ +
+

Tus Sitios Web

+ {% if not sites %} +

No tienes sitios creados. ¡Empieza ahora!

+ {% else %} + + + + + + + + + + + {% for site in sites %} + + + + + + + {% endfor %} + +
Nombre (Slug)TemaEstadoAcciones
{{ site.slug }}{{ site.theme }}{{ site.status|upper }} + Personalizar +
+ {% endif %} +
+ +
+

Estadísticas Rápidas

+
+
+ {{ sites|length }}
+ Sitios +
+
+ {{ user_plan|upper }}
+ Plan Actual +
+
+
+ +
+
+ + + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/templates/create_site.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/templates/create_site.html new file mode 100644 index 0000000..67d7b1e --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/templates/create_site.html @@ -0,0 +1,82 @@ + + + + + Crear Sitio - Demo + + + +
+

➕ Crear Nuevo Sitio

+
+ + + + + + +
+ ← Volver +
+ + + + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/templates/customizer-wordpress-COMPLETO.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/templates/customizer-wordpress-COMPLETO.html new file mode 100644 index 0000000..569587c --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/templates/customizer-wordpress-COMPLETO.html @@ -0,0 +1,1279 @@ + + + + + Customizer Completo - Estilo WordPress + + + + +
+
+ +
Personalizar
+
+ +
+ + +
+ +
+ + + + +
+ +
+
Identidad del sitio
+ +
+ + +
El nombre aparece en el encabezado del sitio.
+
+ +
+ + +
En pocas palabras, explica de qué trata este sitio.
+
+ +
+ +
+ + 150px +
+
+ +
+ +
+ + 24px +
+
+ +
+ +
+ + 14px +
+
+
+ + +
+
Top Bar Setting
+ +
+ +
+ +
+
+ + +
+
+ +
+ + +
+ +
+ +
+
+ + +
+
+ +
+ + +
Font Awesome icon class
+
+
📞
+
✉️
+
📍
+
🕐
+
📘
+
📷
+
+
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ +
+
+ + +
+
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ +
+
+ + +
+
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+ + +
+
Colores
+ +
+ +
+ + +
+
+ +
+ +
+ + +
+
+ +
+ +
+ + +
+
+ +
+ +
+ + +
+
+
+ + +
+
Body Typography Setting
+ +
+ + +
+ +
+ +
+ + 16px +
+
+ +
+ +
+ + 1.6 +
+
+
+ + +
+
Medios
+ +
+ + + Logo preview +
+ +
+ + + Hero preview +
+ +
+ + + Favicon preview +
+
+ + +
+
Redes Sociales
+ +
+ +
+ + +
+
+ +
+ + +
Número para el botón flotante
+
+ +
+ +
+
+
+
Red Social 1
+ +
+
+ + +
+
+ + +
+
+
+ + +
+ + +
+
Contenido
+
+ + +
+
+ + +
+
+ +
+
Contacto
+
+ + +
+
+ + +
+
+ + +
+
+
+
+ + +
+
Cargando vista previa...
+ +
+
+ + + + + + + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/templates/customizer-wordpress-demo.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/templates/customizer-wordpress-demo.html new file mode 100644 index 0000000..3db8653 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/templates/customizer-wordpress-demo.html @@ -0,0 +1,688 @@ + + + + + Customizer Demo - Estilo WordPress + + + + +
+
+ +
Personalizar
+
+ +
+ + +
+ +
+ + + + +
+ +
+
Identidad del sitio
+ +
+ + +
El nombre aparece en el encabezado del sitio.
+
+ +
+ + +
En pocas palabras, explica de qué trata este sitio.
+
+
+ + +
+
Colores
+ +
+ +
+ + +
+
+ +
+ +
+ + +
+
+ +
+ +
+ + +
+
+
+ + +
+
Tipografía
+ +
+ + +
+
+ + +
+
Contenido
+ +
+ + +
+ +
+ + +
+
+ + +
+
Medios
+ +
+ + +
URL de la imagen del logo
+
+ +
+ + +
Imagen de fondo para la sección principal
+
+
+ + +
+
Contacto
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+ + +
+
Redes Sociales
+ +
+ + +
+ +
+ + +
+ +
+ + +
Número de WhatsApp para botón flotante
+
+
+
+
+ + +
+
Cargando vista previa...
+ +
+
+ + + + + + + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/templates/customizer.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/templates/customizer.html new file mode 100644 index 0000000..5a1d1a2 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/templates/customizer.html @@ -0,0 +1,1320 @@ + + + + + + + Personalizar - {{ site_name or 'Sitio' }} + + + + + + + +
+ + +
+
+

Personalizar

+ +
+ +
+ + + +
+
+ Diseño & + Template +
+
+
+ Tema Activo + + Cambiar el tema restablecerá colores por + defecto. +
+
+
+ + + +
+
+ Identidad del + Sitio +
+
+
+ Nombre del Sitio + +
+
+ Título Hero + +
+
+ Descripción Corta + +
+
+ Logo URL + +
+
+
+ + + +
+
+ Colores +
+
+
+ Color Primario +
+ + +
+
+
+ Color Secundario +
+ + +
+
+
+ Color Texto +
+ + +
+
+
+
+ + + +
+
+ Contacto & + Ubicación +
+
+
+ Dirección + +
+
+ Teléfono + +
+ +
+ WhatsApp (Solo números) + + Añadirá un botón flotante si se rellena. +
+
+ Email + +
+
+
+ + +
+
+ Redes + Sociales +
+
+
+ Instagram URL + +
+
+ Facebook URL + +
+
+ TikTok URL + +
+
+ LinkedIn URL + +
+
+ YouTube URL + +
+
+
+ + +
+
+ Horarios de Atención +
+
+
+ Lunes - Viernes + +
+
+ Sábados + +
+
+ Domingos + +
+
+
+ + +
+
+ Especialidad Culinaria +
+
+
+ Título + +
+
+ Descripción + +
+
+ URL de Imagen + +
+
+
+ + +
+
+ Capacidad +
+
+
+ Capacidad del Restaurante + + Número de personas que puede albergar el restaurante. +
+
+
+ + +
+
+ Bloques de + Contenido +
+
+
+ +
+
+ +
+ + + +
+
+ + +
+
+ Menú + Restaurante +
+
+
+ Enlace PDF Menú + +
+
+ +
+
+
+ +
+ + + +
+ + +
+
+ +
+ + +
+ + + +
+
+ +
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/templates/dashboard.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/templates/dashboard.html new file mode 100644 index 0000000..ce62c71 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/templates/dashboard.html @@ -0,0 +1,108 @@ + + + + + Dashboard - Demo + + + +
+

📊 Mi Panel de Control

+ +
+ +
+ {% for site in sites %} +
+

{{ site.slug }}

+

Tema: {{ site.theme }}

+ {{ site.status }} +
+ ✏️ Editar + {% if site.status == 'draft' %} + + {% endif %} +
+
+ {% endfor %} + + {% if not sites %} +
+

No tienes sitios aún. Crear uno

+
+ {% endif %} +
+ + + + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/templates/landing.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/templates/landing.html new file mode 100644 index 0000000..594b57e --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/templates/landing.html @@ -0,0 +1,47 @@ + + + + + PageBuilder SaaS - Demo + + + +
+

🎨 PageBuilder SaaS

+

Crea tu sitio web en minutos

+ Registrarse + Iniciar Sesión + Admin +
+ + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/templates/landing_real.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/templates/landing_real.html new file mode 100644 index 0000000..ee88408 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/templates/landing_real.html @@ -0,0 +1,1442 @@ + + + + + + + + + + + + + + + + + + + + + + + + GKACHELE™ | Desarrollo Web Premium + + + + + + + + + +
+
+
+

GKACHELE™

+

Desarrollo Web Premium

+

Estamos listos para ayudarte a crear tu sitio moderno, rápido y personalizado.

+
+
+ + +
+
+
+

Nuestros Planes

+ + +
+ +
+ +
+
+

¿Qué incluye?

+
    +
  • ✅ Sitio web de una página
  • +
  • ✅ Diseño limpio y profesional
  • +
  • ✅ Información de contacto
  • +
  • ✅ Enlaces a redes sociales
  • +
  • ✅ Responsive (móvil y desktop)
  • +
  • ✅ Hosting gratuito
  • +
  • ✅ Dominio personalizado
  • +
+

Personalización

+
    +
  • 🎨 Color principal personalizado
  • +
  • ✍️ Tipografía a elección
  • +
  • 📝 Textos personalizados
  • +
+

Ideal para: Profesionales independientes, pequeños comercios, páginas institucionales básicas.

+
+ QR Base +

Comparte este plan

+
+
+ +
+
+
+
+ + +
+ +
+
+

¿Qué incluye?

+
    +
  • ✅ Sitio web multipágina
  • +
  • ✅ Animaciones suaves y efectos visuales
  • +
  • ✅ Galería de imágenes o portafolio
  • +
  • ✅ Formulario de contacto funcional
  • +
  • ✅ Responsive avanzado
  • +
  • ✅ Hosting gratuito
  • +
  • ✅ Dominio personalizado
  • +
+

Personalización

+
    +
  • 🎨 Paleta de colores personalizada
  • +
  • ✍️ Tipografía profesional
  • +
  • 🧩 Secciones a medida
  • +
+

Ideal para: Marcas personales, portfolios creativos, negocios que quieren destacar visualmente.

+
+ QR Pro +

Comparte este plan

+
+
+ +
+
+
+
+ + +
+ +
+
+

¿Qué incluye?

+
    +
  • ✅ Sitio web completo y escalable
  • +
  • ✅ Integración con redes sociales y herramientas externas
  • +
  • ✅ SEO optimizado
  • +
  • ✅ Panel de administración (opcional)
  • +
  • ✅ Hosting y dominio incluidos
  • +
  • ✅ Soporte técnico personalizado
  • +
+

Personalización

+
    +
  • 🎨 Diseño a medida
  • +
  • 📊 Integración con analítica
  • +
  • 🔒 Seguridad avanzada
  • +
+

Ideal para: Empresas, proyectos grandes, tiendas online, instituciones con necesidades específicas.

+
+ QR Premium +

Comparte este plan

+
+
+ +
+
+
+
+
+
+
+ + + + + + + + + + + +
+
+
+

Proyectos Demo

+

Ejemplos de sitios web que hemos creado

+ +
+ +
+
+
💃 Blow Dance
+ +
+
+

Blow Dance

+

💃 Escuela de Danza

+

Plan: Pro

+

Sitio web profesional para escuela de danza con galerías, videos y sistema de inscripción.

+
+
+ + +
+
+
🗳️ Dalmau
+ +
+
+

Dalmau Intendente

+

⚖️ Despacho Profesional

+

Plan: Base

+

Landing page profesional para despachos de abogados y contadores con información clara y llamados a la acción.

+
+
+ + +
+
+
💼 GKACHELE
+ +
+
+

GKACHELE™

+

💼 Portfolio Profesional

+

Plan: Premium

+

Sitio web premium con diseño moderno, animaciones y sistema de gestión avanzado.

+
+
+
+ + + +
+
+ + +
+
+
+
+

Comparte tu sitio

+ QR Code GKACHELE™ +

Escanea el código QR para compartir

+
+
+
+ + +
+
+ +
+ + + + + + + + + + +
+ +
+

© 2025 GKACHELE™. Todos los derechos reservados.

+ +

+ Código propiedad de GKACHELE © 2025 - Prohibida su reproducción sin autorización +

+
+
+ + + + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/templates/login.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/templates/login.html new file mode 100644 index 0000000..97ffa6b --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/templates/login.html @@ -0,0 +1,95 @@ + + + + + Login - Demo + + + +
+

🔐 Iniciar Sesión

+
+ + + +
+

+ ¿No tienes cuenta? Regístrate +

+
+ + + + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/templates/public_site.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/templates/public_site.html new file mode 100644 index 0000000..5705e22 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/templates/public_site.html @@ -0,0 +1,33 @@ + + + + + {{ content.site_name or 'Mi Sitio' }} + + + +
+

{{ content.hero_title or 'Título' }}

+

{{ content.hero_description or 'Descripción' }}

+
+ + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/templates/register.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/templates/register.html new file mode 100644 index 0000000..6c5534d --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/templates/register.html @@ -0,0 +1,132 @@ + + + + + Registro - Demo + + + +
+

📝 Registrarse

+
+ + + + + +
+

+ ¿Ya tienes cuenta? Inicia sesión +

+
+ + + + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/themes/_gkachele/footer.php b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/themes/_gkachele/footer.php new file mode 100644 index 0000000..97ab4fc --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/themes/_gkachele/footer.php @@ -0,0 +1,22 @@ +
+ +
+
+ {% if menus.footer %} + + {% endif %} +

+ © 2025 GKACHELE™. Todos los derechos reservados.
+ Desarrollado desde noviembre 2025 por GKACHELE
+ Código propiedad de GKACHELE © 2025 - Prohibida su reproducción sin autorización +

+
+
+ + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/themes/_gkachele/header.php b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/themes/_gkachele/header.php new file mode 100644 index 0000000..52440a7 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/themes/_gkachele/header.php @@ -0,0 +1,112 @@ + + + + + + + {% if site_name %}{{ site_name }}{% else %}GKACHELE Site{% endif %} + + + + + + +
+ +
+
diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/themes/_gkachele/sidebar.php b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/themes/_gkachele/sidebar.php new file mode 100644 index 0000000..a6adb25 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/themes/_gkachele/sidebar.php @@ -0,0 +1,33 @@ + + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/themes/gimnasio-claro/config.json b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/themes/gimnasio-claro/config.json new file mode 100644 index 0000000..b1cffcc --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/themes/gimnasio-claro/config.json @@ -0,0 +1,29 @@ +{ + "name": "Gimnasio Claro", + "rubro": "gimnasios", + "description": "Tema claro y moderno para gimnasios", + "sections": [ + "hero", + "planes_fitness", + "horarios", + "entrenadores", + "instalaciones", + "contacto" + ], + "colors": { + "primary": "#ff4d4d", + "secondary": "#1a1a1a", + "accent": "#ff6b6b" + }, + "typography": { + "font_family": "Roboto", + "headings": "Roboto" + }, + "features": { + "planes_fitness": true, + "horarios": true, + "entrenadores": true, + "instalaciones": true, + "precios": true + } +} diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/themes/restaurante-asiatico/config.json b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/themes/restaurante-asiatico/config.json new file mode 100644 index 0000000..2ae4d4b --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/themes/restaurante-asiatico/config.json @@ -0,0 +1,32 @@ +{ + "name": "Restaurante Asiático", + "rubro": "restaurante", + "description": "Tema moderno y elegante para restaurantes asiáticos", + "sections": [ + "hero", + "menu", + "horarios", + "reservas", + "especialidad_culinaria", + "galeria", + "contacto" + ], + "colors": { + "primary": "#e63946", + "secondary": "#f77f00", + "accent": "#fcbf49", + "text": "#1d3557" + }, + "typography": { + "font_family": "Roboto", + "headings": "Oswald" + }, + "features": { + "menu_url": true, + "horarios": true, + "reservas": true, + "capacidad": true, + "especialidad_culinaria": true, + "galeria": true + } +} diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/themes/restaurante-asiatico/template.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/themes/restaurante-asiatico/template.html new file mode 100644 index 0000000..d9f0001 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/themes/restaurante-asiatico/template.html @@ -0,0 +1,731 @@ + + + + + + {{ site_name or 'Restaurante Asiático' }} + + + + + + + +
+ +
+ + +
+
+

{{ hero_title or 'TU LUGAR FAVORITO DE COMIDA ASIÁTICA EN LA CIUDAD' }}

+

{{ hero_description or 'Sabores auténticos que despiertan tus sentidos' }}

+ Reservar Mesa +
+
+ + + + + +
+
+

Horarios de Atención

+
+
+

Lunes - Viernes

+

{{ horarios.lunes_viernes or '12:00 PM - 10:00 PM' }}

+
+
+

Sábados

+

{{ horarios.sabados or '12:00 PM - 11:00 PM' }}

+
+
+

Domingos

+

{{ horarios.domingos or '12:00 PM - 9:00 PM' }}

+
+
+
+
+ + +
+
+

Reserva tu Mesa

+
+

+ Completa el formulario y nos pondremos en contacto contigo para confirmar tu reserva. +

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+
+
+ + +
+
+
+
+

{{ especialidad_culinaria.titulo or 'Nuestra Especialidad' }}

+

{{ especialidad_culinaria.descripcion or 'Cada plato es una obra de arte culinaria, preparado con ingredientes frescos y técnicas tradicionales que honran la autenticidad de nuestros sabores asiáticos.' }}

+
+
+ Especialidad Culinaria +
+
+
+
+ + +
+
+

Contacto

+
+
+

Información de Contacto

+

Dirección: {{ direccion or 'Calle Principal 123, Ciudad' }}

+

Teléfono: {{ telefono or '+34 123 456 789' }}

+

Email: {{ email or 'contacto@restaurante.com' }}

+ {% if capacidad %} +

Capacidad: {{ capacidad }} personas

+ {% endif %} +
+ {% if redes_sociales.facebook %} + 📘 + {% endif %} + {% if redes_sociales.instagram %} + 📷 + {% endif %} + {% if redes_sociales.twitter %} + 🐦 + {% endif %} + {% if redes_sociales.whatsapp %} + 💬 + {% endif %} +
+
+
+

Ubicación

+ {% if mapa_url %} + + {% else %} +

Mapa de ubicación disponible próximamente

+ {% endif %} +
+
+
+
+ + +
+
+

© 2025 {{ site_name or 'Restaurante Asiático' }}. Todos los derechos reservados.

+

© 2025 GKACHELE™. Todos los derechos reservados.

+
+
+ + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/themes/restaurante-elegante/config.json b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/themes/restaurante-elegante/config.json new file mode 100644 index 0000000..4c06aa9 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/themes/restaurante-elegante/config.json @@ -0,0 +1,32 @@ +{ + "name": "Restaurante Elegante", + "rubro": "restaurante", + "description": "Tema sofisticado y elegante para restaurantes de alta cocina", + "sections": [ + "hero", + "menu", + "horarios", + "reservas", + "especialidad_culinaria", + "galeria", + "contacto" + ], + "colors": { + "primary": "#8b4513", + "secondary": "#d4af37", + "accent": "#f5deb3", + "text": "#2c2c2c" + }, + "typography": { + "font_family": "Georgia", + "headings": "Cormorant Garamond" + }, + "features": { + "menu_url": true, + "horarios": true, + "reservas": true, + "capacidad": true, + "especialidad_culinaria": true, + "galeria": true + } +} diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/themes/restaurante-elegante/template.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/themes/restaurante-elegante/template.html new file mode 100644 index 0000000..8541f9d --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/themes/restaurante-elegante/template.html @@ -0,0 +1,649 @@ + + + + + + {{ site_name or 'Restaurante Elegante' }} + + + + + + + +
+ +
+ + +
+
+

{{ hero_title or 'Experiencia Culinaria Excepcional' }}

+

{{ hero_description or 'Donde la tradición se encuentra con la innovación' }}

+ Reservar Mesa +
+
+ + + + + +
+
+

Horarios de Atención

+
+
+

Lunes - Viernes

+

{{ horarios.lunes_viernes or '13:00 - 23:00' }}

+
+
+

Sábados

+

{{ horarios.sabados or '13:00 - 00:00' }}

+
+
+

Domingos

+

{{ horarios.domingos or '13:00 - 22:00' }}

+
+
+
+
+ + +
+
+

Reserva tu Mesa

+
+

+ Complete el formulario y nos pondremos en contacto para confirmar su reserva. +

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+
+
+ + +
+
+
+
+

{{ especialidad_culinaria.titulo or 'Nuestra Especialidad' }}

+

{{ especialidad_culinaria.descripcion or 'Cada plato es una obra de arte, preparado con ingredientes de la más alta calidad y técnicas culinarias refinadas que honran la tradición gastronómica.' }}

+
+
+ Especialidad Culinaria +
+
+
+
+ + +
+
+

Contacto

+
+
+

Información de Contacto

+

Dirección: {{ direccion or 'Avenida Principal 456, Ciudad' }}

+

Teléfono: {{ telefono or '+34 987 654 321' }}

+

Email: {{ email or 'contacto@restaurante.com' }}

+ {% if capacidad %} +

Capacidad: {{ capacidad }} personas

+ {% endif %} +
+ {% if redes_sociales.facebook %} + 📘 + {% endif %} + {% if redes_sociales.instagram %} + 📷 + {% endif %} + {% if redes_sociales.twitter %} + 🐦 + {% endif %} + {% if redes_sociales.whatsapp %} + 💬 + {% endif %} +
+
+
+

Ubicación

+ {% if mapa_url %} + + {% else %} +

Mapa de ubicación disponible próximamente

+ {% endif %} +
+
+
+
+ + +
+
+

© 2025 {{ site_name or 'Restaurante Elegante' }}. Todos los derechos reservados.

+
+
+ + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/themes/restaurante-moderno/PENDIENTES_MEJORAS.md b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/themes/restaurante-moderno/PENDIENTES_MEJORAS.md new file mode 100644 index 0000000..1cdbfe5 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/themes/restaurante-moderno/PENDIENTES_MEJORAS.md @@ -0,0 +1,271 @@ +# 📋 Pendientes y Mejoras - GKACHELE™ + +**© 2025 GKACHELE™. Todos los derechos reservados.** + +**Hash:** `gkachele-pendientes-20250115-002` + +**Fecha:** 2025-01-15 + +--- + +## ✅ FUNCIONALIDADES COMPLETADAS + +1. ✅ Sistema de bloques añadibles (video, imagen, texto, redes sociales, mapa) +2. ✅ Iconos SVG para redes sociales +3. ✅ Click to edit en preview +4. ✅ Gestión de platos del menú (añadir/eliminar) +5. ✅ Actualización en tiempo real del preview +6. ✅ Drag & drop básico para bloques + +--- + +## 🔧 MEJORAS PENDIENTES + +### 1. 🗺️ Mapa Automático desde Dirección + +**Estado:** Pendiente + +**Requisito:** +- El mapa debe generarse automáticamente usando la dirección del campo "Dirección" +- No debe requerir URL manual +- Usar Google Maps Embed API sin API key (o geocoding simple) + +**Implementación:** +```javascript +// Cuando cambie la dirección, generar automáticamente el mapa +function generateMapFromAddress(address) { + // Convertir dirección a URL de Google Maps embed + const encodedAddress = encodeURIComponent(address); + const mapUrl = `https://www.google.com/maps/embed/v1/place?key=AIzaSy...&q=${encodedAddress}`; + // O usar iframe con búsqueda directa + const mapUrl = `https://www.google.com/maps?q=${encodedAddress}&output=embed`; + return mapUrl; +} +``` + +**Archivos a modificar:** +- `demo/templates/customizer.html` - Auto-generar mapa_url cuando cambie dirección +- `demo/themes/restaurante-moderno/template.html` - Usar dirección si no hay mapa_url + +--- + +### 2. 📁 Upload de Archivos (Drag & Drop) + +**Estado:** Pendiente + +**Requisito:** +- Arrastrar y soltar archivos en campos de Media +- O abrir navegador de archivos +- No usar URLs manuales +- Subir a servidor y guardar ruta + +**Implementación:** +```html + +
+ + +

O arrastra y suelta aquí

+
+``` + +```python +# En app.py +@app.route('/api/upload', methods=['POST']) +def upload_file(): + if 'file' not in request.files: + return jsonify({'error': 'No file'}), 400 + file = request.files['file'] + if file.filename == '': + return jsonify({'error': 'No file selected'}), 400 + filename = secure_filename(file.filename) + filepath = os.path.join(UPLOAD_FOLDER, filename) + file.save(filepath) + return jsonify({'url': f'/uploads/{filename}'}) +``` + +**Archivos a modificar:** +- `demo/templates/customizer.html` - Añadir drag & drop a campos Media +- `demo/app.py` - Endpoint de upload +- `demo/static/` - Carpeta para uploads + +--- + +### 3. 🗑️ Eliminar Bloques (Arreglar) + +**Estado:** Bug - No funciona + +**Problema:** +- Los bloques no se eliminan correctamente +- El botón "🗑️ Eliminar" no funciona en preview + +**Solución:** +```javascript +// En template.html - función debe estar disponible globalmente +function removeBlockFromPreview(blockId) { + if (window.parent !== window) { + window.parent.postMessage({ + type: 'remove-block', + block_id: blockId + }, '*'); + } else { + // Si no está en iframe, llamar directamente + removeBlock(blockId); + } +} + +// En customizer.html - escuchar mensaje +window.addEventListener('message', function(e) { + if (e.data && e.data.type === 'remove-block') { + removeBlock(e.data.block_id); + } +}); +``` + +**Archivos a modificar:** +- `demo/themes/restaurante-moderno/template.html` - Arreglar función removeBlockFromPreview +- `demo/templates/customizer.html` - Asegurar que escucha mensajes correctamente + +--- + +### 4. 🧩 Eliminar Zonas/Secciones (Como WordPress) + +**Estado:** Pendiente + +**Requisito:** +- Poder eliminar secciones completas (Hero, Menú, Horarios, Contacto, etc.) +- Como WordPress: cada sección puede ocultarse/eliminarse +- Guardar estado en content_json + +**Implementación:** +```json +{ + "sections": { + "hero": {"visible": true, "enabled": true}, + "menu": {"visible": true, "enabled": true}, + "horarios": {"visible": false, "enabled": false}, + "contacto": {"visible": true, "enabled": true} + } +} +``` + +```html + +{% if sections.hero.enabled %} +
+ + +
+{% endif %} +``` + +**Archivos a modificar:** +- `demo/templates/customizer.html` - Añadir controles para secciones +- `demo/themes/restaurante-moderno/template.html` - Renderizar condicionalmente +- `demo/app.py` - Endpoint para toggle de secciones + +--- + +### 5. ✏️ Edición de Contenido de Bloques + +**Estado:** Pendiente + +**Requisito:** +- Cada bloque añadido debe ser editable +- Click en bloque → editar contenido +- Modal o inline editor según tipo + +**Implementación:** +```javascript +function editBlock(blockId) { + const block = blocks.find(b => b.id === blockId); + if (!block) return; + + // Abrir modal según tipo + if (block.type === 'texto') { + openTextEditor(block); + } else if (block.type === 'video') { + openVideoEditor(block); + } else if (block.type === 'redes_sociales') { + openSocialEditor(block); + } +} +``` + +**Archivos a modificar:** +- `demo/templates/customizer.html` - Añadir función editBlock +- `demo/themes/restaurante-moderno/template.html` - Hacer bloques clickeables + +--- + +### 6. 🔄 Guardado Automático de Orden (Drag & Drop) + +**Estado:** Pendiente + +**Requisito:** +- Al arrastrar y soltar bloques, guardar orden automáticamente +- No esperar a añadir/eliminar + +**Implementación:** +```javascript +function handleDrop(e) { + e.preventDefault(); + // Reordenar bloques + const newOrder = Array.from(document.querySelectorAll('.gk-block')) + .map(block => block.dataset.blockId); + + // Guardar orden inmediatamente + fetch('/api/customizer/reorder-blocks', { + method: 'POST', + headers: {'Content-Type': 'application/json'}, + body: JSON.stringify({ + site_id: siteId, + block_ids: newOrder + }) + }); +} +``` + +**Archivos a modificar:** +- `demo/themes/restaurante-moderno/template.html` - Mejorar drag & drop +- `demo/templates/customizer.html` - Guardar orden automáticamente + +--- + +## 📝 CHECKLIST DE IMPLEMENTACIÓN + +### Prioridad Alta (Próxima sesión) +- [ ] Arreglar eliminación de bloques +- [ ] Mapa automático desde dirección +- [ ] Upload de archivos (drag & drop) + +### Prioridad Media +- [ ] Eliminar/ocultar secciones +- [ ] Edición de contenido de bloques +- [ ] Guardado automático de orden + +### Prioridad Baja +- [ ] Mejoras de UI/UX +- [ ] Validaciones adicionales +- [ ] Optimizaciones de rendimiento + +--- + +## 🔗 REFERENCIAS + +- WordPress: Sistema de secciones ocultables +- Elementor: Drag & drop de bloques +- Google Maps: Embed sin API key (búsqueda directa) + +--- + +## 📌 NOTAS + +- El menú de platos ya funciona correctamente (añadir/eliminar) ✅ +- Los iconos de redes sociales ya están implementados ✅ +- El sistema de bloques está funcional, solo necesita mejoras ✅ + +--- + +**Última actualización:** 2025-01-15 +**Próxima sesión:** Implementar prioridad alta diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/themes/restaurante-moderno/app.py b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/themes/restaurante-moderno/app.py new file mode 100644 index 0000000..9db49e1 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/themes/restaurante-moderno/app.py @@ -0,0 +1,1551 @@ +""" +GKACHELE™ SaaS PageBuilder - Sistema Profesional +© 2025 GKACHELE™. Todos los derechos reservados. +Desarrollado desde noviembre 2025 por GKACHELE +Código propiedad de GKACHELE © 2025 - Prohibida su reproducción sin autorización +""" + +import os +import json +import sqlite3 +import secrets +from datetime import datetime +from flask import Flask, render_template, request, jsonify, session, redirect, url_for, send_from_directory +from werkzeug.security import generate_password_hash, check_password_hash + +app = Flask(__name__, template_folder='templates', static_folder='static') +app.secret_key = 'demo-secret-key-2025' +app.config['SESSION_COOKIE_SAMESITE'] = 'Lax' + +# Manejador de errores global - siempre devolver JSON +@app.errorhandler(500) +def handle_500(e): + print(f"❌ Error 500: {e}") + import traceback + traceback.print_exc() + # Asegurar que siempre devuelva JSON + response = jsonify({'success': False, 'error': 'Error interno del servidor'}) + response.status_code = 500 + return response + +@app.errorhandler(404) +def handle_404(e): + response = jsonify({'success': False, 'error': 'No encontrado'}) + response.status_code = 404 + return response + +@app.errorhandler(403) +def handle_403(e): + response = jsonify({'success': False, 'error': 'No autorizado'}) + response.status_code = 403 + return response + +# Manejador para excepciones no capturadas - FORZAR JSON +@app.errorhandler(Exception) +def handle_exception(e): + print(f"❌❌❌ EXCEPCIÓN NO CAPTURADA: {e}") + import traceback + traceback.print_exc() + # SIEMPRE devolver JSON, nunca HTML + response = jsonify({'success': False, 'error': f'Error: {str(e)}'}) + response.status_code = 500 + response.headers['Content-Type'] = 'application/json' + return response + +# Forzar JSON en TODAS las rutas /register, /login, /api/* +@app.before_request +def before_request(): + # Si es POST a /register o /login, forzar JSON + if request.method == 'POST' and (request.path.startswith('/register') or + request.path.startswith('/login') or + request.path.startswith('/api/')): + # Asegurar que acepta JSON + if not request.is_json and request.content_type and 'application/json' in request.content_type: + try: + request.get_json(force=True) + except: + pass + +# Directorios +BASE_DIR = os.path.dirname(__file__) +DATABASE_DIR = os.path.join(BASE_DIR, 'database') +SITES_DIR = os.path.join(BASE_DIR, 'sites') +THEMES_DIR = os.path.join(BASE_DIR, 'themes') +STATIC_DIR = os.path.join(BASE_DIR, 'static') +UPLOADS_DIR = os.path.join(BASE_DIR, 'uploads') + +# ============================================================================ +# SISTEMA DE TEMPLATES (Estilo WordPress) - GKACHELE™ +# ============================================================================ + +def scan_available_themes(): + """Escanear todos los templates disponibles y cargar sus configuraciones""" + themes = {} + if not os.path.exists(THEMES_DIR): + return themes + + for theme_dir in os.listdir(THEMES_DIR): + theme_path = os.path.join(THEMES_DIR, theme_dir) + if not os.path.isdir(theme_path) or theme_dir.startswith('_'): + continue # Ignorar archivos y carpetas que empiezan con _ + + config_path = os.path.join(theme_path, 'config.json') + template_path = os.path.join(theme_path, 'template.html') + + # Verificar que tenga config.json y template.html + if not os.path.exists(config_path) or not os.path.exists(template_path): + continue + + try: + with open(config_path, 'r', encoding='utf-8') as f: + config = json.load(f) + + themes[theme_dir] = { + 'id': theme_dir, + 'name': config.get('name', theme_dir), + 'description': config.get('description', ''), + 'rubro': config.get('rubro', 'general'), + 'sections': config.get('sections', []), + 'colors': config.get('colors', {}), + 'typography': config.get('typography', {}), + 'features': config.get('features', {}), + 'preview': f'/themes/{theme_dir}/preview.jpg' if os.path.exists(os.path.join(theme_path, 'preview.jpg')) else None + } + except Exception as e: + print(f"⚠️ Error cargando template {theme_dir}: {e}") + continue + + return themes + +def get_theme_config(theme_id): + """Obtener configuración de un template específico""" + config_path = os.path.join(THEMES_DIR, theme_id, 'config.json') + if not os.path.exists(config_path): + return None + + try: + with open(config_path, 'r', encoding='utf-8') as f: + return json.load(f) + except Exception as e: + print(f"⚠️ Error cargando config de {theme_id}: {e}") + return None + +def get_themes_by_rubro(rubro): + """Obtener templates filtrados por rubro""" + all_themes = scan_available_themes() + return {k: v for k, v in all_themes.items() if v.get('rubro') == rubro or v.get('rubro') == 'general'} + +# Crear directorios +# NOTA: Ya no se crean bases de datos separadas (cliente-X.db) +# TODO está en main.db (sistema multi-tenant) +for d in [DATABASE_DIR, SITES_DIR, THEMES_DIR, UPLOADS_DIR]: + os.makedirs(d, exist_ok=True) + +# DB principal +MAIN_DB = os.path.join(DATABASE_DIR, 'main.db') + +def init_db(): + """Inicializar base de datos principal - TODO EN UNA SOLA DB (sistema multi-tenant)""" + try: + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Usuarios (todos los clientes en una sola tabla) - Sistema GKACHELE™ + c.execute('''CREATE TABLE IF NOT EXISTS users ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + email TEXT UNIQUE NOT NULL, + password TEXT NOT NULL, + role TEXT DEFAULT 'subscriber', + plan TEXT DEFAULT 'base', + rubro TEXT DEFAULT 'gimnasio', + status TEXT DEFAULT 'active', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP + )''') + + # Añadir columna role si no existe (migración) + try: + c.execute('ALTER TABLE users ADD COLUMN role TEXT DEFAULT "subscriber"') + except: + pass # Columna ya existe + + # Añadir columna status si no existe (migración) + try: + c.execute('ALTER TABLE users ADD COLUMN status TEXT DEFAULT "active"') + except: + pass # Columna ya existe + + # Crear primer admin si no existe (user_id = 1) + c.execute('SELECT COUNT(*) FROM users WHERE id = 1') + if c.fetchone()[0] == 0: + from werkzeug.security import generate_password_hash + admin_password = generate_password_hash('admin123') # Cambiar después + c.execute('''INSERT INTO users (id, email, password, role, plan, rubro, status) + VALUES (1, 'admin@gkachele.com', ?, 'administrator', 'premium', 'admin', 'active')''', + (admin_password,)) + print("✅ Usuario administrador creado: admin@gkachele.com / admin123") + + # Sitios (todos los sitios, filtrados por user_id) + c.execute('''CREATE TABLE IF NOT EXISTS sites ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + slug TEXT UNIQUE NOT NULL, + theme TEXT DEFAULT 'default', + status TEXT DEFAULT 'draft', + content_json TEXT, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id) + )''') + + # Solicitudes + c.execute('''CREATE TABLE IF NOT EXISTS requests ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + site_id INTEGER NOT NULL, + user_id INTEGER NOT NULL, + status TEXT DEFAULT 'pending', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (site_id) REFERENCES sites(id), + FOREIGN KEY (user_id) REFERENCES users(id) + )''') + + # Media (fotos, imágenes del cliente) + c.execute('''CREATE TABLE IF NOT EXISTS media ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER NOT NULL, + filename TEXT NOT NULL, + filepath TEXT NOT NULL, + file_type TEXT DEFAULT 'image', + uploaded_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id) + )''') + + # Content (contenido por sección, filtrado por user_id y site_id) + c.execute('''CREATE TABLE IF NOT EXISTS content ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER NOT NULL, + section TEXT NOT NULL, + data_json TEXT, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id) + )''') + + # Settings (configuraciones por usuario/sitio) + c.execute('''CREATE TABLE IF NOT EXISTS settings ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER, + key TEXT NOT NULL, + value TEXT, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id), + UNIQUE(user_id, site_id, key) + )''') + + # Menus (sistema de menús dinámicos) + c.execute('''CREATE TABLE IF NOT EXISTS menus ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER NOT NULL, + location TEXT NOT NULL, + title TEXT NOT NULL, + url TEXT NOT NULL, + order_index INTEGER DEFAULT 0, + parent_id INTEGER, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id), + FOREIGN KEY (parent_id) REFERENCES menus(id) + )''') + + # Widgets (áreas de widgets dinámicos) + c.execute('''CREATE TABLE IF NOT EXISTS widgets ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER NOT NULL, + area TEXT NOT NULL, + type TEXT NOT NULL, + title TEXT, + content TEXT, + order_index INTEGER DEFAULT 0, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id) + )''') + + conn.commit() + conn.close() + print("✅ Base de datos inicializada (multi-tenant - todos los clientes en main.db)") + except Exception as e: + print(f"❌ Error inicializando DB: {e}") + import traceback + traceback.print_exc() + +init_db() + +# ============================================================================ +# FUNCIONES HELPER - GKACHELE™ Template System +# ============================================================================ + +def get_site_menus(site_id, user_id): + """Obtener menús del sitio organizados por ubicación""" + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('''SELECT location, title, url, order_index, parent_id + FROM menus + WHERE site_id = ? AND user_id = ? + ORDER BY location, order_index''', (site_id, user_id)) + rows = c.fetchall() + conn.close() + + menus = {'header': [], 'footer': [], 'sidebar': []} + for row in rows: + location, title, url, order_index, parent_id = row + menu_item = { + 'title': title, + 'url': url, + 'order': order_index, + 'parent_id': parent_id + } + if location in menus: + menus[location].append(menu_item) + + return menus + +def get_site_widgets(site_id, user_id, area='sidebar'): + """Obtener widgets del sitio por área""" + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('''SELECT type, title, content, order_index + FROM widgets + WHERE site_id = ? AND user_id = ? AND area = ? + ORDER BY order_index''', (site_id, user_id, area)) + rows = c.fetchall() + conn.close() + + widgets = [] + for row in rows: + widget_type, title, content, order_index = row + widgets.append({ + 'type': widget_type, + 'title': title, + 'content': content, + 'order': order_index + }) + + return widgets + +def render_gkachele_template(theme, content, site_id=None, user_id=None): + """Renderizar template usando estructura GKACHELE (header.php, footer.php, sidebar.php)""" + # Obtener menús y widgets si hay site_id + menus = {'header': [], 'footer': [], 'sidebar': []} + widgets = [] + if site_id and user_id: + try: + menus = get_site_menus(site_id, user_id) + widgets = get_site_widgets(site_id, user_id) + except Exception as e: + print(f"⚠️ Error obteniendo menús/widgets: {e}") + + # Cargar template del tema PRIMERO (es el contenido principal) + theme_template = '' + theme_path = os.path.join(THEMES_DIR, theme, 'template.html') + if os.path.exists(theme_path): + with open(theme_path, 'r', encoding='utf-8') as f: + theme_template = f.read() + else: + # Si no existe template del tema, usar template básico + theme_template = ''' +
+

{{ hero_title or 'Bienvenido' }}

+

{{ hero_description or 'Descripción del sitio' }}

+
+ ''' + + # Cargar header, footer, sidebar + header = '' + footer = '' + sidebar = '' + + header_path = os.path.join(THEMES_DIR, '_gkachele', 'header.php') + footer_path = os.path.join(THEMES_DIR, '_gkachele', 'footer.php') + sidebar_path = os.path.join(THEMES_DIR, '_gkachele', 'sidebar.php') + + if os.path.exists(header_path): + with open(header_path, 'r', encoding='utf-8') as f: + header = f.read() + else: + # Header básico si no existe + header = ''' + + + + + {{ site_name or 'GKACHELE Site' }} + + + +
+ +
+
''' + + if os.path.exists(footer_path): + with open(footer_path, 'r', encoding='utf-8') as f: + footer = f.read() + else: + footer = ''' +
+
+

© 2025 GKACHELE™. Todos los derechos reservados.
+ Desarrollado desde noviembre 2025 por GKACHELE
+ Código propiedad de GKACHELE © 2025 - Prohibida su reproducción sin autorización

+
+ +''' + + if os.path.exists(sidebar_path): + with open(sidebar_path, 'r', encoding='utf-8') as f: + sidebar = f.read() + + # Preparar contexto completo - Asegurar que todas las variables esperadas existan + template_data = { + 'site_name': content.get('site_name', 'GKACHELE Site'), + 'hero_title': content.get('hero_title', 'Bienvenido'), + 'hero_description': content.get('hero_description', ''), + 'colors': content.get('colors', {'primary': '#c94d4d', 'secondary': '#d97757', 'accent': '#f4a261', 'text': '#2c2c2c'}), + 'typography': content.get('typography', {'font_family': 'Roboto'}), + 'horarios': content.get('horarios', {}), # Asegurar que horarios siempre existe + 'redes_sociales': content.get('redes_sociales', {}), # Asegurar que redes_sociales siempre existe + 'especialidad_culinaria': content.get('especialidad_culinaria', {}), # Asegurar que especialidad_culinaria siempre existe + 'direccion': content.get('direccion', ''), + 'telefono': content.get('telefono', ''), + 'email': content.get('email', ''), + 'capacidad': content.get('capacidad', ''), + 'mapa_url': content.get('mapa_url', ''), + 'menu_url': content.get('menu_url', ''), + 'menu_items': content.get('menu_items', {}), # Platos del menú + 'blocks': content.get('blocks', []), # Bloques añadibles + 'menus': menus, + 'widgets': widgets, + **content # Incluir todo el contenido adicional (esto sobrescribirá los valores por defecto si existen) + } + + # Renderizar usando Jinja2 + from jinja2 import Template + # Construir template completo: header + contenido del tema + sidebar + footer + full_template = header + theme_template + sidebar + footer + template = Template(full_template) + return template.render(**template_data) + +# ============================================================================ +# RUTAS PÚBLICAS +# ============================================================================ + +@app.route('/') +def landing(): + """Landing page""" + return render_template('landing_real.html') + +@app.route('/register', methods=['GET', 'POST']) +def register(): + """Registro - Sistema Simple y Profesional""" + if request.method == 'POST': + try: + # Datos JSON + data = request.get_json() if request.is_json else (request.form.to_dict() if request.form else {}) + if not data: + return jsonify({'success': False, 'error': 'Sin datos'}), 400 + + email = str(data.get('email', '')).strip() + password = str(data.get('password', '')).strip() + plan = str(data.get('plan', 'base')) + rubro = str(data.get('rubro', 'gimnasio')) + + # Validar + if not email or '@' not in email: + return jsonify({'success': False, 'error': 'Email inválido'}), 400 + if not password: + return jsonify({'success': False, 'error': 'Contraseña requerida'}), 400 + + # DB + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Usuario + try: + c.execute('INSERT INTO users (email, password, plan, rubro) VALUES (?, ?, ?, ?)', + (email, generate_password_hash(password), plan, rubro)) + user_id = c.lastrowid + except sqlite3.IntegrityError: + conn.close() + return jsonify({'success': False, 'error': 'Email ya existe'}), 400 + + # Tema - Seleccionar automáticamente según rubro (estilo WordPress) + import random + theme = 'default' + themes_by_rubro = get_themes_by_rubro(rubro) + + if themes_by_rubro: + # Si hay templates para este rubro, elegir uno aleatorio + theme = random.choice(list(themes_by_rubro.keys())) + elif rubro == 'restaurante': + # Fallback: templates específicos de restaurante + available = ['restaurante-moderno', 'restaurante-elegante'] + theme = random.choice([t for t in available if os.path.exists(os.path.join(THEMES_DIR, t, 'config.json'))]) + elif rubro in ['gimnasio', 'gimnasios']: + theme = 'gimnasio-claro' if os.path.exists(os.path.join(THEMES_DIR, 'gimnasio-claro', 'config.json')) else 'default' + + # Cargar configuración del template seleccionado + theme_config = get_theme_config(theme) + default_colors = {'primary': '#c94d4d', 'secondary': '#d97757', 'accent': '#f4a261', 'text': '#2c2c2c'} + default_typography = {'font_family': 'Roboto'} + + if theme_config: + default_colors = theme_config.get('colors', default_colors) + default_typography = theme_config.get('typography', default_typography) + + # Sitio + site_name = email.split('@')[0].title() + content = json.dumps({ + 'site_name': site_name + ' Site', + 'hero_title': 'Bienvenido', + 'hero_description': '', + 'colors': default_colors, + 'typography': default_typography + }) + + slug = f'site-{secrets.token_hex(4)}' + c.execute('INSERT INTO sites (user_id, slug, theme, content_json) VALUES (?, ?, ?, ?)', + (user_id, slug, theme, content)) + site_id = c.lastrowid + + # Crear menús por defecto (header, footer) + default_menus = [ + ('header', 'Inicio', '#inicio', 0, None), + ('header', 'Menú', '#menu', 1, None), + ('header', 'Horarios', '#horarios', 2, None), + ('header', 'Reservas', '#reservas', 3, None), + ('header', 'Contacto', '#contacto', 4, None), + ('footer', 'Inicio', '#inicio', 0, None), + ('footer', 'Contacto', '#contacto', 1, None), + ] + + for location, title, url, order_idx, parent_id in default_menus: + c.execute('''INSERT INTO menus (user_id, site_id, location, title, url, order_index, parent_id) + VALUES (?, ?, ?, ?, ?, ?, ?)''', + (user_id, site_id, location, title, url, order_idx, parent_id)) + + conn.commit() + conn.close() + + # ✅ TODO está en main.db - no se necesitan bases separadas + # El cliente accede a /dashboard y solo ve SUS datos filtrados por user_id + + # NO crear sesión automáticamente - el usuario debe hacer login + # ÉXITO - Redirigir al login para que inicie sesión + print(f"✅ Usuario registrado: user_id={user_id}, site_id={site_id}") + return jsonify({'success': True, 'message': 'Registro exitoso. Por favor inicia sesión.', 'redirect': '/login'}) + + except Exception as e: + import traceback + traceback.print_exc() + return jsonify({'success': False, 'error': str(e)}), 500 + + # GET + return render_template('register.html', plan=request.args.get('plan', 'base'), rubro=request.args.get('rubro', 'gimnasio')) + +@app.route('/login', methods=['GET', 'POST']) +def login(): + """Login""" + if request.method == 'POST': + try: + data = request.get_json() + if not data: + return jsonify({'success': False, 'error': 'No se recibieron datos'}), 400 + + email = data.get('email') + password = data.get('password') + + if not email or not password: + return jsonify({'success': False, 'error': 'Email y contraseña son requeridos'}), 400 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT id, password FROM users WHERE email = ?', (email,)) + user = c.fetchone() + conn.close() + + if user and check_password_hash(user[1], password): + session['user_id'] = user[0] + user_id = user[0] + import sys + sys.stdout.flush() + print(f"✅ Login exitoso: user_id={user_id}", flush=True) + + # Buscar el primer sitio del usuario para ir al customizer directamente + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT id FROM sites WHERE user_id = ? ORDER BY id LIMIT 1', (user_id,)) + site = c.fetchone() + + # Debug: contar todos los sitios del usuario + c.execute('SELECT COUNT(*) FROM sites WHERE user_id = ?', (user_id,)) + total_sites = c.fetchone()[0] + print(f"[LOGIN] Usuario {user_id} tiene {total_sites} sitio(s)", flush=True) + + conn.close() + + # Si tiene sitio, ir al customizer; si no, al dashboard + if site: + site_id = site[0] + redirect_url = f'/customizer/{site_id}' + print(f"[LOGIN] Redirigiendo a customizer: site_id={site_id}, user_id={user_id}", flush=True) + else: + redirect_url = '/dashboard' + print(f"[LOGIN] Usuario sin sitios, redirigiendo a dashboard, user_id={user_id}", flush=True) + + print(f"[LOGIN] Respuesta JSON: redirect={redirect_url}", flush=True) + + # FORZAR respuesta JSON correcta + response_data = {'success': True, 'redirect': redirect_url} + print(f"[LOGIN] Response data: {response_data}", flush=True) + response = jsonify(response_data) + response.headers['Content-Type'] = 'application/json' + print(f"[LOGIN] Enviando respuesta JSON: {redirect_url}", flush=True) + return response + + return jsonify({'success': False, 'error': 'Credenciales inválidas'}), 401 + except Exception as e: + print(f"❌ Error en login: {e}") + import traceback + traceback.print_exc() + return jsonify({'success': False, 'error': f'Error al iniciar sesión: {str(e)}'}), 500 + + return render_template('login.html') + +@app.route('/logout') +def logout(): + session.pop('user_id', None) + return redirect(url_for('landing')) + +# ============================================================================ +# DASHBOARD CLIENTE +# ============================================================================ + +@app.route('/dashboard') +def dashboard(): + """Panel del cliente""" + if 'user_id' not in session: + return redirect(url_for('login')) + + user_id = session['user_id'] + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Info del usuario + c.execute('SELECT email, plan FROM users WHERE id = ?', (user_id,)) + user_info = c.fetchone() + + # Sitios + c.execute('SELECT id, slug, theme, status, created_at FROM sites WHERE user_id = ?', (user_id,)) + sites = [{'id': r[0], 'slug': r[1], 'theme': r[2], 'status': r[3], 'created_at': r[4]} + for r in c.fetchall()] + + # Contar media + c.execute('SELECT COUNT(*) FROM media WHERE user_id = ?', (user_id,)) + media_count = c.fetchone()[0] + + conn.close() + + return render_template('dashboard.html', + sites=sites, + user_email=user_info[0] if user_info else '', + user_plan=user_info[1] if user_info else 'base', + media_count=media_count) + +@app.route('/dashboard/admin') +def client_admin(): + """Admin del cliente - gestionar media, config, etc.""" + if 'user_id' not in session: + return redirect(url_for('login')) + + user_id = session['user_id'] + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Info del usuario + c.execute('SELECT email, plan FROM users WHERE id = ?', (user_id,)) + user_info = c.fetchone() + + # Sitios del usuario + c.execute('SELECT id, slug, theme, status FROM sites WHERE user_id = ?', (user_id,)) + sites = [{'id': r[0], 'slug': r[1], 'theme': r[2], 'status': r[3]} for r in c.fetchall()] + + conn.close() + + return render_template('client_admin.html', + user_email=user_info[0] if user_info else '', + user_plan=user_info[1] if user_info else 'base', + sites=sites) + +@app.route('/dashboard/create', methods=['GET', 'POST']) +def create_site(): + """Crear nuevo sitio""" + if 'user_id' not in session: + return redirect(url_for('login')) + + if request.method == 'POST': + data = request.get_json() + user_id = session['user_id'] + slug = data.get('slug', f'site-{secrets.token_hex(4)}') + theme = data.get('theme', 'default') + + # Contenido inicial + content = { + 'site_name': data.get('site_name', 'Mi Sitio'), + 'hero_title': data.get('hero_title', 'Bienvenido'), + 'hero_description': data.get('hero_description', ''), + 'colors': { + 'primary': '#ff4d4d', + 'secondary': '#1a1a1a', + 'text': '#333333' + }, + 'typography': { + 'font_family': 'Arial' + } + } + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('INSERT INTO sites (user_id, slug, theme, content_json) VALUES (?, ?, ?, ?)', + (user_id, slug, theme, json.dumps(content))) + site_id = c.lastrowid + conn.commit() + conn.close() + + # ✅ TODO está en main.db - no se necesitan bases separadas + + return jsonify({'success': True, 'site_id': site_id, 'slug': slug}) + + return render_template('create_site.html') + +# ============================================================================ +# CUSTOMIZER (Sistema de Personalización) +# ============================================================================ + +@app.route('/api/themes') +def list_themes(): + """Listar todos los templates disponibles (estilo WordPress)""" + rubro = request.args.get('rubro', None) + + if rubro: + themes = get_themes_by_rubro(rubro) + else: + themes = scan_available_themes() + + return jsonify({ + 'success': True, + 'themes': themes, + 'total': len(themes) + }) + +@app.route('/api/themes/') +def get_theme(theme_id): + """Obtener información detallada de un template""" + config = get_theme_config(theme_id) + if not config: + return jsonify({'success': False, 'error': 'Template no encontrado'}), 404 + + return jsonify({ + 'success': True, + 'theme': { + 'id': theme_id, + **config + } + }) + +@app.route('/customizer/') +def customizer(site_id): + """Customizer: Sidebar + Preview""" + # Verificar que el sitio existe + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT user_id, slug, theme, content_json FROM sites WHERE id = ?', (site_id,)) + site = c.fetchone() + conn.close() + + if not site: + return "Sitio no encontrado", 404 + + # Si hay sesión, verificar que pertenece al usuario + if 'user_id' in session and site[0] != session['user_id']: + return "No autorizado", 403 + + content = json.loads(site[3]) if site[3] else {} + theme = site[2] + + # Cargar template del tema si existe + theme_template = None + theme_path = os.path.join(THEMES_DIR, theme, 'template.html') + if os.path.exists(theme_path): + with open(theme_path, 'r', encoding='utf-8') as f: + theme_template = f.read() + + # Cargar configuración del template + theme_config = get_theme_config(theme) + if theme_config: + # Si el contenido no tiene colores, usar los del template + if not content.get('colors'): + content['colors'] = theme_config.get('colors', {}) + # Si no tiene tipografía, usar la del template + if not content.get('typography'): + content['typography'] = theme_config.get('typography', {}) + + # Obtener todos los templates disponibles para el selector + available_themes = scan_available_themes() + + return render_template('customizer.html', + site_id=site_id, + slug=site[1], + theme=theme, + content=content, + theme_template=theme_template, + theme_config=theme_config, + available_themes=available_themes) + +@app.route('/api/customizer/save', methods=['POST']) +def save_customizer(): + """Guardar cambios del customizer""" + data = request.get_json() + site_id = data.get('site_id') + content = data.get('content') + new_theme = data.get('theme') # Permitir cambiar template + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Si se cambió el template, actualizarlo + if new_theme: + # Verificar que el template existe + theme_config = get_theme_config(new_theme) + if theme_config: + c.execute('UPDATE sites SET theme = ? WHERE id = ?', (new_theme, site_id)) + # Aplicar colores y tipografía por defecto del nuevo template si no existen + if not content.get('colors'): + content['colors'] = theme_config.get('colors', {}) + if not content.get('typography'): + content['typography'] = theme_config.get('typography', {}) + + c.execute('UPDATE sites SET content_json = ? WHERE id = ?', + (json.dumps(content), site_id)) + conn.commit() + conn.close() + + return jsonify({'success': True}) + +@app.route('/api/customizer/update-field', methods=['POST']) +def update_field(): + """Actualizar un campo específico desde preview (click to edit)""" + data = request.get_json() + site_id = data.get('site_id') + field = data.get('field') # Ej: 'hero_title', 'horarios.lunes_viernes' + value = data.get('value') + + if not site_id or not field: + return jsonify({'success': False, 'error': 'Faltan parámetros'}), 400 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Obtener contenido actual + c.execute('SELECT content_json FROM sites WHERE id = ?', (site_id,)) + result = c.fetchone() + if not result: + conn.close() + return jsonify({'success': False, 'error': 'Sitio no encontrado'}), 404 + + content = json.loads(result[0]) if result[0] else {} + + # Actualizar campo (soporta campos anidados como 'horarios.lunes_viernes' o 'menu_items.1.nombre') + if '.' in field: + # Campo anidado: 'horarios.lunes_viernes' o 'menu_items.1.nombre' + parts = field.split('.') + current = content + for i, part in enumerate(parts[:-1]): + if part not in current: + current[part] = {} + # Si es un número, mantener como string key (para menu_items.1, menu_items.2, etc.) + current = current[part] + current[parts[-1]] = value + else: + # Campo simple: 'hero_title' + content[field] = value + + # Guardar + c.execute('UPDATE sites SET content_json = ? WHERE id = ?', + (json.dumps(content), site_id)) + conn.commit() + conn.close() + + return jsonify({'success': True, 'content': content}) + +@app.route('/api/customizer/get-content/') +def get_content(site_id): + """Obtener contenido completo del sitio""" + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT content_json FROM sites WHERE id = ?', (site_id,)) + result = c.fetchone() + conn.close() + + if not result: + return jsonify({'success': False, 'error': 'Sitio no encontrado'}), 404 + + content = json.loads(result[0]) if result[0] else {} + return jsonify({'success': True, 'content': content}) + +@app.route('/api/customizer/add-block', methods=['POST']) +def add_block(): + """Añadir un nuevo bloque al sitio""" + data = request.get_json() + site_id = data.get('site_id') + block_type = data.get('block_type') + block_content = data.get('content', {}) + + if not site_id or not block_type: + return jsonify({'success': False, 'error': 'Faltan parámetros'}), 400 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT content_json FROM sites WHERE id = ?', (site_id,)) + result = c.fetchone() + + if not result: + conn.close() + return jsonify({'success': False, 'error': 'Sitio no encontrado'}), 404 + + content = json.loads(result[0]) if result[0] else {} + + # Inicializar blocks si no existe + if 'blocks' not in content: + content['blocks'] = [] + + # Crear nuevo bloque + new_block = { + 'id': f'block_{int(time.time() * 1000)}', + 'type': block_type, + 'content': block_content, + 'order': len(content['blocks']) + } + + content['blocks'].append(new_block) + + # Guardar + c.execute('UPDATE sites SET content_json = ? WHERE id = ?', (json.dumps(content), site_id)) + conn.commit() + conn.close() + + return jsonify({'success': True, 'block': new_block}) + +@app.route('/api/customizer/remove-block', methods=['POST']) +def remove_block(): + """Eliminar un bloque del sitio""" + data = request.get_json() + site_id = data.get('site_id') + block_id = data.get('block_id') + + if not site_id or not block_id: + return jsonify({'success': False, 'error': 'Faltan parámetros'}), 400 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT content_json FROM sites WHERE id = ?', (site_id,)) + result = c.fetchone() + + if not result: + conn.close() + return jsonify({'success': False, 'error': 'Sitio no encontrado'}), 404 + + content = json.loads(result[0]) if result[0] else {} + + if 'blocks' in content: + content['blocks'] = [b for b in content['blocks'] if b.get('id') != block_id] + # Reordenar + for i, block in enumerate(content['blocks']): + block['order'] = i + + # Guardar + c.execute('UPDATE sites SET content_json = ? WHERE id = ?', (json.dumps(content), site_id)) + conn.commit() + conn.close() + + return jsonify({'success': True}) + +@app.route('/api/customizer/reorder-blocks', methods=['POST']) +def reorder_blocks(): + """Reordenar bloques""" + data = request.get_json() + site_id = data.get('site_id') + block_ids = data.get('block_ids', []) + + if not site_id: + return jsonify({'success': False, 'error': 'Faltan parámetros'}), 400 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT content_json FROM sites WHERE id = ?', (site_id,)) + result = c.fetchone() + + if not result: + conn.close() + return jsonify({'success': False, 'error': 'Sitio no encontrado'}), 404 + + content = json.loads(result[0]) if result[0] else {} + + if 'blocks' in content: + # Reordenar según block_ids + blocks_dict = {b['id']: b for b in content['blocks']} + content['blocks'] = [blocks_dict[bid] for bid in block_ids if bid in blocks_dict] + for i, block in enumerate(content['blocks']): + block['order'] = i + + # Guardar + c.execute('UPDATE sites SET content_json = ? WHERE id = ?', (json.dumps(content), site_id)) + conn.commit() + conn.close() + + return jsonify({'success': True}) + +@app.route('/api/customizer/preview-frame/') +def preview_frame(site_id): + """Frame del preview - renderiza el template completo con estructura GKACHELE""" + # Obtener datos del sitio + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT theme, content_json, user_id FROM sites WHERE id = ?', (site_id,)) + site = c.fetchone() + conn.close() + + if not site: + return "Sitio no encontrado", 404 + + theme = site[0] + content = json.loads(site[1]) if site[1] else {} + user_id = site[2] + + # Usar función helper para renderizar con estructura GKACHELE + try: + rendered = render_gkachele_template(theme, content, site_id, user_id) + print(f"✅ Template renderizado correctamente para site_id={site_id}, theme={theme}") + return rendered + except Exception as e: + import traceback + print(f"❌ Error renderizando template: {e}") + traceback.print_exc() + # Fallback: cargar template directamente si existe + theme_path = os.path.join(THEMES_DIR, theme, 'template.html') + if os.path.exists(theme_path): + with open(theme_path, 'r', encoding='utf-8') as f: + template_str = f.read() + from jinja2 import Template + template = Template(template_str) + template_data = { + 'site_name': content.get('site_name', 'GKACHELE Site'), + 'hero_title': content.get('hero_title', 'Bienvenido'), + 'hero_description': content.get('hero_description', ''), + 'colors': content.get('colors', {'primary': '#c94d4d', 'secondary': '#d97757', 'accent': '#f4a261', 'text': '#2c2c2c'}), + 'typography': content.get('typography', {'font_family': 'Roboto'}), + 'horarios': content.get('horarios', {}), + 'redes_sociales': content.get('redes_sociales', {}), + 'especialidad_culinaria': content.get('especialidad_culinaria', {}), + 'direccion': content.get('direccion', ''), + 'telefono': content.get('telefono', ''), + 'email': content.get('email', ''), + 'capacidad': content.get('capacidad', ''), + 'mapa_url': content.get('mapa_url', ''), + 'menu_url': content.get('menu_url', ''), + 'menu_items': content.get('menu_items', {}), + **content + } + return template.render(**template_data) + + # Fallback final a preview simple + return f""" + + + Preview + +

+ {content.get('hero_title', 'Título')} +

+

+ {content.get('hero_description', 'Descripción')} +

+

+ © 2025 GKACHELE™. Todos los derechos reservados. +

+ + + """ + +# ============================================================================ +# SOLICITUDES +# ============================================================================ + +@app.route('/dashboard/submit/', methods=['POST']) +def submit_site(site_id): + """Cliente envía sitio para aprobación""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Cambiar status a pending + c.execute('UPDATE sites SET status = ? WHERE id = ?', ('pending', site_id)) + + # Crear solicitud + c.execute('INSERT INTO requests (site_id, user_id) VALUES (?, ?)', + (site_id, session['user_id'])) + + conn.commit() + conn.close() + + return jsonify({'success': True}) + +# ============================================================================ +# ADMIN +# ============================================================================ + +# ============================================================================ +# HELPER FUNCTIONS - Permisos basados en DB (sistema de roles GKACHELE™) +# ============================================================================ + +def user_has_role(user_id, required_role): + """Verificar si usuario tiene un rol específico (desde DB)""" + if not user_id: + return False + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT role FROM users WHERE id = ?', (user_id,)) + result = c.fetchone() + conn.close() + + if not result: + return False + + user_role = result[0] or 'subscriber' + + # Jerarquía de roles (sistema GKACHELE™) + role_hierarchy = { + 'administrator': 4, + 'editor': 3, + 'author': 2, + 'subscriber': 1 + } + + user_level = role_hierarchy.get(user_role, 1) + required_level = role_hierarchy.get(required_role, 1) + + return user_level >= required_level + +def user_can(user_id, capability): + """Verificar capacidad específica (desde DB)""" + if not user_id: + return False + + # Si es admin, puede todo + if user_has_role(user_id, 'administrator'): + return True + + # Otras capacidades se pueden añadir aquí + # Por ahora, solo admin puede hacer cosas administrativas + return False + +@app.route('/admin') +def admin(): + """Panel admin - Solo usuarios con rol 'administrator' (desde DB)""" + if 'user_id' not in session: + return "No autorizado", 403 + + # Verificar rol desde la base de datos (no hardcodeado) + if not user_has_role(session['user_id'], 'administrator'): + return "Solo administradores pueden acceder", 403 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Solicitudes pendientes + c.execute('''SELECT r.id, r.site_id, r.status, s.slug, u.email, r.created_at + FROM requests r + JOIN sites s ON r.site_id = s.id + JOIN users u ON r.user_id = u.id + WHERE r.status = 'pending' + ORDER BY r.created_at DESC''') + requests = [{'id': r[0], 'site_id': r[1], 'status': r[2], 'slug': r[3], + 'email': r[4], 'created_at': r[5]} for r in c.fetchall()] + + # Todos los sitios + c.execute('SELECT id, slug, theme, status, user_id FROM sites') + sites = [{'id': r[0], 'slug': r[1], 'theme': r[2], 'status': r[3], 'user_id': r[4]} + for r in c.fetchall()] + + # TODOS LOS USUARIOS con estadísticas + c.execute('''SELECT + u.id, + u.email, + u.plan, + u.rubro, + u.created_at, + COUNT(DISTINCT s.id) as num_sitios, + COUNT(DISTINCT CASE WHEN s.status = 'published' THEN s.id END) as sitios_publicados, + COUNT(DISTINCT r.id) as num_solicitudes + FROM users u + LEFT JOIN sites s ON u.id = s.user_id + LEFT JOIN requests r ON u.id = r.user_id + GROUP BY u.id + ORDER BY u.id DESC''') + + users = [] + for row in c.fetchall(): + users.append({ + 'id': row[0], + 'email': row[1], + 'plan': row[2], + 'rubro': row[3], + 'created_at': row[4], + 'num_sitios': row[5] or 0, + 'sitios_publicados': row[6] or 0, + 'num_solicitudes': row[7] or 0 + }) + + conn.close() + + return render_template('admin.html', requests=requests, sites=sites, users=users) + +@app.route('/admin/approve/', methods=['POST']) +def approve_site(request_id): + """Admin aprueba sitio - Verificar rol desde DB""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 403 + + if not user_has_role(session['user_id'], 'administrator'): + return jsonify({'error': 'Solo administradores'}), 403 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Obtener site_id + c.execute('SELECT site_id FROM requests WHERE id = ?', (request_id,)) + result = c.fetchone() + if not result: + conn.close() + return jsonify({'error': 'Solicitud no encontrada'}), 404 + + site_id = result[0] + + # Aprobar: cambiar status a approved y publicar + c.execute('UPDATE sites SET status = ? WHERE id = ?', ('published', site_id)) + c.execute('UPDATE requests SET status = ? WHERE id = ?', ('approved', request_id)) + + conn.commit() + conn.close() + + return jsonify({'success': True}) + +@app.route('/admin/users/delete/', methods=['POST']) +def delete_user(user_id): + """Eliminar usuario y todos sus datos relacionados - Verificar rol desde DB""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 403 + + # Verificar rol desde DB (no hardcodeado) + if not user_has_role(session['user_id'], 'administrator'): + return jsonify({'error': 'Solo administradores'}), 403 + + # No permitir eliminar al admin principal (user_id = 1) + if user_id == 1: + return jsonify({'error': 'No se puede eliminar al administrador principal'}), 400 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + try: + # Eliminar en orden (respetando foreign keys) + # 1. Widgets + c.execute('DELETE FROM widgets WHERE user_id = ?', (user_id,)) + # 2. Menús + c.execute('DELETE FROM menus WHERE user_id = ?', (user_id,)) + # 3. Media + c.execute('DELETE FROM media WHERE user_id = ?', (user_id,)) + # 4. Content + c.execute('DELETE FROM content WHERE user_id = ?', (user_id,)) + # 5. Settings + c.execute('DELETE FROM settings WHERE user_id = ?', (user_id,)) + # 6. Requests + c.execute('DELETE FROM requests WHERE user_id = ?', (user_id,)) + # 7. Sites + c.execute('DELETE FROM sites WHERE user_id = ?', (user_id,)) + # 8. Usuario + c.execute('DELETE FROM users WHERE id = ?', (user_id,)) + + conn.commit() + conn.close() + + return jsonify({'success': True, 'message': f'Usuario {user_id} eliminado exitosamente'}) + except Exception as e: + conn.rollback() + conn.close() + return jsonify({'error': f'Error al eliminar usuario: {str(e)}'}), 500 + +# ============================================================================ +# SITIO PÚBLICO +# ============================================================================ + +@app.route('/site/') +def public_site(slug): + """Sitio público del cliente - usando estructura GKACHELE""" + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT id, theme, content_json, status, user_id FROM sites WHERE slug = ?', (slug,)) + site = c.fetchone() + conn.close() + + if not site or site[3] != 'published': + return "Sitio no encontrado o no publicado", 404 + + site_id = site[0] + theme = site[1] + content = json.loads(site[2]) if site[2] else {} + user_id = site[4] + + # Renderizar con estructura GKACHELE + try: + return render_gkachele_template(theme, content, site_id, user_id) + except Exception as e: + import traceback + traceback.print_exc() + return render_template('public_site.html', content=content, theme=theme) + +# ============================================================================ +# MAIN +# ============================================================================ + +# ============================================================================ +# API ADMIN CLIENTE +# ============================================================================ + +@app.route('/api/admin/upload', methods=['POST']) +def upload_media(): + """Subir imágenes""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + user_id = session['user_id'] + files = request.files.getlist('files') + + if not files: + return jsonify({'error': 'No hay archivos'}), 400 + + uploaded = [] + for file in files: + if file.filename: + filename = f"{user_id}_{secrets.token_hex(8)}_{file.filename}" + filepath = os.path.join(UPLOADS_DIR, filename) + file.save(filepath) + + # Guardar en DB + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT id FROM sites WHERE user_id = ? LIMIT 1', (user_id,)) + site = c.fetchone() + site_id = site[0] if site else None + + c.execute('INSERT INTO media (user_id, site_id, filename, filepath, file_type) VALUES (?, ?, ?, ?, ?)', + (user_id, site_id, filename, filepath, 'image')) + conn.commit() + conn.close() + + uploaded.append(filename) + + return jsonify({'success': True, 'files': uploaded}) + +@app.route('/api/admin/media') +def get_media(): + """Obtener media del usuario""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + user_id = session['user_id'] + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT id, filename, filepath, uploaded_at FROM media WHERE user_id = ? ORDER BY uploaded_at DESC', (user_id,)) + media = [{'id': r[0], 'filename': r[1], 'filepath': r[2], 'uploaded_at': r[3]} for r in c.fetchall()] + conn.close() + + return jsonify({'success': True, 'media': media}) + +@app.route('/api/admin/media/', methods=['DELETE']) +def delete_media(media_id): + """Eliminar media""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + user_id = session['user_id'] + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Verificar que pertenece al usuario + c.execute('SELECT filepath FROM media WHERE id = ? AND user_id = ?', (media_id, user_id)) + media = c.fetchone() + + if media: + # Eliminar archivo + if os.path.exists(media[0]): + os.remove(media[0]) + + # Eliminar de DB + c.execute('DELETE FROM media WHERE id = ?', (media_id,)) + conn.commit() + + conn.close() + return jsonify({'success': True}) + +@app.route('/api/admin/settings', methods=['POST']) +def update_settings(): + """Actualizar configuración del usuario""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + data = request.get_json() + user_id = session['user_id'] + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + if data.get('password'): + c.execute('UPDATE users SET password = ? WHERE id = ?', + (generate_password_hash(data['password']), user_id)) + conn.commit() + + conn.close() + return jsonify({'success': True}) + +@app.route('/uploads/') +def serve_upload(filename): + """Servir archivos subidos""" + return send_from_directory(UPLOADS_DIR, filename) + +# ============================================================================ +# API MENÚS Y WIDGETS +# ============================================================================ + +@app.route('/api/menus/', methods=['GET']) +def get_menus(site_id): + """Obtener menús del sitio""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + user_id = session['user_id'] + menus = get_site_menus(site_id, user_id) + return jsonify({'success': True, 'menus': menus}) + +@app.route('/api/menus/', methods=['POST']) +def save_menu(site_id): + """Guardar/actualizar menú""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + data = request.get_json() + user_id = session['user_id'] + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Eliminar menús existentes del sitio + c.execute('DELETE FROM menus WHERE site_id = ? AND user_id = ?', (site_id, user_id)) + + # Insertar nuevos menús + for menu_item in data.get('menus', []): + c.execute('''INSERT INTO menus (user_id, site_id, location, title, url, order_index, parent_id) + VALUES (?, ?, ?, ?, ?, ?, ?)''', + (user_id, site_id, menu_item['location'], menu_item['title'], + menu_item['url'], menu_item.get('order', 0), menu_item.get('parent_id'))) + + conn.commit() + conn.close() + + return jsonify({'success': True}) + +@app.route('/api/widgets/', methods=['GET']) +def get_widgets(site_id): + """Obtener widgets del sitio""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + user_id = session['user_id'] + area = request.args.get('area', 'sidebar') + widgets = get_site_widgets(site_id, user_id, area) + return jsonify({'success': True, 'widgets': widgets}) + +@app.route('/api/widgets/', methods=['POST']) +def save_widget(site_id): + """Guardar/actualizar widget""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + data = request.get_json() + user_id = session['user_id'] + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + c.execute('''INSERT INTO widgets (user_id, site_id, area, type, title, content, order_index) + VALUES (?, ?, ?, ?, ?, ?, ?)''', + (user_id, site_id, data.get('area', 'sidebar'), data.get('type', 'text'), + data.get('title'), data.get('content'), data.get('order', 0))) + + conn.commit() + conn.close() + + return jsonify({'success': True}) + +# ============================================================================ +# MAIN +# ============================================================================ + +# Inicializar DB al importar (con manejo de errores) +try: + init_db() +except Exception as e: + print(f"⚠️ Error en init_db: {e}") + # Continuar aunque falle, se creará cuando se use + +if __name__ == '__main__': + port = int(os.environ.get('PORT', 5001)) + print("🚀 Demo SaaS iniciado") + print(f"📍 http://localhost:{port}") + app.run(debug=True, host='0.0.0.0', port=port) diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/themes/restaurante-moderno/config.json b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/themes/restaurante-moderno/config.json new file mode 100644 index 0000000..3a86663 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/themes/restaurante-moderno/config.json @@ -0,0 +1,30 @@ +{ + "name": "Restaurante Moderno", + "rubro": "restaurante", + "description": "Tema elegante para restaurantes", + "sections": [ + "hero", + "menu", + "horarios", + "reservas", + "especialidad_culinaria", + "contacto" + ], + "colors": { + "primary": "#c94d4d", + "secondary": "#d97757", + "accent": "#f4a261", + "text": "#2c2c2c" + }, + "typography": { + "font_family": "Roboto", + "headings": "Playfair Display" + }, + "features": { + "menu_url": true, + "horarios": true, + "reservas": true, + "capacidad": true, + "especialidad_culinaria": true + } +} diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/themes/restaurante-moderno/customizer.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/themes/restaurante-moderno/customizer.html new file mode 100644 index 0000000..53f3c9e --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/themes/restaurante-moderno/customizer.html @@ -0,0 +1,1256 @@ + + + + + Personalizar - {{ site_name or 'Sitio' }} + + + + + +
+
+

Vista Previa

+
+ +
+
+
+
Cargando vista previa...
+ +
+
+ +
✅ Cambios guardados
+ + + + diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/themes/restaurante-moderno/style.css b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/themes/restaurante-moderno/style.css new file mode 100644 index 0000000..fde8fef --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/themes/restaurante-moderno/style.css @@ -0,0 +1,44 @@ +/* Estilos adicionales para el tema Restaurante Moderno */ +/* Estos estilos complementan el template.html */ + +/* Animaciones suaves */ +@keyframes fadeInUp { + from { + opacity: 0; + transform: translateY(30px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.section { + animation: fadeInUp 0.6s ease-out; +} + +/* Efectos hover mejorados */ +.menu-item, +.horario-item { + transition: all 0.3s ease; +} + +/* Scroll suave */ +html { + scroll-behavior: smooth; +} + +/* Mejoras responsive */ +@media (max-width: 480px) { + .hero h1 { + font-size: 32px; + } + + .section-title { + font-size: 32px; + } + + .menu-grid { + grid-template-columns: 1fr; + } +} diff --git a/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/themes/restaurante-moderno/template.html b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/themes/restaurante-moderno/template.html new file mode 100644 index 0000000..8e5b805 --- /dev/null +++ b/backups/backup-gkachele-login-customizer-20250114-v3-20260116-152515/raspberry/themes/restaurante-moderno/template.html @@ -0,0 +1,1329 @@ + + + + + + + {{ site_name or 'Restaurante' }} + + + + + + + + + +
+ +
+ + +
+
+

{{ hero_title + or 'Bienvenido a Nuestro Restaurante' }}

+

{{ + hero_description or 'Sabores auténticos que despiertan tus sentidos' }}

+ Reservar Mesa +
+
+ + + + + +
+
+

Horarios de Atención

+
+
+

Lunes - Viernes

+

{{ horarios.lunes_viernes or '12:00 PM - 10:00 PM' }}

+
+
+

Sábados

+

+ {{ horarios.sabados or '12:00 PM - 11:00 PM' }}

+
+
+

Domingos

+

+ {{ horarios.domingos or '12:00 PM - 9:00 PM' }}

+
+
+
+
+ + +
+
+

Reserva tu Mesa

+
+

+ Completa el formulario y nos pondremos en contacto contigo para confirmar tu reserva. +

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+
+
+ + +
+
+
+
+

{{ especialidad_culinaria.titulo or 'Nuestra Especialidad' }}

+

{{ especialidad_culinaria.descripcion or 'Cada plato es una obra de arte culinaria, preparado con + ingredientes frescos y técnicas tradicionales que honran la autenticidad de nuestros sabores.' + }}

+
+
+ Especialidad Culinaria +
+
+
+
+ + +
+
+

Contacto

+
+
+

Información de Contacto

+

Dirección: {{ direccion or 'Calle Principal 123, Ciudad' }}

+

Teléfono: {{ telefono or '+34 123 456 789' }}

+

Email: {{ email or 'contacto@restaurante.com' }}

+ {% if capacidad %} +

Capacidad: {{ capacidad }} personas

+ {% else %} +

Capacidad: 50 personas

+ {% endif %} + +
+ {% if redes_sociales.facebook %} + + {% endif %} + {% if redes_sociales.instagram %} + + {% endif %} + + + +
+
+
+

+ Ubicación

+ {% if mapa_url %} +
+ +
+ {% else %} + +

+ ➕ Click para añadir mapa de Google Maps

+ {% endif %} +
+
+
+
+ + +
+ {% if blocks %} + {% for block in blocks|sort(attribute='order') %} +
+
+ {% if block.type == 'video' %} +
+ {% if block.content.url %} +
+ +
+ {% else %} +

➕ Click para + añadir + URL de video (YouTube/Vimeo)

+ {% endif %} +
+ {% elif block.type == 'imagen' %} +
+ {% if block.content.url %} + {{ block.content.alt or '' }} + {% else %} +

➕ Click para + añadir + URL de imagen

+ {% endif %} +
+ {% elif block.type == 'texto' %} +
+

{{ block.content.titulo or 'Título del bloque' }}

+

{{ block.content.contenido or 'Contenido del bloque...' }}

+
+ {% elif block.type == 'redes_sociales' %} +
+

Síguenos en Redes Sociales

+
+ {% if block.content.facebook %} + + {% endif %} + {% if block.content.instagram %} + + {% endif %} +
+
+ {% elif block.type == 'mapa' %} +
+ {% if block.content.url %} + + {% else %} +

➕ Click para + añadir + URL de Google Maps (Compartir → Insertar mapa)

+ {% endif %} +
+ {% endif %} +
+ +
+ {% endfor %} + {% endif %} +
+ + +
+
+

© 2025 {{ site_name or 'Restaurante' }}. Todos los derechos reservados.

+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/check-logs.sh b/check-logs.sh new file mode 100644 index 0000000..db25a88 --- /dev/null +++ b/check-logs.sh @@ -0,0 +1,2 @@ +#!/bin/bash +sshpass -p 'Gdk1983gdk45@' ssh -p 2222 -o StrictHostKeyChecking=no pi@192.168.1.134 'sudo journalctl -u gkachele-saas -n 50 --no-pager' diff --git a/copiar_db_raspberry.sh b/copiar_db_raspberry.sh new file mode 100644 index 0000000..2f4ce47 --- /dev/null +++ b/copiar_db_raspberry.sh @@ -0,0 +1,29 @@ +#!/bin/bash +# GKACHELE™ - Copiar DB desde Raspberry +# © 2025 GKACHELE™. Todos los derechos reservados. + +TIMESTAMP=$(date +%Y%m%d_%H%M%S) +RASPBERRY_HOST="192.168.1.134" +RASPBERRY_PORT="2222" +RASPBERRY_USER="pi" +RASPBERRY_PASS="Gdk1983gdk45@" +RASPBERRY_DB="/home/pi/gkachele-saas/database/main.db" +LOCAL_DB="/mnt/c/word/demo/database/main_raspberry_${TIMESTAMP}.db" + +echo "🔄 Copiando base de datos desde Raspberry..." +echo "" + +sshpass -p "${RASPBERRY_PASS}" scp -P ${RASPBERRY_PORT} -o StrictHostKeyChecking=no \ + ${RASPBERRY_USER}@${RASPBERRY_HOST}:${RASPBERRY_DB} \ + "${LOCAL_DB}" + +if [ $? -eq 0 ]; then + echo "✅ Base de datos copiada exitosamente" + echo "📍 Ubicación: ${LOCAL_DB}" + echo "" + echo "💡 Ahora puedes abrirla en DB Browser for SQLite:" + echo " ${LOCAL_DB}" +else + echo "❌ Error al copiar la base de datos" + exit 1 +fi diff --git a/cron_entry.txt b/cron_entry.txt new file mode 100644 index 0000000..7157453 --- /dev/null +++ b/cron_entry.txt @@ -0,0 +1 @@ +*/5 * * * * /home/pi/scripts/update-raspberry-cron.sh diff --git a/demo/COMO_USAR.md b/demo/COMO_USAR.md new file mode 100644 index 0000000..cb4c94f --- /dev/null +++ b/demo/COMO_USAR.md @@ -0,0 +1,74 @@ +# 🎯 Cómo Usar el Demo + +## ⚠️ IMPORTANTE: Python en WSL + +Tu proyecto está en WSL, así que necesitas ejecutar desde ahí. + +## 🚀 Opción 1: Desde WSL (Recomendado) + +```bash +# En WSL +cd /mnt/c/word/demo +chmod +x start.sh +./start.sh +``` + +O directamente: +```bash +cd /mnt/c/word/demo +python3 app.py +``` + +## 🚀 Opción 2: Copiar a WSL + +```bash +# En WSL +cp -r /mnt/c/word/demo ~/demo-saas +cd ~/demo-saas +python3 app.py +``` + +## 📋 Pasos para Probar + +1. **Abrir navegador**: http://localhost:5001 + +2. **Registrarse**: + - Email: test@test.com + - Password: test123 + - Plan: Base + - Rubro: Gimnasio + +3. **Crear sitio**: + - Nombre: Mi Gimnasio + - Slug: mi-gimnasio + - Título: Bienvenido + - Descripción: Tu gimnasio de confianza + +4. **Personalizar** (Customizer): + - Cambia colores + - Cambia texto + - Preview se actualiza en tiempo real + - Guarda cambios + +5. **Enviar para aprobación** + +6. **Admin** (necesitas ser user_id = 1): + - Ve a `/admin` + - Aprueba el sitio + +7. **Ver publicado**: `/site/mi-gimnasio` + +## 🔧 Si el puerto 5001 no funciona + +Cambia en `app.py` línea 400: +```python +port = int(os.environ.get('PORT', 8000)) # Cambia 5001 por 8000 +``` + +## ✅ Verificar que funciona + +```bash +# En WSL +curl http://localhost:5001 +# Debe mostrar HTML de la landing +``` diff --git a/demo/EJECUTAR_AHORA.md b/demo/EJECUTAR_AHORA.md new file mode 100644 index 0000000..32b4bb7 --- /dev/null +++ b/demo/EJECUTAR_AHORA.md @@ -0,0 +1,57 @@ +# ✅ DEMO FUNCIONANDO - EJECUTAR AHORA + +## 🚀 Comando Simple + +**Abre WSL y ejecuta:** + +```bash +cd /mnt/c/word/demo +python3 app.py +``` + +## 📍 Luego abre en tu navegador: + +``` +http://localhost:5001 +``` + +## ✅ Verificación + +El test ya pasó: +- ✅ App importada correctamente +- ✅ Flask funcionando +- ✅ Templates encontrados +- ✅ Base de datos inicializada + +## 🎯 Flujo de Prueba + +1. **Landing** → http://localhost:5001 +2. **Registrarse** → Click "Registrarse" + - Email: test@test.com + - Password: test123 +3. **Crear sitio** → Click "Crear Sitio" + - Nombre: Mi Gimnasio + - Slug: mi-gimnasio +4. **Customizer** → Se abre automáticamente + - Cambia colores, texto + - Preview se actualiza en tiempo real +5. **Enviar** → Click "Enviar para Aprobación" +6. **Admin** → http://localhost:5001/admin + - (Necesitas ser user_id = 1, el primer usuario registrado) +7. **Ver publicado** → http://localhost:5001/site/mi-gimnasio + +## 🔧 Si el puerto 5001 está ocupado + +Edita `app.py` línea 399: +```python +port = int(os.environ.get('PORT', 8000)) # Cambia a 8000 +``` + +## ✨ Características Funcionando + +- ✅ Multi-tenant (DB por cliente) +- ✅ Customizer (sidebar + preview) +- ✅ Actualización en tiempo real +- ✅ Sistema de solicitudes +- ✅ Admin panel +- ✅ Sitios públicos diff --git a/demo/INICIO_WINDOWS.md b/demo/INICIO_WINDOWS.md new file mode 100644 index 0000000..1701bd9 --- /dev/null +++ b/demo/INICIO_WINDOWS.md @@ -0,0 +1,69 @@ +# 🚀 Iniciar Demo en Windows + +## Opción 1: Usar Python desde WSL + +Si tienes Python en WSL (que es donde tienes tu proyecto): + +```bash +# En WSL +cd ~/mi-landing/pagebuilder-saas-prod +# O copia la carpeta demo a WSL +cd /mnt/c/word/demo +python3 app.py +``` + +## Opción 2: Usar Python de Windows + +1. **Verificar Python instalado:** +```powershell +py --version +# o +python --version +``` + +2. **Instalar dependencias:** +```powershell +cd demo +py -m pip install Flask Werkzeug +``` + +3. **Ejecutar:** +```powershell +py app.py +``` + +## Opción 3: Usar el script start.bat + +Doble click en `start.bat` (instala dependencias y ejecuta) + +## 🔧 Si no funciona + +### Verificar puerto +```powershell +netstat -ano | findstr :5001 +``` + +### Cambiar puerto +Edita `app.py` línea 400, cambia: +```python +port = int(os.environ.get('PORT', 5001)) +``` +Por: +```python +port = int(os.environ.get('PORT', 8000)) +``` + +### Ver errores +Ejecuta directamente: +```powershell +cd demo +py app.py +``` + +Y verás los errores en la consola. + +## 📍 URLs + +- Landing: http://localhost:5001 +- Admin: http://localhost:5001/admin +- Dashboard: http://localhost:5001/dashboard (requiere login) diff --git a/demo/INSTRUCCIONES.md b/demo/INSTRUCCIONES.md new file mode 100644 index 0000000..43f87c5 --- /dev/null +++ b/demo/INSTRUCCIONES.md @@ -0,0 +1,90 @@ +# 🚀 Demo Funcional - Instrucciones + +## ✅ Lo que tienes + +1. **Backend Flask completo** con: + - Multi-tenant (DB por cliente) + - Customizer (sidebar + preview) + - Sistema de solicitudes + - Admin panel + +2. **Flujo completo**: + - Registro → Dashboard → Crear sitio → Customizer → Enviar → Admin aprueba → Publicado + +## 🎯 Cómo probarlo + +### 1. Instalar dependencias +```bash +cd demo +pip install Flask Werkzeug +``` + +### 2. Ejecutar +```bash +python app.py +``` + +### 3. Abrir navegador +``` +http://localhost:5000 +``` + +## 📋 Pasos para probar + +1. **Registrarse** (`/register`) + - Email: test@test.com + - Password: test123 + - Plan: Base + - Rubro: Gimnasio + +2. **Crear sitio** (`/dashboard/create`) + - Nombre: Mi Gimnasio + - Slug: mi-gimnasio + - Título: Bienvenido + - Descripción: Tu gimnasio de confianza + +3. **Personalizar** (`/customizer/{site_id}`) + - Cambia colores, texto, tipografía + - Preview se actualiza en tiempo real + - Guarda cambios + +4. **Enviar para aprobación** + - Click en "Enviar para Aprobación" + - Status cambia a "pending" + +5. **Admin** (`/admin`) + - Registra otro usuario (será user_id = 2) + - O modifica la DB para que el primer usuario sea admin (user_id = 1) + - Ve solicitudes pendientes + - Aprueba sitio + +6. **Ver sitio publicado** (`/site/{slug}`) + - Una vez aprobado, el sitio está público + +## 🔧 Para hacer admin + +En `app.py` línea 200, cambia: +```python +if 'user_id' not in session or session['user_id'] != 1: +``` +Por: +```python +if 'user_id' not in session: +``` +Así cualquier usuario puede ser admin (solo para demo). + +## ✨ Características del Demo + +- ✅ Multi-tenant: Cada cliente tiene su DB +- ✅ Customizer: Sidebar izquierdo + Preview derecha +- ✅ Actualización en tiempo real +- ✅ Sistema de solicitudes +- ✅ Admin panel +- ✅ Sitios públicos + +## 🐛 Si no funciona + +1. Verifica que Flask esté instalado: `pip list | findstr Flask` +2. Verifica puerto 5000 libre: `netstat -ano | findstr :5000` +3. Revisa logs en consola +4. Asegúrate de estar en la carpeta `demo/` diff --git a/demo/LEEME_PRIMERO.txt b/demo/LEEME_PRIMERO.txt new file mode 100644 index 0000000..2e5536f --- /dev/null +++ b/demo/LEEME_PRIMERO.txt @@ -0,0 +1,47 @@ +═══════════════════════════════════════════════════════════ + ✅ DEMO FUNCIONANDO - VERSIÓN SIMPLE +═══════════════════════════════════════════════════════════ + +🚀 EJECUTAR: + +Desde WSL: + cd /mnt/c/word/demo + python3 app_simple.py + +Luego abre en navegador: + http://localhost:5001 + +═══════════════════════════════════════════════════════════ + +✨ CARACTERÍSTICAS: + +✅ Landing page +✅ Registro/Login +✅ Dashboard cliente +✅ Crear sitio +✅ Customizer (sidebar + preview en tiempo real) +✅ Enviar para aprobación +✅ Admin panel +✅ Sitios públicos + +═══════════════════════════════════════════════════════════ + +📋 FLUJO: + +1. Registrarse → /register +2. Crear sitio → /create +3. Personalizar → /customizer/{id} +4. Enviar → Click "Enviar" +5. Admin → /admin (aprobar) +6. Ver → /site/{slug} + +═══════════════════════════════════════════════════════════ + +🔧 SI NO FUNCIONA: + +1. Verifica Python: python3 --version +2. Instala Flask: pip3 install Flask Werkzeug +3. Cambia puerto en app_simple.py línea final: + port=8000 (en lugar de 5001) + +═══════════════════════════════════════════════════════════ diff --git a/demo/README.md b/demo/README.md new file mode 100644 index 0000000..9679af6 --- /dev/null +++ b/demo/README.md @@ -0,0 +1,38 @@ +# 🚀 Demo SaaS PageBuilder + +## Inicio Rápido + +```bash +cd demo +pip install -r requirements.txt +python app.py +``` + +Abre: http://localhost:5000 + +## Flujo Demo + +1. **Registrarse** → `/register` +2. **Crear sitio** → `/dashboard/create` +3. **Personalizar** → `/customizer/{site_id}` (sidebar + preview) +4. **Enviar** → Cliente envía para aprobación +5. **Admin** → `/admin` (aprobar sitios) +6. **Publicado** → `/site/{slug}` + +## Credenciales Admin + +- User ID: 1 (primer usuario registrado) +- Accede a `/admin` con user_id = 1 + +## Estructura + +``` +demo/ +├── app.py # Backend Flask +├── database/ # SQLite DBs +│ ├── main.db # DB principal +│ └── sites/ # DB por cliente +├── sites/ # Sitios compilados +├── themes/ # Templates +└── templates/ # HTML templates +``` diff --git a/demo/__pycache__/app.cpython-312.pyc b/demo/__pycache__/app.cpython-312.pyc new file mode 100644 index 0000000..81ad735 Binary files /dev/null and b/demo/__pycache__/app.cpython-312.pyc differ diff --git a/demo/__pycache__/app_simple.cpython-312.pyc b/demo/__pycache__/app_simple.cpython-312.pyc new file mode 100644 index 0000000..458dd46 Binary files /dev/null and b/demo/__pycache__/app_simple.cpython-312.pyc differ diff --git a/demo/app.py b/demo/app.py new file mode 100644 index 0000000..a573613 --- /dev/null +++ b/demo/app.py @@ -0,0 +1,55 @@ +""" +GKACHELE™ SaaS PageBuilder - Sistema Modular +© 2025 GKACHELE™. Todos los derechos reservados. +""" + +import os +from flask import Flask, jsonify, request +from config import SECRET_KEY, PORT +from database import init_db +from routes.auth import auth_bp +from routes.dashboard import dashboard_bp +from routes.customizer import customizer_bp +from routes.admin import admin_bp +from routes.public import public_bp + +app = Flask(__name__, template_folder='templates', static_folder='static') +app.secret_key = SECRET_KEY +app.config['SESSION_COOKIE_SAMESITE'] = 'Lax' + +# Inicializar Base de Datos +init_db() + +# Registrar Blueprints +app.register_blueprint(auth_bp) +app.register_blueprint(dashboard_bp) +app.register_blueprint(customizer_bp) +app.register_blueprint(admin_bp) +app.register_blueprint(public_bp) + +# Manejadores de Errores Globales +@app.errorhandler(500) +def handle_500(e): + response = jsonify({'success': False, 'error': 'Error interno del servidor'}) + response.status_code = 500 + return response + +@app.errorhandler(404) +def handle_404(e): + return jsonify({'success': False, 'error': 'No encontrado'}), 404 + +@app.errorhandler(Exception) +def handle_exception(e): + print(f"❌ EXCEPCIÓN: {e}") + return jsonify({'success': False, 'error': str(e)}), 500 + +# Middleware +@app.after_request +def add_header(response): + response.headers.pop('X-Frame-Options', None) + response.headers['Content-Security-Policy'] = "frame-ancestors *;" + return response + +if __name__ == '__main__': + print(f"🚀 GKACHELE™ SaaS Modular iniciado en puerto {PORT}") + app.run(debug=True, host='0.0.0.0', port=PORT) diff --git a/demo/app_backup_hash_20260117.py.bak b/demo/app_backup_hash_20260117.py.bak new file mode 100644 index 0000000..1e3d562 --- /dev/null +++ b/demo/app_backup_hash_20260117.py.bak @@ -0,0 +1,1700 @@ +""" +GKACHELE™ SaaS PageBuilder - Sistema Profesional +© 2025 GKACHELE™. Todos los derechos reservados. +Desarrollado desde noviembre 2025 por GKACHELE +Código propiedad de GKACHELE © 2025 - Prohibida su reproducción sin autorización +""" + +import os +import json +import sqlite3 +import secrets +from datetime import datetime +from flask import Flask, render_template, request, jsonify, session, redirect, url_for, send_from_directory +from werkzeug.security import generate_password_hash, check_password_hash + +app = Flask(__name__, template_folder='templates', static_folder='static') +app.secret_key = 'demo-secret-key-2025' +app.config['SESSION_COOKIE_SAMESITE'] = 'Lax' + +# Manejador de errores global - siempre devolver JSON +@app.errorhandler(500) +def handle_500(e): + print(f"❌ Error 500: {e}") + import traceback + traceback.print_exc() + # Asegurar que siempre devuelva JSON + response = jsonify({'success': False, 'error': 'Error interno del servidor'}) + response.status_code = 500 + return response + +@app.errorhandler(404) +def handle_404(e): + response = jsonify({'success': False, 'error': 'No encontrado'}) + response.status_code = 404 + return response + +@app.errorhandler(403) +def handle_403(e): + response = jsonify({'success': False, 'error': 'No autorizado'}) + response.status_code = 403 + return response + +# Manejador para excepciones no capturadas - FORZAR JSON +@app.errorhandler(Exception) +def handle_exception(e): + print(f"❌❌❌ EXCEPCIÓN NO CAPTURADA: {e}") + import traceback + traceback.print_exc() + # SIEMPRE devolver JSON, nunca HTML + response = jsonify({'success': False, 'error': f'Error: {str(e)}'}) + response.status_code = 500 + response.headers['Content-Type'] = 'application/json' + return response + +# Forzar JSON en TODAS las rutas /register, /login, /api/* +@app.before_request +def before_request(): + # Si es POST a /register o /login, forzar JSON + if request.method == 'POST' and (request.path.startswith('/register') or + request.path.startswith('/login') or + request.path.startswith('/api/')): + try: + request.get_json(force=True) + except: + pass + +@app.after_request +def add_header(response): + """Permitir iframes para el customizer""" + # Eliminar X-Frame-Options para permitir iframe + response.headers.pop('X-Frame-Options', None) + response.headers['Content-Security-Policy'] = "frame-ancestors *;" + return response + +from functools import wraps +def login_required(f): + @wraps(f) + def decorated_function(*args, **kwargs): + if 'user_id' not in session: + if request.is_json: + return jsonify({'success': False, 'error': 'No autorizado'}), 401 + return redirect(url_for('login')) + return f(*args, **kwargs) + return decorated_function + +# Directorios +BASE_DIR = os.path.dirname(__file__) +DATABASE_DIR = os.path.join(BASE_DIR, 'database') +SITES_DIR = os.path.join(BASE_DIR, 'sites') +THEMES_DIR = os.path.join(BASE_DIR, 'themes') +STATIC_DIR = os.path.join(BASE_DIR, 'static') +UPLOADS_DIR = os.path.join(BASE_DIR, 'uploads') + +# ============================================================================ +# SISTEMA DE TEMPLATES (Estilo WordPress) - GKACHELE™ +# ============================================================================ + +def scan_available_themes(): + """Escanear todos los templates disponibles y cargar sus configuraciones""" + themes = {} + if not os.path.exists(THEMES_DIR): + return themes + + for theme_dir in os.listdir(THEMES_DIR): + theme_path = os.path.join(THEMES_DIR, theme_dir) + if not os.path.isdir(theme_path) or theme_dir.startswith('_'): + continue # Ignorar archivos y carpetas que empiezan con _ + + config_path = os.path.join(theme_path, 'config.json') + template_path = os.path.join(theme_path, 'template.html') + + # Verificar que tenga config.json y template.html + if not os.path.exists(config_path) or not os.path.exists(template_path): + continue + + try: + with open(config_path, 'r', encoding='utf-8') as f: + config = json.load(f) + + themes[theme_dir] = { + 'id': theme_dir, + 'name': config.get('name', theme_dir), + 'description': config.get('description', ''), + 'rubro': config.get('rubro', 'general'), + 'sections': config.get('sections', []), + 'colors': config.get('colors', {}), + 'typography': config.get('typography', {}), + 'features': config.get('features', {}), + 'preview': f'/themes/{theme_dir}/preview.jpg' if os.path.exists(os.path.join(theme_path, 'preview.jpg')) else None + } + except Exception as e: + print(f"⚠️ Error cargando template {theme_dir}: {e}") + continue + + return themes + +def get_theme_config(theme_id): + """Obtener configuración de un template específico""" + config_path = os.path.join(THEMES_DIR, theme_id, 'config.json') + if not os.path.exists(config_path): + return None + + try: + with open(config_path, 'r', encoding='utf-8') as f: + return json.load(f) + except Exception as e: + print(f"⚠️ Error cargando config de {theme_id}: {e}") + return None + +def get_themes_by_rubro(rubro): + """Obtener templates filtrados por rubro""" + all_themes = scan_available_themes() + return {k: v for k, v in all_themes.items() if v.get('rubro') == rubro or v.get('rubro') == 'general'} + +# Crear directorios +# NOTA: Ya no se crean bases de datos separadas (cliente-X.db) +# TODO está en main.db (sistema multi-tenant) +for d in [DATABASE_DIR, SITES_DIR, THEMES_DIR, UPLOADS_DIR]: + os.makedirs(d, exist_ok=True) + +# DB principal +MAIN_DB = os.path.join(DATABASE_DIR, 'main.db') + +def init_db(): + """Inicializar base de datos principal - TODO EN UNA SOLA DB (sistema multi-tenant)""" + try: + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Usuarios (todos los clientes en una sola tabla) - Sistema GKACHELE™ + c.execute('''CREATE TABLE IF NOT EXISTS users ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + email TEXT UNIQUE NOT NULL, + password TEXT NOT NULL, + role TEXT DEFAULT 'subscriber', + plan TEXT DEFAULT 'base', + rubro TEXT DEFAULT 'gimnasio', + status TEXT DEFAULT 'active', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP + )''') + + # Añadir columna role si no existe (migración) + try: + c.execute('ALTER TABLE users ADD COLUMN role TEXT DEFAULT "subscriber"') + except: + pass # Columna ya existe + + # Añadir columna status si no existe (migración) + try: + c.execute('ALTER TABLE users ADD COLUMN status TEXT DEFAULT "active"') + except: + pass # Columna ya existe + + # Crear primer admin si no existe (user_id = 1) + c.execute('SELECT COUNT(*) FROM users WHERE id = 1') + if c.fetchone()[0] == 0: + from werkzeug.security import generate_password_hash + admin_password = generate_password_hash('admin123') # Cambiar después + c.execute('''INSERT INTO users (id, email, password, role, plan, rubro, status) + VALUES (1, 'admin@gkachele.com', ?, 'administrator', 'premium', 'admin', 'active')''', + (admin_password,)) + print("✅ Usuario administrador creado: admin@gkachele.com / admin123") + + # Sitios (todos los sitios, filtrados por user_id) + c.execute('''CREATE TABLE IF NOT EXISTS sites ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + slug TEXT UNIQUE NOT NULL, + theme TEXT DEFAULT 'default', + status TEXT DEFAULT 'draft', + content_json TEXT, + repo_url TEXT, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id) + )''') + + # Migración: Añadir repo_url si no existe + try: + c.execute('ALTER TABLE sites ADD COLUMN repo_url TEXT') + except: + pass # Ya existe + + # Solicitudes + c.execute('''CREATE TABLE IF NOT EXISTS requests ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + site_id INTEGER NOT NULL, + user_id INTEGER NOT NULL, + status TEXT DEFAULT 'pending', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (site_id) REFERENCES sites(id), + FOREIGN KEY (user_id) REFERENCES users(id) + )''') + + # Media (fotos, imágenes del cliente) + c.execute('''CREATE TABLE IF NOT EXISTS media ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER NOT NULL, + filename TEXT NOT NULL, + filepath TEXT NOT NULL, + file_type TEXT DEFAULT 'image', + uploaded_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id) + )''') + + # Content (contenido por sección, filtrado por user_id y site_id) + c.execute('''CREATE TABLE IF NOT EXISTS content ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER NOT NULL, + section TEXT NOT NULL, + data_json TEXT, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id) + )''') + + # Settings (configuraciones por usuario/sitio) + c.execute('''CREATE TABLE IF NOT EXISTS settings ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER, + key TEXT NOT NULL, + value TEXT, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id), + UNIQUE(user_id, site_id, key) + )''') + + # Menus (sistema de menús dinámicos) + c.execute('''CREATE TABLE IF NOT EXISTS menus ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER NOT NULL, + location TEXT NOT NULL, + title TEXT NOT NULL, + url TEXT NOT NULL, + order_index INTEGER DEFAULT 0, + parent_id INTEGER, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id), + FOREIGN KEY (parent_id) REFERENCES menus(id) + )''') + + # Widgets (áreas de widgets dinámicos) + c.execute('''CREATE TABLE IF NOT EXISTS widgets ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER NOT NULL, + area TEXT NOT NULL, + type TEXT NOT NULL, + title TEXT, + content TEXT, + order_index INTEGER DEFAULT 0, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id) + )''') + + conn.commit() + conn.close() + print("✅ Base de datos inicializada (multi-tenant - todos los clientes en main.db)") + except Exception as e: + print(f"❌ Error inicializando DB: {e}") + import traceback + traceback.print_exc() + +init_db() + +# ============================================================================ +# FUNCIONES HELPER - GKACHELE™ Template System +# ============================================================================ + +def get_site_menus(site_id, user_id): + """Obtener menús del sitio organizados por ubicación""" + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('''SELECT location, title, url, order_index, parent_id + FROM menus + WHERE site_id = ? AND user_id = ? + ORDER BY location, order_index''', (site_id, user_id)) + rows = c.fetchall() + conn.close() + + menus = {'header': [], 'footer': [], 'sidebar': []} + for row in rows: + location, title, url, order_index, parent_id = row + menu_item = { + 'title': title, + 'url': url, + 'order': order_index, + 'parent_id': parent_id + } + if location in menus: + menus[location].append(menu_item) + + return menus + +def get_site_widgets(site_id, user_id, area='sidebar'): + """Obtener widgets del sitio por área""" + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('''SELECT type, title, content, order_index + FROM widgets + WHERE site_id = ? AND user_id = ? AND area = ? + ORDER BY order_index''', (site_id, user_id, area)) + rows = c.fetchall() + conn.close() + + widgets = [] + for row in rows: + widget_type, title, content, order_index = row + widgets.append({ + 'type': widget_type, + 'title': title, + 'content': content, + 'order': order_index + }) + + return widgets + +def render_gkachele_template(theme, content, site_id=None, user_id=None): + """Renderizar template usando estructura GKACHELE (header.php, footer.php, sidebar.php)""" + # Obtener menús y widgets si hay site_id + menus = {'header': [], 'footer': [], 'sidebar': []} + widgets = [] + if site_id and user_id: + try: + menus = get_site_menus(site_id, user_id) + widgets = get_site_widgets(site_id, user_id) + except Exception as e: + print(f"⚠️ Error obteniendo menús/widgets: {e}") + + # Cargar template del tema PRIMERO (es el contenido principal) + theme_template = '' + theme_path = os.path.join(THEMES_DIR, theme, 'template.html') + if os.path.exists(theme_path): + with open(theme_path, 'r', encoding='utf-8') as f: + theme_template = f.read() + else: + # Si no existe template del tema, usar template básico + theme_template = ''' +
+

{{ hero_title or 'Bienvenido' }}

+

{{ hero_description or 'Descripción del sitio' }}

+
+ ''' + + # Cargar header, footer, sidebar + header = '' + footer = '' + sidebar = '' + + header_path = os.path.join(THEMES_DIR, '_gkachele', 'header.php') + footer_path = os.path.join(THEMES_DIR, '_gkachele', 'footer.php') + sidebar_path = os.path.join(THEMES_DIR, '_gkachele', 'sidebar.php') + + if os.path.exists(header_path): + with open(header_path, 'r', encoding='utf-8') as f: + header = f.read() + else: + # Header básico si no existe + header = ''' + + + + + {{ site_name or 'GKACHELE Site' }} + + + +
+ +
+
''' + + if os.path.exists(footer_path): + with open(footer_path, 'r', encoding='utf-8') as f: + footer = f.read() + else: + footer = ''' +
+
+

© 2025 GKACHELE™. Todos los derechos reservados.
+ Desarrollado desde noviembre 2025 por GKACHELE
+ Código propiedad de GKACHELE © 2025 - Prohibida su reproducción sin autorización

+
+ +''' + + if os.path.exists(sidebar_path): + with open(sidebar_path, 'r', encoding='utf-8') as f: + sidebar = f.read() + + # Preparar contexto completo - Asegurar que todas las variables esperadas existan + template_data = { + 'site_name': content.get('site_name', 'GKACHELE Site'), + 'hero_title': content.get('hero_title', 'Bienvenido'), + 'hero_description': content.get('hero_description', ''), + 'colors': content.get('colors', {'primary': '#c94d4d', 'secondary': '#d97757', 'accent': '#f4a261', 'text': '#2c2c2c'}), + 'typography': content.get('typography', {'font_family': 'Roboto'}), + 'horarios': content.get('horarios', {}), # Asegurar que horarios siempre existe + 'redes_sociales': content.get('redes_sociales', {}), # Asegurar que redes_sociales siempre existe + 'especialidad_culinaria': content.get('especialidad_culinaria', {}), # Asegurar que especialidad_culinaria siempre existe + 'direccion': content.get('direccion', ''), + 'telefono': content.get('telefono', ''), + 'email': content.get('email', ''), + 'capacidad': content.get('capacidad', ''), + 'mapa_url': content.get('mapa_url', ''), + 'menu_url': content.get('menu_url', ''), + 'menu_items': content.get('menu_items', {}), # Platos del menú + 'blocks': content.get('blocks', []), # Bloques añadibles + 'menus': menus, + 'widgets': widgets, + **content # Incluir todo el contenido adicional (esto sobrescribirá los valores por defecto si existen) + } + + # Renderizar usando Jinja2 + from jinja2 import Template + + # DETECCIÓN DE TEMPLATE COMPLETO (Full Page) + # Forzar restaurante-moderno a ser siempre full page + is_full_page = False + + if theme == 'restaurante-moderno': + is_full_page = True + elif '' in theme_template or '') +def get_theme(theme_id): + """Obtener información detallada de un template""" + config = get_theme_config(theme_id) + if not config: + return jsonify({'success': False, 'error': 'Template no encontrado'}), 404 + + return jsonify({ + 'success': True, + 'theme': { + 'id': theme_id, + **config + } + }) + +@app.route('/customizer/') +def customizer(site_id): + """Customizer: Sidebar + Preview""" + # Verificar que el sitio existe + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT user_id, slug, theme, content_json FROM sites WHERE id = ?', (site_id,)) + site = c.fetchone() + conn.close() + + if not site: + return "Sitio no encontrado", 404 + + # Si hay sesión, verificar que pertenece al usuario + if 'user_id' in session and site[0] != session['user_id']: + return "No autorizado", 403 + + content = json.loads(site[3]) if site[3] else {} + theme = site[2] + + # Cargar template del tema si existe + theme_template = None + theme_path = os.path.join(THEMES_DIR, theme, 'template.html') + if os.path.exists(theme_path): + with open(theme_path, 'r', encoding='utf-8') as f: + theme_template = f.read() + + # Cargar configuración del template + theme_config = get_theme_config(theme) + if theme_config: + # Si el contenido no tiene colores, usar los del template + if not content.get('colors'): + content['colors'] = theme_config.get('colors', {}) + # Si no tiene tipografía, usar la del template + if not content.get('typography'): + content['typography'] = theme_config.get('typography', {}) + + # Obtener todos los templates disponibles para el selector + available_themes = scan_available_themes() + + return render_template('customizer.html', + site_id=site_id, + slug=site[1], + theme=theme, + content=content, + theme_template=theme_template, + theme_config=theme_config, + available_themes=available_themes) + +@app.route('/api/customizer/save', methods=['POST']) +def save_customizer(): + """Guardar cambios del customizer""" + data = request.get_json() + site_id = data.get('site_id') + content = data.get('content') + new_theme = data.get('theme') # Permitir cambiar template + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Si se cambió el template, actualizarlo + if new_theme: + # Verificar que el template existe + theme_config = get_theme_config(new_theme) + if theme_config: + c.execute('UPDATE sites SET theme = ? WHERE id = ?', (new_theme, site_id)) + # Aplicar colores y tipografía por defecto del nuevo template si no existen + if not content.get('colors'): + content['colors'] = theme_config.get('colors', {}) + if not content.get('typography'): + content['typography'] = theme_config.get('typography', {}) + + c.execute('UPDATE sites SET content_json = ? WHERE id = ?', + (json.dumps(content), site_id)) + conn.commit() + conn.close() + + return jsonify({'success': True}) + +@app.route('/api/customizer/update-field', methods=['POST']) +def update_field(): + """Actualizar un campo específico desde preview (click to edit)""" + data = request.get_json() + site_id = data.get('site_id') + field = data.get('field') # Ej: 'hero_title', 'horarios.lunes_viernes' + value = data.get('value') + + if not site_id or not field: + return jsonify({'success': False, 'error': 'Faltan parámetros'}), 400 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Obtener contenido actual + c.execute('SELECT content_json FROM sites WHERE id = ?', (site_id,)) + result = c.fetchone() + if not result: + conn.close() + return jsonify({'success': False, 'error': 'Sitio no encontrado'}), 404 + + content = json.loads(result[0]) if result[0] else {} + + # Actualizar campo (soporta campos anidados como 'horarios.lunes_viernes' o 'menu_items.1.nombre') + if '.' in field: + # Campo anidado: 'horarios.lunes_viernes' o 'menu_items.1.nombre' + parts = field.split('.') + current = content + for i, part in enumerate(parts[:-1]): + if part not in current: + current[part] = {} + # Si es un número, mantener como string key (para menu_items.1, menu_items.2, etc.) + current = current[part] + current[parts[-1]] = value + else: + # Campo simple: 'hero_title' + content[field] = value + + # Guardar + c.execute('UPDATE sites SET content_json = ? WHERE id = ?', + (json.dumps(content), site_id)) + conn.commit() + conn.close() + + return jsonify({'success': True, 'content': content}) + +@app.route('/api/customizer/get-blocks/') +def get_blocks(site_id): + """Obtener bloques del sitio para el customizer""" + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT content_json FROM sites WHERE id = ?', (site_id,)) + result = c.fetchone() + conn.close() + + if not result: + return jsonify({'success': False, 'blocks': []}) + + content = json.loads(result[0]) if result[0] else {} + blocks = content.get('blocks', []) + return jsonify({'success': True, 'blocks': blocks}) + + +@app.route('/api/customizer/get-content/') +def get_content(site_id): + """Obtener contenido completo del sitio""" + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT content_json FROM sites WHERE id = ?', (site_id,)) + result = c.fetchone() + conn.close() + + if not result: + return jsonify({'success': False, 'error': 'Sitio no encontrado'}), 404 + + content = json.loads(result[0]) if result[0] else {} + return jsonify({'success': True, 'content': content}) + +@app.route('/api/customizer/add-block', methods=['POST']) +def add_block(): + """Añadir un nuevo bloque al sitio""" + data = request.get_json() + site_id = data.get('site_id') + block_type = data.get('block_type') + block_content = data.get('content', {}) + + if not site_id or not block_type: + return jsonify({'success': False, 'error': 'Faltan parámetros'}), 400 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT content_json FROM sites WHERE id = ?', (site_id,)) + result = c.fetchone() + + if not result: + conn.close() + return jsonify({'success': False, 'error': 'Sitio no encontrado'}), 404 + + content = json.loads(result[0]) if result[0] else {} + + # Inicializar blocks si no existe + if 'blocks' not in content: + content['blocks'] = [] + + # Crear nuevo bloque + new_block = { + 'id': f'block_{int(time.time() * 1000)}', + 'type': block_type, + 'content': block_content, + 'order': len(content['blocks']) + } + + content['blocks'].append(new_block) + + # Guardar + c.execute('UPDATE sites SET content_json = ? WHERE id = ?', (json.dumps(content), site_id)) + conn.commit() + conn.close() + + return jsonify({'success': True, 'block': new_block}) + +@app.route('/api/customizer/remove-block', methods=['POST']) +def remove_block(): + """Eliminar un bloque del sitio""" + data = request.get_json() + site_id = data.get('site_id') + block_id = data.get('block_id') + + if not site_id or not block_id: + return jsonify({'success': False, 'error': 'Faltan parámetros'}), 400 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT content_json FROM sites WHERE id = ?', (site_id,)) + result = c.fetchone() + + if not result: + conn.close() + return jsonify({'success': False, 'error': 'Sitio no encontrado'}), 404 + + content = json.loads(result[0]) if result[0] else {} + + if 'blocks' in content: + content['blocks'] = [b for b in content['blocks'] if b.get('id') != block_id] + # Reordenar + for i, block in enumerate(content['blocks']): + block['order'] = i + + # Guardar + c.execute('UPDATE sites SET content_json = ? WHERE id = ?', (json.dumps(content), site_id)) + conn.commit() + conn.close() + + return jsonify({'success': True}) + +@app.route('/api/customizer/reorder-blocks', methods=['POST']) +def reorder_blocks(): + """Reordenar bloques""" + data = request.get_json() + site_id = data.get('site_id') + block_ids = data.get('block_ids', []) + + if not site_id: + return jsonify({'success': False, 'error': 'Faltan parámetros'}), 400 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT content_json FROM sites WHERE id = ?', (site_id,)) + result = c.fetchone() + + if not result: + conn.close() + return jsonify({'success': False, 'error': 'Sitio no encontrado'}), 404 + + content = json.loads(result[0]) if result[0] else {} + + if 'blocks' in content: + # Reordenar según block_ids + blocks_dict = {b['id']: b for b in content['blocks']} + content['blocks'] = [blocks_dict[bid] for bid in block_ids if bid in blocks_dict] + for i, block in enumerate(content['blocks']): + block['order'] = i + + # Guardar + c.execute('UPDATE sites SET content_json = ? WHERE id = ?', (json.dumps(content), site_id)) + conn.commit() + conn.close() + + return jsonify({'success': True}) + +@app.route('/api/customizer/preview-frame/') +def preview_frame(site_id): + """Frame del preview - renderiza el template completo con estructura GKACHELE""" + # Obtener datos del sitio + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT theme, content_json, user_id FROM sites WHERE id = ?', (site_id,)) + site = c.fetchone() + conn.close() + + if not site: + return "Sitio no encontrado", 404 + + theme = site[0] + content = json.loads(site[1]) if site[1] else {} + user_id = site[2] + + # Usar función helper para renderizar con estructura GKACHELE + try: + rendered = render_gkachele_template(theme, content, site_id, user_id) + print(f"✅ Template renderizado correctamente para site_id={site_id}, theme={theme}") + return rendered + except Exception as e: + import traceback + print(f"❌ Error renderizando template: {e}") + traceback.print_exc() + # DEVOVER HTML VISIBLE EN EL IFRAME PARA DEBUG + return f""" +
+

❌ Error Renderizando Preview

+

Theme: {theme}

+

Error: {str(e)}

+
{traceback.format_exc()}
+
+ """, 500 + +# ============================================================================ +# SOLICITUDES +# ============================================================================ + + + +# ============================================================================ +# ADMIN +# ============================================================================ + +# ============================================================================ +# HELPER FUNCTIONS - Permisos basados en DB (sistema de roles GKACHELE™) +# ============================================================================ + +def user_has_role(user_id, required_role): + """Verificar si usuario tiene un rol específico (desde DB)""" + if not user_id: + return False + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT role FROM users WHERE id = ?', (user_id,)) + result = c.fetchone() + conn.close() + + if not result: + return False + + user_role = result[0] or 'subscriber' + + # Jerarquía de roles (sistema GKACHELE™) + role_hierarchy = { + 'administrator': 4, + 'editor': 3, + 'author': 2, + 'subscriber': 1 + } + + user_level = role_hierarchy.get(user_role, 1) + required_level = role_hierarchy.get(required_role, 1) + + return user_level >= required_level + +def user_can(user_id, capability): + """Verificar capacidad específica (desde DB)""" + if not user_id: + return False + + # Si es admin, puede todo + if user_has_role(user_id, 'administrator'): + return True + + # Otras capacidades se pueden añadir aquí + # Por ahora, solo admin puede hacer cosas administrativas + return False + +# --- SOLICITUDES Y APROBACIÓN --- + +@app.route('/dashboard/submit/', methods=['POST']) +@login_required +def submit_site(site_id): + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Verificar propiedad + c.execute('SELECT id, slug FROM sites WHERE id = ? AND user_id = ?', (site_id, session['user_id'])) + site = c.fetchone() + + if not site: + conn.close() + return jsonify({'success': False, 'error': 'Sitio no encontrado o no autorizado'}), 404 + + # Verificar si ya existe solicitud pendiente + c.execute('SELECT id FROM requests WHERE site_id = ? AND status = "pending"', (site_id,)) + if c.fetchone(): + conn.close() + return jsonify({'success': False, 'error': 'Ya existe una solicitud pendiente'}), 400 + + # Crear solicitud + try: + c.execute('INSERT INTO requests (user_id, site_id, slug, status, created_at) VALUES (?, ?, ?, "pending", CURRENT_TIMESTAMP)', + (session['user_id'], site_id, site[1])) + + # Actualizar estado del sitio + c.execute('UPDATE sites SET status = "pending" WHERE id = ?', (site_id,)) + + conn.commit() + return jsonify({'success': True}) + except Exception as e: + return jsonify({'success': False, 'error': str(e)}), 500 + finally: + conn.close() + +@app.route('/admin/approve/', methods=['POST']) +@login_required +def approve_request(request_id): + # Verificar admin (hardcoded ID 1 por ahora, o verificar email) + if session.get('user_id') != 1: + return jsonify({'success': False, 'error': 'No autorizado'}), 403 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + try: + # Obtener info de la solicitud + c.execute('''SELECT r.id, r.site_id, r.user_id, s.slug, s.content_json, s.theme, u.rubro, u.email + FROM requests r + JOIN sites s ON r.site_id = s.id + JOIN users u ON r.user_id = u.id + WHERE r.id = ?''', (request_id,)) + req = c.fetchone() + + if not req: + return jsonify({'success': False, 'error': 'Solicitud no encontrada'}), 404 + + req_id, site_id, user_id, slug, content, theme, rubro, email = req + + # --- AUTOMATIZACIÓN GITEA (MOVIDA AQUÍ) --- + repo_url = None + try: + import gitea_connector + + # Nombre del sitio + site_name = slug + if content: + import json + try: + content_data = json.loads(content) + site_name = content_data.get('site_name', slug) + except: + pass + + org_name = f"cliente-{user_id}" + repo_name = slug + + print(f"🚀 [ADMIN] Iniciando creación de repo para {org_name}/{repo_name}...") + + # 1. Crear Organización (si no existe) + gitea_connector.create_org(org_name) + + # 2. Crear Repositorio + repo_data = gitea_connector.create_repo(org_name, repo_name, description=f"Sitio {site_name} ({rubro})") + + if repo_data: + repo_url = repo_data.get('clone_url') + print(f"✅ [ADMIN] Repo creado: {repo_url}") + + # TODO: Aquí iría el commit inicial con el contenido JSON actual + # O el trigger de un webhook para desplegar + + except Exception as e: + print(f"❌ [ADMIN] Error Gitea: {e}") + import traceback + traceback.print_exc() + # ------------------------------------------ + + # Actualizar solicitud + c.execute('UPDATE requests SET status = "approved" WHERE id = ?', (request_id,)) + + # Actualizar sitio (Publicado + Repo) + c.execute('UPDATE sites SET status = "published", repo_url = ? WHERE id = ?', (repo_url, site_id)) + + # Incrementar contador de usuario (opcional, si existe la columna) + try: + c.execute('UPDATE users SET sitios_publicados = IFNULL(sitios_publicados, 0) + 1 WHERE id = ?', (user_id,)) + except: + pass + + conn.commit() + return jsonify({'success': True, 'repo_url': repo_url}) + + except Exception as e: + print(f"Error approving: {e}") + return jsonify({'success': False, 'error': str(e)}), 500 + finally: + conn.close() + +@app.route('/admin') +def admin(): + """Panel admin - Solo usuarios con rol 'administrator' (desde DB)""" + if 'user_id' not in session: + return "No autorizado", 403 + + # Verificar rol desde la base de datos (no hardcodeado) + if not user_has_role(session['user_id'], 'administrator'): + return "Solo administradores pueden acceder", 403 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Solicitudes pendientes + c.execute('''SELECT r.id, r.site_id, r.status, s.slug, u.email, r.created_at + FROM requests r + JOIN sites s ON r.site_id = s.id + JOIN users u ON r.user_id = u.id + WHERE r.status = 'pending' + ORDER BY r.created_at DESC''') + requests = [{'id': r[0], 'site_id': r[1], 'status': r[2], 'slug': r[3], + 'email': r[4], 'created_at': r[5]} for r in c.fetchall()] + + # Todos los sitios + c.execute('SELECT id, slug, theme, status, user_id FROM sites') + sites = [{'id': r[0], 'slug': r[1], 'theme': r[2], 'status': r[3], 'user_id': r[4]} + for r in c.fetchall()] + + # TODOS LOS USUARIOS con estadísticas + c.execute('''SELECT + u.id, + u.email, + u.plan, + u.rubro, + u.created_at, + COUNT(DISTINCT s.id) as num_sitios, + COUNT(DISTINCT CASE WHEN s.status = 'published' THEN s.id END) as sitios_publicados, + COUNT(DISTINCT r.id) as num_solicitudes + FROM users u + LEFT JOIN sites s ON u.id = s.user_id + LEFT JOIN requests r ON u.id = r.user_id + GROUP BY u.id + ORDER BY u.id DESC''') + + users = [] + for row in c.fetchall(): + users.append({ + 'id': row[0], + 'email': row[1], + 'plan': row[2], + 'rubro': row[3], + 'created_at': row[4], + 'num_sitios': row[5] or 0, + 'sitios_publicados': row[6] or 0, + 'num_solicitudes': row[7] or 0 + }) + + conn.close() + + return render_template('admin.html', requests=requests, sites=sites, users=users) + +@app.route('/admin/approve/', methods=['POST']) +def approve_site(request_id): + """Admin aprueba sitio - Verificar rol desde DB""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 403 + + if not user_has_role(session['user_id'], 'administrator'): + return jsonify({'error': 'Solo administradores'}), 403 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Obtener site_id + c.execute('SELECT site_id FROM requests WHERE id = ?', (request_id,)) + result = c.fetchone() + if not result: + conn.close() + return jsonify({'error': 'Solicitud no encontrada'}), 404 + + site_id = result[0] + + # Aprobar: cambiar status a approved y publicar + c.execute('UPDATE sites SET status = ? WHERE id = ?', ('published', site_id)) + c.execute('UPDATE requests SET status = ? WHERE id = ?', ('approved', request_id)) + + conn.commit() + conn.close() + + return jsonify({'success': True}) + +@app.route('/admin/users/delete/', methods=['POST']) +def delete_user(user_id): + """Eliminar usuario y todos sus datos relacionados - Verificar rol desde DB""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 403 + + # Verificar rol desde DB (no hardcodeado) + if not user_has_role(session['user_id'], 'administrator'): + return jsonify({'error': 'Solo administradores'}), 403 + + # No permitir eliminar al admin principal (user_id = 1) + if user_id == 1: + return jsonify({'error': 'No se puede eliminar al administrador principal'}), 400 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + try: + # Eliminar en orden (respetando foreign keys) + # 1. Widgets + c.execute('DELETE FROM widgets WHERE user_id = ?', (user_id,)) + # 2. Menús + c.execute('DELETE FROM menus WHERE user_id = ?', (user_id,)) + # 3. Media + c.execute('DELETE FROM media WHERE user_id = ?', (user_id,)) + # 4. Content + c.execute('DELETE FROM content WHERE user_id = ?', (user_id,)) + # 5. Settings + c.execute('DELETE FROM settings WHERE user_id = ?', (user_id,)) + # 6. Requests + c.execute('DELETE FROM requests WHERE user_id = ?', (user_id,)) + # 7. Sites + c.execute('DELETE FROM sites WHERE user_id = ?', (user_id,)) + # 8. Usuario + c.execute('DELETE FROM users WHERE id = ?', (user_id,)) + + conn.commit() + conn.close() + + return jsonify({'success': True, 'message': f'Usuario {user_id} eliminado exitosamente'}) + except Exception as e: + conn.rollback() + conn.close() + return jsonify({'error': f'Error al eliminar usuario: {str(e)}'}), 500 + +# ============================================================================ +# SITIO PÚBLICO +# ============================================================================ + +@app.route('/site/') +def public_site(slug): + """Sitio público del cliente - usando estructura GKACHELE""" + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT id, theme, content_json, status, user_id FROM sites WHERE slug = ?', (slug,)) + site = c.fetchone() + conn.close() + + if not site or site[3] != 'published': + return "Sitio no encontrado o no publicado", 404 + + site_id = site[0] + theme = site[1] + content = json.loads(site[2]) if site[2] else {} + user_id = site[4] + + # Renderizar con estructura GKACHELE + try: + return render_gkachele_template(theme, content, site_id, user_id) + except Exception as e: + import traceback + traceback.print_exc() + return render_template('public_site.html', content=content, theme=theme) + +# ============================================================================ +# MAIN +# ============================================================================ + +# ============================================================================ +# API ADMIN CLIENTE +# ============================================================================ + +@app.route('/api/admin/upload', methods=['POST']) +def upload_media(): + """Subir imágenes""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + user_id = session['user_id'] + files = request.files.getlist('files') + + if not files: + return jsonify({'error': 'No hay archivos'}), 400 + + uploaded = [] + for file in files: + if file.filename: + filename = f"{user_id}_{secrets.token_hex(8)}_{file.filename}" + filepath = os.path.join(UPLOADS_DIR, filename) + file.save(filepath) + + # Guardar en DB + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT id FROM sites WHERE user_id = ? LIMIT 1', (user_id,)) + site = c.fetchone() + site_id = site[0] if site else None + + c.execute('INSERT INTO media (user_id, site_id, filename, filepath, file_type) VALUES (?, ?, ?, ?, ?)', + (user_id, site_id, filename, filepath, 'image')) + conn.commit() + conn.close() + + uploaded.append(filename) + + return jsonify({'success': True, 'files': uploaded}) + +@app.route('/api/admin/media') +def get_media(): + """Obtener media del usuario""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + user_id = session['user_id'] + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT id, filename, filepath, uploaded_at FROM media WHERE user_id = ? ORDER BY uploaded_at DESC', (user_id,)) + media = [{'id': r[0], 'filename': r[1], 'filepath': r[2], 'uploaded_at': r[3]} for r in c.fetchall()] + conn.close() + + return jsonify({'success': True, 'media': media}) + +@app.route('/api/admin/media/', methods=['DELETE']) +def delete_media(media_id): + """Eliminar media""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + user_id = session['user_id'] + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Verificar que pertenece al usuario + c.execute('SELECT filepath FROM media WHERE id = ? AND user_id = ?', (media_id, user_id)) + media = c.fetchone() + + if media: + # Eliminar archivo + if os.path.exists(media[0]): + os.remove(media[0]) + + # Eliminar de DB + c.execute('DELETE FROM media WHERE id = ?', (media_id,)) + conn.commit() + + conn.close() + return jsonify({'success': True}) + +@app.route('/api/admin/settings', methods=['POST']) +def update_settings(): + """Actualizar configuración del usuario""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + data = request.get_json() + user_id = session['user_id'] + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + if data.get('password'): + c.execute('UPDATE users SET password = ? WHERE id = ?', + (generate_password_hash(data['password']), user_id)) + conn.commit() + + conn.close() + return jsonify({'success': True}) + +@app.route('/uploads/') +def serve_upload(filename): + """Servir archivos subidos""" + return send_from_directory(UPLOADS_DIR, filename) + +# ============================================================================ +# API MENÚS Y WIDGETS +# ============================================================================ + +@app.route('/api/menus/', methods=['GET']) +def get_menus(site_id): + """Obtener menús del sitio""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + user_id = session['user_id'] + menus = get_site_menus(site_id, user_id) + return jsonify({'success': True, 'menus': menus}) + +@app.route('/api/menus/', methods=['POST']) +def save_menu(site_id): + """Guardar/actualizar menú""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + data = request.get_json() + user_id = session['user_id'] + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Eliminar menús existentes del sitio + c.execute('DELETE FROM menus WHERE site_id = ? AND user_id = ?', (site_id, user_id)) + + # Insertar nuevos menús + for menu_item in data.get('menus', []): + c.execute('''INSERT INTO menus (user_id, site_id, location, title, url, order_index, parent_id) + VALUES (?, ?, ?, ?, ?, ?, ?)''', + (user_id, site_id, menu_item['location'], menu_item['title'], + menu_item['url'], menu_item.get('order', 0), menu_item.get('parent_id'))) + + conn.commit() + conn.close() + + return jsonify({'success': True}) + +@app.route('/api/widgets/', methods=['GET']) +def get_widgets(site_id): + """Obtener widgets del sitio""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + user_id = session['user_id'] + area = request.args.get('area', 'sidebar') + widgets = get_site_widgets(site_id, user_id, area) + return jsonify({'success': True, 'widgets': widgets}) + +@app.route('/api/widgets/', methods=['POST']) +def save_widget(site_id): + """Guardar/actualizar widget""" + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + + data = request.get_json() + user_id = session['user_id'] + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + c.execute('''INSERT INTO widgets (user_id, site_id, area, type, title, content, order_index) + VALUES (?, ?, ?, ?, ?, ?, ?)''', + (user_id, site_id, data.get('area', 'sidebar'), data.get('type', 'text'), + data.get('title'), data.get('content'), data.get('order', 0))) + + conn.commit() + conn.close() + + return jsonify({'success': True}) + +# ============================================================================ +# MAIN +# ============================================================================ + +# Inicializar DB al importar (con manejo de errores) +try: + init_db() +except Exception as e: + print(f"⚠️ Error en init_db: {e}") + # Continuar aunque falle, se creará cuando se use + +if __name__ == '__main__': + port = int(os.environ.get('PORT', 5001)) + print("🚀 Demo SaaS iniciado") + print(f"📍 http://localhost:{port}") + app.run(debug=True, host='0.0.0.0', port=port) diff --git a/demo/app_simple.py b/demo/app_simple.py new file mode 100644 index 0000000..7a8456a --- /dev/null +++ b/demo/app_simple.py @@ -0,0 +1,594 @@ +""" +Demo SaaS - Versión SIMPLE que FUNCIONA +Sistema profesional automatizado - GKACHELE™ +""" + +from flask import Flask, render_template, render_template_string, request, jsonify, session, redirect +import sqlite3 +import os +import json +from werkzeug.security import generate_password_hash, check_password_hash + +app = Flask(__name__, template_folder='templates', static_folder='static') +app.secret_key = 'demo-2025' + +# DB simple +DB_PATH = 'demo.db' + +def init_db(): + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('''CREATE TABLE IF NOT EXISTS users ( + id INTEGER PRIMARY KEY, email TEXT UNIQUE, password TEXT, plan TEXT, rubro TEXT + )''') + c.execute('''CREATE TABLE IF NOT EXISTS sites ( + id INTEGER PRIMARY KEY, user_id INTEGER, slug TEXT UNIQUE, + content TEXT, status TEXT DEFAULT 'draft' + )''') + conn.commit() + conn.close() + +init_db() + +# Landing profesional (inspirada en tu landing real) +LANDING_HTML = ''' + + + + + + PageBuilder SaaS | Crea tu sitio web automatizado + + + + + + + + + +
+
+

🎨 PageBuilder SaaS

+

Crea tu sitio web automatizado

+

Sistema profesional y automatizado. Cada cliente con su admin, templates y base de datos.

+ +
+
+ + +
+
+

Nuestros Planes

+
+
+

Base

+
$50
+
    +
  • Sitio web de una página
  • +
  • Diseño profesional
  • +
  • Responsive móvil
  • +
  • Panel de administración
  • +
  • Base de datos propia
  • +
+ +
+
+

Pro

+
$100
+
    +
  • Sitio multipágina
  • +
  • Animaciones y efectos
  • +
  • Galería de imágenes
  • +
  • Formularios avanzados
  • +
  • Customizer completo
  • +
+ +
+
+

Premium

+
$200
+
    +
  • Sitio completo escalable
  • +
  • SEO optimizado
  • +
  • Panel admin avanzado
  • +
  • Integraciones
  • +
  • Soporte prioritario
  • +
+ +
+
+
+
+ + +
+
+

Contacto

+
+
+ +

Email

+

contacto@pagebuilder.com

+
+
+ +

Teléfono

+

+54 9 11 2345 6789

+
+
+ +

WhatsApp

+

Chatea con nosotros

+
+
+
+
+ + + + + + + +
+

© 2025 PageBuilder SaaS. Todos los derechos reservados.

+

Sistema profesional y automatizado - GKACHELE™

+
+ + + + +''' + +@app.route('/') +def home(): + # Usar tu landing real EXACTA + return render_template('landing_real.html') + +@app.route('/register', methods=['GET', 'POST']) +def register(): + if request.method == 'POST': + data = request.get_json() + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + try: + c.execute('INSERT INTO users (email, password, plan, rubro) VALUES (?, ?, ?, ?)', + (data['email'], generate_password_hash(data['password']), + data.get('plan', 'base'), data.get('rubro', 'gimnasio'))) + user_id = c.lastrowid + conn.commit() + session['user_id'] = user_id + return jsonify({'success': True, 'user_id': user_id}) + except: + return jsonify({'error': 'Email existe'}), 400 + finally: + conn.close() + + return render_template_string(''' + + Registro + + +

Registro

+
+ + + +
+ + + ''') + +@app.route('/login', methods=['GET', 'POST']) +def login(): + if request.method == 'POST': + data = request.get_json() + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('SELECT id, password FROM users WHERE email = ?', (data['email'],)) + user = c.fetchone() + conn.close() + if user and check_password_hash(user[1], data['password']): + session['user_id'] = user[0] + return jsonify({'success': True}) + return jsonify({'error': 'Credenciales inválidas'}), 401 + + return render_template_string(''' + + Login + + +

Login

+
+ + + +
+ + + ''') + +@app.route('/dashboard') +def dashboard(): + if 'user_id' not in session: + return redirect('/login') + + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('SELECT id, slug, status FROM sites WHERE user_id = ?', (session['user_id'],)) + sites = c.fetchall() + conn.close() + + sites_html = ''.join([f'

{s[1]}

Status: {s[2]}

Editar
' for s in sites]) + + return render_template_string(f''' + + Dashboard + + +
+

📊 Dashboard

+ ➕ Crear Sitio +
+ {sites_html if sites else '

No tienes sitios. Crear uno

'} + + ''') + +@app.route('/create', methods=['GET', 'POST']) +def create(): + if 'user_id' not in session: + return redirect('/login') + + if request.method == 'POST': + data = request.get_json() + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + content = json.dumps({ + 'site_name': data.get('site_name', 'Mi Sitio'), + 'hero_title': data.get('hero_title', 'Bienvenido'), + 'colors': {'primary': '#ff4d4d', 'secondary': '#1a1a1a'} + }) + c.execute('INSERT INTO sites (user_id, slug, content) VALUES (?, ?, ?)', + (session['user_id'], data['slug'], content)) + site_id = c.lastrowid + conn.commit() + conn.close() + return jsonify({'success': True, 'site_id': site_id}) + + return render_template_string(''' + + Crear Sitio + + +

➕ Crear Sitio

+
+ + + + +
+ + + ''') + +@app.route('/customizer/') +def customizer(site_id): + if 'user_id' not in session: + return redirect('/login') + + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('SELECT content FROM sites WHERE id = ? AND user_id = ?', (site_id, session['user_id'])) + site = c.fetchone() + conn.close() + + if not site: + return "No encontrado", 404 + + content = json.loads(site[0]) + + return render_template_string(f''' + + Customizer + + + + +
+
+

+ {content.get('hero_title', 'Título')} +

+
+
+ + + ''') + +@app.route('/api/save/', methods=['POST']) +def save(site_id): + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + data = request.get_json() + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('UPDATE sites SET content = ? WHERE id = ? AND user_id = ?', + (json.dumps(data['content']), site_id, session['user_id'])) + conn.commit() + conn.close() + return jsonify({'success': True}) + +@app.route('/api/submit/', methods=['POST']) +def submit(site_id): + if 'user_id' not in session: + return jsonify({'error': 'No autorizado'}), 401 + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('UPDATE sites SET status = ? WHERE id = ? AND user_id = ?', + ('pending', site_id, session['user_id'])) + conn.commit() + conn.close() + return jsonify({'success': True}) + +@app.route('/admin') +def admin(): + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('SELECT id, slug, status FROM sites WHERE status = ?', ('pending',)) + requests = c.fetchall() + c.execute('SELECT id, slug, status FROM sites') + sites = c.fetchall() + conn.close() + + return render_template_string(f''' + + Admin + + +

🔧 Admin

+

Solicitudes Pendientes

+ + + {''.join([f'' for r in requests])} +
IDSlugAcción
{r[0]}{r[1]}
+

Todos los Sitios

+ + + {''.join([f'' for s in sites])} +
IDSlugStatus
{s[0]}{s[1]}{s[2]}
+ + + ''') + +@app.route('/api/approve/', methods=['POST']) +def approve(site_id): + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('UPDATE sites SET status = ? WHERE id = ?', ('published', site_id)) + conn.commit() + conn.close() + return jsonify({'success': True}) + +@app.route('/site/') +def site(slug): + conn = sqlite3.connect(DB_PATH) + c = conn.cursor() + c.execute('SELECT content FROM sites WHERE slug = ? AND status = ?', (slug, 'published')) + site = c.fetchone() + conn.close() + + if not site: + return "Sitio no encontrado", 404 + + content = json.loads(site[0]) + return render_template_string(f''' + + {content.get('site_name', 'Sitio')} + + +

{content.get('hero_title', 'Título')}

+

{content.get('site_name', '')}

+ + ''') + +if __name__ == '__main__': + print("🚀 Demo SaaS SIMPLE iniciado") + print("📍 http://localhost:5001") + app.run(debug=True, host='0.0.0.0', port=5001) diff --git a/demo/config.py b/demo/config.py new file mode 100644 index 0000000..f9a2af2 --- /dev/null +++ b/demo/config.py @@ -0,0 +1,20 @@ +import os + +# Configuración Base - GKACHELE™ SaaS +BASE_DIR = os.path.dirname(os.path.abspath(__file__)) +DATABASE_DIR = os.path.join(BASE_DIR, 'database') +SITES_DIR = os.path.join(BASE_DIR, 'sites') +THEMES_DIR = os.path.join(BASE_DIR, 'themes') +STATIC_DIR = os.path.join(BASE_DIR, 'static') +UPLOADS_DIR = os.path.join(BASE_DIR, 'uploads') + +# DB Principal +MAIN_DB = os.path.join(DATABASE_DIR, 'main.db') + +# Flask Config +SECRET_KEY = 'demo-secret-key-2025' +PORT = int(os.environ.get('PORT', 5001)) + +# Asegurar directorios +for d in [DATABASE_DIR, SITES_DIR, THEMES_DIR, UPLOADS_DIR]: + os.makedirs(d, exist_ok=True) diff --git a/demo/database.py b/demo/database.py new file mode 100644 index 0000000..6347f90 --- /dev/null +++ b/demo/database.py @@ -0,0 +1,155 @@ +import sqlite3 +from config import MAIN_DB + +def get_db(): + conn = sqlite3.connect(MAIN_DB) + # Habilitar soporte para diccionarios si se prefiere, + # pero el código actual usa índices, así que seguiremos así para no romper nada. + return conn + +def init_db(): + """Inicializar base de datos principal - GKACHELE™ SaaS""" + try: + conn = get_db() + c = conn.cursor() + + # Usuarios + c.execute('''CREATE TABLE IF NOT EXISTS users ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + email TEXT UNIQUE NOT NULL, + password TEXT NOT NULL, + role TEXT DEFAULT 'subscriber', + plan TEXT DEFAULT 'base', + rubro TEXT DEFAULT 'gimnasio', + status TEXT DEFAULT 'active', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP + )''') + + # Migraciones rápidas de columnas + for col, default in [('role', 'subscriber'), ('status', 'active')]: + try: + c.execute(f'ALTER TABLE users ADD COLUMN {col} TEXT DEFAULT "{default}"') + except: + pass + + # Administrador Inicial + c.execute('SELECT COUNT(*) FROM users WHERE id = 1') + if c.fetchone()[0] == 0: + from werkzeug.security import generate_password_hash + admin_password = generate_password_hash('admin123') + c.execute('''INSERT INTO users (id, email, password, role, plan, rubro, status) + VALUES (1, 'admin@gkachele.com', ?, 'administrator', 'premium', 'admin', 'active')''', + (admin_password,)) + print("✅ Usuario administrador creado: admin@gkachele.com / admin123") + + # Sitios + c.execute('''CREATE TABLE IF NOT EXISTS sites ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + slug TEXT UNIQUE NOT NULL, + theme TEXT DEFAULT 'default', + status TEXT DEFAULT 'draft', + content_json TEXT, + repo_url TEXT, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id) + )''') + + try: + c.execute('ALTER TABLE sites ADD COLUMN repo_url TEXT') + except: + pass + + # Solicitudes + c.execute('''CREATE TABLE IF NOT EXISTS requests ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + site_id INTEGER NOT NULL, + user_id INTEGER NOT NULL, + slug TEXT, + status TEXT DEFAULT 'pending', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (site_id) REFERENCES sites(id), + FOREIGN KEY (user_id) REFERENCES users(id) + )''') + + try: + c.execute('ALTER TABLE requests ADD COLUMN slug TEXT') + except: + pass + + # Media + c.execute('''CREATE TABLE IF NOT EXISTS media ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER NOT NULL, + filename TEXT NOT NULL, + filepath TEXT NOT NULL, + file_type TEXT DEFAULT 'image', + uploaded_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id) + )''') + + # Content + c.execute('''CREATE TABLE IF NOT EXISTS content ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER NOT NULL, + section TEXT NOT NULL, + data_json TEXT, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id) + )''') + + # Settings + c.execute('''CREATE TABLE IF NOT EXISTS settings ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER, + key TEXT NOT NULL, + value TEXT, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id), + UNIQUE(user_id, site_id, key) + )''') + + # Menus + c.execute('''CREATE TABLE IF NOT EXISTS menus ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER NOT NULL, + location TEXT NOT NULL, + title TEXT NOT NULL, + url TEXT NOT NULL, + order_index INTEGER DEFAULT 0, + parent_id INTEGER, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id), + FOREIGN KEY (parent_id) REFERENCES menus(id) + )''') + + # Widgets + c.execute('''CREATE TABLE IF NOT EXISTS widgets ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + site_id INTEGER NOT NULL, + area TEXT NOT NULL, + type TEXT NOT NULL, + title TEXT, + content TEXT, + order_index INTEGER DEFAULT 0, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id) + )''') + + conn.commit() + conn.close() + print("✅ Base de datos GKACHELE inicializada correctamente.") + except Exception as e: + print(f"❌ Error inicializando DB: {e}") diff --git a/demo/database/main.db b/demo/database/main.db new file mode 100644 index 0000000..e09825c Binary files /dev/null and b/demo/database/main.db differ diff --git a/demo/database/main_raspberry_20260114_103649.db b/demo/database/main_raspberry_20260114_103649.db new file mode 100644 index 0000000..054f1fc Binary files /dev/null and b/demo/database/main_raspberry_20260114_103649.db differ diff --git a/demo/demo.db b/demo/demo.db new file mode 100644 index 0000000..ac78667 Binary files /dev/null and b/demo/demo.db differ diff --git a/demo/limpiar_db.py b/demo/limpiar_db.py new file mode 100644 index 0000000..f20a802 --- /dev/null +++ b/demo/limpiar_db.py @@ -0,0 +1,66 @@ +""" +GKACHELE™ - Script para limpiar base de datos +© 2025 GKACHELE™. Todos los derechos reservados. +Uso: python limpiar_db.py +""" + +import sqlite3 +import os + +BASE_DIR = os.path.dirname(__file__) +DATABASE_DIR = os.path.join(BASE_DIR, 'database') +MAIN_DB = os.path.join(DATABASE_DIR, 'main.db') + +def limpiar_db(): + """Limpiar todas las tablas de la base de datos""" + if not os.path.exists(MAIN_DB): + print(f"❌ No se encontró la base de datos en: {MAIN_DB}") + return + + try: + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Mostrar datos actuales + c.execute('SELECT COUNT(*) FROM users') + user_count = c.fetchone()[0] + c.execute('SELECT COUNT(*) FROM sites') + site_count = c.fetchone()[0] + + print("=" * 80) + print("📊 ESTADO ACTUAL DE LA BASE DE DATOS") + print("=" * 80) + print(f"Usuarios: {user_count}") + print(f"Sitios: {site_count}") + print("=" * 80) + + respuesta = input("\n⚠️ ¿Estás seguro de que quieres limpiar TODA la base de datos? (escribe 'SI' para confirmar): ") + + if respuesta.upper() != 'SI': + print("❌ Operación cancelada") + conn.close() + return + + # Limpiar en orden (respetando foreign keys) + print("\n🗑️ Limpiando base de datos...") + c.execute('DELETE FROM widgets') + c.execute('DELETE FROM menus') + c.execute('DELETE FROM media') + c.execute('DELETE FROM content') + c.execute('DELETE FROM settings') + c.execute('DELETE FROM requests') + c.execute('DELETE FROM sites') + c.execute('DELETE FROM users') + + conn.commit() + conn.close() + + print("✅ Base de datos limpiada exitosamente") + + except Exception as e: + print(f"❌ Error: {e}") + import traceback + traceback.print_exc() + +if __name__ == '__main__': + limpiar_db() diff --git a/demo/requirements.txt b/demo/requirements.txt new file mode 100644 index 0000000..2f2fa62 --- /dev/null +++ b/demo/requirements.txt @@ -0,0 +1,2 @@ +Flask==2.3.3 +Werkzeug==2.3.7 diff --git a/demo/routes/__init__.py b/demo/routes/__init__.py new file mode 100644 index 0000000..1768114 --- /dev/null +++ b/demo/routes/__init__.py @@ -0,0 +1 @@ +# GKACHELE™ Routes Package diff --git a/demo/routes/admin.py b/demo/routes/admin.py new file mode 100644 index 0000000..ce0e4ff --- /dev/null +++ b/demo/routes/admin.py @@ -0,0 +1,72 @@ +from flask import Blueprint, render_template, session, jsonify, request +import sqlite3 +from config import MAIN_DB +from utils.auth_decorators import login_required, user_has_role + +admin_bp = Blueprint('admin', __name__) + +@admin_bp.route('/admin') +@login_required +def admin_view(): + """Panel admin""" + if not user_has_role(session['user_id'], 'administrator'): + return "Solo administradores", 403 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Solicitudes pendientes + c.execute('''SELECT r.id, r.site_id, r.status, s.slug, u.email, r.created_at + FROM requests r + JOIN sites s ON r.site_id = s.id + JOIN users u ON r.user_id = u.id + WHERE r.status = 'pending' + ORDER BY r.created_at DESC''') + requests = [{'id': r[0], 'site_id': r[1], 'status': r[2], 'slug': r[3], + 'email': r[4], 'created_at': r[5]} for r in c.fetchall()] + + # Usuarios + c.execute('SELECT id, email, role, plan, rubro, created_at FROM users') + users = [{'id': r[0], 'email': r[1], 'role': r[2], 'plan': r[3], 'rubro': r[4], 'created_at': r[5]} for r in c.fetchall()] + + conn.close() + return render_template('admin.html', requests=requests, users=users) + +@admin_bp.route('/admin/approve/', methods=['POST']) +@login_required +def approve_request(request_id): + if not user_has_role(session['user_id'], 'administrator'): + return jsonify({'success': False, 'error': 'No autorizado'}), 403 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + try: + c.execute('UPDATE requests SET status = "approved" WHERE id = ?', (request_id,)) + c.execute('SELECT site_id FROM requests WHERE id = ?', (request_id,)) + site_id = c.fetchone()[0] + c.execute('UPDATE sites SET status = "published" WHERE id = ?', (site_id,)) + conn.commit() + return jsonify({'success': True}) + except Exception as e: + return jsonify({'success': False, 'error': str(e)}), 500 + finally: + conn.close() + +@admin_bp.route('/admin/users/delete/', methods=['POST']) +@login_required +def delete_user(user_id): + if not user_has_role(session['user_id'], 'administrator') or user_id == 1: + return jsonify({'success': False, 'error': 'No autorizado o protegido'}), 403 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + try: + # Simplificado: el código original eliminaba de muchas tablas, + # aquí deberíamos ser igual de exhaustivos si el código original lo era. + c.execute('DELETE FROM users WHERE id = ?', (user_id,)) + conn.commit() + return jsonify({'success': True}) + except Exception as e: + return jsonify({'success': False, 'error': str(e)}), 500 + finally: + conn.close() diff --git a/demo/routes/auth.py b/demo/routes/auth.py new file mode 100644 index 0000000..9f52876 --- /dev/null +++ b/demo/routes/auth.py @@ -0,0 +1,122 @@ +from flask import Blueprint, render_template, request, jsonify, session, redirect, url_for +from werkzeug.security import generate_password_hash, check_password_hash +import sqlite3 +import json +import secrets +import random +import os +from config import MAIN_DB, THEMES_DIR +from utils.theme_engine import get_themes_by_rubro, get_theme_config + +auth_bp = Blueprint('auth', __name__) + +@auth_bp.route('/register', methods=['GET', 'POST']) +def register(): + """Registro - Sistema Simple y Profesional""" + if request.method == 'POST': + try: + data = request.get_json() if request.is_json else (request.form.to_dict() if request.form else {}) + if not data: + return jsonify({'success': False, 'error': 'Sin datos'}), 400 + + email = str(data.get('email', '')).strip() + password = str(data.get('password', '')).strip() + plan = str(data.get('plan', 'base')) + rubro = str(data.get('rubro', 'gimnasio')) + + if not email or '@' not in email: + return jsonify({'success': False, 'error': 'Email inválido'}), 400 + if not password: + return jsonify({'success': False, 'error': 'Contraseña requerida'}), 400 + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + try: + c.execute('INSERT INTO users (email, password, plan, rubro) VALUES (?, ?, ?, ?)', + (email, generate_password_hash(password), plan, rubro)) + user_id = c.lastrowid + except sqlite3.IntegrityError: + conn.close() + return jsonify({'success': False, 'error': 'Email ya existe'}), 400 + + theme = 'default' + themes_by_rubro = get_themes_by_rubro(rubro) + + if themes_by_rubro: + theme = random.choice(list(themes_by_rubro.keys())) + + theme_config = get_theme_config(theme) + default_colors = {'primary': '#c94d4d', 'secondary': '#d97757', 'accent': '#f4a261', 'text': '#2c2c2c'} + default_typography = {'font_family': 'Roboto'} + + if theme_config: + default_colors = theme_config.get('colors', default_colors) + default_typography = theme_config.get('typography', default_typography) + + content = json.dumps({ + 'site_name': email.split('@')[0].title() + ' Site', + 'hero_title': 'Bienvenido', + 'colors': default_colors, + 'typography': default_typography + }) + + slug = f'site-{secrets.token_hex(4)}' + + c.execute('INSERT INTO sites (user_id, slug, theme, content_json) VALUES (?, ?, ?, ?)', + (user_id, slug, theme, content)) + site_id = c.lastrowid + + # Menús por defecto + for loc, title, url, order in [('header', 'Inicio', '#inicio', 0), ('footer', 'Contacto', '#contacto', 1)]: + c.execute('INSERT INTO menus (user_id, site_id, location, title, url, order_index) VALUES (?, ?, ?, ?, ?, ?)', + (user_id, site_id, loc, title, url, order)) + + conn.commit() + conn.close() + + return jsonify({'success': True, 'message': 'Registro exitoso. Inicia sesión.', 'redirect': url_for('auth.login')}) + + except Exception as e: + return jsonify({'success': False, 'error': str(e)}), 500 + + return render_template('register.html', plan=request.args.get('plan', 'base'), rubro=request.args.get('rubro', 'gimnasio')) + +@auth_bp.route('/login', methods=['GET', 'POST']) +def login(): + """Login""" + if request.method == 'POST': + try: + data = request.get_json() + email = data.get('email') + password = data.get('password') + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT id, password FROM users WHERE email = ?', (email,)) + user = c.fetchone() + conn.close() + + if user and check_password_hash(user[1], password): + session['user_id'] = user[0] + + # Buscar sitio para redirigir + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT id FROM sites WHERE user_id = ? LIMIT 1', (user[0],)) + site = c.fetchone() + conn.close() + + redirect_url = url_for('customizer.customizer_view', site_id=site[0]) if site else url_for('dashboard.dashboard_view') + return jsonify({'success': True, 'redirect': redirect_url}) + + return jsonify({'success': False, 'error': 'Credenciales inválidas'}), 401 + except Exception as e: + return jsonify({'success': False, 'error': str(e)}), 500 + + return render_template('login.html') + +@auth_bp.route('/logout') +def logout(): + session.pop('user_id', None) + return redirect(url_for('public.landing')) diff --git a/demo/routes/customizer.py b/demo/routes/customizer.py new file mode 100644 index 0000000..80416ea --- /dev/null +++ b/demo/routes/customizer.py @@ -0,0 +1,113 @@ +from flask import Blueprint, render_template, request, jsonify, session, current_app +import sqlite3 +import json +import time +import os +from config import MAIN_DB, THEMES_DIR +from utils.theme_engine import scan_available_themes, get_theme_config, render_gkachele_template +from utils.auth_decorators import login_required + +customizer_bp = Blueprint('customizer', __name__) + +@customizer_bp.route('/api/themes') +def list_themes(): + """Listar todos los templates disponibles""" + from utils.theme_engine import get_themes_by_rubro + rubro = request.args.get('rubro', None) + themes = get_themes_by_rubro(rubro) if rubro else scan_available_themes() + return jsonify({'success': True, 'themes': themes, 'total': len(themes)}) + +@customizer_bp.route('/customizer/') +def customizer_view(site_id): + """Customizer: Sidebar + Preview""" + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT user_id, slug, theme, content_json FROM sites WHERE id = ?', (site_id,)) + site = c.fetchone() + conn.close() + + if not site: + return "Sitio no encontrado", 404 + + if 'user_id' in session and site[0] != session['user_id']: + return "No autorizado", 403 + + content = json.loads(site[3]) if site[3] else {} + theme = site[2] + + theme_template = None + theme_path = os.path.join(THEMES_DIR, theme, 'template.html') + if os.path.exists(theme_path): + with open(theme_path, 'r', encoding='utf-8') as f: + theme_template = f.read() + + theme_config = get_theme_config(theme) + available_themes = scan_available_themes() + + return render_template('customizer.html', + site_id=site_id, + slug=site[1], + theme=theme, + content=content, + theme_template=theme_template, + theme_config=theme_config, + available_themes=available_themes) + +@customizer_bp.route('/api/customizer/save', methods=['POST']) +def save_customizer(): + data = request.get_json() + site_id = data.get('site_id') + content = data.get('content') + new_theme = data.get('theme') + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + if new_theme: + c.execute('UPDATE sites SET theme = ? WHERE id = ?', (new_theme, site_id)) + + c.execute('UPDATE sites SET content_json = ? WHERE id = ?', (json.dumps(content), site_id)) + conn.commit() + conn.close() + return jsonify({'success': True}) + +@customizer_bp.route('/api/customizer/add-block', methods=['POST']) +def add_block(): + data = request.get_json() + site_id = data.get('site_id') + block_type = data.get('block_type') + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT content_json FROM sites WHERE id = ?', (site_id,)) + result = c.fetchone() + + content = json.loads(result[0]) if result[0] else {} + if 'blocks' not in content: content['blocks'] = [] + + new_block = { + 'id': f'block_{int(time.time() * 1000)}', + 'type': block_type, + 'content': data.get('content', {}), + 'order': len(content['blocks']) + } + content['blocks'].append(new_block) + + c.execute('UPDATE sites SET content_json = ? WHERE id = ?', (json.dumps(content), site_id)) + conn.commit() + conn.close() + return jsonify({'success': True, 'block': new_block}) + +@customizer_bp.route('/api/customizer/preview-frame/') +def preview_frame(site_id): + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT theme, content_json, user_id FROM sites WHERE id = ?', (site_id,)) + site = c.fetchone() + conn.close() + + if not site: return "Sitio no encontrado", 404 + + try: + return render_gkachele_template(site[0], json.loads(site[1]), site_id, site[2]) + except Exception as e: + return f"Error renderizando preview: {e}", 500 diff --git a/demo/routes/dashboard.py b/demo/routes/dashboard.py new file mode 100644 index 0000000..322c81f --- /dev/null +++ b/demo/routes/dashboard.py @@ -0,0 +1,80 @@ +from flask import Blueprint, render_template, session, redirect, url_for, request, jsonify +import sqlite3 +import secrets +import json +from config import MAIN_DB +from utils.auth_decorators import login_required + +dashboard_bp = Blueprint('dashboard', __name__) + +@dashboard_bp.route('/dashboard') +@login_required +def dashboard_view(): + """Panel del cliente""" + user_id = session['user_id'] + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + c.execute('SELECT email, plan FROM users WHERE id = ?', (user_id,)) + user_info = c.fetchone() + + c.execute('SELECT id, slug, theme, status, created_at FROM sites WHERE user_id = ?', (user_id,)) + sites = [{'id': r[0], 'slug': r[1], 'theme': r[2], 'status': r[3], 'created_at': r[4]} + for r in c.fetchall()] + + c.execute('SELECT COUNT(*) FROM media WHERE user_id = ?', (user_id,)) + media_count = c.fetchone()[0] + conn.close() + + return render_template('dashboard.html', + sites=sites, + user_email=user_info[0] if user_info else '', + user_plan=user_info[1] if user_info else 'base', + media_count=media_count) + +@dashboard_bp.route('/dashboard/admin') +@login_required +def client_admin(): + """Admin del cliente - gestionar media, config, etc.""" + user_id = session['user_id'] + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + c.execute('SELECT email, plan FROM users WHERE id = ?', (user_id,)) + user_info = c.fetchone() + + c.execute('SELECT id, slug, theme, status FROM sites WHERE user_id = ?', (user_id,)) + sites = [{'id': r[0], 'slug': r[1], 'theme': r[2], 'status': r[3]} for r in c.fetchall()] + conn.close() + + return render_template('client_admin.html', + user_email=user_info[0] if user_info else '', + user_plan=user_info[1] if user_info else 'base', + sites=sites) + +@dashboard_bp.route('/dashboard/create', methods=['GET', 'POST']) +@login_required +def create_site(): + """Crear nuevo sitio""" + if request.method == 'POST': + data = request.get_json() + user_id = session['user_id'] + slug = data.get('slug', f'site-{secrets.token_hex(4)}') + theme = data.get('theme', 'default') + + content = json.dumps({ + 'site_name': data.get('site_name', 'Mi Sitio'), + 'hero_title': data.get('hero_title', 'Bienvenido'), + 'colors': {'primary': '#ff4d4d', 'secondary': '#1a1a1a', 'text': '#333333'} + }) + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('INSERT INTO sites (user_id, slug, theme, content_json) VALUES (?, ?, ?, ?)', + (user_id, slug, theme, content)) + conn.commit() + conn.close() + + return jsonify({'success': True, 'redirect': url_for('dashboard.dashboard_view')}) + + return render_template('create_site.html') diff --git a/demo/routes/public.py b/demo/routes/public.py new file mode 100644 index 0000000..c97040e --- /dev/null +++ b/demo/routes/public.py @@ -0,0 +1,35 @@ +from flask import Blueprint, render_template, send_from_directory, sqlite3 +import json +import os +from config import MAIN_DB, UPLOADS_DIR +from utils.theme_engine import render_gkachele_template + +public_bp = Blueprint('public', __name__) + +@public_bp.route('/') +def landing(): + """Landing page""" + return render_template('landing_real.html') + +@public_bp.route('/site/') +def public_site(slug): + """Sitio público del cliente""" + import sqlite3 + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT id, theme, content_json, status, user_id FROM sites WHERE slug = ?', (slug,)) + site = c.fetchone() + conn.close() + + if not site or site[3] != 'published': + return "Sitio no encontrado o no publicado", 404 + + try: + return render_gkachele_template(site[1], json.loads(site[2]), site[0], site[4]) + except Exception as e: + return f"Error renderizando sitio: {e}", 500 + +@public_bp.route('/uploads/') +def serve_upload(filename): + """Servir archivos subidos""" + return send_from_directory(UPLOADS_DIR, filename) diff --git a/demo/run.sh b/demo/run.sh new file mode 100644 index 0000000..05d939e --- /dev/null +++ b/demo/run.sh @@ -0,0 +1,5 @@ +#!/bin/bash +cd "$(dirname "$0")" +echo "🚀 Iniciando Demo SaaS..." +echo "" +python3 app.py diff --git a/demo/start.bat b/demo/start.bat new file mode 100644 index 0000000..7988184 --- /dev/null +++ b/demo/start.bat @@ -0,0 +1,8 @@ +@echo off +echo Instalando dependencias... +pip install Flask Werkzeug --quiet +echo. +echo Iniciando servidor en puerto 5001... +echo. +python app.py +pause diff --git a/demo/start.sh b/demo/start.sh new file mode 100644 index 0000000..ac0b547 --- /dev/null +++ b/demo/start.sh @@ -0,0 +1,27 @@ +#!/bin/bash +# Script para iniciar el demo desde WSL + +echo "🚀 Iniciando Demo SaaS..." +echo "" + +# Verificar Python +if ! command -v python3 &> /dev/null; then + echo "❌ Python3 no encontrado" + exit 1 +fi + +# Instalar dependencias si no están +if ! python3 -c "import flask" 2>/dev/null; then + echo "📦 Instalando dependencias..." + pip3 install Flask Werkzeug --quiet +fi + +echo "" +echo "✅ Todo listo" +echo "📍 Servidor en: http://localhost:5001" +echo "" +echo "Presiona Ctrl+C para detener" +echo "" + +# Ejecutar +python3 app.py diff --git a/demo/static/style.css b/demo/static/style.css new file mode 100644 index 0000000..addf451 --- /dev/null +++ b/demo/static/style.css @@ -0,0 +1,2409 @@ +/* GKACHELE™ - Diseño Premium Inspirado en Blow-dance */ + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --primary-orange: #FF6B35; + --dark-black: #1a1a1a; + --pure-white: #ffffff; + --light-gray: #f5f5f5; + --bg-light: #fafafa; + --card-bg: #ffffff; + --text-primary: #1a1a1a; + --text-secondary: #666; + --text-light: #888; + --border-light: rgba(0, 0, 0, 0.08); + --shadow-sm: 0 2px 10px rgba(0, 0, 0, 0.05); + --shadow-md: 0 5px 25px rgba(0, 0, 0, 0.1); + --shadow-lg: 0 10px 40px rgba(0, 0, 0, 0.15); + --shadow-orange: 0 5px 25px rgba(255, 107, 53, 0.2); + + /* Social Media Colors */ + --whatsapp: #25D366; + --whatsapp-hover: #20BA5A; + --facebook: #1877F2; + --facebook-hover: #0d65d9; + --instagram-start: #833AB4; + --instagram-mid: #E1306C; + --instagram-end: #FD1D1D; + --youtube: #FF0000; + --youtube-hover: #CC0000; + --tiktok: #000000; + --tiktok-hover: #00F2EA; +} + +body { + font-family: 'Inter', sans-serif; + background: #fafafa; + color: var(--text-primary); + line-height: 1.7; + overflow-x: hidden; + font-weight: 300; + position: relative; +} + +body::after { + content: '© GKACHELE 2025'; + position: fixed; + bottom: 20px; + left: 20px; + font-size: 0.7rem; + color: rgba(255, 255, 255, 0.03); + font-weight: bold; + z-index: -1; + pointer-events: none; + user-select: none; + transform: rotate(-45deg); + font-family: 'Arial', sans-serif; +} + +body::before { + content: ''; + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1920&h=1080&fit=crop&q=80'); + background-size: cover; + background-position: center; + background-attachment: fixed; + opacity: 0.4; + z-index: -1; + pointer-events: none; +} + +.gkachele-watermark { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip-path: inset(50%); + border: 0; + white-space: nowrap; +} + +.container-large { + max-width: 1400px; + margin: 0 auto; + padding: 0 60px; +} + +/* Navigation Sticky - Premium */ +.nav-sticky { + position: fixed; + top: 0; + left: 0; + right: 0; + background: rgba(255, 255, 255, 0.98); + backdrop-filter: blur(20px); + border-bottom: 1px solid var(--border-light); + z-index: 1000; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + padding: 25px 0; +} + +.nav-container { + max-width: 1600px; + margin: 0 auto; + padding: 0 80px; + display: flex; + justify-content: space-between; + align-items: center; +} + +.nav-logo a { + font-size: 1.4rem; + font-weight: 700; + color: var(--text-primary); + text-decoration: none; + letter-spacing: 1px; + transition: all 0.3s ease; +} + +.nav-logo a:hover { + opacity: 0.7; + transform: translateX(2px); +} + +.nav-menu { + display: flex; + gap: 60px; + align-items: center; + position: absolute; + left: 50%; + transform: translateX(-50%); +} + +.nav-menu a { + font-size: 0.95rem; + font-weight: 400; + color: var(--text-secondary); + text-decoration: none; + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + letter-spacing: 0.5px; + position: relative; +} + +.nav-menu a::after { + content: ''; + position: absolute; + bottom: -5px; + left: 0; + width: 0; + height: 1px; + background: var(--text-primary); + transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1); +} + +.nav-menu a:hover { + color: var(--primary-orange); +} + +.nav-menu a:hover::after { + width: 100%; + background: var(--primary-orange); +} + +.nav-social { + display: flex; + gap: 25px; + align-items: center; +} + +.nav-social a { + width: 40px; + height: 40px; + display: flex; + align-items: center; + justify-content: center; + color: var(--text-secondary); + text-decoration: none; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + border-radius: 50%; + background: transparent; + position: relative; + font-size: 1rem; + border-radius: 50%; +} + +.nav-social a:hover { + transform: translateY(-3px) scale(1.15); + box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15); +} + +/* Facebook - Celeste Premium */ +.nav-social a[title="Facebook"] { + color: var(--facebook); +} + +.nav-social a[title="Facebook"]:hover { + background: var(--facebook); + color: white; + box-shadow: 0 8px 25px rgba(24, 119, 242, 0.4); +} + +/* Instagram - Gradiente Icónico */ +.nav-social a[title="Instagram"] { + color: var(--instagram-mid); +} + +.nav-social a[title="Instagram"]:hover { + background: linear-gradient(135deg, var(--instagram-start) 0%, var(--instagram-mid) 50%, var(--instagram-end) 100%); + color: white; + box-shadow: 0 8px 25px rgba(225, 48, 108, 0.5); +} + +/* YouTube - Rojo Premium */ +.nav-social a[title="YouTube"] { + color: var(--youtube); +} + +.nav-social a[title="YouTube"]:hover { + background: var(--youtube); + color: white; + box-shadow: 0 8px 25px rgba(255, 0, 0, 0.4); +} + +/* TikTok - Negro con Efecto Cyan */ +.nav-social a[title="TikTok"] { + color: var(--tiktok); +} + +.nav-social a[title="TikTok"]:hover { + background: var(--tiktok); + color: var(--tiktok-hover); + box-shadow: 0 8px 25px rgba(0, 242, 234, 0.5); +} + +/* Hero Section - Premium con Imagen Difuminada */ +.hero-section { + margin-top: 100px; + padding: 180px 0 140px; + text-align: center; + background: linear-gradient(to bottom, #ffffff 0%, var(--bg-light) 100%); + position: relative; + overflow: hidden; +} + +.hero-bg-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1920&h=1080&fit=crop&q=80'); + background-size: cover; + background-position: center; + opacity: 0.2; + z-index: 0; +} + +.hero-content { + max-width: 900px; + margin: 0 auto; + position: relative; + z-index: 1; +} + +.hero-title { + font-size: 8.5rem; + font-weight: 300; + letter-spacing: -4px; + margin-bottom: 30px; + color: var(--text-primary); + line-height: 1; +} + +.hero-subtitle { + font-size: 1.8rem; + font-weight: 400; + color: var(--text-secondary); + letter-spacing: -0.5px; + margin-bottom: 40px; + background: linear-gradient(135deg, var(--text-secondary) 0%, var(--primary-orange) 100%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +.hero-description { + font-size: 1.25rem; + line-height: 1.9; + color: var(--text-light); + max-width: 700px; + margin: 0 auto; + font-weight: 300; +} + +/* Plans Section - Premium con Imagen Difuminada y Acordeón */ +.plans-section { + padding: 150px 0; + background: var(--bg-light); + position: relative; + overflow: hidden; +} + +.plans-bg-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1920&h=1080&fit=crop&q=80'); + background-size: cover; + background-position: center; + opacity: 0.18; + z-index: 0; +} + +.plans-section .container-large { + position: relative; + z-index: 1; +} + +.section-title { + font-size: 4rem; + font-weight: 300; + letter-spacing: -2.5px; + margin-bottom: 80px; + color: var(--text-primary); + text-align: center; +} + +/* Plans Accordion - Desplegable Premium */ +.plans-accordion { + max-width: 1000px; + margin: 0 auto; +} + +.plan-accordion-item { + background: var(--card-bg); + border-radius: 20px; + margin-bottom: 25px; + overflow: hidden; + transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: var(--shadow-sm); + border: 1px solid var(--border-light); + /* Asegurar que ningún plan empiece activo */ + opacity: 1; +} + +/* Transición suave al abrir/cerrar */ +.plan-accordion-item.active { + box-shadow: var(--shadow-lg), var(--shadow-orange); + border-color: rgba(255, 107, 53, 0.3); + transform: translateY(-5px); + background: linear-gradient(to bottom, #ffffff 0%, rgba(255, 107, 53, 0.02) 100%); + animation: planOpen 0.5s cubic-bezier(0.4, 0, 0.2, 1); +} + +@keyframes planOpen { + from { + transform: translateY(0); + box-shadow: var(--shadow-sm); + } + to { + transform: translateY(-5px); + box-shadow: var(--shadow-lg), var(--shadow-orange); + } +} + +/* Todos los planes iguales - sin estilos especiales para premium */ + +.plan-accordion-header { + width: 100%; + padding: 45px 50px; + background: linear-gradient(135deg, #fafafa 0%, #ffffff 100%); + border: none; + display: flex; + justify-content: space-between; + align-items: center; + cursor: pointer; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + text-align: left; + position: relative; +} + +.plan-accordion-item.active .plan-accordion-header { + background: linear-gradient(135deg, #ffffff 0%, rgba(255, 107, 53, 0.03) 100%); + padding-bottom: 40px; +} + +/* Indicador visual sutil cuando está activo */ +.plan-accordion-item.active .plan-accordion-header::before { + content: ''; + position: absolute; + left: 0; + top: 0; + bottom: 0; + width: 4px; + background: var(--primary-orange); + border-radius: 0 4px 4px 0; +} + +.plan-accordion-header:hover { + background: linear-gradient(135deg, #f5f5f5 0%, #ffffff 100%); +} + +.plan-accordion-item.active .plan-accordion-header:hover { + background: linear-gradient(135deg, rgba(255, 107, 53, 0.03) 0%, #ffffff 100%); +} + +.plan-header-content { + flex: 1; +} + +.plan-accordion-header h3 { + font-size: 2.5rem; + font-weight: 600; + letter-spacing: -1px; + margin-bottom: 12px; + color: var(--text-primary); +} + +.plan-accordion-header .plan-tagline { + font-size: 1.2rem; + color: var(--text-secondary); + font-weight: 300; +} + +.plan-chevron { + font-size: 1.2rem; + color: var(--text-secondary); + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + margin-left: 30px; + transform: rotate(0deg); +} + +.plan-accordion-item.active .plan-chevron { + color: var(--primary-orange); + transform: rotate(180deg); +} + +.plan-accordion-body { + max-height: 0; + overflow: hidden; + transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); +} + +.plan-card-body { + padding: 50px 40px; +} + +.plan-card-body h4 { + font-size: 1.5rem; + font-weight: 600; + margin: 35px 0 20px; + color: var(--text-primary); + letter-spacing: -0.3px; +} + +.plan-card-body h4:first-child { + margin-top: 0; +} + +.plan-card-body ul { + list-style: none; + padding: 0; + margin-bottom: 35px; +} + +.plan-card-body li { + padding: 12px 0; + font-size: 1.05rem; + color: var(--text-secondary); + line-height: 1.8; + font-weight: 300; + transition: all 0.3s ease; +} + +.plan-card-body li:hover { + color: var(--text-primary); + padding-left: 5px; +} + +.plan-ideal { + font-size: 1.05rem; + color: var(--text-secondary); + line-height: 1.8; + margin-bottom: 40px; + font-weight: 300; +} + +.plan-ideal strong { + color: var(--text-primary); + font-weight: 600; +} + +.qr-mini-card { + text-align: center; + margin: 50px 0; + padding: 40px 20px; + background: var(--bg-light); + border-radius: 15px; + border: 1px solid var(--border-light); +} + +.qr-mini-card img { + width: 150px; + height: 150px; + border-radius: 12px; + box-shadow: var(--shadow-md); + margin-bottom: 20px; + transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1); +} + +.qr-mini-card:hover img { + transform: scale(1.05); +} + +.qr-mini-card p { + font-size: 1rem; + color: var(--text-light); + font-weight: 300; +} + +.plan-btn { + display: block; + width: 100%; + padding: 22px 40px; + background: var(--primary-orange); + color: #ffffff; + text-decoration: none; + border: 2px solid rgba(255, 255, 255, 0.1); + border-radius: 50px; + font-weight: 600; + font-size: 1.1rem; + text-align: center; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: 0 5px 20px rgba(255, 107, 53, 0.3); + letter-spacing: 0.5px; + margin-top: 30px; +} + +.plan-btn:hover { + background: #FF5722; + border-color: rgba(255, 255, 255, 0.2); + transform: translateY(-3px); + box-shadow: 0 8px 30px rgba(255, 107, 53, 0.4); +} + +.premium-btn { + background: linear-gradient(135deg, var(--primary-orange) 0%, #FF5722 100%); + border: 2px solid rgba(255, 255, 255, 0.15); + box-shadow: 0 5px 25px rgba(255, 107, 53, 0.35); +} + +.premium-btn:hover { + background: linear-gradient(135deg, #FF5722 0%, #FF4500 100%); + border-color: rgba(255, 255, 255, 0.25); + box-shadow: 0 8px 35px rgba(255, 107, 53, 0.5); +} + +/* Demos Section */ +.demos-section { + position: relative; + padding: 5rem 0; + background: linear-gradient(135deg, #0a0a0a 0%, #1a1a1a 100%); + overflow: hidden; +} + +.demos-bg-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: radial-gradient(circle at 50% 50%, rgba(255, 107, 53, 0.05) 0%, transparent 70%); + pointer-events: none; +} + +.section-subtitle { + text-align: center; + color: #888; + font-size: 1.1rem; + margin-bottom: 3rem; +} + +/* Logo Showcase */ +.logo-showcase { + text-align: center; + margin-bottom: 4rem; + padding: 3rem; + background: rgba(255, 107, 53, 0.05); + border-radius: 20px; + border: 2px solid rgba(255, 107, 53, 0.2); +} + +.main-logo { + max-width: 300px; + height: auto; + margin-bottom: 1.5rem; + filter: drop-shadow(0 10px 30px rgba(255, 107, 53, 0.3)); + transition: transform 0.3s ease; +} + +.main-logo:hover { + transform: scale(1.05); +} + +.logo-text { + font-size: 1.3rem; + color: #ff6b35; + font-weight: 600; +} + +.demos-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); + gap: 2rem; + margin-bottom: 4rem; +} + +.demo-card { + background: rgba(30, 30, 30, 0.8); + border-radius: 15px; + overflow: hidden; + transition: all 0.3s ease; + border: 1px solid rgba(255, 107, 53, 0.1); +} + +.demo-card:hover { + transform: translateY(-10px); + border-color: #ff6b35; + box-shadow: 0 20px 40px rgba(255, 107, 53, 0.3); +} + +.demo-image { + position: relative; + width: 100%; + height: 250px; + overflow: hidden; +} + +.demo-image img { + width: 100%; + height: 100%; + object-fit: cover; + transition: transform 0.5s ease; +} + +.demo-card:hover .demo-image img { + transform: scale(1.1); +} + +.demo-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.7); + display: flex; + align-items: center; + justify-content: center; + opacity: 0; + transition: opacity 0.3s ease; +} + +.demo-card:hover .demo-overlay { + opacity: 1; +} + +.demo-btn { + background: #ff6b35; + color: white; + padding: 0.8rem 1.5rem; + border-radius: 8px; + text-decoration: none; + font-weight: 600; + display: flex; + align-items: center; + gap: 0.5rem; + transition: all 0.3s ease; +} + +.demo-btn:hover { + background: #ff8555; + transform: scale(1.05); +} + +.demo-info { + padding: 1.5rem; +} + +.demo-info h3 { + font-size: 1.5rem; + margin-bottom: 0.5rem; + color: #ff6b35; +} + +.demo-category { + font-size: 0.95rem; + color: #888; + margin-bottom: 0.5rem; +} + +.demo-plan { + font-size: 0.9rem; + margin-bottom: 1rem; +} + +.demo-plan .badge-premium, +.demo-plan .badge-pro, +.demo-plan .badge-base { + padding: 0.3rem 0.8rem; + border-radius: 20px; + font-size: 0.75rem; + font-weight: 600; + text-transform: uppercase; +} + +.demo-plan .badge-premium { + background: linear-gradient(135deg, #ff6b35, #ff8555); + color: white; +} + +.demo-plan .badge-pro { + background: linear-gradient(135deg, #3b82f6, #60a5fa); + color: white; +} + +.demo-plan .badge-base { + background: rgba(255, 255, 255, 0.1); + color: #888; +} + +.demo-description { + color: #ccc; + font-size: 0.95rem; + line-height: 1.6; +} + +/* Video Demo */ +.video-demo-section { + margin-top: 4rem; + text-align: center; +} + +.video-demo-section h3 { + font-size: 2rem; + margin-bottom: 2rem; + color: #ff6b35; +} + +.video-container { + max-width: 900px; + margin: 0 auto; + border-radius: 15px; + overflow: hidden; + background: rgba(30, 30, 30, 0.8); + border: 2px solid rgba(255, 107, 53, 0.2); +} + +.video-placeholder { + padding: 6rem 2rem; + display: flex; + flex-direction: column; + align-items: center; + gap: 1rem; +} + +.video-placeholder i { + font-size: 4rem; + color: #ff6b35; + opacity: 0.5; +} + +.video-placeholder p { + font-size: 1.2rem; + color: #888; +} + +.video-placeholder small { + font-size: 0.9rem; + color: #666; +} + +/* QR Section - Premium Card con Imagen Difuminada */ +.qr-section { + padding: 150px 0; + background: #ffffff; + position: relative; + overflow: hidden; +} + +.qr-bg-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1920&h=1080&fit=crop&q=80'); + background-size: cover; + background-position: center; + opacity: 0.15; + z-index: 0; +} + +.qr-section .container-large { + position: relative; + z-index: 1; +} + +.qr-card { + background: var(--card-bg); + padding: 80px 60px; + border-radius: 20px; + text-align: center; + box-shadow: var(--shadow-md); + border: 1px solid var(--border-light); + max-width: 600px; + margin: 0 auto; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); +} + +.qr-card:hover { + transform: translateY(-10px); + box-shadow: var(--shadow-lg), var(--shadow-orange); + border-color: rgba(255, 107, 53, 0.15); +} + +.qr-card h3 { + font-size: 2rem; + font-weight: 600; + margin-bottom: 40px; + color: var(--text-primary); + letter-spacing: -0.5px; +} + +.qr-image { + width: 250px; + height: 250px; + border-radius: 15px; + box-shadow: var(--shadow-md); + margin-bottom: 30px; + transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1); +} + +.qr-card:hover .qr-image { + transform: scale(1.05); +} + +.qr-card p { + font-size: 1.1rem; + color: var(--text-light); + font-weight: 300; +} + +/* Contact Section - Premium Cards con Imagen Difuminada */ +.contact-section { + padding: 150px 0; + background: var(--bg-light); + position: relative; + overflow: hidden; +} + +.contact-bg-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1920&h=1080&fit=crop&q=80'); + background-size: cover; + background-position: center; + opacity: 0.18; + z-index: 0; +} + +.contact-section .container-large { + position: relative; + z-index: 1; +} + +.contact-grid { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 60px; + margin-top: 80px; + max-width: 1200px; + margin-left: auto; + margin-right: auto; + justify-items: center; +} + +.contact-cards { + display: flex; + flex-direction: column; + gap: 25px; + width: 100%; + max-width: 400px; + align-items: stretch; +} + +.contact-card { + background: var(--card-bg); + padding: 30px 35px; + border-radius: 15px; + display: flex; + align-items: center; + gap: 25px; + color: var(--text-primary); + text-decoration: none; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: var(--shadow-sm); + border: 1px solid var(--border-light); +} + +.contact-card:hover { + transform: translateX(10px); + box-shadow: var(--shadow-md), var(--shadow-orange); + border-color: rgba(255, 107, 53, 0.2); +} + +.contact-card:hover i { + color: var(--primary-orange); +} + +.contact-card i { + font-size: 1.8rem; + color: var(--text-secondary); + min-width: 35px; + transition: all 0.3s ease; +} + +.contact-card:hover i { + color: var(--text-primary); + transform: scale(1.1); +} + +.contact-card .fa-whatsapp { + color: var(--whatsapp); +} + +.contact-card span { + font-size: 1.1rem; + color: var(--text-secondary); + font-weight: 400; + transition: color 0.3s ease; +} + +.contact-card:hover span { + color: var(--text-primary); +} + +.whatsapp-card:hover { + background: linear-gradient(135deg, rgba(37, 211, 102, 0.05) 0%, rgba(37, 211, 102, 0.1) 100%); +} + +.social-card { + background: var(--card-bg); + padding: 50px 40px; + border-radius: 15px; + box-shadow: var(--shadow-sm); + border: 1px solid var(--border-light); + text-align: center; + width: 100%; + max-width: 400px; +} + +.social-card h3 { + font-size: 1.8rem; + font-weight: 600; + margin-bottom: 40px; + color: var(--text-primary); + letter-spacing: -0.3px; +} + +.social-links-grid { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 20px; +} + +.social-link { + width: 100%; + height: 70px; + border-radius: 12px; + display: flex; + align-items: center; + justify-content: center; + background: var(--bg-light); + color: var(--text-secondary); + text-decoration: none; + font-size: 1.5rem; + position: relative; + overflow: hidden; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + border: 1px solid var(--border-light); +} + +.social-link:hover { + transform: translateY(-5px) scale(1.05); + color: #ffffff; +} + +/* Facebook - Celeste Premium en Contacto con Gradiente Translúcido */ +.social-link[title="Facebook"] .fa-facebook-f { + color: var(--facebook); + font-size: 2rem; + transition: all 0.4s ease; +} + +.social-link[title="Facebook"]:hover { + background: linear-gradient(135deg, rgba(24, 119, 242, 0.15) 0%, rgba(24, 119, 242, 0.25) 100%); + border-color: var(--facebook); + box-shadow: 0 10px 30px rgba(24, 119, 242, 0.4); +} + +.social-link[title="Facebook"]:hover .fa-facebook-f { + color: var(--facebook); + transform: scale(1.2); +} + +/* Instagram - Gradiente Premium en Contacto Translúcido */ +.social-link[title="Instagram"] .fa-instagram { + color: var(--instagram-mid); + font-size: 2rem; + transition: all 0.4s ease; +} + +.social-link[title="Instagram"]:hover { + background: linear-gradient(135deg, + rgba(131, 58, 180, 0.15) 0%, + rgba(225, 48, 108, 0.2) 50%, + rgba(253, 29, 29, 0.25) 100%); + border-color: var(--instagram-mid); + box-shadow: 0 10px 30px rgba(225, 48, 108, 0.5); +} + +.social-link[title="Instagram"]:hover .fa-instagram { + transform: scale(1.2); + background: linear-gradient(135deg, var(--instagram-start) 0%, var(--instagram-mid) 50%, var(--instagram-end) 100%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +/* YouTube - Rojo Premium en Contacto Translúcido */ +.social-link[title="YouTube"] .fa-youtube { + color: var(--youtube); + font-size: 2rem; + transition: all 0.4s ease; +} + +.social-link[title="YouTube"]:hover { + background: linear-gradient(135deg, rgba(255, 0, 0, 0.15) 0%, rgba(255, 0, 0, 0.25) 100%); + border-color: var(--youtube); + box-shadow: 0 10px 30px rgba(255, 0, 0, 0.4); +} + +.social-link[title="YouTube"]:hover .fa-youtube { + color: var(--youtube); + transform: scale(1.2); +} + +/* TikTok - Negro con Cyan en Contacto Translúcido */ +.social-link[title="TikTok"] .fa-tiktok { + color: var(--tiktok); + font-size: 2rem; + transition: all 0.4s ease; +} + +.social-link[title="TikTok"]:hover { + background: linear-gradient(135deg, rgba(0, 0, 0, 0.15) 0%, rgba(0, 242, 234, 0.2) 100%); + border-color: var(--tiktok-hover); + box-shadow: 0 10px 30px rgba(0, 242, 234, 0.5); +} + +.social-link[title="TikTok"]:hover .fa-tiktok { + color: var(--tiktok-hover); + transform: scale(1.2); +} + +/* WhatsApp Float Button */ +.whatsapp-float { + position: fixed; + bottom: 40px; + right: 40px; + width: 70px; + height: 70px; + background: var(--whatsapp); + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + color: #ffffff; + text-decoration: none; + box-shadow: 0 6px 30px rgba(37, 211, 102, 0.4); + z-index: 999; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + font-size: 2rem; + animation: pulse-float 2.5s infinite; +} + +.whatsapp-float:hover { + background: var(--whatsapp-hover); + transform: scale(1.15); + box-shadow: 0 8px 40px rgba(37, 211, 102, 0.5); +} + +@keyframes pulse-float { + 0%, 100% { + box-shadow: 0 6px 30px rgba(37, 211, 102, 0.4); + } + 50% { + box-shadow: 0 6px 40px rgba(37, 211, 102, 0.6); + } +} + +/* Footer - Premium con Imagen Difuminada */ +.footer-main { + padding: 150px 0 100px; + background: #1a1a1a; + color: #ffffff; + text-align: center; + position: relative; + overflow: hidden; +} + +.footer-bg-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-image: url('https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1920&h=1080&fit=crop&q=80'); + background-size: cover; + background-position: center; + opacity: 0.25; + z-index: 0; +} + +.footer-main .container-large { + position: relative; + z-index: 1; +} + +.footer-main p { + font-size: 0.95rem; + color: rgba(255, 255, 255, 0.6); + font-weight: 300; + letter-spacing: 0.5px; +} + +/* Scroll to Top Button */ +.scroll-to-top { + position: fixed; + bottom: 120px; + right: 40px; + width: 60px; + height: 60px; + background: var(--text-primary); + color: #ffffff; + border: none; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; + font-size: 1.3rem; + z-index: 998; + opacity: 0; + visibility: hidden; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2); +} + +.scroll-to-top.show { + opacity: 1; + visibility: visible; +} + +.scroll-to-top:hover { + background: #000000; + transform: translateY(-5px) scale(1.1); + box-shadow: 0 6px 30px rgba(0, 0, 0, 0.3); +} + +.scroll-to-top i { + transition: transform 0.3s ease; +} + +.scroll-to-top:hover i { + transform: translateY(-2px); +} + +/* Old Styles for Plan Pages */ +header { + background: #222; + color: white; + padding: 40px 20px; + text-align: center; + box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2); +} + +header h1 { + font-size: 3rem; + margin-bottom: 10px; +} + +.tagline { + font-size: 1.2rem; + opacity: 0.9; +} + +.plan-details { + background: #fff; + padding: 40px; + border-radius: 12px; + margin-bottom: 40px; +} + +.plan-details h2 { + font-size: 2rem; + color: #222; + margin-bottom: 30px; +} + +.plan-details h3 { + font-size: 1.5rem; + color: #222; + margin: 30px 0 15px; +} + +.plan-details ul { + list-style: none; + padding: 0; +} + +.plan-details li { + padding: 10px 0; + font-size: 1.1rem; + color: #666; +} + +.plan-details p { + font-size: 1.1rem; + color: #666; + line-height: 1.8; +} + +.plan-details a { + color: #0077B5; + text-decoration: none; +} + +.plan-details a:hover { + text-decoration: underline; +} + +.qr-mini { + text-align: center; + margin-top: 30px; +} + +.qr-mini img { + width: 100px; + height: 100px; + border-radius: 8px; +} + +.contacto { + text-align: center; + padding: 30px; + background: #fff; + border-radius: 10px; +} + +.contacto h3 { + color: #222; + margin-bottom: 20px; +} + +.contacto a { + color: #0077B5; + text-decoration: none; + font-weight: 600; +} + +.contacto a:hover { + text-decoration: underline; +} + +footer { + text-align: center; + padding: 30px; + color: #999; + background: #222; +} + +footer p { + font-size: 0.9rem; +} + +/* Responsive - Premium */ +@media (max-width: 1200px) { + .container-large { + padding: 0 40px; + } + + .plans-grid { + grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); + gap: 40px; + } + + .hero-title { + font-size: 6.5rem; + } +} + +/* Responsive Tablet/Desktop Intermedio */ +@media (max-width: 1000px) and (min-width: 769px) { + .nav-container { + padding: 0 40px; + } + + .nav-menu { + gap: 30px; + } + + .nav-social { + gap: 15px; + } +} + +/* Responsive Mobile - Vertical y Horizontal */ +@media (max-width: 768px) { + /* Asegurar que funcione en vertical y horizontal */ + html { + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; + } + + body { + overflow-x: hidden; + width: 100%; + position: relative; + } + + .container-large { + padding: 0 20px; + width: 100%; + max-width: 100%; + box-sizing: border-box; + } + + .nav-container { + padding: 15px 20px; + flex-direction: column; + gap: 15px; + width: 100%; + } + + .nav-menu { + position: static; + transform: none; + gap: 20px; + justify-content: center; + order: 2; + flex-wrap: wrap; + width: 100%; + } + + .nav-social { + order: 3; + gap: 15px; + justify-content: center; + width: 100%; + } + + .nav-logo { + order: 1; + text-align: center; + } + + .hero-section { + padding: 80px 20px; + min-height: auto; + } + + .hero-title { + font-size: 3.5rem; + letter-spacing: -1px; + line-height: 1.1; + } + + .hero-subtitle { + font-size: 1.2rem; + } + + .hero-description { + font-size: 1rem; + padding: 0 10px; + } + + .section-title { + font-size: 2.5rem; + margin-bottom: 40px; + text-align: center; + } + + .plans-section { + padding: 80px 0; + } + + .plan-accordion-item { + margin-bottom: 20px; + border-radius: 15px; + } + + .plan-accordion-header { + padding: 25px 20px; + flex-direction: row; + align-items: center; + gap: 15px; + position: relative; + } + + .plan-accordion-header h3 { + font-size: 1.8rem; + margin-bottom: 5px; + } + + .plan-accordion-header .plan-tagline { + font-size: 1rem; + } + + .plan-chevron { + position: absolute; + top: 25px; + right: 20px; + margin: 0; + font-size: 1rem; + } + + .plan-card-body { + padding: 30px 20px; + } + + .plan-card-body h4 { + font-size: 1.3rem; + } + + .plan-card-body ul { + font-size: 0.95rem; + } + + .contact-section { + padding: 80px 0; + } + + .contact-grid { + grid-template-columns: 1fr; + gap: 30px; + width: 100%; + justify-items: center; + } + + .contact-cards { + max-width: 100%; + align-items: stretch; + } + + .contact-card { + padding: 25px 20px; + width: 100%; + } + + .social-card { + padding: 40px 30px; + max-width: 100%; + } + + .social-links-grid { + grid-template-columns: repeat(2, 1fr); + gap: 15px; + } + + .social-link { + height: 60px; + font-size: 1.3rem; + } + + .whatsapp-float { + width: 55px; + height: 55px; + bottom: 20px; + right: 20px; + font-size: 1.5rem; + } + + .scroll-to-top { + width: 45px; + height: 45px; + bottom: 85px; + right: 20px; + font-size: 1rem; + } + + .qr-section { + padding: 80px 0; + } + + .qr-card { + padding: 50px 30px; + } + + .qr-image { + width: 200px; + height: 200px; + } + + .footer-main { + padding: 80px 0 60px; + } + + /* VERTICAL móvil - Reducir espacio del nav */ + @media (max-width: 768px) and (orientation: portrait) { + .nav-sticky { + padding: 10px 0; + } + + .nav-container { + padding: 8px 15px; + gap: 8px; + } + + .nav-logo a { + font-size: 1.1rem; + } + + .nav-menu { + gap: 15px; + } + + .nav-link { + font-size: 0.85rem; + } + + .nav-social { + gap: 10px; + } + + .nav-social a { + font-size: 0.9rem; + } + + .hero-section { + padding: 60px 20px 50px; + margin-top: 100px; + } + + .hero-title { + font-size: 2.8rem; + } + } + + /* Horizontal móvil - ARREGLAR SOBREPUESTO */ + @media (max-width: 900px) and (orientation: landscape) { + .nav-sticky { + padding: 8px 0 !important; + } + + .nav-container { + padding: 5px 15px !important; + gap: 8px !important; + flex-direction: column !important; + flex-wrap: wrap !important; + } + + .nav-logo { + order: 1 !important; + flex: 0 0 auto !important; + } + + .nav-logo a { + font-size: 0.9rem !important; + } + + .nav-menu { + order: 2 !important; + position: static !important; + transform: none !important; + gap: 12px !important; + flex-wrap: wrap !important; + justify-content: center !important; + width: 100% !important; + } + + .nav-menu a { + font-size: 0.75rem !important; + padding: 2px 5px !important; + } + + .nav-social { + order: 3 !important; + gap: 10px !important; + justify-content: center !important; + width: 100% !important; + } + + .nav-social a { + width: 28px !important; + height: 28px !important; + font-size: 0.75rem !important; + } + + .hero-section { + padding: 50px 20px 40px !important; + margin-top: 70px !important; + min-height: auto !important; + } + + .hero-title { + font-size: 2.5rem !important; + margin-bottom: 15px !important; + line-height: 1.1 !important; + } + + .hero-subtitle { + font-size: 1rem !important; + margin-bottom: 15px !important; + } + + .hero-description { + font-size: 0.9rem !important; + line-height: 1.5 !important; + } + + .section-title { + font-size: 2rem !important; + margin-bottom: 30px !important; + } + + .plans-section { + padding: 60px 0 !important; + } + + .plan-accordion-header { + padding: 15px 15px !important; + } + + .plan-accordion-header h3 { + font-size: 1.4rem !important; + } + + .plan-accordion-header .plan-tagline { + font-size: 0.85rem !important; + } + + .plan-card-body { + padding: 20px 15px !important; + } + + .contact-section { + padding: 60px 0 !important; + } + + .contact-grid { + grid-template-columns: 1fr !important; + gap: 20px !important; + margin-top: 40px !important; + } + + .contact-cards { + max-width: 100% !important; + } + + .contact-card { + padding: 18px 15px !important; + gap: 15px !important; + } + + .contact-card i { + font-size: 1.4rem !important; + min-width: 25px !important; + } + + .contact-card span { + font-size: 0.9rem !important; + } + + .social-card { + padding: 30px 20px !important; + } + + .social-card h3 { + font-size: 1.4rem !important; + margin-bottom: 25px !important; + } + + .social-links-grid { + gap: 12px !important; + } + + .social-link { + height: 55px !important; + font-size: 1.2rem !important; + } + + .whatsapp-float { + width: 50px !important; + height: 50px !important; + bottom: 15px !important; + right: 15px !important; + font-size: 1.3rem !important; + } + + .scroll-to-top { + width: 40px !important; + height: 40px !important; + bottom: 70px !important; + right: 15px !important; + font-size: 0.9rem !important; + } + + .demos-section { + padding: 60px 0 !important; + } + + .demos-grid { + grid-template-columns: 1fr !important; + gap: 20px !important; + } + + .demo-card { + margin-bottom: 15px !important; + } + + .demo-image { + height: 180px !important; + } + + .demo-info { + padding: 15px !important; + } + + .demo-info h3 { + font-size: 1.2rem !important; + } + + .qr-section { + padding: 60px 0 !important; + } + + .qr-card { + padding: 40px 25px !important; + } + + .qr-image { + width: 180px !important; + height: 180px !important; + } + + .footer-main { + padding: 60px 0 40px !important; + } + } +} + +/* Modal Form - Formulario de Pedido */ +.modal-form { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.7); + display: flex; + justify-content: center; + align-items: center; + z-index: 10000; + padding: 20px; + backdrop-filter: blur(5px); +} + +.modal-form-content { + background: var(--card-bg); + border-radius: 20px; + max-width: 600px; + width: 100%; + max-height: 90vh; + overflow-y: auto; + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); + animation: modalFadeIn 0.3s ease; +} + +@keyframes modalFadeIn { + from { + opacity: 0; + transform: translateY(-20px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.modal-form-header { + padding: 30px 40px; + border-bottom: 1px solid var(--border-light); + display: flex; + justify-content: space-between; + align-items: center; + background: linear-gradient(135deg, #fafafa 0%, #ffffff 100%); + border-radius: 20px 20px 0 0; +} + +.modal-form-header h2 { + font-size: 2rem; + font-weight: 600; + color: var(--text-primary); + margin: 0; +} + +.modal-form-header h2 span { + color: var(--primary-orange); +} + +.modal-close { + background: none; + border: none; + font-size: 2.5rem; + color: var(--text-secondary); + cursor: pointer; + padding: 0; + width: 40px; + height: 40px; + display: flex; + align-items: center; + justify-content: center; + border-radius: 50%; + transition: all 0.3s ease; +} + +.modal-close:hover { + background: var(--bg-light); + color: var(--text-primary); +} + +.modal-form form { + padding: 40px; +} + +.form-group { + margin-bottom: 30px; +} + +.form-group label { + display: block; + font-size: 1rem; + font-weight: 500; + color: var(--text-primary); + margin-bottom: 10px; +} + +.form-group input, +.form-group textarea { + width: 100%; + padding: 15px 20px; + border: 1px solid var(--border-light); + border-radius: 10px; + font-size: 1rem; + font-family: 'Inter', sans-serif; + background: var(--bg-light); + color: var(--text-primary); + transition: all 0.3s ease; + box-sizing: border-box; +} + +.form-group input:focus, +.form-group textarea:focus { + outline: none; + border-color: var(--primary-orange); + background: #ffffff; + box-shadow: 0 0 0 3px rgba(255, 107, 53, 0.1); +} + +.form-group textarea { + resize: vertical; + min-height: 120px; +} + +.form-group small { + display: block; + margin-top: 8px; + font-size: 0.85rem; + color: var(--text-light); +} + +.form-actions { + display: flex; + gap: 15px; + margin-top: 40px; + justify-content: flex-end; +} + +.btn-cancel, +.btn-preview, +.btn-submit { + padding: 15px 35px; + border: none; + border-radius: 10px; + font-size: 1rem; + font-weight: 500; + cursor: pointer; + transition: all 0.3s ease; + font-family: 'Inter', sans-serif; +} + +.btn-cancel { + background: var(--bg-light); + color: var(--text-secondary); +} + +.btn-cancel:hover { + background: #e5e5e5; + color: var(--text-primary); +} + +.btn-preview { + background: #3b82f6; + color: #ffffff; +} + +.btn-preview:hover { + background: #2563eb; + transform: translateY(-2px); + box-shadow: 0 5px 15px rgba(59, 130, 246, 0.3); +} + +.btn-preview:disabled { + background: #9ca3af; + cursor: not-allowed; + transform: none; +} + +.btn-submit { + background: var(--primary-orange); + color: #ffffff; +} + +.btn-submit:hover { + background: rgba(255, 107, 53, 0.9); + transform: translateY(-2px); + box-shadow: 0 5px 15px rgba(255, 107, 53, 0.3); +} + +/* Modal responsive dentro de media query móvil */ +@media (max-width: 768px) { + .modal-form { + padding: 10px; + } + + .modal-form-content { + max-height: 95vh; + border-radius: 15px; + } + + .modal-form-header { + padding: 20px 25px; + } + + .modal-form-header h2 { + font-size: 1.5rem; + } + + .modal-form form { + padding: 30px 25px; + } + + .form-actions { + flex-direction: column; + } + + .btn-cancel, + .btn-preview, + .btn-submit { + width: 100%; + } +} + +/* ============================================ + SISTEMA DE PREVIEWS - CARDS Y MODALES + ============================================ */ + +/* Grupo de botones en planes */ +.plan-buttons-group { + display: flex; + gap: 12px; + margin-top: 25px; + flex-wrap: wrap; + align-items: center; +} + +.plan-btn-preview { + background: white; + border: 2px solid #1877F2; + color: #1877F2; + padding: 12px 24px; + border-radius: 10px; + font-size: 0.95rem; + font-weight: 600; + cursor: pointer; + transition: all 0.4s ease; + display: flex; + align-items: center; + gap: 8px; + box-shadow: 0 4px 15px rgba(24, 119, 242, 0.2); + letter-spacing: 0.3px; +} + +.plan-btn-preview:hover { + background: #1877F2; + color: white; + transform: translateY(-3px) scale(1.05); + box-shadow: 0 8px 25px rgba(24, 119, 242, 0.4); +} + +.plan-btn-preview i { + font-size: 1rem; + transition: all 0.4s ease; +} + +.plan-btn-preview:hover i { + transform: scale(1.15); +} + +/* Modal de Previews */ +.previews-modal { + display: none; + position: fixed; + z-index: 10000; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.85); + backdrop-filter: blur(5px); + overflow-y: auto; + padding: 20px; +} + +.previews-modal-content { + background: white; + margin: 40px auto; + max-width: 1400px; + border-radius: 20px; + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); + overflow: hidden; + animation: modalSlideIn 0.3s ease; +} + +@keyframes modalSlideIn { + from { + opacity: 0; + transform: translateY(-30px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.previews-modal-header { + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + color: white; + padding: 25px 30px; + display: flex; + justify-content: space-between; + align-items: center; +} + +.previews-modal-header h2 { + margin: 0; + font-size: 1.8rem; + font-weight: 600; +} + +.previews-filters { + padding: 20px 30px; + background: #f8f9fa; + border-bottom: 1px solid #e0e0e0; +} + +.filter-group { + display: flex; + flex-direction: column; + gap: 8px; +} + +.filter-group label { + font-weight: 600; + color: #333; + font-size: 0.9rem; +} + +.filter-group select { + padding: 10px 15px; + border: 2px solid #ddd; + border-radius: 8px; + font-size: 1rem; + background: white; + cursor: pointer; + transition: border-color 0.3s, box-shadow 0.3s; + min-width: 250px; +} + +.filter-group select:hover { + border-color: #1877F2; +} + +.filter-group select:focus { + outline: none; + border-color: #1877F2; + box-shadow: 0 0 0 3px rgba(24, 119, 242, 0.1); +} + +/* Grid de Previews */ +.previews-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); + gap: 30px; + padding: 30px; +} + +/* Cards de Preview - Diseño Tipo Card */ +.template-card { + background: white; + border-radius: 16px; + overflow: hidden; + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15); + transition: transform 0.3s ease, box-shadow 0.3s ease; + cursor: pointer; + position: relative; +} + +.template-card:hover { + transform: translateY(-8px); + box-shadow: 0 8px 30px rgba(0, 0, 0, 0.25); +} + +.template-preview { + position: relative; + overflow: hidden; + background: #f5f5f5; + aspect-ratio: 16/9; +} + +.template-preview img { + width: 100%; + height: 100%; + object-fit: cover; + display: block; + transition: transform 0.3s ease; +} + +.template-card:hover .template-preview img { + transform: scale(1.05); +} + +.template-overlay { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: linear-gradient(to bottom, transparent 0%, rgba(0, 0, 0, 0.7) 100%); + opacity: 0; + transition: opacity 0.3s ease; + display: flex; + align-items: flex-end; + padding: 20px; +} + +.template-card:hover .template-overlay { + opacity: 1; +} + +.overlay-info { + color: white; + width: 100%; +} + +.overlay-info h4 { + margin: 0 0 5px 0; + font-size: 1.1rem; + font-weight: 600; +} + +.overlay-info p { + margin: 0; + font-size: 0.9rem; + opacity: 0.9; +} + +.template-info { + padding: 20px; +} + +.template-info h3 { + margin: 0 0 10px 0; + font-size: 1.2rem; + color: #333; + font-weight: 600; +} + +.template-meta { + display: flex; + gap: 10px; + flex-wrap: wrap; + margin-bottom: 15px; +} + +.badge-plan { + display: inline-block; + padding: 4px 12px; + border-radius: 12px; + font-size: 0.85rem; + font-weight: 600; + text-transform: uppercase; +} + +.badge-base { + background: #95a5a6; + color: white; +} + +.badge-pro { + background: #3498db; + color: white; +} + +.badge-premium { + background: #9b59b6; + color: white; +} + +.badge-vip { + background: #f39c12; + color: white; +} + +.badge-rubro { + background: #e0e0e0; + color: #333; + font-size: 0.8rem; +} + +.template-description { + color: #666; + font-size: 0.9rem; + line-height: 1.5; + margin: 0; +} + +/* Lightbox de Screenshot Grande */ +.screenshot-lightbox { + display: none; + position: fixed; + z-index: 10001; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.95); + backdrop-filter: blur(10px); + overflow-y: auto; + padding: 40px 20px; +} + +.lightbox-content { + max-width: 1200px; + margin: 0 auto; + position: relative; + background: white; + border-radius: 20px; + overflow: hidden; + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5); + animation: lightboxFadeIn 0.3s ease; +} + +@keyframes lightboxFadeIn { + from { + opacity: 0; + transform: scale(0.9); + } + to { + opacity: 1; + transform: scale(1); + } +} + +.lightbox-close { + position: absolute; + top: 20px; + right: 20px; + font-size: 2rem; + color: white; + cursor: pointer; + z-index: 10; + width: 40px; + height: 40px; + display: flex; + align-items: center; + justify-content: center; + background: rgba(0, 0, 0, 0.5); + border-radius: 50%; + transition: background 0.3s; +} + +.lightbox-close:hover { + background: rgba(0, 0, 0, 0.8); +} + +.lightbox-content img { + width: 100%; + height: auto; + display: block; +} + +.lightbox-info { + padding: 30px; + background: white; +} + +.lightbox-info h3 { + margin: 0 0 10px 0; + font-size: 1.5rem; + color: #333; +} + +.lightbox-info p { + margin: 0 0 20px 0; + color: #666; + font-size: 1rem; +} + +.btn-request-design { + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + color: white; + border: none; + padding: 15px 30px; + border-radius: 10px; + font-size: 1rem; + font-weight: 600; + cursor: pointer; + transition: transform 0.3s, box-shadow 0.3s; + display: flex; + align-items: center; + gap: 10px; +} + +.btn-request-design:hover { + transform: translateY(-2px); + box-shadow: 0 5px 20px rgba(102, 126, 234, 0.4); +} + +/* Responsive */ +@media (max-width: 768px) { + .plan-buttons-group { + flex-direction: column; + } + + .plan-btn-preview { + width: 100%; + justify-content: center; + } + + .previews-grid { + grid-template-columns: 1fr; + padding: 20px; + } + + .previews-modal-content { + margin: 20px; + border-radius: 15px; + } + + .previews-modal-header { + padding: 20px; + } + + .previews-modal-header h2 { + font-size: 1.4rem; + } + + .lightbox-content { + margin: 20px; + } +} \ No newline at end of file diff --git a/demo/templates/admin.html b/demo/templates/admin.html new file mode 100644 index 0000000..7c0992d --- /dev/null +++ b/demo/templates/admin.html @@ -0,0 +1,178 @@ + + + + + Admin - Demo + + + +
+

🔧 Panel Admin

+
+ +

Solicitudes Pendientes

+ + + + + + + + + {% for req in requests %} + + + + + + + + {% endfor %} + {% if not requests %} + + {% endif %} +
IDSlugEmail ClienteFechaAcción
{{ req.id }}{{ req.slug }}{{ req.email }}{{ req.created_at }} + +
No hay solicitudes pendientes
+ +

👥 Usuarios Registrados

+ + + + + + + + + + + + + {% for user in users %} + + + + + + + + + + + + {% endfor %} + {% if not users %} + + {% endif %} +
IDEmailPlanRubroSitiosPublicadosSolicitudesFechaAcción
{{ user.id }}{{ user.email }}{{ user.plan }}{{ user.rubro }}{{ user.num_sitios }}{{ user.sitios_publicados }}{{ user.num_solicitudes }}{{ user.created_at[:10] if user.created_at else 'N/A' }} + {% if user.id != 1 %} + + {% else %} + Admin Principal + {% endif %} +
No hay usuarios registrados
+ +

🌐 Todos los Sitios

+ + + + + + + + + {% for site in sites %} + + + + + + + + {% endfor %} +
IDSlugTemaStatusVer
{{ site.id }}{{ site.slug }}{{ site.theme }}{{ site.status }} + {% if site.status == 'published' %} + Ver + {% endif %} +
+ + + + + + diff --git a/demo/templates/client_admin.html b/demo/templates/client_admin.html new file mode 100644 index 0000000..10dd24d --- /dev/null +++ b/demo/templates/client_admin.html @@ -0,0 +1,219 @@ + + + + + + Dashboard - Administración del Sitio + + + + + + + + + + +
+ +
+ +
+ Hola, {{ user_email }} + Salir +
+
+ + +
+

Escritorio

+ +
+
+

¡Te damos la bienvenida a tu panel!

+

Aquí puedes gestionar todos tus sitios y contenidos de forma profesional.

+
+ +
+ +
+

Tus Sitios Web

+ {% if not sites %} +

No tienes sitios creados. ¡Empieza ahora!

+ {% else %} + + + + + + + + + + + {% for site in sites %} + + + + + + + {% endfor %} + +
Nombre (Slug)TemaEstadoAcciones
{{ site.slug }}{{ site.theme }}{{ site.status|upper }} + Personalizar +
+ {% endif %} +
+ +
+

Estadísticas Rápidas

+
+
+ {{ sites|length }}
+ Sitios +
+
+ {{ user_plan|upper }}
+ Plan Actual +
+
+
+ +
+
+ + + diff --git a/demo/templates/create_site.html b/demo/templates/create_site.html new file mode 100644 index 0000000..67d7b1e --- /dev/null +++ b/demo/templates/create_site.html @@ -0,0 +1,82 @@ + + + + + Crear Sitio - Demo + + + +
+

➕ Crear Nuevo Sitio

+
+ + + + + + +
+ ← Volver +
+ + + + diff --git a/demo/templates/customizer-wordpress-COMPLETO.html b/demo/templates/customizer-wordpress-COMPLETO.html new file mode 100644 index 0000000..569587c --- /dev/null +++ b/demo/templates/customizer-wordpress-COMPLETO.html @@ -0,0 +1,1279 @@ + + + + + Customizer Completo - Estilo WordPress + + + + +
+
+ +
Personalizar
+
+ +
+ + +
+ +
+ + + + +
+ +
+
Identidad del sitio
+ +
+ + +
El nombre aparece en el encabezado del sitio.
+
+ +
+ + +
En pocas palabras, explica de qué trata este sitio.
+
+ +
+ +
+ + 150px +
+
+ +
+ +
+ + 24px +
+
+ +
+ +
+ + 14px +
+
+
+ + +
+
Top Bar Setting
+ +
+ +
+ +
+
+ + +
+
+ +
+ + +
+ +
+ +
+
+ + +
+
+ +
+ + +
Font Awesome icon class
+
+
📞
+
✉️
+
📍
+
🕐
+
📘
+
📷
+
+
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ +
+
+ + +
+
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ +
+
+ + +
+
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+ + +
+
Colores
+ +
+ +
+ + +
+
+ +
+ +
+ + +
+
+ +
+ +
+ + +
+
+ +
+ +
+ + +
+
+
+ + +
+
Body Typography Setting
+ +
+ + +
+ +
+ +
+ + 16px +
+
+ +
+ +
+ + 1.6 +
+
+
+ + +
+
Medios
+ +
+ + + Logo preview +
+ +
+ + + Hero preview +
+ +
+ + + Favicon preview +
+
+ + +
+
Redes Sociales
+ +
+ +
+ + +
+
+ +
+ + +
Número para el botón flotante
+
+ +
+ +
+
+
+
Red Social 1
+ +
+
+ + +
+
+ + +
+
+
+ + +
+ + +
+
Contenido
+
+ + +
+
+ + +
+
+ +
+
Contacto
+
+ + +
+
+ + +
+
+ + +
+
+
+
+ + +
+
Cargando vista previa...
+ +
+
+ + + + + + + diff --git a/demo/templates/customizer-wordpress-demo.html b/demo/templates/customizer-wordpress-demo.html new file mode 100644 index 0000000..3db8653 --- /dev/null +++ b/demo/templates/customizer-wordpress-demo.html @@ -0,0 +1,688 @@ + + + + + Customizer Demo - Estilo WordPress + + + + +
+
+ +
Personalizar
+
+ +
+ + +
+ +
+ + + + +
+ +
+
Identidad del sitio
+ +
+ + +
El nombre aparece en el encabezado del sitio.
+
+ +
+ + +
En pocas palabras, explica de qué trata este sitio.
+
+
+ + +
+
Colores
+ +
+ +
+ + +
+
+ +
+ +
+ + +
+
+ +
+ +
+ + +
+
+
+ + +
+
Tipografía
+ +
+ + +
+
+ + +
+
Contenido
+ +
+ + +
+ +
+ + +
+
+ + +
+
Medios
+ +
+ + +
URL de la imagen del logo
+
+ +
+ + +
Imagen de fondo para la sección principal
+
+
+ + +
+
Contacto
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+ + +
+
Redes Sociales
+ +
+ + +
+ +
+ + +
+ +
+ + +
Número de WhatsApp para botón flotante
+
+
+
+
+ + +
+
Cargando vista previa...
+ +
+
+ + + + + + + diff --git a/demo/templates/customizer.html b/demo/templates/customizer.html new file mode 100644 index 0000000..f9da865 --- /dev/null +++ b/demo/templates/customizer.html @@ -0,0 +1,1597 @@ + + + + + + + Personalizar - {{ site_name or 'Sitio' }} + + + + + + + +
+ + +
+
+

Personalizar

+ +
+ +
+ + + +
+
+ Diseño & + Template +
+
+
+ Tema Activo + + Cambiar el tema restablecerá colores por + defecto. +
+
+
+ + + +
+
+ Identidad del + Sitio +
+
+
+ Nombre del Sitio + +
+
+ Título Hero + +
+
+ Descripción Corta + +
+
+ Logo URL + +
+
+
+ + + +
+
+ Colores +
+
+
+ Color Primario +
+ + +
+
+
+ Color Secundario +
+ + +
+
+
+ Color Texto +
+ + +
+
+
+
+ + + +
+
+ Contacto & + Ubicación +
+
+
+ Dirección + +
+
+ Teléfono + +
+ +
+ WhatsApp (Solo números) + + Añadirá un botón flotante si se rellena. +
+
+ Email + +
+
+
+ + +
+
+ Redes + Sociales +
+
+
+ Instagram URL + +
+
+ Facebook URL + +
+
+ TikTok URL + +
+
+ LinkedIn URL + +
+
+ YouTube URL + +
+
+
+ + +
+
+ Horarios de Atención +
+
+
+ Lunes - Viernes + +
+
+ Sábados + +
+
+ Domingos + +
+
+
+ + +
+
+ Especialidad Culinaria +
+
+
+ Título + +
+
+ Descripción + +
+
+ URL de Imagen + +
+
+
+ + +
+
+ Capacidad +
+
+
+ Capacidad del Restaurante + + Número de personas que puede albergar el restaurante. +
+
+
+ + +
+
+ Bloques de + Contenido +
+
+
+ +
+
+ +
+ + + +
+
+ + +
+
+ Menú + Restaurante +
+
+
+ Enlace PDF Menú + +
+
+ +
+
+
+ +
+ + + +
+ + +
+
+ +
+ + +
+ + + +
+
+ +
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/demo/templates/dashboard.html b/demo/templates/dashboard.html new file mode 100644 index 0000000..ce62c71 --- /dev/null +++ b/demo/templates/dashboard.html @@ -0,0 +1,108 @@ + + + + + Dashboard - Demo + + + +
+

📊 Mi Panel de Control

+ +
+ +
+ {% for site in sites %} +
+

{{ site.slug }}

+

Tema: {{ site.theme }}

+ {{ site.status }} +
+ ✏️ Editar + {% if site.status == 'draft' %} + + {% endif %} +
+
+ {% endfor %} + + {% if not sites %} +
+

No tienes sitios aún. Crear uno

+
+ {% endif %} +
+ + + + diff --git a/demo/templates/landing.html b/demo/templates/landing.html new file mode 100644 index 0000000..594b57e --- /dev/null +++ b/demo/templates/landing.html @@ -0,0 +1,47 @@ + + + + + PageBuilder SaaS - Demo + + + +
+

🎨 PageBuilder SaaS

+

Crea tu sitio web en minutos

+ Registrarse + Iniciar Sesión + Admin +
+ + diff --git a/demo/templates/landing_real.html b/demo/templates/landing_real.html new file mode 100644 index 0000000..ee88408 --- /dev/null +++ b/demo/templates/landing_real.html @@ -0,0 +1,1442 @@ + + + + + + + + + + + + + + + + + + + + + + + + GKACHELE™ | Desarrollo Web Premium + + + + + + + + + +
+
+
+

GKACHELE™

+

Desarrollo Web Premium

+

Estamos listos para ayudarte a crear tu sitio moderno, rápido y personalizado.

+
+
+ + +
+
+
+

Nuestros Planes

+ + +
+ +
+ +
+
+

¿Qué incluye?

+
    +
  • ✅ Sitio web de una página
  • +
  • ✅ Diseño limpio y profesional
  • +
  • ✅ Información de contacto
  • +
  • ✅ Enlaces a redes sociales
  • +
  • ✅ Responsive (móvil y desktop)
  • +
  • ✅ Hosting gratuito
  • +
  • ✅ Dominio personalizado
  • +
+

Personalización

+
    +
  • 🎨 Color principal personalizado
  • +
  • ✍️ Tipografía a elección
  • +
  • 📝 Textos personalizados
  • +
+

Ideal para: Profesionales independientes, pequeños comercios, páginas institucionales básicas.

+
+ QR Base +

Comparte este plan

+
+
+ +
+
+
+
+ + +
+ +
+
+

¿Qué incluye?

+
    +
  • ✅ Sitio web multipágina
  • +
  • ✅ Animaciones suaves y efectos visuales
  • +
  • ✅ Galería de imágenes o portafolio
  • +
  • ✅ Formulario de contacto funcional
  • +
  • ✅ Responsive avanzado
  • +
  • ✅ Hosting gratuito
  • +
  • ✅ Dominio personalizado
  • +
+

Personalización

+
    +
  • 🎨 Paleta de colores personalizada
  • +
  • ✍️ Tipografía profesional
  • +
  • 🧩 Secciones a medida
  • +
+

Ideal para: Marcas personales, portfolios creativos, negocios que quieren destacar visualmente.

+
+ QR Pro +

Comparte este plan

+
+
+ +
+
+
+
+ + +
+ +
+
+

¿Qué incluye?

+
    +
  • ✅ Sitio web completo y escalable
  • +
  • ✅ Integración con redes sociales y herramientas externas
  • +
  • ✅ SEO optimizado
  • +
  • ✅ Panel de administración (opcional)
  • +
  • ✅ Hosting y dominio incluidos
  • +
  • ✅ Soporte técnico personalizado
  • +
+

Personalización

+
    +
  • 🎨 Diseño a medida
  • +
  • 📊 Integración con analítica
  • +
  • 🔒 Seguridad avanzada
  • +
+

Ideal para: Empresas, proyectos grandes, tiendas online, instituciones con necesidades específicas.

+
+ QR Premium +

Comparte este plan

+
+
+ +
+
+
+
+
+
+
+ + + + + + + + + + + +
+
+
+

Proyectos Demo

+

Ejemplos de sitios web que hemos creado

+ +
+ +
+
+
💃 Blow Dance
+ +
+
+

Blow Dance

+

💃 Escuela de Danza

+

Plan: Pro

+

Sitio web profesional para escuela de danza con galerías, videos y sistema de inscripción.

+
+
+ + +
+
+
🗳️ Dalmau
+ +
+
+

Dalmau Intendente

+

⚖️ Despacho Profesional

+

Plan: Base

+

Landing page profesional para despachos de abogados y contadores con información clara y llamados a la acción.

+
+
+ + +
+
+
💼 GKACHELE
+ +
+
+

GKACHELE™

+

💼 Portfolio Profesional

+

Plan: Premium

+

Sitio web premium con diseño moderno, animaciones y sistema de gestión avanzado.

+
+
+
+ + + +
+
+ + +
+
+
+
+

Comparte tu sitio

+ QR Code GKACHELE™ +

Escanea el código QR para compartir

+
+
+
+ + +
+
+ +
+ + + + + + + + + + +
+ +
+

© 2025 GKACHELE™. Todos los derechos reservados.

+ +

+ Código propiedad de GKACHELE © 2025 - Prohibida su reproducción sin autorización +

+
+
+ + + + diff --git a/demo/templates/login.html b/demo/templates/login.html new file mode 100644 index 0000000..97ffa6b --- /dev/null +++ b/demo/templates/login.html @@ -0,0 +1,95 @@ + + + + + Login - Demo + + + +
+

🔐 Iniciar Sesión

+
+ + + +
+

+ ¿No tienes cuenta? Regístrate +

+
+ + + + diff --git a/demo/templates/public_site.html b/demo/templates/public_site.html new file mode 100644 index 0000000..5705e22 --- /dev/null +++ b/demo/templates/public_site.html @@ -0,0 +1,33 @@ + + + + + {{ content.site_name or 'Mi Sitio' }} + + + +
+

{{ content.hero_title or 'Título' }}

+

{{ content.hero_description or 'Descripción' }}

+
+ + diff --git a/demo/templates/register.html b/demo/templates/register.html new file mode 100644 index 0000000..6c5534d --- /dev/null +++ b/demo/templates/register.html @@ -0,0 +1,132 @@ + + + + + Registro - Demo + + + +
+

📝 Registrarse

+
+ + + + + +
+

+ ¿Ya tienes cuenta? Inicia sesión +

+
+ + + + diff --git a/demo/test.py b/demo/test.py new file mode 100644 index 0000000..7013d93 --- /dev/null +++ b/demo/test.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python3 +"""Test rápido para verificar que todo funciona""" + +import sys +import os + +# Agregar directorio actual al path +sys.path.insert(0, os.path.dirname(__file__)) + +try: + from app import app + print("✅ App importada correctamente") + print("✅ Flask funcionando") + print(f"✅ Templates en: {app.template_folder}") + print("\n🚀 Para iniciar:") + print(" python3 app.py") + print("\n📍 URL: http://localhost:5001") +except Exception as e: + print(f"❌ Error: {e}") + import traceback + traceback.print_exc() + sys.exit(1) diff --git a/demo/themes/_gkachele/footer.php b/demo/themes/_gkachele/footer.php new file mode 100644 index 0000000..97ab4fc --- /dev/null +++ b/demo/themes/_gkachele/footer.php @@ -0,0 +1,22 @@ +
+ +
+
+ {% if menus.footer %} + + {% endif %} +

+ © 2025 GKACHELE™. Todos los derechos reservados.
+ Desarrollado desde noviembre 2025 por GKACHELE
+ Código propiedad de GKACHELE © 2025 - Prohibida su reproducción sin autorización +

+
+
+ + diff --git a/demo/themes/_gkachele/header.php b/demo/themes/_gkachele/header.php new file mode 100644 index 0000000..52440a7 --- /dev/null +++ b/demo/themes/_gkachele/header.php @@ -0,0 +1,112 @@ + + + + + + + {% if site_name %}{{ site_name }}{% else %}GKACHELE Site{% endif %} + + + + + + +
+ +
+
diff --git a/demo/themes/_gkachele/sidebar.php b/demo/themes/_gkachele/sidebar.php new file mode 100644 index 0000000..a6adb25 --- /dev/null +++ b/demo/themes/_gkachele/sidebar.php @@ -0,0 +1,33 @@ + + diff --git a/demo/themes/gimnasio-claro/config.json b/demo/themes/gimnasio-claro/config.json new file mode 100644 index 0000000..b1cffcc --- /dev/null +++ b/demo/themes/gimnasio-claro/config.json @@ -0,0 +1,29 @@ +{ + "name": "Gimnasio Claro", + "rubro": "gimnasios", + "description": "Tema claro y moderno para gimnasios", + "sections": [ + "hero", + "planes_fitness", + "horarios", + "entrenadores", + "instalaciones", + "contacto" + ], + "colors": { + "primary": "#ff4d4d", + "secondary": "#1a1a1a", + "accent": "#ff6b6b" + }, + "typography": { + "font_family": "Roboto", + "headings": "Roboto" + }, + "features": { + "planes_fitness": true, + "horarios": true, + "entrenadores": true, + "instalaciones": true, + "precios": true + } +} diff --git a/demo/themes/restaurante-asiatico/config.json b/demo/themes/restaurante-asiatico/config.json new file mode 100644 index 0000000..2ae4d4b --- /dev/null +++ b/demo/themes/restaurante-asiatico/config.json @@ -0,0 +1,32 @@ +{ + "name": "Restaurante Asiático", + "rubro": "restaurante", + "description": "Tema moderno y elegante para restaurantes asiáticos", + "sections": [ + "hero", + "menu", + "horarios", + "reservas", + "especialidad_culinaria", + "galeria", + "contacto" + ], + "colors": { + "primary": "#e63946", + "secondary": "#f77f00", + "accent": "#fcbf49", + "text": "#1d3557" + }, + "typography": { + "font_family": "Roboto", + "headings": "Oswald" + }, + "features": { + "menu_url": true, + "horarios": true, + "reservas": true, + "capacidad": true, + "especialidad_culinaria": true, + "galeria": true + } +} diff --git a/demo/themes/restaurante-asiatico/template.html b/demo/themes/restaurante-asiatico/template.html new file mode 100644 index 0000000..d9f0001 --- /dev/null +++ b/demo/themes/restaurante-asiatico/template.html @@ -0,0 +1,731 @@ + + + + + + {{ site_name or 'Restaurante Asiático' }} + + + + + + + +
+ +
+ + +
+
+

{{ hero_title or 'TU LUGAR FAVORITO DE COMIDA ASIÁTICA EN LA CIUDAD' }}

+

{{ hero_description or 'Sabores auténticos que despiertan tus sentidos' }}

+ Reservar Mesa +
+
+ + + + + +
+
+

Horarios de Atención

+
+
+

Lunes - Viernes

+

{{ horarios.lunes_viernes or '12:00 PM - 10:00 PM' }}

+
+
+

Sábados

+

{{ horarios.sabados or '12:00 PM - 11:00 PM' }}

+
+
+

Domingos

+

{{ horarios.domingos or '12:00 PM - 9:00 PM' }}

+
+
+
+
+ + +
+
+

Reserva tu Mesa

+
+

+ Completa el formulario y nos pondremos en contacto contigo para confirmar tu reserva. +

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+
+
+ + +
+
+
+
+

{{ especialidad_culinaria.titulo or 'Nuestra Especialidad' }}

+

{{ especialidad_culinaria.descripcion or 'Cada plato es una obra de arte culinaria, preparado con ingredientes frescos y técnicas tradicionales que honran la autenticidad de nuestros sabores asiáticos.' }}

+
+
+ Especialidad Culinaria +
+
+
+
+ + +
+
+

Contacto

+
+
+

Información de Contacto

+

Dirección: {{ direccion or 'Calle Principal 123, Ciudad' }}

+

Teléfono: {{ telefono or '+34 123 456 789' }}

+

Email: {{ email or 'contacto@restaurante.com' }}

+ {% if capacidad %} +

Capacidad: {{ capacidad }} personas

+ {% endif %} +
+ {% if redes_sociales.facebook %} + 📘 + {% endif %} + {% if redes_sociales.instagram %} + 📷 + {% endif %} + {% if redes_sociales.twitter %} + 🐦 + {% endif %} + {% if redes_sociales.whatsapp %} + 💬 + {% endif %} +
+
+
+

Ubicación

+ {% if mapa_url %} + + {% else %} +

Mapa de ubicación disponible próximamente

+ {% endif %} +
+
+
+
+ + +
+
+

© 2025 {{ site_name or 'Restaurante Asiático' }}. Todos los derechos reservados.

+

© 2025 GKACHELE™. Todos los derechos reservados.

+
+
+ + diff --git a/demo/themes/restaurante-elegante/config.json b/demo/themes/restaurante-elegante/config.json new file mode 100644 index 0000000..4c06aa9 --- /dev/null +++ b/demo/themes/restaurante-elegante/config.json @@ -0,0 +1,32 @@ +{ + "name": "Restaurante Elegante", + "rubro": "restaurante", + "description": "Tema sofisticado y elegante para restaurantes de alta cocina", + "sections": [ + "hero", + "menu", + "horarios", + "reservas", + "especialidad_culinaria", + "galeria", + "contacto" + ], + "colors": { + "primary": "#8b4513", + "secondary": "#d4af37", + "accent": "#f5deb3", + "text": "#2c2c2c" + }, + "typography": { + "font_family": "Georgia", + "headings": "Cormorant Garamond" + }, + "features": { + "menu_url": true, + "horarios": true, + "reservas": true, + "capacidad": true, + "especialidad_culinaria": true, + "galeria": true + } +} diff --git a/demo/themes/restaurante-elegante/template.html b/demo/themes/restaurante-elegante/template.html new file mode 100644 index 0000000..8541f9d --- /dev/null +++ b/demo/themes/restaurante-elegante/template.html @@ -0,0 +1,649 @@ + + + + + + {{ site_name or 'Restaurante Elegante' }} + + + + + + + +
+ +
+ + +
+
+

{{ hero_title or 'Experiencia Culinaria Excepcional' }}

+

{{ hero_description or 'Donde la tradición se encuentra con la innovación' }}

+ Reservar Mesa +
+
+ + + + + +
+
+

Horarios de Atención

+
+
+

Lunes - Viernes

+

{{ horarios.lunes_viernes or '13:00 - 23:00' }}

+
+
+

Sábados

+

{{ horarios.sabados or '13:00 - 00:00' }}

+
+
+

Domingos

+

{{ horarios.domingos or '13:00 - 22:00' }}

+
+
+
+
+ + +
+
+

Reserva tu Mesa

+
+

+ Complete el formulario y nos pondremos en contacto para confirmar su reserva. +

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+
+
+ + +
+
+
+
+

{{ especialidad_culinaria.titulo or 'Nuestra Especialidad' }}

+

{{ especialidad_culinaria.descripcion or 'Cada plato es una obra de arte, preparado con ingredientes de la más alta calidad y técnicas culinarias refinadas que honran la tradición gastronómica.' }}

+
+
+ Especialidad Culinaria +
+
+
+
+ + +
+
+

Contacto

+
+
+

Información de Contacto

+

Dirección: {{ direccion or 'Avenida Principal 456, Ciudad' }}

+

Teléfono: {{ telefono or '+34 987 654 321' }}

+

Email: {{ email or 'contacto@restaurante.com' }}

+ {% if capacidad %} +

Capacidad: {{ capacidad }} personas

+ {% endif %} +
+ {% if redes_sociales.facebook %} + 📘 + {% endif %} + {% if redes_sociales.instagram %} + 📷 + {% endif %} + {% if redes_sociales.twitter %} + 🐦 + {% endif %} + {% if redes_sociales.whatsapp %} + 💬 + {% endif %} +
+
+
+

Ubicación

+ {% if mapa_url %} + + {% else %} +

Mapa de ubicación disponible próximamente

+ {% endif %} +
+
+
+
+ + +
+
+

© 2025 {{ site_name or 'Restaurante Elegante' }}. Todos los derechos reservados.

+
+
+ + diff --git a/demo/themes/restaurante-moderno/config.json b/demo/themes/restaurante-moderno/config.json new file mode 100644 index 0000000..3a86663 --- /dev/null +++ b/demo/themes/restaurante-moderno/config.json @@ -0,0 +1,30 @@ +{ + "name": "Restaurante Moderno", + "rubro": "restaurante", + "description": "Tema elegante para restaurantes", + "sections": [ + "hero", + "menu", + "horarios", + "reservas", + "especialidad_culinaria", + "contacto" + ], + "colors": { + "primary": "#c94d4d", + "secondary": "#d97757", + "accent": "#f4a261", + "text": "#2c2c2c" + }, + "typography": { + "font_family": "Roboto", + "headings": "Playfair Display" + }, + "features": { + "menu_url": true, + "horarios": true, + "reservas": true, + "capacidad": true, + "especialidad_culinaria": true + } +} diff --git a/demo/themes/restaurante-moderno/style.css b/demo/themes/restaurante-moderno/style.css new file mode 100644 index 0000000..fde8fef --- /dev/null +++ b/demo/themes/restaurante-moderno/style.css @@ -0,0 +1,44 @@ +/* Estilos adicionales para el tema Restaurante Moderno */ +/* Estos estilos complementan el template.html */ + +/* Animaciones suaves */ +@keyframes fadeInUp { + from { + opacity: 0; + transform: translateY(30px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.section { + animation: fadeInUp 0.6s ease-out; +} + +/* Efectos hover mejorados */ +.menu-item, +.horario-item { + transition: all 0.3s ease; +} + +/* Scroll suave */ +html { + scroll-behavior: smooth; +} + +/* Mejoras responsive */ +@media (max-width: 480px) { + .hero h1 { + font-size: 32px; + } + + .section-title { + font-size: 32px; + } + + .menu-grid { + grid-template-columns: 1fr; + } +} diff --git a/demo/themes/restaurante-moderno/template.html b/demo/themes/restaurante-moderno/template.html new file mode 100644 index 0000000..27f0809 --- /dev/null +++ b/demo/themes/restaurante-moderno/template.html @@ -0,0 +1,1394 @@ + + + + + + + {{ site_name or 'Restaurante' }} + + + + + + + + + +
+ +
+ + +
+
+

{{ hero_title + or 'Bienvenido a Nuestro Restaurante' }}

+

{{ + hero_description or 'Sabores auténticos que despiertan tus sentidos' }}

+ Reservar Mesa +
+
+ + + + + +
+
+

Horarios de Atención

+
+
+

Lunes - Viernes

+

{{ horarios.lunes_viernes or '12:00 PM - 10:00 PM' }}

+
+
+

Sábados

+

+ {{ horarios.sabados or '12:00 PM - 11:00 PM' }}

+
+
+

Domingos

+

+ {{ horarios.domingos or '12:00 PM - 9:00 PM' }}

+
+
+
+
+ + +
+
+

Reserva tu Mesa

+
+

+ Completa el formulario y nos pondremos en contacto contigo para confirmar tu reserva. +

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+
+
+ + +
+
+
+
+

{{ especialidad_culinaria.titulo or 'Nuestra Especialidad' }}

+

{{ especialidad_culinaria.descripcion or 'Cada plato es una obra de arte culinaria, preparado con + ingredientes frescos y técnicas tradicionales que honran la autenticidad de nuestros sabores.' + }}

+
+
+ Especialidad Culinaria +
+
+
+
+ + +
+
+

Contacto

+
+
+

Información de Contacto

+

Dirección: {{ direccion or 'Calle Principal 123, Ciudad' }}

+

Teléfono: {{ telefono or '+34 123 456 789' }}

+

Email: {{ email or 'contacto@restaurante.com' }}

+ {% if capacidad %} +

Capacidad: {{ capacidad }} personas

+ {% else %} +

Capacidad: 50 personas

+ {% endif %} + +
+ {% if redes_sociales.facebook %} + + {% endif %} + {% if redes_sociales.instagram %} + + {% endif %} + + + +
+
+
+

+ Ubicación

+ {% if mapa_url %} +
+ +
+ {% else %} + +

+ ➕ Click para añadir mapa de Google Maps

+ {% endif %} +
+
+
+
+ + +
+ {% if blocks %} + {% for block in blocks|sort(attribute='order') %} +
+
+ {% if block.type == 'video' %} +
+ {% if block.content.url %} +
+ +
+ {% else %} +

➕ Click para + añadir + URL de video (YouTube/Vimeo)

+ {% endif %} +
+ {% elif block.type == 'imagen' %} +
+ {% if block.content.url %} + {{ block.content.alt or '' }} + {% else %} +

➕ Click para + añadir + URL de imagen

+ {% endif %} +
+ {% elif block.type == 'texto' %} +
+

{{ block.content.titulo or 'Título del bloque' }}

+

{{ block.content.contenido or 'Contenido del bloque...' }}

+
+ {% elif block.type == 'redes_sociales' %} +
+

Síguenos en Redes Sociales

+
+ {% if block.content.facebook %} + + {% endif %} + {% if block.content.instagram %} + + {% endif %} +
+
+ {% elif block.type == 'mapa' %} +
+ {% if block.content.url %} + + {% else %} +

➕ Click para + añadir + URL de Google Maps (Compartir → Insertar mapa)

+ {% endif %} +
+ {% endif %} +
+
+ + +
+
+ {% endfor %} + {% endif %} +
+ + +
+
+

© 2025 {{ site_name or 'Restaurante' }}. Todos los derechos reservados.

+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/demo/utils/__init__.py b/demo/utils/__init__.py new file mode 100644 index 0000000..35caf2e --- /dev/null +++ b/demo/utils/__init__.py @@ -0,0 +1 @@ +# GKACHELE™ Utils Package diff --git a/demo/utils/auth_decorators.py b/demo/utils/auth_decorators.py new file mode 100644 index 0000000..a97a1c1 --- /dev/null +++ b/demo/utils/auth_decorators.py @@ -0,0 +1,54 @@ +from functools import wraps +from flask import session, request, jsonify, redirect, url_for +import sqlite3 +from config import MAIN_DB + +def login_required(f): + @wraps(f) + def decorated_function(*args, **kwargs): + if 'user_id' not in session: + if request.is_json: + return jsonify({'success': False, 'error': 'No autorizado'}), 401 + return redirect(url_for('auth.login')) + return f(*args, **kwargs) + return decorated_function + +def user_has_role(user_id, required_role): + """Verificar si usuario tiene un rol específico (desde DB)""" + if not user_id: + return False + + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('SELECT role FROM users WHERE id = ?', (user_id,)) + result = c.fetchone() + conn.close() + + if not result: + return False + + user_role = result[0] or 'subscriber' + + # Jerarquía de roles GKACHELE™ + role_hierarchy = { + 'administrator': 4, + 'editor': 3, + 'author': 2, + 'subscriber': 1 + } + + user_level = role_hierarchy.get(user_role, 1) + required_level = role_hierarchy.get(required_role, 1) + + return user_level >= required_level + +def user_can(user_id, capability): + """Verificar capacidad específica (desde DB)""" + if not user_id: + return False + + # Si es admin, puede todo + if user_has_role(user_id, 'administrator'): + return True + + return False diff --git a/demo/utils/theme_engine.py b/demo/utils/theme_engine.py new file mode 100644 index 0000000..eed5348 --- /dev/null +++ b/demo/utils/theme_engine.py @@ -0,0 +1,179 @@ +import os +import json +import sqlite3 +from flask import current_app +from config import THEMES_DIR, MAIN_DB + +def scan_available_themes(): + """Escanear todos los templates disponibles y cargar sus configuraciones""" + themes = {} + if not os.path.exists(THEMES_DIR): + return themes + + for theme_dir in os.listdir(THEMES_DIR): + theme_path = os.path.join(THEMES_DIR, theme_dir) + if not os.path.isdir(theme_path) or theme_dir.startswith('_'): + continue + + config_path = os.path.join(theme_path, 'config.json') + template_path = os.path.join(theme_path, 'template.html') + + if not os.path.exists(config_path) or not os.path.exists(template_path): + continue + + try: + with open(config_path, 'r', encoding='utf-8') as f: + config = json.load(f) + + themes[theme_dir] = { + 'id': theme_dir, + 'name': config.get('name', theme_dir), + 'description': config.get('description', ''), + 'rubro': config.get('rubro', 'general'), + 'sections': config.get('sections', []), + 'colors': config.get('colors', {}), + 'typography': config.get('typography', {}), + 'features': config.get('features', {}), + 'preview': f'/themes/{theme_dir}/preview.jpg' if os.path.exists(os.path.join(theme_path, 'preview.jpg')) else None + } + except Exception as e: + print(f"⚠️ Error cargando template {theme_dir}: {e}") + continue + + return themes + +def get_theme_config(theme_id): + """Obtener configuración de un template específico""" + config_path = os.path.join(THEMES_DIR, theme_id, 'config.json') + if not os.path.exists(config_path): + return None + + try: + with open(config_path, 'r', encoding='utf-8') as f: + return json.load(f) + except Exception as e: + print(f"⚠️ Error cargando config de {theme_id}: {e}") + return None + +def get_themes_by_rubro(rubro): + """Obtener templates filtrados por rubro""" + all_themes = scan_available_themes() + return {k: v for k, v in all_themes.items() if v.get('rubro') == rubro or v.get('rubro') == 'general'} + +def get_site_menus(site_id, user_id): + """Obtener menús del sitio organizados por ubicación""" + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('''SELECT location, title, url, order_index, parent_id + FROM menus + WHERE site_id = ? AND user_id = ? + ORDER BY location, order_index''', (site_id, user_id)) + rows = c.fetchall() + conn.close() + + menus = {'header': [], 'footer': [], 'sidebar': []} + for row in rows: + location, title, url, order_index, parent_id = row + menu_item = { + 'title': title, + 'url': url, + 'order': order_index, + 'parent_id': parent_id + } + if location in menus: + menus[location].append(menu_item) + + return menus + +def get_site_widgets(site_id, user_id, area='sidebar'): + """Obtener widgets del sitio por área""" + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + c.execute('''SELECT type, title, content, order_index + FROM widgets + WHERE site_id = ? AND user_id = ? AND area = ? + ORDER BY order_index''', (site_id, user_id, area)) + rows = c.fetchall() + conn.close() + + widgets = [] + for row in rows: + widget_type, title, content, order_index = row + widgets.append({ + 'type': widget_type, + 'title': title, + 'content': content, + 'order': order_index + }) + + return widgets + +def render_gkachele_template(theme, content, site_id=None, user_id=None): + """Renderizar template usando estructura GKACHELE (header.php, footer.php, sidebar.php)""" + menus = {'header': [], 'footer': [], 'sidebar': []} + widgets = [] + if site_id and user_id: + try: + menus = get_site_menus(site_id, user_id) + widgets = get_site_widgets(site_id, user_id) + except Exception as e: + print(f"⚠️ Error obteniendo menús/widgets: {e}") + + theme_template = '' + theme_path = os.path.join(THEMES_DIR, theme, 'template.html') + if os.path.exists(theme_path): + with open(theme_path, 'r', encoding='utf-8') as f: + theme_template = f.read() + else: + theme_template = '

{{ hero_title or "Bienvenido" }}

' + + header = '' + footer = '' + sidebar = '' + + header_path = os.path.join(THEMES_DIR, '_gkachele', 'header.php') + footer_path = os.path.join(THEMES_DIR, '_gkachele', 'footer.php') + sidebar_path = os.path.join(THEMES_DIR, '_gkachele', 'sidebar.php') + + if os.path.exists(header_path): + with open(header_path, 'r', encoding='utf-8') as f: + header = f.read() + else: + header = '' # Fallback simplificado + + if os.path.exists(footer_path): + with open(footer_path, 'r', encoding='utf-8') as f: + footer = f.read() + else: + footer = '' + + if os.path.exists(sidebar_path): + with open(sidebar_path, 'r', encoding='utf-8') as f: + sidebar = f.read() + + template_data = { + 'site_name': content.get('site_name', 'GKACHELE Site'), + 'hero_title': content.get('hero_title', 'Bienvenido'), + 'colors': content.get('colors', {}), + 'typography': content.get('typography', {}), + 'horarios': content.get('horarios', {}), + 'redes_sociales': content.get('redes_sociales', {}), + 'blocks': content.get('blocks', []), + 'menus': menus, + 'widgets': widgets, + **content + } + + from jinja2 import Template + + is_full_page = False + if theme == 'restaurante-moderno' or '' in theme_template: + is_full_page = True + + if is_full_page: + template = Template(theme_template) + return template.render(**template_data) + + full_template = header + theme_template + sidebar + footer + template = Template(full_template) + return template.render(**template_data) diff --git a/demo/ver_usuarios.py b/demo/ver_usuarios.py new file mode 100644 index 0000000..a2df7f9 --- /dev/null +++ b/demo/ver_usuarios.py @@ -0,0 +1,78 @@ +""" +GKACHELE™ - Script para ver usuarios registrados +© 2025 GKACHELE™. Todos los derechos reservados. +Uso: python ver_usuarios.py +""" + +import sqlite3 +import os +from datetime import datetime + +# Ruta de la base de datos +BASE_DIR = os.path.dirname(__file__) +DATABASE_DIR = os.path.join(BASE_DIR, 'database') +MAIN_DB = os.path.join(DATABASE_DIR, 'main.db') + +def ver_usuarios(): + """Ver todos los usuarios registrados""" + if not os.path.exists(MAIN_DB): + print(f"❌ No se encontró la base de datos en: {MAIN_DB}") + return + + try: + conn = sqlite3.connect(MAIN_DB) + c = conn.cursor() + + # Obtener usuarios + c.execute('SELECT id, email, plan, rubro, created_at FROM users ORDER BY id') + users = c.fetchall() + + if not users: + print("📭 No hay usuarios registrados aún") + return + + print("=" * 80) + print("👥 USUARIOS REGISTRADOS") + print("=" * 80) + print(f"{'ID':<5} {'Email':<35} {'Plan':<10} {'Rubro':<15} {'Fecha Registro':<20}") + print("-" * 80) + + for user in users: + user_id, email, plan, rubro, created_at = user + # Formatear fecha + fecha = created_at if created_at else 'N/A' + print(f"{user_id:<5} {email:<35} {plan:<10} {rubro:<15} {fecha:<20}") + + print("-" * 80) + print(f"Total: {len(users)} usuario(s)") + + # Obtener sitios por usuario + print("\n" + "=" * 80) + print("🌐 SITIOS POR USUARIO") + print("=" * 80) + + for user in users: + user_id, email, plan, rubro, created_at = user + c.execute('SELECT id, slug, theme, status, created_at FROM sites WHERE user_id = ? ORDER BY id', (user_id,)) + sites = c.fetchall() + + print(f"\n👤 Usuario ID {user_id} ({email}):") + if sites: + print(f" {'ID':<5} {'Slug':<25} {'Tema':<20} {'Estado':<12} {'Fecha':<20}") + print(" " + "-" * 82) + for site in sites: + site_id, slug, theme, status, site_created = site + fecha = site_created if site_created else 'N/A' + print(f" {site_id:<5} {slug:<25} {theme:<20} {status:<12} {fecha:<20}") + else: + print(" ⚠️ No tiene sitios creados") + + conn.close() + + except Exception as e: + print(f"❌ Error: {e}") + import traceback + traceback.print_exc() + +if __name__ == '__main__': + ver_usuarios() diff --git a/deploy_full.sh b/deploy_full.sh new file mode 100644 index 0000000..c7acd88 --- /dev/null +++ b/deploy_full.sh @@ -0,0 +1,32 @@ +#!/bin/bash +# Despliegue completo a Raspberry Pi + +RASPBERRY_USER="pi" +RASPBERRY_HOST="192.168.1.134" +RASPBERRY_PORT="2222" +RASPBERRY_PASS="Gdk1983gdk45@" +RASPBERRY_PATH="/home/pi/gkachele-saas" +LOCAL_PATH="/mnt/c/word/demo" + +echo "🚀 Iniciando despliegue completo..." + +# 1. Copiar app.py +echo "📦 Copiando app.py..." +sshpass -p "$RASPBERRY_PASS" scp -P $RASPBERRY_PORT -o StrictHostKeyChecking=no $LOCAL_PATH/app.py $RASPBERRY_USER@$RASPBERRY_HOST:$RASPBERRY_PATH/app.py + +# 2. Copiar Templates (customizer.html) +echo "📦 Copiando templates..." +sshpass -p "$RASPBERRY_PASS" scp -P $RASPBERRY_PORT -o StrictHostKeyChecking=no -r $LOCAL_PATH/templates/* $RASPBERRY_USER@$RASPBERRY_HOST:$RASPBERRY_PATH/templates/ + +# 3. Copiar Themes (restaurante-moderno/template.html) +# Asegurar que directorio themes existe +sshpass -p "$RASPBERRY_PASS" ssh -p $RASPBERRY_PORT -o StrictHostKeyChecking=no $RASPBERRY_USER@$RASPBERRY_HOST "mkdir -p $RASPBERRY_PATH/themes" + +echo "📦 Copiando themes..." +sshpass -p "$RASPBERRY_PASS" scp -P $RASPBERRY_PORT -o StrictHostKeyChecking=no -r $LOCAL_PATH/themes/* $RASPBERRY_USER@$RASPBERRY_HOST:$RASPBERRY_PATH/themes/ + +# 4. Reiniciar servicio +echo "🔄 Reiniciando servicio..." +sshpass -p "$RASPBERRY_PASS" ssh -p $RASPBERRY_PORT -o StrictHostKeyChecking=no $RASPBERRY_USER@$RASPBERRY_HOST 'sudo systemctl restart gkachele-saas' + +echo "✅ ¡Despliegue completado! Refresca el navegador." diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..32d0b40 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,66 @@ +services: + # Base de datos MySQL para WordPress + db: + image: mysql:8.0 + container_name: wordpress_db + restart: unless-stopped + environment: + MYSQL_DATABASE: wordpress + MYSQL_USER: wordpress + MYSQL_PASSWORD: wordpress_password + MYSQL_ROOT_PASSWORD: root_password + volumes: + - db_data:/var/lib/mysql + networks: + - wordpress_network + healthcheck: + test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] + timeout: 20s + retries: 10 + + # WordPress + wordpress: + image: wordpress:latest + container_name: wordpress_app + restart: unless-stopped + ports: + - "8080:80" + environment: + WORDPRESS_DB_HOST: db:3306 + WORDPRESS_DB_USER: wordpress + WORDPRESS_DB_PASSWORD: wordpress_password + WORDPRESS_DB_NAME: wordpress + volumes: + - wordpress_data:/var/www/html + - ./wp-content:/var/www/html/wp-content # Para temas y plugins personalizados + depends_on: + db: + condition: service_healthy + networks: + - wordpress_network + + # phpMyAdmin (opcional, para administrar la base de datos) + phpmyadmin: + image: phpmyadmin:latest + container_name: wordpress_phpmyadmin + restart: unless-stopped + ports: + - "8081:80" + environment: + PMA_HOST: db + PMA_USER: root + PMA_PASSWORD: root_password + depends_on: + - db + networks: + - wordpress_network + +volumes: + db_data: + driver: local + wordpress_data: + driver: local + +networks: + wordpress_network: + driver: bridge diff --git a/gitea-compose.yml b/gitea-compose.yml new file mode 100644 index 0000000..25a2b85 --- /dev/null +++ b/gitea-compose.yml @@ -0,0 +1,27 @@ +version: "3" + +networks: + gitea: + external: false + +services: + server: + image: gitea/gitea:latest + container_name: gitea + environment: + - USER_UID=1000 + - USER_GID=1000 + - GITEA__database__DB_TYPE=sqlite3 + - GITEA__server__DOMAIN=git.gk-saas.komkida.duckdns.org + - GITEA__server__SSH_DOMAIN=git.gk-saas.komkida.duckdns.org + - GITEA__server__ROOT_URL=http://git.gk-saas.komkida.duckdns.org/ + restart: always + networks: + - gitea + volumes: + - ./gitea_data:/data + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro + ports: + - "3000:3000" + - "2223:22" diff --git a/gitea-nginx.conf b/gitea-nginx.conf new file mode 100644 index 0000000..9e06369 --- /dev/null +++ b/gitea-nginx.conf @@ -0,0 +1,12 @@ +server { + listen 80; + server_name git.gk-saas.komkida.duckdns.org; + + location / { + proxy_pass http://localhost:3000; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } +} diff --git a/gitea_connector.py b/gitea_connector.py new file mode 100644 index 0000000..09b36b1 --- /dev/null +++ b/gitea_connector.py @@ -0,0 +1,78 @@ +import requests +import json +import os + +# CONFIGURACIÓN +# Cuando tengas el token, ponlo aquí o en variable de entorno +GITEA_URL = "http://git.gk-saas.komkida.duckdns.org" # Interno: "http://localhost:3000" si corre en la misma Pi +GITEA_TOKEN = "20e7a102677c5cd7e2e0a241e9ea1cf6364db643" + +def create_org(org_name): + """Crea una organización para un cliente (ej. 'cliente-123')""" + headers = { + 'Authorization': f'token {GITEA_TOKEN}', + 'Content-Type': 'application/json' + } + data = { + "username": org_name, + "visibility": "private", + "description": f"Organización para {org_name}", + "website": "" + } + + response = requests.post(f"{GITEA_URL}/api/v1/orgs", headers=headers, json=data) + + if response.status_code == 201: + print(f"✅ Organización '{org_name}' creada.") + return True + elif response.status_code == 422: + print(f"ℹ️ La organización '{org_name}' ya existe.") + return True + else: + print(f"❌ Error al crear organización: {response.text}") + return False + +def create_repo(org_name, repo_name, description="Sitio generado por GKACHELE SaaS"): + """Crea un repositorio dentro de una organización""" + headers = { + 'Authorization': f'token {GITEA_TOKEN}', + 'Content-Type': 'application/json' + } + data = { + "name": repo_name, + "description": description, + "private": True, + "auto_init": True, # Crea README y branch main automáticamente + "gitignores": "Python", + "license": "MIT", + "default_branch": "main" + } + + # Endpoint para crear repo en organización + url = f"{GITEA_URL}/api/v1/orgs/{org_name}/repos" + + response = requests.post(url, headers=headers, json=data) + + if response.status_code == 201: + repo_data = response.json() + print(f"✅ Repositorio '{org_name}/{repo_name}' creado exitosamente.") + print(f"🔗 Clone URL: {repo_data['clone_url']}") + return repo_data + elif response.status_code == 409: + print(f"ℹ️ El repositorio '{repo_name}' ya existe en '{org_name}'.") + # Intentar obtener el repo existente + # response = requests.get(f"{GITEA_URL}/api/v1/repos/{org_name}/{repo_name}", headers=headers) + return None + else: + print(f"❌ Error al crear repositorio: {response.text}") + return None + +if __name__ == "__main__": + print("--- 🧪 Test de Conexión con Gitea ---") + if GITEA_TOKEN == "TU_TOKEN_DE_GITEA_AQUI": + print("⚠️ Primero genera un token en Gitea (Settings -> Applications -> Generate Token)") + else: + # Prueba + CLIENTE_TEST = "cliente-prueba-1" + create_org(CLIENTE_TEST) + create_repo(CLIENTE_TEST, "sitio-web-1") diff --git a/gk-saas.komkida.duckdns.org.conf b/gk-saas.komkida.duckdns.org.conf new file mode 100644 index 0000000..9c255c9 --- /dev/null +++ b/gk-saas.komkida.duckdns.org.conf @@ -0,0 +1,30 @@ +# Configuración para gk-saas.komkida.duckdns.org - Flask SaaS (SIN GitHub) +server { + listen 80; + server_name gk-saas.komkida.duckdns.org; + + # Logs + access_log /var/log/nginx/gk-saas-access.log; + error_log /var/log/nginx/gk-saas-error.log; + + # Proxy DIRECTO al Flask SaaS (SIN GitHub) + location / { + proxy_pass http://localhost:5001; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + + # Timeouts + proxy_connect_timeout 60s; + proxy_send_timeout 60s; + proxy_read_timeout 60s; + } + + # Health check + location /health { + access_log off; + return 200 "healthy - gk SaaS\n"; + add_header Content-Type text/plain; + } +} diff --git a/gkachele-saas.service b/gkachele-saas.service new file mode 100644 index 0000000..dedfe49 --- /dev/null +++ b/gkachele-saas.service @@ -0,0 +1,15 @@ +[Unit] +Description=GKACHELE SaaS Flask App +After=network.target + +[Service] +Type=simple +User=pi +WorkingDirectory=/home/pi/gkachele-saas +Environment="PATH=/usr/bin:/usr/local/bin:/home/pi/.local/bin" +ExecStart=/usr/bin/python3 /home/pi/gkachele-saas/app.py +Restart=always +RestartSec=10 + +[Install] +WantedBy=multi-user.target diff --git a/kubernetes/README.md b/kubernetes/README.md new file mode 100644 index 0000000..42b193e --- /dev/null +++ b/kubernetes/README.md @@ -0,0 +1,86 @@ +# WordPress con Kubernetes + +Ejemplo básico de WordPress desplegado en Kubernetes. + +## 🚀 Requisitos + +- Cluster de Kubernetes funcionando (minikube, kind, EKS, GKE, AKS, etc.) +- `kubectl` instalado y configurado + +## 📦 Instalación + +### 1. Aplicar los manifiestos + +```bash +kubectl apply -f wordpress-deployment.yaml +``` + +### 2. Verificar el estado + +```bash +# Ver los pods +kubectl get pods + +# Ver los servicios +kubectl get services + +# Ver los PVCs +kubectl get pvc +``` + +### 3. Acceder a WordPress + +#### Con minikube: +```bash +minikube service wordpress-service +``` + +#### Con LoadBalancer (cloud): +```bash +kubectl get service wordpress-service +# Usa la IP externa del LoadBalancer +``` + +#### Con port-forward (desarrollo): +```bash +kubectl port-forward service/wordpress-service 8080:80 +# Luego abre http://localhost:8080 +``` + +## 🛠️ Comandos Útiles + +### Ver logs +```bash +kubectl logs -f deployment/wordpress-deployment +kubectl logs -f deployment/mysql-deployment +``` + +### Escalar WordPress +```bash +kubectl scale deployment wordpress-deployment --replicas=3 +``` + +### Eliminar todo +```bash +kubectl delete -f wordpress-deployment.yaml +``` + +### Ver detalles de un pod +```bash +kubectl describe pod +``` + +## 📝 Notas + +- Los PersistentVolumeClaims requieren un StorageClass configurado en tu cluster +- En producción, usa un gestor de secretos (AWS Secrets Manager, HashiCorp Vault, etc.) +- Considera usar Ingress para manejar el tráfico HTTP/HTTPS +- Para alta disponibilidad, configura múltiples réplicas y un LoadBalancer + +## 🔒 Seguridad + +⚠️ **IMPORTANTE**: Este ejemplo usa Secrets en texto plano. En producción: +- Usa un gestor de secretos externo +- Implementa RBAC apropiado +- Configura NetworkPolicies +- Usa certificados SSL/TLS con Ingress diff --git a/kubernetes/wordpress-deployment.yaml b/kubernetes/wordpress-deployment.yaml new file mode 100644 index 0000000..a395e46 --- /dev/null +++ b/kubernetes/wordpress-deployment.yaml @@ -0,0 +1,208 @@ +--- +# ConfigMap para configuración de WordPress +apiVersion: v1 +kind: ConfigMap +metadata: + name: wordpress-config + labels: + app: wordpress +data: + WORDPRESS_DB_HOST: "mysql-service" + WORDPRESS_DB_NAME: "wordpress" + WORDPRESS_DB_USER: "wordpress" + +--- +# Secret para contraseñas (⚠️ En producción usar un gestor de secretos) +apiVersion: v1 +kind: Secret +metadata: + name: wordpress-secret + labels: + app: wordpress +type: Opaque +stringData: + WORDPRESS_DB_PASSWORD: "wordpress_password" + MYSQL_ROOT_PASSWORD: "root_password" + MYSQL_PASSWORD: "wordpress_password" + +--- +# PersistentVolumeClaim para MySQL +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: mysql-pvc + labels: + app: mysql +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 5Gi + +--- +# PersistentVolumeClaim para WordPress +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: wordpress-pvc + labels: + app: wordpress +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 5Gi + +--- +# Deployment de MySQL +apiVersion: apps/v1 +kind: Deployment +metadata: + name: mysql-deployment + labels: + app: mysql +spec: + replicas: 1 + selector: + matchLabels: + app: mysql + template: + metadata: + labels: + app: mysql + spec: + containers: + - name: mysql + image: mysql:8.0 + ports: + - containerPort: 3306 + env: + - name: MYSQL_DATABASE + value: wordpress + - name: MYSQL_USER + valueFrom: + configMapKeyRef: + name: wordpress-config + key: WORDPRESS_DB_USER + - name: MYSQL_PASSWORD + valueFrom: + secretKeyRef: + name: wordpress-secret + key: MYSQL_PASSWORD + - name: MYSQL_ROOT_PASSWORD + valueFrom: + secretKeyRef: + name: wordpress-secret + key: MYSQL_ROOT_PASSWORD + volumeMounts: + - name: mysql-storage + mountPath: /var/lib/mysql + livenessProbe: + exec: + command: + - mysqladmin + - ping + - -h + - localhost + initialDelaySeconds: 30 + periodSeconds: 10 + readinessProbe: + exec: + command: + - mysqladmin + - ping + - -h + - localhost + initialDelaySeconds: 5 + periodSeconds: 5 + volumes: + - name: mysql-storage + persistentVolumeClaim: + claimName: mysql-pvc + +--- +# Service para MySQL +apiVersion: v1 +kind: Service +metadata: + name: mysql-service + labels: + app: mysql +spec: + ports: + - port: 3306 + targetPort: 3306 + selector: + app: mysql + clusterIP: None + +--- +# Deployment de WordPress +apiVersion: apps/v1 +kind: Deployment +metadata: + name: wordpress-deployment + labels: + app: wordpress +spec: + replicas: 1 + selector: + matchLabels: + app: wordpress + template: + metadata: + labels: + app: wordpress + spec: + containers: + - name: wordpress + image: wordpress:latest + ports: + - containerPort: 80 + env: + - name: WORDPRESS_DB_HOST + valueFrom: + configMapKeyRef: + name: wordpress-config + key: WORDPRESS_DB_HOST + - name: WORDPRESS_DB_NAME + valueFrom: + configMapKeyRef: + name: wordpress-config + key: WORDPRESS_DB_NAME + - name: WORDPRESS_DB_USER + valueFrom: + configMapKeyRef: + name: wordpress-config + key: WORDPRESS_DB_USER + - name: WORDPRESS_DB_PASSWORD + valueFrom: + secretKeyRef: + name: wordpress-secret + key: WORDPRESS_DB_PASSWORD + volumeMounts: + - name: wordpress-storage + mountPath: /var/www/html + volumes: + - name: wordpress-storage + persistentVolumeClaim: + claimName: wordpress-pvc + +--- +# Service para WordPress +apiVersion: v1 +kind: Service +metadata: + name: wordpress-service + labels: + app: wordpress +spec: + type: LoadBalancer + ports: + - port: 80 + targetPort: 80 + protocol: TCP + selector: + app: wordpress diff --git a/memoria/COMO_CONECTAR_DB.md b/memoria/COMO_CONECTAR_DB.md new file mode 100644 index 0000000..cefab07 --- /dev/null +++ b/memoria/COMO_CONECTAR_DB.md @@ -0,0 +1,182 @@ +# 🔌 CÓMO CONECTARSE A LA BASE DE DATOS DE CLIENTES + +**GKACHELE™ - Guía de Conexión a Base de Datos** +© 2025 GKACHELE™. Todos los derechos reservados. + +## 📍 Ubicación de la Base de Datos + +La base de datos **`main.db`** contiene TODOS los clientes (sistema multi-tenant). + +### Ubicaciones: + +1. **Local (Desarrollo):** + ``` + C:\word\demo\database\main.db + ``` + +2. **Raspberry Pi (Producción):** + ``` + /home/pi/gkachele-saas/database/main.db + ``` + +--- + +## 🖥️ OPCIÓN 1: DB Browser for SQLite (GUI - Recomendado) + +Ya tienes **DB Browser for SQLite** abierto. Sigue estos pasos: + +### Para Base de Datos Local: + +1. En DB Browser, haz clic en **"Abrir base de datos"** (botón en la barra superior) +2. Navega a: `C:\word\demo\database\` +3. Selecciona `main.db` +4. ¡Listo! Verás todas las tablas + +### Para Base de Datos de Raspberry (Copiar primero): + +1. **Copiar DB desde Raspberry:** + ```bash + # Desde PowerShell o WSL: + wsl bash -c "sshpass -p 'Gdk1983gdk45@' scp -P 2222 -o StrictHostKeyChecking=no pi@192.168.1.134:/home/pi/gkachele-saas/database/main.db /mnt/c/word/demo/database/main_raspberry.db" + ``` + +2. **Abrir en DB Browser:** + - Abre `C:\word\demo\database\main_raspberry.db` + +--- + +## 📊 Tablas Disponibles + +Una vez conectado, verás estas tablas: + +### 👥 **users** - Todos los clientes +```sql +SELECT * FROM users; +``` +- `id`, `email`, `password` (hash), `plan`, `rubro`, `created_at` + +### 🌐 **sites** - Todos los sitios +```sql +SELECT * FROM sites; +``` +- `id`, `user_id`, `slug`, `theme`, `status`, `content_json`, `created_at` + +### 📋 **menus** - Menús dinámicos +```sql +SELECT * FROM menus; +``` +- `id`, `user_id`, `site_id`, `location`, `title`, `url`, `order_index`, `parent_id` + +### 🧩 **widgets** - Widgets dinámicos +```sql +SELECT * FROM widgets; +``` +- `id`, `user_id`, `site_id`, `area`, `type`, `title`, `content`, `order_index` + +### 📝 **content** - Contenido por sección +```sql +SELECT * FROM content; +``` + +### ⚙️ **settings** - Configuraciones +```sql +SELECT * FROM settings; +``` + +### 📤 **requests** - Solicitudes de publicación +```sql +SELECT * FROM requests; +``` + +### 📁 **media** - Archivos subidos +```sql +SELECT * FROM media; +``` + +--- + +## 🐍 OPCIÓN 2: Script Python (Terminal) + +### Ver Usuarios y Sitios: + +```bash +cd C:\word\demo +python ver_usuarios.py +``` + +### Limpiar Base de Datos: + +```bash +cd C:\word\demo +python limpiar_db.py +``` + +--- + +## 🔍 Consultas Útiles + +### Ver todos los clientes con sus sitios: +```sql +SELECT + u.id AS user_id, + u.email, + u.plan, + u.rubro, + COUNT(s.id) AS num_sitios +FROM users u +LEFT JOIN sites s ON u.id = s.user_id +GROUP BY u.id +ORDER BY u.id; +``` + +### Ver sitios de un cliente específico: +```sql +SELECT * FROM sites WHERE user_id = 1; +``` + +### Ver menús de un sitio: +```sql +SELECT * FROM menus WHERE site_id = 1 ORDER BY location, order_index; +``` + +### Ver widgets de un sitio: +```sql +SELECT * FROM widgets WHERE site_id = 1 ORDER BY area, order_index; +``` + +--- + +## 🔄 Sincronizar DB desde Raspberry + +Si quieres trabajar con la base de datos más actualizada (de producción): + +```bash +# Script para copiar DB desde Raspberry +wsl bash -c "sshpass -p 'Gdk1983gdk45@' scp -P 2222 -o StrictHostKeyChecking=no pi@192.168.1.134:/home/pi/gkachele-saas/database/main.db /mnt/c/word/demo/database/main_raspberry.db && echo '✅ DB copiada desde Raspberry'" +``` + +Luego abre `main_raspberry.db` en DB Browser. + +--- + +## ⚠️ IMPORTANTE + +- **NO edites directamente la DB de producción** sin hacer backup primero +- **Usa los scripts** (`ver_usuarios.py`, `limpiar_db.py`) para operaciones comunes +- **Haz backup** antes de cambios importantes (usa `backup_completo.sh`) + +--- + +## 🛠️ Script Rápido: Copiar DB desde Raspberry + +Ejecuta este comando para copiar la DB más reciente: + +```bash +wsl bash -c "sshpass -p 'Gdk1983gdk45@' scp -P 2222 -o StrictHostKeyChecking=no pi@192.168.1.134:/home/pi/gkachele-saas/database/main.db /mnt/c/word/demo/database/main_raspberry_$(date +%Y%m%d_%H%M%S).db" +``` + +Esto creará una copia con timestamp para no sobrescribir. + +--- + +**© 2025 GKACHELE™. Todos los derechos reservados.** diff --git a/memoria/CREDENCIALES_CLIENTES.md b/memoria/CREDENCIALES_CLIENTES.md new file mode 100644 index 0000000..a39e4ac --- /dev/null +++ b/memoria/CREDENCIALES_CLIENTES.md @@ -0,0 +1,48 @@ +# 🔐 Credenciales de Clientes - GKACHELE™ + +**© 2025 GKACHELE™. Todos los derechos reservados.** + +## ⚠️ ARCHIVO CONFIDENCIAL + +Este archivo contiene credenciales de acceso de clientes para administración. + +**MANTENER PRIVADO Y SEGURO** + +--- + +## 📋 Credenciales Registradas + +### Usuario Administrador Principal +- **ID:** 1 +- **Email:** `admin@gkachele.com` +- **Password:** `admin123` ⚠️ **CAMBIAR DESPUÉS** +- **Rol:** `administrator` +- **Estado:** `active` + +--- + +## 👥 Clientes Registrados + +| ID | Email | Password | Plan | Rubro | Fecha Registro | Estado | +|----|-------|----------|------|-------|----------------|--------| +| - | - | - | - | - | - | - | + +--- + +## 📝 Notas + +- Las contraseñas están hasheadas en la base de datos +- Este archivo es solo para referencia administrativa +- **NUNCA** compartir estas credenciales +- Cambiar contraseñas después del primer acceso + +--- + +## 🔄 Actualización + +**Última actualización:** 14 Enero 2025 +**Hash:** `gkachele-credenciales-20250114` + +--- + +**© 2025 GKACHELE™. Todos los derechos reservados.** diff --git a/memoria/CUSTOMIZER_WORDPRESS_COMPLETO.md b/memoria/CUSTOMIZER_WORDPRESS_COMPLETO.md new file mode 100644 index 0000000..e3fba11 --- /dev/null +++ b/memoria/CUSTOMIZER_WORDPRESS_COMPLETO.md @@ -0,0 +1,457 @@ +# 🎯 CUSTOMIZER WORDPRESS COMPLETO - DEMO PARA ADAPTAR + +**© 2025 GKACHELE™. Todos los derechos reservados.** + +**Fecha:** 15 Enero 2025 +**Hash:** `gkachele-customizer-wordpress-completo-20250115-001` +**Estado:** ✅ **DEMO COMPLETO CREADO - LISTO PARA ANALIZAR Y ADAPTAR** + +--- + +## 📋 ARCHIVO DEMO + +**Ubicación:** `c:\word\demo\templates\customizer-wordpress-COMPLETO.html` + +**Tipo:** Archivo HTML independiente (no toca código actual) + +**Para verlo:** Abrir directamente en navegador o usar `file:///C:/word/demo/templates/customizer-wordpress-COMPLETO.html` + +--- + +## ✅ FUNCIONALIDADES IMPLEMENTADAS (TODO LO DE WORDPRESS) + +### 1. 🎨 **DISEÑO VISUAL EXACTO WORDPRESS** + +- ✅ Header: Fondo #23282d, logo "W", título "Personalizar", botón cerrar +- ✅ Sidebar: 300px de ancho, fondo blanco, borde #ddd +- ✅ Footer: Sticky, fondo #f6f7f7, botones estilo WordPress +- ✅ Colores oficiales WordPress: #2271b1 (azul), #f0f0f1 (gris), #23282d (header) +- ✅ Tipografía: -apple-system, Segoe UI, Roboto +- ✅ Scroll suave en sidebar + +--- + +### 2. 📑 **PANELES Y SECCIONES COLAPSABLES** + +**Panel: General Options** (colapsable) +- Identidad del sitio +- Top Bar Setting +- Menu Bar Setting +- Page Header Setting +- Top Scroller Setting +- Blog Setting +- Footer Setting +- Body Typography Setting + +**Secciones individuales:** +- Colores +- Contenido +- Medios +- Contacto +- Redes Sociales +- Widgets +- Menús + +**Funcionalidad:** +- Paneles se pueden colapsar/expandir +- Navegación lateral con menú +- Secciones activas se resaltan con borde azul izquierdo + +--- + +### 3. 🎛️ **CONTROLES IMPLEMENTADOS** + +#### **Toggle Switches (Enable/Disable)** +- Estilo WordPress exacto +- Slider animado +- Color azul cuando activo (#2271b1) +- Usado para: Enable Top Header, Enable Info 1/2/3, WhatsApp flotante + +#### **Range Sliders** +- Deslizadores para valores numéricos +- Muestra valor actual (ej: "150px", "24px", "1.6") +- Usado para: Logo Size, Font Sizes, Line Height +- Estilo WordPress: thumb azul, track gris + +#### **Color Pickers** +- Input type="color" + input texto sincronizado +- Muestra hex code +- Usado para: Color primario, secundario, texto, fondo + +#### **Media Uploaders** +- Botón "Seleccionar imagen" +- Preview de imagen seleccionada +- Usado para: Logo, Hero Image, Favicon +- (En WordPress real abre biblioteca de medios) + +#### **Text Inputs** +- Inputs de texto estándar +- Focus: borde azul + box-shadow +- Usado para: Nombres, títulos, URLs, emails, teléfonos + +#### **Textareas** +- Áreas de texto multilínea +- Resizable verticalmente +- Usado para: Descripciones, contenido largo + +#### **Selects (Dropdowns)** +- Selects estándar +- Estilo WordPress +- Usado para: Font Family, tipos de redes sociales + +#### **Repeater Controls** +- Añadir/eliminar elementos repetidos +- Cada elemento tiene sus propios controles +- Botón "Eliminar" por elemento +- Botón "+ Añadir" para crear nuevos +- Usado para: Redes sociales múltiples + +#### **Icon Pickers** +- Grid de iconos visual +- Click para seleccionar +- Visual feedback (selected state) +- Usado para: Seleccionar iconos Font Awesome + +#### **Hidden Controls** +- Controles ocultos (solo labels) +- Usado para: Separadores de sección ("Info 1", "Info 2", "Setting") + +#### **Dividers** +- Líneas separadoras horizontales +- Usado para: Separar grupos de controles + +--- + +### 4. 📱 **SECCIONES ESPECÍFICAS IMPLEMENTADAS** + +#### **Identidad del sitio** +- Nombre del sitio (text) +- Descripción corta (textarea) +- Logo Size (range slider) +- Site Title Font Size (range slider) +- Site Description Font Size (range slider) + +#### **Top Bar Setting** +- Enable/Disable toggle +- Info 1: Enable toggle, Icon picker, Title, Link +- Info 2: Enable toggle, Icon, Title, Link +- Info 3: Enable toggle, Icon, Title, Link + +#### **Colores** +- Color primario (color picker) +- Color secundario (color picker) +- Color de texto (color picker) +- Color de fondo (color picker) + +#### **Body Typography Setting** +- Font Family (select) +- Font Size (range slider) +- Line Height (range slider) + +#### **Medios** +- Logo (media uploader + preview) +- Imagen Hero (media uploader + preview) +- Favicon (media uploader + preview) + +#### **Redes Sociales** +- WhatsApp Flotante (toggle) +- Número de WhatsApp (tel input) +- Repeater de redes sociales (añadir/eliminar) + - Tipo (select: Facebook, Instagram, Twitter, YouTube, LinkedIn) + - URL (url input) + +#### **Contenido** +- Título principal (text) +- Descripción (textarea) + +#### **Contacto** +- Dirección (text) +- Teléfono (tel) +- Email (email) + +--- + +### 5. 💾 **SISTEMA DE GUARDADO (ESTILO WORDPRESS)** + +#### **Botones Footer:** +- **"Descartar cambios"** (gris, solo visible si hay cambios) +- **"Guardar y Publicar"** (azul, siempre visible) + +#### **Estados:** +- **"Listo"** - Sin cambios +- **"Guardando..."** - Mientras guarda (azul) +- **"Guardado"** - Guardado exitoso (verde) +- **Error** - Si falla (rojo) + +#### **Indicador de cambios sin guardar:** +- Punto rojo pequeño junto a estado +- Solo visible si hay cambios sin guardar + +#### **Comportamiento:** +- **NO guarda automáticamente** (solo preview en tiempo real) +- **Solo guarda cuando presionas "Guardar y Publicar"** +- **"Descartar"** restaura valores originales +- **Confirmación antes de salir** si hay cambios sin guardar + +--- + +### 6. 🔄 **FUNCIONALIDADES JAVASCRIPT** + +#### **Navegación:** +- `showSection(sectionId)` - Mostrar sección específica +- `togglePanel(element)` - Colapsar/expandir panel +- Navegación lateral actualiza sección activa + +#### **Detección de cambios:** +- `markAsChanged()` - Marca que hay cambios sin guardar +- Detecta cambios en todos los inputs +- Actualiza indicador visual + +#### **Guardado:** +- `saveChanges()` - Guarda cambios y actualiza estado +- Simula guardado (1 segundo) +- Actualiza valores originales +- Muestra "Guardado" temporalmente + +#### **Descartar:** +- `discardChanges()` - Restaura valores originales +- Confirmación antes de descartar +- Sincroniza todos los controles (colors, ranges, toggles) + +#### **Preview:** +- `updatePreview()` - Actualiza preview en tiempo real +- Se llama automáticamente al cambiar cualquier control +- (En implementación real, actualizaría iframe) + +#### **Repeater:** +- `addRepeaterItem()` - Añade nuevo elemento +- `removeRepeaterItem(button)` - Elimina elemento +- Confirmación antes de eliminar + +#### **Media Uploader:** +- `openMediaUploader(type)` - Abre selector de medios +- (En WordPress real, abre biblioteca de medios) +- Preview de imagen seleccionada + +#### **Icon Picker:** +- Click en icono selecciona y actualiza input +- Visual feedback (selected state) +- Sincroniza con input de icono + +--- + +### 7. 🎨 **ESTILOS CSS (COLORES WORDPRESS)** + +```css +/* Colores principales */ +Header: #23282d +Sidebar fondo: #fff +Sidebar borde: #ddd +Footer fondo: #f6f7f7 +Botón primario: #2271b1 +Botón primario hover: #135e96 +Botón secundario: #f0f0f1 +Botón secundario hover: #dcdcde +Texto: #23282d +Texto secundario: #646970 +Borde inputs: #8c8f94 +Focus inputs: #2271b1 (borde + box-shadow) +Toggle activo: #2271b1 +Toggle inactivo: #c3c4c7 +Range thumb: #2271b1 +Estado guardado: #00a32a +Estado error: #d63638 +Indicador cambios: #d63638 +``` + +--- + +### 8. 📐 **ESTRUCTURA HTML** + +``` +customizer-header (fixed top) + ├─ customizer-header-left + │ ├─ customizer-logo (W) + │ └─ customizer-title (Personalizar) + └─ customizer-close (×) + +customizer-container (flex) + ├─ customizer-sidebar (300px) + │ ├─ customizer-nav (menú lateral) + │ │ ├─ customizer-nav-panel (colapsable) + │ │ │ ├─ customizer-nav-panel-title + │ │ │ └─ customizer-nav-panel-items + │ │ │ └─ customizer-nav-item (secciones) + │ │ └─ customizer-nav-item-single (secciones individuales) + │ └─ customizer-sidebar-content + │ └─ customizer-section (contenido de cada sección) + │ ├─ customizer-section-title + │ └─ customizer-control (cada control) + │ ├─ customizer-control-label + │ ├─ [tipo de control] + │ └─ customizer-control-description + └─ customizer-preview (flex: 1) + └─ preview-iframe + +customizer-footer (fixed bottom) + ├─ customizer-footer-left + │ ├─ customizer-unsaved-indicator + │ └─ customizer-status + └─ customizer-footer-right + ├─ btn-discard + └─ btn-save +``` + +--- + +### 9. 🔧 **TIPOS DE CONTROLES Y SUS CLASES CSS** + +| Tipo | Clase CSS | Uso | +|------|-----------|-----| +| Toggle Switch | `.customizer-toggle` | Enable/Disable | +| Range Slider | `.customizer-range` | Valores numéricos | +| Color Picker | `.customizer-color-picker` | Colores | +| Text Input | `.customizer-control-input` | Texto | +| Textarea | `.customizer-control-textarea` | Texto largo | +| Select | `.customizer-control-select` | Dropdowns | +| Media Button | `.customizer-media-button` | Subir imágenes | +| Repeater | `.customizer-repeater` | Elementos repetidos | +| Icon Picker | `.customizer-icon-picker` | Seleccionar iconos | +| Hidden | `.customizer-control-hidden` | Separadores | + +--- + +### 10. 📝 **ATRIBUTOS DATA-SETTING** + +Todos los controles tienen `data-setting="nombre_setting"` para: +- Identificar qué control es +- Guardar/restaurar valores +- Sincronizar con backend + +Ejemplos: +- `data-setting="site_name"` +- `data-setting="enable_top_header"` +- `data-setting="color_primary"` +- `data-setting="logo_size"` + +--- + +### 11. 🎯 **COMPORTAMIENTO EXACTO WORDPRESS** + +1. **Preview en tiempo real:** + - Cambios se ven inmediatamente en preview + - NO se guardan hasta presionar "Guardar y Publicar" + +2. **Detección de cambios:** + - Cualquier cambio marca como "sin guardar" + - Muestra punto rojo + botón "Descartar" + +3. **Guardado:** + - Solo cuando presionas botón + - Muestra "Guardando..." mientras guarda + - Muestra "Guardado" cuando termina + +4. **Descartar:** + - Restaura TODOS los valores originales + - Sincroniza todos los controles + - Oculta indicador de cambios + +5. **Salir:** + - Si hay cambios sin guardar, pregunta confirmación + - Si no hay cambios, sale directamente + +--- + +### 12. 🔄 **SINCRONIZACIÓN DE CONTROLES** + +#### **Color Pickers:** +- Color picker → Input texto (hex) +- Ambos sincronizados bidireccionalmente + +#### **Range Sliders:** +- Range slider → Span con valor +- Muestra unidad (px, etc.) + +#### **Toggles:** +- Checkbox → Slider visual +- Estado sincronizado + +--- + +### 13. 📦 **FUNCIONALIDADES ADICIONALES** + +- ✅ Scroll suave en sidebar +- ✅ Paneles colapsables +- ✅ Navegación rápida entre secciones +- ✅ Preview iframe (preparado) +- ✅ Responsive (sidebar fijo 300px) +- ✅ Confirmaciones antes de acciones destructivas +- ✅ Estados visuales claros +- ✅ Tooltips y descripciones +- ✅ Validación de inputs (type="email", "tel", "url") + +--- + +### 14. 🎨 **DETALLES VISUALES WORDPRESS** + +- Border radius: 4px (botones, inputs) +- Transitions: 0.2s (hover, focus) +- Box shadow en focus: `0 0 0 1px #2271b1` +- Font sizes: 13px (labels), 14px (inputs), 12px (descriptions) +- Padding: 8px 12px (inputs), 8px 16px (botones) +- Gap: 10px (entre elementos) + +--- + +## 🚀 PRÓXIMOS PASOS PARA ADAPTAR + +1. **Analizar qué funcionalidades necesitamos:** + - Revisar demo completo + - Identificar qué secciones/controles usar + - Decidir qué adaptar y qué no + +2. **Adaptar al customizer actual:** + - Copiar diseño visual + - Implementar controles necesarios + - Integrar con backend existente + - Mantener funcionalidad actual + +3. **Implementar funcionalidades faltantes:** + - Mapa automático desde dirección + - WhatsApp flotante funcional + - Upload de archivos real + - Preview iframe funcional + +4. **Testing:** + - Probar todos los controles + - Verificar guardado/descartar + - Verificar preview en tiempo real + - Verificar todas las secciones + +--- + +## 📌 NOTAS IMPORTANTES + +- **Este es un DEMO independiente** - No toca código actual +- **Todo está implementado** - Listo para copiar/adaptar +- **Estilo WordPress exacto** - Colores, tipografía, espaciado +- **Funcionalidades completas** - Toggles, sliders, repeaters, etc. +- **Sistema de guardado correcto** - Como WordPress (no auto-guarda) + +--- + +## 🔗 REFERENCIAS + +- **Archivo demo:** `customizer-wordpress-COMPLETO.html` +- **Código WordPress analizado:** `wp-content/themes/abiz/core/customizer/` +- **Documentación problemas:** `PROBLEMAS_CRITICOS_CUSTOMIZER.md` + +--- + +**Última actualización:** 2025-01-15 +**Hash:** `gkachele-customizer-wordpress-completo-20250115-001` +**Estado:** ✅ **DEMO COMPLETO - LISTO PARA ANALIZAR Y ADAPTAR** + +--- + +**© 2025 GKACHELE™. Todos los derechos reservados.** diff --git a/memoria/DOCUMENTACION_PROYECTO.md b/memoria/DOCUMENTACION_PROYECTO.md new file mode 100644 index 0000000..3ee52ec --- /dev/null +++ b/memoria/DOCUMENTACION_PROYECTO.md @@ -0,0 +1,218 @@ +# 📖 Documentación del Proyecto - GKACHELE™ + +**© 2025 GKACHELE™. Todos los derechos reservados.** + +## 🎯 ¿Qué Estamos Construyendo? + +Un **SaaS (Software as a Servicio)** para que clientes creen y gestionen sus propios sitios web, similar a sistemas populares pero mejorado y personalizado. + +### Funcionalidad Principal: +- Clientes se registran → Crean su sitio → Lo personalizan → Lo publican +- Todo desde una interfaz web simple +- Sistema multi-tenant (todos los clientes en una sola base de datos) + +--- + +## 🏗️ Arquitectura Técnica + +### ¿Por qué Python/Flask y NO Docker? + +**Sí, es por la Raspberry Pi:** +- Raspberry Pi tiene recursos limitados +- Docker consume más memoria y CPU +- Python directo es más ligero y eficiente +- Más fácil de depurar y mantener +- **En VPS podrías usar Docker si quieres**, pero Python directo también funciona perfecto + +### Stack Tecnológico: +- **Backend:** Flask (Python 3) +- **Base de Datos:** SQLite (`main.db` - multi-tenant) +- **Frontend:** HTML, CSS, JavaScript +- **Servidor Web:** Nginx (reverse proxy) +- **Hosting:** Raspberry Pi 3 (actual) / VPS (recomendado para producción) + +--- + +## 🗄️ Base de Datos + +### Estructura Multi-tenant: +**TODO en una sola base de datos (`main.db`):** +- `users` - Todos los usuarios/clientes +- `sites` - Todos los sitios (filtrados por `user_id`) +- `menus` - Menús dinámicos +- `widgets` - Widgets dinámicos +- `content` - Contenido +- `settings` - Configuraciones +- `requests` - Solicitudes de publicación +- `media` - Archivos subidos + +### Acceso a Base de Datos: +- **Tu acceso:** Panel `/admin` (solo rol `administrator`) +- **Acceso clientes:** Solo ven SUS datos (filtrado por `user_id`) +- **Herramientas:** DB Browser for SQLite, scripts Python (`ver_usuarios.py`, `limpiar_db.py`) + +--- + +## 👥 Sistema de Usuarios y Roles + +### Roles (desde Base de Datos): +- `administrator` - Acceso total (tú) +- `editor` - Puede editar contenido +- `author` - Puede crear contenido +- `subscriber` - Solo lectura + +### Admin para Clientes: +- **Panel `/dashboard`** - Cliente ve SUS sitios +- **Panel `/customizer/{site_id}`** - Personalizar sitio +- **Panel `/dashboard/admin`** - Admin del cliente (media, config) + +--- + +## 🔒 Limitaciones por Plan + +### Sistema Actual: +- **Planes:** `base`, `premium`, etc. (campo en tabla `users`) +- **Limitaciones posibles:** + - Número de sitios + - Subida de fotos (tamaño, cantidad) + - Modificaciones (frecuencia, tipo) + - Funcionalidades avanzadas + +### Implementación: +- Verificar plan antes de acciones +- Contar recursos usados vs. límites del plan +- Bloquear acciones si excede límite + +--- + +## 📊 Detección de Movimientos + +### Sistema Actual: +- **No hay detección automática** de movimientos aún +- **Registros disponibles:** + - `created_at` - Fecha de creación + - `updated_at` - Fecha de actualización + - Logs del servidor (journalctl) + +### Posibles Mejoras: +- Tabla `activity_log` para registrar acciones +- Notificaciones de cambios +- Historial de modificaciones +- Auditoría de cambios + +--- + +## 🚀 VPS vs Raspberry Pi + +### Raspberry Pi (Actual): +- ✅ Bajo costo +- ✅ Suficiente para desarrollo/pruebas +- ❌ Recursos limitados +- ❌ Puede ser lento con muchos clientes + +### VPS (Recomendado para Producción): +- ✅ Más recursos (CPU, RAM, disco) +- ✅ Mejor rendimiento +- ✅ Más confiable +- ✅ Mejor para escalar +- ✅ Puedes usar Docker si quieres +- ✅ Mismo código funciona (solo cambiar configuración) + +### Migración a VPS: +1. Copiar código completo +2. Instalar Python3, Nginx +3. Copiar configuración +4. Cambiar dominio +5. Configurar SSL (Let's Encrypt) +6. **Mismo código, más potencia** + +--- + +## 🔄 Flujo Completo del Sistema + +``` +1. Cliente → Landing Page +2. Cliente → Registro (/register) + ├── Crea usuario en `users` + ├── Crea sitio automático en `sites` + └── Crea menús por defecto en `menus` +3. Cliente → Login (/login) + └── Redirige a `/customizer/{site_id}` (directo) +4. Cliente → Customizer + ├── Personaliza contenido + ├── Cambia colores, tipografía + └── Gestiona menús y widgets +5. Cliente → Envía para aprobación + └── Crea solicitud en `requests` +6. Admin → Aprueba desde `/admin` + └── Cambia status a `published` +7. Sitio → Público en `/site/{slug}` +``` + +--- + +## 📁 Estructura del Proyecto + +``` +c:\word\ +├── demo/ # Código principal +│ ├── app.py # Flask backend (TODO aquí) +│ ├── database/ +│ │ └── main.db # Base de datos multi-tenant +│ ├── themes/ # Templates +│ │ ├── _gkachele/ # Sistema modular (header.php, footer.php, sidebar.php) +│ │ └── {tema}/ # Temas específicos +│ ├── templates/ # HTML templates +│ └── static/ # CSS, JS +├── memoria/ # 📚 TODA LA DOCUMENTACIÓN +└── backups/ # Backups automáticos +``` + +--- + +## 🎯 Estado Actual + +### ✅ Funcionando: +- Registro de clientes +- Login (redirige a customizer) +- Dashboard del cliente +- Customizer (personalización) +- Sistema de menús y widgets +- Panel admin (ver/eliminar usuarios) +- Sistema de roles basado en DB + +### ⚠️ Pendiente: +- Limitaciones por plan +- Detección de movimientos/actividad +- Mejorar landing page +- Integración Gitea +- UI completa para gestionar menús + +--- + +## 🔐 Seguridad + +- Passwords hasheados (Werkzeug) +- Sesiones Flask +- Filtrado por `user_id` (cada cliente solo ve sus datos) +- Roles desde base de datos (no hardcodeados) +- Verificación de permisos en cada ruta + +--- + +## 📝 Próximos Pasos + +1. **Implementar limitaciones por plan** +2. **Sistema de actividad/logs** +3. **Mejorar UI del customizer** +4. **Optimizar para VPS** +5. **Añadir más funcionalidades** + +--- + +**Última actualización:** 14 Enero 2025 +**Hash:** `gkachele-documentacion-completa-20250114` + +--- + +**© 2025 GKACHELE™. Todos los derechos reservados.** diff --git a/memoria/EDITOR_VISUAL_PREVIEW.md b/memoria/EDITOR_VISUAL_PREVIEW.md new file mode 100644 index 0000000..336f0ee --- /dev/null +++ b/memoria/EDITOR_VISUAL_PREVIEW.md @@ -0,0 +1,280 @@ +# 🎨 Editor Visual en Preview - GKACHELE™ + +**© 2025 GKACHELE™. Todos los derechos reservados.** + +## 📋 ANÁLISIS: Edición en Preview vs Sidebar + +**Hash:** `gkachele-editor-visual-20250114-1425` + +--- + +## 🎯 OBJETIVO + +Permitir editar el contenido del sitio de dos formas: +1. **Desde el sidebar** (actual) - Controles organizados +2. **Directamente en el preview** (nuevo) - Click to edit, como sistemas modernos + +--- + +## 🔍 ANÁLISIS DE OPCIONES + +### Opción A: Click to Edit en Preview (Recomendado) + +**Cómo funciona:** +- Usuario hace click en cualquier elemento del preview (título, texto, imagen) +- Se abre un modal o inline editor +- Cambios se reflejan inmediatamente +- Similar a WordPress Gutenberg o Elementor + +**Ventajas:** +- ✅ Más intuitivo y visual +- ✅ El usuario ve exactamente qué está editando +- ✅ Experiencia moderna y profesional +- ✅ Reduce la necesidad de buscar en el sidebar + +**Desventajas:** +- ⚠️ Requiere JavaScript más complejo +- ⚠️ Necesita identificar elementos editables +- ⚠️ Puede ser más lento en sitios grandes + +**Implementación:** +```javascript +// Agregar atributos data-editable a elementos del preview +
+ {{ hero_title }} +
+ +// JavaScript para detectar clicks y abrir editor +document.querySelectorAll('[data-editable]').forEach(el => { + el.addEventListener('click', (e) => { + openInlineEditor(el); + }); +}); +``` + +--- + +### Opción B: Mejorar Sidebar Actual + +**Cómo funciona:** +- Mantener sidebar actual +- Añadir más controles específicos +- Mejorar organización y UX +- Añadir previews visuales en el sidebar + +**Ventajas:** +- ✅ Más fácil de implementar +- ✅ Ya funciona +- ✅ Controles organizados + +**Desventajas:** +- ⚠️ Menos intuitivo +- ⚠️ Usuario debe buscar en el sidebar +- ⚠️ Menos visual + +--- + +### Opción C: Híbrido (Mejor Opción) + +**Cómo funciona:** +- **Sidebar:** Controles avanzados, configuración, colores, etc. +- **Preview:** Click to edit para contenido principal (títulos, textos, imágenes) +- **Ambos sincronizados:** Cambios en uno se reflejan en el otro + +**Ventajas:** +- ✅ Lo mejor de ambos mundos +- ✅ Usuario elige cómo editar +- ✅ Flexible y potente +- ✅ Experiencia profesional + +**Implementación:** +1. Sidebar para configuración avanzada +2. Preview con click to edit para contenido +3. Sincronización bidireccional + +--- + +## 🚀 PLAN DE IMPLEMENTACIÓN (Opción C - Híbrido) + +### Fase 1: Click to Edit en Preview + +**Elementos editables:** +- `hero_title` - Título principal +- `hero_description` - Descripción +- `site_name` - Nombre del sitio (en header) +- Textos de secciones (menú, horarios, etc.) +- Imágenes (click para cambiar URL) + +**Funcionalidad:** +1. Agregar `data-editable` a elementos del template +2. JavaScript detecta clicks +3. Abre editor inline (modal o input overlay) +4. Guarda cambios automáticamente +5. Actualiza preview en tiempo real + +### Fase 2: Sincronización Bidireccional + +**Cómo funciona:** +- Cambio en sidebar → Actualiza preview +- Cambio en preview → Actualiza sidebar +- Todo se guarda en `content_json` + +### Fase 3: Mejoras del Sidebar + +- Agregar previews visuales +- Mejor organización +- Búsqueda de controles +- Atajos de teclado + +--- + +## 📝 ESTRUCTURA TÉCNICA + +### Template HTML (con data-editable) + +```html + +

+ {{ hero_title or 'Bienvenido' }} +

+ +

+ {{ hero_description or '' }} +

+ + +``` + +### JavaScript (Click to Edit) + +```javascript +// Detectar clicks en elementos editables +document.querySelectorAll('[data-editable]').forEach(el => { + el.addEventListener('click', function(e) { + if (e.target.closest('.editable')) { + const field = this.dataset.editable; + const type = this.dataset.type; + openEditor(this, field, type); + } + }); + + // Indicador visual de que es editable + el.style.cursor = 'pointer'; + el.title = 'Click para editar'; +}); + +function openEditor(element, field, type) { + // Crear overlay con input + const overlay = createEditorOverlay(element, field, type); + document.body.appendChild(overlay); +} + +function createEditorOverlay(element, field, type) { + // Modal o input inline + // Guardar al hacer blur o Enter + // Actualizar preview +} +``` + +### Backend (Guardar cambios) + +```python +@app.route('/api/customizer/update-field', methods=['POST']) +def update_field(): + """Actualizar un campo específico desde preview""" + data = request.get_json() + site_id = data.get('site_id') + field = data.get('field') # 'hero_title', 'horarios.lunes_viernes', etc. + value = data.get('value') + + # Actualizar content_json + # Retornar éxito +``` + +--- + +## 🎨 UX/UI + +### Indicadores Visuales + +- **Hover:** Borde punteado o sombra +- **Cursor:** Pointer +- **Tooltip:** "Click para editar" +- **Icono:** ✏️ en esquina del elemento + +### Editor Inline + +- **Input/Textarea:** Aparece sobre el elemento +- **Botones:** Guardar, Cancelar +- **Atajos:** Enter = Guardar, Esc = Cancelar +- **Auto-save:** Guardar después de 2 segundos sin escribir + +--- + +## ✅ CHECKLIST DE IMPLEMENTACIÓN + +### Fase 1: Click to Edit +- [ ] Agregar `data-editable` a elementos del template +- [ ] JavaScript para detectar clicks +- [ ] Crear editor inline/modal +- [ ] Guardar cambios automáticamente +- [ ] Actualizar preview en tiempo real + +### Fase 2: Sincronización +- [ ] Sidebar → Preview (ya funciona) +- [ ] Preview → Sidebar (nuevo) +- [ ] Validar que ambos estén sincronizados + +### Fase 3: Mejoras +- [ ] Indicadores visuales de elementos editables +- [ ] Tooltips y ayuda contextual +- [ ] Atajos de teclado +- [ ] Búsqueda en sidebar + +--- + +## 🔄 FLUJO COMPLETO + +``` +1. Usuario abre customizer +2. Ve preview con elementos editables (indicados visualmente) +3. Click en "Bienvenido" (hero_title) +4. Se abre editor inline +5. Usuario escribe nuevo título +6. Presiona Enter o hace blur +7. Cambio se guarda en content_json +8. Preview se actualiza automáticamente +9. Sidebar también se actualiza (si tiene ese campo) +``` + +--- + +## 📊 COMPARACIÓN CON SISTEMAS SIMILARES + +| Característica | WordPress | Elementor | GKACHELE™ (Propuesto) | +|----------------|-----------|-----------|------------------------| +| Click to Edit | ✅ | ✅ | ✅ (Fase 1) | +| Sidebar Controls | ✅ | ✅ | ✅ (Actual) | +| Preview en Tiempo Real | ✅ | ✅ | ✅ (Actual) | +| Sincronización Bidireccional | ✅ | ✅ | ✅ (Fase 2) | +| Editor Inline | ✅ | ✅ | ✅ (Fase 1) | + +--- + +## 🎯 DECISIÓN + +**Implementar Opción C (Híbrido):** +- Mantener sidebar actual (funciona bien) +- Añadir click to edit en preview +- Sincronización bidireccional +- Mejoras progresivas + +--- + +**Última actualización:** 14 Enero 2025 - 14:25 +**Hash:** `gkachele-editor-visual-20250114-1425` + +--- + +**© 2025 GKACHELE™. Todos los derechos reservados.** diff --git a/memoria/ESTADO_ACTUAL.md b/memoria/ESTADO_ACTUAL.md new file mode 100644 index 0000000..6be18b1 --- /dev/null +++ b/memoria/ESTADO_ACTUAL.md @@ -0,0 +1,133 @@ +# 📊 Estado Actual del Proyecto - GKACHELE™ + +**© 2025 GKACHELE™. Todos los derechos reservados.** + +## 🎯 Hash Actual + +**Hash:** `gkachele-customizer-wordpress-adaptado-20250115-002` +**Fecha:** 15 Enero 2025 +**Estado:** ✅ **Demo WordPress completo creado - Listo para copiar y adaptar** + +--- + +## ✅ FUNCIONANDO + +### Flujo Completo: +1. ✅ **Landing** - Funciona correctamente +2. ✅ **Registro** - Crea usuario + sitio automático +3. ✅ **Login** - Redirige DIRECTAMENTE a `/customizer/{site_id}` +4. ✅ **Customizer** - Personalización funcional + - Cambiar contenido + - Cambiar colores + - Cambiar tipografía + - **✅ Añadir bloques (video, imagen, texto, redes sociales, mapa)** + - **✅ Eliminar bloques** + - **✅ Ver lista de bloques añadidos** + - Guardar cambios (draft) + - Enviar solicitud (pending) +5. ✅ **Dashboard Cliente** - `/dashboard` - Ve sus sitios +6. ✅ **Dashboard Admin** - `/admin` - Gestión completa + - Ver usuarios + - Eliminar usuarios + - Ver solicitudes + - Aprobar/rechazar sitios + +### Sistema de Base de Datos: +- ✅ Multi-tenant en `main.db` +- ✅ Tablas: users, sites, menus, widgets, content, settings, requests, media +- ✅ Sistema de roles basado en DB (administrator, editor, author, subscriber) +- ✅ Filtrado por `user_id` (cada cliente solo ve sus datos) + +### Templates: +- ✅ Sistema modular (_gkachele/header.php, footer.php, sidebar.php) +- ✅ Menús dinámicos (header, footer, sidebar) +- ✅ Widgets dinámicos +- ✅ Temas: restaurante-moderno, restaurante-elegante, gimnasio-claro + +--- + +## ⚠️ PENDIENTE + +### Funcionalidades Core: +- [x] **Añadir bloques (COMPLETADO)** +- [x] **Eliminar bloques (COMPLETADO)** +- [x] **Lista de bloques en sidebar (COMPLETADO)** +- [ ] Editar contenido de bloques existentes +- [ ] Mover bloques (drag & drop) en customizer +- [ ] Editar inline (contenteditable) +- [ ] UI completa para gestionar menús desde customizer + +### Infraestructura: +- [ ] Subdominios automáticos +- [ ] Integración pagos Nominalia +- [ ] Gitea y workflows +- [ ] Control de versiones Git + +### Mejoras: +- [ ] Landing optimizada para Argentina +- [ ] Limitaciones por plan +- [ ] Sistema de actividad/logs +- [ ] Mejorar UI/UX + +--- + +## 🚀 PRÓXIMOS PASOS + +1. **Probar con 1 rubro completo** (restaurante) +2. **Mejorar customizer** (mover bloques, editar inline) +3. **Gitea y workflows** (despliegues automáticos) +4. **Subdominios** (con tu dominio) +5. **Pagos Nominalia** (comodines) + +--- + +## 📍 DEPLOYMENT + +### Actual: Raspberry Pi 3 +- ✅ Funcionando +- ✅ Login → Customizer funciona +- ✅ Todo operativo + +### Futuro: VPS +- Si funciona 1 rubro bien → Migrar a VPS +- Mismo código +- Más recursos +- Dominio propio + +--- + +## 🔄 ÚLTIMA ACTUALIZACIÓN + +**Hash:** `gkachele-customizer-wordpress-adaptado-20250115-002` +**Fecha:** 15 Enero 2025 +**Logro:** ✅ **Demo WordPress completo creado - Listo para copiar y adaptar** + +### Cambios en este Hash: +- ✅ Creado demo completo WordPress: `customizer-wordpress-COMPLETO.html` +- ✅ Todas las funcionalidades de WordPress implementadas (paneles, toggles, sliders, repeaters, etc.) +- ✅ Documentación completa: `CUSTOMIZER_WORDPRESS_COMPLETO.md` +- ✅ Objetivo claro documentado: `OBJETIVO_CUSTOMIZER_ADAPTADO.md` +- ✅ Identificados problemas críticos: `PROBLEMAS_CRITICOS_CUSTOMIZER.md` + +### Plan para Próxima Sesión: +1. **COPIAR WordPress** (demo completo) +2. **AUTOMATIZAR** procesos (guardado, preview, etc.) +3. **CAMBIAR branding** a GKACHELE™ (logo, nombres, colores) +4. **ADAPTAR** funcionalidades con lo que ya sabemos +5. **INTEGRAR** con backend Flask existente + +### Archivos Creados: +- `customizer-wordpress-COMPLETO.html` - Demo completo independiente +- `CUSTOMIZER_WORDPRESS_COMPLETO.md` - Documentación completa +- `OBJETIVO_CUSTOMIZER_ADAPTADO.md` - Objetivo claro +- `PROBLEMAS_CRITICOS_CUSTOMIZER.md` - Problemas identificados + +### Estado: +- ✅ Demo WordPress completo (funcional, independiente) +- ✅ Documentación completa +- ✅ Objetivo claro definido +- ⏳ Pendiente: Copiar y adaptar al customizer real + +--- + +**© 2025 GKACHELE™. Todos los derechos reservados.** diff --git a/memoria/ESTRUCTURA_RUTAS.md b/memoria/ESTRUCTURA_RUTAS.md new file mode 100644 index 0000000..23de683 --- /dev/null +++ b/memoria/ESTRUCTURA_RUTAS.md @@ -0,0 +1,71 @@ +# 🗂️ Estructura de Rutas - GKACHELE™ + +**© 2025 GKACHELE™. Todos los derechos reservados.** + +## 📍 RUTAS DEFINIDAS + +### Cliente (Usuario Normal): + +1. **`/customizer/{site_id}`** - Editar antes de publicar + - Siempre disponible + - Personalizar sitio (draft) + - Guardar cambios o Enviar solicitud + - Botón "Volver" → `/admin` del cliente + +2. **`/admin`** - Panel del cliente (su área de administración) + - Se crea automáticamente al aprobar sitio + - Gestionar sitio publicado + - Editar sitio publicado (con limitaciones por plan) + - Ver estadísticas + - Gestionar media, configuraciones + +### Admin Principal (Tú): + +3. **`/dashboard`** - Tu panel principal + - Gestión de todo el sistema + - Ver todas las solicitudes + - Aprobar/rechazar sitios + - Ver todos los usuarios + - Eliminar usuarios + - Gestionar subdominios + - Gestionar pagos + - Estadísticas generales + +--- + +## 🔄 FLUJO COMPLETO + +``` +1. Cliente → Registro → Crea sitio (draft) +2. Cliente → Login → Customizer +3. Cliente → Customizer → Edita → Envía solicitud +4. Tú → Dashboard → Apruebas → Se crea automáticamente /admin del cliente +5. Cliente → /admin → Edita sitio publicado (con limitaciones por plan) +6. Si no paga → Workflow cancela/elimina +``` + +--- + +## ⚠️ IMPORTANTE + +- **`/customizer`** = Editar antes de publicar (siempre) +- **`/admin`** = Panel del cliente (se crea al aprobar) +- **`/dashboard`** = Tu panel principal (gestión del sistema) + +--- + +## 🔒 LIMITACIONES POR PLAN + +En `/admin` del cliente: +- Limitar subidas de fotos según plan +- Limitar movimientos/modificaciones según plan +- Verificar plan antes de cada acción + +--- + +**Última actualización:** 14 Enero 2025 - 11:40 +**Hash:** `gkachele-estructura-rutas-20250114` + +--- + +**© 2025 GKACHELE™. Todos los derechos reservados.** diff --git a/memoria/FUNCIONALIDADES_COMPLETAS.md b/memoria/FUNCIONALIDADES_COMPLETAS.md new file mode 100644 index 0000000..8648196 --- /dev/null +++ b/memoria/FUNCIONALIDADES_COMPLETAS.md @@ -0,0 +1,108 @@ +# 🎯 Funcionalidades Completas - GKACHELE™ + +**© 2025 GKACHELE™. Todos los derechos reservados.** + +## ✅ FLUJO CORRECTO (Como Sistemas Similares) + +### 1. Landing → Registro → Login → Customizer + +``` +Cliente → Landing + ↓ +Registro (crea usuario + sitio automático) + ↓ +Login (redirige DIRECTAMENTE a customizer) + ↓ +Customizer (personalizar sitio) + ├── Guardar cambios (draft) + └── Enviar solicitud (pending) + ↓ +Admin Dashboard → Ver solicitudes → Aprobar + ↓ +Sitio publicado → /site/{slug} +``` + +--- + +## 🔧 FUNCIONALIDADES REQUERIDAS + +### 1. **Subdominios** +- **Opción A:** Subdominio con tu dominio (ej: `cliente1.tudominio.com`) +- **Opción B:** Cliente compra dominio (cobrar gestión) +- Configurar DNS automáticamente +- SSL automático (Let's Encrypt) + +### 2. **Pagos - Nominalia** +- Integración con Nominalia para pagos +- Comodines para pagos recurrentes +- Gestión de suscripciones +- Facturación automática + +### 3. **Dashboard Cliente** +- Ver sus sitios +- Acceder a customizer +- Ver estado de solicitudes +- Gestionar su admin (media, config) + +### 4. **Customizer (Como Sistemas Similares)** +- Mover bloques (drag & drop) +- Editar contenido inline +- Cambiar colores, tipografía +- Gestionar menús +- Gestionar widgets +- **Guardar** (draft) o **Enviar solicitud** (pending) + +### 5. **Dashboard Admin (Tú)** +- Ver todas las solicitudes +- Aprobar/rechazar sitios +- Ver todos los usuarios +- Eliminar usuarios +- Gestionar subdominios +- Gestionar pagos +- Estadísticas + +--- + +## 🎯 ESTADO ACTUAL + +### ✅ Funcionando: +- Landing +- Registro (crea usuario + sitio) +- Login (debería redirigir a customizer) +- Dashboard cliente (`/dashboard`) +- Customizer (`/customizer/{site_id}`) +- Dashboard admin (`/admin`) + +### ✅ CORREGIDO: +- **✅ Login redirige correctamente a customizer** +- Funciona como sistemas similares: Login → Customizer directo + +### 🔧 PENDIENTE: +- Subdominios +- Pagos Nominalia +- Mover bloques en customizer +- Editar inline +- Workflows Gitea + +--- + +## 📋 CHECKLIST FUNCIONALIDAD + +- [x] Login → Customizer (✅ FUNCIONANDO) +- [x] Customizer: Guardar cambios (✅ Funciona) +- [x] Customizer: Enviar solicitud (✅ Funciona) +- [x] Admin: Ver solicitudes (✅ Funciona) +- [x] Admin: Aprobar/rechazar (✅ Funciona) +- [ ] Subdominios automáticos (PENDIENTE) +- [ ] Pagos Nominalia (PENDIENTE) +- [ ] Mover bloques (PENDIENTE) +- [ ] Editar inline (PENDIENTE) + +--- + +**Última actualización:** 14 Enero 2025 +**Hash:** `gkachele-funcionalidades-20250114` + +--- + +**© 2025 GKACHELE™. Todos los derechos reservados.** diff --git a/memoria/GESTION_USUARIOS.md b/memoria/GESTION_USUARIOS.md new file mode 100644 index 0000000..ad22331 --- /dev/null +++ b/memoria/GESTION_USUARIOS.md @@ -0,0 +1,100 @@ +# 👥 Gestión de Usuarios - GKACHELE™ + +**© 2025 GKACHELE™. Todos los derechos reservados.** + +## 🎯 Objetivo + +Sistema completo para ver, gestionar y eliminar usuarios registrados desde el panel de administración. + +## 📍 Ubicación + +**Ruta:** `/admin` (solo usuarios con rol `administrator`) + +## 🔍 Funcionalidades + +### 1. Ver Todos los Usuarios + +El panel muestra: +- ID del usuario +- Email +- Plan (base, premium, etc.) +- Rubro +- Fecha de registro +- Número de sitios creados +- Sitios publicados +- Solicitudes enviadas + +### 2. Eliminar Usuarios + +**Ruta:** `POST /admin/users/delete/` + +**Protección:** +- Solo usuarios con rol `administrator` +- No se puede eliminar al usuario ID=1 (admin principal) + +**Proceso de eliminación:** +1. Elimina widgets del usuario +2. Elimina menús del usuario +3. Elimina media del usuario +4. Elimina contenido del usuario +5. Elimina configuraciones del usuario +6. Elimina solicitudes del usuario +7. Elimina sitios del usuario +8. Elimina el usuario + +**Todo en una transacción** - Si falla algo, se revierte todo. + +## 🛡️ Seguridad + +- Verificación de rol desde la base de datos (no hardcodeado) +- Confirmación antes de eliminar +- Transacciones para integridad de datos +- Protección del admin principal + +## 📊 Consultas Útiles + +### Ver usuarios con estadísticas: +```sql +SELECT + u.id, + u.email, + u.plan, + u.rubro, + u.role, + u.status, + u.created_at, + COUNT(DISTINCT s.id) as num_sitios, + COUNT(DISTINCT CASE WHEN s.status = 'published' THEN s.id END) as sitios_publicados, + COUNT(DISTINCT r.id) as num_solicitudes +FROM users u +LEFT JOIN sites s ON u.id = s.user_id +LEFT JOIN requests r ON u.id = r.user_id +GROUP BY u.id +ORDER BY u.id DESC; +``` + +### Filtrar usuarios inactivos: +```sql +SELECT * FROM users WHERE status != 'active'; +``` + +### Ver usuarios sin sitios: +```sql +SELECT u.* FROM users u +LEFT JOIN sites s ON u.id = s.user_id +WHERE s.id IS NULL; +``` + +## 🚀 Próximas Mejoras + +- [ ] Filtros por rol, plan, estado +- [ ] Búsqueda de usuarios +- [ ] Editar usuario (cambiar rol, plan, estado) +- [ ] Suspender usuario (sin eliminar) +- [ ] Exportar lista de usuarios +- [ ] Estadísticas de usuarios + +--- + +**Última actualización:** 14 Enero 2025 +**Hash:** `gkachele-gestion-usuarios-20250114` diff --git a/memoria/GITEA_WORKFLOWS.md b/memoria/GITEA_WORKFLOWS.md new file mode 100644 index 0000000..f600634 --- /dev/null +++ b/memoria/GITEA_WORKFLOWS.md @@ -0,0 +1,143 @@ +# 🔄 Gitea y Workflows - GKACHELE™ + +**© 2025 GKACHELE™. Todos los derechos reservados.** + +## 🎯 OBJETIVO + +Integrar Gitea para automatizar despliegues, workflows y gestión de repositorios por cliente. + +--- + +## 📋 FUNCIONALIDADES PLANEADAS + +### 1. **Repositorios por Cliente** +- Crear repo automático al registrar cliente +- Un repo por sitio del cliente +- Versionado automático de cambios +- Historial completo + +### 2. **Workflows Automáticos** + +#### Workflow: Aceptar Petición +``` +Cliente envía sitio → Admin aprueba → Workflow Gitea: +1. Commit cambios al repo del cliente +2. Generar build del sitio +3. Desplegar automáticamente +4. Notificar al cliente +``` + +#### Workflow: Despliegue Automático +``` +Cambios en customizer → Auto-commit → Auto-deploy +``` + +#### Workflow: Rollback +``` +Admin selecciona versión → Workflow restaura versión anterior +``` + +### 3. **Integración con Dashboard Admin** +- Ver repositorios de clientes +- Aceptar/rechazar peticiones desde workflows +- Ver historial de cambios +- Gestionar despliegues +- Control de versiones + +--- + +## 🏗️ ARQUITECTURA + +### Componentes: +1. **Gitea Server** - Gestión de repositorios +2. **API Gitea** - Integración con Flask +3. **Workflows** - Automatización +4. **Dashboard Admin** - Interfaz de gestión + +### Flujo: +``` +Cliente → Customizer → Cambios → Gitea API → Commit → Workflow → Deploy +Admin → Dashboard → Aprobar → Gitea API → Workflow → Deploy +``` + +--- + +## 🔧 IMPLEMENTACIÓN + +### 1. Instalación Gitea +- En Raspberry Pi o VPS +- Configurar dominio +- API habilitada + +### 2. Integración Flask +- Cliente Gitea API +- Funciones helper para repos +- Workflows automáticos + +### 3. Dashboard Admin +- Sección Gitea +- Ver repositorios +- Gestionar workflows +- Control de versiones + +--- + +## 📝 WORKFLOWS ESPECÍFICOS + +### Workflow: Nuevo Cliente +``` +1. Cliente se registra +2. Crear repo automático: cliente-{user_id} +3. Commit template inicial +4. Configurar webhook +``` + +### Workflow: Aprobar Sitio +``` +1. Admin aprueba desde dashboard +2. Workflow Gitea se activa +3. Commit cambios finales +4. Build del sitio +5. Deploy a producción +6. Notificar cliente +``` + +### Workflow: Cambios en Customizer +``` +1. Cliente guarda cambios +2. Auto-commit a repo +3. Workflow opcional: preview automático +``` + +--- + +## 🎯 BENEFICIOS + +- ✅ Versionado automático +- ✅ Historial completo +- ✅ Rollback fácil +- ✅ Despliegues automáticos +- ✅ Repositorios organizados +- ✅ Integración completa + +--- + +## 📋 CHECKLIST + +- [ ] Instalar Gitea +- [ ] Configurar API +- [ ] Integrar con Flask +- [ ] Crear repos automáticos +- [ ] Workflow: Aprobar petición +- [ ] Workflow: Despliegue automático +- [ ] Dashboard admin: Sección Gitea +- [ ] Testing completo + +--- + +**Última actualización:** 14 Enero 2025 +**Hash:** `gkachele-gitea-workflows-20250114` + +--- + +**© 2025 GKACHELE™. Todos los derechos reservados.** diff --git a/memoria/HASH_20250115_002.md b/memoria/HASH_20250115_002.md new file mode 100644 index 0000000..f2e2a94 --- /dev/null +++ b/memoria/HASH_20250115_002.md @@ -0,0 +1,98 @@ +# 📌 HASH: gkachele-customizer-wordpress-adaptado-20250115-002 + +**© 2025 GKACHELE™. Todos los derechos reservados.** + +**Fecha:** 15 Enero 2025 +**Hash:** `gkachele-customizer-wordpress-adaptado-20250115-002` + +--- + +## 🎯 ESTADO ACTUAL + +### ✅ COMPLETADO + +1. **Demo WordPress Completo Creado** + - Archivo: `customizer-wordpress-COMPLETO.html` + - Todas las funcionalidades de WordPress implementadas + - Paneles, secciones, controles (toggles, sliders, repeaters, icon pickers, etc.) + - Sistema de guardado correcto (como WordPress) + - Diseño visual exacto WordPress + +2. **Documentación Completa** + - `CUSTOMIZER_WORDPRESS_COMPLETO.md` - Todas las funcionalidades documentadas + - `OBJETIVO_CUSTOMIZER_ADAPTADO.md` - Objetivo claro definido + - `PROBLEMAS_CRITICOS_CUSTOMIZER.md` - Problemas identificados + +3. **Sistema de Bloques Funcional** + - `addNewBlock()` - Añadir bloques + - `removeBlock()` - Eliminar bloques + - `loadBlocksList()` - Cargar lista + - Integrado con backend + +--- + +## 🎯 OBJETIVO CLARO (PLAN ORIGINAL) + +### **COPIAR WORDPRESS Y ADAPTAR:** + +**⚠️ ESTE FUE EL PLAN DESDE EL PRINCIPIO - DEBERÍA ESTAR YA HECHO** + +1. ⏳ **COPIAR** el demo completo de WordPress (pendiente) +2. ⏳ **AUTOMATIZAR** procesos (guardado, preview, etc.) (pendiente) +3. ⏳ **CAMBIAR branding** a GKACHELE™ (logo, nombres, colores) (pendiente) +4. ⏳ **ADAPTAR** con lo que ya sabemos (pendiente) +5. ⏳ **INTEGRAR** con backend Flask existente (pendiente) + +### **Principios:** +- Similar a WordPress pero con branding GKACHELE™ +- Automatizado (procesos automáticos) +- Adaptar, no copiar exactamente +- **DEBERÍA ESTAR YA IMPLEMENTADO** (pero no está) + +--- + +## 📋 ARCHIVOS CLAVE + +### **Demos:** +- `customizer-wordpress-COMPLETO.html` - Demo completo WordPress (referencia) +- `customizer-wordpress-demo.html` - Demo básico (anterior) + +### **Documentación:** +- `CUSTOMIZER_WORDPRESS_COMPLETO.md` - Funcionalidades completas +- `OBJETIVO_CUSTOMIZER_ADAPTADO.md` - Objetivo claro +- `PROBLEMAS_CRITICOS_CUSTOMIZER.md` - Problemas identificados + +### **Código Actual:** +- `customizer.html` - Customizer actual (a reemplazar/adaptar) +- `app.py` - Backend Flask (endpoints listos) + +--- + +## 🚀 PRÓXIMOS PASOS + +1. **Analizar más** (investigación adicional) +2. **Copiar WordPress** (demo completo) +3. **Automatizar** (procesos automáticos) +4. **Cambiar branding** (GKACHELE™) +5. **Adaptar** (con lo que ya sabemos) +6. **Integrar** (con backend Flask) + +--- + +## 📌 NOTAS + +- **Demo WordPress completo** está listo y funcional +- **Documentación completa** de todas las funcionalidades +- **Objetivo claro** definido +- **Pendiente:** Copiar y adaptar al customizer real +- **Hablamos luego** para continuar + +--- + +**Última actualización:** 2025-01-15 +**Hash:** `gkachele-customizer-wordpress-adaptado-20250115-002` +**Estado:** ✅ **LISTO PARA COPIAR Y ADAPTAR** + +--- + +**© 2025 GKACHELE™. Todos los derechos reservados.** diff --git a/memoria/HISTORIAL_CAMBIOS.md b/memoria/HISTORIAL_CAMBIOS.md new file mode 100644 index 0000000..6ccb7d9 --- /dev/null +++ b/memoria/HISTORIAL_CAMBIOS.md @@ -0,0 +1,51 @@ +# 📝 Historial de Cambios - GKACHELE™ + +**© 2025 GKACHELE™. Todos los derechos reservados.** + +## 🔄 Historial de Versiones + +### Hash: `gkachele-login-customizer-20250114-v3` +**Fecha:** 14 Enero 2025 - 11:34 +**Estado:** ✅ Funcionando + +#### Cambios: +- ✅ **Login redirige correctamente a customizer** +- ✅ Añadido debugging completo (backend + frontend) +- ✅ Content-Type JSON explícito en respuesta +- ✅ Flush=True en todos los prints +- ✅ Console.log en frontend para debugging +- ✅ Verificación de sitios del usuario antes de redirigir + +#### Funcionalidad: +- Login → Busca primer sitio del usuario +- Si tiene sitio → `/customizer/{site_id}` +- Si no tiene sitio → `/dashboard` +- Frontend recibe y procesa correctamente el redirect + +--- + +### Hash: `gkachele-argentina-20250114-v2` +**Fecha:** 14 Enero 2025 - 11:15 + +#### Cambios: +- Documentación objetivos Argentina +- Gitea y workflows documentados +- Subdominios y pagos documentados + +--- + +### Hash: `gkachele-template-system-20250114-v1` +**Fecha:** 14 Enero 2025 - 08:50 + +#### Cambios: +- Sistema modular de templates +- Menús y widgets dinámicos +- Sistema de roles basado en DB + +--- + +**Última actualización:** 14 Enero 2025 - 11:34 + +--- + +**© 2025 GKACHELE™. Todos los derechos reservados.** diff --git a/memoria/INDICE.md b/memoria/INDICE.md new file mode 100644 index 0000000..cb3feb6 --- /dev/null +++ b/memoria/INDICE.md @@ -0,0 +1,237 @@ +# 📚 ÍNDICE DE DOCUMENTACIÓN - GKACHELE™ + +**© 2025 GKACHELE™. Todos los derechos reservados.** + +## 🎯 IMPORTANTE: LEER SIEMPRE ESTA CARPETA ANTES DE HACER CAMBIOS + +Esta carpeta contiene **TODA** la documentación del proyecto. **SIEMPRE** consulta estos archivos antes de modificar código. + +--- + +## 📋 DOCUMENTOS PRINCIPALES + +### 1. ⚠️ **REGLA_IMPORTANTE.md** - LEER PRIMERO +- **🚫 NUNCA mencionar "WordPress" en el código** +- Reglas de branding y nomenclatura +- Reemplazos correctos +- **LEER ANTES DE ESCRIBIR CUALQUIER CÓDIGO** + +### 2. 📖 **MEMORIA_PROYECTO_COMPLETA.md** +- Documentación completa del proyecto +- Arquitectura del sistema +- Flujos y rutas +- Estado actual +- **Referencia principal del proyecto** + +### 3. 🔐 **SISTEMA_ROLES.md** +- Sistema de roles y permisos basado en DB +- Jerarquía de roles (administrator, editor, author, subscriber) +- Funciones helper: `user_has_role()`, `user_can()` +- Migración automática +- **NUNCA hardcodear permisos** + +### 4. 👥 **GESTION_USUARIOS.md** +- Sistema de gestión de usuarios +- Ver usuarios registrados +- Eliminar usuarios (con cascada) +- Consultas SQL útiles +- Panel `/admin` + +### 5. 🔌 **COMO_CONECTAR_DB.md** +- Cómo conectarse a la base de datos +- DB Browser for SQLite +- Scripts Python +- Consultas útiles +- Sincronización con Raspberry + +### 6. 🖥️ **MEMORIA_RASPBERRY_SAAS.md** +- Configuración de Raspberry Pi +- Servicio systemd +- Nginx +- DuckDNS +- Deployment + +### 7. 🔄 **MEMORIA_SINCRONIZACION.md** +- Sincronización entre local y Raspberry +- Scripts de actualización +- Cron jobs +- Verificación + +### 8. 🔐 **CREDENCIALES_CLIENTES.md** +- Credenciales de acceso de clientes +- Usuario administrador +- **ARCHIVO CONFIDENCIAL** - Mantener privado + +### 9. 🎯 **METODOLOGIA_TRABAJO.md** +- Regla: Primero funcionalidad, después limpieza +- Checklist de trabajo +- Principios de desarrollo + +### 10. 📖 **DOCUMENTACION_PROYECTO.md** +- Documentación completa del proyecto +- ¿Qué estamos construyendo? +- Arquitectura técnica +- Flujo completo del sistema +- Estado actual + +### 11. ❓ **RESPUESTAS_PREGUNTAS.md** +- Respuestas a preguntas frecuentes +- Python vs Docker +- VPS vs Raspberry Pi +- Acceso a base de datos +- Limitaciones por plan + +### 12. 🇦🇷 **OBJETIVOS_ARGENTINA.md** +- Objetivos para lanzamiento en Argentina +- Criterio de éxito (Raspberry → VPS) +- Checklist pre-argentina +- Plan de acción completo + +### 13. 🔄 **GITEA_WORKFLOWS.md** +- Integración Gitea +- Workflows automáticos +- Repositorios por cliente +- Integración con dashboard admin +- Despliegues automáticos + +### 14. 🎯 **FUNCIONALIDADES_COMPLETAS.md** +- Flujo correcto del sistema +- Funcionalidades requeridas +- Estado actual +- Checklist funcionalidad + +### 15. 🌐 **SUBDOMINIOS_PAGOS.md** +- Sistema de subdominios +- Integración pagos Nominalia +- Comodines para pagos +- Gestión de dominios + +### 16. 📊 **ESTADO_ACTUAL.md** +- Estado actual del proyecto +- Hash actual +- Funcionando vs Pendiente +- Próximos pasos + +### 17. 📝 **HISTORIAL_CAMBIOS.md** +- Historial de versiones +- Hash de cada cambio +- Log de funcionalidades + +### 18. 🗂️ **ESTRUCTURA_RUTAS.md** +- Estructura de rutas acordada +- /customizer - Editar antes de publicar +- /admin - Panel del cliente +- /dashboard - Panel principal admin +- Flujo completo + +### 19. 🎨 **SISTEMA_TEMPLATES.md** +- Sistema de templates estilo WordPress +- Cómo añadir nuevos templates fácilmente +- Estructura de carpetas y config.json +- Endpoints API para templates +- Uso en customizer + +### 20. ✏️ **EDITOR_VISUAL_PREVIEW.md** +- Análisis: Edición en preview vs sidebar +- Click to edit en preview (como WordPress) +- Sincronización bidireccional +- Plan de implementación híbrido +- Hash: `gkachele-editor-visual-20250114-1425` + +### 21. 🧩 **SISTEMA_BLOQUES_EDITABLES.md** +- Sistema de bloques añadibles/eliminables +- Drag & drop para reordenar +- Videos, imágenes, texto, redes sociales, mapas +- Iconos SVG para redes sociales +- Mapa embed sin API key +- Hash: `gkachele-bloques-editables-20250115-001` + +### 22. 📋 **PENDIENTES_MEJORAS.md** +- Lista de mejoras pendientes +- Bugs a arreglar +- Funcionalidades por implementar +- Prioridades y checklist +- Hash: `gkachele-pendientes-20250115-004` + +### 23. 🚨 **PROBLEMAS_CRITICOS_CUSTOMIZER.md** +- **PROBLEMAS CRÍTICOS DEL CUSTOMIZER** +- Análisis completo de problemas +- Cómo funciona WordPress Customizer +- Plan para rehacer completamente +- **LEER ANTES DE TRABAJAR EN CUSTOMIZER** +- Hash: `gkachele-problemas-customizer-20250115-001` + +### 24. 🎯 **CUSTOMIZER_WORDPRESS_COMPLETO.md** +- **DEMO COMPLETO DE WORDPRESS CUSTOMIZER** +- Todas las funcionalidades implementadas +- Paneles, secciones, controles (toggles, sliders, repeaters, etc.) +- Sistema de guardado correcto +- Diseño visual exacto WordPress +- **ARCHIVO DEMO:** `customizer-wordpress-COMPLETO.html` +- **LEER PARA ADAPTAR AL CUSTOMIZER REAL** +- Hash: `gkachele-customizer-wordpress-completo-20250115-001` + +### 25. 🎯 **OBJETIVO_CUSTOMIZER_ADAPTADO.md** +- **OBJETIVO CLARO: CUSTOMIZER ADAPTADO** +- Similar a WordPress pero con branding GKACHELE™ +- AUTOMATIZADO (procesos automáticos) +- Ver WordPress y solo ADAPTARLO (no copiar) +- Principios: Similar no igual, Automatizado, Adaptar no copiar +- **LEER ANTES DE EMPEZAR A IMPLEMENTAR** +- Hash: `gkachele-objetivo-customizer-adaptado-20250115-001` + +--- + +## 🎯 PRINCIPIOS DEL PROYECTO + +1. **Todo en Base de Datos**: Sin lógica hardcodeada +2. **Sistema Multi-tenant**: Todos los clientes en `main.db` +3. **Roles Dinámicos**: Basados en DB, no hardcodeados +4. **Branding GKACHELE™**: Sin referencias a otros sistemas +5. **Modular**: Código organizado y reutilizable + +--- + +## 📍 ESTRUCTURA DEL PROYECTO + +``` +c:\word\ +├── demo/ # Código del SaaS +│ ├── app.py # Flask backend +│ ├── database/ # main.db (multi-tenant) +│ ├── themes/ # Templates +│ ├── templates/ # HTML templates +│ └── static/ # CSS, JS +├── memoria/ # 📚 TODA LA DOCUMENTACIÓN AQUÍ +│ ├── INDICE.md # Este archivo +│ ├── REGLA_IMPORTANTE.md # ⚠️ LEER PRIMERO +│ ├── MEMORIA_PROYECTO_COMPLETA.md +│ ├── SISTEMA_ROLES.md +│ ├── GESTION_USUARIOS.md +│ ├── COMO_CONECTAR_DB.md +│ ├── MEMORIA_RASPBERRY_SAAS.md +│ └── MEMORIA_SINCRONIZACION.md +└── backups/ # Backups del proyecto +``` + +--- + +## ✅ CHECKLIST ANTES DE HACER CAMBIOS + +- [ ] Leer `REGLA_IMPORTANTE.md` (nunca mencionar WordPress) +- [ ] Consultar `MEMORIA_PROYECTO_COMPLETA.md` para entender arquitectura +- [ ] Verificar `SISTEMA_ROLES.md` si toca permisos +- [ ] Revisar documentación relevante según el cambio +- [ ] Verificar que no haya lógica hardcodeada +- [ ] Asegurar que todo esté basado en DB + +--- + +## 🔄 ACTUALIZACIÓN + +**Última actualización:** 14 Enero 2025 +**Hash:** `gkachele-docs-consolidated-20250114` + +--- + +**© 2025 GKACHELE™. Todos los derechos reservados.** diff --git a/memoria/MEMORIA_PROYECTO_COMPLETA.md b/memoria/MEMORIA_PROYECTO_COMPLETA.md new file mode 100644 index 0000000..d967e4d --- /dev/null +++ b/memoria/MEMORIA_PROYECTO_COMPLETA.md @@ -0,0 +1,478 @@ +# 🎯 MEMORIA COMPLETA DEL PROYECTO - SaaS PageBuilder + +**Fecha:** 13 Enero 2025 +**Hash:** `gkachele-login-customizer-20250114-v3` +**Última actualización:** 14 Enero 2025 - 11:35 + +## 🇦🇷 OBJETIVO ARGENTINA + +**Meta:** Lanzar GKACHELE™ SaaS en Argentina con funcionalidad completa y profesional. + +**Criterio de Éxito:** Si funciona 1 rubro bien en Raspberry Pi → PAGAR VPS + +**Dominio:** Ya tienes dominio configurado + +**Ver:** `OBJETIVOS_ARGENTINA.md` y `GITEA_WORKFLOWS.md` para detalles completos + +## 🎯 OBJETIVOS ACTUALES (Memorizado) + +### 🚀 PRIORIDAD: ARGENTINA 🇦🇷 +**Objetivo:** Lanzar GKACHELE™ SaaS en Argentina con funcionalidad completa. + +**Criterio de Éxito:** Si funciona 1 rubro bien en Raspberry Pi → PAGAR VPS + +### Objetivos Inmediatos: + +1. **✅ Template y Menús Profesionales (COMPLETADO):** + - ✅ Sistema modular (_gkachele/header.php, footer.php, sidebar.php) + - ✅ Sistema de menús dinámicos + - ✅ Sistema de widgets + - ⚠️ UI completa para gestionar menús (pendiente) + +2. **🔧 Funcionalidad Core (EN PROGRESO):** + - ✅ Registro de clientes + - ✅ **Login → Customizer directo (FUNCIONANDO - Hash v3)** + - ✅ Dashboard del cliente (`/dashboard`) + - ✅ Customizer básico (`/customizer/{site_id}`) + - ✅ Panel admin (`/admin`) + +3. **🔄 Gitea y Workflows (PENDIENTE):** + - Integración Gitea para repos por cliente + - Workflows automáticos: + - Aceptar peticiones desde dashboard admin + - Desplegar sitios automáticamente + - Generar repositorios por cliente + - Versionado automático + - Integración con dashboard admin + +4. **📝 Control de Versiones:** + - Git para landing page + - Versionado de templates + - Historial de cambios + - Rollback de versiones + +5. **🎨 Mejorar Landing (PENDIENTE):** + - Diseño optimizado para Argentina + - Mejor UX/UI + - Optimización de conversión + - Performance optimizado + - Responsive mejorado + +6. **📊 Workflows Dashboard Admin:** + - Aceptar/rechazar peticiones + - Gestionar usuarios + - Ver estadísticas + - Gestionar despliegues + - Control de versiones + - Integración con Gitea + +## ⚠️ REQUISITOS PRINCIPALES (MEMORIZAR) + +1. **Sincronización con Hash:** Raspberry y Local deben estar sincronizados con hash +2. **Modularizado:** Código debe estar modularizado +3. **PRIMERO copiar funcionalidad similar:** NO inventar, copiar funcionalidad similar primero en Raspberry, luego ver qué sirve y qué no +4. **Iterar:** Probar → Ver qué sirve → Eliminar lo que no sirve → Mejorar + +**Ver:** `MEMORIA_SINCRONIZACION.md` para detalles + +## 📍 CONEXIÓN RASPBERRY PI + +**Credenciales SSH:** +- **Host:** `komkida.duckdns.org` o `192.168.1.134` +- **Puerto:** `2222` +- **Usuario:** `pi` +- **Password:** `Gdk1983gdk45@` + +**Comandos de conexión (CON sshpass):** +```bash +# Desde WSL - CONECTAR +wsl bash -c "sshpass -p 'Gdk1983gdk45@' ssh -p 2222 -o StrictHostKeyChecking=no pi@192.168.1.134" + +# COPIAR ARCHIVOS +wsl bash -c "sshpass -p 'Gdk1983gdk45@' scp -P 2222 -o StrictHostKeyChecking=no /mnt/c/word/demo/app.py pi@192.168.1.134:/home/pi/gkachele-saas/app.py" + +# EJECUTAR COMANDO REMOTO +wsl bash -c "sshpass -p 'Gdk1983gdk45@' ssh -p 2222 -o StrictHostKeyChecking=no pi@192.168.1.134 'comando aqui'" +``` + +## 🏗️ ARQUITECTURA + +### Stack Tecnológico +- **Backend:** Flask (Python 3) - NO Docker, directo +- **Base de datos:** SQLite (main.db + cliente-X.db) +- **Web Server:** Nginx (reverse proxy) +- **Dominio:** `gk-saas.komkida.duckdns.org` +- **Puerto Flask:** 5001 +- **Puerto Nginx:** 80 + +### Estructura en Raspberry Pi +``` +/home/pi/gkachele-saas/ +├── app.py # Flask backend principal +├── database/ +│ ├── main.db # DB principal (users, sites, requests, media) +│ └── sites/ # DBs por cliente +│ ├── cliente-1.db +│ └── cliente-2.db +├── sites/ # Sitios compilados/publicados +├── themes/ # Templates (como WordPress) +│ ├── gimnasio-claro/ +│ ├── restaurante-moderno/ +│ └── restaurante-elegante/ +├── static/ # CSS, JS, imágenes +├── templates/ # HTML templates +│ ├── landing_real.html # Landing GKACHELE™ +│ ├── register.html +│ ├── login.html +│ ├── dashboard.html # Dashboard CLIENTE +│ ├── customizer.html # Personalizador WordPress-like +│ ├── admin.html # Dashboard PRINCIPAL (tuyo) +│ └── client_admin.html # Admin del cliente +└── uploads/ # Media subida por clientes +``` + +### Estructura en Local (Desarrollo) +``` +C:\word\ +├── demo/ # Código del SaaS +│ ├── app.py +│ ├── database/ +│ ├── themes/ +│ ├── templates/ +│ └── static/ +├── update-raspberry.sh # Script para actualizar Raspberry +└── MEMORIA_PROYECTO_COMPLETA.md # Este archivo +``` + +## 🔄 FLUJO COMPLETO + +``` +1. Cliente → Landing (gk-saas.komkida.duckdns.org) +2. Cliente elige plan + rubro → /register?plan=base&rubro=restaurante +3. Cliente se registra → POST /register + ├── Crea usuario en main.db (tabla users) + ├── Crea sitio automático (tema según rubro) en main.db (tabla sites) + └── Guarda sesión → Redirige a /dashboard (equivalente a wp-admin) +4. Dashboard → Cliente ve SUS sitios +5. Customizer → /customizer/{site_id} (sidebar + preview) +6. Cliente envía → POST /dashboard/submit/{site_id} +7. Admin → /admin (solo user_id=1) aprueba +8. Publicado → /site/{slug} +``` + +## 🗄️ BASES DE DATOS + +### main.db (SQLite) - TODO EN UNA SOLA BASE DE DATOS (Multi-tenant como WordPress) + +**✅ Sistema Multi-tenant:** Todos los clientes en una sola base de datos, cada cliente solo ve SUS datos a través de `/dashboard` (equivalente a wp-admin) + +**Tabla: users** +- id, email (UNIQUE), password (hash), plan, rubro, created_at +- Todos los usuarios/clientes están aquí + +**Tabla: sites** +- id, user_id (FK), slug (UNIQUE), theme, status (draft/pending/published), content_json, created_at +- Todos los sitios, filtrados por user_id (cada cliente solo ve los suyos) + +**Tabla: requests** +- id, site_id (FK), user_id (FK), status (pending/approved/rejected), created_at +- Solicitudes de publicación + +**Tabla: media** +- id, user_id (FK), site_id (FK), filename, filepath, file_type, uploaded_at +- Archivos subidos por clientes, filtrados por user_id + +**Tabla: content** +- id, user_id (FK), site_id (FK), section, data_json, updated_at +- Contenido por sección (futuro uso), filtrado por user_id y site_id + +**Tabla: settings** +- id, user_id (FK), site_id, key, value, created_at, updated_at +- Configuraciones (como wp_options en WordPress), filtrado por user_id y site_id + +**Tabla: menus** +- id, user_id (FK), site_id (FK), location (header/footer/sidebar), title, url, order_index, parent_id, created_at +- Sistema de menús dinámicos por ubicación, filtrado por user_id y site_id + +**Tabla: widgets** +- id, user_id (FK), site_id (FK), area (sidebar/footer/etc), type, title, content, order_index, created_at, updated_at +- Sistema de widgets dinámicos por área, filtrado por user_id y site_id + +## 🎨 TEMPLATES (Sistema WordPress-like) + +### Templates Disponibles +- **gimnasio-claro:** Tema para gimnasios (rojo/negro) +- **restaurante-moderno:** Tema moderno (rojo/naranja) - 2 variantes +- **restaurante-elegante:** Tema elegante (marrón/dorado) + +### Estructura de Template (Sistema Modular GKACHELE™) +``` +themes/ +├── _gkachele/ # Sistema base modular (como WordPress) +│ ├── header.php # Header con menús dinámicos +│ ├── footer.php # Footer con copyright GKACHELE™ +│ └── sidebar.php # Sidebar con widgets dinámicos +├── {nombre}/ # Temas específicos +│ ├── config.json # Configuración (colores, tipografía, secciones) +│ ├── template.html # HTML del template (contenido principal) +│ └── style.css # CSS (opcional) +``` + +**Sistema de Renderizado:** +- `render_gkachele_template()` concatena: `header.php` + `template.html` + `sidebar.php` + `footer.php` +- Menús y widgets se cargan dinámicamente desde la base de datos +- Soporte para múltiples ubicaciones de menú (header, footer, sidebar) +- Widgets por área (sidebar, footer, etc.) + +### Asignación Automática +- **restaurante:** Aleatorio entre `restaurante-moderno` y `restaurante-elegante` +- **gimnasio/gimnasios:** `gimnasio-claro` +- **Otros:** `default` + +## 🔧 CONFIGURACIÓN NGINX + +**Archivo:** `/etc/nginx/sites-available/gk-saas.komkida.duckdns.org.conf` + +```nginx +server { + listen 80; + server_name gk-saas.komkida.duckdns.org; + + location / { + proxy_pass http://localhost:5001; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } +} +``` + +**Comandos:** +```bash +sudo nginx -t # Verificar configuración +sudo systemctl reload nginx # Recargar +tail -f /var/log/nginx/gk-saas-error.log # Ver logs +``` + +## 🔄 SERVICIO SYSTEMD + +**Archivo:** `/etc/systemd/system/gkachele-saas.service` + +```ini +[Unit] +Description=GKACHELE SaaS Flask App +After=network.target + +[Service] +Type=simple +User=pi +WorkingDirectory=/home/pi/gkachele-saas +Environment="PATH=/usr/bin:/usr/local/bin:/home/pi/.local/bin" +ExecStart=/usr/bin/python3 /home/pi/gkachele-saas/app.py +Restart=always +RestartSec=10 + +[Install] +WantedBy=multi-user.target +``` + +**Comandos:** +```bash +sudo systemctl start gkachele-saas # Iniciar +sudo systemctl stop gkachele-saas # Detener +sudo systemctl restart gkachele-saas # Reiniciar +sudo systemctl status gkachele-saas # Estado +journalctl -u gkachele-saas -f # Ver logs +``` + +## 🚀 ACTUALIZAR CÓDIGO EN RASPBERRY + +### Método Correcto (con sshpass desde WSL): +```bash +# 1. Copiar código actualizado +wsl bash -c "sshpass -p 'Gdk1983gdk45@' scp -P 2222 -o StrictHostKeyChecking=no /mnt/c/word/demo/app.py pi@192.168.1.134:/home/pi/gkachele-saas/app.py" + +# 2. Reiniciar app (matar proceso y reiniciar) +wsl bash -c "sshpass -p 'Gdk1983gdk45@' ssh -p 2222 -o StrictHostKeyChecking=no pi@192.168.1.134 'pkill -f \"python3 app.py\" && cd ~/gkachele-saas && nohup python3 app.py > /tmp/app.log 2>&1 &'" +``` + +### Instalar Servicio Systemd (una vez): +```bash +# Copiar servicio +wsl bash -c "sshpass -p 'Gdk1983gdk45@' scp -P 2222 -o StrictHostKeyChecking=no gkachele-saas.service pi@192.168.1.134:/tmp/" + +# Instalar servicio +wsl bash -c "sshpass -p 'Gdk1983gdk45@' ssh -p 2222 -o StrictHostKeyChecking=no pi@192.168.1.134 'sudo mv /tmp/gkachele-saas.service /etc/systemd/system/ && sudo systemctl daemon-reload && sudo systemctl enable gkachele-saas && sudo systemctl start gkachele-saas'" +``` + +### Configurar Cron en Raspberry (actualizar automáticamente): +```bash +# 1. Crear script de actualización +wsl bash -c "sshpass -p 'Gdk1983gdk45@' scp -P 2222 -o StrictHostKeyChecking=no update-app-raspberry.sh pi@192.168.1.134:~/scripts/update-app.sh" + +# 2. Dar permisos +wsl bash -c "sshpass -p 'Gdk1983gdk45@' ssh -p 2222 -o StrictHostKeyChecking=no pi@192.168.1.134 'chmod +x ~/scripts/update-app.sh'" + +# 3. Agregar a crontab (cada hora) - requiere permisos +wsl bash -c "sshpass -p 'Gdk1983gdk45@' ssh -p 2222 -o StrictHostKeyChecking=no pi@192.168.1.134 'echo \"0 * * * * /home/pi/scripts/update-app.sh\" | crontab -'" + +# Verificar cron +wsl bash -c "sshpass -p 'Gdk1983gdk45@' ssh -p 2222 -o StrictHostKeyChecking=no pi@192.168.1.134 'crontab -l'" +``` + +**NOTA:** El cron actualiza cada hora. Para actualizar manualmente el código, usar el método de SCP arriba. + +## 📋 RUTAS PRINCIPALES + +### Públicas +- `GET /` - Landing page +- `GET /register` - Formulario registro +- `POST /register` - Crear usuario (JSON) +- `GET /login` - Formulario login +- `POST /login` - Iniciar sesión (JSON) +- `GET /site/{slug}` - Sitio público publicado + +### Cliente (requiere sesión) +- `GET /dashboard` - Dashboard del cliente +- `GET /customizer/{site_id}` - Personalizador +- `POST /api/customizer/save` - Guardar cambios +- `GET /api/customizer/preview-frame/{site_id}` - Preview iframe +- `POST /dashboard/submit/{site_id}` - Enviar para aprobación +- `GET /dashboard/admin` - Admin del cliente (media, config) + +### APIs de Menús y Widgets +- `GET /api/menus/` - Obtener menús del sitio +- `POST /api/menus/` - Guardar/actualizar menús +- `GET /api/widgets/` - Obtener widgets del sitio +- `POST /api/widgets/` - Guardar/actualizar widgets + +### Admin Principal (solo user_id=1) +- `GET /admin` - Dashboard principal +- `POST /admin/approve/{request_id}` - Aprobar solicitud +- `POST /admin/reject/{request_id}` - Rechazar solicitud + +## 🔐 SEGURIDAD + +### Sesiones +- Flask `session` con `secret_key` +- Cookie `SESSION_COOKIE_SAMESITE = 'Lax'` +- Sesión se guarda después de login exitoso + +### Acceso +- **Clientes:** Solo ven SUS sitios (filtrado por `user_id` en sesión) +- **Admin:** Solo `user_id = 1` puede acceder a `/admin` +- **Passwords:** Hash con `werkzeug.security.generate_password_hash` + +## 🎯 ESTADO ACTUAL + +### ✅ Funcionando +- Landing page (GKACHELE™ original) +- Registro de clientes → Redirige a `/login` (sin sesión automática) +- Login de clientes → Redirige a `/dashboard` +- Dashboard del cliente +- Customizer básico (sidebar + preview) +- Templates: gimnasio-claro, restaurante-moderno, restaurante-elegante +- **Sistema modular de templates (_gkachele/header.php, footer.php, sidebar.php)** +- **Sistema de menús dinámicos (header, footer, sidebar)** +- **Sistema de widgets dinámicos (sidebar, footer, etc.)** +- **Función `render_gkachele_template()` para renderizado completo** +- **APIs para gestionar menús y widgets** +- Base de datos SQLite multi-tenant (main.db con tablas menus y widgets) +- Nginx reverse proxy +- Systemd service +- DuckDNS para dominio remoto +- Scripts de gestión: `ver_usuarios.py`, `limpiar_db.py` + +### ⚠️ Pendiente +- Drag & drop de secciones (SortableJS) +- Edición inline (contenteditable) +- Gitea para repos por cliente + automatización +- Dashboard principal para aprobar solicitudes +- Plugins sencillos (colores, tipografía avanzada) +- SSL/HTTPS (Let's Encrypt) + +### 🎯 PRÓXIMOS OBJETIVOS (PRIORITARIOS) +1. **✅ Template y Menús Profesionales (COMPLETADO):** + - ✅ Sistema modular (_gkachele/header.php, footer.php, sidebar.php) + - ✅ Sistema de menús dinámicos (header, footer, sidebar) + - ✅ Múltiples ubicaciones de menú + - ✅ Sistema de widgets/áreas + - ⚠️ **PENDIENTE:** UI completa para gestionar menús desde customizer (actualmente solo placeholder) + +2. **Mejorar Landing:** + - Diseño más profesional + - Mejor UX/UI + - Optimización de conversión + +3. **Automatización con Gitea:** + - Integración Gitea para repos por cliente + - Automatización de despliegues + - Workflows automáticos + - Integración con n8n (futuro) + +## 📦 DEPENDENCIAS + +**Python:** +- Flask +- Werkzeug (password hashing) +- SQLite3 (built-in) + +**Instalación:** +```bash +pip3 install Flask Werkzeug +``` + +## 🌐 DUCKDNS + +**Dominios:** +- **komkida.duckdns.org:** Token `9c5cff88-b6d7-4704-9b10-4a69afdff797` +- **gkachele.duckdns.org:** Token `578331b3-ad7b-4154-835d-e496465257b0` + +**Actualizar IP:** +```bash +python3 update-komkida-duckdns.py +``` + +## 🚀 MIGRACIÓN A VPS + +**Pasos:** +1. Copiar `/home/pi/gkachele-saas/` completo +2. Instalar Python3, Nginx en VPS +3. Copiar configuración Nginx +4. Copiar servicio systemd +5. Cambiar dominio (DuckDNS o dominio real) +6. Configurar SSL (Let's Encrypt) + +**Ventajas:** +- ✅ Mismo código (sin cambios) +- ✅ Misma estructura +- ✅ Más recursos +- ✅ Mejor rendimiento + +## 📝 NOTAS IMPORTANTES + +- **NO usar Docker:** Todo corre directamente (Python + Nginx) +- **NO usar GitHub:** Todo es independiente en Raspberry +- **SQLite es suficiente:** Para SaaS pequeño, no necesita MySQL +- **Raspberry Pi 3:** Recursos limitados, pero suficiente para desarrollo +- **VPS recomendado:** Para producción con muchos clientes + +## 📦 BACKUP Y VERSIONADO + +**Hash Actual:** `gkachele-template-system-20250114-v1` + +**Estado Verificado:** +- ✅ Templates _gkachele en Raspberry: header.php, footer.php, sidebar.php +- ✅ Función render_gkachele_template en app.py +- ✅ Tablas menus y widgets en main.db +- ✅ Servicio gkachele-saas activo +- ✅ Flujo de registro: Registro → Login → Dashboard → Customizer + +**Scripts de Gestión:** +- `ver_usuarios.py` - Ver usuarios y sitios registrados +- `limpiar_db.py` - Limpiar base de datos (con confirmación) +- `verificar_raspberry.sh` - Verificar estado en Raspberry + +--- +**Última actualización:** 14 Enero 2025 - 08:50 diff --git a/memoria/MEMORIA_RASPBERRY_SAAS.md b/memoria/MEMORIA_RASPBERRY_SAAS.md new file mode 100644 index 0000000..df4934a --- /dev/null +++ b/memoria/MEMORIA_RASPBERRY_SAAS.md @@ -0,0 +1,133 @@ +# 🎯 MEMORIA: SaaS en Raspberry Pi 3 - Estado Actual + +**Fecha:** 13 Enero 2025 +**Hash:** `raspberry-pi3-saas-setup-20250113` + +## ✅ LO QUE ESTÁ FUNCIONANDO + +### 1. Flask SaaS en Raspberry Pi +- **Ubicación:** `/home/pi/gkachele-saas/` +- **Puerto:** 5001 +- **Estado:** ✅ Corriendo (2 procesos) +- **Landing:** `landing_real.html` (GKACHELE™ original) +- **Base de datos:** SQLite (`database/main.db`) + +### 2. Nginx Configurado +- **Configuración activa:** `gk-saas.komkida.duckdns.org` +- **Ubicación:** `/etc/nginx/sites-available/gk-saas.komkida.duckdns.org` +- **Proxy:** `localhost:5001` (SIN GitHub) +- **Estado:** ✅ Funcionando + +### 3. Dominio Remoto +- **URL:** `http://gk-saas.komkida.duckdns.org` +- **DuckDNS Token:** `9c5cff88-b6d7-4704-9b10-4a69afdff797` +- **IP Raspberry:** `213.195.104.66` +- **NOTA:** Este dominio NO tiene relación con GitHub + +## 📁 ESTRUCTURA EN RASPBERRY + +``` +/home/pi/gkachele-saas/ +├── app.py # Flask backend +├── database/ +│ ├── main.db # DB principal +│ └── sites/ # DBs por cliente +├── sites/ # Sitios compilados +├── themes/ # Templates +│ ├── gimnasio-claro/ +│ └── restaurante-moderno/ +├── static/ +│ └── style.css # CSS landing real +└── templates/ + ├── landing_real.html # Landing GKACHELE™ + ├── register.html + ├── login.html + ├── dashboard.html + ├── customizer.html + └── admin.html +``` + +## 🔧 CONFIGURACIÓN NGINX + +### Archivo activo: +`/etc/nginx/sites-available/gk-saas.komkida.duckdns.org` + +```nginx +server { + listen 80; + server_name gk-saas.komkida.duckdns.org; + location / { + proxy_pass http://localhost:5001; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } +} +``` + +## 🔐 CREDENCIALES + +### Raspberry Pi +- **Host:** `komkida.duckdns.org` o `192.168.1.134` +- **Puerto SSH:** 2222 +- **Usuario:** `pi` +- **Password:** `Gdk1983gdk45@` + +### DuckDNS +- **komkida.duckdns.org:** Token `9c5cff88-b6d7-4704-9b10-4a69afdff797` +- **gkachele.duckdns.org:** Token `578331b3-ad7b-4154-835d-e496465257b0` + +## 🚀 COMANDOS ÚTILES + +### Actualizar DuckDNS +```bash +python3 -c "import urllib.request; print(urllib.request.urlopen('https://www.duckdns.org/update?domains=komkida&token=9c5cff88-b6d7-4704-9b10-4a69afdff797&ip=').read())" +``` + +### Verificar Flask +```bash +curl http://localhost:5001/ +``` + +### Recargar Nginx +```bash +sudo nginx -t && sudo systemctl reload nginx +``` + +### Ver logs +```bash +tail -f /var/log/nginx/gk-saas-access.log +tail -f /var/log/nginx/gk-saas-error.log +``` + +## ⚠️ IMPORTANTE + +- **NO usar GitHub:** Todo es independiente en Raspberry +- **Dominio principal:** `gk-saas.komkida.duckdns.org` (NO `gkachele.duckdns.org`) +- **Raspberry Pi 3:** Recursos suficientes para SaaS pequeño +- **SQLite:** Base de datos ligera, perfecta para Pi + +## 📝 PRÓXIMOS PASOS + +1. ✅ Instalar Gitea en Raspberry (opcional) +2. ✅ Automatizar DuckDNS (cron cada 5 min) +3. ✅ Crear servicio systemd para Flask +4. ✅ Configurar SSL/HTTPS (Let's Encrypt) + +## 🎯 FLUJO COMPLETO + +``` +Cliente → gk-saas.komkida.duckdns.org + ↓ + Nginx (puerto 80) + ↓ + Flask (puerto 5001) + ↓ + SQLite (database/) + ↓ + Landing/SaaS funcionando +``` + +--- +**Última actualización:** 13 Enero 2025 - 15:58 diff --git a/memoria/MEMORIA_SINCRONIZACION.md b/memoria/MEMORIA_SINCRONIZACION.md new file mode 100644 index 0000000..ae5f611 --- /dev/null +++ b/memoria/MEMORIA_SINCRONIZACION.md @@ -0,0 +1,97 @@ +# 🔄 MEMORIA: Sincronización y Modularización + +**Fecha:** 13 Enero 2025 +**Hash:** `sincronizacion-modular-wordpress-20250113` + +## ✅ REQUISITOS PRINCIPALES + +### 1. Sincronización con Hash +- **Raspberry y Local deben estar sincronizados** +- **Usar hash para verificar versiones** +- **Siempre verificar antes de actualizar** + +### 2. Modularizado +- **Código debe estar modularizado** +- **Fácil de mantener y actualizar** +- **Separar responsabilidades** + +### 3. PRIMERO: Copiar WordPress Similar en Raspberry +- **NO empezar desde cero** +- **Copiar funcionalidad similar a WordPress primero** +- **Luego ver qué sirve y qué no** +- **Iterar sobre lo que funciona** + +## 🎯 PLAN DE TRABAJO + +### FASE 1: Copiar WordPress Similar (AHORA) +1. Implementar registro simple como WordPress +2. Implementar login simple +3. Implementar dashboard básico +4. Implementar customizer básico +5. **TODO en Raspberry primero** + +### FASE 2: Verificar qué Sirve +1. Probar cada funcionalidad +2. Identificar qué funciona bien +3. Identificar qué no sirve +4. Eliminar lo que no sirve + +### FASE 3: Modularizar +1. Separar en módulos +2. Crear hash de versión +3. Sincronizar Raspberry ↔ Local + +## 🔄 SISTEMA DE HASH + +**Cada versión debe tener:** +- Hash único (ej: `v1.0.0-abc123`) +- Fecha de actualización +- Lista de cambios + +**Verificar sincronización:** +```bash +# En local +md5sum demo/app.py > local.hash + +# En Raspberry +md5sum /home/pi/gkachele-saas/app.py > raspberry.hash + +# Comparar +diff local.hash raspberry.hash +``` + +## 📋 PRÓXIMOS PASOS + +1. ✅ Memorizar requisitos +2. [ ] Copiar WordPress similar en Raspberry +3. [ ] Probar funcionalidades +4. [ ] Eliminar lo que no sirve +5. [ ] Modularizar código +6. [ ] Implementar sistema de hash + +## 🖥️ INDEPENDENCIA DEL PC + +**✅ SÍ, funciona aunque apagues el PC:** + +- **Flask:** Corre como servicio systemd en la Raspberry (auto-inicia al arrancar) +- **Nginx:** Corre como servicio systemd en la Raspberry (auto-inicia al arrancar) +- **Todo está en la Raspberry:** No depende del PC para funcionar + +**El PC solo se usa para:** +- Editar código localmente +- Copiar archivos a la Raspberry (SSH/SCP) +- **NO es necesario que esté encendido para que la página funcione** + +**Servicios configurados para auto-iniciar:** +- `gkachele-saas.service` → `enabled` (inicia automáticamente) +- `nginx.service` → `enabled` (inicia automáticamente) + +**Verificar:** +```bash +# En Raspberry +systemctl is-enabled gkachele-saas # Debe decir "enabled" +systemctl is-enabled nginx # Debe decir "enabled" +``` + +--- +**IMPORTANTE:** Primero copiar WordPress similar, luego iterar. No inventar desde cero. diff --git a/memoria/METODOLOGIA_TRABAJO.md b/memoria/METODOLOGIA_TRABAJO.md new file mode 100644 index 0000000..7eee0d0 --- /dev/null +++ b/memoria/METODOLOGIA_TRABAJO.md @@ -0,0 +1,74 @@ +# 🎯 Metodología de Trabajo - GKACHELE™ + +**© 2025 GKACHELE™. Todos los derechos reservados.** + +## ⚠️ REGLA DE TRABAJO + +### Orden de Prioridades: + +1. **PRIMERO: Hacer que funcione bien** + - Implementar funcionalidad + - Probar que funciona + - Verificar en producción (Raspberry) + +2. **DESPUÉS: Limpieza** + - Optimizar código + - Refactorizar + - Mejorar estructura + - Documentar + +### ⚠️ NO hacer limpieza antes de que funcione + +**Flujo correcto:** +``` +Funcionalidad → Probar → Funciona → Limpieza → Documentar +``` + +**Flujo incorrecto:** +``` +Funcionalidad → Limpieza → Probar → ❌ No funciona +``` + +--- + +## 📋 Checklist de Trabajo + +### Fase 1: Funcionalidad +- [ ] Implementar funcionalidad básica +- [ ] Probar localmente +- [ ] Desplegar a Raspberry +- [ ] Verificar que funciona en producción +- [ ] Confirmar con usuario + +### Fase 2: Limpieza (SOLO después de que funcione) +- [ ] Optimizar código +- [ ] Refactorizar si es necesario +- [ ] Mejorar estructura +- [ ] Documentar cambios +- [ ] Actualizar memoria + +--- + +## 🎯 Principios + +1. **Funcionalidad primero, perfección después** +2. **Probar en producción antes de limpiar** +3. **No optimizar prematuramente** +4. **Iterar: Funciona → Mejora → Funciona mejor** + +--- + +## 📝 Notas + +- Siempre verificar que funciona antes de hacer limpieza +- La limpieza es importante, pero no es prioridad sobre funcionalidad +- Documentar después de que todo funcione + +--- + +**Última actualización:** 14 Enero 2025 +**Hash:** `gkachele-metodologia-20250114` + +--- + +**© 2025 GKACHELE™. Todos los derechos reservados.** diff --git a/memoria/OBJETIVOS_ARGENTINA.md b/memoria/OBJETIVOS_ARGENTINA.md new file mode 100644 index 0000000..8a4f91c --- /dev/null +++ b/memoria/OBJETIVOS_ARGENTINA.md @@ -0,0 +1,163 @@ +# 🇦🇷 OBJETIVOS PARA ARGENTINA - GKACHELE™ + +**© 2025 GKACHELE™. Todos los derechos reservados.** + +## 🎯 OBJETIVO PRINCIPAL + +**Lanzar GKACHELE™ SaaS en Argentina con funcionalidad completa y profesional.** + +--- + +## ✅ CRITERIO DE ÉXITO + +**Si funciona 1 rubro bien en Raspberry Pi → PAGAR VPS** + +--- + +## 🚀 OBJETIVOS PRIORITARIOS + +### 1. **Funcionalidad Core (PRIMERO)** +- ✅ Registro de clientes +- ✅ **Login → Customizer directo (FUNCIONANDO - Hash v3)** +- ✅ Dashboard del cliente (`/dashboard` - ver sus sitios) +- ✅ Customizer funcional (`/customizer/{site_id}`) +- ✅ Panel admin (`/admin` - gestión completa) +- ✅ Flujo completo: Landing → Registro → Login → Customizer → Enviar → Admin → Publicado + +### 2. **Gitea - Despliegues y Workflows** +- Integración Gitea para repositorios por cliente +- Workflows automáticos: + - Aceptar peticiones de publicación + - Desplegar sitios automáticamente + - Generar repositorios por cliente + - Versionado automático +- Integración con dashboard admin para gestionar workflows + +### 3. **Control de Versiones** +- Git para landing page +- Versionado de templates +- Historial de cambios +- Rollback de versiones + +### 4. **Mejoras Landing Page** +- Diseño optimizado para Argentina +- Mejor UX/UI +- Optimización de conversión +- Responsive mejorado +- Performance optimizado + +### 5. **Workflows Dashboard Admin** +- Aceptar/rechazar peticiones +- Gestionar usuarios +- Ver estadísticas +- Gestionar despliegues +- Control de versiones +- Integración con Gitea + +--- + +## 🗄️ INFRAESTRUCTURA + +### Actual: Raspberry Pi 3 +- Desarrollo y pruebas +- Si funciona bien → Migrar a VPS + +### Futuro: VPS +- Más recursos +- Mejor rendimiento +- Dominio propio (ya tienes) +- SSL/HTTPS +- Escalabilidad + +--- + +## 📋 CHECKLIST PRE-ARGENTINA + +### Funcionalidad Básica: +- [x] Registro funciona correctamente (✅) +- [x] Login redirige a customizer (✅ FUNCIONANDO) +- [x] Dashboard del cliente visible y funcional (✅) +- [x] Customizer básico funcional (✅) +- [x] Panel admin funcional (✅) +- [ ] Al menos 1 rubro funcionando perfecto (EN PROGRESO) + +### Gitea y Workflows: +- [ ] Gitea instalado y configurado +- [ ] Repositorios automáticos por cliente +- [ ] Workflows de despliegue +- [ ] Integración con dashboard admin +- [ ] Aceptar peticiones desde workflows + +### Control de Versiones: +- [ ] Git configurado +- [ ] Landing en repositorio +- [ ] Versionado de templates +- [ ] Historial de cambios + +### Landing Mejorada: +- [ ] Diseño optimizado +- [ ] UX/UI mejorada +- [ ] Performance optimizado +- [ ] Responsive completo +- [ ] Optimización conversión + +### Testing: +- [ ] Probar con 1 rubro completo +- [ ] Verificar en Raspberry +- [ ] Si funciona → Preparar VPS + +--- + +## 🎯 PLAN DE ACCIÓN + +### Fase 1: Funcionalidad Core (AHORA) +1. Verificar dashboard del cliente +2. Completar customizer +3. Probar con 1 rubro completo +4. Verificar que todo funcione + +### Fase 2: Gitea y Workflows +1. Instalar/configurar Gitea +2. Integrar con sistema +3. Crear workflows automáticos +4. Conectar con dashboard admin + +### Fase 3: Control de Versiones +1. Configurar Git +2. Versionar landing +3. Versionar templates +4. Sistema de rollback + +### Fase 4: Landing Mejorada +1. Rediseñar landing +2. Optimizar para Argentina +3. Mejorar conversión +4. Testing completo + +### Fase 5: VPS (Si funciona en Raspberry) +1. Preparar VPS +2. Migrar código +3. Configurar dominio +4. SSL/HTTPS +5. Lanzamiento + +--- + +## 📝 NOTAS IMPORTANTES + +- **Prioridad:** Funcionalidad primero, perfección después +- **Testing:** Probar cada funcionalidad antes de avanzar +- **Documentación:** Todo en carpeta `memoria/` +- **Control de Versiones:** Git desde el inicio +- **Argentina:** Optimizar para mercado argentino + +--- + +## 🔄 ACTUALIZACIÓN + +**Última actualización:** 14 Enero 2025 +**Hash:** `gkachele-objetivos-argentina-20250114` + +--- + +**© 2025 GKACHELE™. Todos los derechos reservados.** diff --git a/memoria/OBJETIVO_CUSTOMIZER_ADAPTADO.md b/memoria/OBJETIVO_CUSTOMIZER_ADAPTADO.md new file mode 100644 index 0000000..815b623 --- /dev/null +++ b/memoria/OBJETIVO_CUSTOMIZER_ADAPTADO.md @@ -0,0 +1,91 @@ +# 🎯 OBJETIVO: CUSTOMIZER ADAPTADO DE WORDPRESS + +**© 2025 GKACHELE™. Todos los derechos reservados.** + +**Fecha:** 15 Enero 2025 +**Hash:** `gkachele-objetivo-customizer-adaptado-20250115-001` + +**⚠️ IMPORTANTE:** Este fue el plan desde el principio. Debería estar ya hecho. + +--- + +## ✅ OBJETIVO CLARO (PLAN ORIGINAL) + +### **COPIAR Y ADAPTAR WORDPRESS:** +1. ✅ **COPIAR WordPress** (funcionalidades completas) +2. ✅ **AUTOMATIZAR** (procesos automáticos, no manual) +3. ✅ **Cambiar branding a GKACHELE™** (logo, nombres, colores) +4. ✅ **ADAPTAR** con lo que ya sabemos +5. ⚠️ **DEBERÍA ESTAR YA HECHO** (pero no está implementado aún) + +--- + +## 🎯 PRINCIPIOS + +### 1. **SIMILAR, NO IGUAL** +- ✅ Usar WordPress como **referencia visual y funcional** +- ✅ Adaptar diseño con **branding GKACHELE™** +- ✅ Mantener funcionalidades pero con **nuestro estilo** +- ❌ NO copiar WordPress exactamente +- ❌ NO usar nombres/colores de WordPress + +### 2. **AUTOMATIZADO** +- ✅ Procesos automáticos (no manual) +- ✅ Guardado automático de preview +- ✅ Sincronización automática +- ✅ Validación automática +- ✅ Generación automática (mapas, WhatsApp, etc.) + +### 3. **ADAPTAR, NO COPIAR** +- ✅ Ver cómo funciona WordPress +- ✅ Entender la lógica +- ✅ Adaptar a nuestras necesidades +- ✅ Mejorar donde sea posible +- ✅ Personalizar con GKACHELE™ + +--- + +## 📋 LO QUE TENEMOS + +### **Referencia:** +- ✅ Demo completo WordPress: `customizer-wordpress-COMPLETO.html` +- ✅ Documentación: `CUSTOMIZER_WORDPRESS_COMPLETO.md` +- ✅ Código WordPress real en: `wp-content/themes/abiz/core/customizer/` + +### **Objetivo:** +- ✅ Customizer GKACHELE™ similar a WordPress +- ✅ Funcionalidades automáticas +- ✅ Diseño adaptado con branding GKACHELE™ + +--- + +## 🚀 PROCESO (PLAN ORIGINAL) + +1. ✅ **Analizar WordPress** (ya hecho - demo completo) +2. ⏳ **COPIAR WordPress** (demo completo al customizer real) +3. ⏳ **AUTOMATIZAR** (procesos automáticos) +4. ⏳ **Cambiar branding** (GKACHELE™ en lugar de WordPress) +5. ⏳ **ADAPTAR** (con lo que ya sabemos) +6. ⏳ **Integrar con backend** (Flask/Python) +7. ⏳ **Testing y pulido** + +**Estado:** Pendiente de implementar (debería estar ya hecho) + +--- + +## 📌 NOTAS IMPORTANTES + +- **NO mencionar "WordPress"** en el código (ver REGLA_IMPORTANTE.md) +- **Usar "GKACHELE™ Customizer"** o "Sistema GKACHELE™" +- **Adaptar, no copiar** +- **Automatizar todo lo posible** + +--- + +**Última actualización:** 2025-01-15 +**Hash:** `gkachele-objetivo-customizer-adaptado-20250115-001` +**Estado:** ✅ **OBJETIVO CLARO - LISTO PARA IMPLEMENTAR** + +--- + +**© 2025 GKACHELE™. Todos los derechos reservados.** diff --git a/memoria/PENDIENTES_MEJORAS.md b/memoria/PENDIENTES_MEJORAS.md new file mode 100644 index 0000000..d3ebccb --- /dev/null +++ b/memoria/PENDIENTES_MEJORAS.md @@ -0,0 +1,307 @@ +# 📋 Pendientes y Mejoras - GKACHELE™ + +**© 2025 GKACHELE™. Todos los derechos reservados.** + +**Hash:** `gkachele-pendientes-20250115-004` + +**Fecha:** 2025-01-15 + +**⚠️ VER:** `PROBLEMAS_CRITICOS_CUSTOMIZER.md` - **REHACER COMPLETAMENTE EL CUSTOMIZER** + +--- + +## ✅ FUNCIONALIDADES COMPLETADAS + +1. ✅ **Sistema de bloques añadibles COMPLETO** (video, imagen, texto, redes sociales, mapa) + - ✅ Función `addNewBlock()` implementada + - ✅ Función `removeBlock()` implementada + - ✅ Función `loadBlocksList()` implementada + - ✅ Lista de bloques en sidebar funcional + - ✅ Integración completa con backend + - ✅ Notificaciones de éxito/error +2. ✅ Iconos SVG para redes sociales +3. ✅ Click to edit en preview +4. ✅ Gestión de platos del menú (añadir/eliminar) +5. ✅ Actualización en tiempo real del preview +6. ✅ Drag & drop básico para bloques + +--- + +## 🔧 MEJORAS PENDIENTES + +### 1. 🗺️ Mapa Automático desde Dirección + +**Estado:** Pendiente + +**Requisito:** +- El mapa debe generarse automáticamente usando la dirección del campo "Dirección" +- No debe requerir URL manual +- Usar Google Maps Embed API sin API key (o geocoding simple) + +**Implementación:** +```javascript +// Cuando cambie la dirección, generar automáticamente el mapa +function generateMapFromAddress(address) { + // Convertir dirección a URL de Google Maps embed + const encodedAddress = encodeURIComponent(address); + const mapUrl = `https://www.google.com/maps/embed/v1/place?key=AIzaSy...&q=${encodedAddress}`; + // O usar iframe con búsqueda directa + const mapUrl = `https://www.google.com/maps?q=${encodedAddress}&output=embed`; + return mapUrl; +} +``` + +**Archivos a modificar:** +- `demo/templates/customizer.html` - Auto-generar mapa_url cuando cambie dirección +- `demo/themes/restaurante-moderno/template.html` - Usar dirección si no hay mapa_url + +--- + +### 2. 📁 Upload de Archivos (Drag & Drop) + +**Estado:** Pendiente + +**Requisito:** +- Arrastrar y soltar archivos en campos de Media +- O abrir navegador de archivos +- No usar URLs manuales +- Subir a servidor y guardar ruta + +**Implementación:** +```html + +
+ + +

O arrastra y suelta aquí

+
+``` + +```python +# En app.py +@app.route('/api/upload', methods=['POST']) +def upload_file(): + if 'file' not in request.files: + return jsonify({'error': 'No file'}), 400 + file = request.files['file'] + if file.filename == '': + return jsonify({'error': 'No file selected'}), 400 + filename = secure_filename(file.filename) + filepath = os.path.join(UPLOAD_FOLDER, filename) + file.save(filepath) + return jsonify({'url': f'/uploads/{filename}'}) +``` + +**Archivos a modificar:** +- `demo/templates/customizer.html` - Añadir drag & drop a campos Media +- `demo/app.py` - Endpoint de upload +- `demo/static/` - Carpeta para uploads + +--- + +### 3. ✏️ Editar Contenido de Bloques Existentes + +**Estado:** Pendiente + +**Problema:** +- Los bloques se pueden añadir y eliminar, pero no editar su contenido +- No hay forma de modificar el contenido de un bloque después de crearlo + +**Solución:** +```javascript +// En template.html - función debe estar disponible globalmente +function removeBlockFromPreview(blockId) { + if (window.parent !== window) { + window.parent.postMessage({ + type: 'remove-block', + block_id: blockId + }, '*'); + } else { + // Si no está en iframe, llamar directamente + removeBlock(blockId); + } +} + +// En customizer.html - escuchar mensaje +window.addEventListener('message', function(e) { + if (e.data && e.data.type === 'remove-block') { + removeBlock(e.data.block_id); + } +}); +``` + +**Archivos a modificar:** +- `demo/templates/customizer.html` - Añadir función `editBlock(blockId)` que abra modal según tipo +- `demo/templates/customizer.html` - Hacer bloques clickeables en la lista para editar +- `demo/app.py` - Endpoint `/api/customizer/update-block` para actualizar contenido + +--- + +### 4. 🧩 Eliminar Zonas/Secciones (Como WordPress) + +**Estado:** Pendiente + +**Requisito:** +- Poder eliminar secciones completas (Hero, Menú, Horarios, Contacto, etc.) +- Como WordPress: cada sección puede ocultarse/eliminarse +- Guardar estado en content_json + +**Implementación:** +```json +{ + "sections": { + "hero": {"visible": true, "enabled": true}, + "menu": {"visible": true, "enabled": true}, + "horarios": {"visible": false, "enabled": false}, + "contacto": {"visible": true, "enabled": true} + } +} +``` + +```html + +{% if sections.hero.enabled %} +
+ + +
+{% endif %} +``` + +**Archivos a modificar:** +- `demo/templates/customizer.html` - Añadir controles para secciones +- `demo/themes/restaurante-moderno/template.html` - Renderizar condicionalmente +- `demo/app.py` - Endpoint para toggle de secciones + +--- + +### 5. ✏️ Edición de Contenido de Bloques + +**Estado:** Pendiente + +**Requisito:** +- Cada bloque añadido debe ser editable +- Click en bloque → editar contenido +- Modal o inline editor según tipo + +**Implementación:** +```javascript +function editBlock(blockId) { + const block = blocks.find(b => b.id === blockId); + if (!block) return; + + // Abrir modal según tipo + if (block.type === 'texto') { + openTextEditor(block); + } else if (block.type === 'video') { + openVideoEditor(block); + } else if (block.type === 'redes_sociales') { + openSocialEditor(block); + } +} +``` + +**Archivos a modificar:** +- `demo/templates/customizer.html` - Añadir función editBlock +- `demo/themes/restaurante-moderno/template.html` - Hacer bloques clickeables + +--- + +### 6. 🔄 Guardado Automático de Orden (Drag & Drop) + +**Estado:** Pendiente + +**Requisito:** +- Al arrastrar y soltar bloques, guardar orden automáticamente +- No esperar a añadir/eliminar + +**Implementación:** +```javascript +function handleDrop(e) { + e.preventDefault(); + // Reordenar bloques + const newOrder = Array.from(document.querySelectorAll('.gk-block')) + .map(block => block.dataset.blockId); + + // Guardar orden inmediatamente + fetch('/api/customizer/reorder-blocks', { + method: 'POST', + headers: {'Content-Type': 'application/json'}, + body: JSON.stringify({ + site_id: siteId, + block_ids: newOrder + }) + }); +} +``` + +**Archivos a modificar:** +- `demo/themes/restaurante-moderno/template.html` - Mejorar drag & drop +- `demo/templates/customizer.html` - Guardar orden automáticamente + +--- + +## 🚨 PROBLEMAS CRÍTICOS (REHACER COMPLETAMENTE) + +**Ver documento completo:** `PROBLEMAS_CRITICOS_CUSTOMIZER.md` + +### Problemas Identificados: +1. ❌ **Diseño horrible** - No se parece a WordPress +2. ❌ **Colores horribles** - No usa paleta WordPress +3. ❌ **Guardado inconsistente** - Algunas cosas guardan, otras no +4. ❌ **No hay botón Cancelar** - Hay que refrescar o salir +5. ❌ **Mapa no funciona** +6. ❌ **No hay WhatsApp flotante** +7. ❌ **No hay scroll suave** +8. ❌ **No hay iconos a elegir** (solo emojis) + +**Solución:** REHACER COMPLETAMENTE copiando EXACTAMENTE WordPress Customizer + +--- + +## 📝 CHECKLIST DE IMPLEMENTACIÓN + +### Prioridad CRÍTICA (REHACER TODO) +- [ ] **Rehacer diseño visual** - Copiar EXACTAMENTE WordPress +- [ ] **Rehacer sistema de guardado** - Botón "Guardar y Publicar" + "Descartar" +- [ ] **Arreglar mapa** - Generar automáticamente desde dirección +- [ ] **Añadir WhatsApp flotante** - Configurable desde sidebar +- [ ] **Añadir selector de iconos** - Dashicons o Font Awesome +- [ ] **Añadir scroll suave** - Mejorar navegación + +### Prioridad Alta +- [ ] Editar contenido de bloques existentes +- [ ] Upload de archivos (drag & drop) + +### Prioridad Media +- [ ] Eliminar/ocultar secciones +- [ ] Edición de contenido de bloques +- [ ] Guardado automático de orden + +### Prioridad Baja +- [ ] Mejoras de UI/UX +- [ ] Validaciones adicionales +- [ ] Optimizaciones de rendimiento + +--- + +## 🔗 REFERENCIAS + +- WordPress: Sistema de secciones ocultables +- Elementor: Drag & drop de bloques +- Google Maps: Embed sin API key (búsqueda directa) + +--- + +## 📌 NOTAS + +- El menú de platos ya funciona correctamente (añadir/eliminar) ✅ +- Los iconos de redes sociales ya están implementados ✅ +- **El sistema de bloques está COMPLETAMENTE funcional (añadir/eliminar/listar) ✅** +- **Hash de implementación:** `gkachele-bloques-funcionales-20250115-001` + +--- + +**Última actualización:** 2025-01-15 +**Hash:** `gkachele-pendientes-20250115-004` +**Próxima sesión:** **REHACER COMPLETAMENTE EL CUSTOMIZER** - Ver `PROBLEMAS_CRITICOS_CUSTOMIZER.md` diff --git a/memoria/PROBLEMAS_CRITICOS_CUSTOMIZER.md b/memoria/PROBLEMAS_CRITICOS_CUSTOMIZER.md new file mode 100644 index 0000000..689e172 --- /dev/null +++ b/memoria/PROBLEMAS_CRITICOS_CUSTOMIZER.md @@ -0,0 +1,249 @@ +# 🚨 PROBLEMAS CRÍTICOS DEL CUSTOMIZER - GKACHELE™ + +**© 2025 GKACHELE™. Todos los derechos reservados.** + +**Fecha:** 15 Enero 2025 +**Hash:** `gkachele-problemas-customizer-20250115-001` +**Prioridad:** 🔴 **CRÍTICA - REHACER COMPLETAMENTE** + +--- + +## 📋 PROBLEMAS IDENTIFICADOS + +### 1. 🎨 **DISEÑO Y UI/UX HORRIBLE** + +**Problemas:** +- ❌ Formulario horrible - No se parece a WordPress +- ❌ Colores horribles - No usa la paleta de WordPress +- ❌ No hay scroll suave en sidebar +- ❌ Falta espaciado y padding adecuado +- ❌ Tipografía incorrecta +- ❌ Botones mal diseñados +- ❌ No hay iconos a elegir (solo emojis) + +**Solución:** +- ✅ Copiar EXACTAMENTE el diseño de WordPress Customizer +- ✅ Usar colores oficiales de WordPress (#2271b1, #f0f0f1, etc.) +- ✅ Implementar scroll suave +- ✅ Usar iconos Dashicons o Font Awesome +- ✅ Mejorar tipografía y espaciado + +--- + +### 2. 💾 **GUARDADO INCONSISTENTE** + +**Problemas:** +- ❌ Algunas cosas guardan automáticamente +- ❌ Otras cosas NO guardan automáticamente +- ❌ No hay botón "Cancelar" - hay que refrescar o salir +- ❌ No hay botón "Descartar cambios" +- ❌ No hay indicador de cambios sin guardar +- ❌ No hay confirmación antes de salir con cambios sin guardar + +**Solución (copiar WordPress):** +- ✅ **Botón "Guardar y Publicar"** (siempre visible en footer) +- ✅ **Botón "Descartar cambios"** (solo visible si hay cambios) +- ✅ **Indicador de cambios sin guardar** (punto rojo o badge) +- ✅ **Confirmación antes de salir** si hay cambios sin guardar +- ✅ **Auto-guardado** solo para preview, NO para guardar definitivamente +- ✅ **Estado de guardado** visible (guardado, guardando, error) + +--- + +### 3. 🗺️ **MAPA NO FUNCIONA** + +**Problemas:** +- ❌ Mapa no se muestra +- ❌ No genera automáticamente desde dirección +- ❌ Requiere URL manual (muy complicado) + +**Solución:** +- ✅ Generar mapa automáticamente desde campo "Dirección" +- ✅ Usar Google Maps Embed sin API key +- ✅ Mostrar preview del mapa en tiempo real +- ✅ Permitir editar posición manualmente si es necesario + +--- + +### 4. 📱 **WHATSAPP FLOTANTE NO EXISTE** + +**Problemas:** +- ❌ No hay botón flotante de WhatsApp +- ❌ No se puede configurar número +- ❌ No aparece en el sitio + +**Solución:** +- ✅ Añadir opción en sidebar: "Activar WhatsApp flotante" +- ✅ Campo para número de WhatsApp +- ✅ Botón flotante en esquina inferior derecha +- ✅ Icono de WhatsApp +- ✅ Mensaje predefinido editable + +--- + +### 5. 🧩 **FUNCIONALIDADES FALTANTES** + +**Problemas:** +- ❌ No hay iconos a elegir (solo emojis) +- ❌ No hay selector de iconos +- ❌ No hay biblioteca de iconos + +**Solución:** +- ✅ Integrar Dashicons (como WordPress) +- ✅ O Font Awesome +- ✅ Selector visual de iconos +- ✅ Búsqueda de iconos +- ✅ Preview del icono seleccionado + +--- + +### 6. 📜 **SCROLL Y NAVEGACIÓN** + +**Problemas:** +- ❌ No hay scroll suave +- ❌ Sidebar no tiene scroll independiente +- ❌ No hay navegación entre secciones +- ❌ No hay menú lateral de secciones (como WordPress) + +**Solución:** +- ✅ Scroll suave en sidebar +- ✅ Menú lateral de secciones (como WordPress) +- ✅ Navegación rápida entre secciones +- ✅ Scroll independiente para sidebar y preview + +--- + +## 🎯 CÓMO FUNCIONA WORDPRESS CUSTOMIZER (ANÁLISIS) + +### Estructura Visual: +``` +┌─────────────────────────────────────────────────┐ +│ Header: Logo + "Personalizar" + X (cerrar) │ +├──────────┬───────────────────────────────────────┤ +│ │ │ +│ SIDEBAR │ PREVIEW IFRAME │ +│ (350px) │ (flex: 1) │ +│ │ │ +│ ┌──────┐ │ │ +│ │Menú │ │ │ +│ │Sec. │ │ │ +│ └──────┘ │ │ +│ │ │ +│ Sección │ │ +│ Contenido│ │ +│ │ │ +│ Sección │ │ +│ Colores │ │ +│ │ │ +│ Sección │ │ +│ Media │ │ +│ │ │ +│ ... │ │ +│ │ │ +├──────────┴───────────────────────────────────────┤ +│ Footer: [Descartar] [Guardar y Publicar] │ +└─────────────────────────────────────────────────┘ +``` + +### Características Clave de WordPress: + +1. **Header:** + - Logo WordPress a la izquierda + - Título "Personalizar" centrado + - Botón X para cerrar (arriba derecha) + - Fondo: #23282d + +2. **Sidebar:** + - Ancho fijo: 300px (no 350px) + - Menú lateral de secciones (colapsable) + - Scroll independiente + - Fondo: #fff + - Borde derecho: 1px solid #ddd + +3. **Controles:** + - Cada control tiene label arriba + - Inputs con bordes suaves + - Color primario: #2271b1 + - Hover: #135e96 + - Focus: box-shadow azul + +4. **Footer:** + - Siempre visible (sticky) + - Botón "Descartar" (gris, solo si hay cambios) + - Botón "Guardar y Publicar" (azul, siempre visible) + - Indicador de estado (guardando...) + +5. **Preview:** + - Iframe a pantalla completa + - Actualización en tiempo real + - No se recarga completo, solo cambia CSS/HTML + +6. **Guardado:** + - **NO guarda automáticamente** (solo preview) + - **Solo guarda cuando presionas "Guardar y Publicar"** + - Muestra "Guardando..." mientras guarda + - Muestra "Guardado" cuando termina + - Si hay cambios sin guardar, muestra punto rojo + +--- + +## ✅ PLAN DE REHACER CUSTOMIZER + +### Fase 1: Diseño Visual (Copiar WordPress) +- [ ] Cambiar colores a paleta WordPress +- [ ] Rediseñar header (logo + título + cerrar) +- [ ] Rediseñar sidebar (300px, scroll suave) +- [ ] Rediseñar controles (inputs, labels, botones) +- [ ] Rediseñar footer (sticky, botones correctos) +- [ ] Añadir menú lateral de secciones + +### Fase 2: Sistema de Guardado (Copiar WordPress) +- [ ] Eliminar auto-guardado (solo preview) +- [ ] Implementar botón "Guardar y Publicar" +- [ ] Implementar botón "Descartar cambios" +- [ ] Indicador de cambios sin guardar +- [ ] Confirmación antes de salir +- [ ] Estado de guardado visible + +### Fase 3: Funcionalidades Faltantes +- [ ] Mapa automático desde dirección +- [ ] WhatsApp flotante configurable +- [ ] Selector de iconos (Dashicons/Font Awesome) +- [ ] Scroll suave +- [ ] Navegación entre secciones + +### Fase 4: Testing y Pulido +- [ ] Probar todo el flujo +- [ ] Verificar que guarda correctamente +- [ ] Verificar que descarta correctamente +- [ ] Verificar preview en tiempo real +- [ ] Verificar todas las funcionalidades + +--- + +## 📝 NOTAS IMPORTANTES + +1. **NO inventar nada nuevo** - Copiar EXACTAMENTE WordPress +2. **Colores oficiales WordPress:** + - Azul primario: #2271b1 + - Azul hover: #135e96 + - Gris fondo: #f0f0f1 + - Gris borde: #c3c4c7 + - Texto: #1d2327 + - Header: #23282d + +3. **Comportamiento de guardado:** + - Preview = Cambios visibles pero NO guardados + - Guardar = Cambios guardados en base de datos + - Descartar = Volver al último estado guardado + +4. **Referencias:** + - WordPress Customizer: `/wp-admin/customize.php` + - Código fuente: `wp-content/themes/*/inc/customizer/` + - JavaScript: `wp.customize` API + +--- + +**Última actualización:** 2025-01-15 +**Prioridad:** 🔴 **CRÍTICA - REHACER COMPLETAMENTE** +**Próxima acción:** Rehacer customizer copiando EXACTAMENTE WordPress diff --git a/memoria/README.md b/memoria/README.md new file mode 100644 index 0000000..692a0ab --- /dev/null +++ b/memoria/README.md @@ -0,0 +1,25 @@ +# 📚 MEMORIA DEL PROYECTO - GKACHELE™ + +**© 2025 GKACHELE™. Todos los derechos reservados.** + +## ⚠️ IMPORTANTE: LEER SIEMPRE ESTA CARPETA + +**Esta carpeta contiene TODA la documentación del proyecto.** + +**SIEMPRE consulta estos archivos antes de modificar código.** + +👉 **Ver `INDICE.md` para la lista completa de documentos** + +--- + +## 🎯 Principios del Proyecto + +1. **Todo en Base de Datos**: Sin lógica hardcodeada +2. **Sistema Multi-tenant**: Todos los clientes en `main.db` +3. **Roles Dinámicos**: Basados en DB, no hardcodeados +4. **Branding GKACHELE™**: Sin referencias a otros sistemas +5. **Modular**: Código organizado y reutilizable + +--- + +**Última actualización:** 14 Enero 2025 diff --git a/memoria/REGLA_IMPORTANTE.md b/memoria/REGLA_IMPORTANTE.md new file mode 100644 index 0000000..1cfd27b --- /dev/null +++ b/memoria/REGLA_IMPORTANTE.md @@ -0,0 +1,36 @@ +# ⚠️ REGLA CRÍTICA - GKACHELE™ + +**© 2025 GKACHELE™. Todos los derechos reservados.** + +## 🚫 NUNCA MENCIONAR "WORDPRESS" EN EL CÓDIGO + +### Regla Absoluta: +- ❌ **NO** escribir "WordPress", "wordpress", "WP", "wp-" en ningún archivo de código +- ❌ **NO** usar referencias como "estilo WordPress", "como WordPress", etc. +- ✅ **SÍ** usar "GKACHELE™", "sistema GKACHELE™", "inspirado pero mejorado" + +### Razón: +Este es un sistema **propio e independiente** inspirado en funcionalidades similares, pero **mejorado y personalizado** para GKACHELE™. + +### Reemplazos Correctos: + +| ❌ Incorrecto | ✅ Correcto | +|--------------|------------| +| "estilo WordPress" | "sistema GKACHELE™" | +| "como WordPress" | "sistema modular GKACHELE™" | +| "wp-admin" | "/dashboard" | +| "wp_options" | "tabla settings" | +| "WordPress-like" | "GKACHELE™ template system" | + +### Verificación: +Antes de cada commit o cambio, buscar: +```bash +grep -ri "wordpress\|WordPress\|WP\|wp-" --exclude-dir=wp-content . +``` + +Si encuentra algo, **ELIMINARLO INMEDIATAMENTE**. + +--- + +**Última actualización:** 14 Enero 2025 +**Hash:** `gkachele-no-wordpress-20250114` diff --git a/memoria/RESPUESTAS_PREGUNTAS.md b/memoria/RESPUESTAS_PREGUNTAS.md new file mode 100644 index 0000000..318908f --- /dev/null +++ b/memoria/RESPUESTAS_PREGUNTAS.md @@ -0,0 +1,118 @@ +# ❓ Respuestas a Preguntas - GKACHELE™ + +**© 2025 GKACHELE™. Todos los derechos reservados.** + +## 🐍 ¿Por qué Python y NO Docker? + +**Sí, es por la Raspberry Pi:** +- Raspberry Pi tiene recursos limitados (RAM, CPU) +- Docker consume más memoria y CPU +- Python directo es más ligero y eficiente +- Más fácil de depurar y mantener +- **En VPS podrías usar Docker si quieres**, pero Python directo también funciona perfecto y es más simple + +--- + +## 🖥️ ¿VPS es Buena Opción? + +**SÍ, altamente recomendado para producción:** + +### Ventajas VPS: +- ✅ Más recursos (CPU, RAM, disco) +- ✅ Mejor rendimiento +- ✅ Más confiable +- ✅ Mejor para escalar +- ✅ Puedes usar Docker si quieres +- ✅ Mismo código funciona (solo cambiar configuración) + +### Migración: +- Copiar código completo +- Instalar Python3, Nginx +- Copiar configuración +- Cambiar dominio +- Configurar SSL +- **Mismo código, más potencia** + +--- + +## 🗄️ Acceso a Base de Datos + +### Tu Acceso: +- **Panel `/admin`** - Ver/eliminar usuarios, aprobar sitios +- **DB Browser for SQLite** - Acceso directo a `main.db` +- **Scripts Python** - `ver_usuarios.py`, `limpiar_db.py` + +### Acceso Clientes: +- **Solo ven SUS datos** (filtrado por `user_id`) +- Panel `/dashboard` - Sus sitios +- Panel `/customizer` - Personalizar sus sitios +- Panel `/dashboard/admin` - Su media y config + +--- + +## 👤 Admin para Clientes + +**Sí, ya existe:** +- Panel `/dashboard` - Cliente ve SUS sitios +- Panel `/customizer/{site_id}` - Personalizar sitio +- Panel `/dashboard/admin` - Admin del cliente (media, config) + +**Futuro:** +- Más opciones de administración +- Estadísticas del cliente +- Gestión avanzada + +--- + +## 📊 ¿Detecta Movimientos? + +### Actualmente: +- **NO hay detección automática** de movimientos +- **Sí hay registros:** + - `created_at` - Fecha de creación + - `updated_at` - Fecha de actualización + - Logs del servidor (journalctl) + +### Posible Implementar: +- Tabla `activity_log` para registrar acciones +- Notificaciones de cambios +- Historial de modificaciones +- Auditoría completa + +--- + +## 🔒 Limitaciones por Plan + +### Sistema Actual: +- **Planes:** `base`, `premium`, etc. (campo en tabla `users`) +- **Limitaciones posibles:** + - ✅ Número de sitios + - ✅ Subida de fotos (tamaño, cantidad) + - ✅ Modificaciones (frecuencia, tipo) + - ✅ Funcionalidades avanzadas + +### Implementación: +```python +# Ejemplo: +if user_plan == 'base': + max_sites = 1 + max_photos = 10 + max_photo_size = 5MB +elif user_plan == 'premium': + max_sites = 5 + max_photos = 100 + max_photo_size = 20MB +``` + +### Verificar Antes de Acciones: +- Contar recursos usados vs. límites del plan +- Bloquear acciones si excede límite +- Mostrar mensaje al cliente + +--- + +**Última actualización:** 14 Enero 2025 + +--- + +**© 2025 GKACHELE™. Todos los derechos reservados.** diff --git a/memoria/SISTEMA_BLOQUES_EDITABLES.md b/memoria/SISTEMA_BLOQUES_EDITABLES.md new file mode 100644 index 0000000..5028d67 --- /dev/null +++ b/memoria/SISTEMA_BLOQUES_EDITABLES.md @@ -0,0 +1,247 @@ +# 🧩 Sistema de Bloques Editables - GKACHELE™ + +**© 2025 GKACHELE™. Todos los derechos reservados.** + +**Hash:** `gkachele-bloques-editables-20250115-001` + +--- + +## 📋 OBJETIVO + +Implementar sistema completo de bloques editables similar a WordPress Gutenberg: +- ✅ Añadir/eliminar bloques (videos, imágenes, texto, redes sociales) +- ✅ Mover bloques (drag & drop) +- ✅ Edición inline (click con lápiz) + sidebar +- ✅ Iconos de redes sociales automáticos +- ✅ Mapa embed sin API key +- ✅ Todo sincronizado en tiempo real + +--- + +## 🎯 FUNCIONALIDADES REQUERIDAS + +### 1. Añadir Bloques +- Botón "➕ Añadir Bloque" en sidebar +- Tipos: Video (YouTube/Vimeo), Imagen, Texto, Redes Sociales, Mapa +- Cada bloque se añade al preview y al sidebar + +### 2. Eliminar Bloques +- Botón "🗑️" en cada bloque del preview +- Confirmación antes de eliminar +- Sincronización automática + +### 3. Mover Bloques +- Drag & drop usando HTML5 Drag API +- Indicadores visuales al arrastrar +- Guardado automático del orden + +### 4. Redes Sociales con Iconos +- Al añadir URL de red social, mostrar icono automático +- Iconos: Facebook, Instagram, Twitter/X, WhatsApp, YouTube +- Usar Font Awesome o SVG inline + +### 5. Mapa Embed +- Campo para URL de Google Maps (compartir → insertar mapa) +- Renderizar iframe sin necesidad de API key +- Validación de URL + +### 6. Edición Híbrida +- Click en elemento → editar inline (modal) +- Cambios en sidebar → actualizar preview +- Bidireccional siempre + +--- + +## 🔧 IMPLEMENTACIÓN + +### Estructura de Datos + +```json +{ + "blocks": [ + { + "id": "block_1234567890", + "type": "video", + "content": { + "url": "https://www.youtube.com/embed/...", + "title": "Video Tutorial" + }, + "order": 0 + }, + { + "id": "block_1234567891", + "type": "redes_sociales", + "content": { + "facebook": "https://facebook.com/...", + "instagram": "https://instagram.com/..." + }, + "order": 1 + }, + { + "id": "block_1234567892", + "type": "mapa", + "content": { + "url": "https://www.google.com/maps/embed?pb=..." + }, + "order": 2 + } + ] +} +``` + +### Backend (app.py) + +```python +# Endpoint para añadir bloque +@app.route('/api/customizer/add-block', methods=['POST']) +def add_block(): + # Añadir nuevo bloque a content_json['blocks'] + pass + +# Endpoint para eliminar bloque +@app.route('/api/customizer/remove-block', methods=['POST']) +def remove_block(): + # Eliminar bloque por ID + pass + +# Endpoint para reordenar bloques +@app.route('/api/customizer/reorder-blocks', methods=['POST']) +def reorder_blocks(): + # Actualizar orden de bloques + pass +``` + +### Frontend (customizer.html) + +```javascript +// Añadir bloque +function addBlock(type) { + const blockId = 'block_' + Date.now(); + const newBlock = { + id: blockId, + type: type, + content: getDefaultContentForType(type), + order: blocks.length + }; + // Añadir a preview y sidebar + renderBlock(newBlock); + saveBlocks(); +} + +// Eliminar bloque +function removeBlock(blockId) { + if (confirm('¿Eliminar este bloque?')) { + // Remover del DOM y del array + saveBlocks(); + } +} + +// Drag & Drop +function initDragDrop() { + document.querySelectorAll('.gk-block').forEach(block => { + block.draggable = true; + block.addEventListener('dragstart', handleDragStart); + block.addEventListener('dragover', handleDragOver); + block.addEventListener('drop', handleDrop); + }); +} +``` + +### Template (template.html) + +```html + +{% if blocks %} + {% for block in blocks|sort(attribute='order') %} + {% if block.type == 'video' %} +
+ + +
+ {% elif block.type == 'redes_sociales' %} +
+ + +
+ {% elif block.type == 'mapa' %} +
+ + +
+ {% endif %} + {% endfor %} +{% endif %} +``` + +--- + +## 📝 CHECKLIST + +- [ ] Sistema de bloques en backend (añadir/eliminar/reordenar) +- [ ] UI para añadir bloques en sidebar +- [ ] Renderizado de bloques en template +- [ ] Drag & drop funcional +- [ ] Iconos de redes sociales (Font Awesome o SVG) +- [ ] Mapa embed sin API +- [ ] Edición inline de bloques +- [ ] Sincronización bidireccional +- [ ] Guardado automático +- [ ] Indicadores visuales (hover, drag) + +--- + +## 🎨 ESTILOS + +```css +.gk-block { + position: relative; + margin: 20px 0; + padding: 15px; + border: 2px dashed transparent; + transition: all 0.3s; +} + +.gk-block:hover { + border-color: var(--primary); +} + +.gk-block.dragging { + opacity: 0.5; +} + +.gk-block-delete { + position: absolute; + top: 10px; + right: 10px; + background: #d63638; + color: white; + border: none; + padding: 5px 10px; + border-radius: 4px; + cursor: pointer; + opacity: 0; + transition: opacity 0.2s; +} + +.gk-block:hover .gk-block-delete { + opacity: 1; +} +``` + +--- + +## 🔗 REFERENCIAS + +- WordPress Gutenberg: Sistema de bloques +- Elementor: Drag & drop visual +- Google Maps Embed: Sin API key necesario + +--- + +**Última actualización:** 2025-01-15 +**Estado:** En desarrollo diff --git a/memoria/SISTEMA_ROLES.md b/memoria/SISTEMA_ROLES.md new file mode 100644 index 0000000..e9281fc --- /dev/null +++ b/memoria/SISTEMA_ROLES.md @@ -0,0 +1,77 @@ +# 🔐 Sistema de Roles y Permisos - GKACHELE™ + +**© 2025 GKACHELE™. Todos los derechos reservados.** + +## 📋 Arquitectura Basada en Base de Datos + +Todo el sistema de roles y permisos está **100% en la base de datos**, sin lógica hardcodeada. + +### Tabla: `users` + +**Campos relacionados con roles:** +- `role` (TEXT): Rol del usuario + - Valores posibles: `administrator`, `editor`, `author`, `subscriber` + - Default: `subscriber` +- `status` (TEXT): Estado del usuario + - Valores: `active`, `inactive`, `suspended` + - Default: `active` + +### Jerarquía de Roles + +``` +administrator (nivel 4) - Acceso total + ↓ +editor (nivel 3) - Puede editar contenido + ↓ +author (nivel 2) - Puede crear contenido + ↓ +subscriber (nivel 1) - Solo lectura +``` + +### Funciones Helper + +#### `user_has_role(user_id, required_role)` +Verifica si un usuario tiene un rol específico o superior. + +**Uso:** +```python +if user_has_role(session['user_id'], 'administrator'): + # Usuario es admin o superior +``` + +#### `user_can(user_id, capability)` +Verifica si un usuario tiene una capacidad específica. + +**Uso:** +```python +if user_can(session['user_id'], 'manage_users'): + # Usuario puede gestionar usuarios +``` + +### Rutas Protegidas + +Todas las rutas administrativas verifican el rol desde la base de datos: + +```python +@app.route('/admin') +def admin(): + if not user_has_role(session['user_id'], 'administrator'): + return "Solo administradores", 403 + # ... +``` + +### Creación de Usuario Administrador + +El primer usuario (ID=1) se crea automáticamente como `administrator`: +- Email: `admin@gkachele.com` +- Password: `admin123` (cambiar después) +- Role: `administrator` + +### Migración Automática + +Si la tabla `users` no tiene las columnas `role` y `status`, se añaden automáticamente al iniciar la aplicación. + +--- + +**Última actualización:** 14 Enero 2025 +**Hash:** `gkachele-roles-db-20250114` diff --git a/memoria/SISTEMA_TEMPLATES.md b/memoria/SISTEMA_TEMPLATES.md new file mode 100644 index 0000000..f93a7b3 --- /dev/null +++ b/memoria/SISTEMA_TEMPLATES.md @@ -0,0 +1,250 @@ +# 🎨 Sistema de Templates - GKACHELE™ + +**© 2025 GKACHELE™. Todos los derechos reservados.** + +## 📋 Descripción + +Sistema de templates similar a WordPress que permite: +- ✅ Escanear automáticamente todos los templates disponibles +- ✅ Seleccionar/cambiar template desde el customizer +- ✅ Cargar configuración automáticamente desde `config.json` +- ✅ Aplicar colores y tipografía por defecto del template + +--- + +## 📁 Estructura de un Template + +Para añadir un nuevo template, simplemente crea una carpeta en `demo/themes/` con esta estructura: + +``` +demo/themes/ + └── mi-template/ + ├── config.json (OBLIGATORIO) + └── template.html (OBLIGATORIO) + ├── style.css (OPCIONAL) + └── preview.jpg (OPCIONAL - para mostrar preview) +``` + +--- + +## 📝 Formato de `config.json` + +```json +{ + "name": "Nombre del Template", + "rubro": "restaurante", + "description": "Descripción del template", + "sections": [ + "hero", + "menu", + "horarios", + "reservas", + "contacto" + ], + "colors": { + "primary": "#c94d4d", + "secondary": "#d97757", + "accent": "#f4a261", + "text": "#2c2c2c" + }, + "typography": { + "font_family": "Roboto", + "headings": "Playfair Display" + }, + "features": { + "menu_url": true, + "horarios": true, + "reservas": true + } +} +``` + +### Campos del `config.json`: + +- **`name`**: Nombre visible del template +- **`rubro`**: Categoría (restaurante, gimnasio, general, etc.) +- **`description`**: Descripción breve +- **`sections`**: Array de secciones disponibles +- **`colors`**: Colores por defecto (primary, secondary, accent, text) +- **`typography`**: Tipografía por defecto +- **`features`**: Características del template + +--- + +## 🚀 Cómo Añadir un Nuevo Template + +### Paso 1: Crear la carpeta +```bash +mkdir demo/themes/mi-nuevo-template +``` + +### Paso 2: Crear `config.json` +Copia el formato de arriba y ajusta los valores. + +### Paso 3: Crear `template.html` +Usa Jinja2 para variables dinámicas: + +```html + + + + + + +

{{ hero_title or 'Bienvenido' }}

+

{{ hero_description or '' }}

+ + +``` + +### Paso 4: ¡Listo! +El sistema lo detectará automáticamente al recargar. + +--- + +## 🔧 Funciones del Sistema + +### `scan_available_themes()` +Escanear todos los templates disponibles y cargar sus configuraciones. + +### `get_theme_config(theme_id)` +Obtener configuración de un template específico. + +### `get_themes_by_rubro(rubro)` +Obtener templates filtrados por rubro. + +--- + +## 🌐 Endpoints API + +### `GET /api/themes` +Listar todos los templates disponibles. + +**Query params:** +- `rubro`: Filtrar por rubro (opcional) + +**Respuesta:** +```json +{ + "success": true, + "themes": { + "restaurante-moderno": { + "id": "restaurante-moderno", + "name": "Restaurante Moderno", + "description": "Tema elegante para restaurantes", + "rubro": "restaurante", + "colors": {...}, + "typography": {...} + } + }, + "total": 3 +} +``` + +### `GET /api/themes/` +Obtener información detallada de un template. + +--- + +## 🎨 Uso en el Customizer + +El customizer ahora incluye un selector de templates en la parte superior: + +1. **Selector de Template**: Dropdown con todos los templates disponibles +2. **Cambio de Template**: Al cambiar, se aplican automáticamente los colores y configuración por defecto +3. **Confirmación**: Pide confirmación antes de cambiar para evitar pérdida de datos + +--- + +## 📌 Notas Importantes + +1. **Carpetas que empiezan con `_`**: Se ignoran (ej: `_gkachele/`) +2. **Archivos requeridos**: `config.json` y `template.html` son obligatorios +3. **Detección automática**: No necesitas registrar templates manualmente +4. **Colores dinámicos**: Los templates usan variables CSS que se actualizan desde el customizer + +--- + +## 🎯 Ejemplo Completo + +### Template: `restaurante-asiatico` + +**`config.json`:** +```json +{ + "name": "Restaurante Asiático", + "rubro": "restaurante", + "description": "Tema moderno para restaurantes asiáticos", + "sections": ["hero", "menu", "reservas", "contacto"], + "colors": { + "primary": "#e63946", + "secondary": "#f77f00", + "accent": "#fcbf49", + "text": "#1d3557" + }, + "typography": { + "font_family": "Roboto", + "headings": "Oswald" + }, + "features": { + "menu_url": true, + "reservas": true + } +} +``` + +**`template.html`:** +```html + + + + + {{ site_name or 'Restaurante' }} + + + +
+

{{ site_name or 'Restaurante' }}

+
+
+
+

{{ hero_title or 'Bienvenido' }}

+

{{ hero_description or '' }}

+
+
+ + +``` + +--- + +## ✅ Checklist para Nuevo Template + +- [ ] Crear carpeta en `demo/themes/` +- [ ] Crear `config.json` con todos los campos +- [ ] Crear `template.html` con variables Jinja2 +- [ ] Probar que se detecta en `/api/themes` +- [ ] Probar cambio desde customizer +- [ ] Verificar que colores se aplican correctamente + +--- + +**Última actualización:** 14 Enero 2025 +**Hash:** `gkachele-sistema-templates-20250114` + +--- + +**© 2025 GKACHELE™. Todos los derechos reservados.** diff --git a/memoria/SUBDOMINIOS_PAGOS.md b/memoria/SUBDOMINIOS_PAGOS.md new file mode 100644 index 0000000..70512af --- /dev/null +++ b/memoria/SUBDOMINIOS_PAGOS.md @@ -0,0 +1,89 @@ +# 🌐 Subdominios y Pagos - GKACHELE™ + +**© 2025 GKACHELE™. Todos los derechos reservados.** + +## 🌐 SUBDOMINIOS + +### Opciones: + +#### Opción A: Subdominio con Tu Dominio +- Cliente obtiene: `cliente1.tudominio.com` +- Configuración DNS automática +- SSL automático (Let's Encrypt) +- **Gratis** o incluido en plan + +#### Opción B: Cliente Compra Dominio +- Cliente compra su dominio +- Tú gestionas la configuración +- **Cobrar por gestión** (ej: $10-20 USD) +- Configurar DNS y SSL + +### Implementación: +- Tabla `domains` en base de datos +- Campo `subdomain` en tabla `sites` +- Scripts para configurar DNS +- Integración con API de dominio +- SSL automático con certbot + +--- + +## 💳 PAGOS - NOMINALIA + +### Integración: +- API Nominalia para pagos +- Comodines para pagos recurrentes +- Gestión de suscripciones +- Facturación automática + +### Funcionalidades: +- Pago inicial (registro) +- Pagos mensuales/anuales +- Renovación automática +- Suspender si no paga +- Notificaciones de pago + +### Para Pagarte a Mí: +- Comodines con Nominalia +- Pagos recurrentes +- Gestión desde dashboard admin + +--- + +## 📋 TABLA: domains + +```sql +CREATE TABLE domains ( + id INTEGER PRIMARY KEY, + user_id INTEGER, + site_id INTEGER, + domain_type TEXT, -- 'subdomain' o 'custom' + domain_name TEXT, -- 'cliente1.tudominio.com' o 'cliente.com' + dns_configured BOOLEAN DEFAULT 0, + ssl_configured BOOLEAN DEFAULT 0, + created_at TIMESTAMP, + FOREIGN KEY (user_id) REFERENCES users(id), + FOREIGN KEY (site_id) REFERENCES sites(id) +); +``` + +--- + +## 🔄 FLUJO CON SUBDOMINIOS + +``` +1. Cliente se registra +2. Cliente elige: subdominio gratis o comprar dominio +3. Si compra dominio → Cobrar gestión +4. Configurar DNS automáticamente +5. SSL automático +6. Sitio accesible en dominio +``` + +--- + +**Última actualización:** 14 Enero 2025 +**Hash:** `gkachele-subdominios-pagos-20250114` + +--- + +**© 2025 GKACHELE™. Todos los derechos reservados.** diff --git a/setup-cron.sh b/setup-cron.sh new file mode 100644 index 0000000..d4d94bd --- /dev/null +++ b/setup-cron.sh @@ -0,0 +1,9 @@ +#!/bin/bash +# Script para configurar cron en Raspberry + +# Agregar entrada de cron +(crontab -l 2>/dev/null; echo "*/5 * * * * /home/pi/scripts/update-raspberry-cron.sh") | crontab - + +# Verificar +echo "Cron configurado:" +crontab -l diff --git a/setup_cron.py b/setup_cron.py new file mode 100644 index 0000000..3495370 --- /dev/null +++ b/setup_cron.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python3 +# Script para configurar cron en Raspberry + +import subprocess +import sys + +# Obtener crontab actual +try: + result = subprocess.run(['sudo', 'crontab', '-u', 'pi', '-l'], + capture_output=True, text=True, check=False) + current_cron = result.stdout +except: + current_cron = "" + +# Nueva entrada +new_entry = "*/5 * * * * /home/pi/scripts/update-raspberry-cron.sh\n" + +# Verificar si ya existe +if new_entry.strip() in current_cron: + print("✅ La entrada de cron ya existe") + sys.exit(0) + +# Agregar nueva entrada +new_cron = current_cron + new_entry + +# Escribir nuevo crontab +try: + process = subprocess.Popen(['sudo', 'crontab', '-u', 'pi', '-'], + stdin=subprocess.PIPE, text=True) + process.communicate(input=new_cron) + if process.returncode == 0: + print("✅ Cron configurado exitosamente") + # Mostrar crontab + subprocess.run(['sudo', 'crontab', '-u', 'pi', '-l']) + else: + print("❌ Error configurando cron") + sys.exit(1) +except Exception as e: + print(f"❌ Error: {e}") + sys.exit(1) diff --git a/sync-from-pc.sh b/sync-from-pc.sh new file mode 100644 index 0000000..425ba6a --- /dev/null +++ b/sync-from-pc.sh @@ -0,0 +1,32 @@ +#!/bin/bash +# Script para ejecutar en Raspberry - copia código desde PC local +# Este script se ejecuta en la Raspberry vía cron cada 5 minutos + +# Configuración - IP del PC (ajustar según tu red local) +PC_IP="192.168.1.XXX" # CAMBIAR POR LA IP DE TU PC +PC_USER="elanchok91" # Usuario del PC +PC_PATH="/mnt/c/word/demo" # Ruta en WSL del PC +RASPBERRY_PATH="/home/pi/gkachele-saas" +LOG_FILE="/tmp/sync-from-pc.log" + +echo "$(date '+%Y-%m-%d %H:%M:%S'): 🔄 Iniciando sincronización desde PC..." >> $LOG_FILE + +# Verificar si el PC está disponible +if ping -c 1 -W 2 $PC_IP &> /dev/null; then + # Intentar copiar usando scp (requiere SSH en el PC) + # Si el PC tiene SSH habilitado, usar esto: + # scp -o StrictHostKeyChecking=no -r $PC_USER@$PC_IP:$PC_PATH/* $RASPBERRY_PATH/ 2>>$LOG_FILE + + # Alternativa: usar rsync si está disponible + # rsync -avz --delete $PC_USER@$PC_IP:$PC_PATH/ $RASPBERRY_PATH/ 2>>$LOG_FILE + + echo "$(date '+%Y-%m-%d %H:%M:%S'): ⚠️ PC disponible pero necesita configuración SSH" >> $LOG_FILE + echo "$(date '+%Y-%m-%d %H:%M:%S'): 💡 Usar método alternativo: script en PC que copia a Raspberry" >> $LOG_FILE +else + echo "$(date '+%Y-%m-%d %H:%M:%S'): ⚠️ PC no disponible ($PC_IP)" >> $LOG_FILE +fi + +# Reiniciar servicio si hay cambios (verificar hash o timestamp) +sudo systemctl restart gkachele-saas 2>/dev/null || (sudo pkill -f "python3 app.py" && sleep 1 && cd $RASPBERRY_PATH && nohup python3 app.py > /tmp/app.log 2>&1 &) + +echo "$(date '+%Y-%m-%d %H:%M:%S'): ✅ Sincronización completada" >> $LOG_FILE diff --git a/sync-to-raspberry.sh b/sync-to-raspberry.sh new file mode 100644 index 0000000..a3023f9 --- /dev/null +++ b/sync-to-raspberry.sh @@ -0,0 +1,31 @@ +#!/bin/bash +# Script para ejecutar en PC (WSL) - copia código a Raspberry cada 5 minutos +# Este script se ejecuta en el PC vía cron y copia a la Raspberry + +# Configuración +RASPBERRY_USER="pi" +RASPBERRY_HOST="192.168.1.134" +RASPBERRY_PORT="2222" +RASPBERRY_PASS="Gdk1983gdk45@" +RASPBERRY_PATH="/home/pi/gkachele-saas" +LOCAL_PATH="/mnt/c/word/demo" +LOG_FILE="/tmp/sync-to-raspberry.log" + +echo "$(date '+%Y-%m-%d %H:%M:%S'): 🔄 Sincronizando código a Raspberry..." >> $LOG_FILE + +# Copiar archivos principales +sshpass -p "$RASPBERRY_PASS" scp -P $RASPBERRY_PORT -o StrictHostKeyChecking=no \ + $LOCAL_PATH/app.py \ + $RASPBERRY_USER@$RASPBERRY_HOST:$RASPBERRY_PATH/app.py 2>>$LOG_FILE + +# Copiar templates +sshpass -p "$RASPBERRY_PASS" scp -P $RASPBERRY_PORT -o StrictHostKeyChecking=no -r \ + $LOCAL_PATH/templates/* \ + $RASPBERRY_USER@$RASPBERRY_HOST:$RASPBERRY_PATH/templates/ 2>>$LOG_FILE + +# Reiniciar servicio en Raspberry +sshpass -p "$RASPBERRY_PASS" ssh -p $RASPBERRY_PORT -o StrictHostKeyChecking=no \ + $RASPBERRY_USER@$RASPBERRY_HOST \ + "sudo systemctl restart gkachele-saas 2>/dev/null || (sudo pkill -f 'python3 app.py' && sleep 1 && cd $RASPBERRY_PATH && nohup python3 app.py > /tmp/app.log 2>&1 &)" 2>>$LOG_FILE + +echo "$(date '+%Y-%m-%d %H:%M:%S'): ✅ Sincronización completada" >> $LOG_FILE diff --git a/update-app-raspberry.sh b/update-app-raspberry.sh new file mode 100644 index 0000000..5dacb8a --- /dev/null +++ b/update-app-raspberry.sh @@ -0,0 +1,5 @@ +#!/bin/bash +# Script para actualizar app en Raspberry (ejecutar desde cron) +cd ~/gkachele-saas +# Reiniciar servicio si existe, sino reiniciar proceso +sudo systemctl restart gkachele-saas 2>/dev/null || (sudo pkill -f "python3 app.py" && sleep 1 && nohup python3 app.py > /tmp/app.log 2>&1 &) diff --git a/update-code-pi.sh b/update-code-pi.sh new file mode 100644 index 0000000..05402a0 --- /dev/null +++ b/update-code-pi.sh @@ -0,0 +1,7 @@ +#!/bin/bash +echo "🚀 Actualizando GKACHELE SaaS en Raspberry Pi..." +sshpass -p 'Gdk1983gdk45@' scp -P 2222 -o StrictHostKeyChecking=no /mnt/c/word/demo/app.py pi@192.168.1.134:/home/pi/gkachele-saas/app.py +sshpass -p 'Gdk1983gdk45@' scp -P 2222 -o StrictHostKeyChecking=no /mnt/c/word/gitea_connector.py pi@192.168.1.134:/home/pi/gkachele-saas/gitea_connector.py +echo "✅ Archivos copiados. Reiniciando servicio..." +sshpass -p 'Gdk1983gdk45@' ssh -p 2222 -o StrictHostKeyChecking=no pi@192.168.1.134 'sudo systemctl restart gkachele-saas' +echo "✅ Servicio reiniciado. ¡Fábrica de Sitios ACTIVA!" diff --git a/update-from-pc.sh b/update-from-pc.sh new file mode 100644 index 0000000..e69de29 diff --git a/update-komkida-duckdns.py b/update-komkida-duckdns.py new file mode 100644 index 0000000..84fa956 --- /dev/null +++ b/update-komkida-duckdns.py @@ -0,0 +1,4 @@ +#!/usr/bin/env python3 +import urllib.request +response = urllib.request.urlopen("https://www.duckdns.org/update?domains=komkida&token=9c5cff88-b6d7-4704-9b10-4a69afdff797&ip=") +print("DuckDNS actualizado:", response.read().decode()) diff --git a/update-raspberry-cron.sh b/update-raspberry-cron.sh new file mode 100644 index 0000000..09b83f8 --- /dev/null +++ b/update-raspberry-cron.sh @@ -0,0 +1,27 @@ +#!/bin/bash +# Script para ejecutar en Raspberry - actualiza desde PC cada 5 minutos +# Este script se ejecuta en la Raspberry vía cron + +RASPBERRY_PATH="/home/pi/gkachele-saas" +LOG_FILE="/tmp/update-raspberry.log" + +echo "$(date '+%Y-%m-%d %H:%M:%S'): 🔄 Iniciando actualización..." >> $LOG_FILE + +# Ejecutar script del PC que copia a Raspberry (si está disponible) +# El script del PC se ejecuta desde WSL y copia archivos +# Por ahora, solo reiniciamos el servicio para aplicar cambios si los hay + +# Reiniciar servicio +sudo systemctl restart gkachele-saas 2>/dev/null +if [ $? -eq 0 ]; then + echo "$(date '+%Y-%m-%d %H:%M:%S'): ✅ Servicio reiniciado" >> $LOG_FILE +else + # Si no hay servicio systemd, reiniciar proceso manualmente + sudo pkill -f "python3 app.py" 2>/dev/null + sleep 1 + cd $RASPBERRY_PATH + nohup python3 app.py > /tmp/app.log 2>&1 & + echo "$(date '+%Y-%m-%d %H:%M:%S'): ✅ Proceso reiniciado manualmente" >> $LOG_FILE +fi + +echo "$(date '+%Y-%m-%d %H:%M:%S'): ✅ Actualización completada" >> $LOG_FILE diff --git a/update-raspberry.sh b/update-raspberry.sh new file mode 100644 index 0000000..1a99f95 --- /dev/null +++ b/update-raspberry.sh @@ -0,0 +1,19 @@ +#!/bin/bash +# Script para actualizar código en Raspberry Pi automáticamente + +# Configuración +RASPBERRY_USER="pi" +RASPBERRY_HOST="komkida.duckdns.org" +RASPBERRY_PORT="2222" +RASPBERRY_PATH="/home/pi/gkachele-saas" +LOCAL_PATH="demo" + +echo "🔄 Actualizando código en Raspberry Pi..." + +# Copiar archivos +scp -P $RASPBERRY_PORT -r $LOCAL_PATH/* $RASPBERRY_USER@$RASPBERRY_HOST:$RASPBERRY_PATH/ + +# Reiniciar servicio +ssh -p $RASPBERRY_PORT $RASPBERRY_USER@$RASPBERRY_HOST "sudo systemctl restart gkachele-saas" + +echo "✅ Actualización completa" diff --git a/update_duckdns.py b/update_duckdns.py new file mode 100644 index 0000000..20db4d2 --- /dev/null +++ b/update_duckdns.py @@ -0,0 +1,4 @@ +#!/usr/bin/env python3 +import urllib.request +response = urllib.request.urlopen("https://www.duckdns.org/update?domains=gkachele&token=578331b3-ad7b-4154-835d-e496465257b0&ip=") +print(response.read().decode()) diff --git a/verificar_codigo.sh b/verificar_codigo.sh new file mode 100644 index 0000000..1b6e4ea --- /dev/null +++ b/verificar_codigo.sh @@ -0,0 +1,7 @@ +#!/bin/bash +echo "=== Línea 247-249 de app.py ===" +sed -n '247,249p' /home/pi/gkachele-saas/app.py + +echo "" +echo "=== Línea 120 de register.html ===" +sed -n '120p' /home/pi/gkachele-saas/templates/register.html diff --git a/verificar_raspberry.sh b/verificar_raspberry.sh new file mode 100644 index 0000000..6e6f448 --- /dev/null +++ b/verificar_raspberry.sh @@ -0,0 +1,29 @@ +#!/bin/bash +echo "=== Verificando estructura en Raspberry ===" +echo "" +echo "1. Templates _gkachele:" +sshpass -p 'Gdk1983gdk45@' ssh -p 2222 -o StrictHostKeyChecking=no pi@192.168.1.134 'ls -la /home/pi/gkachele-saas/themes/_gkachele/' + +echo "" +echo "2. Función render_gkachele_template:" +sshpass -p 'Gdk1983gdk45@' ssh -p 2222 -o StrictHostKeyChecking=no pi@192.168.1.134 'grep -c "def render_gkachele_template" /home/pi/gkachele-saas/app.py && echo "✅ Función encontrada" || echo "❌ Función NO encontrada"' + +echo "" +echo "3. Tablas en base de datos:" +sshpass -p 'Gdk1983gdk45@' ssh -p 2222 -o StrictHostKeyChecking=no pi@192.168.1.134 'python3 << EOF +import sqlite3 +conn = sqlite3.connect("/home/pi/gkachele-saas/database/main.db") +c = conn.cursor() +c.execute("SELECT name FROM sqlite_master WHERE type=\"table\"") +tables = [r[0] for r in c.fetchall()] +print("Tablas:", ", ".join(tables)) +if "menus" in tables and "widgets" in tables: + print("✅ Tablas menus y widgets creadas") +else: + print("⚠️ Faltan tablas menus o widgets") +conn.close() +EOF' + +echo "" +echo "4. Estado del servicio:" +sshpass -p 'Gdk1983gdk45@' ssh -p 2222 -o StrictHostKeyChecking=no pi@192.168.1.134 'sudo systemctl is-active gkachele-saas && echo "✅ Servicio activo" || echo "❌ Servicio inactivo"' diff --git a/verificar_redirect.sh b/verificar_redirect.sh new file mode 100644 index 0000000..bd86795 --- /dev/null +++ b/verificar_redirect.sh @@ -0,0 +1,7 @@ +#!/bin/bash +echo "=== Verificando app.py ===" +grep -A 2 "redirect_url\|redirect.*customizer" /home/pi/gkachele-saas/app.py | head -5 + +echo "" +echo "=== Verificando register.html ===" +grep -A 1 "redirectUrl\|result.redirect" /home/pi/gkachele-saas/templates/register.html | head -5 diff --git a/wp-content/fonts/2657d2fb3920c72459daac517e2e3e6f.css b/wp-content/fonts/2657d2fb3920c72459daac517e2e3e6f.css new file mode 100644 index 0000000..50be1b8 --- /dev/null +++ b/wp-content/fonts/2657d2fb3920c72459daac517e2e3e6f.css @@ -0,0 +1,756 @@ +/* cyrillic-ext */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-weight: 200; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZYokSdh18Smxg.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-weight: 200; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZYokSdo18Smxg.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-weight: 200; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZYokSdg18Smxg.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-weight: 200; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZYokSdv18Smxg.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-weight: 200; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZYokSdj18Smxg.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-weight: 200; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZYokSdi18Smxg.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-weight: 200; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZYokSds18Q.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-weight: 300; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkidh18Smxg.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-weight: 300; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkido18Smxg.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-weight: 300; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkidg18Smxg.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-weight: 300; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkidv18Smxg.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-weight: 300; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkidj18Smxg.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-weight: 300; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkidi18Smxg.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-weight: 300; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkids18Q.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-weight: 400; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7qsDJT9g.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-weight: 400; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7jsDJT9g.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-weight: 400; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7rsDJT9g.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-weight: 400; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7ksDJT9g.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-weight: 400; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7osDJT9g.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-weight: 400; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7psDJT9g.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-weight: 400; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-weight: 600; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdh18Smxg.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-weight: 600; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdo18Smxg.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-weight: 600; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdg18Smxg.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-weight: 600; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdv18Smxg.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-weight: 600; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdj18Smxg.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-weight: 600; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdi18Smxg.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-weight: 600; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCds18Q.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-weight: 700; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZclSdh18Smxg.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-weight: 700; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZclSdo18Smxg.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-weight: 700; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZclSdg18Smxg.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-weight: 700; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZclSdv18Smxg.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-weight: 700; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZclSdj18Smxg.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-weight: 700; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZclSdi18Smxg.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-weight: 700; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZclSds18Q.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-weight: 900; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZklydh18Smxg.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-weight: 900; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZklydo18Smxg.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-weight: 900; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZklydg18Smxg.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-weight: 900; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZklydv18Smxg.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-weight: 900; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZklydj18Smxg.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-weight: 900; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZklydi18Smxg.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: italic; + font-weight: 900; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZklyds18Q.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 200; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i94_wmhduz8A.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 200; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i94_wkxduz8A.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 200; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i94_wmxduz8A.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 200; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i94_wlBduz8A.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 200; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i94_wmBduz8A.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 200; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i94_wmRduz8A.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 200; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i94_wlxdu.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 300; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmhduz8A.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 300; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwkxduz8A.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 300; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmxduz8A.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 300; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlBduz8A.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 300; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmBduz8A.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 300; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmRduz8A.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 300; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNa7lqDY.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xK3dSBYKcSV-LCoeQqfX1RYOo3qPK7lqDY.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNK7lqDY.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xK3dSBYKcSV-LCoeQqfX1RYOo3qO67lqDY.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xK3dSBYKcSV-LCoeQqfX1RYOo3qN67lqDY.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNq7lqDY.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 600; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmhduz8A.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 600; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwkxduz8A.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 600; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmxduz8A.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 600; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlBduz8A.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 600; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmBduz8A.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 600; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmRduz8A.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 600; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmhduz8A.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwkxduz8A.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmxduz8A.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlBduz8A.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmBduz8A.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmRduz8A.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 900; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3iu4nwmhduz8A.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 900; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3iu4nwkxduz8A.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 900; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3iu4nwmxduz8A.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 900; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3iu4nwlBduz8A.woff2) format('woff2'); + unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 900; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3iu4nwmBduz8A.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 900; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3iu4nwmRduz8A.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Source Sans Pro'; + font-style: normal; + font-weight: 900; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3iu4nwlxdu.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} diff --git a/wp-content/fonts/f5da17b6cabb5ca89136fd0e8e9f1bde.css b/wp-content/fonts/f5da17b6cabb5ca89136fd0e8e9f1bde.css new file mode 100644 index 0000000..869fad8 --- /dev/null +++ b/wp-content/fonts/f5da17b6cabb5ca89136fd0e8e9f1bde.css @@ -0,0 +1,135 @@ +/* vietnamese */ +@font-face { + font-family: 'Space Grotesk'; + font-style: normal; + font-weight: 300; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/space-grotesk/V8mDoQDjQSkFtoMM3T6r8E7mPb54C-s0.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Space Grotesk'; + font-style: normal; + font-weight: 300; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/space-grotesk/V8mDoQDjQSkFtoMM3T6r8E7mPb94C-s0.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Space Grotesk'; + font-style: normal; + font-weight: 300; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/space-grotesk/V8mDoQDjQSkFtoMM3T6r8E7mPbF4Cw.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* vietnamese */ +@font-face { + font-family: 'Space Grotesk'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/space-grotesk/V8mDoQDjQSkFtoMM3T6r8E7mPb54C-s0.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Space Grotesk'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/space-grotesk/V8mDoQDjQSkFtoMM3T6r8E7mPb94C-s0.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Space Grotesk'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/space-grotesk/V8mDoQDjQSkFtoMM3T6r8E7mPbF4Cw.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* vietnamese */ +@font-face { + font-family: 'Space Grotesk'; + font-style: normal; + font-weight: 500; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/space-grotesk/V8mDoQDjQSkFtoMM3T6r8E7mPb54C-s0.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Space Grotesk'; + font-style: normal; + font-weight: 500; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/space-grotesk/V8mDoQDjQSkFtoMM3T6r8E7mPb94C-s0.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Space Grotesk'; + font-style: normal; + font-weight: 500; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/space-grotesk/V8mDoQDjQSkFtoMM3T6r8E7mPbF4Cw.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* vietnamese */ +@font-face { + font-family: 'Space Grotesk'; + font-style: normal; + font-weight: 600; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/space-grotesk/V8mDoQDjQSkFtoMM3T6r8E7mPb54C-s0.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Space Grotesk'; + font-style: normal; + font-weight: 600; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/space-grotesk/V8mDoQDjQSkFtoMM3T6r8E7mPb94C-s0.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Space Grotesk'; + font-style: normal; + font-weight: 600; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/space-grotesk/V8mDoQDjQSkFtoMM3T6r8E7mPbF4Cw.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* vietnamese */ +@font-face { + font-family: 'Space Grotesk'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/space-grotesk/V8mDoQDjQSkFtoMM3T6r8E7mPb54C-s0.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Space Grotesk'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/space-grotesk/V8mDoQDjQSkFtoMM3T6r8E7mPb94C-s0.woff2) format('woff2'); + unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Space Grotesk'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url(http://localhost:8080/wp-content/fonts/space-grotesk/V8mDoQDjQSkFtoMM3T6r8E7mPbF4Cw.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} diff --git a/wp-content/fonts/source-sans-pro/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7jsDJT9g.woff2 b/wp-content/fonts/source-sans-pro/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7jsDJT9g.woff2 new file mode 100644 index 0000000..fc85489 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7jsDJT9g.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7ksDJT9g.woff2 b/wp-content/fonts/source-sans-pro/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7ksDJT9g.woff2 new file mode 100644 index 0000000..96ea6b7 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7ksDJT9g.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2 b/wp-content/fonts/source-sans-pro/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2 new file mode 100644 index 0000000..48bda2d Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7nsDI.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7osDJT9g.woff2 b/wp-content/fonts/source-sans-pro/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7osDJT9g.woff2 new file mode 100644 index 0000000..6df989d Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7osDJT9g.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7psDJT9g.woff2 b/wp-content/fonts/source-sans-pro/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7psDJT9g.woff2 new file mode 100644 index 0000000..6df2fe3 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7psDJT9g.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7qsDJT9g.woff2 b/wp-content/fonts/source-sans-pro/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7qsDJT9g.woff2 new file mode 100644 index 0000000..82d3514 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7qsDJT9g.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7rsDJT9g.woff2 b/wp-content/fonts/source-sans-pro/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7rsDJT9g.woff2 new file mode 100644 index 0000000..773cf52 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xK1dSBYKcSV-LCoeQqfX1RYOo3qPZ7rsDJT9g.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xK3dSBYKcSV-LCoeQqfX1RYOo3qN67lqDY.woff2 b/wp-content/fonts/source-sans-pro/6xK3dSBYKcSV-LCoeQqfX1RYOo3qN67lqDY.woff2 new file mode 100644 index 0000000..c5e70a7 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xK3dSBYKcSV-LCoeQqfX1RYOo3qN67lqDY.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNK7lqDY.woff2 b/wp-content/fonts/source-sans-pro/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNK7lqDY.woff2 new file mode 100644 index 0000000..e1f66a5 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNK7lqDY.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNa7lqDY.woff2 b/wp-content/fonts/source-sans-pro/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNa7lqDY.woff2 new file mode 100644 index 0000000..496401b Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNa7lqDY.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNq7lqDY.woff2 b/wp-content/fonts/source-sans-pro/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNq7lqDY.woff2 new file mode 100644 index 0000000..edaf39a Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xK3dSBYKcSV-LCoeQqfX1RYOo3qNq7lqDY.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xK3dSBYKcSV-LCoeQqfX1RYOo3qO67lqDY.woff2 b/wp-content/fonts/source-sans-pro/6xK3dSBYKcSV-LCoeQqfX1RYOo3qO67lqDY.woff2 new file mode 100644 index 0000000..2f38098 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xK3dSBYKcSV-LCoeQqfX1RYOo3qO67lqDY.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2 b/wp-content/fonts/source-sans-pro/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2 new file mode 100644 index 0000000..3f0f70a Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xK3dSBYKcSV-LCoeQqfX1RYOo3qOK7l.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xK3dSBYKcSV-LCoeQqfX1RYOo3qPK7lqDY.woff2 b/wp-content/fonts/source-sans-pro/6xK3dSBYKcSV-LCoeQqfX1RYOo3qPK7lqDY.woff2 new file mode 100644 index 0000000..c05e527 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xK3dSBYKcSV-LCoeQqfX1RYOo3qPK7lqDY.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdg18Smxg.woff2 b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdg18Smxg.woff2 new file mode 100644 index 0000000..2a6a4b5 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdg18Smxg.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdh18Smxg.woff2 b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdh18Smxg.woff2 new file mode 100644 index 0000000..c9d0633 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdh18Smxg.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdi18Smxg.woff2 b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdi18Smxg.woff2 new file mode 100644 index 0000000..9bdf94a Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdi18Smxg.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdj18Smxg.woff2 b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdj18Smxg.woff2 new file mode 100644 index 0000000..b3346d2 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdj18Smxg.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdo18Smxg.woff2 b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdo18Smxg.woff2 new file mode 100644 index 0000000..7b4afad Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdo18Smxg.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCds18Q.woff2 b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCds18Q.woff2 new file mode 100644 index 0000000..087bbde Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCds18Q.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdv18Smxg.woff2 b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdv18Smxg.woff2 new file mode 100644 index 0000000..f1431d8 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZY4lCdv18Smxg.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZYokSdg18Smxg.woff2 b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZYokSdg18Smxg.woff2 new file mode 100644 index 0000000..8509149 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZYokSdg18Smxg.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZYokSdh18Smxg.woff2 b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZYokSdh18Smxg.woff2 new file mode 100644 index 0000000..0c9377e Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZYokSdh18Smxg.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZYokSdi18Smxg.woff2 b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZYokSdi18Smxg.woff2 new file mode 100644 index 0000000..cac1def Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZYokSdi18Smxg.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZYokSdj18Smxg.woff2 b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZYokSdj18Smxg.woff2 new file mode 100644 index 0000000..4447336 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZYokSdj18Smxg.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZYokSdo18Smxg.woff2 b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZYokSdo18Smxg.woff2 new file mode 100644 index 0000000..0b637f4 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZYokSdo18Smxg.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZYokSds18Q.woff2 b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZYokSds18Q.woff2 new file mode 100644 index 0000000..116c332 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZYokSds18Q.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZYokSdv18Smxg.woff2 b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZYokSdv18Smxg.woff2 new file mode 100644 index 0000000..0195a47 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZYokSdv18Smxg.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkidg18Smxg.woff2 b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkidg18Smxg.woff2 new file mode 100644 index 0000000..9d8a404 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkidg18Smxg.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkidh18Smxg.woff2 b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkidh18Smxg.woff2 new file mode 100644 index 0000000..a173f49 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkidh18Smxg.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkidi18Smxg.woff2 b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkidi18Smxg.woff2 new file mode 100644 index 0000000..0f32454 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkidi18Smxg.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkidj18Smxg.woff2 b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkidj18Smxg.woff2 new file mode 100644 index 0000000..a1fa827 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkidj18Smxg.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkido18Smxg.woff2 b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkido18Smxg.woff2 new file mode 100644 index 0000000..8d48a09 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkido18Smxg.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkids18Q.woff2 b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkids18Q.woff2 new file mode 100644 index 0000000..f6a9e88 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkids18Q.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkidv18Smxg.woff2 b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkidv18Smxg.woff2 new file mode 100644 index 0000000..b326f1b Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZMkidv18Smxg.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZclSdg18Smxg.woff2 b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZclSdg18Smxg.woff2 new file mode 100644 index 0000000..b96e0b9 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZclSdg18Smxg.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZclSdh18Smxg.woff2 b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZclSdh18Smxg.woff2 new file mode 100644 index 0000000..9307a25 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZclSdh18Smxg.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZclSdi18Smxg.woff2 b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZclSdi18Smxg.woff2 new file mode 100644 index 0000000..d5d7f27 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZclSdi18Smxg.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZclSdj18Smxg.woff2 b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZclSdj18Smxg.woff2 new file mode 100644 index 0000000..73659f6 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZclSdj18Smxg.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZclSdo18Smxg.woff2 b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZclSdo18Smxg.woff2 new file mode 100644 index 0000000..637e069 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZclSdo18Smxg.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZclSds18Q.woff2 b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZclSds18Q.woff2 new file mode 100644 index 0000000..5406f15 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZclSds18Q.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZclSdv18Smxg.woff2 b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZclSdv18Smxg.woff2 new file mode 100644 index 0000000..4462f6c Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZclSdv18Smxg.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZklydg18Smxg.woff2 b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZklydg18Smxg.woff2 new file mode 100644 index 0000000..eec4440 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZklydg18Smxg.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZklydh18Smxg.woff2 b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZklydh18Smxg.woff2 new file mode 100644 index 0000000..dafc461 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZklydh18Smxg.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZklydi18Smxg.woff2 b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZklydi18Smxg.woff2 new file mode 100644 index 0000000..1320166 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZklydi18Smxg.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZklydj18Smxg.woff2 b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZklydj18Smxg.woff2 new file mode 100644 index 0000000..c71c8fc Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZklydj18Smxg.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZklydo18Smxg.woff2 b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZklydo18Smxg.woff2 new file mode 100644 index 0000000..adc28cb Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZklydo18Smxg.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZklyds18Q.woff2 b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZklyds18Q.woff2 new file mode 100644 index 0000000..150d0da Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZklyds18Q.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZklydv18Smxg.woff2 b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZklydv18Smxg.woff2 new file mode 100644 index 0000000..fe9339f Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKwdSBYKcSV-LCoeQqfX1RYOo3qPZZklydv18Smxg.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwkxduz8A.woff2 b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwkxduz8A.woff2 new file mode 100644 index 0000000..2e69d23 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwkxduz8A.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlBduz8A.woff2 b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlBduz8A.woff2 new file mode 100644 index 0000000..2e20e3e Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlBduz8A.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2 b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2 new file mode 100644 index 0000000..d376442 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwlxdu.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmBduz8A.woff2 b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmBduz8A.woff2 new file mode 100644 index 0000000..13fc823 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmBduz8A.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmRduz8A.woff2 b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmRduz8A.woff2 new file mode 100644 index 0000000..0ec07f1 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmRduz8A.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmhduz8A.woff2 b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmhduz8A.woff2 new file mode 100644 index 0000000..8fb81b5 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmhduz8A.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmxduz8A.woff2 b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmxduz8A.woff2 new file mode 100644 index 0000000..82a6721 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i54rwmxduz8A.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i94_wkxduz8A.woff2 b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i94_wkxduz8A.woff2 new file mode 100644 index 0000000..32c77b9 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i94_wkxduz8A.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i94_wlBduz8A.woff2 b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i94_wlBduz8A.woff2 new file mode 100644 index 0000000..3ca82c7 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i94_wlBduz8A.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i94_wlxdu.woff2 b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i94_wlxdu.woff2 new file mode 100644 index 0000000..70281b4 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i94_wlxdu.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i94_wmBduz8A.woff2 b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i94_wmBduz8A.woff2 new file mode 100644 index 0000000..b8fba9d Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i94_wmBduz8A.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i94_wmRduz8A.woff2 b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i94_wmRduz8A.woff2 new file mode 100644 index 0000000..3291e53 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i94_wmRduz8A.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i94_wmhduz8A.woff2 b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i94_wmhduz8A.woff2 new file mode 100644 index 0000000..4e74d99 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i94_wmhduz8A.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i94_wmxduz8A.woff2 b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i94_wmxduz8A.woff2 new file mode 100644 index 0000000..3b04b50 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3i94_wmxduz8A.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwkxduz8A.woff2 b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwkxduz8A.woff2 new file mode 100644 index 0000000..6056d22 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwkxduz8A.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlBduz8A.woff2 b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlBduz8A.woff2 new file mode 100644 index 0000000..5071a9a Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlBduz8A.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2 b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2 new file mode 100644 index 0000000..2d10d5b Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwlxdu.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmBduz8A.woff2 b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmBduz8A.woff2 new file mode 100644 index 0000000..1875594 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmBduz8A.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmRduz8A.woff2 b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmRduz8A.woff2 new file mode 100644 index 0000000..6c07b9d Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmRduz8A.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmhduz8A.woff2 b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmhduz8A.woff2 new file mode 100644 index 0000000..fc9e31c Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmhduz8A.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmxduz8A.woff2 b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmxduz8A.woff2 new file mode 100644 index 0000000..41d2dbe Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ig4vwmxduz8A.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwkxduz8A.woff2 b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwkxduz8A.woff2 new file mode 100644 index 0000000..1ce6f3c Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwkxduz8A.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlBduz8A.woff2 b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlBduz8A.woff2 new file mode 100644 index 0000000..5e18e52 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlBduz8A.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2 b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2 new file mode 100644 index 0000000..bce3c44 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwlxdu.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmBduz8A.woff2 b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmBduz8A.woff2 new file mode 100644 index 0000000..78f8412 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmBduz8A.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmRduz8A.woff2 b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmRduz8A.woff2 new file mode 100644 index 0000000..7df8f46 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmRduz8A.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmhduz8A.woff2 b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmhduz8A.woff2 new file mode 100644 index 0000000..83d1947 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmhduz8A.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmxduz8A.woff2 b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmxduz8A.woff2 new file mode 100644 index 0000000..a2c28b1 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3ik4zwmxduz8A.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3iu4nwkxduz8A.woff2 b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3iu4nwkxduz8A.woff2 new file mode 100644 index 0000000..ece5350 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3iu4nwkxduz8A.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3iu4nwlBduz8A.woff2 b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3iu4nwlBduz8A.woff2 new file mode 100644 index 0000000..a2ccc87 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3iu4nwlBduz8A.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3iu4nwlxdu.woff2 b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3iu4nwlxdu.woff2 new file mode 100644 index 0000000..b77972f Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3iu4nwlxdu.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3iu4nwmBduz8A.woff2 b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3iu4nwmBduz8A.woff2 new file mode 100644 index 0000000..892b817 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3iu4nwmBduz8A.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3iu4nwmRduz8A.woff2 b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3iu4nwmRduz8A.woff2 new file mode 100644 index 0000000..f81ea21 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3iu4nwmRduz8A.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3iu4nwmhduz8A.woff2 b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3iu4nwmhduz8A.woff2 new file mode 100644 index 0000000..06858d1 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3iu4nwmhduz8A.woff2 differ diff --git a/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3iu4nwmxduz8A.woff2 b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3iu4nwmxduz8A.woff2 new file mode 100644 index 0000000..66dd377 Binary files /dev/null and b/wp-content/fonts/source-sans-pro/6xKydSBYKcSV-LCoeQqfX1RYOo3iu4nwmxduz8A.woff2 differ diff --git a/wp-content/fonts/space-grotesk/V8mDoQDjQSkFtoMM3T6r8E7mPb54C-s0.woff2 b/wp-content/fonts/space-grotesk/V8mDoQDjQSkFtoMM3T6r8E7mPb54C-s0.woff2 new file mode 100644 index 0000000..ce97d0f Binary files /dev/null and b/wp-content/fonts/space-grotesk/V8mDoQDjQSkFtoMM3T6r8E7mPb54C-s0.woff2 differ diff --git a/wp-content/fonts/space-grotesk/V8mDoQDjQSkFtoMM3T6r8E7mPb94C-s0.woff2 b/wp-content/fonts/space-grotesk/V8mDoQDjQSkFtoMM3T6r8E7mPb94C-s0.woff2 new file mode 100644 index 0000000..db732c2 Binary files /dev/null and b/wp-content/fonts/space-grotesk/V8mDoQDjQSkFtoMM3T6r8E7mPb94C-s0.woff2 differ diff --git a/wp-content/fonts/space-grotesk/V8mDoQDjQSkFtoMM3T6r8E7mPbF4Cw.woff2 b/wp-content/fonts/space-grotesk/V8mDoQDjQSkFtoMM3T6r8E7mPbF4Cw.woff2 new file mode 100644 index 0000000..0f3474e Binary files /dev/null and b/wp-content/fonts/space-grotesk/V8mDoQDjQSkFtoMM3T6r8E7mPbF4Cw.woff2 differ diff --git a/wp-content/index.php b/wp-content/index.php new file mode 100644 index 0000000..6220032 --- /dev/null +++ b/wp-content/index.php @@ -0,0 +1,2 @@ +'GlotPress/4.0.3','translation-revision-date'=>'2025-12-01 08:15:40+0000','plural-forms'=>'nplurals=2; plural=n != 1;','project-id-version'=>'WordPress - 6.9.x - Development - Administration','language'=>'es','messages'=>['start of week1'=>'1','default GMT offset or timezone string0'=>'Europe/Madrid','WordPress 6.9 includes a broad set of performance enhancements. A better LCP (Largest Contentful Paint) metric is achieved through improved loading of conditional and inlined stylesheets, script loading with fetchpriority support, and additional core optimizations. Editor advances include fixes for layout shifts caused by the Video block and faster loading of the terms selector.'=>'WordPress 6.9 incluye un amplio conjunto de mejoras de rendimiento. Se ha logrado una mejor métrica LCP (Largest Contentful Paint) gracias a la carga optimizada de hojas de estilo condicionales e integradas, la carga de scripts con prioridad de recuperación y optimizaciones adicionales del núcleo. Las mejoras del editor incluyen correcciones para los cambios de diseño causados por el bloque de vídeo y una carga más rápida del selector de términos.','It is likely that this unminified stylesheet will not be served to visitors.'=>'Parece que esta hoja de estilos sin minimizar no se servirá a los visitantes.','There is a minified version of this stylesheet.'=>'Hay una versión minimizada de esta hoja de estilos.','Color (Generated)'=>'Color (generado)','Initials (Generated)'=>'Iniciales (generadas)','Anyone posts a note'=>'Alguien publica una nota','Administration Color Scheme'=>'Esquema de color de la administración','Search Engine Visibility'=>'Visibilidad en los motores de búsqueda','Your site is hidden from search engines. Consider enabling indexing if this is a public site.'=>'Tu sitio está oculto para los motores de búsqueda. Plantéate activar el indexado si este es un sitio público.','Search engines are discouraged from indexing this site.'=>'Se disuade a los motores de búsqueda de que indexen este sitio.','Review your visibility settings'=>'Revisa tus ajustes de visibilidad','Search engines can crawl and index your site. No action needed.'=>'Los motores de búsqueda pueden rastrear e indexar tu sitio. No es necesaria ninguna acción.','Search engine indexing is enabled.'=>'El indexado en motores de búsqueda está activo.','Unable to access the WordPress.org API for Serve Happy.'=>'No ha sido posible acceder a la API de to WordPress.org para Sirve feliz.','Unable to determine the status of the current PHP version (%s)'=>'No ha sido posible determinar el estado de la versión actual de PHP (%s)','Your site is running PHP %s'=>'Tu sitio está ejecutando PHP %s','Image format transforms'=>'Transforma formatos de imagen','No format transforms defined'=>'No se han definido transformaciones de formato','%s has failed to upload.'=>'No se ha podido subir %s.','70+ accessibility fixes and enhancements focus on central areas of the WordPress experience. From globally hiding CSS-generated content from assistive technology and improvements to screen reader announcements and user experience, to fixing cursor position and keeping typing focus when clicking on an autocomplete suggestion item.'=>'Más de 70 correcciones y mejoras de accesibilidad centradas en áreas fundamentales para la experiencia de uso de WordPress. Desde ocultar globalmente el contenido generado por CSS a tecnologías de asistencia y mejoras en los mensajes para lectores de pantalla, así como en la experiencia de usuario, hasta corregir la posición del cursor y mantener el foco de escritura al hacer clic en una sugerencia de autocompletado.','A new typography option for text-based blocks, starting with the Paragraph and Heading blocks, that automatically adjusts font size to fill its container perfectly. Ideal for banners, callouts, and standout moments in your design. No manual tweaks, just an instant clean design.'=>'Una nueva opción de tipografía para los bloques basados en texto, empezando por los bloques de párrafo y encabezado, que ajusta automáticamente el tamaño de la fuente para llenar el contenedor a la perfección. Ideal para banners, llamadas y elementos destacados de tu diseño. Sin ajustes manuales, simplemente un diseño limpio al instante.','Content that adapts.'=>'Contenido que se adapta.','Fit text to container'=>'Ajusta texto al contenedor','Access the Command Palette from any part of your site, whether you’re writing your latest post, deep in design in the Site Editor, or browsing your plugins. Everything you need, just a few keystrokes away.'=>'Accede a la paleta de comandos desde cualquier parte de tu sitio, ya sea mientras escribes tu última entrada, te sumerges en el diseño en el editor del sitio o revisas tus plugins. Todo lo que necesitas, a solo unas teclas de distancia.','Your tools are always at hand.'=>'Tus herramientas siempre a mano.','Command Palette, everywhere'=>'La paleta de comandos en todas partes','Building layouts is now more intuitive and flexible with clear drag handles and a live preview that shows exactly what you’re moving—a faster way to build pages.'=>'La creación de diseños ahora es más intuitiva y flexible, con controles de arrastre claros y una vista previa en tiempo real que muestra exactamente lo que estás moviendo, lo que se traduce en una forma más rápida de crear páginas.','Design flows naturally.'=>'El diseño fluye de manera natural','Visual drag and drop'=>'Arrastrar y soltar visual','With notes attached directly to blocks, your team can stay aligned, track changes, and turn feedback into action all in one place. Whether you’re working on copy or refining design, collaboration happens seamlessly on the canvas itself.'=>'Con notas adjuntas directamente en los bloques, tu equipo puede mantenerse coordinado, realizar el seguimiento de los cambios y convertir los comentarios en acciones, todo en un solo lugar. Tanto si estás trabajando en un texto como perfeccionando un diseño, la colaboración se produce de forma fluida en el propio lienzo.','Leave feedback right where you’re working.'=>'Deja comentarios justo donde estés trabajando.','about page section titleNotes'=>'Notas','WordPress 6.9 introduces a more intuitive way to create content, together. Every detail is designed to fit your creative flow, from Notes that let you collaborate directly in the editor to a powerful Command Palette that helps you reach every part of your site.'=>'WordPress 6.9 incluye una forma más intuitiva de crear contenido juntos. Cada detalle está diseñado para adaptarse a tu flujo creativo, desde las notas que te permiten colaborar directamente en el editor hasta una potente paleta de comandos que te ayuda a llegar a todas las partes de tu sitio.','You cannot upgrade because WordPress %2$s requires the %3$s PHP extension.'=>'No puedes actualizar porque WordPress %2$s requiere la extensión de PHP %3$s.','An error occurred while deleting the theme.'=>'Ha ocurrido un error al borrar el tema.','Add Theme'=>'Añadir tema','WordPress.org takes privacy and transparency very seriously. To learn more about what data is collected, and how it is used, please visit the WordPress.org Privacy Policy.'=>'WordPress.org se toma la privacidad y la transparencia muy en serio. Para aprender más sobre los datos que recoge, y qué hace con ellos, por favor, visita la política de privacidad de WordPress.org.','WordPress.org takes privacy and transparency very seriously'=>'WordPress.org se toma muy en serio la privacidad y la transparencia','File: %s'=>'Archivo: %s','Add User'=>'Añadir usuario','Add Plugin'=>'Añadir plugin','design menu itemDesign'=>'Diseño','Collapse Main Menu'=>'Cerrar menú principal','Invalid item ID. You can view all media items in the Media Library.'=>'ID de elemento no válido. Puedes ver todos los medios en la biblioteca de medios.','An error occurred during the upload process.'=>'Ha ocurrido un error durante el proceso de subida.','You cannot install because WordPress %2$s requires the %3$s PHP extension.'=>'No puedes instalarlo porque WordPress %2$s requiere la extensión de PHP %3$s.','Add Custom Field:'=>'Añadir campo personalizado:','An error occurred while loading the comparison. Please refresh the page and try again.'=>'Ha ocurrido un error al cargar la comparación. Recarga la página e inténtalo de nuevo.','+ Add Category'=>'+ Añadir categoría','Does not exist'=>'No existe','robots.txt'=>'robots.txt','WordPress cannot dynamically serve a %s file due to a lack of rewrite rule support'=>'WordPress no puede servir dinámicamente un archivo %s debido a la falta de compatibilidad con reglas de rewrite.','Your site is using the dynamic %s file which is generated by WordPress.'=>'Tu sitio está utilizando el archivo %s dinámico generado por WordPress.','There is a static %s file in your installation folder. WordPress cannot dynamically serve one.'=>'Hay un archivo %s estático en la carpeta de tu instalación. WordPress no puede servirlo dinámicamente.','The active theme does not support uploading a custom header image. Please ensure your theme supports custom headers and try again.'=>'El tema activo no permite subir una imagen de cabecera personalizada. Asegúrate de que tu tema admite cabeceras personalizadas e inténtalo de nuevo.','An error occurred while processing your header image.'=>'Ha ocurrido un error al procesar tu imagen de cabecera.','Please try again or start a new changeset. This changeset cannot be further modified.'=>'Por favor, inténtalo de nuevo o inicia un nuevo grupo de cambios. Este grupo de cambios no puede modificarse.','An error occurred while saving your changeset.'=>'Ha ocurrido un error al guardar el grupo de cambios.','Triage Lead'=>'Líder de triaje','Tech Lead'=>'Líder técnico','Default Theme Development Lead'=>'Líder del desarrollo del tema por defecto','Default Theme Design Lead'=>'Líder de diseño del tema por defecto','Performance Lead'=>'Líder de rendimiento','Design Lead'=>'Líder de diseño','Test Lead'=>'Líder de pruebas','Documentation Lead'=>'Líder de documentación','Editor Triage Lead'=>'Líder de triaje del editor','Editor Tech Lead'=>'Líder técnico del editor','Core Triage Lead'=>'Líder de triaje del núcleo','Core Tech Lead'=>'Líder técnico del núcleo','Minor Release Lead'=>'Líder de versión menor','Release Coordination'=>'Coordinación de la versión','If a dependent plugin is missing some dependencies, its activation button will be disabled until the required dependencies are activated.'=>'Si a un plugin dependiente le faltan algunas dependencias, su botón de activación se desactivará hasta que se activen las dependencias necesarias.','If a required plugin is deleted, a notice will be displayed on the Plugin administration screen informing the user that there is some missing dependencies to install and/or activate. Additionally, each plugin whose dependencies are not met will have an error notice on their plugin row.'=>'Si se elimina un plugin necesario, aparecerá un aviso en la pantalla de administración de plugins informando al usuario de que faltan algunas dependencias por instalar y/o activar. Además, cada plugin cuyas dependencias no se cumplan tendrá un aviso de error en su fila de plugin.','Plugin Dependencies aims to make the process of installing and activating add-ons (dependents) and the plugins they rely on (dependencies) consistent and easy.'=>'Las dependencias de plugin tienen como objetivo hacer que el proceso de instalar y activar extensiones (dependientes) y los plugins de los que dependen (dependencias) sea consistente y fácil.','Dependencies'=>'Dependencias','Comments to display at the top of each page'=>'Comentarios para mostrar en la parte superior de cada página','Comments page to display by default'=>'Página de comentarios a mostrar por defecto','Top level comments per page'=>'Comentarios de nivel superior por página','Break comments into pages'=>'Desglosar los comentarios en páginas','Comment Pagination'=>'Paginación de los comentarios','Number of levels for threaded (nested) comments'=>'Número de niveles para comentarios en hilos (anidados)','Enable threaded (nested) comments'=>'Activar comentarios en hilos (anidados)','Close comments when post is how many days old'=>'Cerrar los comentarios cuando la entrada tenga cuántos días de antigüedad','Automatically close comments on old posts'=>'Cerrar automáticamente los comentarios de entradas antiguas','Menu order updated'=>'Actualizado el orden del menú','Menu parent updated'=>'Actualizado el menú padre','Change revision by using the left and right arrow keys'=>'Cambiar la revisión usando las teclas izquierda y derecha','Select a revision'=>'Seleccionar una revisión','A directory could not be read.'=>'No se ha podido leer un directorio.','Database Extension'=>'Extensión de la base de datos','Empty value'=>'Valor vacío','Max simultaneous file uploads'=>'Carga máxima simultánea de archivos','Menu Order'=>'Orden en el menú','Menu Parent'=>'Menú padre','Skip to Editor'=>'Saltar al editor','WordPress %s Field Guide'=>'Guía de campo de WordPress %s','WordPress %s Release Notes'=>'Notas de la versión de WordPress %s','The directory does not exist.'=>'El directorio no existe.','Common Errors'=>'Errores comunes','Documentation on Editing Files'=>'Documentación sobre la edición de archivos','Documentation on Editing Plugins'=>'Documentación sobre la edición de plugins','https://developer.wordpress.org/plugins/settings/settings-api/'=>'https://developer.wordpress.org/plugins/settings/settings-api/','The %1$s setting is unregistered. Unregistered settings are deprecated. See documentation on the Settings API.'=>'El ajuste %1$s no está registrado. Los ajustes no registrados están obsoletos. Consulta la documentación sobre la API de ajustes.','https://developer.wordpress.org/advanced-administration/wordpress/update-services/'=>'https://developer.wordpress.org/advanced-administration/wordpress/update-services/','https://developer.wordpress.org/advanced-administration/wordpress/feeds/'=>'https://developer.wordpress.org/advanced-administration/wordpress/feeds/','Documentation on Nginx configuration.'=>'Documentación sobre la configuración de Nginx.','https://developer.wordpress.org/advanced-administration/server/wordpress-in-directory/'=>'https://developer.wordpress.org/advanced-administration/server/wordpress-in-directory/','Documentation on Site Management'=>'Documentación sobre la gestión del sitio','Type of relationnone'=>'ninguna','No URL Provided.'=>'No se ha facilitado ninguna URL.','https://developer.wordpress.org/advanced-administration/server/file-permissions/'=>'https://developer.wordpress.org/advanced-administration/server/file-permissions/','Package not available.'=>'Paquete no disponible.','Autoloaded options'=>'Opciones cargadas automáticamente','More info about optimizing autoloaded options'=>'Más información sobre la optimización de las opciones autocargadas','https://developer.wordpress.org/advanced-administration/performance/optimization/#autoloaded-options'=>'https://developer.wordpress.org/advanced-administration/performance/optimization/#autoloaded-options','Your site has %1$s autoloaded options (size: %2$s) in the options table, which could cause your site to be slow. You can review the options being autoloaded in your database and remove any options that are no longer needed by your site.'=>'Tu sitio tiene %1$s opciones autocargadas (tamaño: %2$s) en la tabla de opciones, lo que podría hacer que tu sitio fuera lento. Puedes revisar las opciones que se cargan automáticamente en tu base de datos y eliminar las que ya no necesite tu sitio.','Autoloaded options could affect performance'=>'Las opciones cargadas automáticamente podrían afectar al rendimiento','Your site has %1$s autoloaded options (size: %2$s) in the options table, which is acceptable.'=>'Tu sitio tiene %1$s opciones cargadas automáticamente (tamaño: %2$s) en la tabla de opciones, lo cual es aceptable.','Autoloaded options are acceptable'=>'Las opciones cargadas automáticamente son aceptables','Autoloaded options are configuration settings for plugins and themes that are automatically loaded with every page load in WordPress. Having too many autoloaded options can slow down your site.'=>'Las opciones cargadas automáticamente son ajustes de configuración para plugins y temas que se cargan automáticamente con cada carga de página en WordPress. Tener demasiadas opciones de carga automática puede ralentizar tu sitio.','https://developer.wordpress.org/advanced-administration/performance/optimization/#persistent-object-cache'=>'https://developer.wordpress.org/advanced-administration/performance/optimization/#persistent-object-cache','https://developer.wordpress.org/advanced-administration/performance/optimization/#caching'=>'https://developer.wordpress.org/advanced-administration/performance/optimization/#caching','Fonts directory size'=>'Tamaño del directorio de fuentes','Fonts directory location'=>'Ubicación del directorio de fuentes','The fonts directory'=>'El directorio de fuentes','The following plugins failed to update. If there was a fatal error in the update, the previously installed version has been restored.'=>'Ha fallado la actualización de los siguientes plugins. Si ha habido un error fatal en la actualización, se ha restaurado la versión instalada anteriormente.','The update for \'%s\' contained a fatal error. The previously installed version has been restored.'=>'La actualización de «%s» contenía un error fatal. Se ha restaurado la versión instalada anteriormente.','The update for \'%s\' contained a fatal error. The previously installed version could not be restored.'=>'La actualización de «%s» contenía un error fatal. No se pudo restaurar la versión instalada anteriormente.','https://developer.wordpress.org/advanced-administration/security/backup/'=>'https://developer.wordpress.org/advanced-administration/security/backup/','If you are a plugin author, you can learn more about how to add the Personal Data Exporter to a plugin.'=>'Si eres autor de un plugin, puedes obtener más información sobre cómo añadir el exportador de datos personales a un plugin.','If you are a plugin author, you can learn more about how to add the Personal Data Eraser to a plugin.'=>'Si eres autor de un plugin, puedes obtener más información sobre cómo añadir el borrado de datos personales a un plugin.','See everything new'=>'Ver todas las novedades','https://wordpress.org/download/releases/%s/'=>'https://wordpress.org/download/releases/%s/','For a comprehensive overview of all the new features and enhancements in WordPress %s, please visit the feature-showcase website.'=>'Para obtener una visión general de todas las nuevas características y mejoras de WordPress %s, visita el sitio web de presentación de características.','And much more'=>'Y mucho más','patterns menu itemPatterns'=>'Patrones','Change Site Icon'=>'Cambiar icono del sitio','Error: %1$s requires %2$d plugin to be installed and activated: %3$s.'=>'Error: %1$s requiere que esté instalado y activado %2$d plugin: %3$s.' . "\0" . 'Error: %1$s requiere que estén instalados y activados %2$d plugins: %3$s.','pluginUpdate Now'=>'Actualizar ahora','themeInstall Now'=>'Instalar ahora','This plugin cannot be activated because required plugins are missing or inactive.'=>'Este plugin no puede ser activado porque faltan los plugins que necesita o están inactivos.','This plugin is active but may not function correctly because required plugins are missing or inactive.'=>'Este plugin está activo pero puede no funcionar correctamente porque hay plugins que requiere que faltan o están inactivos.','Requires: %s'=>'Requiere: %s','Required by: %s'=>'Requerido por: %s','Note: This plugin cannot be deactivated or deleted until the plugins that require it are deactivated or deleted.'=>'Nota: Este plugin no se puede desactivar o eliminar hasta que se desactiven o eliminen los plugins que lo requieren.','You cannot deactivate this plugin as other plugins depend on it.'=>'No puedes desactivar este plugin ya que otros dependen de él.','You cannot delete this plugin as other plugins require it.'=>'No puedes borrar este plugin ya que otros plugins lo requieren.','You cannot activate this plugin as it has unmet requirements.'=>'No puedes activar este plugin ya que tiene requisitos no cumplidos.','You cannot deactivate this plugin as other plugins require it.'=>'No puedes desactivar este plugin ya que otros plugins lo requieren.','pluginDeactivate'=>'Desactivar','pluginNetwork Deactivate'=>'Desactivar para la red','pluginActivate'=>'Activar','Additional plugins are required'=>'Se necesitan plugins adicionales','Site ID'=>'ID de sitio','The PHP version on your server is %1$s, however the new theme version requires %2$s.'=>'La versión de PHP de tu servidor es %1$s, pero la nueva versión del tema requiere la %2$s.','Your WordPress version is %1$s, however the new theme version requires %2$s.'=>'Tu versión de WordPress es la %1$s, sin embargo la nueva versión del tema necesita la %2$s.','pluginNetwork Activate'=>'Activar para la red','%s is already active.'=>'%s ya está activo.','pluginInstall Now'=>'Instalar ahora','Created by a worldwide team of passionate individuals'=>'Creado por un equipo mundial de personas apasionadas','Accessibility improvements'=>'Mejoras de accesibilidad','Performance updates'=>'Actualizaciones de rendimiento','Only .zip archives may be uploaded.'=>'Sólo se pueden subir archivos .zip.','The block widgets require JavaScript. Please enable JavaScript in your browser settings, or activate the Classic Widgets plugin.'=>'Los widgets de bloque requieren JavaScript. Activa JavaScript en los ajustes de tu navegador o activa el plugin Classic Widgets.','The block editor requires JavaScript. Please enable JavaScript in your browser settings, or install the Classic Editor plugin.'=>'El editor de bloques requiere JavaScript. Activa JavaScript en los ajustes de tu navegador o instala el plugin Editor clásico.','The block editor requires JavaScript. Please enable JavaScript in your browser settings, or activate the Classic Editor plugin.'=>'El editor de bloques requiere JavaScript. Activa JavaScript en los ajustes de tu navegador o activa el plugin Editor clásico.','Add New Site'=>'Añadir nuevo sitio','Rotate 180°'=>'Girar 180°','Rotate 90° right'=>'Rotar 90° a la derecha','Rotate 90° left'=>'Rotar 90° a la izquierda','%s pattern moved to the Trash.'=>'%s patrón movido a la papelera.' . "\0" . '%s patrones movidos a la papelera.','%s pattern permanently deleted.'=>'%s patrón borrado permanentemente.' . "\0" . '%s patrones borrados permanentemente.','%s pattern updated.'=>'%s patrón actualizado.' . "\0" . '%s patrones actualizados.','When using Bulk Edit, you can change the metadata (categories, author, etc.) for all selected posts at once. To remove a post from the grouping, just click the %sremove button next to its name in the Bulk Edit area that appears.'=>'Al utilizar la edición en lote, puedes cambiar los metadatos (categorías, autor, etc.) de todas las entradas seleccionadas a la vez. Para eliminar una entrada de la agrupación, sólo tienes que hacer clic en el botón %seliminar situado a continuación de su nombre en el área de edición en lote que aparece.','Read the WordPress %s Release Notes for information on installation, enhancements, fixed issues, release contributors, learning resources, and the list of file changes.'=>'Lee las notas de la versión de WordPress %s para obtener información sobre la instalación, las mejoras, los problemas corregidos, los colaboradores de la versión, los recursos de aprendizaje y la lista de cambios en los archivos.','Explore the WordPress %s Field Guide. Learn about the changes in this release with detailed developer notes to help you build with WordPress.'=>'Explora la Guía de campo de WordPress %s. Infórmate sobre los cambios en esta versión con notas detalladas para desarrolladores que te ayudarán a construir con WordPress.','Invalid URL format.'=>'Formato de URL no válido.','The PHP version on your server is %1$s, however the new plugin version requires %2$s.'=>'La versión de PHP en tu servidor es la %1$s, sin embargo la nueva versión del plugin requiere la %2$s.','Your WordPress version is %1$s, however the new plugin version requires %2$s.'=>'Tu versión de WordPress es la %1$s, sin embargo la nueva versión del plugin requiere la %2$s.','https://make.wordpress.org/contribute/'=>'https://make.wordpress.org/contribute/','Updates may take several minutes to complete. If there is no feedback after 5 minutes, or if there are errors please refer to the Help section above.'=>'Las actualizaciones pueden tardar varios minutos en completarse. Si transcurridos 5 minutos no se ha recibido ninguna respuesta, o si se han producido errores, consulta la sección de Ayuda superior.','Restore Plugin or Theme'=>'Restaurar plugin o tema','On systems with fewer resources, this may lead to server timeouts or resource limits being reached. If you encounter an issue during the update process, please create a support forum topic and reference Rollback in the issue title.'=>'En los sistemas con menos recursos, esto puede provocar que se agote el tiempo de espera del servidor o que se alcancen los límites de recursos. Si tienes algún problema durante el proceso de actualización, crea un tema en el foro de soporte y haz referencia a Rollback en el título del problema.','This feature will create a temporary backup of a plugin or theme before it is upgraded. This backup is used to restore the plugin or theme back to its previous state if there is an error during the update process.'=>'Esta característica creará una copia de seguridad temporal de un plugin o tema antes de actualizarlo. Esta copia de seguridad se utiliza para restaurar el plugin o tema a su estado anterior si se produce un error durante el proceso de actualización.','The site editor requires JavaScript. Please enable JavaScript in your browser settings.'=>'El editor del sitio requiere JavaScript. Por favor, activa JavaScript en los ajustes de tu navegador.','https://wordpress.org/documentation/article/customize-permalinks/'=>'https://wordpress.org/documentation/article/customize-permalinks/','In a few words, explain what this site is about. Example: “%s.”'=>'En pocas palabras, explica de qué trata este sitio. Ejemplo: «%s»','Note: Discouraging search engines does not block access to your site — it is up to search engines to honor your request.'=>'Nota: Desaconsejar a los motores de búsqueda no bloquea el acceso a tu sitio — depende de los motores de búsqueda atender tu petición.','New custom field name'=>'Nuevo nombre de campo personalizado','Search Media:'=>'Buscar medios:','Clear Crop'=>'Quitar recorte','Apply Crop'=>'Aplicar recorte','vertical start position'=>'posición de inicio vertical','horizontal start position'=>'posición de inicio horizontal','Starting Coordinates:'=>'Coordenadas de inicio:','Crop Image'=>'Recortar imagen','Images cannot be scaled to a size larger than the original.'=>'Las imágenes no pueden escalarse a un tamaño mayor que el original.','Save Edits'=>'Guardar los cambios','Cancel Editing'=>'Cancelar la edición','Could not create the destination directory.'=>'No se ha podido crear el directorio de destino.','Table ordered by E-mail.'=>'Tabla ordenada por correo electrónico.','Table ordered by Username.'=>'Tabla ordenada por nombre de usuario.','Could not delete the temporary backup directory for %s.'=>'No se ha podido borrar el directorio temporal de copia de seguridad de %s.','Could not restore the original version of %s.'=>'No se ha podido restaurar la versión original de %s.','Could not move the old version to the %s directory.'=>'No se ha podido mover la versión antigua al directorio %s.','Could not create the %s directory.'=>'No se ha podido crear el directorio %s.','Table ordered by Links.'=>'Tabla ordenada por enlaces.','Table ordered by Posts Count.'=>'Tabla ordenada por recuento de entradas.','Table ordered by Slug.'=>'Tabla ordenada por slug.','Table ordered by Description.'=>'Tabla ordenada por descripción.','Table ordered hierarchically.'=>'Tabla ordenada jerárquicamente.','Available disk space'=>'Espacio en disco disponible','Plugin and theme temporary backup directory access'=>'Acceso al directorio de copia de seguridad temporal de plugins y temas','The %1$s directory does not exist, and the server does not have write permissions in %2$s to create it. This directory is used for plugin and theme updates. Please make sure the server has write permissions in %2$s.'=>'El directorio %1$s no existe, y el servidor no tiene permisos de escritura en %2$s para crearlo. Este directorio se utiliza para las actualizaciones de plugins y temas. Por favor, asegúrate de que el servidor tenga permisos de escritura en %2$s.','The upgrade directory cannot be created'=>'No se puede crear el directorio de actualización','The %s directory exists but is not writable. This directory is used for plugin and theme updates. Please make sure the server has write permissions to this directory.'=>'El directorio %s existe pero no tiene permisos de escritura. Este directorio se utiliza para las actualizaciones de plugins y temas. Por favor, asegúrate de que el servidor tenga permisos de escritura en este directorio.','The upgrade directory exists but is not writable'=>'El directorio de actualización existe pero no tiene permisos de escritura','The %s directory exists but is not writable. This directory is used to improve the stability of plugin and theme updates. Please make sure the server has write permissions to this directory.'=>'El directorio %s existe pero no tiene permisos de escritura. Este directorio se utiliza para mejorar la estabilidad de las actualizaciones de plugins y temas. Por favor, asegúrate de que el servidor tenga permisos de escritura en este directorio.','The temporary backup directory exists but is not writable'=>'El directorio temporal de copia de seguridad existe pero no tiene permisos de escritura','The %s directory exists but is not writable. This directory is used to improve the stability of theme updates. Please make sure the server has write permissions to this directory.'=>'El directorio %s existe pero no tiene permisos de escritura. Este directorio se utiliza para mejorar la estabilidad de las actualizaciones y temas. Por favor, asegúrate de que el servidor tenga permisos de escritura en este directorio.','Theme temporary backup directory exists but is not writable'=>'El directorio temporal de copia de seguridad de temas existe pero no tiene permisos de escritura','The %s directory exists but is not writable. This directory is used to improve the stability of plugin updates. Please make sure the server has write permissions to this directory.'=>'El directorio %s existe pero no tiene permisos de escritura. Este directorio se utiliza para mejorar la estabilidad de las actualizaciones de plugins. Por favor, asegúrate de que el servidor tenga permisos de escritura en este directorio.','Plugin temporary backup directory exists but is not writable'=>'El directorio temporal de copia de seguridad de plugins existe pero no tiene permisos de escritura','The %1$s and %2$s directories exist but are not writable. These directories are used to improve the stability of plugin updates. Please make sure the server has write permissions to these directories.'=>'Los directorios %1$s y %2$s existen pero no tienen permisos de escritura. Estos directorios se utilizan para mejorar la estabilidad en las actualizaciones de plugins. Por favor, asegúrate de que el servidor tenga permisos de escritura en estos directorios.','Plugin and theme temporary backup directories exist but are not writable'=>'Los directorios de copia de seguridad temporal de plugins y temas existen pero no tienen permisos de escritura','The %s directory cannot be located.'=>'No se pudo localizar el directorio %s.','The %s directory used to improve the stability of plugin and theme updates is writable.'=>'El directorio %s utilizado para mejorar la estabilidad en las actualizaciones de plugins y temas tiene permisos de escritura.','Plugin and theme temporary backup directory is writable'=>'El directorio de copia de seguridad temporal de plugins y temas tiene permisos de escritura.','Could not determine available disk space for updates.'=>'No se pudo determinar el espacio disponible en disco para las actualizaciones.','Available disk space is critically low, less than %s available. Proceed with caution, updates may fail.'=>'El espacio disponible en disco es críticamente bajo, hay menos de %s disponibles. Procede con precaución, las actualizaciones podrían fallar.','Available disk space is low, less than %s available.'=>'El espacio disponible en disco es bajo, hay menos de %s disponibles.','%s available disk space was detected, update routines can be performed safely.'=>'Se ha detectado un espacio disponible en disco de %s, las rutinas de actualización se pueden realizar con seguridad.','Disk space available to safely perform updates'=>'Espacio disponible en disco para realizar actualizaciones con seguridad','Table ordered by Hierarchical Menu Order and Title.'=>'Tabla ordenada jerárquicamente por orden y y título del menú.','Table ordered by Title.'=>'Tabla ordenada por título.','Table ordered by Date.'=>'Tabla ordenada por fecha.','Table ordered by Comments.'=>'Tabla ordenada por comentarios.','Table ordered by Uploaded To.'=>'Tabla ordenada por subido a.','Table ordered by Author.'=>'Tabla ordenada por autor.','Table ordered by File Name.'=>'Tabla ordenada por nombre de archivo.','Descending.'=>'Descendente.','Ascending.'=>'Ascendente.','Sort descending.'=>'Orden descendente.','Sort ascending.'=>'Orden ascendente.','Table ordered by Rating.'=>'Tabla ordenada por valoración.','Table ordered by Visibility.'=>'Tabla ordenada por visibilidad.','Table ordered by URL.'=>'Tabla ordenada por URL.','Table ordered by Name.'=>'Tabla ordenada por nombre.','Current Server time'=>'Hora actual del servidor','Current UTC time'=>'Hora actual UTC','Current time'=>'Hora actual','Ordered by Comment Date, descending.'=>'Ordenado descendente por fecha de comentario.','Table ordered by Post Replied To.'=>'Tabla ordenada por a qué entrada se respondió.','Table ordered by Comment Author.'=>'Tabla ordenada por por comentario del autor.','Attempting to restore the previous version.'=>'Tratando de restaurar la versión anterior.','More details.'=>'Más detalles.','Find your team →'=>'Encuentra tu equipo →','Finding the area that aligns with your skills and interests is the first step toward meaningful contribution. With more than 20 Make WordPress teams working on different parts of the open source WordPress project, there’s a place for everyone, no matter what your skill set is.'=>'Encontrar el área que se alinee con tus habilidades e intereses es el primer paso para una contribución significativa. Con más de 20 equipos de Make WordPress trabajando en distintas partes del proyecto WordPress de código abierto, hay un lugar para todos, no importa cuál sea tu habilidad.','Shape the future of the web with WordPress'=>'Da forma al futuro de la web con WordPress','WordPress app: Kotlin, Java, Swift, Objective-C, Vue, Python, and TypeScript.'=>'Aplicación WordPress: Kotlin, Java, Swift, Objective-C, Vue, Python y TypeScript','WordPress Core and Block Editor: HTML, CSS, PHP, SQL, JavaScript, and React.'=>'Núcleo y editor de bloques: HTML, CSS, PHP, SQL, JavaScript y React','WordPress embraces new technologies, while being committed to backward compatibility. The WordPress project uses the following languages and libraries:'=>'WordPress adopta nuevas tecnologías, al tiempo que se compromete con la compatibilidad con versiones anteriores. El proyecto WordPress utiliza los siguientes lenguajes y bibliotecas:','Contribute to the code, improve the UX, and test the WordPress app.'=>'Contribuye al código, mejora la experiencia de los usuarios, y prueba la aplicación WordPress.','Write and submit patches to fix bugs or help build new features.'=>'Escribe y envía parches para corregir fallos, o ayuda a crear nuevas características.','Test new releases and proposed features for the Block Editor.'=>'Prueba las nuevas versiones y características propuestas para el editor de bloques.','Find and report bugs in the WordPress core software.'=>'Encuentra e informa de fallos en el software del núcleo de WordPress.','If you do code, or want to learn how, you can contribute technically in numerous ways:'=>'Si programas, o quieres aprender a hacerlo, puedes contribuir técnicamente de múltiples maneras:','Code-based contribution'=>'Contribución basada en código','Explore ways to reduce the environmental impact of websites.'=>'Ve formas de reducir el impacto medioambiental de millones de webs.','Edit videos and add captions to WordPress.tv.'=>'Edita vídeos y añade subtítulos a WordPress.tv.','Lend your creative imagination to the WordPress UI design.'=>'Presta tu creatividad al diseño de la interfaz de WordPress.','Organize or participate in local Meetups and WordCamps.'=>'Organiza o participa en meetups locales de WordPress y WordCamps.','Curate submissions or take photos for the Photo Directory.'=>'Selecciona envíos o haz fotos para el directorio de fotos de WordPress.','Promote the WordPress project to your community.'=>'Promociona el proyecto WordPress en tu comunidad.','Create and improve WordPress educational materials.'=>'Crea y mejora materiales educacionales sobre WordPress.','Translate WordPress into your local language.'=>'Traduce WordPress a tu idioma local.','Write or improve documentation for WordPress.'=>'Escribe o mejora la documentación de WordPress.','Share your knowledge in the WordPress support forums.'=>'Comparte tu conocimiento en los foros de soporte de WordPress.','WordPress may thrive on technical contributions, but you don’t have to code to contribute. Here are some of the ways you can make an impact without writing a single line of code:'=>'WordPress se nutre de contribuciones técnicas, pero no es necesario programar para contribuir. Estas son algunas de las formas en las que puedes influir sin escribir una sola línea de código:','No-code contribution'=>'Contribuciones sin código','Grow your network and make friends.'=>'Amplía tu red de contactos y haz amigos.','Apply your skills or learn new ones.'=>'Aplica tus habilidades o aprende otras nuevas.','Be part of a global open source community.'=>'Forma parte de una comunidad global de código abierto.','Join the diverse WordPress contributor community and connect with other people who are passionate about maintaining a free and open web.'=>'Únete a la comunidad de colaboradores de WordPress y conéctate con otras personas apasionadas por mantener una web libre y abierta.','Do you use WordPress for work, for personal projects, or even just for fun? You can help shape the long-term success of the open source project that powers millions of websites around the world.'=>'¿Utilizas WordPress para trabajar, para proyectos personales o simplemente por diversión? Puedes contribuir al éxito a largo plazo del proyecto de código abierto que mueve millones de webs en todo el mundo.','Be the future of WordPress'=>'Sé parte del futuro de WordPress','Learn WordPress is a free resource for new and experienced WordPress users. Learn is stocked with how-to videos on using various features in WordPress, interactive workshops for exploring topics in-depth, and lesson plans for diving deep into specific areas of WordPress.'=>'Aprende WordPress es un recurso gratuito para usuarios nuevos y experimentados de WordPress. Está repleto de vídeos sobre cómo utilizar las distintas características de WordPress, eventos interactivos para explorar temáticas en profundidad, y planes de lecciones para sumergirse en áreas específicas de WordPress.','Support forums'=>'Foros de soporte','Documentation on Widgets'=>'Documentación sobre widgets','View takes you to a public author archive which lists all the posts published by the user.'=>'Ver te lleva aun archivo público del autor que muestra todas las entradas publicadas por el usuario.','Download file downloads the original media file to your device.'=>'Descargar archivo descarga el archivo de medios original a tu dispositivo.','site editor title tagEditor'=>'Editor','Documentation on Auto-updates'=>'Documentación sobre actualizaciones automáticas','Documentation on date and time formatting.'=>'Documentación sobre el formato de fecha y hora.','You can set the language, and WordPress will automatically download and install the translation files (available if your filesystem is writable).'=>'Puedes configurar el idioma y WordPress descargará e instalará automáticamente los archivos de traducción (disponible si tu sistema de archivos tiene permisos de escritura).','If you want site visitors to be able to register themselves, check the membership box. If you want the site administrator to register every new user, leave the box unchecked. In either case, you can set a default user role for all new users.'=>'Si quieres que los visitantes del sitio puedan registrarse ellos mismos, marca la casilla de membresía. Si quieres que el administrador del sitio registre cada usuario nuevo, déjala desmarcada. En cualquier caso, puedes poner un perfil de usuario por defecto para todos los usuarios nuevos.','Both WordPress URL and site URL can start with either %1$s or %2$s. A URL starting with %2$s requires an SSL certificate, so be sure that you have one before changing to %2$s. With %2$s, a padlock will appear next to the address in the browser address bar. Both %2$s and the padlock signal that your site meets some basic security requirements, which can build trust with your visitors and with search engines.'=>'Tanto la URL de WordPress como la URL del sitio pueden empezar con %1$s o %2$s. Una URL que empiece con %2$s requiere un certificado SSL, así que asegúrate de tener uno antes de cambiar a %2$s. Con %2$s aparecerá un candado junto a la dirección en la barra de direcciones del navegador. Tanto el %2$s como el candado señalan que tu sitio reúne algunos requisitos básicos de seguridad, que pueden generar confianza en tus visitantes y en los motores de búsqueda.','Though the terms refer to two different concepts, in practice, they can be the same address or different. For example, you can have the core WordPress installation files in the root directory (https://example.com), in which case the two URLs would be the same. Or the WordPress files can be in a subdirectory (https://example.com/wordpress). In that case, the WordPress URL and the site URL would be different.'=>'Aunque los términos se refieren a distintos conceptos, en la práctica pueden ser la misma dirección o distintas. Por ejemplo, puedes tener los archivos de instalación del núcleo de WordPress en el directorio raíz (https://example.com), en cuyo caso las dos URLs serían las mismas. O los archivos de WordPress pueden estar en un subdirectorio (https://example.com/wordpress). En ese caso la URL de WordPress y la URL del sitio serían distintas.','Two terms you will want to know are the WordPress URL and the site URL. The WordPress URL is where the core WordPress installation files are, and the site URL is the address a visitor uses in the browser to go to your site.'=>'Dos términos que querrás conocer son los de URL de WordPress y URL del sitio. La URL de WordPress es dónde está los archivos de instalación del núcleo de WordPress, y la URL del sitio es la dirección que un visitante utiliza en el navegador para ir a tu sitio.','RoboHash (Generated)'=>'RoboHash (generado)','site editor menu itemEditor'=>'Editor','Allow trackbacks and pingbacks'=>'Permitir trackbacks y pingbacks','https://wordpress.org/documentation/article/assign-custom-fields/'=>'https://wordpress.org/documentation/article/assign-custom-fields/','https://wordpress.org/documentation/article/what-is-an-excerpt-classic-editor/'=>'https://wordpress.org/documentation/article/what-is-an-excerpt-classic-editor/','%s expects a non-empty string.'=>'%s espera una cadena no vacía.','The destination directory already exists and could not be removed.'=>'El directorio de destino ya existe y no se pudo eliminar.','The destination folder already exists.'=>'La carpeta de destino ya existe.','The source and destination are the same.'=>'El origen y el destino son los mismos.','Expand or collapse the elements by clicking on their headings, and arrange them by dragging their headings or by clicking on the up and down arrows.'=>'Expande o cierra los elementos haciendo clic en sus encabezados, y ordénalos arrastrando sus encabezados o haciendo clic en las flechas de arriba y abajo.','Download “%s”'=>'Descargar «%s»','The "%s" argument must be a non-empty string.'=>'El argumento «%s» es una cadena que no debe estar vacía.','Documentation on Writing and Editing Posts'=>'Documentación sobre escribir y editar entradas','Documentation on Keyboard Shortcuts'=>'Documentación sobre los atajos de teclado','Documentation on Comment Spam'=>'Documentación sobre el spam en comentarios','Documentation on Customizer'=>'Documentación sobre el personalizador','https://wordpress.org/download/'=>'https://es.wordpress.org/download/','This is the final release of WordPress %s'=>'Esta es la versión final de WordPress %s','Site Editor'=>'Editor del sitio','Send password reset sends the user an email with a link to set a new password.'=>'El envío de restablecimiento de contraseña envía al usuario un correo electrónico con un enlace desde el que establecer una nueva contraseña.','https://developer.wordpress.org/apis/wp-config-php/#wp-environment-type'=>'https://developer.wordpress.org/apis/wp-config-php/#wp-environment-type','Copy URL copies the URL for the media file to your clipboard.'=>'Copiar la URL copia la URL del archivo de medios a tu portapapeles.','View will take you to a public display page for that file.'=>'La opción de ver te llevará a una página de visualización pública de ese archivo.','Delete Permanently will delete the file from the media library (as well as from any posts to which it is currently attached).'=>'Al borrar permanentemente se borrará el archivo de la biblioteca de medios (así como de cualquier entrada a la que esté adjunto).','Edit takes you to a simple screen to edit that individual file’s metadata. You can also reach that screen by clicking on the media file name or thumbnail.'=>'La opción de editar te lleva a una sencilla pantalla en la que editar los metadatos de ese archivo individual. También puedes llegar a esa pantalla haciendo clic en el nombre o miniatura del archivo de medios.','Hovering over a row reveals action links that allow you to manage media items. You can perform the following actions:'=>'Al pasar el cursor por encima de una fila, aparecen enlaces de acción que permiten gestionar los elementos de medios. Puedes realizar las siguientes acciones:','themesBlock Themes'=>'Temas de bloques','Documentation on Block Themes'=>'Documentación sobre temas de bloques','Block themes'=>'Temas de bloques','With a block theme, you can place and edit blocks without affecting your content by customizing or creating new templates.'=>'Con un tema de bloques, puedes colocar y editar bloques sin afectar al contenido, personalizando o creando nuevas plantillas.','A block theme is a theme that uses blocks for all parts of a site including navigation menus, header, content, and site footer. These themes are built for the features that allow you to edit and customize all parts of your site.'=>'Un tema de bloques es un tema que utiliza bloques para todas las partes de un sitio, incluyendo los menús de navegación, la cabecera, el contenido y el pie de página del sitio. Estos temas están creados para aprovechar las características que te permiten editar y personalizar todas las partes del sitio.','Recommended items are considered beneficial to your site, although not as important to prioritize as a critical issue. They may include improvements in areas such as security, performance, and user experience.'=>'Los elementos recomendados se consideran beneficiosos para tu sitio, aunque no son tan importantes como para darles prioridad como si fueran un problema crítico. Pueden incluir mejoras de seguridad, rendimiento y experiencia de usuario.','Critical issues are items that may have a high impact on your site’s performance or security. Resolving these issues should be prioritized.'=>'Los problemas críticos son elementos que podrían tener un gran impacto en el rendimiento o seguridad de tu sitio. Debería ser prioritario solucionar estos problemas.','Configuration rules for %s:'=>'Reglas de configuración para %s:','Customize permalink structure by selecting available tags'=>'Personaliza la estructura de enlaces permanentes seleccionando las etiquetas disponibles','Select the permalink structure for your website. Including the %s tag makes links easy to understand, and can help your posts rank higher in search engines.'=>'Elige la estructura de enlaces permanentes de tu web. Incluir la etiqueta %s hace que los enlaces sean más fáciles de comprender, y puede ayudar a que tus entradas posicionen mejor en los motores de búsqueda.','%s removed from permalink structure'=>'%s eliminada de la estructura de enlaces permanentes','Site Health %s'=>'Salud del sitio %s','Theme Styles & Block Settings'=>'Ajustes de bloques y estilos del tema','The minimum recommended version of PHP is %s.'=>'La versión mínima recomendada de PHP es la %s.','PHP is one of the programming languages used to build WordPress. Newer versions of PHP receive regular security updates and may increase your site’s performance.'=>'PHP es uno de los lenguajes de programación utilizados para crear WordPress. Las versiones más recientes de PHP reciben actualizaciones de seguridad frecuentes y pueden mejorar el rendimiento de tu sitio.','Your site is running on an outdated version of PHP (%s), which soon will not be supported by WordPress. Ensure that PHP is updated on your server as soon as possible. Otherwise you will not be able to upgrade WordPress.'=>'Tu sitio está ejecutando una versión obsoleta de PHP (%s), que pronto no será admitida por WordPress. Asegúrate de que PHP esté actualizado en tu servidor tan pronto como sea posible. En caso contrario no podrás actualizar WordPress.','Your site is running on an outdated version of PHP (%s), which does not receive security updates and soon will not be supported by WordPress. Ensure that PHP is updated on your server as soon as possible. Otherwise you will not be able to upgrade WordPress.'=>'Tu sitio está ejecutando una versión obsoleta de PHP (%s), que no recibirá actualizaciones de seguridad y pronto no será admitida por WordPress. Asegúrate de que PHP esté actualizado en tu servidor tan pronto como sea posible. En caso contrario no podrás actualizar WordPress.','Persistent object cache'=>'Caché de objetos persistente','Page cache'=>'Caché de página','You should use a persistent object cache'=>'Deberías utilizar una caché de objetos persistente','Your host appears to support the following object caching services: %s.'=>'Tu alojamiento parece que es compatible con los siguientes servicios de caché de objetos: %s.','Your hosting provider can tell you if a persistent object cache can be enabled on your site.'=>'Tu proveedor de alojamiento puede decirte si la caché de objetos persistente puede activarse en tu sitio.','A persistent object cache is not required'=>'No es necesaria una caché de objetos persistente','Learn more about persistent object caching.'=>'Aprende más acerca de la caché de objetos persistente.','A persistent object cache makes your site’s database more efficient, resulting in faster load times because WordPress can retrieve your site’s content and settings much more quickly.'=>'Una caché de objetos persistente hace que la base de datos de tu sitio sea más eficiente, lo que da como resultado tiempos de carga más rápidos porque WordPress puede recuperar el contenido y los ajustes de tu sitio mucho más rápidamente.','A persistent object cache is being used'=>'Se está utilizando una caché de objetos persistente','A page cache plugin was not detected.'=>'No se ha detectado un plugin de caché de página.','A page cache plugin was detected.'=>'Se ha detectado un plugin de caché de página.','There was %d client caching response header detected:'=>'Se ha detectado %d cabecera de respuesta en caché del cliente:' . "\0" . 'Se han detectado %d cabeceras de respuesta en caché del cliente:','No client caching response headers were detected.'=>'No se han detectado cabeceras de respuesta de la caché del cliente.','Median server response time was %1$s milliseconds. It should be less than the recommended %2$s milliseconds threshold.'=>'El tiempo medio de respuesta del servidor fue de %1$s milisegundos. Debería ser inferior al umbral recomendado de %2$s milisegundos.','Median server response time was %1$s milliseconds. This is less than the recommended %2$s milliseconds threshold.'=>'El tiempo medio de respuesta del servidor fue de %1$s milisegundos. Esto es menos que el umbral recomendado de %2$s milisegundos.','Server response time could not be determined. Verify that loopback requests are working.'=>'No se ha podido determinar el tiempo de respuesta del servidor. Comprueba que las solicitudes de bucle de retorno funcionan.','Page cache is detected but the server response time is still slow'=>'Se ha detectado caché de página pero el tiempo de respuesta del servidor es todavía lento','Page cache is not detected and the server response time is slow'=>'No se ha detectado caché de página y el tiempo de respuesta del servidor es lento','Page cache is detected and the server response time is good'=>'Se ha detectado caché de página y el tiempo de respuesta del servidor es bueno','Page cache is not detected but the server response time is OK'=>'No se ha detectado caché de página pero el tiempo de respuesta del servidor está bien','Unable to detect page cache due to possible loopback request problem. Please verify that the loopback request test is passing. Error: %1$s (Code: %2$s)'=>'No se puede detectar el almacenamiento en caché de página debido a un posible problema de solicitud de bucle de retorno. Por favor, verifica que la prueba de solicitud de bucle de retorno es correcta. Error: %1$s (Código: %2$s)','Unable to detect the presence of page cache'=>'No se puede detectar la presencia de la caché de página','Learn more about page cache'=>'Aprende más sobre la caché de página','Page cache is detected by looking for an active page cache plugin as well as making three requests to the homepage and looking for one or more of the following HTTP client caching response headers:'=>'El almacenamiento en caché de página se detecta buscando un plugin de almacenamiento en caché de la página activo, así como realizando tres peticiones a la página principal y buscando una o más de las siguientes cabeceras de respuesta de almacenamiento en caché del cliente HTTP:','Page cache enhances the speed and performance of your site by saving and serving static pages instead of calling for a page every time a user visits.'=>'El almacenamiento en caché de página mejora la velocidad y el rendimiento de tu sitio al guardar y servir páginas estáticas en lugar de llamar a una página cada vez que un usuario la visita.','If you are still seeing this warning after having tried the actions below, you may need to contact your hosting provider for further assistance.'=>'Si aún estás viendo esta advertencia después de haber probado las acciones de abajo puede que tengas que contactar con tu proveedor de alojamiento para recibir más ayuda.','The Authorization header is used by third-party applications you have approved for this site. Without this header, those apps cannot connect to your site.'=>'La cabecera de autorización la utilizan aplicaciones de terceros que has aprobado en este sitio. Sin esta cabecera esas aplicaciones no se pueden conectar con tu sitio.','When testing the REST API, an unexpected result was returned:'=>'Al probar la API REST devolvió un resultado inesperado:','REST API Response: (%1$s) %2$s'=>'Respuesta de la API REST: (%1$s) %2$s','REST API Endpoint: %s'=>'Variable de la API REST: %s','When testing the REST API, an error was encountered:'=>'Al probar la API REST se encontró un error:','Your site is running on an outdated version of PHP (%s), which does not receive security updates. It should be updated.'=>'Tu sitio está ejecutando en una versión obsoleta de PHP (%s), que no recibe actualizaciones de seguridad. Deberías actualizarla.','Your site is running on an outdated version of PHP (%s), which does not receive security updates and soon will not be supported by WordPress.'=>'Tu sitio está ejecutando una versión obsoleta de PHP (%s), que no recibirá actualizaciones de seguridad y pronto no será compatible con WordPress.','Requirements'=>'Requisitos','Your site is running on an outdated version of PHP (%s), which soon will not be supported by WordPress.'=>'Tu sitio está ejecutando una versión obsoleta de PHP (%s), que pronto no será compatible con WordPress.','Your site does not have any installed themes.'=>'Tu sitio no tiene ningún tema instalado.','Your site does not have any active plugins.'=>'Tu sitio no tiene ningún plugin activo.','Another attempt will be made with the next release.'=>'Se realizará otro intento en la siguiente versión.','The %1$s constant is defined as %2$s'=>'La constante %1$s está definida como %2$s','The %1$s argument must be a non-empty string for %2$s.'=>'El argumento %1$s debe ser una cadena que no esté vacía para %2$s.','The %s argument must be an array.'=>'El argumento %s debe ser un array.','- %1$s version %2$s%3$s'=>'- %1$s versión %2$s%3$s','- %1$s (from version %2$s to %3$s)%4$s'=>'- %1$s (desde la versión %2$s a la %3$s)%4$s','Reach out to WordPress Core developers to ensure you\'ll never have this problem again.'=>'Contacta con nuestros desarrolladores del núcleo de WordPress para asegurar que nunca vuelvas a tener este problema.','Important! Your version of WordPress (%1$s) will stop receiving security updates in the near future. To keep your site secure, please update to the latest version of WordPress.'=>'¡Importante! Tu versión de WordPress (%1$s) dejará de recibir actualizaciones en un futuro próximo. Para mantener seguro tu sitio, por favor, actualiza a la última versión de WordPress.','Important! Your version of WordPress (%1$s) is no longer supported, you will not receive any security updates for your website. To keep your site secure, please update to the latest version of WordPress.'=>'¡Importante! Tu versión de WordPress (%1$s) ya no recibe soporte, y no recibirá ninguna actualización de seguridad para tu web. Para mantener seguro tu sitio, por favor, actualiza a la última versión de WordPress.','https://make.wordpress.org/core/wordpress-%s-field-guide/'=>'https://make.wordpress.org/core/wordpress-%s-field-guide/','Learn more about WordPress %s'=>'Aprende más sobre WordPress %s','Please type your comment text.'=>'Por favor, escribe el texto de tu comentario.','You cannot remove users.'=>'No puedes eliminar usuarios.','Application passwords grant access to the %2$s site on the network as you have Super Admin rights.'=>'Las contraseñas de aplicación otorgan acceso a %2$s sitio en la red, ya que tienes permisos de superadministrador.' . "\0" . 'Las contraseñas de aplicación otorgan acceso a %2$s sitios en la red, ya que tienes permisos de superadministrador.','WordPress has been updated! Next and final step is to update your database to the newest version.'=>'¡WordPress ha sido actualizado! El siguiente, y último paso, es actualizar tu base de datos a la última versión.','Documentation on Managing Themes'=>'Documentación sobre gestión de temas','This information is being used to create a %s file.'=>'Esta información está siendo usada para crear un archivo %s.','Welcome to WordPress. Before getting started, you will need to know the following items.'=>'Te damos la bienvenida a WordPress. Antes de empezar, tendrás que conocer los siguientes elementos.','Settings save failed.'=>'Ha fallado el guardado de los ajustes.','After your Privacy Policy page is set, you should edit it.'=>'Después de establecer tu página de política de privacidad, deberías editarla.','Error: Your %1$s file is not writable, so updating it automatically was not possible. These are the mod_rewrite rules you should have in your %1$s file. Click in the field and press %3$s (or %4$s on Mac) to select all.'=>'Error: Tu archivo %1$s no tiene permisos de escritura, así que no ha sido posible actualizarlo automáticamente. Estas son las reglas de `mod_rewrite` que deberías tener en tu archivo %1$s. Haz clic en el campo y pulsa %3$s (o %4$s en Mac) para seleccionar todo.','Error: Your %1$s file is not writable, so updating it automatically was not possible. This is the URL rewrite rule you should have in your %1$s file. Click in the field and press %3$s (or %4$s on Mac) to select all. Then insert this rule inside of the %5$s element in %1$s file.'=>'Error: Tu archivo %1$s no tiene permisos de escritura, así que no ha sido posible actualizarlo automáticamente. Esta es la regla de reescritura de la URL que deberías tener en tu archivo %1$s. Haz clic en el campo y pulsa %3$s (o %4$s en Mac) para seleccionar todo. Después, inserta esta regla dentro del elemento %5$s en el archivo %1$s.','An avatar is an image that can be associated with a user across multiple websites. In this area, you can choose to display avatars of users who interact with the site.'=>'Un avatar es una imagen que puede asociarse con un usuario en múltiples webs. En esta área puedes elegir mostrar los avatares de los usuarios que interactúen con el sitio.','Change Permalink Structure'=>'Cambiar la estructura de enlaces permanentes','Howdy, + +A site administrator (###USERNAME###) recently requested to have the +administration email address changed on this site: +###SITEURL### + +To confirm this change, please click on the following link: +###ADMIN_URL### + +You can safely ignore and delete this email if you do not want to +take this action. + +This email has been sent to ###EMAIL### + +Regards, +All at ###SITENAME### +###SITEURL###'=>'Hola, + +Un administrador del sitio (###USERNAME###) ha solicitado recientemente el cambio +de la dirección de correo electrónico de administración de este sitio: +###SITEURL### + +Para confirmar este cambio, por favor, haz clic en el siguiente enlace: +###ADMIN_URL### + +Puedes ignorar y borrar con seguridad este correo electrónico si no quieres +realizar esta acción. + +Este correo electrónico ha sido enviado a ###EMAIL### + +Saludos, +El equipo de ###SITENAME### +###SITEURL###','Where your data is sent'=>'Dónde se envían tus datos','Copy “%s” URL to clipboard'=>'Copiar la URL de «%s» al portapapeles','Some data that describes the error your site encountered has been put together.'=>'Se han reunido algunos datos que describen el error que ha encontrado tu sitio.','An attempt was made, but your site could not be updated automatically.'=>'Se ha hecho un intento, pero tu sitio no se ha podido actualizar automáticamente.','The update cannot be installed because some files could not be copied. This is usually due to inconsistent file permissions.'=>'No se ha podido instalar la actualización porque algunos archivos no se ha podido copiar. Esto suele ser debido a permisos de archivo inconsistentes.','Media — A list of URLs for media files the user uploads.'=>'Medios — Una lista de URL de los archivos multimedia que sube el usuario.','Community Events Location — The IP Address of the user, which populates the Upcoming Community Events dashboard widget with relevant information.'=>'Ubicación de los eventos de la comunidad — La dirección IP del usuario que rellena con información relevante el widget de escritorio de los próximos eventos de la comunidad.','WordPress collects (but never publishes) a limited amount of data from registered users who have logged in to the site. Generally, these users are people who contribute to the site in some way -- content, store management, and so on. With rare exceptions, these users do not include occasional visitors who might have registered to comment on articles or buy products. The data WordPress retains can include:'=>'WordPress recopila (pero nunca publica) una cantidad limitada de datos de los usuarios registrados que se han conectado al sitio. Generalmente, estos usuarios son personas que contribuyen al sitio de alguna forma: contenido, gestión de la tienda, etc. Salvo raras excepciones, estos usuarios no incluyen a los visitantes ocasionales que pueden haberse registrado para comentar artículos o comprar productos. Los datos que WordPress mantiene pueden incluir:','Note: Since this tool only gathers data from WordPress and participating plugins, you may need to do more to comply with export requests. For example, you should also send the requester some of the data collected from or stored with the 3rd party services your organization uses.'=>'Nota: Dado que esta herramienta solo recopila datos de WordPress y de los plugins incluidos, puede que tengas que hacer algo más para cumplir con las solicitudes de exportación. Por ejemplo, también deberías enviar al solicitante algunos de los datos recogidos o almacenados por los servicios de terceros que usa tu organización.','Privacy Laws around the world require businesses and online services to provide an export of some of the data they collect about an individual, and to deliver that export on request. The rights those laws enshrine are sometimes called the "Right of Data Portability". It allows individuals to obtain and reuse their personal data for their own purposes across different services. It allows them to move, copy or transfer personal data easily from one IT environment to another.'=>'Las leyes de privacidad de todo el mundo obligan a los negocios y servicios online que proporcionen alguna forma de exportar algunos de los datos que recopilan sobre un individuo y que envíen esa exportación si así se solicita. Los derechos que esas leyes consagran algunas veces son denominados «Derecho a la portabilidad de datos». Este derecho permite a individuos obtener y reutilizar sus datos personales para sus propios fines en diferentes servicios. Les permite mover, copiar o transferir los datos fácilmente de un entorno de tecnología de la información a otro.','Comments — WordPress does not delete comments. The software does anonymize (but, again, never publishes) the associated Email Address, IP Address, and User Agent (Browser/OS).'=>'Comentarios — WordPress no borra los comentarios. El software anonimiza (pero, de nuevo, nunca publica) la dirección de correo electrónico, dirección IP y agente de usuario (navegador/SO) asociados.','WordPress collects (but never publishes) a limited amount of data from logged-in users but then deletes it or anonymizes it. That data can include:'=>'WordPress recopila (pero nunca publica) una cantidad limitada de datos de los usuarios conectados, pero luego los borra o los anonimiza. Estos datos pueden incluir: ','Note: As this tool only gathers data from WordPress and participating plugins, you may need to do more to comply with erasure requests. For example, you are also responsible for ensuring that data collected by or stored with the 3rd party services your organization uses gets deleted.'=>'Nota: Como esta herramienta solo recoge datos de WordPress y de los plugins incluidos, puede que tengas que hacer algo más para cumplir con las solicitudes de borrado. Por ejemplo, también eres responsable de asegurar que sean borrados los datos recopilados o almacenados por los servicios de terceros que usa tu organización.','Privacy Laws around the world require businesses and online services to delete, anonymize, or forget the data they collect about an individual. The rights those laws enshrine are sometimes called the "Right to be Forgotten".'=>'Las leyes de privacidad de todo el mundo obligan a los negocios y servicios online a borrar, anonimizar u olvidar los datos que recopilan sobre un individuo. Los derechos que esas leyes consagran algunas veces son denominados «Derecho al olvido».','This screen is where you manage requests to erase personal data.'=>'En esta pantalla es donde gestionas las solicitudes para el borrado de datos personales.','This post is being backed up in your browser, just in case.'=>'Esta entrada se está guardando en tu navegador, por si acaso.','This will grant access to the %2$s site on the network as you have Super Admin rights.'=>'Esto otorgará acceso a %2$s sitio de la red, ya que tienes permisos de superadministrador.' . "\0" . 'Esto otorgará acceso a %2$s sitios de la red, ya que tienes permisos de superadministrador.','Learn about block themes'=>'Aprende sobre los temas de bloques','There is a new kind of WordPress theme, called a block theme, that lets you build the site you’ve always wanted — with blocks and styles.'=>'Hay un nuevo tipo de tema para WordPress, llamado tema de bloques, que te permite crear el sitio que siempre has querido — Con bloques y estilos.','Discover a new way to build your site.'=>'Descubre una nueva forma de construir tu sitio.','Edit styles'=>'Editar los estilos','Tweak your site, or give it a whole new look! Get creative — how about a new color palette or font?'=>'¡Retoca tu sitio o dale un aspecto completamente nuevo! Sé creativo — ¿Qué tal una nueva paleta de color o una nueva fuente?','Switch up your site’s look & feel with Styles'=>'Cambia la apariencia de tu sitio con los estilos','Open the Customizer'=>'Abrir el personalizador','Configure your site’s logo, header, menus, and more in the Customizer.'=>'Configura en el personalizador el logotipo de tu sitio, la cabecera, los menús y más.','Start Customizing'=>'Empezar a personalizar','Open site editor'=>'Abrir el editor del sitio','Design everything on your site — from the header down to the footer, all using blocks and patterns.'=>'Diseña todo en tu sitio — Desde la cabecera hasta el pie de página. Todo usando bloques y patrones.','Customize your entire site with block themes'=>'Personaliza todo tu sitio con temas de bloques','Add a new page'=>'Añadir una nueva página','Block patterns are pre-configured block layouts. Use them to get inspired or create new pages in a flash.'=>'Los patrones de bloques son diseños de bloques preconfigurados. Úsalos para inspirarte o crear nuevas páginas en un instante.','Author rich content with blocks and patterns'=>'Crea contenido rico con bloques y patrones','Learn more about the %s version.'=>'Aprende más sobre la versión %s.','WordPress is free and open source software'=>'WordPress es un software gratuito y de código abierto','Plugin File Editor'=>'Editor de archivos de plugins','Theme File Editor'=>'Editor de archivos de temas','If this is a development website, you can set the environment type accordingly to enable application passwords.'=>'Si se trata de un sitio web de desarrollo, puedes establecer el tipo de entorno correspondiente para activar las contraseñas de las aplicaciones.','The application password feature requires HTTPS, which is not enabled on this site.'=>'La característica de contraseña de aplicación necesita HTTPS, que no está activo en este sitio.','g:i a T'=>'H:i T','Documentation on Editing Themes'=>'Documentación sobre edición de temas','Documentation on Site Health tool'=>'Documentación sobre la herramienta de la salud del sitio','In the Info tab, you will find all the details about the configuration of your WordPress site, server, and database. There is also an export feature that allows you to copy all of the information about your site to the clipboard, to help solve problems on your site when obtaining support.'=>'En la pestaña de información, encontrarás todos los detalles sobre la configuración de tu sitio WordPress, del servidor y de la base de datos. También hay una característica de exportación que te permite copiar al portapapeles toda la información sobre tu sitio para ayudar a resolver los problemas en tu sitio al obtener soporte.','In the Status tab, you can see critical information about your WordPress configuration, along with anything else that requires your attention.'=>'En la pestaña de estado, puedes ver información crítica sobre la configuración de tu WordPress, junto con cualquier otra cosa que necesite tu atención.','This screen allows you to obtain a health diagnosis of your site, and displays an overall rating of the status of your installation.'=>'Esta pantalla te permite obtener un diagnóstico de la salud de tu sitio y muestra una valoración general del estado de tu instalación.','Documentation on Privacy Settings'=>'Documentación los ajustes de privacidad','This screen includes suggestions to help you write your own privacy policy. However, it is your responsibility to use these resources correctly, to provide the information required by your privacy policy, and to keep this information current and accurate.'=>'Esta pantalla incluye sugerencias para ayudarte a escribir tu propia política de privacidad. Sin embargo, es tu responsabilidad usar correctamente estos recursos, proporcionar la información requerida por tu política de privacidad y mantener esta información actualizada y precisa.','The Privacy screen lets you either build a new privacy-policy page or choose one you already have to show.'=>'La pantalla de privacidad te permite crear una nueva página de política de privacidad o elegir una que ya tengas para mostrarla.','Individual posts may override these settings. Changes here will only be applied to new posts.'=>'Las entradas individuales pueden anular estos ajustes. Los cambios hechos aquí solo se aplicarán a las nuevas entradas.','Menu item moved to the top'=>'Elemento del menú movido a la parte superior','Menu item removed'=>'Elemento del menú eliminado','The Dashboard is the first place you will come to every time you log into your site. It is where you will find all your WordPress tools. If you need help, just click the “Help” tab above the screen title.'=>'El escritorio es el primer lugar al que llegarás cada vez que accedas a tu sitio. Es donde encontrarás todas tus herramientas de WordPress. Si necesitas ayuda, simplemente haz clic en la pestaña «Ayuda» que está encima del título de la pantalla.','Welcome to your WordPress Dashboard!'=>'¡Este es tu escritorio de WordPress!','The application ID must be a UUID.'=>'El ID de la aplicación debe ser un UUID.','Select location'=>'Seleccionar la ubicación','Visit plugin site for %s'=>'Visita el sitio del plugin %s','pluginCannot Activate'=>'No se ha podido activar','Max connections number'=>'Número máximo de conexiones','Max allowed packet size'=>'Tamaño máximo permitido del paquete','Your website appears to use Basic Authentication, which is not currently compatible with application passwords.'=>'Parece que tu web usa la identificación básica, que actualmente no es compatible con las contraseñas de aplicación.','%1$s “%2$s”'=>'%1$s «%2$s»','Template Editing'=>'Edición de plantillas','WordPress comes with some awesome, worldview-changing rights courtesy of its license, the GPL.'=>'WordPress viene con algunos extraordinarios derechos que cambian la visión del mundo, cortesía de su licencia, la GPL.','Want to see your name in lights on this page?'=>'¿Quieres ver tu nombre destacado en esta página?','Get involved in WordPress.'=>'Involúcrate en WordPress.','WordPress is created by a worldwide team of passionate individuals.'=>'WordPress está creado por un equipo internacional de personas apasionadas.','%s plugin deactivated during WordPress upgrade.'=>'El plugin %s se ha desactivado durante la actualización de WordPress.','%1$s %2$s was deactivated due to incompatibility with WordPress %3$s.'=>'%1$s %2$s se ha desactivado porque no es compatible con WordPress %3$s.','%1$s %2$s was deactivated due to incompatibility with WordPress %3$s, please upgrade to %1$s %4$s or later.'=>'%1$s %2$s se ha desactivado porque no es compatible con WordPress %3$s. Por favor, actualiza a %1$s %4$s o superior.','The Four Freedoms'=>'Las cuatro libertades','themeDelete %s'=>'Borrar %s','themeLive Preview %s'=>'Vista previa en directo de %s','themeCustomize %s'=>'Personalizar %s','themeView Theme Details for %s'=>'Ver los detalles del tema %s','Toggle extra menu items'=>'Activar elementos adicionales del menú','Site Health - %s'=>'Salud del sitio - %s','You need to make the file %1$s writable before you can save your changes. See Changing File Permissions for more information.'=>'Tienes que añadir permisos de escritura al archivo %1$s antes de poder guardar tus cambios. Mira cómo cambiar los permisos de archivo para más información.','Rewrite rules:'=>'Reglas de reescritura:','List of menu items selected for deletion:'=>'Lista de elementos del menú seleccionados para su borrado:','Remove Selected Items'=>'Eliminar los elementos seleccionados','Bulk Select'=>'Selección por lotes','Deleted menu item: %s.'=>'Elemento del menú borrado: %s.','item %s'=>'elemento %s','Themes %s'=>'Temas %s','Unable to encode the personal data for export. Error: %s'=>'No ha sido posible cifrar los datos personales a exportar. Error: %s','The %s post meta must be an array.'=>'La meta de entrada %s debe ser un array.','Your site’s health is looking good, but there is still one thing you can do to improve its performance and security.'=>'La salud de tu sitio está bien, pero aún hay una cosa que puedes hacer para mejorar su rendimiento y seguridad.','Your site has a critical issue that should be addressed as soon as possible to improve its performance and security.'=>'Tu sitio tiene un problema crítico que debería solucionarse lo antes posible para mejorar su rendimiento y seguridad.','Learn how to browse happy'=>'Aprende cómo navegar feliz','Internet Explorer does not give you the best WordPress experience. Switch to Microsoft Edge, or another more modern browser to get the most from your site.'=>'Internet Explorer no te ofrece la mejor experiencia con WordPress. Cambia a Microsoft Edge u otro navegador más moderno para sacar el máximo partido de tu sitio.','GD supported file formats'=>'Formatos de archivo compatibles con GD','Unable to determine'=>'Imposible de determinar','ImageMagick supported file formats'=>'Formatos de archivo compatibles con ImageMagick','Imagick version'=>'Versión de Imagick','themeUploaded'=>'Subido','pluginReplace current with uploaded'=>'Reemplazar el actual con el subido','pluginUploaded'=>'Subido','pluginCurrent'=>'Actual','Please activate the Link Manager plugin to use the link manager.'=>'Por favor, activa el plugin Link Manager para usar el gestor de enlaces.','Create a new Privacy Policy page'=>'Crear una nueva página de política de privacidad','Send personal data export confirmation email.'=>'Envía el correo electrónico de confirmación de exportación de datos personales.','This tool helps site owners comply with local laws and regulations by exporting known data for a given user in a .zip file.'=>'Esta herramienta ayuda a los propietarios de los sitios a cumplir con las leyes y normativas locales exportando los datos conocidos de un determinado usuario en un archivo «.zip».','Documentation on Export Personal Data'=>'Documentación sobre la exportación de datos personales','Many plugins may collect or store personal data either in the WordPress database or remotely. Any Export Personal Data request should include data from plugins as well.'=>'Muchos plugins pueden recopilar o almacenar datos personales en la base de datos de WordPress o de forma remota. Cualquier solicitud de exportación de datos personales también debería incluir los datos de los plugins.','If you are not sure, check the plugin documentation or contact the plugin author to see if the plugin collects data and if it supports the Data Exporter tool. This information may be available in the Privacy Policy Guide.'=>'Si no estás seguro, revisa la documentación del plugin o contacta con el autor del plugin para ver si el plugin recopila datos y si es compatible con la herramienta del exportador de datos. Esta información puede estar disponible en la guía de la política de privacidad.','Comments — For user comments, Email Address, IP Address, User Agent (Browser/OS), Date/Time, Comment Content, and Content URL.'=>'Comentarios — Para comentarios de usuarios, dirección de correo electrónico, dirección IP, agente de usuario (navegador/SO), fecha/hora, contenido del comentario y URL del contenido.','This screen is where you manage requests for an export of personal data.'=>'Esta pantalla es donde gestionas las solicitudes para una exportación de datos personales.','Site URLs could not be switched to HTTPS.'=>'No se han podido cambiar a HTTPS las URL del sitio.','Site URLs switched to HTTPS.'=>'Cambiadas a HTTPS las URL del sitio.','It looks like HTTPS is not supported for your website at this point.'=>'Parece que HTTPS no es compatible con tu web en este momento.','Sorry, you are not allowed to update this site to HTTPS.'=>'Lo siento, no tienes permisos para actualizar este sitio a HTTPS.','Password reset links sent to %s user.'=>'Enlace de restablecimiento de contraseña enviado a %s usuario.' . "\0" . 'Enlaces de restablecimiento de contraseña enviados a %s usuarios.','Password reset link sent.'=>'Enviado el enlace para restablecer la contraseña.','Send %s a link to reset their password. This will not change their password, nor will it force a change.'=>'Envía a %s un enlace para restablecer su contraseña. Esto no cambiará su contraseña ni le forzará a cambiarla.','Send Reset Link'=>'Enviar el enlace para restablecer','Policies'=>'Políticas','The Privacy Settings require JavaScript.'=>'Los ajustes de privacidad necesitan JavaScript.','Privacy SettingsPolicy Guide'=>'Guía de la política','Privacy SettingsSettings'=>'Ajustes','Re-install version %s'=>'Reinstalar la versión %s','Update to latest %s nightly'=>'Actualizar a la última versión %s','Send personal data erasure confirmation email.'=>'Envía el correo electrónico de confirmación del borrado de los datos personales.','Confirmation email'=>'Correo electrónico de confirmación','This tool helps site owners comply with local laws and regulations by deleting or anonymizing known data for a given user.'=>'Esta herramienta ayuda a los propietarios de los sitios a cumplir con las leyes y normativas locales borrando o anonimizando los datos conocidos de un determinado usuario.','Documentation on Erase Personal Data'=>'Documentación sobre el borrado de datos personales','Many plugins may collect or store personal data either in the WordPress database or remotely. Any Erase Personal Data request should delete data from plugins as well.'=>'Muchos plugins pueden recopilar o almacenar datos personales en la base de datos de WordPress o de forma remota. Cualquier solicitud de borrado de datos personales también debería borrar los datos de los plugins.','Plugin Data'=>'Datos del plugin','If you are not sure, check the plugin documentation or contact the plugin author to see if the plugin collects data and if it supports the Data Eraser tool. This information may be available in the Privacy Policy Guide.'=>'Si no estás seguro, revisa la documentación del plugin o contacta con el autor del plugin para ver si el plugin recopila datos y si es compatible con la herramienta de borrado de datos. Esta información puede estar disponible en la guía de la política de privacidad.','Media — A list of URLs for all media file uploads made by the user.'=>'Medios — Una lista de URL para todas las subidas de archivos de medios realizadas por el usuario.','Session Tokens — User login information, IP Addresses, Expiration Date, User Agent (Browser/OS), and Last Login.'=>'Tokens de sesión — Información de acceso del usuario, direcciones IP, fecha de caducidad, agente de usuario (navegador/SO) y último acceso.','Community Events Location — The IP Address of the user which is used for the Upcoming Community Events shown in the dashboard widget.'=>'Ubicación de los eventos de la comunidad — La dirección IP del usuario que es usada para los próximos eventos de la comunidad mostrados en el widget del escritorio.','Profile Information — user email address, username, display name, nickname, first name, last name, description/bio, and registration date.'=>'Información del perfil — Dirección de correo electrónico del usuario, nombre de usuario, nombre a mostrar, alias, nombre, apellidos, descripción/biografía y fecha de registro.','Default Data'=>'Datos por defecto','The tool associates data stored in WordPress with a supplied email address, including profile data and comments.'=>'La herramienta asocia los datos almacenados en WordPress con una dirección de correo electrónico suministrada, incluyendo los datos del perfil y los comentarios.','https://make.wordpress.org/community/organize-event-landing-page/'=>'https://make.wordpress.org/community/organize-event-landing-page/','Want more events? Help organize the next one!'=>'¿Quieres más eventos? ¡Ayuda a organizar el próximo!','A password reset link was emailed to %s.'=>'Se ha enviado un enlace para restablecer la contraseña a %s.','Cannot send password reset, permission denied.'=>'No se ha podido enviar el restablecimiento de la contraseña. Permiso denegado.','The setting for %1$s is currently configured as 0, this could cause some problems when trying to upload files through plugin or theme features that rely on various upload methods. It is recommended to configure this setting to a fixed value, ideally matching the value of %2$s, as some upload methods read the value 0 as either unlimited, or disabled.'=>'Actualmente, el ajuste para %1$s está configurado como 0. Esto podría causar algunos problemas al intentar subir archivos a través de las características de plugins o temas que dependen de varios métodos de subida. Se recomienda configurar este ajuste a un valor fijo, idealmente que coincida con el valor de %2$s, ya que algunos métodos de subida leen el valor 0 como ilimitado o desactivado.','Talk to your web host about supporting HTTPS for your website.'=>'Habla con tu proveedor de alojamiento web sobre la compatibilidad de HTTPS para tu web.','Update your site to use HTTPS'=>'Actualiza tu sitio para usar HTTPS','However, your WordPress Address is currently controlled by a PHP constant and therefore cannot be updated. You need to edit your %1$s and remove or update the definitions of %2$s and %3$s.'=>'Sin embargo, tu dirección de WordPress está actualmente controlada por una constante de PHP y, por tanto, no puede ser actualizada. Tienes que editar tu %1$s y eliminar o actualizar las definiciones de %2$s y %3$s.','HTTPS is already supported for your website.'=>'HTTPS ya es compatible con tu web.','Your WordPress Address and Site Address are not set up to use HTTPS.'=>'Tu dirección de WordPress y la dirección del sitio no están configuradas para usar HTTPS.','You are accessing this website using HTTPS, but your WordPress Address and Site Address are not set up to use HTTPS by default.'=>'Estás accediendo a esta web usando HTTPS, pero tu dirección de WordPress y la dirección del sitio no están configuradas por defecto para usar HTTPS.','Your Site Address is not set up to use HTTPS.'=>'La dirección de tu sitio no está configurada para usar HTTPS.','Learn more about debugging in WordPress.'=>'Aprende más sobre la depuración en WordPress.','Added'=>'Añadido','Send password reset'=>'Enviar el restablecimiento de la contraseña','Contact information'=>'Información de contacto','Copy suggested policy text to clipboard'=>'Copiar en el portapapeles el texto sugerido de la política','Directory listing failed.'=>'Ha fallado el listado del directorio.','Search Results'=>'Resultados de la búsqueda','Invalid request ID when processing personal data to erase.'=>'ID de solicitud no válido al procesar los datos personales para borrar.','Invalid request ID when merging personal data to export.'=>'ID de solicitud no válido al fusionar los datos personales para exportar.','Unable to archive the personal data export file (HTML format).'=>'No se ha podido archivar el archivo de exportación de datos personales (formato HTML).','Unable to archive the personal data export file (JSON format).'=>'No se ha podido archivar el archivo de exportación de datos personales (formato JSON).','Unable to open personal data export (HTML report) for writing.'=>'No se ha podido abrir la exportación de datos personales (informe HTML) para escribir.','Unable to create personal data export folder.'=>'No se ha podido crear una carpeta de exportación de datos personales.','Request added successfully.'=>'Solicitud añadida correctamente.','Invalid personal data action.'=>'Acción de datos personales no válida.','Unable to initiate confirmation for personal data request.'=>'No se ha podido iniciar la confirmación de la solicitud de datos personales.','Your site is running on an outdated version of PHP (%s), which should be updated.'=>'Tu sitio está ejecutando una versión antigua de PHP (%s) y debería ser actualizada.','PHP Update Recommended'=>'Actualización recomendada de PHP','Your website appears to use Basic Authentication, which is not currently compatible with Application Passwords.'=>'Tu web parece que usa la identificación básica, la cual no es compatible actualmente con las contraseñas de aplicación.','https://developer.wordpress.org/rest-api/frequently-asked-questions/#why-is-authentication-not-working'=>'https://developer.wordpress.org/rest-api/frequently-asked-questions/#why-is-authentication-not-working','This site appears to be under version control. Automatic updates are disabled.'=>'Este sitio parece que está bajo control de versiones. Las actualizaciones automáticas están desactivadas.','You are using a development version of WordPress.'=>'Estás usando una versión de desarrollo de WordPress.','You can update to the latest nightly build manually:'=>'Puedes actualizar manualmente a la última versión beta:','Enable automatic updates for all new versions of WordPress.'=>'Activar las actualizaciones automáticas de todas las versiones nuevas de WordPress.','Switch to automatic updates for maintenance and security releases only.'=>'Cambiar a actualizaciones automáticas solo para versiones de mantenimiento y seguridad.','Current version: %s'=>'Versión actual: %s','This site will not receive automatic updates for new versions of WordPress.'=>'Este sitio no recibirá actualizaciones automáticas de nuevas versiones de WordPress.','This site is automatically kept up to date with maintenance and security releases of WordPress only.'=>'Este sitio se mantiene al día automáticamente solo con las versiones de mantenimiento y seguridad de WordPress.','This site is automatically kept up to date with each new version of WordPress.'=>'Este sitio se mantiene actualizado automáticamente con cada nueva versión de WordPress.','WordPress will only receive automatic security and maintenance releases from now on.'=>'A partir de ahora WordPress solo recibirá versiones automáticas de seguridad y mantenimiento.','Automatic updates for all WordPress versions have been enabled. Thank you!'=>'Se han activado las actualizaciones automáticas para todas las versiones de WordPress. ¡Gracias!','Site Health Status — Informs you of any potential issues that should be addressed to improve the performance or security of your website.'=>'Estado de la salud del sitio — Te informa de cualquier problema potencial que deba solucionarse para mejorar el rendimiento o la seguridad de tu web.','Your new password for %s is:'=>'Tu nueva contraseña para %s es:','Add Application Password'=>'Añadir nueva contraseña de aplicación','Required to create an Application Password, but not to update the user.'=>'Necesario para crear una contraseña de aplicación, pero no para actualizar al usuario.','Go to Updates'=>'Ir a las actualizaciones','← Go to Users'=>'← Ir a los usuarios','← Go to editor'=>'← Ir al editor','Go to Plugin Installer'=>'Ir al instalador de plugins','Go to Importers'=>'Ir a los importadores','Go to Theme Installer'=>'Ir al instalador de temas','Go to top'=>'Ir arriba','%s could not be located. Please try another nearby city. For example: Kansas City; Springfield; Portland.'=>'No hemos podido localizar %s. Por favor, intenta con otra ciudad cercana. Por ejemplo: Madrid; Valencia; Zaragoza.','You will be returned to the WordPress Dashboard, and no changes will be made.'=>'Serás devuelto al escritorio de WordPress y no se realizarán cambios.','No, I do not approve of this connection'=>'No, no apruebo esta conexión','You will be given a password to manually enter into the application in question.'=>'Se te dará una contraseña para introducirla manualmente en la aplicación en cuestión.','You will be sent to %s'=>'Serás enviado a %s','Yes, I approve of this connection'=>'Sí, apruebo esta conexión','This will grant access to the %2$s site in this installation that you have permissions on.'=>'Esto otorgará acceso a %2$s sitio en esta instalación en el que tienes permisos.' . "\0" . 'Esto otorgará acceso a los %2$s sitios en esta instalación en los que tienes permisos.','Would you like to give this application access to your account? You should only do this if you trust the application in question.'=>'¿Te gustaría dar acceso a tu cuenta a esta aplicación? Solo deberías hacerlo si confías en la aplicación en cuestión.','Would you like to give the application identifying itself as %s access to your account? You should only do this if you trust the application in question.'=>'¿Te gustaría dar acceso a tu cuenta a la aplicación que se identifica a si misma como %s? Solo deberías hacerlo si confías en la aplicación en cuestión.','An application would like to connect to your account.'=>'A una aplicación le gustaría conectar con tu cuenta.','Cannot Authorize Application'=>'No se puede autorizar la aplicación','The Authorize Application request is not allowed.'=>'La solicitud de autorización de aplicación no está permitida.','Authorize Application'=>'Autorizar aplicación','Be sure to save this in a safe location. You will not be able to retrieve it.'=>'Asegúrate de guardarla en un lugar seguro. No podrás recuperarla.','New Application Password Name'=>'Nombre de la nueva contraseña de la aplicación','Application passwords grant access to the %2$s site in this installation that you have permissions on.'=>'Las contraseñas de aplicación otorgan acceso a %2$s sitio en esta instalación en el que tienes permisos.' . "\0" . 'Las contraseñas de aplicación otorgan acceso a los %2$s sitios en esta instalación en los que tienes permisos.','Application passwords allow authentication via non-interactive systems, such as XML-RPC or the REST API, without providing your actual password. Application passwords can be easily revoked. They cannot be used for traditional logins to your website.'=>'Las contraseñas de aplicación permiten la identificación a través de sistemas no interactivos, como XML-RPC o la API REST, sin proporcionar tu contraseña real. Las contraseñas de aplicación pueden ser anuladas fácilmente. No se pueden usar para los accesos tradicionales a tu web.','Application Passwords'=>'Contraseñas de aplicación','Type the new password again.'=>'Escribe la nueva contraseña otra vez.','Set New Password'=>'Establecer una nueva contraseña','Type the password again.'=>'Vuelve a escribir la contraseña.','You can update from WordPress %1$s to WordPress %3$s manually:'=>'Puedes actualizar desde WordPress %1$s a WordPress %3$s manualmente:','Revoke all application passwords'=>'Anular todas las contraseñas de aplicación','Revoke "%s"'=>'Anular «%s»','Revoke'=>'Anular','Last IP'=>'Última IP','Last Used'=>'Último uso','The Site Health check for %1$s has been replaced with %2$s.'=>'La comprobación de la salud del sitio para %1$s ha sido reemplazada con %2$s.','Erase personal data'=>'Borrar los datos personales','- %1$s (from version %2$s to %3$s)'=>'- %1$s (desde la versión %2$s a la %3$s)','Current Header Video'=>'Vídeo de la cabecera actual','Authorization header'=>'Cabecera de autorización','Learn how to configure the Authorization header.'=>'Aprende cómo configurar la cabecera de autorización.','Flush permalinks'=>'Purgar los enlaces permanentes ','The authorization header is invalid'=>'La cabecera de autorización no es válida','The authorization header is missing'=>'Falta la cabecera de autorización','The Authorization header is working as expected'=>'La cabecera de autorización funciona como se esperaba','Some screen elements can be shown or hidden by using the checkboxes.'=>'Algunos elementos de la pantalla se pueden mostrar u ocultar usando las casillas de verificación.','Screen elements'=>'Elementos de la pantalla','The URL must be served over a secure connection.'=>'La URL debe servirse a través de una conexión segura.','If you request a password reset, your IP address will be included in the reset email.'=>'Si solicitas un restablecimiento de contraseña, tu dirección IP será incluida en el correo electrónico de restablecimiento.','No plugins found for: %s.'=>'No se han encontrado plugins para: %s.','Complete request'=>'Solicitud completa','Mark export request for “%s” as completed.'=>'Marcar como completada la solicitud de exportación para «%s».','%d request deleted successfully.'=>'%d solicitud borrada correctamente.' . "\0" . '%d solicitudes borradas correctamente.','%d request failed to delete.'=>'Ha fallado el borrado de %d solicitud.' . "\0" . 'Ha fallado el borrado de %d solicitudes.','%d request marked as complete.'=>'%d solicitud marcada como completa.' . "\0" . '%d solicitudes marcadas como completas.','%d confirmation request re-sent successfully.'=>'%d solicitud de confirmación reenviada correctamente.' . "\0" . '%d solicitudes de confirmación reenviadas correctamente.','%d confirmation request failed to resend.'=>'Ha fallado el reenvío de %d solicitud de confirmación.' . "\0" . 'Ha fallado el reenvío de %d solicitudes de confirmación.','Mark requests as completed'=>'Marcar las solicitudes como completas','Next steps'=>'Siguientes pasos','Unable to open personal data export file (archive) for writing.'=>'No se ha podido abrir el archivo de exportación de datos personales del usuario (archivo) para su escritura.','Unable to open personal data export file (JSON report) for writing.'=>'No se ha podido abrir el archivo de exportación de datos personales del usuario (informe JSON) para su escritura.','Unable to protect personal data export folder from browsing.'=>'No se ha podido proteger de la exploración la carpeta de exportación de los datos personales.','Invalid email address when generating personal data export file.'=>'Dirección de correo electrónico no válida al generar el archivo de exportación de datos personales.','Invalid request ID when generating personal data export file.'=>'ID de solicitud no válido al generar el archivo de exportación de datos personales.','Unable to generate personal data export file. ZipArchive not available.'=>'No se ha podido generar el archivo de datos personales. El archivo ZIP no está disponible.','Search results for: %s'=>'Resultados de búsqueda para: %s','Note that even when set to discourage search engines, your site is still visible on the web and not all search engines adhere to this directive.'=>'Ten en cuenta que, incluso cuando está establecido que se disuada a los motores de búsqueda, tu sitio sigue siendo visible en la web y no todos los motores de búsqueda se adhieren a esta directiva.','You can choose whether or not your site will be crawled by robots, ping services, and spiders. If you want those services to ignore your site, click the checkbox next to “Discourage search engines from indexing this site” and click the Save Changes button at the bottom of the screen.'=>'Puedes elegir si tu sitio será rastreado o no por robots, servicios de ping y arañas. Si quieres que esos servicios ignoren tu sitio, marca la casilla de verificación junto a «Pedir a los motores de búsqueda que no indexen este sitio» y haz clic en el botón «Guardar cambios» en la parte inferior de la pantalla.','The "%1$s" value is smaller than "%2$s"'=>'El valor de «%1$s» es menor que el de «%2$s»','Environment type'=>'Tipo de entorno','Auto-updates are only available for plugins recognized by WordPress.org, or that include a compatible update system.'=>'Las actualizaciones automáticas solo están disponibles para los plugins reconocidos por WordPress.org o que incluyan un sistema de actualización compatible.','Update Incompatible'=>'Actualización incompatible','This update does not work with your version of WordPress.'=>'Esta actualización no funciona con tu versión de WordPress.','This update does not work with your versions of WordPress and PHP.'=>'Esta actualización no funciona con tus versiones de WordPress y PHP.','Disallowed Comment Keys'=>'Palabras rechazadas en comentarios','Plugin and theme auto-updates'=>'Actualizaciones automáticas de plugins y temas','There appear to be no issues with plugin and theme auto-updates.'=>'Parece que no hay problemas con las actualizaciones automáticas de plugins y temas.','Auto-updates for themes appear to be disabled. This will prevent your site from receiving new versions automatically when available.'=>'Las actualizaciones automáticas de temas parecen estar desactivadas. Esto evitará que tu sitio reciba nuevas versiones automáticamente cuando estén disponibles.','Auto-updates for plugins appear to be disabled. This will prevent your site from receiving new versions automatically when available.'=>'Las actualizaciones automáticas de plugins parecen estar desactivadas. Esto evitará que tu sitio reciba nuevas versiones automáticamente cuando estén disponibles.','Auto-updates for plugins and themes appear to be disabled. This will prevent your site from receiving new versions automatically when available.'=>'Las actualizaciones automáticas de plugins y temas parecen estar desactivadas. Esto evitará que tu sitio reciba nuevas versiones automáticamente cuando estén disponibles.','Auto-updates for plugins and/or themes appear to be disabled, but settings are still set to be displayed. This could cause auto-updates to not work as expected.'=>'Las actualizaciones automáticas de plugins y/o de temas parecen estar desactivadas, pero en los ajustes aún están configuradas para mostrarse. Esto podría hacer que las actualizaciones automáticas no funcionen como se esperaba.','Your site may have problems auto-updating plugins and themes'=>'Tu sitio puede tener problemas para actualizar automáticamente los plugins y temas','Plugin and theme auto-updates ensure that the latest versions are always installed.'=>'Las actualizaciones automáticas de plugins y temas aseguran que las últimas versiones estén siempre instaladas.','Plugin and theme auto-updates appear to be configured correctly'=>'Las actualizaciones automáticas de plugins y temas parecen estar configuradas correctamente','themeActivate “%s”'=>'Activar «%s»','Sorry, you are not allowed to modify plugins.'=>'Lo siento, no tienes permisos para modificar plugins.','The setting for %1$s is smaller than %2$s, this could cause some problems when trying to upload files.'=>'El ajuste de %1$s es menor que el de %2$s, esto podría causar algunos problemas al intentar subir archivos.','%1$s is set to %2$s. You won\'t be able to upload files on your site.'=>'%1$s está establecido a %2$s. No podrás subir archivos en tu sitio.','The %s function has been disabled, some media settings are unavailable because of this.'=>'La función %s se ha desactivado, algunos ajustes de medios no están disponibles debido a esto.','The %1$s directive in %2$s determines if uploading files is allowed on your site.'=>'La directiva %1$s en %2$s determina si la subida de archivos está permitida en tu sitio.','Files can be uploaded'=>'Se pueden subir archivos','Max effective file size'=>'Tamaño de archivo efectivo máximo','Max size of an uploaded file'=>'Tamaño máximo de un archivo subido','Max size of post data allowed'=>'Tamaño máximo de datos de POST permitido','File uploads'=>'Subidas de archivos','File upload settings'=>'Ajustes de subida de archivos','themeCannot Install %s'=>'No se ha podido instalar %s','pluginInstall %s'=>'Instalar %s','themeInstall %s'=>'Instalar %s','themeUpdate %s now'=>'Actualizar %s ahora','- %1$s version %2$s'=>'- %1$s versión %2$s','themeActivated'=>'Activado','Sorry, you are not allowed to enable themes automatic updates.'=>'Lo siento, no tienes permisos para activar actualizaciones automáticas de temas.','This plugin is already installed.'=>'Este plugin ya está instalado.','pluginUpdate %s now'=>'Actualizar %s ahora','pluginInstall %s now'=>'Instalar %s ahora','Dismiss this notice.'=>'Descartar este aviso.','themeCannot Activate %s'=>'No se ha podido activar %s','Theme will no longer be auto-updated.'=>'El tema ya no se actualizará automáticamente.','Theme will be auto-updated.'=>'El tema se actualizará automáticamente.','Auto-updates can be enabled or disabled for each individual theme. Themes with auto-updates enabled will display the estimated date of the next auto-update. Auto-updates depends on the WP-Cron task scheduling system.'=>'Las actualizaciones automáticas se pueden activar o desactivar para cada tema individual. Los temas con las actualizaciones automáticas activadas mostrarán la fecha estimada para la siguiente actualización automática. Las actualizaciones automáticas dependen del sistema de programación de tareas WP-Cron.','Sorry, you are not allowed to disable themes automatic updates.'=>'Lo siento, no tienes permisos para desactivar actualizaciones automáticas de temas.','Sorry, you are not allowed to manage plugins automatic updates.'=>'Lo siento, no tienes permisos para gestionar las actualizaciones automáticas de plugins.','Error in deleting the item.'=>'Error al borrar el elemento.','Error in restoring the item from Trash.'=>'Error al restaurar el elemento de la papelera.','Error in moving the item to Trash.'=>'Error al mover el elemento a la papelera.','Selected plugins will no longer be auto-updated.'=>'Los plugins seleccionados ya no se actualizarán automáticamente.','Selected plugins will be auto-updated.'=>'Los plugins seleccionados se actualizarán automáticamente.','Plugin will no longer be auto-updated.'=>'El plugin ya no se actualizará automáticamente.','Plugin will be auto-updated.'=>'El plugin se actualizará automáticamente.','Auto-updates can be enabled or disabled for each individual plugin. Plugins with auto-updates enabled will display the estimated date of the next auto-update. Auto-updates depends on the WP-Cron task scheduling system.'=>'Las actualizaciones automáticas se pueden activar o desactivar para cada plugin individual. Los plugins con las actualizaciones automáticas activadas mostrarán la fecha estimada para la siguiente actualización automática. Las actualizaciones automáticas dependen del sistema de programación de tareas WP-Cron.','Please connect to your network admin to manage plugins automatic updates.'=>'Por favor, contacta con tu administrador de red para que gestione las actualizaciones automáticas de plugins.','The admin email verification page will reappear after %s.'=>'La página de verificación del correo electrónico del administrador volverá a aparecer después de %s.','Auto-updates'=>'Actualizaciones automáticas','Please note: Third-party themes and plugins, or custom code, may override WordPress scheduling.'=>'Por favor, ten en cuenta: Los temas y plugins de terceros o el código personalizado pueden anular la programación de WordPress.','Auto-updates can be enabled or disabled for WordPress major versions and for each individual theme or plugin. Themes or plugins with auto-updates enabled will display the estimated date of the next auto-update. Auto-updates depends on the WP-Cron task scheduling system.'=>'Las actualizaciones automáticas pueden ser activadas o desactivadas para las versiones mayores de WordPress y para cada tema o plugin individual. Los temas o plugins con las actualizaciones automáticas activadas mostrarán la fecha estimada de la siguiente actualización automática. Las actualizaciones automáticas dependen del sistema de programación de tareas WP-Cron.','Important: Before updating, please back up your database and files. For help with updates, visit the Updating WordPress documentation page.'=>'Importante: Antes de actualizar, por favor, haz una copia de seguridad de tu base de datos y de los archivos. Para obtener ayuda con las actualizaciones, visita la página de documentación Actualización de WordPress.','themeCannot Activate'=>'No se ha podido activar','You cannot edit this comment because the associated post is in the Trash. Please restore the post first, then try again.'=>'No puedes editar este comentario porque la entrada asociada está en la papelera. Por favor, restaura primero la entrada y, después, inténtalo de nuevo.','media itemSuccess'=>'Correcto','pluginError: Current WordPress version (%1$s) does not meet minimum requirements for %2$s. The plugin requires WordPress %3$s.'=>'Error: La versión actual de WordPress (%1$s) no cumple con los requisitos mínimos para %2$s. El plugin necesita WordPress %3$s.','pluginError: Current PHP version (%1$s) does not meet minimum requirements for %2$s. The plugin requires PHP %3$s.'=>'Error: La versión PHP actual (%1$s) no cumple con los requisitos mínimos para %2$s. El plugin necesita PHP %3$s.','pluginError: Current versions of WordPress (%1$s) and PHP (%2$s) do not meet minimum requirements for %3$s. The plugin requires WordPress %4$s and PHP %5$s.'=>'Error: Las versiones actuales de WordPress (%1$s) y PHP (%2$s) no cumplen los requisitos mínimos para %3$s. El plugin necesita WordPress %4$s y PHP %5$s.','Invalid data. The item does not exist.'=>'Datos no válidos. El elemento no existe.','Invalid data. Unknown type.'=>'Datos no válidos. Tipo desconocido.','Invalid data. Unknown state.'=>'Datos no válidos. Estado desconocido.','Invalid data. No selected item.'=>'Datos no válidos. Ningún elemento seleccionado.','You cannot reply to a comment on a draft post.'=>'No puedes responder a un comentario en una entrada en borrador.','To manage themes on your site, visit the Themes page: %s'=>'Para gestionar los temas en tu sitio, visita la página de temas: %s','To manage plugins on your site, visit the Plugins page: %s'=>'Para gestionar los plugins en tu sitio, visita la página de plugins: %s','These themes are now up to date:'=>'Ahora, estos temas están al día:','These plugins are now up to date:'=>'Ahora, estos plugins están al día:','These themes failed to update:'=>'Ha fallado la actualización de estos temas:','Please check your site now. It’s possible that everything is working. If there are updates available, you should update.'=>'Por favor, comprueba tu sitio ahora. Es posible que todo esté funcionando. Si hay actualizaciones disponibles, deberías actualizar.','Howdy! Themes failed to update on your site at %s.'=>'¡Hola! Ha fallado la actualización de temas en tu sitio %s.','[%s] Some themes have failed to update'=>'[%s] Ha fallado la actualización de algunos temas','Howdy! Plugins failed to update on your site at %s.'=>'¡Hola! Ha fallado la actualización de plugins en tu sitio %s.','[%s] Some plugins have failed to update'=>'[%s] Ha fallado la actualización de algunos plugins','Howdy! Plugins and themes failed to update on your site at %s.'=>'¡Hola! Ha fallado la actualización de los temas y plugins en tu sitio %s.','[%s] Some plugins and themes have failed to update'=>'[%s] Ha fallado la actualización de algunos plugins y temas','Howdy! Some themes have automatically updated to their latest versions on your site at %s. No further action is needed on your part.'=>'¡Hola! Algunos temas se han actualizado automáticamente a sus últimas versiones en tu sitio %s. No son necesarias más acciones por tu parte.','[%s] Some themes were automatically updated'=>'[%s] Algunos temas se han actualizado automáticamente','Howdy! Some plugins have automatically updated to their latest versions on your site at %s. No further action is needed on your part.'=>'¡Hola! Algunos plugins se han actualizado automáticamente a sus últimas versiones en tu sitio %s. No son necesarias más acciones por tu parte.','[%s] Some plugins were automatically updated'=>'[%s] Algunos plugins se han actualizado automáticamente','Howdy! Some plugins and themes have automatically updated to their latest versions on your site at %s. No further action is needed on your part.'=>'¡Hola! Algunos plugins y temas se han actualizado automáticamente a sus últimas versiones en tu sitio %s. No son necesarias más acciones por tu parte.','[%s] Some plugins and themes have automatically updated'=>'[%s] Algunos plugins y temas se han actualizado automáticamente','Move %s box down'=>'Mover la caja %s abajo','Move %s box up'=>'Mover la caja %s arriba','commentNot spam'=>'No es spam','PHP Sessions'=>'Sesiones PHP','A PHP session was created by a %1$s function call. This interferes with REST API and loopback requests. The session should be closed by %2$s before making any HTTP requests.'=>'Se ha creado una sesión PHP por la llamada a la función %1$s. Esto interfiere con la API REST y las solicitudes de retorno. La sesión debería ser cerrada por %2$s antes de hacer cualquier solicitud HTTP.','An active PHP session was detected'=>'Se ha detectado una sesión PHP activa','PHP sessions created by a %1$s function call may interfere with REST API and loopback requests. An active session should be closed by %2$s before making any HTTP requests.'=>'Las sesiones PHP creadas por una la llamada a la función %1$s pueden interferir con la API REST y las solicitudes de retorno. Una sesión activa debería ser cerrada por %2$s antes de hacer cualquier solicitud HTTP.','No PHP sessions detected'=>'No se han detectado sesiones PHP','Extended view'=>'Vista ampliada','Compact view'=>'Vista compacta','Error: Passwords do not match. Please enter the same password in both password fields.'=>'Error: Las contraseñas no coinciden. Por favor, introduce la misma contraseña en los dos campos de contraseña.','post action/button labelSchedule'=>'Programar','No plugins found. Try a different search.'=>'No se han encontrado plugins. Prueba con una búsqueda diferente.','Automatic update scheduled in %s.'=>'Actualización automática programada en %s.','Automatic update overdue by %s. There may be a problem with WP-Cron.'=>'Actualización automática con un retraso de %s. Puede que haya un problema con WP-Cron.','Automatic update not scheduled. There may be a problem with WP-Cron.'=>'Actualización automática no programada. Puede que haya un problema con WP-Cron.','You are updating a plugin. Be sure to back up your database and files first.'=>'Estás actualizando un plugin. Asegúrate primero de hacer copia de seguridad de tu base de datos y de los archivos.','You are uploading an older version of a current plugin. You can continue to install the older version, but be sure to back up your database and files first.'=>'Estás subiendo una versión más antigua de un plugin actual. Puedes seguir instalando la versión más antigua, pero asegúrate primero de hacer copia de seguridad de tu base de datos y de los archivos.','Your WordPress version is %1$s, however the uploaded plugin requires %2$s.'=>'Tu versión de WordPress es %1$s, sin embargo, el plugin subido necesita la versión %2$s.','The PHP version on your server is %1$s, however the uploaded plugin requires %2$s.'=>'En tu servidor, la versión de PHP es %1$s, sin embargo, el plugin subido necesita la versión %2$s.','The plugin cannot be updated due to the following:'=>'No se ha podido actualizar el plugin debido a lo siguiente:','Plugin name'=>'Nombre del plugin','Theme downgraded successfully.'=>'El tema ha vuelto a la versión anterior correctamente.','Theme downgrade failed.'=>'Ha fallado la vuelta a la versión anterior del tema.','Downgrading the theme…'=>'Volviendo a una versión anterior del tema...','Updating the theme…'=>'Actualizando el tema...','The active theme has the following error: "%s".'=>'El tema activo tiene el siguiente error: «%s».','Enable auto-updates'=>'Activar las actualizaciones automáticas','Disable auto-updates'=>'Desactivar las actualizaciones automáticas','Disable Auto-updates'=>'Desactivar las actualizaciones automáticas','Enable Auto-updates'=>'Activar las actualizaciones automáticas','Auto-updates Disabled (%s)'=>'Actualización automática desactivada (%s)' . "\0" . 'Actualizaciones automáticas desactivadas (%s)','Auto-updates Enabled (%s)'=>'Actualización automática activada (%s)' . "\0" . 'Actualizaciones automáticas activadas (%s)','Automatic Updates'=>'Actualizaciones automáticas','No plugins are currently available.'=>'Actualmente no hay ningún plugin disponible.','Restore original image'=>'Restaurar la imagen original','The uploaded file has expired. Please go back and upload it again.'=>'El archivo subido ha caducado. Por favor, vuelve atrás y súbelo de nuevo.','Cancel and go back'=>'Cancelar y volver atrás','themeReplace installed with uploaded'=>'Reemplazar el instalado con el subido','You are updating a theme. Be sure to back up your database and files first.'=>'Estás actualizando un tema. Primero, asegúrate de hacer una copia de seguridad de tu base de datos y de los archivos.','You are uploading an older version of the installed theme. You can continue to install the older version, but be sure to back up your database and files first.'=>'Estás subiendo una versión más antigua del tema instalado. Puedes seguir instalando la versión más antigua, pero asegúrate primero de hacer una copia de seguridad de tu base de datos y de los archivos.','Your WordPress version is %1$s, however the uploaded theme requires %2$s.'=>'Tu versión de WordPress es %1$s, sin embargo, el tema subido necesita la versión %2$s.','The PHP version on your server is %1$s, however the uploaded theme requires %2$s.'=>'En tu servidor, la versión de PHP es %1$s, sin embargo, el tema subido necesita la versión %2$s.','The theme cannot be updated due to the following:'=>'El tema no se ha podido actualizar debido a lo siguiente:','(not found)'=>'(no encontrado)','Required PHP version'=>'Versión necesaria de PHP','Required WordPress version'=>'Versión necesaria de WordPress','Theme name'=>'Nombre del tema','themeCannot Install'=>'No se ha podido instalar','Block Editor Patterns'=>'Patrones del editor de bloques','Plugin downgraded successfully.'=>'El plugin ha vuelto a la versión anterior correctamente.','Plugin downgrade failed.'=>'Ha fallado la vuelta atrás de la versión del plugin.','Downgrading the plugin…'=>'Volviendo a una versión anterior del plugin...','Updating the plugin…'=>'Actualizando el plugin...','Could not remove the current plugin.'=>'No se ha podido eliminar el plugin actual.','Removing the current plugin…'=>'Eliminando el plugin actual...','Auto-update'=>'Actualización automática','Auto-updates disabled'=>'Actualizaciones automáticas desactivadas','Auto-updates enabled'=>'Actualizaciones automáticas activadas','Are pretty permalinks supported?'=>'¿Es compatible con enlaces permanentes bonitos?','PHP memory limit (only for admin screens)'=>'Límite de memoria PHP (solo para las pantallas de administración)','Is this site discouraging search engines?'=>'¿Está el sitio disuadiendo a los motores de búsqueda?','Wide Blocks'=>'Bloques anchos','Block Editor Styles'=>'Estilos del editor de bloques','Spam'=>'Spam','Unable to write to %s file.'=>'No se ha podido escribir en el archivo %s.','Error: The %s options page is not in the allowed options list.'=>'Error: La página de opciones de %s no está en la lista de opciones permitidas.','Error:'=>'Error:','You should update your %s file now.'=>'Deberías actualizar ahora tu archivo %s.','This localized version contains both the translation and various other localization fixes.'=>'Esta versión local contiene tanto la traducción como otras muchas correcciones de traducción local.','Take a look at the %1$d item on the Site Health screen.'=>'Echa un vistazo a %1$d elemento en la pantalla de salud del sitio.' . "\0" . 'Echa un vistazo a %1$d elementos en la pantalla de salud del sitio.','Your site’s health is looking good, but there are still some things you can do to improve its performance and security.'=>'La salud de tu sitio está bien, pero aún hay algunas cosas que puedes hacer para mejorar su rendimiento y seguridad.','Great job! Your site currently passes all site health checks.'=>'¡Buen trabajo! Actualmente tu sitio pasa todas las pruebas de salud del sitio.','Your site has critical issues that should be addressed as soon as possible to improve its performance and security.'=>'Tu sitio tiene problemas críticos que deberían solucionarse lo antes posible para mejorar su rendimiento y seguridad.','Site health checks will automatically run periodically to gather information about your site. You can also visit the Site Health screen to gather information about your site now.'=>'Las pruebas de salud del sitio se ejecutarán automáticamente de forma periódica para obtener información sobre tu sitio. También puedes visitar ahora la pantalla de salud del sitio para obtener información sobre tu sitio.','No information yet…'=>'Aún no hay información...','The uploaded file exceeds the %1$s directive in %2$s.'=>'El archivo subido supera la directiva %1$s en %2$s. ','No comments found in Trash.'=>'No se han encontrado comentarios en la papelera.','File is empty. Please upload something more substantial. This error could also be caused by uploads being disabled in your %1$s file or by %2$s being defined as smaller than %3$s in %1$s.'=>'El archivo está vacío. Por favor, sube algo más sustancial. Este error también puede ser causado porque las subidas estén desactivadas en tu archivo %1$s o porque %2$s esté definido como menor de %3$s en %1$s.','A test is unavailable'=>'No está disponible una prueba','Error: %1$s (%2$s)'=>'Error: %1$s (%2$s)','Your site is running on an older version of PHP (%s), which should be updated'=>'Tu sitio está ejecutando una versión antigua de PHP (%s) que debería ser actualizada','Your site is running on an older version of PHP (%s)'=>'Tu sitio está ejecutando una versión antigua de PHP (%s)','Your site is running a recommended version of PHP (%s)'=>'Tu sitio está ejecutando la versión recomendada de PHP (%s)','No media files found in Trash.'=>'No hay archivos de medios en la papelera.','%1$s %2$d – %3$s %4$d, %5$d'=>'%1$s %2$d – %3$s %4$d, %5$d','upcoming events year formatY'=>'Y','upcoming events day formatj'=>'j','%1$s %2$d–%3$d, %4$d'=>'%2$d–%3$d de %1$s de %4$d','upcoming events month formatF'=>'F','Resend confirmation requests'=>'Reenviar las solicitudes de confirmación','Delete requests'=>'Borrar las solicitudes','Table prefix'=>'Prefijo de la tabla','PHP Default Timezone'=>'Zona horaria por defecto de PHP','PHP default timezone was changed after WordPress loading by a %s function call. This interferes with correct calculations of dates and times.'=>'La zona horaria por defecto de PHP ha cambiado después de cargar WordPress por una llamada de la función %s. Esto interfiere con los cálculos correctos de fechas y horas.','PHP default timezone is invalid'=>'La zona horaria por defecto de PHP no es válida','PHP default timezone was configured by WordPress on loading. This is necessary for correct calculations of dates and times.'=>'La zona horaria por defecto de PHP ha sido configurada al cargar WordPress. Esto es necesario para los cálculos correctos de fechas y horas.','PHP default timezone is valid'=>'La zona horaria por defecto de PHP es válida','The seventh parameter passed to %s should be numeric representing menu position.'=>'El séptimo parámetro pasado a `%s` debe ser numérico representando la posición del menú.','The update cannot be installed because WordPress %1$s requires the %2$s PHP extension.'=>'La actualización no ha podido ser instalada porque WordPress %1$s necesita la extensión %2$s de PHP.','https://wordpress.org/about/stats/'=>'https://es.wordpress.org/about/stats/','Documentation on Export'=>'Documentación sobre exportación','Documentation on Installing Plugins'=>'Documentación sobre la instalación de plugins','Documentation on Managing Pages'=>'Documentación sobre la gestión de páginas','Documentation on Managing Posts'=>'Documentación sobre la gestión de entradas','Documentation on Discussion Settings'=>'Documentación sobre los ajustes de comentarios','Documentation on Adding New Themes'=>'Documentación sobre añadir nuevos temas','Documentation on Uploading Media Files'=>'Documentación sobre la subida de archivos de medios','Descriptions of Roles and Capabilities'=>'Descripciones de perfiles y capacidades','Documentation on Managing Users'=>'Documentación sobre la gestión de usuarios','Documentation on User Profiles'=>'Documentación sobre los perfiles de usuarios','Documentation on Media Settings'=>'Documentación sobre los ajustes de medios','Documentation on Import'=>'Documentación sobre importación','Documentation on Tools'=>'Documentación sobre herramientas','This page allows direct access to your site settings. You can break things here. Please be cautious!'=>'Esta página te permite acceder directamente a los ajustes de tu sitio. Aquí puedes romper cosas. ¡Por favor, sé precavido!','Format — Post Formats designate how your theme will display a specific post. For example, you could have a standard blog post with a title and paragraphs, or a short aside that omits the title and contains a short text blurb. Your theme could enable all or some of 10 possible formats. Learn more about each post format.'=>'Formato — Los formatos de entrada definen cómo se va a mostrar tu tema en una entrada específica. Por ejemplo, puedes tener una entrada de blog estándar con un título y párrafos, o una corta aparte que omita el título y contenga una breve reseña. Tu tema podría habilitar todos o algunos de los 10 formatos posibles. Aprende más sobre cada uno de los formatos.','Documentation on Editing Pages'=>'Documentación sobre la edición de páginas','Documentation on Adding New Pages'=>'Documentación sobre añadir páginas nuevas','Documentation on Media Library'=>'Documentación sobre la biblioteca de medios','Revisions Management'=>'Gestión de revisiones','Documentation on Edit Media'=>'Documentación sobre la edición de medios','Documentation on Managing Plugins'=>'Documentación sobre la gestión de plugins','Documentation on Dashboard'=>'Documentación sobre el escritorio','Documentation on Adding New Users'=>'Documentación sobre añadir usuarios nuevos','This page can show you every detail about the configuration of your WordPress website. For any improvements that could be made, see the Site Health Status page.'=>'Esta página puede mostrar cada pequeño detalle sobre la configuración de tu web WordPress. Para saber las mejoras que se podrían hacer, ve la página de estado de salud del sitio.','Results are still loading…'=>'Los resultados están aún cargando…','Documentation on Using Permalinks'=>'Documentación sobre el uso de enlaces permanentes','Documentation on Permalinks Settings'=>'Documentación sobre los ajustes de los enlaces permanentes','Documentation on Updating WordPress'=>'Documentación sobre la actualización de WordPress','Documentation on Menus'=>'Documentación sobre los menús','Documentation on Writing Plugins'=>'Documentación sobre la creación de plugins','Documentation on Template Tags'=>'Documentación sobre las etiquetas de las plantillas','Documentation on Using Themes'=>'Documentación sobre el uso de temas','Documentation on Theme Development'=>'Documentación sobre el desarrollo de temas','Documentation on Comments'=>'Documentación sobre los comentarios','Universal time is %s.'=>'La hora universal es %s.','Choose either a city in the same timezone as you or a %s (Coordinated Universal Time) time offset.'=>'Elige una ciudad en tu misma zona horaria o un desfase horario %s (Tiempo Universal Coordinado).','Administration Email Address'=>'Dirección de correo electrónico de administración','Documentation on General Settings'=>'Documentación sobre ajustes generales','You need to make this file writable before you can save your changes. See Changing File Permissions for more information.'=>'Para guardar los cambios, es necesario que el archivo tenga permisos de escritura. Visita cómo cambiar permisos de archivo para obtener más información.','Upload failed. Please reload and try again.'=>'Subida fallida. Por favor, recarga e inténtalo de nuevo.','Data erasure has failed.'=>'Ha fallado el borrado de los datos.','Erasure completed.'=>'Borrado completo.','The attached file cannot be found.'=>'No se ha podido encontrar el archivo adjunto.','page labelPrivacy Policy Page'=>'Página de política de privacidad','page labelPosts Page'=>'Página de entradas','page labelFront Page'=>'Página de inicio','post statusSticky'=>'Fija','post statusCustomization Draft'=>'Borrador de personalización','post statusPassword protected'=>'Protegida con contraseña','The scheduled event, %s, is late to run. Your site still works, but this may indicate that scheduling posts or automated updates may not work as intended.'=>'El evento programado, %s, se retrasa. Tu sitio todavía funciona, pero esto puede indicar que las entradas programadas o las actualizaciones automáticas no funcionen como deberían.','A scheduled event is late'=>'Un evento programado se retrasa','An HTTPS connection is a more secure way of browsing the web. Many services now have HTTPS as a requirement. HTTPS allows you to take advantage of new features that can increase site speed, improve search rankings, and gain the trust of your visitors by helping to protect their online privacy.'=>'Una conexión HTTPS es un modo más seguro de navegar por la web. Muchos servicios actualmente requieren que tengas HTTPS. HTTPS te permite aprovechar las nuevas características que pueden aumentar la velocidad del sitio, mejorar en las posiciones de búsqueda y ganarte la confianza de tus visitantes al ayudarles a proteger su privacidad online.','Your version of WordPress (%s) is up to date'=>'Tu versión de WordPress (%s) está actualizada','https://wordpress.org/documentation/article/introduction-to-blogging/#managing-comments'=>'https://wordpress.org/documentation/article/introduction-to-blogging/#managing-comments','https://wordpress.org/documentation/article/introduction-to-blogging/#comments'=>'https://wordpress.org/documentation/article/introduction-to-blogging/#comments','https://wordpress.org/documentation/article/block-themes/'=>'https://wordpress.org/documentation/article/block-themes/','Publish on: %s'=>'Publicar el: %s','Schedule for: %s'=>'Programar para: %s','Published on: %s'=>'Publicado el: %s','Scheduled for: %s'=>'Programado para: %s','publish box time formatH:i'=>'H:i','publish box date formatM j, Y'=>'j M Y','The directives (lines) between "BEGIN %1$s" and "END %1$s" are +dynamically generated, and should only be modified via WordPress filters. +Any changes to the directives between these markers will be overwritten.'=>'Las directivas (líneas) entre «BEGIN %1$s» y «END %1$s» son +generadas dinámicamente y solo deberían ser modificadas mediante filtros de WordPress. +Cualquier cambio en las directivas que hay entre esos marcadores serán sobrescritas.','All automatic updates are disabled.'=>'Todas las actualizaciones automáticas están desactivadas','Database collation'=>'Compilación de la base de datos','Database charset'=>'Mapa de caracteres de la base de datos','Inactive Themes'=>'Temas inactivos','Parent Theme'=>'Tema padre','Drop-ins are single files, found in the %s directory, that replace or enhance WordPress features in ways that are not possible for traditional plugins.'=>'Los dependientes son archivos únicos, que están en el directorio %s, que reemplazan o mejoran características de WordPress de formas que no son posibles con los plugins tradicionales.','personal data group descriptionOverview of export report.'=>'Resumen de un informe de exportación.','Documentation on Writing Settings'=>'Documentación sobre los ajustes de escritura','Documentation on Tags'=>'Documentación sobre las etiquetas','Documentation on Categories'=>'Documentación sobre las categorías','Your theme determines how content is displayed in browsers. Learn more about feeds.'=>'Tu tema determina cuánto contenido se muestra en los navegadores. Aprende más sobre feeds.','For each post in a feed, include'=>'Para cada entrada en el feed, incluir','Warning: these pages should not be the same as your Privacy Policy page!'=>'¡Advertencia: estas páginas no deberían ser las mismas que tu página de política de privacidad!','Documentation on Reading Settings'=>'Documentación sobre los ajustes de lectura','[%s] Delete My Site'=>'[%s] Borrar mi sitio','Allow people to submit comments on new posts'=>'Permitir que se envíen comentarios en las entradas nuevas','Default post settings'=>'Ajustes por defecto de las entradas','You can change your profile picture on Gravatar.'=>'Puedes cambiar la imagen de tu perfil en Gravatar.','Plugin resumed.'=>'Plugin reanudado.','Selected plugins deactivated.'=>'Plugins seleccionados desactivados.','Plugin deactivated.'=>'Plugin desactivado.','Selected plugins activated.'=>'Plugins seleccionados activados.','Plugin activated.'=>'Plugin activado.','The selected plugins have been deleted.'=>'Los plugins seleccionados han sido borrados.','The selected plugin has been deleted.'=>'El plugin seleccionado ha sido borrado.','The plugin %1$s has been deactivated due to an error: %2$s'=>'El plugin %1$s ha sido desactivado debido a un error: %2$s','If you need to tweak more than your theme’s CSS, you might want to try making a child theme.'=>'Si necesitas retocar algo más que el CSS de tu tema, quizá quieras intentar crear un tema hijo.','You appear to be making direct edits to your theme in the WordPress dashboard. It is not recommended! Editing your theme directly could break your site and your changes may be lost in future updates.'=>'Parece que estás haciendo ediciones directas en tu tema en el escritorio de WordPress. ¡No lo recomendamos! Editar tu tema directamente puede romper tu sitio y tus cambios podrían perderse en futuras actualizaciones.','draft_length10'=>'10','File does not exist! Please double check the name and try again.'=>'¡El archivo no existe! Por favor, vuelve a revisar el nombre e inténtalo de nuevo.','%1$s needs to be a %2$s object.'=>'%1$s tiene que ser un objeto %2$s.','You are in recovery mode. This means there may be an error with a theme or plugin. To exit recovery mode, log out or use the Exit button. Exit Recovery Mode'=>'Estás en el modo de recuperación. Esto significa que puede haber un error con un tema o plugin. Para salir del modo de recuperación cierra la sesión o usa el botón de salir. Salir del modo de recuperación','Site HealthInfo'=>'Información','Site HealthStatus'=>'Estado','Themes directory location'=>'Ubicación del directorio de temas','comment statusClosed'=>'Cerrados','%s critical issue'=>'%s error crítico' . "\0" . '%s errores críticos','https://wordpress.org/documentation/article/updating-wordpress/'=>'https://wordpress.org/documentation/article/updating-wordpress/','Get help resolving this issue.'=>'Obtener ayuda para resolver este problema.','Learn more about what WordPress requires to run.'=>'Lee más sobre qué necesita WordPress para funcionar.','https://wordpress.org/about/requirements/'=>'https://es.wordpress.org/about/requirements/','The SQL server is a required piece of software for the database WordPress uses to store all your site’s content and settings.'=>'El servidor SQL es una parte de software obligatoria que la base de datos de WordPress usa para almacenar el contenido y ajustes de tu sitio.','PHP modules perform most of the tasks on the server that make your site run. Any changes to these must be made by your server administrator.'=>'Los módulos PHP realizan la mayoría de las tareas en el servidor que hacen que tu sitio funcione. Cualquier cambio en ellos debería hacerlo el administrador de tu servidor.','Manage your themes'=>'Gestiona tus temas','Manage inactive plugins'=>'Gestionar los plugins inactivos','Update your plugins'=>'Actualiza tus plugins','Manage your plugins'=>'Gestionar tus plugins','View Privacy Policy Guide.'=>'Ver la guía de la política de privacidad.','User Language'=>'Idioma del usuario','The value, %1$s, has either been enabled by %2$s or added to your configuration file. This will make errors display on the front end of your site.'=>'El valor, %1$s, tiene que activarse mediante %2$s o añadirse a tu archivo de configuración. Esto hará que los errores se visualicen en la parte visible de tu sitio.','[%s] Background Update Finished'=>'[%s] Actualización en segundo plano finalizada','[%s] Background Update Failed'=>'[%s] Las actualizaciones en segundo plano han fallado','Plugin could not be resumed because it triggered a fatal error.'=>'El plugin no se ha podido reanudar porque ha provocado un error fatal.','You should remove inactive themes'=>'Deberías eliminar los temas inactivos.','Your site has 1 installed theme, and it is up to date.'=>'Tu sitio tiene 1 tema instalado y está actualizado.','Your site has 1 active plugin, and it is up to date.'=>'Tu sitio tiene 1 plugin activo y está actualizado.','Passed tests'=>'Pruebas completadas','Sorry, you are not allowed to access site health information.'=>'Lo siento, no tienes permisos para acceder a la información de salud de tu sitio.','Copy site info to clipboard'=>'Copiar la información del sitio al portapapeles','If you want to export a handy list of all the information on this page, you can use the button below to copy it to the clipboard. You can then paste it in a text file and save it to your device, or paste it in an email exchange with a support engineer or theme/plugin developer for example.'=>'Si quieres exportar una lista manejable de toda la información de esta página, puedes usar el botón de abajo para copiarla en el portapapeles. Luego, puedes pegarla en un archivo de texto y guardarla en tu dispositivo o pegarla en un correo electrónico para, por ejemplo, enviarla a un ingeniero de soporte o a un desarrollador de temas/plugins.','The Site Health check requires JavaScript.'=>'El chequeo de salud del sitio necesita JavaScript.','Site Health Info'=>'Información de salud del sitio','This update does not work with your version of PHP.'=>'Esta actualización no funciona con tu versión de PHP.','All formats'=>'Todos los formatos','Filter by post format'=>'Filtrar por formato de entrada','Go to the Plugins screen'=>'Ir a la pantalla de plugins','The authenticity of %s could not be verified.'=>'No se ha podido verificar la identidad de %s.','The authenticity of %s could not be verified as no signature was found.'=>'No se ha podido verificar la identidad de %s porque no se ha encontrado ninguna firma.','The authenticity of %s could not be verified as signature verification is unavailable on this system.'=>'No se ha podido verificar la identidad de %s porque la verificación de firma no está disponible en este sistema.','Eraser callback is not valid: %s.'=>'La llamada de retorno del elemento de borrado no es válida: %s.','Eraser does not include a callback: %s.'=>'El borrador no incluye una llamada de retorno: %s.','Sorry, you are not allowed to perform this action.'=>'Lo siento, no tienes permisos realizar esta acción','HTTP requests have been blocked by the %1$s constant, with some allowed hosts: %2$s.'=>'Las peticiones HTTP han sido bloqueadas por la constante %1$s, con algunos hosts permitidos: %2$s.','HTTP requests have been blocked by the %s constant, with no allowed hosts.'=>'Las peticiones HTTP han sido bloqueadas por la constante %s, no se permite ningún host.','You are using a %1$s drop-in which might mean that a %2$s database is not being used.'=>'Estás usando el dependiente %1$s que podría significar que no se está usando una base de datos %2$s.','https://make.wordpress.org/hosting/handbook/handbook/server-environment/#php-extensions'=>'https://make.wordpress.org/hosting/handbook/handbook/server-environment/#php-extensions','The WordPress Hosting Team maintains a list of those modules, both recommended and required, in the team handbook%3$s.'=>'El equipo de alojamiento de WordPress mantiene una lista de estos módulos, tanto los recomendados como los obligatorios, en el manual del equipo %3$s.','Performance'=>'Rendimiento','Your site has %1$d inactive theme, other than %2$s, the default WordPress theme, and %3$s, your active theme.'=>'Tu sitio tiene %1$d tema inactivo, aparte de %2$s, el tema por defecto de WordPress, y %3$s, tu tema activo.' . "\0" . 'Tu sitio tiene %1$d temas inactivos, aparte de %2$s, el tema por defecto de WordPress, y %3$s, tu tema activo.','You should consider removing any unused themes to enhance your site’s security.'=>'Deberías plantearte eliminar cualquier tema no usado para mejorar la seguridad de tu sitio.','Your site has %1$d inactive theme, other than %2$s, your active theme.'=>'Tu sitio tiene %1$d tema inactivo, aparte de %2$s, tu tema activo.' . "\0" . 'Tu sitio tiene %1$d temas inactivos, aparte de %2$s, tu tema activo.','Your site has %d inactive theme.'=>'Tu sitio tiene %d tema inactivo.' . "\0" . 'Tu sitio tiene %d temas inactivos.','Inactive plugins are tempting targets for attackers. If you are not going to use a plugin, you should consider removing it.'=>'Los plugins inactivos son objetivos tentadores para los atacantes. Si no vas a usar un plugin, deberías plantearte eliminarlo.','Your site has %d inactive plugin.'=>'Tu sitio tiene %d plugin inactivo.' . "\0" . 'Tu sitio tiene %d plugins inactivos.','Security'=>'Seguridad','Erase personal data list'=>'Borrar la lista de datos personales.','Erase personal data list navigation'=>'Borrar la navegación de la lista de datos personales','Filter erase personal data list'=>'Filtro para borrar la lista de datos personales','Export personal data list'=>'Exportar lista de datos personales','Export personal data list navigation'=>'Exportar lista de datos de navegación personal','Filter export personal data list'=>'Filtrar la lista de datos personales de exportación','There is a new version of %1$s available, but it does not work with your version of PHP. View version %4$s details or learn more about updating PHP.'=>'Hay disponible una nueva versión de %1$s, pero no funciona con tu versión de PHP. Mira los detalles de la versión %4$s o aprende más sobre cómo actualizar PHP.','This plugin failed to load properly and is paused during recovery mode.'=>'Este plugin no se ha cargado correctamente y está en pausa durante el modo de recuperación.','Go to the Themes screen'=>'Ir a la pantalla de temas','Total size is not available. Some errors were encountered when determining the size of your installation.'=>'El tamaño total no está disponible. Se han encontrado algunos errores al determinar el tamaño de tu instalación.','The size cannot be calculated. The directory is not accessible. Usually caused by invalid permissions.'=>'No se puede calcular el tamaño. El directorio no está accesible. Normalmente provocado por permisos no válidos.','The directory size calculation has timed out. Usually caused by a very large number of sub-directories and files.'=>'El cálculo del tamaño del directorio se ha pasado de tiempo. Normalmente se debe a la existencia de un gran número de subdirectorios y archivos.','These settings alter where and how parts of WordPress are loaded.'=>'Estos ajustes alteran dónde y cómo se cargan partes de WordPress.','%s item with no issues detected'=>'Detectado %s elemento sin problemas' . "\0" . 'Detectados %s elementos sin problemas','%s recommended improvement'=>'%s mejora recomendada' . "\0" . '%s mejoras recomendadas','The site health check shows information about your WordPress configuration and items that may need your attention.'=>'La comprobación del estado del sitio muestra información crítica acerca de la configuración de tu WordPress y los elementos que podrían requerir tu atención.','Site Health Status'=>'Estado de salud del sitio','Everything is running smoothly here.'=>'Todo va como la seda por aquí.','Great job!'=>'¡Buen trabajo!','Secondary menu'=>'Menú secundario','The loopback request to your site completed successfully.'=>'La solicitud de loopback a tu sitio se completo correctamente.','The loopback request returned an unexpected http status code, %d, it was not possible to determine if this will prevent features from working as expected.'=>'La solicitud de loopback ha devuelto un código HTTP de estado inesperado, %d, no ha sido posible determinar si esto impedirá que algunas características funcionen como deben.','The loopback request to your site failed, this means features relying on them are not currently working as expected.'=>'La solicitud de loopback a tu sitio ha fallado. Eso quiere decir que las características que dependan de ello no van a funcionar correctamente.','No scheduled events exist on this site.'=>'No hay eventos programados en este sitio.','REST API availability'=>'Disponibilidad de la API REST','Loopback request'=>'Solicitud de loopback','Debugging enabled'=>'Depuración activada','HTTP Requests'=>'Solicitudes HTTP','Scheduled events'=>'Eventos programados','Secure communication'=>'Comunicación segura','HTTPS status'=>'Estado HTTPS','PHP Extensions'=>'Extensiones PHP','Database Server version'=>'Versión de la base de datos del servidor','PHP Version'=>'Versión PHP','Theme Versions'=>'Versiones de tema','Plugin Versions'=>'Versiones de plugin','WordPress Version'=>'Versión de WordPress','The REST API did not process the %s query parameter correctly.'=>'La API REST no ha procesado el parámetro de consulta %s correctamente.','The REST API did not behave correctly'=>'La API REST no se ha comportado correctamente','The REST API encountered an unexpected result'=>'La API REST ha encontrado un resultado inesperado','The REST API encountered an error'=>'La API REST ha encontrado un error','The REST API is one way that WordPress and other applications communicate with the server. For example, the block editor screen relies on the REST API to display and save your posts and pages.'=>'La API REST es una forma en que WordPress y otras aplicaciones se comunican con el servidor. Un ejemplo es la pantalla del editor de bloques, que se basa en esto para mostrar y guardar tus entradas y páginas.','The REST API is available'=>'La API REST está disponible','HTTP requests are partially blocked'=>'Las peticiones HTTP están parcialmente bloqueadas','HTTP requests are blocked'=>'Las peticiones HTTP están bloqueadas','It is possible for site maintainers to block all, or some, communication to other sites and services. If set up incorrectly, this may prevent plugins and themes from working as intended.'=>'Los mantenedores de sitios puede bloquear todas o parte de las comunicaciones con otros sitios y servicios. Si no se configura bien, esto puede impedir que los plugins y temas funcionen correctamente.','HTTP requests seem to be working as expected'=>'Parece que las peticiones HTTP están funcionando como deben','Your site could not complete a loopback request'=>'Tu sitio no ha podido realizar una solicitud de loopback.','Loopback requests are used to run scheduled events, and are also used by the built-in editors for themes and plugins to verify code stability.'=>'Las solicitudes de loopback se utilizan para ejecutar eventos programados y también los utilizan los editores integrados para temas y plugins para verificar la estabilidad del código.','Your site can perform loopback requests'=>'Tu sitio puede realizar solicitudes de loopback','Background updates may not be working properly'=>'Las actualizaciones en segundo plano pueden no estar funcionando correctamente','Background updates are not working as expected'=>'Las actualizaciones en segundo plano no están funcionando como se espera','Passed'=>'Aprobado','Background updates ensure that WordPress can auto-update if a security update is released for the version you are currently using.'=>'Las actualizaciones en segundo plano garantizan que WordPress se puede actualizar automáticamente si se publica una actualización de seguridad para la versión que estás utilizando actualmente.','Background updates are working'=>'Las actualizaciones en segundo plano están funcionando','The scheduled event, %s, failed to run. Your site still works, but this may indicate that scheduling posts or automated updates may not work as intended.'=>'El evento programado, %s, no se ha podido ejecutar. Tu sitio todavía funciona, pero esto puede indicar que las entradas programadas o las actualizaciones automáticas no funcionen como deberían.','A scheduled event has failed'=>'Un evento programado ha fallado','While trying to test your site’s scheduled events, the following error was returned: %s'=>'Al intentar probar los eventos programados de tu sitio, se han encontrado los siguientes errores: %s','It was not possible to check your scheduled events'=>'No ha sido posible verificar tus eventos programados','Scheduled events are what periodically looks for updates to plugins, themes and WordPress itself. It is also what makes sure scheduled posts are published on time. It may also be used by various plugins to make sure that planned actions are executed.'=>'Los eventos programados son los que buscan, periódicamente, actualizaciones de plugins, temas y de WordPress. También son los que se aseguran de que las publicaciones programadas se publiquen a tiempo. También pueden usarlos diversos plugins para asegurar que se ejecutan las acciones planeadas.','Scheduled events are running'=>'Los eventos programados se están ejecutando','Talk to your web host about OpenSSL support for PHP.'=>'Consulta a tu alojamiento web sobre la compatibilidad con OpenSSL para PHP.','Your site is unable to communicate securely with other services'=>'No ha sido posible comunicar tu sitio de forma segura con otros servicios','Your site can communicate securely with other services'=>'Tu sitio puede comunicarse de forma segura con otros servicios','Securely communicating between servers are needed for transactions such as fetching files, conducting sales on store sites, and much more.'=>'La comunicación segura entre servidores es necesaria para transacciones como la búsqueda de archivos, realización de ventas en tiendas online y mucho más.','Learn more about why you should use HTTPS'=>'Aprende más sobre porqué deberías usar HTTPS','Your website does not use HTTPS'=>'Tu web no usa HTTPS','Your website is using an active HTTPS connection'=>'Tu web está usando una conexión HTTPS activa','You are accessing this website using HTTPS, but your Site Address is not set up to use HTTPS by default.'=>'Estás accediendo a esta web usando HTTPS, pero tu dirección del sitio no está configurada para usar HTTPS por defecto.','Your site is set to display errors to site visitors'=>'Tu sitio está configurado para mostrar errores a los visitantes del sitio','The value, %s, has been added to this website’s configuration file. This means any errors on the site will be written to a file which is potentially available to all users.'=>'El valor %s ha sido añadido al archivo de configuración de esta web. Esto significa que, cualquier error en el sitio, será escrito en un archivo que está potencialmente disponible para todos los usuarios.','Your site is set to log errors to a potentially public file'=>'Tu sitio está configurado para registrar errores en un archivo potencialmente público','Debug mode is often enabled to gather more details about an error or site failure, but may contain sensitive information which should not be available on a publicly available website.'=>'El modo de depuración suele estar activado para recopilar más detalles acerca de un error o de un fallo en el sitio, pero puede contener información sensible que no debería estar disponible en una web disponible públicamente.','Your site is not set to output debug information'=>'Tu sitio está configurado para no mostrar la información de depuración','Your site is unable to reach WordPress.org at %1$s, and returned the error: %2$s'=>'Tu sitio no ha podido conectar con WordPress.org en %1$s, y ha devuelto el error: %2$s','Could not reach WordPress.org'=>'No se ha podido conectar con WordPress.org','Communicating with the WordPress servers is used to check for new versions, and to both install and update WordPress core, themes or plugins.'=>'La comunicación con los servidores de WordPress se usa para comprobar nuevas versiones y, también, para instalar y actualizar el núcleo de WordPress, los temas o los plugins.','Can communicate with WordPress.org'=>'Puedes comunicarte con WordPress.org','WordPress requires %1$s version %2$s or higher. Contact your web hosting company to correct this.'=>'WordPress requiere versión %2$s o superior de %1$s. Contacta con tu empresa de alojamiento web para corregir esto.','Severely outdated SQL server'=>'Servidor SQL muy anticuado','For optimal performance and security reasons, you should consider running %1$s version %2$s or higher. Contact your web hosting company to correct this.'=>'Para un rendimiento óptimo y por razones de seguridad, deberías plantearte ejecutar la versión %2$s o superior de %1$s. Contacta con tu empresa de alojamiento web para corregirlo.','Outdated SQL server'=>'Servidor SQL obsoleto','SQL server is up to date'=>'El servidor SQL está actualizado','One or more required modules are missing'=>'Faltan uno o más módulos necesarios','One or more recommended modules are missing'=>'Faltan uno o más módulos recomendados','The optional module, %s, is not installed, or has been disabled.'=>'El módulo opcional, %s, no está instalado, o ha sido desactivado.','The required module, %s, is not installed, or has been disabled.'=>'El módulo requerido, %s, no está instalado, o ha sido desactivado.','Error'=>'Error','Required and recommended modules are installed'=>'Los módulos necesarios y recomendados están instalados','Your site does not have any default theme. Default themes are used by WordPress automatically if anything is wrong with your chosen theme.'=>'Tu sitio no tiene ningún tema por defecto. Los temas por defecto son usados automáticamente por WordPress si hay algo mal con el tema que has elegido.','Have a default theme available'=>'Tener un tema por defecto disponible','To enhance your site’s security, you should consider removing any themes you are not using. You should keep %1$s, the default WordPress theme, %2$s, your active theme, and %3$s, its parent theme.'=>'Para mejorar la seguridad de tu sitio, deberías plantearte eliminar cualquier tema que no estés usando. Deberías mantener %1$s, el tema por defecto de WordPress, %2$s, tu tema activo, y %3$s, su tema padre.','To enhance your site’s security, you should consider removing any themes you are not using. You should keep your active theme, %1$s, and %2$s, its parent theme.'=>'Para mejorar la seguridad de tu sitio, deberías plantearte eliminar cualquier tema que no estés usando. Deberías mantener tu tema activo, %1$s, y %2$s, su tema padre.','You should remove inactive plugins'=>'Deberías eliminar los plugins inactivos','Your site has %d installed theme, and it is up to date.'=>'Tu sitio tiene %d tema instalado y está actualizado.' . "\0" . 'Tu sitio tiene %d temas instalados y todos están actualizados.','Your site has %d theme waiting to be updated.'=>'Tu sitio tiene %d tema esperando a ser actualizado.' . "\0" . 'Tu sitio tiene %d temas esperando a ser actualizados.','You have themes waiting to be updated'=>'Tienes temas esperando ser actualizados.','Themes add your site’s look and feel. It’s important to keep them up to date, to stay consistent with your brand and keep your site secure.'=>'Los temas añaden el aspecto y comportamiento de tu sitio. Es importante tenerlos actualizados, para mantener la coherencia con tu marca y mantener tu sitio seguro.','Your themes are all up to date'=>'Todos tus temas están actualizados','Your site has %d active plugin, and it is up to date.'=>'Tu sitio tiene %d plugin activo y está actualizado.' . "\0" . 'Tu sitio tiene %d plugins activos y están todos actualizados.','Your site has %d plugin waiting to be updated.'=>'Tu sitio tiene %d plugin esperando ser actualizado.' . "\0" . 'Tu sitio tiene %d plugins esperando ser actualizados.','You have plugins waiting to be updated'=>'Tienes plugins esperando ser actualizados','Plugins extend your site’s functionality with things like contact forms, ecommerce and much more. That means they have deep access to your site, so it’s vital to keep them up to date.'=>'Los plugins amplían la funcionalidad de tu sitio con cosas como formularios de contacto, comercio electrónico y muchas otras. Esto significa que tienen un profundo acceso a tu sitio y, por tanto, es vital mantenerlos actualizados.','Your plugins are all up to date'=>'Todos tus plugins están actualizados','You are currently running the latest version of WordPress available, keep it up!'=>'Estás ejecutando la última versión disponible de WordPress, ¡sigue así!','A new minor update is available for your site. Because minor updates often address security, it’s important to install them.'=>'Una actualización menor está disponible para tu sitio. Debido a que las actualizaciones menores a menudo abordan la seguridad, es importante instalarlas.','A new version of WordPress is available.'=>'Está disponible una nueva versión de WordPress.','Install the latest version of WordPress'=>'Instalar la última versión de WordPress','WordPress update available (%s)'=>'Actualización de WordPress disponible (%s)','Check for updates manually'=>'Comprobar las actualizaciones manualmente','Unable to check if any new versions of WordPress are available.'=>'No se ha podido comprobar si está disponible alguna nueva versión de WordPress.','WordPress security and maintenance releases are blocked by the %s filter.'=>'Las versiones de seguridad y mantenimiento de WordPress están bloqueadas por el filtro %s.','WordPress security and maintenance releases are blocked by %s.'=>'Las actualizaciones de seguridad y mantenimiento de WordPress están bloqueadas por %s.','WordPress development updates are blocked by the %s filter.'=>'Las actualizaciones de desarrollo de WordPress están bloqueadas por el filtro %s.','WordPress development updates are blocked by the %s constant.'=>'Las actualizaciones de desarrollo de WordPress están bloqueadas por la constante %s.','All of your WordPress files are writable.'=>'Todos tus archivos de WordPress son editables.','Some files are not writable by WordPress:'=>'Algunos archivos no son editables por WordPress:','This could mean that connections are failing to WordPress.org.'=>'Esto podría significar que las conexiones a WordPress.org están fallando.','Couldn\'t retrieve a list of the checksums for WordPress %s.'=>'No se ha podido recuperar una lista de las sumas de comprobación para WordPress %s.','Your installation of WordPress does not require FTP credentials to perform updates.'=>'Tu instalación de WordPress no necesita credenciales de FTP para realizar las actualizaciones.','(Your site is performing updates over FTP due to file ownership. Talk to your hosting company.)'=>'(Tu sitio se actualiza por FTP debido a los permisos de archivo. Habla con tu empresa de hospedaje.)','Your installation of WordPress prompts for FTP credentials to perform updates.'=>'La instalación de WordPress solicita las credenciales de FTP para realizar actualizaciones.','No version control systems were detected.'=>'No se han detectado sistemas de control de versiones.','The folder %1$s was detected as being under version control (%2$s).'=>'La carpeta %1$s ha sido detectada bajo control de versiones (%2$s).','The folder %1$s was detected as being under version control (%2$s), but the %3$s filter is allowing updates.'=>'La carpeta %1$s ha sido detectada bajo control de versiones (%2$s), pero el filtro %3$s está permitiendo las actualizaciones.','A previous automatic background update could not occur.'=>'No se ha podido realizar una actualización de fondo automática anterior.','The error code was %s.'=>'El código de error es %s.','When you\'ve been able to update using the "Update now" button on Dashboard > Updates, this error will be cleared for future update attempts.'=>'Cuando hayas podido actualizar usando el botón «Actualizar ahora» en «Escritorio > Actualizaciones», se vaciará este error para futuros intentos de actualización.','You would have received an email because of this.'=>'Habrás recibido un correo electrónico debido a esto.','A previous automatic background update ended with a critical failure, so updates are now disabled.'=>'Una anterior actualización automática del fondo terminó con un fallo crítico, así que ahora están desactivadas las actualizaciones.','The %s filter is enabled.'=>'El filtro %s está activado.','A plugin has prevented updates by disabling %s.'=>'Un plugin ha impedido las actualizaciones al desactivar %s.','The must use plugins directory'=>'El directorio de plugins imprescindibles','Theme features'=>'Características del tema','Parent theme'=>'Tema padre','Author website'=>'Web del autor','(Latest version: %s)'=>'(Última versión: %s)','Version %1$s by %2$s'=>'Versión %1$s por %2$s','No version or author information is available.'=>'La información de la versión o del autor no está disponible.','Server version'=>'Versión del servidor','Your %s file contains only core WordPress features.'=>'Tu archivo %s solo contiene características del núcleo de WordPress.','Custom rules have been added to your %s file.'=>'Se han añadido reglas personalizadas a tu archivo %s.','.htaccess rules'=>'Reglas de .htaccess','Is the Imagick library available?'=>'¿Está disponible la biblioteca Imagick?','Is SUHOSIN installed?'=>'¿Está SUHOSIN instalado?','cURL version'=>'Versión de cURL','PHP post max size'=>'PHP post max size','Upload max filesize'=>'Tamaño máximo subida de archivo','Max input time'=>'Tiempo máximo de entrada','PHP memory limit'=>'Límite de memoria PHP','PHP time limit'=>'Límite de tiempo de PHP','PHP max input variables'=>'PHP max input variables','Unable to determine some settings, as the %s function has been disabled.'=>'No ha sido posible determinar algunos ajustes, ya que la función %s ha sido desactivada. ','Server settings'=>'Ajustes del servidor','PHP SAPI'=>'PHP SAPI','(Does not support 64bit values)'=>'(No es compatible con valores de 64 bits)','(Supports 64bit values)'=>'(Admite valores de 64 bits)','PHP version'=>'Versión de PHP','Unable to determine what web server software is used'=>'No ha sido posible qué software del servidor web se utilizaba','Web server'=>'Servidor web','Unable to determine server architecture'=>'No se puede determinar la arquitectura del servidor','Server architecture'=>'Arquitectura del servidor','Ghostscript version'=>'Versión de Ghostscript','Unable to determine if Ghostscript is installed'=>'No se puede determinar si Ghostscript está instalado','GD version'=>'Versión de GD','Imagick Resource Limits'=>'Límites de recursos de Imagick','ImageMagick version string'=>'Cadena de versión de ImageMagick','ImageMagick version number'=>'Número de versión de ImageMagick','Not available'=>'No disponible','Active editor'=>'Editor activo','Total installation size'=>'Tamaño total de la instalación','Database size'=>'Tamaño de la base de datos','WordPress directory size'=>'Tamaño del directorio de WordPress','WordPress directory location'=>'Ubicación del directorio de WordPress','Plugins directory size'=>'Tamaño del directorio de plugins','Plugins directory location'=>'Ubicación del directorio de plugins','Themes directory size'=>'Tamaño del directorio de temas','Theme directory location'=>'Ubicación del directorio de temas','Uploads directory size'=>'Tamaño del directorio de subidas','Uploads directory location'=>'Ubicación del directorio de subidas','Unable to reach WordPress.org at %1$s: %2$s'=>'No se ha podido llegar a WordPress.org en %1$s: %2$s','WordPress.org is reachable'=>'Es posible conectarse a WordPress.org','Communication with WordPress.org'=>'Comunicación con WordPress.org','Network count'=>'Cantidad de redes','Site count'=>'Cantidad de sitios','User count'=>'Cantidad de usuarios','The themes directory'=>'El directorio de temas','The plugins directory'=>'El directorio de plugins','The uploads directory'=>'El directorio de subidas','The wp-content directory'=>'El directorio «wp-content»','Not writable'=>'No editable','Writable'=>'Editable','The main WordPress directory'=>'El directorio principal de WordPress','Shows whether WordPress is able to write to the directories it needs access to.'=>'Muestra si WordPress puede escribir en los directorios a los que necesita acceso.','Filesystem Permissions'=>'Permisos del sistema de archivos','Undefined'=>'Sin definir','WordPress Constants'=>'Constantes de WordPress','Database'=>'Base de datos','The options shown below relate to your server setup. If changes are required, you may need your web host’s assistance.'=>'Las opciones que se muestran a continuación se refieren a la configuración de tu servidor. Si hay cambios obligatorios, es posible que necesites la ayuda de tu alojamiento web.','Server'=>'Servidor','Media Handling'=>'Gestión de medios','Inactive Plugins'=>'Plugins inactivos','Active Plugins'=>'Plugins activos','Must Use Plugins'=>'Plugins imprescindibles','Active Theme'=>'Tema activo','Drop-ins'=>'Dependientes','Directories and Sizes'=>'Directorios y tamaños','Is this a multisite?'=>'¿Es esto un multisitio?','Default comment status'=>'Estado por defecto de los comentarios','Can anyone register on this site?'=>'¿Cualquiera puede registrarse en este sitio?','Is this site using HTTPS?'=>'¿Está utilizando HTTPS este sitio?','No permalink structure set'=>'Estructura de enlace permanente no establecida','Permalink structure'=>'Estructura de enlaces permanentes','Site URL'=>'URL del sitio','Home URL'=>'URL de inicio','Site Health'=>'Salud del sitio','requestsAll (%s)'=>'Todas (%s)' . "\0" . 'Todas (%s)','Show comments cookies opt-in checkbox, allowing comment author cookies to be set'=>'Mostrar la casilla de verificación de aceptación de cookies en los comentarios, permitiendo que se establezcan las cookies de autor de comentarios','Next theme'=>'Siguiente tema','Previous theme'=>'Tema anterior','If you change this, an email will be sent at your new address to confirm it. The new address will not become active until confirmed.'=>'Si cambias esto, se te enviará un correo electrónico a tu nueva dirección para confirmarlo. La nueva dirección no se convertirá en la activa hasta que se confirme.','Theme resumed.'=>'Tema reactivado.','Theme could not be resumed because it triggered a fatal error.'=>'El tema no se puede reactivar porque ha provocado un error fatal.','If you notice “headers already sent” messages, problems with syndication feeds or other issues, try deactivating or removing this plugin.'=>'Si observas mensajes de «cabeceras ya enviadas», problemas con las fuentes de sindicación u otros problemas, trata de desactivar o eliminar este plugin.','The plugin generated %d character of unexpected output during activation.'=>'El plugin ha generado %d carácter de salida inesperado durante la activación.' . "\0" . 'El plugin ha generado %d caracteres de salida inesperados durante la activación.','Sorry, you are not allowed to resume this plugin.'=>'Lo siento, no tienes permisos para reactivar este plugin.','WordPress Events and News — Upcoming events near you as well as the latest news from the official WordPress project and the WordPress Planet.'=>'Eventos y noticias WordPress — Próximos eventos cerca de ti, así como las últimas noticias del proyecto oficial de WordPress y el planeta WordPress.','You cannot update because WordPress %2$s requires MySQL version %3$s or higher. You are running version %4$s.'=>'No puedes actualizar porque WordPress %2$s necesita una versión de MySQL superior a la %3$s. Actualmente tienes la versión %4$s.','You cannot update because WordPress %2$s requires PHP version %3$s or higher. You are running version %4$s.'=>'No puedes actualizar porque WordPress %2$s necesita la versión %3$s o superior de PHP. Estás ejecutando la versión %4$s.','Add menu items'=>'Añadir elementos al menú','or create a new menu. Do not forget to save your changes!'=>'o crea un nuevo menú. ¡No olvides guardar tus cambios!','Click the Save Menu button to save your changes.'=>'Haz clic en el botón Guardar menú para guardar tus cambios.','Edit your menu below, or create a new menu. Do not forget to save your changes!'=>'Edita a continuación tu menú o crea un nuevo menú. ¡No olvides guardar tus cambios!','Fill in the Menu Name and click the Create Menu button to create your first menu.'=>'Escribe el nombre del menú y haz clic en el botón Crear menú para crear tu primer menú.','Create your first menu below.'=>'Crea abajo tu primer menú.','You cannot install because WordPress %2$s requires MySQL version %3$s or higher. You are running version %4$s.'=>'No puedes instalar porque WordPress %2$s requiere la versión %3$s o superior de MySQL. Estás ejecutando la versión %4$s.','You cannot install because WordPress %2$s requires PHP version %3$s or higher. You are running version %4$s.'=>'No puedes instalar porque WordPress %2$s necesita la versión %3$s o superior de PHP. Estás ejecutando la versión %4$s.','Learn more about updating PHP'=>'Aprende más sobre actualizar PHP','What is PHP and how does it affect my site?'=>'¿Qué es PHP y cómo afecta a mi sitio?','PHP Update Required'=>'Es necesario actualizar PHP','You can find more details and make changes on the Plugins screen.'=>'Puedes encontrar más detalles y hacer cambios en la pantalla de plugins.','One or more plugins failed to load properly.'=>'Uno o más plugins no han cargado correctamente.','Could not resume the plugin.'=>'No se ha podido reactivar el plugin.','Custom PHP fatal error handler.'=>'Controlador de errores fatales PHP personalizado.','Custom PHP error message.'=>'Error de PHP personalizado.','Could not remove the old translation.'=>'No se ha podido eliminar la traducción antigua.','Removing the old version of the translation…'=>'Eliminando la versión antigua de la traducción…','Click here to update WordPress.'=>'Haz clic aquí para actualizar WordPress.','Error: This plugin requires a newer version of WordPress.'=>'Error: Este plugin necesita una versión más reciente de WordPress..','Click here to learn more about updating PHP.'=>'Haz clic aquí para aprender más sobre cómo actualizar PHP.','Error: This plugin requires a newer version of PHP.'=>'Error: Este plugin necesita una versión más reciente de PHP.','Add widget: %s'=>'Añadir widget: %s','Add to: %s'=>'Añadir a: %s','Track %s.'=>'Pista %s.','My Network'=>'Mi red','This plugin does not work with your version of PHP.'=>'Este plugin no funciona con tu versión de PHP.','This plugin does not work with your version of WordPress.'=>'Este plugin no funciona con tu versión de WordPress.','This plugin does not work with your versions of WordPress and PHP.'=>'Este plugin no funciona con tus versiones de WordPress y PHP.','https://wordpress.org/documentation/wordpress-version/version-%s/'=>'https://wordpress.org/documentation/wordpress-version/version-%s/','Resume'=>'Reactivar','pluginResume %s'=>'Reactivar %s','You can find more details and make changes on the Themes screen.'=>'Puedes encontrar más detalles y hacer cambios en la pantalla de temas.','One or more themes failed to load properly.'=>'Uno o más temas no se han cargado correctamente.','Could not resume the theme.'=>'No se ha podido reactivar el tema.','Deleting a category does not delete the posts in that category. Instead, posts that were only assigned to the deleted category are set to the default category %s. The default category cannot be deleted.'=>'Al eliminar una categoría no se eliminan las entradas de esa categoría. En su lugar, las entradas que solo se asignaron a la categoría borrada, se asignan a la categoría por defecto %s. La categoría por defecto no se puede borrar.','The block widgets require JavaScript. Please enable JavaScript in your browser settings, or install the Classic Widgets plugin.'=>'El editor de bloques requiere JavaScript. Por favor, activa JavaScript en los ajustes de tu navegador, o prueba el plugin Classic Editor.','A post type mismatch has been detected.'=>'Se ha detectado un desajuste en el tipo de contenido.','A post ID mismatch has been detected.'=>'Se ha detectado un desajuste en el ID del contenido.','Please open the classic editor to use this meta box.'=>'Por favor, abre el editor clásico para usar esta caja meta.','Please activate the Classic Editor plugin to use this meta box.'=>'Por favor, activa el plugin Classic Editor para usar esta caja meta.','Please install the Classic Editor plugin to use this meta box.'=>'Por favor, instala el plugin Classic Editor para usar esta caja meta.','This meta box is not compatible with the block editor.'=>'Esta caja meta no es compatible con el editor de bloques.','To distribute copies of your modified versions to others.'=>'Distribuir copias a otros de tus versiones modificadas.','The 4th Freedom'=>'La 4ª libertad','To redistribute.'=>'Redistribuirlo.','The 3rd Freedom'=>'La 3ª libertad','To study how the program works and change it to make it do what you wish.'=>'Estudiar cómo funciona el programa y cambiarlo para que haga lo que tú desees.','The 2nd Freedom'=>'La 2ª libertad','To run the program for any purpose.'=>'Ejecutar el programa para cualquier propósito.','The 1st Freedom'=>'La 1ª libertad','Created'=>'Creada','Welcome to WordPress. This is your first post. Edit or delete it, then start writing!'=>'Te damos la bienvenida a WordPress. Esta es tu primera entrada. Edítala o bórrala, ¡luego empieza a escribir!','As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!'=>'Como nuevo usuario de WordPress, deberías ir a tu escritorio para borrar esta página y crear nuevas páginas para tu contenido. ¡Pásalo bien!','The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.'=>'La empresa «Mariscos Recio» fue fundada por Antonio Recio Mata. Empezó siendo una pequeña empresa que suministraba marisco a hoteles y restaurantes, pero poco a poco se ha ido transformando en un gran imperio. Mariscos Recio, el mar al mejor precio.','...or something like this:'=>'…o algo así:','Hi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin\' caught in the rain.)'=>'¡Hola! Soy camarero de día, aspirante a actor de noche y esta es mi web. Vivo en Mairena del Alcor, tengo un perro que se llama Firulais y me gusta el rebujito. (Y las tardes largas con café).','This is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:'=>'Esta es una página de ejemplo. Es diferente a una entrada del blog porque permanecerá en un solo lugar y aparecerá en la navegación de tu sitio (en la mayoría de los temas). La mayoría de las personas comienzan con una página «Acerca de» que les presenta a los visitantes potenciales del sitio. Podrías decir algo así:','Export “%s” as JSON'=>'Exportar «%s» como JSON','1 pattern not updated, somebody is editing it.'=>'1 patrón no actualizado, alguien lo está editando.','%s pattern restored from the Trash.'=>'%s patrón restaurado de la papelera.' . "\0" . '%s patrones restaurados de la papelera.','Error: "Table Prefix" must not be empty.'=>'Error: el «prefijo de tabla» no debe estar vacío.','This meta box, from the %s plugin, is not compatible with the block editor.'=>'Esta caja meta, del plugin %s, no es compatible con el editor de bloques.','personal data group labelAbout'=>'Acerca de','page titleAbout'=>'Acerca de','Edit or preview your Privacy Policy page content.'=>'Edita o previsualiza el contenido de tu página de política de privacidad.','Privacy Policy Page'=>'Página de política de privacidad','%s (Draft)'=>'%s (Borrador)','Privacy Policy page updated successfully.'=>'Página de política de privacidad actualizada correctamente.','The suggested privacy policy content should be added by using the %s (or later) action. Please see the inline documentation.'=>'El contenido sugerido de la política de privacidad debe añadirse usando la acción %s (o posterior). Mira la documentación incluida, por favor.','The suggested privacy policy content should be added only in wp-admin by using the %s (or later) action.'=>'El contenido sugerido de la política de privacidad solo debería ser añadido en wp-admin usando la acción %s (o posterior).','The suggested privacy policy text has changed. Please review the guide and update your privacy policy.'=>'El texto sugerido de la política de privacidad ha cambiado. Por favor, revisa la guía y actualiza tu política de privacidad.','There are no pages.'=>'No hay páginas.','Need help putting together your new Privacy Policy page? Check out the privacy policy guide%3$s for recommendations on what content to include, along with policies suggested by your plugins and theme.'=>'¿Necesitas ayuda para crear tu nueva página de la política de privacidad? Échale un vistazo a nuestra guía de la política de privacidad%3$s con recomendaciones sobre qué contenido incluir, además de políticas sugeridas por tus plugins y tema.','Privacy Policy Guide'=>'Guía para la política de privacidad','Visitor comments may be checked through an automated spam detection service.'=>'Los comentarios de los visitantes puede que los revise un servicio de detección automática de spam.','In this subsection you should note what analytics package you use, how users can opt out of analytics tracking, and a link to your analytics provider’s privacy policy, if any.'=>'En esta subsección deberías anotar qué paquete de analítica usas, cómo los usuarios pueden decidir sobre el seguimiento de la analítica y un enlace a la política de privacidad de tu proveedor de analítica, si lo tuviera.','In this subsection you should note what information may be disclosed by users who can upload media files. All uploaded files are usually publicly accessible.'=>'En esta subsección deberías anotar qué información puede mostrarse de los usuarios que suban archivos de medios. Todos los archivos subidos son normalmente accesibles públicamente.','In this subsection you should note what information is captured through comments. We have noted the data which WordPress collects by default.'=>'En esta subsección deberías anotar qué información se captura en los comentarios. Hemos anotado los datos que WordPress recopila por defecto.','In this section you should note what personal data you collect from users and site visitors. This may include personal data, such as name, email address, personal account preferences; transactional data, such as purchase information; and technical data, such as information about cookies.'=>'En esta sección deberías anotar qué datos personales recopilas de los usuarios y de los visitantes del sitio. Esto podría incluir datos personales tales como el nombre, dirección de correo electrónico, preferencias personales de la cuenta; datos transaccionales, como información de compras; y datos técnicos, como la información sobre las cookies.','Suggested text:'=>'Texto sugerido:','The template contains a suggestion of sections you most likely will need. Under each section heading, you will find a short summary of what information you should provide, which will help you to get started. Some sections include suggested policy content, others will have to be completed with information from your theme and plugins.'=>'La plantilla contiene una sugerencia de las secciones que es más probable que vayas a necesitar. Bajo el encabezado de cada sección, encontrarás un breve resumen de qué información deberías proporcionar, lo que te ayudará a empezar. Algunas secciones incluyen contenido sugerido para la política, otras tendrán que completarse con información de tu tema y plugins.','Updated %s.'=>'Actualizado %s.','You deactivated this plugin on %s and may no longer need this policy.'=>'Has desactivado este plugin el %s y puede que ya no necesites esta política.','Removed %s.'=>'Quitado %s.','Introduction'=>'Introducción','Need help putting together your new Privacy Policy page? Check out the guide for recommendations on what content to include, along with policies suggested by your plugins and theme.'=>'¿Necesitas ayuda para crear tu nueva página de política de privacidad? Échale un vistazo a la guía para ver consejos y recomendaciones sobre el contenido que debes añadir, además de las políticas sugeridas por tus plugins y tema.','Erasing data...'=>'Borrando los datos...','Add Data Erasure Request'=>'Añadir solicitud de borrado de datos','Send export link'=>'Enviar enlace de exportación','If you are a member of a regulated industry, or if you are subject to additional privacy laws, you may be required to disclose that information here.'=>'Si eres un miembro de un sector regulado, o si estás sujeto a leyes de privacidad adicionales, es posible que se te pida que reveles esa información aquí.','Industry regulatory disclosure requirements'=>'Requerimientos regulatorios de revelación de información del sector','If your website provides a service which includes automated decision making - for example, allowing customers to apply for credit, or aggregating their data into an advertising profile - you must note that this is taking place, and include information about how that information is used, what decisions are made with that aggregated data, and what rights users have over decisions made without human intervention.'=>'Si tu web proporciona un servicio que incluye la toma de decisiones automatizada —por ejemplo, permitir a los clientes solicitar crédito o agregar sus datos en un perfil publicitario— debes dar cuenta de que esto está ocurriendo, e incluir información sobre cómo se utiliza esa información, qué decisiones se toman con esos datos agregados, y qué derechos tienen los usuarios sobre las decisiones tomadas sin intervención humana.','What automated decision making and/or profiling we do with user data'=>'Qué tipo de toma de decisiones automatizada y/o perfilado hacemos con los datos del usuario','If your website receives data about users from third parties, including advertisers, this information must be included within the section of your privacy policy dealing with third party data.'=>'Si tu web recibe datos sobre los usuarios de terceros, incluidos los anunciantes, esta información debe incluirse en la sección de tu aviso de privacidad relativo a los datos de terceros.','What third parties we receive data from'=>'De qué terceros recibimos datos','In this section you should explain what procedures you have in place to deal with data breaches, either potential or real, such as internal reporting systems, contact mechanisms, or bug bounties.'=>'En esta sección debes explicar qué procedimientos tienes en marcha para tratar las brechas de datos, ya sean reales o potenciales, tales como sistemas internos de informes, mecanismos de contacto o compensaciones por fallos.','What data breach procedures we have in place'=>'Qué procedimientos utilizamos contra las brechas de datos','In this section you should explain what measures you have taken to protect your users’ data. This could include technical measures such as encryption; security measures such as two factor authentication; and measures such as staff training in data protection. If you have carried out a Privacy Impact Assessment, you can mention it here too.'=>'En esta sección debes explicar qué medidas has tomado para proteger los datos de tus usuarios. Esto podría incluir medidas técnicas como el cifrado; medidas de seguridad como la identificación de dos factores; y medidas como la formación del personal en materia de protección de datos. Si has realizado una evaluación del impacto en la privacidad, puedes mencionarlo aquí también.','How we protect your data'=>'Cómo protegemos tus datos','If you use your site for commercial purposes and you engage in more complex collection or processing of personal data, you should note the following information in your privacy policy in addition to the information we have already discussed.'=>'Si utilizas tu web con fines comerciales y realizas una recopilación o procesamiento de datos personales más compleja, deberías anotar la siguiente información en tu aviso de privacidad, además de la información que ya hemos discutido.','Additional information'=>'Información adicional','In this section you should provide a contact method for privacy-specific concerns. If you are required to have a Data Protection Officer, list their name and full contact details here as well.'=>'En esta sección debes proporcionar un método de contacto para cuestiones específicas de privacidad. Si es necesario que tengas un responsable de protección de datos, indica también aquí su nombre y sus datos de contacto completos.','European data protection law requires data about European residents which is transferred outside the European Union to be safeguarded to the same standards as if the data was in Europe. So in addition to listing where data goes, you should describe how you ensure that these standards are met either by yourself or by your third party providers, whether that is through an agreement such as Privacy Shield, model clauses in your contracts, or binding corporate rules.'=>'La legislación europea de protección de datos exige que los datos sobre los residentes europeos que se transfieren fuera de la Unión Europea se salvaguarden con los mismos estándares que si los datos estuvieran en Europa. Por lo tanto, además de enumerar a dónde van los datos, debes describir cómo se asegura que tú mismo o tus proveedores terceros cumplan estas normas, ya sea a través de un acuerdo como Privacy Shield, cláusulas modelo en tus contratos o reglas corporativas vinculantes.','In this section you should list all transfers of your site data outside the European Union and describe the means by which that data is safeguarded to European data protection standards. This could include your web hosting, cloud storage, or other third party services.'=>'En esta sección deberías enumerar todas las transferencias de los datos de tu sitio fuera de la Unión Europea y describir los medios por los que se protegen esos datos de acuerdo con las normas europeas de protección de datos. Esto podría incluir tu alojamiento web, almacenamiento en la nube u otros servicios de terceros.','If you have an account on this site, or have left comments, you can request to receive an exported file of the personal data we hold about you, including any data you have provided to us. You can also request that we erase any personal data we hold about you. This does not include any data we are obliged to keep for administrative, legal, or security purposes.'=>'Si tienes una cuenta o has dejado comentarios en esta web, puedes solicitar recibir un archivo de exportación de los datos personales que tenemos sobre ti, incluyendo cualquier dato que nos hayas proporcionado. También puedes solicitar que eliminemos cualquier dato personal que tengamos sobre ti. Esto no incluye ningún dato que estemos obligados a conservar con fines administrativos, legales o de seguridad.','In this section you should explain what rights your users have over their data and how they can invoke those rights.'=>'En esta sección debes explicar qué derechos tienen tus usuarios sobre sus datos y cómo pueden ejercerlos.','What rights you have over your data'=>'Qué derechos tienes sobre tus datos','For users that register on our website (if any), we also store the personal information they provide in their user profile. All users can see, edit, or delete their personal information at any time (except they cannot change their username). Website administrators can also see and edit that information.'=>'De los usuarios que se registran en nuestra web (si los hay), también almacenamos la información personal que proporcionan en su perfil de usuario. Todos los usuarios pueden ver, editar o eliminar su información personal en cualquier momento (excepto que no pueden cambiar su nombre de usuario). Los administradores de la web también pueden ver y editar esa información.','If you leave a comment, the comment and its metadata are retained indefinitely. This is so we can recognize and approve any follow-up comments automatically instead of holding them in a moderation queue.'=>'Si dejas un comentario, el comentario y sus metadatos se conservan indefinidamente. Esto es para que podamos reconocer y aprobar comentarios sucesivos automáticamente, en lugar de mantenerlos en una cola de moderación.','In this section you should explain how long you retain personal data collected or processed by the website. While it is your responsibility to come up with the schedule of how long you keep each dataset for and why you keep it, that information does need to be listed here. For example, you may want to say that you keep contact form entries for six months, analytics records for a year, and customer purchase records for ten years.'=>'En esta sección deberás explicar durante cuánto tiempo se conservarán los datos personales recopilados o procesados por la web. Si bien es tu responsabilidad establecer por cuánto tiempo se conservará cada conjunto de datos y por qué lo conservas, esa información debe figurar aquí. Por ejemplo, puedes decir que mantienes las entradas del formulario de contacto durante seis meses, los registros de analítica durante un año, y los registros de compras de clientes durante diez años.','How long we retain your data'=>'Cuánto tiempo conservamos tus datos','By default WordPress does not share any personal data with anyone.'=>'Por defecto, WordPress no comparte ningún dato personal con nadie.','In this section you should name and list all third party providers with whom you share site data, including partners, cloud-based services, payment processors, and third party service providers, and note what data you share with them and why. Link to their own privacy policies if possible.'=>'En esta sección debes nombrar y enumerar todos los proveedores externos con los que compartes datos del sitio, incluidos los socios, los servicios basados en la nube, los procesadores de pagos y los proveedores de servicios externos, e indicar qué datos compartes con ellos y por qué. Enlaza a sus propios avisos de privacidad si es posible.','Who we share your data with'=>'Con quién compartimos tus datos','By default WordPress does not collect any analytics data. However, many web hosting accounts collect some anonymous analytics data. You may also have installed a WordPress plugin that provides analytics services. In that case, add information from that plugin here.'=>'Por defecto, WordPress no recoge ningún dato analítico. Sin embargo, muchas cuentas de alojamiento web recogen algunos datos analíticos anónimos. También es posible que hayas instalado un plugin de WordPress que proporciona servicios de analítica. En ese caso, añade la información de ese plugin aquí.','Analytics'=>'Analítica','These websites may collect data about you, use cookies, embed additional third-party tracking, and monitor your interaction with that embedded content, including tracking your interaction with the embedded content if you have an account and are logged in to that website.'=>'Estas web pueden recopilar datos sobre ti, utilizar cookies, incrustar un seguimiento adicional de terceros, y supervisar tu interacción con ese contenido incrustado, incluido el seguimiento de tu interacción con el contenido incrustado si tienes una cuenta y estás conectado a esa web.','Articles on this site may include embedded content (e.g. videos, images, articles, etc.). Embedded content from other websites behaves in the exact same way as if the visitor has visited the other website.'=>'Los artículos de este sitio pueden incluir contenido incrustado (por ejemplo, vídeos, imágenes, artículos, etc.). El contenido incrustado de otras webs se comporta exactamente de la misma manera que si el visitante hubiera visitado la otra web.','Embedded content from other websites'=>'Contenido incrustado de otros sitios web','If you edit or publish an article, an additional cookie will be saved in your browser. This cookie includes no personal data and simply indicates the post ID of the article you just edited. It expires after 1 day.'=>'Si editas o publicas un artículo se guardará una cookie adicional en tu navegador. Esta cookie no incluye datos personales y simplemente indica el ID del artículo que acabas de editar. Caduca después de 1 día.','When you log in, we will also set up several cookies to save your login information and your screen display choices. Login cookies last for two days, and screen options cookies last for a year. If you select "Remember Me", your login will persist for two weeks. If you log out of your account, the login cookies will be removed.'=>'Cuando accedas, también instalaremos varias cookies para guardar tu información de acceso y tus opciones de visualización de pantalla. Las cookies de acceso duran dos días, y las cookies de opciones de pantalla duran un año. Si seleccionas «Recuérdarme», tu acceso perdurará durante dos semanas. Si sales de tu cuenta, las cookies de acceso se eliminarán.','If you visit our login page, we will set a temporary cookie to determine if your browser accepts cookies. This cookie contains no personal data and is discarded when you close your browser.'=>'Si tienes una cuenta y te conectas a este sitio, instalaremos una cookie temporal para determinar si tu navegador acepta cookies. Esta cookie no contiene datos personales y se elimina al cerrar el navegador.','If you leave a comment on our site you may opt-in to saving your name, email address and website in cookies. These are for your convenience so that you do not have to fill in your details again when you leave another comment. These cookies will last for one year.'=>'Si dejas un comentario en nuestro sitio puedes elegir guardar tu nombre, dirección de correo electrónico y web en cookies. Esto es para tu comodidad, para que no tengas que volver a rellenar tus datos cuando dejes otro comentario. Estas cookies tendrán una duración de un año.','In this subsection you should list the cookies your website uses, including those set by your plugins, social media, and analytics. We have provided the cookies which WordPress installs by default.'=>'En esta subsección debes enumerar las cookies que utiliza tu web, incluidas las instaladas por tus plugins, redes sociales y analítica. Hemos proporcionado las cookies que WordPress instala por defecto.','Cookies'=>'Cookies','An anonymized string created from your email address (also called a hash) may be provided to the Gravatar service to see if you are using it. The Gravatar service privacy policy is available here: https://automattic.com/privacy/. After approval of your comment, your profile picture is visible to the public in the context of your comment.'=>'Una cadena anónima creada a partir de tu dirección de correo electrónico (también llamada hash) puede ser proporcionada al servicio de Gravatar para ver si la estás usando. La política de privacidad del servicio Gravatar está disponible aquí: https://automattic.com/privacy/. Después de la aprobación de tu comentario, la imagen de tu perfil es visible para el público en el contexto de tu comentario.','When visitors leave comments on the site we collect the data shown in the comments form, and also the visitor’s IP address and browser user agent string to help spam detection.'=>'Cuando los visitantes dejan comentarios en la web, recopilamos los datos que se muestran en el formulario de comentarios, así como la dirección IP del visitante y la cadena de agentes de usuario del navegador para ayudar a la detección de spam.','By default, WordPress does not include a contact form. If you use a contact form plugin, use this subsection to note what personal data is captured when someone submits a contact form, and how long you keep it. For example, you may note that you keep contact form submissions for a certain period for customer service purposes, but you do not use the information submitted through them for marketing purposes.'=>'Por defecto, WordPress no incluye un formulario de contacto. Si utilizas un plugin de formulario de contacto, utiliza esta subsección para indicar qué datos personales se capturan cuando alguien envía un formulario de contacto y cuánto tiempo los conservas. Por ejemplo, puedes indicar que mantienes los envíos de formularios de contacto durante un cierto período con fines de servicio al cliente, pero no utilizas la información enviada a través de ellos con fines de marketing.','Contact forms'=>'Formularios de contacto','If you upload images to the website, you should avoid uploading images with embedded location data (EXIF GPS) included. Visitors to the website can download and extract any location data from images on the website.'=>'Si subes imágenes a la web, deberías evitar subir imágenes con datos de ubicación (GPS EXIF) incluidos. Los visitantes de la web pueden descargar y extraer cualquier dato de ubicación de las imágenes de la web.','By default WordPress does not collect any personal data about visitors, and only collects the data shown on the User Profile screen from registered users. However some of your plugins may collect personal data. You should add the relevant information below.'=>'Por defecto, WordPress no recopila ningún dato personal sobre los visitantes y solo recopila los datos mostrados en la pantalla del perfil de usuario para los usuarios registrados. Sin embargo, algunos de tus plugins también pueden recopilar datos personales. Añade la información relevante a continuación.','Personal data is not just created by a user’s interactions with your site. Personal data is also generated from technical processes such as contact forms, comments, cookies, analytics, and third party embeds.'=>'Los datos personales no son solo creados por las interacciones de un usuario con tu sitio. Los datos personales también se generan a partir de procesos técnicos como formularios de contacto, comentarios, cookies, analítica e incrustaciones de terceros.','In addition to listing what personal data you collect, you need to note why you collect it. These explanations must note either the legal basis for your data collection and retention or the active consent the user has given.'=>'Además de enumerar los datos personales que recopilas, debes indicar por qué los recopilas. En estas explicaciones debe indicarse el fundamento jurídico de la recogida y conservación de los datos o el consentimiento activo del usuario.','You should also note any collection and retention of sensitive personal data, such as data concerning health.'=>'También deberías tener en cuenta cualquier recopilación y retención de datos personales sensibles, como los relativos a la salud.','What personal data we collect and why we collect it'=>'Qué datos personales recogemos y por qué los recogemos','Our website address is: %s.'=>'La dirección de nuestra web es: %s.','The amount of information you may be required to show will vary depending on your local or national business regulations. You may, for example, be required to display a physical address, a registered address, or your company registration number.'=>'La cantidad de información que se te puede pedir reflejar variará dependiendo de las regulaciones locales o nacionales de tu negocio. Por ejemplo, se te puede pedir que indiques una dirección física, una dirección registrada o el número de registro de tu empresa.','In this section you should note your site URL, as well as the name of the company, organization, or individual behind it, and some accurate contact information.'=>'En esta sección debes indicar la URL de tu sitio, así como el nombre de la empresa, organización, o individuo que hay detrás, y alguna información de contacto actualizada.','Who we are'=>'Quiénes somos','It is your responsibility to write a comprehensive privacy policy, to make sure it reflects all national and international legal requirements on privacy, and to keep your policy current and accurate.'=>'Es tu responsabilidad redactar una política de privacidad completa, asegurándote de que refleja todos los requisitos legales nacionales e internacionales sobre privacidad y mantener tu política actualizada y precisa.','Please edit your privacy policy content, making sure to delete the summaries, and adding any information from your theme and plugins. Once you publish your policy page, remember to add it to your navigation menu.'=>'Por favor, edita el contenido de tu política de privacidad, asegurándote de eliminar los resúmenes, y añade cualquier información de tus temas y plugins. Una vez que publiques tu página de política, recuerda añadirla a tu menú de navegación.','This text template will help you to create your website’s privacy policy.'=>'Esta plantilla de texto te ayudará a crear la política de privacidad de tu web.','As a website owner, you may need to follow national or international privacy laws. For example, you may need to create and display a privacy policy.'=>'Como propietario de una web, es posible que tengas que cumplir con las leyes de privacidad nacionales o internacionales. Por ejemplo, es posible que tengas que crear y mostrar una política de privacidad.','Force erasure has failed.'=>'Ha fallado el borrado forzado.','Email could not be sent.'=>'No se ha podido enviar el correo electrónico.','date/timeOn'=>'En','website URLAt URL'=>'En la URL','website nameFor site'=>'Para el sitio','email addressReport generated for'=>'Informe generado para','Exporter array at index %s does not include a friendly name.'=>'El índice %s del array del exportador no incluye un nombre amigable.','Sorry, you are not allowed to erase personal data on this site.'=>'Lo siento, no tienes permisos para borrar datos personales en este sitio.','Sorry, you are not allowed to export personal data on this site.'=>'Lo siento, no tienes permisos para exportar datos en este sitio.','Eraser index is out of range.'=>'El índice del borrador está fuera de rango.','Missing eraser index.'=>'Índice del borrador no disponible.','Expected done (boolean) in response array from exporter: %s.'=>'Se esperaba hecho (boleano) en el array de respuesta del exportador: %s.','Expected data array in response array from exporter: %s.'=>'Se esperaba array de datos en el array de respuesta del exportador: %s','Expected data in response array from exporter: %s.'=>'Se esperaban datos en el array de respuesta del exportador: %s','Expected response as an array from exporter: %s.'=>'Se esperaba respuesta como array del exportador: %s','Exporter callback is not a valid callback: %s.'=>'La respuesta del exportador no es una respuesta válida: %s','Exporter does not include a callback: %s.'=>'El exportador no incluye una respuesta: %s','Expected an array describing the exporter at index %s.'=>'Se esperaba un array que describiese el exportador en el índice %s.','Exporter index is out of range.'=>'El índice del exportador está fuera de rango.','Exporter index cannot be negative.'=>'El índice del exportador no puede ser negativo.','An exporter has improperly used the registration filter.'=>'Un exportador ha usado inadecuadamente el filtro de registro.','Missing page index.'=>'Índice de página no disponible.','Missing exporter index.'=>'Índice del exportador no disponible.','Invalid request type.'=>'Tipo de petición no válido.','Use This Page'=>'Usar esta página','Select a Privacy Policy page'=>'Elige una página de política de privacidad','Change your Privacy Policy page'=>'Cambia tu página de política de privacidad','Edit or view your Privacy Policy page content.'=>'Edita o ve el contenido de tu página de política de privacidad.','You should also review your privacy policy from time to time, especially after installing or updating any themes or plugins. There may be changes or new suggested information for you to consider adding to your policy.'=>'También deberías revisar tu política de privacidad de vez en cuando, especialmente después de instalar o actualizar temas o plugins. Podría haber cambios o nueva información sugerida que puedas plantearte añadir a tu política.','However, it is your responsibility to use those resources correctly, to provide the information that your privacy policy requires, and to keep that information current and accurate.'=>'Sin embargo, es tu responsabilidad usar estos recursos correctamente para ofrecer la información que requiera tu política de privacidad y mantener esa información actualizada y precisa.','The new page will include help and suggestions for your privacy policy.'=>'La nueva página incluirá ayuda y sugerencias para tu política de privacidad.','If you already have a Privacy Policy page, please select it below. If not, please create one.'=>'Si ya tienes una página de política de privacidad, por favor, selecciónala abajo. En caso contrario, crea una.','The currently selected Privacy Policy page is in the Trash. Please create or select a new Privacy Policy page or restore the current page.'=>'La página de política de privacidad seleccionada actualmente está en la papelera. Por favor, crea o selecciona una nueva página de política de privacidad, o restaura la página actual.','The currently selected Privacy Policy page does not exist. Please create or select a new page.'=>'La página de política de privacidad seleccionada actualmente no existe. Por favor, crea o selecciona una nueva página.','Unable to create a Privacy Policy page.'=>'No ha sido posible crear la página de política de privacidad.','privacy-policy'=>'politica-privacidad','Privacy Policy page setting updated successfully. Remember to update your menus!'=>'Ajuste de la página de política de privacidad actualizado correctamente. ¡Recuerda actualizar tus menús!','Copy suggested policy text from %s.'=>'Copia el texto sugerido de la política desde %s.','Howdy, + +Your request for an export of personal data has been completed. You may +download your personal data by clicking on the link below. For privacy +and security, we will automatically delete the file on ###EXPIRATION###, +so please download it before then. + +###LINK### + +Regards, +All at ###SITENAME### +###SITEURL###'=>'Hola, + +Tu petición de exportación de datos personales se ha completado. Puedes +descargar tus datos personales haciendo clic en el siguiente enlace. Por privacidad +y seguridad, borraremos automáticamente el archivo el ###EXPIRATION###, +así que, por favor, descárgalo antes. + +###LINK### + +Este correo electrónico se ha enviado a ###EMAIL###. + +Atentamente, +El equipo de ###SITENAME### +###SITEURL###','Email sent.'=>'Correo electrónico enviado.','Sending email...'=>'Enviando correo electrónico...','Download personal data again'=>'Descargar de nuevo los datos personales','Unable to send personal data export email.'=>'No ha sido posible enviar el correo electrónico de exportación de datos personales.','[%s] Personal Data Export'=>'[%s] Exportación de datos personales','Invalid request ID when sending personal data export email.'=>'ID de petición no válida al enviar el correo electrónico de exportación de datos personales.','Personal Data Export'=>'Exportación de datos personales','Personal Data Export for %s'=>'Exportación de datos personales para %s','A valid email address must be given.'=>'Se debe facilitar una dirección de correo electrónico válida.','Force erase personal data'=>'Forzar el borrado de los datos personales','Remove request'=>'Eliminar petición','Waiting for confirmation'=>'Esperando confirmación','Retry'=>'Reintentar','Downloading data...'=>'Descargando los datos...','Download personal data'=>'Descargar datos personales','Requested'=>'Solicitada','Requester'=>'Solicitante','Send Request'=>'Enviar petición','Username or email address'=>'Nombre de usuario o correo electrónico','Add Data Export Request'=>'Añadir petición de exportación de datos','Confirmation request initiated successfully.'=>'Confirmación de petición iniciada correctamente.','Unable to add this request. A valid email address or username must be supplied.'=>'No ha sido posible añadir esta petición. Se debe facilitar una dirección de correo electrónico o nombre de usuario válido.','Confirmation request sent again successfully.'=>'Petición de confirmación reenviada correctamente.','Unable to initiate confirmation request.'=>'No ha sido posible iniciar la petición de confirmación.','Invalid request ID.'=>'ID de petición no válido.','Expected done flag in response array from %1$s eraser (index %2$d).'=>'Se esperaba la etiqueta hecho en el array de respuesta del borrador %1$s (índice %2$d).','Expected messages key to reference an array in response array from %1$s eraser (index %2$d).'=>'Se esperaban mensajes claves a la referencia en la respuesta del array %1$s del borrador (índice %2$d)','Expected messages key in response array from %1$s eraser (index %2$d).'=>'Se esperaban mensajes clave en el array de respuesta %1$s del borrador (índice %2$d).','Expected items_retained key in response array from %1$s eraser (index %2$d).'=>'Se esperaba la clave items_retained en respuesta al array del borrador %1$s (índice %2$d).','Expected items_removed key in response array from %1$s eraser (index %2$d).'=>'Se esperaba la clave items_removed en respuesta al array del borrador %1$s (índice %2$d).','Did not receive array from %1$s eraser (index %2$d).'=>'No se ha recibido un array del borrador %1$s (índice %2$d).','Eraser array at index %d does not include a friendly name.'=>'El array del borrador en el índice %d no incluye un nombre amigable.','Expected an array describing the eraser at index %d.'=>'Se esperaba un array describiendo el borrador en el índice %d.','Page index cannot be less than one.'=>'El índice de página no puede ser menor que uno.','Eraser index cannot be less than one.'=>'El índice del borrador no puede ser menor que uno.','Invalid email address in request.'=>'Dirección de correo electrónico no válida en la petición.','Requires PHP Version:'=>'Necesita la versión de PHP:','This data is used to provide general enhancements to WordPress, which includes helping to protect your site by finding and automatically installing new updates. It is also used to calculate statistics, such as those shown on the WordPress.org stats page.'=>'Estos datos se usan para ofrecer mejoras generales a WordPress, lo que incluye la ayuda para proteger tu sitio encontrando e instalando automáticamente nuevas actualizaciones. También se usan para calcular estadísticas, como las mostradas en la página de estadísticas de WordPress.org.','There is no need to change your CSS here — you can edit and live preview CSS changes in the built-in CSS editor.'=>'No hay necesidad de cambiar tu CSS aquí — Puedes editar y previsualizar en vivo los cambios de CSS en el editor CSS integrado.','Did you know?'=>'¿Lo sabías?','Noteworthy Contributors'=>'Colaboradores destacados','If you decide to go ahead with direct edits anyway, use a file manager to create a copy with a new name and hang on to the original. That way, you can re-enable a functional version if something goes wrong.'=>'Si aún así decides seguir adelante con la edición directa, utiliza un gestor de archivos para crear una copia con un nombre nuevo y guarda el original. De esta forma podrás volver a activar una versión funcional si algo falla.','If you absolutely have to make direct edits to this plugin, use a file manager to create a copy with a new name and hang on to the original. That way, you can re-enable a functional version if something goes wrong.'=>'Si no tienes más remedio que editar directamente este plugin, utiliza un gestor de archivos para crear una copia con un nombre nuevo y quédate con el original. De esta forma podrás volver a activar una versión funcional si algo falla.','You appear to be making direct edits to your plugin in the WordPress dashboard. Editing plugins directly is not recommended as it may introduce incompatibilities that break your site and your changes may be lost in future updates.'=>'Parece que estás haciendo ediciones directas en tu plugin en el escritorio de WordPress. No se recomienda editar los plugins directamente, ya que puede introducir incompatibilidades que rompan tu sitio y tus cambios podrían perderse en futuras actualizaciones.','WordPress is not notifying any Update Services because of your site’s visibility settings.'=>'WordPress no está informando a ningún servicio de actualizaciones debido a los ajustes de visibilidad de tu sitio.','Error: The root directory of your site is not writable, so creating a file automatically was not possible. This is the URL rewrite rule you should have in your %2$s file. Create a new file called %2$s in the root directory of your site. Click in the field and press %3$s (or %4$s on Mac) to select all. Then insert this code into the %2$s file.'=>'Error: El directorio raíz de tu sitio no tiene permisos de escritura, por lo que no ha sido posible crear un archivo automáticamente. Esta es la regla de reescritura de la URL que deberías tener en tu archivo %2$s. Crea un nuevo archivo llamado %2$s en el directorio raíz de tu sitio. Haz clic en el siguiente campo y pulsa %3$s (o %4$s en Mac) para seleccionarlo todo. Luego inserta este código en el archivo %2$s.','Enter the same address here unless you want your site home page to be different from your WordPress installation directory.'=>'Escribe aquí la misma dirección a no ser que quieras que la página de inicio sea distinta que tu directorio de instalación de WordPress.','https://wordpress.org/about/license/'=>'https://es.wordpress.org/about/license/','From time to time, your WordPress site may send data to WordPress.org — including, but not limited to — the version you are using, and a list of installed plugins and themes.'=>'De vez en cuando, tu sitio WordPress puede enviar datos a WordPress.org —incluyendo, pero no limitado a— la versión de WordPress que estás usando y una lista de los plugins y temas instalados.','Uploaded on: %s'=>'Subido el: %s','Downloading installation package from %s…'=>'Descargando el paquete de instalación desde %s…','Downloading translation from %s…'=>'Descargando la traducción desde %s…','Downloading update from %s…'=>'Descargando la actualización desde %s…','Likely direct inclusion of %1$s in order to use %2$s. This is very wrong. Hook the %2$s call into the %3$s action instead.'=>'Probable inclusión directa de %1$s para usar %2$s. Esto es un error. En vez de eso, haz un gancho a %2$s para que llame a la acción %3$s.','Customization Draft'=>'Borrador de personalización','This draft comes from your unpublished customization changes. You can edit, but there is no need to publish now. It will be published automatically with those changes.'=>'Este borrador viene de tus cambios de personalización sin publicar. Puedes editarlo, pero no hay necesidad de publicarlo ahora. Se publicará automáticamente con esos cambios.','Theme Files'=>'Archivos del tema','folder'=>'carpeta','Unable to communicate back with site to check for fatal errors, so the PHP change was reverted. You will need to upload your PHP file change by some other means, such as by using SFTP.'=>'No ha sido posible comunicar con el sitio para comprobar los errores fatales, así que el cambio de PHP se ha revertido. Tendrás que subir el cambio a tu archivo PHP por otros medios, como por ejemplo usando SFTP.','Installation Required'=>'Instalación obligatoria','Could not fully remove the plugin %s.'=>'El plugin %s no se ha podido quitar completamente.','User has been created, but could not be added to this site.'=>'El usuario se ha creado, pero no se ha añadido a este sitio','That user could not be added to this site.'=>'Ese usuario no se ha podido añadir a este sitio.','Disable syntax highlighting when editing code'=>'Desactivar el resaltado de sintaxis al editar código','Syntax Highlighting'=>'Resaltado de sintaxis','Run the installation'=>'Realizar la instalación','https://wordpress.org/about/privacy/'=>'https://wordpress.org/about/privacy/','Press This is not available. Please contact your site administrator.'=>'«Publicar esto» no está disponible. Por favor, contacta con el administrador del sitio.','Press This is not installed. Please install Press This from the main site.'=>'Publicar esto no está instalado. Por favor, instala «Publicar esto» desde el sitio principal.','Activate Press This'=>'Activar Publicar esto','I understand'=>'Entendido','Heads up!'=>'¡Aviso!','Warning: Making changes to active plugins is not recommended.'=>'Advertencia: No se recomienda hacer cambios en los plugins activos.','Selected file content:'=>'Contenido del archivo seleccionado:','There was an error while trying to update the file. You may need to fix something and try updating again.'=>'Ha ocurrido un error al tratar de actualizar el archivo. Puede que tengas que reparar algo y tratar de actualizar de nuevo.','Homepage: %s'=>'Página de inicio: %s','Available tags:'=>'Etiquetas disponibles:','%s (already used in permalink structure)'=>'%s (ya utilizado en la estructura de enlaces permanentes)','%s added to permalink structure'=>'%s añadido a la estructura de enlaces permanentes','%s (A sanitized version of the author name.)'=>'%s (una versión saneada del nombre del autor.)','%s (Category slug. Nested sub-categories appear as nested directories in the URL.)'=>'%s (Slug de la categoría. Las subcategorías anidadas aparecen como directorios anidados en la URL.)','%s (The sanitized post title (slug).)'=>'%s (el título (slug) de entrada saneado.)','%s (The unique ID of the post, for example 423.)'=>'%s (el ID único de la entrada, por ejemplo 423.)','%s (Second of the minute, for example 33.)'=>'%s (segundos del minuto, por ejemplo 33.)','%s (Minute of the hour, for example 43.)'=>'%s (minutos de la hora, por ejemplo 43.)','%s (Hour of the day, for example 15.)'=>'%s (hora del día, por ejemplo 15.)','%s (Day of the month, for example 28.)'=>'%s (día del mes, por ejemplo 28.)','%s (Month of the year, for example 05.)'=>'%s (mes del año, por ejemplo 05.)','%s (The year of the post, four digits, for example 2004.)'=>'%s (el año de la entrada, en cuatro dígitos, por ejemplo 2004.)','Theme Installation'=>'Instalación del tema','%s is currently editing this post.'=>'%s está editando ahora esta entrada.','%s is currently editing this post. Do you want to take over?'=>'%s está editando ahora esta entrada. ¿Quieres tomar posesión?','Custom installation script.'=>'Script de instalación personalizado.','Active Installations:'=>'Instalaciones activas:','Plugin Installation'=>'Instalación del plugin','Settings — This page shows a list of all settings associated with this site. Some are created by WordPress and others are created by plugins you activate. Note that some fields are grayed out and say Serialized Data. You cannot modify these values due to the way the setting is stored in the database.'=>'Ajustes — Esta página muestra una lista de todos los ajustes asociados a este sitio. Algunos los crea WordPress, y otros los crean los plugins que activas. Observa que algunos campos están en gris e indican «Serialized Data». No puedes modificar estos valores debido al modo en que está almacenado el ajuste en la base de datos.','Themes — This area shows themes that are not already enabled across the network. Enabling a theme in this menu makes it accessible to this site. It does not activate the theme, but allows it to show in the site’s Appearance menu. To enable a theme for the entire network, see the Network Themes screen.'=>'Temas — Este área muestra los temas que no están actualmente activos en la red. Al activar un tema en este menú hace que esté disponible para este sitio. No activa el tema, pero permite que sea visible en el menú «Apariencia del sitio». Para activar un tema para toda la red revisa la pantalla Temas de la red.','Users — This displays the users associated with this site. You can also change their role, reset their password, or remove them from the site. Removing the user from the site does not remove the user from the network.'=>'Usuarios — Esto muestra los usuarios asociados a este sitio. También puedes cambiar su perfil, restablecer su contraseña o quitarlos del sitio. Al quitar a un usuario del sitio no se quita al usuario de la red.','Info — The site URL is rarely edited as this can cause the site to not work properly. The Registered date and Last Updated date are displayed. Network admins can mark a site as archived, spam, deleted and mature, to remove from public listings or disable.'=>'Información — Raramente se edita la URL del sitio, ya que esto puede provocar que el sitio no funcione correctamente. Se muestran la fecha de registro y la fecha de última actualización. Los administradores de la red pueden marcar un sitio como archivado, spam, eliminado y para adultos, para quitarlo de los listados públicos o desactivarlo.','The menu is for editing information specific to individual sites, particularly if the admin area of a site is unavailable.'=>'El menú es para editar información específica de sitios individuales, especialmente si el área de administración del sitio no está disponible.','Unable to write to file.'=>'No fue posible escribir en el archivo.','Your PHP code changes were not applied due to an error on line %1$s of file %2$s. Please fix and try saving again.'=>'Los cambios en tu código PHP se han revertido debido a un error en la línea %1$s del archivo %2$s. Por favor, corrígelo y trata de guardar de nuevo.','Events and News dashboard widgethttps://wordpress.org/news/'=>'https://es.wordpress.org/news/','Your Recent Drafts'=>'Tus borradores recientes','nameUnknown'=>'Desconocido','View posts by %s'=>'Ver entradas de %s','No description'=>'Sin descripción','%s Active Installations'=>'%s instalaciones activas','Theme installation failed.'=>'La instalación del tema ha fallado.','Plugin installation failed.'=>'La instalación del plugin ha fallado.','Activate Plugin & Go to Press This'=>'Activar plugin e ir a Publicar esto','Your scheduled changes just published'=>'Tus cambios programados recién publicados','themeActivate'=>'Activar','Allow link notifications from other blogs (pingbacks and trackbacks) on new posts'=>'Permitir avisos de enlaces de otros blogs (pingbacks y trackbacks) en las nuevas entradas','pluginNetwork Activate %s'=>'Activar %s para la red','pluginActivate %s'=>'Activar %s','No media files found.'=>'No se encontraron archivos de medios.','Run Importer'=>'Ejecutar el importador','Run %s'=>'Ejecutar %s','comment statusOpen'=>'Abiertos','Image Rotation'=>'Rotación de imagen','There are no events scheduled near you at the moment. Would you like to organize a WordPress event?'=>'En este momento no hay ningún evento programado cerca de ti. ¿Te gustaría organizar un evento WordPress?','Edit User %s'=>'Editar el usuario %s','Edit widget: %s'=>'Editar el widget: %s','https://make.wordpress.org/community/handbook/meetup-organizer/welcome/'=>'https://make.wordpress.org/community/handbook/meetup-organizer/welcome/','There are no events scheduled near %1$s at the moment. Would you like to organize a WordPress event?'=>'En este momento no hay ningún evento programado cerca de %1$s. ¿Te gustaría organizar un evento WordPress?','Attend an upcoming event near %s.'=>'Asiste a un próximo evento cerca de %s.','Cincinnati'=>'Madrid','City:'=>'Ciudad:','WordCamps'=>'WordCamps','Meetups'=>'Meetups','An error occurred. Please try again.'=>'Ha ocurrido un error. Por favor, inténtalo de nuevo.','WordPress Events and News'=>'Eventos y noticias de WordPress','l, M j, Y'=>'l, j M Y','Unknown API error.'=>'Error de API la desconocido','Invalid API response code (%d).'=>'Código de respuesta no válida de la API (%d)','Sorry, you are not allowed to delete users.'=>'Lo siento, no tienes permisos para borrar usuarios.','Sorry, you are not allowed to create users.'=>'Lo siento, no tienes permisos para crear usuarios.','short (~12 characters) label for hide controls buttonHide Controls'=>'Ocultar controles','Expand Sidebar'=>'Desplegar la barra lateral','Display location'=>'Dónde se verá','ID #%1$s: %2$s Sorry, you are not allowed to remove this user.'=>'ID #%1$s: %2$s Lo siento, no tienes permisos para eliminar este usuario.','You can select the language you wish to use while using the WordPress administration screen without affecting the language site visitors see.'=>'Puedes elegir el idioma que quieras utilizar en la pantalla de administración de WordPress sin que afecte al idioma que ven los visitantes el sitio.','Edit Filters'=>'Editar los filtros','Clear current filters'=>'Vaciar los filtros actuales','Select one or more Theme features to filter by'=>'Elige una o varias características de temas por las que filtrar','(%s ratings)'=>'(%s valoraciones)','Current Background Image'=>'Imagen de fondo actual','Current Header Image'=>'Imagen de cabecera actual','Set status'=>'Establecer el estado','“%s” is locked'=>'«%s» está bloqueado','Active plugin installationsLess Than 10'=>'Menos de 10','Sorry, you are not allowed to attach files to this post.'=>'Lo siento, no tienes permisos para adjuntar archivos a esta entrada.','https://wordpress.org/plugins/'=>'https://es.wordpress.org/plugins/','The Customizer allows you to preview changes to your site before publishing them. You can navigate to different pages on your site within the preview. Edit shortcuts are shown for some editable elements. The Customizer is intended for use with non-block themes.'=>'El personalizador te permite previsualizar los cambios en tu sitio antes de publicarlos. Puedes navegar por las diferentes páginas de tu sitio en la vista previa. Se muestran atajos para algunos elementos editables. El personalizador está pensado para ser utilizado con temas que no sean de bloques.','Customize New Changes'=>'Personalizar nuevos cambios','Background ScrollScroll'=>'Scroll','Background RepeatRepeat'=>'Repetir','You can find new plugins to install by searching or browsing the directory right here in your own Plugins section.'=>'Puedes encontrar nuevos plugins para instalar buscando y explorando el directorio desde aquí mismo, en tu propia sección de Plugins.','Plugins hook into WordPress to extend its functionality with custom features. Plugins are developed independently from the core WordPress application by thousands of developers all over the world. All plugins in the official WordPress Plugin Directory are compatible with the license WordPress uses.'=>'Los plugins se enganchan a WordPress para ampliar su funcionalidad con características personalizables. Los plugins los desarrollan de forma independiente al núcleo de WordPress miles de desarrolladores de todo el mundo. Todos los plugins del directorio oficial de Plugins de WordPress son compatibles con la licencia que usa WordPress.','Search plugins by:'=>'Buscar plugins por:','Import posts, pages, comments, custom fields, categories, and tags from a WordPress export file.'=>'Importa entradas, páginas, comentarios, campos personalizados, categorías y etiquetas de un archivo de exportación de WordPress.','Import posts & media from Tumblr using their API.'=>'Importa entradas y medios de Tumblr usando su API.','Import posts from an RSS feed.'=>'Importa entradas de un feed RSS.','Import posts and comments from a Movable Type or TypePad blog.'=>'Importa entradas y comentarios de un blog Movable Type o TypePad.','Import posts from LiveJournal using their API.'=>'Importa entradas de LiveJournal usando su API.','Convert existing categories to tags or tags to categories, selectively.'=>'Convierte las categorías existentes a etiquetas o las etiquetas en categorías, de manera selectiva.','Import posts, comments, and users from a Blogger blog.'=>'Importa entradas, comentarios y usuarios de un blog de Blogger.','pluginDeactivate %s'=>'Desactivar %s','pluginDelete %s'=>'Borrar %s','pluginNetwork Deactivate %s'=>'Desactivar %s de la red','By default, new users will receive an email letting them know they’ve been added as a user for your site. This email will also contain a password reset link. Uncheck the box if you do not want to send the new user a welcome email.'=>'Por defecto, los nuevos usuarios recibirán un correo electrónico para hacerles saber que han sido añadidos como usuarios en tu sitio. Este correo electrónico también contendrá un enlace para restablecer la contraseña. Desmarca la casilla si no quieres enviar un correo electrónico de bienvenida a los nuevos usuarios.','New users are automatically assigned a password, which they can change after logging in. You can view or edit the assigned password by clicking the Show Password button. The username cannot be changed once the user has been added.'=>'A los usuarios nuevos se les asigna automáticamente una contraseña, que pueden cambiar después de acceder. Puedes ver o modificar la contraseña asignada haciendo clic en el botón de Mostrar contraseña. El nombre de usuario no se puede cambiar una vez que se ha añadido el usuario.','plugin%s was successfully deleted.'=>'%s ha sido borrado correctamente.','The search for installed plugins will search for terms in their name, description, or author.'=>'La búsqueda en los plugins instalados buscará términos en su nombre, descripción o autor.','Custom Logo'=>'Logotipo personalizado','Sorry, you are not allowed to remove users.'=>'Lo siento, no tienes permisos para eliminar usuarios.','Sorry, you are not allowed to add users to this network.'=>'Lo siento, no tienes permisos para añadir usuarios a esta red.','Sorry, you are not allowed to edit this changeset.'=>'Lo siento, no tienes permisos para editar este grupo de cambios.','Sorry, you are not allowed to update themes for this site.'=>'Lo siento, no tienes permisos para actualizar los temas de este sitio.','Sorry, you are not allowed to update this site.'=>'Lo siento, no tienes permisos para actualizar este sitio.','New version available. '=>'Nueva versión disponible. ','The Theme Installer screen requires JavaScript.'=>'La pantalla del instalador de temas requiere JavaScript.','Sorry, you are not allowed to edit templates for this site.'=>'Lo siento, no tienes permisos para editar plantillas en este sitio.','Error: "Table Prefix" is invalid.'=>'Error: el «prefijo de tabla» no es válido.','Sorry, you are not allowed to deactivate plugins for this site.'=>'Lo siento, no tienes permisos para desactivar plugins en este sitio.','Sorry, you are not allowed to activate plugins for this site.'=>'Lo siento, no tienes permisos para activar plugins en este sitio.','Sorry, you are not allowed to edit plugins for this site.'=>'Lo siento, no tienes permisos para editar plugins en este sitio.','Sorry, you are not allowed to modify unregistered settings for this site.'=>'Lo siento, no tienes permisos para modificar ajustes no registrados en este sitio.','Sorry, you are not allowed to manage options for this site.'=>'Lo siento, no tienes permisos para gestionar las opciones en este sitio.','Manage with Live Preview'=>'Gestionar con vista previa','Sorry, you are not allowed to delete this site.'=>'Lo siento, no tienes permisos para borrar este sitio.','Sorry, you are not allowed to add links to this site.'=>'Lo siento, no tienes permisos para añadir enlaces en este sitio.','Hi, this is a comment. +To get started with moderating, editing, and deleting comments, please visit the Comments screen in the dashboard. +Commenter avatars come from Gravatar.'=>'Hola, esto es un comentario. +Para empezar a moderar, editar y borrar comentarios, por favor, visita en el escritorio la pantalla de comentarios. +Los avatares de los comentaristas provienen de Gravatar.','theme%s was successfully deleted.'=>'%s ha sido borrado correctamente.','WordPress %2$s is available! Please notify the site administrator.'=>'¡Ya está disponible WordPress %2$s! Por favor, avisa al administrador del sitio.','Please update WordPress now'=>'Por favor, actualiza WordPress ahora','WordPress %2$s is available! Please update now.'=>'¡Ya está disponible WordPress %2$s! Por favor, actualiza ahora.','Portfolio'=>'Porfolio','Photography'=>'Fotografía','News'=>'Noticias','Food & Drink'=>'Comida y bebida','Entertainment'=>'Entretenimiento','Education'=>'Educación','E-Commerce'=>'Comercio electrónico','Blog'=>'Blog','Footer Widgets'=>'Widgets del pie de página','Grid Layout'=>'Diseño en cuadrícula','This will replace the current editor content with the last backup version. You can use undo and redo in the editor to get the old content back or to return to the restored version.'=>'Esto reemplazará el contenido actual del editor con la última versión de la copia de seguridad. Puedes usar deshacer o rehacer en el editor para recuperar el viejo contenido o volver a la versión restaurada.','Close media attachment panel'=>'Cierra el panel de adjuntar medios','Info'=>'Información','Need help? Use the Help tab above the screen title.'=>'¿Necesitas ayuda? Usa la pestaña de ayuda en la parte superior del título de la pantalla.','Sorry, you are not allowed to access this page.'=>'Lo siento, no tienes permisos para acceder a esta página.','Embed Footer Template'=>'Incrustar plantilla de pie','Embed Header Template'=>'Incrustar plantilla de cabecera','Embed Content Template'=>'Incrustar plantilla de contenido','Embed 404 Template'=>'Incrustar plantilla 404','Embed Template'=>'Incrustar plantilla','pluginActive'=>'Activo','(Private post)'=>'(Entrada privada)','Sorry, you are not allowed to edit the links for this site.'=>'Lo siento, no tienes permisos para editar los enlaces en este sitio.','Sorry, you are not allowed to manage privacy options on this site.'=>'Lo siento, no tienes permisos para gestionar las opciones de privacidad en este sitio.','Plugin could not be deleted.'=>'No se ha podido borrar el plugin.','Sorry, you are not allowed to update plugins for this site.'=>'Lo siento, no tienes permisos para actualizar plugins en este sitio.','Sorry, you are not allowed to activate plugins on this site.'=>'Lo siento, no tienes permiso para activar plugins en este sitio.','Theme could not be deleted.'=>'No se ha podido borrar el tema.','Sorry, you are not allowed to delete themes on this site.'=>'Lo siento, no tienes permisos para borrar temas en este sitio.','Sorry, you are not allowed to install themes on this site.'=>'Lo siento, no tienes permisos para para instalar temas en este sitio.','No theme specified.'=>'No se ha especificado ningún tema.','Sorry, you are not allowed to import content into this site.'=>'Lo siento, no tienes permisos para importar contenido en este sitio.','Sorry, you are not allowed to export the content of this site.'=>'Lo siento, no tienes permisos para exportar el contenido de este sitio.','You can filter the list of posts by post status using the text links above the posts list to only show posts with that status. The default view is to show all posts.'=>'Puedes filtrar la lista de entradas por estado de publicación usando los enlaces de texto sobre la lista de entradas para mostrar solo las entradas en ese estado. La visualización por defecto es mostrar todas las entradas.','Close the Customizer and go back to the previous page'=>'Cierra el Personalizador y vuelve a la página anterior','Sorry, you are not allowed to customize headers.'=>'Lo siento, no tienes permisos para personalizar cabeceras.','Release Deputy'=>'Responsable de la versión','Release Design Lead'=>'Líder del diseño de la versión','Custom fields can be used to add extra metadata to a post that you can use in your theme.'=>'Los campos personalizados pueden utilizarse para añadir metadatos extra a una entrada que puedes usar en tu tema.','Trackbacks are a way to notify legacy blog systems that you’ve linked to them. If you link other WordPress sites, they’ll be notified automatically using pingbacks, no other action necessary.'=>'Los trackbacks son la forma de avisar a otros blogs a los que has enlazado. Si enlazas a otros sitios WordPress, recibirán un aviso automáticamente utilizando pingbacks, no es necesario hacer nada más.','Excerpts are optional hand-crafted summaries of your content that can be used in your theme. Learn more about manual excerpts.'=>'Los extractos son resúmenes opcionales hechos a mano que pueden utilizarse en tu tema. Aprende más sobre los extractos manuales.','The Code mode allows you to enter HTML along with your post text. Note that <p> and <br> tags are converted to line breaks when switching to the Code editor to make it less cluttered. When you type, a single line break can be used instead of typing <br>, and two line breaks instead of paragraph tags. The line breaks are converted back to tags automatically.'=>'El modo de código te permite introducir HTML junto con el texto de la entrada. Ten en cuenta que las etiquetas <p> y <br> se convierten en saltos de línea cuando cambias al editor de código para ocupar menos espacio. Cuando escribes, puedes usar un salto de línea en vez de <br> y dos saltos de linea en vez de las etiquetas de párrafo. Los saltos de linea se convierten en etiquetas automáticamente.','Visual mode gives you an editor that is similar to a word processor. Click the Toolbar Toggle button to get a second row of controls.'=>'El modo visual te ofrece un editor similar a un procesador de textos. Haz clic en el botón «Alternar barra de herramientas» para disponer de una segunda fila de controles.','Error saving media file.'=>'Error al guardar el archivo de medios.','%s media file restored from the Trash.'=>'%s archivo de medios restaurado desde la papelera.' . "\0" . '%s archivos de medios restaurados desde la papelera.','%s media file moved to the Trash.'=>'%s archivo de medios movido a la papelera.' . "\0" . '%s archivos de medios movidos a la papelera.','%s media file permanently deleted.'=>'%s archivo multimedia borrado permanentemente.' . "\0" . '%s archivos multimedia borrados permanentemente.','%s media file detached.'=>'%s archivo multimedia sin adjuntar.' . "\0" . '%s archivos multimedia sin adjuntar.','Media file detached.'=>'Archivo multimedia sin adjuntar.','%s media file attached.'=>'%s archivo multimedia adjunto.' . "\0" . '%s archivos multimedia adjuntos.','Media file attached.'=>'Archivo multimedia adjunto.','Media file updated.'=>'Archivo de medios actualizado.','View %1$s version %2$s details'=>'Ver detalles de la versión %1$s de %2$s','dashboard%1$s, %2$s'=>'%1$s, %2$s','Publish — You can set the terms of publishing your post in the Publish box. For Status, Visibility, and Publish (immediately), click on the Edit link to reveal more options. Visibility includes options for password-protecting a post or making it stay at the top of your blog indefinitely (sticky). The Password protected option allows you to set an arbitrary password for each post. The Private option hides the post from everyone except editors and administrators. Publish (immediately) allows you to set a future or past date and time, so you can schedule a post to be published in the future or backdate a post.'=>'Publicar — Puedes establecer las condiciones de publicación de tu entrada en la caja Publicar. Para cambiar el Estado, Visibilidad y Publicar (inmediatamente) haz clic en el enlace Editar para ver más opciones. El apartado Visibilidad incluye opciones para proteger con contraseña una entrada o para hacer que se fije en la parte superior de tu blog de manera indefinida (fijo). La opción de Protegido con contraseña te permite establecer una contraseña distinta para cada entrada. La opción Privado oculta la entrada a todos excepto a editores y administradores. Publicar (inmediatamente) te permite establecer una fecha y hora futura, para que puedas programar que una entrada se publique en el futuro o en el pasado.','There is a pending change of your email to %s.'=>'Hay un cambio pendiente de tu correo electrónico a %s','Error while saving the new email address. Please try again.'=>'Error al guardar la nueva dirección de correo electrónico. Inténtalo de nuevo por favor.','You can narrow the list by file type/status or by date using the dropdown menus above the media table.'=>'Puedes ordenar la lista por tipo/estado de archivo o por fecha usando los menús desplegables superiores de la tabla de medios.','The following themes are installed but incomplete.'=>'Los siguientes temas se instalaron pero están incompletos.','New theme activated.'=>'Nuevo tema activado.','Settings saved and theme activated.'=>'Ajustes guardados y tema activado.','https://wordpress.org/themes/'=>'https://es.wordpress.org/themes/','Sorry, you are not allowed to delete that user.'=>'Lo siento, no tienes permisos para borrar ese usuario.','Your database password.'=>'La contraseña de tu base de datos.','Your database username.'=>'El nombre de usuario de tu base de datos.','The name of the database you want to use with WordPress.'=>'El nombre de la base de datos que quieres usar con WordPress.','plugin%1$s by %2$s'=>'%1$s por %2$s','%1$s by %2$s (will also delete its data)'=>'%1$s por %2$s (también borrará sus datos)','There is a pending change of the admin email to %s.'=>'Hay un cambio pendiente del correo electrónico del administrador a %s.','WordPress has been installed. Thank you, and enjoy!'=>'WordPress ya está instalado. ¡Gracias, y que lo disfrutes!','The constant %s cannot be defined when installing WordPress.'=>'No se ha podido definir la constante %s al instalar WordPress.','Your %s file has an empty database table prefix, which is not supported.'=>'Tu archivo %s tiene vacío el prefijo de la tabla de la base de datos, y es obligatorio.','Dismiss the welcome panel'=>'Descartar el panel de bienvenida','Theme zip file'=>'Archivo zip del tema','Attach to existing content'=>'Adjuntar al contenido existente','Click the image to edit or update'=>'Haz clic en la imagen para editarla o actualizarla','Reviews with %1$d star: %2$s. Opens in a new tab.'=>'Valoraciones con %1$d estrella: %2$s. Abre en una nueva pestaña.' . "\0" . 'Valoraciones con %1$d estrellas: %2$s. Abre en una nueva pestaña.','Read all reviews on WordPress.org or write your own!'=>'¡Lee todas las valoraciones en WordPress.org o escribe la tuya!','Reviews'=>'Valoraciones','You are using a development version of WordPress. These feature plugins are also under development. Learn more.'=>'Estás utilizando una versión de desarrollo de WordPress. Estos plugins destacados también están en desarrollo. Saber más.','Thumbnail Settings Help'=>'Ayuda sobre los ajustes de miniaturas','selection height'=>'altura de la selección','selection width'=>'anchura de la selección','crop ratio height'=>'altura del rango de recorte','crop ratio width'=>'anchura del rango de recorte','Image Crop Help'=>'Ayuda de recorte de imagen','scale height'=>'escalar altura','New dimensions:'=>'Nuevas dimensiones:','Scale Image Help'=>'Ayuda para escalar imágenes','Single Page'=>'Página individual','Singular Template'=>'Plantilla única','Date Template'=>'Plantilla de fecha','Taxonomy Template'=>'Plantilla de taxonomías','Dismiss the browser warning panel'=>'Descartar el panel de aviso del navegador.','View more comments'=>'Ver más comentarios','dashboard%1$s on %2$s %3$s'=>'%1$s el %2$s %3$s','View this comment'=>'Ver este comentario','Another update is currently in progress.'=>'En este momento hay otra actualización en marcha.','Update progress'=>'Progreso de la actualización','View “%s” archive'=>'Ver archivo de «%s»','Delete “%s”'=>'Borrar «%s»','Quick edit “%s” inline'=>'Edición rápida «%s» integrada','Search for plugins in the WordPress Plugin Directory.'=>'Buscar plugins en el directorio de plugins de WordPress','Restore “%s” from the Trash'=>'Restaurar «%s» de la papelera','Delete “%s” permanently'=>'Borrar «%s» permanentemente','Move “%s” to the Trash'=>'Mover «%s» a la papelera','Attach “%s” to existing content'=>'Adjuntar «%s» a contenido existente','Detach from “%s”'=>'Quitar como adjunto de «%s»','“%s” (Edit)'=>'«%s» (Editar)','attachment filterTrash'=>'Papelera','Quick edit this comment inline'=>'Edición rápida integrada de este comentario','Edit this comment'=>'Editar este comentario','Restore this comment from the spam'=>'Restaurar este comentario desde el spam','user autocomplete result%1$s (%2$s)'=>'%1$s (%2$s)','The %s importer is invalid or is not installed.'=>'El importador %s no es válido o no está instalado.','comment statusPending'=>'Pendiente','Suggested height is %s.'=>'La altura sugerida es %s.','Suggested width is %s.'=>'La anchura sugerida es %s.','Images should be at least %s tall.'=>'Las imágenes deberían tener al menos una altura de %s.','%d pixels'=>'%d píxeles','Images should be at least %s wide.'=>'Las imágenes deberían ser al menos de %s de ancho.','Send the new user an email about their account'=>'Envía al nuevo usuario un correo electrónico con información sobre su cuenta','Send User Notification'=>'Enviar aviso al usuario','menu location(Currently set to: %s)'=>'(Actualmente como: %s) ','Version %s addressed one security issue.'=>'Versión %s mostró un problema de seguridad.','https://gravatar.com/'=>'https://es.gravatar.com/','Profile Picture'=>'Imagen de perfil','Maintenance and Security Releases'=>'Versiones de mantenimiento y seguridad','Security Releases'=>'Versiones de seguridad','Maintenance Releases'=>'Versiones de mantenimiento','Plain'=>'Simple','WordPress offers you the ability to create a custom URL structure for your permalinks and archives. Custom URL structures can improve the aesthetics, usability, and forward-compatibility of your links. A number of tags are available, and here are some examples to get you started.'=>'WordPress te ofrece la posibilidad de crear una estructura de URLs personalizada para tus enlaces permanentes y archivos. Las estructuras de URLs personalizadas pueden mejorar la estética, usabilidad y compatibilidad futura de tus enlaces. Hay varias posibles etiquetas disponibles, y aquí tienes algunos ejemplos para empezar.','Permalinks can contain useful information, such as the post date, title, or other elements. You can choose from any of the suggested permalink formats, or you can craft your own if you select Custom Structure.'=>'Los enlaces permanentes pueden contener información valiosa, como la fecha de la entrada, el título u otros elementos. Puedes elegir entre cualquiera de los formatos de enlaces permanentes sugeridos o puedes crear los tuyos propios, si eliges Estructura personalizada.','You can create the %s file manually and paste the following text into it.'=>'Puedes crear manualmente el archivo %s y pegar el siguiente texto.','You should be able to get this info from your web host, if %s does not work.'=>'Si %s no funciona, deberías poder obtener esta información de tu proveedor de alojamiento web.','If for any reason this automatic file creation does not work, do not worry. All this does is fill in the database information to a configuration file. You may also simply open %1$s in a text editor, fill in your information, and save it as %2$s.'=>'Si por alguna razón no funciona la creación automática de este archivo, no te preocupes. Todo lo que hace es rellenar la información de la base de datos en un archivo de configuración. También simplemente puedes abrir %1$s en un editor de texto, rellenarlo con tu información y guardarlo como %2$s.','Default is %s'=>'Por defecto es %s','The language pack is missing either the %1$s, %2$s, or %3$s files.'=>'Al paquete de idioma le falta alguno de los archivos %1$s, %2$s o %3$s.','The %s stylesheet does not contain a valid theme header.'=>'La hoja de estilos %s no tiene una cabecera válida para el tema.','The theme is missing the %s stylesheet.'=>'El tema no tiene la hoja de estilos %s.','If you have marked themes as favorites on WordPress.org, you can browse them here.'=>'Si has marcado temas como favoritos en WordPress.org, podrás verlos aquí.','themesFavorites'=>'Favoritos','Database repair results'=>'Resultados de la reparación de la base de datos','Allow automatic database repair'=>'Permitir la reparación automática de la base de datos','Successful database connection'=>'Conexión con la base de datos conseguida','Set up your database connection'=>'Establece la conexión con tu base de datos','Before getting started'=>'Antes de empezar','WordPress database repair'=>'Reparación de la base de datos de WordPress','Check secret keys'=>'Comprobar las claves secretas','%s has been updated.'=>'%s se ha actualizado.','The Walker class named %s does not exist.'=>'La clase Walker denominada %s no existe.','Requires %1$s in %2$s file.'=>'Requiere %1$s en el archivo %2$s.','Standard time begins on: %s.'=>'La hora estándar comienza el: %s.','Daylight saving time begins on: %s.'=>'El horario de ahorro de energía comienza el: %s.','You are about to delete %s.'=>'Estás a punto de borrar %s.','Files in the %s directory are executed automatically.'=>'Los archivos del directorio %s se ejecutan automáticamente.','This will clear all items from the inactive widgets list. You will not be able to restore any customizations.'=>'Esto vaciará todos los elementos de la lista de widgets inactivos. No podrás recuperar las personalizaciones.','Clear Inactive Widgets'=>'Vaciar los widgets inactivos','One of the selected users is not a member of this site.'=>'Uno de los usuarios elegidos no es miembro de este sitio.','Users list'=>'Lista de usuarios','Users list navigation'=>'Navegación por la lista de usuarios','Filter users list'=>'Filtrar lista de usuarios','Media items list'=>'Listado de elementos multimedia','Media items list navigation'=>'Navegación por la lista de elementos multimedia','Filter media items list'=>'Filtrar lista de elementos multimedia','Install Parent Theme'=>'Instalar tema padre','Themes list'=>'Lista de temas','Filter themes list'=>'Filtrar lista de temas','All selected plugins are up to date.'=>'Todos los plugins seleccionados están actualizados.','Plugins list'=>'Lista de plugins','Plugins list navigation'=>'Navegación por la lista de plugins','Filter plugins list'=>'Filtrar lista de plugins','Browsing %s (inactive)'=>'Viendo %s (inactivo)','Editing %s (inactive)'=>'Editando %s (inactivo)','Browsing %s (active)'=>'Viendo %s (activo)','Editing %s (active)'=>'Editando %s (activo)','Local time is %s.'=>'La hora local es %s.','Links list'=>'Lista de enlaces','Get Version %s'=>'Obtener la versión %s','Toggle panel: %s'=>'Alternar panel: %s','Saving revision…'=>'Guardando la revisión…','Edit permalink'=>'Editar el enlace permanente','The %1$s plugin header is deprecated. Use %2$s instead.'=>'La cabecera del plugin %1$s está obsoleta. Utiliza %2$s en su lugar.','Warning'=>'Advertencia','Warning:'=>'Aviso:','Once you hit “Confirm Deletion”, these users will be permanently removed.'=>'Una vez hagas clic en «Confirmar eliminación» estos usuarios se eliminarán permanentemente.','Once you hit “Confirm Deletion”, the user will be permanently removed.'=>'Una vez hagas clic en «Confirmar borrado» el usuario se eliminará permanentemente.','User has no sites or content and will be deleted.'=>'El usuario no tiene sitios ni contenido y se borrará.','Site: %s'=>'Sitio: %s','Select a user'=>'Elige un usuario','What should be done with content owned by %s?'=>'¿Que deberíamos hacer con el contenido creado por %s?','Warning! User cannot be deleted. The user %s is a network administrator.'=>'¡Advertencia! El usuario no se puede borrar. El usuario %s es administrador de la red.','Warning! User %s cannot be deleted.'=>'¡Advertencia! El usuario %s no se puede borrar.','You have chosen to delete the following users from all networks and sites.'=>'Has elegido borrar los siguientes usuarios de todas la redes y sitios.','You have chosen to delete the user from all networks and sites.'=>'Has elegido borrar el usuario de todas las redes y sitios.','Invalid image URL.'=>'URL de la imagen no válida','Theme Header'=>'Cabecera del tema','Theme Footer'=>'Pie de página del tema','M jS Y'=>'j M Y','From %1$s %2$s'=>'En %1$s %2$s','View all drafts'=>'Ver todos los borradores','no user rolesNone'=>'Ninguno','No role'=>'Sin perfil','An error occurred while updating %1$s: %2$s'=>'Ha ocurrido un error al actualizar %1$s: %2$s','View mode'=>'Modo de visualización','%s column'=>'%s columna' . "\0" . '%s columnas','Additional settings'=>'Ajustes adicionales','Items list'=>'Lista de elementos','Items list navigation'=>'Navegación por la lista de elementos','Filter items list'=>'Filtrar la lista de elementos','Network Only'=>'Solo para la red','Network Active'=>'Activo para la red','No pending comments'=>'No hay comentarios pendientes','Failed to initialize a SFTP subsystem session with the SSH2 Server %s'=>'Fallo al inicializar una sesión de subsistema SFTP con el servidor SSH2 %s','column nameSubmitted on'=>'Enviado el','commentsTrash (%s)'=>'Papelera (%s)' . "\0" . 'Papelera (%s)','commentsSpam (%s)'=>'Spam (%s)' . "\0" . 'Spam (%s)','commentsApproved (%s)'=>'Aprobado (%s)' . "\0" . 'Aprobados (%s)','commentsPending (%s)'=>'Pendiente (%s)' . "\0" . 'Pendientes (%s)','commentsAll (%s)'=>'Todos (%s)' . "\0" . 'Todos (%s)','User %s added'=>'Usuario %s añadido','End date:'=>'Fecha de fin:','Content to export'=>'Contenido a exportar','You can view posts in a simple title list or with an excerpt using the Screen Options tab.'=>'Puedes ver las entradas en una lista simple de títulos o con el extracto, utilizando la pestaña de opciones de pantalla.','Submitted on: %s'=>'Enviado el: %s','commentPermalink:'=>'Enlace permanente:','Page draft updated.'=>'Borrador de página actualizado.','Page scheduled for: %s.'=>'Página programada para: %s','Page submitted.'=>'Página enviada.','Post draft updated.'=>'Borrador de entrada actualizado.','Post scheduled for: %s.'=>'Entrada programada el: %s.','Post submitted.'=>'Entrada enviada.','View page'=>'Ver página','Preview page'=>'Vista previa de la página','Preview post'=>'Vista previa de la entrada','Comments list'=>'Lista de comentarios','Comments list navigation'=>'Navegación por la lista de comentarios','Filter comments list'=>'Filtrar la lista de comentarios','In the Submitted on column, the date and time the comment was left on your site appears. Clicking on the date/time link will take you to that comment on your live site.'=>'En la columna Enviado el, aparece la fecha y hora en que se ha dejado el comentario en tu sitio. Haciendo clic en el enlace de fecha/hora, te llevará a ese comentario en tu sitio.','In the Comment column, hovering over any comment gives you options to approve, reply (and approve), quick edit, edit, spam mark, or trash that comment.'=>'En la columna Comentario, al pasar el cursor sobre cualquier comentario, verás las opciones de aprobar, responder (y aprobar), edición rápida, editar, marcar como spam o enviar a la papelera ese comentario.','Comments (%s)'=>'Comentarios (%s)','Comments (%1$s) on “%2$s”'=>'Comentarios (%1$s) el «%2$s»','Sorry, you are not allowed to modify themes.'=>'Lo siento, no tienes permisos para modificar temas.','The active theme does not support a flexible sized header image.'=>'El tema activo no es compatible con cabecera de imagen de tamaño flexible.','You are using the auto-generated password for your account. Would you like to change it?'=>'Estás usando la contraseña generada automáticamente para tu cuenta. ¿Quieres cambiarla?','You have specified this user for removal:'=>'Has especificado que se borre a este usuario:','Log %s out of all locations.'=>'Desconectar %s de todas las ubicaciones.','Did you lose your phone or leave your account logged in at a public computer? You can log out everywhere else, and stay logged in here.'=>'¿Has perdido tu teléfono o dejado tu cuenta abierta en un ordenador público? Puedes desconectarte de cualquier lugar y seguir conectado aquí.','Log Out Everywhere Else'=>'Desconectar del resto de sitios','Sessions'=>'Sesiones','Cancel password change'=>'Cancelar el cambio de contraseña','Generate password'=>'Generar contraseña','Account Management'=>'Gestión de la cuenta','You will need this password to log in. Please store it in a secure location.'=>'Necesitas esta contraseña para acceder. Por favor, guárdala en un lugar seguro.','No approved comments'=>'No hay ningún comentario aprobado','%s pending comment'=>'%s comentario pendiente' . "\0" . '%s comentarios pendientes','%s approved comment'=>'%s comentario aprobado' . "\0" . '%s comentarios aprobados','Image could not be processed.'=>'No se ha podido procesar la imagen.','Confirm Password'=>'Confirma la contraseña','Remove Site Icon'=>'Quitar el icono del sitio','While you are editing your %1$s file, take a moment to make sure you have all 8 keys and that they are unique. You can generate these using the WordPress.org secret key service.'=>'Mientras editas tu archivo %1$s tómate un momento para asegurarte de que tienes las 8 claves y que son únicas. Puedes generarlas usando el servicio de claves secretas de WordPress.org.','Set as Site Icon'=>'Establecer como icono del sitio','Choose a Site Icon'=>'Elige un icono del sitio','Show more details'=>'Mostrar más detalles','Your theme supports %s menu. Select which menu appears in each location.'=>'Tu tema tiene %s menús. Elige qué menú debería aparecer en cada ubicación.' . "\0" . 'Tu tema tiene %s menús. Elige qué menú debería aparecer en cada ubicación.','%s post by this author'=>'%s entrada de este autor' . "\0" . '%s entradas de este autor','Live Preview “%s”'=>'Vista previa «%s»','last page'=>'última página','first page'=>'primera página','In response to: %s'=>'En respuesta a: %s','Date and time'=>'Fecha y hora','You can also embed media from many popular websites including Twitter, YouTube, Flickr and others by pasting the media URL on its own line into the content of your post/page. Learn more about embeds.'=>'Puedes incrustar medios de muchas webs populares, incluyendo Twitter, YouTube, Flickr y otras, solo con pegar la URL del medio en su propia línea dentro del contenido de tu entrada/página. Aprende más sobre las incrustaciones.','Documentation on Custom Background'=>'Documentación sobre fondos personalizados','Documentation on Link Categories'=>'Documentación sobre categorías de enlaces','Documentation on Creating Links'=>'Documentación sobre la creación de enlaces','Documentation on Managing Links'=>'Documentación sobre la gestión de enlaces','Documentation on Custom Header'=>'Documentación sobre cabeceras personalizadas','Documentation on My Sites'=>'Documentación sobre Mis sitios','The theme you are currently using is not widget-aware, meaning that it has no sidebars that you are able to change. For information on making your theme widget-aware, please follow these instructions.'=>'El tema que estás usando en este momento no está preparado para widgets, lo que significa que no tiene barras laterales que puedas cambiar. Para más información sobre cómo preparar tu tema para widgets, por favor, sigue estas instrucciones.','When you publish a new post, WordPress automatically notifies the following site update services. For more about this, see the Update Services documentation article. Separate multiple service URLs with line breaks.'=>'Cuando publicas una nueva entrada, WordPress avisa automáticamente a los siguientes servicios de actualización. Para más información, revisa los servicios de actualización en el artículo de la documentación. Separa las URLs de los distintos servicios con saltos de línea.','The character encoding of your site (UTF-8 is recommended)'=>'La codificación de caracteres de tu sitio (se recomienda UTF-8)','example: www.wordpress.org'=>'ejemplo: es.wordpress.org','The search for installed themes will search for terms in their name, description, author, or tag.'=>'La búsqueda de temas instalados buscará términos en su nombre, descripción, autor o etiqueta.','Alternately, you can browse the themes that are Popular or Latest. When you find a theme you like, you can preview it or install it.'=>'Como alternativa, puedes ver los temas que son populares o los últimos. Cuando encuentres un tema que te guste, puedes ver una vista previa o instalarlo.','You can Search for themes by keyword, author, or tag, or can get more specific and search by criteria listed in the feature filter.'=>'Puedes buscar temas por palabra clave, autor o etiqueta; o puedes filtrar por los criterios que se muestran en el selector.','Number of Themes found: %d'=>'Número de temas encontrados: %d','Custom time format:'=>'Formato de hora personalizado:','enter a custom time format in the following field'=>'escribe un formato de hora personalizado en el siguiente campo','Custom date format:'=>'Formato de fecha personalizado:','enter a custom date format in the following field'=>'escribe un formato de fecha personalizado en el siguiente campo','Plugins updated successfully.'=>'Plugins actualizados correctamente.','Active plugin installations%s+ Million'=>'%s+ millón' . "\0" . '%s+ millones','XML Error: %1$s at line %2$s'=>'Error de XML: %1$s en la línea %2$s','Main menu'=>'Menú principal','Enter the location on the server where the public and private keys are located. If a passphrase is needed, enter that in the password field above.'=>'Introduce la ubicación del servidor de las claves públicas y privadas. Si fuese necesaria una contraseña introdúcela arriba, en el campo de contraseña.','%s user deleted.'=>'%s usuario borrado.' . "\0" . '%s usuarios borrados.','What should be done with content owned by these users?'=>'¿Qué debería hacerse con el contenido de estos usuarios?','You have specified these users for deletion:'=>'Has seleccionado estos usuarios para ser borrados:','You are about to remove the following plugins:'=>'Estás a punto de eliminar los siguientes plugins:','These plugins may be active on other sites in the network.'=>'Puede que estos plugins estén activos en otros sitios de la red.','Delete Plugins'=>'Eliminar plugins','1 page not updated, somebody is editing it.'=>'1 página no actualizada, alguien la está editando.','1 post not updated, somebody is editing it.'=>'1 entrada no actualizada, alguien la está editando.','You can log out of other devices, such as your phone or a public computer, by clicking the Log Out Everywhere Else button.'=>'Puedes desconectar de otros dispositivos, como tu teléfono o un ordenador público, haciendo clic en el botón Desconectar del resto de sitios','New translations are available.'=>'Hay nuevas traducciones disponibles.','This theme has not been rated yet.'=>'Este tema todavía no ha sido valorado.','timezone date formatY-m-d H:i:s'=>'d-m-Y H:i:s','To add a custom link, expand the Custom Links section, enter a URL and link text, and click Add to Menu'=>'Para añadir un enlace personalizado, expande la sección de enlaces personalizados e introduce una URL y un texto para el enlace y haz clic en «Añadir al menú»','Howdy ###USERNAME###, + +You recently clicked the \'Delete Site\' link on your site and filled in a +form on that page. + +If you really want to delete your site, click the link below. You will not +be asked to confirm again so only click this link if you are absolutely certain: +###URL_DELETE### + +If you delete your site, please consider opening a new site here some time in +the future! (But remember that your current site and username are gone forever.) + +Thank you for using the site, +All at ###SITENAME### +###SITEURL###'=>'Hola ###USERNAME###, + +Recientemente has hecho clic en el enlace de \'Borrar sitio\' de tu sitio y rellenado un formulario en esa página. + +Si realmente quieres borrar tu sitio haz clic en el enlace de abajo. No se te pedirá que confirmes de nuevo así que haz clic en este enlace solo si tienes la absoluta certeza: +###URL_DELETE### + +¡Si borras tu sitio, por favor, plantéate abrir aquí un nuevo sitio en el futuro! (Pero recuerda que tu sitio y nombre de usuario actuales habrán desaparecido para siempre.) + +Gracias por usar el sitio, +El equipo de ###SITENAME### +###SITEURL###','Close details dialog'=>'Cerrar ventana con los detalles','You are currently editing the page that shows your latest posts.'=>'Estás editando la página que muestra tus últimas entradas.','Number of items per page:'=>'Número de elementos por página:','revision date short formatj M @ H:i'=>'j M @ H:i','Size in megabytes'=>'Tamaño en megabytes','Site Upload Space Quota'=>'Cuota de espacio para archivos','UPDATE LOG +=========='=>'REGISTRO DE LA ACTUALIZACIÓN +==========','BETA TESTING? +============= + +This debugging email is sent when you are using a development version of WordPress. + +If you think these failures might be due to a bug in WordPress, could you report it? + * Open a thread in the support forums: https://wordpress.org/support/forum/alphabeta + * Or, if you\'re comfortable writing a bug report: https://core.trac.wordpress.org/ + +Thanks! -- The WordPress Team'=>'¿PRUEBAS BETA? +============= + +Este correo electrónico de errores se te envía cuando estás usando una versión de desarrollo de WordPress. + +Si crees que estos fallos pueden deberse a errores de WordPress, ¿podrías notificarlos? + * Abre un hilo en los foros de soporte: https://wordpress.org/support/forum/alphabeta + * O, si te gusta más, puedes escribir un informe de errores: https://core.trac.wordpress.org/ + +¡Gracias! -- El equipo de WordPress','M j, Y @ H:i'=>'j M Y @ H:i','Submitted on'=>'Enviado el','In response to'=>'En respuesta a','%1$s %2$s, %3$s at %4$s:%5$s'=>'%2$s de %1$s de %3$s a las %4$s:%5$s','You are only logged in at this location.'=>'Solo estás conectado en esta ubicación.','These suggestions are based on the plugins you and other users have installed.'=>'Estas sugerencias están basadas en los plugins que habéis instalado tú y otros usuarios.','You can enable distraction-free writing mode using the icon to the right. This feature is not available for old browsers or devices with small screens, and requires that the full-height editor be enabled in Screen Options.'=>'Puedes activar el modo de escritura sin distracción usando el icono de la derecha. Esta función no está disponible para navegadores antiguos ni dispositivos con pantallas pequeñas , y requiere que esté activo el editor a pantalla completa en los ajustes de pantalla.','Log Out Everywhere'=>'Desconectar todo','Plugin InstallerRecommended'=>'Recomendados','Your new WordPress site has been successfully set up at: + +%1$s + +You can log in to the administrator account with the following information: + +Username: %2$s +Password: %3$s +Log in here: %4$s + +We hope you enjoy your new site. Thanks! + +--The WordPress Team +https://wordpress.org/ +'=>'Tu nuevo sitio de WordPress se ha creado correctamente en: + +%1$s + +Puedes acceder a tu cuenta de administrador con la siguiente información: + +Nombre de usuario: %2$s +Contraseña: %3$s +Accede desde aquí: %4$s + +Esperamos que disfrutes de tu nuevo sitio. ¡Gracias! + +--El Equipo de WordPress +https://es.wordpress.org/ +','You cannot delete a theme while it has an active child theme.'=>'No puedes eliminar un tema mientras este tenga un tema hijo activo.','Mystery Person'=>'Persona misteriosa','Usernames can have only alphanumeric characters, spaces, underscores, hyphens, periods, and the @ symbol.'=>'Los nombres de usuario pueden tener únicamente caracteres alfanuméricos, espacios, guiones bajos, guiones medios, puntos y el símbolo @.','Enable full-height editor and distraction-free functionality.'=>'Activar el editor a pantalla completa y la funcionalidad sin distracciones.','https://planet.wordpress.org/feed/'=>'https://planet.wordpress.org/feed/','https://planet.wordpress.org/'=>'https://planet.wordpress.org/','Untested with your version of WordPress'=>'No probado con tu versión de WordPress','All categories'=>'Todas las categorías','Filter by comment type'=>'Filtrar por tipo de comentario','%s has been logged out.'=>'%s ha sido desconectado.','You are now logged out everywhere else.'=>'Ahora están cerradas tus sesiones del resto de sitios.','Could not log out user sessions. Please try again.'=>'No se han podido cerrar las sesiones de usuario. Por favor, inténtalo de nuevo.','This preview is unavailable in the editor.'=>'Esta vista previa no está disponible en el editor.','You can insert media files by clicking the button above the post editor and following the directions. You can align or edit images using the inline formatting toolbar available in Visual mode.'=>'Puedes insertar archivos multimedia haciendo clic en el botón sobre el editor de entradas y siguiendo las indicaciones. Puedes alinear o editar imágenes utilizando la barra de herramientas de formato integrada que está disponible en el modo visual.','Post editor — Enter the text for your post. There are two modes of editing: Visual and Code. Choose the mode by clicking on the appropriate tab.'=>'Editor de entradas — Introduce el texto para tu entrada. Hay dos modos de editar: visual y código. Elige el modo haciendo clic en la pestaña correspondiente.','You can now manage and live-preview Custom Header in the Customizer.'=>'Ahora puedes gestionar y tener una vista previa de la cabecera personalizada en el Personalizador.','You can now manage and live-preview Custom Backgrounds in the Customizer.'=>'Ahora puedes gestionar y tener una vista previa del fondo personalizado en el Personalizador.','Welcome panelWelcome'=>'Te damos la bienvenida','usersAll (%s)'=>'Todos (%s)' . "\0" . 'Todos (%s)','link nameName'=>'Nombre','If you like, you may enter custom structures for your category and tag URLs here. For example, using topics as your category base would make your category links like %s/topics/uncategorized/. If you leave these blank the defaults will be used.'=>'Si quieres, puedes introducir aquí estructuras personalizadas para las URLs de etiquetas o categorías. Por ejemplo, usando secciones como base de las categorías, hará que los enlaces de categorías sean algo como %s/secciones/sin-categoria/. Si dejas esto en blanco, se usarán los ajustes por defecto.','Release Lead'=>'Líder de la versión','Use the arrow buttons at the top of the dialog, or the left and right arrow keys on your keyboard, to navigate between media items quickly.'=>'Utiliza los botones con flechas de la parte superior o las teclas de flecha de tu teclado para navegar rápidamente entre los elementos multimedia.','You can also delete individual items and access the extended edit screen from the details dialog.'=>'También puedes borrar elementos individualmente y acceder a la pantalla de edición extendida desde la ventana de detalles.','Clicking an item will display an Attachment Details dialog, which allows you to preview media and make quick edits. Any changes you make to the attachment details will be automatically saved.'=>'Al hacer clic en un elemento se mostrará la ventana de Detalles del adjunto, que te permite previsualizar el medio y hacer modificaciones rápidas. Cualquier cambio que hagas en los detalles del adjunto se guardarán automáticamente.','To delete media items, click the Bulk Select button at the top of the screen. Select any items you wish to delete, then click the Delete Selected button. Clicking the Cancel Selection button takes you back to viewing your media.'=>'Para borrar medios haz clic en el botón de «Selección múltiple» de la parte superior de la pantalla. Selecciona cualquier elemento que quieras borrar y luego haz clic en el botón de «Borrar» lo seleccionado. Hacer clic en el botón de «Cancelar» la selección te lleva de vuelta a la visualización de tus medios.','You can view your media in a simple visual grid or a list with columns. Switch between these views using the icons to the left above the media.'=>'Puedes ver tus medios en una cuadrícula visual sencilla o en lista con columnas. Cambia entre estas vistas usando los iconos en la parte superior izquierda de los medios.','All the files you’ve uploaded are listed in the Media Library, with the most recent uploads listed first.'=>'Todos los archivos que hayas subido están en la lista de la biblioteca de medios, con los subidos más recientemente en la parte superior.','If you just want to get an idea of what’s available, you can browse Featured and Popular plugins by using the links above the plugins list. These sections rotate regularly.'=>'Si quieres hacerte una idea de qué plugins hay disponibles, puedes navegar por las secciones Destacados y Populares usando los enlaces que hay sobre la lista de plugins. Estas secciones rotan regularmente.','Browse Plugins'=>'Buscar plugins','Add Plugins'=>'Añadir plugins','The %1$s constant in your %2$s file is no longer needed.'=>'La constante %1$s de tu archivo %2$s ya no es necesaria.','Invalid translation type.'=>'Tipo de traducción no válido.','Welcome to the famous five-minute WordPress installation process! Just fill in the information below and you’ll be on your way to using the most extendable and powerful personal publishing platform in the world.'=>'¡Este es el famoso proceso de instalación de WordPress en cinco minutos! Simplemente completa la información siguiente y estarás a punto de usar la más enriquecedora y potente plataforma de publicación personal del mundo.','Compatible with your version of WordPress'=>'Compatible con tu versión de WordPress','Incompatible with your version of WordPress'=>'Incompatible con tu versión de WordPress','%d star'=>'%d estrella' . "\0" . '%d estrellas','Select bulk action'=>'Selecciona acción en lote','Add the user without sending an email that requires their confirmation'=>'Añadir el usuario sin enviarle un correo electrónico que pida su confirmación','The grid view for the Media Library requires JavaScript. Switch to the list view.'=>'La vista de cuadrícula de la biblioteca de medios necesita JavaScript. Cambia a vista de lista.','Contributors'=>'Colaboradores','Donate to this plugin »'=>'Haz un donativo para este plugin »','Plugin installer section titleReviews'=>'Valoraciones','The WordPress team is willing to help you. Forward this email to %s and the team will work with you to make sure your site is working.'=>'El equipo de WordPress está deseando ayudarte. Reenvía este correo electrónico a %s y el equipo trabajará contigo para asegurarse que tu sitio funcione.','themesRecently Updated'=>'Recientemente actualizados','Number/count of itemsCount'=>'Cantidad','View details'=>'Ver detalles','More Details'=>'Más detalles','Plugin installer group titleTools'=>'Herramientas','Plugin installer group titleSocial'=>'Social','Plugin installer group titlePerformance'=>'Rendimiento','Plugin InstallerBeta Testing'=>'Pruebas beta','%s failed to embed.'=>'%s ha fallado al incrustarse.','Filtering by:'=>'Filtrando por:','Displayed on attachment pages.'=>'Mostrado en páginas de adjuntos.','You can edit the image while preserving the thumbnail. For example, you may wish to have a square thumbnail that displays just a section of the image.'=>'Puedes editar la imagen al tiempo que conservas la miniatura. Por ejemplo, puede que quieras tener una miniatura cuadrada que muestre solo una sección de la imagen.','Once you have made your selection, you can adjust it by entering the size in pixels. The minimum selection size is the thumbnail size as set in the Media settings.'=>'Una vez que has hecho tu selección puedes ajustar el tamaño especificando los pixels que debe tener. El tamaño de selección mínimo es el tamaño de la miniaturas indicado en los Ajustes de medios.','The aspect ratio is the relationship between the width and height. You can preserve the aspect ratio by holding down the shift key while resizing your selection. Use the input box to specify the aspect ratio, e.g. 1:1 (square), 4:3, 16:9, etc.'=>'La relación de aspecto es la proporción entre la anchura y la altura. Puedes conservar la relación de aspecto manteniendo presionada la tecla de mayúsculas (Shift) mientras redimensionas la selección. Usa las cajas de texto para especificar la relación de aspecto, por ejemplo: 1:1 (cuadrado), 4:3, 16:9, etc.','To crop the image, click on it and drag to make your selection.'=>'Para recortar la imagen, haz clic y arrastra en ella para hacer la selección.','You can proportionally scale the original image. For best results, scaling should be done before you crop, flip, or rotate. Images can only be scaled down, not up.'=>'Puedes escalar proporcionalmente la imagen original. Para obtener los mejores resultados, la escala se debe hacer antes de recortar, girar o rotar. Las imágenes solo se pueden escalar hacia abajo, no hacia arriba.','Keyboard users: When you are working in the visual editor, you can use %s to access the toolbar.'=>'Usuarios de teclado: Cuando estés trabajando en el editor visual, puedes usar %s para acceder a la barra de herramientas.','A red bar on the left means the comment is waiting for you to moderate it.'=>'Una línea roja a la izquierda indica que el comentario está esperando moderación.','All comment types'=>'Todos los tipos de comentario','themesLatest'=>'Recientes','themesPopular'=>'Populares','themesFeatured'=>'Destacados','Attribute all content to:'=>'Atribuir todo el contenido a:','Delete all content.'=>'Borrar todo el contenido.','What should be done with content owned by this user?'=>'¿Qué debería hacerse con el contenido de este usuario?','Delete brings you to the Delete Users screen for confirmation, where you can permanently remove a user from your site and delete their content. You can also delete multiple users at once by using bulk actions.'=>'Borrar, te lleva a la pantalla de confirmación para el borrado de usuarios, donde puedes eliminar permanentemente a un usuario de tu sitio y borrar su contenido. También puedes borrar varios usuarios a la vez usando las acciones en lote.','Remove allows you to remove a user from your site. It does not delete their content. You can also remove multiple users at once by using bulk actions.'=>'Eliminar, te permite eliminar a un usuario de tu sitio. No borra su contenido. También puedes eliminar varios usuarios a la vez usando las acciones en lote.','themeDetails & Preview'=>'Detalles y vista previa','Search Themes'=>'Buscar temas','Add Themes'=>'Añadir temas','https://wordpress.org/support/forum/how-to-and-troubleshooting'=>'https://es.wordpress.org/support/forum/manuales-y-resolucion-de-problemas/','At a Glance — Displays a summary of the content on your site and identifies which theme and version of WordPress you are using.'=>'De un vistazo — Muestra un resumen del contenido de tu sitio e identifica qué tema y versión de WordPress estás utilizando.','Box Controls — Click the title bar of the box to expand or collapse it. Some boxes added by plugins may have configurable content, and will show a “Configure” link in the title bar if you hover over it.'=>'Controles de caja — Haz clic en la barra de título de la caja para desplegarla o contraerla. Algunas cajas añadidas por plugins puede que tengan contenido que configurar y mostrarán un enlace de «Configurar» en la barra de título si pasas el cursor sobre ella.','Sorry, you are not allowed to resume this theme.'=>'Lo siento, no tienes permisos para reactivar este tema.','Edit date and time'=>'Editar fecha y hora','Browse revisions'=>'Buscar revisiones','Edit visibility'=>'Editar visibilidad','Edit status'=>'Editar estado','Support forums'=>'Foros de soporte','Thank you for creating with WordPress.'=>'Gracias por crear con WordPress.','Translations — The files translating WordPress into your language are updated for you whenever any other updates occur. But if these files are out of date, you can click the “Update Translations” button.'=>'Traducciones — Los archivos que traducen WordPress a tu idioma se actualizan cuando se produce cualquier otra actualización. Pero si estos archivos están anticuados, puedes hacer clic en el botón «Actualizar las traducciones».','In most cases, WordPress will automatically apply maintenance and security updates in the background for you.'=>'En la mayoría de los casos, WordPress realizará por su cuenta las actualizaciones de seguridad y mantenimiento.','WordPress — Updating your WordPress installation is a simple one-click procedure: just click on the “Update now” button when you are notified that a new version is available.'=>'WordPress — Actualizar tu instalación de WordPress es un procedimiento sencillo de un solo clic: simplemente haz clic en el botón «Actualizar ahora» cuando se te avise de que hay una nueva versión disponible.','If an update is available, you᾿ll see a notification appear in the Toolbar and navigation menu.'=>'Si hay una actualización disponible, aparecerá una notificación en la barra de herramientas y en el menú de navegación.','Themes and Plugins — To update individual themes or plugins from this screen, use the checkboxes to make your selection, then click on the appropriate “Update” button. To update all of your themes or plugins at once, you can check the box at the top of the section to select all before clicking the update button.'=>'Temas y Plugins — Para actualizar temas o plugins uno a uno desde esta pantalla, usa las casillas de selección para hacer tu elección, luego, haz clic en el botón «Actualizar» correspondiente. Para actualizar todos tus temas o plugins de una vez, puedes seleccionar la casilla de la parte superior de la sección para elegirlos todos antes de hacer clic en el botón de actualizar.','On this screen, you can update to the latest version of WordPress, as well as update your themes, plugins, and translations from the WordPress.org repositories.'=>'En esta pantalla puedes actualizar a la última versión de WordPress, así como actualizar tus temas, plugins y traducciones desde los repositorios de WordPress.org. ','If you would like to see more themes to choose from, click on the “Add Theme” button and you will be able to browse or search for additional themes from the WordPress Theme Directory. Themes in the WordPress Theme Directory are designed and developed by third parties, and are compatible with the license WordPress uses. Oh, and they are free!'=>'Si quieres ver más temas entre los que elegir, haz clic en el botón «Añadir tema» y podrás navegar o buscar temas adicionales del directorio de temas de WordPress.org. Los temas del directorio de temas de WordPress.org están diseñados y desarrollados por terceros y son compatibles con la licencia que usa WordPress. ¡Ah, y son gratis!','%1$s MB (%2$s%%) Space Used'=>'%1$s MB (%2$s%%) del espacio utilizado','%s MB Space Allowed'=>'%s MB de espacio permitidos','M jS'=>'j M','%s Page'=>'%s página' . "\0" . '%s páginas','%s Post'=>'%s entrada' . "\0" . '%s entradas','When this setting is in effect, a reminder is shown in the At a Glance box of the Dashboard that says, “Search engines discouraged”, to remind you that you have directed search engines to not crawl your site.'=>'Cuando este ajuste está activo, se muestra un recordatorio en la caja «De un vistazo» del escritorio que dice «Motores de búsqueda disuadidos», para recordarte que has indicado a los motores de búsqueda que no rastreen tu sitio.','At a Glance'=>'De un vistazo','themeActive:'=>'Activo:','Accessibility Ready'=>'Listo para accesibilidad','This is a child theme of %s.'=>'Este es un tema hijo de %s.','When previewing on smaller monitors, you can use the collapse icon at the bottom of the left-hand pane. This will hide the pane, giving you more room to preview your site in the new theme. To bring the pane back, click on the collapse icon again.'=>'Al previsualizar en monitores pequeños, puedes usar el icono de Contraer que está al fondo del panel izquierdo. Esto ocultará el panel, dándote más espacio para previsualizar tu sitio con el nuevo tema. Para volver a ver el panel, haz clic de nuevo en el icono de Contraer.','The theme being previewed is fully interactive — navigate to different pages to see how the theme handles posts, archives, and other page templates. The settings may differ depending on what theme features the theme being previewed supports. To accept the new settings and activate the theme all in one step, click the Activate & Publish button above the menu.'=>'El tema previsualizado es totalmente interactivo — navega a distintas páginas para ver cómo el tema gestiona las entradas, los archivos y otras plantillas de página. Los ajustes pueden diferir dependiendo de las características con las que sea compatible el tema previsualizado. Para aceptar los nuevos ajustes y activar el tema en un solo paso, haz clic en el botón «Publicar y activar» que hay encima del menú.','Tap or hover on any theme then click the Live Preview button to see a live preview of that theme and change theme options in a separate, full-screen view. You can also find a Live Preview button at the bottom of the theme details screen. Any installed theme can be previewed and customized in this way.'=>'Toca o muévete sobre cualquier tema, luego haz clic en el botón de «Vista previa» para ver una visualización en directo de ese tema y cambiar los ajustes del tema en una vista separada y a pantalla completa. También encontrarás un botón de Vista previa al fondo de la pantalla de detalles del tema. Cualquier tema instalado puede previsualizarse y personalizarse de este modo.','The active theme is displayed highlighted as the first theme.'=>'El tema activo se muestra de forma destacada como el primer tema.','Click Customize for the active theme or Live Preview for any other theme to see a live preview'=>'Haz clic en «Personalizar» en el tema activo o en «Vista previa» en cualquier otro tema para ver una previsualización en vivo','Click on the theme to see the theme name, version, author, description, tags, and the Delete link'=>'Haz clic en el tema para ver el nombre del tema, su versión, autor, descripción, etiquetas y el enlace de borrar','Hover or tap to see Activate and Live Preview buttons'=>'Pasa el cursor por encima o toca para activar y ver los botones de vista previa.','This screen is used for managing your installed themes. Aside from the default theme(s) included with your WordPress installation, themes are designed and developed by third parties.'=>'Esta pantalla se utiliza para gestionar los temas que tienes instalados. Además del (los) tema(s) por defecto incluidos en tu instalación de WordPress, los temas son diseñados y desarrollados por terceros.','To activate a widget drag it to a sidebar or click on it. To deactivate a widget and delete its settings, drag it back.'=>'Para activar un widget, arrástralo a una barra lateral o haz clic en él. Para desactivar un widget y borrar sus ajustes, arrástralo de vuelta a su lugar de origen.','%s rating'=>'valoración %s','%1$s rating based on %2$s rating'=>'Valoración de %1$s basada en %2$s valoración' . "\0" . 'Valoración de %1$s basada en %2$s valoraciones','This screen shows an individual user all of their sites in this network, and also allows that user to set a primary site. They can use the links under each site to visit either the front end or the dashboard for that site.'=>'Esta pantalla muestra a un usuario individual todos los sitios de esta red, y también permite a ese usuario establecer un sitio principal. Pueden utilizar los enlaces debajo de cada sitio para visitar o la portada o el escritorio de ese sitio.','Error: [%1$s] %2$s'=>'Error: [%1$s] %2$s','Rollback Error: [%1$s] %2$s'=>'Error de rollback: [%1$s] %2$s','The following translations failed to update:'=>'Las siguientes traducciones han fallado al actualizarse:','The following themes failed to update:'=>'Los siguientes temas no lograron actualizarse:','The following plugins failed to update:'=>'Los siguientes plugins no lograron actualizarse:','The following translations were successfully updated:'=>'Las siguientes traducciones se han actualizado correctamente:','The following themes were successfully updated:'=>'Los siguientes temas se han actualizado correctamente:','The following plugins were successfully updated:'=>'Los siguientes plugins se han actualizado correctamente:','Add Widget'=>'Añadir widget','Show next theme'=>'Mostrar el tema siguiente','Show previous theme'=>'Mostrar tema anterior','Update Available'=>'Actualización disponible','Are you sure you want to delete this theme? + +Click \'Cancel\' to go back, \'OK\' to confirm the delete.'=>'¿Estás seguro de querer borrar este tema? + +Haz clic en \'Cancelar\' para regresar o en \'Aceptar\' para confirmar el borrado.','Unable to submit this form, please refresh and try again.'=>'No ha sido posible enviar este formulario, por favor, recarga e inténtalo de nuevo.','Quick Draft — Allows you to create a new post and save it as a draft. Also displays links to the 3 most recent draft posts you\'ve started.'=>'Borrador rápido — Te permite crear una nueva entrada y guardarla como borrador. También muestra enlaces a las 3 entradas en borrador más recientes que hayas empezado.','Activity — Shows the upcoming scheduled posts, recently published posts, and the most recent comments on your posts and allows you to moderate them.'=>'Actividad — Muestra las entradas programadas previstas, las entradas recientemente publicadas y los comentarios más recientes a tus entradas y te permite moderarlos.','Screen Options — Use the Screen Options tab to choose which Dashboard boxes to show.'=>'Opciones de pantalla — Usa la pestaña de Opciones de pantalla para elegir qué cajas mostrar en tu escritorio. ','Manage Uploads'=>'Gestionar subidas','Popular Plugin'=>'Plugin popular','Tomorrow'=>'Mañana','No activity yet!'=>'¡Todavía no hay actividad!','Recently Published'=>'Publicaciones recientes','Publishing Soon'=>'Próximas publicaciones','What’s on your mind?'=>'¿En qué estás pensando?','WordPress %1$s running %2$s theme.'=>'WordPress %1$s está funcionando con el tema %2$s.','Quick Draft'=>'Borrador rápido','Activity'=>'Actividad','FAILED: %s'=>'FALLÓ: %s','SUCCESS: %s'=>'CORRECTO: %s','FAILED: WordPress failed to update to %s'=>'FALLIDO: WordPress ha fallado al actualizar a %s','SUCCESS: WordPress was successfully updated to %s'=>'CORRECTO: WordPress se ha actualizado correctamente a %s','WordPress site: %s'=>'Sitio WordPress: %s','Your site was running version %s.'=>'Tu sitio está ejecutando la versión %s.','Your site at %1$s experienced a critical failure while trying to update WordPress to version %2$s.'=>'Tu sitio en %1$s ha experimentado un fallo crítico mientras se trataba de actualizar WordPress a la versión %2$s.','WordPress %s is also now available.'=>'WordPress %s también está ahora disponible.','The update cannot be installed because your site is unable to copy some files. This is usually due to inconsistent file permissions.'=>'No ha sido posible instalar la actualización debido a que no se han podido copiar algunos archivos. Normalmente esto es debido a permisos de archivo inconsistentes.','Your translations are all up to date.'=>'Tus traducciones están actualizadas.','Translations'=>'Traducciones','Error code: %s'=>'Código de error: %s','Your hosting company, support forum volunteers, or a friendly developer may be able to use this information to help you:'=>'Tu empresa de alojamiento, los voluntarios del foro o un desarrollador pueden utilizar esta información para ayudarte:','The WordPress Team'=>'El equipo de WordPress','You also have some plugins or themes with updates available. Update them now:'=>'También tienes algunos plugins o temas con actualizaciones disponibles. Actualízalos ahora:','If you experience any issues or need support, the volunteers in the WordPress.org support forums may be able to help.'=>'Si tienes algún problema o necesitas soporte, los voluntarios de los foros de soporte de WordPress.org pueden ayudarte.','Keeping your site updated is important for security. It also makes the internet a safer place for you and your readers.'=>'Mantener tu sitio actualizado es importante para la seguridad. También hace que internet sea un lugar más seguro para ti y tus lectores.','Please check out your site now. It\'s possible that everything is working. If it says you need to update, you should do so:'=>'Por favor, comprueba tu sitio ahora. Es posible que todo esté funcionando. Si indica que necesitas actualizar, deberías hacerlo:','This means your site may be offline or broken. Don\'t panic; this can be fixed.'=>'Esto significa que tu sitio puede estar roto o desconectado. No te asustes, se puede arreglar.','Your site at %1$s experienced a critical failure while trying to update to the latest version of WordPress, %2$s.'=>'Tu sitio %1$s ha experimentado un fallo crítico mientras se intentaba actualizar a la última versión de WordPress, %2$s.','Updating is easy and only takes a few moments:'=>'Actualizar es fácil y solo dura un momento:','Please update your site at %1$s to WordPress %2$s.'=>'Por favor, actualiza tu sitio %1$s a WordPress %2$s.','For more on version %s, see the About WordPress screen:'=>'Para más información sobre la versión %s, revisa la pantalla «Acerca de WordPress»:','No further action is needed on your part.'=>'No es necesaria ninguna acción adicional por tu parte.','Howdy! Your site at %1$s has been updated automatically to WordPress %2$s.'=>'¡Hola! Tu sitio %1$s se ha actualizado automáticamente a WordPress %2$s.','[%1$s] URGENT: Your site may be down due to a failed update'=>'[%1$s] URGENTE: Tu sitio puede no estar funcionando debido a un fallo de actualización','[%1$s] WordPress %2$s is available. Please update!'=>'[%1$s] WordPress %2$s está disponible. Por favor, ¡actualiza!','[%1$s] Your site has updated to WordPress %2$s'=>'[%1$s] Tu sitio se ha actualizado a WordPress %2$s','Translations for %s'=>'Traducciones de %s','Updating translations for %1$s (%2$s)…'=>'Actualizando las traducciones de %1$s (%2$s)…','Update Translations'=>'Actualizar las traducciones','Background updates'=>'Actualizaciones en segundo plano','There is not enough free disk space to complete the update.'=>'No hay suficiente espacio en disco para completar la actualización.','Updating plugin: %s'=>'Actualizando el plugin: %s','Updating theme: %s'=>'Actualizando el tema: %s','Translation updated successfully.'=>'Traducción actualizada correctamente.','Translation update failed.'=>'La actualización de la traducción ha fallado.','Some of your translations need updating. Sit tight for a few more seconds while they are updated as well.'=>'Algunas de tus traducciones necesitan actualizarse. Espera unos segundos más mientras se actualizan también.','Create a brand new user and add them to this site.'=>'Crea un nuevo usuario y añádelo a este sitio.','Upgrading to a newer version of the same theme will override changes made here. To avoid this, consider creating a child theme instead.'=>'Actualizar a una versión más nueva del mismo tema sobrescribirá los cambios que hayas hecho. Para evitar esto, prueba a crear un tema hijo.','The sizes listed below determine the maximum dimensions in pixels to use when adding an image to the Media Library.'=>'Los tamaños de la siguiente lista determinan las dimensiones máximas en píxeles a usar al añadir una imagen a la biblioteca de medios.','Comment must be manually approved'=>'El comentario debe aprobarse manualmente','Clicking the arrow to the right of any menu item in the editor will reveal a standard group of settings. Additional settings such as link target, CSS classes, link relationships, and link descriptions can be enabled and disabled via the Screen Options tab.'=>'Si haces clic en la flecha de la derecha de cualquier elemento de menú del editor, mostrará un grupo estándar de ajustes. Ajustes adicionales, como destino del enlace, clases CSS, relaciones del enlace y descripciones del enlace, puedes activarlas y desactivarlas en la pestaña de Ajustes de pantalla.','Menus can be displayed in locations defined by your theme, even used in sidebars by adding a “Navigation Menu” widget on the Widgets screen. If your theme does not support the navigation menus feature (the default themes, %2$s and %3$s, do), you can learn about adding this support by following the documentation link to the side.'=>'Los menús se pueden mostrar en las ubicaciones definidas por tu tema o incluso usarse en las barras laterales añadiendo un widget de «Menú de navegación» en la pantalla de widgets. Si tu tema no es compatible con la característica de menús de navegación (los temas por defecto %2$s y %3$s sí que lo son), puedes aprender a añadir esta compatibilidad siguiendo el enlace de la documantación del lateral.','Your theme does not natively support menus, but you can use them in sidebars by adding a “Navigation Menu” widget on the Widgets screen.'=>'Tu tema no es compatible con menús de manera nativa pero puedes usarlos en las barras laterales añadiendo un widget de «Menú personalizado» en la pantalla de widgets.','Sorry, that is not a valid email address. Email addresses look like username@example.com.'=>'Lo siento, esa no es una dirección de correo electrónico válida. Las direcciones de correo electrónico deben parecerse a usuario@ejemplo.com.','You must provide an email address.'=>'Debes facilitar una dirección de correo electrónico','Your passwords do not match. Please try again.'=>'Tus contraseñas no coinciden. Inténtalo de nuevo.','The username you provided has invalid characters.'=>'El nombre de usuario que has facilitado tiene caracteres no válidos.','Please provide a valid username.'=>'Por favor, facilita un nombre de usuario válido.','Copying the required files…'=>'Copiando los archivos necesarios…','Preparing to install the latest version…'=>'Preparando la instalación de la última versión…','This password will not be stored on the server.'=>'Esta contraseña no se almacenará en el servidor.','The checksum of the file (%1$s) does not match the expected checksum value (%2$s).'=>'La suma de verificación del archivo (%1$s) no coincide con el valor de suma de verificación esperado (%2$s).','WordPress %s'=>'WordPress %s','Updating to WordPress %s'=>'Actualizando a WordPress %s','Due to an error during updating, WordPress has been restored to your previous version.'=>'Debido a un error durante la actualización WordPress ha sido restaurado a tu versión anterior.','Looking for %1$s in %2$s'=>'Buscando %1$s en %2$s','%s page restored from the Trash.'=>'%s página restaurada de la papelera.' . "\0" . '%s páginas restauradas de la papelera.','%s page moved to the Trash.'=>'%s página movida a la papelera.' . "\0" . '%s páginas movidas a la papelera.','%s page permanently deleted.'=>'%s página borrada permanentemente.' . "\0" . '%s páginas borradas permanentemente.','%s page not updated, somebody is editing it.'=>'%s página no actualizada, alguien la está editando.' . "\0" . '%s páginas no actualizadas, alguien las está editando.','%s page updated.'=>'%s página actualizada.' . "\0" . '%s páginas actualizadas.','%s post restored from the Trash.'=>'%s entrada restaurada de la papelera.' . "\0" . '%s entradas restauradas de la papelera.','%s post moved to the Trash.'=>'%s entrada movida a la papelera.' . "\0" . '%s entradas movidas a la papelera.','%s post permanently deleted.'=>'%s entrada borrada permanentemente.' . "\0" . '%s entradas borradas permanentemente.','%s post not updated, somebody is editing it.'=>'%s entrada no actualizada, alguien la está editando.' . "\0" . '%s entradas no actualizadas, alguien las está editando.','Tags deleted.'=>'Etiquetas borradas.','Tag not updated.'=>'Etiqueta no actualizada.','Tag not added.'=>'Etiqueta no añadida.','Tag updated.'=>'Etiqueta actualizada.','Tag deleted.'=>'Etiqueta borrada.','Tag added.'=>'Etiqueta añadida.','Categories deleted.'=>'Categorías borradas.','Category not updated.'=>'Categoría no actualizada.','Category not added.'=>'Categoría no añadida.','Category updated.'=>'Categoría actualizada.','Category deleted.'=>'Categoría borrada.','Category added.'=>'Categoría añadida.','Compare two different revisions by selecting the “Compare any two revisions” box to the side.'=>'Compara dos revisiones seleccionando «Compara dos revisiones cualquiera» en el lateral.','Compare any two revisions'=>'Compara dos revisiones cualquiera','Restore This Autosave'=>'Restaurar este guardado automático','Current Revision by %s'=>'Revisión actual de %s','Autosave by %s'=>'Guardado automático de %s','revisionsBrowse'=>'Explorar','Revisions: %s'=>'Revisiones: %s','"%s".'=>'«%s».','"%1$s" by %2$s.'=>'«%1$s» en %2$s.','"%1$s" from %2$s.'=>'«%1$s» de %2$s.','"%1$s" from %2$s by %3$s.'=>'«%1$s» en %2$s por %3$s.','Revision by %s'=>'Revisión de %s','Connection lost. Saving has been disabled until you are reconnected.'=>'Conexión perdida. El guardado ha sido desactivado hasta que vuelvas a conectar.','Repeat Password'=>'Repetir contraseña','Repeat New Password'=>'Confirmar la nueva contraseña ','Add menu items from the column on the left.'=>'Añade elementos de menú desde la columna de la izquierda.','Plugins extend and expand the functionality of WordPress. You may install plugins from the WordPress Plugin Directory right on this page, or upload a plugin in .zip format by clicking the button above.'=>'Los plugins amplían y expanden la funcionalidad de WordPress. Puedes instalar plugins desde el directorio de plugins de WordPress desde esta página, o subir un plugin en formato .zip haciendo clic en el botón de arriba.','http://wordpress.org/plugins/hello-dolly/'=>'https://es.wordpress.org/plugins/hello-dolly/','The theme contains no files.'=>'El tema no contiene archivos.','The package contains no files.'=>'El paquete no contiene archivos.','To navigate between revisions, drag the slider handle left or right or use the Previous or Next buttons.'=>'Para navegar entre revisiones arrastra el deslizador a la izquierda o la derecha o usa los botones Anterior o Siguiente.','Loading…'=>'Cargando…','This item has already been deleted.'=>'Este elemento ya ha sido borrado.','The item you are trying to restore from the Trash no longer exists.'=>'El elemento que intentas restaurar de la papelera ya no existe.','The item you are trying to move to the Trash no longer exists.'=>'El artículo que estás tratando de mover a la papelera ya no existe.','Drag the items into the order you prefer. Click the arrow on the right of the item to reveal additional configuration options.'=>'Coloca los elementos en el orden que prefieras. Haz clic en la flecha que hay a la derecha del elemento para mostrar opciones adicionales de configuración.','If you have not yet created any menus, click the ’create a new menu’ link to get started'=>'Si aún no has creado ningún menú, haz clic en el enlace de «crear un nuevo menú» para empezar','To restore a revision, click Restore This Revision.'=>'Para restaurar una revisión, haz clic en Restaurar esta revisión.','From this screen you can review, compare, and restore revisions:'=>'En esta pantalla podrás revisar, comparar y restaurar revisiones:','Revisions are saved copies of your post or page, which are periodically created as you update your content. The red text on the left shows the content that was removed. The green text on the right shows the content that was added.'=>'Las revisiones son copias guardadas de tus entradas o páginas que se crean periódicamente conforme vas creando tu contenido. El texto en rojo de la derecha muestra el contenido que se ha eliminado. El texto en verde de la derecha, el contenido que se ha añadido.','This screen is used for managing your content revisions.'=>'Esta pantalla se utiliza para gestionar las revisiones de tu contenido.','Followed by post revision infoTo:'=>'Para:','Button label for a next revisionNext'=>'Siguiente','Button label for a previous revisionPrevious'=>'Anterior','Followed by post revision infoFrom:'=>'Desde:','menuUse new menu'=>'Utilizar menú nuevo','menuEdit'=>'Editar','Select a Menu'=>'Elige un menú','Assigned Menu'=>'Menú asignado','Theme Location'=>'Ubicación en el tema','Manage Locations'=>'Gestionar ubicaciones','Edit Menus'=>'Editar menús','To add a new menu instead of assigning an existing one, click the ’Use new menu’ link. Your new menu will be automatically assigned to that theme location'=>'Para añadir un nuevo menú en vez de asignar a uno existente haz clic en el enlace Usar menú nuevo. Tu nuevo menú se asignará automáticamente a esa ubicación del tema','To edit a menu currently assigned to a theme location, click the adjacent ’Edit’ link'=>'Para editar un menú actualmente asignado a una ubicación del tema haz clic en el el enlace Editar a su lado','To assign menus to one or more theme locations, select a menu from each location’s dropdown. When you are finished, click Save Changes'=>'Para asignar menús a una o más ubicaciones del tema, selecciona un menú desde el desplegable de cada ubicación. Cuando hayas terminado, haz clic en «Guardar los cambios»','This screen is used for globally assigning menus to locations defined by your theme.'=>'Esta pantalla se usa para asignar menús globalmente a ubicaciones definidas en tu tema.','Editing Menus'=>'Editando menús','Delete a menu item by expanding it and clicking the Remove link'=>'Borra un elemento de menú desplegándolo y haciendo clic en el enlace «Eliminar»','To reorganize menu items, drag and drop items with your mouse or use your keyboard. Drag or move a menu item a little to the right to make it a submenu'=>'Para reorganizar elementos del menú, arrastra y suelta elementos con el ratón o usa el teclado. Arrastrando o moviendo un elemento de menú un poco a la derecha, lo convierte en submenú.','Add one or several items at once by selecting the checkbox next to each item and clicking Add to Menu'=>'Añade uno o varios elementos a la vez eligiendo la casilla de al lado de cada elemento y haciendo clic en Añadir al menú','Each navigation menu may contain a mix of links to pages, categories, custom URLs or other content types. Menu links are added by selecting items from the expanding boxes in the left-hand column below.'=>'Cada menú personalizado puede contener una mezcla de enlaces a páginas, categorías, URLs personalizadas u otros tipos de contenidos. Los enlaces del menú se añaden eligiendo elementos de las cajas desplegables de la columna izquierda.','Menu Management'=>'Gestión de menús','You can assign theme locations to individual menus by selecting the desired settings at the bottom of the menu editor. To assign menus to all theme locations at once, visit the Manage Locations tab at the top of the screen.'=>'Puedes asignar ubicaciones del tema a menús individuales eligiendo los ajustes que desees al fondo del editor de menús. Para asignar menús a todas las ubicaciones del tema, visita la pestaña de «Gestionar ubicaciones» en la parte superior de la pantalla.','To edit an existing menu, choose a menu from the dropdown and click Select'=>'Para editar un menú existente, elige un menú del desplegable y haz clic en «Seleccionar»','The menu management box at the top of the screen is used to control which menu is opened in the editor below.'=>'La pestaña de gestión de menús de la parte superior de la pantalla se usa para controlar qué menú se abre en el editor de abajo.','Add, organize, and modify individual menu items'=>'Añadir, organizar y modificar elementos individuales de los menús','Create, edit, and delete menus'=>'Crear, editar y borrar menús','From this screen you can:'=>'En esta pantalla puedes:','This screen is used for managing your navigation menus.'=>'Esta pantalla sirve para gestionar tus menús de navegación.','Menu locations updated.'=>'Ubicaciones de menú actualizadas.','Your latest changes were saved as a revision.'=>'Tu últimos cambios se guardaron como una revisión.','Audio Codec:'=>'Códec de audio:','Audio Format:'=>'Formato de audio:','Genre: %s.'=>'Género: %s.','Track %1$s of %2$s.'=>'Pista %1$s de %2$s.','Released: %d.'=>'Lanzamiento: %d.','%1$s by %2$s.'=>'%1$s por %2$s.','revision date short formatj M Y @ H:i'=>'j M Y @ H:i','Restore This Revision'=>'Restaurar esta revisión','Denied: %s'=>'Denegado: %s','Capabilities'=>'Capacidades','Menu Settings'=>'Ajustes del menú','Menu structure'=>'Estructura del menú','To the top'=>'A la parte superior','Down one'=>'Uno hacia abajo','Up one'=>'Uno hacia arriba','Move'=>'Mover','Draft created on %1$s at %2$s'=>'Borrador creado el %1$s a las %2$s','You cannot move this item to the Trash. %s is currently editing.'=>'No puedes mover este elemento a la papelera. %s lo está editando en este momento.','%s has taken over and is currently editing.'=>'%s ha tomado la posesión y está editando en este momento.','Select a menu to edit:'=>'Elige el menú que quieras editar:','Thank you for Updating! Please visit the Upgrade Network page to update all your sites.'=>'¡Gracias por actualizar! Visita la página de Actualizar red para actualizar todos tus sitios.','All right, sparky! You’ve made it through this part of the installation. WordPress can now communicate with your database. If you are ready, time now to…'=>'¡Muy bien! Ya has terminado esta parte de la instalación. Ahora WordPress puede comunicarse con tu base de datos. Si estás listo, es el momento de…','Client version'=>'Versión del cliente','Auto add pages'=>'Añadir páginas automáticamente','Give your menu a name, then click Create Menu.'=>'Dale un nombre a tu menú, luego haz clic en Crear menú.','Edit your default menu by adding or removing items. Drag the items into the order you prefer. Click Create Menu to save your changes.'=>'Edita tu menú por defecto añadiendo o eliminando elementos. Coloca los elementos en el orden que prefieras. Haz clic en «Crear menú» para guardar tus cambios.','Menu 1'=>'Menú 1','Selected menus have been successfully deleted.'=>'Los menús seleccionados se han eliminado correctamente.','For PHP files, you can use the documentation dropdown to select from functions recognized in that file. Look Up takes you to a web page with reference material about that particular function.'=>'Para archivos PHP, puedes usar el desplegable de documentación para seleccionar entre las funciones reconocidas en ese archivo. La búsqueda te lleva a una página web con material de referencia sobre esa función en particular.','Look Up'=>'Buscar','The documentation menu below the editor lists the PHP functions recognized in the plugin file. Clicking Look Up takes you to a web page about that particular function.'=>'El menú de documentación, debajo del editor, lista las funciones PHP reconocidas en el archivo del plugin. Al hacer clic en la búsqueda, te lleva a una página web sobre esa función particular.','%s is currently editing'=>'%s está editando en este momento','You can upload and insert media (images, audio, documents, etc.) by clicking the Add Media button. You can select from the images and files already uploaded to the Media Library, or upload new media to add to your page or post. To create an image gallery, select the images to add and click the “Create a new gallery” button.'=>'Puedes subir e insertar archivos multimedia (imágenes, audios, documentos, etc.) con solo hacer clic en el botón «Añadir medio». Puedes elegir entre las imágenes ya subidas a la biblioteca multimedia o subir nuevos archivos. Para crear una galería de imágenes, solo tienes que seleccionar algunas y hacer clic en el botón «Crear nueva galería»','Image rotation is not supported by your web host.'=>'Tu alojamiento web no es compatible con la rotación de imágenes.','If you are looking to use the link manager, please install the Link Manager plugin.'=>'Si quieres usar el gestor de enlaces, por favor, instala el plugin Link Manager.','When changing themes, there is often some variation in the number and setup of widget areas/sidebars and sometimes these conflicts make the transition a bit less smooth. If you changed themes and seem to be missing widgets, scroll down on this screen to the Inactive Widgets area, where all of your widgets and their settings will have been saved.'=>'Al cambiar de tema, a menudo hay algunos cambios en el número y configuración de las áreas y barras laterales de los widgets y, a veces, estos conflictos hacen que el cambio sea un poco menos fácil. Si has cambiado de tema y parece que se hubiesen perdido widgets, ve al final de esta página al área de Widgets inactivos, donde se guardan todos tus widgets inactivos, con sus ajustes.','Parent — Categories, unlike tags, can have a hierarchy. You might have a Jazz category, and under that have child categories for Bebop and Big Band. Totally optional. To create a subcategory, just choose another category from the Parent dropdown.'=>'Superior — Las categorías, al contrario que las etiquetas, pueden tener jerarquía. Puedes tener una categoría Jazz y, bajo esa, tener categorías hijas para Bebop y Big Band. Es totalmente opcional. Para crear una subcategoría, primero elige otra categoría del desplegable denominado Superior.','Several boxes on this screen contain settings for how your content will be published, including:'=>'Muchos apartados en esta pantalla contienen configuraciones para cómo se publicará tu contenido, incluyendo:','Inserting Media'=>'Insertando medios','The title field and the big Post Editing Area are fixed in place, but you can reposition all the other boxes using drag and drop. You can also minimize or expand them by clicking the title bar of each box. Use the Screen Options tab to unhide more boxes (Excerpt, Send Trackbacks, Custom Fields, Discussion, Slug, Author) or to choose a 1- or 2-column layout for this screen.'=>'El campo de título y el área de edición de la entrada son fijos, pero puedes recolocar el resto de cajas arrastrando y soltando. También puedes minimizarlas o ampliarlas haciendo clic en la barra de título de cada caja. Usa la pestaña de «Opciones de pantalla» para desvelar más cajas (extracto, enviar trackbacks, campos personalizados, comentarios, slug, autor) o elige una estructura a 1 o 2 columnas para esta pantalla.','Do not forget to click “Save Changes” when you are done!'=>'¡No olvides hacer clic en «Guardar los cambios» cuando termines!','To use a background image, simply upload it or choose an image that has already been uploaded to your Media Library by clicking the “Choose Image” button. You can display a single instance of your image, or tile it to fill the screen. You can have your background fixed in place, so your site content moves on top of it, or you can have it scroll with your site.'=>'Para usar una imagen de fondo, simplemente súbela o selecciona una imagen que ya esté en la biblioteca multimedia apretando el botón «Selecciona una imagen». Puedes mostrar toda la imagen de una vez o recortarla para que se ajuste a tu pantalla. Puedes tener la imagen de fondo fija, es decir, que el contenido de tu sitio se mueva por encima de ella, o puedes hacer que se desplace con tu sitio.','media itemEdit'=>'Editar','colorDefault: %s'=>'Por defecto: %s','column nameUploaded to'=>'Subido a','The uploaded file is not a valid image. Please try again.'=>'El archivo subido no es una imagen válida. Inténtalo de nuevo.','Choose a Custom Header'=>'Elige una cabecera personalizada','Choose a Background Image'=>'Elige una imagen de fondo','In the Header Text section of this page, you can choose whether to display this text or hide it. You can also choose a color for the text by clicking the Select Color button and either typing in a legitimate HTML hex value, e.g. “#ff0000” for red, or by choosing a color using the color picker.'=>'En la sección del texto de la cabecera de esta página puedes elegir si mostrarlo u ocultarlo. También puedes elegir el color del texto haciendo clic en el botón de selección del color o escribiendo un valor hexadecimal HTML válido. Por ejemplo «#ff0000» para rojo, o utilizando el selector de color.','You can also choose a background color by clicking the Select Color button and either typing in a legitimate HTML hex value, e.g. “#ff0000” for red, or by choosing a color using the color picker.'=>'Puedes elegir un color de fondo haciendo clic en el botón de selección del color o escribiendo un valor hexadecimal HTML válido. Por ejemplo «#ff0000» para rojo o utilizando el selector de color.','In the In response to column, there are three elements. The text is the name of the post that inspired the comment, and links to the post editor for that entry. The View Post link leads to that post on your live site. The small bubble with the number in it shows the number of approved comments that post has received. If there are pending comments, a red notification circle with the number of pending comments is displayed. Clicking the notification circle will filter the comments screen to show only pending comments on that post.'=>'En la columna En respuesta a, hay tres elementos. El texto es el nombre de la entrada que ha inspirado el comentario y los enlaces al editor para esa entrada. El enlace «Ver la entrada» te lleva a esa entrada en tu sitio. La pequeña burbuja con números muestra el número de comentarios aprobados que ha recibido esa entrada. Si hay comentarios pendientes, se muestra un círculo rojo de aviso con el número de comentarios pendientes. Haciendo clic en el círculo de aviso, se filtrará la pantalla de comentarios para mostrar solo los comentarios de esa entrada.','ID #%1$s: %2$s'=>'ID #%1$s: %2$s','ID #%1$s: %2$s The current user will not be deleted.'=>'ID #%1$s: %2$s El usuario actual no será eliminado.','Used: %1$s%% of %2$s'=>'En uso: %1$s%% de %2$s','Please select an option.'=>'Por favor, elige una opción','After you’ve done that, click “Run the installation”.'=>'Después de hacer esto, haz clic en «Ejecutar la instalación».','If you want to install a plugin that you’ve downloaded elsewhere, click the Upload Plugin button above the plugins list. You will be prompted to upload the .zip package, and once uploaded, you can activate the new plugin.'=>'Si quieres instalar un plugin que hayas descargado por ahí, haz clic en el enlace Subir de la parte superior izquierda. Se te pedirá que subas el paquete .zip y, una vez subido, podrás activar el nuevo plugin.','You can also browse a user’s favorite plugins, by using the Favorites link above the plugins list and entering their WordPress.org username.'=>'También puedes navegar por los plugins favoritos de un usuario usando el enlace «Favoritos» de la parte superior derecha de la pantalla e introduciendo su nombre de usuario en WordPress.org.','If you know what you are looking for, Search is your best bet. The Search screen has options to search the WordPress Plugin Directory for a particular Term, Author, or Tag. You can also search the directory by selecting popular tags. Tags in larger type mean more plugins have been labeled with that tag.'=>'Si sabes lo que estás buscando, «Buscar» es tu mejor apuesta. La pantalla de búsqueda tiene opciones para buscar en el directorio de plugins de WordPress.org para un término, autor o etiqueta concretos. También puedes buscar en el directorio seleccionando etiquetas populares. Las etiquetas en un tamaño de letra más grande significan que más plugins han sido etiquetados con esa etiqueta.','It is up to search engines to honor this request.'=>'Depende de los motores de búsqueda atender esta petición o no.','Discourage search engines from indexing this site'=>'Pedir a los motores de búsqueda que no indexen este sitio','Allow search engines to index this site'=>'Permitir a los buscadores indexar este sitio','Search engine visibility'=>'Visibilidad en los motores de búsqueda','Welcome to WordPress %1$s. You will be redirected to the About WordPress screen. If not, click here.'=>'Te damos la bienvenida a WordPress %1$s. Se te redirigirá a la pantalla «Acerca de WordPress». Si no es así, haz clic aquí.','Get Favorites'=>'Obtener favoritos','Your WordPress.org username:'=>'Tu nombre de usuario en WordPress.org','If you have marked plugins as favorites on WordPress.org, you can browse them here.'=>'Si has marcado plugins como favoritos en WordPress.org, podrás verlos aquí.','Welcome to WordPress!'=>'¡Te damos la bienvenida a WordPress!','Search engines discouraged'=>'Motores de búsqueda disuadidos','This child theme requires its parent theme, %2$s.'=>'Este tema hijo requiere su tema padre, %2$s.','Plugin InstallerFavorites'=>'Favoritos','To install the theme so you can preview it with your site’s content and customize its theme options, click the "Install" button at the top of the left-hand pane. The theme files will be downloaded to your website automatically. When this is complete, the theme is now available for activation, which you can do by clicking the "Activate" link, or by navigating to your Manage Themes screen and clicking the "Live Preview" link under any installed theme’s thumbnail image.'=>'Para instalar el tema, para que puedas previsualizarlo con el contenido de tu sitio y personalizar las opciones del tema, haz clic en el botón «Instalar» en la parte superior izquierda de la ventana. Los archivos del tema se descargarán automáticamente en tu sitio. Cuando se complete, el tema estará listo para su activación haciendo clic en el enlace «Activar» o navegando a la pantalla «Gestionar temas» y haciendo clic en el enlace de «Vista previa» debajo de la miniatura de cada tema instalado. ','widgetAdd'=>'Añadir','widgetEdit'=>'Editar','Search by tag'=>'Búsqueda por etiquetas','Search by author'=>'Búsqueda por autor','Search by keyword'=>'Búsqueda por palabra clave','Type of search'=>'Tipo de búsqueda','Screen Options Tab'=>'Pestaña de opciones de pantalla','Contextual Help Tab'=>'Pestaña de ayuda contextual','Select comment'=>'Elegir comentario','Tags can be selectively converted to categories using the tag to category converter.'=>'Puedes elegir las etiquetas que quieras y convertirlas en categorías utilizando el conversor de etiquetas a categorías.','You can delete Link Categories in the Bulk Action pull-down, but that action does not delete the links within the category. Instead, it moves them to the default Link Category.'=>'Puedes borrar Categorías de enlace en el desplegable de Acciones en lote, pero la acción no borra los enlaces dentro de la categoría. En su lugar, los mueve a la Categoría de enlaces por defecto.','Creating a Page is very similar to creating a Post, and the screens can be customized in the same way using drag and drop, the Screen Options tab, and expanding/collapsing boxes as you choose. This screen also has the distraction-free writing space, available in both the Visual and Code modes via the Fullscreen buttons. The Page editor mostly works the same as the Post editor, but there are some Page-specific features in the Page Attributes box.'=>'Crear una página es muy parecido a crear una entrada, y puedes personalizar las pantallas de igual modo, arrastrando y soltando, en la pestaña de «Opciones de pantalla», y abriendo/cerrando las cajas como quieras. Esta pantalla también ofrece el espacio de escritura sin distracciones, disponible tanto en los modos visual como de código a través de los botones de pantalla completa. El editor de páginas funciona prácticamente igual que el editor de entradas, pero hay algunas características específicas para páginas en la caja de atributos de página.','You can select an image to be shown at the top of your site by uploading from your computer or choosing from your media library. After selecting an image you will be able to crop it.'=>'Puedes elegir una imagen para que se muestre en la parte superior de tu sitio subiéndola desde tu ordenador o eligiéndola de tu biblioteca de medios. Después de elegir una imagen podrás recortarla.','Skip to main content'=>'Saltar al contenido principal','You can set a custom image header for your site. Simply upload the image and crop it, and the new header will go live immediately. Alternatively, you can use an image that has already been uploaded to your Media Library by clicking the “Choose Image” button.'=>'Puedes elegir una imagen de cabecera personalizada para tu sitio. Simplemente sube la imagen y recórtala, la nueva cabecera se verá en directo inmediatamente. Alternativamente puedes usar una imagen que ya hayas subido a tu biblioteca de medios haciendo clic en el botón «Elegir imagen»','Skip Cropping, Publish Image as Is'=>'Dejar de recortar, publicar la imagen tal cual','Choose Image'=>'Elegir imagen','Or choose an image from your media library:'=>'O elige una imagen de tu biblioteca medios:','Select Image'=>'Elegir imagen','Collapse'=>'Contraer','If you do not want a header image to be displayed on your site at all, click the “Remove Header Image” button at the bottom of the Header Image section of this page. If you want to re-enable the header image later, you just have to select one of the other image options and click “Save Changes”.'=>'Si no quieres que se muestre ninguna imagen de cabecera en tu sitio, haz clic en el botón «Eliminar la imagen de la cabecera» al final de la sección de la imagen de cabecera de esta página. Si quieres reactivar más tarde la imagen de cabecera, tendrás que seleccionar una de las otras opciones de imagen y hacer clic en «Guardar cambios».','pluginInstalled'=>'Instalado','Previewing and Customizing'=>'Previsualizar y personalizar','Previewing and Installing'=>'Previsualizando e instalando','Once you have generated a list of themes, you can preview and install any of them. Click on the thumbnail of the theme you are interested in previewing. It will open up in a full-screen Preview page to give you a better idea of how that theme will look.'=>'Una vez que hayas generado una lista de temas, puedes previsualizar e instalar cualquiera de ellos. Haz clic en la miniatura del tema que quieras previsualizar. Se abrirá una vista previa a pantalla completa para darte una mejor idea de cómo se verá ese tema.','You are using the browser’s built-in file uploader. The WordPress uploader includes multiple file selection and drag and drop capability. .'=>'Estás usando el cargador incluido en el navegador. El cargador de WordPress incluye selección múltiple de archivos y capacidad de arrastrar y soltar. .','The Categories and Tags Converter link on this screen will take you to the Import screen, where that Converter is one of the plugins you can install. Once that plugin is installed, the Activate Plugin & Run Importer link will take you to a screen where you can choose to convert tags into categories or vice versa.'=>'El enlace al «Conversor de categorías y etiquetas» de esta pantalla te llevará a la pantalla de importación, donde el conversor es un plugin que puedes instalar. Una vez esté instalado el plugin, el enlace de «Activar plugin y ejecutar importador» te llevará a una pantalla donde podrás elegir convertir etiquetas a categorías y viceversa.','Categories have hierarchy, meaning that you can nest sub-categories. Tags do not have hierarchy and cannot be nested. Sometimes people start out using one on their posts, then later realize that the other would work better for their content.'=>'Las categorías tienen jerarquía, lo que significa que pueden anidar subcategorías. Las etiquetas no tienen jerarquía y no pueden anidarse. A veces, las personas empieza a usar una en sus entradas y luego se dan cuenta de que otra funcionaría mejor para su contenido.','For most themes, the header text is your Site Title and Tagline, as defined in the General Settings section.'=>'En la mayoría de los temas, el texto de cabecera es el título y descripción corta de tu sitio, como esté definido en la sección de Ajustes generales.','If your theme has more than one default header image, or you have uploaded more than one custom header image, you have the option of having WordPress display a randomly different image on each page of your site. Click the “Random” radio button next to the Uploaded Images or Default Images section to enable this feature.'=>'Si tu tema tiene más de una imagen de cabecera por defecto, o has subido más de una imagen de cabecera personalizada, tienes la opción de hacer que WordPress muestre una imagen diferente al azar en cada página de tu sitio. Haz clic en el botón «Al azar» junto a la sección de Subir imágenes o Imágenes por defecto para activar esta característica.','Some themes come with additional header images bundled. If you see multiple images displayed, select the one you would like and click the “Save Changes” button.'=>'Algunos temas vienen con imágenes de cabecera incluidas. Si ves que se muestran varias imágenes, selecciona la que te gusta y haz clic en el botón «Guardar los cambios».','You can choose from the theme’s default header images, or use one of your own. You can also customize how your Site Title and Tagline are displayed.'=>'Puedes elegir entre las imágenes por defecto del tema, o usar una tuya. También puedes personalizar como se mostrarán el título y descripción corta de tu sitio.','This screen is used to customize the header section of your theme.'=>'Esta pantalla se usa para personalizar la sección de cabecera de tu tema.','Configuration Error'=>'Error de configuración','Revert to the Browser Uploader by clicking the link below the drag and drop box.'=>'Vuelve al Cargador del navegador haciendo clic en el enlace siguiente para poder arrastrar y soltar.','User deleted.'=>'Usuario borrado.','Could not copy files. You may have run out of disk space.'=>'No se han podido copiar los archivos. Puede que tengas que liberar espacio en disco.','Find a theme based on specific features.'=>'Busca un tema basándote en características específicas.','Search for themes by keyword.'=>'Buscar temas por palabra clave.','In all likelihood, these items were supplied to you by your web host. If you do not have this information, then you will need to contact them before you can continue. If you are ready…'=>'Lo más probable es que estos elementos te los haya facilitado tu proveedor de alojamiento web. Si no tienes esta información, tendrás que contactar con ellos antes de poder continuar. Si ya estás listo…','This theme is broken.'=>'Este tema está roto.','Set as header'=>'Establecer como cabecera','Set as background'=>'Establecer como fondo','Customize “%s”'=>'Personalizar «%s»','(required)'=>'(obligatorio)','Edit Link'=>'Editar enlace','Error: This email is already registered. Please choose another one.'=>'Error: Este correo electrónico ya está registrado. Por favor, elige otro.','Error: Please enter a nickname.'=>'Error: por favor, introduce un alias.','https://wordpress.org/about/'=>'https://es.wordpress.org/about/','Select All'=>'Seleccionar todo','Public, Sticky'=>'Pública, fija','Privately Published'=>'Publicada como privada','Save as Pending'=>'Guardar como pendiente','Enter a link URL or click above for presets.'=>'Introduce una URL o haz clic arriba para los ajustes por defecto.','Link URL'=>'URL del enlace','No comments yet.'=>'No hay comentarios aún.','Version:'=>'Versión:','Collapse Sidebar'=>'Contraer barra lateral','Plugin'=>'Plugin','All'=>'Todos','Word count: %s'=>'Número de palabras: %s','Edit comment'=>'Editar comentario','Preview:'=>'Vista previa:','E-mail'=>'Correo electrónico','The parent theme could not be found. You will need to install the parent theme, %s, before you can use this child theme.'=>'No se encuentra el tema padre. Tienes que instalar el tema padre, %s, antes de utilizar este tema hijo.','Successfully installed the parent theme, %1$s %2$s.'=>'Instalado correctamente el tema padre, %1$s %2$s.','The parent theme, %1$s %2$s, is currently installed.'=>'El tema padre, %1$s %2$s, ya está instalado.','Preparing to install %1$s %2$s…'=>'Preparando la instalación de %1$s %2$s…','This theme requires a parent theme. Checking if it is installed…'=>'Este tema requiere un tema padre. Comprueba si está instalado…','Show header text with your image.'=>'Mostrar texto de cabecera junto con tu imagen.','Header Text'=>'Texto de cabecera','There is a new version of %1$s available. View version %4$s details or update now.'=>'Hay disponible una nueva versión de %1$s. Revisa los detalles de la versión %4$s o actualízalo ahora.','By %s.'=>'Por %s.','Add Comment'=>'Añadir comentario','http://ma.tt/'=>'https://ma.tt/','This is not just a plugin, it symbolizes the hope and enthusiasm of an entire generation summed up in two words sung most famously by Louis Armstrong: Hello, Dolly. When activated you will randomly see a lyric from Hello, Dolly in the upper right of your admin screen on every page.'=>'Esto no es solo un plugin, simboliza la esperanza y entusiasmo de toda una generación resumidas en las dos palabras más famosas cantadas por Louis Armstrong: Hello, Dolly. Cuando lo actives verás frases al azar de Hello, Dolly en la parte superior derecha de cada página de tu pantalla de administración.','Hello Dolly'=>'Hello Dolly','Welcome — Shows links for some of the most common tasks when setting up a new site.'=>'Bienvenida — Muestra enlaces a algunas de las tareas más comunes al configurar un nuevo sitio.','There is a new version of %1$s available. View version %4$s details. Automatic update is unavailable for this theme.'=>'Hay una nueva versión disponible de %1$s. Ver los detalles de la versión %4$s. La actualización automática no está disponible para este tema.','HowdyWelcome'=>'Hola','Delete My Site Permanently'=>'Eliminar mi sitio permanentemente','I\'m sure I want to permanently delete my site, and I am aware I can never get it back or use %s again.'=>'Estoy seguro de que quiero borrar mi sitio permanentemente y soy consciente de que nunca podré recuperarlo o usar %s de nuevo.','Remember, once deleted your site cannot be restored.'=>'Recuerda, una vez eliminado el sitio no puede ser restaurado.','If you do not want to use your %s site any more, you can delete it using the form below. When you click Delete My Site Permanently you will be sent an email with a link in it. Click on this link to delete your site.'=>'Si no quieres usar tu sitio %s más puedes borrarlo usando el siguiente formulario. Cuando hagas clic en Borrar permanentemente mi sitio se te enviará un correo electrónico con un enlace en el mismo. Haz clic en ese enlace para borrar tu sitio.','Thank you. Please check your email for a link to confirm your action. Your site will not be deleted until this link is clicked.'=>'Gracias. Por favor, comprueba si has recibido un enlace en tu correo electrónico para confirmar esta acción. Tu sitio no se borrará hasta que hagas clic en este enlace. ','Sorry, the link you clicked is stale. Please select another option.'=>'Lo siento, el enlace en el que has hecho clic está caducado. Elige otra opción.','Thank you for using %s, your site has been deleted. Happy trails to you until we meet again.'=>'Gracias por usar %s, tu sitio se ha borrado. Buen viaje hasta que nos veamos de nuevo.','Primary Site'=>'Sitio principal','British English'=>'Inglés británico','American English'=>'Inglés americano','View Site'=>'Ver sitio','Visit Dashboard'=>'Visitar Escritorio','Your Sites'=>'Tus sitios','If you reached this screen by accident and meant to visit one of your own sites, here are some shortcuts to help you find your way.'=>'Si has llegado a esta pantalla por accidente y querías visitar uno de tus propios sitios aquí tienes algunos enlaces que te ayudarán a encontrar el camino.','You attempted to access the "%1$s" dashboard, but you do not currently have privileges on this site. If you believe you should be able to access the "%1$s" dashboard, please contact your network administrator.'=>'Has tratado de acceder al escritorio de «%1$s» pero actualmente no tienes privilegios en este sitio. Si crees que deberías poder acceder al escritorio de «%1$s» contacta con tu administrador de la red.','MB (Leave blank for network default)'=>'MB (déjalo en blanco para el valor por defecto de la red)','[%s] New Admin Email Address'=>'[%s] Nueva dirección de correo electrónico de administrador','Disabled'=>'Desactivado','Paused (%s)'=>'En pausa (%s)' . "\0" . 'En pausa (%s)','Global Settings'=>'Ajustes globales','You must be a member of at least one site to use this page.'=>'Debes ser miembro de al menos un sitio para usar esta página.','The primary site you chose does not exist.'=>'El sitio principal que has elegido no existe.','If you want to run multiple WordPress installations in a single database, change this.'=>'Si quieres ejecutar varias instalaciones de WordPress en una sola base de datos cambia esto.','Table Prefix'=>'Prefijo de tabla','Database Host'=>'Servidor de la base de datos','example passwordpassword'=>'contraseña','example usernameusername'=>'nombre_de_usuario','Database Name'=>'Nombre de la base de datos','Below you should enter your database connection details. If you are not sure about these, contact your host.'=>'A continuación tendrás que introducir los detalles de tu conexión con la base de datos. Si no estás seguro de ellos, contacta con tu proveedor de alojamiento.','Let’s go!'=>'¡Vamos a ello!','Table prefix (if you want to run more than one WordPress in a single database)'=>'Prefijo de la tabla (si quieres ejecutar más de un WordPress en una sola base de datos)','Database host'=>'Servidor de la base de datos','Database password'=>'Contraseña de la base de datos','Database username'=>'Usuario de la base de datos','Database name'=>'Nombre de la base de datos','WordPress › Setup Configuration File'=>'WordPress › Instalación del archivo de configuración.','The file %1$s already exists one level above your WordPress installation. If you need to reset any of the configuration items in this file, please delete it first. You may try installing now.'=>'El archivo %1$s ya existe en un nivel superior de tu instalación de WordPress. Si necesitas reiniciar alguno de los elementos de configuración de este archivo, por favor, bórralo primero. Puedes tratar de hacer la instalación ahora.','The file %1$s already exists. If you need to reset any of the configuration items in this file, please delete it first. You may try installing now.'=>'El archivo %1$s ya existe. Si necesitas recuperar algunos de los elementos de configuración de este archivo bórralo primero. Puedes probar a instalarlo ahora.','Sorry, I need a %s file to work from. Please re-upload this file to your WordPress installation.'=>'Lo siento, necesito un archivo %s desde el que poder trabajar. Por favor, sube de nuevo este archivo a tu instalación de WordPress.','To allow use of this page to automatically repair database problems, please add the following line to your %s file. Once this line is added to your config, reload this page.'=>'Para permitir usar esta página para reparar automáticamente problemas en la base de datos añade la siguiente línea al archivo wp-config.php. Una vez añadas esta línea a tu archivo de configuración vuelve a cargar esta página.','No comments awaiting moderation.'=>'No hay comentarios esperando moderación.','Plugin installer section titleOther Notes'=>'Otras notas','Plugin installer section titleChangelog'=>'Registro de cambios','Plugin installer section titleScreenshots'=>'Capturas de pantalla','Plugin installer section titleFAQ'=>'FAQ','Plugin installer section titleInstallation'=>'Instalación','Plugin installer section titleDescription'=>'Descripción','Plugin Homepage »'=>'Página principal del plugin »','You can export a file of your site’s content in order to import it into another installation or platform. The export file will be an XML file format called WXR. Posts, pages, comments, custom fields, categories, and tags can be included. You can choose for the WXR file to include only certain posts or pages by setting the dropdown filters to limit the export by category, author, date range by month, or publishing status.'=>'Puedes exportar un archivo del contenido de tu sitio para que puedas importarlo a otra instalación o plataforma. El archivo de exportación será un archivo XML en un formato llamado WXR. Se incluirán entradas, páginas, comentarios, campos personalizados, categorías y etiquetas. Puedes elegir incluir en el archivo WXR solo cierta entradas o páginas con los filtros desplegables para limitar la exportación por categorías, autor, rango de fechas por mes o estado de publicación.','Failed to repair the %1$s table. Error: %2$s'=>'Fallo al reparar la tabla %1$s. Error: %2$s','New users will receive an email letting them know they’ve been added as a user for your site. This email will also contain their password. Check the box if you do not want the user to receive a welcome email.'=>'Los nuevos usuarios recibirán un correo electrónico haciéndoles saber que han sido añadidos como usuarios de tu sitio. Este correo electrónico contendrá también su contraseña. Marca la casilla si no quieres que el usuario reciba un correo electrónico de bienvenida.','There are unsaved changes that will be lost. \'OK\' to continue, \'Cancel\' to return to the Image Editor.'=>'Hay cambios sin guardar que se perderán. «Aceptar» para continuar, «Cancelar» para volver a editor de imágenes.','Post via email settings allow you to send your WordPress installation an email with the content of your post. You must set up a secret email account with POP3 access to use this, and any mail received at this address will be posted, so it’s a good idea to keep this address very secret.'=>'Las opciones de publicar por correo electrónico te permiten enviar a tu instalación de WordPress el contenido de tu entrada. Tienes que crear una cuenta de correo electrónico secreta con acceso POP3 para poder hacerlo. Cualquier correo recibido en esa cuenta será publicado, por lo que conviene mantener esa cuenta muy secreta.','You can filter the list of users by User Role using the text links above the users list to show All, Administrator, Editor, Author, Contributor, or Subscriber. The default view is to show all users. Unused User Roles are not listed.'=>'Puedes filtrar la lista de perfiles de usuario usando los enlaces de texto de arriba a la izquierda para mostrar Todos, Administrador, Editor, Autor, Colaborador o Suscriptor. La vista por defecto muestra todos los usuarios. Los perfiles de usuario sin utilizar no están en la lista.','In previous versions of WordPress, all importers were built-in. They have been turned into plugins since most people only use them once or infrequently.'=>'En versiones anteriores de WordPress, todos los importadores estaban incorporados. Se han convertido en plugins porque la mayoría de las personas solo los utilizaba una vez o con poca frecuencia.','There is an autosave of this post that is more recent than the version below. View the autosave'=>'Hay un guardado automático de esta entrada que es más reciente que la versión de abajo. Ver el guardado automático','Image could not be processed. Please go back and try again.'=>'La imagen no se puede procesar. Por favor, vuelve atrás y prueba de nuevo.','The active theme is broken. Reverting to the default theme.'=>'El tema activo está roto. Volviendo al tema por defecto.','WordPress can also attempt to optimize the database. This improves performance in some situations. Repairing and optimizing the database can take a long time and the database will be locked while optimizing.'=>'WordPress también puede tratar de optimizar la base de datos. Esto mejora el rendimiento en algunas situaciones. La reparación y optimización de la base de datos puede tomar mucho tiempo y la base de datos se bloqueará mientras se optimiza.','WordPress can automatically look for some common database problems and repair them. Repairing can take a while, so please be patient.'=>'WordPress puede reconocer automáticamente algunos problemas comunes de base de datos y repararlos. La reparación puede durar un rato, sé paciente por favor.','Repairs complete. Please remove the following line from wp-config.php to prevent this page from being used by unauthorized users.'=>'Reparaciones completadas. Por favor, quita la siguiente línea del archivo wp-config.php para evitar que esta página sea utilizada por usuarios no autorizados.','The %1$s table is not okay. It is reporting the following error: %2$s. WordPress will attempt to repair this table…'=>'La tabla %1$s no está bien. Informa del siguiente error: %2$s. WordPress intentará reparar esta tabla…','Enter the email address or username of an existing user on this network to invite them to this site. That person will be sent an email asking them to confirm the invite.'=>'Introduce la dirección de correo electrónico o el nombre de usuario de un usuario existente en esta red para invitarle a este sitio. A esa persona se le enviará un correo pidiéndole que confirme la invitación.','Enter the email address of an existing user on this network to invite them to this site. That person will be sent an email asking them to confirm the invite.'=>'Escribe la dirección de correo electrónico de un usuario de esta red para invitarlo a este sitio. A esa persona se le enviará un correo electrónico para que confirme la invitación.','Show Toolbar when viewing site'=>'Mostrar la barra de herramientas al ver el sitio','For more information, see the release notes.'=>'Para más información, lee las notas de la versión.','Version %1$s addressed some security issues and fixed %2$s bug.'=>'La versión %1$s soluciona algunos problemas de seguridad y soluciona %2$s fallo.' . "\0" . 'La versión %1$s soluciona algunos problemas de seguridad y soluciona %2$s fallos.','Version %1$s addressed a security issue and fixed %2$s bug.'=>'La versión %1$s soluciona un problema de seguridad y soluciona %2$s fallo.' . "\0" . 'La versión %1$s soluciona un problema de seguridad y soluciona %2$s fallos.','Version %1$s addressed %2$s bug.'=>'La versión %1$s soluciona %2$s fallo.' . "\0" . 'La versión %1$s soluciona %2$s fallos.','Version %s addressed some security issues.'=>'La versión %s soluciona algunos problemas de seguridad.','Maintenance and Security Release'=>'Versión de mantenimiento y seguridad','Security Release'=>'Versión de seguridad','Maintenance Release'=>'Versión de mantenimiento','What’s New'=>'Novedades','This screen allows you to choose your permalink structure. You can choose from common settings or create custom URL structures.'=>'Esta pantalla te permite elegir la estructura de tus enlaces permanentes. Puedes dejarla con los ajustes por defecto o crear una estructura de URLs personalizada.','Welcome to WordPress %1$s. Learn more.'=>'Te damos la bienvenida a WordPress %1$s. Aprende más.','You can upload media files here without creating a post first. This allows you to upload files to use with posts and pages later and/or to get a web link for a particular file that you can share. There are three options for uploading files:'=>'Aquí puedes subir archivos de medios sin tener que crear una entrada antes. Esto te permite subir archivos para entradas o páginas que escribas con posterioridad u obtener un enlace para un archivo que quieras compartir. Hay tres opciones para subir archivos:','Adding Tags'=>'Añadiendo etiquetas','Adding Categories'=>'Añadiendo categorías','Troubleshooting'=>'Diagnóstico','How to Update'=>'Cómo actualizar','Once you’ve saved the download file, you can use the Import function in another WordPress installation to import the content from this site.'=>'Una vez hayas guardado el archivo descargado, puedes utilizar la función de importación en otra instalación de WordPress para importar el contenido de este sitio.','Attaching Files'=>'Adjuntando archivos','You can also edit or move multiple posts to the Trash at once. Select the posts you want to act on using the checkboxes, then select the action you want to take from the Bulk actions menu and click Apply.'=>'También puedes editar o mover varias entradas a la vez a la papelera. Selecciona las entradas sobre las que quieres actuar usando las casillas de verificación. Después, selecciona la acción que quieres realizar en el menú «Acciones en lote» y haz clic en «Aplicar».','Available Actions'=>'Acciones disponibles','You can customize the display of this screen’s contents in a number of ways:'=>'Puedes personalizar el formato de los contenidos de esta pantalla de muchas formas:','Screen Content'=>'Contenido en pantalla','This screen provides access to all of your posts. You can customize the display of this screen to suit your workflow.'=>'Esta pantalla te da acceso a todas tus entradas. Puedes personalizar el formato de esta pantalla para acomodarlo a tu sistema de trabajo.','If the importer you need is not listed, search the plugin directory to see if an importer is available.'=>'Si el importador que necesitas no está en la lista, busca en el directorio de plugins para ver si hay un importador disponible.','Moderating Comments'=>'Moderando comentarios','If you want to convert your categories to tags (or vice versa), use the Categories and Tags Converter available from the Import screen.'=>'Si quieres convertir categorías en etiquetas (o viceversa), utiliza el Conversor de categorías y etiquetas que está disponible en la página de importación.','Adding Plugins'=>'Añadiendo plugins','Adding Themes'=>'Añadiendo temas','Subscribers can read comments/comment/receive newsletters, etc. but cannot create regular site content.'=>'Los suscriptores pueden leer comentarios/comentar/recibir listas de distribución, etc., pero no pueden crear contenido normal en el sitio.','Authors can publish and manage their own posts, and are able to upload files.'=>'Los autores pueden publicar y gestionar sus propias entradas, además de subir archivos.','Here is a basic overview of the different user roles and the permissions associated with each one:'=>'Aquí tienes una visión general de los diferentes perfiles de usuarios y los permisos que tiene cada uno:','User Roles'=>'Perfiles de usuario','Remember to click the Add User button at the bottom of this screen when you are finished.'=>'Recuerda hacer clic en el botón «Añadir usuario» de esta pantalla cuando hayas terminado.','To add a new user to your site, fill in the form on this screen and click the Add User button at the bottom.'=>'Para añadir un usuario nuevo a tu sitio, rellena el formulario de esta pantalla y haz clic en el botón «Añadir usuario» de abajo.','Custom Structures'=>'Estruturas personalizadas','Common Settings'=>'Ajustes comunes','Permalinks are the permanent URLs to your individual pages and blog posts, as well as your category and tag archives. A permalink is the web address used to link to your content. The URL to each post should be permanent, and never change — hence the name permalink.'=>'Los enlaces permanentes son URLs permanentes para tus páginas y entradas de blog, así como para las categorías y las etiquetas de archivos. Un enlace permanente es la dirección web utilizada para enlazar tu contenido. La URL de cada entrada debe ser siempre la misma, permanente y no cambiar nunca — de ahí que se llame enlace permanente.','You can submit content in several different ways; this screen holds the settings for all of them. The top section controls the editor within the dashboard, while the rest control external publishing methods. For more information on any of these methods, use the documentation links.'=>'Puedes enviar contenido de muchas formas; esta pantalla contiene las opciones para todas ellas. La selección superior controla el editor dentro del escritorio, mientras las demás controlan las formas externas de publicación. Para más información sobre estos métodos para publicar, puedes mirar en los enlaces de la documentación.','Uploading Files allows you to choose the folder and path for storing your uploaded files.'=>'La subida de archivos te permite elegir la carpeta y la ruta donde guardar tu archivos subidos.','Installing themes on Multisite can only be done from the Network Admin section.'=>'La instalación de temas en multisitio solo se puede hacer desde la sección de administrador de red.','If desired, WordPress will automatically alert various services of your new posts.'=>'Si lo deseas, WordPress puede alertar automáticamente a varios servicios de tus nuevas entradas.','Post Via Email'=>'Publicar por Correo Electrónico','This screen provides many options for controlling the management and display of comments and links to your posts/pages. So many, in fact, they will not all fit here! :) Use the documentation links to get information on what each discussion setting does.'=>'Esta pantalla proporciona muchas opciones para controlar la gestión y la visualización de los comentarios y enlaces de tus entradas y páginas. De hecho, ¡hay tantas que no todas caben aquí! :) Usa los enlaces a la documentación para obtener información sobre qué hace cada ajuste de comentarios.','You can change your password, turn on keyboard shortcuts, change the color scheme of your WordPress administration screens, and turn off the WYSIWYG (Visual) editor, among other things. You can hide the Toolbar (formerly called the Admin Bar) from the front end of your site, however it cannot be disabled on the admin screens.'=>'Puedes cambiar tu contraseña, activar los atajos de teclado, cambiar la paleta de colores de tus pantallas de administración, desactivar el editor WYSIWYG (visual), entre otras cosas. Puedes ocultar la barra de herramientas (antes conocida como barra de administración) de la parte pública (front end) de tu sitio, aunque no es posible desactivarlo para las pantallas de administración.','This sidebar is no longer available and does not show anywhere on your site. Remove each of the widgets below to fully remove this inactive sidebar.'=>'Esta barra lateral no está disponible y no se muestra en tu sitio. Quita cada uno de sus widgets para quitar por completo esta barra inactiva.','Inactive Sidebar (not used)'=>'Barra lateral inactiva (no utilizada) ','Clicking Select Files opens a navigation window showing you files in your operating system. Selecting Open after clicking on the file you want activates a progress bar on the uploader screen.'=>'Haciendo clic en «Seleccionar archivos» se abre una ventana de navegación, mostrando los archivos de tu sistema operativo. Seleccionando «Abrir» después de hacer clic en el archivo que quieres, activas una barra de progreso en la pantalla del cargador.','Drag and drop your files into the area below. Multiple files are allowed.'=>'Arrastra y suelta tus archivos en el espacio inferior. Puedes subir múltiples archivos.','You can assign keywords to your posts using tags. Unlike categories, tags have no hierarchy, meaning there is no relationship from one tag to another.'=>'Puedes asignar palabras clave a tus entradas usando etiquetas. A diferencia de las categorías, las etiquetas no tienen jerarquía, lo que significa que no hay relación de una etiqueta con otra.','You can create groups of links by using Link Categories. Link Category names must be unique and Link Categories are separate from the categories you use for posts.'=>'Puedes crear grupos de enlaces utilizando las categorías de enlaces. Los nombres de las categorías de enlaces deben ser únicos y son distintas de las categorías que usas para tus entradas.','Missing Widgets'=>'Widgets desaparecidos','Removing and Reusing'=>'Quitar y reutilizar','If a media file has not been attached to any content, you will see that in the Uploaded To column, and can click on Attach to launch a small popup that will allow you to search for existing content and attach the file.'=>'Si un archivo no se ha adjuntado a ningún contenido podrás verlo en la columna de Adjunto a. Puedes hacer clic en Adjuntar a para lanzar un pequeño emergente que te permitirá buscar contenido existente al que adjuntar el archivo. ','All the files you’ve uploaded are listed in the Media Library, with the most recent uploads listed first. You can use the Screen Options tab to customize the display of this screen.'=>'Todos los archivos que has subido están listados en la biblioteca multimedia, con las subidas más recientes listadas primero. Puedes utilizar la pestaña de Opciones de pantalla para personalizar la visualización de esta pantalla.','You can also perform the same types of actions, including narrowing the list by using the filters, acting on a page using the action links that appear when you hover over a row, or using the Bulk actions menu to edit the metadata for multiple pages at once.'=>'También puedes realizar el mismo tipo de acciones, incluyendo disminuir la lista usando filtros, actuar sobre una página usando los enlaces de acción que aparecen al pasar el cursor sobre una fila o usar el menú «Acciones en lote» para editar los datos meta de varias páginas a la vez.','Managing pages is very similar to managing posts, and the screens can be customized in the same way.'=>'Gestionar páginas es muy parecido a gestionar entradas y las pantallas se pueden personalizar de la misma manera.','Pages are similar to posts in that they have a title, body text, and associated metadata, but they are different in that they are not part of the chronological blog stream, kind of like permanent posts. Pages are not categorized or tagged, but can have a hierarchy. You can nest pages under other pages by making one the “Parent” of the other, creating a group of pages.'=>'Las páginas son similares a las entradas en que tienen un título, cuerpo y metadatos asociados. Son diferentes en que no son parte de la corriente cronológica del blog, siendo una especie de entradas permanentes. +Las páginas no están categorizadas o etiquetadas, pero pueden tener jerarquía. Puedes anidar páginas bajo otras páginas haciendo que una sea «Superior» de otra, creando así grupos de páginas.','Many people take advantage of keyboard shortcuts to moderate their comments more quickly. Use the link to the side to learn more.'=>'Muchas personas aprovechan los atajos de teclado para moderar los comentarios más rápido. Utiliza el enlace del lateral para aprender más sobre esto.','In the Author column, in addition to the author’s name, email address, and site URL, the commenter’s IP address is shown. Clicking on this link will show you all the comments made from this IP address.'=>'En la columna de Autor, además del nombre del autor, dirección de correo electrónico y URL del sitio, se muestra la dirección IP del comentarista. Haciendo clic en este enlace se te mostrarán todos los comentarios realizados desde esta dirección IP.','You can manage comments made on your site similar to the way you manage posts and other content. This screen is customizable in the same ways as other management screens, and you can act on comments using the on-hover action links or the bulk actions.'=>'Puedes gestionar los comentarios hechos en tu sitio de igual forma que gestionas las entradas y el resto del contenido. Esta pantalla es personalizable de la misma forma que el resto de pantallas de gestión y puedes actuar sobre los comentarios usando los enlaces de acción al pasar el cursor o las acciones en lote.','Links in the Toolbar at the top of the screen connect your dashboard and the front end of your site, and provide access to your profile and helpful WordPress information.'=>'Los enlaces de la barra de herramientas de la parte superior de la pantalla conectan tu escritorio y tu sitio y proporcionan acceso a tu perfil e información valiosa de WordPress. ','Deleting Links'=>'Borrar enlaces','Links may be separated into Link Categories; these are different than the categories used on your posts.'=>'Los enlaces pueden dividirse en categorías de enlaces; estas son diferentes de las categorías utilizadas en las entradas','Learn more about WordPress %2$s.'=>'Aprende más sobre WordPress %2$s.','Edit takes you to the editable profile screen for that user. You can also reach that screen by clicking on the username.'=>'Editar te lleva a la pantalla de edición de perfil para ese usuario. Puedes llegar también a esa pantalla haciendo clic sobre su nombre de usuario.','Hovering over a row in the users list will display action links that allow you to manage users. You can perform the following actions:'=>'Pasando el cursor por encima de una línea en la lista de usuarios, se mostrarán los enlaces de acción para gestionar usuarios. Puedes realizar las siguientes acciones:','You can view all posts made by a user by clicking on the number under the Posts column.'=>'Puedes ver todas las entradas escritas por un usuario haciendo clic en el número que hay bajo la columna de entradas.','You can hide/display columns based on your needs and decide how many users to list per screen using the Screen Options tab.'=>'Puedes mostrar/ocultar columnas basándote en tus necesidades y decidir cuántos usuarios listar por pantalla utilizando la pestaña de Opciones de Pantalla.','Managing Pages'=>'Gestionando páginas','Preview will show you what your draft post will look like if you publish it. View will take you to your live site to view the post. Which link is available depends on your post’s status.'=>'Previsualización te mostrará cómo se verá tu borrador si lo publicas. «Ver» te llevará a tu sitio para ver la entrada. El enlace que se muestra depende del estado de la entrada.','Trash removes your post from this list and places it in the Trash, from which you can permanently delete it.'=>'Papelera elimina tu entrada de esta lista y la coloca en la papelera, donde puedes borrarla de forma permanente. ','Quick Edit provides inline access to the metadata of your post, allowing you to update post details without leaving this screen.'=>'Edición Rápida proporciona acceso en línea a los metadatos de tu entrada, permitiéndote actualizar detalles de la entrada sin dejar la pantalla. ','Edit takes you to the editing screen for that post. You can also reach that screen by clicking on the post title.'=>'Editar te lleva a la pantalla de edición de esa entrada. También puedes llegar hasta ella haciendo clic en el título de la entrada.','Because this is a multisite installation, you may add accounts that already exist on the Network by specifying a username or email, and defining a role. For more options, such as specifying a password, you have to be a Network Administrator and use the hover link under an existing user’s name to Edit the user profile under Network Admin > All Users.'=>'En una instalación multisitio puedes añadir cuentas que ya existen en la Red especificando el nombre de usuario o la contraseña con la que están registrados en la misma, y definiendo un rol. Para más opciones, como especificar una contraseña, debes ser Administrador de la Red y utilizar el enlace que aparece al pasar sobre los nombres de usuario. Puedes encontrar esta opción bajo Administración de Red > Todos los Usuarios.','Welcome to WordPress 6.9'=>'Te damos la bienvenida a WordPress 6.9','Go to Dashboard → Home'=>'Ir a Escritorio → Inicio','Go to Dashboard → Updates'=>'Ir a Escritorio → Actualizaciones','Profile updated.'=>'Perfil actualizado.','You are using the multi-file uploader. Problems? Try the instead.'=>'Estás usando la subida de multiples archivos. ¿Tienes problemas?, prueba .','Hi, + +You\'ve been invited to join \'%1$s\' at +%2$s with the role of %3$s. + +Please click the following link to confirm the invite: +%4$s'=>'Hola, + +Has sido invitado a participar de \'%1s\' en +%2$s como %3$s. + +Por favor, haz clic en el enlace para aceptar la invitación: +%4$s','Core Developer'=>'Desarrollador del núcleo','No valid plugins were found.'=>'No se encontraron plugins.','The plugin contains no files.'=>'El plugin no contiene archivos.','The package could not be installed.'=>'No se ha podido descomprimir el paquete.','Attachment Post URL'=>'URL del adjunto a la entrada','admin menuAll Links'=>'Todos los enlaces','%s plugins'=>'%d plugins','%s plugin'=>'%d plugin','Failed to optimize the %1$s table. Error: %2$s'=>'Fallo al optimizar la tabla %1$s . Error: %2$s','Successfully optimized the %s table.'=>'Optimizada correctamente la tabla %s.','The %s table is already optimized.'=>'La tabla %s ya está optimizada.','Successfully repaired the %s table.'=>'La tabla %s se ha reparado correctamente.','The %s table is okay.'=>'La tabla %s está correcta.','View version %s details.'=>'Ver detalles de la versión %s.','Tumblr'=>'Tumblr','Update %2$s or learn how to browse happy'=>'Actualiza %2$s o aprende cómo navegar feliz','Scale images to match the large size selected in %1$simage options%2$s (%3$d × %4$d).'=>'Escala las imágenes para que coincidan con el tamaño mayor seleccionado en las %1$sopciones de imágenes%2$s (%3$d × %4$d).','Audio, Video, or Other File'=>'Audio, vídeo u otro archivo.','Insert media from another website'=>'Insertar medio desde otra web','Error: Could not connect to the server. Please verify the settings are correct.'=>'Error: No se ha podido conectar con el servidor. Por favor, verifica que los ajustes son correctos.','Drag and Drop — To rearrange the boxes, drag and drop by clicking on the title bar of the selected box and releasing when you see a gray dotted-line rectangle appear in the location you want to place the box.'=>'Arrastrar y soltar — Para reorganizar las cajas, arrástralas haciendo clic en la barra de título de la caja seleccionada y suéltalas cuando veas aparecer un rectángulo de puntos en el lugar donde quieras situarlas.','You can use the following controls to arrange your Dashboard screen to suit your workflow. This is true on most other administration screens as well.'=>'Puedes usar los controles siguientes para organizar tu escritorio, de modo que se adapte a tu rutina de trabajo. Puedes hacer lo mismo en la mayoría de las secciones de administración.','The left-hand navigation menu provides links to all of the WordPress administration screens, with submenu items displayed on hover. You can minimize this menu to a narrow icon strip by clicking on the Collapse Menu arrow at the bottom.'=>'El menú de navegación de la izquierda proporciona enlaces a todas las pantallas de administración de WordPress, con elementos de submenú que aparecen al pasar el cursor sobre ellos. Puedes minimizar este menú para que sea una barra estrecha de iconos haciendo clic en la flecha del menú Cerrar en la parte inferior.','Updates %s'=>'Actualizaciones %s','Installed Plugins'=>'Plugins instalados','Plugins %s'=>'Plugins %s','All Users'=>'Todos los usuarios','Confirm Deletion'=>'Confirmar borrado','Role'=>'Perfil','Add Existing User'=>'Añadir usuario existente','Search Users'=>'Buscar usuarios','User removed from this site.'=>'Usuario eliminado de este sitio.','Changed roles.'=>'Perfiles cambiados.','Caution:'=>'Precaución:','User added.'=>'Usuario añadido.','Super Admin'=>'Super administrador','Version %s'=>'Versión %s','Update Available (%s)'=>'Actualización disponible (%s)' . "\0" . 'Actualizaciones disponibles (%s)','Deactivate'=>'Desactivar','Delete Site'=>'Borrar sitio','Settings saved.'=>'Ajustes guardados.','For more information:'=>'Para más información:','About Pages'=>'Acerca de las páginas','Title and Post Editor'=>'Título y editor de entradas','Customizing This Display'=>'Personalizando esta pantalla','Note: Neither of these options blocks access to your site — it is up to search engines to honor your request.'=>'Nota: ninguna de estas opciones bloquea el acceso a tu sitio — depende de los motores de búsqueda respetar tu solicitud.','Post name'=>'Nombre de la entrada','sample permalink structuresample-post'=>'pagina-ejemplo','sample permalink basearchives'=>'archivos','This importer is not installed. Please install importers from the main site.'=>'Este importador no está instalado. Por favor, instala los importadores desde el sitio principal.','Site Language'=>'Idioma del sitio','Attempt to notify any blogs linked to from the post'=>'Intentar avisar a cualquier blog enlazado desde la entrada','Hi, +You\'ve been invited to join \'%1$s\' at +%2$s with the role of %3$s. +If you do not want to join this site please ignore +this email. This invitation will expire in a few days. + +Please click the following link to activate your user account: +%%s'=>'Hola. +Has sido invitado a unirte a \'%1$s\' en +%2$s con el perfil de %3$s. +Si no quieres unirte a este sitio, por favor, ignora este correo electrónico +Esta invitación caducará en unos días. + +Por favor, haga clic en el siguiente enlace para activar su cuenta de usuario: +%%s','Post Formats'=>'Formatos de entradas','Full Width Template'=>'Plantilla de anchura completa','Featured Images'=>'Imágenes destacadas','Featured Image Header'=>'Imagen de cabecera','It looks like you\'re using an old version of %s. For the best WordPress experience, please update your browser.'=>'Parece que estás usando una versión antigua de %s. Para una mejor experiencia usando WordPress, actualiza tu navegador, por favor.','It looks like you\'re using an insecure version of %s. Using an outdated browser makes your computer unsafe. For the best WordPress experience, please update your browser.'=>'Parece que usas una versión insegura de %s. Usar un navegador obsoleto hace que tu ordenador sea inseguro. Para tener la mejor experiencia en WordPress, por favor, actualiza tu navegador.','There are some invalid menu items. Please check or delete them.'=>'Hay algunos elementos de menú no válidos. Por favor, compruébalos o elimínalos.','term nameName'=>'Nombre','meta nameName'=>'Nombre','theme nameName'=>'Nombre','You can find additional themes for your site by using the Theme Browser/Installer on this screen, which will display themes from the WordPress Theme Directory. These themes are designed and developed by third parties, are available free of charge, and are compatible with the license WordPress uses.'=>'Puedes encontrar más temas para tu sitio usando el buscador/instalador de temas que hay en esta misma página, donde se mostrarán los temas del directorio de temas de WordPress. Estos temas los diseñan y desarrollan terceros y están disponibles sin cargo (gratis) y son compatibles con la licencia que utiliza WordPress.','If you would like to see more plugins to choose from, click on the “Add Plugin” button and you will be able to browse or search for additional plugins from the WordPress Plugin Directory. Plugins in the WordPress Plugin Directory are designed and developed by third parties, and are compatible with the license WordPress uses. Oh, and they are free!'=>'Si quieres ver más plugins entre los que elegir, haz clic en el botón «Añadir plugin» y podrás navegar o buscar más plugins del directorio de plugins de WordPress.org. Los plugins del directorio de WordPress.org están diseñados por terceros y son compatibles con la licencia que utiliza WordPress. Ah, y además ¡son gratis!','The uploaded file exceeds the %s directive that was specified in the HTML form.'=>'El archivo subido excede la directiva %s que se ha especificado en el formulario HTML.','External Libraries'=>'Bibliotecas externas','Network Setup'=>'Configuración de la red','Available Tools'=>'Herramientas disponibles','Translate this to be the equivalent of English Translators in your language for the credits page Translators sectionTranslators'=>'Traductores','Every plugin and theme in WordPress.org’s directory is 100%% GPL or a similarly free and compatible license, so you can feel safe finding plugins and themes there. If you get a plugin or theme from another source, make sure to ask them if it’s GPL first. If they do not respect the WordPress license, it is not recommended to use them.'=>'Cada plugin y tema del directorio de WordPress.org es 100%% GPL o con una licencia libre similar y compatible, así que aquí puedes sentirte seguro buscando plugins y temas. Si obtienes un plugin o tema desde otra fuente, asegúrate primero de preguntar si es GPL. Si no respeta la licencia de WordPress, no se recomienda usarlo.','WordPress grows when people like you tell their friends about it, and the thousands of businesses and services that are built on and around WordPress share that fact with their users. The WordPress community is flattered every time someone spreads the good word, just make sure to check out the WordPress Foundation trademark guidelines first.'=>'WordPress crece cuando personas como tú hablan de él a sus amigos, y los miles de negocios y servicios que se construyen sobre y alrededor de WordPress lo comparten con sus usuarios. La comunidad WordPress nos sentimos halagados cada vez que alguien hace correr la voz, pero asegúrate de consultar primero las directrices de marca registrada de la Fundación WordPress.','All Comments'=>'Todos los comentarios','Lead Developer'=>'Desarrollador principal','Cofounder, Project Lead'=>'Co-fundador, líder del proyecto','Core Contributors to WordPress %s'=>'Colaboradores del núcleo de WordPress %s','Project Leaders'=>'Líderes de proyecto','Credits'=>'Agradecimientos','removing-widgetDeactivate'=>'Desactivar','Your browser is out of date!'=>'¡Tu navegador está obsoleto!','You are using an insecure browser!'=>'¡Estás usando un navegador inseguro!','Freedoms'=>'Derechos','You can use one of these cool headers or show a random one on each page.'=>'Puedes usar una de estas cabeceras tan chulas o mostrarlas aleatoriamente en cada página.','If you do not want to upload your own image, you can use one of these cool headers, or show a random one.'=>'Si no quieres subir tu propia imagen puedes usar una de estas cabeceras tan chulas o ir mostrándolas aleatoriamente.','You can choose one of your previously uploaded headers, or show a random one.'=>'Puedes elegir una las cabeceras que ya has subido o que se muestren aleatoriamente.','Collapse Menu'=>'Cerrar menú','Uploaded Images'=>'Imágenes subidas','Random: Show a different image on each page.'=>'Aleatoria: Muestra una imagen diferente en cada página.','You have specified this user for deletion:'=>'Has marcado a este usuario para su eliminación:','%s Page Template'=>'Plantilla de página %s','You cannot delete a plugin while it is active on the main site.'=>'No puedes borrar un plugin si está activado para el sitio principal.','This plugin may be active on other sites in the network.'=>'Este plugin puede estar activado para otros sitios de la red.','Default Post Format'=>'Formato de entrada por defecto','Any edits to files from this screen will be reflected on all sites in the network.'=>'Cualquier modificación de los archivos se verá reflejada en todos los sitios de la red.','This screen lists all the existing users for your site. Each user has one of five defined roles as set by the site admin: Site Administrator, Editor, Author, Contributor, or Subscriber. Users with roles other than Administrator will see fewer options in the dashboard navigation when they are logged in, based on their role.'=>'Esta pantalla muestra todos los usuarios existentes para tu sitio. Cada usuario dispone de uno de los cinco perfiles definidos, según lo establecido por el administrador del sitio: administrador del sitio, editor, autor, colaborador o suscriptor. Los usuarios con perfiles que no sean de administrador verán menos opciones en el panel de navegación cuando se hayan identificado, en base a su perfil.','If you want to make changes but do not want them to be overwritten when the plugin is updated, you may be ready to think about writing your own plugin. For information on how to edit plugins, write your own from scratch, or just better understand their anatomy, check out the links below.'=>'Si quieres hacer cambios, pero no quieres que se sobreescriban cuando se actualice el plugin, puede que estés listo para pensar en escribir tu propio plugin. Para obtener información sobre cómo editar plugins, escribir desde cero el tuyo o, simplemente, entender mejor su anatomía, echa un vistazo a los siguientes enlaces.','The boxes on your Dashboard screen are:'=>'Las cajas en tu Escritorio son:','sample-page'=>'pagina-ejemplo','Sample Page'=>'Página de ejemplo','Retro (Generated)'=>'Retro (autogenerado)','You only have one theme enabled for this site right now. Visit the Network Admin to enable more themes.'=>'En este momento, solo tienes un tema activado para este sitio. Visita la administración de la red para activar más temas.','You only have one theme enabled for this site right now. Visit the Network Admin to enable or install more themes.'=>'Solo tienes un tema activado para este sitio. Ve a la administración de la red para activar o instalar más temas.','You only have one theme installed right now. Live a little! You can choose from over 1,000 free themes in the WordPress Theme Directory at any time: just click on the Install Themes tab above.'=>'Tienes solo un tema instalado ahora mismo. ¡Disfruta de la vida! Puedes elegir entre más de 1.000 temas gratuitos en el directorio de temas de WordPress.org cuando quieras: solo tienes que hacer clic en la pestaña Instalar temas de arriba.','One or more database tables are unavailable. To allow WordPress to attempt to repair these tables, press the “Repair Database” button. Repairing can take a while, so please be patient.'=>'Una o más tablas no están disponibles. Para permitir a WordPress que intente repararlas, pulse el botón «Reparar bases de datos». La reparación puede llevar un rato. Ten paciencia, por favor.','Visual Editor RTL Stylesheet'=>'Editor visual de hojas de estilos RTL','This is a file in your current parent theme.'=>'Este es un archivo del tema padre actual.','This child theme inherits templates from a parent theme, %s.'=>'Este tema hijo hereda plantillas de un tema padre, %s.','Network Enable'=>'Activar para la red','Your WordPress database has been successfully updated!'=>'¡La base de datos de WordPress se ha actualizado correctamente!','Update Complete'=>'Actualización completada','Update WordPress Database'=>'Actualizar la base de datos de WordPress','The database update process may take a little while, so please be patient.'=>'El proceso de actualización de la base de datos puede tardar un poco, por favor, ten paciencia.','Database Update Required'=>'Es necesaria una actualización de la base de datos','No Update Required'=>'No es necesaria la actualización','WordPress › Update'=>'Actualización de WordPress','You are about to install WordPress %s in English (US). There is a chance this update will break your translation. You may prefer to wait for the localized version to be released.'=>'Se va a instalar WordPress %s en inglés (US). Existe la posibilidad de que esta actualización rompa tu traducción. Puede que prefieras esperar a que salga la versión local.','There is a new version of %1$s available. View version %4$s details. Automatic update is unavailable for this plugin.'=>'Hay disponible una nueva versión de %1$s. Ver los detalles de la versión %4$s. La actualización automática no está disponible para este plugin.','Update Theme'=>'Actualizar tema','Update Plugin'=>'Actualizar plugin','Theme updated successfully.'=>'El tema se ha actualizado correctamente.','Theme update failed.'=>'Ha fallado la actualización del tema.','Plugin updated successfully.'=>'El plugin se ha actualizado correctamente.','Plugin update failed.'=>'Ha fallado la actualización del plugin.','Update package not available.'=>'Paquete de actualización no disponible.','Date range:'=>'Rango de fechas:','Authors:'=>'Autores:','This will contain all of your posts, pages, comments, custom fields, terms, navigation menus, and custom posts.'=>'Esto contendrá todas tus entradas, páginas, comentarios, campos personalizados, menús de navegación y publicaciones personalizadas.','All content'=>'Todo el contenido','Choose what to export'=>'Elige qué exportar','commentsMine (%s)'=>'Mío (%s)' . "\0" . 'Míos (%s)','%s — WordPress'=>'%s — WordPress','column nameIn Response To'=>'En respuesta a','The Available Widgets section contains all the widgets you can choose from. Once you drag a widget into a sidebar, it will open to allow you to configure its settings. When you are happy with the widget settings, click the Save button and the widget will go live on your site. If you click Delete, it will remove the widget.'=>'La sección de widgets disponibles contiene todos los widgets que puedes elegir. Cuando arrastres el widget a la barra lateral, se abrirá para que puedas configurar sus opciones. Cuando las tengas a tu gusto, haz clic en botón de guardar y el widget se pondrá a funcionar en tu sitio. Si pulsas borrar, se quitará el widget.','Remember to click Update to save metadata entered or changed.'=>'Recuerda hacer clic en «Actualizar» para guardar los metadatos que hayas introducido o cambiado.','Note that you crop the image by clicking on it (the Crop icon is already selected) and dragging the cropping frame to select the desired part. Then click Save to retain the cropping.'=>'Se recorta la imagen haciendo clic en la misma (el icono de recorte ya estará seleccionado) y arrastrando el marcho de recorte hasta donde se desee. Para fijarla, haz clic en guardar.','For images only, you can click on Edit Image under the thumbnail to expand out an inline image editor with icons for cropping, rotating, or flipping the image as well as for undoing and redoing. The boxes on the right give you more options for scaling the image, for cropping it, and for cropping the thumbnail in a different way than you crop the original image. You can click on Help in those boxes to get more information.'=>'(Solo para imágenes) Puedes hacer clic en editar imágenes, debajo de la miniatura, para obtener el menú de edición de imágenes y recortar, rotar o invertir la imagen, así como deshacer y rehacer. Las cajas de la derecha te dan más opciones para escalar y recortar la imagen; y para recortar la miniatura de forma diferente de la imagen original. Puedes hacer clic en la ayuda en esas cajas para obtener más información.','This screen allows you to edit fields for metadata in a file within the media library.'=>'Esta pantalla te permite editar los campos para metadatos en un archivo dentro de la biblioteca de medios.','Email or Username'=>'Correo electrónico o nombre de usuario','Search installed themes'=>'Buscar temas instalados','Please Note: Any customizations you have made to theme files will be lost. Please consider using child themes for modifications.'=>'Atención: Se perderá cualquier personalización que hayas hecho a los archivos del tema. Por favor, plantéate el uso de temas hijos para hacer modificaciones.','postsSticky (%s)'=>'Fija (%s)' . "\0" . 'Fijas (%s)','Check again.'=>'Comprobar de nuevo.','Last checked on %1$s at %2$s.'=>'Última comprobación el %1$s a las %2$s.','Please select one or more plugins to update.'=>'Por favor, elige uno o más plugins a actualizar.','Please select one or more themes to update.'=>'Por favor, elige uno o más temas para actualizarlos.','The update process is starting. This process may take a while on some hosts, so please be patient.'=>'El proceso de actualización está comenzando. Este proceso puede tardar un poco en algunos servidores. Ten paciencia, por favor.','Apply Filters'=>'Aplicar filtros','Editor Style'=>'Estilo del editor','To perform the requested action, WordPress needs to access your web server.'=>'Para realizar la operación que has solicitado WordPress necesita tener acceso a tu servidor web.','Current Page'=>'Página actual','No themes match your request.'=>'Ningún tema se ajusta a lo que buscas.','Search Sites'=>'Buscar sitios','Create a New User'=>'Crear un nuevo usuario','You have %1$s and %2$s.'=>'Tienes %1$s y %2$s.','%s site'=>'%s sitio' . "\0" . '%s sitios','%s user'=>'%s usuario' . "\0" . '%s usuarios','https://wordpress.org/news/feed/'=>'https://es.wordpress.org/feed/','https://wordpress.org/news/'=>'https://es.wordpress.org/news/','(Signup has been disabled. Only members of this site can comment.)'=>'(El registro ha sido desactivado. Solo los miembros de este sitio pueden comentar.)','There is a new version of %1$s available. View version %4$s details.'=>'Hay disponible una nueva versión de %1$s. Ver los detalles de la versión %4$s.','Go to Themes page'=>'Ir a la página de temas','Go to WordPress Updates page'=>'Ir a la página de actualizaciones de WordPress','Go to Plugins page'=>'Ir a la página de plugins','Click Save Menu to make pending menu items public.'=>'Haz clic en Guardar menú para hacer públicos los elementos de menú pendientes.','Storage Space'=>'Espacio de almacenamiento','Create a New Site'=>'Crear nuevo sitio','Images of exactly %1$d × %2$d pixels will be used as-is.'=>'Las imágenes de exactamente %1$d x %2$d pixels se utilizarán como están.','Crop and Publish'=>'Recortar y publicar','XFN stands for XHTML Friends Network, which is optional. WordPress allows the generation of XFN attributes to show how you are related to the authors/owners of the site to which you are linking.'=>'XFN se refiere a la red de amigos XHTML, que es opcional. WordPress permite la generación de atributos XFN para mostrar cómo te relacionas con los autores/propietarios del sitio al que estás enlazando.','FTP Password'=>'Contraseña FTP','FTP Username'=>'Usuario FTP','FTP/SSH Password'=>'Contraseña FTP/SSH','FTP/SSH Username'=>'Usuario FTP/SSH','Many themes show some sidebar widgets by default until you edit your sidebars, but they are not automatically displayed in your sidebar management tool. After you make your first widget change, you can re-add the default widgets by adding them from the Available Widgets area.'=>'Muchos temas muestran varios widgets de barra lateral por defecto hasta que editas tus barras laterales, pero no se muestran automáticamente en tu herramienta de gestión de barras laterales. Una vez hagas tu primer cambio en un widget, puedes volver a añadirlo desde el área de widgets disponibles.','You can choose what’s displayed on the homepage of your site. It can be posts in reverse chronological order (classic blog), or a fixed/static page. To set a static homepage, you first need to create two Pages. One will become the homepage, and the other will be where your posts are displayed.'=>'Puedes elegir lo que se muestra en la página principal de tu sitio. Pueden ser entradas en orden cronológico inverso (blog clásico) o una página fija/estática. Para definir una página de inicio estática, primero tienes que crear dos páginas. Una será la página principal y la otra donde se mostrarán tus entradas.','The Optional fields let you customize the “category” and “tag” base names that will appear in archive URLs. For example, the page listing all posts in the “Uncategorized” category could be /topics/uncategorized instead of /category/uncategorized.'=>'Los campos opcionales te permiten personalizar los nombres base de «categoría» y «etiqueta» que aparecerán en las URLs del archivo. Por ejemplo, la página con el listado de todas las entradas de la categoría «Sin categoría» podrían ser como /temas/sin-categoria, en vez de /category/sin-categoria.','When you assign multiple categories or tags to a post, only one can show up in the permalink: the lowest numbered category. This applies if your custom structure includes %1$s or %2$s.'=>'Cuando asignas varias categorías o etiquetas a una entrada, solo se puede mostrar una en el enlace permanente: la categoría con el número más bajo. Esto es así si tu estructura personalizada contiene %1$s o %2$s.','If you pick an option other than Plain, your general URL path with structure tags (terms surrounded by %s) will also appear in the custom structure field and your path can be further modified there.'=>'Si eliges cualquier opción distinta de la simple, la ruta general de tu URL con etiquetas de estructura (términos rodeados de %s) también se verá en el campo de estructura personalizada y podrás hacer aquí más modificaciones de tu ruta.','If you want to remove the widget but save its setting for possible future use, just drag it into the Inactive Widgets area. You can add them back anytime from there. This is especially helpful when you switch to a theme with fewer or different widget areas.'=>'Si quieres quitar el widget, pero también guardar los ajustes por si los necesitaras en el futuro, simplemente arrástralo al área de widgets inactivos. Puedes añadirlos de nuevo en cualquier otro momento desde ahí. Esto es especialmente útil cuando cambias a un tema con pocas o distintas áreas de widgets.','To add a new user for your site, click the Add User button at the top of the screen or Add User in the Users menu section.'=>'Para añadir un nuevo usuario a tu sitio, haz clic en el botón de «Añadir usuario» en la parte superior de la pantalla o en la sección «Añadir usuario» del menú «Usuarios».','You can set maximum sizes for images inserted into your written content; you can also insert an image as Full Size.'=>'Puedes establecer los tamaños máximos para las imágenes insertadas en tu contenido; también puedes insertar una imagen a tamaño completo.','Most themes show the site title at the top of every page, in the title bar of the browser, and as the identifying name for syndicated feeds. Many themes also show the tagline.'=>'La mayoría de los temas muestran el título del sitio en la parte superior de todas las páginas, en la barra de título del navegador, y como nombre identificativo en los feeds sindicados. Muchos temas también muestran la descripción corta.','Order — Pages are usually ordered alphabetically, but you can choose your own order by entering a number (1 for first, etc.) in this field.'=>'Orden — Las páginas normalmente se ordenan alfabéticamente, pero puedes elegir tu propio orden introduciendo un número (1 para la primera, etc.) en este campo.','If you do not remember your credentials, you should contact your web host.'=>'Si no recuerdas tus datos de acceso deberías contactar con tu proveedor de alojamiento.','Please enter your FTP credentials to proceed.'=>'Por favor, introduce tus datos de acceso FTP para proceder.','Please enter your FTP or SSH credentials to proceed.'=>'Por favor, introduce tus datos de acceso FTP o SSH para proceder.','Your profile contains information about you (your “account”) as well as some personal options related to using WordPress.'=>'Tu perfil contiene información sobre ti (tu «cuenta»), así como algunas opciones personales relacionadas con el uso de WordPress.','You can Upload a theme manually if you have already downloaded its ZIP archive onto your computer (make sure it is from a trusted and original source). You can also do it the old-fashioned way and copy a downloaded theme’s folder via FTP into your %s directory.'=>'Puedes subir manualmente un tema si ya has descargado su archivo ZIP en tu ordenador (asegúrate de que sea de una fuente fiable y original). También puedes hacerlo al viejo estilo y copiar un tema descargado a través de FTP en tu directorio %s.','Send Trackbacks — Trackbacks are a way to notify legacy blog systems that you’ve linked to them. Enter the URL(s) you want to send trackbacks. If you link to other WordPress sites they’ll be notified automatically using pingbacks, and this field is unnecessary.'=>'Enviar Trackbacks — Los trackbacks son un modo de avisar a los sistemas antiguos de blogs que les has enlazado. Introduce la(s) URL(s) a la(s) que quieres enviar trackbacks. Si enlazas a otros sitios WordPress recibirán aviso automáticamente por medio de los pingbacks, y este campo no sería necesario.','Contributors can write and manage their posts but not publish posts or upload media files.'=>'Los colaboradores pueden escribir y gestionar sus entradas, pero no pueden publicar entradas o subir archivos multimedia.','Administrators have access to all the administration features.'=>'Los administradores tienen acceso a todas las funciones de administración.','You can use the plugin file editor to make changes to any of your plugins’ individual PHP files. Be aware that if you make changes, plugins updates will overwrite your customizations.'=>'Puedes usar el editor de archivos de plugins para hacer cambios a cualquier archivo PHP individual de tus plugins. Ten en cuenta que si haces cambios, las actualizaciones de los plugins sobrescribirán tus personalizaciones.','If you delete a link, it will be removed permanently, as Links do not have a Trash function yet.'=>'Si borras un enlace, se eliminará de forma permanente. Aún no existe una papelera para los enlaces.','You can add links here to be displayed on your site, usually using Widgets. By default, links to several sites in the WordPress community are included as examples.'=>'Aquí puedes añadir enlaces a mostrar en tu sitio, generalmente usando widgets. Por defecto, se incluyen enlaces a varios sitios de la comunidad de WordPress como ejemplo.','Slug — The “slug” is the URL-friendly version of the name. It is usually all lowercase and contains only letters, numbers, and hyphens.'=>'Slug — El «slug» es la versión amigable de la URL para el nombre, normalmente suele estar en minúsculas y contener solo letras, números y guiones.','You can also create posts with the Press This bookmarklet.'=>'También puedes crear entradas con el marcador Publicar esto.','Do not forget to click on the Save Changes button when you are finished.'=>'No olvides hacer clic en el botón «Guardar los cambios» cuando acabes.','You can customize the look of your site without touching any of your theme’s code by using a custom background. Your background can be an image or a color.'=>'Puedes personalizar la imagen de tu sitio sin tocar nada del código del tema usando un fondo personalizado. Tu fondo puede ser una imagen o un color.','Editors can publish posts, manage posts as well as manage other people’s posts, etc.'=>'Los editores pueden publicar y gestionar entradas, así como gestionar las entradas de otras personas, etc.','Remember to click the Update Profile button when you are finished.'=>'Recuerda hacer clic en el botón Actualizar perfil cuando termines.','Required fields are indicated; the rest are optional. Profile information will only be displayed if your theme is set up to do so.'=>'Los campos necesarios están marcados; el resto son opcionales. El perfil solo se mostrará si tu tema está configurado para ello.','Your username cannot be changed, but you can use other fields to enter your real name or a nickname, and change which name to display on your posts.'=>'Tu nombre de usuario no puede cambiarse, pero puedes usar los otros campos para introducir tu nombre real o tu alias y utilizarlo para que se muestre en tus entradas.','You can also moderate the comment from this screen using the Status box, where you can also change the timestamp of the comment.'=>'También puedes moderar los comentarios desde esta pantalla usando la caja de estado, donde puedes cambiar el día/hora del comentario.','You can edit the information left in a comment if needed. This is often useful when you notice that a commenter has made a typographical error.'=>'Si te es necesario puedes editar la información que falta en un comentario. Esto es muy útil si te advierten que un usuario ha cometido un error tipográfico al realizar un comentario.','You can also control the display of your content in RSS feeds, including the maximum number of posts to display and whether to show full text or an excerpt. Learn more about feeds.'=>'También puedes controlar la visualización de tu contenido en los feeds RSS, incluyendo el número máximo de entradas a mostrar o si mostrar el texto completo o un extracto. Aprende más sobre los feeds.','This screen contains the settings that affect the display of your content.'=>'Esta pantalla contiene los ajustes que afectarán a cómo se muestran tus contenidos.','UTC means Coordinated Universal Time.'=>'UTC quiere decir Tiempo Universal Coordinado (Coordinated Universal Time)','The fields on this screen determine some of the basics of your site setup.'=>'Los campos en esta pantalla determinan algunas configuraciones básicas de tu sitio.','You must click the Save Changes button at the bottom of the screen for new settings to take effect.'=>'Debes hacer clic en el botón «Guardar cambios» en la parte inferior de la pantalla para que los nuevos ajustes tengan efecto.','The boxes for link name, web address, and description have fixed positions, while the others may be repositioned using drag and drop. You can also hide boxes you do not use in the Screen Options tab, or minimize boxes by clicking on the title bar of the box.'=>'Las cajas para el nombre del enlace, la dirección web y la descripción tienen posiciones fijas, mientras que las otras pueden ponerse en otra posición arrastrándolas y soltándolas. En la pestaña de las opciones de pantalla, también puedes ocultar las cajas que no uses o minimizar las cajas haciendo clic en la barra del título de la caja.','Your themes are all up to date.'=>'Tus temas están actualizados.','Your plugins are all up to date.'=>'Tus plugins están actualizados.','While your site is being updated, it will be in maintenance mode. As soon as your updates are complete, this mode will be deactivated.'=>'Mientras tu sitio está siendo actualizado, permanecerá en modo de mantenimiento. Este modo será desactivado en cuanto se completen tus actualizaciones.','An updated version of WordPress is available.'=>'Hay disponible una versión actualizada de WordPress.','You have the latest version of WordPress.'=>'Tienes la última versión de WordPress.','Function Name…'=>'Nombre de la función…','Activate Plugin & Run Importer'=>'Activar plugin y ejecutar el importador','You can add or edit links on this screen by entering information in each of the boxes. Only the link’s web address and name (the text you want to display on your site as the link) are required fields.'=>'Puede añadir o editar enlaces desde esta pantalla introduciendo la información en cada caja. Solo son necesarios el enlace a la web y el nombre (el texto que quieres mostrar en el enlace en tu sitio).','Categories can be selectively converted to tags using the category to tag converter.'=>'Las categorías se pueden convertir a voluntad en etiquetas usando el conversor de categorías a etiquetas.','This screen lists links to plugins to import data from blogging/content management platforms. Choose the platform you want to import from, and click Install Now when you are prompted in the popup window. If your platform is not listed, click the link to search the plugin directory for other importer plugins to see if there is one for your platform.'=>'Esta pantalla lista los enlaces a los plugins de importación de datos de blogs/contenido de diferentes plataformas. Elige la plataforma desde la que quieres importar datos y haz clic en Instalar ahora cuando se te pregunte en el mensaje emergente. Si tu plataforma no está en la lista, haz clic en el enlace de buscar en el directorio de plugins para ver si hay uno para tu plataforma.','Once generated, your WXR file can be imported by another WordPress site or by another blogging platform able to access this format.'=>'Una vez generado, tu archivo WXR puede ser importado por otro sitio WordPress o por otra plataforma de blogs que pueda acceder a este formato.','Choose a plugin to edit from the dropdown menu and click the Select button. Click once on any file name to load it in the editor, and make your changes. Do not forget to save your changes (Update File) when you are finished.'=>'Elige un plugin a editar en el menú desplegable y haz clic en el botón «Seleccionar». Haz clic una vez sobre cualquier nombre de archivo para cargarlo en el editor y hacer tus cambios. No olvides guardar tus cambios (actualizar el archivo) cuando acabes.','You can customize the display of this screen using the Screen Options tab and/or the dropdown filters above the links table.'=>'Puedes personalizar cómo se muestra esta pantalla usando la pestaña Opciones de pantalla y/o el menú desplegable de filtros encima de la tabla de enlaces.','Most of the time, plugins play nicely with the core of WordPress and with other plugins. Sometimes, though, a plugin’s code will get in the way of another plugin, causing compatibility issues. If your site starts doing strange things, this may be the problem. Try deactivating all your plugins and re-activating them in various combinations until you isolate which one(s) caused the issue.'=>'La mayoría de las veces, los plugins funcionan perfectamente con el núcleo de WordPress y con los otros plugins. Algunas veces, puede haber incompatibilidades entre algunos plugins, produciendo problemas. Tu sitio podría comenzar a hacer cosas raras, esto podría ser un problema. Prueba a desactivar tus plugin e ir activándolos uno a uno y comprobando que el problema no reaparezca. Es la forma de detectar el plugin problemático o la combinación de plugins problemáticos.','Enabling Accessibility Mode, via Screen Options, allows you to use Add and Edit buttons instead of using drag and drop.'=>'Activar el modo de accesibilidad, vía Opciones de Pantalla, te permite usar botones de Añadir y Editar en vez de arrastrar y soltar.','Widgets may be used multiple times. You can give each widget a title, to display on your site, but it’s not required.'=>'Los widgets pueden usarse varias veces. Puedes proporcionar a cada widget un título para ser mostrado en tu sitio, pero no es necesario.','Widgets are independent sections of content that can be placed into any widgetized area provided by your theme (commonly called sidebars). To populate your sidebars/widget areas with individual widgets, drag and drop the title bars into the desired area. By default, only the first widget area is expanded. To populate additional widget areas, click on their title bars to expand them.'=>'Los widgets son secciones independientes de contenido que pueden colocarse en cualquier parte de tu tema que esté preparada para ello (comúnmente llamados barras laterales/sidebars). Para colocar en tus barras laterales/widgets con widgets de forma individual, arrastra y suelta la barra del título del widget al área deseada. Por defecto, solo la primera área está desplegada. Para poner widgets en otras áreas, haz clic en la barra del título para desplegarlas.','Advice: Think very carefully about your site crashing if you are live-editing the theme currently in use.'=>'Advertencia: Piensa detenidamente en la posibilidad de que tu sitio produzca errores y sea inaccesible si estás editando el tema en uso y cometes algún error.','After typing in your edits, click Update File.'=>'Después de introducir tus modificaciones, haz clic en Actualizar archivo.','Begin by choosing a theme to edit from the dropdown menu and clicking the Select button. A list then appears of the theme’s template files. Clicking once on any file name causes the file to appear in the large Editor box.'=>'Empieza eligiendo un tema para editarlo desde el menú desplegable y haciendo clic en el botón «Elegir». Entonces aparecerá una lista de los archivos de plantilla del tema. Haciendo clic en cualquier nombre de archivo hace que el archivo aparezca en la caja grande del editor.','You can use the theme file editor to edit the individual CSS and PHP files which make up your theme.'=>'Puedes usar el editor de archivos de temas para editar los archivos CSS y PHP individuales que componen tu tema.','(no parent)'=>'(sin superior)','Template — Some themes have custom templates you can use for certain pages that might have additional features or custom layouts. If so, you’ll see them in this dropdown menu.'=>'Plantilla — Muchos temas tienen plantillas personalizadas que puedes utilizar en ciertas páginas que podrían tener características o diseños personalizados. Si así fuera los verás en este menú desplegable.','Parent — You can arrange your pages in hierarchies. For example, you could have an “About” page that has “Life Story” and “My Dog” pages under it. There are no limits to how many levels you can nest pages.'=>'Superior — Puedes ordenar tus páginas en jerarquías. Por ejemplo, podrías tener una página «Acerca de» que tenga como inferiores las páginas «Mi vida» y «Mi perro». No hay limitaciones de hasta cuantos niveles puedes anidar páginas.','All updates have been completed.'=>'Todas las actualizaciones se han completado.','You can change the display of this screen using the Screen Options tab to set how many items are displayed per screen and to display/hide columns in the table.'=>'Puedes cambiar la forma de visualización de esta pantalla usando la pestaña Opciones de pantalla para marcar cuántos elementos se muestran por pantalla y mostrar/ocultar columnas.','Description — The description is not prominent by default; however, some themes may display it.'=>'Descripción — La descripción no es importante en principio, no obstante, algunos temas pueden mostrarla.','Name — The name is how it appears on your site.'=>'Nombre — El nombre es como se ve en tu sitio.','When adding a new tag on this screen, you’ll fill in the following fields:'=>'Cuando añadas una nueva etiqueta en esta pantalla, rellenarás los siguientes campos:','When adding a new category on this screen, you’ll fill in the following fields:'=>'Cuando añades una nueva categoría en esta pantalla, rellenas los siguientes campos.','What’s the difference between categories and tags? Normally, tags are ad-hoc keywords that identify important information in your post (names, subjects, etc) that may or may not recur in other posts, while categories are pre-determined sections. If you think of your site like a book, the categories are like the Table of Contents and the tags are like the terms in the index.'=>'¿Cuál es la diferencia entre categorías y etiquetas? Normalmente, las etiquetas son palabras clave que identifican información importante en tus entradas (nombres, asuntos, etc...) que pueden ser recurrentes o no en otras entradas, mientras que las categorías son secciones por defecto. Si piensas en tu sitio como en un libro, las categorías serían la tabla de contenidos, mientras que las etiquetas serían como los términos en el índice.','You can use categories to define sections of your site and group related posts. The default category is “Uncategorized” until you change it in your writing settings.'=>'Puedes usar categorías para definir secciones para las entradas de tu sitio y grupo. La categoría por defecto es «Sin categoría» hasta que la cambies en tus ajustes de escritura.','You need JavaScript to choose a part of the image.'=>'Necesitas JavaScript para elegir una parte de la imagen.','Crop Header Image'=>'Recortar imagen de cabecera','Image Upload Error'=>'Error al subir la imagen','Text Color'=>'Color de texto','Restore Original Header Image'=>'Restaurar imagen de cabecera original','This will restore the original header image. You will not be able to restore any customizations.'=>'Esto restaurará la imagen de cabecera original. No te será posible restaurar ninguna personalización.','Reset Image'=>'Restaurar imagen','Remove Header Image'=>'Quitar imagen de cabecera','This will remove the header image. You will not be able to restore any customizations.'=>'Esto quitará la imagen de cabecera. No podrás restaurar ninguna personalización.','Default Images'=>'Imágenes por defecto','Delete this comment permanently'=>'Borrar este elemento permanentemente','Restore this comment from the Trash'=>'Restaurar este elemento desde la papelera','Allow comments'=>'Permitir comentarios','Discussion — You can turn comments and pings on or off, and if there are comments on the post, you can see them here and moderate them.'=>'Comentarios — Puedes activar y desactivar comentarios y pings en la entrada, puedes verlos y moderarlos aquí mismo.','%s — This allows you to associate an image with your post without inserting it. This is usually useful only if your theme makes use of the image as a post thumbnail on the home page, a custom header, etc.'=>'%s — Esto te permite asociar una imagen con tu entrada sin tener que insertarla. Esto suele ser útil si tu tema tiene imágenes en miniatura en la página de inicio, cabeceras personalizadas, etc.','Title — Enter a title for your post. After you enter a title, you’ll see the permalink below, which you can edit.'=>'Título — Introduce un titulo para tu entrada. Después de que introduzcas un título verás el enlace permanente debajo y podrás editarlo.','Hovering over a row in the posts list will display action links that allow you to manage your post. You can perform the following actions:'=>'Pasando el cursor sobre la línea de la entrada, mostrará los enlaces de las acciones, permitiéndote gestionar la entrada. Puedes realizar las siguientes acciones:','You can refine the list to show only posts in a specific category or from a specific month by using the dropdown menus above the posts list. Click the Filter button after making your selection. You also can refine the list by clicking on the post author, category or tag in the posts list.'=>'Puedes refinar lo que muestra el listado de entradas haciendo que solo se muestren las de una categoría específica o de un mes determinado usando el menú desplegable que encontrarás sobre el listado de entradas. Realiza un clic sobre el botón Filtro después de realizar tu selección. También puedes refinar el listado haciendo clic sobre el autor de una entrada, categoría o etiqueta del listado de entradas.','You can hide/display columns based on your needs and decide how many posts to list per screen using the Screen Options tab.'=>'Puedes ocultar/mostrar columnas basándote en tus necesidades y decidir cuántas entradas se mostrarán por pantalla utilizando la pestaña «Opciones de pantalla».','You can customize the display of this screen in a number of ways:'=>'Puedes personalizar cómo se muestra esta pantalla de diferentes formas:','Search installed plugins'=>'Buscar plugins instalados','Your theme supports one menu. Select which menu you would like to use.'=>'Tu tema tiene un menú. Selecciona qué menú te gustaría utilizar.','Your theme does not support navigation menus or widgets.'=>'El tema actual no es compatible con menús de navegación o widgets.','Categories and Tags Converter'=>'Conversor de etiquetas y categorías','Most Recent'=>'Más reciente','Start date:'=>'Fecha de inicio:','Theme InstallerTag'=>'Etiqueta','Plugin InstallerTag'=>'Etiqueta','verbClear'=>'Limpiar','commentMark as spam'=>'Marcar como spam','Remove Background Image'=>'Quitar imagen de fondo','Comments on “%s”'=>'Comentarios en «%s»','Show advanced menu properties'=>'Mostrar propiedades avanzadas de menú','You have version %1$s installed. Update to %2$s.'=>'Tienes la versión %1$s. Actualiza a la %2$s.','Enabled'=>'Activado','commentNot Spam'=>'No es spam','This will restore the original background image. You will not be able to restore any customizations.'=>'Esto restaurará la imagen de fondo original. No te será posible restaurar ninguna personalización.','WordPress Blog'=>'Blog oficial WordPress','Remove Users from Site'=>'Eliminar usuarios del sitio','— No role for this site —'=>'— No hay perfil para este sitio —','New WordPress Site'=>'Nuevo sitio WordPress','My Site'=>'Mi sitio','Sorry, you are not allowed to create posts or drafts on this site.'=>'Lo siento, no tienes permisos para crear entradas o borradores en este sitio.','Sorry, you are not allowed to create pages on this site.'=>'Lo siento, no tienes permisos para crear páginas en este sitio.','Custom site suspended message.'=>'Mensaje personalizado para sitios suspendidos.','Custom site inactive message.'=>'Mensaje personalizado para sitios inactivos.','Custom site deleted message.'=>'Mensaje personalizado para sitios eliminados.','If you have posts or comments in another system, WordPress can import those into this site. To get started, choose a system to import from below:'=>'Si tienes entradas o comentarios en otro sistema, WordPress los puede importar a este sitio. Para comenzar, elige el sistema desde el que los importarás:','No items.'=>'Sin elementos.','To use a subdomain configuration, you must have a wildcard entry in your DNS. This usually means adding a %s hostname record pointing at your web server in your DNS configuration tool.'=>'Para usar la configuración en subdominios tienes que añadir una entrada comodín en tus DNS. Esto normalmente supone añadir un registro de nombre de alojamiento %s en tu servidor, en la herramienta de configuración de DNS.','The installer attempted to contact a random hostname (%s) on your domain.'=>'El instalador tratará de contactar con un nombre de servidor aleatorio (%s) de tu dominio.','The menu item has been successfully deleted.'=>'La opción del menú se ha eliminado correctamente.','Please provide a custom field name.'=>'Por favor, proporciona un nombre al campo personalizado.','Display Options'=>'Opciones de visualización','Remove Image'=>'Quitar la imagen','Other users have been removed.'=>'Otros usuarios han sido eliminados.','You cannot remove the current user.'=>'No puedes eliminar el usuario actual.','There are no valid users selected for removal.'=>'No hay usuarios válidos seleccionados para su eliminación.','Confirm Removal'=>'Confirmar Eliminación','You have specified these users for removal:'=>'Has especificado estos usuarios para ser eliminados:','User deletion is not allowed from this screen.'=>'No está permitido eliminar usuarios desde esta pantalla.','%s updated successfully.'=>'%s se ha actualizado correctamente.','No thanks, do not remind me again'=>'No gracias, no me lo recuerdes de nuevo','Yes, take me to my profile page'=>'Sí, llévame a la página de mi perfil','Your chosen password.'=>'La contraseña que has elegido.','Sorry, you are not allowed to restore this item from the Trash.'=>'Lo siento, no tienes permisos para restaurar este elemento de la papelera.','Sorry, you are not allowed to move this item to the Trash.'=>'Lo siento, no tienes permisos para mover este elemento a la papelera.','%s comment restored from the Trash.'=>'%s comentario restaurado de la papelera.' . "\0" . '%s comentarios restaurados de la papelera.','%s comment moved to the Trash.'=>'%s comentario movido a la papelera.' . "\0" . '%s comentarios movidos a la papelera.','The following themes have new versions available. Check the ones you want to update and then click “Update Themes”.'=>'Hay versiones nuevas disponibles de los siguientes temas. Selecciona los que quieras actualizar y haz clic en «Actualizar temas».','That user is already a member of this site.'=>'Este usuario ya es miembro de este sitio.','User has been added to your site.'=>'El usuario ha sido añadido a tu sitio.','Invitation email sent to user. A confirmation link must be clicked for them to be added to your site.'=>'Invitación enviada por correo electrónico al usuario. Debe hacer clic en un enlace de confirmación para que se añada a tu sitio.','The following plugins have new versions available. Check the ones you want to update and then click “Update Plugins”.'=>'Hay nuevas versiones disponibles de los siguientes plugins. Selecciona los que quieras actualizar y haz clic en «Actualizar plugins».','This will remove the background image. You will not be able to restore any customizations.'=>'Esto quitará la imagen de fondo. No podrás restaurar ninguna personalización.','Only the active theme is available to you. Contact the %s administrator for information about accessing additional themes.'=>'Para ti solo está disponible el tema activo. Contacta con el administrador de %s para obtener información sobre cómo acceder a temas adicionales.','Tag Template'=>'Plantilla de etiqueta','Author Template'=>'Plantilla de autor','Visual Editor Stylesheet'=>'Hoja de estilos del editor visual','Page saved.'=>'Página guardada.','More information about %s'=>'Más información sobre %s','Grant this user super admin privileges for the Network.'=>'Dar permisos de super admin en la red a este usuario.','This user has super admin privileges.'=>'Este usuario tiene privilegios de super admin.','Important:'=>'Importante:','Update to version %s'=>'Actualizar a la versión %s','Error: "Table Prefix" can only contain numbers, letters, and underscores.'=>'Error: el «prefijo de la tabla» solo puede contener números, letras y guiones bajos.','Usernames cannot be changed.'=>'El nombre de usuario no puede cambiarse.','items'=>'elementos','The menu has been successfully deleted.'=>'El menú se ha borrado correctamente.','Site visibility'=>'Visibilidad del sitio','CSS Classes (optional)'=>'Clases CSS (opcional)','Link Target'=>'Destino del enlace','Save Menu'=>'Guardar menú','Updating Theme %1$s (%2$d/%3$d)'=>'Actualizando el tema %1$s (%2$d/%3$d)','You can still use your site but any subdomain you create may not be accessible. If you know your DNS is correct, ignore this message.'=>'Puedes continuar usando tu sitio, pero ningún subdominio que crees será accesible. Si sabes que tu configuración de DNS es correcta, ignora este mensaje.','This resulted in an error message: %s'=>'Esto ha dado como resultado un mensaje de error: %s','You must provide a valid email address.'=>'Debes facilitarnos una dirección de correo electrónico válida.','The network already exists.'=>'La red ya existe.','You must provide a name for your network of sites.'=>'Debes facilitarnos un nombre para tu red de sitios.','You must provide a domain name.'=>'Debes facilitarnos un nombre de dominio.','Notice:'=>'Aviso:','Get Shortlink'=>'Obtener enlace corto','The update of %s failed.'=>'La actualización de %s ha fallado.','Updating Plugin %1$s (%2$d/%3$d)'=>'Actualizando el plugin %1$s (%2$d/%3$d)','The password you chose during installation.'=>'La contraseña que has elegido durante la instalación.','User already exists. Password inherited.'=>'El usuario ya existe. No se ha modificado la contraseña.','WordPress updated successfully.'=>'WordPress se ha actualizado correctamente.','Update WordPress'=>'Actualizar WordPress','Update Plugins'=>'Actualizar plugins','You cannot update because WordPress %2$s requires PHP version %3$s or higher and MySQL version %4$s or higher. You are running PHP version %5$s and MySQL version %6$s.'=>'No puedes actualizar porque WordPress %2$s necesita la versión %3$s o superior de PHP y la versión %4$s o superior de MySQL. Estás usando la versión %5$s de PHP y la versión %6$s de MySQL.','WordPress Updates'=>'Actualizaciones de WordPress','Edit menu item'=>'Editar elemento del menú','Go to Dashboard'=>'Ir al escritorio','Drop-in (%s)'=>'Dependiente (%s)' . "\0" . 'Dependientes (%s)','Must-Use (%s)'=>'Imprescindible (%s)' . "\0" . 'Imprescindibles (%s)','Inactive:'=>'Inactivo:','Yes, delete these files and data'=>'Sí, borra estos archivos y datos','Are you sure you want to delete these files and data?'=>'¿Seguro que quieres borrar estos archivos y datos?','You are about to remove the following plugin:'=>'Estás a punto de eliminar el siguiente plugin:','Delete Plugin'=>'Borrar el plugin','This timezone does not observe daylight saving time.'=>'Esta zona horaria no tiene en cuenta el horario de verano.','This timezone is currently in daylight saving time.'=>'Esta zona horaria se encuentra actualmente en el horario de verano.','This address is used for admin purposes. If you change this, an email will be sent to your new address to confirm it. The new address will not become active until confirmed.'=>'Esta dirección se usa para propósitos administrativos. Si la cambias, se te enviará un correo electrónico a tu nueva dirección para confirmarla. La nueva dirección no se activará hasta que la confirmes.','View All'=>'Ver todo','Please enter a valid menu name.'=>'Por favor, introduce un nombre de menú válido.','You cannot install because WordPress %2$s requires PHP version %3$s or higher and MySQL version %4$s or higher. You are running PHP version %5$s and MySQL version %6$s.'=>'No puedes instalar ya que WordPress %2$s requiere la versión %3$s o superior de PHP y la versión %4$s o superior de MySQL. Estás usando la versión %5$s de PHP y la versión %6$s de MySQL.','Executed before Multisite is loaded.'=>'Ejecutado antes de cargar el Multisitio.','External object cache.'=>'Caché de objetos externos.','Custom maintenance message.'=>'Mensaje personalizado de mantenimiento.','Custom database error message.'=>'Mensaje de error de base de datos personalizado.','Custom database class.'=>'Clase de base datos personalizada.','Advanced caching plugin.'=>'Plugin avanzado de caché.','File is empty. Please upload something more substantial.'=>'El archivo está vacío. Por favor, sube algo con más sustancia.','This comment is already marked as spam.'=>'Este comentario ya ha sido marcado como spam.','View Trash'=>'Ver papelera','This comment is already in the Trash.'=>'Este comentario ya está en la papelera.','This comment is already approved.'=>'Este comentario ya está aprobado.','This comment is currently in the Trash.'=>'Este comentario está actualmente en la papelera.','This comment is currently marked as spam.'=>'Este comentario está marcado como spam.','This comment is currently approved.'=>'Este comentario está aprobado.','Moderate Comment'=>'Comentario moderado','Categories:'=>'Categorías:','Drag widgets here to remove them from the sidebar but keep their settings.'=>'Arrastra los widgets aquí para quitarlos de la barra lateral pero manteniendo sus ajustes.','Available Widgets'=>'Widgets disponibles','Error in displaying the widget settings form.'=>'Error al mostrar el formulario con las opciones del widget.','Error while saving.'=>'Error al guardar los cambios.','Changes saved.'=>'Cambios guardados.','Save Widget'=>'Guardar Widget','Select both the sidebar for this widget and the position of the widget in that sidebar.'=>'Selecciona la barra lateral y la posición en la que irá el widget.','Widget %s'=>'Widget %s','Inactive Widgets'=>'Widgets inactivos','Change role to…'=>'Cambiar perfil a…','%1$s (%2$s)'=>'%1$s (%2$s)','Other users have been deleted.'=>'Se han eliminado los otros usuarios.','You cannot delete the current user.'=>'No puedes borrar el usuario actual.','Other user roles have been changed.'=>'Se han cambiado los perfiles de los otros usuarios.','The current user’s role must have user editing capabilities.'=>'El perfil del usuario actual debería poder editar usuarios.','New user created.'=>'Nuevo usuario creado.','There are no valid users selected for deletion.'=>'No se han seleccionado usuarios válidos para borrar.','Delete Users'=>'Borrar usuarios','Skip Confirmation Email'=>'No enviar el correo electrónico de confirmación','Invitation email sent to new user. A confirmation link must be clicked before their account is created.'=>'La invitación ha sido enviada al nuevo usuario por correo electrónico. Deberá hacer clic en el enlace de confirmación para que su cuenta sea creada.','[%s] Joining Confirmation'=>'[%s] Confirmación de unirse','Update User'=>'Actualizar usuario','Update Profile'=>'Actualizar perfil','Additional Capabilities'=>'Capacidades adicionales','Type your new password again.'=>'Teclea tu nueva contraseña otra vez.','New Password'=>'Nueva contraseña','Share a little biographical information to fill out your profile. This may be shown publicly.'=>'Incluye alguna información biográfica en tu perfil. Podrá mostrarse públicamente.','Biographical Info'=>'Información biográfica','About the user'=>'Acerca del usuario','About Yourself'=>'Acerca de ti','Contact Info'=>'Información de contacto','Display name publicly as'=>'Mostrar este nombre públicamente','Nickname'=>'Alias','Last Name'=>'Apellidos','First Name'=>'Nombre','Enable keyboard shortcuts for comment moderation.'=>'Activar los atajos del teclado para la moderación de comentarios.','Disable the visual editor when writing'=>'Desactivar el editor visual al escribir','Visual Editor'=>'Editor visual','Personal Options'=>'Opciones personales','User updated.'=>'El usuario se ha actualizado.','Always use https when visiting the admin'=>'Usar siempre https para visitar la administración','Use https'=>'Usar https','Edit user'=>'Editar usuario','Media file restored from the Trash.'=>'Archivo de medios restaurado de la papelera.','Media file moved to the Trash.'=>'Archivo de medios movido a la papelera.','Media file permanently deleted.'=>'Archivo multimedia borrado permanentemente.','Sorry, you are not allowed to delete these items.'=>'Lo siento, no tienes permisos para borrar esos elementos.','Your WordPress database is already up to date!'=>'¡Tu base de datos de WordPress ya está actualizada!','Installing theme from uploaded file: %s'=>'Instalando el tema desde el archivo subido: %s','Upload Theme'=>'Subir tema','Installing Theme: %s'=>'Instalando tema: %s','Installing plugin from uploaded file: %s'=>'Instalando el plugin desde el archivo subido: %s','Upload Plugin'=>'Subir plugin','Installing Plugin: %s'=>'Instalando plugin: %s','Plugin failed to reactivate due to a fatal error.'=>'El plugin no ha sido reactivado debido a un error fatal.','Plugin reactivated successfully.'=>'El plugin ha sido reactivado.','Plugin Reactivation'=>'Reactivación del plugin','Installation failed.'=>'Instalación fallida','Compatibility with WordPress %s: Unknown'=>'Compatibilidad con WordPress %s: Desconocida','Compatibility with WordPress %s: 100%% (according to its author)'=>'Compatibilidad con WordPress %s: 100%% (según su autor)','Hide hidden updates'=>'Ocultar actualizaciones ocultas','Show hidden updates'=>'Mostrar actualizaciones ocultas','Bring back this update'=>'Volver a mostrar esta actualización','Hide this update'=>'Ocultar esta actualización','Broken Themes'=>'Temas dañados','You are about to delete this theme \'%s\' + \'Cancel\' to stop, \'OK\' to delete.'=>'Estás a punto de borrar este tema \'%s\' + \'Aceptar\' para borrar, \'Cancelar\' para salir.','Theme deleted.'=>'El tema ha sido eliminado.','Select theme to edit:'=>'Elige el tema a editar:','Edit Themes'=>'Editar temas','Tags:'=>'Etiquetas:','Compare Revisions of “%s”'=>'Comparar revisiones de «%s»','You cannot edit this item because it is in the Trash. Please restore it and try again.'=>'No puedes editar este elemento porque está en la papelera. Por favor, restáuralo e inténtalo de nuevo.','Sorry, you are not allowed to edit this item.'=>'Lo siento, no tienes permisos para editar este elemento.','You attempted to edit an item that does not exist. Perhaps it was deleted?'=>'Has intentado editar un elemento que no existe. ¿Quizá ha sido borrado?','No plugins found.'=>'No se encontraron plugins.','Inactive (%s)'=>'Inactivo (%s)' . "\0" . 'Inactivos (%s)','Recently Active (%s)'=>'Activo recientemente (%s)' . "\0" . 'Activos recientemente (%s)','Active (%s)'=>'Activo (%s)' . "\0" . 'Activos (%s)','pluginsAll (%s)'=>'Todo (%s)' . "\0" . 'Todos (%s)','Clear List'=>'Limpiar lista','Visit plugin site'=>'Visitar la web del plugin','Network Deactivate'=>'Desactivar para la red','Plugin could not be deleted due to an error: %s'=>'El plugin no se ha podido eliminar debido a un error: %s','Plugin could not be activated because it triggered a fatal error.'=>'El plugin no ha podido activarse porque ha provocado un error fatal.','If something goes wrong with a plugin and you cannot use WordPress, delete or rename that file in the %s directory and it will be automatically deactivated.'=>'Si algo va mal con un plugin y no puedes usar WordPress, borra o renombra ese archivo en el directorio %s y se desactivará automáticamente.','Plugins extend and expand the functionality of WordPress. Once a plugin is installed, you may activate it or deactivate it here.'=>'Los plugins amplían las funcionalidades de WordPress. Una vez instalados, puedes activarlos o desactivarlos desde aquí.','No, return me to the plugin list'=>'No, devuélveme a la lista de plugins','Yes, delete these files'=>'Sí, borra estos archivos','Are you sure you want to delete these files?'=>'¿Seguro que quieres borrar estos archivos?','Plugin InstallerPopular'=>'Populares','Plugin InstallerFeatured'=>'Destacados','Update File'=>'Actualizar archivo','Documentation:'=>'Documentación:','Plugin Files'=>'Archivos del plugin','Select plugin to edit:'=>'Elige el plugin a editar:','File edited successfully.'=>'Archivo editado correctamente.','Files of this type are not editable.'=>'Los archivos de este tipo no son editables.','Edit Plugins'=>'Editar plugins','All Settings'=>'Todos los ajustes','Update Services'=>'Servicios de actualización','Default Mail Category'=>'Categoría por defecto para publicar por correo electrónico','Login Name'=>'Nombre de acceso','Port'=>'Puerto','Mail Server'=>'Servidor de correo','To post to WordPress by email, you must set up a secret email account with POP3 access. Any mail received at this address will be posted, so it’s a good idea to keep this address very secret. Here are three random strings you could use: %1$s, %2$s, %3$s.'=>'Para publicar en WordPress por correo electrónico, debes configurar una cuenta de correo electrónico secreta con acceso POP3. Cualquier correo recibido en esa dirección será publicado, por lo que es una buena idea mantener esta dirección muy en secreto. Aquí tienes tres cadenas aleatorias que podrías usar: %1$s, %2$s, %3$s.','Post via email'=>'Publicar por correo electrónico','Default Link Category'=>'Categoría por defecto para los enlaces','Default Post Category'=>'Categoría por defecto para las entradas','WordPress should correct invalidly nested XHTML automatically'=>'WordPress corregirá de forma automática el XHTML incorrectamente anidado','Convert emoticons like :-) and :-P to graphics on display'=>'Convertir emoticonos como :-) y :-P a gráficos en pantalla','Formatting'=>'Formato','Writing Settings'=>'Ajustes de escritura','Encoding for pages and feeds'=>'Codificación para páginas y feeds','Full text'=>'Texto completo','Syndication feeds show the most recent'=>'Número máximo de entradas a mostrar en el feed','posts'=>'entradas','Blog pages show at most'=>'Número máximo de entradas a mostrar en el sitio','Warning: these pages should not be the same!'=>'Atención: estas páginas no pueden ser las mismas.','Posts page: %s'=>'Página de entradas: %s','A static page (select below)'=>'Una página estática (seleccionar abajo)','Reading Settings'=>'Ajustes de lectura','Privacy Settings'=>'Ajustes de privacidad','If you temporarily make your site’s root directory writable to generate the %s file automatically, do not forget to revert the permissions after the file has been created.'=>'Si temporalmente tienes que dar permisos de escritura al directorio raíz de tu sitio para generar automáticamente el archivo %s, no olvides volver a cambiar los permisos después de que se haya creado el archivo.','If you temporarily make your %s file writable to generate rewrite rules automatically, do not forget to revert the permissions after the rule has been saved.'=>'Si temporalmente tienes que dar permisos de escritura a tu archivo %s para generar automáticamente las reglas de reescritura, no olvides volver a cambiar sus permisos después de que hayas guardado la regla.','Tag base'=>'Base de las etiquetas','Category base'=>'Base de las categorías','Custom Structure'=>'Estructura personalizada','Numeric'=>'Numérico','Month and name'=>'Mes y nombre','Day and name'=>'Día y nombre','Permalink structure updated.'=>'Estructura de enlaces permanentes actualizada.','Permalink structure updated. Remove write access on %s file now!'=>'La estructura de enlaces permanentes se ha actualizado. ¡Elimina ahora el acceso de escritura en el archivo %s!','Permalink Settings'=>'Ajustes de los enlaces permanentes','Organize my uploads into month- and year-based folders'=>'Organizar mis archivos subidos en carpetas basadas en mes y año','Configuring this is optional. By default, it should be blank.'=>'Esta configuración es opcional. Por defecto debería estar en blanco.','Full URL path to files'=>'Ruta URL completa a los archivos','Store uploads in this folder'=>'Guardar los archivos subidos en esta carpeta','Uploading Files'=>'Subida de archivos','Large size'=>'Tamaño grande','Max Height'=>'Altura máxima','Max Width'=>'Anchura máxima','Medium size'=>'Tamaño medio','Crop thumbnail to exact dimensions (normally thumbnails are proportional)'=>'Recortar las miniaturas en las dimensiones exactas (normalmente, las miniaturas son proporcionales)','Thumbnail size'=>'Tamaño de la miniatura','Image sizes'=>'Tamaño de las imágenes','Media Settings'=>'Ajustes de medios','Week Starts On'=>'La semana comienza el','Custom:'=>'Personalizado:','This timezone is currently in standard time.'=>'Esta zona horaria se encuentra actualmente en horario de invierno.','Timezone'=>'Zona horaria','New User Default Role'=>'Perfil por defecto para los nuevos usuarios','Anyone can register'=>'Cualquiera puede registrarse','Membership'=>'Miembros','General Settings'=>'Ajustes generales','MonsterID (Generated)'=>'MonsterID (autogenerado)','Wavatar (Generated)'=>'Wavatar (autogenerado)','Identicon (Generated)'=>'Identicon (autogenerado)','Gravatar Logo'=>'Logotipo de Gravatar','Blank'=>'En blanco','For users without a custom avatar of their own, you can either display a generic logo or a generated one based on their email address.'=>'Para los usuarios que no tengan un avatar personalizado propio, puedes mostrar un logotipo genérico o generar uno basado en su dirección de correo electrónico.','X — Even more mature than above'=>'X — Contenido más adulto que los anteriores','R — Intended for adult audiences above 17'=>'R — Destinado a un público adulto mayor de 17','PG — Possibly offensive, usually for audiences 13 and above'=>'PG — Posiblemente ofensivo, normalmente para mayores de 13 años','G — Suitable for all audiences'=>'G — Para todos los públicos','Maximum Rating'=>'Calificación máxima','Show Avatars'=>'Mostrar avatares','Avatar Display'=>'Visibilidad del avatar','Avatars'=>'Avatares','When a comment contains any of these words in its content, author name, URL, email, IP address, or browser’s user agent string, it will be put in the Trash. One word or IP address per line. It will match inside words, so “press” will match “WordPress”.'=>'Cuando un comentario contenga cualquiera de estas palabras en su contenido, el nombre del autor, la URL, el correo electrónico, la dirección IP o la cadena del agente de usuario del navegador, será enviado a la papelera. Solo una palabra o dirección IP por línea. También afectará a las coincidencias dentro de las palabras, por lo que «press» coincidirá con «WordPress».','When a comment contains any of these words in its content, author name, URL, email, IP address, or browser’s user agent string, it will be held in the moderation queue. One word or IP address per line. It will match inside words, so “press” will match “WordPress”.'=>'Cuando un comentario contenga cualquiera de estas palabras en su contenido, el nombre del autor, la URL, el correo electrónico, la dirección IP o la cadena del agente de usuario del navegador, será mantenido en la cola de moderación. Solo una palabra o dirección IP por línea. También afectará a las coincidencias dentro de las palabras, por lo que «press» coincidirá con «WordPress».','Hold a comment in the queue if it contains %s or more links. (A common characteristic of comment spam is a large number of hyperlinks.)'=>'Mantener un comentario en espera si contiene más de %s enlaces (una característica común del spam en comentarios es el gran número de enlaces).','Comment Moderation'=>'Moderación de comentarios','Comment author must have a previously approved comment'=>'El autor del comentario debe tener un comentario previamente aprobado','Before a comment appears'=>'Para que un comentario aparezca','A comment is held for moderation'=>'Se ha recibido un comentario para moderar','Anyone posts a comment'=>'Alguien envía un comentario','Email me whenever'=>'Enviarme un correo electrónico cuando ','newer'=>'más recientes','older'=>'más antiguos','Users must be registered and logged in to comment'=>'Los usuarios deben registrarse y acceder para comentar','Comment author must fill out name and email'=>'El autor del comentario debe rellenar el nombre y el correo electrónico','Other comment settings'=>'Otros ajustes de comentarios','Discussion Settings'=>'Ajustes de comentarios','No users found.'=>'No se encontraron usuarios.','Update Themes'=>'Actualizar temas','Visit'=>'Visitar','Removed'=>'Eliminado','Multisite support is not enabled.'=>'La compatibilidad con multisitio no está activa.','Permalinks'=>'Enlaces permanentes','Privacy'=>'Privacidad','Reading'=>'Lectura','Writing'=>'Escritura','settings screenGeneral'=>'Generales','Profile'=>'Perfil','Comments %s'=>'Comentarios %s','Library'=>'Biblioteca','Upload New Media'=>'Subir un nuevo medio','Repair and Optimize Database'=>'Reparar y optimizar la base de datos','Repair Database'=>'Reparar base de datos','Some database problems could not be repaired. Please copy-and-paste the following list of errors to the WordPress support forums to get additional assistance.'=>'Algunos problemas de la base de datos no se han podido reparar. Por favor, copia y pega la siguiente lista de errores en los foros de soporte de WordPress para conseguir ayuda.','WordPress › Database Repair'=>'WordPress › Reparación de la base de datos','Link not found.'=>'Enlace no encontrado.','No links found.'=>'No se encontraron enlaces.','Search Links'=>'Buscar enlaces','%s link deleted.'=>'%s enlace eliminado.' . "\0" . '%s enlaces eliminados.','Success!'=>'¡Lo lograste!','Please provide the following information. Do not worry, you can always change these settings later.'=>'Por favor, proporciona la siguiente información. No te preocupes, siempre podrás cambiar estos ajustes más tarde.','Information needed'=>'Información necesaria','Install WordPress'=>'Instalar WordPress','Double-check your email address before continuing.'=>'Comprueba bien tu dirección de correo electrónico antes de continuar.','Your Email'=>'Tu correo electrónico','User(s) already exists.'=>'El (los) usuario(s) ya existe(n).','WordPress › Installation'=>'Instalación de WordPress','Error: Please enter an email address.'=>'Error: por favor, introduce una dirección de correo electrónico.','Error: Passwords may not contain the character "\\".'=>'Error: la contraseña no puede contener el carácter « \\ ».','Error: Please enter a password.'=>'Error: por favor, introduce una contraseña.','Default post slughello-world'=>'hola-mundo','Hello world!'=>'¡Hola, mundo!','Welcome to %s. This is your first post. Edit or delete it, then start writing!'=>'Te damos la bienvenida a %s. Esta es tu primera entrada. Edítala o bórrala, ¡y comienza a escribir!','Default category slugUncategorized'=>'Sin categoría','Note that password carefully! It is a random password that was generated just for you.'=>'¡Anota la contraseña cuidadosamente! Es una contraseña aleatoria que ha sido generada solo para ti.','An automated WordPress update has failed to complete! Please notify the site administrator.'=>'¡No se ha podido completar la actualización automática de WordPress! Por favor, avisa al administrador.','An automated WordPress update has failed to complete - please attempt the update again now.'=>'No se ha podido completar la actualización automática de WordPress. Por favor, vuelve a intentarlo.','Latest'=>'Última','Update to %s'=>'Actualizar a %s','You are using a development version (%1$s). Cool! Please stay updated.'=>'Estás usando una versión en desarrollo (%1$s). ¡Mola! Por favor, mantente actualizado.','Upgrading database…'=>'Actualizando la base de datos…','The update could not be unpacked'=>'No se ha podido descomprimir la actualización.','Verifying the unpacked files…'=>'Verificando los archivos descomprimidos…','The update cannot be installed because WordPress %1$s requires MySQL version %2$s or higher. You are running version %3$s.'=>'La actualización no puede instalarse porque WordPress %1$s requiere la versión %2$s o superior de MySQL. Estás usando la versión %3$s.','The update cannot be installed because WordPress %1$s requires PHP version %2$s or higher. You are running version %3$s.'=>'La actualización no puede instalarse ya que WordPress %1$s requiere la versión %2$s o superior de PHP. Estás usando la versión %3$s.','The update cannot be installed because WordPress %1$s requires PHP version %2$s or higher and MySQL version %3$s or higher. You are running PHP version %4$s and MySQL version %5$s.'=>'No se ha podido instalar la actualización porque WordPress %1$s necesita la versión %2$s o superior de PHP y la versión %3$s o superior de MySQL. Estás usando la versión %4$s de PHP y la versión %5$s de MySQL.','Could not fully remove the theme %s.'=>'No se ha podido eliminar completamente el tema %s.','Unable to locate WordPress theme directory.'=>'No ha sido posible localizar el directorio de temas de WordPress.','This theme is already installed.'=>'Este tema ya está instalado.','Version: %s'=>'Versión: %s','If you have a theme in a .zip format, you may install or update it by uploading it here.'=>'Si tienes un tema en formato .zip, puedes instalarlo o actualizarlo subiéndolo aquí.','Find Themes'=>'Buscar temas','Holiday'=>'Vacaciones','Subject'=>'Temática','Sticky Post'=>'Entrada fija','Theme Options'=>'Opciones del tema','Features'=>'Características','Right Sidebar'=>'Barra lateral derecha','Left Sidebar'=>'Barra lateral izquierda','Four Columns'=>'Cuatro columnas','Three Columns'=>'Tres columnas','Two Columns'=>'Dos columnas','One Column'=>'Una columna','Feature Filter'=>'Filtrar por características','Screen Options'=>'Opciones de pantalla','Disable accessibility mode'=>'Desactivar modo de accesibilidad','Enable accessibility mode'=>'Activar modo de accesibilidad','Install Themes'=>'Instalar temas','Upload file and import'=>'Subir archivo e importar','Maximum size: %s'=>'Tamaño máximo: %s','Choose a file from your computer:'=>'Elige un archivo de tu ordenador:','Before you can upload your import file, you will need to fix the following error:'=>'Antes de poder subir el fichero de importación, debes resolver el siguiente error:','Add Custom Field'=>'Añadir campo personalizado','Enter new'=>'Introducir nueva','Key'=>'Clave','Comment by %s marked as spam.'=>'El comentario de %s se ha marcado como spam.','Comment by %s moved to the Trash.'=>'El comentario de %s ha sido movido a la papelera.','Submit Reply'=>'Enviar respuesta','Reply to Comment'=>'Responder al comentario','Missed schedule'=>'Programación perdida','Make this post sticky'=>'Marcar esta entrada como fija','Not Sticky'=>'No es fija','Allow Pings'=>'Permitir pings','Allow Comments'=>'Permitir comentarios','Do not allow'=>'No permitir','–OR–'=>'–O–','— No Change —'=>'— Sin cambios —','Bulk Edit'=>'Edición en lote','Relationship'=>'Relación con el enlace (XFN)','column nameComment'=>'Comentario','column nameDate'=>'Fecha','column nameFile'=>'Archivo','column nameTitle'=>'Título','Quick Edit'=>'Edición rápida','Quick Edit'=>'Edición rápida','Warning! Wildcard DNS may not be configured correctly!'=>'¡Atención! ¡Puede que las DNS no estén configuradas correctamente.','Just another %s site'=>'Otro sitio más de %s','Just another WordPress site'=>'Otro sitio realizado con WordPress','Auto Draft'=>'Borrador automático','Sorry, you are not allowed to edit posts as this user.'=>'Lo siento, no tienes permisos para editar entradas con este usuario.','Sorry, you are not allowed to edit pages as this user.'=>'Lo siento, no tienes permisos para editar páginas con este usuario.','The plugin does not have a valid header.'=>'El plugin no tiene una cabecera válida.','Plugin file does not exist.'=>'El archivo del plugin no existe.','Invalid plugin path.'=>'La ruta del plugin no es válida.','Could not fully remove the plugins %s.'=>'No se pudieron eliminar completamente los plugins %s.','One of the plugins is invalid.'=>'Uno de los plugins no es válido.','The plugin generated unexpected output.'=>'El plugin ha generado una respuesta insesperada.','Warning: This plugin has not been tested with your current version of WordPress.'=>'Advertencia: Este plugin no ha sido probado en tu versión actual de WordPress.','Average Rating'=>'Puntuación promedio','WordPress.org Plugin Page »'=>'Página del plugin en WordPress.org »','Compatible up to:'=>'Compatible con:','%s or higher'=>'%s o superior','Requires WordPress Version:'=>'Necesita la versión de WordPress:','Last Updated:'=>'Última actualización:','(based on %s rating)'=>'(basado en %s valoración)' . "\0" . '(basado en %s valoraciones)','Plugin zip file'=>'Archivo .zip del plugin','If you have a plugin in a .zip format, you may install or update it by uploading it here.'=>'Si tienes un plugin en formato .zip, puedes instalarlo o actualizarlo subiéndolo aquí.','Search Plugins'=>'Buscar plugins','You may also browse based on the most popular tags in the Plugin Directory:'=>'También puedes ver las etiquetas más populares del directorio de plugins:','Popular tags'=>'Etiquetas populares','(Leave at 0 for no rating.)'=>'(Déjalo a 0 para no valorar.)','Rating'=>'Valoración','Notes'=>'Notas','RSS Address'=>'Dirección RSS','Image Address'=>'Dirección de la imagen','If the link is to a person, you can specify your relationship with them using the above form. If you would like to learn more about the idea check out XFN.'=>'Si el enlace es a una persona, puedes especificar tu relación con ella usando el formulario anterior. Si te gustaría saber más sobre la idea, echa un vistazo a XFN.','sweetheart'=>'pareja','date'=>'fecha','crush'=>'flechazo','muse'=>'inspiración','romantic'=>'romántica','spouse'=>'cónyuge','sibling'=>'hermano/a','parent'=>'padre/madre','kin'=>'pariente','child'=>'hija/o','family'=>'familia','neighbor'=>'vecino','co-resident'=>'co-residente','geographical'=>'geográfico','colleague'=>'colega','co-worker'=>'compañero de trabajo','professional'=>'profesional','met'=>'conocido en persona','physical'=>'físico','friend'=>'amigo','acquaintance'=>'conocido','contact'=>'contacto','friendship'=>'amistad','another web address of mine'=>'otra dirección web mía','identity'=>'identidad','rel:'=>'rel:','Choose the target frame for your link.'=>'Ellige el marco de destino para tu enlace.','_none — same window or tab.'=>'_none — misma ventana o pestaña.','_top — current window or tab, with no frames.'=>'_top — ventana o pestaña actual, sin marcos.','_blank — new window or tab.'=>'_blank — nueva ventana o pestaña.','You are about to delete this link \'%s\' + \'Cancel\' to stop, \'OK\' to delete.'=>'Estás a punto de borrar este enlace \'%s\' + \'Cancelar\' para parar, \'Aceptar\' para borrarlo.','Keep this link private'=>'Mantener este enlace como privado','Visit Link'=>'Visitar enlace','Main Page (no parent)'=>'Página principal (sin superior)','Show comments'=>'Mostrar comentarios','Separate multiple URLs with spaces'=>'Separar varias URLs con espacios','Send trackbacks to:'=>'Enviar trackbacks a:','Already pinged:'=>'Pingbacks enviados:','New category name'=>'Nombre nueva categoría','Publish immediately'=>'Publicar inmediatamente','Stick this post to the front page'=>'Fijar esta entrada en la página de inicio','Status:'=>'Estado:','Preview Changes'=>'Vista previa de los cambios','Link text, e.g. “Ransom Demands (PDF)”'=>'Texto del enlace, por ejemplo «Exigencias del rescate (PDF)»','Link to image'=>'Enlace a la imagen','Link Image To:'=>'Enlazar la imagen a:','Image Caption'=>'Leyenda de la imagen','Filter »'=>'Filtrar »','All Types'=>'Todos los tipos','Search Media'=>'Buscar medios','Update gallery settings'=>'Actualizar ajustes de la galería','Gallery columns:'=>'Columnas de la galería','Order:'=>'Orden:','Random'=>'Aleatorio','Date/Time'=>'Fecha/Hora','Menu order'=>'Orden del menú','Order images by:'=>'Ordenar imágenes por:','Image File'=>'Archivo de imagen','Link thumbnails to:'=>'Enlazar miniaturas a:','Descending'=>'Descendente','Ascending'=>'Ascendente','Sort Order:'=>'Ordenar:','All Tabs:'=>'Todas las pestañas:','Save all changes'=>'Guarda todos los cambios','Add media files from your computer'=>'Añadir archivos desde tu ordenador','Insert into Post'=>'Insertar en la entrada','Upload date:'=>'Fecha de subida:','Location of the uploaded file.'=>'Ubicación del archivo subido.','Alt text for the image, e.g. “The Mona Lisa”'=>'Texto alternativo (alt) de la imagen, por ejemplo «La Mona Lisa»','File URL'=>'URL del archivo','WordPress'=>'WordPress','Uploads'=>'Archivos subidos','Gallery (%s)'=>'Galería (%s)','From URL'=>'Desde una URL','From Computer'=>'Desde el ordenador','Image saved'=>'Imagen guardada','Unable to save the image.'=>'No ha sido posible guardar la imagen.','Nothing to save, the image has not changed.'=>'Nada que guardar, la imagen no ha cambiado.','Error while saving the scaled image. Please reload the page and try again.'=>'Error al tratar de guardar la imagen escalada. Vuelve a cargar la página e inténtalo de nuevo.','Unable to create new image.'=>'No ha sido posible crear una imagen nueva.','Image restored successfully.'=>'Imagen restaurada correctamente.','Image metadata is inconsistent.'=>'Los metadatos de la imagen son inconsistentes.','Cannot save image metadata.'=>'No se pudieron guardar los metadatos de la imagen.','Cannot load image metadata.'=>'No se pudieron cargar los metadatos de la imagen.','All sizes except thumbnail'=>'Todos los tamaños excepto la miniatura','All image sizes'=>'Todos los tamaños de imagen','Apply changes to:'=>'Aplicar cambios a:','Current thumbnail'=>'Miniatura actual','Thumbnail Settings'=>'Opciones de miniatura','Selection:'=>'Selección:','Aspect ratio:'=>'Relación de aspecto:','Crop Selection'=>'Selección de recorte','Crop Aspect Ratio'=>'Relación de aspecto de la zona a recortar','Restore image'=>'Restaurar imagen','Previously edited copies of the image will not be deleted.'=>'Las copias de la imagen editadas previamente no se borrarán.','Discard any changes and restore the original image.'=>'Descartar todos los cambios y restaurar la imagen original.','Restore Original Image'=>'Restaurar imagen original','Original dimensions %s'=>'Dimensiones originales %s','Scale Image'=>'Escalar imagen','Flip horizontal'=>'Volteo horizontal','Flip vertical'=>'Volteo vertical','Image data does not exist. Please re-upload the image.'=>'No existen datos de la imagen. Por favor, vuelve a subir la imagen.','Proceed'=>'Ejecutar','Connection Type'=>'Tipo de conexión','Private Key:'=>'Clave privada:','Public Key:'=>'Clave pública:','Authentication Keys'=>'Claves de autentificación','Hostname'=>'Hostname','Connection Information'=>'Datos de conexión','SSH2'=>'SSH2','FTPS (SSL)'=>'FTPS (SSL)','FTP'=>'FTP','Empty archive.'=>'Archivo vacío.','Could not copy file.'=>'No ha sido posible copiar el archivo.','Could not extract file from archive.'=>'No podemos descomprimir el archivo.','Could not retrieve file from archive.'=>'No se puede recuperar el archivo.','Could not create temporary file.'=>'No se ha podido crear el archivo temporal.','Specified file failed upload test.'=>'El archivo indicado no cumple los requisitos de subida.','Invalid form submission.'=>'Envío del formulario no válido.','File upload stopped by extension.'=>'Subida de archivo detenida a causa de la extensión.','Failed to write file to disk.'=>'El archivo no se ha podido grabar en el disco.','Missing a temporary folder.'=>'Falta un directorio temporal.','No file was uploaded.'=>'No se ha subido ningún archivo.','The uploaded file was only partially uploaded.'=>'Solo se ha podido subir una parte del archivo.','Sorry, that file cannot be edited.'=>'Disculpa, ese archivo no puede editarse.','Popup Comments Template'=>'Plantilla de comentarios emergentes','Comments Template'=>'Plantilla de comentarios','.htaccess (for rewrite rules )'=>'.htaccess (para reglas de reescritura)','my-hacks.php (legacy hacks support)'=>'my-hacks.php (compatibilidad con trucos heredados)','Application Attachment Template'=>'Plantilla de aplicación adjunta','Audio Attachment Template'=>'Plantilla de audio adjunto','Video Attachment Template'=>'Plantilla de vídeo adjunto','Image Attachment Template'=>'Plantilla de imagen adjunta','Attachment Template'=>'Plantilla de archivos adjuntos','Theme Functions'=>'Funciones del tema','Links Template'=>'Plantilla de enlaces','404 Template'=>'Error 404 (página no encontrada)','Single Post'=>'Entrada individual','Search Form'=>'Formulario de búsqueda','Search Requests'=>'Buscar solicitudes','Category Template'=>'Plantilla de categoría','Popup Comments'=>'Comentarios emergentes','RTL Stylesheet'=>'Hoja de estilos RTL','Main Index Template'=>'Plantilla de la página principal','This widget requires JavaScript.'=>'Este widget requiere Javascript.','dashboard%1$s %2$s'=>'%1$s en %2$s','[Pending]'=>'[Pendiente]','From %1$s on %2$s %3$s'=>'De %1$s en %2$s%3$s','Move this comment to the Trash'=>'Mover este comentario a la papelera','verbSpam'=>'Spam','Mark this comment as spam'=>'Marcar este comentario como spam','Reply to this comment'=>'Responder a este comentario','Unapprove this comment'=>'Rechazar este comentario','Approve this comment'=>'Aprobar este comentario','Configure'=>'Configurar','View all'=>'Ver todo','Other WordPress News'=>'Otras noticias sobre WordPress','Right Now'=>'Ahora mismo','The uploaded file could not be moved to %s.'=>'El archivo subido no se ha podido mover a %s.','Please select a file'=>'Por favor elige un archivo','Return to the Theme Installer'=>'Volver al instalador de temas','Preview “%s”'=>'Vista previa «%s»','Successfully installed the theme %1$s %2$s.'=>'El tema %1$s %2$s se ha instalado correctamente.','Return to the Plugin Installer'=>'Volver al instalador de plugins','Successfully installed the plugin %1$s %2$s.'=>'El plugin %1$s %2$s se ha instalado correctamente.','Activate Plugin'=>'Activar plugin','Could not copy files.'=>'No ha sido posible copiar los archivos.','WordPress is at the latest version.'=>'WordPress está en la última versión.','Theme installed successfully.'=>'El tema se ha instalado correctamente.','Installing the theme…'=>'Instalando el tema…','Could not remove the old theme.'=>'No ha sido posible eliminar la versión anterior del tema.','Removing the old version of the theme…'=>'Eliminando la versión antigua del tema…','The theme is at the latest version.'=>'Tienes la última versión del tema.','Plugin installed successfully.'=>'Plugin instalado correctamente.','Installing the plugin…'=>'Instalando el plugin…','Unpacking the package…'=>'Descomprimiendo…','Installation package not available.'=>'El paquete de instalación no está disponible.','Could not remove the old plugin.'=>'No ha sido posible eliminar la versión anterior del plugin.','Removing the old version of the plugin…'=>'Eliminando la versión antigua del plugin…','Unpacking the update…'=>'Descomprimiendo la actualización…','The plugin is at the latest version.'=>'Tienes la última versión del plugin.','Disabling Maintenance mode…'=>'Desactivando el modo de mantenimiento…','Enabling Maintenance mode…'=>'Activando el modo de mantenimiento…','Incompatible Archive.'=>'Archivo incompatible.','Could not create directory.'=>'No ha sido posible crear el directorio','Destination folder already exists.'=>'La carpeta ya existe.','Installing the latest version…'=>'Instalando la última versión…','Download failed.'=>'Descarga fallida','Unable to locate needed folder (%s).'=>'No ha sido posible localizar la carpeta %s.','Unable to locate WordPress content directory'=>'No ha sido posible localizar el directorio de contenidos de WordPress','Unable to locate WordPress plugin directory.'=>'No ha sido posible localizar el directorio de plugins de WordPress.','Unable to locate WordPress root directory.'=>'No ha sido posible localizar el directorio de WordPress.','Filesystem error.'=>'Error del sistema de archivos.','Could not access filesystem'=>'No ha sido posible acceder al sistema de archivos','Invalid data provided.'=>'Datos facilitados no válidos.','Unable to perform command: %s'=>'No ha sido posible ejecutar el comando: %s','Public and Private keys incorrect for %s'=>'Claves públicas y privadas incorrectas para %s','Failed to connect to SSH2 Server %s'=>'Fallo al conectar al servidor SSH2 %s','SSH2 password is required'=>'La contraseña del SSH2 es necesaria','SSH2 username is required'=>'El nombre de usuario del SSH2 es necesario','SSH2 hostname is required'=>'El nombre del servidor del SSH2 es necesario','The ssh2 PHP extension is not available'=>'La extesión PHP de SSH2 no está disponible','Username/Password incorrect for %s'=>'Nombre de usuario y/o contraseña incorrecto/s para %s','Failed to connect to FTP Server %s'=>'Fallo al conectar al servidor FTP %s','FTP password is required'=>'La contraseña del FTP es necesaria','FTP username is required'=>'El nombre de usuario del FTP es necesario','FTP hostname is required'=>'El nombre del servidor del FTP es necesario','The ftp PHP extension is not available'=>'La extensión PHP de FTP no está disponible.','Found %s'=>'Encontrado %s','Changing to %s'=>'Cambiando a %s','Could not insert link into the database.'=>'No se ha podido insertar el enlace en la base de datos.','Could not update link in the database.'=>'No se ha podido actualizar el enlace en la base de datos.','Movable Type and TypePad'=>'Movable Type y TypePad','LiveJournal'=>'LiveJournal','Try Again'=>'Inténtalo de nuevo','Blogger'=>'Blogger','No importers are available.'=>'No hay importadores disponibles.','Download Export File'=>'Descargar el archivo de exportación','This format, which is called WordPress eXtended RSS or WXR, will contain your posts, pages, comments, custom fields, categories, and tags.'=>'Este formato, llamado WordPress eXtended RSS o WXR, contendrá tus entradas, páginas, comentarios, campos personalizados, categorías y etiquetas.','When you click the button below WordPress will create an XML file for you to save to your computer.'=>'Cuando hagas clic en el botón de abajo, WordPress creará un archivo XML para que lo guardes en tu ordenador.','Export'=>'Exportar','postsAll (%s)'=>'Todo (%s)' . "\0" . 'Todo (%s)','postsMine (%s)'=>'Mío (%s)' . "\0" . 'Míos (%s)','%s pattern not updated, somebody is editing it.'=>'%s patrón no actualizado, alguien lo está editando.' . "\0" . '%s patrones no actualizados, alguien los está editando.','%s post updated.'=>'%s entrada actualizada.' . "\0" . '%s entradas actualizadas.','Sorry, you are not allowed to delete this item.'=>'Lo siento, no tienes permisos para borrar este elemento.','Item not added.'=>'No añadido.','Item updated.'=>'Elemento actualizado.','Item deleted.'=>'Eliminado.','Categories, unlike tags, can have a hierarchy. You might have a Jazz category, and under that have children categories for Bebop and Big Band. Totally optional.'=>'Las categorías, a diferencia de las etiquetas, pueden tener jerarquías. Podrías tener una categoría de Jazz y, por debajo, las categorías Bebop y Big Band. Totalmente opcional.','This will be shown when someone hovers over the link in the blogroll, or optionally below the link.'=>'Esto se mostrará cuando alguien pase el cursor sobre el enlace en los sitios de interés u, opcionalmente, debajo del enlace.','Example: https://wordpress.org/ — do not forget the https://'=>'Ejemplo: https://es.wordpress.org/ — No olvides poner https://','Web Address'=>'Dirección web','Example: Nifty blogging software'=>'Ejemplo: Estupendo software de publicación','Link added.'=>'Enlace añadido.','Links / Add Link'=>'Enlaces / Añadir enlace','Update Link'=>'Actualizar enlace','Links / Edit Link'=>'Enlaces / Editar enlace','Visit site'=>'Visitar sitio','Update Comment'=>'Actualizar comentario','Last edited on %1$s at %2$s'=>'Última edición el %1$s a las %2$s','Last edited by %1$s on %2$s at %3$s'=>'Última edición por %1$s el %2$s a las %3$s','Custom Fields'=>'Campos personalizados','Send Trackbacks'=>'Enviar trackbacks','Page restored to revision from %s.'=>'Página restaurada a revisión el %s.','Post saved.'=>'Entrada guardada.','Post restored to revision from %s.'=>'Entrada restaurada a revisión el %s.','Custom field deleted.'=>'Campo personalizado borrado.','Custom field updated.'=>'Campo personalizado actualizado.','No comments found.'=>'Sin comentarios.','Empty Trash'=>'Vaciar papelera','Empty Spam'=>'Vaciar spam','Filter'=>'Filtrar','Pings'=>'Pings','Approve'=>'Aprobar','Unapprove'=>'Rechazar','Bulk actions'=>'Acciones en lote','Displaying %1$s–%2$s of %3$s'=>'Mostrando %1$s–%2$s de %3$s','Search Comments'=>'Buscar comentarios','Approved'=>'Aprobado' . "\0" . 'Aprobados','%s comment permanently deleted.'=>'%s comentario borrado permanentemente.' . "\0" . '%s comentarios borrados permanentemente.','%s comment restored from the spam.'=>'%s comentario restaurado de spam.' . "\0" . '%s comentarios restaurados de spam.','%s comment marked as spam.'=>'%s comentario marcado como spam.' . "\0" . '%s comentarios marcados como spam.','%s comment approved.'=>'%s comentario aprobado.' . "\0" . '%s comentarios aprobados.','Attach'=>'Adjuntar','(Unattached)'=>'(Sin adjuntar)','Unpublished'=>'Sin publicar','View “%s”'=>'Ver «%s»','Delete Permanently'=>'Borrar permanentemente','Edit “%s”'=>'Editar «%s»','Choose the part of the image you want to use as your header.'=>'Elige la parte de la imagen que quieras usar como cabecera.','Image Processing Error'=>'Error en el procesado de la imagen','Header updated. Visit your site to see how it looks.'=>'Cabezera actualizada. Visita tu sitio para ver los cambios.','Custom Header'=>'Cabecera personalizada','Save Changes'=>'Guardar cambios','Choose an image from your computer:'=>'Elige una imagen desde tu ordenador:','Background updated. Visit your site to see how it looks.'=>'Fondo actualizado. Visita tu sitio para ver cómo queda.','Custom Background'=>'Fondo personalizado','Unknown action.'=>'Acción desconocida.','Approve comment'=>'Aprobar el comentario','You are about to approve the following comment:'=>'Estás a punto de aprobar el siguiente comentario:','Permanently delete comment'=>'Borrar el comentario permanentemente','You are about to delete the following comment:'=>'Estás a punto de borrar el siguiente comentario:','You are about to move the following comment to the Trash:'=>'Estás a punto de mover el siguiente comentario a la papelera:','You are about to mark the following comment as spam:'=>'Estás a punto de marcar el siguiente comentario como spam:','This comment is in the Trash. Please move it out of the Trash if you want to edit it.'=>'Este comentario está en la papelera. Por favor, sácalo de la papelera si quieres editarlo.','Sorry, you are not allowed to edit comments on this post.'=>'Lo siento, no tienes permisos para editar comentarios en esta entrada.','Go Back'=>'Volver atrás','Edit Comment'=>'Editar comentario','Import'=>'Importar','Cannot load %s.'=>'No se ha podido cargar %s.','Invalid plugin page.'=>'Página de plugin no válida.','Item not updated.'=>'Elemento no actualizado.','Saving is disabled: %s is currently editing this post.'=>'Guardar está desactivado: %s está ahora mismo editando esta entrada.','Saving is disabled: %s is currently editing this page.'=>'Guardar está desactivado: %s está ahora mismo editando esta página.','Someone'=>'Alguien','Draft saved at %s.'=>'Borrador guardado a las %s.','g:i:s a'=>'G:i:s','Please provide a custom field value.'=>'Por favor, pon algún valor en el campo personalizado.','Sorry, you must be logged in to reply to a comment.'=>'Lo siento, tienes que iniciar sesión para responder a un comentario.','You did not enter a category name.'=>'No has introducido un nombre de categoría.','Comment %d does not exist'=>'El comentario %d no existe','»'=>'»','«'=>'«']]; \ No newline at end of file diff --git a/wp-content/languages/admin-es_ES.mo b/wp-content/languages/admin-es_ES.mo new file mode 100644 index 0000000..858e654 Binary files /dev/null and b/wp-content/languages/admin-es_ES.mo differ diff --git a/wp-content/languages/admin-es_ES.po b/wp-content/languages/admin-es_ES.po new file mode 100644 index 0000000..4bea9a9 --- /dev/null +++ b/wp-content/languages/admin-es_ES.po @@ -0,0 +1,16433 @@ +# Translation of WordPress - 6.9.x - Development - Administration in Spanish (Spain) +# This file is distributed under the same license as the WordPress - 6.9.x - Development - Administration package. +msgid "" +msgstr "" +"PO-Revision-Date: 2025-12-01 08:15:40+0000\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: GlotPress/4.0.3\n" +"Language: es\n" +"Project-Id-Version: WordPress - 6.9.x - Development - Administration\n" + +#. translators: Default start of the week. 0 = Sunday, 1 = Monday. +#: wp-admin/includes/schema.php:419 +#, gp-priority: high +msgctxt "start of week" +msgid "1" +msgstr "1" + +#. translators: default GMT offset or timezone string. Must be either a valid +#. offset (-12 to 14) or a valid timezone string (America/New_York). See +#. https://www.php.net/manual/en/timezones.php for all timezone strings +#. currently supported by PHP. Important: When a previous timezone string, like +#. `Europe/Kiev`, has been superseded by an updated one, like `Europe/Kyiv`, as +#. a rule of thumb, the **old** timezone name should be used in the +#. "translation" to allow for the default timezone setting to be PHP +#. cross-version compatible, as old timezone names will be recognized in new +#. PHP versions, while new timezone names cannot be recognized in old PHP +#. versions. To verify which timezone strings are available in the _oldest_ PHP +#. version supported, you can use https://3v4l.org/6YQAt#v5.6.20 and replace +#. the "BR" (Brazil) in the code line with the country code for which you want +#. to look up the supported timezone names. +#: wp-admin/includes/schema.php:404 +#, gp-priority: high +msgctxt "default GMT offset or timezone string" +msgid "0" +msgstr "Europe/Madrid" + +#: wp-admin/about.php:141 +msgid "WordPress 6.9 includes a broad set of performance enhancements. A better LCP (Largest Contentful Paint) metric is achieved through improved loading of conditional and inlined stylesheets, script loading with fetchpriority support, and additional core optimizations. Editor advances include fixes for layout shifts caused by the Video block and faster loading of the terms selector." +msgstr "WordPress 6.9 incluye un amplio conjunto de mejoras de rendimiento. Se ha logrado una mejor métrica LCP (Largest Contentful Paint) gracias a la carga optimizada de hojas de estilo condicionales e integradas, la carga de scripts con prioridad de recuperación y optimizaciones adicionales del núcleo. Las mejoras del editor incluyen correcciones para los cambios de diseño causados por el bloque de vídeo y una carga más rápida del selector de términos." + +#: wp-admin/theme-editor.php:257 +msgid "It is likely that this unminified stylesheet will not be served to visitors." +msgstr "Parece que esta hoja de estilos sin minimizar no se servirá a los visitantes." + +#: wp-admin/theme-editor.php:256 +msgid "There is a minified version of this stylesheet." +msgstr "Hay una versión minimizada de esta hoja de estilos." + +#: wp-admin/options-discussion.php:282 +msgid "Color (Generated)" +msgstr "Color (generado)" + +#: wp-admin/options-discussion.php:281 +msgid "Initials (Generated)" +msgstr "Iniciales (generadas)" + +#: wp-admin/options-discussion.php:166 +msgid "Anyone posts a note" +msgstr "Alguien publica una nota" + +#: wp-admin/includes/misc.php:1025 wp-admin/user-edit.php:336 +msgid "Administration Color Scheme" +msgstr "Esquema de color de la administración" + +#: wp-admin/includes/class-wp-site-health.php:2846 +msgid "Search Engine Visibility" +msgstr "Visibilidad en los motores de búsqueda" + +#: wp-admin/includes/class-wp-site-health.php:2750 +msgid "Your site is hidden from search engines. Consider enabling indexing if this is a public site." +msgstr "Tu sitio está oculto para los motores de búsqueda. Plantéate activar el indexado si este es un sitio público." + +#: wp-admin/includes/class-wp-site-health.php:2746 +msgid "Search engines are discouraged from indexing this site." +msgstr "Se disuade a los motores de búsqueda de que indexen este sitio." + +#: wp-admin/includes/class-wp-site-health.php:2738 +msgid "Review your visibility settings" +msgstr "Revisa tus ajustes de visibilidad" + +#: wp-admin/includes/class-wp-site-health.php:2733 +msgid "Search engines can crawl and index your site. No action needed." +msgstr "Los motores de búsqueda pueden rastrear e indexar tu sitio. No es necesaria ninguna acción." + +#: wp-admin/includes/class-wp-site-health.php:2725 +msgid "Search engine indexing is enabled." +msgstr "El indexado en motores de búsqueda está activo." + +#. translators: %s is the URL to the Serve Happy docs page. +#: wp-admin/includes/class-wp-site-health.php:763 +msgid "Unable to access the WordPress.org API for Serve Happy." +msgstr "No ha sido posible acceder a la API de to WordPress.org para Sirve feliz." + +#. translators: %s: The server PHP version. +#: wp-admin/includes/class-wp-site-health.php:757 +msgid "Unable to determine the status of the current PHP version (%s)" +msgstr "No ha sido posible determinar el estado de la versión actual de PHP (%s)" + +#. translators: %s: The server PHP version. +#: wp-admin/includes/class-wp-site-health.php:732 +msgid "Your site is running PHP %s" +msgstr "Tu sitio está ejecutando PHP %s" + +#: wp-admin/includes/class-wp-debug-data.php:699 +msgid "Image format transforms" +msgstr "Transforma formatos de imagen" + +#: wp-admin/includes/class-wp-debug-data.php:695 +msgid "No format transforms defined" +msgstr "No se han definido transformaciones de formato" + +#. translators: %s: Name of the file that failed to upload. +#: wp-admin/async-upload.php:144 +msgid "%s has failed to upload." +msgstr "No se ha podido subir %s." + +#: wp-admin/about.php:150 +msgid "70+ accessibility fixes and enhancements focus on central areas of the WordPress experience. From globally hiding CSS-generated content from assistive technology and improvements to screen reader announcements and user experience, to fixing cursor position and keeping typing focus when clicking on an autocomplete suggestion item." +msgstr "Más de 70 correcciones y mejoras de accesibilidad centradas en áreas fundamentales para la experiencia de uso de WordPress. Desde ocultar globalmente el contenido generado por CSS a tecnologías de asistencia y mejoras en los mensajes para lectores de pantalla, así como en la experiencia de usuario, hasta corregir la posición del cursor y mantener el foco de escritura al hacer clic en una sugerencia de autocompletado." + +#: wp-admin/about.php:125 +msgid "A new typography option for text-based blocks, starting with the Paragraph and Heading blocks, that automatically adjusts font size to fill its container perfectly. Ideal for banners, callouts, and standout moments in your design. No manual tweaks, just an instant clean design." +msgstr "Una nueva opción de tipografía para los bloques basados en texto, empezando por los bloques de párrafo y encabezado, que ajusta automáticamente el tamaño de la fuente para llenar el contenedor a la perfección. Ideal para banners, llamadas y elementos destacados de tu diseño. Sin ajustes manuales, simplemente un diseño limpio al instante." + +#: wp-admin/about.php:124 +msgid "Content that adapts." +msgstr "Contenido que se adapta." + +#: wp-admin/about.php:122 +msgid "Fit text to container" +msgstr "Ajusta texto al contenedor" + +#: wp-admin/about.php:105 +msgid "Access the Command Palette from any part of your site, whether you’re writing your latest post, deep in design in the Site Editor, or browsing your plugins. Everything you need, just a few keystrokes away." +msgstr "Accede a la paleta de comandos desde cualquier parte de tu sitio, ya sea mientras escribes tu última entrada, te sumerges en el diseño en el editor del sitio o revisas tus plugins. Todo lo que necesitas, a solo unas teclas de distancia." + +#: wp-admin/about.php:104 +msgid "Your tools are always at hand." +msgstr "Tus herramientas siempre a mano." + +#: wp-admin/about.php:102 +msgid "Command Palette, everywhere" +msgstr "La paleta de comandos en todas partes" + +#: wp-admin/about.php:95 +msgid "Building layouts is now more intuitive and flexible with clear drag handles and a live preview that shows exactly what you’re moving—a faster way to build pages." +msgstr "La creación de diseños ahora es más intuitiva y flexible, con controles de arrastre claros y una vista previa en tiempo real que muestra exactamente lo que estás moviendo, lo que se traduce en una forma más rápida de crear páginas." + +#: wp-admin/about.php:94 +msgid "Design flows naturally." +msgstr "El diseño fluye de manera natural" + +#: wp-admin/about.php:92 +msgid "Visual drag and drop" +msgstr "Arrastrar y soltar visual" + +#: wp-admin/about.php:75 +msgid "With notes attached directly to blocks, your team can stay aligned, track changes, and turn feedback into action all in one place. Whether you’re working on copy or refining design, collaboration happens seamlessly on the canvas itself." +msgstr "Con notas adjuntas directamente en los bloques, tu equipo puede mantenerse coordinado, realizar el seguimiento de los cambios y convertir los comentarios en acciones, todo en un solo lugar. Tanto si estás trabajando en un texto como perfeccionando un diseño, la colaboración se produce de forma fluida en el propio lienzo." + +#: wp-admin/about.php:74 +msgid "Leave feedback right where you’re working." +msgstr "Deja comentarios justo donde estés trabajando." + +#: wp-admin/about.php:72 +msgctxt "about page section title" +msgid "Notes" +msgstr "Notas" + +#: wp-admin/about.php:66 +msgid "WordPress 6.9 introduces a more intuitive way to create content, together. Every detail is designed to fit your creative flow, from Notes that let you collaborate directly in the editor to a powerful Command Palette that helps you reach every part of your site." +msgstr "WordPress 6.9 incluye una forma más intuitiva de crear contenido juntos. Cada detalle está diseñado para adaptarse a tu flujo creativo, desde las notas que te permiten colaborar directamente en el editor hasta una potente paleta de comandos que te ayuda a llegar a todas las partes de tu sitio." + +#. translators: 1: URL to WordPress release notes, 2: WordPress version number, +#. 3: The PHP extension name needed. +#: wp-admin/upgrade.php:68 +msgid "You cannot upgrade because WordPress %2$s requires the %3$s PHP extension." +msgstr "No puedes actualizar porque WordPress %2$s requiere la extensión de PHP %3$s." + +#: wp-admin/themes.php:70 +msgid "An error occurred while deleting the theme." +msgstr "Ha ocurrido un error al borrar el tema." + +#: wp-admin/theme-install.php:57 wp-admin/themes.php:234 +#: wp-admin/themes.php:255 wp-admin/network/menu.php:86 +#: wp-admin/network/themes.php:366 +msgid "Add Theme" +msgstr "Añadir tema" + +#. translators: %s: https://wordpress.org/about/privacy +#: wp-admin/privacy.php:71 +msgid "WordPress.org takes privacy and transparency very seriously. To learn more about what data is collected, and how it is used, please visit the WordPress.org Privacy Policy." +msgstr "WordPress.org se toma la privacidad y la transparencia muy en serio. Para aprender más sobre los datos que recoge, y qué hace con ellos, por favor, visita la política de privacidad de WordPress.org." + +#: wp-admin/privacy.php:38 +msgid "WordPress.org takes privacy and transparency very seriously" +msgstr "WordPress.org se toma muy en serio la privacidad y la transparencia" + +#. translators: %s: File path. +#: wp-admin/plugin-editor.php:249 wp-admin/theme-editor.php:285 +msgid "File: %s" +msgstr "Archivo: %s" + +#: wp-admin/menu.php:346 wp-admin/menu.php:348 wp-admin/menu.php:356 +#: wp-admin/menu.php:358 wp-admin/user-edit.php:269 wp-admin/user-new.php:269 +#: wp-admin/user-new.php:391 wp-admin/user-new.php:515 +#: wp-admin/user-new.php:667 wp-admin/users.php:783 +#: wp-admin/network/menu.php:62 wp-admin/network/site-users.php:356 +#: wp-admin/network/site-users.php:400 wp-admin/network/user-new.php:100 +#: wp-admin/network/user-new.php:107 wp-admin/network/user-new.php:161 +#: wp-admin/network/users.php:292 +msgid "Add User" +msgstr "Añadir usuario" + +#: wp-admin/menu.php:325 wp-admin/plugins.php:770 wp-admin/network/menu.php:111 +msgid "Add Plugin" +msgstr "Añadir plugin" + +#: wp-admin/menu.php:233 +msgctxt "design menu item" +msgid "Design" +msgstr "Diseño" + +#: wp-admin/menu-header.php:285 +msgid "Collapse Main Menu" +msgstr "Cerrar menú principal" + +#: wp-admin/media-upload.php:39 +msgid "Invalid item ID. You can view all media items in the Media Library." +msgstr "ID de elemento no válido. Puedes ver todos los medios en la biblioteca de medios." + +#: wp-admin/media-upload.php:38 +msgid "An error occurred during the upload process." +msgstr "Ha ocurrido un error durante el proceso de subida." + +#. translators: 1: URL to WordPress release notes, 2: WordPress version number, +#. 3: The PHP extension name needed. +#: wp-admin/install.php:304 +msgid "You cannot install because WordPress %2$s requires the %3$s PHP extension." +msgstr "No puedes instalarlo porque WordPress %2$s requiere la extensión de PHP %3$s." + +#: wp-admin/includes/template.php:738 +msgid "Add Custom Field:" +msgstr "Añadir campo personalizado:" + +#: wp-admin/includes/revision.php:471 +msgid "An error occurred while loading the comparison. Please refresh the page and try again." +msgstr "Ha ocurrido un error al cargar la comparación. Recarga la página e inténtalo de nuevo." + +#. translators: Hidden accessibility text. +#: wp-admin/includes/meta-boxes.php:1203 wp-admin/includes/meta-boxes.php:1208 +msgid "+ Add Category" +msgstr "+ Añadir categoría" + +#: wp-admin/includes/class-wp-debug-data.php:1735 +msgid "Does not exist" +msgstr "No existe" + +#: wp-admin/includes/class-wp-debug-data.php:530 +msgid "robots.txt" +msgstr "robots.txt" + +#. translators: %s: robots.txt +#: wp-admin/includes/class-wp-debug-data.php:525 +msgid "WordPress cannot dynamically serve a %s file due to a lack of rewrite rule support" +msgstr "WordPress no puede servir dinámicamente un archivo %s debido a la falta de compatibilidad con reglas de rewrite." + +#. translators: %s: robots.txt +#: wp-admin/includes/class-wp-debug-data.php:519 +msgid "Your site is using the dynamic %s file which is generated by WordPress." +msgstr "Tu sitio está utilizando el archivo %s dinámico generado por WordPress." + +#. translators: %s: robots.txt +#: wp-admin/includes/class-wp-debug-data.php:513 +msgid "There is a static %s file in your installation folder. WordPress cannot dynamically serve one." +msgstr "Hay un archivo %s estático en la carpeta de tu instalación. WordPress no puede servirlo dinámicamente." + +#: wp-admin/includes/class-custom-image-header.php:834 +#: wp-admin/includes/class-custom-image-header.php:1022 +msgid "The active theme does not support uploading a custom header image. Please ensure your theme supports custom headers and try again." +msgstr "El tema activo no permite subir una imagen de cabecera personalizada. Asegúrate de que tu tema admite cabeceras personalizadas e inténtalo de nuevo." + +#: wp-admin/includes/class-custom-image-header.php:833 +#: wp-admin/includes/class-custom-image-header.php:1021 +#: wp-admin/includes/class-custom-image-header.php:1032 +msgid "An error occurred while processing your header image." +msgstr "Ha ocurrido un error al procesar tu imagen de cabecera." + +#: wp-admin/customize.php:80 +msgid "Please try again or start a new changeset. This changeset cannot be further modified." +msgstr "Por favor, inténtalo de nuevo o inicia un nuevo grupo de cambios. Este grupo de cambios no puede modificarse." + +#: wp-admin/customize.php:79 +msgid "An error occurred while saving your changeset." +msgstr "Ha ocurrido un error al guardar el grupo de cambios." + +#: wp-admin/credits.php:159 +msgid "Triage Lead" +msgstr "Líder de triaje" + +#: wp-admin/credits.php:158 +msgid "Tech Lead" +msgstr "Líder técnico" + +#: wp-admin/credits.php:157 +msgid "Default Theme Development Lead" +msgstr "Líder del desarrollo del tema por defecto" + +#: wp-admin/credits.php:156 +msgid "Default Theme Design Lead" +msgstr "Líder de diseño del tema por defecto" + +#: wp-admin/credits.php:155 +msgid "Performance Lead" +msgstr "Líder de rendimiento" + +#: wp-admin/credits.php:154 +msgid "Design Lead" +msgstr "Líder de diseño" + +#: wp-admin/credits.php:153 +msgid "Test Lead" +msgstr "Líder de pruebas" + +#: wp-admin/credits.php:152 +msgid "Documentation Lead" +msgstr "Líder de documentación" + +#: wp-admin/credits.php:151 +msgid "Editor Triage Lead" +msgstr "Líder de triaje del editor" + +#: wp-admin/credits.php:150 +msgid "Editor Tech Lead" +msgstr "Líder técnico del editor" + +#: wp-admin/credits.php:149 +msgid "Core Triage Lead" +msgstr "Líder de triaje del núcleo" + +#: wp-admin/credits.php:148 +msgid "Core Tech Lead" +msgstr "Líder técnico del núcleo" + +#: wp-admin/credits.php:146 +msgid "Minor Release Lead" +msgstr "Líder de versión menor" + +#: wp-admin/credits.php:145 +msgid "Release Coordination" +msgstr "Coordinación de la versión" + +#: wp-admin/plugins.php:613 +msgid "If a dependent plugin is missing some dependencies, its activation button will be disabled until the required dependencies are activated." +msgstr "Si a un plugin dependiente le faltan algunas dependencias, su botón de activación se desactivará hasta que se activen las dependencias necesarias." + +#: wp-admin/plugins.php:612 +msgid "If a required plugin is deleted, a notice will be displayed on the Plugin administration screen informing the user that there is some missing dependencies to install and/or activate. Additionally, each plugin whose dependencies are not met will have an error notice on their plugin row." +msgstr "Si se elimina un plugin necesario, aparecerá un aviso en la pantalla de administración de plugins informando al usuario de que faltan algunas dependencias por instalar y/o activar. Además, cada plugin cuyas dependencias no se cumplan tendrá un aviso de error en su fila de plugin." + +#: wp-admin/plugins.php:611 +msgid "Plugin Dependencies aims to make the process of installing and activating add-ons (dependents) and the plugins they rely on (dependencies) consistent and easy." +msgstr "Las dependencias de plugin tienen como objetivo hacer que el proceso de instalar y activar extensiones (dependientes) y los plugins de los que dependen (dependencias) sea consistente y fácil." + +#: wp-admin/plugins.php:609 +msgid "Dependencies" +msgstr "Dependencias" + +#: wp-admin/options-discussion.php:143 +msgid "Comments to display at the top of each page" +msgstr "Comentarios para mostrar en la parte superior de cada página" + +#: wp-admin/options-discussion.php:136 +msgid "Comments page to display by default" +msgstr "Página de comentarios a mostrar por defecto" + +#: wp-admin/options-discussion.php:132 +msgid "Top level comments per page" +msgstr "Comentarios de nivel superior por página" + +#: wp-admin/options-discussion.php:129 +msgid "Break comments into pages" +msgstr "Desglosar los comentarios en páginas" + +#: wp-admin/options-discussion.php:124 +msgid "Comment Pagination" +msgstr "Paginación de los comentarios" + +#: wp-admin/options-discussion.php:117 +msgid "Number of levels for threaded (nested) comments" +msgstr "Número de niveles para comentarios en hilos (anidados)" + +#: wp-admin/options-discussion.php:93 +msgid "Enable threaded (nested) comments" +msgstr "Activar comentarios en hilos (anidados)" + +#: wp-admin/options-discussion.php:84 +msgid "Close comments when post is how many days old" +msgstr "Cerrar los comentarios cuando la entrada tenga cuántos días de antigüedad" + +#: wp-admin/options-discussion.php:81 +msgid "Automatically close comments on old posts" +msgstr "Cerrar automáticamente los comentarios de entradas antiguas" + +#: wp-admin/nav-menus.php:601 +msgid "Menu order updated" +msgstr "Actualizado el orden del menú" + +#: wp-admin/nav-menus.php:600 +msgid "Menu parent updated" +msgstr "Actualizado el menú padre" + +#: wp-admin/includes/revision.php:383 +msgid "Change revision by using the left and right arrow keys" +msgstr "Cambiar la revisión usando las teclas izquierda y derecha" + +#: wp-admin/includes/revision.php:382 +msgid "Select a revision" +msgstr "Seleccionar una revisión" + +#: wp-admin/includes/class-wp-upgrader.php:207 +msgid "A directory could not be read." +msgstr "No se ha podido leer un directorio." + +#: wp-admin/includes/class-wp-debug-data.php:1631 +msgid "Database Extension" +msgstr "Extensión de la base de datos" + +#: wp-admin/includes/class-wp-debug-data.php:1487 +#: wp-admin/includes/class-wp-debug-data.php:1496 +msgid "Empty value" +msgstr "Valor vacío" + +#: wp-admin/includes/class-wp-debug-data.php:639 +msgid "Max simultaneous file uploads" +msgstr "Carga máxima simultánea de archivos" + +#: wp-admin/includes/class-walker-nav-menu-edit.php:261 +msgid "Menu Order" +msgstr "Orden en el menú" + +#: wp-admin/includes/class-walker-nav-menu-edit.php:254 +msgid "Menu Parent" +msgstr "Menú padre" + +#: wp-admin/edit-form-advanced.php:545 +msgid "Skip to Editor" +msgstr "Saltar al editor" + +#. translators: %s: WordPress version number. +#: wp-admin/about.php:245 +msgid "WordPress %s Field Guide" +msgstr "Guía de campo de WordPress %s" + +#. translators: %s: WordPress version number. +#: wp-admin/about.php:218 +msgid "WordPress %s Release Notes" +msgstr "Notas de la versión de WordPress %s" + +#: wp-admin/includes/class-wp-debug-data.php:1950 +msgid "The directory does not exist." +msgstr "El directorio no existe." + +#: wp-admin/update-core.php:1048 +msgid "Common Errors" +msgstr "Errores comunes" + +#: wp-admin/theme-editor.php:54 +msgid "Documentation on Editing Files" +msgstr "Documentación sobre la edición de archivos" + +#: wp-admin/plugin-editor.php:157 +msgid "Documentation on Editing Plugins" +msgstr "Documentación sobre la edición de plugins" + +#: wp-admin/options.php:331 +msgid "https://developer.wordpress.org/plugins/settings/settings-api/" +msgstr "https://developer.wordpress.org/plugins/settings/settings-api/" + +#. translators: 1: The option/setting, 2: Documentation URL. +#: wp-admin/options.php:329 +msgid "The %1$s setting is unregistered. Unregistered settings are deprecated. See documentation on the Settings API." +msgstr "El ajuste %1$s no está registrado. Los ajustes no registrados están obsoletos. Consulta la documentación sobre la API de ajustes." + +#: wp-admin/options-writing.php:224 wp-admin/options-writing.php:238 +msgid "https://developer.wordpress.org/advanced-administration/wordpress/update-services/" +msgstr "https://developer.wordpress.org/advanced-administration/wordpress/update-services/" + +#: wp-admin/options-reading.php:35 wp-admin/options-reading.php:194 +msgid "https://developer.wordpress.org/advanced-administration/wordpress/feeds/" +msgstr "https://developer.wordpress.org/advanced-administration/wordpress/feeds/" + +#: wp-admin/options-permalink.php:64 +msgid "Documentation on Nginx configuration." +msgstr "Documentación sobre la configuración de Nginx." + +#: wp-admin/options-general.php:35 wp-admin/options-general.php:254 +msgid "https://developer.wordpress.org/advanced-administration/server/wordpress-in-directory/" +msgstr "https://developer.wordpress.org/advanced-administration/server/wordpress-in-directory/" + +#: wp-admin/includes/ms.php:1174 wp-admin/network/site-new.php:32 +#: wp-admin/network/sites.php:44 +msgid "Documentation on Site Management" +msgstr "Documentación sobre la gestión del sitio" + +#. translators: xfn (friendship relation): http://gmpg.org/xfn +#. translators: xfn (geographical relation): http://gmpg.org/xfn +#. translators: xfn (family relation): http://gmpg.org/xfn +#: wp-admin/includes/meta-boxes.php:1344 wp-admin/includes/meta-boxes.php:1383 +#: wp-admin/includes/meta-boxes.php:1408 +msgctxt "Type of relation" +msgid "none" +msgstr "ninguna" + +#: wp-admin/includes/file.php:1158 +msgid "No URL Provided." +msgstr "No se ha facilitado ninguna URL." + +#: wp-admin/includes/file.php:329 wp-admin/options-permalink.php:464 +#: wp-admin/options-permalink.php:496 wp-admin/options-permalink.php:532 +#: wp-admin/plugin-editor.php:340 wp-admin/setup-config.php:487 +#: wp-admin/theme-editor.php:407 +msgid "https://developer.wordpress.org/advanced-administration/server/file-permissions/" +msgstr "https://developer.wordpress.org/advanced-administration/server/file-permissions/" + +#: wp-admin/includes/class-wp-upgrader.php:199 +msgid "Package not available." +msgstr "Paquete no disponible." + +#: wp-admin/includes/class-wp-site-health.php:2842 +msgid "Autoloaded options" +msgstr "Opciones cargadas automáticamente" + +#: wp-admin/includes/class-wp-site-health.php:2700 +msgid "More info about optimizing autoloaded options" +msgstr "Más información sobre la optimización de las opciones autocargadas" + +#: wp-admin/includes/class-wp-site-health.php:2699 +msgid "https://developer.wordpress.org/advanced-administration/performance/optimization/#autoloaded-options" +msgstr "https://developer.wordpress.org/advanced-administration/performance/optimization/#autoloaded-options" + +#. translators: 1: Number of autoloaded options, 2: Autoloaded options size. +#: wp-admin/includes/class-wp-site-health.php:2682 +msgid "Your site has %1$s autoloaded options (size: %2$s) in the options table, which could cause your site to be slow. You can review the options being autoloaded in your database and remove any options that are no longer needed by your site." +msgstr "Tu sitio tiene %1$s opciones autocargadas (tamaño: %2$s) en la tabla de opciones, lo que podría hacer que tu sitio fuera lento. Puedes revisar las opciones que se cargan automáticamente en tu base de datos y eliminar las que ya no necesite tu sitio." + +#: wp-admin/includes/class-wp-site-health.php:2679 +msgid "Autoloaded options could affect performance" +msgstr "Las opciones cargadas automáticamente podrían afectar al rendimiento" + +#. translators: 1: Number of autoloaded options, 2: Autoloaded options size. +#: wp-admin/includes/class-wp-site-health.php:2657 +msgid "Your site has %1$s autoloaded options (size: %2$s) in the options table, which is acceptable." +msgstr "Tu sitio tiene %1$s opciones cargadas automáticamente (tamaño: %2$s) en la tabla de opciones, lo cual es aceptable." + +#: wp-admin/includes/class-wp-site-health.php:2649 +msgid "Autoloaded options are acceptable" +msgstr "Las opciones cargadas automáticamente son aceptables" + +#: wp-admin/includes/class-wp-site-health.php:2646 +msgid "Autoloaded options are configuration settings for plugins and themes that are automatically loaded with every page load in WordPress. Having too many autoloaded options can slow down your site." +msgstr "Las opciones cargadas automáticamente son ajustes de configuración para plugins y temas que se cargan automáticamente con cada carga de página en WordPress. Tener demasiadas opciones de carga automática puede ralentizar tu sitio." + +#. translators: Localized Support reference. +#: wp-admin/includes/class-wp-site-health.php:2534 +msgid "https://developer.wordpress.org/advanced-administration/performance/optimization/#persistent-object-cache" +msgstr "https://developer.wordpress.org/advanced-administration/performance/optimization/#persistent-object-cache" + +#: wp-admin/includes/class-wp-site-health.php:2425 +msgid "https://developer.wordpress.org/advanced-administration/performance/optimization/#caching" +msgstr "https://developer.wordpress.org/advanced-administration/performance/optimization/#caching" + +#: wp-admin/includes/class-wp-debug-data.php:879 +msgid "Fonts directory size" +msgstr "Tamaño del directorio de fuentes" + +#: wp-admin/includes/class-wp-debug-data.php:875 +msgid "Fonts directory location" +msgstr "Ubicación del directorio de fuentes" + +#: wp-admin/includes/class-wp-debug-data.php:1732 +msgid "The fonts directory" +msgstr "El directorio de fuentes" + +#: wp-admin/includes/class-wp-automatic-updater.php:1350 +msgid "The following plugins failed to update. If there was a fatal error in the update, the previously installed version has been restored." +msgstr "Ha fallado la actualización de los siguientes plugins. Si ha habido un error fatal en la actualización, se ha restaurado la versión instalada anteriormente." + +#. translators: %s: The plugin's slug. +#: wp-admin/includes/class-wp-automatic-updater.php:593 +msgid "The update for '%s' contained a fatal error. The previously installed version has been restored." +msgstr "La actualización de «%s» contenía un error fatal. Se ha restaurado la versión instalada anteriormente." + +#. translators: %s: The plugin's slug. +#: wp-admin/includes/class-wp-automatic-updater.php:582 +msgid "The update for '%s' contained a fatal error. The previously installed version could not be restored." +msgstr "La actualización de «%s» contenía un error fatal. No se pudo restaurar la versión instalada anteriormente." + +#: wp-admin/includes/class-plugin-installer-skin.php:302 +#: wp-admin/includes/class-plugin-installer-skin.php:308 +#: wp-admin/includes/class-theme-installer-skin.php:347 +#: wp-admin/includes/class-theme-installer-skin.php:353 +#: wp-admin/update-core.php:261 +msgid "https://developer.wordpress.org/advanced-administration/security/backup/" +msgstr "https://developer.wordpress.org/advanced-administration/security/backup/" + +#: wp-admin/export-personal-data.php:59 +msgid "If you are a plugin author, you can learn more about how to add the Personal Data Exporter to a plugin." +msgstr "Si eres autor de un plugin, puedes obtener más información sobre cómo añadir el exportador de datos personales a un plugin." + +#: wp-admin/erase-personal-data.php:59 +msgid "If you are a plugin author, you can learn more about how to add the Personal Data Eraser to a plugin." +msgstr "Si eres autor de un plugin, puedes obtener más información sobre cómo añadir el borrado de datos personales a un plugin." + +#: wp-admin/about.php:171 +msgid "See everything new" +msgstr "Ver todas las novedades" + +#. translators: %s: WordPress version number. +#: wp-admin/about.php:33 +msgid "https://wordpress.org/download/releases/%s/" +msgstr "https://wordpress.org/download/releases/%s/" + +#. translators: %s: Version number. +#: wp-admin/about.php:163 +msgid "For a comprehensive overview of all the new features and enhancements in WordPress %s, please visit the feature-showcase website." +msgstr "Para obtener una visión general de todas las nuevas características y mejoras de WordPress %s, visita el sitio web de presentación de características." + +#: wp-admin/about.php:157 +msgid "And much more" +msgstr "Y mucho más" + +#: wp-admin/menu.php:235 +msgctxt "patterns menu item" +msgid "Patterns" +msgstr "Patrones" + +#: wp-admin/options-general.php:191 wp-admin/options-general.php:197 +msgid "Change Site Icon" +msgstr "Cambiar icono del sitio" + +#. translators: 1: Plugin name, 2: Number of plugins, 3: A comma-separated list +#. of plugin names. +#: wp-admin/includes/plugin.php:1221 +msgid "Error: %1$s requires %2$d plugin to be installed and activated: %3$s." +msgid_plural "Error: %1$s requires %2$d plugins to be installed and activated: %3$s." +msgstr[0] "Error: %1$s requiere que esté instalado y activado %2$d plugin: %3$s." +msgstr[1] "Error: %1$s requiere que estén instalados y activados %2$d plugins: %3$s." + +#: wp-admin/includes/plugin-install.php:971 +#: wp-admin/includes/plugin-install.php:976 +msgctxt "plugin" +msgid "Update Now" +msgstr "Actualizar ahora" + +#: wp-admin/includes/class-wp-theme-install-list-table.php:339 +#: wp-admin/includes/theme-install.php:207 +msgctxt "theme" +msgid "Install Now" +msgstr "Instalar ahora" + +#: wp-admin/includes/class-wp-plugins-list-table.php:1589 +msgid "This plugin cannot be activated because required plugins are missing or inactive." +msgstr "Este plugin no puede ser activado porque faltan los plugins que necesita o están inactivos." + +#: wp-admin/includes/class-wp-plugins-list-table.php:1587 +msgid "This plugin is active but may not function correctly because required plugins are missing or inactive." +msgstr "Este plugin está activo pero puede no funcionar correctamente porque hay plugins que requiere que faltan o están inactivos." + +#. translators: %s: List of dependency names. +#: wp-admin/includes/class-wp-plugins-list-table.php:1579 +msgid "Requires: %s" +msgstr "Requiere: %s" + +#. translators: %s: List of dependencies. +#: wp-admin/includes/class-wp-plugins-list-table.php:1545 +msgid "Required by: %s" +msgstr "Requerido por: %s" + +#: wp-admin/includes/class-wp-plugins-list-table.php:1540 +msgid "Note: This plugin cannot be deactivated or deleted until the plugins that require it are deactivated or deleted." +msgstr "Nota: Este plugin no se puede desactivar o eliminar hasta que se desactiven o eliminen los plugins que lo requieren." + +#: wp-admin/includes/class-wp-plugins-list-table.php:902 +msgid "You cannot deactivate this plugin as other plugins depend on it." +msgstr "No puedes desactivar este plugin ya que otros dependen de él." + +#: wp-admin/includes/class-wp-plugins-list-table.php:868 +#: wp-admin/includes/class-wp-plugins-list-table.php:974 +msgid "You cannot delete this plugin as other plugins require it." +msgstr "No puedes borrar este plugin ya que otros plugins lo requieren." + +#: wp-admin/includes/class-wp-plugins-list-table.php:838 +#: wp-admin/includes/class-wp-plugins-list-table.php:944 +msgid "You cannot activate this plugin as it has unmet requirements." +msgstr "No puedes activar este plugin ya que tiene requisitos no cumplidos." + +#: wp-admin/includes/class-wp-plugins-list-table.php:812 +msgid "You cannot deactivate this plugin as other plugins require it." +msgstr "No puedes desactivar este plugin ya que otros plugins lo requieren." + +#: wp-admin/includes/class-wp-plugins-list-table.php:615 +msgctxt "plugin" +msgid "Deactivate" +msgstr "Desactivar" + +#: wp-admin/includes/class-wp-plugins-list-table.php:615 +#: wp-admin/includes/class-wp-plugins-list-table.php:828 +msgctxt "plugin" +msgid "Network Deactivate" +msgstr "Desactivar para la red" + +#: wp-admin/includes/class-wp-plugins-list-table.php:611 +#: wp-admin/includes/class-wp-plugins-list-table.php:942 +#: wp-admin/includes/class-wp-plugins-list-table.php:959 +#: wp-admin/includes/plugin-install.php:877 +#: wp-admin/includes/plugin-install.php:991 +#: wp-admin/includes/plugin-install.php:1022 wp-admin/js/updates.js:980 +#: wp-admin/js/updates.js:1025 +msgctxt "plugin" +msgid "Activate" +msgstr "Activar" + +#: wp-admin/includes/class-wp-plugin-install-list-table.php:799 +msgid "Additional plugins are required" +msgstr "Se necesitan plugins adicionales" + +#: wp-admin/includes/class-wp-debug-data.php:240 +msgid "Site ID" +msgstr "ID de sitio" + +#. translators: 1: Current PHP version, 2: PHP version required by the new +#. theme version. +#: wp-admin/includes/class-theme-upgrader.php:465 +msgid "The PHP version on your server is %1$s, however the new theme version requires %2$s." +msgstr "La versión de PHP de tu servidor es %1$s, pero la nueva versión del tema requiere la %2$s." + +#. translators: 1: Current WordPress version, 2: WordPress version required by +#. the new theme version. +#: wp-admin/includes/class-theme-upgrader.php:451 +msgid "Your WordPress version is %1$s, however the new theme version requires %2$s." +msgstr "Tu versión de WordPress es la %1$s, sin embargo la nueva versión del tema necesita la %2$s." + +#: wp-admin/includes/class-plugin-installer-skin.php:130 +#: wp-admin/includes/class-wp-plugins-list-table.php:611 +#: wp-admin/includes/class-wp-plugins-list-table.php:836 +#: wp-admin/includes/class-wp-plugins-list-table.php:853 +#: wp-admin/includes/plugin-install.php:1004 +#: wp-admin/includes/plugin-install.php:1022 wp-admin/js/updates.js:969 +msgctxt "plugin" +msgid "Network Activate" +msgstr "Activar para la red" + +#. translators: %s: Plugin name. +#: wp-admin/includes/ajax-actions.php:4587 +msgid "%s is already active." +msgstr "%s ya está activo." + +#: wp-admin/import.php:166 wp-admin/includes/plugin-install.php:355 +#: wp-admin/includes/plugin-install.php:949 +#: wp-admin/includes/plugin-install.php:954 wp-admin/press-this.php:63 +#: wp-admin/js/updates.js:1312 wp-admin/js/updates.js:2637 +#: wp-admin/js/updates.js:2693 +msgctxt "plugin" +msgid "Install Now" +msgstr "Instalar ahora" + +#: wp-admin/credits.php:41 +msgid "Created by a worldwide team of passionate individuals" +msgstr "Creado por un equipo mundial de personas apasionadas" + +#: wp-admin/about.php:149 +msgid "Accessibility improvements" +msgstr "Mejoras de accesibilidad" + +#: wp-admin/about.php:140 +msgid "Performance updates" +msgstr "Actualizaciones de rendimiento" + +#: wp-admin/update.php:158 wp-admin/update.php:310 +msgid "Only .zip archives may be uploaded." +msgstr "Sólo se pueden subir archivos .zip." + +#. translators: %s: Link to activate the Classic Widgets plugin. +#: wp-admin/widgets-form-blocks.php:105 +msgid "The block widgets require JavaScript. Please enable JavaScript in your browser settings, or activate the Classic Widgets plugin." +msgstr "Los widgets de bloque requieren JavaScript. Activa JavaScript en los ajustes de tu navegador o activa el plugin Classic Widgets." + +#. translators: %s: Link to install the Classic Editor plugin. +#: wp-admin/edit-form-blocks.php:405 +msgid "The block editor requires JavaScript. Please enable JavaScript in your browser settings, or install the Classic Editor plugin." +msgstr "El editor de bloques requiere JavaScript. Activa JavaScript en los ajustes de tu navegador o instala el plugin Editor clásico." + +#. translators: %s: Link to activate the Classic Editor plugin. +#: wp-admin/edit-form-blocks.php:396 +msgid "The block editor requires JavaScript. Please enable JavaScript in your browser settings, or activate the Classic Editor plugin." +msgstr "El editor de bloques requiere JavaScript. Activa JavaScript en los ajustes de tu navegador o activa el plugin Editor clásico." + +#: wp-admin/my-sites.php:81 +msgid "Add New Site" +msgstr "Añadir nuevo sitio" + +#: wp-admin/includes/image-edit.php:80 +msgid "Rotate 180°" +msgstr "Girar 180°" + +#: wp-admin/includes/image-edit.php:79 +msgid "Rotate 90° right" +msgstr "Rotar 90° a la derecha" + +#: wp-admin/includes/image-edit.php:78 +msgid "Rotate 90° left" +msgstr "Rotar 90° a la izquierda" + +#. translators: %s: Number of patterns. +#: wp-admin/edit.php:392 +msgid "%s pattern moved to the Trash." +msgid_plural "%s patterns moved to the Trash." +msgstr[0] "%s patrón movido a la papelera." +msgstr[1] "%s patrones movidos a la papelera." + +#. translators: %s: Number of patterns. +#: wp-admin/edit.php:390 +msgid "%s pattern permanently deleted." +msgid_plural "%s patterns permanently deleted." +msgstr[0] "%s patrón borrado permanentemente." +msgstr[1] "%s patrones borrados permanentemente." + +#. translators: %s: Number of patterns. +#: wp-admin/edit.php:385 +msgid "%s pattern updated." +msgid_plural "%s patterns updated." +msgstr[0] "%s patrón actualizado." +msgstr[1] "%s patrones actualizados." + +#. translators: %s: The dismiss dashicon used for buttons that dismiss or +#. remove. +#: wp-admin/edit.php:293 +msgid "When using Bulk Edit, you can change the metadata (categories, author, etc.) for all selected posts at once. To remove a post from the grouping, just click the %sremove button next to its name in the Bulk Edit area that appears." +msgstr "Al utilizar la edición en lote, puedes cambiar los metadatos (categorías, autor, etc.) de todas las entradas seleccionadas a la vez. Para eliminar una entrada de la agrupación, sólo tienes que hacer clic en el botón %seliminar situado a continuación de su nombre en el área de edición en lote que aparece." + +#. translators: %s: WordPress version number. +#: wp-admin/about.php:228 +msgid "Read the WordPress %s Release Notes for information on installation, enhancements, fixed issues, release contributors, learning resources, and the list of file changes." +msgstr "Lee las notas de la versión de WordPress %s para obtener información sobre la instalación, las mejoras, los problemas corregidos, los colaboradores de la versión, los recursos de aprendizaje y la lista de cambios en los archivos." + +#. translators: %s: WordPress version number. +#: wp-admin/about.php:255 +msgid "Explore the WordPress %s Field Guide. Learn about the changes in this release with detailed developer notes to help you build with WordPress." +msgstr "Explora la Guía de campo de WordPress %s. Infórmate sobre los cambios en esta versión con notas detalladas para desarrolladores que te ayudarán a construir con WordPress." + +#: wp-admin/includes/user.php:721 wp-admin/includes/user.php:744 +msgid "Invalid URL format." +msgstr "Formato de URL no válido." + +#. translators: 1: Current PHP version, 2: PHP version required by the new +#. plugin version. +#: wp-admin/includes/class-plugin-upgrader.php:367 +msgid "The PHP version on your server is %1$s, however the new plugin version requires %2$s." +msgstr "La versión de PHP en tu servidor es la %1$s, sin embargo la nueva versión del plugin requiere la %2$s." + +#. translators: 1: Current WordPress version, 2: WordPress version required by +#. the new plugin version. +#: wp-admin/includes/class-plugin-upgrader.php:353 +msgid "Your WordPress version is %1$s, however the new plugin version requires %2$s." +msgstr "Tu versión de WordPress es la %1$s, sin embargo la nueva versión del plugin requiere la %2$s." + +#: wp-admin/contribute.php:112 wp-admin/credits.php:66 wp-admin/credits.php:74 +msgid "https://make.wordpress.org/contribute/" +msgstr "https://make.wordpress.org/contribute/" + +#: wp-admin/update-core.php:1068 +msgid "Updates may take several minutes to complete. If there is no feedback after 5 minutes, or if there are errors please refer to the Help section above." +msgstr "Las actualizaciones pueden tardar varios minutos en completarse. Si transcurridos 5 minutos no se ha recibido ninguna respuesta, o si se han producido errores, consulta la sección de Ayuda superior." + +#: wp-admin/update-core.php:1043 +msgid "Restore Plugin or Theme" +msgstr "Restaurar plugin o tema" + +#: wp-admin/update-core.php:1038 +msgid "On systems with fewer resources, this may lead to server timeouts or resource limits being reached. If you encounter an issue during the update process, please create a support forum topic and reference Rollback in the issue title." +msgstr "En los sistemas con menos recursos, esto puede provocar que se agote el tiempo de espera del servidor o que se alcancen los límites de recursos. Si tienes algún problema durante el proceso de actualización, crea un tema en el foro de soporte y haz referencia a Rollback en el título del problema." + +#: wp-admin/update-core.php:1036 +msgid "This feature will create a temporary backup of a plugin or theme before it is upgraded. This backup is used to restore the plugin or theme back to its previous state if there is an error during the update process." +msgstr "Esta característica creará una copia de seguridad temporal de un plugin o tema antes de actualizarlo. Esta copia de seguridad se utiliza para restaurar el plugin o tema a su estado anterior si se produce un error durante el proceso de actualización." + +#: wp-admin/site-editor.php:327 +msgid "The site editor requires JavaScript. Please enable JavaScript in your browser settings." +msgstr "El editor del sitio requiere JavaScript. Por favor, activa JavaScript en los ajustes de tu navegador." + +#: wp-admin/options-permalink.php:227 +msgid "https://wordpress.org/documentation/article/customize-permalinks/" +msgstr "https://wordpress.org/documentation/article/customize-permalinks/" + +#. translators: %s: Site tagline example. +#: wp-admin/options-general.php:90 +msgid "In a few words, explain what this site is about. Example: “%s.”" +msgstr "En pocas palabras, explica de qué trata este sitio. Ejemplo: «%s»" + +#: wp-admin/install.php:195 +msgid "Note: Discouraging search engines does not block access to your site — it is up to search engines to honor your request." +msgstr "Nota: Desaconsejar a los motores de búsqueda no bloquea el acceso a tu sitio — depende de los motores de búsqueda atender tu petición." + +#: wp-admin/includes/template.php:762 +msgid "New custom field name" +msgstr "Nuevo nombre de campo personalizado" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/media.php:2758 +msgid "Search Media:" +msgstr "Buscar medios:" + +#: wp-admin/includes/image-edit.php:270 +msgid "Clear Crop" +msgstr "Quitar recorte" + +#: wp-admin/includes/image-edit.php:270 +msgid "Apply Crop" +msgstr "Aplicar recorte" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/image-edit.php:263 +msgid "vertical start position" +msgstr "posición de inicio vertical" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/image-edit.php:255 +msgid "horizontal start position" +msgstr "posición de inicio horizontal" + +#: wp-admin/includes/image-edit.php:250 +msgid "Starting Coordinates:" +msgstr "Coordenadas de inicio:" + +#: wp-admin/includes/image-edit.php:193 +msgid "Crop Image" +msgstr "Recortar imagen" + +#: wp-admin/includes/image-edit.php:163 wp-admin/includes/image-edit.php:944 +msgid "Images cannot be scaled to a size larger than the original." +msgstr "Las imágenes no pueden escalarse a un tamaño mayor que el original." + +#: wp-admin/includes/image-edit.php:101 +msgid "Save Edits" +msgstr "Guardar los cambios" + +#: wp-admin/includes/image-edit.php:100 +msgid "Cancel Editing" +msgstr "Cancelar la edición" + +#: wp-admin/includes/file.php:2027 +msgid "Could not create the destination directory." +msgstr "No se ha podido crear el directorio de destino." + +#: wp-admin/includes/class-wp-users-list-table.php:397 +#: wp-admin/includes/class-wp-ms-users-list-table.php:217 +msgid "Table ordered by E-mail." +msgstr "Tabla ordenada por correo electrónico." + +#: wp-admin/includes/class-wp-users-list-table.php:396 +#: wp-admin/includes/class-wp-ms-users-list-table.php:215 +msgid "Table ordered by Username." +msgstr "Tabla ordenada por nombre de usuario." + +#. translators: %s: The plugin or theme slug. +#: wp-admin/includes/class-wp-upgrader.php:219 +msgid "Could not delete the temporary backup directory for %s." +msgstr "No se ha podido borrar el directorio temporal de copia de seguridad de %s." + +#. translators: %s: The plugin or theme slug. +#: wp-admin/includes/class-wp-upgrader.php:217 +msgid "Could not restore the original version of %s." +msgstr "No se ha podido restaurar la versión original de %s." + +#. translators: %s: upgrade-temp-backup +#: wp-admin/includes/class-wp-upgrader.php:215 +msgid "Could not move the old version to the %s directory." +msgstr "No se ha podido mover la versión antigua al directorio %s." + +#. translators: %s: upgrade-temp-backup +#: wp-admin/includes/class-wp-upgrader.php:213 +msgid "Could not create the %s directory." +msgstr "No se ha podido crear el directorio %s." + +#: wp-admin/includes/class-wp-terms-list-table.php:223 +msgid "Table ordered by Links." +msgstr "Tabla ordenada por enlaces." + +#: wp-admin/includes/class-wp-terms-list-table.php:222 +msgid "Table ordered by Posts Count." +msgstr "Tabla ordenada por recuento de entradas." + +#: wp-admin/includes/class-wp-terms-list-table.php:221 +msgid "Table ordered by Slug." +msgstr "Tabla ordenada por slug." + +#: wp-admin/includes/class-wp-terms-list-table.php:220 +msgid "Table ordered by Description." +msgstr "Tabla ordenada por descripción." + +#: wp-admin/includes/class-wp-terms-list-table.php:213 +msgid "Table ordered hierarchically." +msgstr "Tabla ordenada jerárquicamente." + +#: wp-admin/includes/class-wp-site-health.php:2838 +msgid "Available disk space" +msgstr "Espacio en disco disponible" + +#: wp-admin/includes/class-wp-site-health.php:2834 +msgid "Plugin and theme temporary backup directory access" +msgstr "Acceso al directorio de copia de seguridad temporal de plugins y temas" + +#. translators: 1: wp-content/upgrade, 2: wp-content. +#: wp-admin/includes/class-wp-site-health.php:2011 +msgid "The %1$s directory does not exist, and the server does not have write permissions in %2$s to create it. This directory is used for plugin and theme updates. Please make sure the server has write permissions in %2$s." +msgstr "El directorio %1$s no existe, y el servidor no tiene permisos de escritura en %2$s para crearlo. Este directorio se utiliza para las actualizaciones de plugins y temas. Por favor, asegúrate de que el servidor tenga permisos de escritura en %2$s." + +#: wp-admin/includes/class-wp-site-health.php:2008 +msgid "The upgrade directory cannot be created" +msgstr "No se puede crear el directorio de actualización" + +#. translators: %s: wp-content/upgrade +#: wp-admin/includes/class-wp-site-health.php:2000 +msgid "The %s directory exists but is not writable. This directory is used for plugin and theme updates. Please make sure the server has write permissions to this directory." +msgstr "El directorio %s existe pero no tiene permisos de escritura. Este directorio se utiliza para las actualizaciones de plugins y temas. Por favor, asegúrate de que el servidor tenga permisos de escritura en este directorio." + +#: wp-admin/includes/class-wp-site-health.php:1997 +msgid "The upgrade directory exists but is not writable" +msgstr "El directorio de actualización existe pero no tiene permisos de escritura" + +#. translators: %s: wp-content/upgrade-temp-backup +#: wp-admin/includes/class-wp-site-health.php:1989 +msgid "The %s directory exists but is not writable. This directory is used to improve the stability of plugin and theme updates. Please make sure the server has write permissions to this directory." +msgstr "El directorio %s existe pero no tiene permisos de escritura. Este directorio se utiliza para mejorar la estabilidad de las actualizaciones de plugins y temas. Por favor, asegúrate de que el servidor tenga permisos de escritura en este directorio." + +#: wp-admin/includes/class-wp-site-health.php:1986 +msgid "The temporary backup directory exists but is not writable" +msgstr "El directorio temporal de copia de seguridad existe pero no tiene permisos de escritura" + +#. translators: %s: wp-content/upgrade-temp-backup/themes +#: wp-admin/includes/class-wp-site-health.php:1978 +msgid "The %s directory exists but is not writable. This directory is used to improve the stability of theme updates. Please make sure the server has write permissions to this directory." +msgstr "El directorio %s existe pero no tiene permisos de escritura. Este directorio se utiliza para mejorar la estabilidad de las actualizaciones y temas. Por favor, asegúrate de que el servidor tenga permisos de escritura en este directorio." + +#: wp-admin/includes/class-wp-site-health.php:1975 +msgid "Theme temporary backup directory exists but is not writable" +msgstr "El directorio temporal de copia de seguridad de temas existe pero no tiene permisos de escritura" + +#. translators: %s: wp-content/upgrade-temp-backup/plugins +#: wp-admin/includes/class-wp-site-health.php:1967 +msgid "The %s directory exists but is not writable. This directory is used to improve the stability of plugin updates. Please make sure the server has write permissions to this directory." +msgstr "El directorio %s existe pero no tiene permisos de escritura. Este directorio se utiliza para mejorar la estabilidad de las actualizaciones de plugins. Por favor, asegúrate de que el servidor tenga permisos de escritura en este directorio." + +#: wp-admin/includes/class-wp-site-health.php:1964 +msgid "Plugin temporary backup directory exists but is not writable" +msgstr "El directorio temporal de copia de seguridad de plugins existe pero no tiene permisos de escritura" + +#. translators: 1: wp-content/upgrade-temp-backup/plugins, 2: +#. wp-content/upgrade-temp-backup/themes. +#: wp-admin/includes/class-wp-site-health.php:1955 +msgid "The %1$s and %2$s directories exist but are not writable. These directories are used to improve the stability of plugin updates. Please make sure the server has write permissions to these directories." +msgstr "Los directorios %1$s y %2$s existen pero no tienen permisos de escritura. Estos directorios se utilizan para mejorar la estabilidad en las actualizaciones de plugins. Por favor, asegúrate de que el servidor tenga permisos de escritura en estos directorios." + +#: wp-admin/includes/class-wp-site-health.php:1952 +msgid "Plugin and theme temporary backup directories exist but are not writable" +msgstr "Los directorios de copia de seguridad temporal de plugins y temas existen pero no tienen permisos de escritura" + +#. translators: %s: wp-content +#: wp-admin/includes/class-wp-site-health.php:1934 +msgid "The %s directory cannot be located." +msgstr "No se pudo localizar el directorio %s." + +#. translators: %s: wp-content/upgrade-temp-backup +#: wp-admin/includes/class-wp-site-health.php:1905 +msgid "The %s directory used to improve the stability of plugin and theme updates is writable." +msgstr "El directorio %s utilizado para mejorar la estabilidad en las actualizaciones de plugins y temas tiene permisos de escritura." + +#: wp-admin/includes/class-wp-site-health.php:1897 +msgid "Plugin and theme temporary backup directory is writable" +msgstr "El directorio de copia de seguridad temporal de plugins y temas tiene permisos de escritura." + +#: wp-admin/includes/class-wp-site-health.php:1863 +msgid "Could not determine available disk space for updates." +msgstr "No se pudo determinar el espacio disponible en disco para las actualizaciones." + +#. translators: %s: Available disk space in MB or GB. +#: wp-admin/includes/class-wp-site-health.php:1868 +msgid "Available disk space is critically low, less than %s available. Proceed with caution, updates may fail." +msgstr "El espacio disponible en disco es críticamente bajo, hay menos de %s disponibles. Procede con precaución, las actualizaciones podrían fallar." + +#. translators: %s: Available disk space in MB or GB. +#: wp-admin/includes/class-wp-site-health.php:1875 +msgid "Available disk space is low, less than %s available." +msgstr "El espacio disponible en disco es bajo, hay menos de %s disponibles." + +#. translators: %s: Available disk space in MB or GB. +#: wp-admin/includes/class-wp-site-health.php:1855 +msgid "%s available disk space was detected, update routines can be performed safely." +msgstr "Se ha detectado un espacio disponible en disco de %s, las rutinas de actualización se pueden realizar con seguridad." + +#: wp-admin/includes/class-wp-site-health.php:1847 +msgid "Disk space available to safely perform updates" +msgstr "Espacio disponible en disco para realizar actualizaciones con seguridad" + +#: wp-admin/includes/class-wp-posts-list-table.php:769 +msgid "Table ordered by Hierarchical Menu Order and Title." +msgstr "Tabla ordenada jerárquicamente por orden y y título del menú." + +#: wp-admin/includes/class-wp-posts-list-table.php:767 +#: wp-admin/includes/class-wp-posts-list-table.php:780 +msgid "Table ordered by Title." +msgstr "Tabla ordenada por título." + +#: wp-admin/includes/class-wp-media-list-table.php:404 +#: wp-admin/includes/class-wp-posts-list-table.php:776 +#: wp-admin/includes/class-wp-posts-list-table.php:783 +msgid "Table ordered by Date." +msgstr "Tabla ordenada por fecha." + +#: wp-admin/includes/class-wp-media-list-table.php:403 +#: wp-admin/includes/class-wp-posts-list-table.php:775 +#: wp-admin/includes/class-wp-posts-list-table.php:782 +msgid "Table ordered by Comments." +msgstr "Tabla ordenada por comentarios." + +#: wp-admin/includes/class-wp-media-list-table.php:402 +msgid "Table ordered by Uploaded To." +msgstr "Tabla ordenada por subido a." + +#: wp-admin/includes/class-wp-media-list-table.php:401 +msgid "Table ordered by Author." +msgstr "Tabla ordenada por autor." + +#: wp-admin/includes/class-wp-media-list-table.php:400 +msgid "Table ordered by File Name." +msgstr "Tabla ordenada por nombre de archivo." + +#. translators: Hidden accessibility text. +#: wp-admin/includes/class-wp-list-table.php:1598 +msgid "Descending." +msgstr "Descendente." + +#. translators: Hidden accessibility text. +#: wp-admin/includes/class-wp-list-table.php:1596 +msgid "Ascending." +msgstr "Ascendente." + +#. translators: Hidden accessibility text. +#: wp-admin/includes/class-wp-list-table.php:1501 +msgid "Sort descending." +msgstr "Orden descendente." + +#. translators: Hidden accessibility text. +#: wp-admin/includes/class-wp-list-table.php:1499 +msgid "Sort ascending." +msgstr "Orden ascendente." + +#: wp-admin/includes/class-wp-links-list-table.php:152 +msgid "Table ordered by Rating." +msgstr "Tabla ordenada por valoración." + +#: wp-admin/includes/class-wp-links-list-table.php:151 +msgid "Table ordered by Visibility." +msgstr "Tabla ordenada por visibilidad." + +#: wp-admin/includes/class-wp-links-list-table.php:150 +msgid "Table ordered by URL." +msgstr "Tabla ordenada por URL." + +#: wp-admin/includes/class-wp-links-list-table.php:149 +#: wp-admin/includes/class-wp-terms-list-table.php:215 +#: wp-admin/includes/class-wp-ms-users-list-table.php:216 +msgid "Table ordered by Name." +msgstr "Tabla ordenada por nombre." + +#: wp-admin/includes/class-wp-debug-data.php:547 +msgid "Current Server time" +msgstr "Hora actual del servidor" + +#: wp-admin/includes/class-wp-debug-data.php:543 +msgid "Current UTC time" +msgstr "Hora actual UTC" + +#: wp-admin/includes/class-wp-debug-data.php:539 +msgid "Current time" +msgstr "Hora actual" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/class-wp-comments-list-table.php:599 +msgid "Ordered by Comment Date, descending." +msgstr "Ordenado descendente por fecha de comentario." + +#: wp-admin/includes/class-wp-comments-list-table.php:555 +msgid "Table ordered by Post Replied To." +msgstr "Tabla ordenada por a qué entrada se respondió." + +#: wp-admin/includes/class-wp-comments-list-table.php:554 +msgid "Table ordered by Comment Author." +msgstr "Tabla ordenada por por comentario del autor." + +#: wp-admin/includes/class-core-upgrader.php:41 +msgid "Attempting to restore the previous version." +msgstr "Tratando de restaurar la versión anterior." + +#: wp-admin/includes/class-bulk-upgrader-skin.php:209 +msgid "More details." +msgstr "Más detalles." + +#: wp-admin/contribute.php:112 +msgid "Find your team →" +msgstr "Encuentra tu equipo →" + +#: wp-admin/contribute.php:111 +msgid "Finding the area that aligns with your skills and interests is the first step toward meaningful contribution. With more than 20 Make WordPress teams working on different parts of the open source WordPress project, there’s a place for everyone, no matter what your skill set is." +msgstr "Encontrar el área que se alinee con tus habilidades e intereses es el primer paso para una contribución significativa. Con más de 20 equipos de Make WordPress trabajando en distintas partes del proyecto WordPress de código abierto, hay un lugar para todos, no importa cuál sea tu habilidad." + +#: wp-admin/contribute.php:110 +msgid "Shape the future of the web with WordPress" +msgstr "Da forma al futuro de la web con WordPress" + +#: wp-admin/contribute.php:103 +msgid "WordPress app: Kotlin, Java, Swift, Objective-C, Vue, Python, and TypeScript." +msgstr "Aplicación WordPress: Kotlin, Java, Swift, Objective-C, Vue, Python y TypeScript" + +#: wp-admin/contribute.php:102 +msgid "WordPress Core and Block Editor: HTML, CSS, PHP, SQL, JavaScript, and React." +msgstr "Núcleo y editor de bloques: HTML, CSS, PHP, SQL, JavaScript y React" + +#: wp-admin/contribute.php:100 +msgid "WordPress embraces new technologies, while being committed to backward compatibility. The WordPress project uses the following languages and libraries:" +msgstr "WordPress adopta nuevas tecnologías, al tiempo que se compromete con la compatibilidad con versiones anteriores. El proyecto WordPress utiliza los siguientes lenguajes y bibliotecas:" + +#: wp-admin/contribute.php:98 +msgid "Contribute to the code, improve the UX, and test the WordPress app." +msgstr "Contribuye al código, mejora la experiencia de los usuarios, y prueba la aplicación WordPress." + +#: wp-admin/contribute.php:97 +msgid "Write and submit patches to fix bugs or help build new features." +msgstr "Escribe y envía parches para corregir fallos, o ayuda a crear nuevas características." + +#: wp-admin/contribute.php:96 +msgid "Test new releases and proposed features for the Block Editor." +msgstr "Prueba las nuevas versiones y características propuestas para el editor de bloques." + +#: wp-admin/contribute.php:95 +msgid "Find and report bugs in the WordPress core software." +msgstr "Encuentra e informa de fallos en el software del núcleo de WordPress." + +#: wp-admin/contribute.php:93 +msgid "If you do code, or want to learn how, you can contribute technically in numerous ways:" +msgstr "Si programas, o quieres aprender a hacerlo, puedes contribuir técnicamente de múltiples maneras:" + +#: wp-admin/contribute.php:92 +msgid "Code-based contribution" +msgstr "Contribución basada en código" + +#: wp-admin/contribute.php:80 +msgid "Explore ways to reduce the environmental impact of websites." +msgstr "Ve formas de reducir el impacto medioambiental de millones de webs." + +#: wp-admin/contribute.php:79 +msgid "Edit videos and add captions to WordPress.tv." +msgstr "Edita vídeos y añade subtítulos a WordPress.tv." + +#: wp-admin/contribute.php:78 +msgid "Lend your creative imagination to the WordPress UI design." +msgstr "Presta tu creatividad al diseño de la interfaz de WordPress." + +#: wp-admin/contribute.php:77 +msgid "Organize or participate in local Meetups and WordCamps." +msgstr "Organiza o participa en meetups locales de WordPress y WordCamps." + +#: wp-admin/contribute.php:76 +msgid "Curate submissions or take photos for the Photo Directory." +msgstr "Selecciona envíos o haz fotos para el directorio de fotos de WordPress." + +#: wp-admin/contribute.php:75 +msgid "Promote the WordPress project to your community." +msgstr "Promociona el proyecto WordPress en tu comunidad." + +#: wp-admin/contribute.php:74 +msgid "Create and improve WordPress educational materials." +msgstr "Crea y mejora materiales educacionales sobre WordPress." + +#: wp-admin/contribute.php:73 +msgid "Translate WordPress into your local language." +msgstr "Traduce WordPress a tu idioma local." + +#: wp-admin/contribute.php:72 +msgid "Write or improve documentation for WordPress." +msgstr "Escribe o mejora la documentación de WordPress." + +#: wp-admin/contribute.php:71 +msgid "Share your knowledge in the WordPress support forums." +msgstr "Comparte tu conocimiento en los foros de soporte de WordPress." + +#: wp-admin/contribute.php:69 +msgid "WordPress may thrive on technical contributions, but you don’t have to code to contribute. Here are some of the ways you can make an impact without writing a single line of code:" +msgstr "WordPress se nutre de contribuciones técnicas, pero no es necesario programar para contribuir. Estas son algunas de las formas en las que puedes influir sin escribir una sola línea de código:" + +#: wp-admin/contribute.php:68 +msgid "No-code contribution" +msgstr "Contribuciones sin código" + +#: wp-admin/contribute.php:61 +msgid "Grow your network and make friends." +msgstr "Amplía tu red de contactos y haz amigos." + +#: wp-admin/contribute.php:60 +msgid "Apply your skills or learn new ones." +msgstr "Aplica tus habilidades o aprende otras nuevas." + +#: wp-admin/contribute.php:59 +msgid "Be part of a global open source community." +msgstr "Forma parte de una comunidad global de código abierto." + +#: wp-admin/contribute.php:56 +msgid "Join the diverse WordPress contributor community and connect with other people who are passionate about maintaining a free and open web." +msgstr "Únete a la comunidad de colaboradores de WordPress y conéctate con otras personas apasionadas por mantener una web libre y abierta." + +#: wp-admin/contribute.php:55 +msgid "Do you use WordPress for work, for personal projects, or even just for fun? You can help shape the long-term success of the open source project that powers millions of websites around the world." +msgstr "¿Utilizas WordPress para trabajar, para proyectos personales o simplemente por diversión? Puedes contribuir al éxito a largo plazo del proyecto de código abierto que mueve millones de webs en todo el mundo." + +#: wp-admin/contribute.php:38 +msgid "Be the future of WordPress" +msgstr "Sé parte del futuro de WordPress" + +#. translators: 1: Learn WordPress link, 2: Workshops link. +#: wp-admin/about.php:196 +msgid "Learn WordPress is a free resource for new and experienced WordPress users. Learn is stocked with how-to videos on using various features in WordPress, interactive workshops for exploring topics in-depth, and lesson plans for diving deep into specific areas of WordPress." +msgstr "Aprende WordPress es un recurso gratuito para usuarios nuevos y experimentados de WordPress. Está repleto de vídeos sobre cómo utilizar las distintas características de WordPress, eventos interactivos para explorar temáticas en profundidad, y planes de lecciones para sumergirse en áreas específicas de WordPress." + +#: wp-admin/comment.php:73 wp-admin/edit-comments.php:232 +#: wp-admin/edit-form-advanced.php:313 wp-admin/edit-form-advanced.php:331 +#: wp-admin/edit-form-advanced.php:349 wp-admin/edit-link-form.php:77 +#: wp-admin/edit-tags.php:315 wp-admin/edit.php:302 wp-admin/edit.php:327 +#: wp-admin/erase-personal-data.php:66 wp-admin/export-personal-data.php:66 +#: wp-admin/export.php:60 wp-admin/import.php:33 +#: wp-admin/includes/class-custom-background.php:111 +#: wp-admin/includes/class-custom-image-header.php:146 wp-admin/index.php:133 +#: wp-admin/link-manager.php:80 wp-admin/media-new.php:62 +#: wp-admin/my-sites.php:53 wp-admin/nav-menus.php:774 +#: wp-admin/options-discussion.php:33 wp-admin/options-general.php:61 +#: wp-admin/options-media.php:42 wp-admin/options-permalink.php:67 +#: wp-admin/options-reading.php:54 wp-admin/options-writing.php:54 +#: wp-admin/plugin-editor.php:159 wp-admin/plugin-install.php:122 +#: wp-admin/plugins.php:622 wp-admin/revision.php:159 +#: wp-admin/theme-editor.php:56 wp-admin/theme-install.php:157 +#: wp-admin/themes.php:210 wp-admin/tools.php:57 wp-admin/update-core.php:1055 +#: wp-admin/upload.php:201 wp-admin/upload.php:403 wp-admin/user-edit.php:79 +#: wp-admin/user-new.php:316 wp-admin/users.php:84 wp-admin/widgets-form.php:72 +#: wp-admin/network.php:83 wp-admin/network/settings.php:65 +#: wp-admin/network/themes.php:340 wp-admin/network/upgrade.php:38 +msgid "Support forums" +msgstr "Foros de soporte" + +#: wp-admin/widgets-form.php:71 +msgid "Documentation on Widgets" +msgstr "Documentación sobre widgets" + +#: wp-admin/users.php:63 +msgid "View takes you to a public author archive which lists all the posts published by the user." +msgstr "Ver te lleva aun archivo público del autor que muestra todas las entradas publicadas por el usuario." + +#: wp-admin/upload.php:387 +msgid "Download file downloads the original media file to your device." +msgstr "Descargar archivo descarga el archivo de medios original a tu dispositivo." + +#: wp-admin/site-editor.php:121 +msgctxt "site editor title tag" +msgid "Editor" +msgstr "Editor" + +#: wp-admin/plugins.php:602 wp-admin/themes.php:202 +#: wp-admin/update-core.php:1030 wp-admin/network/themes.php:333 +msgid "Documentation on Auto-updates" +msgstr "Documentación sobre actualizaciones automáticas" + +#: wp-admin/options-general.php:550 +msgid "Documentation on date and time formatting." +msgstr "Documentación sobre el formato de fecha y hora." + +#: wp-admin/options-general.php:46 wp-admin/network/settings.php:56 +msgid "You can set the language, and WordPress will automatically download and install the translation files (available if your filesystem is writable)." +msgstr "Puedes configurar el idioma y WordPress descargará e instalará automáticamente los archivos de traducción (disponible si tu sistema de archivos tiene permisos de escritura)." + +#: wp-admin/options-general.php:43 +msgid "If you want site visitors to be able to register themselves, check the membership box. If you want the site administrator to register every new user, leave the box unchecked. In either case, you can set a default user role for all new users." +msgstr "Si quieres que los visitantes del sitio puedan registrarse ellos mismos, marca la casilla de membresía. Si quieres que el administrador del sitio registre cada usuario nuevo, déjala desmarcada. En cualquier caso, puedes poner un perfil de usuario por defecto para todos los usuarios nuevos." + +#. translators: 1: http://, 2: https: +#: wp-admin/options-general.php:39 +msgid "Both WordPress URL and site URL can start with either %1$s or %2$s. A URL starting with %2$s requires an SSL certificate, so be sure that you have one before changing to %2$s. With %2$s, a padlock will appear next to the address in the browser address bar. Both %2$s and the padlock signal that your site meets some basic security requirements, which can build trust with your visitors and with search engines." +msgstr "Tanto la URL de WordPress como la URL del sitio pueden empezar con %1$s o %2$s. Una URL que empiece con %2$s requiere un certificado SSL, así que asegúrate de tener uno antes de cambiar a %2$s. Con %2$s aparecerá un candado junto a la dirección en la barra de direcciones del navegador. Tanto el %2$s como el candado señalan que tu sitio reúne algunos requisitos básicos de seguridad, que pueden generar confianza en tus visitantes y en los motores de búsqueda." + +#. translators: %s: Documentation URL. +#: wp-admin/options-general.php:34 +msgid "Though the terms refer to two different concepts, in practice, they can be the same address or different. For example, you can have the core WordPress installation files in the root directory (https://example.com), in which case the two URLs would be the same. Or the WordPress files can be in a subdirectory (https://example.com/wordpress). In that case, the WordPress URL and the site URL would be different." +msgstr "Aunque los términos se refieren a distintos conceptos, en la práctica pueden ser la misma dirección o distintas. Por ejemplo, puedes tener los archivos de instalación del núcleo de WordPress en el directorio raíz (https://example.com), en cuyo caso las dos URLs serían las mismas. O los archivos de WordPress pueden estar en un subdirectorio (https://example.com/wordpress). En ese caso la URL de WordPress y la URL del sitio serían distintas." + +#: wp-admin/options-general.php:31 +msgid "Two terms you will want to know are the WordPress URL and the site URL. The WordPress URL is where the core WordPress installation files are, and the site URL is the address a visitor uses in the browser to go to your site." +msgstr "Dos términos que querrás conocer son los de URL de WordPress y URL del sitio. La URL de WordPress es dónde está los archivos de instalación del núcleo de WordPress, y la URL del sitio es la dirección que un visitante utiliza en el navegador para ir a tu sitio." + +#: wp-admin/options-discussion.php:280 +msgid "RoboHash (Generated)" +msgstr "RoboHash (generado)" + +#: wp-admin/menu.php:228 +msgctxt "site editor menu item" +msgid "Editor" +msgstr "Editor" + +#. translators: %s: Documentation URL. +#: wp-admin/includes/meta-boxes.php:856 +msgid "Allow trackbacks and pingbacks" +msgstr "Permitir trackbacks y pingbacks" + +#: wp-admin/includes/meta-boxes.php:833 +msgid "https://wordpress.org/documentation/article/assign-custom-fields/" +msgstr "https://wordpress.org/documentation/article/assign-custom-fields/" + +#: wp-admin/includes/meta-boxes.php:758 +msgid "https://wordpress.org/documentation/article/what-is-an-excerpt-classic-editor/" +msgstr "https://wordpress.org/documentation/article/what-is-an-excerpt-classic-editor/" + +#. translators: %s: The function name. +#: wp-admin/includes/file.php:2789 +msgid "%s expects a non-empty string." +msgstr "%s espera una cadena no vacía." + +#: wp-admin/includes/file.php:2108 +msgid "The destination directory already exists and could not be removed." +msgstr "El directorio de destino ya existe y no se pudo eliminar." + +#: wp-admin/includes/file.php:2105 +msgid "The destination folder already exists." +msgstr "La carpeta de destino ya existe." + +#: wp-admin/includes/file.php:2100 +msgid "The source and destination are the same." +msgstr "El origen y el destino son los mismos." + +#: wp-admin/includes/class-wp-screen.php:1121 +msgid "Expand or collapse the elements by clicking on their headings, and arrange them by dragging their headings or by clicking on the up and down arrows." +msgstr "Expande o cierra los elementos haciendo clic en sus encabezados, y ordénalos arrastrando sus encabezados o haciendo clic en las flechas de arriba y abajo." + +#. translators: %s: Attachment title. +#: wp-admin/includes/class-wp-media-list-table.php:847 +msgid "Download “%s”" +msgstr "Descargar «%s»" + +#. translators: %s: The "$dir" argument. +#: wp-admin/includes/class-wp-automatic-updater.php:83 +msgid "The \"%s\" argument must be a non-empty string." +msgstr "El argumento «%s» es una cadena que no debe estar vacía." + +#: wp-admin/edit-form-advanced.php:312 +msgid "Documentation on Writing and Editing Posts" +msgstr "Documentación sobre escribir y editar entradas" + +#: wp-admin/edit-comments.php:231 wp-admin/user-edit.php:364 +msgid "Documentation on Keyboard Shortcuts" +msgstr "Documentación sobre los atajos de teclado" + +#: wp-admin/edit-comments.php:230 +msgid "Documentation on Comment Spam" +msgstr "Documentación sobre el spam en comentarios" + +#: wp-admin/customize.php:257 +msgid "Documentation on Customizer" +msgstr "Documentación sobre el personalizador" + +#. translators: The localized WordPress download URL. +#: wp-admin/about.php:336 +msgid "https://wordpress.org/download/" +msgstr "https://es.wordpress.org/download/" + +#. translators: %s: The major version of WordPress for this branch. +#: wp-admin/about.php:333 +msgid "This is the final release of WordPress %s" +msgstr "Esta es la versión final de WordPress %s" + +#: wp-admin/includes/theme.php:342 +msgid "Site Editor" +msgstr "Editor del sitio" + +#: wp-admin/users.php:66 +msgid "Send password reset sends the user an email with a link to set a new password." +msgstr "El envío de restablecimiento de contraseña envía al usuario un correo electrónico con un enlace desde el que establecer una nueva contraseña." + +#: wp-admin/user-edit.php:879 +msgid "https://developer.wordpress.org/apis/wp-config-php/#wp-environment-type" +msgstr "https://developer.wordpress.org/apis/wp-config-php/#wp-environment-type" + +#: wp-admin/upload.php:386 +msgid "Copy URL copies the URL for the media file to your clipboard." +msgstr "Copiar la URL copia la URL del archivo de medios a tu portapapeles." + +#: wp-admin/upload.php:385 +msgid "View will take you to a public display page for that file." +msgstr "La opción de ver te llevará a una página de visualización pública de ese archivo." + +#: wp-admin/upload.php:384 +msgid "Delete Permanently will delete the file from the media library (as well as from any posts to which it is currently attached)." +msgstr "Al borrar permanentemente se borrará el archivo de la biblioteca de medios (así como de cualquier entrada a la que esté adjunto)." + +#: wp-admin/upload.php:383 +msgid "Edit takes you to a simple screen to edit that individual file’s metadata. You can also reach that screen by clicking on the media file name or thumbnail." +msgstr "La opción de editar te lleva a una sencilla pantalla en la que editar los metadatos de ese archivo individual. También puedes llegar a esa pantalla haciendo clic en el nombre o miniatura del archivo de medios." + +#: wp-admin/upload.php:381 +msgid "Hovering over a row reveals action links that allow you to manage media items. You can perform the following actions:" +msgstr "Al pasar el cursor por encima de una fila, aparecen enlaces de acción que permiten gestionar los elementos de medios. Puedes realizar las siguientes acciones:" + +#: wp-admin/theme-install.php:213 +msgctxt "themes" +msgid "Block Themes" +msgstr "Temas de bloques" + +#: wp-admin/theme-install.php:156 +msgid "Documentation on Block Themes" +msgstr "Documentación sobre temas de bloques" + +#: wp-admin/theme-install.php:148 +msgid "Block themes" +msgstr "Temas de bloques" + +#: wp-admin/theme-install.php:143 +msgid "With a block theme, you can place and edit blocks without affecting your content by customizing or creating new templates." +msgstr "Con un tema de bloques, puedes colocar y editar bloques sin afectar al contenido, personalizando o creando nuevas plantillas." + +#: wp-admin/theme-install.php:142 +msgid "A block theme is a theme that uses blocks for all parts of a site including navigation menus, header, content, and site footer. These themes are built for the features that allow you to edit and customize all parts of your site." +msgstr "Un tema de bloques es un tema que utiliza bloques para todas las partes de un sitio, incluyendo los menús de navegación, la cabecera, el contenido y el pie de página del sitio. Estos temas están creados para aprovechar las características que te permiten editar y personalizar todas las partes del sitio." + +#: wp-admin/site-health.php:277 +msgid "Recommended items are considered beneficial to your site, although not as important to prioritize as a critical issue. They may include improvements in areas such as security, performance, and user experience." +msgstr "Los elementos recomendados se consideran beneficiosos para tu sitio, aunque no son tan importantes como para darles prioridad como si fueran un problema crítico. Pueden incluir mejoras de seguridad, rendimiento y experiencia de usuario." + +#: wp-admin/site-health.php:264 +msgid "Critical issues are items that may have a high impact on your site’s performance or security. Resolving these issues should be prioritized." +msgstr "Los problemas críticos son elementos que podrían tener un gran impacto en el rendimiento o seguridad de tu sitio. Debería ser prioritario solucionar estos problemas." + +#. translators: %s: wp-config.php +#: wp-admin/setup-config.php:441 +msgid "Configuration rules for %s:" +msgstr "Reglas de configuración para %s:" + +#. translators: Hidden accessibility text. +#: wp-admin/options-permalink.php:366 +msgid "Customize permalink structure by selecting available tags" +msgstr "Personaliza la estructura de enlaces permanentes seleccionando las etiquetas disponibles" + +#. translators: %s: %postname% +#: wp-admin/options-permalink.php:322 +msgid "Select the permalink structure for your website. Including the %s tag makes links easy to understand, and can help your posts rank higher in search engines." +msgstr "Elige la estructura de enlaces permanentes de tu web. Incluir la etiqueta %s hace que los enlaces sean más fáciles de comprender, y puede ayudar a que tus entradas posicionen mejor en los motores de búsqueda." + +#. translators: %s: Permalink structure tag. +#: wp-admin/options-permalink.php:313 +msgid "%s removed from permalink structure" +msgstr "%s eliminada de la estructura de enlaces permanentes" + +#. translators: %s: Number of critical Site Health checks. +#: wp-admin/menu.php:392 +msgid "Site Health %s" +msgstr "Salud del sitio %s" + +#: wp-admin/includes/file.php:24 +msgid "Theme Styles & Block Settings" +msgstr "Ajustes de bloques y estilos del tema" + +#. translators: %s: The minimum recommended PHP version. +#: wp-admin/includes/class-wp-site-health.php:771 +#: wp-admin/includes/dashboard.php:1909 +msgid "The minimum recommended version of PHP is %s." +msgstr "La versión mínima recomendada de PHP es la %s." + +#: wp-admin/includes/class-wp-site-health.php:742 +#: wp-admin/includes/dashboard.php:1904 +msgid "PHP is one of the programming languages used to build WordPress. Newer versions of PHP receive regular security updates and may increase your site’s performance." +msgstr "PHP es uno de los lenguajes de programación utilizados para crear WordPress. Las versiones más recientes de PHP reciben actualizaciones de seguridad frecuentes y pueden mejorar el rendimiento de tu sitio." + +#. translators: %s: The server PHP version. +#: wp-admin/includes/dashboard.php:1889 +msgid "Your site is running on an outdated version of PHP (%s), which soon will not be supported by WordPress. Ensure that PHP is updated on your server as soon as possible. Otherwise you will not be able to upgrade WordPress." +msgstr "Tu sitio está ejecutando una versión obsoleta de PHP (%s), que pronto no será admitida por WordPress. Asegúrate de que PHP esté actualizado en tu servidor tan pronto como sea posible. En caso contrario no podrás actualizar WordPress." + +#. translators: %s: The server PHP version. +#: wp-admin/includes/dashboard.php:1876 +msgid "Your site is running on an outdated version of PHP (%s), which does not receive security updates and soon will not be supported by WordPress. Ensure that PHP is updated on your server as soon as possible. Otherwise you will not be able to upgrade WordPress." +msgstr "Tu sitio está ejecutando una versión obsoleta de PHP (%s), que no recibirá actualizaciones de seguridad y pronto no será admitida por WordPress. Asegúrate de que PHP esté actualizado en tu servidor tan pronto como sea posible. En caso contrario no podrás actualizar WordPress." + +#: wp-admin/includes/class-wp-site-health.php:2899 +msgid "Persistent object cache" +msgstr "Caché de objetos persistente" + +#: wp-admin/includes/class-wp-site-health.php:2892 +msgid "Page cache" +msgstr "Caché de página" + +#: wp-admin/includes/class-wp-site-health.php:2596 +msgid "You should use a persistent object cache" +msgstr "Deberías utilizar una caché de objetos persistente" + +#. translators: Available object caching services. +#: wp-admin/includes/class-wp-site-health.php:2575 +msgid "Your host appears to support the following object caching services: %s." +msgstr "Tu alojamiento parece que es compatible con los siguientes servicios de caché de objetos: %s." + +#: wp-admin/includes/class-wp-site-health.php:2570 +msgid "Your hosting provider can tell you if a persistent object cache can be enabled on your site." +msgstr "Tu proveedor de alojamiento puede decirte si la caché de objetos persistente puede activarse en tu sitio." + +#: wp-admin/includes/class-wp-site-health.php:2563 +msgid "A persistent object cache is not required" +msgstr "No es necesaria una caché de objetos persistente" + +#: wp-admin/includes/class-wp-site-health.php:2552 +msgid "Learn more about persistent object caching." +msgstr "Aprende más acerca de la caché de objetos persistente." + +#: wp-admin/includes/class-wp-site-health.php:2547 +msgid "A persistent object cache makes your site’s database more efficient, resulting in faster load times because WordPress can retrieve your site’s content and settings much more quickly." +msgstr "Una caché de objetos persistente hace que la base de datos de tu sitio sea más eficiente, lo que da como resultado tiempos de carga más rápidos porque WordPress puede recuperar el contenido y los ajustes de tu sitio mucho más rápidamente." + +#: wp-admin/includes/class-wp-site-health.php:2544 +msgid "A persistent object cache is being used" +msgstr "Se está utilizando una caché de objetos persistente" + +#: wp-admin/includes/class-wp-site-health.php:2509 +msgid "A page cache plugin was not detected." +msgstr "No se ha detectado un plugin de caché de página." + +#: wp-admin/includes/class-wp-site-health.php:2506 +msgid "A page cache plugin was detected." +msgstr "Se ha detectado un plugin de caché de página." + +#. translators: %d: Number of caching headers. +#: wp-admin/includes/class-wp-site-health.php:2493 +msgid "There was %d client caching response header detected:" +msgid_plural "There were %d client caching response headers detected:" +msgstr[0] "Se ha detectado %d cabecera de respuesta en caché del cliente:" +msgstr[1] "Se han detectado %d cabeceras de respuesta en caché del cliente:" + +#: wp-admin/includes/class-wp-site-health.php:2488 +msgid "No client caching response headers were detected." +msgstr "No se han detectado cabeceras de respuesta de la caché del cliente." + +#. translators: 1: The response time in milliseconds, 2: The recommended +#. threshold in milliseconds. +#: wp-admin/includes/class-wp-site-health.php:2481 +msgid "Median server response time was %1$s milliseconds. It should be less than the recommended %2$s milliseconds threshold." +msgstr "El tiempo medio de respuesta del servidor fue de %1$s milisegundos. Debería ser inferior al umbral recomendado de %2$s milisegundos." + +#. translators: 1: The response time in milliseconds, 2: The recommended +#. threshold in milliseconds. +#: wp-admin/includes/class-wp-site-health.php:2474 +msgid "Median server response time was %1$s milliseconds. This is less than the recommended %2$s milliseconds threshold." +msgstr "El tiempo medio de respuesta del servidor fue de %1$s milisegundos. Esto es menos que el umbral recomendado de %2$s milisegundos." + +#: wp-admin/includes/class-wp-site-health.php:2467 +msgid "Server response time could not be determined. Verify that loopback requests are working." +msgstr "No se ha podido determinar el tiempo de respuesta del servidor. Comprueba que las solicitudes de bucle de retorno funcionan." + +#: wp-admin/includes/class-wp-site-health.php:2460 +msgid "Page cache is detected but the server response time is still slow" +msgstr "Se ha detectado caché de página pero el tiempo de respuesta del servidor es todavía lento" + +#: wp-admin/includes/class-wp-site-health.php:2458 +msgid "Page cache is not detected and the server response time is slow" +msgstr "No se ha detectado caché de página y el tiempo de respuesta del servidor es lento" + +#: wp-admin/includes/class-wp-site-health.php:2454 +msgid "Page cache is detected and the server response time is good" +msgstr "Se ha detectado caché de página y el tiempo de respuesta del servidor es bueno" + +#: wp-admin/includes/class-wp-site-health.php:2451 +msgid "Page cache is not detected but the server response time is OK" +msgstr "No se ha detectado caché de página pero el tiempo de respuesta del servidor está bien" + +#. translators: 1: Error message, 2: Error code. +#: wp-admin/includes/class-wp-site-health.php:2439 +msgid "Unable to detect page cache due to possible loopback request problem. Please verify that the loopback request test is passing. Error: %1$s (Code: %2$s)" +msgstr "No se puede detectar el almacenamiento en caché de página debido a un posible problema de solicitud de bucle de retorno. Por favor, verifica que la prueba de solicitud de bucle de retorno es correcta. Error: %1$s (Código: %2$s)" + +#: wp-admin/includes/class-wp-site-health.php:2435 +msgid "Unable to detect the presence of page cache" +msgstr "No se puede detectar la presencia de la caché de página" + +#: wp-admin/includes/class-wp-site-health.php:2426 +msgid "Learn more about page cache" +msgstr "Aprende más sobre la caché de página" + +#: wp-admin/includes/class-wp-site-health.php:2411 +msgid "Page cache is detected by looking for an active page cache plugin as well as making three requests to the homepage and looking for one or more of the following HTTP client caching response headers:" +msgstr "El almacenamiento en caché de página se detecta buscando un plugin de almacenamiento en caché de la página activo, así como realizando tres peticiones a la página principal y buscando una o más de las siguientes cabeceras de respuesta de almacenamiento en caché del cliente HTTP:" + +#: wp-admin/includes/class-wp-site-health.php:2410 +msgid "Page cache enhances the speed and performance of your site by saving and serving static pages instead of calling for a page every time a user visits." +msgstr "El almacenamiento en caché de página mejora la velocidad y el rendimiento de tu sitio al guardar y servir páginas estáticas en lugar de llamar a una página cada vez que un usuario la visita." + +#: wp-admin/includes/class-wp-site-health.php:2376 +msgid "If you are still seeing this warning after having tried the actions below, you may need to contact your hosting provider for further assistance." +msgstr "Si aún estás viendo esta advertencia después de haber probado las acciones de abajo puede que tengas que contactar con tu proveedor de alojamiento para recibir más ayuda." + +#: wp-admin/includes/class-wp-site-health.php:2359 +msgid "The Authorization header is used by third-party applications you have approved for this site. Without this header, those apps cannot connect to your site." +msgstr "La cabecera de autorización la utilizan aplicaciones de terceros que has aprobado en este sitio. Sin esta cabecera esas aplicaciones no se pueden conectar con tu sitio." + +#: wp-admin/includes/class-wp-site-health.php:2215 +msgid "When testing the REST API, an unexpected result was returned:" +msgstr "Al probar la API REST devolvió un resultado inesperado:" + +#. translators: 1: The WordPress error code. 2: The WordPress error message. +#. translators: 1: The WordPress error code. 2: The HTTP status code error +#. message. +#: wp-admin/includes/class-wp-site-health.php:2203 +#: wp-admin/includes/class-wp-site-health.php:2223 +msgid "REST API Response: (%1$s) %2$s" +msgstr "Respuesta de la API REST: (%1$s) %2$s" + +#. translators: %s: The REST API URL. +#: wp-admin/includes/class-wp-site-health.php:2198 +#: wp-admin/includes/class-wp-site-health.php:2218 +msgid "REST API Endpoint: %s" +msgstr "Variable de la API REST: %s" + +#: wp-admin/includes/class-wp-site-health.php:2195 +msgid "When testing the REST API, an error was encountered:" +msgstr "Al probar la API REST se encontró un error:" + +#. translators: %s: The server PHP version. +#: wp-admin/includes/class-wp-site-health.php:841 +#: wp-admin/includes/dashboard.php:1882 +msgid "Your site is running on an outdated version of PHP (%s), which does not receive security updates. It should be updated." +msgstr "Tu sitio está ejecutando en una versión obsoleta de PHP (%s), que no recibe actualizaciones de seguridad. Deberías actualizarla." + +#. translators: %s: The server PHP version. +#: wp-admin/includes/class-wp-site-health.php:834 +msgid "Your site is running on an outdated version of PHP (%s), which does not receive security updates and soon will not be supported by WordPress." +msgstr "Tu sitio está ejecutando una versión obsoleta de PHP (%s), que no recibirá actualizaciones de seguridad y pronto no será compatible con WordPress." + +#: wp-admin/includes/class-wp-site-health.php:813 +msgid "Requirements" +msgstr "Requisitos" + +#. translators: %s: The server PHP version. +#: wp-admin/includes/class-wp-site-health.php:808 +msgid "Your site is running on an outdated version of PHP (%s), which soon will not be supported by WordPress." +msgstr "Tu sitio está ejecutando una versión obsoleta de PHP (%s), que pronto no será compatible con WordPress." + +#: wp-admin/includes/class-wp-site-health.php:609 +msgid "Your site does not have any installed themes." +msgstr "Tu sitio no tiene ningún tema instalado." + +#: wp-admin/includes/class-wp-site-health.php:441 +msgid "Your site does not have any active plugins." +msgstr "Tu sitio no tiene ningún plugin activo." + +#: wp-admin/includes/class-wp-site-health-auto-updates.php:197 +msgid "Another attempt will be made with the next release." +msgstr "Se realizará otro intento en la siguiente versión." + +#. translators: 1: Name of the constant used. 2: Value of the constant used. +#: wp-admin/includes/class-wp-site-health-auto-updates.php:79 +msgid "The %1$s constant is defined as %2$s" +msgstr "La constante %1$s está definida como %2$s" + +#. translators: %1$s: The argument name. %2$s: The view name. +#: wp-admin/includes/class-wp-list-table.php:454 +#: wp-admin/includes/class-wp-list-table.php:469 +msgid "The %1$s argument must be a non-empty string for %2$s." +msgstr "El argumento %1$s debe ser una cadena que no esté vacía para %2$s." + +#. translators: %s: The $link_data argument. +#: wp-admin/includes/class-wp-list-table.php:437 +msgid "The %s argument must be an array." +msgstr "El argumento %s debe ser un array." + +#. translators: 1: Plugin name, 2: Version number, 3: Plugin URL. +#: wp-admin/includes/class-wp-automatic-updater.php:1372 +#: wp-admin/includes/class-wp-automatic-updater.php:1444 +msgid "- %1$s version %2$s%3$s" +msgstr "- %1$s versión %2$s%3$s" + +#. translators: 1: Plugin name, 2: Current version number, 3: New version +#. number, 4: Plugin URL. +#: wp-admin/includes/class-wp-automatic-updater.php:1363 +#: wp-admin/includes/class-wp-automatic-updater.php:1435 +msgid "- %1$s (from version %2$s to %3$s)%4$s" +msgstr "- %1$s (desde la versión %2$s a la %3$s)%4$s" + +#: wp-admin/includes/class-wp-automatic-updater.php:1069 +msgid "Reach out to WordPress Core developers to ensure you'll never have this problem again." +msgstr "Contacta con nuestros desarrolladores del núcleo de WordPress para asegurar que nunca vuelvas a tener este problema." + +#. translators: 1: WordPress version number, 2: Link to update WordPress +#: wp-admin/about.php:330 +msgid "Important! Your version of WordPress (%1$s) will stop receiving security updates in the near future. To keep your site secure, please update to the latest version of WordPress." +msgstr "¡Importante! Tu versión de WordPress (%1$s) dejará de recibir actualizaciones en un futuro próximo. Para mantener seguro tu sitio, por favor, actualiza a la última versión de WordPress." + +#. translators: 1: WordPress version number, 2: Link to update WordPress +#: wp-admin/about.php:327 +msgid "Important! Your version of WordPress (%1$s) is no longer supported, you will not receive any security updates for your website. To keep your site secure, please update to the latest version of WordPress." +msgstr "¡Importante! Tu versión de WordPress (%1$s) ya no recibe soporte, y no recibirá ninguna actualización de seguridad para tu web. Para mantener seguro tu sitio, por favor, actualiza a la última versión de WordPress." + +#. translators: %s: WordPress version number. +#: wp-admin/about.php:27 +msgid "https://make.wordpress.org/core/wordpress-%s-field-guide/" +msgstr "https://make.wordpress.org/core/wordpress-%s-field-guide/" + +#. translators: %s: Version number. +#: wp-admin/about.php:187 +msgid "Learn more about WordPress %s" +msgstr "Aprende más sobre WordPress %s" + +#: wp-admin/includes/ajax-actions.php:1359 +#: wp-admin/includes/ajax-actions.php:1476 +msgid "Please type your comment text." +msgstr "Por favor, escribe el texto de tu comentario." + +#: wp-admin/users.php:463 wp-admin/users.php:495 +msgid "You cannot remove users." +msgstr "No puedes eliminar usuarios." + +#. translators: 1: URL to my-sites.php, 2: Number of sites the user has. +#: wp-admin/user-edit.php:813 +msgid "Application passwords grant access to the %2$s site on the network as you have Super Admin rights." +msgid_plural "Application passwords grant access to all %2$s sites on the network as you have Super Admin rights." +msgstr[0] "Las contraseñas de aplicación otorgan acceso a %2$s sitio en la red, ya que tienes permisos de superadministrador." +msgstr[1] "Las contraseñas de aplicación otorgan acceso a %2$s sitios en la red, ya que tienes permisos de superadministrador." + +#: wp-admin/upgrade.php:160 +msgid "WordPress has been updated! Next and final step is to update your database to the newest version." +msgstr "¡WordPress ha sido actualizado! El siguiente, y último paso, es actualizar tu base de datos a la última versión." + +#: wp-admin/themes.php:208 +msgid "Documentation on Managing Themes" +msgstr "Documentación sobre gestión de temas" + +#. translators: %s: wp-config.php +#: wp-admin/setup-config.php:182 +msgid "This information is being used to create a %s file." +msgstr "Esta información está siendo usada para crear un archivo %s." + +#: wp-admin/setup-config.php:170 +msgid "Welcome to WordPress. Before getting started, you will need to know the following items." +msgstr "Te damos la bienvenida a WordPress. Antes de empezar, tendrás que conocer los siguientes elementos." + +#: wp-admin/options.php:359 +msgid "Settings save failed." +msgstr "Ha fallado el guardado de los ajustes." + +#: wp-admin/options-privacy.php:201 +msgid "After your Privacy Policy page is set, you should edit it." +msgstr "Después de establecer tu página de política de privacidad, deberías editarla." + +#. translators: 1: .htaccess, 2: Documentation URL, 3: Ctrl + A, 4: ⌘ + A +#: wp-admin/options-permalink.php:530 +msgid "Error: Your %1$s file is not writable, so updating it automatically was not possible. These are the mod_rewrite rules you should have in your %1$s file. Click in the field and press %3$s (or %4$s on Mac) to select all." +msgstr "Error: Tu archivo %1$s no tiene permisos de escritura, así que no ha sido posible actualizarlo automáticamente. Estas son las reglas de `mod_rewrite` que deberías tener en tu archivo %1$s. Haz clic en el campo y pulsa %3$s (o %4$s en Mac) para seleccionar todo." + +#. translators: 1: web.config, 2: Documentation URL, 3: Ctrl + A, 4: ⌘ + A, +#. 5: Element code. +#: wp-admin/options-permalink.php:462 +msgid "Error: Your %1$s file is not writable, so updating it automatically was not possible. This is the URL rewrite rule you should have in your %1$s file. Click in the field and press %3$s (or %4$s on Mac) to select all. Then insert this rule inside of the %5$s element in %1$s file." +msgstr "Error: Tu archivo %1$s no tiene permisos de escritura, así que no ha sido posible actualizarlo automáticamente. Esta es la regla de reescritura de la URL que deberías tener en tu archivo %1$s. Haz clic en el campo y pulsa %3$s (o %4$s en Mac) para seleccionar todo. Después, inserta esta regla dentro del elemento %5$s en el archivo %1$s." + +#: wp-admin/options-discussion.php:216 +msgid "An avatar is an image that can be associated with a user across multiple websites. In this area, you can choose to display avatars of users who interact with the site." +msgstr "Un avatar es una imagen que puede asociarse con un usuario en múltiples webs. En esta área puedes elegir mostrar los avatares de los usuarios que interactúen con el sitio." + +#: wp-admin/includes/post.php:1600 +msgid "Change Permalink Structure" +msgstr "Cambiar la estructura de enlaces permanentes" + +#. translators: Do not translate USERNAME, ADMIN_URL, EMAIL, SITENAME, SITEURL: +#. those are placeholders. +#: wp-admin/includes/misc.php:1459 +msgid "" +"Howdy,\n" +"\n" +"A site administrator (###USERNAME###) recently requested to have the\n" +"administration email address changed on this site:\n" +"###SITEURL###\n" +"\n" +"To confirm this change, please click on the following link:\n" +"###ADMIN_URL###\n" +"\n" +"You can safely ignore and delete this email if you do not want to\n" +"take this action.\n" +"\n" +"This email has been sent to ###EMAIL###\n" +"\n" +"Regards,\n" +"All at ###SITENAME###\n" +"###SITEURL###" +msgstr "" +"Hola, \n" +"\n" +"Un administrador del sitio (###USERNAME###) ha solicitado recientemente el cambio\n" +"de la dirección de correo electrónico de administración de este sitio:\n" +"###SITEURL###\n" +"\n" +"Para confirmar este cambio, por favor, haz clic en el siguiente enlace:\n" +"###ADMIN_URL###\n" +"\n" +"Puedes ignorar y borrar con seguridad este correo electrónico si no quieres\n" +"realizar esta acción.\n" +"\n" +"Este correo electrónico ha sido enviado a ###EMAIL###\n" +"\n" +"Saludos,\n" +"El equipo de ###SITENAME###\n" +"###SITEURL###" + +#. translators: Default privacy policy heading. +#: wp-admin/includes/class-wp-privacy-policy-content.php:598 +msgid "Where your data is sent" +msgstr "Dónde se envían tus datos" + +#. translators: %s: Attachment title. +#: wp-admin/includes/class-wp-media-list-table.php:835 +msgid "Copy “%s” URL to clipboard" +msgstr "Copiar la URL de «%s» al portapapeles" + +#: wp-admin/includes/class-wp-automatic-updater.php:1084 +msgid "Some data that describes the error your site encountered has been put together." +msgstr "Se han reunido algunos datos que describen el error que ha encontrado tu sitio." + +#: wp-admin/includes/class-wp-automatic-updater.php:1018 +msgid "An attempt was made, but your site could not be updated automatically." +msgstr "Se ha hecho un intento, pero tu sitio no se ha podido actualizar automáticamente." + +#: wp-admin/includes/class-core-upgrader.php:166 +#: wp-admin/includes/class-wp-upgrader.php:206 +#: wp-admin/includes/update-core.php:1109 +msgid "The update cannot be installed because some files could not be copied. This is usually due to inconsistent file permissions." +msgstr "No se ha podido instalar la actualización porque algunos archivos no se ha podido copiar. Esto suele ser debido a permisos de archivo inconsistentes." + +#: wp-admin/export-personal-data.php:42 +msgid "Media — A list of URLs for media files the user uploads." +msgstr "Medios — Una lista de URL de los archivos multimedia que sube el usuario." + +#: wp-admin/export-personal-data.php:39 +msgid "Community Events Location — The IP Address of the user, which populates the Upcoming Community Events dashboard widget with relevant information." +msgstr "Ubicación de los eventos de la comunidad — La dirección IP del usuario que rellena con información relevante el widget de escritorio de los próximos eventos de la comunidad." + +#: wp-admin/export-personal-data.php:37 +msgid "WordPress collects (but never publishes) a limited amount of data from registered users who have logged in to the site. Generally, these users are people who contribute to the site in some way -- content, store management, and so on. With rare exceptions, these users do not include occasional visitors who might have registered to comment on articles or buy products. The data WordPress retains can include:" +msgstr "WordPress recopila (pero nunca publica) una cantidad limitada de datos de los usuarios registrados que se han conectado al sitio. Generalmente, estos usuarios son personas que contribuyen al sitio de alguna forma: contenido, gestión de la tienda, etc. Salvo raras excepciones, estos usuarios no incluyen a los visitantes ocasionales que pueden haberse registrado para comentar artículos o comprar productos. Los datos que WordPress mantiene pueden incluir:" + +#: wp-admin/export-personal-data.php:28 +msgid "Note: Since this tool only gathers data from WordPress and participating plugins, you may need to do more to comply with export requests. For example, you should also send the requester some of the data collected from or stored with the 3rd party services your organization uses." +msgstr "Nota: Dado que esta herramienta solo recopila datos de WordPress y de los plugins incluidos, puede que tengas que hacer algo más para cumplir con las solicitudes de exportación. Por ejemplo, también deberías enviar al solicitante algunos de los datos recogidos o almacenados por los servicios de terceros que usa tu organización." + +#: wp-admin/export-personal-data.php:26 +msgid "Privacy Laws around the world require businesses and online services to provide an export of some of the data they collect about an individual, and to deliver that export on request. The rights those laws enshrine are sometimes called the \"Right of Data Portability\". It allows individuals to obtain and reuse their personal data for their own purposes across different services. It allows them to move, copy or transfer personal data easily from one IT environment to another." +msgstr "Las leyes de privacidad de todo el mundo obligan a los negocios y servicios online que proporcionen alguna forma de exportar algunos de los datos que recopilan sobre un individuo y que envíen esa exportación si así se solicita. Los derechos que esas leyes consagran algunas veces son denominados «Derecho a la portabilidad de datos». Este derecho permite a individuos obtener y reutilizar sus datos personales para sus propios fines en diferentes servicios. Les permite mover, copiar o transferir los datos fácilmente de un entorno de tecnología de la información a otro." + +#: wp-admin/erase-personal-data.php:41 +msgid "Comments — WordPress does not delete comments. The software does anonymize (but, again, never publishes) the associated Email Address, IP Address, and User Agent (Browser/OS)." +msgstr "Comentarios — WordPress no borra los comentarios. El software anonimiza (pero, de nuevo, nunca publica) la dirección de correo electrónico, dirección IP y agente de usuario (navegador/SO) asociados." + +#: wp-admin/erase-personal-data.php:37 +msgid "WordPress collects (but never publishes) a limited amount of data from logged-in users but then deletes it or anonymizes it. That data can include:" +msgstr "WordPress recopila (pero nunca publica) una cantidad limitada de datos de los usuarios conectados, pero luego los borra o los anonimiza. Estos datos pueden incluir: " + +#: wp-admin/erase-personal-data.php:28 +msgid "Note: As this tool only gathers data from WordPress and participating plugins, you may need to do more to comply with erasure requests. For example, you are also responsible for ensuring that data collected by or stored with the 3rd party services your organization uses gets deleted." +msgstr "Nota: Como esta herramienta solo recoge datos de WordPress y de los plugins incluidos, puede que tengas que hacer algo más para cumplir con las solicitudes de borrado. Por ejemplo, también eres responsable de asegurar que sean borrados los datos recopilados o almacenados por los servicios de terceros que usa tu organización." + +#: wp-admin/erase-personal-data.php:26 +msgid "Privacy Laws around the world require businesses and online services to delete, anonymize, or forget the data they collect about an individual. The rights those laws enshrine are sometimes called the \"Right to be Forgotten\"." +msgstr "Las leyes de privacidad de todo el mundo obligan a los negocios y servicios online a borrar, anonimizar u olvidar los datos que recopilan sobre un individuo. Los derechos que esas leyes consagran algunas veces son denominados «Derecho al olvido»." + +#: wp-admin/erase-personal-data.php:25 +msgid "This screen is where you manage requests to erase personal data." +msgstr "En esta pantalla es donde gestionas las solicitudes para el borrado de datos personales." + +#: wp-admin/edit-form-advanced.php:462 +msgid "This post is being backed up in your browser, just in case." +msgstr "Esta entrada se está guardando en tu navegador, por si acaso." + +#. translators: 1: URL to my-sites.php, 2: Number of sites the user has. +#: wp-admin/authorize-application.php:185 +msgid "This will grant access to the %2$s site on the network as you have Super Admin rights." +msgid_plural "This will grant access to all %2$s sites on the network as you have Super Admin rights." +msgstr[0] "Esto otorgará acceso a %2$s sitio de la red, ya que tienes permisos de superadministrador." +msgstr[1] "Esto otorgará acceso a %2$s sitios de la red, ya que tienes permisos de superadministrador." + +#: wp-admin/includes/dashboard.php:2126 +msgid "Learn about block themes" +msgstr "Aprende sobre los temas de bloques" + +#: wp-admin/includes/dashboard.php:2125 +msgid "There is a new kind of WordPress theme, called a block theme, that lets you build the site you’ve always wanted — with blocks and styles." +msgstr "Hay un nuevo tipo de tema para WordPress, llamado tema de bloques, que te permite crear el sitio que siempre has querido — Con bloques y estilos." + +#: wp-admin/includes/dashboard.php:2124 +msgid "Discover a new way to build your site." +msgstr "Descubre una nueva forma de construir tu sitio." + +#: wp-admin/includes/dashboard.php:2122 +msgid "Edit styles" +msgstr "Editar los estilos" + +#: wp-admin/includes/dashboard.php:2121 +msgid "Tweak your site, or give it a whole new look! Get creative — how about a new color palette or font?" +msgstr "¡Retoca tu sitio o dale un aspecto completamente nuevo! Sé creativo — ¿Qué tal una nueva paleta de color o una nueva fuente?" + +#: wp-admin/includes/dashboard.php:2120 +msgid "Switch up your site’s look & feel with Styles" +msgstr "Cambia la apariencia de tu sitio con los estilos" + +#: wp-admin/includes/dashboard.php:2108 +msgid "Open the Customizer" +msgstr "Abrir el personalizador" + +#: wp-admin/includes/dashboard.php:2106 +msgid "Configure your site’s logo, header, menus, and more in the Customizer." +msgstr "Configura en el personalizador el logotipo de tu sitio, la cabecera, los menús y más." + +#: wp-admin/includes/dashboard.php:2105 +msgid "Start Customizing" +msgstr "Empezar a personalizar" + +#: wp-admin/includes/dashboard.php:2103 +msgid "Open site editor" +msgstr "Abrir el editor del sitio" + +#: wp-admin/includes/dashboard.php:2102 +msgid "Design everything on your site — from the header down to the footer, all using blocks and patterns." +msgstr "Diseña todo en tu sitio — Desde la cabecera hasta el pie de página. Todo usando bloques y patrones." + +#: wp-admin/includes/dashboard.php:2101 +msgid "Customize your entire site with block themes" +msgstr "Personaliza todo tu sitio con temas de bloques" + +#: wp-admin/includes/dashboard.php:2091 +msgid "Add a new page" +msgstr "Añadir una nueva página" + +#: wp-admin/includes/dashboard.php:2090 +msgid "Block patterns are pre-configured block layouts. Use them to get inspired or create new pages in a flash." +msgstr "Los patrones de bloques son diseños de bloques preconfigurados. Úsalos para inspirarte o crear nuevas páginas en un instante." + +#: wp-admin/includes/dashboard.php:2089 +msgid "Author rich content with blocks and patterns" +msgstr "Crea contenido rico con bloques y patrones" + +#. translators: %s: Current WordPress version. +#: wp-admin/includes/dashboard.php:2077 +msgid "Learn more about the %s version." +msgstr "Aprende más sobre la versión %s." + +#: wp-admin/freedoms.php:44 +msgid "WordPress is free and open source software" +msgstr "WordPress es un software gratuito y de código abierto" + +#: wp-admin/menu.php:300 wp-admin/menu.php:301 wp-admin/menu.php:330 +#: wp-admin/network/menu.php:112 +msgid "Plugin File Editor" +msgstr "Editor de archivos de plugins" + +#: wp-admin/menu.php:280 wp-admin/menu.php:281 wp-admin/network/menu.php:87 +msgid "Theme File Editor" +msgstr "Editor de archivos de temas" + +#. translators: %s: Documentation URL. +#: wp-admin/user-edit.php:878 +msgid "If this is a development website, you can set the environment type accordingly to enable application passwords." +msgstr "Si se trata de un sitio web de desarrollo, puedes establecer el tipo de entorno correspondiente para activar las contraseñas de las aplicaciones." + +#: wp-admin/user-edit.php:873 +msgid "The application password feature requires HTTPS, which is not enabled on this site." +msgstr "La característica de contraseña de aplicación necesita HTTPS, que no está activo en este sitio." + +#. translators: Last update time format. See +#. https://www.php.net/manual/datetime.format.php +#: wp-admin/update-core.php:1115 +msgid "g:i a T" +msgstr "H:i T" + +#: wp-admin/theme-editor.php:53 +msgid "Documentation on Editing Themes" +msgstr "Documentación sobre edición de temas" + +#: wp-admin/site-health.php:90 +msgid "Documentation on Site Health tool" +msgstr "Documentación sobre la herramienta de la salud del sitio" + +#: wp-admin/site-health.php:84 +msgid "In the Info tab, you will find all the details about the configuration of your WordPress site, server, and database. There is also an export feature that allows you to copy all of the information about your site to the clipboard, to help solve problems on your site when obtaining support." +msgstr "En la pestaña de información, encontrarás todos los detalles sobre la configuración de tu sitio WordPress, del servidor y de la base de datos. También hay una característica de exportación que te permite copiar al portapapeles toda la información sobre tu sitio para ayudar a resolver los problemas en tu sitio al obtener soporte." + +#: wp-admin/site-health.php:83 +msgid "In the Status tab, you can see critical information about your WordPress configuration, along with anything else that requires your attention." +msgstr "En la pestaña de estado, puedes ver información crítica sobre la configuración de tu WordPress, junto con cualquier otra cosa que necesite tu atención." + +#: wp-admin/site-health.php:82 +msgid "This screen allows you to obtain a health diagnosis of your site, and displays an overall rating of the status of your installation." +msgstr "Esta pantalla te permite obtener un diagnóstico de la salud de tu sitio y muestra una valoración general del estado de tu instalación." + +#: wp-admin/options-privacy.php:47 +msgid "Documentation on Privacy Settings" +msgstr "Documentación los ajustes de privacidad" + +#: wp-admin/options-privacy.php:41 +msgid "This screen includes suggestions to help you write your own privacy policy. However, it is your responsibility to use these resources correctly, to provide the information required by your privacy policy, and to keep this information current and accurate." +msgstr "Esta pantalla incluye sugerencias para ayudarte a escribir tu propia política de privacidad. Sin embargo, es tu responsabilidad usar correctamente estos recursos, proporcionar la información requerida por tu política de privacidad y mantener esta información actualizada y precisa." + +#: wp-admin/options-privacy.php:40 +msgid "The Privacy screen lets you either build a new privacy-policy page or choose one you already have to show." +msgstr "La pantalla de privacidad te permite crear una nueva página de política de privacidad o elegir una que ya tengas para mostrarla." + +#: wp-admin/options-discussion.php:62 +msgid "Individual posts may override these settings. Changes here will only be applied to new posts." +msgstr "Las entradas individuales pueden anular estos ajustes. Los cambios hechos aquí solo se aplicarán a las nuevas entradas." + +#: wp-admin/nav-menus.php:597 +msgid "Menu item moved to the top" +msgstr "Elemento del menú movido a la parte superior" + +#: wp-admin/nav-menus.php:594 +msgid "Menu item removed" +msgstr "Elemento del menú eliminado" + +#: wp-admin/index.php:37 +msgid "The Dashboard is the first place you will come to every time you log into your site. It is where you will find all your WordPress tools. If you need help, just click the “Help” tab above the screen title." +msgstr "El escritorio es el primer lugar al que llegarás cada vez que accedas a tu sitio. Es donde encontrarás todas tus herramientas de WordPress. Si necesitas ayuda, simplemente haz clic en la pestaña «Ayuda» que está encima del título de la pantalla." + +#: wp-admin/index.php:36 +msgid "Welcome to your WordPress Dashboard!" +msgstr "¡Este es tu escritorio de WordPress!" + +#: wp-admin/includes/user.php:680 +msgid "The application ID must be a UUID." +msgstr "El ID de la aplicación debe ser un UUID." + +#: wp-admin/includes/dashboard.php:1382 +msgid "Select location" +msgstr "Seleccionar la ubicación" + +#. translators: %s: Plugin name. +#: wp-admin/includes/class-wp-plugins-list-table.php:1203 +msgid "Visit plugin site for %s" +msgstr "Visita el sitio del plugin %s" + +#: wp-admin/includes/class-wp-plugins-list-table.php:859 +#: wp-admin/includes/class-wp-plugins-list-table.php:965 +msgctxt "plugin" +msgid "Cannot Activate" +msgstr "No se ha podido activar" + +#: wp-admin/includes/class-wp-debug-data.php:1677 +msgid "Max connections number" +msgstr "Número máximo de conexiones" + +#: wp-admin/includes/class-wp-debug-data.php:1673 +msgid "Max allowed packet size" +msgstr "Tamaño máximo permitido del paquete" + +#: wp-admin/authorize-application.php:94 +msgid "Your website appears to use Basic Authentication, which is not currently compatible with application passwords." +msgstr "Parece que tu web usa la identificación básica, que actualmente no es compatible con las contraseñas de aplicación." + +#. translators: Editor admin screen title. 1: "Edit item" text for the post +#. type, 2: Post title. +#: wp-admin/admin-header.php:65 +msgid "%1$s “%2$s”" +msgstr "%1$s «%2$s»" + +#: wp-admin/includes/theme.php:347 +msgid "Template Editing" +msgstr "Edición de plantillas" + +#. translators: %s: https://wordpress.org/about/license +#: wp-admin/freedoms.php:61 +msgid "WordPress comes with some awesome, worldview-changing rights courtesy of its license, the GPL." +msgstr "WordPress viene con algunos extraordinarios derechos que cambian la visión del mundo, cortesía de su licencia, la GPL." + +#: wp-admin/credits.php:72 +msgid "Want to see your name in lights on this page?" +msgstr "¿Quieres ver tu nombre destacado en esta página?" + +#: wp-admin/credits.php:66 wp-admin/credits.php:74 +msgid "Get involved in WordPress." +msgstr "Involúcrate en WordPress." + +#. translators: 1: https://wordpress.org/about +#: wp-admin/credits.php:61 +msgid "WordPress is created by a worldwide team of passionate individuals." +msgstr "WordPress está creado por un equipo internacional de personas apasionadas." + +#. translators: %s: Name of deactivated plugin. +#: wp-admin/includes/plugin.php:2669 +msgid "%s plugin deactivated during WordPress upgrade." +msgstr "El plugin %s se ha desactivado durante la actualización de WordPress." + +#. translators: 1: Name of deactivated plugin, 2: Plugin version deactivated, +#. 3: Current WP version. +#: wp-admin/includes/plugin.php:2657 +msgid "%1$s %2$s was deactivated due to incompatibility with WordPress %3$s." +msgstr "%1$s %2$s se ha desactivado porque no es compatible con WordPress %3$s." + +#. translators: 1: Name of deactivated plugin, 2: Plugin version deactivated, +#. 3: Current WP version, 4: Compatible plugin version. +#: wp-admin/includes/plugin.php:2648 +msgid "%1$s %2$s was deactivated due to incompatibility with WordPress %3$s, please upgrade to %1$s %4$s or later." +msgstr "%1$s %2$s se ha desactivado porque no es compatible con WordPress %3$s. Por favor, actualiza a %1$s %4$s o superior." + +#: wp-admin/freedoms.php:39 +msgid "The Four Freedoms" +msgstr "Las cuatro libertades" + +#. translators: %s: Theme name. +#: wp-admin/themes.php:1305 +#: wp-admin/includes/class-wp-ms-themes-list-table.php:641 +msgctxt "theme" +msgid "Delete %s" +msgstr "Borrar %s" + +#. translators: %s: Theme name. +#: wp-admin/themes.php:631 wp-admin/themes.php:650 wp-admin/themes.php:1022 +#: wp-admin/themes.php:1039 wp-admin/themes.php:1264 wp-admin/themes.php:1284 +msgctxt "theme" +msgid "Live Preview %s" +msgstr "Vista previa en directo de %s" + +#. translators: %s: Theme name. +#: wp-admin/themes.php:610 wp-admin/themes.php:1002 +msgctxt "theme" +msgid "Customize %s" +msgstr "Personalizar %s" + +#. translators: %s: Theme name. +#: wp-admin/themes.php:584 wp-admin/themes.php:976 +msgctxt "theme" +msgid "View Theme Details for %s" +msgstr "Ver los detalles del tema %s" + +#. translators: Hidden accessibility text. +#: wp-admin/site-health.php:176 +msgid "Toggle extra menu items" +msgstr "Activar elementos adicionales del menú" + +#. translators: %s: The currently displayed tab. +#: wp-admin/site-health.php:43 +msgid "Site Health - %s" +msgstr "Salud del sitio - %s" + +#. translators: 1: wp-config.php, 2: Documentation URL. +#: wp-admin/setup-config.php:485 +msgid "You need to make the file %1$s writable before you can save your changes. See Changing File Permissions for more information." +msgstr "Tienes que añadir permisos de escritura al archivo %1$s antes de poder guardar tus cambios. Mira cómo cambiar los permisos de archivo para más información." + +#: wp-admin/options-permalink.php:474 wp-admin/options-permalink.php:506 +#: wp-admin/options-permalink.php:541 +msgid "Rewrite rules:" +msgstr "Reglas de reescritura:" + +#: wp-admin/nav-menus.php:1166 +msgid "List of menu items selected for deletion:" +msgstr "Lista de elementos del menú seleccionados para su borrado:" + +#: wp-admin/nav-menus.php:1164 +msgid "Remove Selected Items" +msgstr "Eliminar los elementos seleccionados" + +#: wp-admin/nav-menus.php:1128 wp-admin/nav-menus.php:1162 +msgid "Bulk Select" +msgstr "Selección por lotes" + +#. translators: %s: Item name. +#: wp-admin/nav-menus.php:592 +msgid "Deleted menu item: %s." +msgstr "Elemento del menú borrado: %s." + +#. translators: %s: Item name. +#: wp-admin/nav-menus.php:590 +msgid "item %s" +msgstr "elemento %s" + +#. translators: %s: Number of available theme updates. +#: wp-admin/menu.php:225 wp-admin/network/menu.php:68 +msgid "Themes %s" +msgstr "Temas %s" + +#. translators: %s: Error message. +#: wp-admin/includes/privacy-tools.php:419 +msgid "Unable to encode the personal data for export. Error: %s" +msgstr "No ha sido posible cifrar los datos personales a exportar. Error: %s" + +#. translators: %s: Post meta key. +#: wp-admin/includes/privacy-tools.php:404 +msgid "The %s post meta must be an array." +msgstr "La meta de entrada %s debe ser un array." + +#: wp-admin/includes/dashboard.php:2018 +msgid "Your site’s health is looking good, but there is still one thing you can do to improve its performance and security." +msgstr "La salud de tu sitio está bien, pero aún hay una cosa que puedes hacer para mejorar su rendimiento y seguridad." + +#: wp-admin/includes/dashboard.php:2014 +msgid "Your site has a critical issue that should be addressed as soon as possible to improve its performance and security." +msgstr "Tu sitio tiene un problema crítico que debería solucionarse lo antes posible para mejorar su rendimiento y seguridad." + +#. translators: %s: Browse Happy URL. +#: wp-admin/includes/dashboard.php:1753 +msgid "Learn how to browse happy" +msgstr "Aprende cómo navegar feliz" + +#: wp-admin/includes/dashboard.php:1720 +msgid "Internet Explorer does not give you the best WordPress experience. Switch to Microsoft Edge, or another more modern browser to get the most from your site." +msgstr "Internet Explorer no te ofrece la mejor experiencia con WordPress. Cambia a Microsoft Edge u otro navegador más moderno para sacar el máximo partido de tu sitio." + +#: wp-admin/includes/class-wp-debug-data.php:739 +msgid "GD supported file formats" +msgstr "Formatos de archivo compatibles con GD" + +#: wp-admin/includes/class-wp-debug-data.php:680 +msgid "Unable to determine" +msgstr "Imposible de determinar" + +#: wp-admin/includes/class-wp-debug-data.php:679 +msgid "ImageMagick supported file formats" +msgstr "Formatos de archivo compatibles con ImageMagick" + +#: wp-admin/includes/class-wp-debug-data.php:598 +msgid "Imagick version" +msgstr "Versión de Imagick" + +#: wp-admin/includes/class-theme-installer-skin.php:264 +msgctxt "theme" +msgid "Uploaded" +msgstr "Subido" + +#: wp-admin/includes/class-plugin-installer-skin.php:319 +msgctxt "plugin" +msgid "Replace current with uploaded" +msgstr "Reemplazar el actual con el subido" + +#: wp-admin/includes/class-plugin-installer-skin.php:231 +msgctxt "plugin" +msgid "Uploaded" +msgstr "Subido" + +#: wp-admin/includes/class-plugin-installer-skin.php:230 +msgctxt "plugin" +msgid "Current" +msgstr "Actual" + +#. translators: %s: A link to activate the Link Manager plugin. +#: wp-admin/includes/bookmark.php:371 +msgid "Please activate the Link Manager plugin to use the link manager." +msgstr "Por favor, activa el plugin Link Manager para usar el gestor de enlaces." + +#: wp-admin/options-privacy.php:265 +msgid "Create a new Privacy Policy page" +msgstr "Crear una nueva página de política de privacidad" + +#: wp-admin/export-personal-data.php:132 +msgid "Send personal data export confirmation email." +msgstr "Envía el correo electrónico de confirmación de exportación de datos personales." + +#: wp-admin/export-personal-data.php:108 +msgid "This tool helps site owners comply with local laws and regulations by exporting known data for a given user in a .zip file." +msgstr "Esta herramienta ayuda a los propietarios de los sitios a cumplir con las leyes y normativas locales exportando los datos conocidos de un determinado usuario en un archivo «.zip»." + +#: wp-admin/export-personal-data.php:65 +msgid "Documentation on Export Personal Data" +msgstr "Documentación sobre la exportación de datos personales" + +#: wp-admin/export-personal-data.php:57 +msgid "Many plugins may collect or store personal data either in the WordPress database or remotely. Any Export Personal Data request should include data from plugins as well." +msgstr "Muchos plugins pueden recopilar o almacenar datos personales en la base de datos de WordPress o de forma remota. Cualquier solicitud de exportación de datos personales también debería incluir los datos de los plugins." + +#. translators: %s: URL to Privacy Policy Guide screen. +#: wp-admin/export-personal-data.php:48 +msgid "If you are not sure, check the plugin documentation or contact the plugin author to see if the plugin collects data and if it supports the Data Exporter tool. This information may be available in the Privacy Policy Guide." +msgstr "Si no estás seguro, revisa la documentación del plugin o contacta con el autor del plugin para ver si el plugin recopila datos y si es compatible con la herramienta del exportador de datos. Esta información puede estar disponible en la guía de la política de privacidad." + +#: wp-admin/export-personal-data.php:41 +msgid "Comments — For user comments, Email Address, IP Address, User Agent (Browser/OS), Date/Time, Comment Content, and Content URL." +msgstr "Comentarios — Para comentarios de usuarios, dirección de correo electrónico, dirección IP, agente de usuario (navegador/SO), fecha/hora, contenido del comentario y URL del contenido." + +#: wp-admin/export-personal-data.php:25 +msgid "This screen is where you manage requests for an export of personal data." +msgstr "Esta pantalla es donde gestionas las solicitudes para una exportación de datos personales." + +#: wp-admin/site-health.php:118 +msgid "Site URLs could not be switched to HTTPS." +msgstr "No se han podido cambiar a HTTPS las URL del sitio." + +#: wp-admin/site-health.php:109 +msgid "Site URLs switched to HTTPS." +msgstr "Cambiadas a HTTPS las URL del sitio." + +#: wp-admin/site-health.php:66 +msgid "It looks like HTTPS is not supported for your website at this point." +msgstr "Parece que HTTPS no es compatible con tu web en este momento." + +#: wp-admin/site-health.php:62 +msgid "Sorry, you are not allowed to update this site to HTTPS." +msgstr "Lo siento, no tienes permisos para actualizar este sitio a HTTPS." + +#. translators: %s: Number of users. +#: wp-admin/users.php:662 +msgid "Password reset links sent to %s user." +msgid_plural "Password reset links sent to %s users." +msgstr[0] "Enlace de restablecimiento de contraseña enviado a %s usuario." +msgstr[1] "Enlaces de restablecimiento de contraseña enviados a %s usuarios." + +#: wp-admin/users.php:659 +msgid "Password reset link sent." +msgstr "Enviado el enlace para restablecer la contraseña." + +#. translators: %s: User's display name. +#: wp-admin/user-edit.php:745 +msgid "Send %s a link to reset their password. This will not change their password, nor will it force a change." +msgstr "Envía a %s un enlace para restablecer su contraseña. Esto no cambiará su contraseña ni le forzará a cambiarla." + +#: wp-admin/user-edit.php:738 +msgid "Send Reset Link" +msgstr "Enviar el enlace para restablecer" + +#: wp-admin/privacy-policy-guide.php:95 +msgid "Policies" +msgstr "Políticas" + +#: wp-admin/options-privacy.php:182 wp-admin/privacy-policy-guide.php:65 +msgid "The Privacy Settings require JavaScript." +msgstr "Los ajustes de privacidad necesitan JavaScript." + +#. translators: Tab heading for Site Health Status page. +#: wp-admin/options-privacy.php:172 wp-admin/privacy-policy-guide.php:55 +msgctxt "Privacy Settings" +msgid "Policy Guide" +msgstr "Guía de la política" + +#. translators: Tab heading for Site Health Status page. +#: wp-admin/options-privacy.php:165 wp-admin/privacy-policy-guide.php:48 +msgctxt "Privacy Settings" +msgid "Settings" +msgstr "Ajustes" + +#. translators: %s: WordPress version. +#: wp-admin/update-core.php:82 +msgid "Re-install version %s" +msgstr "Reinstalar la versión %s" + +#. translators: %s: WordPress version. +#: wp-admin/update-core.php:71 +msgid "Update to latest %s nightly" +msgstr "Actualizar a la última versión %s" + +#: wp-admin/erase-personal-data.php:132 +msgid "Send personal data erasure confirmation email." +msgstr "Envía el correo electrónico de confirmación del borrado de los datos personales." + +#: wp-admin/erase-personal-data.php:127 wp-admin/export-personal-data.php:127 +msgid "Confirmation email" +msgstr "Correo electrónico de confirmación" + +#: wp-admin/erase-personal-data.php:108 +msgid "This tool helps site owners comply with local laws and regulations by deleting or anonymizing known data for a given user." +msgstr "Esta herramienta ayuda a los propietarios de los sitios a cumplir con las leyes y normativas locales borrando o anonimizando los datos conocidos de un determinado usuario." + +#: wp-admin/erase-personal-data.php:65 +msgid "Documentation on Erase Personal Data" +msgstr "Documentación sobre el borrado de datos personales" + +#: wp-admin/erase-personal-data.php:57 +msgid "Many plugins may collect or store personal data either in the WordPress database or remotely. Any Erase Personal Data request should delete data from plugins as well." +msgstr "Muchos plugins pueden recopilar o almacenar datos personales en la base de datos de WordPress o de forma remota. Cualquier solicitud de borrado de datos personales también debería borrar los datos de los plugins." + +#: wp-admin/erase-personal-data.php:55 wp-admin/export-personal-data.php:55 +msgid "Plugin Data" +msgstr "Datos del plugin" + +#. translators: %s: URL to Privacy Policy Guide screen. +#: wp-admin/erase-personal-data.php:48 +msgid "If you are not sure, check the plugin documentation or contact the plugin author to see if the plugin collects data and if it supports the Data Eraser tool. This information may be available in the Privacy Policy Guide." +msgstr "Si no estás seguro, revisa la documentación del plugin o contacta con el autor del plugin para ver si el plugin recopila datos y si es compatible con la herramienta de borrado de datos. Esta información puede estar disponible en la guía de la política de privacidad." + +#: wp-admin/erase-personal-data.php:42 +msgid "Media — A list of URLs for all media file uploads made by the user." +msgstr "Medios — Una lista de URL para todas las subidas de archivos de medios realizadas por el usuario." + +#: wp-admin/erase-personal-data.php:40 wp-admin/export-personal-data.php:40 +msgid "Session Tokens — User login information, IP Addresses, Expiration Date, User Agent (Browser/OS), and Last Login." +msgstr "Tokens de sesión — Información de acceso del usuario, direcciones IP, fecha de caducidad, agente de usuario (navegador/SO) y último acceso." + +#: wp-admin/erase-personal-data.php:39 +msgid "Community Events Location — The IP Address of the user which is used for the Upcoming Community Events shown in the dashboard widget." +msgstr "Ubicación de los eventos de la comunidad — La dirección IP del usuario que es usada para los próximos eventos de la comunidad mostrados en el widget del escritorio." + +#: wp-admin/erase-personal-data.php:38 wp-admin/export-personal-data.php:38 +msgid "Profile Information — user email address, username, display name, nickname, first name, last name, description/bio, and registration date." +msgstr "Información del perfil — Dirección de correo electrónico del usuario, nombre de usuario, nombre a mostrar, alias, nombre, apellidos, descripción/biografía y fecha de registro." + +#: wp-admin/erase-personal-data.php:35 wp-admin/export-personal-data.php:35 +msgid "Default Data" +msgstr "Datos por defecto" + +#: wp-admin/erase-personal-data.php:27 wp-admin/export-personal-data.php:27 +msgid "The tool associates data stored in WordPress with a supplied email address, including profile data and comments." +msgstr "La herramienta asocia los datos almacenados en WordPress con una dirección de correo electrónico suministrada, incluyendo los datos del perfil y los comentarios." + +#: wp-admin/includes/dashboard.php:1487 +msgid "https://make.wordpress.org/community/organize-event-landing-page/" +msgstr "https://make.wordpress.org/community/organize-event-landing-page/" + +#. translators: %s: Localized meetup organization documentation URL. +#: wp-admin/includes/dashboard.php:1486 +msgid "Want more events? Help organize the next one!" +msgstr "¿Quieres más eventos? ¡Ayuda a organizar el próximo!" + +#. translators: %s: User's display name. +#: wp-admin/includes/ajax-actions.php:5633 +msgid "A password reset link was emailed to %s." +msgstr "Se ha enviado un enlace para restablecer la contraseña a %s." + +#: wp-admin/includes/ajax-actions.php:5623 +msgid "Cannot send password reset, permission denied." +msgstr "No se ha podido enviar el restablecimiento de la contraseña. Permiso denegado." + +#. translators: 1: post_max_size, 2: upload_max_filesize +#: wp-admin/includes/class-wp-site-health.php:2319 +msgid "The setting for %1$s is currently configured as 0, this could cause some problems when trying to upload files through plugin or theme features that rely on various upload methods. It is recommended to configure this setting to a fixed value, ideally matching the value of %2$s, as some upload methods read the value 0 as either unlimited, or disabled." +msgstr "Actualmente, el ajuste para %1$s está configurado como 0. Esto podría causar algunos problemas al intentar subir archivos a través de las características de plugins o temas que dependen de varios métodos de subida. Se recomienda configurar este ajuste a un valor fijo, idealmente que coincida con el valor de %2$s, ya que algunos métodos de subida leen el valor 0 como ilimitado o desactivado." + +#: wp-admin/includes/class-wp-site-health.php:1587 +#: wp-admin/includes/class-wp-site-health.php:1594 +msgid "Talk to your web host about supporting HTTPS for your website." +msgstr "Habla con tu proveedor de alojamiento web sobre la compatibilidad de HTTPS para tu web." + +#: wp-admin/includes/class-wp-site-health.php:1568 +#: wp-admin/includes/class-wp-site-health.php:1576 +msgid "Update your site to use HTTPS" +msgstr "Actualiza tu sitio para usar HTTPS" + +#. translators: 1: wp-config.php, 2: WP_HOME, 3: WP_SITEURL +#: wp-admin/includes/class-wp-site-health.php:1554 +msgid "However, your WordPress Address is currently controlled by a PHP constant and therefore cannot be updated. You need to edit your %1$s and remove or update the definitions of %2$s and %3$s." +msgstr "Sin embargo, tu dirección de WordPress está actualmente controlada por una constante de PHP y, por tanto, no puede ser actualizada. Tienes que editar tu %1$s y eliminar o actualizar las definiciones de %2$s y %3$s." + +#: wp-admin/includes/class-wp-site-health.php:1546 +msgid "HTTPS is already supported for your website." +msgstr "HTTPS ya es compatible con tu web." + +#. translators: 1: URL to Settings > General > WordPress Address, 2: URL to +#. Settings > General > Site Address. +#: wp-admin/includes/class-wp-site-health.php:1535 +msgid "Your WordPress Address and Site Address are not set up to use HTTPS." +msgstr "Tu dirección de WordPress y la dirección del sitio no están configuradas para usar HTTPS." + +#. translators: 1: URL to Settings > General > WordPress Address, 2: URL to +#. Settings > General > Site Address. +#: wp-admin/includes/class-wp-site-health.php:1525 +msgid "You are accessing this website using HTTPS, but your WordPress Address and Site Address are not set up to use HTTPS by default." +msgstr "Estás accediendo a esta web usando HTTPS, pero tu dirección de WordPress y la dirección del sitio no están configuradas por defecto para usar HTTPS." + +#. translators: %s: URL to Settings > General > Site Address. +#: wp-admin/includes/class-wp-site-health.php:1514 +msgid "Your Site Address is not set up to use HTTPS." +msgstr "La dirección de tu sitio no está configurada para usar HTTPS." + +#: wp-admin/includes/class-wp-site-health.php:1403 +msgid "Learn more about debugging in WordPress." +msgstr "Aprende más sobre la depuración en WordPress." + +#: wp-admin/includes/revision.php:98 +msgid "Added" +msgstr "Añadido" + +#: wp-admin/includes/class-wp-users-list-table.php:286 +#: wp-admin/includes/class-wp-users-list-table.php:507 +msgid "Send password reset" +msgstr "Enviar el restablecimiento de la contraseña" + +#. translators: Default privacy policy heading. +#: wp-admin/includes/class-wp-privacy-policy-content.php:612 +msgid "Contact information" +msgstr "Información de contacto" + +#: wp-admin/includes/class-wp-privacy-policy-content.php:431 +msgid "Copy suggested policy text to clipboard" +msgstr "Copiar en el portapapeles el texto sugerido de la política" + +#: wp-admin/includes/file.php:2018 +msgid "Directory listing failed." +msgstr "Ha fallado el listado del directorio." + +#: wp-admin/includes/class-wp-plugin-install-list-table.php:104 +#: wp-admin/includes/class-wp-theme-install-list-table.php:61 +#: wp-admin/includes/file.php:33 wp-admin/js/updates.js:3039 +msgid "Search Results" +msgstr "Resultados de la búsqueda" + +#: wp-admin/includes/privacy-tools.php:945 +msgid "Invalid request ID when processing personal data to erase." +msgstr "ID de solicitud no válido al procesar los datos personales para borrar." + +#: wp-admin/includes/privacy-tools.php:794 +msgid "Invalid request ID when merging personal data to export." +msgstr "ID de solicitud no válido al fusionar los datos personales para exportar." + +#: wp-admin/includes/privacy-tools.php:545 +msgid "Unable to archive the personal data export file (HTML format)." +msgstr "No se ha podido archivar el archivo de exportación de datos personales (formato HTML)." + +#: wp-admin/includes/privacy-tools.php:541 +msgid "Unable to archive the personal data export file (JSON format)." +msgstr "No se ha podido archivar el archivo de exportación de datos personales (formato JSON)." + +#: wp-admin/includes/privacy-tools.php:447 +msgid "Unable to open personal data export (HTML report) for writing." +msgstr "No se ha podido abrir la exportación de datos personales (informe HTML) para escribir." + +#: wp-admin/includes/privacy-tools.php:333 +msgid "Unable to create personal data export folder." +msgstr "No se ha podido crear una carpeta de exportación de datos personales." + +#: wp-admin/includes/privacy-tools.php:173 +msgid "Request added successfully." +msgstr "Solicitud añadida correctamente." + +#: wp-admin/includes/privacy-tools.php:107 +#: wp-admin/includes/privacy-tools.php:124 +msgid "Invalid personal data action." +msgstr "Acción de datos personales no válida." + +#: wp-admin/includes/privacy-tools.php:31 +msgid "Unable to initiate confirmation for personal data request." +msgstr "No se ha podido iniciar la confirmación de la solicitud de datos personales." + +#. translators: %s: The server PHP version. +#: wp-admin/includes/dashboard.php:1895 +msgid "Your site is running on an outdated version of PHP (%s), which should be updated." +msgstr "Tu sitio está ejecutando una versión antigua de PHP (%s) y debería ser actualizada." + +#: wp-admin/includes/dashboard.php:52 +msgid "PHP Update Recommended" +msgstr "Actualización recomendada de PHP" + +#: wp-admin/user-edit.php:856 +msgid "Your website appears to use Basic Authentication, which is not currently compatible with Application Passwords." +msgstr "Tu web parece que usa la identificación básica, la cual no es compatible actualmente con las contraseñas de aplicación." + +#: wp-admin/includes/class-wp-site-health.php:2392 +msgid "https://developer.wordpress.org/rest-api/frequently-asked-questions/#why-is-authentication-not-working" +msgstr "https://developer.wordpress.org/rest-api/frequently-asked-questions/#why-is-authentication-not-working" + +#: wp-admin/update-core.php:411 +msgid "This site appears to be under version control. Automatic updates are disabled." +msgstr "Este sitio parece que está bajo control de versiones. Las actualizaciones automáticas están desactivadas." + +#: wp-admin/update-core.php:272 +msgid "You are using a development version of WordPress." +msgstr "Estás usando una versión de desarrollo de WordPress." + +#: wp-admin/update-core.php:78 +msgid "You can update to the latest nightly build manually:" +msgstr "Puedes actualizar manualmente a la última versión beta:" + +#: wp-admin/update-core.php:431 +msgid "Enable automatic updates for all new versions of WordPress." +msgstr "Activar las actualizaciones automáticas de todas las versiones nuevas de WordPress." + +#: wp-admin/update-core.php:420 +msgid "Switch to automatic updates for maintenance and security releases only." +msgstr "Cambiar a actualizaciones automáticas solo para versiones de mantenimiento y seguridad." + +#. translators: Current version of WordPress. +#: wp-admin/update-core.php:1104 +msgid "Current version: %s" +msgstr "Versión actual: %s" + +#: wp-admin/update-core.php:435 +msgid "This site will not receive automatic updates for new versions of WordPress." +msgstr "Este sitio no recibirá actualizaciones automáticas de nuevas versiones de WordPress." + +#: wp-admin/update-core.php:424 +msgid "This site is automatically kept up to date with maintenance and security releases of WordPress only." +msgstr "Este sitio se mantiene al día automáticamente solo con las versiones de mantenimiento y seguridad de WordPress." + +#: wp-admin/update-core.php:413 +msgid "This site is automatically kept up to date with each new version of WordPress." +msgstr "Este sitio se mantiene actualizado automáticamente con cada nueva versión de WordPress." + +#: wp-admin/update-core.php:318 +msgid "WordPress will only receive automatic security and maintenance releases from now on." +msgstr "A partir de ahora WordPress solo recibirá versiones automáticas de seguridad y mantenimiento." + +#: wp-admin/update-core.php:309 +msgid "Automatic updates for all WordPress versions have been enabled. Thank you!" +msgstr "Se han activado las actualizaciones automáticas para todas las versiones de WordPress. ¡Gracias!" + +#: wp-admin/index.php:82 +msgid "Site Health Status — Informs you of any potential issues that should be addressed to improve the performance or security of your website." +msgstr "Estado de la salud del sitio — Te informa de cualquier problema potencial que deba solucionarse para mejorar el rendimiento o la seguridad de tu web." + +#. translators: %s: Application name. +#: wp-admin/authorize-application.php:209 wp-admin/user-edit.php:999 +#: wp-admin/js/auth-app.js:90 +msgid "Your new password for %s is:" +msgstr "Tu nueva contraseña para %s es:" + +#: wp-admin/user-edit.php:851 +msgid "Add Application Password" +msgstr "Añadir nueva contraseña de aplicación" + +#: wp-admin/user-edit.php:837 +msgid "Required to create an Application Password, but not to update the user." +msgstr "Necesario para crear una contraseña de aplicación, pero no para actualizar al usuario." + +#: wp-admin/about.php:271 +msgid "Go to Updates" +msgstr "Ir a las actualizaciones" + +#: wp-admin/user-edit.php:225 +msgid "← Go to Users" +msgstr "← Ir a los usuarios" + +#: wp-admin/revision.php:111 +msgid "← Go to editor" +msgstr "← Ir al editor" + +#: wp-admin/includes/class-plugin-installer-skin.php:145 +#: wp-admin/includes/class-plugin-installer-skin.php:151 +msgid "Go to Plugin Installer" +msgstr "Ir al instalador de plugins" + +#: wp-admin/includes/class-plugin-installer-skin.php:139 +msgid "Go to Importers" +msgstr "Ir a los importadores" + +#: wp-admin/includes/class-theme-installer-skin.php:174 +msgid "Go to Theme Installer" +msgstr "Ir al instalador de temas" + +#: wp-admin/includes/privacy-tools.php:294 +msgid "Go to top" +msgstr "Ir arriba" + +#. translators: %s is the name of the city we couldn't locate. Replace the +#. examples with cities in your locale, but test that they match the expected +#. location before including them. Use endonyms (native locale names) whenever +#. possible. +#: wp-admin/includes/dashboard.php:1444 +msgid "%s could not be located. Please try another nearby city. For example: Kansas City; Springfield; Portland." +msgstr "No hemos podido localizar %s. Por favor, intenta con otra ciudad cercana. Por ejemplo: Madrid; Valencia; Zaragoza." + +#: wp-admin/authorize-application.php:323 +msgid "You will be returned to the WordPress Dashboard, and no changes will be made." +msgstr "Serás devuelto al escritorio de WordPress y no se realizarán cambios." + +#: wp-admin/authorize-application.php:305 +msgid "No, I do not approve of this connection" +msgstr "No, no apruebo esta conexión" + +#: wp-admin/authorize-application.php:298 +msgid "You will be given a password to manually enter into the application in question." +msgstr "Se te dará una contraseña para introducirla manualmente en la aplicación en cuestión." + +#. translators: %s: The URL the user is being redirected to. +#: wp-admin/authorize-application.php:285 +#: wp-admin/authorize-application.php:319 +msgid "You will be sent to %s" +msgstr "Serás enviado a %s" + +#: wp-admin/authorize-application.php:271 +msgid "Yes, I approve of this connection" +msgstr "Sí, apruebo esta conexión" + +#. translators: 1: URL to my-sites.php, 2: Number of sites the user has. +#: wp-admin/authorize-application.php:177 +msgid "This will grant access to the %2$s site in this installation that you have permissions on." +msgid_plural "This will grant access to all %2$s sites in this installation that you have permissions on." +msgstr[0] "Esto otorgará acceso a %2$s sitio en esta instalación en el que tienes permisos." +msgstr[1] "Esto otorgará acceso a los %2$s sitios en esta instalación en los que tienes permisos." + +#: wp-admin/authorize-application.php:164 +msgid "Would you like to give this application access to your account? You should only do this if you trust the application in question." +msgstr "¿Te gustaría dar acceso a tu cuenta a esta aplicación? Solo deberías hacerlo si confías en la aplicación en cuestión." + +#. translators: %s: Application name. +#: wp-admin/authorize-application.php:158 +msgid "Would you like to give the application identifying itself as %s access to your account? You should only do this if you trust the application in question." +msgstr "¿Te gustaría dar acceso a tu cuenta a la aplicación que se identifica a si misma como %s? Solo deberías hacerlo si confías en la aplicación en cuestión." + +#: wp-admin/authorize-application.php:152 +msgid "An application would like to connect to your account." +msgstr "A una aplicación le gustaría conectar con tu cuenta." + +#: wp-admin/authorize-application.php:88 wp-admin/authorize-application.php:95 +#: wp-admin/authorize-application.php:113 +msgid "Cannot Authorize Application" +msgstr "No se puede autorizar la aplicación" + +#: wp-admin/authorize-application.php:87 +msgid "The Authorize Application request is not allowed." +msgstr "La solicitud de autorización de aplicación no está permitida." + +#: wp-admin/authorize-application.php:66 +msgid "Authorize Application" +msgstr "Autorizar aplicación" + +#: wp-admin/authorize-application.php:215 wp-admin/user-edit.php:1008 +#: wp-admin/js/auth-app.js:98 +msgid "Be sure to save this in a safe location. You will not be able to retrieve it." +msgstr "Asegúrate de guardarla en un lugar seguro. No podrás recuperarla." + +#: wp-admin/authorize-application.php:247 wp-admin/user-edit.php:835 +msgid "New Application Password Name" +msgstr "Nombre de la nueva contraseña de la aplicación" + +#. translators: 1: URL to my-sites.php, 2: Number of sites the user has. +#: wp-admin/user-edit.php:805 +msgid "Application passwords grant access to the %2$s site in this installation that you have permissions on." +msgid_plural "Application passwords grant access to all %2$s sites in this installation that you have permissions on." +msgstr[0] "Las contraseñas de aplicación otorgan acceso a %2$s sitio en esta instalación en el que tienes permisos." +msgstr[1] "Las contraseñas de aplicación otorgan acceso a los %2$s sitios en esta instalación en los que tienes permisos." + +#: wp-admin/user-edit.php:793 +msgid "Application passwords allow authentication via non-interactive systems, such as XML-RPC or the REST API, without providing your actual password. Application passwords can be easily revoked. They cannot be used for traditional logins to your website." +msgstr "Las contraseñas de aplicación permiten la identificación a través de sistemas no interactivos, como XML-RPC o la API REST, sin proporcionar tu contraseña real. Las contraseñas de aplicación pueden ser anuladas fácilmente. No se pueden usar para los accesos tradicionales a tu web." + +#: wp-admin/user-edit.php:792 +msgid "Application Passwords" +msgstr "Contraseñas de aplicación" + +#: wp-admin/user-edit.php:716 +msgid "Type the new password again." +msgstr "Escribe la nueva contraseña otra vez." + +#: wp-admin/user-edit.php:692 +msgid "Set New Password" +msgstr "Establecer una nueva contraseña" + +#: wp-admin/user-new.php:617 +msgid "Type the password again." +msgstr "Vuelve a escribir la contraseña." + +#. translators: 1: Installed WordPress version number, 2: URL to WordPress +#. release notes, 3: New WordPress version number, including locale if +#. necessary. +#: wp-admin/update-core.php:142 +msgid "You can update from WordPress %1$s to WordPress %3$s manually:" +msgstr "Puedes actualizar desde WordPress %1$s a WordPress %3$s manualmente:" + +#: wp-admin/includes/class-wp-application-passwords-list-table.php:156 +msgid "Revoke all application passwords" +msgstr "Anular todas las contraseñas de aplicación" + +#. translators: %s: the application password's given name. +#: wp-admin/includes/class-wp-application-passwords-list-table.php:117 +#: wp-admin/includes/class-wp-application-passwords-list-table.php:237 +msgid "Revoke \"%s\"" +msgstr "Anular «%s»" + +#: wp-admin/includes/class-wp-application-passwords-list-table.php:32 +#: wp-admin/includes/class-wp-application-passwords-list-table.php:118 +#: wp-admin/includes/class-wp-application-passwords-list-table.php:238 +msgid "Revoke" +msgstr "Anular" + +#: wp-admin/includes/class-wp-application-passwords-list-table.php:31 +msgid "Last IP" +msgstr "Última IP" + +#: wp-admin/includes/class-wp-application-passwords-list-table.php:30 +msgid "Last Used" +msgstr "Último uso" + +#. translators: 1: The Site Health action that is no longer used by core. 2: +#. The new function that replaces it. +#: wp-admin/includes/ajax-actions.php:5361 +#: wp-admin/includes/ajax-actions.php:5394 +#: wp-admin/includes/ajax-actions.php:5427 +#: wp-admin/includes/ajax-actions.php:5477 +msgid "The Site Health check for %1$s has been replaced with %2$s." +msgstr "La comprobación de la salud del sitio para %1$s ha sido reemplazada con %2$s." + +#: wp-admin/includes/class-wp-privacy-data-removal-requests-list-table.php:139 +msgid "Erase personal data" +msgstr "Borrar los datos personales" + +#. translators: 1: Theme name, 2: Current version number, 3: New version +#. number. +#: wp-admin/includes/class-wp-automatic-updater.php:1395 +#: wp-admin/includes/class-wp-automatic-updater.php:1466 +msgid "- %1$s (from version %2$s to %3$s)" +msgstr "- %1$s (desde la versión %2$s a la %3$s)" + +#: wp-admin/includes/template.php:2445 +msgid "Current Header Video" +msgstr "Vídeo de la cabecera actual" + +#: wp-admin/includes/class-wp-site-health.php:2881 +msgid "Authorization header" +msgstr "Cabecera de autorización" + +#: wp-admin/includes/class-wp-site-health.php:2393 +msgid "Learn how to configure the Authorization header." +msgstr "Aprende cómo configurar la cabecera de autorización." + +#: wp-admin/includes/class-wp-site-health.php:2387 +msgid "Flush permalinks" +msgstr "Purgar los enlaces permanentes " + +#: wp-admin/includes/class-wp-site-health.php:2368 +msgid "The authorization header is invalid" +msgstr "La cabecera de autorización no es válida" + +#: wp-admin/includes/class-wp-site-health.php:2366 +msgid "The authorization header is missing" +msgstr "Falta la cabecera de autorización" + +#: wp-admin/includes/class-wp-site-health.php:2351 +msgid "The Authorization header is working as expected" +msgstr "La cabecera de autorización funciona como se esperaba" + +#: wp-admin/includes/class-wp-screen.php:1120 +msgid "Some screen elements can be shown or hidden by using the checkboxes." +msgstr "Algunos elementos de la pantalla se pueden mostrar u ocultar usando las casillas de verificación." + +#: wp-admin/includes/class-wp-screen.php:1118 +msgid "Screen elements" +msgstr "Elementos de la pantalla" + +#: wp-admin/includes/user.php:751 +msgid "The URL must be served over a secure connection." +msgstr "La URL debe servirse a través de una conexión segura." + +#. translators: Default privacy policy text. +#: wp-admin/includes/class-wp-privacy-policy-content.php:570 +msgid "If you request a password reset, your IP address will be included in the reset email." +msgstr "Si solicitas un restablecimiento de contraseña, tu dirección IP será incluida en el correo electrónico de restablecimiento." + +#. translators: %s: Plugin search term. +#: wp-admin/includes/class-wp-plugins-list-table.php:420 +msgid "No plugins found for: %s." +msgstr "No se han encontrado plugins para: %s." + +#: wp-admin/includes/class-wp-privacy-data-export-requests-list-table.php:92 +#: wp-admin/includes/class-wp-privacy-data-removal-requests-list-table.php:98 +msgid "Complete request" +msgstr "Solicitud completa" + +#. translators: %s: Request email. +#: wp-admin/includes/class-wp-privacy-data-export-requests-list-table.php:88 +#: wp-admin/includes/class-wp-privacy-data-removal-requests-list-table.php:94 +msgid "Mark export request for “%s” as completed." +msgstr "Marcar como completada la solicitud de exportación para «%s»." + +#. translators: %d: Number of requests. +#: wp-admin/includes/class-wp-privacy-requests-table.php:346 +msgid "%d request deleted successfully." +msgid_plural "%d requests deleted successfully." +msgstr[0] "%d solicitud borrada correctamente." +msgstr[1] "%d solicitudes borradas correctamente." + +#. translators: %d: Number of requests. +#: wp-admin/includes/class-wp-privacy-requests-table.php:329 +msgid "%d request failed to delete." +msgid_plural "%d requests failed to delete." +msgstr[0] "Ha fallado el borrado de %d solicitud." +msgstr[1] "Ha fallado el borrado de %d solicitudes." + +#. translators: %d: Number of requests. +#: wp-admin/includes/class-wp-privacy-requests-table.php:303 +msgid "%d request marked as complete." +msgid_plural "%d requests marked as complete." +msgstr[0] "%d solicitud marcada como completa." +msgstr[1] "%d solicitudes marcadas como completas." + +#. translators: %d: Number of requests. +#: wp-admin/includes/class-wp-privacy-requests-table.php:276 +msgid "%d confirmation request re-sent successfully." +msgid_plural "%d confirmation requests re-sent successfully." +msgstr[0] "%d solicitud de confirmación reenviada correctamente." +msgstr[1] "%d solicitudes de confirmación reenviadas correctamente." + +#. translators: %d: Number of requests. +#: wp-admin/includes/class-wp-privacy-requests-table.php:259 +msgid "%d confirmation request failed to resend." +msgid_plural "%d confirmation requests failed to resend." +msgstr[0] "Ha fallado el reenvío de %d solicitud de confirmación." +msgstr[1] "Ha fallado el reenvío de %d solicitudes de confirmación." + +#: wp-admin/includes/class-wp-privacy-requests-table.php:217 +msgid "Mark requests as completed" +msgstr "Marcar las solicitudes como completas" + +#: wp-admin/includes/class-wp-privacy-requests-table.php:46 +msgid "Next steps" +msgstr "Siguientes pasos" + +#: wp-admin/includes/privacy-tools.php:566 +msgid "Unable to open personal data export file (archive) for writing." +msgstr "No se ha podido abrir el archivo de exportación de datos personales del usuario (archivo) para su escritura." + +#: wp-admin/includes/privacy-tools.php:432 +msgid "Unable to open personal data export file (JSON report) for writing." +msgstr "No se ha podido abrir el archivo de exportación de datos personales del usuario (informe JSON) para su escritura." + +#: wp-admin/includes/privacy-tools.php:341 +msgid "Unable to protect personal data export folder from browsing." +msgstr "No se ha podido proteger de la exploración la carpeta de exportación de los datos personales." + +#: wp-admin/includes/privacy-tools.php:325 +msgid "Invalid email address when generating personal data export file." +msgstr "Dirección de correo electrónico no válida al generar el archivo de exportación de datos personales." + +#: wp-admin/includes/privacy-tools.php:319 +msgid "Invalid request ID when generating personal data export file." +msgstr "ID de solicitud no válido al generar el archivo de exportación de datos personales." + +#: wp-admin/includes/privacy-tools.php:312 +msgid "Unable to generate personal data export file. ZipArchive not available." +msgstr "No se ha podido generar el archivo de datos personales. El archivo ZIP no está disponible." + +#. translators: %s: Search query. +#: wp-admin/edit-comments.php:282 wp-admin/edit-tags.php:343 +#: wp-admin/edit.php:429 wp-admin/link-manager.php:111 wp-admin/plugins.php:778 +#: wp-admin/upload.php:431 wp-admin/users.php:797 wp-admin/js/updates.js:3139 +#: wp-admin/network/sites.php:413 wp-admin/network/themes.php:374 +#: wp-admin/network/users.php:300 +msgid "Search results for: %s" +msgstr "Resultados de búsqueda para: %s" + +#: wp-admin/options-reading.php:46 +msgid "Note that even when set to discourage search engines, your site is still visible on the web and not all search engines adhere to this directive." +msgstr "Ten en cuenta que, incluso cuando está establecido que se disuada a los motores de búsqueda, tu sitio sigue siendo visible en la web y no todos los motores de búsqueda se adhieren a esta directiva." + +#: wp-admin/options-reading.php:45 +msgid "You can choose whether or not your site will be crawled by robots, ping services, and spiders. If you want those services to ignore your site, click the checkbox next to “Discourage search engines from indexing this site” and click the Save Changes button at the bottom of the screen." +msgstr "Puedes elegir si tu sitio será rastreado o no por robots, servicios de ping y arañas. Si quieres que esos servicios ignoren tu sitio, marca la casilla de verificación junto a «Pedir a los motores de búsqueda que no indexen este sitio» y haz clic en el botón «Guardar cambios» en la parte inferior de la pantalla." + +#. translators: 1: post_max_size, 2: upload_max_filesize +#: wp-admin/includes/class-wp-site-health.php:2308 +msgid "The \"%1$s\" value is smaller than \"%2$s\"" +msgstr "El valor de «%1$s» es menor que el de «%2$s»" + +#: wp-admin/includes/class-wp-debug-data.php:229 +msgid "Environment type" +msgstr "Tipo de entorno" + +#: wp-admin/plugins.php:597 +msgid "Auto-updates are only available for plugins recognized by WordPress.org, or that include a compatible update system." +msgstr "Las actualizaciones automáticas solo están disponibles para los plugins reconocidos por WordPress.org o que incluyan un sistema de actualización compatible." + +#: wp-admin/includes/theme.php:902 wp-admin/themes.php:1162 +msgid "Update Incompatible" +msgstr "Actualización incompatible" + +#: wp-admin/update-core.php:733 +msgid "This update does not work with your version of WordPress." +msgstr "Esta actualización no funciona con tu versión de WordPress." + +#: wp-admin/update-core.php:699 +msgid "This update does not work with your versions of WordPress and PHP." +msgstr "Esta actualización no funciona con tus versiones de WordPress y PHP." + +#: wp-admin/options-discussion.php:201 +msgid "Disallowed Comment Keys" +msgstr "Palabras rechazadas en comentarios" + +#: wp-admin/includes/class-wp-site-health.php:2830 +msgid "Plugin and theme auto-updates" +msgstr "Actualizaciones automáticas de plugins y temas" + +#: wp-admin/includes/class-wp-site-health.php:3170 +msgid "There appear to be no issues with plugin and theme auto-updates." +msgstr "Parece que no hay problemas con las actualizaciones automáticas de plugins y temas." + +#: wp-admin/includes/class-wp-site-health.php:3164 +msgid "Auto-updates for themes appear to be disabled. This will prevent your site from receiving new versions automatically when available." +msgstr "Las actualizaciones automáticas de temas parecen estar desactivadas. Esto evitará que tu sitio reciba nuevas versiones automáticamente cuando estén disponibles." + +#: wp-admin/includes/class-wp-site-health.php:3159 +msgid "Auto-updates for plugins appear to be disabled. This will prevent your site from receiving new versions automatically when available." +msgstr "Las actualizaciones automáticas de plugins parecen estar desactivadas. Esto evitará que tu sitio reciba nuevas versiones automáticamente cuando estén disponibles." + +#: wp-admin/includes/class-wp-site-health.php:3154 +msgid "Auto-updates for plugins and themes appear to be disabled. This will prevent your site from receiving new versions automatically when available." +msgstr "Las actualizaciones automáticas de plugins y temas parecen estar desactivadas. Esto evitará que tu sitio reciba nuevas versiones automáticamente cuando estén disponibles." + +#: wp-admin/includes/class-wp-site-health.php:3145 +msgid "Auto-updates for plugins and/or themes appear to be disabled, but settings are still set to be displayed. This could cause auto-updates to not work as expected." +msgstr "Las actualizaciones automáticas de plugins y/o de temas parecen estar desactivadas, pero en los ajustes aún están configuradas para mostrarse. Esto podría hacer que las actualizaciones automáticas no funcionen como se esperaba." + +#: wp-admin/includes/class-wp-site-health.php:1825 +msgid "Your site may have problems auto-updating plugins and themes" +msgstr "Tu sitio puede tener problemas para actualizar automáticamente los plugins y temas" + +#: wp-admin/includes/class-wp-site-health.php:1814 +msgid "Plugin and theme auto-updates ensure that the latest versions are always installed." +msgstr "Las actualizaciones automáticas de plugins y temas aseguran que las últimas versiones estén siempre instaladas." + +#: wp-admin/includes/class-wp-site-health.php:1806 +msgid "Plugin and theme auto-updates appear to be configured correctly" +msgstr "Las actualizaciones automáticas de plugins y temas parecen estar configuradas correctamente" + +#. translators: Hidden accessibility text. %s: Theme name. +#. translators: %s: Theme name. +#: wp-admin/includes/class-theme-installer-skin.php:159 +#: wp-admin/includes/class-theme-upgrader-skin.php:115 +#: wp-admin/includes/class-wp-themes-list-table.php:217 +msgctxt "theme" +msgid "Activate “%s”" +msgstr "Activar «%s»" + +#: wp-admin/includes/ajax-actions.php:5567 +msgid "Sorry, you are not allowed to modify plugins." +msgstr "Lo siento, no tienes permisos para modificar plugins." + +#. translators: 1: post_max_size, 2: upload_max_filesize +#: wp-admin/includes/class-wp-site-health.php:2329 +msgid "The setting for %1$s is smaller than %2$s, this could cause some problems when trying to upload files." +msgstr "El ajuste de %1$s es menor que el de %2$s, esto podría causar algunos problemas al intentar subir archivos." + +#. translators: 1: file_uploads, 2: 0 +#: wp-admin/includes/class-wp-site-health.php:2294 +msgid "%1$s is set to %2$s. You won't be able to upload files on your site." +msgstr "%1$s está establecido a %2$s. No podrás subir archivos en tu sitio." + +#. translators: %s: ini_get() +#: wp-admin/includes/class-wp-site-health.php:2282 +msgid "The %s function has been disabled, some media settings are unavailable because of this." +msgstr "La función %s se ha desactivado, algunos ajustes de medios no están disponibles debido a esto." + +#. translators: 1: file_uploads, 2: php.ini +#: wp-admin/includes/class-wp-site-health.php:2269 +msgid "The %1$s directive in %2$s determines if uploading files is allowed on your site." +msgstr "La directiva %1$s en %2$s determina si la subida de archivos está permitida en tu sitio." + +#: wp-admin/includes/class-wp-site-health.php:2259 +msgid "Files can be uploaded" +msgstr "Se pueden subir archivos" + +#: wp-admin/includes/class-wp-debug-data.php:635 +msgid "Max effective file size" +msgstr "Tamaño de archivo efectivo máximo" + +#: wp-admin/includes/class-wp-debug-data.php:631 +msgid "Max size of an uploaded file" +msgstr "Tamaño máximo de un archivo subido" + +#: wp-admin/includes/class-wp-debug-data.php:627 +msgid "Max size of post data allowed" +msgstr "Tamaño máximo de datos de POST permitido" + +#: wp-admin/includes/class-wp-debug-data.php:622 +#: wp-admin/includes/class-wp-site-health.php:2826 +msgid "File uploads" +msgstr "Subidas de archivos" + +#: wp-admin/includes/class-wp-debug-data.php:604 +msgid "File upload settings" +msgstr "Ajustes de subida de archivos" + +#. translators: %s: Theme name. +#: wp-admin/theme-install.php:452 +msgctxt "theme" +msgid "Cannot Install %s" +msgstr "No se ha podido instalar %s" + +#. translators: %s: Plugin name. +#: wp-admin/includes/deprecated.php:1392 +msgctxt "plugin" +msgid "Install %s" +msgstr "Instalar %s" + +#. translators: %s: Theme name. +#: wp-admin/includes/class-wp-theme-install-list-table.php:338 +#: wp-admin/theme-install.php:445 +msgctxt "theme" +msgid "Install %s" +msgstr "Instalar %s" + +#. translators: %s: Theme name. +#: wp-admin/includes/theme.php:268 wp-admin/includes/update.php:758 +msgctxt "theme" +msgid "Update %s now" +msgstr "Actualizar %s ahora" + +#. translators: 1: Theme name, 2: Version number. +#: wp-admin/includes/class-wp-automatic-updater.php:1403 +#: wp-admin/includes/class-wp-automatic-updater.php:1474 +msgid "- %1$s version %2$s" +msgstr "- %1$s versión %2$s" + +#: wp-admin/theme-install.php:413 wp-admin/theme-install.php:492 +msgctxt "theme" +msgid "Activated" +msgstr "Activado" + +#: wp-admin/themes.php:86 +msgid "Sorry, you are not allowed to enable themes automatic updates." +msgstr "Lo siento, no tienes permisos para activar actualizaciones automáticas de temas." + +#: wp-admin/includes/class-plugin-installer-skin.php:217 +msgid "This plugin is already installed." +msgstr "Este plugin ya está instalado." + +#. translators: %s: Plugin name and version. +#. translators: %s: Plugin name. +#: wp-admin/includes/plugin-install.php:969 wp-admin/includes/update.php:566 +#: wp-admin/js/updates.js:2544 +msgctxt "plugin" +msgid "Update %s now" +msgstr "Actualizar %s ahora" + +#. translators: %s: Importer name. +#. translators: %s: Plugin name and version. +#. translators: %s: Plugin name. +#: wp-admin/import.php:165 wp-admin/includes/plugin-install.php:947 +#: wp-admin/js/updates.js:1308 wp-admin/js/updates.js:2553 +#: wp-admin/js/updates.js:2689 +msgctxt "plugin" +msgid "Install %s now" +msgstr "Instalar %s ahora" + +#. translators: Hidden accessibility text. +#: wp-admin/user-edit.php:1013 wp-admin/js/application-passwords.js:203 +#: wp-admin/js/common.js:1109 +msgid "Dismiss this notice." +msgstr "Descartar este aviso." + +#. translators: %s: Theme name. +#: wp-admin/theme-install.php:430 wp-admin/themes.php:641 +#: wp-admin/themes.php:1031 wp-admin/themes.php:1293 +msgctxt "theme" +msgid "Cannot Activate %s" +msgstr "No se ha podido activar %s" + +#: wp-admin/themes.php:335 wp-admin/network/themes.php:434 +msgid "Theme will no longer be auto-updated." +msgstr "El tema ya no se actualizará automáticamente." + +#: wp-admin/themes.php:326 wp-admin/network/themes.php:423 +msgid "Theme will be auto-updated." +msgstr "El tema se actualizará automáticamente." + +#: wp-admin/themes.php:191 wp-admin/network/themes.php:328 +msgid "Auto-updates can be enabled or disabled for each individual theme. Themes with auto-updates enabled will display the estimated date of the next auto-update. Auto-updates depends on the WP-Cron task scheduling system." +msgstr "Las actualizaciones automáticas se pueden activar o desactivar para cada tema individual. Los temas con las actualizaciones automáticas activadas mostrarán la fecha estimada para la siguiente actualización automática. Las actualizaciones automáticas dependen del sistema de programación de tareas WP-Cron." + +#: wp-admin/themes.php:106 +msgid "Sorry, you are not allowed to disable themes automatic updates." +msgstr "Lo siento, no tienes permisos para desactivar actualizaciones automáticas de temas." + +#: wp-admin/plugins.php:469 +msgid "Sorry, you are not allowed to manage plugins automatic updates." +msgstr "Lo siento, no tienes permisos para gestionar las actualizaciones automáticas de plugins." + +#: wp-admin/edit.php:185 wp-admin/post.php:326 +msgid "Error in deleting the item." +msgstr "Error al borrar el elemento." + +#: wp-admin/edit.php:160 wp-admin/post.php:291 wp-admin/upload.php:322 +msgid "Error in restoring the item from Trash." +msgstr "Error al restaurar el elemento de la papelera." + +#: wp-admin/edit.php:132 wp-admin/post.php:261 wp-admin/upload.php:301 +msgid "Error in moving the item to Trash." +msgstr "Error al mover el elemento a la papelera." + +#: wp-admin/plugins.php:754 +msgid "Selected plugins will no longer be auto-updated." +msgstr "Los plugins seleccionados ya no se actualizarán automáticamente." + +#: wp-admin/plugins.php:752 +msgid "Selected plugins will be auto-updated." +msgstr "Los plugins seleccionados se actualizarán automáticamente." + +#: wp-admin/plugins.php:750 +msgid "Plugin will no longer be auto-updated." +msgstr "El plugin ya no se actualizará automáticamente." + +#: wp-admin/plugins.php:748 +msgid "Plugin will be auto-updated." +msgstr "El plugin se actualizará automáticamente." + +#: wp-admin/plugins.php:596 +msgid "Auto-updates can be enabled or disabled for each individual plugin. Plugins with auto-updates enabled will display the estimated date of the next auto-update. Auto-updates depends on the WP-Cron task scheduling system." +msgstr "Las actualizaciones automáticas se pueden activar o desactivar para cada plugin individual. Los plugins con las actualizaciones automáticas activadas mostrarán la fecha estimada para la siguiente actualización automática. Las actualizaciones automáticas dependen del sistema de programación de tareas WP-Cron." + +#: wp-admin/plugins.php:473 +msgid "Please connect to your network admin to manage plugins automatic updates." +msgstr "Por favor, contacta con tu administrador de red para que gestione las actualizaciones automáticas de plugins." + +#. translators: %s: Human-readable time interval. +#: wp-admin/index.php:159 +msgid "The admin email verification page will reappear after %s." +msgstr "La página de verificación del correo electrónico del administrador volverá a aparecer después de %s." + +#: wp-admin/includes/class-wp-debug-data.php:1187 wp-admin/plugins.php:594 +#: wp-admin/themes.php:197 wp-admin/update-core.php:1025 +#: wp-admin/network/themes.php:326 +msgid "Auto-updates" +msgstr "Actualizaciones automáticas" + +#: wp-admin/plugins.php:598 wp-admin/themes.php:192 +#: wp-admin/update-core.php:1020 wp-admin/network/themes.php:329 +msgid "Please note: Third-party themes and plugins, or custom code, may override WordPress scheduling." +msgstr "Por favor, ten en cuenta: Los temas y plugins de terceros o el código personalizado pueden anular la programación de WordPress." + +#: wp-admin/update-core.php:1019 +msgid "Auto-updates can be enabled or disabled for WordPress major versions and for each individual theme or plugin. Themes or plugins with auto-updates enabled will display the estimated date of the next auto-update. Auto-updates depends on the WP-Cron task scheduling system." +msgstr "Las actualizaciones automáticas pueden ser activadas o desactivadas para las versiones mayores de WordPress y para cada tema o plugin individual. Los temas o plugins con las actualizaciones automáticas activadas mostrarán la fecha estimada de la siguiente actualización automática. Las actualizaciones automáticas dependen del sistema de programación de tareas WP-Cron." + +#. translators: 1: Documentation on WordPress backups, 2: Documentation on +#. updating WordPress. +#: wp-admin/update-core.php:260 +msgid "Important: Before updating, please back up your database and files. For help with updates, visit the Updating WordPress documentation page." +msgstr "Importante: Antes de actualizar, por favor, haz una copia de seguridad de tu base de datos y de los archivos. Para obtener ayuda con las actualizaciones, visita la página de documentación Actualización de WordPress." + +#: wp-admin/customize.php:203 wp-admin/theme-install.php:433 +#: wp-admin/theme-install.php:495 wp-admin/themes.php:645 +#: wp-admin/themes.php:1035 wp-admin/themes.php:1297 +msgctxt "theme" +msgid "Cannot Activate" +msgstr "No se ha podido activar" + +#: wp-admin/comment.php:47 +msgid "You cannot edit this comment because the associated post is in the Trash. Please restore the post first, then try again." +msgstr "No puedes editar este comentario porque la entrada asociada está en la papelera. Por favor, restaura primero la entrada y, después, inténtalo de nuevo." + +#: wp-admin/async-upload.php:70 +msgctxt "media item" +msgid "Success" +msgstr "Correcto" + +#. translators: 1: Current WordPress version, 2: Plugin name, 3: Required +#. WordPress version. +#: wp-admin/includes/plugin.php:1192 +msgctxt "plugin" +msgid "Error: Current WordPress version (%1$s) does not meet minimum requirements for %2$s. The plugin requires WordPress %3$s." +msgstr "Error: La versión actual de WordPress (%1$s) no cumple con los requisitos mínimos para %2$s. El plugin necesita WordPress %3$s." + +#. translators: 1: Current PHP version, 2: Plugin name, 3: Required PHP +#. version. +#: wp-admin/includes/plugin.php:1181 +msgctxt "plugin" +msgid "Error: Current PHP version (%1$s) does not meet minimum requirements for %2$s. The plugin requires PHP %3$s." +msgstr "Error: La versión PHP actual (%1$s) no cumple con los requisitos mínimos para %2$s. El plugin necesita PHP %3$s." + +#. translators: 1: Current WordPress version, 2: Current PHP version, 3: Plugin +#. name, 4: Required WordPress version, 5: Required PHP version. +#: wp-admin/includes/plugin.php:1168 +msgctxt "plugin" +msgid "Error: Current versions of WordPress (%1$s) and PHP (%2$s) do not meet minimum requirements for %3$s. The plugin requires WordPress %4$s and PHP %5$s." +msgstr "Error: Las versiones actuales de WordPress (%1$s) y PHP (%2$s) no cumplen los requisitos mínimos para %3$s. El plugin necesita WordPress %4$s y PHP %5$s." + +#: wp-admin/includes/ajax-actions.php:5589 +msgid "Invalid data. The item does not exist." +msgstr "Datos no válidos. El elemento no existe." + +#: wp-admin/includes/ajax-actions.php:5560 +#: wp-admin/includes/ajax-actions.php:5585 +msgid "Invalid data. Unknown type." +msgstr "Datos no válidos. Tipo desconocido." + +#: wp-admin/includes/ajax-actions.php:5555 +msgid "Invalid data. Unknown state." +msgstr "Datos no válidos. Estado desconocido." + +#: wp-admin/includes/ajax-actions.php:5549 +msgid "Invalid data. No selected item." +msgstr "Datos no válidos. Ningún elemento seleccionado." + +#: wp-admin/includes/ajax-actions.php:1329 +msgid "You cannot reply to a comment on a draft post." +msgstr "No puedes responder a un comentario en una entrada en borrador." + +#. translators: %s: Themes screen URL. +#: wp-admin/includes/class-wp-automatic-updater.php:1499 +msgid "To manage themes on your site, visit the Themes page: %s" +msgstr "Para gestionar los temas en tu sitio, visita la página de temas: %s" + +#. translators: %s: Plugins screen URL. +#: wp-admin/includes/class-wp-automatic-updater.php:1490 +msgid "To manage plugins on your site, visit the Plugins page: %s" +msgstr "Para gestionar los plugins en tu sitio, visita la página de plugins: %s" + +#: wp-admin/includes/class-wp-automatic-updater.php:1460 +msgid "These themes are now up to date:" +msgstr "Ahora, estos temas están al día:" + +#: wp-admin/includes/class-wp-automatic-updater.php:1422 +msgid "These plugins are now up to date:" +msgstr "Ahora, estos plugins están al día:" + +#: wp-admin/includes/class-wp-automatic-updater.php:1389 +msgid "These themes failed to update:" +msgstr "Ha fallado la actualización de estos temas:" + +#: wp-admin/includes/class-wp-automatic-updater.php:1345 +msgid "Please check your site now. It’s possible that everything is working. If there are updates available, you should update." +msgstr "Por favor, comprueba tu sitio ahora. Es posible que todo esté funcionando. Si hay actualizaciones disponibles, deberías actualizar." + +#. translators: %s: Home URL. +#: wp-admin/includes/class-wp-automatic-updater.php:1335 +msgid "Howdy! Themes failed to update on your site at %s." +msgstr "¡Hola! Ha fallado la actualización de temas en tu sitio %s." + +#. translators: %s: Site title. +#: wp-admin/includes/class-wp-automatic-updater.php:1332 +msgid "[%s] Some themes have failed to update" +msgstr "[%s] Ha fallado la actualización de algunos temas" + +#. translators: %s: Home URL. +#: wp-admin/includes/class-wp-automatic-updater.php:1327 +msgid "Howdy! Plugins failed to update on your site at %s." +msgstr "¡Hola! Ha fallado la actualización de plugins en tu sitio %s." + +#. translators: %s: Site title. +#: wp-admin/includes/class-wp-automatic-updater.php:1324 +msgid "[%s] Some plugins have failed to update" +msgstr "[%s] Ha fallado la actualización de algunos plugins" + +#. translators: %s: Home URL. +#: wp-admin/includes/class-wp-automatic-updater.php:1319 +msgid "Howdy! Plugins and themes failed to update on your site at %s." +msgstr "¡Hola! Ha fallado la actualización de los temas y plugins en tu sitio %s." + +#. translators: %s: Site title. +#: wp-admin/includes/class-wp-automatic-updater.php:1316 +msgid "[%s] Some plugins and themes have failed to update" +msgstr "[%s] Ha fallado la actualización de algunos plugins y temas" + +#. translators: %s: Home URL. +#: wp-admin/includes/class-wp-automatic-updater.php:1306 +msgid "Howdy! Some themes have automatically updated to their latest versions on your site at %s. No further action is needed on your part." +msgstr "¡Hola! Algunos temas se han actualizado automáticamente a sus últimas versiones en tu sitio %s. No son necesarias más acciones por tu parte." + +#. translators: %s: Site title. +#: wp-admin/includes/class-wp-automatic-updater.php:1303 +msgid "[%s] Some themes were automatically updated" +msgstr "[%s] Algunos temas se han actualizado automáticamente" + +#. translators: %s: Home URL. +#: wp-admin/includes/class-wp-automatic-updater.php:1298 +msgid "Howdy! Some plugins have automatically updated to their latest versions on your site at %s. No further action is needed on your part." +msgstr "¡Hola! Algunos plugins se han actualizado automáticamente a sus últimas versiones en tu sitio %s. No son necesarias más acciones por tu parte." + +#. translators: %s: Site title. +#: wp-admin/includes/class-wp-automatic-updater.php:1295 +msgid "[%s] Some plugins were automatically updated" +msgstr "[%s] Algunos plugins se han actualizado automáticamente" + +#. translators: %s: Home URL. +#: wp-admin/includes/class-wp-automatic-updater.php:1290 +msgid "Howdy! Some plugins and themes have automatically updated to their latest versions on your site at %s. No further action is needed on your part." +msgstr "¡Hola! Algunos plugins y temas se han actualizado automáticamente a sus últimas versiones en tu sitio %s. No son necesarias más acciones por tu parte." + +#. translators: %s: Site title. +#: wp-admin/includes/class-wp-automatic-updater.php:1287 +msgid "[%s] Some plugins and themes have automatically updated" +msgstr "[%s] Algunos plugins y temas se han actualizado automáticamente" + +#. translators: %s: Meta box title. +#: wp-admin/includes/template.php:1417 +msgid "Move %s box down" +msgstr "Mover la caja %s abajo" + +#. translators: %s: Meta box title. +#: wp-admin/includes/template.php:1404 +msgid "Move %s box up" +msgstr "Mover la caja %s arriba" + +#: wp-admin/includes/class-wp-comments-list-table.php:385 +msgctxt "comment" +msgid "Not spam" +msgstr "No es spam" + +#: wp-admin/includes/class-wp-site-health.php:2797 +msgid "PHP Sessions" +msgstr "Sesiones PHP" + +#. translators: 1: session_start(), 2: session_write_close() +#: wp-admin/includes/class-wp-site-health.php:1211 +msgid "A PHP session was created by a %1$s function call. This interferes with REST API and loopback requests. The session should be closed by %2$s before making any HTTP requests." +msgstr "Se ha creado una sesión PHP por la llamada a la función %1$s. Esto interfiere con la API REST y las solicitudes de retorno. La sesión debería ser cerrada por %2$s antes de hacer cualquier solicitud HTTP." + +#: wp-admin/includes/class-wp-site-health.php:1205 +msgid "An active PHP session was detected" +msgstr "Se ha detectado una sesión PHP activa" + +#. translators: 1: session_start(), 2: session_write_close() +#: wp-admin/includes/class-wp-site-health.php:1194 +msgid "PHP sessions created by a %1$s function call may interfere with REST API and loopback requests. An active session should be closed by %2$s before making any HTTP requests." +msgstr "Las sesiones PHP creadas por una la llamada a la función %1$s pueden interferir con la API REST y las solicitudes de retorno. Una sesión activa debería ser cerrada por %2$s antes de hacer cualquier solicitud HTTP." + +#: wp-admin/includes/class-wp-site-health.php:1184 +msgid "No PHP sessions detected" +msgstr "No se han detectado sesiones PHP" + +#: wp-admin/includes/class-wp-list-table.php:170 +#: wp-admin/includes/class-wp-screen.php:1340 +msgid "Extended view" +msgstr "Vista ampliada" + +#: wp-admin/includes/class-wp-list-table.php:169 +#: wp-admin/includes/class-wp-screen.php:1336 +msgid "Compact view" +msgstr "Vista compacta" + +#: wp-admin/includes/user.php:183 +msgid "Error: Passwords do not match. Please enter the same password in both password fields." +msgstr "Error: Las contraseñas no coinciden. Por favor, introduce la misma contraseña en los dos campos de contraseña." + +#: wp-admin/includes/meta-boxes.php:383 wp-admin/includes/meta-boxes.php:384 +#: wp-admin/js/post.js:777 +msgctxt "post action/button label" +msgid "Schedule" +msgstr "Programar" + +#: wp-admin/includes/class-wp-plugin-install-list-table.php:304 +#: wp-admin/js/updates.js:3158 +msgid "No plugins found. Try a different search." +msgstr "No se han encontrado plugins. Prueba con una búsqueda diferente." + +#. translators: %s: Time until the next update. +#: wp-admin/includes/update.php:1120 +msgid "Automatic update scheduled in %s." +msgstr "Actualización automática programada en %s." + +#. translators: %s: Duration that WP-Cron has been overdue. +#: wp-admin/includes/update.php:1114 +msgid "Automatic update overdue by %s. There may be a problem with WP-Cron." +msgstr "Actualización automática con un retraso de %s. Puede que haya un problema con WP-Cron." + +#: wp-admin/includes/update.php:1104 +msgid "Automatic update not scheduled. There may be a problem with WP-Cron." +msgstr "Actualización automática no programada. Puede que haya un problema con WP-Cron." + +#. translators: %s: Documentation URL. +#: wp-admin/includes/class-plugin-installer-skin.php:307 +msgid "You are updating a plugin. Be sure to back up your database and files first." +msgstr "Estás actualizando un plugin. Asegúrate primero de hacer copia de seguridad de tu base de datos y de los archivos." + +#. translators: %s: Documentation URL. +#: wp-admin/includes/class-plugin-installer-skin.php:301 +msgid "You are uploading an older version of a current plugin. You can continue to install the older version, but be sure to back up your database and files first." +msgstr "Estás subiendo una versión más antigua de un plugin actual. Puedes seguir instalando la versión más antigua, pero asegúrate primero de hacer copia de seguridad de tu base de datos y de los archivos." + +#. translators: 1: Current WordPress version, 2: Version required by the +#. uploaded plugin. +#: wp-admin/includes/class-plugin-installer-skin.php:286 +#: wp-admin/includes/class-plugin-upgrader.php:510 +msgid "Your WordPress version is %1$s, however the uploaded plugin requires %2$s." +msgstr "Tu versión de WordPress es %1$s, sin embargo, el plugin subido necesita la versión %2$s." + +#. translators: 1: Current PHP version, 2: Version required by the uploaded +#. plugin. +#: wp-admin/includes/class-plugin-installer-skin.php:274 +#: wp-admin/includes/class-plugin-upgrader.php:499 +msgid "The PHP version on your server is %1$s, however the uploaded plugin requires %2$s." +msgstr "En tu servidor, la versión de PHP es %1$s, sin embargo, el plugin subido necesita la versión %2$s." + +#: wp-admin/includes/class-plugin-installer-skin.php:265 +msgid "The plugin cannot be updated due to the following:" +msgstr "No se ha podido actualizar el plugin debido a lo siguiente:" + +#: wp-admin/includes/class-plugin-installer-skin.php:222 +msgid "Plugin name" +msgstr "Nombre del plugin" + +#: wp-admin/includes/class-theme-upgrader.php:107 +msgid "Theme downgraded successfully." +msgstr "El tema ha vuelto a la versión anterior correctamente." + +#: wp-admin/includes/class-theme-upgrader.php:106 +msgid "Theme downgrade failed." +msgstr "Ha fallado la vuelta a la versión anterior del tema." + +#: wp-admin/includes/class-theme-upgrader.php:105 +msgid "Downgrading the theme…" +msgstr "Volviendo a una versión anterior del tema..." + +#: wp-admin/includes/class-theme-upgrader.php:99 +msgid "Updating the theme…" +msgstr "Actualizando el tema..." + +#. translators: %s: Theme error. +#: wp-admin/includes/class-theme-upgrader.php:95 +msgid "The active theme has the following error: \"%s\"." +msgstr "El tema activo tiene el siguiente error: «%s»." + +#: wp-admin/includes/class-wp-plugins-list-table.php:1324 +#: wp-admin/themes.php:801 wp-admin/js/updates.js:3474 +#: wp-admin/includes/class-wp-ms-themes-list-table.php:823 +msgid "Enable auto-updates" +msgstr "Activar las actualizaciones automáticas" + +#: wp-admin/includes/class-wp-plugins-list-table.php:1320 +#: wp-admin/themes.php:797 wp-admin/js/updates.js:3463 +#: wp-admin/includes/class-wp-ms-themes-list-table.php:819 +msgid "Disable auto-updates" +msgstr "Desactivar las actualizaciones automáticas" + +#: wp-admin/includes/class-wp-plugins-list-table.php:632 +#: wp-admin/includes/class-wp-ms-themes-list-table.php:489 +msgid "Disable Auto-updates" +msgstr "Desactivar las actualizaciones automáticas" + +#: wp-admin/includes/class-wp-plugins-list-table.php:629 +#: wp-admin/includes/class-wp-ms-themes-list-table.php:485 +msgid "Enable Auto-updates" +msgstr "Activar las actualizaciones automáticas" + +#. translators: %s: Number of plugins. +#. translators: %s: Number of themes. +#: wp-admin/includes/class-wp-plugins-list-table.php:581 +#: wp-admin/includes/class-wp-ms-themes-list-table.php:433 +msgid "Auto-updates Disabled (%s)" +msgid_plural "Auto-updates Disabled (%s)" +msgstr[0] "Actualización automática desactivada (%s)" +msgstr[1] "Actualizaciones automáticas desactivadas (%s)" + +#. translators: %s: Number of plugins. +#. translators: %s: Number of themes. +#: wp-admin/includes/class-wp-plugins-list-table.php:573 +#: wp-admin/includes/class-wp-ms-themes-list-table.php:425 +msgid "Auto-updates Enabled (%s)" +msgid_plural "Auto-updates Enabled (%s)" +msgstr[0] "Actualización automática activada (%s)" +msgstr[1] "Actualizaciones automáticas activadas (%s)" + +#: wp-admin/includes/class-wp-plugins-list-table.php:478 +#: wp-admin/includes/class-wp-ms-themes-list-table.php:337 +msgid "Automatic Updates" +msgstr "Actualizaciones automáticas" + +#: wp-admin/includes/class-wp-plugins-list-table.php:429 +#: wp-admin/plugin-editor.php:34 wp-admin/js/updates.js:1457 +msgid "No plugins are currently available." +msgstr "Actualmente no hay ningún plugin disponible." + +#: wp-admin/includes/image-edit.php:173 +msgid "Restore original image" +msgstr "Restaurar la imagen original" + +#: wp-admin/includes/class-plugin-installer-skin.php:348 +#: wp-admin/includes/class-theme-installer-skin.php:393 +msgid "The uploaded file has expired. Please go back and upload it again." +msgstr "El archivo subido ha caducado. Por favor, vuelve atrás y súbelo de nuevo." + +#: wp-admin/includes/class-plugin-installer-skin.php:330 +#: wp-admin/includes/class-theme-installer-skin.php:375 +msgid "Cancel and go back" +msgstr "Cancelar y volver atrás" + +#: wp-admin/includes/class-theme-installer-skin.php:364 +msgctxt "theme" +msgid "Replace installed with uploaded" +msgstr "Reemplazar el instalado con el subido" + +#. translators: %s: Documentation URL. +#: wp-admin/includes/class-theme-installer-skin.php:352 +msgid "You are updating a theme. Be sure to back up your database and files first." +msgstr "Estás actualizando un tema. Primero, asegúrate de hacer una copia de seguridad de tu base de datos y de los archivos." + +#. translators: %s: Documentation URL. +#: wp-admin/includes/class-theme-installer-skin.php:346 +msgid "You are uploading an older version of the installed theme. You can continue to install the older version, but be sure to back up your database and files first." +msgstr "Estás subiendo una versión más antigua del tema instalado. Puedes seguir instalando la versión más antigua, pero asegúrate primero de hacer una copia de seguridad de tu base de datos y de los archivos." + +#. translators: 1: Current WordPress version, 2: Version required by the +#. uploaded theme. +#: wp-admin/includes/class-theme-installer-skin.php:331 +#: wp-admin/includes/class-theme-upgrader.php:658 +msgid "Your WordPress version is %1$s, however the uploaded theme requires %2$s." +msgstr "Tu versión de WordPress es %1$s, sin embargo, el tema subido necesita la versión %2$s." + +#. translators: 1: Current PHP version, 2: Version required by the uploaded +#. theme. +#: wp-admin/includes/class-theme-installer-skin.php:319 +#: wp-admin/includes/class-theme-upgrader.php:648 +msgid "The PHP version on your server is %1$s, however the uploaded theme requires %2$s." +msgstr "En tu servidor, la versión de PHP es %1$s, sin embargo, el tema subido necesita la versión %2$s." + +#: wp-admin/includes/class-theme-installer-skin.php:310 +msgid "The theme cannot be updated due to the following:" +msgstr "El tema no se ha podido actualizar debido a lo siguiente:" + +#: wp-admin/includes/class-theme-installer-skin.php:286 +msgid "(not found)" +msgstr "(no encontrado)" + +#: wp-admin/includes/class-plugin-installer-skin.php:226 +#: wp-admin/includes/class-theme-installer-skin.php:259 +msgid "Required PHP version" +msgstr "Versión necesaria de PHP" + +#: wp-admin/includes/class-plugin-installer-skin.php:225 +#: wp-admin/includes/class-theme-installer-skin.php:258 +msgid "Required WordPress version" +msgstr "Versión necesaria de WordPress" + +#: wp-admin/includes/class-theme-installer-skin.php:255 +msgid "Theme name" +msgstr "Nombre del tema" + +#: wp-admin/includes/theme.php:1092 wp-admin/theme-install.php:454 +#: wp-admin/theme-install.php:501 +msgctxt "theme" +msgid "Cannot Install" +msgstr "No se ha podido instalar" + +#: wp-admin/includes/theme.php:332 +msgid "Block Editor Patterns" +msgstr "Patrones del editor de bloques" + +#: wp-admin/includes/class-plugin-upgrader.php:98 +msgid "Plugin downgraded successfully." +msgstr "El plugin ha vuelto a la versión anterior correctamente." + +#: wp-admin/includes/class-plugin-upgrader.php:97 +msgid "Plugin downgrade failed." +msgstr "Ha fallado la vuelta atrás de la versión del plugin." + +#: wp-admin/includes/class-plugin-upgrader.php:96 +msgid "Downgrading the plugin…" +msgstr "Volviendo a una versión anterior del plugin..." + +#: wp-admin/includes/class-plugin-upgrader.php:90 +msgid "Updating the plugin…" +msgstr "Actualizando el plugin..." + +#: wp-admin/includes/class-plugin-upgrader.php:81 +msgid "Could not remove the current plugin." +msgstr "No se ha podido eliminar el plugin actual." + +#: wp-admin/includes/class-plugin-upgrader.php:80 +msgid "Removing the current plugin…" +msgstr "Eliminando el plugin actual..." + +#: wp-admin/includes/class-wp-debug-data.php:1298 +msgid "Auto-update" +msgstr "Actualización automática" + +#: wp-admin/includes/class-wp-debug-data.php:1024 +#: wp-admin/includes/class-wp-debug-data.php:1405 +#: wp-admin/includes/class-wp-plugins-list-table.php:1311 +#: wp-admin/themes.php:792 wp-admin/js/updates.js:3476 +#: wp-admin/includes/class-wp-ms-themes-list-table.php:810 +msgid "Auto-updates disabled" +msgstr "Actualizaciones automáticas desactivadas" + +#: wp-admin/includes/class-wp-debug-data.php:1022 +#: wp-admin/includes/class-wp-debug-data.php:1403 +#: wp-admin/includes/class-wp-plugins-list-table.php:1309 +#: wp-admin/themes.php:794 wp-admin/js/updates.js:3465 +#: wp-admin/includes/class-wp-ms-themes-list-table.php:808 +msgid "Auto-updates enabled" +msgstr "Actualizaciones automáticas activadas" + +#: wp-admin/includes/class-wp-debug-data.php:478 +msgid "Are pretty permalinks supported?" +msgstr "¿Es compatible con enlaces permanentes bonitos?" + +#: wp-admin/includes/class-wp-debug-data.php:417 +msgid "PHP memory limit (only for admin screens)" +msgstr "Límite de memoria PHP (solo para las pantallas de administración)" + +#: wp-admin/includes/class-wp-debug-data.php:219 +msgid "Is this site discouraging search engines?" +msgstr "¿Está el sitio disuadiendo a los motores de búsqueda?" + +#: wp-admin/includes/theme.php:359 +msgid "Wide Blocks" +msgstr "Bloques anchos" + +#: wp-admin/includes/theme.php:333 +msgid "Block Editor Styles" +msgstr "Estilos del editor de bloques" + +#: wp-admin/edit-form-comment.php:123 +msgid "Spam" +msgstr "Spam" + +#. translators: %s: wp-config.php +#: wp-admin/setup-config.php:423 wp-admin/setup-config.php:492 +msgid "Unable to write to %s file." +msgstr "No se ha podido escribir en el archivo %s." + +#. translators: %s: The options page name. +#: wp-admin/options.php:253 +msgid "Error: The %s options page is not in the allowed options list." +msgstr "Error: La página de opciones de %s no está en la lista de opciones permitidas." + +#: wp-admin/import.php:65 wp-admin/themes.php:348 wp-admin/users.php:347 +#: wp-admin/includes/network.php:117 wp-admin/includes/network.php:161 +msgid "Error:" +msgstr "Error:" + +#. translators: %s: web.config +#. translators: %s: .htaccess +#: wp-admin/options-permalink.php:183 wp-admin/options-permalink.php:196 +msgid "You should update your %s file now." +msgstr "Deberías actualizar ahora tu archivo %s." + +#: wp-admin/update-core.php:183 +msgid "This localized version contains both the translation and various other localization fixes." +msgstr "Esta versión local contiene tanto la traducción como otras muchas correcciones de traducción local." + +#. translators: 1: Number of issues. 2: URL to Site Health screen. +#: wp-admin/includes/dashboard.php:2030 +msgid "Take a look at the %1$d item on the Site Health screen." +msgid_plural "Take a look at the %1$d items on the Site Health screen." +msgstr[0] "Echa un vistazo a %1$d elemento en la pantalla de salud del sitio." +msgstr[1] "Echa un vistazo a %1$d elementos en la pantalla de salud del sitio." + +#: wp-admin/includes/dashboard.php:2020 +msgid "Your site’s health is looking good, but there are still some things you can do to improve its performance and security." +msgstr "La salud de tu sitio está bien, pero aún hay algunas cosas que puedes hacer para mejorar su rendimiento y seguridad." + +#: wp-admin/includes/dashboard.php:2012 +msgid "Great job! Your site currently passes all site health checks." +msgstr "¡Buen trabajo! Actualmente tu sitio pasa todas las pruebas de salud del sitio." + +#: wp-admin/includes/dashboard.php:2016 +msgid "Your site has critical issues that should be addressed as soon as possible to improve its performance and security." +msgstr "Tu sitio tiene problemas críticos que deberían solucionarse lo antes posible para mejorar su rendimiento y seguridad." + +#. translators: %s: URL to Site Health screen. +#: wp-admin/includes/dashboard.php:2004 +msgid "Site health checks will automatically run periodically to gather information about your site. You can also visit the Site Health screen to gather information about your site now." +msgstr "Las pruebas de salud del sitio se ejecutarán automáticamente de forma periódica para obtener información sobre tu sitio. También puedes visitar ahora la pantalla de salud del sitio para obtener información sobre tu sitio." + +#: wp-admin/includes/dashboard.php:1991 +msgid "No information yet…" +msgstr "Aún no hay información..." + +#. translators: 1: upload_max_filesize, 2: php.ini +#: wp-admin/includes/file.php:892 +msgid "The uploaded file exceeds the %1$s directive in %2$s." +msgstr "El archivo subido supera la directiva %1$s en %2$s. " + +#: wp-admin/includes/class-wp-comments-list-table.php:227 +msgid "No comments found in Trash." +msgstr "No se han encontrado comentarios en la papelera." + +#. translators: 1: php.ini, 2: post_max_size, 3: upload_max_filesize +#: wp-admin/includes/file.php:942 wp-admin/includes/import.php:87 +msgid "File is empty. Please upload something more substantial. This error could also be caused by uploads being disabled in your %1$s file or by %2$s being defined as smaller than %3$s in %1$s." +msgstr "El archivo está vacío. Por favor, sube algo más sustancial. Este error también puede ser causado porque las subidas estén desactivadas en tu archivo %1$s o porque %2$s esté definido como menor de %3$s en %1$s." + +#: wp-admin/includes/class-wp-site-health.php:3349 +#: wp-admin/js/site-health.js:338 +msgid "A test is unavailable" +msgstr "No está disponible una prueba" + +#. translators: 1: The WordPress error message. 2: The WordPress error code. +#: wp-admin/includes/class-wp-site-health.php:3221 +msgid "Error: %1$s (%2$s)" +msgstr "Error: %1$s (%2$s)" + +#. translators: %s: The server PHP version. +#: wp-admin/includes/class-wp-site-health.php:822 +msgid "Your site is running on an older version of PHP (%s), which should be updated" +msgstr "Tu sitio está ejecutando una versión antigua de PHP (%s) que debería ser actualizada" + +#. translators: %s: The server PHP version. +#: wp-admin/includes/class-wp-site-health.php:791 +msgid "Your site is running on an older version of PHP (%s)" +msgstr "Tu sitio está ejecutando una versión antigua de PHP (%s)" + +#. translators: %s: The server PHP version. +#: wp-admin/includes/class-wp-site-health.php:779 +msgid "Your site is running a recommended version of PHP (%s)" +msgstr "Tu sitio está ejecutando la versión recomendada de PHP (%s)" + +#: wp-admin/includes/class-wp-media-list-table.php:259 +msgid "No media files found in Trash." +msgstr "No hay archivos de medios en la papelera." + +#. translators: Date string for upcoming events. 1: Starting month, 2: Starting +#. day, 3: Ending month, 4: Ending day, 5: Year. +#. translators: Date string for upcoming events. 1: Starting month, 2: Starting +#. day, 3: Ending month, 4: Ending day, 5: Ending year. +#: wp-admin/includes/class-wp-community-events.php:423 +#: wp-admin/js/dashboard.js:784 +msgid "%1$s %2$d – %3$s %4$d, %5$d" +msgstr "%1$s %2$d – %3$s %4$d, %5$d" + +#. translators: Upcoming events year format. See +#. https://www.php.net/manual/datetime.format.php +#: wp-admin/includes/class-wp-community-events.php:418 +#: wp-admin/includes/class-wp-community-events.php:428 +#: wp-admin/js/dashboard.js:797 wp-admin/js/dashboard.js:808 +msgctxt "upcoming events year format" +msgid "Y" +msgstr "Y" + +#. translators: Upcoming events day format. See +#. https://www.php.net/manual/datetime.format.php +#: wp-admin/includes/class-wp-community-events.php:415 +#: wp-admin/includes/class-wp-community-events.php:416 +#: wp-admin/includes/class-wp-community-events.php:425 +#: wp-admin/includes/class-wp-community-events.php:427 +#: wp-admin/js/dashboard.js:795 wp-admin/js/dashboard.js:796 +#: wp-admin/js/dashboard.js:805 wp-admin/js/dashboard.js:807 +msgctxt "upcoming events day format" +msgid "j" +msgstr "j" + +#. translators: Date string for upcoming events. 1: Month, 2: Starting day, 3: +#. Ending day, 4: Year. +#: wp-admin/includes/class-wp-community-events.php:412 +#: wp-admin/js/dashboard.js:782 +msgid "%1$s %2$d–%3$d, %4$d" +msgstr "%2$d–%3$d de %1$s de %4$d" + +#. translators: Upcoming events month format. See +#. https://www.php.net/manual/datetime.format.php +#: wp-admin/includes/class-wp-community-events.php:406 +#: wp-admin/includes/class-wp-community-events.php:407 +#: wp-admin/js/dashboard.js:794 wp-admin/js/dashboard.js:804 +#: wp-admin/js/dashboard.js:806 +msgctxt "upcoming events month format" +msgid "F" +msgstr "F" + +#: wp-admin/includes/class-wp-privacy-requests-table.php:216 +msgid "Resend confirmation requests" +msgstr "Reenviar las solicitudes de confirmación" + +#: wp-admin/includes/class-wp-privacy-requests-table.php:218 +msgid "Delete requests" +msgstr "Borrar las solicitudes" + +#: wp-admin/includes/class-wp-debug-data.php:1658 +msgid "Table prefix" +msgstr "Prefijo de la tabla" + +#: wp-admin/includes/class-wp-site-health.php:2793 +msgid "PHP Default Timezone" +msgstr "Zona horaria por defecto de PHP" + +#. translators: %s: date_default_timezone_set() +#: wp-admin/includes/class-wp-site-health.php:1166 +msgid "PHP default timezone was changed after WordPress loading by a %s function call. This interferes with correct calculations of dates and times." +msgstr "La zona horaria por defecto de PHP ha cambiado después de cargar WordPress por una llamada de la función %s. Esto interfiere con los cálculos correctos de fechas y horas." + +#: wp-admin/includes/class-wp-site-health.php:1160 +msgid "PHP default timezone is invalid" +msgstr "La zona horaria por defecto de PHP no es válida" + +#: wp-admin/includes/class-wp-site-health.php:1151 +msgid "PHP default timezone was configured by WordPress on loading. This is necessary for correct calculations of dates and times." +msgstr "La zona horaria por defecto de PHP ha sido configurada al cargar WordPress. Esto es necesario para los cálculos correctos de fechas y horas." + +#: wp-admin/includes/class-wp-site-health.php:1143 +msgid "PHP default timezone is valid" +msgstr "La zona horaria por defecto de PHP es válida" + +#. translators: %s: add_menu_page() +#. translators: %s: add_submenu_page() +#: wp-admin/includes/plugin.php:1419 wp-admin/includes/plugin.php:1523 +msgid "The seventh parameter passed to %s should be numeric representing menu position." +msgstr "El séptimo parámetro pasado a `%s` debe ser numérico representando la posición del menú." + +#. translators: 1: WordPress version number, 2: The PHP extension name needed. +#: wp-admin/includes/update-core.php:1215 +msgid "The update cannot be installed because WordPress %1$s requires the %2$s PHP extension." +msgstr "La actualización no ha podido ser instalada porque WordPress %1$s necesita la extensión %2$s de PHP." + +#: wp-admin/privacy.php:62 +msgid "https://wordpress.org/about/stats/" +msgstr "https://es.wordpress.org/about/stats/" + +#: wp-admin/export.php:59 +msgid "Documentation on Export" +msgstr "Documentación sobre exportación" + +#: wp-admin/plugin-install.php:121 +msgid "Documentation on Installing Plugins" +msgstr "Documentación sobre la instalación de plugins" + +#: wp-admin/edit.php:326 +msgid "Documentation on Managing Pages" +msgstr "Documentación sobre la gestión de páginas" + +#: wp-admin/edit.php:301 +msgid "Documentation on Managing Posts" +msgstr "Documentación sobre la gestión de entradas" + +#: wp-admin/options-discussion.php:32 +msgid "Documentation on Discussion Settings" +msgstr "Documentación sobre los ajustes de comentarios" + +#: wp-admin/theme-install.php:155 +msgid "Documentation on Adding New Themes" +msgstr "Documentación sobre añadir nuevos temas" + +#: wp-admin/media-new.php:61 +msgid "Documentation on Uploading Media Files" +msgstr "Documentación sobre la subida de archivos de medios" + +#: wp-admin/users.php:83 +msgid "Descriptions of Roles and Capabilities" +msgstr "Descripciones de perfiles y capacidades" + +#: wp-admin/users.php:82 +msgid "Documentation on Managing Users" +msgstr "Documentación sobre la gestión de usuarios" + +#: wp-admin/user-edit.php:78 +msgid "Documentation on User Profiles" +msgstr "Documentación sobre los perfiles de usuarios" + +#: wp-admin/options-media.php:41 +msgid "Documentation on Media Settings" +msgstr "Documentación sobre los ajustes de medios" + +#: wp-admin/import.php:32 +msgid "Documentation on Import" +msgstr "Documentación sobre importación" + +#: wp-admin/tools.php:56 +msgid "Documentation on Tools" +msgstr "Documentación sobre herramientas" + +#: wp-admin/options.php:387 +msgid "This page allows direct access to your site settings. You can break things here. Please be cautious!" +msgstr "Esta página te permite acceder directamente a los ajustes de tu sitio. Aquí puedes romper cosas. ¡Por favor, sé precavido!" + +#: wp-admin/edit-form-advanced.php:373 +msgid "Format — Post Formats designate how your theme will display a specific post. For example, you could have a standard blog post with a title and paragraphs, or a short aside that omits the title and contains a short text blurb. Your theme could enable all or some of 10 possible formats. Learn more about each post format." +msgstr "Formato — Los formatos de entrada definen cómo se va a mostrar tu tema en una entrada específica. Por ejemplo, puedes tener una entrada de blog estándar con un título y párrafos, o una corta aparte que omita el título y contenga una breve reseña. Tu tema podría habilitar todos o algunos de los 10 formatos posibles. Aprende más sobre cada uno de los formatos." + +#: wp-admin/edit-form-advanced.php:330 +msgid "Documentation on Editing Pages" +msgstr "Documentación sobre la edición de páginas" + +#: wp-admin/edit-form-advanced.php:329 +msgid "Documentation on Adding New Pages" +msgstr "Documentación sobre añadir páginas nuevas" + +#: wp-admin/upload.php:200 wp-admin/upload.php:402 +msgid "Documentation on Media Library" +msgstr "Documentación sobre la biblioteca de medios" + +#: wp-admin/revision.php:158 +msgid "Revisions Management" +msgstr "Gestión de revisiones" + +#: wp-admin/edit-form-advanced.php:348 +msgid "Documentation on Edit Media" +msgstr "Documentación sobre la edición de medios" + +#: wp-admin/plugins.php:620 +msgid "Documentation on Managing Plugins" +msgstr "Documentación sobre la gestión de plugins" + +#: wp-admin/index.php:132 +msgid "Documentation on Dashboard" +msgstr "Documentación sobre el escritorio" + +#: wp-admin/user-new.php:315 +msgid "Documentation on Adding New Users" +msgstr "Documentación sobre añadir usuarios nuevos" + +#. translators: %s: URL to Site Health Status page. +#: wp-admin/site-health-info.php:47 +msgid "This page can show you every detail about the configuration of your WordPress website. For any improvements that could be made, see the Site Health Status page." +msgstr "Esta página puede mostrar cada pequeño detalle sobre la configuración de tu web WordPress. Para saber las mejoras que se podrían hacer, ve la página de estado de salud del sitio." + +#: wp-admin/includes/dashboard.php:1993 wp-admin/site-health.php:137 +msgid "Results are still loading…" +msgstr "Los resultados están aún cargando…" + +#: wp-admin/options-permalink.php:61 +msgid "Documentation on Using Permalinks" +msgstr "Documentación sobre el uso de enlaces permanentes" + +#: wp-admin/options-permalink.php:60 +msgid "Documentation on Permalinks Settings" +msgstr "Documentación sobre los ajustes de los enlaces permanentes" + +#: wp-admin/update-core.php:1053 +msgid "Documentation on Updating WordPress" +msgstr "Documentación sobre la actualización de WordPress" + +#: wp-admin/nav-menus.php:773 +msgid "Documentation on Menus" +msgstr "Documentación sobre los menús" + +#: wp-admin/plugin-editor.php:158 +msgid "Documentation on Writing Plugins" +msgstr "Documentación sobre la creación de plugins" + +#: wp-admin/theme-editor.php:55 +msgid "Documentation on Template Tags" +msgstr "Documentación sobre las etiquetas de las plantillas" + +#: wp-admin/themes.php:207 +msgid "Documentation on Using Themes" +msgstr "Documentación sobre el uso de temas" + +#: wp-admin/theme-editor.php:52 +msgid "Documentation on Theme Development" +msgstr "Documentación sobre el desarrollo de temas" + +#: wp-admin/comment.php:72 wp-admin/edit-comments.php:229 +msgid "Documentation on Comments" +msgstr "Documentación sobre los comentarios" + +#. translators: %s: UTC time. +#: wp-admin/options-general.php:402 +msgid "Universal time is %s." +msgstr "La hora universal es %s." + +#. translators: %s: UTC abbreviation +#: wp-admin/options-general.php:391 +msgid "Choose either a city in the same timezone as you or a %s (Coordinated Universal Time) time offset." +msgstr "Elige una ciudad en tu misma zona horaria o un desfase horario %s (Tiempo Universal Coordinado)." + +#: wp-admin/options-general.php:265 +msgid "Administration Email Address" +msgstr "Dirección de correo electrónico de administración" + +#: wp-admin/options-general.php:60 +msgid "Documentation on General Settings" +msgstr "Documentación sobre ajustes generales" + +#. translators: %s: Documentation URL. +#: wp-admin/includes/file.php:328 wp-admin/plugin-editor.php:339 +#: wp-admin/theme-editor.php:406 +msgid "You need to make this file writable before you can save your changes. See Changing File Permissions for more information." +msgstr "Para guardar los cambios, es necesario que el archivo tenga permisos de escritura. Visita cómo cambiar permisos de archivo para obtener más información." + +#: wp-admin/includes/ajax-actions.php:2515 +msgid "Upload failed. Please reload and try again." +msgstr "Subida fallida. Por favor, recarga e inténtalo de nuevo." + +#: wp-admin/includes/class-wp-privacy-data-removal-requests-list-table.php:142 +msgid "Data erasure has failed." +msgstr "Ha fallado el borrado de los datos." + +#: wp-admin/includes/class-wp-privacy-data-removal-requests-list-table.php:67 +#: wp-admin/includes/class-wp-privacy-data-removal-requests-list-table.php:141 +msgid "Erasure completed." +msgstr "Borrado completo." + +#: wp-admin/includes/image.php:171 +msgid "The attached file cannot be found." +msgstr "No se ha podido encontrar el archivo adjunto." + +#: wp-admin/includes/template.php:2346 +msgctxt "page label" +msgid "Privacy Policy Page" +msgstr "Página de política de privacidad" + +#: wp-admin/includes/template.php:2341 +msgctxt "page label" +msgid "Posts Page" +msgstr "Página de entradas" + +#: wp-admin/includes/template.php:2337 +msgctxt "page label" +msgid "Front Page" +msgstr "Página de inicio" + +#: wp-admin/includes/template.php:2328 +msgctxt "post status" +msgid "Sticky" +msgstr "Fija" + +#: wp-admin/includes/template.php:2320 +msgctxt "post status" +msgid "Customization Draft" +msgstr "Borrador de personalización" + +#: wp-admin/includes/template.php:2306 +msgctxt "post status" +msgid "Password protected" +msgstr "Protegida con contraseña" + +#. translators: %s: The name of the late cron event. +#: wp-admin/includes/class-wp-site-health.php:1709 +msgid "The scheduled event, %s, is late to run. Your site still works, but this may indicate that scheduling posts or automated updates may not work as intended." +msgstr "El evento programado, %s, se retrasa. Tu sitio todavía funciona, pero esto puede indicar que las entradas programadas o las actualizaciones automáticas no funcionen como deberían." + +#: wp-admin/includes/class-wp-site-health.php:1703 +msgid "A scheduled event is late" +msgstr "Un evento programado se retrasa" + +#: wp-admin/includes/class-wp-site-health.php:1479 +msgid "An HTTPS connection is a more secure way of browsing the web. Many services now have HTTPS as a requirement. HTTPS allows you to take advantage of new features that can increase site speed, improve search rankings, and gain the trust of your visitors by helping to protect their online privacy." +msgstr "Una conexión HTTPS es un modo más seguro de navegar por la web. Muchos servicios actualmente requieren que tengas HTTPS. HTTPS te permite aprovechar las nuevas características que pueden aumentar la velocidad del sitio, mejorar en las posiciones de búsqueda y ganarte la confianza de tus visitantes al ayudarles a proteger su privacidad online." + +#. translators: %s: The current version of WordPress installed on this site. +#: wp-admin/includes/class-wp-site-health.php:330 +msgid "Your version of WordPress (%s) is up to date" +msgstr "Tu versión de WordPress (%s) está actualizada" + +#: wp-admin/includes/meta-boxes.php:857 +msgid "https://wordpress.org/documentation/article/introduction-to-blogging/#managing-comments" +msgstr "https://wordpress.org/documentation/article/introduction-to-blogging/#managing-comments" + +#: wp-admin/includes/meta-boxes.php:796 +msgid "https://wordpress.org/documentation/article/introduction-to-blogging/#comments" +msgstr "https://wordpress.org/documentation/article/introduction-to-blogging/#comments" + +#: wp-admin/includes/dashboard.php:2126 +msgid "https://wordpress.org/documentation/article/block-themes/" +msgstr "https://wordpress.org/documentation/article/block-themes/" + +#. translators: Post date information. %s: Date on which the post is to be +#. published. +#: wp-admin/includes/meta-boxes.php:252 +msgid "Publish on: %s" +msgstr "Publicar el: %s" + +#. translators: Post date information. %s: Date on which the post is to be +#. published. +#: wp-admin/includes/meta-boxes.php:249 +msgid "Schedule for: %s" +msgstr "Programar para: %s" + +#. translators: Post date information. %s: Date on which the post was +#. published. +#: wp-admin/includes/meta-boxes.php:244 +msgid "Published on: %s" +msgstr "Publicado el: %s" + +#. translators: Post date information. %s: Date on which the post is currently +#. scheduled to be published. +#: wp-admin/includes/meta-boxes.php:241 +msgid "Scheduled for: %s" +msgstr "Programado para: %s" + +#. translators: Publish box time format, see +#. https://www.php.net/manual/datetime.format.php +#: wp-admin/edit-form-advanced.php:170 wp-admin/edit-form-comment.php:150 +#: wp-admin/includes/meta-boxes.php:236 wp-admin/includes/meta-boxes.php:442 +msgctxt "publish box time format" +msgid "H:i" +msgstr "H:i" + +#. translators: Publish box date format, see +#. https://www.php.net/manual/datetime.format.php +#: wp-admin/edit-form-advanced.php:168 wp-admin/edit-form-comment.php:148 +#: wp-admin/includes/meta-boxes.php:234 wp-admin/includes/meta-boxes.php:440 +msgctxt "publish box date format" +msgid "M j, Y" +msgstr "j M Y" + +#. translators: 1: Marker. +#: wp-admin/includes/misc.php:142 +msgid "" +"The directives (lines) between \"BEGIN %1$s\" and \"END %1$s\" are\n" +"dynamically generated, and should only be modified via WordPress filters.\n" +"Any changes to the directives between these markers will be overwritten." +msgstr "" +"Las directivas (líneas) entre «BEGIN %1$s» y «END %1$s» son\n" +"generadas dinámicamente y solo deberían ser modificadas mediante filtros de WordPress.\n" +"Cualquier cambio en las directivas que hay entre esos marcadores serán sobrescritas." + +#: wp-admin/includes/class-wp-site-health-auto-updates.php:158 +msgid "All automatic updates are disabled." +msgstr "Todas las actualizaciones automáticas están desactivadas" + +#: wp-admin/includes/class-wp-debug-data.php:1668 +msgid "Database collation" +msgstr "Compilación de la base de datos" + +#: wp-admin/includes/class-wp-debug-data.php:1663 +msgid "Database charset" +msgstr "Mapa de caracteres de la base de datos" + +#: wp-admin/includes/class-wp-debug-data.php:1436 +msgid "Inactive Themes" +msgstr "Temas inactivos" + +#: wp-admin/includes/class-wp-debug-data.php:1306 +msgid "Parent Theme" +msgstr "Tema padre" + +#. translators: %s: wp-content directory name. +#: wp-admin/includes/class-wp-debug-data.php:331 +#: wp-admin/includes/class-wp-plugins-list-table.php:678 +msgid "Drop-ins are single files, found in the %s directory, that replace or enhance WordPress features in ways that are not possible for traditional plugins." +msgstr "Los dependientes son archivos únicos, que están en el directorio %s, que reemplazan o mejoran características de WordPress de formas que no son posibles con los plugins tradicionales." + +#. translators: Description for the About section in a personal data export. +#: wp-admin/includes/privacy-tools.php:370 +msgctxt "personal data group description" +msgid "Overview of export report." +msgstr "Resumen de un informe de exportación." + +#: wp-admin/options-writing.php:53 +msgid "Documentation on Writing Settings" +msgstr "Documentación sobre los ajustes de escritura" + +#: wp-admin/edit-tags.php:312 +msgid "Documentation on Tags" +msgstr "Documentación sobre las etiquetas" + +#: wp-admin/edit-tags.php:308 +msgid "Documentation on Categories" +msgstr "Documentación sobre las categorías" + +#. translators: %s: Documentation URL. +#: wp-admin/options-reading.php:193 +msgid "Your theme determines how content is displayed in browsers. Learn more about feeds." +msgstr "Tu tema determina cuánto contenido se muestra en los navegadores. Aprende más sobre feeds." + +#: wp-admin/options-reading.php:180 +msgid "For each post in a feed, include" +msgstr "Para cada entrada en el feed, incluir" + +#: wp-admin/options-reading.php:157 +msgid "Warning: these pages should not be the same as your Privacy Policy page!" +msgstr "¡Advertencia: estas páginas no deberían ser las mismas que tu página de política de privacidad!" + +#: wp-admin/options-reading.php:53 +msgid "Documentation on Reading Settings" +msgstr "Documentación sobre los ajustes de lectura" + +#. translators: %s: Site title. +#: wp-admin/ms-delete-site.php:100 +msgid "[%s] Delete My Site" +msgstr "[%s] Borrar mi sitio" + +#: wp-admin/options-discussion.php:60 +msgid "Allow people to submit comments on new posts" +msgstr "Permitir que se envíen comentarios en las entradas nuevas" + +#: wp-admin/options-discussion.php:46 +msgid "Default post settings" +msgstr "Ajustes por defecto de las entradas" + +#. translators: %s: Gravatar URL. +#: wp-admin/user-edit.php:646 +msgid "You can change your profile picture on Gravatar." +msgstr "Puedes cambiar la imagen de tu perfil en Gravatar." + +#: wp-admin/plugins.php:746 +msgid "Plugin resumed." +msgstr "Plugin reanudado." + +#: wp-admin/plugins.php:742 +msgid "Selected plugins deactivated." +msgstr "Plugins seleccionados desactivados." + +#: wp-admin/plugins.php:740 +msgid "Plugin deactivated." +msgstr "Plugin desactivado." + +#: wp-admin/plugins.php:738 +msgid "Selected plugins activated." +msgstr "Plugins seleccionados activados." + +#: wp-admin/plugins.php:736 +msgid "Plugin activated." +msgstr "Plugin activado." + +#: wp-admin/plugins.php:731 +msgid "The selected plugins have been deleted." +msgstr "Los plugins seleccionados han sido borrados." + +#: wp-admin/plugins.php:729 +msgid "The selected plugin has been deleted." +msgstr "El plugin seleccionado ha sido borrado." + +#. translators: 1: Plugin file, 2: Error message. +#: wp-admin/plugins.php:644 +msgid "The plugin %1$s has been deactivated due to an error: %2$s" +msgstr "El plugin %1$s ha sido desactivado debido a un error: %2$s" + +#. translators: %s: Link to documentation on child themes. +#: wp-admin/theme-editor.php:455 +msgid "If you need to tweak more than your theme’s CSS, you might want to try making a child theme." +msgstr "Si necesitas retocar algo más que el CSS de tu tema, quizá quieras intentar crear un tema hijo." + +#: wp-admin/theme-editor.php:447 +msgid "You appear to be making direct edits to your theme in the WordPress dashboard. It is not recommended! Editing your theme directly could break your site and your changes may be lost in future updates." +msgstr "Parece que estás haciendo ediciones directas en tu tema en el escritorio de WordPress. ¡No lo recomendamos! Editar tu tema directamente puede romper tu sitio y tus cambios podrían perderse en futuras actualizaciones." + +#. translators: Maximum number of words used in a preview of a draft on the +#. dashboard. +#: wp-admin/includes/dashboard.php:663 +msgctxt "draft_length" +msgid "10" +msgstr "10" + +#: wp-admin/includes/file.php:492 wp-admin/plugin-editor.php:123 +#: wp-admin/theme-editor.php:351 +msgid "File does not exist! Please double check the name and try again." +msgstr "¡El archivo no existe! Por favor, vuelve a revisar el nombre e inténtalo de nuevo." + +#. translators: 1: $image, 2: WP_Image_Editor +#: wp-admin/includes/image-edit.php:364 wp-admin/includes/image-edit.php:459 +#: wp-admin/includes/image-edit.php:638 +msgid "%1$s needs to be a %2$s object." +msgstr "%1$s tiene que ser un objeto %2$s." + +#. translators: %s: Recovery Mode exit link. +#: wp-admin/includes/update.php:1030 +msgid "You are in recovery mode. This means there may be an error with a theme or plugin. To exit recovery mode, log out or use the Exit button. Exit Recovery Mode" +msgstr "Estás en el modo de recuperación. Esto significa que puede haber un error con un tema o plugin. Para salir del modo de recuperación cierra la sesión o usa el botón de salir. Salir del modo de recuperación" + +#. translators: Tab heading for Site Health Info page. +#: wp-admin/site-health.php:18 +msgctxt "Site Health" +msgid "Info" +msgstr "Información" + +#. translators: Tab heading for Site Health Status page. +#: wp-admin/site-health.php:16 +msgctxt "Site Health" +msgid "Status" +msgstr "Estado" + +#: wp-admin/includes/class-wp-debug-data.php:857 +msgid "Themes directory location" +msgstr "Ubicación del directorio de temas" + +#: wp-admin/includes/class-wp-debug-data.php:225 +msgctxt "comment status" +msgid "Closed" +msgstr "Cerrados" + +#. translators: %s: Number of critical issues found. +#: wp-admin/site-health.php:260 wp-admin/js/site-health.js:148 +msgid "%s critical issue" +msgid_plural "%s critical issues" +msgstr[0] "%s error crítico" +msgstr[1] "%s errores críticos" + +#: wp-admin/update-core.php:262 +msgid "https://wordpress.org/documentation/article/updating-wordpress/" +msgstr "https://wordpress.org/documentation/article/updating-wordpress/" + +#: wp-admin/includes/class-wp-site-health.php:1365 +msgid "Get help resolving this issue." +msgstr "Obtener ayuda para resolver este problema." + +#: wp-admin/includes/class-wp-site-health.php:1248 +msgid "Learn more about what WordPress requires to run." +msgstr "Lee más sobre qué necesita WordPress para funcionar." + +#. translators: Localized version of WordPress requirements if one exists. +#: wp-admin/includes/class-wp-site-health.php:1247 +msgid "https://wordpress.org/about/requirements/" +msgstr "https://es.wordpress.org/about/requirements/" + +#: wp-admin/includes/class-wp-site-health.php:1242 +msgid "The SQL server is a required piece of software for the database WordPress uses to store all your site’s content and settings." +msgstr "El servidor SQL es una parte de software obligatoria que la base de datos de WordPress usa para almacenar el contenido y ajustes de tu sitio." + +#: wp-admin/includes/class-wp-site-health.php:913 +msgid "PHP modules perform most of the tasks on the server that make your site run. Any changes to these must be made by your server administrator." +msgstr "Los módulos PHP realizan la mayoría de las tareas en el servidor que hacen que tu sitio funcione. Cualquier cambio en ellos debería hacerlo el administrador de tu servidor." + +#: wp-admin/includes/class-wp-site-health.php:504 +msgid "Manage your themes" +msgstr "Gestiona tus temas" + +#: wp-admin/includes/class-wp-site-health.php:471 +msgid "Manage inactive plugins" +msgstr "Gestionar los plugins inactivos" + +#: wp-admin/includes/class-wp-site-health.php:417 +msgid "Update your plugins" +msgstr "Actualiza tus plugins" + +#: wp-admin/includes/class-wp-site-health.php:370 +msgid "Manage your plugins" +msgstr "Gestionar tus plugins" + +#: wp-admin/includes/class-wp-privacy-policy-content.php:338 +msgid "View Privacy Policy Guide." +msgstr "Ver la guía de la política de privacidad." + +#: wp-admin/includes/class-wp-debug-data.php:181 +msgid "User Language" +msgstr "Idioma del usuario" + +#. translators: 1: WP_DEBUG_DISPLAY, 2: WP_DEBUG +#: wp-admin/includes/class-wp-site-health.php:1440 +msgid "The value, %1$s, has either been enabled by %2$s or added to your configuration file. This will make errors display on the front end of your site." +msgstr "El valor, %1$s, tiene que activarse mediante %2$s o añadirse a tu archivo de configuración. Esto hará que los errores se visualicen en la parte visible de tu sitio." + +#. translators: Background update finished notification email subject. %s: Site +#. title. +#: wp-admin/includes/class-wp-automatic-updater.php:1661 +msgid "[%s] Background Update Finished" +msgstr "[%s] Actualización en segundo plano finalizada" + +#. translators: Background update failed notification email subject. %s: Site +#. title. +#: wp-admin/includes/class-wp-automatic-updater.php:1658 +msgid "[%s] Background Update Failed" +msgstr "[%s] Las actualizaciones en segundo plano han fallado" + +#: wp-admin/plugins.php:680 +msgid "Plugin could not be resumed because it triggered a fatal error." +msgstr "El plugin no se ha podido reanudar porque ha provocado un error fatal." + +#: wp-admin/includes/class-wp-site-health.php:621 +#: wp-admin/includes/class-wp-site-health.php:667 +msgid "You should remove inactive themes" +msgstr "Deberías eliminar los temas inactivos." + +#: wp-admin/includes/class-wp-site-health.php:591 +msgid "Your site has 1 installed theme, and it is up to date." +msgstr "Tu sitio tiene 1 tema instalado y está actualizado." + +#: wp-admin/includes/class-wp-site-health.php:423 +msgid "Your site has 1 active plugin, and it is up to date." +msgstr "Tu sitio tiene 1 plugin activo y está actualizado." + +#: wp-admin/site-health.php:285 +msgid "Passed tests" +msgstr "Pruebas completadas" + +#: wp-admin/site-health.php:48 +msgid "Sorry, you are not allowed to access site health information." +msgstr "Lo siento, no tienes permisos para acceder a la información de salud de tu sitio." + +#: wp-admin/site-health-info.php:57 +msgid "Copy site info to clipboard" +msgstr "Copiar la información del sitio al portapapeles" + +#: wp-admin/site-health-info.php:51 +msgid "If you want to export a handy list of all the information on this page, you can use the button below to copy it to the clipboard. You can then paste it in a text file and save it to your device, or paste it in an email exchange with a support engineer or theme/plugin developer for example." +msgstr "Si quieres exportar una lista manejable de toda la información de esta página, puedes usar el botón de abajo para copiarla en el portapapeles. Luego, puedes pegarla en un archivo de texto y guardarla en tu dispositivo o pegarla en un correo electrónico para, por ejemplo, enviarla a un ingeniero de soporte o a un desarrollador de temas/plugins." + +#: wp-admin/site-health-info.php:23 wp-admin/site-health.php:226 +msgid "The Site Health check requires JavaScript." +msgstr "El chequeo de salud del sitio necesita JavaScript." + +#: wp-admin/site-health-info.php:41 +msgid "Site Health Info" +msgstr "Información de salud del sitio" + +#: wp-admin/update-core.php:549 wp-admin/update-core.php:742 +msgid "This update does not work with your version of PHP." +msgstr "Esta actualización no funciona con tu versión de PHP." + +#: wp-admin/includes/class-wp-posts-list-table.php:543 +msgid "All formats" +msgstr "Todos los formatos" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/class-wp-posts-list-table.php:539 +msgid "Filter by post format" +msgstr "Filtrar por formato de entrada" + +#: wp-admin/includes/plugin.php:2592 wp-admin/includes/plugin.php:2674 +msgid "Go to the Plugins screen" +msgstr "Ir a la pantalla de plugins" + +#. translators: %s: The filename of the package. +#: wp-admin/includes/file.php:1516 +msgid "The authenticity of %s could not be verified." +msgstr "No se ha podido verificar la identidad de %s." + +#. translators: %s: The filename of the package. +#: wp-admin/includes/file.php:1468 +msgid "The authenticity of %s could not be verified as no signature was found." +msgstr "No se ha podido verificar la identidad de %s porque no se ha encontrado ninguna firma." + +#. translators: %s: The filename of the package. +#: wp-admin/includes/file.php:1416 wp-admin/includes/file.php:1450 +msgid "The authenticity of %s could not be verified as signature verification is unavailable on this system." +msgstr "No se ha podido verificar la identidad de %s porque la verificación de firma no está disponible en este sistema." + +#. translators: %s: Eraser friendly name. +#: wp-admin/includes/ajax-actions.php:5229 +msgid "Eraser callback is not valid: %s." +msgstr "La llamada de retorno del elemento de borrado no es válida: %s." + +#. translators: %s: Eraser friendly name. +#: wp-admin/includes/ajax-actions.php:5219 +msgid "Eraser does not include a callback: %s." +msgstr "El borrador no incluye una llamada de retorno: %s." + +#: wp-admin/includes/ajax-actions.php:4941 +#: wp-admin/includes/ajax-actions.php:5132 +msgid "Sorry, you are not allowed to perform this action." +msgstr "Lo siento, no tienes permisos realizar esta acción" + +#. translators: 1: Name of the constant used. 2: List of allowed hostnames. +#: wp-admin/includes/class-wp-site-health.php:2126 +msgid "HTTP requests have been blocked by the %1$s constant, with some allowed hosts: %2$s." +msgstr "Las peticiones HTTP han sido bloqueadas por la constante %1$s, con algunos hosts permitidos: %2$s." + +#. translators: %s: Name of the constant used. +#: wp-admin/includes/class-wp-site-health.php:2111 +msgid "HTTP requests have been blocked by the %s constant, with no allowed hosts." +msgstr "Las peticiones HTTP han sido bloqueadas por la constante %s, no se permite ningún host." + +#. translators: 1: The name of the drop-in. 2: The name of the database engine. +#: wp-admin/includes/class-wp-site-health.php:1296 +msgid "You are using a %1$s drop-in which might mean that a %2$s database is not being used." +msgstr "Estás usando el dependiente %1$s que podría significar que no se está usando una base de datos %2$s." + +#. translators: Localized team handbook, if one exists. +#: wp-admin/includes/class-wp-site-health.php:918 +msgid "https://make.wordpress.org/hosting/handbook/handbook/server-environment/#php-extensions" +msgstr "https://make.wordpress.org/hosting/handbook/handbook/server-environment/#php-extensions" + +#. translators: 1: Link to the hosting group page about recommended PHP +#. modules. 2: Additional link attributes. 3: Accessibility text. +#: wp-admin/includes/class-wp-site-health.php:916 +msgid "The WordPress Hosting Team maintains a list of those modules, both recommended and required, in the team handbook%3$s." +msgstr "El equipo de alojamiento de WordPress mantiene una lista de estos módulos, tanto los recomendados como los obligatorios, en el manual del equipo %3$s." + +#: wp-admin/includes/class-wp-site-health.php:259 +#: wp-admin/includes/class-wp-site-health.php:737 +#: wp-admin/includes/class-wp-site-health.php:908 +#: wp-admin/includes/class-wp-site-health.php:1146 +#: wp-admin/includes/class-wp-site-health.php:1187 +#: wp-admin/includes/class-wp-site-health.php:1237 +#: wp-admin/includes/class-wp-site-health.php:1661 +#: wp-admin/includes/class-wp-site-health.php:2037 +#: wp-admin/includes/class-wp-site-health.php:2080 +#: wp-admin/includes/class-wp-site-health.php:2151 +#: wp-admin/includes/class-wp-site-health.php:2262 +#: wp-admin/includes/class-wp-site-health.php:2416 +#: wp-admin/includes/class-wp-site-health.php:2541 +#: wp-admin/includes/class-wp-site-health.php:2652 +msgid "Performance" +msgstr "Rendimiento" + +#. translators: 1: The amount of inactive themes. 2: The default theme for +#. WordPress. 3: The currently active theme. +#: wp-admin/includes/class-wp-site-health.php:689 +msgid "Your site has %1$d inactive theme, other than %2$s, the default WordPress theme, and %3$s, your active theme." +msgid_plural "Your site has %1$d inactive themes, other than %2$s, the default WordPress theme, and %3$s, your active theme." +msgstr[0] "Tu sitio tiene %1$d tema inactivo, aparte de %2$s, el tema por defecto de WordPress, y %3$s, tu tema activo." +msgstr[1] "Tu sitio tiene %1$d temas inactivos, aparte de %2$s, el tema por defecto de WordPress, y %3$s, tu tema activo." + +#: wp-admin/includes/class-wp-site-health.php:682 +#: wp-admin/includes/class-wp-site-health.php:698 +msgid "You should consider removing any unused themes to enhance your site’s security." +msgstr "Deberías plantearte eliminar cualquier tema no usado para mejorar la seguridad de tu sitio." + +#. translators: 1: The amount of inactive themes. 2: The currently active +#. theme. +#: wp-admin/includes/class-wp-site-health.php:674 +msgid "Your site has %1$d inactive theme, other than %2$s, your active theme." +msgid_plural "Your site has %1$d inactive themes, other than %2$s, your active theme." +msgstr[0] "Tu sitio tiene %1$d tema inactivo, aparte de %2$s, tu tema activo." +msgstr[1] "Tu sitio tiene %1$d temas inactivos, aparte de %2$s, tu tema activo." + +#. translators: %d: The number of inactive themes. +#: wp-admin/includes/class-wp-site-health.php:628 +#: wp-admin/includes/class-wp-site-health.php:647 +msgid "Your site has %d inactive theme." +msgid_plural "Your site has %d inactive themes." +msgstr[0] "Tu sitio tiene %d tema inactivo." +msgstr[1] "Tu sitio tiene %d temas inactivos." + +#: wp-admin/includes/class-wp-site-health.php:465 +msgid "Inactive plugins are tempting targets for attackers. If you are not going to use a plugin, you should consider removing it." +msgstr "Los plugins inactivos son objetivos tentadores para los atacantes. Si no vas a usar un plugin, deberías plantearte eliminarlo." + +#. translators: %d: The number of inactive plugins. +#: wp-admin/includes/class-wp-site-health.php:458 +msgid "Your site has %d inactive plugin." +msgid_plural "Your site has %d inactive plugins." +msgstr[0] "Tu sitio tiene %d plugin inactivo." +msgstr[1] "Tu sitio tiene %d plugins inactivos." + +#: wp-admin/includes/class-wp-site-health.php:320 +#: wp-admin/includes/class-wp-site-health.php:360 +#: wp-admin/includes/class-wp-site-health.php:494 +#: wp-admin/includes/class-wp-site-health.php:849 +#: wp-admin/includes/class-wp-site-health.php:1277 +#: wp-admin/includes/class-wp-site-health.php:1322 +#: wp-admin/includes/class-wp-site-health.php:1392 +#: wp-admin/includes/class-wp-site-health.php:1474 +#: wp-admin/includes/class-wp-site-health.php:1615 +#: wp-admin/includes/class-wp-site-health.php:1734 +#: wp-admin/includes/class-wp-site-health.php:1809 +#: wp-admin/includes/class-wp-site-health.php:1850 +#: wp-admin/includes/class-wp-site-health.php:1900 +#: wp-admin/includes/class-wp-site-health.php:2354 +msgid "Security" +msgstr "Seguridad" + +#: wp-admin/erase-personal-data.php:96 +msgid "Erase personal data list" +msgstr "Borrar la lista de datos personales." + +#: wp-admin/erase-personal-data.php:95 +msgid "Erase personal data list navigation" +msgstr "Borrar la navegación de la lista de datos personales" + +#: wp-admin/erase-personal-data.php:94 +msgid "Filter erase personal data list" +msgstr "Filtro para borrar la lista de datos personales" + +#: wp-admin/export-personal-data.php:96 +msgid "Export personal data list" +msgstr "Exportar lista de datos personales" + +#: wp-admin/export-personal-data.php:95 +msgid "Export personal data list navigation" +msgstr "Exportar lista de datos de navegación personal" + +#: wp-admin/export-personal-data.php:94 +msgid "Filter export personal data list" +msgstr "Filtrar la lista de datos personales de exportación" + +#. translators: 1: Plugin name, 2: Details URL, 3: Additional link attributes, +#. 4: Version number 5: URL to Update PHP page. +#: wp-admin/includes/update.php:572 +msgid "There is a new version of %1$s available, but it does not work with your version of PHP. View version %4$s details or learn more about updating PHP." +msgstr "Hay disponible una nueva versión de %1$s, pero no funciona con tu versión de PHP. Mira los detalles de la versión %4$s o aprende más sobre cómo actualizar PHP." + +#: wp-admin/includes/class-wp-plugins-list-table.php:1284 +msgid "This plugin failed to load properly and is paused during recovery mode." +msgstr "Este plugin no se ha cargado correctamente y está en pausa durante el modo de recuperación." + +#: wp-admin/includes/theme.php:1247 +msgid "Go to the Themes screen" +msgstr "Ir a la pantalla de temas" + +#: wp-admin/includes/class-wp-debug-data.php:2018 +msgid "Total size is not available. Some errors were encountered when determining the size of your installation." +msgstr "El tamaño total no está disponible. Se han encontrado algunos errores al determinar el tamaño de tu instalación." + +#: wp-admin/includes/class-wp-debug-data.php:1967 +msgid "The size cannot be calculated. The directory is not accessible. Usually caused by invalid permissions." +msgstr "No se puede calcular el tamaño. El directorio no está accesible. Normalmente provocado por permisos no válidos." + +#: wp-admin/includes/class-wp-debug-data.php:1974 +msgid "The directory size calculation has timed out. Usually caused by a very large number of sub-directories and files." +msgstr "El cálculo del tamaño del directorio se ha pasado de tiempo. Normalmente se debe a la existencia de un gran número de subdirectorios y archivos." + +#: wp-admin/includes/class-wp-debug-data.php:1599 +msgid "These settings alter where and how parts of WordPress are loaded." +msgstr "Estos ajustes alteran dónde y cómo se cargan partes de WordPress." + +#. translators: %s: Number of items with no issues. +#: wp-admin/site-health.php:294 wp-admin/js/site-health.js:158 +msgid "%s item with no issues detected" +msgid_plural "%s items with no issues detected" +msgstr[0] "Detectado %s elemento sin problemas" +msgstr[1] "Detectados %s elementos sin problemas" + +#. translators: %s: Number of recommended improvements. +#: wp-admin/site-health.php:273 wp-admin/js/site-health.js:153 +msgid "%s recommended improvement" +msgid_plural "%s recommended improvements" +msgstr[0] "%s mejora recomendada" +msgstr[1] "%s mejoras recomendadas" + +#: wp-admin/site-health.php:254 +msgid "The site health check shows information about your WordPress configuration and items that may need your attention." +msgstr "La comprobación del estado del sitio muestra información crítica acerca de la configuración de tu WordPress y los elementos que podrían requerir tu atención." + +#: wp-admin/includes/dashboard.php:68 wp-admin/site-health.php:251 +msgid "Site Health Status" +msgstr "Estado de salud del sitio" + +#: wp-admin/site-health.php:245 +msgid "Everything is running smoothly here." +msgstr "Todo va como la seda por aquí." + +#: wp-admin/site-health.php:241 +msgid "Great job!" +msgstr "¡Buen trabajo!" + +#: wp-admin/about.php:55 wp-admin/contribute.php:42 wp-admin/credits.php:45 +#: wp-admin/freedoms.php:48 wp-admin/includes/ms.php:1136 +#: wp-admin/nav-menus.php:811 wp-admin/options-privacy.php:161 +#: wp-admin/privacy-policy-guide.php:44 wp-admin/privacy.php:42 +#: wp-admin/site-health.php:141 +msgid "Secondary menu" +msgstr "Menú secundario" + +#: wp-admin/includes/class-wp-site-health.php:3242 +msgid "The loopback request to your site completed successfully." +msgstr "La solicitud de loopback a tu sitio se completo correctamente." + +#. translators: %d: The HTTP response code returned. +#: wp-admin/includes/class-wp-site-health.php:3234 +msgid "The loopback request returned an unexpected http status code, %d, it was not possible to determine if this will prevent features from working as expected." +msgstr "La solicitud de loopback ha devuelto un código HTTP de estado inesperado, %d, no ha sido posible determinar si esto impedirá que algunas características funcionen como deben." + +#: wp-admin/includes/class-wp-site-health.php:3218 +msgid "The loopback request to your site failed, this means features relying on them are not currently working as expected." +msgstr "La solicitud de loopback a tu sitio ha fallado. Eso quiere decir que las características que dependan de ello no van a funcionar correctamente." + +#: wp-admin/includes/class-wp-site-health.php:3010 +msgid "No scheduled events exist on this site." +msgstr "No hay eventos programados en este sitio." + +#: wp-admin/includes/class-wp-site-health.php:2817 +msgid "REST API availability" +msgstr "Disponibilidad de la API REST" + +#: wp-admin/includes/class-wp-site-health.php:2864 +msgid "Loopback request" +msgstr "Solicitud de loopback" + +#: wp-admin/includes/class-wp-site-health.php:2822 +msgid "Debugging enabled" +msgstr "Depuración activada" + +#: wp-admin/includes/class-wp-site-health.php:2813 +msgid "HTTP Requests" +msgstr "Solicitudes HTTP" + +#: wp-admin/includes/class-wp-site-health.php:2809 +msgid "Scheduled events" +msgstr "Eventos programados" + +#: wp-admin/includes/class-wp-site-health.php:2805 +msgid "Secure communication" +msgstr "Comunicación segura" + +#: wp-admin/includes/class-wp-site-health.php:2870 +msgid "HTTPS status" +msgstr "Estado HTTPS" + +#: wp-admin/includes/class-wp-site-health.php:2789 +msgid "PHP Extensions" +msgstr "Extensiones PHP" + +#: wp-admin/includes/class-wp-site-health.php:2801 +msgid "Database Server version" +msgstr "Versión de la base de datos del servidor" + +#: wp-admin/includes/class-wp-site-health.php:2785 +msgid "PHP Version" +msgstr "Versión PHP" + +#: wp-admin/includes/class-wp-site-health.php:2781 +msgid "Theme Versions" +msgstr "Versiones de tema" + +#: wp-admin/includes/class-wp-site-health.php:2777 +msgid "Plugin Versions" +msgstr "Versiones de plugin" + +#: wp-admin/includes/class-wp-site-health.php:2773 +msgid "WordPress Version" +msgstr "Versión de WordPress" + +#. translators: %s: The name of the query parameter being tested. +#: wp-admin/includes/class-wp-site-health.php:2240 +msgid "The REST API did not process the %s query parameter correctly." +msgstr "La API REST no ha procesado el parámetro de consulta %s correctamente." + +#: wp-admin/includes/class-wp-site-health.php:2234 +msgid "The REST API did not behave correctly" +msgstr "La API REST no se ha comportado correctamente" + +#: wp-admin/includes/class-wp-site-health.php:2211 +msgid "The REST API encountered an unexpected result" +msgstr "La API REST ha encontrado un resultado inesperado" + +#: wp-admin/includes/class-wp-site-health.php:2191 +msgid "The REST API encountered an error" +msgstr "La API REST ha encontrado un error" + +#: wp-admin/includes/class-wp-site-health.php:2156 +msgid "The REST API is one way that WordPress and other applications communicate with the server. For example, the block editor screen relies on the REST API to display and save your posts and pages." +msgstr "La API REST es una forma en que WordPress y otras aplicaciones se comunican con el servidor. Un ejemplo es la pantalla del editor de bloques, que se basa en esto para mostrar y guardar tus entradas y páginas." + +#: wp-admin/includes/class-wp-site-health.php:2148 +msgid "The REST API is available" +msgstr "La API REST está disponible" + +#: wp-admin/includes/class-wp-site-health.php:2120 +msgid "HTTP requests are partially blocked" +msgstr "Las peticiones HTTP están parcialmente bloqueadas" + +#: wp-admin/includes/class-wp-site-health.php:2105 +msgid "HTTP requests are blocked" +msgstr "Las peticiones HTTP están bloqueadas" + +#: wp-admin/includes/class-wp-site-health.php:2085 +msgid "It is possible for site maintainers to block all, or some, communication to other sites and services. If set up incorrectly, this may prevent plugins and themes from working as intended." +msgstr "Los mantenedores de sitios puede bloquear todas o parte de las comunicaciones con otros sitios y servicios. Si no se configura bien, esto puede impedir que los plugins y temas funcionen correctamente." + +#: wp-admin/includes/class-wp-site-health.php:2077 +msgid "HTTP requests seem to be working as expected" +msgstr "Parece que las peticiones HTTP están funcionando como deben" + +#: wp-admin/includes/class-wp-site-health.php:2053 +msgid "Your site could not complete a loopback request" +msgstr "Tu sitio no ha podido realizar una solicitud de loopback." + +#: wp-admin/includes/class-wp-site-health.php:2042 +msgid "Loopback requests are used to run scheduled events, and are also used by the built-in editors for themes and plugins to verify code stability." +msgstr "Las solicitudes de loopback se utilizan para ejecutar eventos programados y también los utilizan los editores integrados para temas y plugins para verificar la estabilidad del código." + +#: wp-admin/includes/class-wp-site-health.php:2034 +msgid "Your site can perform loopback requests" +msgstr "Tu sitio puede realizar solicitudes de loopback" + +#: wp-admin/includes/class-wp-site-health.php:1772 +msgid "Background updates may not be working properly" +msgstr "Las actualizaciones en segundo plano pueden no estar funcionando correctamente" + +#: wp-admin/includes/class-wp-site-health.php:1763 +msgid "Background updates are not working as expected" +msgstr "Las actualizaciones en segundo plano no están funcionando como se espera" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/class-wp-site-health.php:1760 +msgid "Passed" +msgstr "Aprobado" + +#: wp-admin/includes/class-wp-site-health.php:1739 +msgid "Background updates ensure that WordPress can auto-update if a security update is released for the version you are currently using." +msgstr "Las actualizaciones en segundo plano garantizan que WordPress se puede actualizar automáticamente si se publica una actualización de seguridad para la versión que estás utilizando actualmente." + +#: wp-admin/includes/class-wp-site-health.php:1731 +msgid "Background updates are working" +msgstr "Las actualizaciones en segundo plano están funcionando" + +#. translators: %s: The name of the failed cron event. +#: wp-admin/includes/class-wp-site-health.php:1696 +msgid "The scheduled event, %s, failed to run. Your site still works, but this may indicate that scheduling posts or automated updates may not work as intended." +msgstr "El evento programado, %s, no se ha podido ejecutar. Tu sitio todavía funciona, pero esto puede indicar que las entradas programadas o las actualizaciones automáticas no funcionen como deberían." + +#: wp-admin/includes/class-wp-site-health.php:1690 +msgid "A scheduled event has failed" +msgstr "Un evento programado ha fallado" + +#. translators: %s: The error message returned while from the cron scheduler. +#: wp-admin/includes/class-wp-site-health.php:1683 +msgid "While trying to test your site’s scheduled events, the following error was returned: %s" +msgstr "Al intentar probar los eventos programados de tu sitio, se han encontrado los siguientes errores: %s" + +#: wp-admin/includes/class-wp-site-health.php:1677 +msgid "It was not possible to check your scheduled events" +msgstr "No ha sido posible verificar tus eventos programados" + +#: wp-admin/includes/class-wp-site-health.php:1666 +msgid "Scheduled events are what periodically looks for updates to plugins, themes and WordPress itself. It is also what makes sure scheduled posts are published on time. It may also be used by various plugins to make sure that planned actions are executed." +msgstr "Los eventos programados son los que buscan, periódicamente, actualizaciones de plugins, temas y de WordPress. También son los que se aseguran de que las publicaciones programadas se publiquen a tiempo. También pueden usarlos diversos plugins para asegurar que se ejecutan las acciones planeadas." + +#: wp-admin/includes/class-wp-site-health.php:1658 +msgid "Scheduled events are running" +msgstr "Los eventos programados se están ejecutando" + +#: wp-admin/includes/class-wp-site-health.php:1639 +msgid "Talk to your web host about OpenSSL support for PHP." +msgstr "Consulta a tu alojamiento web sobre la compatibilidad con OpenSSL para PHP." + +#: wp-admin/includes/class-wp-site-health.php:1635 +msgid "Your site is unable to communicate securely with other services" +msgstr "No ha sido posible comunicar tu sitio de forma segura con otros servicios" + +#: wp-admin/includes/class-wp-site-health.php:1631 +msgid "Your site can communicate securely with other services" +msgstr "Tu sitio puede comunicarse de forma segura con otros servicios" + +#: wp-admin/includes/class-wp-site-health.php:1620 +msgid "Securely communicating between servers are needed for transactions such as fetching files, conducting sales on store sites, and much more." +msgstr "La comunicación segura entre servidores es necesaria para transacciones como la búsqueda de archivos, realización de ventas en tiendas online y mucho más." + +#: wp-admin/includes/class-wp-site-health.php:1484 +msgid "Learn more about why you should use HTTPS" +msgstr "Aprende más sobre porqué deberías usar HTTPS" + +#: wp-admin/includes/class-wp-site-health.php:1497 +msgid "Your website does not use HTTPS" +msgstr "Tu web no usa HTTPS" + +#: wp-admin/includes/class-wp-site-health.php:1471 +msgid "Your website is using an active HTTPS connection" +msgstr "Tu web está usando una conexión HTTPS activa" + +#. translators: %s: URL to Settings > General > Site Address. +#: wp-admin/includes/class-wp-site-health.php:1505 +msgid "You are accessing this website using HTTPS, but your Site Address is not set up to use HTTPS by default." +msgstr "Estás accediendo a esta web usando HTTPS, pero tu dirección del sitio no está configurada para usar HTTPS por defecto." + +#: wp-admin/includes/class-wp-site-health.php:1427 +msgid "Your site is set to display errors to site visitors" +msgstr "Tu sitio está configurado para mostrar errores a los visitantes del sitio" + +#. translators: %s: WP_DEBUG_LOG +#: wp-admin/includes/class-wp-site-health.php:1420 +msgid "The value, %s, has been added to this website’s configuration file. This means any errors on the site will be written to a file which is potentially available to all users." +msgstr "El valor %s ha sido añadido al archivo de configuración de esta web. Esto significa que, cualquier error en el sitio, será escrito en un archivo que está potencialmente disponible para todos los usuarios." + +#: wp-admin/includes/class-wp-site-health.php:1412 +msgid "Your site is set to log errors to a potentially public file" +msgstr "Tu sitio está configurado para registrar errores en un archivo potencialmente público" + +#: wp-admin/includes/class-wp-site-health.php:1397 +msgid "Debug mode is often enabled to gather more details about an error or site failure, but may contain sensitive information which should not be available on a publicly available website." +msgstr "El modo de depuración suele estar activado para recopilar más detalles acerca de un error o de un fallo en el sitio, pero puede contener información sensible que no debería estar disponible en una web disponible públicamente." + +#: wp-admin/includes/class-wp-site-health.php:1389 +msgid "Your site is not set to output debug information" +msgstr "Tu sitio está configurado para no mostrar la información de depuración" + +#. translators: 1: The IP address WordPress.org resolves to. 2: The error +#. returned by the lookup. +#: wp-admin/includes/class-wp-site-health.php:1354 +msgid "Your site is unable to reach WordPress.org at %1$s, and returned the error: %2$s" +msgstr "Tu sitio no ha podido conectar con WordPress.org en %1$s, y ha devuelto el error: %2$s" + +#: wp-admin/includes/class-wp-site-health.php:1344 +msgid "Could not reach WordPress.org" +msgstr "No se ha podido conectar con WordPress.org" + +#: wp-admin/includes/class-wp-site-health.php:1327 +msgid "Communicating with the WordPress servers is used to check for new versions, and to both install and update WordPress core, themes or plugins." +msgstr "La comunicación con los servidores de WordPress se usa para comprobar nuevas versiones y, también, para instalar y actualizar el núcleo de WordPress, los temas o los plugins." + +#: wp-admin/includes/class-wp-site-health.php:1319 +msgid "Can communicate with WordPress.org" +msgstr "Puedes comunicarte con WordPress.org" + +#. translators: 1: The database engine in use (MySQL or MariaDB). 2: Database +#. server minimum version number. +#: wp-admin/includes/class-wp-site-health.php:1283 +msgid "WordPress requires %1$s version %2$s or higher. Contact your web hosting company to correct this." +msgstr "WordPress requiere versión %2$s o superior de %1$s. Contacta con tu empresa de alojamiento web para corregir esto." + +#: wp-admin/includes/class-wp-site-health.php:1276 +msgid "Severely outdated SQL server" +msgstr "Servidor SQL muy anticuado" + +#. translators: 1: The database engine in use (MySQL or MariaDB). 2: Database +#. server recommended version number. +#: wp-admin/includes/class-wp-site-health.php:1266 +msgid "For optimal performance and security reasons, you should consider running %1$s version %2$s or higher. Contact your web hosting company to correct this." +msgstr "Para un rendimiento óptimo y por razones de seguridad, deberías plantearte ejecutar la versión %2$s o superior de %1$s. Contacta con tu empresa de alojamiento web para corregirlo." + +#: wp-admin/includes/class-wp-site-health.php:1260 +msgid "Outdated SQL server" +msgstr "Servidor SQL obsoleto" + +#: wp-admin/includes/class-wp-site-health.php:1234 +msgid "SQL server is up to date" +msgstr "El servidor SQL está actualizado" + +#: wp-admin/includes/class-wp-site-health.php:1125 +msgid "One or more required modules are missing" +msgstr "Faltan uno o más módulos necesarios" + +#: wp-admin/includes/class-wp-site-health.php:1122 +msgid "One or more recommended modules are missing" +msgstr "Faltan uno o más módulos recomendados" + +#. translators: %s: The module name. +#: wp-admin/includes/class-wp-site-health.php:1094 +msgid "The optional module, %s, is not installed, or has been disabled." +msgstr "El módulo opcional, %s, no está instalado, o ha sido desactivado." + +#. translators: %s: The module name. +#: wp-admin/includes/class-wp-site-health.php:1085 +msgid "The required module, %s, is not installed, or has been disabled." +msgstr "El módulo requerido, %s, no está instalado, o ha sido desactivado." + +#. translators: Hidden accessibility text. +#: wp-admin/includes/class-wp-site-health.php:1082 +#: wp-admin/includes/class-wp-site-health.php:1351 +#: wp-admin/includes/class-wp-site-health.php:1768 +msgid "Error" +msgstr "Error" + +#: wp-admin/includes/class-wp-site-health.php:905 +msgid "Required and recommended modules are installed" +msgstr "Los módulos necesarios y recomendados están instalados" + +#: wp-admin/includes/class-wp-site-health.php:712 +msgid "Your site does not have any default theme. Default themes are used by WordPress automatically if anything is wrong with your chosen theme." +msgstr "Tu sitio no tiene ningún tema por defecto. Los temas por defecto son usados automáticamente por WordPress si hay algo mal con el tema que has elegido." + +#: wp-admin/includes/class-wp-site-health.php:708 +msgid "Have a default theme available" +msgstr "Tener un tema por defecto disponible" + +#. translators: 1: The default theme for WordPress. 2: The currently active +#. theme. 3: The active theme's parent theme. +#: wp-admin/includes/class-wp-site-health.php:656 +msgid "To enhance your site’s security, you should consider removing any themes you are not using. You should keep %1$s, the default WordPress theme, %2$s, your active theme, and %3$s, its parent theme." +msgstr "Para mejorar la seguridad de tu sitio, deberías plantearte eliminar cualquier tema que no estés usando. Deberías mantener %1$s, el tema por defecto de WordPress, %2$s, tu tema activo, y %3$s, su tema padre." + +#. translators: 1: The currently active theme. 2: The active theme's parent +#. theme. +#: wp-admin/includes/class-wp-site-health.php:637 +msgid "To enhance your site’s security, you should consider removing any themes you are not using. You should keep your active theme, %1$s, and %2$s, its parent theme." +msgstr "Para mejorar la seguridad de tu sitio, deberías plantearte eliminar cualquier tema que no estés usando. Deberías mantener tu tema activo, %1$s, y %2$s, su tema padre." + +#: wp-admin/includes/class-wp-site-health.php:452 +msgid "You should remove inactive plugins" +msgstr "Deberías eliminar los plugins inactivos" + +#. translators: %d: The number of themes. +#: wp-admin/includes/class-wp-site-health.php:598 +msgid "Your site has %d installed theme, and it is up to date." +msgid_plural "Your site has %d installed themes, and they are all up to date." +msgstr[0] "Tu sitio tiene %d tema instalado y está actualizado." +msgstr[1] "Tu sitio tiene %d temas instalados y todos están actualizados." + +#. translators: %d: The number of outdated themes. +#: wp-admin/includes/class-wp-site-health.php:578 +msgid "Your site has %d theme waiting to be updated." +msgid_plural "Your site has %d themes waiting to be updated." +msgstr[0] "Tu sitio tiene %d tema esperando a ser actualizado." +msgstr[1] "Tu sitio tiene %d temas esperando a ser actualizados." + +#: wp-admin/includes/class-wp-site-health.php:572 +msgid "You have themes waiting to be updated" +msgstr "Tienes temas esperando ser actualizados." + +#: wp-admin/includes/class-wp-site-health.php:499 +msgid "Themes add your site’s look and feel. It’s important to keep them up to date, to stay consistent with your brand and keep your site secure." +msgstr "Los temas añaden el aspecto y comportamiento de tu sitio. Es importante tenerlos actualizados, para mantener la coherencia con tu marca y mantener tu sitio seguro." + +#: wp-admin/includes/class-wp-site-health.php:491 +msgid "Your themes are all up to date" +msgstr "Todos tus temas están actualizados" + +#. translators: %d: The number of active plugins. +#: wp-admin/includes/class-wp-site-health.php:430 +msgid "Your site has %d active plugin, and it is up to date." +msgid_plural "Your site has %d active plugins, and they are all up to date." +msgstr[0] "Tu sitio tiene %d plugin activo y está actualizado." +msgstr[1] "Tu sitio tiene %d plugins activos y están todos actualizados." + +#. translators: %d: The number of outdated plugins. +#: wp-admin/includes/class-wp-site-health.php:405 +msgid "Your site has %d plugin waiting to be updated." +msgid_plural "Your site has %d plugins waiting to be updated." +msgstr[0] "Tu sitio tiene %d plugin esperando ser actualizado." +msgstr[1] "Tu sitio tiene %d plugins esperando ser actualizados." + +#: wp-admin/includes/class-wp-site-health.php:399 +msgid "You have plugins waiting to be updated" +msgstr "Tienes plugins esperando ser actualizados" + +#: wp-admin/includes/class-wp-site-health.php:365 +msgid "Plugins extend your site’s functionality with things like contact forms, ecommerce and much more. That means they have deep access to your site, so it’s vital to keep them up to date." +msgstr "Los plugins amplían la funcionalidad de tu sitio con cosas como formularios de contacto, comercio electrónico y muchas otras. Esto significa que tienen un profundo acceso a tu sitio y, por tanto, es vital mantenerlos actualizados." + +#: wp-admin/includes/class-wp-site-health.php:357 +msgid "Your plugins are all up to date" +msgstr "Todos tus plugins están actualizados" + +#: wp-admin/includes/class-wp-site-health.php:336 +msgid "You are currently running the latest version of WordPress available, keep it up!" +msgstr "Estás ejecutando la última versión disponible de WordPress, ¡sigue así!" + +#: wp-admin/includes/class-wp-site-health.php:323 +msgid "A new minor update is available for your site. Because minor updates often address security, it’s important to install them." +msgstr "Una actualización menor está disponible para tu sitio. Debido a que las actualizaciones menores a menudo abordan la seguridad, es importante instalarlas." + +#: wp-admin/includes/class-wp-site-health.php:315 +msgid "A new version of WordPress is available." +msgstr "Está disponible una nueva versión de WordPress." + +#: wp-admin/includes/class-wp-site-health.php:307 +msgid "Install the latest version of WordPress" +msgstr "Instalar la última versión de WordPress" + +#. translators: %s: The latest version of WordPress available. +#: wp-admin/includes/class-wp-site-health.php:300 +msgid "WordPress update available (%s)" +msgstr "Actualización de WordPress disponible (%s)" + +#: wp-admin/includes/class-wp-site-health.php:287 +msgid "Check for updates manually" +msgstr "Comprobar las actualizaciones manualmente" + +#: wp-admin/includes/class-wp-site-health.php:281 +msgid "Unable to check if any new versions of WordPress are available." +msgstr "No se ha podido comprobar si está disponible alguna nueva versión de WordPress." + +#. translators: %s: Name of the filter used. +#: wp-admin/includes/class-wp-site-health-auto-updates.php:472 +msgid "WordPress security and maintenance releases are blocked by the %s filter." +msgstr "Las versiones de seguridad y mantenimiento de WordPress están bloqueadas por el filtro %s." + +#. translators: %s: Name of the constant used. +#: wp-admin/includes/class-wp-site-health-auto-updates.php:460 +msgid "WordPress security and maintenance releases are blocked by %s." +msgstr "Las actualizaciones de seguridad y mantenimiento de WordPress están bloqueadas por %s." + +#. translators: %s: Name of the filter used. +#: wp-admin/includes/class-wp-site-health-auto-updates.php:437 +msgid "WordPress development updates are blocked by the %s filter." +msgstr "Las actualizaciones de desarrollo de WordPress están bloqueadas por el filtro %s." + +#. translators: %s: Name of the constant used. +#: wp-admin/includes/class-wp-site-health-auto-updates.php:425 +msgid "WordPress development updates are blocked by the %s constant." +msgstr "Las actualizaciones de desarrollo de WordPress están bloqueadas por la constante %s." + +#: wp-admin/includes/class-wp-site-health-auto-updates.php:400 +msgid "All of your WordPress files are writable." +msgstr "Todos tus archivos de WordPress son editables." + +#: wp-admin/includes/class-wp-site-health-auto-updates.php:395 +msgid "Some files are not writable by WordPress:" +msgstr "Algunos archivos no son editables por WordPress:" + +#: wp-admin/includes/class-wp-site-health-auto-updates.php:369 +msgid "This could mean that connections are failing to WordPress.org." +msgstr "Esto podría significar que las conexiones a WordPress.org están fallando." + +#. translators: %s: WordPress version. +#: wp-admin/includes/class-wp-site-health-auto-updates.php:366 +msgid "Couldn't retrieve a list of the checksums for WordPress %s." +msgstr "No se ha podido recuperar una lista de las sumas de comprobación para WordPress %s." + +#: wp-admin/includes/class-wp-site-health-auto-updates.php:312 +msgid "Your installation of WordPress does not require FTP credentials to perform updates." +msgstr "Tu instalación de WordPress no necesita credenciales de FTP para realizar las actualizaciones." + +#: wp-admin/includes/class-wp-site-health-auto-updates.php:303 +msgid "(Your site is performing updates over FTP due to file ownership. Talk to your hosting company.)" +msgstr "(Tu sitio se actualiza por FTP debido a los permisos de archivo. Habla con tu empresa de hospedaje.)" + +#: wp-admin/includes/class-wp-site-health-auto-updates.php:302 +msgid "Your installation of WordPress prompts for FTP credentials to perform updates." +msgstr "La instalación de WordPress solicita las credenciales de FTP para realizar actualizaciones." + +#: wp-admin/includes/class-wp-site-health-auto-updates.php:280 +msgid "No version control systems were detected." +msgstr "No se han detectado sistemas de control de versiones." + +#. translators: 1: Folder name. 2: Version control directory. +#: wp-admin/includes/class-wp-site-health-auto-updates.php:271 +msgid "The folder %1$s was detected as being under version control (%2$s)." +msgstr "La carpeta %1$s ha sido detectada bajo control de versiones (%2$s)." + +#. translators: 1: Folder name. 2: Version control directory. 3: Filter name. +#: wp-admin/includes/class-wp-site-health-auto-updates.php:258 +msgid "The folder %1$s was detected as being under version control (%2$s), but the %3$s filter is allowing updates." +msgstr "La carpeta %1$s ha sido detectada bajo control de versiones (%2$s), pero el filtro %3$s está permitiendo las actualizaciones." + +#: wp-admin/includes/class-wp-site-health-auto-updates.php:192 +msgid "A previous automatic background update could not occur." +msgstr "No se ha podido realizar una actualización de fondo automática anterior." + +#. translators: %s: Code of error shown. +#: wp-admin/includes/class-wp-site-health-auto-updates.php:183 +#: wp-admin/includes/class-wp-site-health-auto-updates.php:200 +msgid "The error code was %s." +msgstr "El código de error es %s." + +#: wp-admin/includes/class-wp-site-health-auto-updates.php:180 +msgid "When you've been able to update using the \"Update now\" button on Dashboard > Updates, this error will be cleared for future update attempts." +msgstr "Cuando hayas podido actualizar usando el botón «Actualizar ahora» en «Escritorio > Actualizaciones», se vaciará este error para futuros intentos de actualización." + +#: wp-admin/includes/class-wp-site-health-auto-updates.php:179 +#: wp-admin/includes/class-wp-site-health-auto-updates.php:194 +msgid "You would have received an email because of this." +msgstr "Habrás recibido un correo electrónico debido a esto." + +#: wp-admin/includes/class-wp-site-health-auto-updates.php:178 +msgid "A previous automatic background update ended with a critical failure, so updates are now disabled." +msgstr "Una anterior actualización automática del fondo terminó con un fallo crítico, así que ahora están desactivadas las actualizaciones." + +#. translators: %s: Name of the filter used. +#: wp-admin/includes/class-wp-site-health-auto-updates.php:129 +msgid "The %s filter is enabled." +msgstr "El filtro %s está activado." + +#. translators: %s: Name of the filter used. +#: wp-admin/includes/class-wp-site-health-auto-updates.php:105 +msgid "A plugin has prevented updates by disabling %s." +msgstr "Un plugin ha impedido las actualizaciones al desactivar %s." + +#: wp-admin/includes/class-wp-debug-data.php:1747 +msgid "The must use plugins directory" +msgstr "El directorio de plugins imprescindibles" + +#: wp-admin/includes/class-wp-debug-data.php:1144 +msgid "Theme features" +msgstr "Características del tema" + +#: wp-admin/includes/class-theme-installer-skin.php:260 +#: wp-admin/includes/class-wp-debug-data.php:1139 +msgid "Parent theme" +msgstr "Tema padre" + +#: wp-admin/includes/class-wp-debug-data.php:1134 +#: wp-admin/includes/class-wp-debug-data.php:1254 +msgid "Author website" +msgstr "Web del autor" + +#. translators: %s: Latest WordPress version number. +#. translators: %s: Latest plugin version number. +#. translators: %s: Latest theme version number. +#: wp-admin/includes/class-wp-debug-data.php:163 +#: wp-admin/includes/class-wp-debug-data.php:986 +#: wp-admin/includes/class-wp-debug-data.php:1091 +#: wp-admin/includes/class-wp-debug-data.php:1228 +#: wp-admin/includes/class-wp-debug-data.php:1374 +msgid "(Latest version: %s)" +msgstr "(Última versión: %s)" + +#. translators: 1: Plugin version number. 2: Plugin author name. +#. translators: 1: Theme version number. 2: Theme author name. +#: wp-admin/includes/class-wp-debug-data.php:792 +#: wp-admin/includes/class-wp-debug-data.php:968 +#: wp-admin/includes/class-wp-debug-data.php:1356 +msgid "Version %1$s by %2$s" +msgstr "Versión %1$s por %2$s" + +#: wp-admin/includes/class-wp-debug-data.php:787 +#: wp-admin/includes/class-wp-debug-data.php:963 +#: wp-admin/includes/class-wp-debug-data.php:1351 +msgid "No version or author information is available." +msgstr "La información de la versión o del autor no está disponible." + +#: wp-admin/includes/class-wp-debug-data.php:1635 +msgid "Server version" +msgstr "Versión del servidor" + +#. translators: %s: .htaccess +#: wp-admin/includes/class-wp-debug-data.php:497 +msgid "Your %s file contains only core WordPress features." +msgstr "Tu archivo %s solo contiene características del núcleo de WordPress." + +#. translators: %s: .htaccess +#: wp-admin/includes/class-wp-debug-data.php:494 +msgid "Custom rules have been added to your %s file." +msgstr "Se han añadido reglas personalizadas a tu archivo %s." + +#: wp-admin/includes/class-wp-debug-data.php:501 +msgid ".htaccess rules" +msgstr "Reglas de .htaccess" + +#: wp-admin/includes/class-wp-debug-data.php:469 +msgid "Is the Imagick library available?" +msgstr "¿Está disponible la biblioteca Imagick?" + +#: wp-admin/includes/class-wp-debug-data.php:460 +msgid "Is SUHOSIN installed?" +msgstr "¿Está SUHOSIN instalado?" + +#: wp-admin/includes/class-wp-debug-data.php:445 +#: wp-admin/includes/class-wp-debug-data.php:450 +msgid "cURL version" +msgstr "Versión de cURL" + +#: wp-admin/includes/class-wp-debug-data.php:436 +msgid "PHP post max size" +msgstr "PHP post max size" + +#: wp-admin/includes/class-wp-debug-data.php:432 +msgid "Upload max filesize" +msgstr "Tamaño máximo subida de archivo" + +#: wp-admin/includes/class-wp-debug-data.php:428 +msgid "Max input time" +msgstr "Tiempo máximo de entrada" + +#: wp-admin/includes/class-wp-debug-data.php:413 +#: wp-admin/includes/class-wp-debug-data.php:422 +msgid "PHP memory limit" +msgstr "Límite de memoria PHP" + +#: wp-admin/includes/class-wp-debug-data.php:407 +msgid "PHP time limit" +msgstr "Límite de tiempo de PHP" + +#: wp-admin/includes/class-wp-debug-data.php:403 +msgid "PHP max input variables" +msgstr "PHP max input variables" + +#. translators: %s: ini_get() +#: wp-admin/includes/class-wp-debug-data.php:396 +#: wp-admin/includes/class-wp-debug-data.php:607 +msgid "Unable to determine some settings, as the %s function has been disabled." +msgstr "No ha sido posible determinar algunos ajustes, ya que la función %s ha sido desactivada. " + +#: wp-admin/includes/class-wp-debug-data.php:393 +msgid "Server settings" +msgstr "Ajustes del servidor" + +#: wp-admin/includes/class-wp-debug-data.php:385 +msgid "PHP SAPI" +msgstr "PHP SAPI" + +#: wp-admin/includes/class-wp-debug-data.php:360 +msgid "(Does not support 64bit values)" +msgstr "(No es compatible con valores de 64 bits)" + +#: wp-admin/includes/class-wp-debug-data.php:360 +msgid "(Supports 64bit values)" +msgstr "(Admite valores de 64 bits)" + +#: wp-admin/includes/class-wp-debug-data.php:380 +msgid "PHP version" +msgstr "Versión de PHP" + +#: wp-admin/includes/class-wp-debug-data.php:376 +msgid "Unable to determine what web server software is used" +msgstr "No ha sido posible qué software del servidor web se utilizaba" + +#: wp-admin/includes/class-wp-debug-data.php:375 +msgid "Web server" +msgstr "Servidor web" + +#: wp-admin/includes/class-wp-debug-data.php:371 +msgid "Unable to determine server architecture" +msgstr "No se puede determinar la arquitectura del servidor" + +#: wp-admin/includes/class-wp-debug-data.php:370 +msgid "Server architecture" +msgstr "Arquitectura del servidor" + +#: wp-admin/includes/class-wp-debug-data.php:760 +msgid "Ghostscript version" +msgstr "Versión de Ghostscript" + +#: wp-admin/includes/class-wp-debug-data.php:755 +msgid "Unable to determine if Ghostscript is installed" +msgstr "No se puede determinar si Ghostscript está instalado" + +#: wp-admin/includes/class-wp-debug-data.php:712 +msgid "GD version" +msgstr "Versión de GD" + +#: wp-admin/includes/class-wp-debug-data.php:667 +msgid "Imagick Resource Limits" +msgstr "Límites de recursos de Imagick" + +#: wp-admin/includes/class-wp-debug-data.php:591 +msgid "ImageMagick version string" +msgstr "Cadena de versión de ImageMagick" + +#: wp-admin/includes/class-wp-debug-data.php:586 +msgid "ImageMagick version number" +msgstr "Número de versión de ImageMagick" + +#: wp-admin/includes/class-wp-debug-data.php:451 +#: wp-admin/includes/class-wp-debug-data.php:568 +#: wp-admin/includes/class-wp-debug-data.php:582 +#: wp-admin/includes/class-wp-debug-data.php:599 +#: wp-admin/includes/class-wp-debug-data.php:2002 wp-admin/includes/ms.php:803 +msgid "Not available" +msgstr "No disponible" + +#: wp-admin/includes/class-wp-debug-data.php:572 +msgid "Active editor" +msgstr "Editor activo" + +#: wp-admin/includes/class-wp-debug-data.php:889 +msgid "Total installation size" +msgstr "Tamaño total de la instalación" + +#: wp-admin/includes/class-wp-debug-data.php:884 +msgid "Database size" +msgstr "Tamaño de la base de datos" + +#: wp-admin/includes/class-wp-debug-data.php:843 +msgid "WordPress directory size" +msgstr "Tamaño del directorio de WordPress" + +#: wp-admin/includes/class-wp-debug-data.php:839 +msgid "WordPress directory location" +msgstr "Ubicación del directorio de WordPress" + +#: wp-admin/includes/class-wp-debug-data.php:870 +msgid "Plugins directory size" +msgstr "Tamaño del directorio de plugins" + +#: wp-admin/includes/class-wp-debug-data.php:866 +msgid "Plugins directory location" +msgstr "Ubicación del directorio de plugins" + +#: wp-admin/includes/class-wp-debug-data.php:861 +msgid "Themes directory size" +msgstr "Tamaño del directorio de temas" + +#: wp-admin/includes/class-wp-debug-data.php:1148 +#: wp-admin/includes/class-wp-debug-data.php:1259 +msgid "Theme directory location" +msgstr "Ubicación del directorio de temas" + +#: wp-admin/includes/class-wp-debug-data.php:852 +msgid "Uploads directory size" +msgstr "Tamaño del directorio de subidas" + +#: wp-admin/includes/class-wp-debug-data.php:848 +msgid "Uploads directory location" +msgstr "Ubicación del directorio de subidas" + +#. translators: 1: The IP address WordPress.org resolves to. 2: The error +#. returned by the lookup. +#: wp-admin/includes/class-wp-debug-data.php:289 +msgid "Unable to reach WordPress.org at %1$s: %2$s" +msgstr "No se ha podido llegar a WordPress.org en %1$s: %2$s" + +#: wp-admin/includes/class-wp-debug-data.php:281 +msgid "WordPress.org is reachable" +msgstr "Es posible conectarse a WordPress.org" + +#: wp-admin/includes/class-wp-debug-data.php:280 +#: wp-admin/includes/class-wp-debug-data.php:286 +#: wp-admin/includes/class-wp-site-health.php:2852 +msgid "Communication with WordPress.org" +msgstr "Comunicación con WordPress.org" + +#: wp-admin/includes/class-wp-debug-data.php:265 +msgid "Network count" +msgstr "Cantidad de redes" + +#: wp-admin/includes/class-wp-debug-data.php:260 +msgid "Site count" +msgstr "Cantidad de sitios" + +#: wp-admin/includes/class-wp-debug-data.php:271 +msgid "User count" +msgstr "Cantidad de usuarios" + +#: wp-admin/includes/class-wp-debug-data.php:1727 +msgid "The themes directory" +msgstr "El directorio de temas" + +#: wp-admin/includes/class-wp-debug-data.php:1722 +msgid "The plugins directory" +msgstr "El directorio de plugins" + +#: wp-admin/includes/class-wp-debug-data.php:1717 +msgid "The uploads directory" +msgstr "El directorio de subidas" + +#: wp-admin/includes/class-wp-debug-data.php:1712 +msgid "The wp-content directory" +msgstr "El directorio «wp-content»" + +#: wp-admin/includes/class-wp-debug-data.php:1708 +#: wp-admin/includes/class-wp-debug-data.php:1713 +#: wp-admin/includes/class-wp-debug-data.php:1718 +#: wp-admin/includes/class-wp-debug-data.php:1723 +#: wp-admin/includes/class-wp-debug-data.php:1728 +#: wp-admin/includes/class-wp-debug-data.php:1734 +#: wp-admin/includes/class-wp-debug-data.php:1748 +msgid "Not writable" +msgstr "No editable" + +#: wp-admin/includes/class-wp-debug-data.php:1708 +#: wp-admin/includes/class-wp-debug-data.php:1713 +#: wp-admin/includes/class-wp-debug-data.php:1718 +#: wp-admin/includes/class-wp-debug-data.php:1723 +#: wp-admin/includes/class-wp-debug-data.php:1728 +#: wp-admin/includes/class-wp-debug-data.php:1734 +#: wp-admin/includes/class-wp-debug-data.php:1748 +msgid "Writable" +msgstr "Editable" + +#: wp-admin/includes/class-wp-debug-data.php:1707 +msgid "The main WordPress directory" +msgstr "El directorio principal de WordPress" + +#: wp-admin/includes/class-wp-debug-data.php:1755 +msgid "Shows whether WordPress is able to write to the directories it needs access to." +msgstr "Muestra si WordPress puede escribir en los directorios a los que necesita acceso." + +#: wp-admin/includes/class-wp-debug-data.php:1754 +msgid "Filesystem Permissions" +msgstr "Permisos del sistema de archivos" + +#: wp-admin/includes/class-wp-debug-data.php:1135 +#: wp-admin/includes/class-wp-debug-data.php:1255 +#: wp-admin/includes/class-wp-debug-data.php:1463 +#: wp-admin/includes/class-wp-debug-data.php:1472 +#: wp-admin/includes/class-wp-debug-data.php:1481 +#: wp-admin/includes/class-wp-debug-data.php:1490 +#: wp-admin/includes/class-wp-debug-data.php:1499 +#: wp-admin/includes/class-wp-debug-data.php:1511 +#: wp-admin/includes/class-wp-debug-data.php:1516 +#: wp-admin/includes/class-wp-debug-data.php:1587 +msgid "Undefined" +msgstr "Sin definir" + +#: wp-admin/includes/class-wp-debug-data.php:1598 +msgid "WordPress Constants" +msgstr "Constantes de WordPress" + +#: wp-admin/includes/class-wp-debug-data.php:1683 +msgid "Database" +msgstr "Base de datos" + +#: wp-admin/includes/class-wp-debug-data.php:553 +msgid "The options shown below relate to your server setup. If changes are required, you may need your web host’s assistance." +msgstr "Las opciones que se muestran a continuación se refieren a la configuración de tu servidor. Si hay cambios obligatorios, es posible que necesites la ayuda de tu alojamiento web." + +#: wp-admin/includes/class-wp-debug-data.php:552 +msgid "Server" +msgstr "Servidor" + +#: wp-admin/includes/class-wp-debug-data.php:766 +msgid "Media Handling" +msgstr "Gestión de medios" + +#: wp-admin/includes/class-wp-debug-data.php:926 +msgid "Inactive Plugins" +msgstr "Plugins inactivos" + +#: wp-admin/includes/class-wp-debug-data.php:911 +msgid "Active Plugins" +msgstr "Plugins activos" + +#: wp-admin/includes/class-wp-debug-data.php:816 +msgid "Must Use Plugins" +msgstr "Plugins imprescindibles" + +#: wp-admin/includes/class-wp-debug-data.php:1194 +#: wp-admin/includes/theme.php:862 wp-admin/themes.php:1084 +#: wp-admin/includes/class-wp-ms-themes-list-table.php:945 +msgid "Active Theme" +msgstr "Tema activo" + +#: wp-admin/includes/class-wp-debug-data.php:327 +msgid "Drop-ins" +msgstr "Dependientes" + +#. translators: Filesystem directory paths and storage sizes. +#: wp-admin/includes/class-wp-debug-data.php:897 +msgid "Directories and Sizes" +msgstr "Directorios y tamaños" + +#: wp-admin/includes/class-wp-debug-data.php:209 +msgid "Is this a multisite?" +msgstr "¿Es esto un multisitio?" + +#: wp-admin/includes/class-wp-debug-data.php:224 +msgid "Default comment status" +msgstr "Estado por defecto de los comentarios" + +#: wp-admin/includes/class-wp-debug-data.php:214 +msgid "Can anyone register on this site?" +msgstr "¿Cualquiera puede registrarse en este sitio?" + +#: wp-admin/includes/class-wp-debug-data.php:204 +msgid "Is this site using HTTPS?" +msgstr "¿Está utilizando HTTPS este sitio?" + +#: wp-admin/includes/class-wp-debug-data.php:200 +msgid "No permalink structure set" +msgstr "Estructura de enlace permanente no establecida" + +#: wp-admin/includes/class-wp-debug-data.php:199 +#: wp-admin/options-permalink.php:329 +msgid "Permalink structure" +msgstr "Estructura de enlaces permanentes" + +#: wp-admin/includes/class-wp-debug-data.php:194 +msgid "Site URL" +msgstr "URL del sitio" + +#: wp-admin/includes/class-wp-debug-data.php:189 +msgid "Home URL" +msgstr "URL de inicio" + +#: wp-admin/site-health.php:101 +msgid "Site Health" +msgstr "Salud del sitio" + +#. translators: %s: Number of requests. +#: wp-admin/includes/class-wp-privacy-requests-table.php:163 +msgctxt "requests" +msgid "All (%s)" +msgid_plural "All (%s)" +msgstr[0] "Todas (%s)" +msgstr[1] "Todas (%s)" + +#: wp-admin/options-discussion.php:90 +msgid "Show comments cookies opt-in checkbox, allowing comment author cookies to be set" +msgstr "Mostrar la casilla de verificación de aceptación de cookies en los comentarios, permitiendo que se establezcan las cookies de autor de comentarios" + +#. translators: Hidden accessibility text. +#: wp-admin/theme-install.php:480 +msgid "Next theme" +msgstr "Siguiente tema" + +#. translators: Hidden accessibility text. +#: wp-admin/theme-install.php:474 +msgid "Previous theme" +msgstr "Tema anterior" + +#: wp-admin/user-edit.php:565 +msgid "If you change this, an email will be sent at your new address to confirm it. The new address will not become active until confirmed." +msgstr "Si cambias esto, se te enviará un correo electrónico a tu nueva dirección para confirmarlo. La nueva dirección no se convertirá en la activa hasta que se confirme." + +#: wp-admin/themes.php:309 +msgid "Theme resumed." +msgstr "Tema reactivado." + +#: wp-admin/themes.php:318 +msgid "Theme could not be resumed because it triggered a fatal error." +msgstr "El tema no se puede reactivar porque ha provocado un error fatal." + +#: wp-admin/plugins.php:678 +msgid "If you notice “headers already sent” messages, problems with syndication feeds or other issues, try deactivating or removing this plugin." +msgstr "Si observas mensajes de «cabeceras ya enviadas», problemas con las fuentes de sindicación u otros problemas, trata de desactivar o eliminar este plugin." + +#. translators: %d: Number of characters. +#: wp-admin/plugins.php:671 +msgid "The plugin generated %d character of unexpected output during activation." +msgid_plural "The plugin generated %d characters of unexpected output during activation." +msgstr[0] "El plugin ha generado %d carácter de salida inesperado durante la activación." +msgstr[1] "El plugin ha generado %d caracteres de salida inesperados durante la activación." + +#: wp-admin/plugins.php:451 +msgid "Sorry, you are not allowed to resume this plugin." +msgstr "Lo siento, no tienes permisos para reactivar este plugin." + +#. translators: %s: WordPress Planet URL. +#: wp-admin/index.php:97 +msgid "WordPress Events and News — Upcoming events near you as well as the latest news from the official WordPress project and the WordPress Planet." +msgstr "Eventos y noticias WordPress — Próximos eventos cerca de ti, así como las últimas noticias del proyecto oficial de WordPress y el planeta WordPress." + +#. translators: 1: URL to WordPress release notes, 2: WordPress version number, +#. 3: Minimum required MySQL version number, 4: Current MySQL version number. +#: wp-admin/update-core.php:133 wp-admin/upgrade.php:139 +msgid "You cannot update because WordPress %2$s requires MySQL version %3$s or higher. You are running version %4$s." +msgstr "No puedes actualizar porque WordPress %2$s necesita una versión de MySQL superior a la %3$s. Actualmente tienes la versión %4$s." + +#. translators: 1: URL to WordPress release notes, 2: WordPress version number, +#. 3: Minimum required PHP version number, 4: Current PHP version number. +#: wp-admin/update-core.php:124 wp-admin/upgrade.php:130 +msgid "You cannot update because WordPress %2$s requires PHP version %3$s or higher. You are running version %4$s." +msgstr "No puedes actualizar porque WordPress %2$s necesita la versión %3$s o superior de PHP. Estás ejecutando la versión %4$s." + +#: wp-admin/nav-menus.php:1067 +msgid "Add menu items" +msgstr "Añadir elementos al menú" + +#. translators: %s: URL to create a new menu. +#: wp-admin/nav-menus.php:1028 +msgid "or create a new menu. Do not forget to save your changes!" +msgstr "o crea un nuevo menú. ¡No olvides guardar tus cambios!" + +#. translators: Hidden accessibility text. +#: wp-admin/nav-menus.php:973 wp-admin/nav-menus.php:1043 +msgid "Click the Save Menu button to save your changes." +msgstr "Haz clic en el botón Guardar menú para guardar tus cambios." + +#. translators: %s: URL to create a new menu. +#: wp-admin/nav-menus.php:958 +msgid "Edit your menu below, or create a new menu. Do not forget to save your changes!" +msgstr "Edita a continuación tu menú o crea un nuevo menú. ¡No olvides guardar tus cambios!" + +#. translators: Hidden accessibility text. +#: wp-admin/nav-menus.php:949 +msgid "Fill in the Menu Name and click the Create Menu button to create your first menu." +msgstr "Escribe el nombre del menú y haz clic en el botón Crear menú para crear tu primer menú." + +#: wp-admin/nav-menus.php:945 +msgid "Create your first menu below." +msgstr "Crea abajo tu primer menú." + +#. translators: 1: URL to WordPress release notes, 2: WordPress version number, +#. 3: Minimum required MySQL version number, 4: Current MySQL version number. +#: wp-admin/install.php:281 +msgid "You cannot install because WordPress %2$s requires MySQL version %3$s or higher. You are running version %4$s." +msgstr "No puedes instalar porque WordPress %2$s requiere la versión %3$s o superior de MySQL. Estás ejecutando la versión %4$s." + +#. translators: 1: URL to WordPress release notes, 2: WordPress version number, +#. 3: Minimum required PHP version number, 4: Current PHP version number. +#: wp-admin/install.php:272 +msgid "You cannot install because WordPress %2$s requires PHP version %3$s or higher. You are running version %4$s." +msgstr "No puedes instalar porque WordPress %2$s necesita la versión %3$s o superior de PHP. Estás ejecutando la versión %4$s." + +#: wp-admin/includes/class-wp-site-health.php:747 +#: wp-admin/includes/dashboard.php:1921 +msgid "Learn more about updating PHP" +msgstr "Aprende más sobre actualizar PHP" + +#: wp-admin/includes/dashboard.php:1902 +msgid "What is PHP and how does it affect my site?" +msgstr "¿Qué es PHP y cómo afecta a mi sitio?" + +#: wp-admin/includes/dashboard.php:50 +msgid "PHP Update Required" +msgstr "Es necesario actualizar PHP" + +#: wp-admin/includes/plugin.php:2590 +msgid "You can find more details and make changes on the Plugins screen." +msgstr "Puedes encontrar más detalles y hacer cambios en la pantalla de plugins." + +#: wp-admin/includes/plugin.php:2589 +msgid "One or more plugins failed to load properly." +msgstr "Uno o más plugins no han cargado correctamente." + +#: wp-admin/includes/plugin.php:2559 +msgid "Could not resume the plugin." +msgstr "No se ha podido reactivar el plugin." + +#: wp-admin/includes/plugin.php:509 +msgid "Custom PHP fatal error handler." +msgstr "Controlador de errores fatales PHP personalizado." + +#: wp-admin/includes/plugin.php:508 +msgid "Custom PHP error message." +msgstr "Error de PHP personalizado." + +#: wp-admin/includes/class-language-pack-upgrader.php:122 +msgid "Could not remove the old translation." +msgstr "No se ha podido eliminar la traducción antigua." + +#: wp-admin/includes/class-language-pack-upgrader.php:121 +msgid "Removing the old version of the translation…" +msgstr "Eliminando la versión antigua de la traducción…" + +#. translators: %s: URL to WordPress Updates screen. +#: wp-admin/includes/plugin-install.php:843 +msgid "Click here to update WordPress." +msgstr "Haz clic aquí para actualizar WordPress." + +#: wp-admin/includes/plugin-install.php:839 +msgid "Error: This plugin requires a newer version of WordPress." +msgstr "Error: Este plugin necesita una versión más reciente de WordPress.." + +#. translators: %s: URL to Update PHP page. +#: wp-admin/includes/plugin-install.php:813 +msgid "Click here to learn more about updating PHP." +msgstr "Haz clic aquí para aprender más sobre cómo actualizar PHP." + +#: wp-admin/includes/plugin-install.php:808 +msgid "Error: This plugin requires a newer version of PHP." +msgstr "Error: Este plugin necesita una versión más reciente de PHP." + +#. translators: Hidden accessibility text. %s: Widget title. +#: wp-admin/includes/widgets.php:257 +msgid "Add widget: %s" +msgstr "Añadir widget: %s" + +#. translators: %s: Widgets sidebar name. +#: wp-admin/includes/widgets.php:97 +msgid "Add to: %s" +msgstr "Añadir a: %s" + +#. translators: Audio file track information. %s: Audio track number. +#: wp-admin/includes/media.php:378 +msgid "Track %s." +msgstr "Pista %s." + +#: wp-admin/includes/schema.php:1321 +msgid "My Network" +msgstr "Mi red" + +#: wp-admin/includes/class-wp-plugin-install-list-table.php:646 +#: wp-admin/includes/class-wp-plugins-list-table.php:1453 +msgid "This plugin does not work with your version of PHP." +msgstr "Este plugin no funciona con tu versión de PHP." + +#: wp-admin/includes/class-wp-plugin-install-list-table.php:637 +#: wp-admin/includes/class-wp-plugins-list-table.php:1444 +msgid "This plugin does not work with your version of WordPress." +msgstr "Este plugin no funciona con tu versión de WordPress." + +#: wp-admin/includes/class-wp-plugin-install-list-table.php:613 +#: wp-admin/includes/class-wp-plugins-list-table.php:1420 +msgid "This plugin does not work with your versions of WordPress and PHP." +msgstr "Este plugin no funciona con tus versiones de WordPress y PHP." + +#. translators: %s: WordPress version number. +#. translators: %s: WordPress version. +#: wp-admin/about.php:21 wp-admin/includes/update.php:321 +#: wp-admin/index.php:119 wp-admin/install.php:242 wp-admin/update-core.php:94 +#: wp-admin/upgrade.php:100 +msgid "https://wordpress.org/documentation/wordpress-version/version-%s/" +msgstr "https://wordpress.org/documentation/wordpress-version/version-%s/" + +#: wp-admin/includes/class-wp-plugins-list-table.php:935 +#: wp-admin/themes.php:716 +msgid "Resume" +msgstr "Reactivar" + +#. translators: %s: Plugin name. +#: wp-admin/includes/class-wp-plugins-list-table.php:934 +msgctxt "plugin" +msgid "Resume %s" +msgstr "Reactivar %s" + +#: wp-admin/includes/theme.php:1245 +msgid "You can find more details and make changes on the Themes screen." +msgstr "Puedes encontrar más detalles y hacer cambios en la pantalla de temas." + +#: wp-admin/includes/theme.php:1244 +msgid "One or more themes failed to load properly." +msgstr "Uno o más temas no se han cargado correctamente." + +#: wp-admin/includes/theme.php:1214 +msgid "Could not resume the theme." +msgstr "No se ha podido reactivar el tema." + +#. translators: %s: Default category. +#: wp-admin/edit-tags.php:632 +msgid "Deleting a category does not delete the posts in that category. Instead, posts that were only assigned to the deleted category are set to the default category %s. The default category cannot be deleted." +msgstr "Al eliminar una categoría no se eliminan las entradas de esa categoría. En su lugar, las entradas que solo se asignaron a la categoría borrada, se asignan a la categoría por defecto %s. La categoría por defecto no se puede borrar." + +#. translators: %s: A link to install the Classic Widgets plugin. +#: wp-admin/widgets-form-blocks.php:114 +msgid "The block widgets require JavaScript. Please enable JavaScript in your browser settings, or install the Classic Widgets plugin." +msgstr "El editor de bloques requiere JavaScript. Por favor, activa JavaScript en los ajustes de tu navegador, o prueba el plugin Classic Editor." + +#: wp-admin/post.php:47 +msgid "A post type mismatch has been detected." +msgstr "Se ha detectado un desajuste en el tipo de contenido." + +#: wp-admin/includes/class-wp-screen.php:297 wp-admin/post.php:20 +msgid "A post ID mismatch has been detected." +msgstr "Se ha detectado un desajuste en el ID del contenido." + +#. translators: %s: A link to use the Classic Editor plugin. +#: wp-admin/includes/template.php:1229 +msgid "Please open the classic editor to use this meta box." +msgstr "Por favor, abre el editor clásico para usar esta caja meta." + +#. translators: %s: A link to activate the Classic Editor plugin. +#: wp-admin/includes/template.php:1216 +msgid "Please activate the Classic Editor plugin to use this meta box." +msgstr "Por favor, activa el plugin Classic Editor para usar esta caja meta." + +#. translators: %s: A link to install the Classic Editor plugin. +#: wp-admin/includes/template.php:1204 +msgid "Please install the Classic Editor plugin to use this meta box." +msgstr "Por favor, instala el plugin Classic Editor para usar esta caja meta." + +#: wp-admin/includes/template.php:1191 +msgid "This meta box is not compatible with the block editor." +msgstr "Esta caja meta no es compatible con el editor de bloques." + +#: wp-admin/freedoms.php:87 +msgid "To distribute copies of your modified versions to others." +msgstr "Distribuir copias a otros de tus versiones modificadas." + +#: wp-admin/freedoms.php:86 +msgid "The 4th Freedom" +msgstr "La 4ª libertad" + +#: wp-admin/freedoms.php:82 +msgid "To redistribute." +msgstr "Redistribuirlo." + +#: wp-admin/freedoms.php:81 +msgid "The 3rd Freedom" +msgstr "La 3ª libertad" + +#: wp-admin/freedoms.php:77 +msgid "To study how the program works and change it to make it do what you wish." +msgstr "Estudiar cómo funciona el programa y cambiarlo para que haga lo que tú desees." + +#: wp-admin/freedoms.php:76 +msgid "The 2nd Freedom" +msgstr "La 2ª libertad" + +#: wp-admin/freedoms.php:72 +msgid "To run the program for any purpose." +msgstr "Ejecutar el programa para cualquier propósito." + +#: wp-admin/freedoms.php:71 +msgid "The 1st Freedom" +msgstr "La 1ª libertad" + +#: wp-admin/includes/class-wp-application-passwords-list-table.php:29 +msgid "Created" +msgstr "Creada" + +#. translators: First post content. %s: Site link. +#: wp-admin/includes/upgrade.php:235 +msgid "Welcome to WordPress. This is your first post. Edit or delete it, then start writing!" +msgstr "Te damos la bienvenida a WordPress. Esta es tu primera entrada. Edítala o bórrala, ¡luego empieza a escribir!" + +#. translators: First page content. %s: Site admin URL. +#: wp-admin/includes/upgrade.php:336 +msgid "As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!" +msgstr "Como nuevo usuario de WordPress, deberías ir a tu escritorio para borrar esta página y crear nuevas páginas para tu contenido. ¡Pásalo bien!" + +#. translators: First page content. +#: wp-admin/includes/upgrade.php:330 +msgid "The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community." +msgstr "La empresa «Mariscos Recio» fue fundada por Antonio Recio Mata. Empezó siendo una pequeña empresa que suministraba marisco a hoteles y restaurantes, pero poco a poco se ha ido transformando en un gran imperio. Mariscos Recio, el mar al mejor precio." + +#. translators: First page content. +#: wp-admin/includes/upgrade.php:325 +msgid "...or something like this:" +msgstr "…o algo así:" + +#. translators: First page content. +#: wp-admin/includes/upgrade.php:320 +msgid "Hi there! I'm a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin' caught in the rain.)" +msgstr "¡Hola! Soy camarero de día, aspirante a actor de noche y esta es mi web. Vivo en Mairena del Alcor, tengo un perro que se llama Firulais y me gusta el rebujito. (Y las tardes largas con café)." + +#. translators: First page content. +#: wp-admin/includes/upgrade.php:315 +msgid "This is an example page. It's different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:" +msgstr "Esta es una página de ejemplo. Es diferente a una entrada del blog porque permanecerá en un solo lugar y aparecerá en la navegación de tu sitio (en la mayoría de los temas). La mayoría de las personas comienzan con una página «Acerca de» que les presenta a los visitantes potenciales del sitio. Podrías decir algo así:" + +#. translators: %s: Post title. +#: wp-admin/includes/class-wp-posts-list-table.php:1572 +msgid "Export “%s” as JSON" +msgstr "Exportar «%s» como JSON" + +#: wp-admin/edit.php:386 +msgid "1 pattern not updated, somebody is editing it." +msgstr "1 patrón no actualizado, alguien lo está editando." + +#. translators: %s: Number of patterns. +#: wp-admin/edit.php:394 +msgid "%s pattern restored from the Trash." +msgid_plural "%s patterns restored from the Trash." +msgstr[0] "%s patrón restaurado de la papelera." +msgstr[1] "%s patrones restaurados de la papelera." + +#: wp-admin/setup-config.php:304 +msgid "Error: \"Table Prefix\" must not be empty." +msgstr "Error: el «prefijo de tabla» no debe estar vacío." + +#. translators: %s: The name of the plugin that generated this meta box. +#: wp-admin/includes/template.php:1189 wp-admin/includes/template.php:1441 +msgid "This meta box, from the %s plugin, is not compatible with the block editor." +msgstr "Esta caja meta, del plugin %s, no es compatible con el editor de bloques." + +#. translators: Header for the About section in a personal data export. +#: wp-admin/includes/privacy-tools.php:368 +msgctxt "personal data group label" +msgid "About" +msgstr "Acerca de" + +#. translators: Page title of the About WordPress page in the admin. +#: wp-admin/about.php:14 +msgctxt "page title" +msgid "About" +msgstr "Acerca de" + +#. translators: 1: URL to edit Privacy Policy page, 2: URL to preview Privacy +#. Policy page. +#: wp-admin/options-privacy.php:228 +msgid "Edit or preview your Privacy Policy page content." +msgstr "Edita o previsualiza el contenido de tu página de política de privacidad." + +#: wp-admin/includes/file.php:40 +msgid "Privacy Policy Page" +msgstr "Página de política de privacidad" + +#. translators: %s: Page title. +#: wp-admin/includes/misc.php:1552 +msgid "%s (Draft)" +msgstr "%s (Borrador)" + +#: wp-admin/options-privacy.php:57 +msgid "Privacy Policy page updated successfully." +msgstr "Página de política de privacidad actualizada correctamente." + +#. translators: %s: admin_init +#: wp-admin/includes/plugin.php:2446 +msgid "The suggested privacy policy content should be added by using the %s (or later) action. Please see the inline documentation." +msgstr "El contenido sugerido de la política de privacidad debe añadirse usando la acción %s (o posterior). Mira la documentación incluida, por favor." + +#. translators: %s: admin_init +#: wp-admin/includes/plugin.php:2435 +msgid "The suggested privacy policy content should be added only in wp-admin by using the %s (or later) action." +msgstr "El contenido sugerido de la política de privacidad solo debería ser añadido en wp-admin usando la acción %s (o posterior)." + +#. translators: %s: Privacy Policy Guide URL. +#: wp-admin/includes/class-wp-privacy-policy-content.php:143 +msgid "The suggested privacy policy text has changed. Please review the guide and update your privacy policy." +msgstr "El texto sugerido de la política de privacidad ha cambiado. Por favor, revisa la guía y actualiza tu política de privacidad." + +#: wp-admin/options-privacy.php:267 +msgid "There are no pages." +msgstr "No hay páginas." + +#. translators: 1: Privacy Policy guide URL, 2: Additional link attributes, 3: +#. Accessibility text. +#: wp-admin/options-privacy.php:239 +msgid "Need help putting together your new Privacy Policy page? Check out the privacy policy guide%3$s for recommendations on what content to include, along with policies suggested by your plugins and theme." +msgstr "¿Necesitas ayuda para crear tu nueva página de la política de privacidad? Échale un vistazo a nuestra guía de la política de privacidad%3$s con recomendaciones sobre qué contenido incluir, además de políticas sugeridas por tus plugins y tema." + +#: wp-admin/privacy-policy-guide.php:21 wp-admin/privacy-policy-guide.php:74 +#: wp-admin/privacy-policy-guide.php:83 +msgid "Privacy Policy Guide" +msgstr "Guía para la política de privacidad" + +#. translators: Default privacy policy text. +#: wp-admin/includes/class-wp-privacy-policy-content.php:607 +msgid "Visitor comments may be checked through an automated spam detection service." +msgstr "Los comentarios de los visitantes puede que los revise un servicio de detección automática de spam." + +#. translators: Privacy policy tutorial. +#: wp-admin/includes/class-wp-privacy-policy-content.php:555 +msgid "In this subsection you should note what analytics package you use, how users can opt out of analytics tracking, and a link to your analytics provider’s privacy policy, if any." +msgstr "En esta subsección deberías anotar qué paquete de analítica usas, cómo los usuarios pueden decidir sobre el seguimiento de la analítica y un enlace a la política de privacidad de tu proveedor de analítica, si lo tuviera." + +#. translators: Privacy policy tutorial. +#: wp-admin/includes/class-wp-privacy-policy-content.php:512 +msgid "In this subsection you should note what information may be disclosed by users who can upload media files. All uploaded files are usually publicly accessible." +msgstr "En esta subsección deberías anotar qué información puede mostrarse de los usuarios que suban archivos de medios. Todos los archivos subidos son normalmente accesibles públicamente." + +#. translators: Privacy policy tutorial. +#: wp-admin/includes/class-wp-privacy-policy-content.php:499 +msgid "In this subsection you should note what information is captured through comments. We have noted the data which WordPress collects by default." +msgstr "En esta subsección deberías anotar qué información se captura en los comentarios. Hemos anotado los datos que WordPress recopila por defecto." + +#. translators: Privacy policy tutorial. +#: wp-admin/includes/class-wp-privacy-policy-content.php:483 +msgid "In this section you should note what personal data you collect from users and site visitors. This may include personal data, such as name, email address, personal account preferences; transactional data, such as purchase information; and technical data, such as information about cookies." +msgstr "En esta sección deberías anotar qué datos personales recopilas de los usuarios y de los visitantes del sitio. Esto podría incluir datos personales tales como el nombre, dirección de correo electrónico, preferencias personales de la cuenta; datos transaccionales, como información de compras; y datos técnicos, como la información sobre las cookies." + +#: wp-admin/includes/class-wp-privacy-policy-content.php:457 +msgid "Suggested text:" +msgstr "Texto sugerido:" + +#: wp-admin/privacy-policy-guide.php:77 +msgid "The template contains a suggestion of sections you most likely will need. Under each section heading, you will find a short summary of what information you should provide, which will help you to get started. Some sections include suggested policy content, others will have to be completed with information from your theme and plugins." +msgstr "La plantilla contiene una sugerencia de las secciones que es más probable que vayas a necesitar. Bajo el encabezado de cada sección, encontrarás un breve resumen de qué información deberías proporcionar, lo que te ayudará a empezar. Algunas secciones incluyen contenido sugerido para la política, otras tendrán que completarse con información de tu tema y plugins." + +#. translators: %s: Date of privacy policy text update. +#: wp-admin/includes/class-wp-privacy-policy-content.php:408 +msgid "Updated %s." +msgstr "Actualizado %s." + +#. translators: %s: Date of plugin deactivation. +#: wp-admin/includes/class-wp-privacy-policy-content.php:396 +msgid "You deactivated this plugin on %s and may no longer need this policy." +msgstr "Has desactivado este plugin el %s y puede que ya no necesites esta política." + +#. translators: %s: Date of plugin deactivation. +#: wp-admin/includes/class-wp-privacy-policy-content.php:393 +msgid "Removed %s." +msgstr "Quitado %s." + +#: wp-admin/privacy-policy-guide.php:75 +msgid "Introduction" +msgstr "Introducción" + +#: wp-admin/includes/class-wp-privacy-policy-content.php:336 +msgid "Need help putting together your new Privacy Policy page? Check out the guide for recommendations on what content to include, along with policies suggested by your plugins and theme." +msgstr "¿Necesitas ayuda para crear tu nueva página de política de privacidad? Échale un vistazo a la guía para ver consejos y recomendaciones sobre el contenido que debes añadir, además de las políticas sugeridas por tus plugins y tema." + +#: wp-admin/includes/class-wp-privacy-data-removal-requests-list-table.php:66 +#: wp-admin/includes/class-wp-privacy-data-removal-requests-list-table.php:140 +msgid "Erasing data..." +msgstr "Borrando los datos..." + +#: wp-admin/erase-personal-data.php:114 +msgid "Add Data Erasure Request" +msgstr "Añadir solicitud de borrado de datos" + +#: wp-admin/includes/class-wp-privacy-data-export-requests-list-table.php:133 +msgid "Send export link" +msgstr "Enviar enlace de exportación" + +#. translators: Privacy policy tutorial. +#: wp-admin/includes/class-wp-privacy-policy-content.php:656 +msgid "If you are a member of a regulated industry, or if you are subject to additional privacy laws, you may be required to disclose that information here." +msgstr "Si eres un miembro de un sector regulado, o si estás sujeto a leyes de privacidad adicionales, es posible que se te pida que reveles esa información aquí." + +#. translators: Default privacy policy heading. +#: wp-admin/includes/class-wp-privacy-policy-content.php:654 +msgid "Industry regulatory disclosure requirements" +msgstr "Requerimientos regulatorios de revelación de información del sector" + +#. translators: Privacy policy tutorial. +#: wp-admin/includes/class-wp-privacy-policy-content.php:649 +msgid "If your website provides a service which includes automated decision making - for example, allowing customers to apply for credit, or aggregating their data into an advertising profile - you must note that this is taking place, and include information about how that information is used, what decisions are made with that aggregated data, and what rights users have over decisions made without human intervention." +msgstr "Si tu web proporciona un servicio que incluye la toma de decisiones automatizada —por ejemplo, permitir a los clientes solicitar crédito o agregar sus datos en un perfil publicitario— debes dar cuenta de que esto está ocurriendo, e incluir información sobre cómo se utiliza esa información, qué decisiones se toman con esos datos agregados, y qué derechos tienen los usuarios sobre las decisiones tomadas sin intervención humana." + +#. translators: Default privacy policy heading. +#: wp-admin/includes/class-wp-privacy-policy-content.php:647 +msgid "What automated decision making and/or profiling we do with user data" +msgstr "Qué tipo de toma de decisiones automatizada y/o perfilado hacemos con los datos del usuario" + +#. translators: Privacy policy tutorial. +#: wp-admin/includes/class-wp-privacy-policy-content.php:642 +msgid "If your website receives data about users from third parties, including advertisers, this information must be included within the section of your privacy policy dealing with third party data." +msgstr "Si tu web recibe datos sobre los usuarios de terceros, incluidos los anunciantes, esta información debe incluirse en la sección de tu aviso de privacidad relativo a los datos de terceros." + +#. translators: Default privacy policy heading. +#: wp-admin/includes/class-wp-privacy-policy-content.php:640 +msgid "What third parties we receive data from" +msgstr "De qué terceros recibimos datos" + +#. translators: Privacy policy tutorial. +#: wp-admin/includes/class-wp-privacy-policy-content.php:635 +msgid "In this section you should explain what procedures you have in place to deal with data breaches, either potential or real, such as internal reporting systems, contact mechanisms, or bug bounties." +msgstr "En esta sección debes explicar qué procedimientos tienes en marcha para tratar las brechas de datos, ya sean reales o potenciales, tales como sistemas internos de informes, mecanismos de contacto o compensaciones por fallos." + +#. translators: Default privacy policy heading. +#: wp-admin/includes/class-wp-privacy-policy-content.php:633 +msgid "What data breach procedures we have in place" +msgstr "Qué procedimientos utilizamos contra las brechas de datos" + +#. translators: Privacy policy tutorial. +#: wp-admin/includes/class-wp-privacy-policy-content.php:628 +msgid "In this section you should explain what measures you have taken to protect your users’ data. This could include technical measures such as encryption; security measures such as two factor authentication; and measures such as staff training in data protection. If you have carried out a Privacy Impact Assessment, you can mention it here too." +msgstr "En esta sección debes explicar qué medidas has tomado para proteger los datos de tus usuarios. Esto podría incluir medidas técnicas como el cifrado; medidas de seguridad como la identificación de dos factores; y medidas como la formación del personal en materia de protección de datos. Si has realizado una evaluación del impacto en la privacidad, puedes mencionarlo aquí también." + +#. translators: Default privacy policy heading. +#: wp-admin/includes/class-wp-privacy-policy-content.php:626 +msgid "How we protect your data" +msgstr "Cómo protegemos tus datos" + +#. translators: Privacy policy tutorial. +#: wp-admin/includes/class-wp-privacy-policy-content.php:621 +msgid "If you use your site for commercial purposes and you engage in more complex collection or processing of personal data, you should note the following information in your privacy policy in addition to the information we have already discussed." +msgstr "Si utilizas tu web con fines comerciales y realizas una recopilación o procesamiento de datos personales más compleja, deberías anotar la siguiente información en tu aviso de privacidad, además de la información que ya hemos discutido." + +#. translators: Default privacy policy heading. +#: wp-admin/includes/class-wp-privacy-policy-content.php:619 +msgid "Additional information" +msgstr "Información adicional" + +#. translators: Privacy policy tutorial. +#: wp-admin/includes/class-wp-privacy-policy-content.php:614 +msgid "In this section you should provide a contact method for privacy-specific concerns. If you are required to have a Data Protection Officer, list their name and full contact details here as well." +msgstr "En esta sección debes proporcionar un método de contacto para cuestiones específicas de privacidad. Si es necesario que tengas un responsable de protección de datos, indica también aquí su nombre y sus datos de contacto completos." + +#. translators: Privacy policy tutorial. +#: wp-admin/includes/class-wp-privacy-policy-content.php:604 +msgid "European data protection law requires data about European residents which is transferred outside the European Union to be safeguarded to the same standards as if the data was in Europe. So in addition to listing where data goes, you should describe how you ensure that these standards are met either by yourself or by your third party providers, whether that is through an agreement such as Privacy Shield, model clauses in your contracts, or binding corporate rules." +msgstr "La legislación europea de protección de datos exige que los datos sobre los residentes europeos que se transfieren fuera de la Unión Europea se salvaguarden con los mismos estándares que si los datos estuvieran en Europa. Por lo tanto, además de enumerar a dónde van los datos, debes describir cómo se asegura que tú mismo o tus proveedores terceros cumplan estas normas, ya sea a través de un acuerdo como Privacy Shield, cláusulas modelo en tus contratos o reglas corporativas vinculantes." + +#. translators: Privacy policy tutorial. +#: wp-admin/includes/class-wp-privacy-policy-content.php:602 +msgid "In this section you should list all transfers of your site data outside the European Union and describe the means by which that data is safeguarded to European data protection standards. This could include your web hosting, cloud storage, or other third party services." +msgstr "En esta sección deberías enumerar todas las transferencias de los datos de tu sitio fuera de la Unión Europea y describir los medios por los que se protegen esos datos de acuerdo con las normas europeas de protección de datos. Esto podría incluir tu alojamiento web, almacenamiento en la nube u otros servicios de terceros." + +#. translators: Default privacy policy text. +#: wp-admin/includes/class-wp-privacy-policy-content.php:594 +msgid "If you have an account on this site, or have left comments, you can request to receive an exported file of the personal data we hold about you, including any data you have provided to us. You can also request that we erase any personal data we hold about you. This does not include any data we are obliged to keep for administrative, legal, or security purposes." +msgstr "Si tienes una cuenta o has dejado comentarios en esta web, puedes solicitar recibir un archivo de exportación de los datos personales que tenemos sobre ti, incluyendo cualquier dato que nos hayas proporcionado. También puedes solicitar que eliminemos cualquier dato personal que tengamos sobre ti. Esto no incluye ningún dato que estemos obligados a conservar con fines administrativos, legales o de seguridad." + +#. translators: Privacy policy tutorial. +#: wp-admin/includes/class-wp-privacy-policy-content.php:591 +msgid "In this section you should explain what rights your users have over their data and how they can invoke those rights." +msgstr "En esta sección debes explicar qué derechos tienen tus usuarios sobre sus datos y cómo pueden ejercerlos." + +#. translators: Default privacy policy heading. +#: wp-admin/includes/class-wp-privacy-policy-content.php:587 +msgid "What rights you have over your data" +msgstr "Qué derechos tienes sobre tus datos" + +#. translators: Default privacy policy text. +#: wp-admin/includes/class-wp-privacy-policy-content.php:583 +msgid "For users that register on our website (if any), we also store the personal information they provide in their user profile. All users can see, edit, or delete their personal information at any time (except they cannot change their username). Website administrators can also see and edit that information." +msgstr "De los usuarios que se registran en nuestra web (si los hay), también almacenamos la información personal que proporcionan en su perfil de usuario. Todos los usuarios pueden ver, editar o eliminar su información personal en cualquier momento (excepto que no pueden cambiar su nombre de usuario). Los administradores de la web también pueden ver y editar esa información." + +#. translators: Default privacy policy text. +#: wp-admin/includes/class-wp-privacy-policy-content.php:581 +msgid "If you leave a comment, the comment and its metadata are retained indefinitely. This is so we can recognize and approve any follow-up comments automatically instead of holding them in a moderation queue." +msgstr "Si dejas un comentario, el comentario y sus metadatos se conservan indefinidamente. Esto es para que podamos reconocer y aprobar comentarios sucesivos automáticamente, en lugar de mantenerlos en una cola de moderación." + +#. translators: Privacy policy tutorial. +#: wp-admin/includes/class-wp-privacy-policy-content.php:578 +msgid "In this section you should explain how long you retain personal data collected or processed by the website. While it is your responsibility to come up with the schedule of how long you keep each dataset for and why you keep it, that information does need to be listed here. For example, you may want to say that you keep contact form entries for six months, analytics records for a year, and customer purchase records for ten years." +msgstr "En esta sección deberás explicar durante cuánto tiempo se conservarán los datos personales recopilados o procesados por la web. Si bien es tu responsabilidad establecer por cuánto tiempo se conservará cada conjunto de datos y por qué lo conservas, esa información debe figurar aquí. Por ejemplo, puedes decir que mantienes las entradas del formulario de contacto durante seis meses, los registros de analítica durante un año, y los registros de compras de clientes durante diez años." + +#. translators: Default privacy policy heading. +#: wp-admin/includes/class-wp-privacy-policy-content.php:574 +msgid "How long we retain your data" +msgstr "Cuánto tiempo conservamos tus datos" + +#. translators: Privacy policy tutorial. +#: wp-admin/includes/class-wp-privacy-policy-content.php:567 +msgid "By default WordPress does not share any personal data with anyone." +msgstr "Por defecto, WordPress no comparte ningún dato personal con nadie." + +#. translators: Privacy policy tutorial. +#: wp-admin/includes/class-wp-privacy-policy-content.php:565 +msgid "In this section you should name and list all third party providers with whom you share site data, including partners, cloud-based services, payment processors, and third party service providers, and note what data you share with them and why. Link to their own privacy policies if possible." +msgstr "En esta sección debes nombrar y enumerar todos los proveedores externos con los que compartes datos del sitio, incluidos los socios, los servicios basados en la nube, los procesadores de pagos y los proveedores de servicios externos, e indicar qué datos compartes con ellos y por qué. Enlaza a sus propios avisos de privacidad si es posible." + +#. translators: Default privacy policy heading. +#: wp-admin/includes/class-wp-privacy-policy-content.php:561 +msgid "Who we share your data with" +msgstr "Con quién compartimos tus datos" + +#. translators: Privacy policy tutorial. +#: wp-admin/includes/class-wp-privacy-policy-content.php:557 +msgid "By default WordPress does not collect any analytics data. However, many web hosting accounts collect some anonymous analytics data. You may also have installed a WordPress plugin that provides analytics services. In that case, add information from that plugin here." +msgstr "Por defecto, WordPress no recoge ningún dato analítico. Sin embargo, muchas cuentas de alojamiento web recogen algunos datos analíticos anónimos. También es posible que hayas instalado un plugin de WordPress que proporciona servicios de analítica. En ese caso, añade la información de ese plugin aquí." + +#. translators: Default privacy policy heading. +#: wp-admin/includes/class-wp-privacy-policy-content.php:553 +msgid "Analytics" +msgstr "Analítica" + +#. translators: Default privacy policy text. +#: wp-admin/includes/class-wp-privacy-policy-content.php:548 +msgid "These websites may collect data about you, use cookies, embed additional third-party tracking, and monitor your interaction with that embedded content, including tracking your interaction with the embedded content if you have an account and are logged in to that website." +msgstr "Estas web pueden recopilar datos sobre ti, utilizar cookies, incrustar un seguimiento adicional de terceros, y supervisar tu interacción con ese contenido incrustado, incluido el seguimiento de tu interacción con el contenido incrustado si tienes una cuenta y estás conectado a esa web." + +#. translators: Default privacy policy text. +#: wp-admin/includes/class-wp-privacy-policy-content.php:546 +msgid "Articles on this site may include embedded content (e.g. videos, images, articles, etc.). Embedded content from other websites behaves in the exact same way as if the visitor has visited the other website." +msgstr "Los artículos de este sitio pueden incluir contenido incrustado (por ejemplo, vídeos, imágenes, artículos, etc.). El contenido incrustado de otras webs se comporta exactamente de la misma manera que si el visitante hubiera visitado la otra web." + +#. translators: Default privacy policy heading. +#: wp-admin/includes/class-wp-privacy-policy-content.php:544 +msgid "Embedded content from other websites" +msgstr "Contenido incrustado de otros sitios web" + +#. translators: Default privacy policy text. +#: wp-admin/includes/class-wp-privacy-policy-content.php:539 +msgid "If you edit or publish an article, an additional cookie will be saved in your browser. This cookie includes no personal data and simply indicates the post ID of the article you just edited. It expires after 1 day." +msgstr "Si editas o publicas un artículo se guardará una cookie adicional en tu navegador. Esta cookie no incluye datos personales y simplemente indica el ID del artículo que acabas de editar. Caduca después de 1 día." + +#. translators: Default privacy policy text. +#: wp-admin/includes/class-wp-privacy-policy-content.php:537 +msgid "When you log in, we will also set up several cookies to save your login information and your screen display choices. Login cookies last for two days, and screen options cookies last for a year. If you select "Remember Me", your login will persist for two weeks. If you log out of your account, the login cookies will be removed." +msgstr "Cuando accedas, también instalaremos varias cookies para guardar tu información de acceso y tus opciones de visualización de pantalla. Las cookies de acceso duran dos días, y las cookies de opciones de pantalla duran un año. Si seleccionas «Recuérdarme», tu acceso perdurará durante dos semanas. Si sales de tu cuenta, las cookies de acceso se eliminarán." + +#. translators: Default privacy policy text. +#: wp-admin/includes/class-wp-privacy-policy-content.php:535 +msgid "If you visit our login page, we will set a temporary cookie to determine if your browser accepts cookies. This cookie contains no personal data and is discarded when you close your browser." +msgstr "Si tienes una cuenta y te conectas a este sitio, instalaremos una cookie temporal para determinar si tu navegador acepta cookies. Esta cookie no contiene datos personales y se elimina al cerrar el navegador." + +#. translators: Default privacy policy text. +#: wp-admin/includes/class-wp-privacy-policy-content.php:533 +msgid "If you leave a comment on our site you may opt-in to saving your name, email address and website in cookies. These are for your convenience so that you do not have to fill in your details again when you leave another comment. These cookies will last for one year." +msgstr "Si dejas un comentario en nuestro sitio puedes elegir guardar tu nombre, dirección de correo electrónico y web en cookies. Esto es para tu comodidad, para que no tengas que volver a rellenar tus datos cuando dejes otro comentario. Estas cookies tendrán una duración de un año." + +#. translators: Privacy policy tutorial. +#: wp-admin/includes/class-wp-privacy-policy-content.php:530 +msgid "In this subsection you should list the cookies your website uses, including those set by your plugins, social media, and analytics. We have provided the cookies which WordPress installs by default." +msgstr "En esta subsección debes enumerar las cookies que utiliza tu web, incluidas las instaladas por tus plugins, redes sociales y analítica. Hemos proporcionado las cookies que WordPress instala por defecto." + +#. translators: Default privacy policy heading. +#: wp-admin/includes/class-wp-privacy-policy-content.php:526 +msgid "Cookies" +msgstr "Cookies" + +#. translators: Default privacy policy text. +#: wp-admin/includes/class-wp-privacy-policy-content.php:504 +msgid "An anonymized string created from your email address (also called a hash) may be provided to the Gravatar service to see if you are using it. The Gravatar service privacy policy is available here: https://automattic.com/privacy/. After approval of your comment, your profile picture is visible to the public in the context of your comment." +msgstr "Una cadena anónima creada a partir de tu dirección de correo electrónico (también llamada hash) puede ser proporcionada al servicio de Gravatar para ver si la estás usando. La política de privacidad del servicio Gravatar está disponible aquí: https://automattic.com/privacy/. Después de la aprobación de tu comentario, la imagen de tu perfil es visible para el público en el contexto de tu comentario." + +#. translators: Default privacy policy text. +#: wp-admin/includes/class-wp-privacy-policy-content.php:502 +msgid "When visitors leave comments on the site we collect the data shown in the comments form, and also the visitor’s IP address and browser user agent string to help spam detection." +msgstr "Cuando los visitantes dejan comentarios en la web, recopilamos los datos que se muestran en el formulario de comentarios, así como la dirección IP del visitante y la cadena de agentes de usuario del navegador para ayudar a la detección de spam." + +#. translators: Privacy policy tutorial. +#: wp-admin/includes/class-wp-privacy-policy-content.php:522 +msgid "By default, WordPress does not include a contact form. If you use a contact form plugin, use this subsection to note what personal data is captured when someone submits a contact form, and how long you keep it. For example, you may note that you keep contact form submissions for a certain period for customer service purposes, but you do not use the information submitted through them for marketing purposes." +msgstr "Por defecto, WordPress no incluye un formulario de contacto. Si utilizas un plugin de formulario de contacto, utiliza esta subsección para indicar qué datos personales se capturan cuando alguien envía un formulario de contacto y cuánto tiempo los conservas. Por ejemplo, puedes indicar que mantienes los envíos de formularios de contacto durante un cierto período con fines de servicio al cliente, pero no utilizas la información enviada a través de ellos con fines de marketing." + +#. translators: Default privacy policy heading. +#: wp-admin/includes/class-wp-privacy-policy-content.php:520 +msgid "Contact forms" +msgstr "Formularios de contacto" + +#. translators: Default privacy policy text. +#: wp-admin/includes/class-wp-privacy-policy-content.php:515 +msgid "If you upload images to the website, you should avoid uploading images with embedded location data (EXIF GPS) included. Visitors to the website can download and extract any location data from images on the website." +msgstr "Si subes imágenes a la web, deberías evitar subir imágenes con datos de ubicación (GPS EXIF) incluidos. Los visitantes de la web pueden descargar y extraer cualquier dato de ubicación de las imágenes de la web." + +#. translators: Privacy policy tutorial. +#: wp-admin/includes/class-wp-privacy-policy-content.php:491 +msgid "By default WordPress does not collect any personal data about visitors, and only collects the data shown on the User Profile screen from registered users. However some of your plugins may collect personal data. You should add the relevant information below." +msgstr "Por defecto, WordPress no recopila ningún dato personal sobre los visitantes y solo recopila los datos mostrados en la pantalla del perfil de usuario para los usuarios registrados. Sin embargo, algunos de tus plugins también pueden recopilar datos personales. Añade la información relevante a continuación." + +#. translators: Privacy policy tutorial. +#: wp-admin/includes/class-wp-privacy-policy-content.php:489 +msgid "Personal data is not just created by a user’s interactions with your site. Personal data is also generated from technical processes such as contact forms, comments, cookies, analytics, and third party embeds." +msgstr "Los datos personales no son solo creados por las interacciones de un usuario con tu sitio. Los datos personales también se generan a partir de procesos técnicos como formularios de contacto, comentarios, cookies, analítica e incrustaciones de terceros." + +#. translators: Privacy policy tutorial. +#: wp-admin/includes/class-wp-privacy-policy-content.php:487 +msgid "In addition to listing what personal data you collect, you need to note why you collect it. These explanations must note either the legal basis for your data collection and retention or the active consent the user has given." +msgstr "Además de enumerar los datos personales que recopilas, debes indicar por qué los recopilas. En estas explicaciones debe indicarse el fundamento jurídico de la recogida y conservación de los datos o el consentimiento activo del usuario." + +#. translators: Privacy policy tutorial. +#: wp-admin/includes/class-wp-privacy-policy-content.php:485 +msgid "You should also note any collection and retention of sensitive personal data, such as data concerning health." +msgstr "También deberías tener en cuenta cualquier recopilación y retención de datos personales sensibles, como los relativos a la salud." + +#. translators: Default privacy policy heading. +#: wp-admin/includes/class-wp-privacy-policy-content.php:481 +msgid "What personal data we collect and why we collect it" +msgstr "Qué datos personales recogemos y por qué los recogemos" + +#. translators: Default privacy policy text. %s: Site URL. +#: wp-admin/includes/class-wp-privacy-policy-content.php:476 +msgid "Our website address is: %s." +msgstr "La dirección de nuestra web es: %s." + +#. translators: Privacy policy tutorial. +#: wp-admin/includes/class-wp-privacy-policy-content.php:473 +msgid "The amount of information you may be required to show will vary depending on your local or national business regulations. You may, for example, be required to display a physical address, a registered address, or your company registration number." +msgstr "La cantidad de información que se te puede pedir reflejar variará dependiendo de las regulaciones locales o nacionales de tu negocio. Por ejemplo, se te puede pedir que indiques una dirección física, una dirección registrada o el número de registro de tu empresa." + +#. translators: Privacy policy tutorial. +#: wp-admin/includes/class-wp-privacy-policy-content.php:471 +msgid "In this section you should note your site URL, as well as the name of the company, organization, or individual behind it, and some accurate contact information." +msgstr "En esta sección debes indicar la URL de tu sitio, así como el nombre de la empresa, organización, o individuo que hay detrás, y alguna información de contacto actualizada." + +#. translators: Default privacy policy heading. +#: wp-admin/includes/class-wp-privacy-policy-content.php:467 +msgid "Who we are" +msgstr "Quiénes somos" + +#: wp-admin/privacy-policy-guide.php:79 +msgid "It is your responsibility to write a comprehensive privacy policy, to make sure it reflects all national and international legal requirements on privacy, and to keep your policy current and accurate." +msgstr "Es tu responsabilidad redactar una política de privacidad completa, asegurándote de que refleja todos los requisitos legales nacionales e internacionales sobre privacidad y mantener tu política actualizada y precisa." + +#: wp-admin/privacy-policy-guide.php:78 +msgid "Please edit your privacy policy content, making sure to delete the summaries, and adding any information from your theme and plugins. Once you publish your policy page, remember to add it to your navigation menu." +msgstr "Por favor, edita el contenido de tu política de privacidad, asegurándote de eliminar los resúmenes, y añade cualquier información de tus temas y plugins. Una vez que publiques tu página de política, recuerda añadirla a tu menú de navegación." + +#: wp-admin/privacy-policy-guide.php:76 +msgid "This text template will help you to create your website’s privacy policy." +msgstr "Esta plantilla de texto te ayudará a crear la política de privacidad de tu web." + +#: wp-admin/options-privacy.php:193 +msgid "As a website owner, you may need to follow national or international privacy laws. For example, you may need to create and display a privacy policy." +msgstr "Como propietario de una web, es posible que tengas que cumplir con las leyes de privacidad nacionales o internacionales. Por ejemplo, es posible que tengas que crear y mostrar una política de privacidad." + +#: wp-admin/includes/class-wp-privacy-data-removal-requests-list-table.php:68 +msgid "Force erasure has failed." +msgstr "Ha fallado el borrado forzado." + +#: wp-admin/includes/class-wp-privacy-data-export-requests-list-table.php:136 +msgid "Email could not be sent." +msgstr "No se ha podido enviar el correo electrónico." + +#: wp-admin/includes/privacy-tools.php:386 +msgctxt "date/time" +msgid "On" +msgstr "En" + +#: wp-admin/includes/privacy-tools.php:382 +msgctxt "website URL" +msgid "At URL" +msgstr "En la URL" + +#: wp-admin/includes/privacy-tools.php:378 +msgctxt "website name" +msgid "For site" +msgstr "Para el sitio" + +#: wp-admin/includes/privacy-tools.php:374 +msgctxt "email address" +msgid "Report generated for" +msgstr "Informe generado para" + +#. translators: %s: Exporter array index. +#: wp-admin/includes/ajax-actions.php:5025 +msgid "Exporter array at index %s does not include a friendly name." +msgstr "El índice %s del array del exportador no incluye un nombre amigable." + +#: wp-admin/erase-personal-data.php:13 +msgid "Sorry, you are not allowed to erase personal data on this site." +msgstr "Lo siento, no tienes permisos para borrar datos personales en este sitio." + +#: wp-admin/export-personal-data.php:13 +msgid "Sorry, you are not allowed to export personal data on this site." +msgstr "Lo siento, no tienes permisos para exportar datos en este sitio." + +#: wp-admin/includes/ajax-actions.php:5192 +msgid "Eraser index is out of range." +msgstr "El índice del borrador está fuera de rango." + +#: wp-admin/includes/ajax-actions.php:5151 +msgid "Missing eraser index." +msgstr "Índice del borrador no disponible." + +#. translators: %s: Exporter friendly name. +#: wp-admin/includes/ajax-actions.php:5076 +msgid "Expected done (boolean) in response array from exporter: %s." +msgstr "Se esperaba hecho (boleano) en el array de respuesta del exportador: %s." + +#. translators: %s: Exporter friendly name. +#: wp-admin/includes/ajax-actions.php:5069 +msgid "Expected data array in response array from exporter: %s." +msgstr "Se esperaba array de datos en el array de respuesta del exportador: %s" + +#. translators: %s: Exporter friendly name. +#: wp-admin/includes/ajax-actions.php:5062 +msgid "Expected data in response array from exporter: %s." +msgstr "Se esperaban datos en el array de respuesta del exportador: %s" + +#. translators: %s: Exporter friendly name. +#: wp-admin/includes/ajax-actions.php:5055 +msgid "Expected response as an array from exporter: %s." +msgstr "Se esperaba respuesta como array del exportador: %s" + +#. translators: %s: Exporter friendly name. +#: wp-admin/includes/ajax-actions.php:5041 +msgid "Exporter callback is not a valid callback: %s." +msgstr "La respuesta del exportador no es una respuesta válida: %s" + +#. translators: %s: Exporter friendly name. +#: wp-admin/includes/ajax-actions.php:5034 +msgid "Exporter does not include a callback: %s." +msgstr "El exportador no incluye una respuesta: %s" + +#. translators: %s: Exporter array index. +#: wp-admin/includes/ajax-actions.php:5018 +msgid "Expected an array describing the exporter at index %s." +msgstr "Se esperaba un array que describiese el exportador en el índice %s." + +#: wp-admin/includes/ajax-actions.php:5004 +msgid "Exporter index is out of range." +msgstr "El índice del exportador está fuera de rango." + +#: wp-admin/includes/ajax-actions.php:5000 +msgid "Exporter index cannot be negative." +msgstr "El índice del exportador no puede ser negativo." + +#: wp-admin/includes/ajax-actions.php:4994 +msgid "An exporter has improperly used the registration filter." +msgstr "Un exportador ha usado inadecuadamente el filtro de registro." + +#: wp-admin/includes/ajax-actions.php:4965 +#: wp-admin/includes/ajax-actions.php:5157 +msgid "Missing page index." +msgstr "Índice de página no disponible." + +#: wp-admin/includes/ajax-actions.php:4959 +msgid "Missing exporter index." +msgstr "Índice del exportador no disponible." + +#: wp-admin/includes/ajax-actions.php:4950 +#: wp-admin/includes/ajax-actions.php:5141 +msgid "Invalid request type." +msgstr "Tipo de petición no válido." + +#: wp-admin/options-privacy.php:311 +msgid "Use This Page" +msgstr "Usar esta página" + +#: wp-admin/options-privacy.php:290 +msgid "Select a Privacy Policy page" +msgstr "Elige una página de política de privacidad" + +#: wp-admin/options-privacy.php:288 +msgid "Change your Privacy Policy page" +msgstr "Cambia tu página de política de privacidad" + +#. translators: 1: URL to edit Privacy Policy page, 2: URL to view Privacy +#. Policy page. +#: wp-admin/options-privacy.php:221 +msgid "Edit or view your Privacy Policy page content." +msgstr "Edita o ve el contenido de tu página de política de privacidad." + +#: wp-admin/options-privacy.php:202 +msgid "You should also review your privacy policy from time to time, especially after installing or updating any themes or plugins. There may be changes or new suggested information for you to consider adding to your policy." +msgstr "También deberías revisar tu política de privacidad de vez en cuando, especialmente después de instalar o actualizar temas o plugins. Podría haber cambios o nueva información sugerida que puedas plantearte añadir a tu política." + +#: wp-admin/options-privacy.php:198 +msgid "However, it is your responsibility to use those resources correctly, to provide the information that your privacy policy requires, and to keep that information current and accurate." +msgstr "Sin embargo, es tu responsabilidad usar estos recursos correctamente para ofrecer la información que requiera tu política de privacidad y mantener esa información actualizada y precisa." + +#: wp-admin/options-privacy.php:197 +msgid "The new page will include help and suggestions for your privacy policy." +msgstr "La nueva página incluirá ayuda y sugerencias para tu política de privacidad." + +#: wp-admin/options-privacy.php:194 +msgid "If you already have a Privacy Policy page, please select it below. If not, please create one." +msgstr "Si ya tienes una página de política de privacidad, por favor, selecciónala abajo. En caso contrario, crea una." + +#. translators: %s: URL to Pages Trash. +#: wp-admin/options-privacy.php:136 +msgid "The currently selected Privacy Policy page is in the Trash. Please create or select a new Privacy Policy page or restore the current page." +msgstr "La página de política de privacidad seleccionada actualmente está en la papelera. Por favor, crea o selecciona una nueva página de política de privacidad, o restaura la página actual." + +#: wp-admin/options-privacy.php:126 +msgid "The currently selected Privacy Policy page does not exist. Please create or select a new page." +msgstr "La página de política de privacidad seleccionada actualmente no existe. Por favor, crea o selecciona una nueva página." + +#: wp-admin/options-privacy.php:102 +msgid "Unable to create a Privacy Policy page." +msgstr "No ha sido posible crear la página de política de privacidad." + +#. translators: Privacy Policy page slug. +#: wp-admin/includes/upgrade.php:399 +msgid "privacy-policy" +msgstr "politica-privacidad" + +#. translators: %s: URL to Customizer -> Menus. +#: wp-admin/options-privacy.php:74 +msgid "Privacy Policy page setting updated successfully. Remember to update your menus!" +msgstr "Ajuste de la página de política de privacidad actualizado correctamente. ¡Recuerda actualizar tus menús!" + +#. translators: Hidden accessibility text. %s: Plugin name. +#: wp-admin/includes/class-wp-privacy-policy-content.php:435 +msgid "Copy suggested policy text from %s." +msgstr "Copia el texto sugerido de la política desde %s." + +#. translators: Do not translate EXPIRATION, LINK, SITENAME, SITEURL: those are +#. placeholders. +#: wp-admin/includes/privacy-tools.php:662 +msgid "" +"Howdy,\n" +"\n" +"Your request for an export of personal data has been completed. You may\n" +"download your personal data by clicking on the link below. For privacy\n" +"and security, we will automatically delete the file on ###EXPIRATION###,\n" +"so please download it before then.\n" +"\n" +"###LINK###\n" +"\n" +"Regards,\n" +"All at ###SITENAME###\n" +"###SITEURL###" +msgstr "" +"Hola,\n" +"\n" +"Tu petición de exportación de datos personales se ha completado. Puedes\n" +"descargar tus datos personales haciendo clic en el siguiente enlace. Por privacidad\n" +"y seguridad, borraremos automáticamente el archivo el ###EXPIRATION###,\n" +"así que, por favor, descárgalo antes.\n" +"\n" +"###LINK###\n" +"\n" +"Este correo electrónico se ha enviado a ###EMAIL###.\n" +"\n" +"Atentamente,\n" +"El equipo de ###SITENAME###\n" +"###SITEURL###" + +#: wp-admin/includes/class-wp-privacy-data-export-requests-list-table.php:135 +msgid "Email sent." +msgstr "Correo electrónico enviado." + +#: wp-admin/includes/class-wp-privacy-data-export-requests-list-table.php:134 +msgid "Sending email..." +msgstr "Enviando correo electrónico..." + +#: wp-admin/includes/class-wp-privacy-data-export-requests-list-table.php:62 +msgid "Download personal data again" +msgstr "Descargar de nuevo los datos personales" + +#: wp-admin/includes/privacy-tools.php:747 +msgid "Unable to send personal data export email." +msgstr "No ha sido posible enviar el correo electrónico de exportación de datos personales." + +#. translators: Personal data export notification email subject. %s: Site +#. title. +#: wp-admin/includes/privacy-tools.php:636 +msgid "[%s] Personal Data Export" +msgstr "[%s] Exportación de datos personales" + +#: wp-admin/includes/privacy-tools.php:593 +msgid "Invalid request ID when sending personal data export email." +msgstr "ID de petición no válida al enviar el correo electrónico de exportación de datos personales." + +#: wp-admin/includes/privacy-tools.php:467 +msgid "Personal Data Export" +msgstr "Exportación de datos personales" + +#. translators: %s: User's email address. +#: wp-admin/includes/privacy-tools.php:361 +msgid "Personal Data Export for %s" +msgstr "Exportación de datos personales para %s" + +#: wp-admin/includes/ajax-actions.php:4955 +msgid "A valid email address must be given." +msgstr "Se debe facilitar una dirección de correo electrónico válida." + +#: wp-admin/includes/class-wp-privacy-data-removal-requests-list-table.php:65 +msgid "Force erase personal data" +msgstr "Forzar el borrado de los datos personales" + +#: wp-admin/includes/class-wp-privacy-data-export-requests-list-table.php:156 +#: wp-admin/includes/class-wp-privacy-data-removal-requests-list-table.php:163 +msgid "Remove request" +msgstr "Eliminar petición" + +#: wp-admin/includes/class-wp-privacy-data-export-requests-list-table.php:116 +#: wp-admin/includes/class-wp-privacy-data-removal-requests-list-table.php:122 +msgid "Waiting for confirmation" +msgstr "Esperando confirmación" + +#: wp-admin/includes/class-wp-privacy-data-export-requests-list-table.php:63 +#: wp-admin/includes/class-wp-privacy-data-export-requests-list-table.php:136 +#: wp-admin/includes/class-wp-privacy-data-export-requests-list-table.php:142 +#: wp-admin/includes/class-wp-privacy-data-removal-requests-list-table.php:68 +#: wp-admin/includes/class-wp-privacy-data-removal-requests-list-table.php:142 +#: wp-admin/includes/class-wp-privacy-data-removal-requests-list-table.php:149 +msgid "Retry" +msgstr "Reintentar" + +#: wp-admin/includes/class-wp-privacy-data-export-requests-list-table.php:61 +msgid "Downloading data..." +msgstr "Descargando los datos..." + +#: wp-admin/includes/class-wp-privacy-data-export-requests-list-table.php:60 +msgid "Download personal data" +msgstr "Descargar datos personales" + +#: wp-admin/includes/class-wp-privacy-requests-table.php:45 +msgid "Requested" +msgstr "Solicitada" + +#: wp-admin/includes/class-wp-privacy-requests-table.php:43 +msgid "Requester" +msgstr "Solicitante" + +#: wp-admin/erase-personal-data.php:138 wp-admin/export-personal-data.php:138 +msgid "Send Request" +msgstr "Enviar petición" + +#: wp-admin/erase-personal-data.php:119 wp-admin/export-personal-data.php:119 +msgid "Username or email address" +msgstr "Nombre de usuario o correo electrónico" + +#: wp-admin/export-personal-data.php:114 +msgid "Add Data Export Request" +msgstr "Añadir petición de exportación de datos" + +#: wp-admin/includes/privacy-tools.php:171 +msgid "Confirmation request initiated successfully." +msgstr "Confirmación de petición iniciada correctamente." + +#: wp-admin/includes/privacy-tools.php:135 +msgid "Unable to add this request. A valid email address or username must be supplied." +msgstr "No ha sido posible añadir esta petición. Se debe facilitar una dirección de correo electrónico o nombre de usuario válido." + +#: wp-admin/includes/privacy-tools.php:91 +msgid "Confirmation request sent again successfully." +msgstr "Petición de confirmación reenviada correctamente." + +#: wp-admin/includes/privacy-tools.php:155 +msgid "Unable to initiate confirmation request." +msgstr "No ha sido posible iniciar la petición de confirmación." + +#: wp-admin/includes/ajax-actions.php:4937 +#: wp-admin/includes/ajax-actions.php:5127 +msgid "Invalid request ID." +msgstr "ID de petición no válido." + +#. translators: 1: Eraser friendly name, 2: Eraser array index. +#: wp-admin/includes/ajax-actions.php:5301 +msgid "Expected done flag in response array from %1$s eraser (index %2$d)." +msgstr "Se esperaba la etiqueta hecho en el array de respuesta del borrador %1$s (índice %2$d)." + +#. translators: 1: Eraser friendly name, 2: Eraser array index. +#: wp-admin/includes/ajax-actions.php:5290 +msgid "Expected messages key to reference an array in response array from %1$s eraser (index %2$d)." +msgstr "Se esperaban mensajes claves a la referencia en la respuesta del array %1$s del borrador (índice %2$d)" + +#. translators: 1: Eraser friendly name, 2: Eraser array index. +#: wp-admin/includes/ajax-actions.php:5279 +msgid "Expected messages key in response array from %1$s eraser (index %2$d)." +msgstr "Se esperaban mensajes clave en el array de respuesta %1$s del borrador (índice %2$d)." + +#. translators: 1: Eraser friendly name, 2: Eraser array index. +#: wp-admin/includes/ajax-actions.php:5268 +msgid "Expected items_retained key in response array from %1$s eraser (index %2$d)." +msgstr "Se esperaba la clave items_retained en respuesta al array del borrador %1$s (índice %2$d)." + +#. translators: 1: Eraser friendly name, 2: Eraser array index. +#: wp-admin/includes/ajax-actions.php:5257 +msgid "Expected items_removed key in response array from %1$s eraser (index %2$d)." +msgstr "Se esperaba la clave items_removed en respuesta al array del borrador %1$s (índice %2$d)." + +#. translators: 1: Eraser friendly name, 2: Eraser array index. +#: wp-admin/includes/ajax-actions.php:5246 +msgid "Did not receive array from %1$s eraser (index %2$d)." +msgstr "No se ha recibido un array del borrador %1$s (índice %2$d)." + +#. translators: %d: Eraser array index. +#: wp-admin/includes/ajax-actions.php:5210 +msgid "Eraser array at index %d does not include a friendly name." +msgstr "El array del borrador en el índice %d no incluye un nombre amigable." + +#. translators: %d: Eraser array index. +#: wp-admin/includes/ajax-actions.php:5205 +msgid "Expected an array describing the eraser at index %d." +msgstr "Se esperaba un array describiendo el borrador en el índice %d." + +#: wp-admin/includes/ajax-actions.php:5008 +#: wp-admin/includes/ajax-actions.php:5196 +msgid "Page index cannot be less than one." +msgstr "El índice de página no puede ser menor que uno." + +#: wp-admin/includes/ajax-actions.php:5188 +msgid "Eraser index cannot be less than one." +msgstr "El índice del borrador no puede ser menor que uno." + +#: wp-admin/includes/ajax-actions.php:5147 +msgid "Invalid email address in request." +msgstr "Dirección de correo electrónico no válida en la petición." + +#: wp-admin/includes/plugin-install.php:678 +msgid "Requires PHP Version:" +msgstr "Necesita la versión de PHP:" + +#. translators: %s: https://wordpress.org/about/stats +#: wp-admin/privacy.php:61 +msgid "This data is used to provide general enhancements to WordPress, which includes helping to protect your site by finding and automatically installing new updates. It is also used to calculate statistics, such as those shown on the WordPress.org stats page." +msgstr "Estos datos se usan para ofrecer mejoras generales a WordPress, lo que incluye la ayuda para proteger tu sitio encontrando e instalando automáticamente nuevas actualizaciones. También se usan para calcular estadísticas, como las mostradas en la página de estadísticas de WordPress.org." + +#. translators: %s: Link to add custom CSS section in either the Customizer +#. (classic themes) or Site Editor (block themes). +#: wp-admin/theme-editor.php:219 wp-admin/theme-editor.php:244 +msgid "There is no need to change your CSS here — you can edit and live preview CSS changes in the built-in CSS editor." +msgstr "No hay necesidad de cambiar tu CSS aquí — Puedes editar y previsualizar en vivo los cambios de CSS en el editor CSS integrado." + +#: wp-admin/theme-editor.php:217 wp-admin/theme-editor.php:242 +msgid "Did you know?" +msgstr "¿Lo sabías?" + +#: wp-admin/credits.php:139 +msgid "Noteworthy Contributors" +msgstr "Colaboradores destacados" + +#: wp-admin/theme-editor.php:461 +msgid "If you decide to go ahead with direct edits anyway, use a file manager to create a copy with a new name and hang on to the original. That way, you can re-enable a functional version if something goes wrong." +msgstr "Si aún así decides seguir adelante con la edición directa, utiliza un gestor de archivos para crear una copia con un nombre nuevo y guarda el original. De esta forma podrás volver a activar una versión funcional si algo falla." + +#: wp-admin/plugin-editor.php:373 +msgid "If you absolutely have to make direct edits to this plugin, use a file manager to create a copy with a new name and hang on to the original. That way, you can re-enable a functional version if something goes wrong." +msgstr "Si no tienes más remedio que editar directamente este plugin, utiliza un gestor de archivos para crear una copia con un nombre nuevo y quédate con el original. De esta forma podrás volver a activar una versión funcional si algo falla." + +#: wp-admin/plugin-editor.php:372 +msgid "You appear to be making direct edits to your plugin in the WordPress dashboard. Editing plugins directly is not recommended as it may introduce incompatibilities that break your site and your changes may be lost in future updates." +msgstr "Parece que estás haciendo ediciones directas en tu plugin en el escritorio de WordPress. No se recomienda editar los plugins directamente, ya que puede introducir incompatibilidades que rompan tu sitio y tus cambios podrían perderse en futuras actualizaciones." + +#. translators: 1: Documentation URL, 2: URL to Reading Settings screen. +#: wp-admin/options-writing.php:237 +msgid "WordPress is not notifying any Update Services because of your site’s visibility settings." +msgstr "WordPress no está informando a ningún servicio de actualizaciones debido a los ajustes de visibilidad de tu sitio." + +#. translators: 1: Documentation URL, 2: web.config, 3: Ctrl + A, 4: ⌘ + A +#: wp-admin/options-permalink.php:495 +msgid "Error: The root directory of your site is not writable, so creating a file automatically was not possible. This is the URL rewrite rule you should have in your %2$s file. Create a new file called %2$s in the root directory of your site. Click in the field and press %3$s (or %4$s on Mac) to select all. Then insert this code into the %2$s file." +msgstr "Error: El directorio raíz de tu sitio no tiene permisos de escritura, por lo que no ha sido posible crear un archivo automáticamente. Esta es la regla de reescritura de la URL que deberías tener en tu archivo %2$s. Crea un nuevo archivo llamado %2$s en el directorio raíz de tu sitio. Haz clic en el siguiente campo y pulsa %3$s (o %4$s en Mac) para seleccionarlo todo. Luego inserta este código en el archivo %2$s." + +#. translators: %s: Documentation URL. +#: wp-admin/options-general.php:253 +msgid "Enter the same address here unless you want your site home page to be different from your WordPress installation directory." +msgstr "Escribe aquí la misma dirección a no ser que quieras que la página de inicio sea distinta que tu directorio de instalación de WordPress." + +#: wp-admin/freedoms.php:62 wp-admin/freedoms.php:112 +msgid "https://wordpress.org/about/license/" +msgstr "https://es.wordpress.org/about/license/" + +#: wp-admin/privacy.php:55 +msgid "From time to time, your WordPress site may send data to WordPress.org — including, but not limited to — the version you are using, and a list of installed plugins and themes." +msgstr "De vez en cuando, tu sitio WordPress puede enviar datos a WordPress.org —incluyendo, pero no limitado a— la versión de WordPress que estás usando y una lista de los plugins y temas instalados." + +#. translators: Attachment information. %s: Date the attachment was uploaded. +#: wp-admin/includes/meta-boxes.php:445 +msgid "Uploaded on: %s" +msgstr "Subido el: %s" + +#. translators: %s: Package URL. +#: wp-admin/includes/class-plugin-upgrader.php:77 +#: wp-admin/includes/class-theme-upgrader.php:75 +msgid "Downloading installation package from %s…" +msgstr "Descargando el paquete de instalación desde %s…" + +#. translators: %s: Package URL. +#: wp-admin/includes/class-language-pack-upgrader.php:117 +msgid "Downloading translation from %s…" +msgstr "Descargando la traducción desde %s…" + +#. translators: %s: Package URL. +#: wp-admin/includes/class-core-upgrader.php:37 +#: wp-admin/includes/class-plugin-upgrader.php:60 +#: wp-admin/includes/class-theme-upgrader.php:59 +msgid "Downloading update from %s…" +msgstr "Descargando la actualización desde %s…" + +#. translators: 1: wp-admin/includes/template.php, 2: add_meta_box(), 3: +#. add_meta_boxes +#: wp-admin/includes/template.php:2695 +msgid "Likely direct inclusion of %1$s in order to use %2$s. This is very wrong. Hook the %2$s call into the %3$s action instead." +msgstr "Probable inclusión directa de %1$s para usar %2$s. Esto es un error. En vez de eso, haz un gancho a %2$s para que llame a la acción %3$s." + +#: wp-admin/includes/template.php:2315 +msgid "Customization Draft" +msgstr "Borrador de personalización" + +#. translators: %s: URL to the Customizer. +#: wp-admin/includes/meta-boxes.php:316 +msgid "This draft comes from your unpublished customization changes. You can edit, but there is no need to publish now. It will be published automatically with those changes." +msgstr "Este borrador viene de tus cambios de personalización sin publicar. Puedes editarlo, pero no hay necesidad de publicarlo ahora. Se publicará automáticamente con esos cambios." + +#: wp-admin/theme-editor.php:323 +msgid "Theme Files" +msgstr "Archivos del tema" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/misc.php:421 wp-admin/includes/misc.php:523 +msgid "folder" +msgstr "carpeta" + +#: wp-admin/includes/file.php:591 +msgid "Unable to communicate back with site to check for fatal errors, so the PHP change was reverted. You will need to upload your PHP file change by some other means, such as by using SFTP." +msgstr "No ha sido posible comunicar con el sitio para comprobar los errores fatales, así que el cambio de PHP se ha revertido. Tendrás que subir el cambio a tu archivo PHP por otros medios, como por ejemplo usando SFTP." + +#: wp-admin/press-this.php:75 wp-admin/press-this.php:81 +msgid "Installation Required" +msgstr "Instalación obligatoria" + +#. translators: %s: Plugin filename. +#: wp-admin/includes/plugin.php:1048 +msgid "Could not fully remove the plugin %s." +msgstr "El plugin %s no se ha podido quitar completamente." + +#: wp-admin/user-new.php:371 +msgid "User has been created, but could not be added to this site." +msgstr "El usuario se ha creado, pero no se ha añadido a este sitio" + +#: wp-admin/user-new.php:368 +msgid "That user could not be added to this site." +msgstr "Ese usuario no se ha podido añadir a este sitio." + +#: wp-admin/user-edit.php:328 +msgid "Disable syntax highlighting when editing code" +msgstr "Desactivar el resaltado de sintaxis al editar código" + +#: wp-admin/user-edit.php:325 +msgid "Syntax Highlighting" +msgstr "Resaltado de sintaxis" + +#: wp-admin/setup-config.php:446 wp-admin/setup-config.php:511 +msgid "Run the installation" +msgstr "Realizar la instalación" + +#: wp-admin/privacy.php:72 +msgid "https://wordpress.org/about/privacy/" +msgstr "https://wordpress.org/about/privacy/" + +#: wp-admin/press-this.php:80 +msgid "Press This is not available. Please contact your site administrator." +msgstr "«Publicar esto» no está disponible. Por favor, contacta con el administrador del sitio." + +#. translators: %s: URL to Press This bookmarklet on the main site. +#: wp-admin/press-this.php:68 +msgid "Press This is not installed. Please install Press This from the main site." +msgstr "Publicar esto no está instalado. Por favor, instala «Publicar esto» desde el sitio principal." + +#: wp-admin/press-this.php:44 +msgid "Activate Press This" +msgstr "Activar Publicar esto" + +#: wp-admin/plugin-editor.php:377 wp-admin/theme-editor.php:465 +msgid "I understand" +msgstr "Entendido" + +#: wp-admin/plugin-editor.php:371 wp-admin/theme-editor.php:444 +msgid "Heads up!" +msgstr "¡Aviso!" + +#: wp-admin/plugin-editor.php:321 +msgid "Warning: Making changes to active plugins is not recommended." +msgstr "Advertencia: No se recomienda hacer cambios en los plugins activos." + +#: wp-admin/plugin-editor.php:301 wp-admin/theme-editor.php:361 +msgid "Selected file content:" +msgstr "Contenido del archivo seleccionado:" + +#: wp-admin/plugin-editor.php:210 wp-admin/theme-editor.php:204 +msgid "There was an error while trying to update the file. You may need to fix something and try updating again." +msgstr "Ha ocurrido un error al tratar de actualizar el archivo. Puede que tengas que reparar algo y tratar de actualizar de nuevo." + +#. translators: %s: Select field to choose the front page. +#: wp-admin/options-reading.php:113 +msgid "Homepage: %s" +msgstr "Página de inicio: %s" + +#: wp-admin/options-permalink.php:382 +msgid "Available tags:" +msgstr "Etiquetas disponibles:" + +#. translators: %s: Permalink structure tag. +#: wp-admin/options-permalink.php:315 +msgid "%s (already used in permalink structure)" +msgstr "%s (ya utilizado en la estructura de enlaces permanentes)" + +#. translators: %s: Permalink structure tag. +#: wp-admin/options-permalink.php:311 +msgid "%s added to permalink structure" +msgstr "%s añadido a la estructura de enlaces permanentes" + +#. translators: %s: Permalink structure tag. +#: wp-admin/options-permalink.php:298 +msgid "%s (A sanitized version of the author name.)" +msgstr "%s (una versión saneada del nombre del autor.)" + +#. translators: %s: Permalink structure tag. +#: wp-admin/options-permalink.php:296 +msgid "%s (Category slug. Nested sub-categories appear as nested directories in the URL.)" +msgstr "%s (Slug de la categoría. Las subcategorías anidadas aparecen como directorios anidados en la URL.)" + +#. translators: %s: Permalink structure tag. +#: wp-admin/options-permalink.php:294 +msgid "%s (The sanitized post title (slug).)" +msgstr "%s (el título (slug) de entrada saneado.)" + +#. translators: %s: Permalink structure tag. +#: wp-admin/options-permalink.php:292 +msgid "%s (The unique ID of the post, for example 423.)" +msgstr "%s (el ID único de la entrada, por ejemplo 423.)" + +#. translators: %s: Permalink structure tag. +#: wp-admin/options-permalink.php:290 +msgid "%s (Second of the minute, for example 33.)" +msgstr "%s (segundos del minuto, por ejemplo 33.)" + +#. translators: %s: Permalink structure tag. +#: wp-admin/options-permalink.php:288 +msgid "%s (Minute of the hour, for example 43.)" +msgstr "%s (minutos de la hora, por ejemplo 43.)" + +#. translators: %s: Permalink structure tag. +#: wp-admin/options-permalink.php:286 +msgid "%s (Hour of the day, for example 15.)" +msgstr "%s (hora del día, por ejemplo 15.)" + +#. translators: %s: Permalink structure tag. +#: wp-admin/options-permalink.php:284 +msgid "%s (Day of the month, for example 28.)" +msgstr "%s (día del mes, por ejemplo 28.)" + +#. translators: %s: Permalink structure tag. +#: wp-admin/options-permalink.php:282 +msgid "%s (Month of the year, for example 05.)" +msgstr "%s (mes del año, por ejemplo 05.)" + +#. translators: %s: Permalink structure tag. +#: wp-admin/options-permalink.php:280 +msgid "%s (The year of the post, four digits, for example 2004.)" +msgstr "%s (el año de la entrada, en cuatro dígitos, por ejemplo 2004.)" + +#: wp-admin/includes/theme-install.php:264 +msgid "Theme Installation" +msgstr "Instalación del tema" + +#. translators: %s: User's display name. +#: wp-admin/includes/post.php:1888 +msgid "%s is currently editing this post." +msgstr "%s está editando ahora esta entrada." + +#. translators: %s: User's display name. +#: wp-admin/includes/post.php:1885 +msgid "%s is currently editing this post. Do you want to take over?" +msgstr "%s está editando ahora esta entrada. ¿Quieres tomar posesión?" + +#: wp-admin/includes/plugin.php:505 +msgid "Custom installation script." +msgstr "Script de instalación personalizado." + +#: wp-admin/includes/plugin-install.php:685 +msgid "Active Installations:" +msgstr "Instalaciones activas:" + +#: wp-admin/includes/plugin-install.php:600 wp-admin/update.php:128 +msgid "Plugin Installation" +msgstr "Instalación del plugin" + +#: wp-admin/includes/ms.php:1161 +msgid "Settings — This page shows a list of all settings associated with this site. Some are created by WordPress and others are created by plugins you activate. Note that some fields are grayed out and say Serialized Data. You cannot modify these values due to the way the setting is stored in the database." +msgstr "Ajustes — Esta página muestra una lista de todos los ajustes asociados a este sitio. Algunos los crea WordPress, y otros los crean los plugins que activas. Observa que algunos campos están en gris e indican «Serialized Data». No puedes modificar estos valores debido al modo en que está almacenado el ajuste en la base de datos." + +#. translators: %s: URL to Network Themes screen. +#: wp-admin/includes/ms.php:1158 +msgid "Themes — This area shows themes that are not already enabled across the network. Enabling a theme in this menu makes it accessible to this site. It does not activate the theme, but allows it to show in the site’s Appearance menu. To enable a theme for the entire network, see the Network Themes screen." +msgstr "Temas — Este área muestra los temas que no están actualmente activos en la red. Al activar un tema en este menú hace que esté disponible para este sitio. No activa el tema, pero permite que sea visible en el menú «Apariencia del sitio». Para activar un tema para toda la red revisa la pantalla Temas de la red." + +#: wp-admin/includes/ms.php:1155 +msgid "Users — This displays the users associated with this site. You can also change their role, reset their password, or remove them from the site. Removing the user from the site does not remove the user from the network." +msgstr "Usuarios — Esto muestra los usuarios asociados a este sitio. También puedes cambiar su perfil, restablecer su contraseña o quitarlos del sitio. Al quitar a un usuario del sitio no se quita al usuario de la red." + +#: wp-admin/includes/ms.php:1154 +msgid "Info — The site URL is rarely edited as this can cause the site to not work properly. The Registered date and Last Updated date are displayed. Network admins can mark a site as archived, spam, deleted and mature, to remove from public listings or disable." +msgstr "Información — Raramente se edita la URL del sitio, ya que esto puede provocar que el sitio no funcione correctamente. Se muestran la fecha de registro y la fecha de última actualización. Los administradores de la red pueden marcar un sitio como archivado, spam, eliminado y para adultos, para quitarlo de los listados públicos o desactivarlo." + +#: wp-admin/includes/ms.php:1153 +msgid "The menu is for editing information specific to individual sites, particularly if the admin area of a site is unavailable." +msgstr "El menú es para editar información específica de sitios individuales, especialmente si el área de administración del sitio no está disponible." + +#: wp-admin/includes/file.php:520 +msgid "Unable to write to file." +msgstr "No fue posible escribir en el archivo." + +#. translators: 1: Line number, 2: File path. +#: wp-admin/includes/file.php:316 +msgid "Your PHP code changes were not applied due to an error on line %1$s of file %2$s. Please fix and try saving again." +msgstr "Los cambios en tu código PHP se han revertido debido a un error en la línea %1$s del archivo %2$s. Por favor, corrígelo y trata de guardar de nuevo." + +#. translators: If a Rosetta site exists (e.g. https://es.wordpress.org/news/), +#. then use that. Otherwise, leave untranslated. +#: wp-admin/includes/dashboard.php:1340 +msgctxt "Events and News dashboard widget" +msgid "https://wordpress.org/news/" +msgstr "https://es.wordpress.org/news/" + +#: wp-admin/includes/dashboard.php:87 wp-admin/includes/dashboard.php:659 +msgid "Your Recent Drafts" +msgstr "Tus borradores recientes" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/class-wp-users-list-table.php:589 +#: wp-admin/includes/class-wp-ms-users-list-table.php:316 +msgctxt "name" +msgid "Unknown" +msgstr "Desconocido" + +#. translators: %s: Author's display name. +#: wp-admin/includes/class-wp-users-list-table.php:497 +msgid "View posts by %s" +msgstr "Ver entradas de %s" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/class-wp-terms-list-table.php:579 +msgid "No description" +msgstr "Sin descripción" + +#. translators: %s: Number of installations. +#: wp-admin/includes/class-wp-plugin-install-list-table.php:728 +msgid "%s Active Installations" +msgstr "%s instalaciones activas" + +#: wp-admin/includes/class-theme-upgrader.php:81 +msgid "Theme installation failed." +msgstr "La instalación del tema ha fallado." + +#: wp-admin/includes/class-plugin-upgrader.php:83 +msgid "Plugin installation failed." +msgstr "La instalación del plugin ha fallado." + +#: wp-admin/includes/class-plugin-installer-skin.php:116 +msgid "Activate Plugin & Go to Press This" +msgstr "Activar plugin e ir a Publicar esto" + +#: wp-admin/customize.php:71 +msgid "Your scheduled changes just published" +msgstr "Tus cambios programados recién publicados" + +#: wp-admin/includes/class-theme-installer-skin.php:157 +#: wp-admin/includes/class-theme-upgrader-skin.php:113 +#: wp-admin/includes/class-wp-themes-list-table.php:218 +#: wp-admin/js/updates.js:1815 +msgctxt "theme" +msgid "Activate" +msgstr "Activar" + +#: wp-admin/options-discussion.php:56 +msgid "Allow link notifications from other blogs (pingbacks and trackbacks) on new posts" +msgstr "Permitir avisos de enlaces de otros blogs (pingbacks y trackbacks) en las nuevas entradas" + +#. translators: %s: Plugin name. +#: wp-admin/includes/class-wp-plugins-list-table.php:852 +#: wp-admin/includes/plugin-install.php:1006 wp-admin/js/updates.js:972 +msgctxt "plugin" +msgid "Network Activate %s" +msgstr "Activar %s para la red" + +#. translators: %s: Plugin name. +#: wp-admin/includes/class-wp-plugins-list-table.php:958 +#: wp-admin/includes/plugin-install.php:993 wp-admin/js/updates.js:983 +msgctxt "plugin" +msgid "Activate %s" +msgstr "Activar %s" + +#: wp-admin/includes/class-wp-media-list-table.php:261 +msgid "No media files found." +msgstr "No se encontraron archivos de medios." + +#: wp-admin/import.php:139 wp-admin/import.php:188 wp-admin/js/updates.js:1261 +msgid "Run Importer" +msgstr "Ejecutar el importador" + +#. translators: %s: Importer name. +#: wp-admin/import.php:138 wp-admin/import.php:187 wp-admin/js/updates.js:1257 +msgid "Run %s" +msgstr "Ejecutar %s" + +#: wp-admin/includes/class-wp-debug-data.php:225 +msgctxt "comment status" +msgid "Open" +msgstr "Abiertos" + +#: wp-admin/includes/image-edit.php:66 +msgid "Image Rotation" +msgstr "Rotación de imagen" + +#. translators: %s: Meetup organization documentation URL. +#: wp-admin/includes/dashboard.php:1511 +msgid "There are no events scheduled near you at the moment. Would you like to organize a WordPress event?" +msgstr "En este momento no hay ningún evento programado cerca de ti. ¿Te gustaría organizar un evento WordPress?" + +#. translators: %s: User's display name. +#: wp-admin/user-edit.php:45 +msgid "Edit User %s" +msgstr "Editar el usuario %s" + +#. translators: Hidden accessibility text. %s: Widget title. +#: wp-admin/includes/widgets.php:251 +msgid "Edit widget: %s" +msgstr "Editar el widget: %s" + +#: wp-admin/includes/dashboard.php:1503 wp-admin/includes/dashboard.php:1512 +msgid "https://make.wordpress.org/community/handbook/meetup-organizer/welcome/" +msgstr "https://make.wordpress.org/community/handbook/meetup-organizer/welcome/" + +#. translators: 1: The city the user searched for, 2: Meetup organization +#. documentation URL. +#: wp-admin/includes/dashboard.php:1501 +msgid "There are no events scheduled near %1$s at the moment. Would you like to organize a WordPress event?" +msgstr "En este momento no hay ningún evento programado cerca de %1$s. ¿Te gustaría organizar un evento WordPress?" + +#. translators: %s: The name of a city. +#: wp-admin/includes/dashboard.php:1430 +msgid "Attend an upcoming event near %s." +msgstr "Asiste a un próximo evento cerca de %s." + +#: wp-admin/includes/dashboard.php:1400 +msgid "Cincinnati" +msgstr "Madrid" + +#: wp-admin/includes/dashboard.php:1388 +msgid "City:" +msgstr "Ciudad:" + +#: wp-admin/includes/dashboard.php:1328 +msgid "WordCamps" +msgstr "WordCamps" + +#: wp-admin/includes/dashboard.php:1316 +msgid "Meetups" +msgstr "Meetups" + +#: wp-admin/includes/dashboard.php:1358 wp-admin/js/dashboard.js:591 +msgid "An error occurred. Please try again." +msgstr "Ha ocurrido un error. Por favor, inténtalo de nuevo." + +#: wp-admin/includes/dashboard.php:92 +msgid "WordPress Events and News" +msgstr "Eventos y noticias de WordPress" + +#. translators: Date format for upcoming events on the dashboard. Include the +#. day of the week. See https://www.php.net/manual/datetime.format.php +#: wp-admin/includes/class-wp-community-events.php:397 +#: wp-admin/includes/class-wp-community-events.php:402 +#: wp-admin/js/dashboard.js:780 +msgid "l, M j, Y" +msgstr "l, j M Y" + +#: wp-admin/includes/class-wp-community-events.php:125 +msgid "Unknown API error." +msgstr "Error de API la desconocido" + +#. translators: %d: Numeric HTTP status code, e.g. 400, 403, 500, 504, etc. +#: wp-admin/includes/class-wp-community-events.php:120 +msgid "Invalid API response code (%d)." +msgstr "Código de respuesta no válida de la API (%d)" + +#: wp-admin/users.php:195 wp-admin/users.php:289 +msgid "Sorry, you are not allowed to delete users." +msgstr "Lo siento, no tienes permisos para borrar usuarios." + +#: wp-admin/user-new.php:23 wp-admin/user-new.php:195 +msgid "Sorry, you are not allowed to create users." +msgstr "Lo siento, no tienes permisos para crear usuarios." + +#: wp-admin/customize.php:272 +msgctxt "short (~12 characters) label for hide controls button" +msgid "Hide Controls" +msgstr "Ocultar controles" + +#: wp-admin/theme-install.php:71 +msgid "Expand Sidebar" +msgstr "Desplegar la barra lateral" + +#: wp-admin/nav-menus.php:1198 +msgid "Display location" +msgstr "Dónde se verá" + +#. translators: 1: User ID, 2: User login. +#: wp-admin/users.php:539 +msgid "ID #%1$s: %2$s Sorry, you are not allowed to remove this user." +msgstr "ID #%1$s: %2$s Lo siento, no tienes permisos para eliminar este usuario." + +#: wp-admin/user-edit.php:62 +msgid "You can select the language you wish to use while using the WordPress administration screen without affecting the language site visitors see." +msgstr "Puedes elegir el idioma que quieras utilizar en la pantalla de administración de WordPress sin que afecte al idioma que ven los visitantes el sitio." + +#: wp-admin/theme-install.php:271 +msgid "Edit Filters" +msgstr "Editar los filtros" + +#: wp-admin/theme-install.php:244 wp-admin/theme-install.php:266 +msgid "Clear current filters" +msgstr "Vaciar los filtros actuales" + +#. translators: Hidden accessibility text. +#: wp-admin/theme-install.php:73 +msgid "Select one or more Theme features to filter by" +msgstr "Elige una o varias características de temas por las que filtrar" + +#. translators: %s: Number of ratings. +#: wp-admin/includes/theme.php:885 wp-admin/theme-install.php:526 +msgid "(%s ratings)" +msgstr "(%s valoraciones)" + +#: wp-admin/includes/template.php:2458 +msgid "Current Background Image" +msgstr "Imagen de fondo actual" + +#: wp-admin/includes/template.php:2438 +msgid "Current Header Image" +msgstr "Imagen de cabecera actual" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/meta-boxes.php:147 +msgid "Set status" +msgstr "Establecer el estado" + +#. translators: Hidden accessibility text. %s: Post title. +#: wp-admin/includes/class-wp-posts-list-table.php:1056 +msgid "“%s” is locked" +msgstr "«%s» está bloqueado" + +#: wp-admin/includes/class-wp-plugin-install-list-table.php:723 +#: wp-admin/includes/plugin-install.php:695 +msgctxt "Active plugin installations" +msgid "Less Than 10" +msgstr "Menos de 10" + +#: wp-admin/includes/ajax-actions.php:2598 +msgid "Sorry, you are not allowed to attach files to this post." +msgstr "Lo siento, no tienes permisos para adjuntar archivos a esta entrada." + +#: wp-admin/freedoms.php:105 +#: wp-admin/includes/class-wp-plugin-install-list-table.php:346 +#: wp-admin/includes/plugin-install.php:702 wp-admin/plugin-install.php:101 +#: wp-admin/plugins.php:570 +msgid "https://wordpress.org/plugins/" +msgstr "https://es.wordpress.org/plugins/" + +#: wp-admin/customize.php:252 +msgid "The Customizer allows you to preview changes to your site before publishing them. You can navigate to different pages on your site within the preview. Edit shortcuts are shown for some editable elements. The Customizer is intended for use with non-block themes." +msgstr "El personalizador te permite previsualizar los cambios en tu sitio antes de publicarlos. Puedes navegar por las diferentes páginas de tu sitio en la vista previa. Se muestran atajos para algunos elementos editables. El personalizador está pensado para ser utilizado con temas que no sean de bloques." + +#: wp-admin/customize.php:72 wp-admin/customize.php:81 +msgid "Customize New Changes" +msgstr "Personalizar nuevos cambios" + +#: wp-admin/includes/class-custom-background.php:473 +msgctxt "Background Scroll" +msgid "Scroll" +msgstr "Scroll" + +#: wp-admin/includes/class-custom-background.php:464 +msgctxt "Background Repeat" +msgid "Repeat" +msgstr "Repetir" + +#: wp-admin/plugin-install.php:103 +msgid "You can find new plugins to install by searching or browsing the directory right here in your own Plugins section." +msgstr "Puedes encontrar nuevos plugins para instalar buscando y explorando el directorio desde aquí mismo, en tu propia sección de Plugins." + +#. translators: %s: https://wordpress.org/plugins +#: wp-admin/plugin-install.php:100 +msgid "Plugins hook into WordPress to extend its functionality with custom features. Plugins are developed independently from the core WordPress application by thousands of developers all over the world. All plugins in the official WordPress Plugin Directory are compatible with the license WordPress uses." +msgstr "Los plugins se enganchan a WordPress para ampliar su funcionalidad con características personalizables. Los plugins los desarrollan de forma independiente al núcleo de WordPress miles de desarrolladores de todo el mundo. Todos los plugins del directorio oficial de Plugins de WordPress son compatibles con la licencia que usa WordPress." + +#. translators: Hidden accessibility text. +#: wp-admin/includes/plugin-install.php:324 +msgid "Search plugins by:" +msgstr "Buscar plugins por:" + +#: wp-admin/includes/import.php:224 +msgid "Import posts, pages, comments, custom fields, categories, and tags from a WordPress export file." +msgstr "Importa entradas, páginas, comentarios, campos personalizados, categorías y etiquetas de un archivo de exportación de WordPress." + +#: wp-admin/includes/import.php:218 +msgid "Import posts & media from Tumblr using their API." +msgstr "Importa entradas y medios de Tumblr usando su API." + +#: wp-admin/includes/import.php:212 +msgid "Import posts from an RSS feed." +msgstr "Importa entradas de un feed RSS." + +#: wp-admin/includes/import.php:206 +msgid "Import posts and comments from a Movable Type or TypePad blog." +msgstr "Importa entradas y comentarios de un blog Movable Type o TypePad." + +#: wp-admin/includes/import.php:200 +msgid "Import posts from LiveJournal using their API." +msgstr "Importa entradas de LiveJournal usando su API." + +#: wp-admin/includes/import.php:194 +msgid "Convert existing categories to tags or tags to categories, selectively." +msgstr "Convierte las categorías existentes a etiquetas o las etiquetas en categorías, de manera selectiva." + +#: wp-admin/includes/import.php:188 +msgid "Import posts, comments, and users from a Blogger blog." +msgstr "Importa entradas, comentarios y usuarios de un blog de Blogger." + +#. translators: %s: Plugin name. +#: wp-admin/includes/class-wp-plugins-list-table.php:916 +msgctxt "plugin" +msgid "Deactivate %s" +msgstr "Desactivar %s" + +#. translators: %s: Plugin name. +#: wp-admin/includes/class-wp-plugins-list-table.php:882 +#: wp-admin/includes/class-wp-plugins-list-table.php:988 +msgctxt "plugin" +msgid "Delete %s" +msgstr "Borrar %s" + +#. translators: %s: Plugin name. +#: wp-admin/includes/class-wp-plugins-list-table.php:827 +msgctxt "plugin" +msgid "Network Deactivate %s" +msgstr "Desactivar %s de la red" + +#: wp-admin/user-new.php:285 +msgid "By default, new users will receive an email letting them know they’ve been added as a user for your site. This email will also contain a password reset link. Uncheck the box if you do not want to send the new user a welcome email." +msgstr "Por defecto, los nuevos usuarios recibirán un correo electrónico para hacerles saber que han sido añadidos como usuarios en tu sitio. Este correo electrónico también contendrá un enlace para restablecer la contraseña. Desmarca la casilla si no quieres enviar un correo electrónico de bienvenida a los nuevos usuarios." + +#: wp-admin/user-new.php:283 +msgid "New users are automatically assigned a password, which they can change after logging in. You can view or edit the assigned password by clicking the Show Password button. The username cannot be changed once the user has been added." +msgstr "A los usuarios nuevos se les asigna automáticamente una contraseña, que pueden cambiar después de acceder. Puedes ver o modificar la contraseña asignada haciendo clic en el botón de Mostrar contraseña. El nombre de usuario no se puede cambiar una vez que se ha añadido el usuario." + +#. translators: %s: Plugin name. +#: wp-admin/includes/update.php:995 +msgctxt "plugin" +msgid "%s was successfully deleted." +msgstr "%s ha sido borrado correctamente." + +#: wp-admin/plugins.php:566 +msgid "The search for installed plugins will search for terms in their name, description, or author." +msgstr "La búsqueda en los plugins instalados buscará términos en su nombre, descripción o autor." + +#: wp-admin/includes/theme.php:337 +msgid "Custom Logo" +msgstr "Logotipo personalizado" + +#: wp-admin/users.php:472 wp-admin/users.php:504 +#: wp-admin/network/site-users.php:120 +msgid "Sorry, you are not allowed to remove users." +msgstr "Lo siento, no tienes permisos para eliminar usuarios." + +#: wp-admin/user-new.php:16 wp-admin/user-new.php:57 +#: wp-admin/network/user-new.php:14 +msgid "Sorry, you are not allowed to add users to this network." +msgstr "Lo siento, no tienes permisos para añadir usuarios a esta red." + +#: wp-admin/customize.php:35 +msgid "Sorry, you are not allowed to edit this changeset." +msgstr "Lo siento, no tienes permisos para editar este grupo de cambios." + +#: wp-admin/includes/ajax-actions.php:4305 wp-admin/update.php:211 +#: wp-admin/update.php:234 +msgid "Sorry, you are not allowed to update themes for this site." +msgstr "Lo siento, no tienes permisos para actualizar los temas de este sitio." + +#: wp-admin/update-core.php:23 wp-admin/update-core.php:1155 +#: wp-admin/update-core.php:1191 wp-admin/update-core.php:1232 +#: wp-admin/update-core.php:1273 wp-admin/update-core.php:1302 +msgid "Sorry, you are not allowed to update this site." +msgstr "Lo siento, no tienes permisos para actualizar este sitio." + +#: wp-admin/themes.php:448 wp-admin/themes.php:846 +msgid "New version available. " +msgstr "Nueva versión disponible. " + +#: wp-admin/theme-install.php:187 +msgid "The Theme Installer screen requires JavaScript." +msgstr "La pantalla del instalador de temas requiere JavaScript." + +#: wp-admin/includes/file.php:439 wp-admin/theme-editor.php:18 +msgid "Sorry, you are not allowed to edit templates for this site." +msgstr "Lo siento, no tienes permisos para editar plantillas en este sitio." + +#: wp-admin/setup-config.php:343 +msgid "Error: \"Table Prefix\" is invalid." +msgstr "Error: el «prefijo de tabla» no es válido." + +#: wp-admin/plugins.php:228 +msgid "Sorry, you are not allowed to deactivate plugins for this site." +msgstr "Lo siento, no tienes permisos para desactivar plugins en este sitio." + +#: wp-admin/plugins.php:94 +msgid "Sorry, you are not allowed to activate plugins for this site." +msgstr "Lo siento, no tienes permisos para activar plugins en este sitio." + +#: wp-admin/includes/file.php:406 wp-admin/plugin-editor.php:18 +msgid "Sorry, you are not allowed to edit plugins for this site." +msgstr "Lo siento, no tienes permisos para editar plugins en este sitio." + +#: wp-admin/options.php:261 +msgid "Sorry, you are not allowed to modify unregistered settings for this site." +msgstr "Lo siento, no tienes permisos para modificar ajustes no registrados en este sitio." + +#: wp-admin/options-discussion.php:12 wp-admin/options-general.php:16 +#: wp-admin/options-media.php:13 wp-admin/options-permalink.php:13 +#: wp-admin/options-reading.php:13 wp-admin/options-writing.php:13 +#: wp-admin/options.php:52 wp-admin/network.php:19 +msgid "Sorry, you are not allowed to manage options for this site." +msgstr "Lo siento, no tienes permisos para gestionar las opciones en este sitio." + +#: wp-admin/nav-menus.php:796 wp-admin/widgets-form.php:406 +msgid "Manage with Live Preview" +msgstr "Gestionar con vista previa" + +#: wp-admin/ms-delete-site.php:17 +msgid "Sorry, you are not allowed to delete this site." +msgstr "Lo siento, no tienes permisos para borrar este sitio." + +#: wp-admin/link-add.php:13 +msgid "Sorry, you are not allowed to add links to this site." +msgstr "Lo siento, no tienes permisos para añadir enlaces en este sitio." + +#. translators: %s: Gravatar URL. +#: wp-admin/includes/upgrade.php:285 +msgid "" +"Hi, this is a comment.\n" +"To get started with moderating, editing, and deleting comments, please visit the Comments screen in the dashboard.\n" +"Commenter avatars come from Gravatar." +msgstr "" +"Hola, esto es un comentario.\n" +"Para empezar a moderar, editar y borrar comentarios, por favor, visita en el escritorio la pantalla de comentarios.\n" +"Los avatares de los comentaristas provienen de Gravatar." + +#. translators: %s: Theme name. +#: wp-admin/includes/update.php:1003 +msgctxt "theme" +msgid "%s was successfully deleted." +msgstr "%s ha sido borrado correctamente." + +#. translators: 1: URL to WordPress release notes, 2: New WordPress version. +#: wp-admin/includes/update.php:337 +msgid "WordPress %2$s is available! Please notify the site administrator." +msgstr "¡Ya está disponible WordPress %2$s! Por favor, avisa al administrador del sitio." + +#: wp-admin/includes/update.php:332 +msgid "Please update WordPress now" +msgstr "Por favor, actualiza WordPress ahora" + +#. translators: 1: URL to WordPress release notes, 2: New WordPress version, 3: +#. URL to network admin, 4: Accessibility text. +#: wp-admin/includes/update.php:328 +msgid "WordPress %2$s is available! Please update now." +msgstr "¡Ya está disponible WordPress %2$s! Por favor, actualiza ahora." + +#: wp-admin/includes/theme.php:327 +msgid "Portfolio" +msgstr "Porfolio" + +#: wp-admin/includes/theme.php:326 +msgid "Photography" +msgstr "Fotografía" + +#: wp-admin/includes/dashboard.php:1341 wp-admin/includes/theme.php:325 +msgid "News" +msgstr "Noticias" + +#: wp-admin/includes/theme.php:323 +msgid "Food & Drink" +msgstr "Comida y bebida" + +#: wp-admin/includes/theme.php:322 +msgid "Entertainment" +msgstr "Entretenimiento" + +#: wp-admin/includes/theme.php:321 +msgid "Education" +msgstr "Educación" + +#: wp-admin/includes/theme.php:320 +msgid "E-Commerce" +msgstr "Comercio electrónico" + +#: wp-admin/includes/theme.php:319 +msgid "Blog" +msgstr "Blog" + +#: wp-admin/includes/theme.php:341 +msgid "Footer Widgets" +msgstr "Widgets del pie de página" + +#: wp-admin/includes/theme.php:352 +msgid "Grid Layout" +msgstr "Diseño en cuadrícula" + +#: wp-admin/includes/template.php:2722 +msgid "This will replace the current editor content with the last backup version. You can use undo and redo in the editor to get the old content back or to return to the restored version." +msgstr "Esto reemplazará el contenido actual del editor con la última versión de la copia de seguridad. Puedes usar deshacer o rehacer en el editor para recuperar el viejo contenido o volver a la versión restaurada." + +#. translators: Hidden accessibility text. +#: wp-admin/includes/template.php:2035 +msgid "Close media attachment panel" +msgstr "Cierra el panel de adjuntar medios" + +#: wp-admin/includes/ms.php:1070 +msgid "Info" +msgstr "Información" + +#: wp-admin/includes/meta-boxes.php:1083 +msgid "Need help? Use the Help tab above the screen title." +msgstr "¿Necesitas ayuda? Usa la pestaña de ayuda en la parte superior del título de la pantalla." + +#: wp-admin/includes/menu.php:380 wp-admin/my-sites.php:17 +#: wp-admin/network/index.php:17 wp-admin/network/settings.php:17 +#: wp-admin/network/site-info.php:32 wp-admin/network/site-settings.php:32 +#: wp-admin/network/site-themes.php:57 wp-admin/network/site-users.php:50 +#: wp-admin/network/sites.php:14 wp-admin/network/sites.php:162 +#: wp-admin/network/upgrade.php:44 wp-admin/network/user-new.php:37 +#: wp-admin/network/users.php:14 wp-admin/network/users.php:24 +#: wp-admin/network/users.php:51 wp-admin/network/users.php:65 +#: wp-admin/network/users.php:160 +msgid "Sorry, you are not allowed to access this page." +msgstr "Lo siento, no tienes permisos para acceder a esta página." + +#: wp-admin/includes/file.php:52 +msgid "Embed Footer Template" +msgstr "Incrustar plantilla de pie" + +#: wp-admin/includes/file.php:51 +msgid "Embed Header Template" +msgstr "Incrustar plantilla de cabecera" + +#: wp-admin/includes/file.php:50 +msgid "Embed Content Template" +msgstr "Incrustar plantilla de contenido" + +#: wp-admin/includes/file.php:49 +msgid "Embed 404 Template" +msgstr "Incrustar plantilla 404" + +#: wp-admin/includes/file.php:48 +msgid "Embed Template" +msgstr "Incrustar plantilla" + +#: wp-admin/includes/plugin-install.php:987 wp-admin/js/updates.js:1155 +#: wp-admin/js/updates.js:1163 +msgctxt "plugin" +msgid "Active" +msgstr "Activo" + +#: wp-admin/includes/class-wp-media-list-table.php:597 +msgid "(Private post)" +msgstr "(Entrada privada)" + +#: wp-admin/includes/bookmark.php:32 wp-admin/includes/bookmark.php:379 +#: wp-admin/link-manager.php:12 wp-admin/link-manager.php:92 +msgid "Sorry, you are not allowed to edit the links for this site." +msgstr "Lo siento, no tienes permisos para editar los enlaces en este sitio." + +#: wp-admin/options-privacy.php:13 wp-admin/privacy-policy-guide.php:13 +msgid "Sorry, you are not allowed to manage privacy options on this site." +msgstr "Lo siento, no tienes permisos para gestionar las opciones de privacidad en este sitio." + +#: wp-admin/includes/ajax-actions.php:4780 +msgid "Plugin could not be deleted." +msgstr "No se ha podido borrar el plugin." + +#: wp-admin/includes/ajax-actions.php:4634 wp-admin/update.php:29 +#: wp-admin/update.php:57 wp-admin/update.php:80 +msgid "Sorry, you are not allowed to update plugins for this site." +msgstr "Lo siento, no tienes permisos para actualizar plugins en este sitio." + +#: wp-admin/includes/ajax-actions.php:4580 +msgid "Sorry, you are not allowed to activate plugins on this site." +msgstr "Lo siento, no tienes permiso para activar plugins en este sitio." + +#: wp-admin/includes/ajax-actions.php:4436 +msgid "Theme could not be deleted." +msgstr "No se ha podido borrar el tema." + +#: wp-admin/includes/ajax-actions.php:4398 +msgid "Sorry, you are not allowed to delete themes on this site." +msgstr "Lo siento, no tienes permisos para borrar temas en este sitio." + +#: wp-admin/includes/ajax-actions.php:4178 wp-admin/theme-install.php:16 +#: wp-admin/update.php:262 wp-admin/update.php:304 wp-admin/update.php:342 +msgid "Sorry, you are not allowed to install themes on this site." +msgstr "Lo siento, no tienes permisos para para instalar temas en este sitio." + +#: wp-admin/includes/ajax-actions.php:4165 +#: wp-admin/includes/ajax-actions.php:4291 +#: wp-admin/includes/ajax-actions.php:4386 +msgid "No theme specified." +msgstr "No se ha especificado ningún tema." + +#: wp-admin/admin.php:310 wp-admin/import.php:15 +msgid "Sorry, you are not allowed to import content into this site." +msgstr "Lo siento, no tienes permisos para importar contenido en este sitio." + +#: wp-admin/export.php:13 +msgid "Sorry, you are not allowed to export the content of this site." +msgstr "Lo siento, no tienes permisos para exportar el contenido de este sitio." + +#: wp-admin/edit.php:265 +msgid "You can filter the list of posts by post status using the text links above the posts list to only show posts with that status. The default view is to show all posts." +msgstr "Puedes filtrar la lista de entradas por estado de publicación usando los enlaces de texto sobre la lista de entradas para mostrar solo las entradas en ese estado. La visualización por defecto es mostrar todas las entradas." + +#. translators: Hidden accessibility text. +#: wp-admin/customize.php:217 +msgid "Close the Customizer and go back to the previous page" +msgstr "Cierra el Personalizador y vuelve a la página anterior" + +#: wp-admin/includes/class-custom-image-header.php:1122 +msgid "Sorry, you are not allowed to customize headers." +msgstr "Lo siento, no tienes permisos para personalizar cabeceras." + +#: wp-admin/credits.php:144 +msgid "Release Deputy" +msgstr "Responsable de la versión" + +#: wp-admin/credits.php:143 +msgid "Release Design Lead" +msgstr "Líder del diseño de la versión" + +#. translators: %s: Documentation URL. +#: wp-admin/includes/meta-boxes.php:832 +msgid "Custom fields can be used to add extra metadata to a post that you can use in your theme." +msgstr "Los campos personalizados pueden utilizarse para añadir metadatos extra a una entrada que puedes usar en tu tema." + +#. translators: %s: Documentation URL. +#: wp-admin/includes/meta-boxes.php:795 +msgid "Trackbacks are a way to notify legacy blog systems that you’ve linked to them. If you link other WordPress sites, they’ll be notified automatically using pingbacks, no other action necessary." +msgstr "Los trackbacks son la forma de avisar a otros blogs a los que has enlazado. Si enlazas a otros sitios WordPress, recibirán un aviso automáticamente utilizando pingbacks, no es necesario hacer nada más." + +#. translators: %s: Documentation URL. +#: wp-admin/includes/meta-boxes.php:757 +msgid "Excerpts are optional hand-crafted summaries of your content that can be used in your theme. Learn more about manual excerpts." +msgstr "Los extractos son resúmenes opcionales hechos a mano que pueden utilizarse en tu tema. Aprende más sobre los extractos manuales." + +#: wp-admin/edit-form-advanced.php:288 +msgid "The Code mode allows you to enter HTML along with your post text. Note that <p> and <br> tags are converted to line breaks when switching to the Code editor to make it less cluttered. When you type, a single line break can be used instead of typing <br>, and two line breaks instead of paragraph tags. The line breaks are converted back to tags automatically." +msgstr "El modo de código te permite introducir HTML junto con el texto de la entrada. Ten en cuenta que las etiquetas <p> y <br> se convierten en saltos de línea cuando cambias al editor de código para ocupar menos espacio. Cuando escribes, puedes usar un salto de línea en vez de <br> y dos saltos de linea en vez de las etiquetas de párrafo. Los saltos de linea se convierten en etiquetas automáticamente." + +#: wp-admin/edit-form-advanced.php:287 +msgid "Visual mode gives you an editor that is similar to a word processor. Click the Toolbar Toggle button to get a second row of controls." +msgstr "El modo visual te ofrece un editor similar a un procesador de textos. Haz clic en el botón «Alternar barra de herramientas» para disponer de una segunda fila de controles." + +#: wp-admin/upload.php:117 +msgid "Error saving media file." +msgstr "Error al guardar el archivo de medios." + +#. translators: %s: Number of media files. +#: wp-admin/upload.php:106 +msgid "%s media file restored from the Trash." +msgid_plural "%s media files restored from the Trash." +msgstr[0] "%s archivo de medios restaurado desde la papelera." +msgstr[1] "%s archivos de medios restaurados desde la papelera." + +#. translators: %s: Number of media files. +#: wp-admin/upload.php:83 +msgid "%s media file moved to the Trash." +msgid_plural "%s media files moved to the Trash." +msgstr[0] "%s archivo de medios movido a la papelera." +msgstr[1] "%s archivos de medios movidos a la papelera." + +#. translators: %s: Number of media files. +#: wp-admin/upload.php:66 +msgid "%s media file permanently deleted." +msgid_plural "%s media files permanently deleted." +msgstr[0] "%s archivo multimedia borrado permanentemente." +msgstr[1] "%s archivos multimedia borrados permanentemente." + +#. translators: %s: Number of media files. +#: wp-admin/upload.php:49 +msgid "%s media file detached." +msgid_plural "%s media files detached." +msgstr[0] "%s archivo multimedia sin adjuntar." +msgstr[1] "%s archivos multimedia sin adjuntar." + +#: wp-admin/upload.php:45 +msgid "Media file detached." +msgstr "Archivo multimedia sin adjuntar." + +#. translators: %s: Number of media files. +#: wp-admin/upload.php:32 +msgid "%s media file attached." +msgid_plural "%s media files attached." +msgstr[0] "%s archivo multimedia adjunto." +msgstr[1] "%s archivos multimedia adjuntos." + +#: wp-admin/upload.php:28 +msgid "Media file attached." +msgstr "Archivo multimedia adjunto." + +#: wp-admin/edit-form-advanced.php:203 wp-admin/upload.php:18 +#: wp-admin/upload.php:115 +msgid "Media file updated." +msgstr "Archivo de medios actualizado." + +#. translators: 1: Theme name, 2: Version number. +#. translators: 1: Plugin name, 2: Version number. +#: wp-admin/includes/theme.php:235 wp-admin/includes/theme.php:248 +#: wp-admin/includes/theme.php:261 wp-admin/includes/update.php:532 +#: wp-admin/includes/update.php:545 wp-admin/includes/update.php:559 +#: wp-admin/includes/update.php:578 wp-admin/includes/update.php:725 +#: wp-admin/includes/update.php:738 wp-admin/includes/update.php:751 +#: wp-admin/update-core.php:575 +msgid "View %1$s version %2$s details" +msgstr "Ver detalles de la versión %1$s de %2$s" + +#. translators: 1: Relative date, 2: Time. +#: wp-admin/includes/dashboard.php:1036 +msgctxt "dashboard" +msgid "%1$s, %2$s" +msgstr "%1$s, %2$s" + +#: wp-admin/edit-form-advanced.php:369 +msgid "Publish — You can set the terms of publishing your post in the Publish box. For Status, Visibility, and Publish (immediately), click on the Edit link to reveal more options. Visibility includes options for password-protecting a post or making it stay at the top of your blog indefinitely (sticky). The Password protected option allows you to set an arbitrary password for each post. The Private option hides the post from everyone except editors and administrators. Publish (immediately) allows you to set a future or past date and time, so you can schedule a post to be published in the future or backdate a post." +msgstr "Publicar — Puedes establecer las condiciones de publicación de tu entrada en la caja Publicar. Para cambiar el Estado, Visibilidad y Publicar (inmediatamente) haz clic en el enlace Editar para ver más opciones. El apartado Visibilidad incluye opciones para proteger con contraseña una entrada o para hacer que se fije en la parte superior de tu blog de manera indefinida (fijo). La opción de Protegido con contraseña te permite establecer una contraseña distinta para cada entrada. La opción Privado oculta la entrada a todos excepto a editores y administradores. Publicar (inmediatamente) te permite establecer una fecha y hora futura, para que puedas programar que una entrada se publique en el futuro o en el pasado." + +#. translators: %s: New email. +#: wp-admin/user-edit.php:577 +msgid "There is a pending change of your email to %s." +msgstr "Hay un cambio pendiente de tu correo electrónico a %s" + +#: wp-admin/user-edit.php:242 +msgid "Error while saving the new email address. Please try again." +msgstr "Error al guardar la nueva dirección de correo electrónico. Inténtalo de nuevo por favor." + +#: wp-admin/upload.php:372 +msgid "You can narrow the list by file type/status or by date using the dropdown menus above the media table." +msgstr "Puedes ordenar la lista por tipo/estado de archivo o por fecha usando los menús desplegables superiores de la tabla de medios." + +#: wp-admin/themes.php:676 wp-admin/network/themes.php:470 +msgid "The following themes are installed but incomplete." +msgstr "Los siguientes temas se instalaron pero están incompletos." + +#: wp-admin/themes.php:282 +msgid "New theme activated." +msgstr "Nuevo tema activado." + +#: wp-admin/themes.php:273 +msgid "Settings saved and theme activated." +msgstr "Ajustes guardados y tema activado." + +#: wp-admin/freedoms.php:106 wp-admin/theme-install.php:110 +#: wp-admin/themes.php:157 +msgid "https://wordpress.org/themes/" +msgstr "https://es.wordpress.org/themes/" + +#: wp-admin/users.php:203 +msgid "Sorry, you are not allowed to delete that user." +msgstr "Lo siento, no tienes permisos para borrar ese usuario." + +#: wp-admin/setup-config.php:248 +msgid "Your database password." +msgstr "La contraseña de tu base de datos." + +#: wp-admin/setup-config.php:236 +msgid "Your database username." +msgstr "El nombre de usuario de tu base de datos." + +#: wp-admin/setup-config.php:231 +msgid "The name of the database you want to use with WordPress." +msgstr "El nombre de la base de datos que quieres usar con WordPress." + +#. translators: 1: Plugin name, 2: Plugin author. +#: wp-admin/plugins.php:383 +msgctxt "plugin" +msgid "%1$s by %2$s" +msgstr "%1$s por %2$s" + +#. translators: 1: Plugin name, 2: Plugin author. +#: wp-admin/plugins.php:379 +msgid "%1$s by %2$s (will also delete its data)" +msgstr "%1$s por %2$s (también borrará sus datos)" + +#. translators: %s: New admin email. +#: wp-admin/options-general.php:273 +msgid "There is a pending change of the admin email to %s." +msgstr "Hay un cambio pendiente del correo electrónico del administrador a %s." + +#: wp-admin/install.php:446 +msgid "WordPress has been installed. Thank you, and enjoy!" +msgstr "WordPress ya está instalado. ¡Gracias, y que lo disfrutes!" + +#. translators: %s: DO_NOT_UPGRADE_GLOBAL_TABLES +#: wp-admin/install.php:336 +msgid "The constant %s cannot be defined when installing WordPress." +msgstr "No se ha podido definir la constante %s al instalar WordPress." + +#. translators: %s: wp-config.php +#: wp-admin/install.php:323 +msgid "Your %s file has an empty database table prefix, which is not supported." +msgstr "Tu archivo %s tiene vacío el prefijo de la tabla de la base de datos, y es obligatorio." + +#: wp-admin/index.php:187 +msgid "Dismiss the welcome panel" +msgstr "Descartar el panel de bienvenida" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/theme-install.php:203 +msgid "Theme zip file" +msgstr "Archivo zip del tema" + +#: wp-admin/includes/template.php:2031 +msgid "Attach to existing content" +msgstr "Adjuntar al contenido existente" + +#: wp-admin/includes/post.php:1689 +msgid "Click the image to edit or update" +msgstr "Haz clic en la imagen para editarla o actualizarla" + +#. translators: 1: Number of stars (used to determine singular/plural), 2: +#. Number of reviews. +#: wp-admin/includes/plugin-install.php:743 +msgid "Reviews with %1$d star: %2$s. Opens in a new tab." +msgid_plural "Reviews with %1$d stars: %2$s. Opens in a new tab." +msgstr[0] "Valoraciones con %1$d estrella: %2$s. Abre en una nueva pestaña." +msgstr[1] "Valoraciones con %1$d estrellas: %2$s. Abre en una nueva pestaña." + +#: wp-admin/includes/plugin-install.php:735 +msgid "Read all reviews on WordPress.org or write your own!" +msgstr "¡Lee todas las valoraciones en WordPress.org o escribe la tuya!" + +#: wp-admin/includes/plugin-install.php:734 +msgid "Reviews" +msgstr "Valoraciones" + +#. translators: %s: URL to "Features as Plugins" page. +#: wp-admin/includes/plugin-install.php:397 +msgid "You are using a development version of WordPress. These feature plugins are also under development. Learn more." +msgstr "Estás utilizando una versión de desarrollo de WordPress. Estos plugins destacados también están en desarrollo. Saber más." + +#. translators: Hidden accessibility text. +#: wp-admin/includes/image-edit.php:287 +msgid "Thumbnail Settings Help" +msgstr "Ayuda sobre los ajustes de miniaturas" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/image-edit.php:243 +msgid "selection height" +msgstr "altura de la selección" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/image-edit.php:235 +msgid "selection width" +msgstr "anchura de la selección" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/image-edit.php:223 +msgid "crop ratio height" +msgstr "altura del rango de recorte" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/image-edit.php:215 +msgid "crop ratio width" +msgstr "anchura del rango de recorte" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/image-edit.php:197 +msgid "Image Crop Help" +msgstr "Ayuda de recorte de imagen" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/image-edit.php:154 wp-admin/includes/image-edit.php:159 +msgid "scale height" +msgstr "escalar altura" + +#: wp-admin/includes/image-edit.php:149 +msgid "New dimensions:" +msgstr "Nuevas dimensiones:" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/image-edit.php:130 +msgid "Scale Image Help" +msgstr "Ayuda para escalar imágenes" + +#: wp-admin/includes/file.php:38 +msgid "Single Page" +msgstr "Página individual" + +#: wp-admin/includes/file.php:36 +msgid "Singular Template" +msgstr "Plantilla única" + +#: wp-admin/includes/file.php:34 +msgid "Date Template" +msgstr "Plantilla de fecha" + +#: wp-admin/includes/file.php:29 +msgid "Taxonomy Template" +msgstr "Plantilla de taxonomías" + +#: wp-admin/includes/dashboard.php:1767 +msgid "Dismiss the browser warning panel" +msgstr "Descartar el panel de aviso del navegador." + +#. translators: Hidden accessibility text. +#: wp-admin/includes/dashboard.php:1119 +msgid "View more comments" +msgstr "Ver más comentarios" + +#. translators: 1: Type of comment, 2: Post link, 3: Notification if the +#. comment is pending. +#: wp-admin/includes/dashboard.php:892 +msgctxt "dashboard" +msgid "%1$s on %2$s %3$s" +msgstr "%1$s el %2$s %3$s" + +#: wp-admin/includes/dashboard.php:801 +msgid "View this comment" +msgstr "Ver este comentario" + +#: wp-admin/includes/class-core-upgrader.php:34 +msgid "Another update is currently in progress." +msgstr "En este momento hay otra actualización en marcha." + +#: wp-admin/includes/class-plugin-upgrader-skin.php:85 +#: wp-admin/update-core.php:1215 wp-admin/update-core.php:1256 +msgid "Update progress" +msgstr "Progreso de la actualización" + +#. translators: %s: Taxonomy term name. +#: wp-admin/includes/class-wp-terms-list-table.php:530 +msgid "View “%s” archive" +msgstr "Ver archivo de «%s»" + +#. translators: %s: Taxonomy term name. +#: wp-admin/includes/class-wp-terms-list-table.php:520 +msgid "Delete “%s”" +msgstr "Borrar «%s»" + +#. translators: %s: Post title. +#. translators: %s: Taxonomy term name. +#: wp-admin/includes/class-wp-posts-list-table.php:1508 +#: wp-admin/includes/class-wp-terms-list-table.php:509 +msgid "Quick edit “%s” inline" +msgstr "Edición rápida «%s» integrada" + +#: wp-admin/includes/class-wp-plugins-list-table.php:424 +msgid "Search for plugins in the WordPress Plugin Directory." +msgstr "Buscar plugins en el directorio de plugins de WordPress" + +#. translators: %s: Attachment title. +#. translators: %s: Post title. +#: wp-admin/includes/class-wp-media-list-table.php:788 +#: wp-admin/includes/class-wp-posts-list-table.php:1520 +msgid "Restore “%s” from the Trash" +msgstr "Restaurar «%s» de la papelera" + +#. translators: %s: Attachment title. +#. translators: %s: Post title. +#: wp-admin/includes/class-wp-media-list-table.php:809 +#: wp-admin/includes/class-wp-posts-list-table.php:1538 +msgid "Delete “%s” permanently" +msgstr "Borrar «%s» permanentemente" + +#. translators: %s: Attachment title. +#. translators: %s: Post title. +#: wp-admin/includes/class-wp-media-list-table.php:796 +#: wp-admin/includes/class-wp-posts-list-table.php:1528 +msgid "Move “%s” to the Trash" +msgstr "Mover «%s» a la papelera" + +#. translators: %s: Attachment title. +#: wp-admin/includes/class-wp-media-list-table.php:627 +#: wp-admin/includes/class-wp-media-list-table.php:857 +msgid "Attach “%s” to existing content" +msgstr "Adjuntar «%s» a contenido existente" + +#. translators: %s: Title of the post the attachment is attached to. +#: wp-admin/includes/class-wp-media-list-table.php:613 +msgid "Detach from “%s”" +msgstr "Quitar como adjunto de «%s»" + +#. translators: %s: Attachment title. +#. translators: %s: Post title. +#. translators: %s: Taxonomy term name. +#: wp-admin/includes/class-wp-media-list-table.php:465 +#: wp-admin/includes/class-wp-posts-list-table.php:1144 +#: wp-admin/includes/class-wp-terms-list-table.php:419 +msgid "“%s” (Edit)" +msgstr "«%s» (Editar)" + +#: wp-admin/includes/class-wp-media-list-table.php:169 +msgctxt "attachment filter" +msgid "Trash" +msgstr "Papelera" + +#: wp-admin/includes/class-wp-comments-list-table.php:843 +msgid "Quick edit this comment inline" +msgstr "Edición rápida integrada de este comentario" + +#: wp-admin/includes/class-wp-comments-list-table.php:831 +#: wp-admin/includes/dashboard.php:759 +msgid "Edit this comment" +msgstr "Editar este comentario" + +#: wp-admin/includes/class-wp-comments-list-table.php:794 +msgid "Restore this comment from the spam" +msgstr "Restaurar este comentario desde el spam" + +#. translators: 1: User login, 2: User email address. +#: wp-admin/includes/ajax-actions.php:355 +msgctxt "user autocomplete result" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" + +#. translators: %s: Importer slug. +#: wp-admin/import.php:67 +msgid "The %s importer is invalid or is not installed." +msgstr "El importador %s no es válido o no está instalado." + +#: wp-admin/edit-form-comment.php:137 +msgctxt "comment status" +msgid "Pending" +msgstr "Pendiente" + +#. translators: %s: Size in pixels. +#: wp-admin/includes/class-custom-image-header.php:650 +msgid "Suggested height is %s." +msgstr "La altura sugerida es %s." + +#. translators: %s: Size in pixels. +#: wp-admin/includes/class-custom-image-header.php:638 +msgid "Suggested width is %s." +msgstr "La anchura sugerida es %s." + +#. translators: %s: Size in pixels. +#: wp-admin/includes/class-custom-image-header.php:622 +msgid "Images should be at least %s tall." +msgstr "Las imágenes deberían tener al menos una altura de %s." + +#. translators: %d: Custom header width. +#. translators: %d: Custom header height. +#: wp-admin/includes/class-custom-image-header.php:613 +#: wp-admin/includes/class-custom-image-header.php:625 +#: wp-admin/includes/class-custom-image-header.php:641 +#: wp-admin/includes/class-custom-image-header.php:653 +msgid "%d pixels" +msgstr "%d píxeles" + +#. translators: %s: Size in pixels. +#: wp-admin/includes/class-custom-image-header.php:610 +msgid "Images should be at least %s wide." +msgstr "Las imágenes deberían ser al menos de %s de ancho." + +#: wp-admin/user-new.php:633 +msgid "Send the new user an email about their account" +msgstr "Envía al nuevo usuario un correo electrónico con información sobre su cuenta" + +#: wp-admin/user-new.php:630 +msgid "Send User Notification" +msgstr "Enviar aviso al usuario" + +#. translators: %s: Menu name. +#: wp-admin/nav-menus.php:1218 +msgctxt "menu location" +msgid "(Currently set to: %s)" +msgstr "(Actualmente como: %s) " + +#. translators: %s: WordPress version number. +#: wp-admin/about.php:301 +msgid "Version %s addressed one security issue." +msgstr "Versión %s mostró un problema de seguridad." + +#. translators: The localized Gravatar URL. +#: wp-admin/includes/upgrade.php:291 wp-admin/user-edit.php:648 +msgid "https://gravatar.com/" +msgstr "https://es.gravatar.com/" + +#: wp-admin/user-edit.php:638 +msgid "Profile Picture" +msgstr "Imagen de perfil" + +#: wp-admin/about.php:298 +msgid "Maintenance and Security Releases" +msgstr "Versiones de mantenimiento y seguridad" + +#: wp-admin/about.php:295 +msgid "Security Releases" +msgstr "Versiones de seguridad" + +#: wp-admin/about.php:292 +msgid "Maintenance Releases" +msgstr "Versiones de mantenimiento" + +#: wp-admin/options-permalink.php:246 +msgid "Plain" +msgstr "Simple" + +#. translators: %s: Documentation URL. +#: wp-admin/options-permalink.php:226 +msgid "WordPress offers you the ability to create a custom URL structure for your permalinks and archives. Custom URL structures can improve the aesthetics, usability, and forward-compatibility of your links. A number of tags are available, and here are some examples to get you started." +msgstr "WordPress te ofrece la posibilidad de crear una estructura de URLs personalizada para tus enlaces permanentes y archivos. Las estructuras de URLs personalizadas pueden mejorar la estética, usabilidad y compatibilidad futura de tus enlaces. Hay varias posibles etiquetas disponibles, y aquí tienes algunos ejemplos para empezar." + +#: wp-admin/options-permalink.php:34 +msgid "Permalinks can contain useful information, such as the post date, title, or other elements. You can choose from any of the suggested permalink formats, or you can craft your own if you select Custom Structure." +msgstr "Los enlaces permanentes pueden contener información valiosa, como la fecha de la entrada, el título u otros elementos. Puedes elegir entre cualquiera de los formatos de enlaces permanentes sugeridos o puedes crear los tuyos propios, si eliges Estructura personalizada." + +#. translators: %s: wp-config.php +#: wp-admin/setup-config.php:429 +msgid "You can create the %s file manually and paste the following text into it." +msgstr "Puedes crear manualmente el archivo %s y pegar el siguiente texto." + +#. translators: %s: localhost +#: wp-admin/setup-config.php:257 +msgid "You should be able to get this info from your web host, if %s does not work." +msgstr "Si %s no funciona, deberías poder obtener esta información de tu proveedor de alojamiento web." + +#. translators: 1: wp-config-sample.php, 2: wp-config.php +#: wp-admin/setup-config.php:190 +msgid "If for any reason this automatic file creation does not work, do not worry. All this does is fill in the database information to a configuration file. You may also simply open %1$s in a text editor, fill in your information, and save it as %2$s." +msgstr "Si por alguna razón no funciona la creación automática de este archivo, no te preocupes. Todo lo que hace es rellenar la información de la base de datos en un archivo de configuración. También simplemente puedes abrir %1$s en un editor de texto, rellenarlo con tu información y guardarlo como %2$s." + +#. translators: %s: wp-content/uploads +#: wp-admin/options-media.php:131 +msgid "Default is %s" +msgstr "Por defecto es %s" + +#. translators: 1: .po, 2: .mo, 3: .l10n.php +#: wp-admin/includes/class-language-pack-upgrader.php:359 +msgid "The language pack is missing either the %1$s, %2$s, or %3$s files." +msgstr "Al paquete de idioma le falta alguno de los archivos %1$s, %2$s o %3$s." + +#. translators: %s: style.css +#: wp-admin/includes/class-theme-upgrader.php:610 +msgid "The %s stylesheet does not contain a valid theme header." +msgstr "La hoja de estilos %s no tiene una cabecera válida para el tema." + +#. translators: %s: style.css +#: wp-admin/includes/class-theme-upgrader.php:585 +msgid "The theme is missing the %s stylesheet." +msgstr "El tema no tiene la hoja de estilos %s." + +#: wp-admin/theme-install.php:231 +msgid "If you have marked themes as favorites on WordPress.org, you can browse them here." +msgstr "Si has marcado temas como favoritos en WordPress.org, podrás verlos aquí." + +#: wp-admin/theme-install.php:214 +msgctxt "themes" +msgid "Favorites" +msgstr "Favoritos" + +#. translators: Hidden accessibility text. +#: wp-admin/maint/repair.php:91 +msgid "Database repair results" +msgstr "Resultados de la reparación de la base de datos" + +#. translators: Hidden accessibility text. +#: wp-admin/maint/repair.php:32 +msgid "Allow automatic database repair" +msgstr "Permitir la reparación automática de la base de datos" + +#. translators: Hidden accessibility text. +#: wp-admin/setup-config.php:506 +msgid "Successful database connection" +msgstr "Conexión con la base de datos conseguida" + +#. translators: Hidden accessibility text. +#: wp-admin/setup-config.php:222 +msgid "Set up your database connection" +msgstr "Establece la conexión con tu base de datos" + +#. translators: Hidden accessibility text. +#: wp-admin/setup-config.php:167 +msgid "Before getting started" +msgstr "Antes de empezar" + +#. translators: Hidden accessibility text. +#: wp-admin/maint/repair.php:176 +msgid "WordPress database repair" +msgstr "Reparación de la base de datos de WordPress" + +#. translators: Hidden accessibility text. +#: wp-admin/maint/repair.php:81 +msgid "Check secret keys" +msgstr "Comprobar las claves secretas" + +#. translators: %s: Nav menu title. +#: wp-admin/includes/nav-menu.php:1515 +msgid "%s has been updated." +msgstr "%s se ha actualizado." + +#. translators: %s: Walker class name. +#: wp-admin/includes/nav-menu.php:1293 +msgid "The Walker class named %s does not exist." +msgstr "La clase Walker denominada %s no existe." + +#. translators: 1: Drop-in constant name, 2: wp-config.php +#: wp-admin/includes/class-wp-plugins-list-table.php:788 +msgid "Requires %1$s in %2$s file." +msgstr "Requiere %1$s en el archivo %2$s." + +#. translators: %s: Date and time. +#: wp-admin/options-general.php:445 +msgid "Standard time begins on: %s." +msgstr "La hora estándar comienza el: %s." + +#. translators: %s: Date and time. +#: wp-admin/options-general.php:443 +msgid "Daylight saving time begins on: %s." +msgstr "El horario de ahorro de energía comienza el: %s." + +#. translators: %s: File name. +#: wp-admin/includes/media.php:1741 +msgid "You are about to delete %s." +msgstr "Estás a punto de borrar %s." + +#. translators: %s: mu-plugins directory name. +#: wp-admin/includes/class-wp-plugins-list-table.php:672 +msgid "Files in the %s directory are executed automatically." +msgstr "Los archivos del directorio %s se ejecutan automáticamente." + +#: wp-admin/widgets-form.php:512 +msgid "This will clear all items from the inactive widgets list. You will not be able to restore any customizations." +msgstr "Esto vaciará todos los elementos de la lista de widgets inactivos. No podrás recuperar las personalizaciones." + +#: wp-admin/widgets-form.php:502 +msgid "Clear Inactive Widgets" +msgstr "Vaciar los widgets inactivos" + +#: wp-admin/users.php:159 wp-admin/network/site-users.php:177 +msgid "One of the selected users is not a member of this site." +msgstr "Uno de los usuarios elegidos no es miembro de este sitio." + +#: wp-admin/users.php:91 wp-admin/network/users.php:250 +msgid "Users list" +msgstr "Lista de usuarios" + +#: wp-admin/users.php:90 wp-admin/network/users.php:249 +msgid "Users list navigation" +msgstr "Navegación por la lista de usuarios" + +#: wp-admin/users.php:89 wp-admin/network/users.php:248 +msgid "Filter users list" +msgstr "Filtrar lista de usuarios" + +#: wp-admin/upload.php:410 +msgid "Media items list" +msgstr "Listado de elementos multimedia" + +#: wp-admin/upload.php:409 +msgid "Media items list navigation" +msgstr "Navegación por la lista de elementos multimedia" + +#: wp-admin/upload.php:408 +msgid "Filter media items list" +msgstr "Filtrar lista de elementos multimedia" + +#: wp-admin/themes.php:754 +msgid "Install Parent Theme" +msgstr "Instalar tema padre" + +#. translators: Hidden accessibility text. +#: wp-admin/theme-install.php:278 wp-admin/network/themes.php:347 +msgid "Themes list" +msgstr "Lista de temas" + +#. translators: Hidden accessibility text. +#: wp-admin/theme-install.php:201 wp-admin/network/themes.php:345 +msgid "Filter themes list" +msgstr "Filtrar lista de temas" + +#: wp-admin/plugins.php:744 +msgid "All selected plugins are up to date." +msgstr "Todos los plugins seleccionados están actualizados." + +#: wp-admin/plugin-install.php:129 wp-admin/plugins.php:629 +msgid "Plugins list" +msgstr "Lista de plugins" + +#: wp-admin/plugin-install.php:128 wp-admin/plugins.php:628 +msgid "Plugins list navigation" +msgstr "Navegación por la lista de plugins" + +#: wp-admin/plugin-install.php:127 wp-admin/plugins.php:627 +msgid "Filter plugins list" +msgstr "Filtrar lista de plugins" + +#. translators: %s: Plugin name. +#: wp-admin/plugin-editor.php:241 +msgid "Browsing %s (inactive)" +msgstr "Viendo %s (inactivo)" + +#. translators: %s: Plugin name. +#. translators: %s: Theme name. +#: wp-admin/plugin-editor.php:238 wp-admin/theme-editor.php:278 +msgid "Editing %s (inactive)" +msgstr "Editando %s (inactivo)" + +#. translators: %s: Plugin name. +#: wp-admin/plugin-editor.php:233 +msgid "Browsing %s (active)" +msgstr "Viendo %s (activo)" + +#. translators: %s: Plugin name. +#. translators: %s: Theme name. +#: wp-admin/plugin-editor.php:230 wp-admin/theme-editor.php:275 +msgid "Editing %s (active)" +msgstr "Editando %s (activo)" + +#. translators: %s: Local time. +#: wp-admin/options-general.php:412 +msgid "Local time is %s." +msgstr "La hora local es %s." + +#: wp-admin/link-manager.php:85 +msgid "Links list" +msgstr "Lista de enlaces" + +#. translators: %s: WordPress version. +#: wp-admin/includes/update.php:284 +msgid "Get Version %s" +msgstr "Obtener la versión %s" + +#. translators: %s: Hidden accessibility text. Meta box title. +#: wp-admin/includes/template.php:1424 +msgid "Toggle panel: %s" +msgstr "Alternar panel: %s" + +#: wp-admin/includes/post.php:1928 +msgid "Saving revision…" +msgstr "Guardando la revisión…" + +#: wp-admin/includes/post.php:1615 +msgid "Edit permalink" +msgstr "Editar el enlace permanente" + +#. translators: 1: Site Wide Only: true, 2: Network: true +#: wp-admin/includes/plugin.php:99 +msgid "The %1$s plugin header is deprecated. Use %2$s instead." +msgstr "La cabecera del plugin %1$s está obsoleta. Utiliza %2$s en su lugar." + +#. translators: Hidden accessibility text. +#: wp-admin/includes/class-wp-site-health.php:1091 +#: wp-admin/includes/class-wp-site-health.php:1777 +msgid "Warning" +msgstr "Advertencia" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/template.php:1378 wp-admin/options.php:387 +#: wp-admin/includes/network.php:139 wp-admin/includes/network.php:203 +#: wp-admin/includes/network.php:211 wp-admin/includes/network.php:276 +#: wp-admin/includes/network.php:332 wp-admin/includes/network.php:345 +#: wp-admin/includes/network.php:453 wp-admin/includes/network.php:657 +#: wp-admin/includes/network.php:719 +msgid "Warning:" +msgstr "Aviso:" + +#: wp-admin/includes/ms.php:995 +msgid "Once you hit “Confirm Deletion”, these users will be permanently removed." +msgstr "Una vez hagas clic en «Confirmar eliminación» estos usuarios se eliminarán permanentemente." + +#: wp-admin/includes/ms.php:993 +msgid "Once you hit “Confirm Deletion”, the user will be permanently removed." +msgstr "Una vez hagas clic en «Confirmar borrado» el usuario se eliminará permanentemente." + +#: wp-admin/includes/ms.php:978 +msgid "User has no sites or content and will be deleted." +msgstr "El usuario no tiene sitios ni contenido y se borrará." + +#. translators: %s: Link to user's site. +#: wp-admin/includes/ms.php:963 +msgid "Site: %s" +msgstr "Sitio: %s" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/ms.php:941 +msgid "Select a user" +msgstr "Elige un usuario" + +#. translators: %s: User login. +#: wp-admin/includes/ms.php:923 +msgid "What should be done with content owned by %s?" +msgstr "¿Que deberíamos hacer con el contenido creado por %s?" + +#. translators: %s: User login. +#: wp-admin/includes/ms.php:904 +msgid "Warning! User cannot be deleted. The user %s is a network administrator." +msgstr "¡Advertencia! El usuario no se puede borrar. El usuario %s es administrador de la red." + +#. translators: %s: User login. +#: wp-admin/includes/ms.php:894 +msgid "Warning! User %s cannot be deleted." +msgstr "¡Advertencia! El usuario %s no se puede borrar." + +#: wp-admin/includes/ms.php:873 +msgid "You have chosen to delete the following users from all networks and sites." +msgstr "Has elegido borrar los siguientes usuarios de todas la redes y sitios." + +#: wp-admin/includes/ms.php:871 +msgid "You have chosen to delete the user from all networks and sites." +msgstr "Has elegido borrar el usuario de todas las redes y sitios." + +#: wp-admin/includes/media.php:1045 +msgid "Invalid image URL." +msgstr "URL de la imagen no válida" + +#: wp-admin/includes/file.php:17 +msgid "Theme Header" +msgstr "Cabecera del tema" + +#: wp-admin/includes/file.php:18 +msgid "Theme Footer" +msgstr "Pie de página del tema" + +#. translators: Date and time format for recent posts on the dashboard, from a +#. different calendar year, see https://www.php.net/manual/datetime.format.php +#: wp-admin/includes/dashboard.php:1023 +msgid "M jS Y" +msgstr "j M Y" + +#. translators: 1: Comment author, 2: Notification if the comment is pending. +#: wp-admin/includes/dashboard.php:863 +msgid "From %1$s %2$s" +msgstr "En %1$s %2$s" + +#: wp-admin/includes/dashboard.php:655 +msgid "View all drafts" +msgstr "Ver todos los borradores" + +#: wp-admin/includes/class-wp-users-list-table.php:670 +msgctxt "no user roles" +msgid "None" +msgstr "Ninguno" + +#: wp-admin/includes/class-wp-users-list-table.php:246 +msgid "No role" +msgstr "Sin perfil" + +#. translators: 1: Title of an update, 2: Error message. +#: wp-admin/includes/class-bulk-upgrader-skin.php:63 +msgid "An error occurred while updating %1$s: %2$s" +msgstr "Ha ocurrido un error al actualizar %1$s: %2$s" + +#: wp-admin/includes/class-wp-screen.php:1333 +msgid "View mode" +msgstr "Modo de visualización" + +#. translators: %s: Number of columns on the page. +#: wp-admin/includes/class-wp-screen.php:1218 +msgid "%s column" +msgid_plural "%s columns" +msgstr[0] "%s columna" +msgstr[1] "%s columnas" + +#: wp-admin/includes/class-wp-screen.php:1007 +msgid "Additional settings" +msgstr "Ajustes adicionales" + +#: wp-admin/includes/class-wp-screen.php:765 +msgid "Items list" +msgstr "Lista de elementos" + +#: wp-admin/includes/class-wp-screen.php:764 +msgid "Items list navigation" +msgstr "Navegación por la lista de elementos" + +#: wp-admin/includes/class-wp-screen.php:763 +msgid "Filter items list" +msgstr "Filtrar la lista de elementos" + +#: wp-admin/includes/class-wp-plugins-list-table.php:895 +msgid "Network Only" +msgstr "Solo para la red" + +#: wp-admin/includes/class-wp-plugins-list-table.php:891 +msgid "Network Active" +msgstr "Activo para la red" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/class-wp-list-table.php:950 +msgid "No pending comments" +msgstr "No hay comentarios pendientes" + +#. translators: %s: hostname:port +#: wp-admin/includes/class-wp-filesystem-ssh2.php:176 +msgid "Failed to initialize a SFTP subsystem session with the SSH2 Server %s" +msgstr "Fallo al inicializar una sesión de subsistema SFTP con el servidor SSH2 %s" + +#: wp-admin/includes/class-wp-comments-list-table.php:488 +msgctxt "column name" +msgid "Submitted on" +msgstr "Enviado el" + +#. translators: %s: Number of comments. +#: wp-admin/includes/class-wp-comments-list-table.php:281 +msgctxt "comments" +msgid "Trash (%s)" +msgid_plural "Trash (%s)" +msgstr[0] "Papelera (%s)" +msgstr[1] "Papelera (%s)" + +#. translators: %s: Number of comments. +#: wp-admin/includes/class-wp-comments-list-table.php:274 +msgctxt "comments" +msgid "Spam (%s)" +msgid_plural "Spam (%s)" +msgstr[0] "Spam (%s)" +msgstr[1] "Spam (%s)" + +#. translators: %s: Number of comments. +#: wp-admin/includes/class-wp-comments-list-table.php:267 +msgctxt "comments" +msgid "Approved (%s)" +msgid_plural "Approved (%s)" +msgstr[0] "Aprobado (%s)" +msgstr[1] "Aprobados (%s)" + +#. translators: %s: Number of comments. +#: wp-admin/includes/class-wp-comments-list-table.php:260 +msgctxt "comments" +msgid "Pending (%s)" +msgid_plural "Pending (%s)" +msgstr[0] "Pendiente (%s)" +msgstr[1] "Pendientes (%s)" + +#. translators: %s: Number of comments. +#: wp-admin/includes/class-wp-comments-list-table.php:246 +msgctxt "comments" +msgid "All (%s)" +msgid_plural "All (%s)" +msgstr[0] "Todos (%s)" +msgstr[1] "Todos (%s)" + +#. translators: %s: The new user. +#: wp-admin/includes/ajax-actions.php:1782 +msgid "User %s added" +msgstr "Usuario %s añadido" + +#: wp-admin/export.php:229 wp-admin/export.php:281 wp-admin/export.php:326 +msgid "End date:" +msgstr "Fecha de fin:" + +#. translators: Hidden accessibility text. +#: wp-admin/export.php:186 +msgid "Content to export" +msgstr "Contenido a exportar" + +#: wp-admin/edit.php:266 +msgid "You can view posts in a simple title list or with an excerpt using the Screen Options tab." +msgstr "Puedes ver las entradas en una lista simple de títulos o con el extracto, utilizando la pestaña de opciones de pantalla." + +#. translators: %s: Comment date. +#: wp-admin/edit-form-comment.php:156 +msgid "Submitted on: %s" +msgstr "Enviado el: %s" + +#: wp-admin/edit-form-comment.php:37 +msgctxt "comment" +msgid "Permalink:" +msgstr "Enlace permanente:" + +#: wp-admin/edit-form-advanced.php:201 +msgid "Page draft updated." +msgstr "Borrador de página actualizado." + +#. translators: %s: Scheduled date for the page. +#: wp-admin/edit-form-advanced.php:200 +msgid "Page scheduled for: %s." +msgstr "Página programada para: %s" + +#: wp-admin/edit-form-advanced.php:198 +msgid "Page submitted." +msgstr "Página enviada." + +#: wp-admin/edit-form-advanced.php:186 +msgid "Post draft updated." +msgstr "Borrador de entrada actualizado." + +#. translators: %s: Scheduled date for the post. +#: wp-admin/edit-form-advanced.php:185 +msgid "Post scheduled for: %s." +msgstr "Entrada programada el: %s." + +#: wp-admin/edit-form-advanced.php:183 +msgid "Post submitted." +msgstr "Entrada enviada." + +#: wp-admin/edit-form-advanced.php:159 +msgid "View page" +msgstr "Ver página" + +#: wp-admin/edit-form-advanced.php:145 wp-admin/edit-form-advanced.php:152 +msgid "Preview page" +msgstr "Vista previa de la página" + +#: wp-admin/edit-form-advanced.php:124 wp-admin/edit-form-advanced.php:131 +msgid "Preview post" +msgstr "Vista previa de la entrada" + +#: wp-admin/edit-comments.php:239 +msgid "Comments list" +msgstr "Lista de comentarios" + +#: wp-admin/edit-comments.php:238 +msgid "Comments list navigation" +msgstr "Navegación por la lista de comentarios" + +#: wp-admin/edit-comments.php:237 +msgid "Filter comments list" +msgstr "Filtrar la lista de comentarios" + +#: wp-admin/edit-comments.php:222 +msgid "In the Submitted on column, the date and time the comment was left on your site appears. Clicking on the date/time link will take you to that comment on your live site." +msgstr "En la columna Enviado el, aparece la fecha y hora en que se ha dejado el comentario en tu sitio. Haciendo clic en el enlace de fecha/hora, te llevará a ese comentario en tu sitio." + +#: wp-admin/edit-comments.php:220 +msgid "In the Comment column, hovering over any comment gives you options to approve, reply (and approve), quick edit, edit, spam mark, or trash that comment." +msgstr "En la columna Comentario, al pasar el cursor sobre cualquier comentario, verás las opciones de aprobar, responder (y aprobar), edición rápida, editar, marcar como spam o enviar a la papelera ese comentario." + +#. translators: %s: Comments count. +#: wp-admin/edit-comments.php:194 wp-admin/js/edit-comments.js:196 +#: wp-admin/js/edit-comments.js:216 +msgid "Comments (%s)" +msgstr "Comentarios (%s)" + +#. translators: 1: Comments count, 2: Post title. +#: wp-admin/edit-comments.php:175 +msgid "Comments (%1$s) on “%2$s”" +msgstr "Comentarios (%1$s) el «%2$s»" + +#: wp-admin/includes/ajax-actions.php:5577 +msgid "Sorry, you are not allowed to modify themes." +msgstr "Lo siento, no tienes permisos para modificar temas." + +#: wp-admin/includes/class-custom-image-header.php:1033 +msgid "The active theme does not support a flexible sized header image." +msgstr "El tema activo no es compatible con cabecera de imagen de tamaño flexible." + +#: wp-admin/includes/user.php:542 +msgid "You are using the auto-generated password for your account. Would you like to change it?" +msgstr "Estás usando la contraseña generada automáticamente para tu cuenta. ¿Quieres cambiarla?" + +#: wp-admin/users.php:523 +msgid "You have specified this user for removal:" +msgstr "Has especificado que se borre a este usuario:" + +#. translators: %s: User's display name. +#: wp-admin/user-edit.php:782 +msgid "Log %s out of all locations." +msgstr "Desconectar %s de todas las ubicaciones." + +#: wp-admin/user-edit.php:770 +msgid "Did you lose your phone or leave your account logged in at a public computer? You can log out everywhere else, and stay logged in here." +msgstr "¿Has perdido tu teléfono o dejado tu cuenta abierta en un ordenador público? Puedes desconectarte de cualquier lugar y seguir conectado aquí." + +#: wp-admin/user-edit.php:758 wp-admin/user-edit.php:768 +msgid "Log Out Everywhere Else" +msgstr "Desconectar del resto de sitios" + +#: wp-admin/user-edit.php:756 wp-admin/user-edit.php:766 +#: wp-admin/user-edit.php:776 +msgid "Sessions" +msgstr "Sesiones" + +#: wp-admin/user-edit.php:702 +msgid "Cancel password change" +msgstr "Cancelar el cambio de contraseña" + +#: wp-admin/user-new.php:599 +msgid "Generate password" +msgstr "Generar contraseña" + +#: wp-admin/user-edit.php:685 +msgid "Account Management" +msgstr "Gestión de la cuenta" + +#. translators: The non-breaking space prevents 1Password from thinking the +#. text "log in" should trigger a password save prompt. +#: wp-admin/install.php:154 +msgid "You will need this password to log in. Please store it in a secure location." +msgstr "Necesitas esta contraseña para acceder. Por favor, guárdala en un lugar seguro." + +#. translators: Hidden accessibility text. +#: wp-admin/includes/class-wp-list-table.php:917 +msgid "No approved comments" +msgstr "No hay ningún comentario aprobado" + +#. translators: %s: Number of comments. +#: wp-admin/includes/class-wp-list-table.php:867 +msgid "%s pending comment" +msgid_plural "%s pending comments" +msgstr[0] "%s comentario pendiente" +msgstr[1] "%s comentarios pendientes" + +#. translators: %s: Number of comments. +#: wp-admin/includes/class-wp-list-table.php:861 +msgid "%s approved comment" +msgid_plural "%s approved comments" +msgstr[0] "%s comentario aprobado" +msgstr[1] "%s comentarios aprobados" + +#: wp-admin/includes/ajax-actions.php:4026 +msgid "Image could not be processed." +msgstr "No se ha podido procesar la imagen." + +#: wp-admin/install.php:168 wp-admin/user-edit.php:721 +#: wp-admin/user-new.php:621 +msgid "Confirm Password" +msgstr "Confirma la contraseña" + +#: wp-admin/options-general.php:207 +msgid "Remove Site Icon" +msgstr "Quitar el icono del sitio" + +#. translators: 1: wp-config.php, 2: Secret key service URL. +#: wp-admin/maint/repair.php:85 +msgid "While you are editing your %1$s file, take a moment to make sure you have all 8 keys and that they are unique. You can generate these using the WordPress.org secret key service." +msgstr "Mientras editas tu archivo %1$s tómate un momento para asegurarte de que tienes las 8 claves y que son únicas. Puedes generarlas usando el servicio de claves secretas de WordPress.org." + +#: wp-admin/options-general.php:192 +msgid "Set as Site Icon" +msgstr "Establecer como icono del sitio" + +#: wp-admin/options-general.php:190 wp-admin/options-general.php:199 +msgid "Choose a Site Icon" +msgstr "Elige un icono del sitio" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/class-wp-application-passwords-list-table.php:258 +#: wp-admin/includes/class-wp-comments-list-table.php:913 +#: wp-admin/includes/class-wp-list-table.php:689 +#: wp-admin/includes/class-wp-list-table.php:1822 +#: wp-admin/includes/update.php:933 +msgid "Show more details" +msgstr "Mostrar más detalles" + +#. translators: %s: Number of menus. +#: wp-admin/nav-menus.php:840 +msgid "Your theme supports %s menu. Select which menu appears in each location." +msgid_plural "Your theme supports %s menus. Select which menu appears in each location." +msgstr[0] "Tu tema tiene %s menús. Elige qué menú debería aparecer en cada ubicación." +msgstr[1] "Tu tema tiene %s menús. Elige qué menú debería aparecer en cada ubicación." + +#. translators: Hidden accessibility text. %s: Number of posts. +#: wp-admin/includes/class-wp-users-list-table.php:607 +msgid "%s post by this author" +msgid_plural "%s posts by this author" +msgstr[0] "%s entrada de este autor" +msgstr[1] "%s entradas de este autor" + +#. translators: Hidden accessibility text. %s: Theme name. +#: wp-admin/includes/class-theme-installer-skin.php:149 +#: wp-admin/includes/class-theme-upgrader-skin.php:105 +msgid "Live Preview “%s”" +msgstr "Vista previa «%s»" + +#: wp-admin/options-discussion.php:138 +msgid "last page" +msgstr "última página" + +#: wp-admin/options-discussion.php:139 +msgid "first page" +msgstr "primera página" + +#. translators: %s: Post link. +#: wp-admin/edit-form-comment.php:197 +msgid "In response to: %s" +msgstr "En respuesta a: %s" + +#. translators: Hidden accessibility text. +#: wp-admin/edit-form-comment.php:169 wp-admin/includes/meta-boxes.php:304 +msgid "Date and time" +msgstr "Fecha y hora" + +#: wp-admin/edit-form-advanced.php:355 +msgid "You can also embed media from many popular websites including Twitter, YouTube, Flickr and others by pasting the media URL on its own line into the content of your post/page. Learn more about embeds." +msgstr "Puedes incrustar medios de muchas webs populares, incluyendo Twitter, YouTube, Flickr y otras, solo con pegar la URL del medio en su propia línea dentro del contenido de tu entrada/página. Aprende más sobre las incrustaciones." + +#: wp-admin/includes/class-custom-background.php:110 +msgid "Documentation on Custom Background" +msgstr "Documentación sobre fondos personalizados" + +#: wp-admin/edit-tags.php:310 +msgid "Documentation on Link Categories" +msgstr "Documentación sobre categorías de enlaces" + +#: wp-admin/edit-link-form.php:76 +msgid "Documentation on Creating Links" +msgstr "Documentación sobre la creación de enlaces" + +#: wp-admin/link-manager.php:79 +msgid "Documentation on Managing Links" +msgstr "Documentación sobre la gestión de enlaces" + +#: wp-admin/includes/class-custom-image-header.php:145 +msgid "Documentation on Custom Header" +msgstr "Documentación sobre cabeceras personalizadas" + +#: wp-admin/my-sites.php:52 +msgid "Documentation on My Sites" +msgstr "Documentación sobre Mis sitios" + +#: wp-admin/widgets.php:24 +msgid "The theme you are currently using is not widget-aware, meaning that it has no sidebars that you are able to change. For information on making your theme widget-aware, please follow these instructions." +msgstr "El tema que estás usando en este momento no está preparado para widgets, lo que significa que no tiene barras laterales que puedas cambiar. Para más información sobre cómo preparar tu tema para widgets, por favor, sigue estas instrucciones." + +#. translators: %s: Documentation URL. +#: wp-admin/options-writing.php:223 +msgid "When you publish a new post, WordPress automatically notifies the following site update services. For more about this, see the Update Services documentation article. Separate multiple service URLs with line breaks." +msgstr "Cuando publicas una nueva entrada, WordPress avisa automáticamente a los siguientes servicios de actualización. Para más información, revisa los servicios de actualización en el artículo de la documentación. Separa las URLs de los distintos servicios con saltos de línea." + +#: wp-admin/includes/options.php:137 +msgid "The character encoding of your site (UTF-8 is recommended)" +msgstr "La codificación de caracteres de tu sitio (se recomienda UTF-8)" + +#: wp-admin/includes/file.php:2589 +msgid "example: www.wordpress.org" +msgstr "ejemplo: es.wordpress.org" + +#: wp-admin/themes.php:138 +msgid "The search for installed themes will search for terms in their name, description, author, or tag." +msgstr "La búsqueda de temas instalados buscará términos en su nombre, descripción, autor o etiqueta." + +#: wp-admin/theme-install.php:113 +msgid "Alternately, you can browse the themes that are Popular or Latest. When you find a theme you like, you can preview it or install it." +msgstr "Como alternativa, puedes ver los temas que son populares o los últimos. Cuando encuentres un tema que te guste, puedes ver una vista previa o instalarlo." + +#: wp-admin/theme-install.php:112 +msgid "You can Search for themes by keyword, author, or tag, or can get more specific and search by criteria listed in the feature filter." +msgstr "Puedes buscar temas por palabra clave, autor o etiqueta; o puedes filtrar por los criterios que se muestran en el selector." + +#. translators: %d: Number of themes. +#: wp-admin/theme-install.php:68 wp-admin/themes.php:237 +msgid "Number of Themes found: %d" +msgstr "Número de temas encontrados: %d" + +#. translators: Hidden accessibility text. +#: wp-admin/options-general.php:543 +msgid "Custom time format:" +msgstr "Formato de hora personalizado:" + +#. translators: Hidden accessibility text. +#: wp-admin/options-general.php:539 +msgid "enter a custom time format in the following field" +msgstr "escribe un formato de hora personalizado en el siguiente campo" + +#. translators: Hidden accessibility text. +#: wp-admin/options-general.php:498 +msgid "Custom date format:" +msgstr "Formato de fecha personalizado:" + +#. translators: Hidden accessibility text. +#: wp-admin/options-general.php:494 +msgid "enter a custom date format in the following field" +msgstr "escribe un formato de fecha personalizado en el siguiente campo" + +#: wp-admin/includes/class-plugin-upgrader.php:66 +msgid "Plugins updated successfully." +msgstr "Plugins actualizados correctamente." + +#. translators: %s: Number of millions. +#: wp-admin/includes/class-wp-plugin-install-list-table.php:719 +#: wp-admin/includes/plugin-install.php:691 +msgctxt "Active plugin installations" +msgid "%s+ Million" +msgid_plural "%s+ Million" +msgstr[0] "%s+ millón" +msgstr[1] "%s+ millones" + +#. translators: 1: Error message, 2: Line number. +#: wp-admin/link-parse-opml.php:93 +msgid "XML Error: %1$s at line %2$s" +msgstr "Error de XML: %1$s en la línea %2$s" + +#: wp-admin/menu-header.php:293 +msgid "Main menu" +msgstr "Menú principal" + +#: wp-admin/includes/file.php:2639 +msgid "Enter the location on the server where the public and private keys are located. If a passphrase is needed, enter that in the password field above." +msgstr "Introduce la ubicación del servidor de las claves públicas y privadas. Si fuese necesaria una contraseña introdúcela arriba, en el campo de contraseña." + +#. translators: %s: Number of users. +#: wp-admin/users.php:618 +msgid "%s user deleted." +msgid_plural "%s users deleted." +msgstr[0] "%s usuario borrado." +msgstr[1] "%s usuarios borrados." + +#: wp-admin/users.php:408 +msgid "What should be done with content owned by these users?" +msgstr "¿Qué debería hacerse con el contenido de estos usuarios?" + +#: wp-admin/users.php:358 +msgid "You have specified these users for deletion:" +msgstr "Has seleccionado estos usuarios para ser borrados:" + +#: wp-admin/plugins.php:369 +msgid "You are about to remove the following plugins:" +msgstr "Estás a punto de eliminar los siguientes plugins:" + +#: wp-admin/plugins.php:360 +msgid "These plugins may be active on other sites in the network." +msgstr "Puede que estos plugins estén activos en otros sitios de la red." + +#: wp-admin/plugins.php:357 +msgid "Delete Plugins" +msgstr "Eliminar plugins" + +#: wp-admin/edit.php:373 +msgid "1 page not updated, somebody is editing it." +msgstr "1 página no actualizada, alguien la está editando." + +#: wp-admin/edit.php:360 +msgid "1 post not updated, somebody is editing it." +msgstr "1 entrada no actualizada, alguien la está editando." + +#: wp-admin/user-edit.php:64 +msgid "You can log out of other devices, such as your phone or a public computer, by clicking the Log Out Everywhere Else button." +msgstr "Puedes desconectar de otros dispositivos, como tu teléfono o un ordenador público, haciendo clic en el botón Desconectar del resto de sitios" + +#: wp-admin/update-core.php:829 +msgid "New translations are available." +msgstr "Hay nuevas traducciones disponibles." + +#: wp-admin/theme-install.php:531 +msgid "This theme has not been rated yet." +msgstr "Este tema todavía no ha sido valorado." + +#. translators: Date and time format for exact current time, mainly about +#. timezones, see https://www.php.net/manual/datetime.format.php +#: wp-admin/options-general.php:23 +msgctxt "timezone date format" +msgid "Y-m-d H:i:s" +msgstr "d-m-Y H:i:s" + +#: wp-admin/nav-menus.php:745 +msgid "To add a custom link, expand the Custom Links section, enter a URL and link text, and click Add to Menu" +msgstr "Para añadir un enlace personalizado, expande la sección de enlaces personalizados e introduce una URL y un texto para el enlace y haz clic en «Añadir al menú»" + +#. translators: Do not translate USERNAME, URL_DELETE, SITENAME, SITEURL: those +#. are placeholders. +#: wp-admin/ms-delete-site.php:58 +msgid "" +"Howdy ###USERNAME###,\n" +"\n" +"You recently clicked the 'Delete Site' link on your site and filled in a\n" +"form on that page.\n" +"\n" +"If you really want to delete your site, click the link below. You will not\n" +"be asked to confirm again so only click this link if you are absolutely certain:\n" +"###URL_DELETE###\n" +"\n" +"If you delete your site, please consider opening a new site here some time in\n" +"the future! (But remember that your current site and username are gone forever.)\n" +"\n" +"Thank you for using the site,\n" +"All at ###SITENAME###\n" +"###SITEURL###" +msgstr "" +"Hola ###USERNAME###,\n" +"\n" +"Recientemente has hecho clic en el enlace de 'Borrar sitio' de tu sitio y rellenado un formulario en esa página.\n" +"\n" +"Si realmente quieres borrar tu sitio haz clic en el enlace de abajo. No se te pedirá que confirmes de nuevo así que haz clic en este enlace solo si tienes la absoluta certeza:\n" +"###URL_DELETE###\n" +"\n" +"¡Si borras tu sitio, por favor, plantéate abrir aquí un nuevo sitio en el futuro! (Pero recuerda que tu sitio y nombre de usuario actuales habrán desaparecido para siempre.)\n" +"\n" +"Gracias por usar el sitio,\n" +"El equipo de ###SITENAME###\n" +"###SITEURL###" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/theme.php:847 wp-admin/themes.php:1069 +msgid "Close details dialog" +msgstr "Cerrar ventana con los detalles" + +#: wp-admin/includes/template.php:2812 wp-admin/includes/template.php:2831 +msgid "You are currently editing the page that shows your latest posts." +msgstr "Estás editando la página que muestra tus últimas entradas." + +#: wp-admin/includes/class-wp-screen.php:1240 +msgid "Number of items per page:" +msgstr "Número de elementos por página:" + +#: wp-admin/includes/revision.php:295 +msgctxt "revision date short format" +msgid "j M @ H:i" +msgstr "j M @ H:i" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/ms.php:314 wp-admin/network/settings.php:416 +msgid "Size in megabytes" +msgstr "Tamaño en megabytes" + +#: wp-admin/includes/ms.php:306 +msgid "Site Upload Space Quota" +msgstr "Cuota de espacio para archivos" + +#: wp-admin/includes/class-wp-automatic-updater.php:1665 +msgid "" +"UPDATE LOG\n" +"==========" +msgstr "" +"REGISTRO DE LA ACTUALIZACIÓN\n" +"==========" + +#: wp-admin/includes/class-wp-automatic-updater.php:1642 +msgid "" +"BETA TESTING?\n" +"=============\n" +"\n" +"This debugging email is sent when you are using a development version of WordPress.\n" +"\n" +"If you think these failures might be due to a bug in WordPress, could you report it?\n" +" * Open a thread in the support forums: https://wordpress.org/support/forum/alphabeta\n" +" * Or, if you're comfortable writing a bug report: https://core.trac.wordpress.org/\n" +"\n" +"Thanks! -- The WordPress Team" +msgstr "" +"¿PRUEBAS BETA?\n" +"=============\n" +"\n" +"Este correo electrónico de errores se te envía cuando estás usando una versión de desarrollo de WordPress.\n" +"\n" +"Si crees que estos fallos pueden deberse a errores de WordPress, ¿podrías notificarlos?\n" +" * Abre un hilo en los foros de soporte: https://wordpress.org/support/forum/alphabeta\n" +" * O, si te gusta más, puedes escribir un informe de errores: https://core.trac.wordpress.org/\n" +"\n" +"¡Gracias! -- El equipo de WordPress" + +#: wp-admin/includes/revision.php:251 wp-admin/includes/revision.php:294 +msgid "M j, Y @ H:i" +msgstr "j M Y @ H:i" + +#: wp-admin/comment.php:227 +msgid "Submitted on" +msgstr "Enviado el" + +#. translators: Column name or table row header. +#: wp-admin/comment.php:201 +#: wp-admin/includes/class-wp-comments-list-table.php:485 +msgid "In response to" +msgstr "En respuesta a" + +#. translators: 1: Month, 2: Day, 3: Year, 4: Hour, 5: Minute. +#: wp-admin/includes/template.php:866 wp-admin/js/comment.js:89 +#: wp-admin/js/post.js:794 +msgid "%1$s %2$s, %3$s at %4$s:%5$s" +msgstr "%2$s de %1$s de %3$s a las %4$s:%5$s" + +#: wp-admin/user-edit.php:760 +msgid "You are only logged in at this location." +msgstr "Solo estás conectado en esta ubicación." + +#: wp-admin/includes/plugin-install.php:405 +msgid "These suggestions are based on the plugins you and other users have installed." +msgstr "Estas sugerencias están basadas en los plugins que habéis instalado tú y otros usuarios." + +#: wp-admin/edit-form-advanced.php:290 +msgid "You can enable distraction-free writing mode using the icon to the right. This feature is not available for old browsers or devices with small screens, and requires that the full-height editor be enabled in Screen Options." +msgstr "Puedes activar el modo de escritura sin distracción usando el icono de la derecha. Esta función no está disponible para navegadores antiguos ni dispositivos con pantallas pequeñas , y requiere que esté activo el editor a pantalla completa en los ajustes de pantalla." + +#: wp-admin/user-edit.php:778 +msgid "Log Out Everywhere" +msgstr "Desconectar todo" + +#: wp-admin/includes/class-wp-plugin-install-list-table.php:113 +msgctxt "Plugin Installer" +msgid "Recommended" +msgstr "Recomendados" + +#. translators: New site notification email. 1: New site URL, 2: User login, 3: +#. User password or password reset link, 4: Login URL. +#: wp-admin/includes/upgrade.php:589 +msgid "" +"Your new WordPress site has been successfully set up at:\n" +"\n" +"%1$s\n" +"\n" +"You can log in to the administrator account with the following information:\n" +"\n" +"Username: %2$s\n" +"Password: %3$s\n" +"Log in here: %4$s\n" +"\n" +"We hope you enjoy your new site. Thanks!\n" +"\n" +"--The WordPress Team\n" +"https://wordpress.org/\n" +msgstr "" +"Tu nuevo sitio de WordPress se ha creado correctamente en:\n" +"\n" +"%1$s\n" +"\n" +"Puedes acceder a tu cuenta de administrador con la siguiente información:\n" +"\n" +"Nombre de usuario: %2$s\n" +"Contraseña: %3$s\n" +"Accede desde aquí: %4$s\n" +"\n" +"Esperamos que disfrutes de tu nuevo sitio. ¡Gracias!\n" +"\n" +"--El Equipo de WordPress\n" +"https://es.wordpress.org/\n" + +#: wp-admin/themes.php:301 +msgid "You cannot delete a theme while it has an active child theme." +msgstr "No puedes eliminar un tema mientras este tenga un tema hijo activo." + +#: wp-admin/options-discussion.php:273 +msgid "Mystery Person" +msgstr "Persona misteriosa" + +#: wp-admin/install.php:126 +msgid "Usernames can have only alphanumeric characters, spaces, underscores, hyphens, periods, and the @ symbol." +msgstr "Los nombres de usuario pueden tener únicamente caracteres alfanuméricos, espacios, guiones bajos, guiones medios, puntos y el símbolo @." + +#: wp-admin/includes/class-wp-screen.php:1009 +msgid "Enable full-height editor and distraction-free functionality." +msgstr "Activar el editor a pantalla completa y la funcionalidad sin distracciones." + +#. translators: Link to the Planet feed of the locale. +#: wp-admin/includes/dashboard.php:1587 +msgid "https://planet.wordpress.org/feed/" +msgstr "https://planet.wordpress.org/feed/" + +#. translators: Link to the Planet website of the locale. +#: wp-admin/includes/dashboard.php:1574 wp-admin/index.php:98 +msgid "https://planet.wordpress.org/" +msgstr "https://planet.wordpress.org/" + +#: wp-admin/includes/class-wp-plugin-install-list-table.php:734 +msgid "Untested with your version of WordPress" +msgstr "No probado con tu versión de WordPress" + +#: wp-admin/includes/meta-boxes.php:1180 +msgid "All categories" +msgstr "Todas las categorías" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/class-wp-comments-list-table.php:521 +msgid "Filter by comment type" +msgstr "Filtrar por tipo de comentario" + +#. translators: %s: User's display name. +#: wp-admin/includes/ajax-actions.php:4001 +msgid "%s has been logged out." +msgstr "%s ha sido desconectado." + +#: wp-admin/includes/ajax-actions.php:3997 +msgid "You are now logged out everywhere else." +msgstr "Ahora están cerradas tus sesiones del resto de sitios." + +#: wp-admin/includes/ajax-actions.php:3988 +msgid "Could not log out user sessions. Please try again." +msgstr "No se han podido cerrar las sesiones de usuario. Por favor, inténtalo de nuevo." + +#: wp-admin/includes/ajax-actions.php:3859 +msgid "This preview is unavailable in the editor." +msgstr "Esta vista previa no está disponible en el editor." + +#: wp-admin/edit-form-advanced.php:289 +msgid "You can insert media files by clicking the button above the post editor and following the directions. You can align or edit images using the inline formatting toolbar available in Visual mode." +msgstr "Puedes insertar archivos multimedia haciendo clic en el botón sobre el editor de entradas y siguiendo las indicaciones. Puedes alinear o editar imágenes utilizando la barra de herramientas de formato integrada que está disponible en el modo visual." + +#: wp-admin/edit-form-advanced.php:286 +msgid "Post editor — Enter the text for your post. There are two modes of editing: Visual and Code. Choose the mode by clicking on the appropriate tab." +msgstr "Editor de entradas — Introduce el texto para tu entrada. Hay dos modos de editar: visual y código. Elige el modo haciendo clic en la pestaña correspondiente." + +#. translators: %s: URL to header image configuration in Customizer. +#: wp-admin/includes/class-custom-image-header.php:518 +msgid "You can now manage and live-preview Custom Header in the Customizer." +msgstr "Ahora puedes gestionar y tener una vista previa de la cabecera personalizada en el Personalizador." + +#. translators: %s: URL to background image configuration in Customizer. +#: wp-admin/includes/class-custom-background.php:249 +msgid "You can now manage and live-preview Custom Backgrounds in the Customizer." +msgstr "Ahora puedes gestionar y tener una vista previa del fondo personalizado en el Personalizador." + +#: wp-admin/includes/class-wp-screen.php:1140 +msgctxt "Welcome panel" +msgid "Welcome" +msgstr "Te damos la bienvenida" + +#. translators: %s: Number of users. +#. translators: Number of users. +#: wp-admin/includes/class-wp-users-list-table.php:206 +#: wp-admin/includes/class-wp-ms-users-list-table.php:144 +msgctxt "users" +msgid "All (%s)" +msgid_plural "All (%s)" +msgstr[0] "Todos (%s)" +msgstr[1] "Todos (%s)" + +#: wp-admin/edit-link-form.php:123 +#: wp-admin/includes/class-wp-links-list-table.php:135 +#: wp-admin/includes/class-wp-links-list-table.php:149 +msgctxt "link name" +msgid "Name" +msgstr "Nombre" + +#. translators: %s: Placeholder that must come at the start of the URL. +#: wp-admin/options-permalink.php:413 +msgid "If you like, you may enter custom structures for your category and tag URLs here. For example, using topics as your category base would make your category links like %s/topics/uncategorized/. If you leave these blank the defaults will be used." +msgstr "Si quieres, puedes introducir aquí estructuras personalizadas para las URLs de etiquetas o categorías. Por ejemplo, usando secciones como base de las categorías, hará que los enlaces de categorías sean algo como %s/secciones/sin-categoria/. Si dejas esto en blanco, se usarán los ajustes por defecto." + +#: wp-admin/credits.php:142 +msgid "Release Lead" +msgstr "Líder de la versión" + +#: wp-admin/upload.php:193 +msgid "Use the arrow buttons at the top of the dialog, or the left and right arrow keys on your keyboard, to navigate between media items quickly." +msgstr "Utiliza los botones con flechas de la parte superior o las teclas de flecha de tu teclado para navegar rápidamente entre los elementos multimedia." + +#: wp-admin/upload.php:194 +msgid "You can also delete individual items and access the extended edit screen from the details dialog." +msgstr "También puedes borrar elementos individualmente y acceder a la pantalla de edición extendida desde la ventana de detalles." + +#: wp-admin/upload.php:192 +msgid "Clicking an item will display an Attachment Details dialog, which allows you to preview media and make quick edits. Any changes you make to the attachment details will be automatically saved." +msgstr "Al hacer clic en un elemento se mostrará la ventana de Detalles del adjunto, que te permite previsualizar el medio y hacer modificaciones rápidas. Cualquier cambio que hagas en los detalles del adjunto se guardarán automáticamente." + +#: wp-admin/upload.php:183 +msgid "To delete media items, click the Bulk Select button at the top of the screen. Select any items you wish to delete, then click the Delete Selected button. Clicking the Cancel Selection button takes you back to viewing your media." +msgstr "Para borrar medios haz clic en el botón de «Selección múltiple» de la parte superior de la pantalla. Selecciona cualquier elemento que quieras borrar y luego haz clic en el botón de «Borrar» lo seleccionado. Hacer clic en el botón de «Cancelar» la selección te lleva de vuelta a la visualización de tus medios." + +#: wp-admin/upload.php:182 wp-admin/upload.php:373 +msgid "You can view your media in a simple visual grid or a list with columns. Switch between these views using the icons to the left above the media." +msgstr "Puedes ver tus medios en una cuadrícula visual sencilla o en lista con columnas. Cambia entre estas vistas usando los iconos en la parte superior izquierda de los medios." + +#: wp-admin/upload.php:181 +msgid "All the files you’ve uploaded are listed in the Media Library, with the most recent uploads listed first." +msgstr "Todos los archivos que hayas subido están en la lista de la biblioteca de medios, con los subidos más recientemente en la parte superior." + +#: wp-admin/plugin-install.php:113 +msgid "If you just want to get an idea of what’s available, you can browse Featured and Popular plugins by using the links above the plugins list. These sections rotate regularly." +msgstr "Si quieres hacerte una idea de qué plugins hay disponibles, puedes navegar por las secciones Destacados y Populares usando los enlaces que hay sobre la lista de plugins. Estas secciones rotan regularmente." + +#: wp-admin/plugin-install.php:155 +msgid "Browse Plugins" +msgstr "Buscar plugins" + +#: wp-admin/plugin-install.php:51 +msgid "Add Plugins" +msgstr "Añadir plugins" + +#. translators: 1: WPLANG, 2: wp-config.php +#: wp-admin/options-general.php:347 +msgid "The %1$s constant in your %2$s file is no longer needed." +msgstr "La constante %1$s de tu archivo %2$s ya no es necesaria." + +#: wp-admin/includes/translation-install.php:38 +msgid "Invalid translation type." +msgstr "Tipo de traducción no válido." + +#: wp-admin/install.php:385 +msgid "Welcome to the famous five-minute WordPress installation process! Just fill in the information below and you’ll be on your way to using the most extendable and powerful personal publishing platform in the world." +msgstr "¡Este es el famoso proceso de instalación de WordPress en cinco minutos! Simplemente completa la información siguiente y estarás a punto de usar la más enriquecedora y potente plataforma de publicación personal del mundo." + +#: wp-admin/includes/class-wp-plugin-install-list-table.php:738 +msgid "Compatible with your version of WordPress" +msgstr "Compatible con tu versión de WordPress" + +#: wp-admin/includes/class-wp-plugin-install-list-table.php:736 +msgid "Incompatible with your version of WordPress" +msgstr "Incompatible con tu versión de WordPress" + +#. translators: %s: Number of stars. +#: wp-admin/includes/plugin-install.php:761 +msgid "%d star" +msgid_plural "%d stars" +msgstr[0] "%d estrella" +msgstr[1] "%d estrellas" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/class-wp-list-table.php:604 +msgid "Select bulk action" +msgstr "Selecciona acción en lote" + +#: wp-admin/user-new.php:489 wp-admin/user-new.php:656 +msgid "Add the user without sending an email that requires their confirmation" +msgstr "Añadir el usuario sin enviarle un correo electrónico que pida su confirmación" + +#. translators: %s: List view URL. +#: wp-admin/upload.php:237 +msgid "The grid view for the Media Library requires JavaScript. Switch to the list view." +msgstr "La vista de cuadrícula de la biblioteca de medios necesita JavaScript. Cambia a vista de lista." + +#: wp-admin/credits.php:36 wp-admin/includes/plugin-install.php:775 +msgid "Contributors" +msgstr "Colaboradores" + +#: wp-admin/includes/plugin-install.php:706 +#: wp-admin/includes/plugin-install.php:793 +msgid "Donate to this plugin »" +msgstr "Haz un donativo para este plugin »" + +#: wp-admin/includes/plugin-install.php:576 +msgctxt "Plugin installer section title" +msgid "Reviews" +msgstr "Valoraciones" + +#. translators: %s: Support email address. +#: wp-admin/includes/class-wp-automatic-updater.php:1054 +msgid "The WordPress team is willing to help you. Forward this email to %s and the team will work with you to make sure your site is working." +msgstr "El equipo de WordPress está deseando ayudarte. Reenvía este correo electrónico a %s y el equipo trabajará contigo para asegurarse que tu sitio funcione." + +#: wp-admin/includes/class-wp-theme-install-list-table.php:67 +msgctxt "themes" +msgid "Recently Updated" +msgstr "Recientemente actualizados" + +#: wp-admin/includes/class-wp-terms-list-table.php:200 +#: wp-admin/includes/class-wp-terms-list-table.php:222 +msgctxt "Number/count of items" +msgid "Count" +msgstr "Cantidad" + +#: wp-admin/includes/class-wp-plugins-list-table.php:1199 +msgid "View details" +msgstr "Ver detalles" + +#: wp-admin/includes/class-wp-plugin-install-list-table.php:581 +#: wp-admin/includes/class-wp-plugin-install-list-table.php:833 +msgid "More Details" +msgstr "Más detalles" + +#: wp-admin/includes/class-wp-plugin-install-list-table.php:500 +msgctxt "Plugin installer group title" +msgid "Tools" +msgstr "Herramientas" + +#: wp-admin/includes/class-wp-plugin-install-list-table.php:499 +msgctxt "Plugin installer group title" +msgid "Social" +msgstr "Social" + +#: wp-admin/includes/class-wp-plugin-install-list-table.php:498 +msgctxt "Plugin installer group title" +msgid "Performance" +msgstr "Rendimiento" + +#: wp-admin/includes/class-wp-plugin-install-list-table.php:108 +msgctxt "Plugin Installer" +msgid "Beta Testing" +msgstr "Pruebas beta" + +#. translators: %s: URL that could not be embedded. +#: wp-admin/includes/ajax-actions.php:3825 +msgid "%s failed to embed." +msgstr "%s ha fallado al incrustarse." + +#: wp-admin/theme-install.php:269 +msgid "Filtering by:" +msgstr "Filtrando por:" + +#: wp-admin/includes/media.php:3285 +msgid "Displayed on attachment pages." +msgstr "Mostrado en páginas de adjuntos." + +#: wp-admin/includes/image-edit.php:291 +msgid "You can edit the image while preserving the thumbnail. For example, you may wish to have a square thumbnail that displays just a section of the image." +msgstr "Puedes editar la imagen al tiempo que conservas la miniatura. Por ejemplo, puede que quieras tener una miniatura cuadrada que muestre solo una sección de la imagen." + +#: wp-admin/includes/image-edit.php:206 +msgid "Once you have made your selection, you can adjust it by entering the size in pixels. The minimum selection size is the thumbnail size as set in the Media settings." +msgstr "Una vez que has hecho tu selección puedes ajustar el tamaño especificando los pixels que debe tener. El tamaño de selección mínimo es el tamaño de la miniaturas indicado en los Ajustes de medios." + +#: wp-admin/includes/image-edit.php:203 +msgid "The aspect ratio is the relationship between the width and height. You can preserve the aspect ratio by holding down the shift key while resizing your selection. Use the input box to specify the aspect ratio, e.g. 1:1 (square), 4:3, 16:9, etc." +msgstr "La relación de aspecto es la proporción entre la anchura y la altura. Puedes conservar la relación de aspecto manteniendo presionada la tecla de mayúsculas (Shift) mientras redimensionas la selección. Usa las cajas de texto para especificar la relación de aspecto, por ejemplo: 1:1 (cuadrado), 4:3, 16:9, etc." + +#: wp-admin/includes/image-edit.php:201 +msgid "To crop the image, click on it and drag to make your selection." +msgstr "Para recortar la imagen, haz clic y arrastra en ella para hacer la selección." + +#: wp-admin/includes/image-edit.php:134 +msgid "You can proportionally scale the original image. For best results, scaling should be done before you crop, flip, or rotate. Images can only be scaled down, not up." +msgstr "Puedes escalar proporcionalmente la imagen original. Para obtener los mejores resultados, la escala se debe hacer antes de recortar, girar o rotar. Las imágenes solo se pueden escalar hacia abajo, no hacia arriba." + +#. translators: %s: Alt + F10 +#: wp-admin/edit-form-advanced.php:293 +msgid "Keyboard users: When you are working in the visual editor, you can use %s to access the toolbar." +msgstr "Usuarios de teclado: Cuando estés trabajando en el editor visual, puedes usar %s para acceder a la barra de herramientas." + +#: wp-admin/edit-comments.php:218 +msgid "A red bar on the left means the comment is waiting for you to moderate it." +msgstr "Una línea roja a la izquierda indica que el comentario está esperando moderación." + +#: wp-admin/includes/class-wp-comments-list-table.php:526 +msgid "All comment types" +msgstr "Todos los tipos de comentario" + +#: wp-admin/includes/class-wp-theme-install-list-table.php:66 +#: wp-admin/theme-install.php:212 +msgctxt "themes" +msgid "Latest" +msgstr "Recientes" + +#: wp-admin/theme-install.php:211 +msgctxt "themes" +msgid "Popular" +msgstr "Populares" + +#: wp-admin/includes/class-wp-theme-install-list-table.php:64 +msgctxt "themes" +msgid "Featured" +msgstr "Destacados" + +#: wp-admin/includes/ms.php:969 wp-admin/users.php:418 +msgid "Attribute all content to:" +msgstr "Atribuir todo el contenido a:" + +#: wp-admin/includes/ms.php:967 wp-admin/users.php:414 +msgid "Delete all content." +msgstr "Borrar todo el contenido." + +#: wp-admin/users.php:406 +msgid "What should be done with content owned by this user?" +msgstr "¿Qué debería hacerse con el contenido de este usuario?" + +#: wp-admin/users.php:60 +msgid "Delete brings you to the Delete Users screen for confirmation, where you can permanently remove a user from your site and delete their content. You can also delete multiple users at once by using bulk actions." +msgstr "Borrar, te lleva a la pantalla de confirmación para el borrado de usuarios, donde puedes eliminar permanentemente a un usuario de tu sitio y borrar su contenido. También puedes borrar varios usuarios a la vez usando las acciones en lote." + +#: wp-admin/users.php:58 +msgid "Remove allows you to remove a user from your site. It does not delete their content. You can also remove multiple users at once by using bulk actions." +msgstr "Eliminar, te permite eliminar a un usuario de tu sitio. No borra su contenido. También puedes eliminar varios usuarios a la vez usando las acciones en lote." + +#: wp-admin/theme-install.php:391 +msgctxt "theme" +msgid "Details & Preview" +msgstr "Detalles y vista previa" + +#: wp-admin/theme-install.php:58 +msgid "Search Themes" +msgstr "Buscar temas" + +#: wp-admin/theme-install.php:25 +msgid "Add Themes" +msgstr "Añadir temas" + +#: wp-admin/maint/repair.php:162 +msgid "https://wordpress.org/support/forum/how-to-and-troubleshooting" +msgstr "https://es.wordpress.org/support/forum/manuales-y-resolucion-de-problemas/" + +#: wp-admin/index.php:86 +msgid "At a Glance — Displays a summary of the content on your site and identifies which theme and version of WordPress you are using." +msgstr "De un vistazo — Muestra un resumen del contenido de tu sitio e identifica qué tema y versión de WordPress estás utilizando." + +#: wp-admin/index.php:65 +msgid "Box Controls — Click the title bar of the box to expand or collapse it. Some boxes added by plugins may have configurable content, and will show a “Configure” link in the title bar if you hover over it." +msgstr "Controles de caja — Haz clic en la barra de título de la caja para desplegarla o contraerla. Algunas cajas añadidas por plugins puede que tengan contenido que configurar y mostrarán un enlace de «Configurar» en la barra de título si pasas el cursor sobre ella." + +#: wp-admin/themes.php:43 +msgid "Sorry, you are not allowed to resume this theme." +msgstr "Lo siento, no tienes permisos para reactivar este tema." + +#. translators: Hidden accessibility text. +#: wp-admin/edit-form-comment.php:162 wp-admin/includes/meta-boxes.php:296 +msgid "Edit date and time" +msgstr "Editar fecha y hora" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/meta-boxes.php:278 +msgid "Browse revisions" +msgstr "Buscar revisiones" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/meta-boxes.php:200 +msgid "Edit visibility" +msgstr "Editar visibilidad" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/meta-boxes.php:138 +msgid "Edit status" +msgstr "Editar estado" + +#: wp-admin/includes/ms.php:1175 wp-admin/network/index.php:57 +#: wp-admin/network/site-new.php:33 wp-admin/network/sites.php:45 +#: wp-admin/network/user-new.php:30 wp-admin/network/users.php:243 +msgid "Support forums" +msgstr "Foros de soporte" + +#. translators: %s: https://wordpress.org +#: wp-admin/admin-footer.php:37 +msgid "Thank you for creating with WordPress." +msgstr "Gracias por crear con WordPress." + +#: wp-admin/update-core.php:1005 +msgid "Translations — The files translating WordPress into your language are updated for you whenever any other updates occur. But if these files are out of date, you can click the “Update Translations” button." +msgstr "Traducciones — Los archivos que traducen WordPress a tu idioma se actualizan cuando se produce cualquier otra actualización. Pero si estos archivos están anticuados, puedes hacer clic en el botón «Actualizar las traducciones»." + +#: wp-admin/update-core.php:1001 +msgid "In most cases, WordPress will automatically apply maintenance and security updates in the background for you." +msgstr "En la mayoría de los casos, WordPress realizará por su cuenta las actualizaciones de seguridad y mantenimiento." + +#: wp-admin/update-core.php:1001 +msgid "WordPress — Updating your WordPress installation is a simple one-click procedure: just click on the “Update now” button when you are notified that a new version is available." +msgstr "WordPress — Actualizar tu instalación de WordPress es un procedimiento sencillo de un solo clic: simplemente haz clic en el botón «Actualizar ahora» cuando se te avise de que hay una nueva versión disponible." + +#: wp-admin/update-core.php:991 +msgid "If an update is available, you᾿ll see a notification appear in the Toolbar and navigation menu." +msgstr "Si hay una actualización disponible, aparecerá una notificación en la barra de herramientas y en el menú de navegación." + +#: wp-admin/update-core.php:1002 +msgid "Themes and Plugins — To update individual themes or plugins from this screen, use the checkboxes to make your selection, then click on the appropriate “Update” button. To update all of your themes or plugins at once, you can check the box at the top of the section to select all before clicking the update button." +msgstr "Temas y Plugins — Para actualizar temas o plugins uno a uno desde esta pantalla, usa las casillas de selección para hacer tu elección, luego, haz clic en el botón «Actualizar» correspondiente. Para actualizar todos tus temas o plugins de una vez, puedes seleccionar la casilla de la parte superior de la sección para elegirlos todos antes de hacer clic en el botón de actualizar." + +#: wp-admin/update-core.php:990 +msgid "On this screen, you can update to the latest version of WordPress, as well as update your themes, plugins, and translations from the WordPress.org repositories." +msgstr "En esta pantalla puedes actualizar a la última versión de WordPress, así como actualizar tus temas, plugins y traducciones desde los repositorios de WordPress.org. " + +#. translators: %s: https://wordpress.org/themes +#: wp-admin/themes.php:156 +msgid "If you would like to see more themes to choose from, click on the “Add Theme” button and you will be able to browse or search for additional themes from the WordPress Theme Directory. Themes in the WordPress Theme Directory are designed and developed by third parties, and are compatible with the license WordPress uses. Oh, and they are free!" +msgstr "Si quieres ver más temas entre los que elegir, haz clic en el botón «Añadir tema» y podrás navegar o buscar temas adicionales del directorio de temas de WordPress.org. Los temas del directorio de temas de WordPress.org están diseñados y desarrollados por terceros y son compatibles con la licencia que usa WordPress. ¡Ah, y son gratis!" + +#. translators: 1: Number of megabytes, 2: Percentage. +#: wp-admin/includes/dashboard.php:1686 +msgid "%1$s MB (%2$s%%) Space Used" +msgstr "%1$s MB (%2$s%%) del espacio utilizado" + +#. translators: %s: Number of megabytes. +#: wp-admin/includes/dashboard.php:1671 +msgid "%s MB Space Allowed" +msgstr "%s MB de espacio permitidos" + +#. translators: Date and time format for recent posts on the dashboard, see +#. https://www.php.net/manual/datetime.format.php +#: wp-admin/includes/dashboard.php:1026 +msgid "M jS" +msgstr "j M" + +#. translators: %s: Number of pages. +#: wp-admin/includes/dashboard.php:315 +msgid "%s Page" +msgid_plural "%s Pages" +msgstr[0] "%s página" +msgstr[1] "%s páginas" + +#. translators: %s: Number of posts. +#: wp-admin/includes/dashboard.php:312 +msgid "%s Post" +msgid_plural "%s Posts" +msgstr[0] "%s entrada" +msgstr[1] "%s entradas" + +#: wp-admin/options-reading.php:47 +msgid "When this setting is in effect, a reminder is shown in the At a Glance box of the Dashboard that says, “Search engines discouraged”, to remind you that you have directed search engines to not crawl your site." +msgstr "Cuando este ajuste está activo, se muestra un recordatorio en la caja «De un vistazo» del escritorio que dice «Motores de búsqueda disuadidos», para recordarte que has indicado a los motores de búsqueda que no rastreen tu sitio." + +#: wp-admin/includes/dashboard.php:73 +msgid "At a Glance" +msgstr "De un vistazo" + +#: wp-admin/themes.php:599 wp-admin/themes.php:991 +msgctxt "theme" +msgid "Active:" +msgstr "Activo:" + +#: wp-admin/includes/theme.php:331 +msgid "Accessibility Ready" +msgstr "Listo para accesibilidad" + +#. translators: %s: Theme name. +#: wp-admin/includes/theme.php:976 wp-admin/themes.php:1241 +msgid "This is a child theme of %s." +msgstr "Este es un tema hijo de %s." + +#: wp-admin/themes.php:175 +msgid "When previewing on smaller monitors, you can use the collapse icon at the bottom of the left-hand pane. This will hide the pane, giving you more room to preview your site in the new theme. To bring the pane back, click on the collapse icon again." +msgstr "Al previsualizar en monitores pequeños, puedes usar el icono de Contraer que está al fondo del panel izquierdo. Esto ocultará el panel, dándote más espacio para previsualizar tu sitio con el nuevo tema. Para volver a ver el panel, haz clic de nuevo en el icono de Contraer." + +#: wp-admin/themes.php:174 +msgid "The theme being previewed is fully interactive — navigate to different pages to see how the theme handles posts, archives, and other page templates. The settings may differ depending on what theme features the theme being previewed supports. To accept the new settings and activate the theme all in one step, click the Activate & Publish button above the menu." +msgstr "El tema previsualizado es totalmente interactivo — navega a distintas páginas para ver cómo el tema gestiona las entradas, los archivos y otras plantillas de página. Los ajustes pueden diferir dependiendo de las características con las que sea compatible el tema previsualizado. Para aceptar los nuevos ajustes y activar el tema en un solo paso, haz clic en el botón «Publicar y activar» que hay encima del menú." + +#: wp-admin/themes.php:173 +msgid "Tap or hover on any theme then click the Live Preview button to see a live preview of that theme and change theme options in a separate, full-screen view. You can also find a Live Preview button at the bottom of the theme details screen. Any installed theme can be previewed and customized in this way." +msgstr "Toca o muévete sobre cualquier tema, luego haz clic en el botón de «Vista previa» para ver una visualización en directo de ese tema y cambiar los ajustes del tema en una vista separada y a pantalla completa. También encontrarás un botón de Vista previa al fondo de la pantalla de detalles del tema. Cualquier tema instalado puede previsualizarse y personalizarse de este modo." + +#: wp-admin/themes.php:137 +msgid "The active theme is displayed highlighted as the first theme." +msgstr "El tema activo se muestra de forma destacada como el primer tema." + +#: wp-admin/themes.php:136 +msgid "Click Customize for the active theme or Live Preview for any other theme to see a live preview" +msgstr "Haz clic en «Personalizar» en el tema activo o en «Vista previa» en cualquier otro tema para ver una previsualización en vivo" + +#: wp-admin/themes.php:135 +msgid "Click on the theme to see the theme name, version, author, description, tags, and the Delete link" +msgstr "Haz clic en el tema para ver el nombre del tema, su versión, autor, descripción, etiquetas y el enlace de borrar" + +#: wp-admin/themes.php:134 +msgid "Hover or tap to see Activate and Live Preview buttons" +msgstr "Pasa el cursor por encima o toca para activar y ver los botones de vista previa." + +#: wp-admin/themes.php:132 +msgid "This screen is used for managing your installed themes. Aside from the default theme(s) included with your WordPress installation, themes are designed and developed by third parties." +msgstr "Esta pantalla se utiliza para gestionar los temas que tienes instalados. Además del (los) tema(s) por defecto incluidos en tu instalación de WordPress, los temas son diseñados y desarrollados por terceros." + +#: wp-admin/widgets-form.php:465 +msgid "To activate a widget drag it to a sidebar or click on it. To deactivate a widget and delete its settings, drag it back." +msgstr "Para activar un widget, arrástralo a una barra lateral o haz clic en él. Para desactivar un widget y borrar sus ajustes, arrástralo de vuelta a su lugar de origen." + +#. translators: Hidden accessibility text. %s: The rating. +#: wp-admin/includes/template.php:2787 +msgid "%s rating" +msgstr "valoración %s" + +#. translators: Hidden accessibility text. 1: The rating, 2: The number of +#. ratings. +#: wp-admin/includes/template.php:2783 +msgid "%1$s rating based on %2$s rating" +msgid_plural "%1$s rating based on %2$s ratings" +msgstr[0] "Valoración de %1$s basada en %2$s valoración" +msgstr[1] "Valoración de %1$s basada en %2$s valoraciones" + +#: wp-admin/my-sites.php:46 +msgid "This screen shows an individual user all of their sites in this network, and also allows that user to set a primary site. They can use the links under each site to visit either the front end or the dashboard for that site." +msgstr "Esta pantalla muestra a un usuario individual todos los sitios de esta red, y también permite a ese usuario establecer un sitio principal. Pueden utilizar los enlaces debajo de cada sitio para visitar o la portada o el escritorio de ese sitio." + +#. translators: 1: Error code, 2: Error message. +#: wp-admin/includes/class-wp-automatic-updater.php:1703 +msgid "Error: [%1$s] %2$s" +msgstr "Error: [%1$s] %2$s" + +#. translators: 1: Error code, 2: Error message. +#: wp-admin/includes/class-wp-automatic-updater.php:1700 +msgid "Rollback Error: [%1$s] %2$s" +msgstr "Error de rollback: [%1$s] %2$s" + +#: wp-admin/includes/class-wp-automatic-updater.php:1617 +msgid "The following translations failed to update:" +msgstr "Las siguientes traducciones han fallado al actualizarse:" + +#: wp-admin/includes/class-wp-automatic-updater.php:1616 +msgid "The following themes failed to update:" +msgstr "Los siguientes temas no lograron actualizarse:" + +#: wp-admin/includes/class-wp-automatic-updater.php:1615 +msgid "The following plugins failed to update:" +msgstr "Los siguientes plugins no lograron actualizarse:" + +#: wp-admin/includes/class-wp-automatic-updater.php:1602 +msgid "The following translations were successfully updated:" +msgstr "Las siguientes traducciones se han actualizado correctamente:" + +#: wp-admin/includes/class-wp-automatic-updater.php:1601 +msgid "The following themes were successfully updated:" +msgstr "Los siguientes temas se han actualizado correctamente:" + +#: wp-admin/includes/class-wp-automatic-updater.php:1600 +msgid "The following plugins were successfully updated:" +msgstr "Los siguientes plugins se han actualizado correctamente:" + +#: wp-admin/widgets-form.php:586 +msgid "Add Widget" +msgstr "Añadir widget" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/theme.php:841 wp-admin/themes.php:1063 +msgid "Show next theme" +msgstr "Mostrar el tema siguiente" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/theme.php:835 wp-admin/themes.php:1057 +msgid "Show previous theme" +msgstr "Mostrar tema anterior" + +#: wp-admin/includes/theme.php:897 wp-admin/themes.php:1157 +msgid "Update Available" +msgstr "Actualización disponible" + +#: wp-admin/themes.php:230 +msgid "" +"Are you sure you want to delete this theme?\n" +"\n" +"Click 'Cancel' to go back, 'OK' to confirm the delete." +msgstr "" +"¿Estás seguro de querer borrar este tema?\n" +"\n" +"Haz clic en 'Cancelar' para regresar o en 'Aceptar' para confirmar el borrado." + +#: wp-admin/post.php:82 +msgid "Unable to submit this form, please refresh and try again." +msgstr "No ha sido posible enviar este formulario, por favor, recarga e inténtalo de nuevo." + +#: wp-admin/index.php:92 +msgid "Quick Draft — Allows you to create a new post and save it as a draft. Also displays links to the 3 most recent draft posts you've started." +msgstr "Borrador rápido — Te permite crear una nueva entrada y guardarla como borrador. También muestra enlaces a las 3 entradas en borrador más recientes que hayas empezado." + +#: wp-admin/index.php:89 +msgid "Activity — Shows the upcoming scheduled posts, recently published posts, and the most recent comments on your posts and allows you to moderate them." +msgstr "Actividad — Muestra las entradas programadas previstas, las entradas recientemente publicadas y los comentarios más recientes a tus entradas y te permite moderarlos." + +#: wp-admin/index.php:63 +msgid "Screen Options — Use the Screen Options tab to choose which Dashboard boxes to show." +msgstr "Opciones de pantalla — Usa la pestaña de Opciones de pantalla para elegir qué cajas mostrar en tu escritorio. " + +#. translators: Hidden accessibility text. +#: wp-admin/includes/dashboard.php:1679 wp-admin/includes/dashboard.php:1695 +msgid "Manage Uploads" +msgstr "Gestionar subidas" + +#: wp-admin/includes/deprecated.php:1389 +msgid "Popular Plugin" +msgstr "Plugin popular" + +#: wp-admin/includes/dashboard.php:1020 +msgid "Tomorrow" +msgstr "Mañana" + +#: wp-admin/includes/dashboard.php:954 +msgid "No activity yet!" +msgstr "¡Todavía no hay actividad!" + +#: wp-admin/includes/dashboard.php:945 +msgid "Recently Published" +msgstr "Publicaciones recientes" + +#: wp-admin/includes/dashboard.php:936 +msgid "Publishing Soon" +msgstr "Próximas publicaciones" + +#: wp-admin/includes/dashboard.php:599 +msgid "What’s on your mind?" +msgstr "¿En qué estás pensando?" + +#. translators: 1: Version number, 2: Theme name. +#: wp-admin/includes/update.php:381 +msgid "WordPress %1$s running %2$s theme." +msgstr "WordPress %1$s está funcionando con el tema %2$s." + +#: wp-admin/includes/dashboard.php:87 +msgid "Quick Draft" +msgstr "Borrador rápido" + +#: wp-admin/includes/dashboard.php:82 +msgid "Activity" +msgstr "Actividad" + +#. translators: %s: Name of plugin / theme / translation. +#: wp-admin/includes/class-wp-automatic-updater.php:1625 +msgid "FAILED: %s" +msgstr "FALLÓ: %s" + +#. translators: %s: Name of plugin / theme / translation. +#: wp-admin/includes/class-wp-automatic-updater.php:1608 +msgid "SUCCESS: %s" +msgstr "CORRECTO: %s" + +#. translators: %s: WordPress version. +#: wp-admin/includes/class-wp-automatic-updater.php:1583 +msgid "FAILED: WordPress failed to update to %s" +msgstr "FALLIDO: WordPress ha fallado al actualizar a %s" + +#. translators: %s: WordPress version. +#: wp-admin/includes/class-wp-automatic-updater.php:1580 +msgid "SUCCESS: WordPress was successfully updated to %s" +msgstr "CORRECTO: WordPress se ha actualizado correctamente a %s" + +#. translators: %s: Network home URL. +#: wp-admin/includes/class-wp-automatic-updater.php:1572 +msgid "WordPress site: %s" +msgstr "Sitio WordPress: %s" + +#. translators: %s: WordPress version. +#: wp-admin/includes/class-wp-automatic-updater.php:1083 +msgid "Your site was running version %s." +msgstr "Tu sitio está ejecutando la versión %s." + +#. translators: 1: Home URL, 2: WordPress version. +#: wp-admin/includes/class-wp-automatic-updater.php:1029 +msgid "Your site at %1$s experienced a critical failure while trying to update WordPress to version %2$s." +msgstr "Tu sitio en %1$s ha experimentado un fallo crítico mientras se trataba de actualizar WordPress a la versión %2$s." + +#. translators: %s: WordPress latest version. +#: wp-admin/includes/class-wp-automatic-updater.php:995 +msgid "WordPress %s is also now available." +msgstr "WordPress %s también está ahora disponible." + +#: wp-admin/includes/update-core.php:1305 +#: wp-admin/includes/update-core.php:1341 +msgid "The update cannot be installed because your site is unable to copy some files. This is usually due to inconsistent file permissions." +msgstr "No ha sido posible instalar la actualización debido a que no se han podido copiar algunos archivos. Normalmente esto es debido a permisos de archivo inconsistentes." + +#: wp-admin/includes/class-language-pack-upgrader.php:114 +#: wp-admin/update-core.php:820 +msgid "Your translations are all up to date." +msgstr "Tus traducciones están actualizadas." + +#: wp-admin/update-core.php:819 wp-admin/update-core.php:827 +msgid "Translations" +msgstr "Traducciones" + +#. translators: %s: Error code. +#: wp-admin/includes/class-wp-automatic-updater.php:1104 +msgid "Error code: %s" +msgstr "Código de error: %s" + +#: wp-admin/includes/class-wp-automatic-updater.php:1085 +msgid "Your hosting company, support forum volunteers, or a friendly developer may be able to use this information to help you:" +msgstr "Tu empresa de alojamiento, los voluntarios del foro o un desarrollador pueden utilizar esta información para ayudarte:" + +#: wp-admin/includes/class-wp-automatic-updater.php:1078 +#: wp-admin/includes/class-wp-automatic-updater.php:1508 +msgid "The WordPress Team" +msgstr "El equipo de WordPress" + +#: wp-admin/includes/class-wp-automatic-updater.php:1074 +msgid "You also have some plugins or themes with updates available. Update them now:" +msgstr "También tienes algunos plugins o temas con actualizaciones disponibles. Actualízalos ahora:" + +#: wp-admin/includes/class-wp-automatic-updater.php:1059 +#: wp-admin/includes/class-wp-automatic-updater.php:1506 +msgid "If you experience any issues or need support, the volunteers in the WordPress.org support forums may be able to help." +msgstr "Si tienes algún problema o necesitas soporte, los voluntarios de los foros de soporte de WordPress.org pueden ayudarte." + +#: wp-admin/includes/class-wp-automatic-updater.php:1065 +#: wp-admin/update-core.php:991 +msgid "Keeping your site updated is important for security. It also makes the internet a safer place for you and your readers." +msgstr "Mantener tu sitio actualizado es importante para la seguridad. También hace que internet sea un lugar más seguro para ti y tus lectores." + +#: wp-admin/includes/class-wp-automatic-updater.php:1044 +msgid "Please check out your site now. It's possible that everything is working. If it says you need to update, you should do so:" +msgstr "Por favor, comprueba tu sitio ahora. Es posible que todo esté funcionando. Si indica que necesitas actualizar, deberías hacerlo:" + +#: wp-admin/includes/class-wp-automatic-updater.php:1042 +msgid "This means your site may be offline or broken. Don't panic; this can be fixed." +msgstr "Esto significa que tu sitio puede estar roto o desconectado. No te asustes, se puede arreglar." + +#. translators: 1: Home URL, 2: WordPress latest version. +#: wp-admin/includes/class-wp-automatic-updater.php:1036 +msgid "Your site at %1$s experienced a critical failure while trying to update to the latest version of WordPress, %2$s." +msgstr "Tu sitio %1$s ha experimentado un fallo crítico mientras se intentaba actualizar a la última versión de WordPress, %2$s." + +#: wp-admin/includes/class-wp-automatic-updater.php:996 +#: wp-admin/includes/class-wp-automatic-updater.php:1021 +msgid "Updating is easy and only takes a few moments:" +msgstr "Actualizar es fácil y solo dura un momento:" + +#. translators: 1: Home URL, 2: WordPress version. +#: wp-admin/includes/class-wp-automatic-updater.php:1006 +msgid "Please update your site at %1$s to WordPress %2$s." +msgstr "Por favor, actualiza tu sitio %1$s a WordPress %2$s." + +#. translators: %s: WordPress version. +#: wp-admin/includes/class-wp-automatic-updater.php:990 +msgid "For more on version %s, see the About WordPress screen:" +msgstr "Para más información sobre la versión %s, revisa la pantalla «Acerca de WordPress»:" + +#: wp-admin/includes/class-wp-automatic-updater.php:984 +msgid "No further action is needed on your part." +msgstr "No es necesaria ninguna acción adicional por tu parte." + +#. translators: 1: Home URL, 2: WordPress version. +#: wp-admin/includes/class-wp-automatic-updater.php:978 +msgid "Howdy! Your site at %1$s has been updated automatically to WordPress %2$s." +msgstr "¡Hola! Tu sitio %1$s se ha actualizado automáticamente a WordPress %2$s." + +#. translators: Site down notification email subject. 1: Site title. +#: wp-admin/includes/class-wp-automatic-updater.php:961 +msgid "[%1$s] URGENT: Your site may be down due to a failed update" +msgstr "[%1$s] URGENTE: Tu sitio puede no estar funcionando debido a un fallo de actualización" + +#. translators: Update available notification email subject. 1: Site title, 2: +#. WordPress version. +#: wp-admin/includes/class-wp-automatic-updater.php:956 +msgid "[%1$s] WordPress %2$s is available. Please update!" +msgstr "[%1$s] WordPress %2$s está disponible. Por favor, ¡actualiza!" + +#. translators: Site updated notification email subject. 1: Site title, 2: +#. WordPress version. +#: wp-admin/includes/class-wp-automatic-updater.php:950 +msgid "[%1$s] Your site has updated to WordPress %2$s" +msgstr "[%1$s] Tu sitio se ha actualizado a WordPress %2$s" + +#. translators: %s: Project name (plugin, theme, or WordPress). +#: wp-admin/includes/class-wp-automatic-updater.php:438 +msgid "Translations for %s" +msgstr "Traducciones de %s" + +#. translators: 1: Project name (plugin, theme, or WordPress), 2: Language. +#: wp-admin/includes/class-language-pack-upgrader-skin.php:60 +#: wp-admin/includes/class-wp-automatic-updater.php:440 +msgid "Updating translations for %1$s (%2$s)…" +msgstr "Actualizando las traducciones de %1$s (%2$s)…" + +#: wp-admin/includes/class-language-pack-upgrader-skin.php:37 +#: wp-admin/update-core.php:831 wp-admin/update-core.php:1283 +msgid "Update Translations" +msgstr "Actualizar las traducciones" + +#: wp-admin/includes/class-wp-site-health.php:2858 +msgid "Background updates" +msgstr "Actualizaciones en segundo plano" + +#: wp-admin/includes/update-core.php:1408 +msgid "There is not enough free disk space to complete the update." +msgstr "No hay suficiente espacio en disco para completar la actualización." + +#. translators: %s: Plugin name. +#: wp-admin/includes/class-wp-automatic-updater.php:433 +msgid "Updating plugin: %s" +msgstr "Actualizando el plugin: %s" + +#. translators: %s: Theme name. +#: wp-admin/includes/class-wp-automatic-updater.php:421 +msgid "Updating theme: %s" +msgstr "Actualizando el tema: %s" + +#: wp-admin/includes/class-language-pack-upgrader.php:120 +msgid "Translation updated successfully." +msgstr "Traducción actualizada correctamente." + +#: wp-admin/includes/class-language-pack-upgrader.php:119 +msgid "Translation update failed." +msgstr "La actualización de la traducción ha fallado." + +#: wp-admin/includes/class-language-pack-upgrader.php:113 +msgid "Some of your translations need updating. Sit tight for a few more seconds while they are updated as well." +msgstr "Algunas de tus traducciones necesitan actualizarse. Espera unos segundos más mientras se actualizan también." + +#: wp-admin/user-new.php:518 +msgid "Create a brand new user and add them to this site." +msgstr "Crea un nuevo usuario y añádelo a este sitio." + +#. translators: %s: Link to documentation on child themes. +#: wp-admin/theme-editor.php:43 +msgid "Upgrading to a newer version of the same theme will override changes made here. To avoid this, consider creating a child theme instead." +msgstr "Actualizar a una versión más nueva del mismo tema sobrescribirá los cambios que hayas hecho. Para evitar esto, prueba a crear un tema hijo." + +#: wp-admin/options-media.php:56 +msgid "The sizes listed below determine the maximum dimensions in pixels to use when adding an image to the Media Library." +msgstr "Los tamaños de la siguiente lista determinan las dimensiones máximas en píxeles a usar al añadir una imagen a la biblioteca de medios." + +#: wp-admin/options-discussion.php:176 +msgid "Comment must be manually approved" +msgstr "El comentario debe aprobarse manualmente" + +#: wp-admin/nav-menus.php:743 +msgid "Clicking the arrow to the right of any menu item in the editor will reveal a standard group of settings. Additional settings such as link target, CSS classes, link relationships, and link descriptions can be enabled and disabled via the Screen Options tab." +msgstr "Si haces clic en la flecha de la derecha de cualquier elemento de menú del editor, mostrará un grupo estándar de ajustes. Ajustes adicionales, como destino del enlace, clases CSS, relaciones del enlace y descripciones del enlace, puedes activarlas y desactivarlas en la pestaña de Ajustes de pantalla." + +#. translators: 1: URL to Widgets screen, 2 and 3: The names of the default +#. themes. +#: wp-admin/nav-menus.php:712 +msgid "Menus can be displayed in locations defined by your theme, even used in sidebars by adding a “Navigation Menu” widget on the Widgets screen. If your theme does not support the navigation menus feature (the default themes, %2$s and %3$s, do), you can learn about adding this support by following the documentation link to the side." +msgstr "Los menús se pueden mostrar en las ubicaciones definidas por tu tema o incluso usarse en las barras laterales añadiendo un widget de «Menú de navegación» en la pantalla de widgets. Si tu tema no es compatible con la característica de menús de navegación (los temas por defecto %2$s y %3$s sí que lo son), puedes aprender a añadir esta compatibilidad siguiendo el enlace de la documantación del lateral." + +#. translators: %s: URL to Widgets screen. +#: wp-admin/nav-menus.php:695 +msgid "Your theme does not natively support menus, but you can use them in sidebars by adding a “Navigation Menu” widget on the Widgets screen." +msgstr "Tu tema no es compatible con menús de manera nativa pero puedes usarlos en las barras laterales añadiendo un widget de «Menú personalizado» en la pantalla de widgets." + +#: wp-admin/install.php:435 +msgid "Sorry, that is not a valid email address. Email addresses look like username@example.com." +msgstr "Lo siento, esa no es una dirección de correo electrónico válida. Las direcciones de correo electrónico deben parecerse a usuario@ejemplo.com." + +#: wp-admin/install.php:431 +msgid "You must provide an email address." +msgstr "Debes facilitar una dirección de correo electrónico" + +#: wp-admin/install.php:427 +msgid "Your passwords do not match. Please try again." +msgstr "Tus contraseñas no coinciden. Inténtalo de nuevo." + +#: wp-admin/install.php:423 +msgid "The username you provided has invalid characters." +msgstr "El nombre de usuario que has facilitado tiene caracteres no válidos." + +#: wp-admin/install.php:420 +msgid "Please provide a valid username." +msgstr "Por favor, facilita un nombre de usuario válido." + +#: wp-admin/includes/update-core.php:1322 +msgid "Copying the required files…" +msgstr "Copiando los archivos necesarios…" + +#: wp-admin/includes/update-core.php:1229 +msgid "Preparing to install the latest version…" +msgstr "Preparando la instalación de la última versión…" + +#: wp-admin/includes/file.php:2603 +msgid "This password will not be stored on the server." +msgstr "Esta contraseña no se almacenará en el servidor." + +#. translators: 1: File checksum, 2: Expected checksum value. +#: wp-admin/includes/file.php:1387 +msgid "The checksum of the file (%1$s) does not match the expected checksum value (%2$s)." +msgstr "La suma de verificación del archivo (%1$s) no coincide con el valor de suma de verificación esperado (%2$s)." + +#. translators: %s: Version number. +#. translators: %s: WordPress version. +#: wp-admin/about.php:47 wp-admin/contribute.php:18 wp-admin/credits.php:19 +#: wp-admin/freedoms.php:24 +#: wp-admin/includes/class-wp-automatic-updater.php:409 wp-admin/privacy.php:18 +msgid "WordPress %s" +msgstr "WordPress %s" + +#. translators: %s: WordPress version. +#: wp-admin/includes/class-wp-automatic-updater.php:407 +msgid "Updating to WordPress %s" +msgstr "Actualizando a WordPress %s" + +#: wp-admin/includes/class-core-upgrader.php:42 +msgid "Due to an error during updating, WordPress has been restored to your previous version." +msgstr "Debido a un error durante la actualización WordPress ha sido restaurado a tu versión anterior." + +#. translators: 1: Folder to locate, 2: Folder to start searching from. +#: wp-admin/includes/class-wp-filesystem-base.php:268 +msgid "Looking for %1$s in %2$s" +msgstr "Buscando %1$s en %2$s" + +#. translators: %s: Number of pages. +#: wp-admin/edit.php:381 +msgid "%s page restored from the Trash." +msgid_plural "%s pages restored from the Trash." +msgstr[0] "%s página restaurada de la papelera." +msgstr[1] "%s páginas restauradas de la papelera." + +#. translators: %s: Number of pages. +#: wp-admin/edit.php:379 +msgid "%s page moved to the Trash." +msgid_plural "%s pages moved to the Trash." +msgstr[0] "%s página movida a la papelera." +msgstr[1] "%s páginas movidas a la papelera." + +#. translators: %s: Number of pages. +#: wp-admin/edit.php:377 +msgid "%s page permanently deleted." +msgid_plural "%s pages permanently deleted." +msgstr[0] "%s página borrada permanentemente." +msgstr[1] "%s páginas borradas permanentemente." + +#. translators: %s: Number of pages. +#: wp-admin/edit.php:375 +msgid "%s page not updated, somebody is editing it." +msgid_plural "%s pages not updated, somebody is editing them." +msgstr[0] "%s página no actualizada, alguien la está editando." +msgstr[1] "%s páginas no actualizadas, alguien las está editando." + +#. translators: %s: Number of pages. +#: wp-admin/edit.php:372 +msgid "%s page updated." +msgid_plural "%s pages updated." +msgstr[0] "%s página actualizada." +msgstr[1] "%s páginas actualizadas." + +#. translators: %s: Number of posts. +#: wp-admin/edit.php:368 +msgid "%s post restored from the Trash." +msgid_plural "%s posts restored from the Trash." +msgstr[0] "%s entrada restaurada de la papelera." +msgstr[1] "%s entradas restauradas de la papelera." + +#. translators: %s: Number of posts. +#: wp-admin/edit.php:366 +msgid "%s post moved to the Trash." +msgid_plural "%s posts moved to the Trash." +msgstr[0] "%s entrada movida a la papelera." +msgstr[1] "%s entradas movidas a la papelera." + +#. translators: %s: Number of posts. +#: wp-admin/edit.php:364 +msgid "%s post permanently deleted." +msgid_plural "%s posts permanently deleted." +msgstr[0] "%s entrada borrada permanentemente." +msgstr[1] "%s entradas borradas permanentemente." + +#. translators: %s: Number of posts. +#: wp-admin/edit.php:362 +msgid "%s post not updated, somebody is editing it." +msgid_plural "%s posts not updated, somebody is editing them." +msgstr[0] "%s entrada no actualizada, alguien la está editando." +msgstr[1] "%s entradas no actualizadas, alguien las está editando." + +#: wp-admin/includes/edit-tag-messages.php:39 +msgid "Tags deleted." +msgstr "Etiquetas borradas." + +#: wp-admin/includes/edit-tag-messages.php:38 +msgid "Tag not updated." +msgstr "Etiqueta no actualizada." + +#: wp-admin/includes/edit-tag-messages.php:37 +msgid "Tag not added." +msgstr "Etiqueta no añadida." + +#: wp-admin/includes/edit-tag-messages.php:36 +msgid "Tag updated." +msgstr "Etiqueta actualizada." + +#: wp-admin/includes/edit-tag-messages.php:35 +msgid "Tag deleted." +msgstr "Etiqueta borrada." + +#: wp-admin/includes/edit-tag-messages.php:34 +msgid "Tag added." +msgstr "Etiqueta añadida." + +#: wp-admin/includes/edit-tag-messages.php:29 +msgid "Categories deleted." +msgstr "Categorías borradas." + +#: wp-admin/includes/edit-tag-messages.php:28 +msgid "Category not updated." +msgstr "Categoría no actualizada." + +#: wp-admin/includes/edit-tag-messages.php:27 +msgid "Category not added." +msgstr "Categoría no añadida." + +#: wp-admin/includes/edit-tag-messages.php:26 +msgid "Category updated." +msgstr "Categoría actualizada." + +#: wp-admin/includes/edit-tag-messages.php:25 +msgid "Category deleted." +msgstr "Categoría borrada." + +#: wp-admin/includes/edit-tag-messages.php:24 +msgid "Category added." +msgstr "Categoría añadida." + +#: wp-admin/revision.php:146 +msgid "Compare two different revisions by selecting the “Compare any two revisions” box to the side." +msgstr "Compara dos revisiones seleccionando «Compara dos revisiones cualquiera» en el lateral." + +#: wp-admin/includes/revision.php:396 +msgid "Compare any two revisions" +msgstr "Compara dos revisiones cualquiera" + +#: wp-admin/includes/revision.php:457 +msgid "Restore This Autosave" +msgstr "Restaurar este guardado automático" + +#. translators: %s: User's display name. +#: wp-admin/includes/revision.php:428 +msgid "Current Revision by %s" +msgstr "Revisión actual de %s" + +#. translators: %s: User's display name. +#: wp-admin/includes/revision.php:418 +msgid "Autosave by %s" +msgstr "Guardado automático de %s" + +#: wp-admin/includes/meta-boxes.php:275 +msgctxt "revisions" +msgid "Browse" +msgstr "Explorar" + +#. translators: Post revisions heading. %s: The number of available revisions. +#: wp-admin/includes/meta-boxes.php:273 +msgid "Revisions: %s" +msgstr "Revisiones: %s" + +#. translators: %s: Audio track title. +#: wp-admin/includes/media.php:343 +msgid "\"%s\"." +msgstr "«%s»." + +#. translators: 1: Audio track title, 2: Artist name. +#: wp-admin/includes/media.php:340 +msgid "\"%1$s\" by %2$s." +msgstr "«%1$s» en %2$s." + +#. translators: 1: Audio track title, 2: Album title. +#: wp-admin/includes/media.php:337 +msgid "\"%1$s\" from %2$s." +msgstr "«%1$s» de %2$s." + +#. translators: 1: Audio track title, 2: Album title, 3: Artist name. +#: wp-admin/includes/media.php:334 +msgid "\"%1$s\" from %2$s by %3$s." +msgstr "«%1$s» en %2$s por %3$s." + +#. translators: %s: User's display name. +#: wp-admin/includes/revision.php:438 +msgid "Revision by %s" +msgstr "Revisión de %s" + +#: wp-admin/edit-form-advanced.php:461 +msgid "Connection lost. Saving has been disabled until you are reconnected." +msgstr "Conexión perdida. El guardado ha sido desactivado hasta que vuelvas a conectar." + +#: wp-admin/install.php:159 wp-admin/user-new.php:614 +msgid "Repeat Password" +msgstr "Repetir contraseña" + +#: wp-admin/user-edit.php:710 +msgid "Repeat New Password" +msgstr "Confirmar la nueva contraseña " + +#: wp-admin/includes/nav-menu.php:1269 +msgid "Add menu items from the column on the left." +msgstr "Añade elementos de menú desde la columna de la izquierda." + +#. translators: %s: https://wordpress.org/plugins +#: wp-admin/includes/class-wp-plugin-install-list-table.php:345 +msgid "Plugins extend and expand the functionality of WordPress. You may install plugins from the WordPress Plugin Directory right on this page, or upload a plugin in .zip format by clicking the button above." +msgstr "Los plugins amplían y expanden la funcionalidad de WordPress. Puedes instalar plugins desde el directorio de plugins de WordPress desde esta página, o subir un plugin en formato .zip haciendo clic en el botón de arriba." + +#. Plugin URI of the plugin +#: hello.php +msgid "http://wordpress.org/plugins/hello-dolly/" +msgstr "https://es.wordpress.org/plugins/hello-dolly/" + +#: wp-admin/includes/class-theme-upgrader.php:80 +msgid "The theme contains no files." +msgstr "El tema no contiene archivos." + +#: wp-admin/includes/class-wp-upgrader.php:202 +msgid "The package contains no files." +msgstr "El paquete no contiene archivos." + +#: wp-admin/revision.php:145 +msgid "To navigate between revisions, drag the slider handle left or right or use the Previous or Next buttons." +msgstr "Para navegar entre revisiones arrastra el deslizador a la izquierda o la derecha o usa los botones Anterior o Siguiente." + +#: wp-admin/customize.php:155 wp-admin/includes/class-wp-debug-data.php:835 +#: wp-admin/includes/dashboard.php:1168 +msgid "Loading…" +msgstr "Cargando…" + +#: wp-admin/post.php:308 +msgid "This item has already been deleted." +msgstr "Este elemento ya ha sido borrado." + +#: wp-admin/post.php:279 +msgid "The item you are trying to restore from the Trash no longer exists." +msgstr "El elemento que intentas restaurar de la papelera ya no existe." + +#: wp-admin/post.php:242 +msgid "The item you are trying to move to the Trash no longer exists." +msgstr "El artículo que estás tratando de mover a la papelera ya no existe." + +#: wp-admin/nav-menus.php:1118 +msgid "Drag the items into the order you prefer. Click the arrow on the right of the item to reveal additional configuration options." +msgstr "Coloca los elementos en el orden que prefieras. Haz clic en la flecha que hay a la derecha del elemento para mostrar opciones adicionales de configuración." + +#: wp-admin/nav-menus.php:731 +msgid "If you have not yet created any menus, click the ’create a new menu’ link to get started" +msgstr "Si aún no has creado ningún menú, haz clic en el enlace de «crear un nuevo menú» para empezar" + +#: wp-admin/revision.php:147 +msgid "To restore a revision, click Restore This Revision." +msgstr "Para restaurar una revisión, haz clic en Restaurar esta revisión." + +#: wp-admin/revision.php:144 +msgid "From this screen you can review, compare, and restore revisions:" +msgstr "En esta pantalla podrás revisar, comparar y restaurar revisiones:" + +#: wp-admin/revision.php:143 +msgid "Revisions are saved copies of your post or page, which are periodically created as you update your content. The red text on the left shows the content that was removed. The green text on the right shows the content that was added." +msgstr "Las revisiones son copias guardadas de tus entradas o páginas que se crean periódicamente conforme vas creando tu contenido. El texto en rojo de la derecha muestra el contenido que se ha eliminado. El texto en verde de la derecha, el contenido que se ha añadido." + +#: wp-admin/revision.php:142 +msgid "This screen is used for managing your content revisions." +msgstr "Esta pantalla se utiliza para gestionar las revisiones de tu contenido." + +#: wp-admin/includes/revision.php:407 +msgctxt "Followed by post revision info" +msgid "To:" +msgstr "Para:" + +#: wp-admin/includes/revision.php:377 +msgctxt "Button label for a next revision" +msgid "Next" +msgstr "Siguiente" + +#: wp-admin/includes/revision.php:373 +msgctxt "Button label for a previous revision" +msgid "Previous" +msgstr "Anterior" + +#: wp-admin/includes/revision.php:405 +msgctxt "Followed by post revision info" +msgid "From:" +msgstr "Desde:" + +#: wp-admin/nav-menus.php:918 +msgctxt "menu" +msgid "Use new menu" +msgstr "Utilizar menú nuevo" + +#: wp-admin/nav-menus.php:897 +msgctxt "menu" +msgid "Edit" +msgstr "Editar" + +#: wp-admin/nav-menus.php:864 +msgid "Select a Menu" +msgstr "Elige un menú" + +#: wp-admin/nav-menus.php:855 +msgid "Assigned Menu" +msgstr "Menú asignado" + +#: wp-admin/nav-menus.php:854 +msgid "Theme Location" +msgstr "Ubicación en el tema" + +#: wp-admin/nav-menus.php:823 +msgid "Manage Locations" +msgstr "Gestionar ubicaciones" + +#: wp-admin/nav-menus.php:812 +msgid "Edit Menus" +msgstr "Editar menús" + +#: wp-admin/nav-menus.php:760 +msgid "To add a new menu instead of assigning an existing one, click the ’Use new menu’ link. Your new menu will be automatically assigned to that theme location" +msgstr "Para añadir un nuevo menú en vez de asignar a uno existente haz clic en el enlace Usar menú nuevo. Tu nuevo menú se asignará automáticamente a esa ubicación del tema" + +#: wp-admin/nav-menus.php:759 +msgid "To edit a menu currently assigned to a theme location, click the adjacent ’Edit’ link" +msgstr "Para editar un menú actualmente asignado a una ubicación del tema haz clic en el el enlace Editar a su lado" + +#: wp-admin/nav-menus.php:758 +msgid "To assign menus to one or more theme locations, select a menu from each location’s dropdown. When you are finished, click Save Changes" +msgstr "Para asignar menús a una o más ubicaciones del tema, selecciona un menú desde el desplegable de cada ubicación. Cuando hayas terminado, haz clic en «Guardar los cambios»" + +#: wp-admin/nav-menus.php:757 +msgid "This screen is used for globally assigning menus to locations defined by your theme." +msgstr "Esta pantalla se usa para asignar menús globalmente a ubicaciones definidas en tu tema." + +#: wp-admin/nav-menus.php:752 +msgid "Editing Menus" +msgstr "Editando menús" + +#: wp-admin/nav-menus.php:747 +msgid "Delete a menu item by expanding it and clicking the Remove link" +msgstr "Borra un elemento de menú desplegándolo y haciendo clic en el enlace «Eliminar»" + +#: wp-admin/nav-menus.php:746 +msgid "To reorganize menu items, drag and drop items with your mouse or use your keyboard. Drag or move a menu item a little to the right to make it a submenu" +msgstr "Para reorganizar elementos del menú, arrastra y suelta elementos con el ratón o usa el teclado. Arrastrando o moviendo un elemento de menú un poco a la derecha, lo convierte en submenú." + +#: wp-admin/nav-menus.php:744 +msgid "Add one or several items at once by selecting the checkbox next to each item and clicking Add to Menu" +msgstr "Añade uno o varios elementos a la vez eligiendo la casilla de al lado de cada elemento y haciendo clic en Añadir al menú" + +#: wp-admin/nav-menus.php:742 +msgid "Each navigation menu may contain a mix of links to pages, categories, custom URLs or other content types. Menu links are added by selecting items from the expanding boxes in the left-hand column below." +msgstr "Cada menú personalizado puede contener una mezcla de enlaces a páginas, categorías, URLs personalizadas u otros tipos de contenidos. Los enlaces del menú se añaden eligiendo elementos de las cajas desplegables de la columna izquierda." + +#: wp-admin/nav-menus.php:737 +msgid "Menu Management" +msgstr "Gestión de menús" + +#: wp-admin/nav-menus.php:732 +msgid "You can assign theme locations to individual menus by selecting the desired settings at the bottom of the menu editor. To assign menus to all theme locations at once, visit the Manage Locations tab at the top of the screen." +msgstr "Puedes asignar ubicaciones del tema a menús individuales eligiendo los ajustes que desees al fondo del editor de menús. Para asignar menús a todas las ubicaciones del tema, visita la pestaña de «Gestionar ubicaciones» en la parte superior de la pantalla." + +#: wp-admin/nav-menus.php:730 +msgid "To edit an existing menu, choose a menu from the dropdown and click Select" +msgstr "Para editar un menú existente, elige un menú del desplegable y haz clic en «Seleccionar»" + +#: wp-admin/nav-menus.php:729 +msgid "The menu management box at the top of the screen is used to control which menu is opened in the editor below." +msgstr "La pestaña de gestión de menús de la parte superior de la pantalla se usa para controlar qué menú se abre en el editor de abajo." + +#: wp-admin/nav-menus.php:719 +msgid "Add, organize, and modify individual menu items" +msgstr "Añadir, organizar y modificar elementos individuales de los menús" + +#: wp-admin/nav-menus.php:718 +msgid "Create, edit, and delete menus" +msgstr "Crear, editar y borrar menús" + +#: wp-admin/nav-menus.php:717 wp-admin/themes.php:133 +msgid "From this screen you can:" +msgstr "En esta pantalla puedes:" + +#: wp-admin/nav-menus.php:709 +msgid "This screen is used for managing your navigation menus." +msgstr "Esta pantalla sirve para gestionar tus menús de navegación." + +#: wp-admin/nav-menus.php:535 +msgid "Menu locations updated." +msgstr "Ubicaciones de menú actualizadas." + +#: wp-admin/includes/post.php:1929 +msgid "Your latest changes were saved as a revision." +msgstr "Tu últimos cambios se guardaron como una revisión." + +#: wp-admin/includes/media.php:3468 +msgid "Audio Codec:" +msgstr "Códec de audio:" + +#: wp-admin/includes/media.php:3467 +msgid "Audio Format:" +msgstr "Formato de audio:" + +#. translators: Audio file genre information. %s: Audio genre name. +#: wp-admin/includes/media.php:387 +msgid "Genre: %s." +msgstr "Género: %s." + +#. translators: Audio file track information. 1: Audio track number, 2: Total +#. audio tracks. +#: wp-admin/includes/media.php:371 +msgid "Track %1$s of %2$s." +msgstr "Pista %1$s de %2$s." + +#. translators: Audio file track information. %d: Year of audio track release. +#: wp-admin/includes/media.php:361 +msgid "Released: %d." +msgstr "Lanzamiento: %d." + +#. translators: 1: Audio album title, 2: Artist name. +#: wp-admin/includes/media.php:349 +msgid "%1$s by %2$s." +msgstr "%1$s por %2$s." + +#: wp-admin/includes/revision.php:252 +msgctxt "revision date short format" +msgid "j M Y @ H:i" +msgstr "j M Y @ H:i" + +#: wp-admin/includes/revision.php:459 +msgid "Restore This Revision" +msgstr "Restaurar esta revisión" + +#. translators: %s: Capability name. +#: wp-admin/user-edit.php:948 +msgid "Denied: %s" +msgstr "Denegado: %s" + +#: wp-admin/user-edit.php:934 +msgid "Capabilities" +msgstr "Capacidades" + +#: wp-admin/nav-menus.php:1173 wp-admin/network/settings.php:507 +msgid "Menu Settings" +msgstr "Ajustes del menú" + +#: wp-admin/nav-menus.php:1075 +msgid "Menu structure" +msgstr "Estructura del menú" + +#: wp-admin/includes/class-walker-nav-menu-edit.php:289 +msgid "To the top" +msgstr "A la parte superior" + +#: wp-admin/includes/class-walker-nav-menu-edit.php:286 +msgid "Down one" +msgstr "Uno hacia abajo" + +#: wp-admin/includes/class-walker-nav-menu-edit.php:285 +msgid "Up one" +msgstr "Uno hacia arriba" + +#: wp-admin/includes/class-walker-nav-menu-edit.php:284 +msgid "Move" +msgstr "Mover" + +#. translators: 1: Post creation date, 2: Post creation time. +#: wp-admin/includes/ajax-actions.php:1641 +msgid "Draft created on %1$s at %2$s" +msgstr "Borrador creado el %1$s a las %2$s" + +#. translators: %s: User's display name. +#: wp-admin/post.php:257 +msgid "You cannot move this item to the Trash. %s is currently editing." +msgstr "No puedes mover este elemento a la papelera. %s lo está editando en este momento." + +#. translators: %s: User's display name. +#: wp-admin/includes/misc.php:1205 +msgid "%s has taken over and is currently editing." +msgstr "%s ha tomado la posesión y está editando en este momento." + +#: wp-admin/nav-menus.php:980 +msgid "Select a menu to edit:" +msgstr "Elige el menú que quieras editar:" + +#. translators: %s: URL to Upgrade Network screen. +#: wp-admin/includes/ms.php:699 +msgid "Thank you for Updating! Please visit the Upgrade Network page to update all your sites." +msgstr "¡Gracias por actualizar! Visita la página de Actualizar red para actualizar todos tus sitios." + +#: wp-admin/setup-config.php:509 +msgid "All right, sparky! You’ve made it through this part of the installation. WordPress can now communicate with your database. If you are ready, time now to…" +msgstr "¡Muy bien! Ya has terminado esta parte de la instalación. Ahora WordPress puede comunicarse con tu base de datos. Si estás listo, es el momento de…" + +#: wp-admin/includes/class-wp-debug-data.php:1639 +msgid "Client version" +msgstr "Versión del cliente" + +#: wp-admin/nav-menus.php:1189 +msgid "Auto add pages" +msgstr "Añadir páginas automáticamente" + +#: wp-admin/nav-menus.php:1143 +msgid "Give your menu a name, then click Create Menu." +msgstr "Dale un nombre a tu menú, luego haz clic en Crear menú." + +#: wp-admin/nav-menus.php:1116 +msgid "Edit your default menu by adding or removing items. Drag the items into the order you prefer. Click Create Menu to save your changes." +msgstr "Edita tu menú por defecto añadiendo o eliminando elementos. Coloca los elementos en el orden que prefieras. Haz clic en «Crear menú» para guardar tus cambios." + +#: wp-admin/nav-menus.php:1086 +msgid "Menu 1" +msgstr "Menú 1" + +#: wp-admin/nav-menus.php:358 +msgid "Selected menus have been successfully deleted." +msgstr "Los menús seleccionados se han eliminado correctamente." + +#: wp-admin/theme-editor.php:32 +msgid "For PHP files, you can use the documentation dropdown to select from functions recognized in that file. Look Up takes you to a web page with reference material about that particular function." +msgstr "Para archivos PHP, puedes usar el desplegable de documentación para seleccionar entre las funciones reconocidas en ese archivo. La búsqueda te lleva a una página web con material de referencia sobre esa función en particular." + +#: wp-admin/plugin-editor.php:312 wp-admin/theme-editor.php:372 +msgid "Look Up" +msgstr "Buscar" + +#: wp-admin/plugin-editor.php:143 +msgid "The documentation menu below the editor lists the PHP functions recognized in the plugin file. Clicking Look Up takes you to a web page about that particular function." +msgstr "El menú de documentación, debajo del editor, lista las funciones PHP reconocidas en el archivo del plugin. Al hacer clic en la búsqueda, te lleva a una página web sobre esa función particular." + +#. translators: %s: User's display name. +#: wp-admin/includes/class-wp-posts-list-table.php:1125 +#: wp-admin/includes/misc.php:1152 +msgid "%s is currently editing" +msgstr "%s está editando en este momento" + +#: wp-admin/edit-form-advanced.php:354 +msgid "You can upload and insert media (images, audio, documents, etc.) by clicking the Add Media button. You can select from the images and files already uploaded to the Media Library, or upload new media to add to your page or post. To create an image gallery, select the images to add and click the “Create a new gallery” button." +msgstr "Puedes subir e insertar archivos multimedia (imágenes, audios, documentos, etc.) con solo hacer clic en el botón «Añadir medio». Puedes elegir entre las imágenes ya subidas a la biblioteca multimedia o subir nuevos archivos. Para crear una galería de imágenes, solo tienes que seleccionar algunas y hacer clic en el botón «Crear nueva galería»" + +#: wp-admin/includes/image-edit.php:83 +msgid "Image rotation is not supported by your web host." +msgstr "Tu alojamiento web no es compatible con la rotación de imágenes." + +#. translators: %s: A link to install the Link Manager plugin. +#: wp-admin/includes/bookmark.php:356 +msgid "If you are looking to use the link manager, please install the Link Manager plugin." +msgstr "Si quieres usar el gestor de enlaces, por favor, instala el plugin Link Manager." + +#: wp-admin/widgets-form.php:65 +msgid "When changing themes, there is often some variation in the number and setup of widget areas/sidebars and sometimes these conflicts make the transition a bit less smooth. If you changed themes and seem to be missing widgets, scroll down on this screen to the Inactive Widgets area, where all of your widgets and their settings will have been saved." +msgstr "Al cambiar de tema, a menudo hay algunos cambios en el número y configuración de las áreas y barras laterales de los widgets y, a veces, estos conflictos hacen que el cambio sea un poco menos fácil. Si has cambiado de tema y parece que se hubiesen perdido widgets, ve al final de esta página al área de Widgets inactivos, donde se guardan todos tus widgets inactivos, con sus ajustes." + +#: wp-admin/edit-tags.php:289 +msgid "Parent — Categories, unlike tags, can have a hierarchy. You might have a Jazz category, and under that have child categories for Bebop and Big Band. Totally optional. To create a subcategory, just choose another category from the Parent dropdown." +msgstr "Superior — Las categorías, al contrario que las etiquetas, pueden tener jerarquía. Puedes tener una categoría Jazz y, bajo esa, tener categorías hijas para Bebop y Big Band. Es totalmente opcional. Para crear una subcategoría, primero elige otra categoría del desplegable denominado Superior." + +#: wp-admin/edit-form-advanced.php:367 +msgid "Several boxes on this screen contain settings for how your content will be published, including:" +msgstr "Muchos apartados en esta pantalla contienen configuraciones para cómo se publicará tu contenido, incluyendo:" + +#: wp-admin/edit-form-advanced.php:360 +msgid "Inserting Media" +msgstr "Insertando medios" + +#: wp-admin/edit-form-advanced.php:275 +msgid "The title field and the big Post Editing Area are fixed in place, but you can reposition all the other boxes using drag and drop. You can also minimize or expand them by clicking the title bar of each box. Use the Screen Options tab to unhide more boxes (Excerpt, Send Trackbacks, Custom Fields, Discussion, Slug, Author) or to choose a 1- or 2-column layout for this screen." +msgstr "El campo de título y el área de edición de la entrada son fijos, pero puedes recolocar el resto de cajas arrastrando y soltando. También puedes minimizarlas o ampliarlas haciendo clic en la barra de título de cada caja. Usa la pestaña de «Opciones de pantalla» para desvelar más cajas (extracto, enviar trackbacks, campos personalizados, comentarios, slug, autor) o elige una estructura a 1 o 2 columnas para esta pantalla." + +#: wp-admin/includes/class-custom-image-header.php:139 +msgid "Do not forget to click “Save Changes” when you are done!" +msgstr "¡No olvides hacer clic en «Guardar los cambios» cuando termines!" + +#: wp-admin/includes/class-custom-background.php:102 +msgid "To use a background image, simply upload it or choose an image that has already been uploaded to your Media Library by clicking the “Choose Image” button. You can display a single instance of your image, or tile it to fill the screen. You can have your background fixed in place, so your site content moves on top of it, or you can have it scroll with your site." +msgstr "Para usar una imagen de fondo, simplemente súbela o selecciona una imagen que ya esté en la biblioteca multimedia apretando el botón «Selecciona una imagen». Puedes mostrar toda la imagen de una vez o recortarla para que se ajuste a tu pantalla. Puedes tener la imagen de fondo fija, es decir, que el contenido de tu sitio se mueva por encima de ella, o puedes hacer que se desplace con tu sitio." + +#: wp-admin/async-upload.php:68 +msgctxt "media item" +msgid "Edit" +msgstr "Editar" + +#. translators: %s: Default text color. +#: wp-admin/includes/class-custom-image-header.php:795 +msgctxt "color" +msgid "Default: %s" +msgstr "Por defecto: %s" + +#: wp-admin/includes/class-wp-media-list-table.php:368 +#: wp-admin/includes/class-wp-media-list-table.php:402 +msgctxt "column name" +msgid "Uploaded to" +msgstr "Subido a" + +#: wp-admin/includes/ajax-actions.php:2625 +#: wp-admin/includes/class-custom-background.php:524 +#: wp-admin/includes/class-custom-image-header.php:980 +msgid "The uploaded file is not a valid image. Please try again." +msgstr "El archivo subido no es una imagen válida. Inténtalo de nuevo." + +#: wp-admin/includes/class-custom-image-header.php:683 +msgid "Choose a Custom Header" +msgstr "Elige una cabecera personalizada" + +#: wp-admin/includes/class-custom-background.php:362 +msgid "Choose a Background Image" +msgstr "Elige una imagen de fondo" + +#: wp-admin/includes/class-custom-image-header.php:138 +msgid "In the Header Text section of this page, you can choose whether to display this text or hide it. You can also choose a color for the text by clicking the Select Color button and either typing in a legitimate HTML hex value, e.g. “#ff0000” for red, or by choosing a color using the color picker." +msgstr "En la sección del texto de la cabecera de esta página puedes elegir si mostrarlo u ocultarlo. También puedes elegir el color del texto haciendo clic en el botón de selección del color o escribiendo un valor hexadecimal HTML válido. Por ejemplo «#ff0000» para rojo, o utilizando el selector de color." + +#: wp-admin/includes/class-custom-background.php:103 +msgid "You can also choose a background color by clicking the Select Color button and either typing in a legitimate HTML hex value, e.g. “#ff0000” for red, or by choosing a color using the color picker." +msgstr "Puedes elegir un color de fondo haciendo clic en el botón de selección del color o escribiendo un valor hexadecimal HTML válido. Por ejemplo «#ff0000» para rojo o utilizando el selector de color." + +#: wp-admin/edit-comments.php:221 +msgid "In the In response to column, there are three elements. The text is the name of the post that inspired the comment, and links to the post editor for that entry. The View Post link leads to that post on your live site. The small bubble with the number in it shows the number of approved comments that post has received. If there are pending comments, a red notification circle with the number of pending comments is displayed. Clicking the notification circle will filter the comments screen to show only pending comments on that post." +msgstr "En la columna En respuesta a, hay tres elementos. El texto es el nombre de la entrada que ha inspirado el comentario y los enlaces al editor para esa entrada. El enlace «Ver la entrada» te lleva a esa entrada en tu sitio. La pequeña burbuja con números muestra el número de comentarios aprobados que ha recibido esa entrada. Si hay comentarios pendientes, se muestra un círculo rojo de aviso con el número de comentarios pendientes. Haciendo clic en el círculo de aviso, se filtrará la pantalla de comentarios para mostrar solo los comentarios de esa entrada." + +#. translators: 1: User ID, 2: User login. +#: wp-admin/users.php:385 wp-admin/users.php:552 +msgid "ID #%1$s: %2$s" +msgstr "ID #%1$s: %2$s" + +#. translators: 1: User ID, 2: User login. +#: wp-admin/users.php:372 +msgid "ID #%1$s: %2$s The current user will not be deleted." +msgstr "ID #%1$s: %2$s El usuario actual no será eliminado." + +#. translators: Storage space that's been used. 1: Percentage of used space, 2: +#. Total space allowed in megabytes or gigabytes. +#: wp-admin/includes/ms.php:266 +msgid "Used: %1$s%% of %2$s" +msgstr "En uso: %1$s%% de %2$s" + +#: wp-admin/users.php:347 +msgid "Please select an option." +msgstr "Por favor, elige una opción" + +#: wp-admin/setup-config.php:445 +msgid "After you’ve done that, click “Run the installation”." +msgstr "Después de hacer esto, haz clic en «Ejecutar la instalación»." + +#: wp-admin/plugin-install.php:115 +msgid "If you want to install a plugin that you’ve downloaded elsewhere, click the Upload Plugin button above the plugins list. You will be prompted to upload the .zip package, and once uploaded, you can activate the new plugin." +msgstr "Si quieres instalar un plugin que hayas descargado por ahí, haz clic en el enlace Subir de la parte superior izquierda. Se te pedirá que subas el paquete .zip y, una vez subido, podrás activar el nuevo plugin." + +#: wp-admin/plugin-install.php:114 +msgid "You can also browse a user’s favorite plugins, by using the Favorites link above the plugins list and entering their WordPress.org username." +msgstr "También puedes navegar por los plugins favoritos de un usuario usando el enlace «Favoritos» de la parte superior derecha de la pantalla e introduciendo su nombre de usuario en WordPress.org." + +#: wp-admin/plugin-install.php:112 +msgid "If you know what you are looking for, Search is your best bet. The Search screen has options to search the WordPress Plugin Directory for a particular Term, Author, or Tag. You can also search the directory by selecting popular tags. Tags in larger type mean more plugins have been labeled with that tag." +msgstr "Si sabes lo que estás buscando, «Buscar» es tu mejor apuesta. La pantalla de búsqueda tiene opciones para buscar en el directorio de plugins de WordPress.org para un término, autor o etiqueta concretos. También puedes buscar en el directorio seleccionando etiquetas populares. Las etiquetas en un tamaño de letra más grande significan que más plugins han sido etiquetados con esa etiqueta." + +#: wp-admin/install.php:203 wp-admin/options-reading.php:232 +msgid "It is up to search engines to honor this request." +msgstr "Depende de los motores de búsqueda atender esta petición o no." + +#: wp-admin/install.php:194 wp-admin/install.php:202 +#: wp-admin/options-reading.php:210 wp-admin/options-reading.php:231 +msgid "Discourage search engines from indexing this site" +msgstr "Pedir a los motores de búsqueda que no indexen este sitio" + +#: wp-admin/install.php:192 wp-admin/options-reading.php:208 +msgid "Allow search engines to index this site" +msgstr "Permitir a los buscadores indexar este sitio" + +#: wp-admin/install.php:182 wp-admin/options-reading.php:44 +#: wp-admin/options-reading.php:201 +msgid "Search engine visibility" +msgstr "Visibilidad en los motores de búsqueda" + +#. translators: 1: WordPress version, 2: URL to About screen. +#: wp-admin/includes/update-core.php:1710 wp-admin/update-core.php:923 +msgid "Welcome to WordPress %1$s. You will be redirected to the About WordPress screen. If not, click here." +msgstr "Te damos la bienvenida a WordPress %1$s. Se te redirigirá a la pantalla «Acerca de WordPress». Si no es así, haz clic aquí." + +#: wp-admin/includes/plugin-install.php:376 wp-admin/theme-install.php:237 +msgid "Get Favorites" +msgstr "Obtener favoritos" + +#: wp-admin/includes/plugin-install.php:374 wp-admin/theme-install.php:234 +msgid "Your WordPress.org username:" +msgstr "Tu nombre de usuario en WordPress.org" + +#: wp-admin/includes/plugin-install.php:370 +msgid "If you have marked plugins as favorites on WordPress.org, you can browse them here." +msgstr "Si has marcado plugins como favoritos en WordPress.org, podrás verlos aquí." + +#: wp-admin/includes/dashboard.php:2072 +msgid "Welcome to WordPress!" +msgstr "¡Te damos la bienvenida a WordPress!" + +#: wp-admin/includes/dashboard.php:400 +msgid "Search engines discouraged" +msgstr "Motores de búsqueda disuadidos" + +#. translators: 1: Link to documentation on child themes, 2: Name of parent +#. theme. +#: wp-admin/includes/class-wp-themes-list-table.php:287 +msgid "This child theme requires its parent theme, %2$s." +msgstr "Este tema hijo requiere su tema padre, %2$s." + +#: wp-admin/includes/class-wp-plugin-install-list-table.php:114 +msgctxt "Plugin Installer" +msgid "Favorites" +msgstr "Favoritos" + +#: wp-admin/theme-install.php:130 +msgid "To install the theme so you can preview it with your site’s content and customize its theme options, click the \"Install\" button at the top of the left-hand pane. The theme files will be downloaded to your website automatically. When this is complete, the theme is now available for activation, which you can do by clicking the \"Activate\" link, or by navigating to your Manage Themes screen and clicking the \"Live Preview\" link under any installed theme’s thumbnail image." +msgstr "Para instalar el tema, para que puedas previsualizarlo con el contenido de tu sitio y personalizar las opciones del tema, haz clic en el botón «Instalar» en la parte superior izquierda de la ventana. Los archivos del tema se descargarán automáticamente en tu sitio. Cuando se complete, el tema estará listo para su activación haciendo clic en el enlace «Activar» o navegando a la pantalla «Gestionar temas» y haciendo clic en el enlace de «Vista previa» debajo de la miniatura de cada tema instalado. " + +#: wp-admin/includes/widgets.php:264 +msgctxt "widget" +msgid "Add" +msgstr "Añadir" + +#: wp-admin/includes/widgets.php:263 +msgctxt "widget" +msgid "Edit" +msgstr "Editar" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/theme-install.php:125 +msgid "Search by tag" +msgstr "Búsqueda por etiquetas" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/theme-install.php:121 +msgid "Search by author" +msgstr "Búsqueda por autor" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/theme-install.php:117 +#: wp-admin/includes/theme-install.php:134 +msgid "Search by keyword" +msgstr "Búsqueda por palabra clave" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/theme-install.php:104 +msgid "Type of search" +msgstr "Tipo de búsqueda" + +#: wp-admin/includes/class-wp-screen.php:1066 +msgid "Screen Options Tab" +msgstr "Pestaña de opciones de pantalla" + +#: wp-admin/includes/class-wp-screen.php:873 +msgid "Contextual Help Tab" +msgstr "Pestaña de ayuda contextual" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/class-wp-comments-list-table.php:935 +msgid "Select comment" +msgstr "Elegir comentario" + +#. translators: %s: URL to Categories to Tags Converter tool. +#: wp-admin/edit-tags.php:656 +msgid "Tags can be selectively converted to categories using the tag to category converter." +msgstr "Puedes elegir las etiquetas que quieras y convertirlas en categorías utilizando el conversor de etiquetas a categorías." + +#: wp-admin/edit-tags.php:263 +msgid "You can delete Link Categories in the Bulk Action pull-down, but that action does not delete the links within the category. Instead, it moves them to the default Link Category." +msgstr "Puedes borrar Categorías de enlace en el desplegable de Acciones en lote, pero la acción no borra los enlaces dentro de la categoría. En su lugar, los mueve a la Categoría de enlaces por defecto." + +#: wp-admin/edit-form-advanced.php:317 +msgid "Creating a Page is very similar to creating a Post, and the screens can be customized in the same way using drag and drop, the Screen Options tab, and expanding/collapsing boxes as you choose. This screen also has the distraction-free writing space, available in both the Visual and Code modes via the Fullscreen buttons. The Page editor mostly works the same as the Post editor, but there are some Page-specific features in the Page Attributes box." +msgstr "Crear una página es muy parecido a crear una entrada, y puedes personalizar las pantallas de igual modo, arrastrando y soltando, en la pestaña de «Opciones de pantalla», y abriendo/cerrando las cajas como quieras. Esta pantalla también ofrece el espacio de escritura sin distracciones, disponible tanto en los modos visual como de código a través de los botones de pantalla completa. El editor de páginas funciona prácticamente igual que el editor de entradas, pero hay algunas características específicas para páginas en la caja de atributos de página." + +#: wp-admin/includes/class-custom-image-header.php:595 +msgid "You can select an image to be shown at the top of your site by uploading from your computer or choosing from your media library. After selecting an image you will be able to crop it." +msgstr "Puedes elegir una imagen para que se muestre en la parte superior de tu sitio subiéndola desde tu ordenador o eligiéndola de tu biblioteca de medios. Después de elegir una imagen podrás recortarla." + +#: wp-admin/menu-header.php:294 +msgid "Skip to main content" +msgstr "Saltar al contenido principal" + +#: wp-admin/includes/class-custom-image-header.php:120 +msgid "You can set a custom image header for your site. Simply upload the image and crop it, and the new header will go live immediately. Alternatively, you can use an image that has already been uploaded to your Media Library by clicking the “Choose Image” button." +msgstr "Puedes elegir una imagen de cabecera personalizada para tu sitio. Simplemente sube la imagen y recórtala, la nueva cabecera se verá en directo inmediatamente. Alternativamente puedes usar una imagen que ya hayas subido a tu biblioteca de medios haciendo clic en el botón «Elegir imagen»" + +#: wp-admin/includes/class-custom-image-header.php:958 +msgid "Skip Cropping, Publish Image as Is" +msgstr "Dejar de recortar, publicar la imagen tal cual" + +#: wp-admin/includes/class-custom-background.php:363 +#: wp-admin/includes/class-custom-image-header.php:684 +msgid "Choose Image" +msgstr "Elegir imagen" + +#: wp-admin/includes/class-custom-background.php:360 +#: wp-admin/includes/class-custom-image-header.php:680 +msgid "Or choose an image from your media library:" +msgstr "O elige una imagen de tu biblioteca medios:" + +#: wp-admin/includes/class-custom-background.php:350 +#: wp-admin/includes/class-custom-image-header.php:593 +msgid "Select Image" +msgstr "Elegir imagen" + +#: wp-admin/includes/class-wp-theme-install-list-table.php:406 +#: wp-admin/theme-install.php:603 +msgid "Collapse" +msgstr "Contraer" + +#: wp-admin/includes/class-custom-image-header.php:123 +msgid "If you do not want a header image to be displayed on your site at all, click the “Remove Header Image” button at the bottom of the Header Image section of this page. If you want to re-enable the header image later, you just have to select one of the other image options and click “Save Changes”." +msgstr "Si no quieres que se muestre ninguna imagen de cabecera en tu sitio, haz clic en el botón «Eliminar la imagen de la cabecera» al final de la sección de la imagen de cabecera de esta página. Si quieres reactivar más tarde la imagen de cabecera, tendrás que seleccionar una de las otras opciones de imagen y hacer clic en «Guardar cambios»." + +#: wp-admin/includes/plugin-install.php:1028 +msgctxt "plugin" +msgid "Installed" +msgstr "Instalado" + +#: wp-admin/themes.php:180 +msgid "Previewing and Customizing" +msgstr "Previsualizar y personalizar" + +#: wp-admin/theme-install.php:135 +msgid "Previewing and Installing" +msgstr "Previsualizando e instalando" + +#: wp-admin/theme-install.php:129 +msgid "Once you have generated a list of themes, you can preview and install any of them. Click on the thumbnail of the theme you are interested in previewing. It will open up in a full-screen Preview page to give you a better idea of how that theme will look." +msgstr "Una vez que hayas generado una lista de temas, puedes previsualizar e instalar cualquiera de ellos. Haz clic en la miniatura del tema que quieras previsualizar. Se abrirá una vista previa a pantalla completa para darte una mejor idea de cómo se verá ese tema." + +#. translators: %s: HTML attributes for button. +#: wp-admin/includes/media.php:3057 +msgid "You are using the browser’s built-in file uploader. The WordPress uploader includes multiple file selection and drag and drop capability. ." +msgstr "Estás usando el cargador incluido en el navegador. El cargador de WordPress incluye selección múltiple de archivos y capacidad de arrastrar y soltar. ." + +#: wp-admin/tools.php:50 +msgid "The Categories and Tags Converter link on this screen will take you to the Import screen, where that Converter is one of the plugins you can install. Once that plugin is installed, the Activate Plugin & Run Importer link will take you to a screen where you can choose to convert tags into categories or vice versa." +msgstr "El enlace al «Conversor de categorías y etiquetas» de esta pantalla te llevará a la pantalla de importación, donde el conversor es un plugin que puedes instalar. Una vez esté instalado el plugin, el enlace de «Activar plugin y ejecutar importador» te llevará a una pantalla donde podrás elegir convertir etiquetas a categorías y viceversa." + +#: wp-admin/tools.php:49 +msgid "Categories have hierarchy, meaning that you can nest sub-categories. Tags do not have hierarchy and cannot be nested. Sometimes people start out using one on their posts, then later realize that the other would work better for their content." +msgstr "Las categorías tienen jerarquía, lo que significa que pueden anidar subcategorías. Las etiquetas no tienen jerarquía y no pueden anidarse. A veces, las personas empieza a usar una en sus entradas y luego se dan cuenta de que otra funcionaría mejor para su contenido." + +#. translators: %s: URL to General Settings screen. +#: wp-admin/includes/class-custom-image-header.php:134 +msgid "For most themes, the header text is your Site Title and Tagline, as defined in the General Settings section." +msgstr "En la mayoría de los temas, el texto de cabecera es el título y descripción corta de tu sitio, como esté definido en la sección de Ajustes generales." + +#: wp-admin/includes/class-custom-image-header.php:122 +msgid "If your theme has more than one default header image, or you have uploaded more than one custom header image, you have the option of having WordPress display a randomly different image on each page of your site. Click the “Random” radio button next to the Uploaded Images or Default Images section to enable this feature." +msgstr "Si tu tema tiene más de una imagen de cabecera por defecto, o has subido más de una imagen de cabecera personalizada, tienes la opción de hacer que WordPress muestre una imagen diferente al azar en cada página de tu sitio. Haz clic en el botón «Al azar» junto a la sección de Subir imágenes o Imágenes por defecto para activar esta característica." + +#: wp-admin/includes/class-custom-image-header.php:121 +msgid "Some themes come with additional header images bundled. If you see multiple images displayed, select the one you would like and click the “Save Changes” button." +msgstr "Algunos temas vienen con imágenes de cabecera incluidas. Si ves que se muestran varias imágenes, selecciona la que te gusta y haz clic en el botón «Guardar los cambios»." + +#: wp-admin/includes/class-custom-image-header.php:111 +msgid "You can choose from the theme’s default header images, or use one of your own. You can also customize how your Site Title and Tagline are displayed." +msgstr "Puedes elegir entre las imágenes por defecto del tema, o usar una tuya. También puedes personalizar como se mostrarán el título y descripción corta de tu sitio." + +#: wp-admin/includes/class-custom-image-header.php:110 +msgid "This screen is used to customize the header section of your theme." +msgstr "Esta pantalla se usa para personalizar la sección de cabecera de tu tema." + +#: wp-admin/install.php:320 wp-admin/install.php:333 +msgid "Configuration Error" +msgstr "Error de configuración" + +#: wp-admin/media-new.php:55 +msgid "Revert to the Browser Uploader by clicking the link below the drag and drop box." +msgstr "Vuelve al Cargador del navegador haciendo clic en el enlace siguiente para poder arrastrar y soltar." + +#: wp-admin/users.php:615 wp-admin/network/users.php:260 +msgid "User deleted." +msgstr "Usuario borrado." + +#: wp-admin/includes/class-core-upgrader.php:40 wp-admin/includes/file.php:1741 +#: wp-admin/includes/file.php:1923 +msgid "Could not copy files. You may have run out of disk space." +msgstr "No se han podido copiar los archivos. Puede que tengas que liberar espacio en disco." + +#: wp-admin/includes/theme-install.php:153 +msgid "Find a theme based on specific features." +msgstr "Busca un tema basándote en características específicas." + +#: wp-admin/includes/theme-install.php:95 +msgid "Search for themes by keyword." +msgstr "Buscar temas por palabra clave." + +#: wp-admin/setup-config.php:205 +msgid "In all likelihood, these items were supplied to you by your web host. If you do not have this information, then you will need to contact them before you can continue. If you are ready…" +msgstr "Lo más probable es que estos elementos te los haya facilitado tu proveedor de alojamiento web. Si no tienes esta información, tendrás que contactar con ellos antes de poder continuar. Si ya estás listo…" + +#: wp-admin/theme-editor.php:314 +msgid "This theme is broken." +msgstr "Este tema está roto." + +#: wp-admin/includes/class-custom-image-header.php:684 +msgid "Set as header" +msgstr "Establecer como cabecera" + +#: wp-admin/includes/class-custom-background.php:363 +msgid "Set as background" +msgstr "Establecer como fondo" + +#. translators: Hidden accessibility text. %s: Theme name. +#: wp-admin/includes/class-theme-upgrader-skin.php:94 +msgid "Customize “%s”" +msgstr "Personalizar «%s»" + +#: wp-admin/install.php:160 wp-admin/user-edit.php:506 +#: wp-admin/user-edit.php:560 wp-admin/user-new.php:543 +#: wp-admin/user-new.php:547 wp-admin/user-new.php:594 +#: wp-admin/user-new.php:614 +msgid "(required)" +msgstr "(obligatorio)" + +#: wp-admin/link.php:114 +msgid "Edit Link" +msgstr "Editar enlace" + +#: wp-admin/includes/user.php:213 +msgid "Error: This email is already registered. Please choose another one." +msgstr "Error: Este correo electrónico ya está registrado. Por favor, elige otro." + +#: wp-admin/includes/user.php:157 +msgid "Error: Please enter a nickname." +msgstr "Error: por favor, introduce un alias." + +#: wp-admin/credits.php:62 +msgid "https://wordpress.org/about/" +msgstr "https://es.wordpress.org/about/" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/class-wp-list-table.php:1427 +#: wp-admin/includes/nav-menu.php:828 wp-admin/includes/nav-menu.php:1123 +#: wp-admin/update-core.php:501 wp-admin/update-core.php:625 +#: wp-admin/update-core.php:677 wp-admin/update-core.php:801 +msgid "Select All" +msgstr "Seleccionar todo" + +#: wp-admin/includes/meta-boxes.php:186 wp-admin/js/post.js:888 +msgid "Public, Sticky" +msgstr "Pública, fija" + +#: wp-admin/includes/meta-boxes.php:109 wp-admin/includes/meta-boxes.php:154 +#: wp-admin/js/post.js:808 wp-admin/js/post.js:810 +msgid "Privately Published" +msgstr "Publicada como privada" + +#: wp-admin/includes/meta-boxes.php:59 wp-admin/js/post.js:842 +msgid "Save as Pending" +msgstr "Guardar como pendiente" + +#: wp-admin/includes/media.php:1418 wp-admin/includes/media.php:3010 +msgid "Enter a link URL or click above for presets." +msgstr "Introduce una URL o haz clic arriba para los ajustes por defecto." + +#: wp-admin/includes/media.php:1415 +msgid "Link URL" +msgstr "URL del enlace" + +#: wp-admin/includes/meta-boxes.php:912 +msgid "No comments yet." +msgstr "No hay comentarios aún." + +#: wp-admin/includes/class-wp-theme-install-list-table.php:520 +#: wp-admin/includes/class-wp-themes-list-table.php:281 +#: wp-admin/includes/plugin-install.php:656 +msgid "Version:" +msgstr "Versión:" + +#: wp-admin/includes/class-wp-theme-install-list-table.php:404 +#: wp-admin/theme-install.php:70 wp-admin/theme-install.php:601 +msgid "Collapse Sidebar" +msgstr "Contraer barra lateral" + +#: wp-admin/includes/class-wp-plugins-list-table.php:473 +msgid "Plugin" +msgstr "Plugin" + +#: wp-admin/export.php:197 wp-admin/export.php:209 wp-admin/export.php:239 +#: wp-admin/export.php:261 wp-admin/export.php:291 +#: wp-admin/includes/class-wp-users-list-table.php:189 +msgid "All" +msgstr "Todos" + +#. translators: %s: Number of words. +#: wp-admin/edit-form-advanced.php:638 +msgid "Word count: %s" +msgstr "Número de palabras: %s" + +#: wp-admin/edit-comments.php:399 wp-admin/edit-comments.php:413 +msgid "Edit comment" +msgstr "Editar comentario" + +#: wp-admin/options-general.php:502 wp-admin/options-general.php:547 +msgid "Preview:" +msgstr "Vista previa:" + +#: wp-admin/includes/class-wp-users-list-table.php:397 +#: wp-admin/includes/class-wp-ms-users-list-table.php:217 +msgid "E-mail" +msgstr "Correo electrónico" + +#. translators: %s: Theme name. +#: wp-admin/includes/class-theme-upgrader.php:93 +msgid "The parent theme could not be found. You will need to install the parent theme, %s, before you can use this child theme." +msgstr "No se encuentra el tema padre. Tienes que instalar el tema padre, %s, antes de utilizar este tema hijo." + +#. translators: 1: Theme name, 2: Theme version. +#: wp-admin/includes/class-theme-upgrader.php:91 +msgid "Successfully installed the parent theme, %1$s %2$s." +msgstr "Instalado correctamente el tema padre, %1$s %2$s." + +#. translators: 1: Theme name, 2: Theme version. +#: wp-admin/includes/class-theme-upgrader.php:89 +msgid "The parent theme, %1$s %2$s, is currently installed." +msgstr "El tema padre, %1$s %2$s, ya está instalado." + +#. translators: 1: Theme name, 2: Theme version. +#: wp-admin/includes/class-theme-upgrader.php:87 +msgid "Preparing to install %1$s %2$s…" +msgstr "Preparando la instalación de %1$s %2$s…" + +#: wp-admin/includes/class-theme-upgrader.php:85 +msgid "This theme requires a parent theme. Checking if it is installed…" +msgstr "Este tema requiere un tema padre. Comprueba si está instalado…" + +#: wp-admin/includes/class-custom-image-header.php:767 +msgid "Show header text with your image." +msgstr "Mostrar texto de cabecera junto con tu imagen." + +#: wp-admin/includes/class-custom-image-header.php:130 +#: wp-admin/includes/class-custom-image-header.php:759 +#: wp-admin/includes/class-custom-image-header.php:764 +msgid "Header Text" +msgstr "Texto de cabecera" + +#. translators: 1: Theme name, 2: Theme details URL, 3: Additional link +#. attributes, 4: Version number, 5: Update URL, 6: Additional link attributes. +#. translators: 1: Plugin name, 2: Details URL, 3: Additional link attributes, +#. 4: Version number, 5: Update URL, 6: Additional link attributes. +#. translators: 1: Theme name, 2: Details URL, 3: Additional link attributes, +#. 4: Version number, 5: Update URL, 6: Additional link attributes. +#: wp-admin/includes/theme.php:255 wp-admin/includes/update.php:553 +#: wp-admin/includes/update.php:745 +msgid "There is a new version of %1$s available. View version %4$s details or update now." +msgstr "Hay disponible una nueva versión de %1$s. Revisa los detalles de la versión %4$s o actualízalo ahora." + +#. translators: %s: Plugin author. +#: wp-admin/includes/plugin.php:215 +msgid "By %s." +msgstr "Por %s." + +#: wp-admin/includes/meta-boxes.php:898 wp-admin/includes/template.php:464 +#: wp-admin/includes/template.php:508 +msgid "Add Comment" +msgstr "Añadir comentario" + +#. Author URI of the plugin +#: hello.php +msgid "http://ma.tt/" +msgstr "https://ma.tt/" + +#. Description of the plugin +#: hello.php +msgid "This is not just a plugin, it symbolizes the hope and enthusiasm of an entire generation summed up in two words sung most famously by Louis Armstrong: Hello, Dolly. When activated you will randomly see a lyric from Hello, Dolly in the upper right of your admin screen on every page." +msgstr "Esto no es solo un plugin, simboliza la esperanza y entusiasmo de toda una generación resumidas en las dos palabras más famosas cantadas por Louis Armstrong: Hello, Dolly. Cuando lo actives verás frases al azar de Hello, Dolly en la parte superior derecha de cada página de tu pantalla de administración." + +#. Plugin Name of the plugin +#: hello.php +msgid "Hello Dolly" +msgstr "Hello Dolly" + +#: wp-admin/index.php:78 +msgid "Welcome — Shows links for some of the most common tasks when setting up a new site." +msgstr "Bienvenida — Muestra enlaces a algunas de las tareas más comunes al configurar un nuevo sitio." + +#. translators: 1: Theme name, 2: Theme details URL, 3: Additional link +#. attributes, 4: Version number. +#. translators: 1: Theme name, 2: Details URL, 3: Additional link attributes, +#. 4: Version number. +#: wp-admin/includes/theme.php:242 wp-admin/includes/update.php:732 +msgid "There is a new version of %1$s available. View version %4$s details. Automatic update is unavailable for this theme." +msgstr "Hay una nueva versión disponible de %1$s. Ver los detalles de la versión %4$s. La actualización automática no está disponible para este tema." + +#: wp-admin/install.php:107 wp-admin/install.php:384 +msgctxt "Howdy" +msgid "Welcome" +msgstr "Hola" + +#: wp-admin/ms-delete-site.php:139 +msgid "Delete My Site Permanently" +msgstr "Eliminar mi sitio permanentemente" + +#. translators: %s: Site address. +#: wp-admin/ms-delete-site.php:134 +msgid "I'm sure I want to permanently delete my site, and I am aware I can never get it back or use %s again." +msgstr "Estoy seguro de que quiero borrar mi sitio permanentemente y soy consciente de que nunca podré recuperarlo o usar %s de nuevo." + +#: wp-admin/ms-delete-site.php:125 +msgid "Remember, once deleted your site cannot be restored." +msgstr "Recuerda, una vez eliminado el sitio no puede ser restaurado." + +#. translators: %s: Network title. +#: wp-admin/ms-delete-site.php:120 +msgid "If you do not want to use your %s site any more, you can delete it using the form below. When you click Delete My Site Permanently you will be sent an email with a link in it. Click on this link to delete your site." +msgstr "Si no quieres usar tu sitio %s más puedes borrarlo usando el siguiente formulario. Cuando hagas clic en Borrar permanentemente mi sitio se te enviará un correo electrónico con un enlace en el mismo. Haz clic en ese enlace para borrar tu sitio." + +#: wp-admin/ms-delete-site.php:111 +msgid "Thank you. Please check your email for a link to confirm your action. Your site will not be deleted until this link is clicked." +msgstr "Gracias. Por favor, comprueba si has recibido un enlace en tu correo electrónico para confirmar esta acción. Tu sitio no se borrará hasta que hagas clic en este enlace. " + +#: wp-admin/ms-delete-site.php:31 +msgid "Sorry, the link you clicked is stale. Please select another option." +msgstr "Lo siento, el enlace en el que has hecho clic está caducado. Elige otra opción." + +#. translators: %s: Network title. +#: wp-admin/ms-delete-site.php:26 +msgid "Thank you for using %s, your site has been deleted. Happy trails to you until we meet again." +msgstr "Gracias por usar %s, tu sitio se ha borrado. Buen viaje hasta que nos veamos de nuevo." + +#. translators: My Sites label. +#: wp-admin/includes/ms.php:771 +msgid "Primary Site" +msgstr "Sitio principal" + +#: wp-admin/includes/ms.php:646 +msgid "British English" +msgstr "Inglés británico" + +#: wp-admin/includes/ms.php:642 +msgid "American English" +msgstr "Inglés americano" + +#: wp-admin/includes/ms.php:599 +msgid "View Site" +msgstr "Ver sitio" + +#: wp-admin/includes/ms.php:598 +msgid "Visit Dashboard" +msgstr "Visitar Escritorio" + +#: wp-admin/includes/ms.php:592 +msgid "Your Sites" +msgstr "Tus sitios" + +#: wp-admin/includes/ms.php:590 +msgid "If you reached this screen by accident and meant to visit one of your own sites, here are some shortcuts to help you find your way." +msgstr "Si has llegado a esta pantalla por accidente y querías visitar uno de tus propios sitios aquí tienes algunos enlaces que te ayudarán a encontrar el camino." + +#. translators: 1: Site title. +#: wp-admin/includes/ms.php:578 wp-admin/includes/ms.php:587 +msgid "You attempted to access the \"%1$s\" dashboard, but you do not currently have privileges on this site. If you believe you should be able to access the \"%1$s\" dashboard, please contact your network administrator." +msgstr "Has tratado de acceder al escritorio de «%1$s» pero actualmente no tienes privilegios en este sitio. Si crees que deberías poder acceder al escritorio de «%1$s» contacta con tu administrador de la red." + +#: wp-admin/includes/ms.php:316 +msgid "MB (Leave blank for network default)" +msgstr "MB (déjalo en blanco para el valor por defecto de la red)" + +#. translators: New admin email address notification email subject. %s: Site +#. title. +#: wp-admin/includes/misc.php:1518 +msgid "[%s] New Admin Email Address" +msgstr "[%s] Nueva dirección de correo electrónico de administrador" + +#: wp-admin/includes/class-wp-debug-data.php:623 +#: wp-admin/includes/class-wp-debug-data.php:1180 +#: wp-admin/includes/class-wp-debug-data.php:1291 +#: wp-admin/includes/class-wp-debug-data.php:1451 +#: wp-admin/includes/class-wp-debug-data.php:1460 +#: wp-admin/includes/class-wp-debug-data.php:1469 +#: wp-admin/includes/class-wp-debug-data.php:1478 +#: wp-admin/includes/class-wp-debug-data.php:1537 +#: wp-admin/includes/class-wp-debug-data.php:1542 +#: wp-admin/includes/class-wp-debug-data.php:1552 +#: wp-admin/includes/class-wp-debug-data.php:1557 +#: wp-admin/includes/class-wp-debug-data.php:1582 +msgid "Disabled" +msgstr "Desactivado" + +#. translators: %s: Number of plugins. +#: wp-admin/includes/class-wp-plugins-list-table.php:557 +msgid "Paused (%s)" +msgid_plural "Paused (%s)" +msgstr[0] "En pausa (%s)" +msgstr[1] "En pausa (%s)" + +#: wp-admin/my-sites.php:127 +msgid "Global Settings" +msgstr "Ajustes globales" + +#: wp-admin/my-sites.php:86 +msgid "You must be a member of at least one site to use this page." +msgstr "Debes ser miembro de al menos un sitio para usar esta página." + +#: wp-admin/my-sites.php:33 +msgid "The primary site you chose does not exist." +msgstr "El sitio principal que has elegido no existe." + +#: wp-admin/setup-config.php:264 +msgid "If you want to run multiple WordPress installations in a single database, change this." +msgstr "Si quieres ejecutar varias instalaciones de WordPress en una sola base de datos cambia esto." + +#: wp-admin/setup-config.php:262 +msgid "Table Prefix" +msgstr "Prefijo de tabla" + +#: wp-admin/setup-config.php:252 +msgid "Database Host" +msgstr "Servidor de la base de datos" + +#: wp-admin/setup-config.php:242 +msgctxt "example password" +msgid "password" +msgstr "contraseña" + +#: wp-admin/setup-config.php:235 +msgctxt "example username" +msgid "username" +msgstr "nombre_de_usuario" + +#: wp-admin/setup-config.php:229 +msgid "Database Name" +msgstr "Nombre de la base de datos" + +#: wp-admin/setup-config.php:226 +msgid "Below you should enter your database connection details. If you are not sure about these, contact your host." +msgstr "A continuación tendrás que introducir los detalles de tu conexión con la base de datos. Si no estás seguro de ellos, contacta con tu proveedor de alojamiento." + +#: wp-admin/setup-config.php:207 +msgid "Let’s go!" +msgstr "¡Vamos a ello!" + +#: wp-admin/setup-config.php:176 +msgid "Table prefix (if you want to run more than one WordPress in a single database)" +msgstr "Prefijo de la tabla (si quieres ejecutar más de un WordPress en una sola base de datos)" + +#: wp-admin/includes/class-wp-debug-data.php:1648 wp-admin/setup-config.php:175 +msgid "Database host" +msgstr "Servidor de la base de datos" + +#: wp-admin/setup-config.php:174 +msgid "Database password" +msgstr "Contraseña de la base de datos" + +#: wp-admin/includes/class-wp-debug-data.php:1643 wp-admin/setup-config.php:173 +msgid "Database username" +msgstr "Usuario de la base de datos" + +#: wp-admin/includes/class-wp-debug-data.php:1653 wp-admin/setup-config.php:172 +msgid "Database name" +msgstr "Nombre de la base de datos" + +#: wp-admin/setup-config.php:111 +msgid "WordPress › Setup Configuration File" +msgstr "WordPress › Instalación del archivo de configuración." + +#. translators: 1: wp-config.php, 2: install.php +#: wp-admin/setup-config.php:76 +msgid "The file %1$s already exists one level above your WordPress installation. If you need to reset any of the configuration items in this file, please delete it first. You may try installing now." +msgstr "El archivo %1$s ya existe en un nivel superior de tu instalación de WordPress. Si necesitas reiniciar alguno de los elementos de configuración de este archivo, por favor, bórralo primero. Puedes tratar de hacer la instalación ahora." + +#. translators: 1: wp-config.php, 2: install.php +#: wp-admin/setup-config.php:63 +msgid "The file %1$s already exists. If you need to reset any of the configuration items in this file, please delete it first. You may try installing now." +msgstr "El archivo %1$s ya existe. Si necesitas recuperar algunos de los elementos de configuración de este archivo bórralo primero. Puedes probar a instalarlo ahora." + +#. translators: %s: wp-config-sample.php +#: wp-admin/setup-config.php:52 +msgid "Sorry, I need a %s file to work from. Please re-upload this file to your WordPress installation." +msgstr "Lo siento, necesito un archivo %s desde el que poder trabajar. Por favor, sube de nuevo este archivo a tu instalación de WordPress." + +#. translators: %s: wp-config.php +#: wp-admin/maint/repair.php:38 +msgid "To allow use of this page to automatically repair database problems, please add the following line to your %s file. Once this line is added to your config, reload this page." +msgstr "Para permitir usar esta página para reparar automáticamente problemas en la base de datos añade la siguiente línea al archivo wp-config.php. Una vez añadas esta línea a tu archivo de configuración vuelve a cargar esta página." + +#: wp-admin/includes/class-wp-comments-list-table.php:225 +msgid "No comments awaiting moderation." +msgstr "No hay comentarios esperando moderación." + +#: wp-admin/includes/plugin-install.php:577 +msgctxt "Plugin installer section title" +msgid "Other Notes" +msgstr "Otras notas" + +#: wp-admin/includes/plugin-install.php:575 +msgctxt "Plugin installer section title" +msgid "Changelog" +msgstr "Registro de cambios" + +#: wp-admin/includes/plugin-install.php:574 +msgctxt "Plugin installer section title" +msgid "Screenshots" +msgstr "Capturas de pantalla" + +#: wp-admin/includes/plugin-install.php:573 +msgctxt "Plugin installer section title" +msgid "FAQ" +msgstr "FAQ" + +#: wp-admin/includes/plugin-install.php:572 +msgctxt "Plugin installer section title" +msgid "Installation" +msgstr "Instalación" + +#: wp-admin/includes/plugin-install.php:571 +msgctxt "Plugin installer section title" +msgid "Description" +msgstr "Descripción" + +#: wp-admin/includes/plugin-install.php:704 +msgid "Plugin Homepage »" +msgstr "Página principal del plugin »" + +#: wp-admin/export.php:52 +msgid "You can export a file of your site’s content in order to import it into another installation or platform. The export file will be an XML file format called WXR. Posts, pages, comments, custom fields, categories, and tags can be included. You can choose for the WXR file to include only certain posts or pages by setting the dropdown filters to limit the export by category, author, date range by month, or publishing status." +msgstr "Puedes exportar un archivo del contenido de tu sitio para que puedas importarlo a otra instalación o plataforma. El archivo de exportación será un archivo XML en un formato llamado WXR. Se incluirán entradas, páginas, comentarios, campos personalizados, categorías y etiquetas. Puedes elegir incluir en el archivo WXR solo cierta entradas o páginas con los filtros desplegables para limitar la exportación por categorías, autor, rango de fechas por mes o estado de publicación." + +#. translators: 1: Table name, 2: Error message. +#: wp-admin/maint/repair.php:129 +msgid "Failed to repair the %1$s table. Error: %2$s" +msgstr "Fallo al reparar la tabla %1$s. Error: %2$s" + +#: wp-admin/user-new.php:281 +msgid "New users will receive an email letting them know they’ve been added as a user for your site. This email will also contain their password. Check the box if you do not want the user to receive a welcome email." +msgstr "Los nuevos usuarios recibirán un correo electrónico haciéndoles saber que han sido añadidos como usuarios de tu sitio. Este correo electrónico contendrá también su contraseña. Marca la casilla si no quieres que el usuario reciba un correo electrónico de bienvenida." + +#: wp-admin/includes/image-edit.php:329 +msgid "There are unsaved changes that will be lost. 'OK' to continue, 'Cancel' to return to the Image Editor." +msgstr "Hay cambios sin guardar que se perderán. «Aceptar» para continuar, «Cancelar» para volver a editor de imágenes." + +#: wp-admin/options-writing.php:35 +msgid "Post via email settings allow you to send your WordPress installation an email with the content of your post. You must set up a secret email account with POP3 access to use this, and any mail received at this address will be posted, so it’s a good idea to keep this address very secret." +msgstr "Las opciones de publicar por correo electrónico te permiten enviar a tu instalación de WordPress el contenido de tu entrada. Tienes que crear una cuenta de correo electrónico secreta con acceso POP3 para poder hacerlo. Cualquier correo recibido en esa cuenta será publicado, por lo que conviene mantener esa cuenta muy secreta." + +#: wp-admin/users.php:47 +msgid "You can filter the list of users by User Role using the text links above the users list to show All, Administrator, Editor, Author, Contributor, or Subscriber. The default view is to show all users. Unused User Roles are not listed." +msgstr "Puedes filtrar la lista de perfiles de usuario usando los enlaces de texto de arriba a la izquierda para mostrar Todos, Administrador, Editor, Autor, Colaborador o Suscriptor. La vista por defecto muestra todos los usuarios. Los perfiles de usuario sin utilizar no están en la lista." + +#: wp-admin/import.php:26 +msgid "In previous versions of WordPress, all importers were built-in. They have been turned into plugins since most people only use them once or infrequently." +msgstr "En versiones anteriores de WordPress, todos los importadores estaban incorporados. Se han convertido en plugins porque la mayoría de las personas solo los utilizaba una vez o con poca frecuencia." + +#. translators: %s: URL to view the autosave. +#: wp-admin/edit-form-advanced.php:246 +msgid "There is an autosave of this post that is more recent than the version below. View the autosave" +msgstr "Hay un guardado automático de esta entrada que es más reciente que la versión de abajo. Ver el guardado automático" + +#: wp-admin/includes/class-custom-image-header.php:915 +#: wp-admin/includes/class-custom-image-header.php:1074 +#: wp-admin/includes/class-custom-image-header.php:1420 +msgid "Image could not be processed. Please go back and try again." +msgstr "La imagen no se puede procesar. Por favor, vuelve atrás y prueba de nuevo." + +#: wp-admin/themes.php:263 +msgid "The active theme is broken. Reverting to the default theme." +msgstr "El tema activo está roto. Volviendo al tema por defecto." + +#: wp-admin/maint/repair.php:186 +msgid "WordPress can also attempt to optimize the database. This improves performance in some situations. Repairing and optimizing the database can take a long time and the database will be locked while optimizing." +msgstr "WordPress también puede tratar de optimizar la base de datos. Esto mejora el rendimiento en algunas situaciones. La reparación y optimización de la base de datos puede tomar mucho tiempo y la base de datos se bloqueará mientras se optimiza." + +#: wp-admin/maint/repair.php:182 +msgid "WordPress can automatically look for some common database problems and repair them. Repairing can take a while, so please be patient." +msgstr "WordPress puede reconocer automáticamente algunos problemas comunes de base de datos y repararlos. La reparación puede durar un rato, sé paciente por favor." + +#: wp-admin/maint/repair.php:170 +msgid "Repairs complete. Please remove the following line from wp-config.php to prevent this page from being used by unauthorized users." +msgstr "Reparaciones completadas. Por favor, quita la siguiente línea del archivo wp-config.php para evitar que esta página sea utilizada por usuarios no autorizados." + +#. translators: 1: Table name, 2: Error message. +#: wp-admin/maint/repair.php:119 +msgid "The %1$s table is not okay. It is reporting the following error: %2$s. WordPress will attempt to repair this table…" +msgstr "La tabla %1$s no está bien. Informa del siguiente error: %2$s. WordPress intentará reparar esta tabla…" + +#: wp-admin/user-new.php:454 +msgid "Enter the email address or username of an existing user on this network to invite them to this site. That person will be sent an email asking them to confirm the invite." +msgstr "Introduce la dirección de correo electrónico o el nombre de usuario de un usuario existente en esta red para invitarle a este sitio. A esa persona se le enviará un correo pidiéndole que confirme la invitación." + +#: wp-admin/user-new.php:450 +msgid "Enter the email address of an existing user on this network to invite them to this site. That person will be sent an email asking them to confirm the invite." +msgstr "Escribe la dirección de correo electrónico de un usuario de esta red para invitarlo a este sitio. A esa persona se le enviará un correo electrónico para que confirme la invitación." + +#: wp-admin/user-edit.php:374 +msgid "Show Toolbar when viewing site" +msgstr "Mostrar la barra de herramientas al ver el sitio" + +#. translators: %s: Documentation URL. +#: wp-admin/about.php:324 +msgid "For more information, see the release notes." +msgstr "Para más información, lee las notas de la versión." + +#. translators: 1: WordPress version number, 2: Plural number of bugs. More +#. than one security issue. +#: wp-admin/about.php:318 +msgid "Version %1$s addressed some security issues and fixed %2$s bug." +msgid_plural "Version %1$s addressed some security issues and fixed %2$s bugs." +msgstr[0] "La versión %1$s soluciona algunos problemas de seguridad y soluciona %2$s fallo." +msgstr[1] "La versión %1$s soluciona algunos problemas de seguridad y soluciona %2$s fallos." + +#. translators: 1: WordPress version number, 2: Plural number of bugs. Singular +#. security issue. +#: wp-admin/about.php:312 +msgid "Version %1$s addressed a security issue and fixed %2$s bug." +msgid_plural "Version %1$s addressed a security issue and fixed %2$s bugs." +msgstr[0] "La versión %1$s soluciona un problema de seguridad y soluciona %2$s fallo." +msgstr[1] "La versión %1$s soluciona un problema de seguridad y soluciona %2$s fallos." + +#. translators: 1: WordPress version number, 2: Plural number of bugs. +#: wp-admin/about.php:306 +msgid "Version %1$s addressed %2$s bug." +msgid_plural "Version %1$s addressed %2$s bugs." +msgstr[0] "La versión %1$s soluciona %2$s fallo." +msgstr[1] "La versión %1$s soluciona %2$s fallos." + +#. translators: %s: WordPress version number. +#: wp-admin/about.php:303 +msgid "Version %s addressed some security issues." +msgstr "La versión %s soluciona algunos problemas de seguridad." + +#: wp-admin/about.php:297 +msgid "Maintenance and Security Release" +msgstr "Versión de mantenimiento y seguridad" + +#: wp-admin/about.php:294 +msgid "Security Release" +msgstr "Versión de seguridad" + +#: wp-admin/about.php:291 +msgid "Maintenance Release" +msgstr "Versión de mantenimiento" + +#: wp-admin/about.php:56 wp-admin/contribute.php:43 wp-admin/credits.php:46 +#: wp-admin/freedoms.php:49 wp-admin/privacy.php:43 +msgid "What’s New" +msgstr "Novedades" + +#: wp-admin/options-permalink.php:25 +msgid "This screen allows you to choose your permalink structure. You can choose from common settings or create custom URL structures." +msgstr "Esta pantalla te permite elegir la estructura de tus enlaces permanentes. Puedes dejarla con los ajustes por defecto o crear una estructura de URLs personalizada." + +#. translators: 1: WordPress version, 2: URL to About screen. +#: wp-admin/includes/update-core.php:1718 wp-admin/update-core.php:931 +msgid "Welcome to WordPress %1$s. Learn more." +msgstr "Te damos la bienvenida a WordPress %1$s. Aprende más." + +#: wp-admin/media-new.php:51 +msgid "You can upload media files here without creating a post first. This allows you to upload files to use with posts and pages later and/or to get a web link for a particular file that you can share. There are three options for uploading files:" +msgstr "Aquí puedes subir archivos de medios sin tener que crear una entrada antes. Esto te permite subir archivos para entradas o páginas que escribas con posterioridad u obtener un enlace para un archivo que quieras compartir. Hay tres opciones para subir archivos:" + +#: wp-admin/edit-tags.php:299 +msgid "Adding Tags" +msgstr "Añadiendo etiquetas" + +#: wp-admin/edit-tags.php:299 +msgid "Adding Categories" +msgstr "Añadiendo categorías" + +#: wp-admin/plugins.php:577 +msgid "Troubleshooting" +msgstr "Diagnóstico" + +#: wp-admin/update-core.php:1011 +msgid "How to Update" +msgstr "Cómo actualizar" + +#: wp-admin/export.php:178 +msgid "Once you’ve saved the download file, you can use the Import function in another WordPress installation to import the content from this site." +msgstr "Una vez hayas guardado el archivo descargado, puedes utilizar la función de importación en otra instalación de WordPress para importar el contenido de este sitio." + +#: wp-admin/upload.php:394 +msgid "Attaching Files" +msgstr "Adjuntando archivos" + +#: wp-admin/edit.php:290 +msgid "You can also edit or move multiple posts to the Trash at once. Select the posts you want to act on using the checkboxes, then select the action you want to take from the Bulk actions menu and click Apply." +msgstr "También puedes editar o mover varias entradas a la vez a la papelera. Selecciona las entradas sobre las que quieres actuar usando las casillas de verificación. Después, selecciona la acción que quieres realizar en el menú «Acciones en lote» y haz clic en «Aplicar»." + +#: wp-admin/edit.php:274 wp-admin/upload.php:379 wp-admin/users.php:74 +msgid "Available Actions" +msgstr "Acciones disponibles" + +#: wp-admin/edit.php:262 +msgid "You can customize the display of this screen’s contents in a number of ways:" +msgstr "Puedes personalizar el formato de los contenidos de esta pantalla de muchas formas:" + +#: wp-admin/edit.php:260 wp-admin/users.php:43 +msgid "Screen Content" +msgstr "Contenido en pantalla" + +#: wp-admin/edit.php:254 +msgid "This screen provides access to all of your posts. You can customize the display of this screen to suit your workflow." +msgstr "Esta pantalla te da acceso a todas tus entradas. Puedes personalizar el formato de esta pantalla para acomodarlo a tu sistema de trabajo." + +#. translators: %s: URL to Add Plugins screen. +#: wp-admin/import.php:234 +msgid "If the importer you need is not listed, search the plugin directory to see if an importer is available." +msgstr "Si el importador que necesitas no está en la lista, busca en el directorio de plugins para ver si hay un importador disponible." + +#: wp-admin/edit-comments.php:216 +msgid "Moderating Comments" +msgstr "Moderando comentarios" + +#. translators: %s: URL to Import screen. +#: wp-admin/tools.php:78 +msgid "If you want to convert your categories to tags (or vice versa), use the Categories and Tags Converter available from the Import screen." +msgstr "Si quieres convertir categorías en etiquetas (o viceversa), utiliza el Conversor de categorías y etiquetas que está disponible en la página de importación." + +#: wp-admin/plugin-install.php:110 +msgid "Adding Plugins" +msgstr "Añadiendo plugins" + +#: wp-admin/themes.php:164 +msgid "Adding Themes" +msgstr "Añadiendo temas" + +#: wp-admin/user-new.php:304 +msgid "Subscribers can read comments/comment/receive newsletters, etc. but cannot create regular site content." +msgstr "Los suscriptores pueden leer comentarios/comentar/recibir listas de distribución, etc., pero no pueden crear contenido normal en el sitio." + +#: wp-admin/user-new.php:306 +msgid "Authors can publish and manage their own posts, and are able to upload files." +msgstr "Los autores pueden publicar y gestionar sus propias entradas, además de subir archivos." + +#: wp-admin/user-new.php:302 +msgid "Here is a basic overview of the different user roles and the permissions associated with each one:" +msgstr "Aquí tienes una visión general de los diferentes perfiles de usuarios y los permisos que tiene cada uno:" + +#: wp-admin/user-new.php:301 +msgid "User Roles" +msgstr "Perfiles de usuario" + +#: wp-admin/user-new.php:288 +msgid "Remember to click the Add User button at the bottom of this screen when you are finished." +msgstr "Recuerda hacer clic en el botón «Añadir usuario» de esta pantalla cuando hayas terminado." + +#: wp-admin/user-new.php:277 +msgid "To add a new user to your site, fill in the form on this screen and click the Add User button at the bottom." +msgstr "Para añadir un usuario nuevo a tu sitio, rellena el formulario de esta pantalla y haz clic en el botón «Añadir usuario» de abajo." + +#: wp-admin/options-permalink.php:53 +msgid "Custom Structures" +msgstr "Estruturas personalizadas" + +#: wp-admin/options-permalink.php:317 +msgid "Common Settings" +msgstr "Ajustes comunes" + +#: wp-admin/options-permalink.php:24 +msgid "Permalinks are the permanent URLs to your individual pages and blog posts, as well as your category and tag archives. A permalink is the web address used to link to your content. The URL to each post should be permanent, and never change — hence the name permalink." +msgstr "Los enlaces permanentes son URLs permanentes para tus páginas y entradas de blog, así como para las categorías y las etiquetas de archivos. Un enlace permanente es la dirección web utilizada para enlazar tu contenido. La URL de cada entrada debe ser siempre la misma, permanente y no cambiar nunca — de ahí que se llame enlace permanente." + +#: wp-admin/options-writing.php:24 +msgid "You can submit content in several different ways; this screen holds the settings for all of them. The top section controls the editor within the dashboard, while the rest control external publishing methods. For more information on any of these methods, use the documentation links." +msgstr "Puedes enviar contenido de muchas formas; esta pantalla contiene las opciones para todas ellas. La selección superior controla el editor dentro del escritorio, mientras las demás controlan las formas externas de publicación. Para más información sobre estos métodos para publicar, puedes mirar en los enlaces de la documentación." + +#: wp-admin/options-media.php:26 +msgid "Uploading Files allows you to choose the folder and path for storing your uploaded files." +msgstr "La subida de archivos te permite elegir la carpeta y la ruta donde guardar tu archivos subidos." + +#: wp-admin/themes.php:152 +msgid "Installing themes on Multisite can only be done from the Network Admin section." +msgstr "La instalación de temas en multisitio solo se puede hacer desde la sección de administrador de red." + +#: wp-admin/options-writing.php:46 +msgid "If desired, WordPress will automatically alert various services of your new posts." +msgstr "Si lo deseas, WordPress puede alertar automáticamente a varios servicios de tus nuevas entradas." + +#: wp-admin/options-writing.php:34 +msgid "Post Via Email" +msgstr "Publicar por Correo Electrónico" + +#: wp-admin/options-discussion.php:25 +msgid "This screen provides many options for controlling the management and display of comments and links to your posts/pages. So many, in fact, they will not all fit here! :) Use the documentation links to get information on what each discussion setting does." +msgstr "Esta pantalla proporciona muchas opciones para controlar la gestión y la visualización de los comentarios y enlaces de tus entradas y páginas. De hecho, ¡hay tantas que no todas caben aquí! :) Usa los enlaces a la documentación para obtener información sobre qué hace cada ajuste de comentarios." + +#: wp-admin/user-edit.php:61 +msgid "You can change your password, turn on keyboard shortcuts, change the color scheme of your WordPress administration screens, and turn off the WYSIWYG (Visual) editor, among other things. You can hide the Toolbar (formerly called the Admin Bar) from the front end of your site, however it cannot be disabled on the admin screens." +msgstr "Puedes cambiar tu contraseña, activar los atajos de teclado, cambiar la paleta de colores de tus pantallas de administración, desactivar el editor WYSIWYG (visual), entre otras cosas. Puedes ocultar la barra de herramientas (antes conocida como barra de administración) de la parte pública (front end) de tu sitio, aunque no es posible desactivarlo para las pantallas de administración." + +#: wp-admin/widgets-form.php:94 +msgid "This sidebar is no longer available and does not show anywhere on your site. Remove each of the widgets below to fully remove this inactive sidebar." +msgstr "Esta barra lateral no está disponible y no se muestra en tu sitio. Quita cada uno de sus widgets para quitar por completo esta barra inactiva." + +#: wp-admin/widgets-form.php:91 +msgid "Inactive Sidebar (not used)" +msgstr "Barra lateral inactiva (no utilizada) " + +#: wp-admin/media-new.php:54 +msgid "Clicking Select Files opens a navigation window showing you files in your operating system. Selecting Open after clicking on the file you want activates a progress bar on the uploader screen." +msgstr "Haciendo clic en «Seleccionar archivos» se abre una ventana de navegación, mostrando los archivos de tu sistema operativo. Seleccionando «Abrir» después de hacer clic en el archivo que quieres, activas una barra de progreso en la pantalla del cargador." + +#: wp-admin/media-new.php:53 +msgid "Drag and drop your files into the area below. Multiple files are allowed." +msgstr "Arrastra y suelta tus archivos en el espacio inferior. Puedes subir múltiples archivos." + +#: wp-admin/edit-tags.php:259 +msgid "You can assign keywords to your posts using tags. Unlike categories, tags have no hierarchy, meaning there is no relationship from one tag to another." +msgstr "Puedes asignar palabras clave a tus entradas usando etiquetas. A diferencia de las categorías, las etiquetas no tienen jerarquía, lo que significa que no hay relación de una etiqueta con otra." + +#: wp-admin/edit-tags.php:257 +msgid "You can create groups of links by using Link Categories. Link Category names must be unique and Link Categories are separate from the categories you use for posts." +msgstr "Puedes crear grupos de enlaces utilizando las categorías de enlaces. Los nombres de las categorías de enlaces deben ser únicos y son distintas de las categorías que usas para tus entradas." + +#: wp-admin/widgets-form.php:62 +msgid "Missing Widgets" +msgstr "Widgets desaparecidos" + +#: wp-admin/widgets-form.php:52 +msgid "Removing and Reusing" +msgstr "Quitar y reutilizar" + +#: wp-admin/upload.php:396 +msgid "If a media file has not been attached to any content, you will see that in the Uploaded To column, and can click on Attach to launch a small popup that will allow you to search for existing content and attach the file." +msgstr "Si un archivo no se ha adjuntado a ningún contenido podrás verlo en la columna de Adjunto a. Puedes hacer clic en Adjuntar a para lanzar un pequeño emergente que te permitirá buscar contenido existente al que adjuntar el archivo. " + +#: wp-admin/upload.php:371 +msgid "All the files you’ve uploaded are listed in the Media Library, with the most recent uploads listed first. You can use the Screen Options tab to customize the display of this screen." +msgstr "Todos los archivos que has subido están listados en la biblioteca multimedia, con las subidas más recientes listadas primero. Puedes utilizar la pestaña de Opciones de pantalla para personalizar la visualización de esta pantalla." + +#: wp-admin/edit.php:320 +msgid "You can also perform the same types of actions, including narrowing the list by using the filters, acting on a page using the action links that appear when you hover over a row, or using the Bulk actions menu to edit the metadata for multiple pages at once." +msgstr "También puedes realizar el mismo tipo de acciones, incluyendo disminuir la lista usando filtros, actuar sobre una página usando los enlaces de acción que aparecen al pasar el cursor sobre una fila o usar el menú «Acciones en lote» para editar los datos meta de varias páginas a la vez." + +#: wp-admin/edit.php:319 +msgid "Managing pages is very similar to managing posts, and the screens can be customized in the same way." +msgstr "Gestionar páginas es muy parecido a gestionar entradas y las pantallas se pueden personalizar de la misma manera." + +#: wp-admin/edit-form-advanced.php:316 wp-admin/edit.php:311 +msgid "Pages are similar to posts in that they have a title, body text, and associated metadata, but they are different in that they are not part of the chronological blog stream, kind of like permanent posts. Pages are not categorized or tagged, but can have a hierarchy. You can nest pages under other pages by making one the “Parent” of the other, creating a group of pages." +msgstr "" +"Las páginas son similares a las entradas en que tienen un título, cuerpo y metadatos asociados. Son diferentes en que no son parte de la corriente cronológica del blog, siendo una especie de entradas permanentes. \n" +"Las páginas no están categorizadas o etiquetadas, pero pueden tener jerarquía. Puedes anidar páginas bajo otras páginas haciendo que una sea «Superior» de otra, creando así grupos de páginas." + +#: wp-admin/edit-comments.php:223 +msgid "Many people take advantage of keyboard shortcuts to moderate their comments more quickly. Use the link to the side to learn more." +msgstr "Muchas personas aprovechan los atajos de teclado para moderar los comentarios más rápido. Utiliza el enlace del lateral para aprender más sobre esto." + +#: wp-admin/edit-comments.php:219 +msgid "In the Author column, in addition to the author’s name, email address, and site URL, the commenter’s IP address is shown. Clicking on this link will show you all the comments made from this IP address." +msgstr "En la columna de Autor, además del nombre del autor, dirección de correo electrónico y URL del sitio, se muestra la dirección IP del comentarista. Haciendo clic en este enlace se te mostrarán todos los comentarios realizados desde esta dirección IP." + +#: wp-admin/edit-comments.php:210 +msgid "You can manage comments made on your site similar to the way you manage posts and other content. This screen is customizable in the same ways as other management screens, and you can act on comments using the on-hover action links or the bulk actions." +msgstr "Puedes gestionar los comentarios hechos en tu sitio de igual forma que gestionas las entradas y el resto del contenido. Esta pantalla es personalizable de la misma forma que el resto de pantallas de gestión y puedes actuar sobre los comentarios usando los enlaces de acción al pasar el cursor o las acciones en lote." + +#: wp-admin/index.php:52 +msgid "Links in the Toolbar at the top of the screen connect your dashboard and the front end of your site, and provide access to your profile and helpful WordPress information." +msgstr "Los enlaces de la barra de herramientas de la parte superior de la pantalla conectan tu escritorio y tu sitio y proporcionan acceso a tu perfil e información valiosa de WordPress. " + +#: wp-admin/link-manager.php:71 +msgid "Deleting Links" +msgstr "Borrar enlaces" + +#: wp-admin/link-manager.php:64 +msgid "Links may be separated into Link Categories; these are different than the categories used on your posts." +msgstr "Los enlaces pueden dividirse en categorías de enlaces; estas son diferentes de las categorías utilizadas en las entradas" + +#. translators: 1: URL to About screen, 2: WordPress version. +#: wp-admin/update-core.php:292 +msgid "Learn more about WordPress %2$s." +msgstr "Aprende más sobre WordPress %2$s." + +#: wp-admin/users.php:55 +msgid "Edit takes you to the editable profile screen for that user. You can also reach that screen by clicking on the username." +msgstr "Editar te lleva a la pantalla de edición de perfil para ese usuario. Puedes llegar también a esa pantalla haciendo clic sobre su nombre de usuario." + +#: wp-admin/users.php:53 +msgid "Hovering over a row in the users list will display action links that allow you to manage users. You can perform the following actions:" +msgstr "Pasando el cursor por encima de una línea en la lista de usuarios, se mostrarán los enlaces de acción para gestionar usuarios. Puedes realizar las siguientes acciones:" + +#: wp-admin/users.php:48 +msgid "You can view all posts made by a user by clicking on the number under the Posts column." +msgstr "Puedes ver todas las entradas escritas por un usuario haciendo clic en el número que hay bajo la columna de entradas." + +#: wp-admin/users.php:46 +msgid "You can hide/display columns based on your needs and decide how many users to list per screen using the Screen Options tab." +msgstr "Puedes mostrar/ocultar columnas basándote en tus necesidades y decidir cuántos usuarios listar por pantalla utilizando la pestaña de Opciones de Pantalla." + +#: wp-admin/edit.php:317 +msgid "Managing Pages" +msgstr "Gestionando páginas" + +#: wp-admin/edit.php:281 +msgid "Preview will show you what your draft post will look like if you publish it. View will take you to your live site to view the post. Which link is available depends on your post’s status." +msgstr "Previsualización te mostrará cómo se verá tu borrador si lo publicas. «Ver» te llevará a tu sitio para ver la entrada. El enlace que se muestra depende del estado de la entrada." + +#: wp-admin/edit.php:280 +msgid "Trash removes your post from this list and places it in the Trash, from which you can permanently delete it." +msgstr "Papelera elimina tu entrada de esta lista y la coloca en la papelera, donde puedes borrarla de forma permanente. " + +#: wp-admin/edit.php:279 +msgid "Quick Edit provides inline access to the metadata of your post, allowing you to update post details without leaving this screen." +msgstr "Edición Rápida proporciona acceso en línea a los metadatos de tu entrada, permitiéndote actualizar detalles de la entrada sin dejar la pantalla. " + +#: wp-admin/edit.php:278 +msgid "Edit takes you to the editing screen for that post. You can also reach that screen by clicking on the post title." +msgstr "Editar te lleva a la pantalla de edición de esa entrada. También puedes llegar hasta ella haciendo clic en el título de la entrada." + +#: wp-admin/user-new.php:280 +msgid "Because this is a multisite installation, you may add accounts that already exist on the Network by specifying a username or email, and defining a role. For more options, such as specifying a password, you have to be a Network Administrator and use the hover link under an existing user’s name to Edit the user profile under Network Admin > All Users." +msgstr "En una instalación multisitio puedes añadir cuentas que ya existen en la Red especificando el nombre de usuario o la contraseña con la que están registrados en la misma, y definiendo un rol. Para más opciones, como especificar una contraseña, debes ser Administrador de la Red y utilizar el enlace que aparece al pasar sobre los nombres de usuario. Puedes encontrar esta opción bajo Administración de Red > Todos los Usuarios." + +#: wp-admin/about.php:65 +msgid "Welcome to WordPress 6.9" +msgstr "Te damos la bienvenida a WordPress 6.9" + +#: wp-admin/about.php:278 +msgid "Go to Dashboard → Home" +msgstr "Ir a Escritorio → Inicio" + +#: wp-admin/about.php:271 +msgid "Go to Dashboard → Updates" +msgstr "Ir a Escritorio → Actualizaciones" + +#: wp-admin/user-edit.php:217 +msgid "Profile updated." +msgstr "Perfil actualizado." + +#. translators: %s: HTML attributes for button. +#: wp-admin/includes/media.php:3038 +msgid "You are using the multi-file uploader. Problems? Try the instead." +msgstr "Estás usando la subida de multiples archivos. ¿Tienes problemas?, prueba ." + +#. translators: 1: Site title, 2: Site URL, 3: User role, 4: Activation URL. +#: wp-admin/user-new.php:127 +msgid "" +"Hi,\n" +"\n" +"You've been invited to join '%1$s' at\n" +"%2$s with the role of %3$s.\n" +"\n" +"Please click the following link to confirm the invite:\n" +"%4$s" +msgstr "" +"Hola,\n" +"\n" +"Has sido invitado a participar de '%1s' en\n" +"%2$s como %3$s.\n" +"\n" +"Por favor, haz clic en el enlace para aceptar la invitación:\n" +"%4$s" + +#: wp-admin/credits.php:147 +msgid "Core Developer" +msgstr "Desarrollador del núcleo" + +#: wp-admin/includes/class-plugin-upgrader.php:490 +msgid "No valid plugins were found." +msgstr "No se encontraron plugins." + +#: wp-admin/includes/class-plugin-upgrader.php:82 +msgid "The plugin contains no files." +msgstr "El plugin no contiene archivos." + +#: wp-admin/includes/class-wp-upgrader.php:205 +msgid "The package could not be installed." +msgstr "No se ha podido descomprimir el paquete." + +#: wp-admin/includes/media.php:1290 +msgid "Attachment Post URL" +msgstr "URL del adjunto a la entrada" + +#: wp-admin/menu.php:91 +msgctxt "admin menu" +msgid "All Links" +msgstr "Todos los enlaces" + +#. translators: %s: Number of plugins. +#: wp-admin/includes/plugin-install.php:298 +msgid "%s plugins" +msgstr "%d plugins" + +#. translators: %s: Number of plugins. +#: wp-admin/includes/plugin-install.php:296 +msgid "%s plugin" +msgstr "%d plugin" + +#. translators: 1: Table name. 2: Error message. +#: wp-admin/maint/repair.php:151 +msgid "Failed to optimize the %1$s table. Error: %2$s" +msgstr "Fallo al optimizar la tabla %1$s . Error: %2$s" + +#. translators: %s: Table name. +#: wp-admin/maint/repair.php:148 +msgid "Successfully optimized the %s table." +msgstr "Optimizada correctamente la tabla %s." + +#. translators: %s: Table name. +#: wp-admin/maint/repair.php:141 +msgid "The %s table is already optimized." +msgstr "La tabla %s ya está optimizada." + +#. translators: %s: Table name. +#: wp-admin/maint/repair.php:126 +msgid "Successfully repaired the %s table." +msgstr "La tabla %s se ha reparado correctamente." + +#. translators: %s: Table name. +#: wp-admin/maint/repair.php:116 +msgid "The %s table is okay." +msgstr "La tabla %s está correcta." + +#. translators: %s: Plugin version. +#: wp-admin/update-core.php:577 +msgid "View version %s details." +msgstr "Ver detalles de la versión %s." + +#: wp-admin/includes/import.php:217 +msgid "Tumblr" +msgstr "Tumblr" + +#. translators: 1: Browser update URL, 2: Browser name, 3: Browse Happy URL. +#: wp-admin/includes/dashboard.php:1759 +msgid "Update %2$s or learn how to browse happy" +msgstr "Actualiza %2$s o aprende cómo navegar feliz" + +#. translators: 1: Link start tag, 2: Link end tag, 3: Width, 4: Height. +#: wp-admin/includes/media.php:3092 +msgid "Scale images to match the large size selected in %1$simage options%2$s (%3$d × %4$d)." +msgstr "Escala las imágenes para que coincidan con el tamaño mayor seleccionado en las %1$sopciones de imágenes%2$s (%3$d × %4$d)." + +#: wp-admin/includes/media.php:2958 +msgid "Audio, Video, or Other File" +msgstr "Audio, vídeo u otro archivo." + +#: wp-admin/includes/media.php:2428 +msgid "Insert media from another website" +msgstr "Insertar medio desde otra web" + +#: wp-admin/includes/file.php:2507 +msgid "Error: Could not connect to the server. Please verify the settings are correct." +msgstr "Error: No se ha podido conectar con el servidor. Por favor, verifica que los ajustes son correctos." + +#: wp-admin/index.php:64 +msgid "Drag and Drop — To rearrange the boxes, drag and drop by clicking on the title bar of the selected box and releasing when you see a gray dotted-line rectangle appear in the location you want to place the box." +msgstr "Arrastrar y soltar — Para reorganizar las cajas, arrástralas haciendo clic en la barra de título de la caja seleccionada y suéltalas cuando veas aparecer un rectángulo de puntos en el lugar donde quieras situarlas." + +#: wp-admin/index.php:62 +msgid "You can use the following controls to arrange your Dashboard screen to suit your workflow. This is true on most other administration screens as well." +msgstr "Puedes usar los controles siguientes para organizar tu escritorio, de modo que se adapte a tu rutina de trabajo. Puedes hacer lo mismo en la mayoría de las secciones de administración." + +#: wp-admin/index.php:51 +msgid "The left-hand navigation menu provides links to all of the WordPress administration screens, with submenu items displayed on hover. You can minimize this menu to a narrow icon strip by clicking on the Collapse Menu arrow at the bottom." +msgstr "El menú de navegación de la izquierda proporciona enlaces a todas las pantallas de administración de WordPress, con elementos de submenú que aparecen al pasar el cursor sobre ellos. Puedes minimizar este menú para que sea una barra estrecha de iconos haciendo clic en la flecha del menú Cerrar en la parte inferior." + +#. translators: %s: Number of pending updates. +#. translators: %s: Number of available updates. +#: wp-admin/menu.php:55 wp-admin/network/menu.php:35 +msgid "Updates %s" +msgstr "Actualizaciones %s" + +#: wp-admin/menu.php:322 wp-admin/network/menu.php:110 +msgid "Installed Plugins" +msgstr "Plugins instalados" + +#. translators: %s: Number of available plugin updates. +#: wp-admin/menu.php:320 wp-admin/network/menu.php:93 +msgid "Plugins %s" +msgstr "Plugins %s" + +#: wp-admin/menu.php:344 wp-admin/network/menu.php:61 +msgid "All Users" +msgstr "Todos los usuarios" + +#: wp-admin/includes/ms.php:999 wp-admin/users.php:446 +msgid "Confirm Deletion" +msgstr "Confirmar borrado" + +#: wp-admin/includes/class-wp-users-list-table.php:376 +#: wp-admin/user-edit.php:451 wp-admin/user-new.php:478 +#: wp-admin/user-new.php:639 wp-admin/network/site-users.php:345 +#: wp-admin/network/site-users.php:386 +msgid "Role" +msgstr "Perfil" + +#: wp-admin/user-edit.php:271 wp-admin/user-new.php:393 +#: wp-admin/user-new.php:447 wp-admin/user-new.php:508 wp-admin/users.php:789 +#: wp-admin/network/site-users.php:336 +msgid "Add Existing User" +msgstr "Añadir usuario existente" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/dashboard.php:497 wp-admin/includes/dashboard.php:501 +#: wp-admin/users.php:810 wp-admin/network/site-users.php:312 +#: wp-admin/network/users.php:312 +msgid "Search Users" +msgstr "Buscar usuarios" + +#: wp-admin/users.php:722 wp-admin/network/site-users.php:283 +msgid "User removed from this site." +msgstr "Usuario eliminado de este sitio." + +#: wp-admin/users.php:676 wp-admin/network/site-users.php:276 +msgid "Changed roles." +msgstr "Perfiles cambiados." + +#: wp-admin/comment.php:175 wp-admin/plugins.php:346 wp-admin/plugins.php:360 +#: wp-admin/theme-editor.php:380 wp-admin/includes/network.php:473 +#: wp-admin/network/themes.php:140 wp-admin/network/themes.php:151 +msgid "Caution:" +msgstr "Precaución:" + +#: wp-admin/user-new.php:382 wp-admin/network/site-users.php:263 +#: wp-admin/network/user-new.php:91 wp-admin/network/users.php:272 +msgid "User added." +msgstr "Usuario añadido." + +#: wp-admin/includes/class-wp-users-list-table.php:455 +#: wp-admin/user-edit.php:476 +#: wp-admin/includes/class-wp-ms-users-list-table.php:287 +msgid "Super Admin" +msgstr "Super administrador" + +#. translators: %s: Plugin version. +#. translators: %s: Plugin version number. +#. translators: %s: Theme version number. +#. translators: %s: WordPress version. +#. translators: %s: Theme version. +#: wp-admin/includes/ajax-actions.php:4644 +#: wp-admin/includes/ajax-actions.php:4687 +#: wp-admin/includes/class-wp-debug-data.php:803 +#: wp-admin/includes/class-wp-debug-data.php:979 +#: wp-admin/includes/class-wp-debug-data.php:1367 +#: wp-admin/includes/class-wp-plugins-list-table.php:1172 +#: wp-admin/includes/update.php:250 wp-admin/includes/update.php:290 +#: wp-admin/index.php:113 +#: wp-admin/includes/class-wp-ms-themes-list-table.php:736 +msgid "Version %s" +msgstr "Versión %s" + +#. translators: %s: Number of plugins. +#: wp-admin/includes/class-wp-plugins-list-table.php:565 +msgid "Update Available (%s)" +msgid_plural "Update Available (%s)" +msgstr[0] "Actualización disponible (%s)" +msgstr[1] "Actualizaciones disponibles (%s)" + +#: wp-admin/includes/class-wp-plugins-list-table.php:900 +#: wp-admin/includes/class-wp-plugins-list-table.php:917 +msgid "Deactivate" +msgstr "Desactivar" + +#: wp-admin/menu.php:396 wp-admin/ms-delete-site.php:39 +msgid "Delete Site" +msgstr "Borrar sitio" + +#: wp-admin/my-sites.php:60 wp-admin/options-head.php:20 +#: wp-admin/options.php:368 wp-admin/network/settings.php:142 +#: wp-admin/network/sites.php:380 +msgid "Settings saved." +msgstr "Ajustes guardados." + +#: wp-admin/comment.php:71 wp-admin/edit-comments.php:228 +#: wp-admin/edit-form-advanced.php:311 wp-admin/edit-form-advanced.php:328 +#: wp-admin/edit-form-advanced.php:347 wp-admin/edit-link-form.php:75 +#: wp-admin/edit-tags.php:305 wp-admin/edit.php:300 wp-admin/edit.php:325 +#: wp-admin/erase-personal-data.php:64 wp-admin/export-personal-data.php:64 +#: wp-admin/export.php:58 wp-admin/import.php:31 +#: wp-admin/includes/class-custom-background.php:109 +#: wp-admin/includes/class-custom-image-header.php:144 +#: wp-admin/includes/ms.php:1173 wp-admin/index.php:131 +#: wp-admin/link-manager.php:78 wp-admin/media-new.php:60 +#: wp-admin/my-sites.php:51 wp-admin/nav-menus.php:772 +#: wp-admin/options-discussion.php:31 wp-admin/options-general.php:59 +#: wp-admin/options-media.php:40 wp-admin/options-permalink.php:59 +#: wp-admin/options-privacy.php:46 wp-admin/options-reading.php:52 +#: wp-admin/options-writing.php:52 wp-admin/plugin-editor.php:156 +#: wp-admin/plugin-install.php:120 wp-admin/plugins.php:619 +#: wp-admin/revision.php:157 wp-admin/site-health.php:89 +#: wp-admin/theme-editor.php:51 wp-admin/theme-install.php:154 +#: wp-admin/themes.php:206 wp-admin/tools.php:55 wp-admin/update-core.php:1052 +#: wp-admin/upload.php:199 wp-admin/upload.php:401 wp-admin/user-edit.php:77 +#: wp-admin/user-new.php:314 wp-admin/users.php:81 wp-admin/widgets-form.php:70 +#: wp-admin/network.php:67 wp-admin/network.php:80 +#: wp-admin/network/index.php:55 wp-admin/network/settings.php:63 +#: wp-admin/network/site-new.php:31 wp-admin/network/sites.php:43 +#: wp-admin/network/themes.php:337 wp-admin/network/upgrade.php:36 +#: wp-admin/network/user-new.php:28 wp-admin/network/users.php:241 +msgid "For more information:" +msgstr "Para más información:" + +#: wp-admin/edit-form-advanced.php:322 +msgid "About Pages" +msgstr "Acerca de las páginas" + +#: wp-admin/edit-form-advanced.php:300 +msgid "Title and Post Editor" +msgstr "Título y editor de entradas" + +#: wp-admin/edit-form-advanced.php:280 +msgid "Customizing This Display" +msgstr "Personalizando esta pantalla" + +#: wp-admin/options-reading.php:211 +msgid "Note: Neither of these options blocks access to your site — it is up to search engines to honor your request." +msgstr "Nota: ninguna de estas opciones bloquea el acceso a tu sitio — depende de los motores de búsqueda respetar tu solicitud." + +#: wp-admin/options-permalink.php:270 +msgid "Post name" +msgstr "Nombre de la entrada" + +#: wp-admin/options-permalink.php:254 wp-admin/options-permalink.php:260 +#: wp-admin/options-permalink.php:272 +msgctxt "sample permalink structure" +msgid "sample-post" +msgstr "pagina-ejemplo" + +#: wp-admin/options-permalink.php:265 wp-admin/options-permalink.php:266 +msgctxt "sample permalink base" +msgid "archives" +msgstr "archivos" + +#. translators: %s: URL to Import screen on the main site. +#: wp-admin/import.php:171 +msgid "This importer is not installed. Please install importers from the main site." +msgstr "Este importador no está instalado. Por favor, instala los importadores desde el sitio principal." + +#: wp-admin/includes/class-wp-debug-data.php:177 +#: wp-admin/options-general.php:322 wp-admin/network/site-new.php:250 +msgid "Site Language" +msgstr "Idioma del sitio" + +#: wp-admin/options-discussion.php:52 +msgid "Attempt to notify any blogs linked to from the post" +msgstr "Intentar avisar a cualquier blog enlazado desde la entrada" + +#. translators: 1: Site title, 2: Site URL, 3: User role. +#: wp-admin/includes/user.php:620 +msgid "" +"Hi,\n" +"You've been invited to join '%1$s' at\n" +"%2$s with the role of %3$s.\n" +"If you do not want to join this site please ignore\n" +"this email. This invitation will expire in a few days.\n" +"\n" +"Please click the following link to activate your user account:\n" +"%%s" +msgstr "" +"Hola.\n" +"Has sido invitado a unirte a '%1$s' en\n" +"%2$s con el perfil de %3$s.\n" +"Si no quieres unirte a este sitio, por favor, ignora este correo electrónico\n" +"Esta invitación caducará en unos días.\n" +"\n" +"Por favor, haga clic en el siguiente enlace para activar su cuenta de usuario:\n" +"%%s" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/meta-boxes.php:537 wp-admin/includes/theme.php:344 +msgid "Post Formats" +msgstr "Formatos de entradas" + +#: wp-admin/includes/theme.php:343 +msgid "Full Width Template" +msgstr "Plantilla de anchura completa" + +#: wp-admin/includes/theme.php:340 +msgid "Featured Images" +msgstr "Imágenes destacadas" + +#: wp-admin/includes/theme.php:339 +msgid "Featured Image Header" +msgstr "Imagen de cabecera" + +#. translators: %s: Browser name and link. +#: wp-admin/includes/dashboard.php:1730 +msgid "It looks like you're using an old version of %s. For the best WordPress experience, please update your browser." +msgstr "Parece que estás usando una versión antigua de %s. Para una mejor experiencia usando WordPress, actualiza tu navegador, por favor." + +#. translators: %s: Browser name and link. +#: wp-admin/includes/dashboard.php:1724 +msgid "It looks like you're using an insecure version of %s. Using an outdated browser makes your computer unsafe. For the best WordPress experience, please update your browser." +msgstr "Parece que usas una versión insegura de %s. Usar un navegador obsoleto hace que tu ordenador sea inseguro. Para tener la mejor experiencia en WordPress, por favor, actualiza tu navegador." + +#: wp-admin/includes/nav-menu.php:1321 +msgid "There are some invalid menu items. Please check or delete them." +msgstr "Hay algunos elementos de menú no válidos. Por favor, compruébalos o elimínalos." + +#: wp-admin/edit-tag-form.php:150 wp-admin/edit-tags.php:464 +#: wp-admin/includes/class-wp-terms-list-table.php:192 +#: wp-admin/includes/class-wp-terms-list-table.php:219 +#: wp-admin/includes/class-wp-terms-list-table.php:696 +msgctxt "term name" +msgid "Name" +msgstr "Nombre" + +#: wp-admin/includes/template.php:592 wp-admin/includes/template.php:607 +#: wp-admin/includes/template.php:742 +msgctxt "meta name" +msgid "Name" +msgstr "Nombre" + +#: wp-admin/themes.php:685 +msgctxt "theme name" +msgid "Name" +msgstr "Nombre" + +#. translators: %s: Theme Directory URL. +#: wp-admin/theme-install.php:109 +msgid "You can find additional themes for your site by using the Theme Browser/Installer on this screen, which will display themes from the WordPress Theme Directory. These themes are designed and developed by third parties, are available free of charge, and are compatible with the license WordPress uses." +msgstr "Puedes encontrar más temas para tu sitio usando el buscador/instalador de temas que hay en esta misma página, donde se mostrarán los temas del directorio de temas de WordPress. Estos temas los diseñan y desarrollan terceros y están disponibles sin cargo (gratis) y son compatibles con la licencia que utiliza WordPress." + +#. translators: %s: WordPress Plugin Directory URL. +#: wp-admin/plugins.php:569 +msgid "If you would like to see more plugins to choose from, click on the “Add Plugin” button and you will be able to browse or search for additional plugins from the WordPress Plugin Directory. Plugins in the WordPress Plugin Directory are designed and developed by third parties, and are compatible with the license WordPress uses. Oh, and they are free!" +msgstr "Si quieres ver más plugins entre los que elegir, haz clic en el botón «Añadir plugin» y podrás navegar o buscar más plugins del directorio de plugins de WordPress.org. Los plugins del directorio de WordPress.org están diseñados por terceros y son compatibles con la licencia que utiliza WordPress. Ah, y además ¡son gratis!" + +#. translators: %s: MAX_FILE_SIZE +#: wp-admin/includes/file.php:898 +msgid "The uploaded file exceeds the %s directive that was specified in the HTML form." +msgstr "El archivo subido excede la directiva %s que se ha especificado en el formulario HTML." + +#: wp-admin/credits.php:160 +msgid "External Libraries" +msgstr "Bibliotecas externas" + +#: wp-admin/menu.php:399 wp-admin/network.php:53 wp-admin/network/menu.php:117 +msgid "Network Setup" +msgstr "Configuración de la red" + +#: wp-admin/menu.php:388 +msgid "Available Tools" +msgstr "Herramientas disponibles" + +#: wp-admin/includes/credits.php:101 +msgctxt "Translate this to be the equivalent of English Translators in your language for the credits page Translators section" +msgid "Translators" +msgstr "Traductores" + +#. translators: 1: URL to Plugins screen, 2: URL to Themes screen, 3: +#. https://wordpress.org/about/license +#: wp-admin/freedoms.php:109 +msgid "Every plugin and theme in WordPress.org’s directory is 100%% GPL or a similarly free and compatible license, so you can feel safe finding plugins and themes there. If you get a plugin or theme from another source, make sure to ask them if it’s GPL first. If they do not respect the WordPress license, it is not recommended to use them." +msgstr "Cada plugin y tema del directorio de WordPress.org es 100%% GPL o con una licencia libre similar y compatible, así que aquí puedes sentirte seguro buscando plugins y temas. Si obtienes un plugin o tema desde otra fuente, asegúrate primero de preguntar si es GPL. Si no respeta la licencia de WordPress, no se recomienda usarlo." + +#. translators: %s: https://wordpressfoundation.org/trademark-policy +#: wp-admin/freedoms.php:97 +msgid "WordPress grows when people like you tell their friends about it, and the thousands of businesses and services that are built on and around WordPress share that fact with their users. The WordPress community is flattered every time someone spreads the good word, just make sure to check out the WordPress Foundation trademark guidelines first." +msgstr "WordPress crece cuando personas como tú hablan de él a sus amigos, y los miles de negocios y servicios que se construyen sobre y alrededor de WordPress lo comparten con sus usuarios. La comunidad WordPress nos sentimos halagados cada vez que alguien hace correr la voz, pero asegúrate de consultar primero las directrices de marca registrada de la Fundación WordPress." + +#: wp-admin/menu.php:119 +msgid "All Comments" +msgstr "Todos los comentarios" + +#: wp-admin/credits.php:141 +msgid "Lead Developer" +msgstr "Desarrollador principal" + +#: wp-admin/credits.php:140 +msgid "Cofounder, Project Lead" +msgstr "Co-fundador, líder del proyecto" + +#. translators: %s: The current WordPress version number. +#: wp-admin/credits.php:138 +msgid "Core Contributors to WordPress %s" +msgstr "Colaboradores del núcleo de WordPress %s" + +#: wp-admin/credits.php:136 +msgid "Project Leaders" +msgstr "Líderes de proyecto" + +#: wp-admin/about.php:57 wp-admin/contribute.php:44 wp-admin/credits.php:14 +#: wp-admin/credits.php:47 wp-admin/freedoms.php:50 wp-admin/privacy.php:44 +msgid "Credits" +msgstr "Agradecimientos" + +#: wp-admin/widgets-form.php:461 +msgctxt "removing-widget" +msgid "Deactivate" +msgstr "Desactivar" + +#: wp-admin/includes/dashboard.php:37 +msgid "Your browser is out of date!" +msgstr "¡Tu navegador está obsoleto!" + +#: wp-admin/includes/dashboard.php:35 +msgid "You are using an insecure browser!" +msgstr "¡Estás usando un navegador inseguro!" + +#: wp-admin/about.php:58 wp-admin/contribute.php:45 wp-admin/credits.php:48 +#: wp-admin/freedoms.php:19 wp-admin/freedoms.php:51 wp-admin/privacy.php:45 +msgid "Freedoms" +msgstr "Derechos" + +#: wp-admin/includes/class-custom-image-header.php:717 +msgid "You can use one of these cool headers or show a random one on each page." +msgstr "Puedes usar una de estas cabeceras tan chulas o mostrarlas aleatoriamente en cada página." + +#: wp-admin/includes/class-custom-image-header.php:715 +msgid "If you do not want to upload your own image, you can use one of these cool headers, or show a random one." +msgstr "Si no quieres subir tu propia imagen puedes usar una de estas cabeceras tan chulas o ir mostrándolas aleatoriamente." + +#: wp-admin/includes/class-custom-image-header.php:701 +msgid "You can choose one of your previously uploaded headers, or show a random one." +msgstr "Puedes elegir una las cabeceras que ya has subido o que se muestren aleatoriamente." + +#: wp-admin/menu-header.php:287 +msgid "Collapse Menu" +msgstr "Cerrar menú" + +#: wp-admin/includes/class-custom-image-header.php:699 +msgid "Uploaded Images" +msgstr "Imágenes subidas" + +#: wp-admin/includes/class-custom-image-header.php:325 +msgid "Random: Show a different image on each page." +msgstr "Aleatoria: Muestra una imagen diferente en cada página." + +#: wp-admin/users.php:356 +msgid "You have specified this user for deletion:" +msgstr "Has marcado a este usuario para su eliminación:" + +#. translators: %s: Template name. +#: wp-admin/includes/file.php:93 +msgid "%s Page Template" +msgstr "Plantilla de página %s" + +#: wp-admin/includes/ajax-actions.php:4749 wp-admin/plugins.php:667 +msgid "You cannot delete a plugin while it is active on the main site." +msgstr "No puedes borrar un plugin si está activado para el sitio principal." + +#: wp-admin/plugins.php:346 +msgid "This plugin may be active on other sites in the network." +msgstr "Este plugin puede estar activado para otros sitios de la red." + +#: wp-admin/options-writing.php:102 +msgid "Default Post Format" +msgstr "Formato de entrada por defecto" + +#: wp-admin/plugin-editor.php:151 wp-admin/theme-editor.php:46 +msgid "Any edits to files from this screen will be reflected on all sites in the network." +msgstr "Cualquier modificación de los archivos se verá reflejada en todos los sitios de la red." + +#: wp-admin/users.php:35 +msgid "This screen lists all the existing users for your site. Each user has one of five defined roles as set by the site admin: Site Administrator, Editor, Author, Contributor, or Subscriber. Users with roles other than Administrator will see fewer options in the dashboard navigation when they are logged in, based on their role." +msgstr "Esta pantalla muestra todos los usuarios existentes para tu sitio. Cada usuario dispone de uno de los cinco perfiles definidos, según lo establecido por el administrador del sitio: administrador del sitio, editor, autor, colaborador o suscriptor. Los usuarios con perfiles que no sean de administrador verán menos opciones en el panel de navegación cuando se hayan identificado, en base a su perfil." + +#: wp-admin/plugin-editor.php:150 +msgid "If you want to make changes but do not want them to be overwritten when the plugin is updated, you may be ready to think about writing your own plugin. For information on how to edit plugins, write your own from scratch, or just better understand their anatomy, check out the links below." +msgstr "Si quieres hacer cambios, pero no quieres que se sobreescriban cuando se actualice el plugin, puede que estés listo para pensar en escribir tu propio plugin. Para obtener información sobre cómo editar plugins, escribir desde cero el tuyo o, simplemente, entender mejor su anatomía, echa un vistazo a los siguientes enlaces." + +#: wp-admin/index.php:75 +msgid "The boxes on your Dashboard screen are:" +msgstr "Las cajas en tu Escritorio son:" + +#. translators: Default page slug. +#: wp-admin/includes/upgrade.php:354 +msgid "sample-page" +msgstr "pagina-ejemplo" + +#: wp-admin/includes/upgrade.php:352 +msgid "Sample Page" +msgstr "Página de ejemplo" + +#: wp-admin/options-discussion.php:279 +msgid "Retro (Generated)" +msgstr "Retro (autogenerado)" + +#. translators: %s: URL to Themes tab on Edit Site screen. +#: wp-admin/includes/class-wp-themes-list-table.php:110 +msgid "You only have one theme enabled for this site right now. Visit the Network Admin to enable more themes." +msgstr "En este momento, solo tienes un tema activado para este sitio. Visita la administración de la red para activar más temas." + +#. translators: 1: URL to Themes tab on Edit Site screen, 2: URL to Add Themes +#. screen. +#: wp-admin/includes/class-wp-themes-list-table.php:101 +msgid "You only have one theme enabled for this site right now. Visit the Network Admin to enable or install more themes." +msgstr "Solo tienes un tema activado para este sitio. Ve a la administración de la red para activar o instalar más temas." + +#. translators: %s: URL to Add Themes screen. +#: wp-admin/includes/class-wp-themes-list-table.php:121 +msgid "You only have one theme installed right now. Live a little! You can choose from over 1,000 free themes in the WordPress Theme Directory at any time: just click on the Install Themes tab above." +msgstr "Tienes solo un tema instalado ahora mismo. ¡Disfruta de la vida! Puedes elegir entre más de 1.000 temas gratuitos en el directorio de temas de WordPress.org cuando quieras: solo tienes que hacer clic en la pestaña Instalar temas de arriba." + +#: wp-admin/maint/repair.php:180 +msgid "One or more database tables are unavailable. To allow WordPress to attempt to repair these tables, press the “Repair Database” button. Repairing can take a while, so please be patient." +msgstr "Una o más tablas no están disponibles. Para permitir a WordPress que intente repararlas, pulse el botón «Reparar bases de datos». La reparación puede llevar un rato. Ten paciencia, por favor." + +#: wp-admin/includes/file.php:56 +msgid "Visual Editor RTL Stylesheet" +msgstr "Editor visual de hojas de estilos RTL" + +#: wp-admin/theme-editor.php:381 +msgid "This is a file in your current parent theme." +msgstr "Este es un archivo del tema padre actual." + +#. translators: %s: Link to edit parent theme. +#: wp-admin/theme-editor.php:330 +msgid "This child theme inherits templates from a parent theme, %s." +msgstr "Este tema hijo hereda plantillas de un tema padre, %s." + +#: wp-admin/includes/class-theme-installer-skin.php:166 +#: wp-admin/js/updates.js:1804 +#: wp-admin/includes/class-wp-ms-themes-list-table.php:469 +#: wp-admin/includes/class-wp-ms-themes-list-table.php:594 +msgid "Network Enable" +msgstr "Activar para la red" + +#: wp-admin/upgrade.php:173 +msgid "Your WordPress database has been successfully updated!" +msgstr "¡La base de datos de WordPress se ha actualizado correctamente!" + +#: wp-admin/upgrade.php:172 +msgid "Update Complete" +msgstr "Actualización completada" + +#: wp-admin/upgrade.php:162 +msgid "Update WordPress Database" +msgstr "Actualizar la base de datos de WordPress" + +#: wp-admin/upgrade.php:161 wp-admin/network/upgrade.php:145 +msgid "The database update process may take a little while, so please be patient." +msgstr "El proceso de actualización de la base de datos puede tardar un poco, por favor, ten paciencia." + +#: wp-admin/upgrade.php:159 wp-admin/network/upgrade.php:141 +msgid "Database Update Required" +msgstr "Es necesaria una actualización de la base de datos" + +#: wp-admin/upgrade.php:92 +msgid "No Update Required" +msgstr "No es necesaria la actualización" + +#: wp-admin/upgrade.php:84 +msgid "WordPress › Update" +msgstr "Actualización de WordPress" + +#. translators: %s: WordPress version. +#: wp-admin/update-core.php:188 +msgid "You are about to install WordPress %s in English (US). There is a chance this update will break your translation. You may prefer to wait for the localized version to be released." +msgstr "Se va a instalar WordPress %s en inglés (US). Existe la posibilidad de que esta actualización rompa tu traducción. Puede que prefieras esperar a que salga la versión local." + +#. translators: 1: Plugin name, 2: Details URL, 3: Additional link attributes, +#. 4: Version number. +#: wp-admin/includes/update.php:539 +msgid "There is a new version of %1$s available. View version %4$s details. Automatic update is unavailable for this plugin." +msgstr "Hay disponible una nueva versión de %1$s. Ver los detalles de la versión %4$s. La actualización automática no está disponible para este plugin." + +#: wp-admin/includes/class-theme-upgrader-skin.php:44 wp-admin/update.php:219 +msgid "Update Theme" +msgstr "Actualizar tema" + +#: wp-admin/includes/class-plugin-upgrader-skin.php:62 wp-admin/update.php:63 +msgid "Update Plugin" +msgstr "Actualizar plugin" + +#: wp-admin/includes/class-theme-upgrader.php:64 +#: wp-admin/includes/class-theme-upgrader.php:101 +msgid "Theme updated successfully." +msgstr "El tema se ha actualizado correctamente." + +#: wp-admin/includes/ajax-actions.php:4365 +#: wp-admin/includes/class-theme-upgrader.php:63 +#: wp-admin/includes/class-theme-upgrader.php:100 +msgid "Theme update failed." +msgstr "Ha fallado la actualización del tema." + +#: wp-admin/includes/class-plugin-upgrader.php:65 +#: wp-admin/includes/class-plugin-upgrader.php:92 +msgid "Plugin updated successfully." +msgstr "El plugin se ha actualizado correctamente." + +#: wp-admin/includes/ajax-actions.php:4706 +#: wp-admin/includes/class-plugin-upgrader.php:64 +#: wp-admin/includes/class-plugin-upgrader.php:91 +msgid "Plugin update failed." +msgstr "Ha fallado la actualización del plugin." + +#: wp-admin/includes/class-core-upgrader.php:35 +#: wp-admin/includes/class-language-pack-upgrader.php:115 +#: wp-admin/includes/class-plugin-upgrader.php:58 +#: wp-admin/includes/class-theme-upgrader.php:57 +msgid "Update package not available." +msgstr "Paquete de actualización no disponible." + +#. translators: Hidden accessibility text. +#: wp-admin/export.php:221 wp-admin/export.php:273 wp-admin/export.php:318 +msgid "Date range:" +msgstr "Rango de fechas:" + +#: wp-admin/export.php:201 wp-admin/export.php:253 +msgid "Authors:" +msgstr "Autores:" + +#: wp-admin/export.php:191 +msgid "This will contain all of your posts, pages, comments, custom fields, terms, navigation menus, and custom posts." +msgstr "Esto contendrá todas tus entradas, páginas, comentarios, campos personalizados, menús de navegación y publicaciones personalizadas." + +#: wp-admin/export.php:190 +msgid "All content" +msgstr "Todo el contenido" + +#: wp-admin/export.php:180 +msgid "Choose what to export" +msgstr "Elige qué exportar" + +#. translators: %s: Number of comments. +#: wp-admin/includes/class-wp-comments-list-table.php:253 +msgctxt "comments" +msgid "Mine (%s)" +msgid_plural "Mine (%s)" +msgstr[0] "Mío (%s)" +msgstr[1] "Míos (%s)" + +#. translators: Admin screen title. %s: Admin screen name. +#: wp-admin/admin-header.php:55 +msgid "%s — WordPress" +msgstr "%s — WordPress" + +#: wp-admin/includes/class-wp-comments-list-table.php:555 +msgctxt "column name" +msgid "In Response To" +msgstr "En respuesta a" + +#: wp-admin/widgets-form.php:46 +msgid "The Available Widgets section contains all the widgets you can choose from. Once you drag a widget into a sidebar, it will open to allow you to configure its settings. When you are happy with the widget settings, click the Save button and the widget will go live on your site. If you click Delete, it will remove the widget." +msgstr "La sección de widgets disponibles contiene todos los widgets que puedes elegir. Cuando arrastres el widget a la barra lateral, se abrirá para que puedas configurar sus opciones. Cuando las tengas a tu gusto, haz clic en botón de guardar y el widget se pondrá a funcionar en tu sitio. Si pulsas borrar, se quitará el widget." + +#: wp-admin/edit-form-advanced.php:342 +msgid "Remember to click Update to save metadata entered or changed." +msgstr "Recuerda hacer clic en «Actualizar» para guardar los metadatos que hayas introducido o cambiado." + +#: wp-admin/edit-form-advanced.php:341 +msgid "Note that you crop the image by clicking on it (the Crop icon is already selected) and dragging the cropping frame to select the desired part. Then click Save to retain the cropping." +msgstr "Se recorta la imagen haciendo clic en la misma (el icono de recorte ya estará seleccionado) y arrastrando el marcho de recorte hasta donde se desee. Para fijarla, haz clic en guardar." + +#: wp-admin/edit-form-advanced.php:340 +msgid "For images only, you can click on Edit Image under the thumbnail to expand out an inline image editor with icons for cropping, rotating, or flipping the image as well as for undoing and redoing. The boxes on the right give you more options for scaling the image, for cropping it, and for cropping the thumbnail in a different way than you crop the original image. You can click on Help in those boxes to get more information." +msgstr "(Solo para imágenes) Puedes hacer clic en editar imágenes, debajo de la miniatura, para obtener el menú de edición de imágenes y recortar, rotar o invertir la imagen, así como deshacer y rehacer. Las cajas de la derecha te dan más opciones para escalar y recortar la imagen; y para recortar la miniatura de forma diferente de la imagen original. Puedes hacer clic en la ayuda en esas cajas para obtener más información." + +#: wp-admin/edit-form-advanced.php:339 +msgid "This screen allows you to edit fields for metadata in a file within the media library." +msgstr "Esta pantalla te permite editar los campos para metadatos en un archivo dentro de la biblioteca de medios." + +#: wp-admin/user-new.php:455 +msgid "Email or Username" +msgstr "Correo electrónico o nombre de usuario" + +#: wp-admin/themes.php:235 wp-admin/network/site-themes.php:240 +#: wp-admin/network/themes.php:463 +msgid "Search installed themes" +msgstr "Buscar temas instalados" + +#. translators: %s: Link to documentation on child themes. +#: wp-admin/update-core.php:665 +msgid "Please Note: Any customizations you have made to theme files will be lost. Please consider using child themes for modifications." +msgstr "Atención: Se perderá cualquier personalización que hayas hecho a los archivos del tema. Por favor, plantéate el uso de temas hijos para hacer modificaciones." + +#. translators: %s: Number of posts. +#: wp-admin/includes/class-wp-posts-list-table.php:404 +msgctxt "posts" +msgid "Sticky (%s)" +msgid_plural "Sticky (%s)" +msgstr[0] "Fija (%s)" +msgstr[1] "Fijas (%s)" + +#: wp-admin/update-core.php:1117 +msgid "Check again." +msgstr "Comprobar de nuevo." + +#. translators: 1: Date, 2: Time. +#: wp-admin/update-core.php:1111 +msgid "Last checked on %1$s at %2$s." +msgstr "Última comprobación el %1$s a las %2$s." + +#: wp-admin/update-core.php:1086 +msgid "Please select one or more plugins to update." +msgstr "Por favor, elige uno o más plugins a actualizar." + +#: wp-admin/update-core.php:1076 +msgid "Please select one or more themes to update." +msgstr "Por favor, elige uno o más temas para actualizarlos." + +#: wp-admin/includes/class-bulk-upgrader-skin.php:61 +msgid "The update process is starting. This process may take a while on some hosts, so please be patient." +msgstr "El proceso de actualización está comenzando. Este proceso puede tardar un poco en algunos servidores. Ten paciencia, por favor." + +#: wp-admin/theme-install.php:243 wp-admin/theme-install.php:265 +msgid "Apply Filters" +msgstr "Aplicar filtros" + +#: wp-admin/includes/theme.php:338 +msgid "Editor Style" +msgstr "Estilo del editor" + +#: wp-admin/includes/file.php:2560 +msgid "To perform the requested action, WordPress needs to access your web server." +msgstr "Para realizar la operación que has solicitado WordPress necesita tener acceso a tu servidor web." + +#. translators: Hidden accessibility text. +#: wp-admin/includes/class-wp-list-table.php:1108 +#: wp-admin/includes/class-wp-list-table.php:1117 +msgid "Current Page" +msgstr "Página actual" + +#: wp-admin/includes/class-wp-theme-install-list-table.php:176 +msgid "No themes match your request." +msgstr "Ningún tema se ajusta a lo que buscas." + +#. translators: Hidden accessibility text. +#: wp-admin/includes/dashboard.php:510 wp-admin/includes/dashboard.php:514 +#: wp-admin/network/sites.php:427 +msgid "Search Sites" +msgstr "Buscar sitios" + +#: wp-admin/includes/dashboard.php:454 +msgid "Create a New User" +msgstr "Crear un nuevo usuario" + +#. translators: 1: Text indicating the number of sites on the network, 2: Text +#. indicating the number of users on the network. +#: wp-admin/includes/dashboard.php:466 +msgid "You have %1$s and %2$s." +msgstr "Tienes %1$s y %2$s." + +#. translators: %s: Number of sites on the network. +#: wp-admin/includes/dashboard.php:463 +msgid "%s site" +msgid_plural "%s sites" +msgstr[0] "%s sitio" +msgstr[1] "%s sitios" + +#. translators: %s: Number of users on the network. +#: wp-admin/includes/dashboard.php:461 +msgid "%s user" +msgid_plural "%s users" +msgstr[0] "%s usuario" +msgstr[1] "%s usuarios" + +#: wp-admin/includes/dashboard.php:1547 +msgid "https://wordpress.org/news/feed/" +msgstr "https://es.wordpress.org/feed/" + +#: wp-admin/includes/dashboard.php:1538 +msgid "https://wordpress.org/news/" +msgstr "https://es.wordpress.org/news/" + +#: wp-admin/options-discussion.php:76 +msgid "(Signup has been disabled. Only members of this site can comment.)" +msgstr "(El registro ha sido desactivado. Solo los miembros de este sitio pueden comentar.)" + +#. translators: 1: Theme name, 2: Theme details URL, 3: Additional link +#. attributes, 4: Version number. +#. translators: 1: Plugin name, 2: Details URL, 3: Additional link attributes, +#. 4: Version number. +#. translators: 1: Theme name, 2: Details URL, 3: Additional link attributes, +#. 4: Version number. +#: wp-admin/includes/theme.php:229 wp-admin/includes/update.php:526 +#: wp-admin/includes/update.php:719 +msgid "There is a new version of %1$s available. View version %4$s details." +msgstr "Hay disponible una nueva versión de %1$s. Ver los detalles de la versión %4$s." + +#: wp-admin/includes/class-bulk-theme-upgrader-skin.php:78 +#: wp-admin/includes/class-theme-installer-skin.php:180 +#: wp-admin/includes/class-theme-upgrader-skin.php:127 +msgid "Go to Themes page" +msgstr "Ir a la página de temas" + +#: wp-admin/includes/class-bulk-plugin-upgrader-skin.php:82 +#: wp-admin/includes/class-bulk-theme-upgrader-skin.php:83 +#: wp-admin/includes/class-language-pack-upgrader-skin.php:98 +msgid "Go to WordPress Updates page" +msgstr "Ir a la página de actualizaciones de WordPress" + +#: wp-admin/includes/class-bulk-plugin-upgrader-skin.php:77 +#: wp-admin/includes/class-plugin-installer-skin.php:157 +#: wp-admin/includes/class-plugin-upgrader-skin.php:101 +msgid "Go to Plugins page" +msgstr "Ir a la página de plugins" + +#: wp-admin/includes/nav-menu.php:1312 +msgid "Click Save Menu to make pending menu items public." +msgstr "Haz clic en Guardar menú para hacer públicos los elementos de menú pendientes." + +#: wp-admin/includes/dashboard.php:1664 +msgid "Storage Space" +msgstr "Espacio de almacenamiento" + +#: wp-admin/includes/dashboard.php:451 +msgid "Create a New Site" +msgstr "Crear nuevo sitio" + +#. translators: 1: Image width in pixels, 2: Image height in pixels. +#: wp-admin/includes/class-custom-image-header.php:602 +msgid "Images of exactly %1$d × %2$d pixels will be used as-is." +msgstr "Las imágenes de exactamente %1$d x %2$d pixels se utilizarán como están." + +#: wp-admin/includes/class-custom-image-header.php:952 +msgid "Crop and Publish" +msgstr "Recortar y publicar" + +#: wp-admin/edit-link-form.php:70 +msgid "XFN stands for XHTML Friends Network, which is optional. WordPress allows the generation of XFN attributes to show how you are related to the authors/owners of the site to which you are linking." +msgstr "XFN se refiere a la red de amigos XHTML, que es opcional. WordPress permite la generación de atributos XFN para mostrar cómo te relacionas con los autores/propietarios del sitio al que estás enlazando." + +#: wp-admin/includes/file.php:2570 +msgid "FTP Password" +msgstr "Contraseña FTP" + +#: wp-admin/includes/file.php:2569 +msgid "FTP Username" +msgstr "Usuario FTP" + +#: wp-admin/includes/file.php:2566 +msgid "FTP/SSH Password" +msgstr "Contraseña FTP/SSH" + +#: wp-admin/includes/file.php:2565 +msgid "FTP/SSH Username" +msgstr "Usuario FTP/SSH" + +#: wp-admin/widgets-form.php:64 +msgid "Many themes show some sidebar widgets by default until you edit your sidebars, but they are not automatically displayed in your sidebar management tool. After you make your first widget change, you can re-add the default widgets by adding them from the Available Widgets area." +msgstr "Muchos temas muestran varios widgets de barra lateral por defecto hasta que editas tus barras laterales, pero no se muestran automáticamente en tu herramienta de gestión de barras laterales. Una vez hagas tu primer cambio en un widget, puedes volver a añadirlo desde el área de widgets disponibles." + +#. translators: %s: URL to create a new page. +#: wp-admin/options-reading.php:29 +msgid "You can choose what’s displayed on the homepage of your site. It can be posts in reverse chronological order (classic blog), or a fixed/static page. To set a static homepage, you first need to create two Pages. One will become the homepage, and the other will be where your posts are displayed." +msgstr "Puedes elegir lo que se muestra en la página principal de tu sitio. Pueden ser entradas en orden cronológico inverso (blog clásico) o una página fija/estática. Para definir una página de inicio estática, primero tienes que crear dos páginas. Una será la página principal y la otra donde se mostrarán tus entradas." + +#: wp-admin/options-permalink.php:54 +msgid "The Optional fields let you customize the “category” and “tag” base names that will appear in archive URLs. For example, the page listing all posts in the “Uncategorized” category could be /topics/uncategorized instead of /category/uncategorized." +msgstr "Los campos opcionales te permiten personalizar los nombres base de «categoría» y «etiqueta» que aparecerán en las URLs del archivo. Por ejemplo, la página con el listado de todas las entradas de la categoría «Sin categoría» podrían ser como /temas/sin-categoria, en vez de /category/sin-categoria." + +#. translators: 1: %category%, 2: %tag% +#: wp-admin/options-permalink.php:42 +msgid "When you assign multiple categories or tags to a post, only one can show up in the permalink: the lowest numbered category. This applies if your custom structure includes %1$s or %2$s." +msgstr "Cuando asignas varias categorías o etiquetas a una entrada, solo se puede mostrar una en el enlace permanente: la categoría con el número más bajo. Esto es así si tu estructura personalizada contiene %1$s o %2$s." + +#. translators: %s: Percent sign (%). +#: wp-admin/options-permalink.php:37 +msgid "If you pick an option other than Plain, your general URL path with structure tags (terms surrounded by %s) will also appear in the custom structure field and your path can be further modified there." +msgstr "Si eliges cualquier opción distinta de la simple, la ruta general de tu URL con etiquetas de estructura (términos rodeados de %s) también se verá en el campo de estructura personalizada y podrás hacer aquí más modificaciones de tu ruta." + +#: wp-admin/widgets-form.php:54 +msgid "If you want to remove the widget but save its setting for possible future use, just drag it into the Inactive Widgets area. You can add them back anytime from there. This is especially helpful when you switch to a theme with fewer or different widget areas." +msgstr "Si quieres quitar el widget, pero también guardar los ajustes por si los necesitaras en el futuro, simplemente arrástralo al área de widgets inactivos. Puedes añadirlos de nuevo en cualquier otro momento desde ahí. Esto es especialmente útil cuando cambias a un tema con pocas o distintas áreas de widgets." + +#: wp-admin/users.php:36 +msgid "To add a new user for your site, click the Add User button at the top of the screen or Add User in the Users menu section." +msgstr "Para añadir un nuevo usuario a tu sitio, haz clic en el botón de «Añadir usuario» en la parte superior de la pantalla o en la sección «Añadir usuario» del menú «Usuarios»." + +#: wp-admin/options-media.php:20 +msgid "You can set maximum sizes for images inserted into your written content; you can also insert an image as Full Size." +msgstr "Puedes establecer los tamaños máximos para las imágenes insertadas en tu contenido; también puedes insertar una imagen a tamaño completo." + +#: wp-admin/options-general.php:28 +msgid "Most themes show the site title at the top of every page, in the title bar of the browser, and as the identifying name for syndicated feeds. Many themes also show the tagline." +msgstr "La mayoría de los temas muestran el título del sitio en la parte superior de todas las páginas, en la barra de título del navegador, y como nombre identificativo en los feeds sindicados. Muchos temas también muestran la descripción corta." + +#: wp-admin/edit-form-advanced.php:407 +msgid "Order — Pages are usually ordered alphabetically, but you can choose your own order by entering a number (1 for first, etc.) in this field." +msgstr "Orden — Las páginas normalmente se ordenan alfabéticamente, pero puedes elegir tu propio orden introduciendo un número (1 para la primera, etc.) en este campo." + +#: wp-admin/includes/file.php:2574 +msgid "If you do not remember your credentials, you should contact your web host." +msgstr "Si no recuerdas tus datos de acceso deberías contactar con tu proveedor de alojamiento." + +#: wp-admin/includes/file.php:2568 +msgid "Please enter your FTP credentials to proceed." +msgstr "Por favor, introduce tus datos de acceso FTP para proceder." + +#: wp-admin/includes/file.php:2564 +msgid "Please enter your FTP or SSH credentials to proceed." +msgstr "Por favor, introduce tus datos de acceso FTP o SSH para proceder." + +#: wp-admin/user-edit.php:60 +msgid "Your profile contains information about you (your “account”) as well as some personal options related to using WordPress." +msgstr "Tu perfil contiene información sobre ti (tu «cuenta»), así como algunas opciones personales relacionadas con el uso de WordPress." + +#. translators: %s: /wp-content/themes +#: wp-admin/theme-install.php:116 +msgid "You can Upload a theme manually if you have already downloaded its ZIP archive onto your computer (make sure it is from a trusted and original source). You can also do it the old-fashioned way and copy a downloaded theme’s folder via FTP into your %s directory." +msgstr "Puedes subir manualmente un tema si ya has descargado su archivo ZIP en tu ordenador (asegúrate de que sea de una fuente fiable y original). También puedes hacerlo al viejo estilo y copiar un tema descargado a través de FTP en tu directorio %s." + +#: wp-admin/edit-form-advanced.php:394 +msgid "Send Trackbacks — Trackbacks are a way to notify legacy blog systems that you’ve linked to them. Enter the URL(s) you want to send trackbacks. If you link to other WordPress sites they’ll be notified automatically using pingbacks, and this field is unnecessary." +msgstr "Enviar Trackbacks — Los trackbacks son un modo de avisar a los sistemas antiguos de blogs que les has enlazado. Introduce la(s) URL(s) a la(s) que quieres enviar trackbacks. Si enlazas a otros sitios WordPress recibirán aviso automáticamente por medio de los pingbacks, y este campo no sería necesario." + +#: wp-admin/user-new.php:305 +msgid "Contributors can write and manage their posts but not publish posts or upload media files." +msgstr "Los colaboradores pueden escribir y gestionar sus entradas, pero no pueden publicar entradas o subir archivos multimedia." + +#: wp-admin/user-new.php:308 +msgid "Administrators have access to all the administration features." +msgstr "Los administradores tienen acceso a todas las funciones de administración." + +#: wp-admin/plugin-editor.php:141 +msgid "You can use the plugin file editor to make changes to any of your plugins’ individual PHP files. Be aware that if you make changes, plugins updates will overwrite your customizations." +msgstr "Puedes usar el editor de archivos de plugins para hacer cambios a cualquier archivo PHP individual de tus plugins. Ten en cuenta que si haces cambios, las actualizaciones de los plugins sobrescribirán tus personalizaciones." + +#: wp-admin/link-manager.php:73 +msgid "If you delete a link, it will be removed permanently, as Links do not have a Trash function yet." +msgstr "Si borras un enlace, se eliminará de forma permanente. Aún no existe una papelera para los enlaces." + +#. translators: %s: URL to Widgets screen. +#: wp-admin/link-manager.php:61 +msgid "You can add links here to be displayed on your site, usually using Widgets. By default, links to several sites in the WordPress community are included as examples." +msgstr "Aquí puedes añadir enlaces a mostrar en tu sitio, generalmente usando widgets. Por defecto, se incluyen enlaces a varios sitios de la comunidad de WordPress como ejemplo." + +#: wp-admin/edit-tags.php:286 +msgid "Slug — The “slug” is the URL-friendly version of the name. It is usually all lowercase and contains only letters, numbers, and hyphens." +msgstr "Slug — El «slug» es la versión amigable de la URL para el nombre, normalmente suele estar en minúsculas y contener solo letras, números y guiones." + +#. translators: %s: URL to Press This bookmarklet. +#: wp-admin/edit-form-advanced.php:308 +msgid "You can also create posts with the Press This bookmarklet." +msgstr "También puedes crear entradas con el marcador Publicar esto." + +#: wp-admin/includes/class-custom-background.php:104 +msgid "Do not forget to click on the Save Changes button when you are finished." +msgstr "No olvides hacer clic en el botón «Guardar los cambios» cuando acabes." + +#: wp-admin/includes/class-custom-background.php:101 +msgid "You can customize the look of your site without touching any of your theme’s code by using a custom background. Your background can be an image or a color." +msgstr "Puedes personalizar la imagen de tu sitio sin tocar nada del código del tema usando un fondo personalizado. Tu fondo puede ser una imagen o un color." + +#: wp-admin/user-new.php:307 +msgid "Editors can publish posts, manage posts as well as manage other people’s posts, etc." +msgstr "Los editores pueden publicar y gestionar entradas, así como gestionar las entradas de otras personas, etc." + +#: wp-admin/user-edit.php:66 +msgid "Remember to click the Update Profile button when you are finished." +msgstr "Recuerda hacer clic en el botón Actualizar perfil cuando termines." + +#: wp-admin/user-edit.php:65 +msgid "Required fields are indicated; the rest are optional. Profile information will only be displayed if your theme is set up to do so." +msgstr "Los campos necesarios están marcados; el resto son opcionales. El perfil solo se mostrará si tu tema está configurado para ello." + +#: wp-admin/user-edit.php:63 +msgid "Your username cannot be changed, but you can use other fields to enter your real name or a nickname, and change which name to display on your posts." +msgstr "Tu nombre de usuario no puede cambiarse, pero puedes usar los otros campos para introducir tu nombre real o tu alias y utilizarlo para que se muestre en tus entradas." + +#: wp-admin/comment.php:66 +msgid "You can also moderate the comment from this screen using the Status box, where you can also change the timestamp of the comment." +msgstr "También puedes moderar los comentarios desde esta pantalla usando la caja de estado, donde puedes cambiar el día/hora del comentario." + +#: wp-admin/comment.php:65 +msgid "You can edit the information left in a comment if needed. This is often useful when you notice that a commenter has made a typographical error." +msgstr "Si te es necesario puedes editar la información que falta en un comentario. Esto es muy útil si te advierten que un usuario ha cometido un error tipográfico al realizar un comentario." + +#. translators: %s: Documentation URL. +#: wp-admin/options-reading.php:34 +msgid "You can also control the display of your content in RSS feeds, including the maximum number of posts to display and whether to show full text or an excerpt. Learn more about feeds." +msgstr "También puedes controlar la visualización de tu contenido en los feeds RSS, incluyendo el número máximo de entradas a mostrar o si mostrar el texto completo o un extracto. Aprende más sobre los feeds." + +#: wp-admin/options-reading.php:26 +msgid "This screen contains the settings that affect the display of your content." +msgstr "Esta pantalla contiene los ajustes que afectarán a cómo se muestran tus contenidos." + +#: wp-admin/options-general.php:47 +msgid "UTC means Coordinated Universal Time." +msgstr "UTC quiere decir Tiempo Universal Coordinado (Coordinated Universal Time)" + +#: wp-admin/options-general.php:27 +msgid "The fields on this screen determine some of the basics of your site setup." +msgstr "Los campos en esta pantalla determinan algunas configuraciones básicas de tu sitio." + +#: wp-admin/options-discussion.php:26 wp-admin/options-general.php:48 +#: wp-admin/options-media.php:29 wp-admin/options-permalink.php:26 +#: wp-admin/options-permalink.php:46 wp-admin/options-permalink.php:55 +#: wp-admin/options-reading.php:37 wp-admin/options-writing.php:25 +msgid "You must click the Save Changes button at the bottom of the screen for new settings to take effect." +msgstr "Debes hacer clic en el botón «Guardar cambios» en la parte inferior de la pantalla para que los nuevos ajustes tengan efecto." + +#: wp-admin/edit-link-form.php:69 +msgid "The boxes for link name, web address, and description have fixed positions, while the others may be repositioned using drag and drop. You can also hide boxes you do not use in the Screen Options tab, or minimize boxes by clicking on the title bar of the box." +msgstr "Las cajas para el nombre del enlace, la dirección web y la descripción tienen posiciones fijas, mientras que las otras pueden ponerse en otra posición arrastrándolas y soltándolas. En la pestaña de las opciones de pantalla, también puedes ocultar las cajas que no uses o minimizar las cajas haciendo clic en la barra del título de la caja." + +#: wp-admin/update-core.php:643 +msgid "Your themes are all up to date." +msgstr "Tus temas están actualizados." + +#: wp-admin/update-core.php:470 +msgid "Your plugins are all up to date." +msgstr "Tus plugins están actualizados." + +#: wp-admin/update-core.php:287 +msgid "While your site is being updated, it will be in maintenance mode. As soon as your updates are complete, this mode will be deactivated." +msgstr "Mientras tu sitio está siendo actualizado, permanecerá en modo de mantenimiento. Este modo será desactivado en cuanto se completen tus actualizaciones." + +#: wp-admin/update-core.php:255 +msgid "An updated version of WordPress is available." +msgstr "Hay disponible una versión actualizada de WordPress." + +#: wp-admin/update-core.php:274 +msgid "You have the latest version of WordPress." +msgstr "Tienes la última versión de WordPress." + +#: wp-admin/plugin-editor.php:184 wp-admin/theme-editor.php:174 +msgid "Function Name…" +msgstr "Nombre de la función…" + +#: wp-admin/includes/class-plugin-installer-skin.php:110 +msgid "Activate Plugin & Run Importer" +msgstr "Activar plugin y ejecutar el importador" + +#: wp-admin/edit-link-form.php:68 +msgid "You can add or edit links on this screen by entering information in each of the boxes. Only the link’s web address and name (the text you want to display on your site as the link) are required fields." +msgstr "Puede añadir o editar enlaces desde esta pantalla introduciendo la información en cada caja. Solo son necesarios el enlace a la web y el nombre (el texto que quieres mostrar en el enlace en tu sitio)." + +#. translators: %s: URL to Categories to Tags Converter tool. +#: wp-admin/edit-tags.php:643 +msgid "Categories can be selectively converted to tags using the category to tag converter." +msgstr "Las categorías se pueden convertir a voluntad en etiquetas usando el conversor de categorías a etiquetas." + +#: wp-admin/import.php:25 +msgid "This screen lists links to plugins to import data from blogging/content management platforms. Choose the platform you want to import from, and click Install Now when you are prompted in the popup window. If your platform is not listed, click the link to search the plugin directory for other importer plugins to see if there is one for your platform." +msgstr "Esta pantalla lista los enlaces a los plugins de importación de datos de blogs/contenido de diferentes plataformas. Elige la plataforma desde la que quieres importar datos y haz clic en Instalar ahora cuando se te pregunte en el mensaje emergente. Si tu plataforma no está en la lista, haz clic en el enlace de buscar en el directorio de plugins para ver si hay uno para tu plataforma." + +#: wp-admin/export.php:53 +msgid "Once generated, your WXR file can be imported by another WordPress site or by another blogging platform able to access this format." +msgstr "Una vez generado, tu archivo WXR puede ser importado por otro sitio WordPress o por otra plataforma de blogs que pueda acceder a este formato." + +#: wp-admin/plugin-editor.php:142 +msgid "Choose a plugin to edit from the dropdown menu and click the Select button. Click once on any file name to load it in the editor, and make your changes. Do not forget to save your changes (Update File) when you are finished." +msgstr "Elige un plugin a editar en el menú desplegable y haz clic en el botón «Seleccionar». Haz clic una vez sobre cualquier nombre de archivo para cargarlo en el editor y hacer tus cambios. No olvides guardar tus cambios (actualizar el archivo) cuando acabes." + +#: wp-admin/link-manager.php:65 +msgid "You can customize the display of this screen using the Screen Options tab and/or the dropdown filters above the links table." +msgstr "Puedes personalizar cómo se muestra esta pantalla usando la pestaña Opciones de pantalla y/o el menú desplegable de filtros encima de la tabla de enlaces." + +#: wp-admin/plugins.php:579 +msgid "Most of the time, plugins play nicely with the core of WordPress and with other plugins. Sometimes, though, a plugin’s code will get in the way of another plugin, causing compatibility issues. If your site starts doing strange things, this may be the problem. Try deactivating all your plugins and re-activating them in various combinations until you isolate which one(s) caused the issue." +msgstr "La mayoría de las veces, los plugins funcionan perfectamente con el núcleo de WordPress y con los otros plugins. Algunas veces, puede haber incompatibilidades entre algunos plugins, produciendo problemas. Tu sitio podría comenzar a hacer cosas raras, esto podría ser un problema. Prueba a desactivar tus plugin e ir activándolos uno a uno y comprobando que el problema no reaparezca. Es la forma de detectar el plugin problemático o la combinación de plugins problemáticos." + +#: wp-admin/widgets-form.php:56 +msgid "Enabling Accessibility Mode, via Screen Options, allows you to use Add and Edit buttons instead of using drag and drop." +msgstr "Activar el modo de accesibilidad, vía Opciones de Pantalla, te permite usar botones de Añadir y Editar en vez de arrastrar y soltar." + +#: wp-admin/widgets-form.php:55 +msgid "Widgets may be used multiple times. You can give each widget a title, to display on your site, but it’s not required." +msgstr "Los widgets pueden usarse varias veces. Puedes proporcionar a cada widget un título para ser mostrado en tu sitio, pero no es necesario." + +#: wp-admin/widgets-form.php:45 +msgid "Widgets are independent sections of content that can be placed into any widgetized area provided by your theme (commonly called sidebars). To populate your sidebars/widget areas with individual widgets, drag and drop the title bars into the desired area. By default, only the first widget area is expanded. To populate additional widget areas, click on their title bars to expand them." +msgstr "Los widgets son secciones independientes de contenido que pueden colocarse en cualquier parte de tu tema que esté preparada para ello (comúnmente llamados barras laterales/sidebars). Para colocar en tus barras laterales/widgets con widgets de forma individual, arrastra y suelta la barra del título del widget al área deseada. Por defecto, solo la primera área está desplegada. Para poner widgets en otras áreas, haz clic en la barra del título para desplegarlas." + +#: wp-admin/theme-editor.php:40 +msgid "Advice: Think very carefully about your site crashing if you are live-editing the theme currently in use." +msgstr "Advertencia: Piensa detenidamente en la posibilidad de que tu sitio produzca errores y sea inaccesible si estás editando el tema en uso y cometes algún error." + +#: wp-admin/theme-editor.php:39 +msgid "After typing in your edits, click Update File." +msgstr "Después de introducir tus modificaciones, haz clic en Actualizar archivo." + +#: wp-admin/theme-editor.php:31 +msgid "Begin by choosing a theme to edit from the dropdown menu and clicking the Select button. A list then appears of the theme’s template files. Clicking once on any file name causes the file to appear in the large Editor box." +msgstr "Empieza eligiendo un tema para editarlo desde el menú desplegable y haciendo clic en el botón «Elegir». Entonces aparecerá una lista de los archivos de plantilla del tema. Haciendo clic en cualquier nombre de archivo hace que el archivo aparezca en la caja grande del editor." + +#: wp-admin/theme-editor.php:30 +msgid "You can use the theme file editor to edit the individual CSS and PHP files which make up your theme." +msgstr "Puedes usar el editor de archivos de temas para editar los archivos CSS y PHP individuales que componen tu tema." + +#: wp-admin/includes/meta-boxes.php:1010 +msgid "(no parent)" +msgstr "(sin superior)" + +#: wp-admin/edit-form-advanced.php:406 +msgid "Template — Some themes have custom templates you can use for certain pages that might have additional features or custom layouts. If so, you’ll see them in this dropdown menu." +msgstr "Plantilla — Muchos temas tienen plantillas personalizadas que puedes utilizar en ciertas páginas que podrían tener características o diseños personalizados. Si así fuera los verás en este menú desplegable." + +#: wp-admin/edit-form-advanced.php:405 +msgid "Parent — You can arrange your pages in hierarchies. For example, you could have an “About” page that has “Life Story” and “My Dog” pages under it. There are no limits to how many levels you can nest pages." +msgstr "Superior — Puedes ordenar tus páginas en jerarquías. Por ejemplo, podrías tener una página «Acerca de» que tenga como inferiores las páginas «Mi vida» y «Mi perro». No hay limitaciones de hasta cuantos niveles puedes anidar páginas." + +#: wp-admin/includes/class-bulk-upgrader-skin.php:68 +msgid "All updates have been completed." +msgstr "Todas las actualizaciones se han completado." + +#: wp-admin/edit-tags.php:294 +msgid "You can change the display of this screen using the Screen Options tab to set how many items are displayed per screen and to display/hide columns in the table." +msgstr "Puedes cambiar la forma de visualización de esta pantalla usando la pestaña Opciones de pantalla para marcar cuántos elementos se muestran por pantalla y mostrar/ocultar columnas." + +#: wp-admin/edit-tags.php:292 +msgid "Description — The description is not prominent by default; however, some themes may display it." +msgstr "Descripción — La descripción no es importante en principio, no obstante, algunos temas pueden mostrarla." + +#: wp-admin/edit-tags.php:284 +msgid "Name — The name is how it appears on your site." +msgstr "Nombre — El nombre es como se ve en tu sitio." + +#: wp-admin/edit-tags.php:280 +msgid "When adding a new tag on this screen, you’ll fill in the following fields:" +msgstr "Cuando añadas una nueva etiqueta en esta pantalla, rellenarás los siguientes campos:" + +#: wp-admin/edit-tags.php:278 +msgid "When adding a new category on this screen, you’ll fill in the following fields:" +msgstr "Cuando añades una nueva categoría en esta pantalla, rellenas los siguientes campos." + +#: wp-admin/edit-tags.php:265 +msgid "What’s the difference between categories and tags? Normally, tags are ad-hoc keywords that identify important information in your post (names, subjects, etc) that may or may not recur in other posts, while categories are pre-determined sections. If you think of your site like a book, the categories are like the Table of Contents and the tags are like the terms in the index." +msgstr "¿Cuál es la diferencia entre categorías y etiquetas? Normalmente, las etiquetas son palabras clave que identifican información importante en tus entradas (nombres, asuntos, etc...) que pueden ser recurrentes o no en otras entradas, mientras que las categorías son secciones por defecto. Si piensas en tu sitio como en un libro, las categorías serían la tabla de contenidos, mientras que las etiquetas serían como los términos en el índice." + +#. translators: %s: URL to Writing Settings screen. +#: wp-admin/edit-tags.php:253 +msgid "You can use categories to define sections of your site and group related posts. The default category is “Uncategorized” until you change it in your writing settings." +msgstr "Puedes usar categorías para definir secciones para las entradas de tu sitio y grupo. La categoría por defecto es «Sin categoría» hasta que la cambies en tus ajustes de escritura." + +#: wp-admin/includes/class-custom-image-header.php:934 +msgid "You need JavaScript to choose a part of the image." +msgstr "Necesitas JavaScript para elegir una parte de la imagen." + +#: wp-admin/includes/class-custom-image-header.php:930 +msgid "Crop Header Image" +msgstr "Recortar imagen de cabecera" + +#: wp-admin/includes/class-custom-image-header.php:986 +msgid "Image Upload Error" +msgstr "Error al subir la imagen" + +#: wp-admin/includes/class-custom-image-header.php:773 +msgid "Text Color" +msgstr "Color de texto" + +#: wp-admin/includes/class-custom-image-header.php:750 +msgid "Restore Original Header Image" +msgstr "Restaurar imagen de cabecera original" + +#: wp-admin/includes/class-custom-image-header.php:749 +msgid "This will restore the original header image. You will not be able to restore any customizations." +msgstr "Esto restaurará la imagen de cabecera original. No te será posible restaurar ninguna personalización." + +#: wp-admin/includes/class-custom-image-header.php:747 +msgid "Reset Image" +msgstr "Restaurar imagen" + +#: wp-admin/includes/class-custom-image-header.php:732 +msgid "Remove Header Image" +msgstr "Quitar imagen de cabecera" + +#: wp-admin/includes/class-custom-image-header.php:731 +msgid "This will remove the header image. You will not be able to restore any customizations." +msgstr "Esto quitará la imagen de cabecera. No podrás restaurar ninguna personalización." + +#: wp-admin/includes/class-custom-image-header.php:712 +msgid "Default Images" +msgstr "Imágenes por defecto" + +#: wp-admin/includes/class-wp-comments-list-table.php:814 +#: wp-admin/includes/dashboard.php:785 +msgid "Delete this comment permanently" +msgstr "Borrar este elemento permanentemente" + +#: wp-admin/includes/class-wp-comments-list-table.php:804 +msgid "Restore this comment from the Trash" +msgstr "Restaurar este elemento desde la papelera" + +#: wp-admin/includes/meta-boxes.php:851 +msgid "Allow comments" +msgstr "Permitir comentarios" + +#: wp-admin/edit-form-advanced.php:395 +msgid "Discussion — You can turn comments and pings on or off, and if there are comments on the post, you can see them here and moderate them." +msgstr "Comentarios — Puedes activar y desactivar comentarios y pings en la entrada, puedes verlos y moderarlos aquí mismo." + +#. translators: %s: Featured image. +#: wp-admin/edit-form-advanced.php:379 +msgid "%s — This allows you to associate an image with your post without inserting it. This is usually useful only if your theme makes use of the image as a post thumbnail on the home page, a custom header, etc." +msgstr "%s — Esto te permite asociar una imagen con tu entrada sin tener que insertarla. Esto suele ser útil si tu tema tiene imágenes en miniatura en la página de inicio, cabeceras personalizadas, etc." + +#: wp-admin/edit-form-advanced.php:285 +msgid "Title — Enter a title for your post. After you enter a title, you’ll see the permalink below, which you can edit." +msgstr "Título — Introduce un titulo para tu entrada. Después de que introduzcas un título verás el enlace permanente debajo y podrás editarlo." + +#: wp-admin/edit.php:276 +msgid "Hovering over a row in the posts list will display action links that allow you to manage your post. You can perform the following actions:" +msgstr "Pasando el cursor sobre la línea de la entrada, mostrará los enlaces de las acciones, permitiéndote gestionar la entrada. Puedes realizar las siguientes acciones:" + +#: wp-admin/edit.php:267 +msgid "You can refine the list to show only posts in a specific category or from a specific month by using the dropdown menus above the posts list. Click the Filter button after making your selection. You also can refine the list by clicking on the post author, category or tag in the posts list." +msgstr "Puedes refinar lo que muestra el listado de entradas haciendo que solo se muestren las de una categoría específica o de un mes determinado usando el menú desplegable que encontrarás sobre el listado de entradas. Realiza un clic sobre el botón Filtro después de realizar tu selección. También puedes refinar el listado haciendo clic sobre el autor de una entrada, categoría o etiqueta del listado de entradas." + +#: wp-admin/edit.php:264 +msgid "You can hide/display columns based on your needs and decide how many posts to list per screen using the Screen Options tab." +msgstr "Puedes ocultar/mostrar columnas basándote en tus necesidades y decidir cuántas entradas se mostrarán por pantalla utilizando la pestaña «Opciones de pantalla»." + +#: wp-admin/users.php:44 +msgid "You can customize the display of this screen in a number of ways:" +msgstr "Puedes personalizar cómo se muestra esta pantalla de diferentes formas:" + +#: wp-admin/plugins.php:806 +msgid "Search installed plugins" +msgstr "Buscar plugins instalados" + +#: wp-admin/nav-menus.php:836 +msgid "Your theme supports one menu. Select which menu you would like to use." +msgstr "Tu tema tiene un menú. Selecciona qué menú te gustaría utilizar." + +#: wp-admin/nav-menus.php:19 +msgid "Your theme does not support navigation menus or widgets." +msgstr "El tema actual no es compatible con menús de navegación o widgets." + +#: wp-admin/includes/import.php:193 wp-admin/tools.php:48 wp-admin/tools.php:73 +msgid "Categories and Tags Converter" +msgstr "Conversor de etiquetas y categorías" + +#: wp-admin/includes/nav-menu.php:600 wp-admin/includes/nav-menu.php:623 +msgid "Most Recent" +msgstr "Más reciente" + +#: wp-admin/export.php:224 wp-admin/export.php:276 wp-admin/export.php:321 +msgid "Start date:" +msgstr "Fecha de inicio:" + +#: wp-admin/includes/theme-install.php:110 +msgctxt "Theme Installer" +msgid "Tag" +msgstr "Etiqueta" + +#: wp-admin/includes/plugin-install.php:330 +msgctxt "Plugin Installer" +msgid "Tag" +msgstr "Etiqueta" + +#: wp-admin/includes/media.php:2589 +msgctxt "verb" +msgid "Clear" +msgstr "Limpiar" + +#: wp-admin/comment.php:135 +#: wp-admin/includes/class-wp-comments-list-table.php:379 +msgctxt "comment" +msgid "Mark as spam" +msgstr "Marcar como spam" + +#: wp-admin/includes/class-custom-background.php:327 +msgid "Remove Background Image" +msgstr "Quitar imagen de fondo" + +#. translators: %s: Post title. +#. translators: %s: Link to post. +#: wp-admin/edit-comments.php:183 wp-admin/edit-comments.php:252 +msgid "Comments on “%s”" +msgstr "Comentarios en «%s»" + +#: wp-admin/includes/nav-menu.php:1354 +msgid "Show advanced menu properties" +msgstr "Mostrar propiedades avanzadas de menú" + +#. translators: 1: Plugin version, 2: New version. +#. translators: 1: Theme version, 2: New version. +#: wp-admin/update-core.php:602 wp-admin/update-core.php:780 +msgid "You have version %1$s installed. Update to %2$s." +msgstr "Tienes la versión %1$s. Actualiza a la %2$s." + +#: wp-admin/includes/class-wp-debug-data.php:623 +#: wp-admin/includes/class-wp-debug-data.php:1178 +#: wp-admin/includes/class-wp-debug-data.php:1289 +#: wp-admin/includes/class-wp-debug-data.php:1455 +#: wp-admin/includes/class-wp-debug-data.php:1460 +#: wp-admin/includes/class-wp-debug-data.php:1469 +#: wp-admin/includes/class-wp-debug-data.php:1478 +#: wp-admin/includes/class-wp-debug-data.php:1537 +#: wp-admin/includes/class-wp-debug-data.php:1542 +#: wp-admin/includes/class-wp-debug-data.php:1552 +#: wp-admin/includes/class-wp-debug-data.php:1557 +msgid "Enabled" +msgstr "Activado" + +#: wp-admin/includes/class-wp-comments-list-table.php:795 +msgctxt "comment" +msgid "Not Spam" +msgstr "No es spam" + +#: wp-admin/includes/class-custom-background.php:342 +msgid "This will restore the original background image. You will not be able to restore any customizations." +msgstr "Esto restaurará la imagen de fondo original. No te será posible restaurar ninguna personalización." + +#: wp-admin/includes/dashboard.php:1556 +msgid "WordPress Blog" +msgstr "Blog oficial WordPress" + +#: wp-admin/users.php:520 +msgid "Remove Users from Site" +msgstr "Eliminar usuarios del sitio" + +#: wp-admin/includes/class-wp-users-list-table.php:315 +#: wp-admin/user-edit.php:464 wp-admin/user-edit.php:466 wp-admin/users.php:127 +#: wp-admin/network/site-users.php:152 +msgid "— No role for this site —" +msgstr "— No hay perfil para este sitio —" + +#: wp-admin/includes/upgrade.php:614 +msgid "New WordPress Site" +msgstr "Nuevo sitio WordPress" + +#: wp-admin/includes/schema.php:414 +msgid "My Site" +msgstr "Mi sitio" + +#: wp-admin/includes/post.php:926 +msgid "Sorry, you are not allowed to create posts or drafts on this site." +msgstr "Lo siento, no tienes permisos para crear entradas o borradores en este sitio." + +#: wp-admin/includes/post.php:924 +msgid "Sorry, you are not allowed to create pages on this site." +msgstr "Lo siento, no tienes permisos para crear páginas en este sitio." + +#: wp-admin/includes/plugin.php:516 +msgid "Custom site suspended message." +msgstr "Mensaje personalizado para sitios suspendidos." + +#: wp-admin/includes/plugin.php:515 +msgid "Custom site inactive message." +msgstr "Mensaje personalizado para sitios inactivos." + +#: wp-admin/includes/plugin.php:514 +msgid "Custom site deleted message." +msgstr "Mensaje personalizado para sitios eliminados." + +#: wp-admin/import.php:78 +msgid "If you have posts or comments in another system, WordPress can import those into this site. To get started, choose a system to import from below:" +msgstr "Si tienes entradas o comentarios en otro sistema, WordPress los puede importar a este sitio. Para comenzar, elige el sistema desde el que los importarás:" + +#: wp-admin/includes/nav-menu.php:525 wp-admin/includes/nav-menu.php:890 +msgid "No items." +msgstr "Sin elementos." + +#. translators: %s: Asterisk symbol (*). +#: wp-admin/includes/schema.php:1193 +msgid "To use a subdomain configuration, you must have a wildcard entry in your DNS. This usually means adding a %s hostname record pointing at your web server in your DNS configuration tool." +msgstr "Para usar la configuración en subdominios tienes que añadir una entrada comodín en tus DNS. Esto normalmente supone añadir un registro de nombre de alojamiento %s en tu servidor, en la herramienta de configuración de DNS." + +#. translators: %s: Host name. +#: wp-admin/includes/schema.php:1182 +msgid "The installer attempted to contact a random hostname (%s) on your domain." +msgstr "El instalador tratará de contactar con un nombre de servidor aleatorio (%s) de tu dominio." + +#: wp-admin/nav-menus.php:285 +msgid "The menu item has been successfully deleted." +msgstr "La opción del menú se ha eliminado correctamente." + +#: wp-admin/includes/ajax-actions.php:1692 +msgid "Please provide a custom field name." +msgstr "Por favor, proporciona un nombre al campo personalizado." + +#: wp-admin/includes/class-custom-background.php:372 +msgid "Display Options" +msgstr "Opciones de visualización" + +#: wp-admin/includes/class-custom-background.php:323 +#: wp-admin/includes/class-custom-image-header.php:729 +msgid "Remove Image" +msgstr "Quitar la imagen" + +#: wp-admin/users.php:740 +msgid "Other users have been removed." +msgstr "Otros usuarios han sido eliminados." + +#: wp-admin/users.php:732 +msgid "You cannot remove the current user." +msgstr "No puedes eliminar el usuario actual." + +#: wp-admin/users.php:571 +msgid "There are no valid users selected for removal." +msgstr "No hay usuarios válidos seleccionados para su eliminación." + +#: wp-admin/users.php:567 +msgid "Confirm Removal" +msgstr "Confirmar Eliminación" + +#: wp-admin/users.php:525 +msgid "You have specified these users for removal:" +msgstr "Has especificado estos usuarios para ser eliminados:" + +#: wp-admin/users.php:175 wp-admin/users.php:278 +msgid "User deletion is not allowed from this screen." +msgstr "No está permitido eliminar usuarios desde esta pantalla." + +#. translators: %s: Title of an update. +#: wp-admin/includes/class-bulk-upgrader-skin.php:67 +msgid "%s updated successfully." +msgstr "%s se ha actualizado correctamente." + +#: wp-admin/includes/user.php:552 +msgid "No thanks, do not remind me again" +msgstr "No gracias, no me lo recuerdes de nuevo" + +#: wp-admin/includes/user.php:547 +msgid "Yes, take me to my profile page" +msgstr "Sí, llévame a la página de mi perfil" + +#: wp-admin/includes/upgrade.php:120 +msgid "Your chosen password." +msgstr "La contraseña que has elegido." + +#: wp-admin/edit.php:156 wp-admin/post.php:287 wp-admin/upload.php:318 +msgid "Sorry, you are not allowed to restore this item from the Trash." +msgstr "Lo siento, no tienes permisos para restaurar este elemento de la papelera." + +#: wp-admin/edit.php:123 wp-admin/post.php:250 wp-admin/upload.php:297 +msgid "Sorry, you are not allowed to move this item to the Trash." +msgstr "Lo siento, no tienes permisos para mover este elemento a la papelera." + +#. translators: %s: Number of comments. +#: wp-admin/edit-comments.php:378 +msgid "%s comment restored from the Trash." +msgid_plural "%s comments restored from the Trash." +msgstr[0] "%s comentario restaurado de la papelera." +msgstr[1] "%s comentarios restaurados de la papelera." + +#. translators: %s: Number of comments. +#: wp-admin/edit-comments.php:366 +msgid "%s comment moved to the Trash." +msgid_plural "%s comments moved to the Trash." +msgstr[0] "%s comentario movido a la papelera." +msgstr[1] "%s comentarios movidos a la papelera." + +#: wp-admin/update-core.php:660 +msgid "The following themes have new versions available. Check the ones you want to update and then click “Update Themes”." +msgstr "Hay versiones nuevas disponibles de los siguientes temas. Selecciona los que quieras actualizar y haz clic en «Actualizar temas»." + +#: wp-admin/user-new.php:365 +msgid "That user is already a member of this site." +msgstr "Este usuario ya es miembro de este sitio." + +#: wp-admin/user-new.php:356 +msgid "User has been added to your site." +msgstr "El usuario ha sido añadido a tu sitio." + +#: wp-admin/user-new.php:353 +msgid "Invitation email sent to user. A confirmation link must be clicked for them to be added to your site." +msgstr "Invitación enviada por correo electrónico al usuario. Debe hacer clic en un enlace de confirmación para que se añada a tu sitio." + +#: wp-admin/update-core.php:493 +msgid "The following plugins have new versions available. Check the ones you want to update and then click “Update Plugins”." +msgstr "Hay nuevas versiones disponibles de los siguientes plugins. Selecciona los que quieras actualizar y haz clic en «Actualizar plugins»." + +#: wp-admin/includes/class-custom-background.php:328 +msgid "This will remove the background image. You will not be able to restore any customizations." +msgstr "Esto quitará la imagen de fondo. No podrás restaurar ninguna personalización." + +#. translators: %s: Network title. +#: wp-admin/includes/class-wp-themes-list-table.php:131 +msgid "Only the active theme is available to you. Contact the %s administrator for information about accessing additional themes." +msgstr "Para ti solo está disponible el tema activo. Contacta con el administrador de %s para obtener información sobre cómo acceder a temas adicionales." + +#: wp-admin/includes/file.php:31 +msgid "Tag Template" +msgstr "Plantilla de etiqueta" + +#: wp-admin/includes/file.php:28 +msgid "Author Template" +msgstr "Plantilla de autor" + +#: wp-admin/includes/file.php:55 +msgid "Visual Editor Stylesheet" +msgstr "Hoja de estilos del editor visual" + +#: wp-admin/edit-form-advanced.php:197 +msgid "Page saved." +msgstr "Página guardada." + +#. translators: %s: Importer name. +#. translators: %s: Plugin name and version. +#. translators: %s: Plugin name. +#: wp-admin/import.php:210 +#: wp-admin/includes/class-wp-plugin-install-list-table.php:579 +#: wp-admin/includes/class-wp-plugin-install-list-table.php:831 +#: wp-admin/includes/class-wp-plugins-list-table.php:1197 +#: wp-admin/includes/class-wp-plugins-list-table.php:1656 +msgid "More information about %s" +msgstr "Más información sobre %s" + +#: wp-admin/user-edit.php:478 +msgid "Grant this user super admin privileges for the Network." +msgstr "Dar permisos de super admin en la red a este usuario." + +#: wp-admin/user-edit.php:206 +msgid "This user has super admin privileges." +msgstr "Este usuario tiene privilegios de super admin." + +#: wp-admin/install.php:152 wp-admin/user-edit.php:206 +msgid "Important:" +msgstr "Importante:" + +#. translators: %s: Theme version. +#. translators: %s: WordPress version. +#: wp-admin/includes/class-wp-theme-install-list-table.php:321 +#: wp-admin/includes/class-wp-theme-install-list-table.php:478 +#: wp-admin/update-core.php:74 +msgid "Update to version %s" +msgstr "Actualizar a la versión %s" + +#: wp-admin/setup-config.php:309 +msgid "Error: \"Table Prefix\" can only contain numbers, letters, and underscores." +msgstr "Error: el «prefijo de la tabla» solo puede contener números, letras y guiones bajos." + +#: wp-admin/user-edit.php:446 +msgid "Usernames cannot be changed." +msgstr "El nombre de usuario no puede cambiarse." + +#: wp-admin/options-reading.php:177 +msgid "items" +msgstr "elementos" + +#: wp-admin/nav-menus.php:322 +msgid "The menu has been successfully deleted." +msgstr "El menú se ha borrado correctamente." + +#: wp-admin/install.php:182 wp-admin/options-reading.php:44 +#: wp-admin/options-reading.php:201 +msgid "Site visibility" +msgstr "Visibilidad del sitio" + +#: wp-admin/includes/class-walker-nav-menu-edit.php:224 +msgid "CSS Classes (optional)" +msgstr "Clases CSS (opcional)" + +#: wp-admin/includes/nav-menu.php:1356 +msgid "Link Target" +msgstr "Destino del enlace" + +#: wp-admin/nav-menus.php:1101 wp-admin/nav-menus.php:1236 +msgid "Save Menu" +msgstr "Guardar menú" + +#. translators: 1: Theme name, 2: Number of the theme, 3: Total number of +#. themes being updated. +#: wp-admin/includes/class-bulk-theme-upgrader-skin.php:40 +msgid "Updating Theme %1$s (%2$d/%3$d)" +msgstr "Actualizando el tema %1$s (%2$d/%3$d)" + +#: wp-admin/includes/schema.php:1197 +msgid "You can still use your site but any subdomain you create may not be accessible. If you know your DNS is correct, ignore this message." +msgstr "Puedes continuar usando tu sitio, pero ningún subdominio que crees será accesible. Si sabes que tu configuración de DNS es correcta, ignora este mensaje." + +#. translators: %s: Error message. +#: wp-admin/includes/schema.php:1187 +msgid "This resulted in an error message: %s" +msgstr "Esto ha dado como resultado un mensaje de error: %s" + +#: wp-admin/includes/schema.php:1047 +msgid "You must provide a valid email address." +msgstr "Debes facilitarnos una dirección de correo electrónico válida." + +#: wp-admin/includes/schema.php:1036 wp-admin/includes/schema.php:1042 +msgid "The network already exists." +msgstr "La red ya existe." + +#: wp-admin/includes/schema.php:1029 +msgid "You must provide a name for your network of sites." +msgstr "Debes facilitarnos un nombre para tu red de sitios." + +#: wp-admin/includes/schema.php:1026 +msgid "You must provide a domain name." +msgstr "Debes facilitarnos un nombre de dominio." + +#: wp-admin/includes/user.php:541 +msgid "Notice:" +msgstr "Aviso:" + +#: wp-admin/edit-form-advanced.php:572 +msgid "Get Shortlink" +msgstr "Obtener enlace corto" + +#. translators: %s: Title of an update. +#: wp-admin/includes/class-bulk-upgrader-skin.php:65 +msgid "The update of %s failed." +msgstr "La actualización de %s ha fallado." + +#. translators: 1: Plugin name, 2: Number of the plugin, 3: Total number of +#. plugins being updated. +#: wp-admin/includes/class-bulk-plugin-upgrader-skin.php:39 +msgid "Updating Plugin %1$s (%2$d/%3$d)" +msgstr "Actualizando el plugin %1$s (%2$d/%3$d)" + +#: wp-admin/includes/upgrade.php:141 +msgid "The password you chose during installation." +msgstr "La contraseña que has elegido durante la instalación." + +#: wp-admin/includes/upgrade.php:124 +msgid "User already exists. Password inherited." +msgstr "El usuario ya existe. No se ha modificado la contraseña." + +#: wp-admin/includes/class-wp-automatic-updater.php:529 +#: wp-admin/includes/update-core.php:1704 wp-admin/update-core.php:919 +msgid "WordPress updated successfully." +msgstr "WordPress se ha actualizado correctamente." + +#: wp-admin/update-core.php:872 +msgid "Update WordPress" +msgstr "Actualizar WordPress" + +#: wp-admin/plugins.php:159 wp-admin/update-core.php:496 +#: wp-admin/update-core.php:629 wp-admin/update-core.php:1209 +#: wp-admin/update-core.php:1214 +msgid "Update Plugins" +msgstr "Actualizar plugins" + +#. translators: 1: URL to WordPress release notes, 2: WordPress version number, +#. 3: Minimum required PHP version number, 4: Minimum required MySQL version +#. number, 5: Current PHP version number, 6: Current MySQL version number. +#: wp-admin/update-core.php:113 wp-admin/upgrade.php:119 +msgid "You cannot update because WordPress %2$s requires PHP version %3$s or higher and MySQL version %4$s or higher. You are running PHP version %5$s and MySQL version %6$s." +msgstr "No puedes actualizar porque WordPress %2$s necesita la versión %3$s o superior de PHP y la versión %4$s o superior de MySQL. Estás usando la versión %5$s de PHP y la versión %6$s de MySQL." + +#: wp-admin/update-core.php:987 wp-admin/update-core.php:1067 +msgid "WordPress Updates" +msgstr "Actualizaciones de WordPress" + +#: wp-admin/includes/class-walker-nav-menu-edit.php:185 +msgid "Edit menu item" +msgstr "Editar elemento del menú" + +#: wp-admin/about.php:278 +msgid "Go to Dashboard" +msgstr "Ir al escritorio" + +#. translators: %s: Number of plugins. +#: wp-admin/includes/class-wp-plugins-list-table.php:549 +msgid "Drop-in (%s)" +msgid_plural "Drop-ins (%s)" +msgstr[0] "Dependiente (%s)" +msgstr[1] "Dependientes (%s)" + +#. translators: %s: Number of plugins. +#: wp-admin/includes/class-wp-plugins-list-table.php:541 +msgid "Must-Use (%s)" +msgid_plural "Must-Use (%s)" +msgstr[0] "Imprescindible (%s)" +msgstr[1] "Imprescindibles (%s)" + +#: wp-admin/includes/class-wp-plugins-list-table.php:785 +msgid "Inactive:" +msgstr "Inactivo:" + +#: wp-admin/plugins.php:411 +msgid "Yes, delete these files and data" +msgstr "Sí, borra estos archivos y datos" + +#: wp-admin/plugins.php:393 +msgid "Are you sure you want to delete these files and data?" +msgstr "¿Seguro que quieres borrar estos archivos y datos?" + +#: wp-admin/plugins.php:355 +msgid "You are about to remove the following plugin:" +msgstr "Estás a punto de eliminar el siguiente plugin:" + +#: wp-admin/plugins.php:343 +msgid "Delete Plugin" +msgstr "Borrar el plugin" + +#: wp-admin/options-general.php:452 +msgid "This timezone does not observe daylight saving time." +msgstr "Esta zona horaria no tiene en cuenta el horario de verano." + +#: wp-admin/options-general.php:428 +msgid "This timezone is currently in daylight saving time." +msgstr "Esta zona horaria se encuentra actualmente en el horario de verano." + +#: wp-admin/options-general.php:267 wp-admin/network/settings.php:170 +msgid "This address is used for admin purposes. If you change this, an email will be sent to your new address to confirm it. The new address will not become active until confirmed." +msgstr "Esta dirección se usa para propósitos administrativos. Si la cambias, se te enviará un correo electrónico a tu nueva dirección para confirmarla. La nueva dirección no se activará hasta que la confirmes." + +#: wp-admin/includes/nav-menu.php:608 wp-admin/includes/nav-menu.php:980 +msgid "View All" +msgstr "Ver todo" + +#: wp-admin/nav-menus.php:446 wp-admin/nav-menus.php:475 +msgid "Please enter a valid menu name." +msgstr "Por favor, introduce un nombre de menú válido." + +#. translators: 1: URL to WordPress release notes, 2: WordPress version number, +#. 3: Minimum required PHP version number, 4: Minimum required MySQL version +#. number, 5: Current PHP version number, 6: Current MySQL version number. +#: wp-admin/install.php:261 +msgid "You cannot install because WordPress %2$s requires PHP version %3$s or higher and MySQL version %4$s or higher. You are running PHP version %5$s and MySQL version %6$s." +msgstr "No puedes instalar ya que WordPress %2$s requiere la versión %3$s o superior de PHP y la versión %4$s o superior de MySQL. Estás usando la versión %5$s de PHP y la versión %6$s de MySQL." + +#: wp-admin/includes/plugin.php:513 +msgid "Executed before Multisite is loaded." +msgstr "Ejecutado antes de cargar el Multisitio." + +#: wp-admin/includes/plugin.php:507 +msgid "External object cache." +msgstr "Caché de objetos externos." + +#: wp-admin/includes/plugin.php:506 +msgid "Custom maintenance message." +msgstr "Mensaje personalizado de mantenimiento." + +#: wp-admin/includes/plugin.php:504 +msgid "Custom database error message." +msgstr "Mensaje de error de base de datos personalizado." + +#: wp-admin/includes/plugin.php:503 +msgid "Custom database class." +msgstr "Clase de base datos personalizada." + +#: wp-admin/includes/plugin.php:502 +msgid "Advanced caching plugin." +msgstr "Plugin avanzado de caché." + +#: wp-admin/includes/file.php:938 +msgid "File is empty. Please upload something more substantial." +msgstr "El archivo está vacío. Por favor, sube algo con más sustancia." + +#: wp-admin/edit-comments.php:410 +msgid "This comment is already marked as spam." +msgstr "Este comentario ya ha sido marcado como spam." + +#: wp-admin/edit-comments.php:406 +msgid "View Trash" +msgstr "Ver papelera" + +#: wp-admin/edit-comments.php:403 +msgid "This comment is already in the Trash." +msgstr "Este comentario ya está en la papelera." + +#: wp-admin/edit-comments.php:396 +msgid "This comment is already approved." +msgstr "Este comentario ya está aprobado." + +#: wp-admin/comment.php:161 +msgid "This comment is currently in the Trash." +msgstr "Este comentario está actualmente en la papelera." + +#: wp-admin/comment.php:158 +msgid "This comment is currently marked as spam." +msgstr "Este comentario está marcado como spam." + +#: wp-admin/comment.php:155 +msgid "This comment is currently approved." +msgstr "Este comentario está aprobado." + +#: wp-admin/comment.php:102 +msgid "Moderate Comment" +msgstr "Comentario moderado" + +#: wp-admin/export.php:196 +msgid "Categories:" +msgstr "Categorías:" + +#: wp-admin/widgets-form.php:113 +msgid "Drag widgets here to remove them from the sidebar but keep their settings." +msgstr "Arrastra los widgets aquí para quitarlos de la barra lateral pero manteniendo sus ajustes." + +#. translators: Hidden accessibility text. +#: wp-admin/widgets-form.php:456 wp-admin/widgets-form.php:461 +msgid "Available Widgets" +msgstr "Widgets disponibles" + +#: wp-admin/widgets-form.php:380 +msgid "Error in displaying the widget settings form." +msgstr "Error al mostrar el formulario con las opciones del widget." + +#: wp-admin/includes/misc.php:1362 wp-admin/includes/post.php:2158 +#: wp-admin/widgets-form.php:379 +msgid "Error while saving." +msgstr "Error al guardar los cambios." + +#: wp-admin/widgets-form.php:375 wp-admin/js/inline-edit-post.js:525 +#: wp-admin/js/inline-edit-tax.js:227 +msgid "Changes saved." +msgstr "Cambios guardados." + +#: wp-admin/widgets-form.php:357 +msgid "Save Widget" +msgstr "Guardar Widget" + +#: wp-admin/widgets-form.php:300 +msgid "Select both the sidebar for this widget and the position of the widget in that sidebar." +msgstr "Selecciona la barra lateral y la posición en la que irá el widget." + +#. translators: %s: Widget name. +#: wp-admin/widgets-form.php:285 +msgid "Widget %s" +msgstr "Widget %s" + +#: wp-admin/widgets-form.php:110 +msgid "Inactive Widgets" +msgstr "Widgets inactivos" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/class-wp-users-list-table.php:309 +#: wp-admin/includes/class-wp-users-list-table.php:313 +msgid "Change role to…" +msgstr "Cambiar perfil a…" + +#. translators: 1: User role name, 2: Number of users. +#: wp-admin/includes/class-wp-users-list-table.php:231 +#: wp-admin/includes/class-wp-users-list-table.php:249 +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" + +#: wp-admin/users.php:712 +msgid "Other users have been deleted." +msgstr "Se han eliminado los otros usuarios." + +#: wp-admin/users.php:704 +msgid "You cannot delete the current user." +msgstr "No puedes borrar el usuario actual." + +#: wp-admin/users.php:694 +msgid "Other user roles have been changed." +msgstr "Se han cambiado los perfiles de los otros usuarios." + +#: wp-admin/users.php:686 +msgid "The current user’s role must have user editing capabilities." +msgstr "El perfil del usuario actual debería poder editar usuarios." + +#: wp-admin/users.php:631 +msgid "New user created." +msgstr "Nuevo usuario creado." + +#: wp-admin/users.php:450 +msgid "There are no valid users selected for deletion." +msgstr "No se han seleccionado usuarios válidos para borrar." + +#: wp-admin/users.php:342 +msgid "Delete Users" +msgstr "Borrar usuarios" + +#: wp-admin/user-new.php:486 wp-admin/user-new.php:653 +msgid "Skip Confirmation Email" +msgstr "No enviar el correo electrónico de confirmación" + +#: wp-admin/user-new.php:350 +msgid "Invitation email sent to new user. A confirmation link must be clicked before their account is created." +msgstr "La invitación ha sido enviada al nuevo usuario por correo electrónico. Deberá hacer clic en el enlace de confirmación para que su cuenta sea creada." + +#. translators: Joining confirmation notification email subject. %s: Site +#. title. +#: wp-admin/user-new.php:140 +msgid "[%s] Joining Confirmation" +msgstr "[%s] Confirmación de unirse" + +#: wp-admin/user-edit.php:962 +msgid "Update User" +msgstr "Actualizar usuario" + +#: wp-admin/user-edit.php:962 +msgid "Update Profile" +msgstr "Actualizar perfil" + +#: wp-admin/user-edit.php:930 +msgid "Additional Capabilities" +msgstr "Capacidades adicionales" + +#: wp-admin/user-edit.php:714 +msgid "Type your new password again." +msgstr "Teclea tu nueva contraseña otra vez." + +#: wp-admin/user-edit.php:689 +msgid "New Password" +msgstr "Nueva contraseña" + +#: wp-admin/user-edit.php:633 +msgid "Share a little biographical information to fill out your profile. This may be shown publicly." +msgstr "Incluye alguna información biográfica en tu perfil. Podrá mostrarse públicamente." + +#: wp-admin/user-edit.php:631 +msgid "Biographical Info" +msgstr "Información biográfica" + +#: wp-admin/user-edit.php:627 +msgid "About the user" +msgstr "Acerca del usuario" + +#: wp-admin/user-edit.php:627 +msgid "About Yourself" +msgstr "Acerca de ti" + +#: wp-admin/user-edit.php:556 +msgid "Contact Info" +msgstr "Información de contacto" + +#: wp-admin/user-edit.php:518 +msgid "Display name publicly as" +msgstr "Mostrar este nombre públicamente" + +#: wp-admin/user-edit.php:506 +msgid "Nickname" +msgstr "Alias" + +#: wp-admin/user-edit.php:495 wp-admin/user-new.php:556 +msgid "Last Name" +msgstr "Apellidos" + +#: wp-admin/user-edit.php:484 wp-admin/user-new.php:552 +msgid "First Name" +msgstr "Nombre" + +#: wp-admin/user-edit.php:362 +msgid "Enable keyboard shortcuts for comment moderation." +msgstr "Activar los atajos del teclado para la moderación de comentarios." + +#: wp-admin/user-edit.php:304 +msgid "Disable the visual editor when writing" +msgstr "Desactivar el editor visual al escribir" + +#: wp-admin/user-edit.php:301 +msgid "Visual Editor" +msgstr "Editor visual" + +#: wp-admin/user-edit.php:296 +msgid "Personal Options" +msgstr "Opciones personales" + +#: wp-admin/user-edit.php:219 +msgid "User updated." +msgstr "El usuario se ha actualizado." + +#: wp-admin/includes/user.php:597 +msgid "Always use https when visiting the admin" +msgstr "Usar siempre https para visitar la administración" + +#: wp-admin/includes/user.php:596 +msgid "Use https" +msgstr "Usar https" + +#: wp-admin/user-new.php:359 wp-admin/users.php:643 +#: wp-admin/network/user-new.php:94 +msgid "Edit user" +msgstr "Editar usuario" + +#: wp-admin/upload.php:102 wp-admin/upload.php:123 +msgid "Media file restored from the Trash." +msgstr "Archivo de medios restaurado de la papelera." + +#: wp-admin/upload.php:79 wp-admin/upload.php:118 +msgid "Media file moved to the Trash." +msgstr "Archivo de medios movido a la papelera." + +#: wp-admin/upload.php:62 wp-admin/upload.php:116 +msgid "Media file permanently deleted." +msgstr "Archivo multimedia borrado permanentemente." + +#: wp-admin/edit-tags.php:137 wp-admin/options.php:85 +msgid "Sorry, you are not allowed to delete these items." +msgstr "Lo siento, no tienes permisos para borrar esos elementos." + +#: wp-admin/upgrade.php:93 +msgid "Your WordPress database is already up to date!" +msgstr "¡Tu base de datos de WordPress ya está actualizada!" + +#. translators: %s: File name. +#: wp-admin/update.php:323 +msgid "Installing theme from uploaded file: %s" +msgstr "Instalando el tema desde el archivo subido: %s" + +#: wp-admin/theme-install.php:59 wp-admin/theme-install.php:177 +#: wp-admin/theme-install.php:179 wp-admin/update.php:316 +msgid "Upload Theme" +msgstr "Subir tema" + +#. translators: %s: Theme name and version. +#: wp-admin/update.php:291 +msgid "Installing Theme: %s" +msgstr "Instalando tema: %s" + +#. translators: %s: File name. +#: wp-admin/update.php:171 +msgid "Installing plugin from uploaded file: %s" +msgstr "Instalando el plugin desde el archivo subido: %s" + +#: wp-admin/includes/class-wp-plugin-install-list-table.php:121 +#: wp-admin/plugin-install.php:154 wp-admin/update.php:164 +msgid "Upload Plugin" +msgstr "Subir plugin" + +#. translators: %s: Plugin name and version. +#: wp-admin/update.php:135 +msgid "Installing Plugin: %s" +msgstr "Instalando plugin: %s" + +#: wp-admin/update.php:96 +msgid "Plugin failed to reactivate due to a fatal error." +msgstr "El plugin no ha sido reactivado debido a un error fatal." + +#: wp-admin/update.php:92 +msgid "Plugin reactivated successfully." +msgstr "El plugin ha sido reactivado." + +#: wp-admin/update.php:90 +msgid "Plugin Reactivation" +msgstr "Reactivación del plugin" + +#: wp-admin/includes/class-wp-automatic-updater.php:526 +#: wp-admin/update-core.php:913 wp-admin/js/updates.js:863 +#: wp-admin/js/updates.js:1891 +msgid "Installation failed." +msgstr "Instalación fallida" + +#. translators: %s: WordPress version. +#: wp-admin/update-core.php:532 wp-admin/update-core.php:541 +msgid "Compatibility with WordPress %s: Unknown" +msgstr "Compatibilidad con WordPress %s: Desconocida" + +#. translators: %s: WordPress version. +#: wp-admin/update-core.php:529 wp-admin/update-core.php:538 +msgid "Compatibility with WordPress %s: 100%% (according to its author)" +msgstr "Compatibilidad con WordPress %s: 100%% (según su autor)" + +#: wp-admin/update-core.php:211 +msgid "Hide hidden updates" +msgstr "Ocultar actualizaciones ocultas" + +#: wp-admin/update-core.php:210 wp-admin/update-core.php:229 +msgid "Show hidden updates" +msgstr "Mostrar actualizaciones ocultas" + +#: wp-admin/update-core.php:177 +msgid "Bring back this update" +msgstr "Volver a mostrar esta actualización" + +#: wp-admin/update-core.php:175 +msgid "Hide this update" +msgstr "Ocultar esta actualización" + +#: wp-admin/themes.php:675 +msgid "Broken Themes" +msgstr "Temas dañados" + +#. translators: %s: Theme name. +#: wp-admin/includes/class-wp-themes-list-table.php:234 +msgid "" +"You are about to delete this theme '%s'\n" +" 'Cancel' to stop, 'OK' to delete." +msgstr "" +"Estás a punto de borrar este tema '%s'\n" +" 'Aceptar' para borrar, 'Cancelar' para salir." + +#: wp-admin/themes.php:292 wp-admin/network/themes.php:412 +msgid "Theme deleted." +msgstr "El tema ha sido eliminado." + +#: wp-admin/theme-editor.php:292 +msgid "Select theme to edit:" +msgstr "Elige el tema a editar:" + +#: wp-admin/theme-editor.php:22 +msgid "Edit Themes" +msgstr "Editar temas" + +#: wp-admin/includes/theme.php:1056 wp-admin/themes.php:1247 +msgid "Tags:" +msgstr "Etiquetas:" + +#. translators: %s: Post title. +#: wp-admin/revision.php:110 +msgid "Compare Revisions of “%s”" +msgstr "Comparar revisiones de «%s»" + +#: wp-admin/post.php:143 +msgid "You cannot edit this item because it is in the Trash. Please restore it and try again." +msgstr "No puedes editar este elemento porque está en la papelera. Por favor, restáuralo e inténtalo de nuevo." + +#: wp-admin/edit-tags.php:173 wp-admin/includes/class-wp-screen.php:297 +#: wp-admin/includes/post.php:2164 wp-admin/media-upload.php:47 +#: wp-admin/post.php:20 wp-admin/post.php:47 wp-admin/post.php:139 +#: wp-admin/term.php:43 +msgid "Sorry, you are not allowed to edit this item." +msgstr "Lo siento, no tienes permisos para editar este elemento." + +#: wp-admin/edit-tags.php:160 wp-admin/edit-tags.php:180 wp-admin/post.php:127 +#: wp-admin/term.php:31 +msgid "You attempted to edit an item that does not exist. Perhaps it was deleted?" +msgstr "Has intentado editar un elemento que no existe. ¿Quizá ha sido borrado?" + +#: wp-admin/includes/class-wp-plugins-list-table.php:427 +msgid "No plugins found." +msgstr "No se encontraron plugins." + +#. translators: %s: Number of plugins. +#: wp-admin/includes/class-wp-plugins-list-table.php:533 +msgid "Inactive (%s)" +msgid_plural "Inactive (%s)" +msgstr[0] "Inactivo (%s)" +msgstr[1] "Inactivos (%s)" + +#. translators: %s: Number of plugins. +#: wp-admin/includes/class-wp-plugins-list-table.php:525 +msgid "Recently Active (%s)" +msgid_plural "Recently Active (%s)" +msgstr[0] "Activo recientemente (%s)" +msgstr[1] "Activos recientemente (%s)" + +#. translators: %s: Number of plugins. +#: wp-admin/includes/class-wp-plugins-list-table.php:517 +msgid "Active (%s)" +msgid_plural "Active (%s)" +msgstr[0] "Activo (%s)" +msgstr[1] "Activos (%s)" + +#. translators: %s: Number of plugins. +#: wp-admin/includes/class-wp-plugins-list-table.php:508 +msgctxt "plugins" +msgid "All (%s)" +msgid_plural "All (%s)" +msgstr[0] "Todo (%s)" +msgstr[1] "Todos (%s)" + +#: wp-admin/includes/class-wp-plugins-list-table.php:668 +msgid "Clear List" +msgstr "Limpiar lista" + +#: wp-admin/includes/class-wp-plugins-list-table.php:1209 +msgid "Visit plugin site" +msgstr "Visitar la web del plugin" + +#: wp-admin/includes/class-wp-plugins-list-table.php:810 +msgid "Network Deactivate" +msgstr "Desactivar para la red" + +#. translators: %s: Error message. +#: wp-admin/plugins.php:716 +msgid "Plugin could not be deleted due to an error: %s" +msgstr "El plugin no se ha podido eliminar debido a un error: %s" + +#: wp-admin/plugins.php:682 +msgid "Plugin could not be activated because it triggered a fatal error." +msgstr "El plugin no ha podido activarse porque ha provocado un error fatal." + +#. translators: %s: WP_PLUGIN_DIR constant value. +#: wp-admin/plugins.php:582 +msgid "If something goes wrong with a plugin and you cannot use WordPress, delete or rename that file in the %s directory and it will be automatically deactivated." +msgstr "Si algo va mal con un plugin y no puedes usar WordPress, borra o renombra ese archivo en el directorio %s y se desactivará automáticamente." + +#: wp-admin/plugins.php:565 +msgid "Plugins extend and expand the functionality of WordPress. Once a plugin is installed, you may activate it or deactivate it here." +msgstr "Los plugins amplían las funcionalidades de WordPress. Una vez instalados, puedes activarlos o desactivarlos desde aquí." + +#: wp-admin/plugins.php:419 +msgid "No, return me to the plugin list" +msgstr "No, devuélveme a la lista de plugins" + +#: wp-admin/plugins.php:411 +msgid "Yes, delete these files" +msgstr "Sí, borra estos archivos" + +#: wp-admin/plugins.php:395 +msgid "Are you sure you want to delete these files?" +msgstr "¿Seguro que quieres borrar estos archivos?" + +#: wp-admin/includes/class-wp-plugin-install-list-table.php:112 +msgctxt "Plugin Installer" +msgid "Popular" +msgstr "Populares" + +#: wp-admin/includes/class-wp-plugin-install-list-table.php:111 +msgctxt "Plugin Installer" +msgid "Featured" +msgstr "Destacados" + +#: wp-admin/plugin-editor.php:331 wp-admin/theme-editor.php:396 +msgid "Update File" +msgstr "Actualizar archivo" + +#: wp-admin/plugin-editor.php:310 wp-admin/theme-editor.php:370 +msgid "Documentation:" +msgstr "Documentación:" + +#: wp-admin/plugin-editor.php:279 +msgid "Plugin Files" +msgstr "Archivos del plugin" + +#: wp-admin/plugin-editor.php:256 +msgid "Select plugin to edit:" +msgstr "Elige el plugin a editar:" + +#: wp-admin/includes/ajax-actions.php:4917 wp-admin/plugin-editor.php:202 +#: wp-admin/theme-editor.php:195 +msgid "File edited successfully." +msgstr "Archivo editado correctamente." + +#: wp-admin/includes/file.php:500 wp-admin/plugin-editor.php:131 +msgid "Files of this type are not editable." +msgstr "Los archivos de este tipo no son editables." + +#: wp-admin/plugin-editor.php:22 +msgid "Edit Plugins" +msgstr "Editar plugins" + +#: wp-admin/options.php:383 +msgid "All Settings" +msgstr "Todos los ajustes" + +#: wp-admin/options-writing.php:45 wp-admin/options-writing.php:215 +msgid "Update Services" +msgstr "Servicios de actualización" + +#: wp-admin/options-writing.php:186 +msgid "Default Mail Category" +msgstr "Categoría por defecto para publicar por correo electrónico" + +#: wp-admin/options-writing.php:166 +msgid "Login Name" +msgstr "Nombre de acceso" + +#: wp-admin/options-writing.php:161 +msgid "Port" +msgstr "Puerto" + +#: wp-admin/options-writing.php:159 +msgid "Mail Server" +msgstr "Servidor de correo" + +#. translators: 1, 2, 3: Examples of random email addresses. +#: wp-admin/options-writing.php:149 +msgid "To post to WordPress by email, you must set up a secret email account with POP3 access. Any mail received at this address will be posted, so it’s a good idea to keep this address very secret. Here are three random strings you could use: %1$s, %2$s, %3$s." +msgstr "Para publicar en WordPress por correo electrónico, debes configurar una cuenta de correo electrónico secreta con acceso POP3. Cualquier correo recibido en esa dirección será publicado, por lo que es una buena idea mantener esta dirección muy en secreto. Aquí tienes tres cadenas aleatorias que podrías usar: %1$s, %2$s, %3$s." + +#: wp-admin/options-writing.php:144 +msgid "Post via email" +msgstr "Publicar por correo electrónico" + +#: wp-admin/options-writing.php:116 +msgid "Default Link Category" +msgstr "Categoría por defecto para los enlaces" + +#: wp-admin/options-writing.php:82 +msgid "Default Post Category" +msgstr "Categoría por defecto para las entradas" + +#: wp-admin/options-writing.php:77 +msgid "WordPress should correct invalidly nested XHTML automatically" +msgstr "WordPress corregirá de forma automática el XHTML incorrectamente anidado" + +#: wp-admin/options-writing.php:76 +msgid "Convert emoticons like :-) and :-P to graphics on display" +msgstr "Convertir emoticonos como :-) y :-P a gráficos en pantalla" + +#: wp-admin/options-writing.php:70 +msgid "Formatting" +msgstr "Formato" + +#: wp-admin/options-writing.php:17 +msgid "Writing Settings" +msgstr "Ajustes de escritura" + +#: wp-admin/options-reading.php:68 +msgid "Encoding for pages and feeds" +msgstr "Codificación para páginas y feeds" + +#: wp-admin/options-reading.php:186 +msgid "Full text" +msgstr "Texto completo" + +#: wp-admin/options-reading.php:176 +msgid "Syndication feeds show the most recent" +msgstr "Número máximo de entradas a mostrar en el feed" + +#: wp-admin/options-reading.php:172 +msgid "posts" +msgstr "entradas" + +#: wp-admin/options-reading.php:170 +msgid "Blog pages show at most" +msgstr "Número máximo de entradas a mostrar en el sitio" + +#: wp-admin/options-reading.php:147 +msgid "Warning: these pages should not be the same!" +msgstr "Atención: estas páginas no pueden ser las mismas." + +#. translators: %s: Select field to choose the page for posts. +#: wp-admin/options-reading.php:130 +msgid "Posts page: %s" +msgstr "Página de entradas: %s" + +#. translators: %s: URL to Pages screen. +#: wp-admin/options-reading.php:102 +msgid "A static page (select below)" +msgstr "Una página estática (seleccionar abajo)" + +#: wp-admin/options-reading.php:17 +msgid "Reading Settings" +msgstr "Ajustes de lectura" + +#: wp-admin/options-privacy.php:191 +msgid "Privacy Settings" +msgstr "Ajustes de privacidad" + +#. translators: %s: web.config +#: wp-admin/options-permalink.php:517 +msgid "If you temporarily make your site’s root directory writable to generate the %s file automatically, do not forget to revert the permissions after the file has been created." +msgstr "Si temporalmente tienes que dar permisos de escritura al directorio raíz de tu sitio para generar automáticamente el archivo %s, no olvides volver a cambiar los permisos después de que se haya creado el archivo." + +#. translators: %s: web.config +#: wp-admin/options-permalink.php:485 +msgid "If you temporarily make your %s file writable to generate rewrite rules automatically, do not forget to revert the permissions after the rule has been saved." +msgstr "Si temporalmente tienes que dar permisos de escritura a tu archivo %s para generar automáticamente las reglas de reescritura, no olvides volver a cambiar sus permisos después de que hayas guardado la regla." + +#: wp-admin/options-permalink.php:435 +msgid "Tag base" +msgstr "Base de las etiquetas" + +#. translators: Prefix for category permalinks. +#: wp-admin/options-permalink.php:423 +msgid "Category base" +msgstr "Base de las categorías" + +#: wp-admin/options-permalink.php:361 +msgid "Custom Structure" +msgstr "Estructura personalizada" + +#: wp-admin/options-permalink.php:264 +msgid "Numeric" +msgstr "Numérico" + +#: wp-admin/options-permalink.php:258 +msgid "Month and name" +msgstr "Mes y nombre" + +#: wp-admin/options-permalink.php:252 +msgid "Day and name" +msgstr "Día y nombre" + +#: wp-admin/options-permalink.php:176 +msgid "Permalink structure updated." +msgstr "Estructura de enlaces permanentes actualizada." + +#. translators: %s: web.config +#: wp-admin/options-permalink.php:189 +msgid "Permalink structure updated. Remove write access on %s file now!" +msgstr "La estructura de enlaces permanentes se ha actualizado. ¡Elimina ahora el acceso de escritura en el archivo %s!" + +#: wp-admin/options-permalink.php:17 wp-admin/options-permalink.php:33 +msgid "Permalink Settings" +msgstr "Ajustes de los enlaces permanentes" + +#: wp-admin/options-media.php:151 +msgid "Organize my uploads into month- and year-based folders" +msgstr "Organizar mis archivos subidos en carpetas basadas en mes y año" + +#: wp-admin/options-media.php:140 +msgid "Configuring this is optional. By default, it should be blank." +msgstr "Esta configuración es opcional. Por defecto debería estar en blanco." + +#: wp-admin/options-media.php:138 +msgid "Full URL path to files" +msgstr "Ruta URL completa a los archivos" + +#: wp-admin/options-media.php:126 +msgid "Store uploads in this folder" +msgstr "Guardar los archivos subidos en esta carpeta" + +#: wp-admin/options-media.php:114 +msgid "Uploading Files" +msgstr "Subida de archivos" + +#: wp-admin/options-media.php:86 +msgid "Large size" +msgstr "Tamaño grande" + +#: wp-admin/options-media.php:81 wp-admin/options-media.php:93 +msgid "Max Height" +msgstr "Altura máxima" + +#: wp-admin/options-media.php:78 wp-admin/options-media.php:90 +msgid "Max Width" +msgstr "Anchura máxima" + +#: wp-admin/options-media.php:74 +msgid "Medium size" +msgstr "Tamaño medio" + +#: wp-admin/options-media.php:70 +msgid "Crop thumbnail to exact dimensions (normally thumbnails are proportional)" +msgstr "Recortar las miniaturas en las dimensiones exactas (normalmente, las miniaturas son proporcionales)" + +#: wp-admin/options-media.php:59 +msgid "Thumbnail size" +msgstr "Tamaño de la miniatura" + +#: wp-admin/options-media.php:55 +msgid "Image sizes" +msgstr "Tamaño de las imágenes" + +#: wp-admin/options-media.php:17 +msgid "Media Settings" +msgstr "Ajustes de medios" + +#: wp-admin/options-general.php:556 +msgid "Week Starts On" +msgstr "La semana comienza el" + +#: wp-admin/options-general.php:492 wp-admin/options-general.php:537 +msgid "Custom:" +msgstr "Personalizado:" + +#: wp-admin/options-general.php:430 +msgid "This timezone is currently in standard time." +msgstr "Esta zona horaria se encuentra actualmente en horario de invierno." + +#: wp-admin/includes/class-wp-debug-data.php:185 +#: wp-admin/options-general.php:380 +msgid "Timezone" +msgstr "Zona horaria" + +#: wp-admin/options-general.php:305 +msgid "New User Default Role" +msgstr "Perfil por defecto para los nuevos usuarios" + +#: wp-admin/options-general.php:300 +msgid "Anyone can register" +msgstr "Cualquiera puede registrarse" + +#: wp-admin/options-general.php:294 +msgid "Membership" +msgstr "Miembros" + +#: wp-admin/options-general.php:20 +msgid "General Settings" +msgstr "Ajustes generales" + +#: wp-admin/options-discussion.php:278 +msgid "MonsterID (Generated)" +msgstr "MonsterID (autogenerado)" + +#: wp-admin/options-discussion.php:277 +msgid "Wavatar (Generated)" +msgstr "Wavatar (autogenerado)" + +#: wp-admin/options-discussion.php:276 +msgid "Identicon (Generated)" +msgstr "Identicon (autogenerado)" + +#: wp-admin/options-discussion.php:275 +msgid "Gravatar Logo" +msgstr "Logotipo de Gravatar" + +#: wp-admin/options-discussion.php:274 +msgid "Blank" +msgstr "En blanco" + +#: wp-admin/options-discussion.php:268 +msgid "For users without a custom avatar of their own, you can either display a generic logo or a generated one based on their email address." +msgstr "Para los usuarios que no tengan un avatar personalizado propio, puedes mostrar un logotipo genérico o generar uno basado en su dirección de correo electrónico." + +#. translators: Content suitability rating: +#. https://en.wikipedia.org/wiki/Motion_Picture_Association_of_America_film_rating_system +#: wp-admin/options-discussion.php:252 +msgid "X — Even more mature than above" +msgstr "X — Contenido más adulto que los anteriores" + +#. translators: Content suitability rating: +#. https://en.wikipedia.org/wiki/Motion_Picture_Association_of_America_film_rating_system +#: wp-admin/options-discussion.php:250 +msgid "R — Intended for adult audiences above 17" +msgstr "R — Destinado a un público adulto mayor de 17" + +#. translators: Content suitability rating: +#. https://en.wikipedia.org/wiki/Motion_Picture_Association_of_America_film_rating_system +#: wp-admin/options-discussion.php:248 +msgid "PG — Possibly offensive, usually for audiences 13 and above" +msgstr "PG — Posiblemente ofensivo, normalmente para mayores de 13 años" + +#. translators: Content suitability rating: +#. https://en.wikipedia.org/wiki/Motion_Picture_Association_of_America_film_rating_system +#: wp-admin/options-discussion.php:246 +msgid "G — Suitable for all audiences" +msgstr "G — Para todos los públicos" + +#: wp-admin/options-discussion.php:238 +msgid "Maximum Rating" +msgstr "Calificación máxima" + +#: wp-admin/options-discussion.php:234 +msgid "Show Avatars" +msgstr "Mostrar avatares" + +#: wp-admin/options-discussion.php:230 +msgid "Avatar Display" +msgstr "Visibilidad del avatar" + +#: wp-admin/options-discussion.php:214 +msgid "Avatars" +msgstr "Avatares" + +#: wp-admin/options-discussion.php:205 +msgid "When a comment contains any of these words in its content, author name, URL, email, IP address, or browser’s user agent string, it will be put in the Trash. One word or IP address per line. It will match inside words, so “press” will match “WordPress”." +msgstr "Cuando un comentario contenga cualquiera de estas palabras en su contenido, el nombre del autor, la URL, el correo electrónico, la dirección IP o la cadena del agente de usuario del navegador, será enviado a la papelera. Solo una palabra o dirección IP por línea. También afectará a las coincidencias dentro de las palabras, por lo que «press» coincidirá con «WordPress»." + +#: wp-admin/options-discussion.php:195 +msgid "When a comment contains any of these words in its content, author name, URL, email, IP address, or browser’s user agent string, it will be held in the moderation queue. One word or IP address per line. It will match inside words, so “press” will match “WordPress”." +msgstr "Cuando un comentario contenga cualquiera de estas palabras en su contenido, el nombre del autor, la URL, el correo electrónico, la dirección IP o la cadena del agente de usuario del navegador, será mantenido en la cola de moderación. Solo una palabra o dirección IP por línea. También afectará a las coincidencias dentro de las palabras, por lo que «press» coincidirá con «WordPress»." + +#. translators: %s: Number of links. +#: wp-admin/options-discussion.php:189 +msgid "Hold a comment in the queue if it contains %s or more links. (A common characteristic of comment spam is a large number of hyperlinks.)" +msgstr "Mantener un comentario en espera si contiene más de %s enlaces (una característica común del spam en comentarios es el gran número de enlaces)." + +#: wp-admin/options-discussion.php:181 +msgid "Comment Moderation" +msgstr "Moderación de comentarios" + +#: wp-admin/options-discussion.php:178 +msgid "Comment author must have a previously approved comment" +msgstr "El autor del comentario debe tener un comentario previamente aprobado" + +#: wp-admin/options-discussion.php:170 +msgid "Before a comment appears" +msgstr "Para que un comentario aparezca" + +#: wp-admin/options-discussion.php:162 +msgid "A comment is held for moderation" +msgstr "Se ha recibido un comentario para moderar" + +#: wp-admin/options-discussion.php:158 +msgid "Anyone posts a comment" +msgstr "Alguien envía un comentario" + +#: wp-admin/options-discussion.php:152 +msgid "Email me whenever" +msgstr "Enviarme un correo electrónico cuando " + +#: wp-admin/options-discussion.php:146 +msgid "newer" +msgstr "más recientes" + +#: wp-admin/options-discussion.php:145 +msgid "older" +msgstr "más antiguos" + +#: wp-admin/options-discussion.php:73 +msgid "Users must be registered and logged in to comment" +msgstr "Los usuarios deben registrarse y acceder para comentar" + +#: wp-admin/options-discussion.php:69 +msgid "Comment author must fill out name and email" +msgstr "El autor del comentario debe rellenar el nombre y el correo electrónico" + +#: wp-admin/options-discussion.php:65 +msgid "Other comment settings" +msgstr "Otros ajustes de comentarios" + +#: wp-admin/edit-form-advanced.php:400 wp-admin/options-discussion.php:16 +msgid "Discussion Settings" +msgstr "Ajustes de comentarios" + +#: wp-admin/includes/class-wp-users-list-table.php:158 +#: wp-admin/includes/deprecated.php:579 +#: wp-admin/includes/class-wp-ms-users-list-table.php:125 +msgid "No users found." +msgstr "No se encontraron usuarios." + +#: wp-admin/update-core.php:672 wp-admin/update-core.php:805 +#: wp-admin/update-core.php:1250 wp-admin/update-core.php:1255 +#: wp-admin/network/themes.php:85 +msgid "Update Themes" +msgstr "Actualizar temas" + +#: wp-admin/my-sites.php:139 +#: wp-admin/includes/class-wp-ms-sites-list-table.php:841 +#: wp-admin/network/site-info.php:146 wp-admin/network/site-settings.php:95 +#: wp-admin/network/site-themes.php:181 wp-admin/network/site-users.php:246 +msgid "Visit" +msgstr "Visitar" + +#: wp-admin/includes/revision.php:97 +msgid "Removed" +msgstr "Eliminado" + +#: wp-admin/ms-delete-site.php:13 wp-admin/my-sites.php:13 +#: wp-admin/network/admin.php:17 +msgid "Multisite support is not enabled." +msgstr "La compatibilidad con multisitio no está activa." + +#: wp-admin/menu.php:408 +msgid "Permalinks" +msgstr "Enlaces permanentes" + +#: wp-admin/about.php:59 wp-admin/contribute.php:46 wp-admin/credits.php:49 +#: wp-admin/freedoms.php:52 wp-admin/includes/class-wp-site-health.php:2728 +#: wp-admin/menu.php:409 wp-admin/options-privacy.php:22 +#: wp-admin/options-privacy.php:157 wp-admin/privacy-policy-guide.php:40 +#: wp-admin/privacy.php:13 wp-admin/privacy.php:33 wp-admin/privacy.php:46 +msgid "Privacy" +msgstr "Privacidad" + +#: wp-admin/menu.php:405 +msgid "Reading" +msgstr "Lectura" + +#: wp-admin/menu.php:404 +msgid "Writing" +msgstr "Escritura" + +#: wp-admin/menu.php:403 +msgctxt "settings screen" +msgid "General" +msgstr "Generales" + +#: wp-admin/menu.php:339 wp-admin/menu.php:351 wp-admin/menu.php:354 +#: wp-admin/user-edit.php:41 wp-admin/user/menu.php:19 +msgid "Profile" +msgstr "Perfil" + +#. translators: %s: Number of comments. +#: wp-admin/menu.php:107 +msgid "Comments %s" +msgstr "Comentarios %s" + +#: wp-admin/menu.php:75 +msgid "Library" +msgstr "Biblioteca" + +#: wp-admin/media-new.php:43 +msgid "Upload New Media" +msgstr "Subir un nuevo medio" + +#: wp-admin/maint/repair.php:187 +msgid "Repair and Optimize Database" +msgstr "Reparar y optimizar la base de datos" + +#: wp-admin/maint/repair.php:185 +msgid "Repair Database" +msgstr "Reparar base de datos" + +#. translators: %s: URL to "Fixing WordPress" forum. +#: wp-admin/maint/repair.php:161 +msgid "Some database problems could not be repaired. Please copy-and-paste the following list of errors to the WordPress support forums to get additional assistance." +msgstr "Algunos problemas de la base de datos no se han podido reparar. Por favor, copia y pega la siguiente lista de errores en los foros de soporte de WordPress para conseguir ayuda." + +#: wp-admin/maint/repair.php:20 +msgid "WordPress › Database Repair" +msgstr "WordPress › Reparación de la base de datos" + +#: wp-admin/link.php:120 +msgid "Link not found." +msgstr "Enlace no encontrado." + +#: wp-admin/includes/class-wp-links-list-table.php:82 +msgid "No links found." +msgstr "No se encontraron enlaces." + +#: wp-admin/link-manager.php:139 +msgid "Search Links" +msgstr "Buscar enlaces" + +#. translators: %s: Number of links. +#: wp-admin/link-manager.php:124 +msgid "%s link deleted." +msgid_plural "%s links deleted." +msgstr[0] "%s enlace eliminado." +msgstr[1] "%s enlaces eliminados." + +#: wp-admin/install.php:444 +msgid "Success!" +msgstr "¡Lo lograste!" + +#: wp-admin/install.php:388 +msgid "Please provide the following information. Do not worry, you can always change these settings later." +msgstr "Por favor, proporciona la siguiente información. No te preocupes, siempre podrás cambiar estos ajustes más tarde." + +#: wp-admin/install.php:387 +msgid "Information needed" +msgstr "Información necesaria" + +#: wp-admin/install.php:209 +msgid "Install WordPress" +msgstr "Instalar WordPress" + +#: wp-admin/install.php:180 +msgid "Double-check your email address before continuing." +msgstr "Comprueba bien tu dirección de correo electrónico antes de continuar." + +#: wp-admin/install.php:178 +msgid "Your Email" +msgstr "Tu correo electrónico" + +#: wp-admin/install.php:121 +msgid "User(s) already exists." +msgstr "El (los) usuario(s) ya existe(n)." + +#: wp-admin/install.php:72 +msgid "WordPress › Installation" +msgstr "Instalación de WordPress" + +#: wp-admin/includes/user.php:207 +msgid "Error: Please enter an email address." +msgstr "Error: por favor, introduce una dirección de correo electrónico." + +#: wp-admin/includes/user.php:178 +msgid "Error: Passwords may not contain the character \"\\\"." +msgstr "Error: la contraseña no puede contener el carácter « \\ »." + +#: wp-admin/includes/user.php:173 +msgid "Error: Please enter a password." +msgstr "Error: por favor, introduce una contraseña." + +#. translators: Default post slug. +#: wp-admin/includes/upgrade.php:249 wp-admin/includes/upgrade.php:529 +msgctxt "Default post slug" +msgid "hello-world" +msgstr "hola-mundo" + +#: wp-admin/includes/upgrade.php:247 +msgid "Hello world!" +msgstr "¡Hola, mundo!" + +#. translators: %s: Site link. +#. translators: First post content. %s: Site link. +#: wp-admin/includes/schema.php:1334 wp-admin/includes/upgrade.php:220 +msgid "Welcome to %s. This is your first post. Edit or delete it, then start writing!" +msgstr "Te damos la bienvenida a %s. Esta es tu primera entrada. Edítala o bórrala, ¡y comienza a escribir!" + +#. translators: Default category slug. +#: wp-admin/includes/upgrade.php:184 +msgctxt "Default category slug" +msgid "Uncategorized" +msgstr "Sin categoría" + +#: wp-admin/includes/upgrade.php:113 +msgid "Note that password carefully! It is a random password that was generated just for you." +msgstr "¡Anota la contraseña cuidadosamente! Es una contraseña aleatoria que ha sido generada solo para ti." + +#: wp-admin/includes/update.php:887 +msgid "An automated WordPress update has failed to complete! Please notify the site administrator." +msgstr "¡No se ha podido completar la actualización automática de WordPress! Por favor, avisa al administrador." + +#. translators: %s: URL to WordPress Updates screen. +#: wp-admin/includes/update.php:883 +msgid "An automated WordPress update has failed to complete - please attempt the update again now." +msgstr "No se ha podido completar la actualización automática de WordPress. Por favor, vuelve a intentarlo." + +#. translators: %s: WordPress version number, or 'Latest' string. +#: wp-admin/includes/update.php:375 +msgid "Latest" +msgstr "Última" + +#. translators: %s: WordPress version number, or 'Latest' string. +#: wp-admin/includes/update.php:375 +msgid "Update to %s" +msgstr "Actualizar a %s" + +#. translators: 1: WordPress version number, 2: URL to WordPress Updates +#. screen. +#: wp-admin/includes/update.php:272 +msgid "You are using a development version (%1$s). Cool! Please stay updated." +msgstr "Estás usando una versión en desarrollo (%1$s). ¡Mola! Por favor, mantente actualizado." + +#: wp-admin/includes/update-core.php:1577 +msgid "Upgrading database…" +msgstr "Actualizando la base de datos…" + +#: wp-admin/includes/update-core.php:1093 +msgid "The update could not be unpacked" +msgstr "No se ha podido descomprimir la actualización." + +#: wp-admin/includes/update-core.php:1075 +msgid "Verifying the unpacked files…" +msgstr "Verificando los archivos descomprimidos…" + +#. translators: 1: WordPress version number, 2: Minimum required MySQL version +#. number, 3: Current MySQL version number. +#: wp-admin/includes/update-core.php:1195 +msgid "The update cannot be installed because WordPress %1$s requires MySQL version %2$s or higher. You are running version %3$s." +msgstr "La actualización no puede instalarse porque WordPress %1$s requiere la versión %2$s o superior de MySQL. Estás usando la versión %3$s." + +#. translators: 1: WordPress version number, 2: Minimum required PHP version +#. number, 3: Current PHP version number. +#: wp-admin/includes/update-core.php:1184 +msgid "The update cannot be installed because WordPress %1$s requires PHP version %2$s or higher. You are running version %3$s." +msgstr "La actualización no puede instalarse ya que WordPress %1$s requiere la versión %2$s o superior de PHP. Estás usando la versión %3$s." + +#. translators: 1: WordPress version number, 2: Minimum required PHP version +#. number, 3: Minimum required MySQL version number, 4: Current PHP version +#. number, 5: Current MySQL version number. +#: wp-admin/includes/update-core.php:1171 +msgid "The update cannot be installed because WordPress %1$s requires PHP version %2$s or higher and MySQL version %3$s or higher. You are running PHP version %4$s and MySQL version %5$s." +msgstr "No se ha podido instalar la actualización porque WordPress %1$s necesita la versión %2$s o superior de PHP y la versión %3$s o superior de MySQL. Estás usando la versión %4$s de PHP y la versión %5$s de MySQL." + +#. translators: %s: Theme name. +#: wp-admin/includes/theme.php:104 +msgid "Could not fully remove the theme %s." +msgstr "No se ha podido eliminar completamente el tema %s." + +#: wp-admin/includes/class-wp-upgrader.php:195 wp-admin/includes/theme.php:72 +msgid "Unable to locate WordPress theme directory." +msgstr "No ha sido posible localizar el directorio de temas de WordPress." + +#: wp-admin/includes/class-theme-installer-skin.php:240 +msgid "This theme is already installed." +msgstr "Este tema ya está instalado." + +#. translators: %s: Theme version. +#: wp-admin/includes/theme.php:867 wp-admin/theme-install.php:537 +#: wp-admin/themes.php:1089 +msgid "Version: %s" +msgstr "Versión: %s" + +#: wp-admin/includes/theme-install.php:197 +msgid "If you have a theme in a .zip format, you may install or update it by uploading it here." +msgstr "Si tienes un tema en formato .zip, puedes instalarlo o actualizarlo subiéndolo aquí." + +#: wp-admin/includes/theme-install.php:185 +msgid "Find Themes" +msgstr "Buscar temas" + +#: wp-admin/includes/theme.php:324 +msgid "Holiday" +msgstr "Vacaciones" + +#: wp-admin/includes/theme.php:318 wp-admin/includes/theme.php:389 +msgid "Subject" +msgstr "Temática" + +#: wp-admin/includes/theme.php:345 +msgid "Sticky Post" +msgstr "Entrada fija" + +#: wp-admin/includes/theme.php:348 +msgid "Theme Options" +msgstr "Opciones del tema" + +#: wp-admin/includes/theme.php:330 wp-admin/includes/theme.php:388 +msgid "Features" +msgstr "Características" + +#: wp-admin/includes/theme.php:358 +msgid "Right Sidebar" +msgstr "Barra lateral derecha" + +#: wp-admin/includes/theme.php:357 +msgid "Left Sidebar" +msgstr "Barra lateral izquierda" + +#: wp-admin/includes/theme.php:356 +msgid "Four Columns" +msgstr "Cuatro columnas" + +#: wp-admin/includes/theme.php:355 +msgid "Three Columns" +msgstr "Tres columnas" + +#: wp-admin/includes/theme.php:354 +msgid "Two Columns" +msgstr "Dos columnas" + +#: wp-admin/includes/theme.php:353 +msgid "One Column" +msgstr "Una columna" + +#: wp-admin/includes/theme-install.php:152 wp-admin/theme-install.php:217 +msgid "Feature Filter" +msgstr "Filtrar por características" + +#: wp-admin/includes/class-wp-screen.php:972 +msgid "Screen Options" +msgstr "Opciones de pantalla" + +#: wp-admin/widgets-form.php:413 +msgid "Disable accessibility mode" +msgstr "Desactivar modo de accesibilidad" + +#: wp-admin/widgets-form.php:413 +msgid "Enable accessibility mode" +msgstr "Activar modo de accesibilidad" + +#: wp-admin/update.php:284 +msgid "Install Themes" +msgstr "Instalar temas" + +#: wp-admin/includes/template.php:1038 +msgid "Upload file and import" +msgstr "Subir archivo e importar" + +#. translators: %s: Maximum allowed file size. +#: wp-admin/includes/template.php:1031 +msgid "Maximum size: %s" +msgstr "Tamaño máximo: %s" + +#: wp-admin/includes/template.php:1029 +msgid "Choose a file from your computer:" +msgstr "Elige un archivo de tu ordenador:" + +#: wp-admin/includes/template.php:1013 +msgid "Before you can upload your import file, you will need to fix the following error:" +msgstr "Antes de poder subir el fichero de importación, debes resolver el siguiente error:" + +#: wp-admin/includes/template.php:779 +msgid "Add Custom Field" +msgstr "Añadir campo personalizado" + +#: wp-admin/includes/template.php:764 +msgid "Enter new" +msgstr "Introducir nueva" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/template.php:665 +msgid "Key" +msgstr "Clave" + +#. translators: %s: Comment author, filled by Ajax. +#: wp-admin/includes/template.php:570 +msgid "Comment by %s marked as spam." +msgstr "El comentario de %s se ha marcado como spam." + +#. translators: %s: Comment author, filled by Ajax. +#: wp-admin/includes/template.php:561 +msgid "Comment by %s moved to the Trash." +msgstr "El comentario de %s ha sido movido a la papelera." + +#: wp-admin/includes/template.php:510 +msgid "Submit Reply" +msgstr "Enviar respuesta" + +#: wp-admin/includes/template.php:463 +msgid "Reply to Comment" +msgstr "Responder al comentario" + +#: wp-admin/includes/class-wp-posts-list-table.php:1216 +msgid "Missed schedule" +msgstr "Programación perdida" + +#: wp-admin/includes/class-wp-posts-list-table.php:2045 +msgid "Make this post sticky" +msgstr "Marcar esta entrada como fija" + +#: wp-admin/includes/class-wp-posts-list-table.php:2037 +msgid "Not Sticky" +msgstr "No es fija" + +#: wp-admin/includes/class-wp-posts-list-table.php:1973 +msgid "Allow Pings" +msgstr "Permitir pings" + +#: wp-admin/includes/class-wp-posts-list-table.php:1964 +msgid "Allow Comments" +msgstr "Permitir comentarios" + +#: wp-admin/includes/class-wp-posts-list-table.php:1935 +#: wp-admin/includes/class-wp-posts-list-table.php:1948 +msgid "Do not allow" +msgstr "No permitir" + +#. translators: Between password field and private checkbox on post quick edit +#. interface. +#: wp-admin/includes/class-wp-posts-list-table.php:1790 +msgid "–OR–" +msgstr "–O–" + +#: wp-admin/includes/class-wp-posts-list-table.php:1747 +#: wp-admin/includes/class-wp-posts-list-table.php:1850 +#: wp-admin/includes/class-wp-posts-list-table.php:1890 +#: wp-admin/includes/class-wp-posts-list-table.php:1933 +#: wp-admin/includes/class-wp-posts-list-table.php:1946 +#: wp-admin/includes/class-wp-posts-list-table.php:1992 +#: wp-admin/includes/class-wp-posts-list-table.php:2035 +#: wp-admin/includes/class-wp-posts-list-table.php:2060 +msgid "— No Change —" +msgstr "— Sin cambios —" + +#: wp-admin/includes/class-wp-posts-list-table.php:1687 +msgid "Bulk Edit" +msgstr "Edición en lote" + +#: wp-admin/includes/class-wp-links-list-table.php:138 +msgid "Relationship" +msgstr "Relación con el enlace (XFN)" + +#: wp-admin/includes/class-wp-comments-list-table.php:481 +#: wp-admin/includes/class-wp-post-comments-list-table.php:26 +msgctxt "column name" +msgid "Comment" +msgstr "Comentario" + +#. translators: Column name. +#: wp-admin/includes/class-wp-media-list-table.php:381 +msgctxt "column name" +msgid "Date" +msgstr "Fecha" + +#. translators: Column name. +#: wp-admin/includes/class-wp-media-list-table.php:337 +#: wp-admin/includes/class-wp-media-list-table.php:400 +msgctxt "column name" +msgid "File" +msgstr "Archivo" + +#. translators: Posts screen column name. +#: wp-admin/includes/class-wp-posts-list-table.php:663 +msgctxt "column name" +msgid "Title" +msgstr "Título" + +#: wp-admin/includes/class-wp-comments-list-table.php:844 +#: wp-admin/includes/class-wp-posts-list-table.php:1509 +#: wp-admin/includes/class-wp-terms-list-table.php:510 +msgid "Quick Edit" +msgstr "Edición rápida" + +#: wp-admin/includes/class-wp-posts-list-table.php:1687 +#: wp-admin/includes/class-wp-terms-list-table.php:693 +msgid "Quick Edit" +msgstr "Edición rápida" + +#: wp-admin/includes/schema.php:1178 +msgid "Warning! Wildcard DNS may not be configured correctly!" +msgstr "¡Atención! ¡Puede que las DNS no estén configuradas correctamente." + +#. translators: %s: Network title. +#: wp-admin/options-general.php:86 +msgid "Just another %s site" +msgstr "Otro sitio más de %s" + +#. translators: Site tagline. +#: wp-admin/options-general.php:83 +msgid "Just another WordPress site" +msgstr "Otro sitio realizado con WordPress" + +#: wp-admin/includes/post.php:767 +msgid "Auto Draft" +msgstr "Borrador automático" + +#: wp-admin/includes/post.php:37 wp-admin/includes/post.php:82 +msgid "Sorry, you are not allowed to edit posts as this user." +msgstr "Lo siento, no tienes permisos para editar entradas con este usuario." + +#: wp-admin/includes/post.php:35 wp-admin/includes/post.php:80 +msgid "Sorry, you are not allowed to edit pages as this user." +msgstr "Lo siento, no tienes permisos para editar páginas con este usuario." + +#: wp-admin/includes/plugin.php:1119 +msgid "The plugin does not have a valid header." +msgstr "El plugin no tiene una cabecera válida." + +#: wp-admin/includes/plugin.php:1114 +msgid "Plugin file does not exist." +msgstr "El archivo del plugin no existe." + +#: wp-admin/includes/plugin.php:1111 +msgid "Invalid plugin path." +msgstr "La ruta del plugin no es válida." + +#. translators: %s: Comma-separated list of plugin filenames. +#: wp-admin/includes/plugin.php:1051 +msgid "Could not fully remove the plugins %s." +msgstr "No se pudieron eliminar completamente los plugins %s." + +#: wp-admin/includes/plugin.php:886 +msgid "One of the plugins is invalid." +msgstr "Uno de los plugins no es válido." + +#: wp-admin/includes/plugin.php:735 +msgid "The plugin generated unexpected output." +msgstr "El plugin ha generado una respuesta insesperada." + +#: wp-admin/includes/plugin-install.php:832 +msgid "Warning: This plugin has not been tested with your current version of WordPress." +msgstr "Advertencia: Este plugin no ha sido probado en tu versión actual de WordPress." + +#: wp-admin/includes/plugin-install.php:710 +msgid "Average Rating" +msgstr "Puntuación promedio" + +#: wp-admin/includes/plugin-install.php:702 +msgid "WordPress.org Plugin Page »" +msgstr "Página del plugin en WordPress.org »" + +#: wp-admin/includes/plugin-install.php:675 +msgid "Compatible up to:" +msgstr "Compatible con:" + +#. translators: %s: Version number. +#: wp-admin/includes/plugin-install.php:671 +#: wp-admin/includes/plugin-install.php:681 +msgid "%s or higher" +msgstr "%s o superior" + +#: wp-admin/includes/plugin-install.php:668 +msgid "Requires WordPress Version:" +msgstr "Necesita la versión de WordPress:" + +#: wp-admin/includes/class-wp-plugin-install-list-table.php:707 +#: wp-admin/includes/plugin-install.php:660 +msgid "Last Updated:" +msgstr "Última actualización:" + +#. translators: %s: Number of ratings. +#: wp-admin/includes/plugin-install.php:724 +msgid "(based on %s rating)" +msgid_plural "(based on %s ratings)" +msgstr[0] "(basado en %s valoración)" +msgstr[1] "(basado en %s valoraciones)" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/plugin-install.php:351 +msgid "Plugin zip file" +msgstr "Archivo .zip del plugin" + +#: wp-admin/includes/plugin-install.php:345 +msgid "If you have a plugin in a .zip format, you may install or update it by uploading it here." +msgstr "Si tienes un plugin en formato .zip, puedes instalarlo o actualizarlo subiéndolo aquí." + +#: wp-admin/includes/plugin-install.php:319 +#: wp-admin/includes/plugin-install.php:332 +msgid "Search Plugins" +msgstr "Buscar plugins" + +#: wp-admin/includes/plugin-install.php:270 +msgid "You may also browse based on the most popular tags in the Plugin Directory:" +msgstr "También puedes ver las etiquetas más populares del directorio de plugins:" + +#: wp-admin/includes/plugin-install.php:269 +msgid "Popular tags" +msgstr "Etiquetas populares" + +#: wp-admin/includes/meta-boxes.php:1471 +msgid "(Leave at 0 for no rating.)" +msgstr "(Déjalo a 0 para no valorar.)" + +#: wp-admin/includes/class-wp-links-list-table.php:140 +#: wp-admin/includes/class-wp-links-list-table.php:152 +#: wp-admin/includes/meta-boxes.php:1460 +msgid "Rating" +msgstr "Valoración" + +#: wp-admin/includes/meta-boxes.php:1456 +msgid "Notes" +msgstr "Notas" + +#: wp-admin/includes/meta-boxes.php:1452 +msgid "RSS Address" +msgstr "Dirección RSS" + +#: wp-admin/includes/meta-boxes.php:1448 +msgid "Image Address" +msgstr "Dirección de la imagen" + +#: wp-admin/includes/meta-boxes.php:1433 +msgid "If the link is to a person, you can specify your relationship with them using the above form. If you would like to learn more about the idea check out XFN." +msgstr "Si el enlace es a una persona, puedes especificar tu relación con ella usando el formulario anterior. Si te gustaría saber más sobre la idea, echa un vistazo a XFN." + +#. translators: xfn: https://gmpg.org/xfn +#: wp-admin/includes/meta-boxes.php:1427 +msgid "sweetheart" +msgstr "pareja" + +#. translators: xfn: https://gmpg.org/xfn +#: wp-admin/includes/meta-boxes.php:1424 +msgid "date" +msgstr "fecha" + +#. translators: xfn: https://gmpg.org/xfn +#: wp-admin/includes/meta-boxes.php:1421 +msgid "crush" +msgstr "flechazo" + +#. translators: xfn: https://gmpg.org/xfn +#: wp-admin/includes/meta-boxes.php:1418 +msgid "muse" +msgstr "inspiración" + +#. translators: xfn: https://gmpg.org/xfn +#: wp-admin/includes/meta-boxes.php:1412 +msgid "romantic" +msgstr "romántica" + +#. translators: xfn: https://gmpg.org/xfn +#: wp-admin/includes/meta-boxes.php:1405 +msgid "spouse" +msgstr "cónyuge" + +#. translators: xfn: https://gmpg.org/xfn +#: wp-admin/includes/meta-boxes.php:1402 +msgid "sibling" +msgstr "hermano/a" + +#. translators: xfn: https://gmpg.org/xfn +#: wp-admin/includes/meta-boxes.php:1399 +msgid "parent" +msgstr "padre/madre" + +#. translators: xfn: https://gmpg.org/xfn +#: wp-admin/includes/meta-boxes.php:1396 +msgid "kin" +msgstr "pariente" + +#. translators: xfn: https://gmpg.org/xfn +#: wp-admin/includes/meta-boxes.php:1393 +msgid "child" +msgstr "hija/o" + +#. translators: xfn: https://gmpg.org/xfn +#: wp-admin/includes/meta-boxes.php:1387 +msgid "family" +msgstr "familia" + +#. translators: xfn: https://gmpg.org/xfn +#: wp-admin/includes/meta-boxes.php:1380 +msgid "neighbor" +msgstr "vecino" + +#. translators: xfn: https://gmpg.org/xfn +#: wp-admin/includes/meta-boxes.php:1377 +msgid "co-resident" +msgstr "co-residente" + +#. translators: xfn: https://gmpg.org/xfn +#: wp-admin/includes/meta-boxes.php:1371 +msgid "geographical" +msgstr "geográfico" + +#. translators: xfn: https://gmpg.org/xfn +#: wp-admin/includes/meta-boxes.php:1367 +msgid "colleague" +msgstr "colega" + +#. translators: xfn: https://gmpg.org/xfn +#: wp-admin/includes/meta-boxes.php:1364 +msgid "co-worker" +msgstr "compañero de trabajo" + +#. translators: xfn: https://gmpg.org/xfn +#: wp-admin/includes/meta-boxes.php:1358 +msgid "professional" +msgstr "profesional" + +#. translators: xfn: https://gmpg.org/xfn +#: wp-admin/includes/meta-boxes.php:1354 +msgid "met" +msgstr "conocido en persona" + +#. translators: xfn: https://gmpg.org/xfn +#: wp-admin/includes/meta-boxes.php:1348 +msgid "physical" +msgstr "físico" + +#. translators: xfn: https://gmpg.org/xfn +#: wp-admin/includes/meta-boxes.php:1341 +msgid "friend" +msgstr "amigo" + +#. translators: xfn: https://gmpg.org/xfn +#: wp-admin/includes/meta-boxes.php:1338 +msgid "acquaintance" +msgstr "conocido" + +#. translators: xfn: https://gmpg.org/xfn +#: wp-admin/includes/meta-boxes.php:1335 +msgid "contact" +msgstr "contacto" + +#. translators: xfn: https://gmpg.org/xfn +#: wp-admin/includes/meta-boxes.php:1329 +msgid "friendship" +msgstr "amistad" + +#: wp-admin/includes/meta-boxes.php:1326 +msgid "another web address of mine" +msgstr "otra dirección web mía" + +#. translators: xfn: https://gmpg.org/xfn +#: wp-admin/includes/meta-boxes.php:1319 +msgid "identity" +msgstr "identidad" + +#. translators: xfn: https://gmpg.org/xfn +#: wp-admin/includes/meta-boxes.php:1316 +msgid "rel:" +msgstr "rel:" + +#: wp-admin/includes/meta-boxes.php:1242 +msgid "Choose the target frame for your link." +msgstr "Ellige el marco de destino para tu enlace." + +#: wp-admin/includes/meta-boxes.php:1240 +msgid "_none — same window or tab." +msgstr "_none — misma ventana o pestaña." + +#: wp-admin/includes/meta-boxes.php:1237 +msgid "_top — current window or tab, with no frames." +msgstr "_top — ventana o pestaña actual, sin marcos." + +#: wp-admin/includes/meta-boxes.php:1234 +msgid "_blank — new window or tab." +msgstr "_blank — nueva ventana o pestaña." + +#. translators: %s: Link name. +#: wp-admin/includes/class-wp-links-list-table.php:356 +#: wp-admin/includes/meta-boxes.php:1140 +msgid "" +"You are about to delete this link '%s'\n" +" 'Cancel' to stop, 'OK' to delete." +msgstr "" +"Estás a punto de borrar este enlace '%s'\n" +" 'Cancelar' para parar, 'Aceptar' para borrarlo." + +#: wp-admin/includes/meta-boxes.php:1122 +msgid "Keep this link private" +msgstr "Mantener este enlace como privado" + +#: wp-admin/includes/meta-boxes.php:1114 +msgid "Visit Link" +msgstr "Visitar enlace" + +#: wp-admin/includes/class-wp-posts-list-table.php:1844 +msgid "Main Page (no parent)" +msgstr "Página principal (sin superior)" + +#: wp-admin/includes/meta-boxes.php:922 +msgid "Show comments" +msgstr "Mostrar comentarios" + +#: wp-admin/includes/meta-boxes.php:790 +msgid "Separate multiple URLs with spaces" +msgstr "Separar varias URLs con espacios" + +#: wp-admin/includes/meta-boxes.php:787 +msgid "Send trackbacks to:" +msgstr "Enviar trackbacks a:" + +#: wp-admin/includes/meta-boxes.php:777 +msgid "Already pinged:" +msgstr "Pingbacks enviados:" + +#: wp-admin/includes/meta-boxes.php:1211 +msgid "New category name" +msgstr "Nombre nueva categoría" + +#: wp-admin/includes/meta-boxes.php:246 wp-admin/includes/meta-boxes.php:260 +msgid "Publish immediately" +msgstr "Publicar inmediatamente" + +#: wp-admin/includes/meta-boxes.php:214 +msgid "Stick this post to the front page" +msgstr "Fijar esta entrada en la página de inicio" + +#: wp-admin/edit-form-comment.php:113 wp-admin/export.php:237 +#: wp-admin/export.php:289 wp-admin/includes/meta-boxes.php:104 +msgid "Status:" +msgstr "Estado:" + +#: wp-admin/includes/meta-boxes.php:71 +msgid "Preview Changes" +msgstr "Vista previa de los cambios" + +#: wp-admin/includes/media.php:2978 +msgid "Link text, e.g. “Ransom Demands (PDF)”" +msgstr "Texto del enlace, por ejemplo «Exigencias del rescate (PDF)»" + +#: wp-admin/includes/media.php:3009 +msgid "Link to image" +msgstr "Enlace a la imagen" + +#: wp-admin/includes/media.php:3004 +msgid "Link Image To:" +msgstr "Enlazar la imagen a:" + +#: wp-admin/includes/media.php:2935 +msgid "Image Caption" +msgstr "Leyenda de la imagen" + +#: wp-admin/includes/media.php:2888 +msgid "Filter »" +msgstr "Filtrar »" + +#: wp-admin/includes/media.php:2797 +msgid "All Types" +msgstr "Todos los tipos" + +#. translators: Hidden accessibility text. +#: wp-admin/includes/class-wp-media-list-table.php:319 +#: wp-admin/includes/class-wp-media-list-table.php:323 +#: wp-admin/includes/media.php:2762 +msgid "Search Media" +msgstr "Buscar medios" + +#: wp-admin/includes/media.php:2696 +msgid "Update gallery settings" +msgstr "Actualizar ajustes de la galería" + +#: wp-admin/includes/media.php:2675 +msgid "Gallery columns:" +msgstr "Columnas de la galería" + +#: wp-admin/includes/media.php:2660 +msgid "Order:" +msgstr "Orden:" + +#: wp-admin/includes/media.php:2652 +msgid "Random" +msgstr "Aleatorio" + +#: wp-admin/includes/media.php:2651 +msgid "Date/Time" +msgstr "Fecha/Hora" + +#: wp-admin/includes/media.php:2649 +msgid "Menu order" +msgstr "Orden del menú" + +#: wp-admin/includes/media.php:2644 +msgid "Order images by:" +msgstr "Ordenar imágenes por:" + +#: wp-admin/includes/media.php:2634 +msgid "Image File" +msgstr "Archivo de imagen" + +#: wp-admin/includes/media.php:2629 +msgid "Link thumbnails to:" +msgstr "Enlazar miniaturas a:" + +#: wp-admin/includes/media.php:2588 wp-admin/includes/media.php:2668 +msgid "Descending" +msgstr "Descendente" + +#: wp-admin/includes/media.php:2587 wp-admin/includes/media.php:2665 +msgid "Ascending" +msgstr "Ascendente" + +#: wp-admin/includes/media.php:2586 +msgid "Sort Order:" +msgstr "Ordenar:" + +#: wp-admin/includes/media.php:2582 +msgid "All Tabs:" +msgstr "Todas las pestañas:" + +#: wp-admin/includes/media.php:2390 wp-admin/includes/media.php:2608 +#: wp-admin/includes/media.php:2914 +msgid "Save all changes" +msgstr "Guarda todos los cambios" + +#: wp-admin/includes/media.php:2360 +msgid "Add media files from your computer" +msgstr "Añadir archivos desde tu ordenador" + +#: wp-admin/includes/media.php:1730 wp-admin/includes/media.php:3015 +#: wp-admin/includes/media.php:3021 +msgid "Insert into Post" +msgstr "Insertar en la entrada" + +#: wp-admin/includes/media.php:1705 +msgid "Upload date:" +msgstr "Fecha de subida:" + +#: wp-admin/includes/media.php:1429 +msgid "Location of the uploaded file." +msgstr "Ubicación del archivo subido." + +#: wp-admin/includes/media.php:1486 wp-admin/includes/media.php:2985 +msgid "Alt text for the image, e.g. “The Mona Lisa”" +msgstr "Texto alternativo (alt) de la imagen, por ejemplo «La Mona Lisa»" + +#: wp-admin/includes/media.php:1289 wp-admin/includes/media.php:1425 +msgid "File URL" +msgstr "URL del archivo" + +#: wp-admin/includes/class-wp-debug-data.php:298 +#: wp-admin/includes/class-wp-privacy-policy-content.php:702 +#: wp-admin/includes/media.php:540 wp-admin/includes/template.php:2137 +#: wp-admin/install.php:76 wp-admin/maint/repair.php:24 +#: wp-admin/setup-config.php:115 wp-admin/upgrade.php:88 +msgid "WordPress" +msgstr "WordPress" + +#: wp-admin/includes/media.php:540 +msgid "Uploads" +msgstr "Archivos subidos" + +#. translators: %s: Number of attachments. +#: wp-admin/includes/media.php:64 +msgid "Gallery (%s)" +msgstr "Galería (%s)" + +#: wp-admin/includes/media.php:19 +msgid "From URL" +msgstr "Desde una URL" + +#: wp-admin/includes/media.php:18 +msgid "From Computer" +msgstr "Desde el ordenador" + +#: wp-admin/includes/image-edit.php:1161 +msgid "Image saved" +msgstr "Imagen guardada" + +#: wp-admin/includes/image-edit.php:1021 +msgid "Unable to save the image." +msgstr "No ha sido posible guardar la imagen." + +#: wp-admin/includes/image-edit.php:969 +msgid "Nothing to save, the image has not changed." +msgstr "Nada que guardar, la imagen no ha cambiado." + +#: wp-admin/includes/image-edit.php:959 +msgid "Error while saving the scaled image. Please reload the page and try again." +msgstr "Error al tratar de guardar la imagen escalada. Vuelve a cargar la página e inténtalo de nuevo." + +#: wp-admin/includes/image-edit.php:926 +msgid "Unable to create new image." +msgstr "No ha sido posible crear una imagen nueva." + +#: wp-admin/includes/image-edit.php:894 +msgid "Image restored successfully." +msgstr "Imagen restaurada correctamente." + +#: wp-admin/includes/image-edit.php:892 +msgid "Image metadata is inconsistent." +msgstr "Los metadatos de la imagen son inconsistentes." + +#: wp-admin/includes/image-edit.php:887 +msgid "Cannot save image metadata." +msgstr "No se pudieron guardar los metadatos de la imagen." + +#: wp-admin/includes/image-edit.php:819 +msgid "Cannot load image metadata." +msgstr "No se pudieron cargar los metadatos de la imagen." + +#: wp-admin/includes/image-edit.php:315 +msgid "All sizes except thumbnail" +msgstr "Todos los tamaños excepto la miniatura" + +#: wp-admin/includes/image-edit.php:305 +msgid "All image sizes" +msgstr "Todos los tamaños de imagen" + +#: wp-admin/includes/image-edit.php:301 +msgid "Apply changes to:" +msgstr "Aplicar cambios a:" + +#: wp-admin/includes/image-edit.php:297 +msgid "Current thumbnail" +msgstr "Miniatura actual" + +#: wp-admin/includes/image-edit.php:283 +msgid "Thumbnail Settings" +msgstr "Opciones de miniatura" + +#: wp-admin/includes/image-edit.php:230 +msgid "Selection:" +msgstr "Selección:" + +#: wp-admin/includes/image-edit.php:210 +msgid "Aspect ratio:" +msgstr "Relación de aspecto:" + +#: wp-admin/includes/image-edit.php:205 +msgid "Crop Selection" +msgstr "Selección de recorte" + +#: wp-admin/includes/image-edit.php:202 +msgid "Crop Aspect Ratio" +msgstr "Relación de aspecto de la zona a recortar" + +#: wp-admin/includes/image-edit.php:184 +msgid "Restore image" +msgstr "Restaurar imagen" + +#: wp-admin/includes/image-edit.php:179 +msgid "Previously edited copies of the image will not be deleted." +msgstr "Las copias de la imagen editadas previamente no se borrarán." + +#: wp-admin/includes/image-edit.php:177 +msgid "Discard any changes and restore the original image." +msgstr "Descartar todos los cambios y restaurar la imagen original." + +#: wp-admin/includes/class-custom-background.php:337 +#: wp-admin/includes/class-custom-background.php:341 +msgid "Restore Original Image" +msgstr "Restaurar imagen original" + +#. translators: %s: Image width and height in pixels. +#: wp-admin/includes/image-edit.php:141 +msgid "Original dimensions %s" +msgstr "Dimensiones originales %s" + +#: wp-admin/includes/image-edit.php:126 +msgid "Scale Image" +msgstr "Escalar imagen" + +#: wp-admin/includes/image-edit.php:92 +msgid "Flip horizontal" +msgstr "Volteo horizontal" + +#: wp-admin/includes/image-edit.php:91 +msgid "Flip vertical" +msgstr "Volteo vertical" + +#: wp-admin/includes/image-edit.php:28 wp-admin/includes/image-edit.php:977 +msgid "Image data does not exist. Please re-upload the image." +msgstr "No existen datos de la imagen. Por favor, vuelve a subir la imagen." + +#: wp-admin/includes/file.php:2661 +msgid "Proceed" +msgstr "Ejecutar" + +#: wp-admin/includes/file.php:2609 +msgid "Connection Type" +msgstr "Tipo de conexión" + +#: wp-admin/includes/file.php:2636 +msgid "Private Key:" +msgstr "Clave privada:" + +#: wp-admin/includes/file.php:2632 +msgid "Public Key:" +msgstr "Clave pública:" + +#: wp-admin/includes/file.php:2630 +msgid "Authentication Keys" +msgstr "Claves de autentificación" + +#: wp-admin/includes/file.php:2588 +msgid "Hostname" +msgstr "Hostname" + +#: wp-admin/includes/file.php:2554 +msgid "Connection Information" +msgstr "Datos de conexión" + +#: wp-admin/includes/file.php:2528 +msgid "SSH2" +msgstr "SSH2" + +#: wp-admin/includes/file.php:2525 +msgid "FTPS (SSL)" +msgstr "FTPS (SSL)" + +#: wp-admin/includes/file.php:2522 +msgid "FTP" +msgstr "FTP" + +#: wp-admin/includes/file.php:1893 +msgid "Empty archive." +msgstr "Archivo vacío." + +#: wp-admin/includes/file.php:1831 wp-admin/includes/file.php:1985 +#: wp-admin/includes/file.php:2043 wp-admin/includes/update-core.php:1515 +msgid "Could not copy file." +msgstr "No ha sido posible copiar el archivo." + +#: wp-admin/includes/file.php:1826 +msgid "Could not extract file from archive." +msgstr "No podemos descomprimir el archivo." + +#: wp-admin/includes/file.php:1701 wp-admin/includes/file.php:1806 +msgid "Could not retrieve file from archive." +msgstr "No se puede recuperar el archivo." + +#: wp-admin/includes/file.php:1169 +msgid "Could not create temporary file." +msgstr "No se ha podido crear el archivo temporal." + +#: wp-admin/includes/file.php:931 +msgid "Specified file failed upload test." +msgstr "El archivo indicado no cumple los requisitos de subida." + +#: wp-admin/includes/file.php:920 +msgid "Invalid form submission." +msgstr "Envío del formulario no válido." + +#: wp-admin/includes/file.php:906 +msgid "File upload stopped by extension." +msgstr "Subida de archivo detenida a causa de la extensión." + +#: wp-admin/includes/file.php:905 +msgid "Failed to write file to disk." +msgstr "El archivo no se ha podido grabar en el disco." + +#: wp-admin/includes/file.php:904 +msgid "Missing a temporary folder." +msgstr "Falta un directorio temporal." + +#: wp-admin/includes/file.php:902 +msgid "No file was uploaded." +msgstr "No se ha subido ningún archivo." + +#: wp-admin/includes/file.php:901 +msgid "The uploaded file was only partially uploaded." +msgstr "Solo se ha podido subir una parte del archivo." + +#: wp-admin/includes/file.php:418 wp-admin/includes/file.php:479 +#: wp-admin/includes/file.php:746 wp-admin/includes/file.php:752 +msgid "Sorry, that file cannot be edited." +msgstr "Disculpa, ese archivo no puede editarse." + +#: wp-admin/includes/file.php:64 +msgid "Popup Comments Template" +msgstr "Plantilla de comentarios emergentes" + +#: wp-admin/includes/file.php:63 +msgid "Comments Template" +msgstr "Plantilla de comentarios" + +#: wp-admin/includes/file.php:60 +msgid ".htaccess (for rewrite rules )" +msgstr ".htaccess (para reglas de reescritura)" + +#: wp-admin/includes/file.php:59 +msgid "my-hacks.php (legacy hacks support)" +msgstr "my-hacks.php (compatibilidad con trucos heredados)" + +#: wp-admin/includes/file.php:46 +msgid "Application Attachment Template" +msgstr "Plantilla de aplicación adjunta" + +#: wp-admin/includes/file.php:45 +msgid "Audio Attachment Template" +msgstr "Plantilla de audio adjunto" + +#: wp-admin/includes/file.php:44 +msgid "Video Attachment Template" +msgstr "Plantilla de vídeo adjunto" + +#: wp-admin/includes/file.php:43 +msgid "Image Attachment Template" +msgstr "Plantilla de imagen adjunta" + +#: wp-admin/includes/file.php:42 +msgid "Attachment Template" +msgstr "Plantilla de archivos adjuntos" + +#: wp-admin/includes/file.php:16 +msgid "Theme Functions" +msgstr "Funciones del tema" + +#: wp-admin/includes/file.php:23 +msgid "Links Template" +msgstr "Plantilla de enlaces" + +#: wp-admin/includes/file.php:22 +msgid "404 Template" +msgstr "Error 404 (página no encontrada)" + +#: wp-admin/includes/file.php:37 +msgid "Single Post" +msgstr "Entrada individual" + +#: wp-admin/includes/file.php:21 +msgid "Search Form" +msgstr "Formulario de búsqueda" + +#: wp-admin/erase-personal-data.php:150 wp-admin/export-personal-data.php:150 +msgid "Search Requests" +msgstr "Buscar solicitudes" + +#: wp-admin/includes/file.php:30 +msgid "Category Template" +msgstr "Plantilla de categoría" + +#: wp-admin/includes/file.php:65 +msgid "Popup Comments" +msgstr "Comentarios emergentes" + +#: wp-admin/includes/file.php:57 +msgid "RTL Stylesheet" +msgstr "Hoja de estilos RTL" + +#: wp-admin/includes/file.php:26 +msgid "Main Index Template" +msgstr "Plantilla de la página principal" + +#: wp-admin/includes/dashboard.php:1170 +msgid "This widget requires JavaScript." +msgstr "Este widget requiere Javascript." + +#. translators: 1: Type of comment, 2: Notification if the comment is pending. +#: wp-admin/includes/dashboard.php:900 +msgctxt "dashboard" +msgid "%1$s %2$s" +msgstr "%1$s en %2$s" + +#: wp-admin/includes/dashboard.php:858 wp-admin/includes/dashboard.php:865 +#: wp-admin/includes/dashboard.php:895 wp-admin/includes/dashboard.php:902 +msgid "[Pending]" +msgstr "[Pendiente]" + +#. translators: 1: Comment author, 2: Post link, 3: Notification if the comment +#. is pending. +#: wp-admin/includes/dashboard.php:855 +msgid "From %1$s on %2$s %3$s" +msgstr "De %1$s en %2$s%3$s" + +#: wp-admin/includes/class-wp-comments-list-table.php:822 +#: wp-admin/includes/dashboard.php:793 +msgid "Move this comment to the Trash" +msgstr "Mover este comentario a la papelera" + +#. translators: "Mark as spam" link. +#: wp-admin/includes/class-wp-comments-list-table.php:787 +#: wp-admin/includes/dashboard.php:777 +msgctxt "verb" +msgid "Spam" +msgstr "Spam" + +#: wp-admin/includes/class-wp-comments-list-table.php:785 +#: wp-admin/includes/dashboard.php:775 +msgid "Mark this comment as spam" +msgstr "Marcar este comentario como spam" + +#: wp-admin/includes/class-wp-comments-list-table.php:853 +#: wp-admin/includes/dashboard.php:767 +msgid "Reply to this comment" +msgstr "Responder a este comentario" + +#: wp-admin/includes/class-wp-comments-list-table.php:750 +#: wp-admin/includes/class-wp-comments-list-table.php:775 +#: wp-admin/includes/dashboard.php:752 +msgid "Unapprove this comment" +msgstr "Rechazar este comentario" + +#: wp-admin/includes/class-wp-comments-list-table.php:758 +#: wp-admin/includes/class-wp-comments-list-table.php:767 +#: wp-admin/includes/dashboard.php:744 +msgid "Approve this comment" +msgstr "Aprobar este comentario" + +#: wp-admin/includes/dashboard.php:210 +msgid "Configure" +msgstr "Configurar" + +#: wp-admin/includes/dashboard.php:148 +msgid "View all" +msgstr "Ver todo" + +#: wp-admin/includes/dashboard.php:1597 +msgid "Other WordPress News" +msgstr "Otras noticias sobre WordPress" + +#: wp-admin/includes/dashboard.php:77 +msgid "Right Now" +msgstr "Ahora mismo" + +#. translators: %s: Destination file path. +#: wp-admin/includes/file.php:1033 +msgid "The uploaded file could not be moved to %s." +msgstr "El archivo subido no se ha podido mover a %s." + +#: wp-admin/includes/class-file-upload-upgrader.php:57 +#: wp-admin/includes/class-file-upload-upgrader.php:120 +#: wp-admin/includes/class-file-upload-upgrader.php:136 +msgid "Please select a file" +msgstr "Por favor elige un archivo" + +#: wp-admin/includes/class-file-upload-upgrader.php:89 +msgid "Return to the Theme Installer" +msgstr "Volver al instalador de temas" + +#. translators: %s: Post title. +#. translators: %s: Theme name. +#: wp-admin/includes/class-wp-posts-list-table.php:1552 +#: wp-admin/includes/class-wp-theme-install-list-table.php:286 +msgid "Preview “%s”" +msgstr "Vista previa «%s»" + +#. translators: 1: Theme name, 2: Theme version. +#: wp-admin/includes/class-theme-upgrader.php:84 +msgid "Successfully installed the theme %1$s %2$s." +msgstr "El tema %1$s %2$s se ha instalado correctamente." + +#: wp-admin/includes/class-file-upload-upgrader.php:80 +msgid "Return to the Plugin Installer" +msgstr "Volver al instalador de plugins" + +#. translators: 1: Plugin name, 2: Plugin version. +#: wp-admin/includes/class-plugin-upgrader.php:86 +msgid "Successfully installed the plugin %1$s %2$s." +msgstr "El plugin %1$s %2$s se ha instalado correctamente." + +#: wp-admin/includes/class-plugin-installer-skin.php:122 +#: wp-admin/includes/class-plugin-upgrader-skin.php:96 +msgid "Activate Plugin" +msgstr "Activar plugin" + +#: wp-admin/includes/class-core-upgrader.php:39 +msgid "Could not copy files." +msgstr "No ha sido posible copiar los archivos." + +#: wp-admin/includes/class-core-upgrader.php:33 +msgid "WordPress is at the latest version." +msgstr "WordPress está en la última versión." + +#: wp-admin/includes/class-theme-upgrader.php:82 +msgid "Theme installed successfully." +msgstr "El tema se ha instalado correctamente." + +#: wp-admin/includes/class-theme-upgrader.php:77 +msgid "Installing the theme…" +msgstr "Instalando el tema…" + +#: wp-admin/includes/class-theme-upgrader.php:62 +#: wp-admin/includes/class-theme-upgrader.php:79 +msgid "Could not remove the old theme." +msgstr "No ha sido posible eliminar la versión anterior del tema." + +#: wp-admin/includes/class-theme-upgrader.php:61 +#: wp-admin/includes/class-theme-upgrader.php:78 +msgid "Removing the old version of the theme…" +msgstr "Eliminando la versión antigua del tema…" + +#: wp-admin/includes/class-theme-upgrader.php:56 +msgid "The theme is at the latest version." +msgstr "Tienes la última versión del tema." + +#: wp-admin/includes/class-plugin-upgrader.php:84 +msgid "Plugin installed successfully." +msgstr "Plugin instalado correctamente." + +#: wp-admin/includes/class-plugin-upgrader.php:79 +msgid "Installing the plugin…" +msgstr "Instalando el plugin…" + +#: wp-admin/includes/class-plugin-upgrader.php:78 +#: wp-admin/includes/class-theme-upgrader.php:76 +msgid "Unpacking the package…" +msgstr "Descomprimiendo…" + +#: wp-admin/includes/class-plugin-upgrader.php:75 +#: wp-admin/includes/class-theme-upgrader.php:73 +msgid "Installation package not available." +msgstr "El paquete de instalación no está disponible." + +#: wp-admin/includes/class-plugin-upgrader.php:63 +msgid "Could not remove the old plugin." +msgstr "No ha sido posible eliminar la versión anterior del plugin." + +#: wp-admin/includes/class-plugin-upgrader.php:62 +msgid "Removing the old version of the plugin…" +msgstr "Eliminando la versión antigua del plugin…" + +#: wp-admin/includes/class-core-upgrader.php:38 +#: wp-admin/includes/class-language-pack-upgrader.php:118 +#: wp-admin/includes/class-plugin-upgrader.php:61 +#: wp-admin/includes/class-theme-upgrader.php:60 +msgid "Unpacking the update…" +msgstr "Descomprimiendo la actualización…" + +#: wp-admin/includes/class-plugin-upgrader.php:57 +msgid "The plugin is at the latest version." +msgstr "Tienes la última versión del plugin." + +#: wp-admin/includes/class-wp-upgrader.php:210 +#: wp-admin/includes/update-core.php:1462 +msgid "Disabling Maintenance mode…" +msgstr "Desactivando el modo de mantenimiento…" + +#: wp-admin/includes/class-wp-upgrader.php:209 +#: wp-admin/includes/update-core.php:1313 +msgid "Enabling Maintenance mode…" +msgstr "Activando el modo de mantenimiento…" + +#: wp-admin/includes/class-file-upload-upgrader.php:82 +#: wp-admin/includes/class-file-upload-upgrader.php:91 +#: wp-admin/includes/file.php:1691 wp-admin/includes/file.php:1889 +msgid "Incompatible Archive." +msgstr "Archivo incompatible." + +#: wp-admin/includes/class-wp-upgrader.php:204 wp-admin/includes/file.php:1777 +#: wp-admin/includes/file.php:1958 wp-admin/includes/file.php:2051 +#: wp-admin/includes/file.php:2134 +msgid "Could not create directory." +msgstr "No ha sido posible crear el directorio" + +#: wp-admin/includes/class-wp-upgrader.php:203 +msgid "Destination folder already exists." +msgstr "La carpeta ya existe." + +#: wp-admin/includes/class-wp-upgrader.php:201 +msgid "Installing the latest version…" +msgstr "Instalando la última versión…" + +#: wp-admin/includes/class-wp-privacy-data-export-requests-list-table.php:63 +#: wp-admin/includes/class-wp-upgrader.php:200 +msgid "Download failed." +msgstr "Descarga fallida" + +#. translators: %s: Directory name. +#: wp-admin/includes/class-wp-upgrader.php:197 +msgid "Unable to locate needed folder (%s)." +msgstr "No ha sido posible localizar la carpeta %s." + +#: wp-admin/includes/class-wp-site-health.php:1931 +msgid "Unable to locate WordPress content directory" +msgstr "No ha sido posible localizar el directorio de contenidos de WordPress" + +#: wp-admin/includes/class-wp-upgrader.php:194 wp-admin/includes/plugin.php:958 +msgid "Unable to locate WordPress plugin directory." +msgstr "No ha sido posible localizar el directorio de plugins de WordPress." + +#: wp-admin/includes/class-wp-upgrader.php:191 +msgid "Unable to locate WordPress root directory." +msgstr "No ha sido posible localizar el directorio de WordPress." + +#: wp-admin/includes/class-wp-upgrader.php:190 wp-admin/includes/plugin.php:952 +#: wp-admin/includes/theme.php:66 +msgid "Filesystem error." +msgstr "Error del sistema de archivos." + +#: wp-admin/includes/class-wp-site-health.php:1922 +msgid "Could not access filesystem" +msgstr "No ha sido posible acceder al sistema de archivos" + +#: wp-admin/includes/class-wp-upgrader.php:188 +msgid "Invalid data provided." +msgstr "Datos facilitados no válidos." + +#. translators: %s: Command. +#: wp-admin/includes/class-wp-filesystem-ssh2.php:228 +msgid "Unable to perform command: %s" +msgstr "No ha sido posible ejecutar el comando: %s" + +#. translators: %s: Username. +#: wp-admin/includes/class-wp-filesystem-ssh2.php:160 +msgid "Public and Private keys incorrect for %s" +msgstr "Claves públicas y privadas incorrectas para %s" + +#. translators: %s: hostname:port +#: wp-admin/includes/class-wp-filesystem-ssh2.php:133 +msgid "Failed to connect to SSH2 Server %s" +msgstr "Fallo al conectar al servidor SSH2 %s" + +#: wp-admin/includes/class-wp-filesystem-ssh2.php:105 +msgid "SSH2 password is required" +msgstr "La contraseña del SSH2 es necesaria" + +#: wp-admin/includes/class-wp-filesystem-ssh2.php:95 +msgid "SSH2 username is required" +msgstr "El nombre de usuario del SSH2 es necesario" + +#: wp-admin/includes/class-wp-filesystem-ssh2.php:81 +msgid "SSH2 hostname is required" +msgstr "El nombre del servidor del SSH2 es necesario" + +#: wp-admin/includes/class-wp-filesystem-ssh2.php:69 +msgid "The ssh2 PHP extension is not available" +msgstr "La extesión PHP de SSH2 no está disponible" + +#. translators: %s: Username. +#: wp-admin/includes/class-wp-filesystem-ftpext.php:110 +#: wp-admin/includes/class-wp-filesystem-ftpsockets.php:113 +#: wp-admin/includes/class-wp-filesystem-ssh2.php:147 +msgid "Username/Password incorrect for %s" +msgstr "Nombre de usuario y/o contraseña incorrecto/s para %s" + +#. translators: %s: hostname:port +#: wp-admin/includes/class-wp-filesystem-ftpext.php:97 +#: wp-admin/includes/class-wp-filesystem-ftpsockets.php:87 +#: wp-admin/includes/class-wp-filesystem-ftpsockets.php:100 +msgid "Failed to connect to FTP Server %s" +msgstr "Fallo al conectar al servidor FTP %s" + +#: wp-admin/includes/class-wp-filesystem-ftpext.php:66 +#: wp-admin/includes/class-wp-filesystem-ftpsockets.php:62 +msgid "FTP password is required" +msgstr "La contraseña del FTP es necesaria" + +#: wp-admin/includes/class-wp-filesystem-ftpext.php:60 +#: wp-admin/includes/class-wp-filesystem-ftpsockets.php:56 +msgid "FTP username is required" +msgstr "El nombre de usuario del FTP es necesario" + +#: wp-admin/includes/class-wp-filesystem-ftpext.php:53 +#: wp-admin/includes/class-wp-filesystem-ftpsockets.php:49 +msgid "FTP hostname is required" +msgstr "El nombre del servidor del FTP es necesario" + +#: wp-admin/includes/class-wp-filesystem-ftpext.php:37 +msgid "The ftp PHP extension is not available" +msgstr "La extensión PHP de FTP no está disponible." + +#. translators: %s: Directory name. +#: wp-admin/includes/class-wp-filesystem-base.php:317 +msgid "Found %s" +msgstr "Encontrado %s" + +#. translators: %s: Directory name. +#: wp-admin/includes/class-wp-filesystem-base.php:297 +msgid "Changing to %s" +msgstr "Cambiando a %s" + +#: wp-admin/includes/bookmark.php:236 +msgid "Could not insert link into the database." +msgstr "No se ha podido insertar el enlace en la base de datos." + +#: wp-admin/includes/bookmark.php:228 +msgid "Could not update link in the database." +msgstr "No se ha podido actualizar el enlace en la base de datos." + +#: wp-admin/includes/import.php:205 +msgid "Movable Type and TypePad" +msgstr "Movable Type y TypePad" + +#: wp-admin/includes/import.php:199 +msgid "LiveJournal" +msgstr "LiveJournal" + +#: wp-admin/includes/class-wp-plugin-install-list-table.php:294 +#: wp-admin/includes/class-wp-theme-install-list-table.php:159 +#: wp-admin/setup-config.php:301 wp-admin/theme-install.php:66 +msgid "Try Again" +msgstr "Inténtalo de nuevo" + +#: wp-admin/includes/import.php:187 +msgid "Blogger" +msgstr "Blogger" + +#: wp-admin/import.php:102 +msgid "No importers are available." +msgstr "No hay importadores disponibles." + +#: wp-admin/export.php:345 +msgid "Download Export File" +msgstr "Descargar el archivo de exportación" + +#: wp-admin/export.php:177 +msgid "This format, which is called WordPress eXtended RSS or WXR, will contain your posts, pages, comments, custom fields, categories, and tags." +msgstr "Este formato, llamado WordPress eXtended RSS o WXR, contendrá tus entradas, páginas, comentarios, campos personalizados, categorías y etiquetas." + +#: wp-admin/export.php:176 +msgid "When you click the button below WordPress will create an XML file for you to save to your computer." +msgstr "Cuando hagas clic en el botón de abajo, WordPress creará un archivo XML para que lo guardes en tu ordenador." + +#: wp-admin/export.php:20 wp-admin/menu.php:390 +msgid "Export" +msgstr "Exportar" + +#. translators: %s: Number of posts. +#: wp-admin/includes/class-wp-posts-list-table.php:345 +msgctxt "posts" +msgid "All (%s)" +msgid_plural "All (%s)" +msgstr[0] "Todo (%s)" +msgstr[1] "Todo (%s)" + +#. translators: %s: Number of posts. +#: wp-admin/includes/class-wp-posts-list-table.php:324 +msgctxt "posts" +msgid "Mine (%s)" +msgid_plural "Mine (%s)" +msgstr[0] "Mío (%s)" +msgstr[1] "Míos (%s)" + +#. translators: %s: Number of patterns. +#: wp-admin/edit.php:388 +msgid "%s pattern not updated, somebody is editing it." +msgid_plural "%s patterns not updated, somebody is editing them." +msgstr[0] "%s patrón no actualizado, alguien lo está editando." +msgstr[1] "%s patrones no actualizados, alguien los está editando." + +#. translators: %s: Number of posts. +#: wp-admin/edit.php:359 +msgid "%s post updated." +msgid_plural "%s posts updated." +msgstr[0] "%s entrada actualizada." +msgstr[1] "%s entradas actualizadas." + +#: wp-admin/edit-tags.php:117 wp-admin/edit.php:176 wp-admin/post.php:316 +#: wp-admin/themes.php:63 wp-admin/upload.php:333 +msgid "Sorry, you are not allowed to delete this item." +msgstr "Lo siento, no tienes permisos para borrar este elemento." + +#: wp-admin/includes/edit-tag-messages.php:17 +msgid "Item not added." +msgstr "No añadido." + +#: wp-admin/includes/edit-tag-messages.php:16 +msgid "Item updated." +msgstr "Elemento actualizado." + +#: wp-admin/includes/edit-tag-messages.php:15 +msgid "Item deleted." +msgstr "Eliminado." + +#: wp-admin/edit-tag-form.php:198 wp-admin/edit-tags.php:515 +msgid "Categories, unlike tags, can have a hierarchy. You might have a Jazz category, and under that have children categories for Bebop and Big Band. Totally optional." +msgstr "Las categorías, a diferencia de las etiquetas, pueden tener jerarquías. Podrías tener una categoría de Jazz y, por debajo, las categorías Bebop y Big Band. Totalmente opcional." + +#: wp-admin/edit-link-form.php:142 +msgid "This will be shown when someone hovers over the link in the blogroll, or optionally below the link." +msgstr "Esto se mostrará cuando alguien pase el cursor sobre el enlace en los sitios de interés u, opcionalmente, debajo del enlace." + +#: wp-admin/edit-link-form.php:134 +msgid "Example: https://wordpress.org/ — do not forget the https://" +msgstr "Ejemplo: https://es.wordpress.org/ — No olvides poner https://" + +#: wp-admin/edit-link-form.php:131 +msgid "Web Address" +msgstr "Dirección web" + +#: wp-admin/edit-link-form.php:126 +msgid "Example: Nifty blogging software" +msgstr "Ejemplo: Estupendo software de publicación" + +#: wp-admin/edit-link-form.php:97 +msgid "Link added." +msgstr "Enlace añadido." + +#. translators: %s: URL to Links screen. +#: wp-admin/edit-link-form.php:22 +msgid "Links / Add Link" +msgstr "Enlaces / Añadir enlace" + +#: wp-admin/edit-link-form.php:17 wp-admin/includes/meta-boxes.php:1149 +msgid "Update Link" +msgstr "Actualizar enlace" + +#. translators: %s: URL to Links screen. +#: wp-admin/edit-link-form.php:16 +msgid "Links / Edit Link" +msgstr "Enlaces / Editar enlace" + +#: wp-admin/themes.php:273 wp-admin/themes.php:282 +msgid "Visit site" +msgstr "Visitar sitio" + +#: wp-admin/includes/template.php:509 +msgid "Update Comment" +msgstr "Actualizar comentario" + +#. translators: 1: Post edited date, 2: Post edited time. +#. translators: 1: Date of last edit, 2: Time of last edit. +#: wp-admin/edit-form-advanced.php:660 wp-admin/includes/ajax-actions.php:2905 +msgid "Last edited on %1$s at %2$s" +msgstr "Última edición el %1$s a las %2$s" + +#. translators: 1: Name of most recent post author, 2: Post edited date, 3: +#. Post edited time. +#. translators: 1: User's display name, 2: Date of last edit, 3: Time of last +#. edit. +#: wp-admin/edit-form-advanced.php:652 wp-admin/includes/ajax-actions.php:2902 +msgid "Last edited by %1$s on %2$s at %3$s" +msgstr "Última edición por %1$s el %2$s a las %3$s" + +#: wp-admin/includes/meta-boxes.php:1619 +msgid "Custom Fields" +msgstr "Campos personalizados" + +#: wp-admin/includes/meta-boxes.php:1613 +msgid "Send Trackbacks" +msgstr "Enviar trackbacks" + +#. translators: %s: Date and time of the revision. +#: wp-admin/edit-form-advanced.php:195 +msgid "Page restored to revision from %s." +msgstr "Página restaurada a revisión el %s." + +#: wp-admin/edit-form-advanced.php:182 +msgid "Post saved." +msgstr "Entrada guardada." + +#. translators: %s: Date and time of the revision. +#: wp-admin/edit-form-advanced.php:180 +msgid "Post restored to revision from %s." +msgstr "Entrada restaurada a revisión el %s." + +#: wp-admin/edit-form-advanced.php:177 wp-admin/edit-form-advanced.php:192 +msgid "Custom field deleted." +msgstr "Campo personalizado borrado." + +#: wp-admin/edit-form-advanced.php:176 wp-admin/edit-form-advanced.php:191 +msgid "Custom field updated." +msgstr "Campo personalizado actualizado." + +#: wp-admin/includes/class-wp-comments-list-table.php:229 +msgid "No comments found." +msgstr "Sin comentarios." + +#: wp-admin/includes/class-wp-comments-list-table.php:437 +#: wp-admin/includes/class-wp-media-list-table.php:222 +#: wp-admin/includes/class-wp-posts-list-table.php:606 +msgid "Empty Trash" +msgstr "Vaciar papelera" + +#: wp-admin/includes/class-wp-comments-list-table.php:437 +msgid "Empty Spam" +msgstr "Vaciar spam" + +#: wp-admin/includes/class-wp-comments-list-table.php:429 +#: wp-admin/includes/class-wp-links-list-table.php:123 +#: wp-admin/includes/class-wp-media-list-table.php:217 +#: wp-admin/includes/class-wp-posts-list-table.php:599 +#: wp-admin/includes/class-wp-ms-sites-list-table.php:344 +msgid "Filter" +msgstr "Filtrar" + +#: wp-admin/includes/class-wp-comments-list-table.php:513 +#: wp-admin/includes/class-wp-posts-list-table.php:1944 +msgid "Pings" +msgstr "Pings" + +#: wp-admin/includes/class-wp-comments-list-table.php:375 +#: wp-admin/includes/class-wp-comments-list-table.php:759 +#: wp-admin/includes/class-wp-comments-list-table.php:768 +#: wp-admin/includes/dashboard.php:745 +msgid "Approve" +msgstr "Aprobar" + +#: wp-admin/includes/class-wp-comments-list-table.php:371 +#: wp-admin/includes/class-wp-comments-list-table.php:751 +#: wp-admin/includes/class-wp-comments-list-table.php:776 +#: wp-admin/includes/dashboard.php:753 +msgid "Unapprove" +msgstr "Rechazar" + +#: wp-admin/edit.php:288 wp-admin/includes/class-wp-list-table.php:607 +msgid "Bulk actions" +msgstr "Acciones en lote" + +#. translators: 1: Starting number of users on the current page, 2: Ending +#. number of users, 3: Total number of users. +#: wp-admin/includes/deprecated.php:614 +msgid "Displaying %1$s–%2$s of %3$s" +msgstr "Mostrando %1$s–%2$s de %3$s" + +#: wp-admin/edit-comments.php:436 +msgid "Search Comments" +msgstr "Buscar comentarios" + +#: wp-admin/edit-form-comment.php:117 +msgid "Approved" +msgstr "Aprobado" + +#. translators: %s: Number of comments. +#: wp-admin/edit-comments.php:386 +msgid "%s comment permanently deleted." +msgid_plural "%s comments permanently deleted." +msgstr[0] "%s comentario borrado permanentemente." +msgstr[1] "%s comentarios borrados permanentemente." + +#. translators: %s: Number of comments. +#: wp-admin/edit-comments.php:356 +msgid "%s comment restored from the spam." +msgid_plural "%s comments restored from the spam." +msgstr[0] "%s comentario restaurado de spam." +msgstr[1] "%s comentarios restaurados de spam." + +#. translators: %s: Number of comments. +#: wp-admin/edit-comments.php:344 +msgid "%s comment marked as spam." +msgid_plural "%s comments marked as spam." +msgstr[0] "%s comentario marcado como spam." +msgstr[1] "%s comentarios marcados como spam." + +#. translators: %s: Number of comments. +#: wp-admin/edit-comments.php:334 +msgid "%s comment approved." +msgid_plural "%s comments approved." +msgstr[0] "%s comentario aprobado." +msgstr[1] "%s comentarios aprobados." + +#: wp-admin/includes/class-wp-media-list-table.php:194 +#: wp-admin/includes/class-wp-media-list-table.php:628 +#: wp-admin/includes/class-wp-media-list-table.php:858 +msgid "Attach" +msgstr "Adjuntar" + +#: wp-admin/includes/class-wp-media-list-table.php:618 +msgid "(Unattached)" +msgstr "(Sin adjuntar)" + +#: wp-admin/includes/class-wp-media-list-table.php:547 +#: wp-admin/includes/class-wp-posts-list-table.php:1196 +msgid "Unpublished" +msgstr "Sin publicar" + +#. translators: %s: Attachment title. +#. translators: %s: Post title. +#: wp-admin/includes/class-wp-media-list-table.php:825 +#: wp-admin/includes/class-wp-posts-list-table.php:1561 +msgid "View “%s”" +msgstr "Ver «%s»" + +#: wp-admin/edit-form-comment.php:242 +#: wp-admin/includes/class-wp-comments-list-table.php:815 +#: wp-admin/includes/class-wp-media-list-table.php:810 +#: wp-admin/includes/class-wp-posts-list-table.php:1539 +#: wp-admin/includes/dashboard.php:786 wp-admin/includes/media.php:1736 +#: wp-admin/includes/class-wp-ms-sites-list-table.php:833 +msgid "Delete Permanently" +msgstr "Borrar permanentemente" + +#. translators: %s: Link name. +#. translators: %s: Attachment title. +#. translators: %s: Post title. +#. translators: %s: Taxonomy term name. +#: wp-admin/includes/class-wp-links-list-table.php:205 +#: wp-admin/includes/class-wp-media-list-table.php:777 +#: wp-admin/includes/class-wp-posts-list-table.php:1490 +#: wp-admin/includes/class-wp-terms-list-table.php:491 +#: wp-admin/includes/dashboard.php:675 wp-admin/includes/dashboard.php:1039 +msgid "Edit “%s”" +msgstr "Editar «%s»" + +#: wp-admin/includes/class-custom-image-header.php:933 +msgid "Choose the part of the image you want to use as your header." +msgstr "Elige la parte de la imagen que quieras usar como cabecera." + +#: wp-admin/includes/class-custom-image-header.php:915 +#: wp-admin/includes/class-custom-image-header.php:1074 +msgid "Image Processing Error" +msgstr "Error en el procesado de la imagen" + +#. translators: %s: Home URL. +#: wp-admin/includes/class-custom-image-header.php:533 +msgid "Header updated. Visit your site to see how it looks." +msgstr "Cabezera actualizada. Visita tu sitio para ver los cambios." + +#: wp-admin/includes/class-custom-image-header.php:512 +#: wp-admin/includes/theme.php:336 +msgid "Custom Header" +msgstr "Cabecera personalizada" + +#: wp-admin/includes/dashboard.php:251 wp-admin/includes/template.php:2614 +#: wp-admin/nav-menus.php:928 wp-admin/options.php:452 +msgid "Save Changes" +msgstr "Guardar cambios" + +#: wp-admin/includes/class-custom-background.php:353 +#: wp-admin/includes/class-custom-image-header.php:663 +msgid "Choose an image from your computer:" +msgstr "Elige una imagen desde tu ordenador:" + +#. translators: %s: Home URL. +#: wp-admin/includes/class-custom-background.php:264 +msgid "Background updated. Visit your site to see how it looks." +msgstr "Fondo actualizado. Visita tu sitio para ver cómo queda." + +#: wp-admin/includes/class-custom-background.php:243 +#: wp-admin/includes/theme.php:334 +msgid "Custom Background" +msgstr "Fondo personalizado" + +#: wp-admin/comment.php:383 +msgid "Unknown action." +msgstr "Acción desconocida." + +#: wp-admin/comment.php:147 +msgid "Approve comment" +msgstr "Aprobar el comentario" + +#: wp-admin/comment.php:146 +msgid "You are about to approve the following comment:" +msgstr "Estás a punto de aprobar el siguiente comentario:" + +#: wp-admin/comment.php:143 +msgid "Permanently delete comment" +msgstr "Borrar el comentario permanentemente" + +#: wp-admin/comment.php:142 +msgid "You are about to delete the following comment:" +msgstr "Estás a punto de borrar el siguiente comentario:" + +#: wp-admin/comment.php:138 +msgid "You are about to move the following comment to the Trash:" +msgstr "Estás a punto de mover el siguiente comentario a la papelera:" + +#: wp-admin/comment.php:134 +msgid "You are about to mark the following comment as spam:" +msgstr "Estás a punto de marcar el siguiente comentario como spam:" + +#: wp-admin/comment.php:88 +msgid "This comment is in the Trash. Please move it out of the Trash if you want to edit it." +msgstr "Este comentario está en la papelera. Por favor, sácalo de la papelera si quieres editarlo." + +#: wp-admin/comment.php:295 wp-admin/edit-comments.php:300 +#: wp-admin/includes/comment.php:55 +msgid "Sorry, you are not allowed to edit comments on this post." +msgstr "Lo siento, no tienes permisos para editar comentarios en esta entrada." + +#: wp-admin/authorize-application.php:98 wp-admin/authorize-application.php:116 +msgid "Go Back" +msgstr "Volver atrás" + +#: wp-admin/comment.php:58 wp-admin/edit-form-comment.php:22 +#: wp-admin/includes/template.php:462 +msgid "Edit Comment" +msgstr "Editar comentario" + +#: wp-admin/admin.php:343 wp-admin/import.php:19 wp-admin/menu.php:389 +msgid "Import" +msgstr "Importar" + +#. translators: %s: Admin page generated by a plugin. +#: wp-admin/admin.php:274 +msgid "Cannot load %s." +msgstr "No se ha podido cargar %s." + +#: wp-admin/admin.php:267 +msgid "Invalid plugin page." +msgstr "Página de plugin no válida." + +#: wp-admin/includes/ajax-actions.php:2211 +#: wp-admin/includes/ajax-actions.php:2217 +#: wp-admin/includes/edit-tag-messages.php:18 +msgid "Item not updated." +msgstr "Elemento no actualizado." + +#. translators: %s: User's display name. +#: wp-admin/includes/ajax-actions.php:2088 +msgid "Saving is disabled: %s is currently editing this post." +msgstr "Guardar está desactivado: %s está ahora mismo editando esta entrada." + +#. translators: %s: User's display name. +#: wp-admin/includes/ajax-actions.php:2092 +msgid "Saving is disabled: %s is currently editing this page." +msgstr "Guardar está desactivado: %s está ahora mismo editando esta página." + +#: wp-admin/includes/ajax-actions.php:2085 +msgid "Someone" +msgstr "Alguien" + +#. translators: %s: Date and time. +#: wp-admin/includes/misc.php:1370 +msgid "Draft saved at %s." +msgstr "Borrador guardado a las %s." + +#. translators: Draft saved date format, see +#. https://www.php.net/manual/datetime.format.php +#: wp-admin/includes/misc.php:1366 +msgid "g:i:s a" +msgstr "G:i:s" + +#: wp-admin/includes/ajax-actions.php:1661 +#: wp-admin/includes/ajax-actions.php:1669 +msgid "Please provide a custom field value." +msgstr "Por favor, pon algún valor en el campo personalizado." + +#: wp-admin/includes/ajax-actions.php:1353 +msgid "Sorry, you must be logged in to reply to a comment." +msgstr "Lo siento, tienes que iniciar sesión para responder a un comentario." + +#: wp-admin/includes/taxonomy.php:136 +msgid "You did not enter a category name." +msgstr "No has introducido un nombre de categoría." + +#. translators: %d: Comment ID. +#: wp-admin/includes/ajax-actions.php:993 +msgid "Comment %d does not exist" +msgstr "El comentario %d no existe" + +#: wp-admin/includes/media.php:2840 wp-admin/includes/nav-menu.php:546 +#: wp-admin/includes/nav-menu.php:918 +msgid "»" +msgstr "»" + +#: wp-admin/includes/media.php:2839 wp-admin/includes/nav-menu.php:545 +#: wp-admin/includes/nav-menu.php:917 +msgid "«" +msgstr "«" \ No newline at end of file diff --git a/wp-content/languages/admin-network-es_ES.l10n.php b/wp-content/languages/admin-network-es_ES.l10n.php new file mode 100644 index 0000000..212db74 --- /dev/null +++ b/wp-content/languages/admin-network-es_ES.l10n.php @@ -0,0 +1,2 @@ +'GlotPress/4.0.3','translation-revision-date'=>'2025-11-15 20:55:01+0000','plural-forms'=>'nplurals=2; plural=n != 1;','project-id-version'=>'WordPress - 6.9.x - Development - Administration - Network Admin','language'=>'es','messages'=>['Site flagged for deletion.'=>'Sitio marcado para el borrado.','Site deletion flag removed.'=>'Marca de borrado del sitio quitada.','Site permanently deleted.'=>'Sitio borrado permanentemente.','Sites permanently deleted.'=>'Sitios borrados permanentemente.','Delete these sites permanently'=>'Borrar estos sitios permanentemente','Flagging a site for deletion makes the site unavailable to its users and visitors. This is a reversible action. A super admin can permanently delete the site at a later date.'=>'Marcar un sitio para su borrado hace que el sitio no esté disponible para sus usuarios y visitantes. Esta acción es reversible. Un superadministrador puede borrar el sitio de forma permanente en una fecha posterior.','Archiving a site makes the site unavailable to its users and visitors. This is a reversible action.'=>'Archivar un sitio hace que este no esté disponible para sus usuarios y visitantes. Se trata de una acción reversible.','You are about to flag the site %s for deletion.'=>'Estás a punto de marcar el sito %s para el borrado.','You are about to remove the deletion flag from the site %s.'=>'Estás a punto de quitar la marca de borrado del sitio %s.','Flag for Deletion'=>'Marcado para el borrado','siteRemove Deletion Flag'=>'Quitar marca de borrado','Flagged for Deletion (%s)'=>'Marcado para el borrado (%s)' . "\0" . 'Marcados para el borrado (%s)','Flagged for Deletion'=>'Marcado para el borrado','Documentation on Upgrade Network'=>'Documentación sobre actualizar la red','Deleting a site is a permanent action that cannot be undone. This will delete the entire site and its uploads directory.'=>'Borrar un sitio es una acción permanente que no se puede deshacer. Esto borrará todo el sitio y su directorio de subidas.','Delete this site permanently'=>'Borrar este sitio permanentemente','Visit to go to the front-end of the live site.'=>'Visitar para ir a la portada del sitio público.','Documentation on Network Settings'=>'Documentación sobre ajustes de red','Documentation on the Network Admin'=>'Documentación sobre el administrador de red','Documentation on Creating a Network'=>'Documentación sobre cómo crear una red','https://developer.wordpress.org/advanced-administration/server/web-server/nginx/'=>'https://developer.wordpress.org/advanced-administration/server/web-server/nginx/','Missing site title.'=>'Falta el título del sitio.','Table ordered by User Registered Date.'=>'Tabla ordenada por fecha de registro del usuario.','Table ordered by Theme Name.'=>'Tabla ordenada por nombre del tema.','Table ordered by Site Registered Date.'=>'Tabla ordenada por fecha de registro del sitio.','Table ordered by Last Updated.'=>'Tabla ordenada por última actualización.','Table ordered by Site Path.'=>'Tabla ordenada por ruta del sitio.','Table ordered by Site Domain Name.'=>'Tabla ordenada por nombre de dominio del sitio.','Network configuration authentication keys'=>'Claves de identificación para configurar la red','Network configuration rules for %s'=>'Reglas de configuración de la red para %s','WordPress has been updated! Next and final step is to individually upgrade the sites in your network.'=>'¡WordPress se ha actualizado! A continuación, y como último paso, hay que actualizar individualmente los sitios de tu red.','Cannot create an empty site.'=>'No se puede crear un sitio vacío.','You should back up your existing %s file.'=>'Deberías hacer una copia de seguridad de tu archivo %s existente.','You should back up your existing %1$s and %2$s files.'=>'Deberías hacer una copia de seguridad de tus archivos existentes %1$s y %2$s.','Visit theme site for %s'=>'Visita el sitio del tema %s','Child theme of %s'=>'Tema hijo de %s','sitePublic'=>'Público','siteNot spam'=>'No es spam','%s theme will no longer be auto-updated.'=>'%s tema ya no se actualizará automáticamente.' . "\0" . '%s temas ya no se actualizarán automáticamente.','%s theme will be auto-updated.'=>'%s tema se actualizará automáticamente.' . "\0" . '%s temas se actualizarán automáticamente.','Sorry, you are not allowed to change themes automatic update settings.'=>'Lo siento, no tienes permisos para cambiar ajustes de actualización automática de temas.','No themes are currently available.'=>'Actualmente no hay ningún tema disponible.','Y/m/d g:i:s a'=>'d/m/Y H:i:s','It seems your network is running with Nginx web server. Learn more about further configuration.'=>'Parece que tu red se está ejecutando con un servidor web Nginx. Aprende más sobre las configuraciones.','sitesSpam (%s)'=>'Spam (%s)' . "\0" . 'Spam (%s)','Mature (%s)'=>'Antiguo (%s)' . "\0" . 'Antiguos (%s)','Archived (%s)'=>'Archivado (%s)' . "\0" . 'Archivados (%s)','Public (%s)'=>'Público (%s)' . "\0" . 'Públicos (%s)','sitesAll (%s)'=>'Todo (%s)' . "\0" . 'Todos (%s)','themesUpdate Available (%s)'=>'Actualización disponible (%s)' . "\0" . 'Actualizaciones disponibles (%s)','Main'=>'Principal','Documentation on the Network Screen'=>'Documentación sobre la pantalla de la red','The constant %s cannot be defined when creating a network.'=>'La constante %s no se puede definir al crear una red.','You are about to delete the following sites:'=>'Estás a punto de borrar los siguientes sitios:','User could not be added to this site.'=>'No se ha podido añadir al usuario a este sitio.','The username and a link to set the password will be mailed to this email address.'=>'El nombre de usuario y un enlace para establecer la contraseña se enviarán por correo electrónico a esta dirección de correo electrónico.','There is a pending change of the network admin email to %s.'=>'Hay un cambio pendiente del correo electrónico de administración de la red en %s.','Sub-domain Installation'=>'Instalación en subdominio','Sub-directory Installation'=>'Instalación en subdirectorio','Active Child Theme'=>'Tema hijo activo','%s KB'=>'%s KB','%s Sites'=>'%s sitios','Sorry, you are not allowed to delete themes for this site.'=>'Lo siento, no tienes permiso para borrar temas en este sitio.','Sorry, you are not allowed to manage network themes.'=>'Lo siento, no tienes permiso para gestionar temas de la red.','Sorry, you are not allowed to delete that site.'=>'Lo siento, no tienes permiso para borrar este sitio.','Sorry, you are not allowed to manage themes for this site.'=>'Lo siento, no tienes permiso para gestionar temas en este sitio.','Sorry, you are not allowed to add sites to this network.'=>'Lo siento, no tienes permiso para añadir sitios a esta red.','Sorry, you are not allowed to edit this site.'=>'Lo siento no tienes permiso para editar este sitio.','The email address of the first comment author on a new site.'=>'La dirección de correo electrónico del autor del primer comentario en cada nuevo sitio.','First Comment Email'=>'Correo electrónico del primer comentario','That’s all, stop editing! Happy publishing.'=>'¡Eso es todo, deja de editar! Disfruta publicando.','Add the following to your %1$s file in %2$s above the line reading %3$s:'=>'Añade lo siguiente a tu archivo %1$s en %2$s por encima de la línea que dice %3$s:','theme%1$s by %2$s'=>'%1$s por %2$s','Only lowercase letters (a-z), numbers, and hyphens are allowed.'=>'Solo se permiten minúsculas (a-z), números y guiones.','These unique authentication keys are also missing from your %s file.'=>'Estas claves únicas de identificación también faltan en tu archivo %s.','This unique authentication key is also missing from your %s file.'=>'Esta clave única de identificación también falta en tu archivo %s.','Because you are using %1$s, the sites in your WordPress network must use sub-directories. Consider using %2$s if you wish to use sub-domains.'=>'Como estás usando %1$s, los sitios de tu red WordPress deben usar subdirectorios. Si quieres usar subdominios, deberías utilizar %2$s.','The internet address of your network will be %s.'=>'La dirección de internet de tu red será %s.','You should consider changing your site domain to %1$s before enabling the network feature. It will still be possible to visit your site using the %3$s prefix with an address like %2$s but any links will not have the %3$s prefix.'=>'Antes de activar la característica de red, deberías plantearte cambiar el dominio de tu sitio a %1$s. Todavía será posible visitar tu sitio usando el prefijo %3$s con una dirección como %2$s, pero los enlaces no tendrán el prefijo %3$s.','You cannot change this later.'=>'No podrás cambiar esto después.','Please choose whether you would like sites in your WordPress network to use sub-domains or sub-directories.'=>'Por favor, elige si quieres que los sitios de tu red WordPress usen subdominios o subdirectorios.','If %1$s is disabled, ask your administrator to enable that module, or look at the Apache documentation or elsewhere for help setting it up.'=>'Si %1$s está desactivado, pide a tu administrador que active ese módulo o echa un vistazo a la documentación de Apache o en otro sitio para saber cómo configurarlo.','It looks like the Apache %s module is not installed.'=>'Parece que el módulo de Apache %s no está instalado.','Please make sure the Apache %s module is installed as it will be used at the end of this installation.'=>'Por favor, asegúrate de que el módulo de Apache %s está instalado, ya que se usará al final de esta instalación.','userRegistered'=>'Registrado','Super Admin (%s)'=>'Superadministrador (%s)' . "\0" . 'Superadministradores (%s)','userNot spam'=>'No es spam','userMark as spam'=>'Marcar como spam','Visit Theme Site'=>'Visitar el sitio del tema','Broken Theme:'=>'Tema roto:','Network Disable %s'=>'Desactivar para la red %s','Disable %s'=>'Desactivar %s','Network Enable %s'=>'Activar para la red %s','Enable %s'=>'Activar %s','Network Disable'=>'Desactivar para la red','themesBroken (%s)'=>'Roto (%s)' . "\0" . 'Rotos (%s)','themesDisabled (%s)'=>'Desactivado (%s)' . "\0" . 'Desactivados (%s)','themesEnabled (%s)'=>'Activado (%s)' . "\0" . 'Activados (%s)','themesAll (%s)'=>'Todo (%s)' . "\0" . 'Todos (%s)','No themes found.'=>'No se han encontrado temas.','verb; siteArchive'=>'Archivar','Unarchive'=>'Restaurar','Never'=>'Nunca','%1$s – %2$s'=>'%1$s – %2$s','siteRegistered'=>'Registrado','Last Updated'=>'Última actualización','siteNot Spam'=>'No es spam','siteMark as spam'=>'Marcar como spam','No sites found.'=>'No se han encontrado sitios.','Mature'=>'Adulto','siteSpam'=>'Spam','Archived'=>'Archivado','A password reset link will be sent to the user via email.'=>'Se enviará al usuario un enlace por correo electrónico para que pueda restablecer la contraseña.','If registration is disabled, please set %1$s in %2$s to a URL you will redirect visitors to if they visit a non-existent site.'=>'Si el registro de usuarios está desactivado, establece como valor de %1$s en %2$s una URL donde redirigir a los visitantes que accedan a un sitio inexistente.','You must define the %1$s constant as true in your %2$s file to allow creation of a Network.'=>'Debes establecer la constante %1$s como verdadero (true) en tu archivo %2$s para permitir la creación de una red.','Themes list navigation'=>'Navegación por la lista de temas','Sites list'=>'Lista de sitios','Sites list navigation'=>'Navegación por la lista de sitios','Site users list'=>'Lista de usuarios del sitio','Site users list navigation'=>'Navegación por la lista de usuarios del sitio','Filter site users list'=>'Filtrar la lista de usuarios del sitio','Site themes list'=>'Lista de temas del sitio','Site themes list navigation'=>'Navegación por el listado de temas','Filter site themes list'=>'Filtrar la lista de temas','The domain or path entered conflicts with an existing username.'=>'El dominio o la ruta entran en conflicto con un nombre de usuario ya existente.','The requested action is not valid.'=>'La acción solicitada no es válida.','You are about to mark the site %s as not mature.'=>'Estás a punto de marcar el sitio %s como para todos los públicos.','You are about to mark the site %s as mature.'=>'Estás a punto de marcar el sitio %s como para adultos.','You are about to delete the site %s.'=>'Estás a punto de borrar el sitio %s.','You are about to mark the site %s as spam.'=>'Estás a punto de marcar el sitio %s como spam.','You are about to unspam the site %s.'=>'Estás a punto de sacar el sitio %s de spam.','You are about to archive the site %s.'=>'Estás apunto de archivar el sitio %s.','You are about to unarchive the site %s.'=>'Estás a punto de restaurar el sitio %s.','The requested site does not exist.'=>'El sitio solicitado no existe.','Path'=>'Ruta','Domain'=>'dominio','Documentation on Network Users'=>'Documentación sobre usuarios de la red','Documentation on Network Themes'=>'Documentación sobre temas de la red','Warning! Problem updating %1$s. Your server may not be able to connect to sites running on it. Error message: %2$s'=>'¡Advertencia! Problema al actualizar %1$s. Parece que tu servidor no es capaz de conectar con los sitios activos en la red. Mensaje de error: %2$s','%s theme deleted.'=>'%s tema borrado.' . "\0" . '%s temas borrados.','%s theme disabled.'=>'%s tema desactivado.' . "\0" . '%s temas desactivados.','%s theme enabled.'=>'%s tema activado.' . "\0" . '%s temas activados.','Yes, delete these themes'=>'Sí, borrar estos temas','You are about to remove the following themes:'=>'Estás a punto de eliminar los siguientes temas:','These themes may be active on other sites in the network.'=>'Estos temas pueden estar activos en otros sitios de la red.','Delete Themes'=>'Borrar temas','Size in kilobytes'=>'Tamaño en kilobytes','Allowed file types. Separate types by spaces.'=>'Tipos de archivos permitidos. Separa los tipos con espacios.','Add the following to your %1$s file in %2$s, replacing other WordPress rules:'=>'Añade lo siguiente a tu archivo %1$s en %2$s, reemplazando cualquier otra regla de WordPress:','Confirm your action'=>'Confirma tu acción','Hover over any user on the list to make the edit links appear. The Edit link on the left will take you to their Edit User profile page; the Edit link on the right by any site name goes to an Edit Site screen for that site.'=>'Pasa el cursor sobre cualquier usuario de las lista para que se muestren los enlaces de edición. El enlace de edición de la izquierda te llevará a la página de edición del perfil de usuario; el de la derecha de los nombres de los sitios te lleva a la pantalla de edición de ese sitio.','To search for a site, enter the path or domain.'=>'Para buscar un sitio, introduce la ruta o el dominio.','To search for a user, enter an email address or username. Use a wildcard to search for a partial username, such as user*.'=>'Para buscar un usuario, introduce una dirección de correo electrónico o un nombre de usuario. Utiliza comodines para buscar un nombre de usuario parcial, como usuario*.','To add a new site, click Create a New Site.'=>'Para añadir un sitio nuevo, haz clic en Crear un nuevo sitio.','To add a new user, click Create a New User.'=>'Para añadir un nuevo usuario, haz clic en Crear nuevo usuario.','Quick Tasks'=>'Tareas rápidas','To search for a user or site, use the search boxes.'=>'Para buscar un usuario o sitio, usa las cajas de búsqueda.','The Right Now widget on this screen provides current user and site counts on your network.'=>'El widget Ahora mismo de esta pantalla ofrece contadores al usuario y sitio actual de tu red.','Modify global network settings'=>'Modifica las opciones globales de la red','Update your network'=>'Actualiza tu red','Install and activate themes or plugins'=>'Instala y activa temas o plugins','Add and manage sites or users'=>'Añade y gestiona sitios o usuarios','From here you can:'=>'Desde aquí puedes:','Welcome to your Network Admin. This area of the Administration Screens is used for managing all aspects of your Multisite Network.'=>'Bienvenido a la administración de la red. Este área de las pantallas de administración se utiliza para gestionar todos los aspectos de tu red multisitio.','Only use this screen once you have updated to a new version of WordPress through Updates/Available Updates (via the Network Administration navigation menu or the Toolbar). Clicking the Upgrade Network button will step through each site in the network, five at a time, and make sure any database updates are applied.'=>'Usa solo esta pantalla una vez hayas actualizado a una nueva versión de WordPress desde Actualizaciones/Actualizaciones disponibles (en el menú de navegación o barra de administración de la red). Al hacer clic en el botón Actualizar red, se empezará a actualizar sitio a sitio de la red, cinco cada vez, asegurándose de que se actualizan las bases de datos.','Upgrade Network'=>'Actualizar la red','Subdirectory networks may not be fully compatible with custom wp-content directories.'=>'Las redes en subdirectorio puede que no sean completamente compatibles con directorios wp-content personalizados.','Add the designated lines of code to wp-config.php (just before /*...stop editing...*/) and .htaccess (replacing the existing WordPress rules).'=>'Añade las líneas de código designadas a wp-config.php (justo antes de /*...para de editar...*/) y a .htaccess (reemplazando las reglas existentes de WordPress).','Language Settings'=>'Ajustes de idioma','Allow site administrators to add new users to their site via the "Users → Add User" page'=>'Permite a los administradores de sitio añadir nuevos usuarios a su sitio a través de la página «Usuarios → Añadir nuevo»','Super admins can no longer be added on the Options screen. You must now go to the list of existing users on Network Admin > Users and click on Username or the Edit action link below that name. This goes to an Edit User page where you can check a box to grant super admin privileges.'=>'Los super administadores ya no pueden añadirse en la pantalla de Ajustes. Ahora debes ir a la lista de usuarios existentes en Administrar red > Usuarios y hacer clic en el enlace de acción de Usuario o Editar debajo del nombre. Esto te lleva a una página de Editar usuario en la que puedes marcar una casilla que le dará privilegios de Super administrador.','Enter the username and email.'=>'Introduce el nombre de usuario y correo electrónico.','User created.'=>'Usuario creado.','Select a user to remove.'=>'Elige un usuario para eliminarlo.','Select a user to change role.'=>'Elige un usuario para cambiar su perfil.','Enter the username of an existing user.'=>'Introduce el nombre de usuario de un usuario existente.','User is already a member of this site.'=>'El usuario ya es miembro de este sitio.','Site options updated.'=>'Opciones del sitio actualizadas.','Site added. Visit Dashboard or Edit Site'=>'Sitio añadido. Visita el escritorio o edita el sitio','This screen is for Super Admins to add new sites to the network. This is not affected by the registration settings.'=>'Esta pantalla es para que los Super administradores añadan nuevos sitios a la red. No le afectan los ajustes de registro.','Site info updated.'=>'Información del sitio actualizada.','You cannot delete a theme while it is active on the main site.'=>'No puedes borrar un tema si está activo en el sitio principal.','Themes can be enabled on a site by site basis by the network admin on the Edit Site screen (which has a Themes tab); get there via the Edit action link on the All Sites screen. Only network admins are able to install or edit themes.'=>'Los temas puede activarlos el administrador de la red sitio a sitio en la pantalla de Editar sitio (que tiene una pestaña Temas); puedes llegar ahí desde el enlace de acción Editar de la pantalla Todos los sitios. Solo los administradores de red pueden instalar o editar temas. ','No, return me to the theme list'=>'No, devuélveme a la lista de temas','Yes, delete this theme'=>'Sí, borrar este tema','Are you sure you want to delete these themes?'=>'¿Seguro que quieres borrar estos temas?','You are about to remove the following theme:'=>'Estás a punto de eliminar el siguiente tema:','This theme may be active on other sites in the network.'=>'Este tema podría estar activo en otros sitios de la red.' . "\0" . 'Estos temas podrían estar activos en otros sitios de la red.','Delete Theme'=>'Borrar tema' . "\0" . 'Borrar temas','Network enabled themes are not shown on this screen.'=>'Los temas activos para la red no se muestran en esta pantalla.','No theme selected.'=>'Ningún tema seleccionado.','Theme disabled.'=>'Tema desactivado.' . "\0" . '%s temas desactivados.','Theme enabled.'=>'Tema activado' . "\0" . '%s temas activados.','Edit Site: %s'=>'Editar el sitio: %s','Invalid site ID.'=>'ID de sitio no válido.','Sorry, you are not allowed to delete the site %s.'=>'Lo siento, no tienes permiso para borrar el sitio %s.','Delete Permanently which is a permanent action after the confirmation screen.'=>'Borrar permanentemente es una acción permanente después de la pantalla de confirmación.','Dashboard leads to the Dashboard for that site.'=>'Escritorio te lleva al escritorio de ese sitio.','An Edit link to a separate Edit Site screen.'=>'Un enlace de editar que lleva la pantalla de Editar sitio.','Add Site takes you to the screen for adding a new site to the network. You can search for a site by Name, ID number, or IP address. Screen Options allows you to choose how many sites to display on one page.'=>'«Añadir sitio» te lleva a la pantalla para añadir un nuevo sitio a la red. Puedes buscar un sitio por nombre, número de identificación o dirección IP. Las opciones de pantalla te permite elegir cuántos sitios mostrar en una página.','Add Users'=>'Añadir usuarios','Cannot add user.'=>'No se ha podido añadir el usuario.','Add User will set up a new user account on the network and send that person an email with username and password.'=>'Añadir usuario configurará una nueva cuenta de usuario en la red y enviará a esa persona un correo electrónico con su usuario y contraseña.','Updates'=>'Actualizaciones','Network Settings'=>'Ajustes de la red','Installed Themes'=>'Temas instalados','All Sites'=>'Todos los sitios','Once you complete these steps, your network is enabled and configured. You will have to log in again.'=>'Una vez completes estos pasos, tu red estará activa y configurada. Tendrás que acceder de nuevo.','To make your installation more secure, you should also add:'=>'Para hacer más segura tu instalación, también deberías añadir:','Complete the following steps to enable the features for creating a network of sites.'=>'Completa los siguientes pasos para activar las características para crear una red de sitios.','Enabling the Network'=>'Activando la red','Please complete the configuration steps. To create a new network, you will need to empty or remove the network database tables.'=>'Por favor, completa los pasos de configuración. Para crear una nueva red, tendrás que vaciar o eliminar las tablas de la base de datos de la red.','An existing WordPress network was detected.'=>'Se ha detectado una red WordPress existente.','The original configuration steps are shown here for reference.'=>'Los pasos de la configuración original se muestran aquí como referencia.','Your email address.'=>'Tu dirección de correo electrónico.','What would you like to call your network?'=>'¿Cómo te gustaría llamar a tu red?','Network Title'=>'Título de la red','Because your installation is not new, the sites in your WordPress network must use sub-domains.'=>'Como tu instalación no es nueva, los sitios de tu red WordPress deben usar subdominios.','Because your installation is in a directory, the sites in your WordPress network must use sub-directories.'=>'Como tu instalación está hecha en un directorio, los sitios de tu red WordPress deben usar subdirectorios.','The main site in a sub-directory installation will need to use a modified permalink structure, potentially breaking existing links.'=>'El sitio principal en una instalación en subdirectorios tendrá que usar una estructura de enlaces permanentes modificada, lo que es posible que rompa enlaces actuales.','Network Details'=>'Detalles de la red','Server Address'=>'Dirección del servidor','subdirectory exampleslike %1$s/site1 and %1$s/site2'=>'como %1$s/sitio1 y %1$s/sitio2','Sub-directories'=>'Subdirectorios','subdomain exampleslike site1.%1$s and site2.%1$s'=>'como sitio1.%1$s y sitio2.%1$s','Sub-domains'=>'Subdominios','You will need a wildcard DNS record if you are going to use the virtual host (sub-domain) functionality.'=>'Necesitarás un registro DNS comodín si vas a usar la funcionalidad de alojamiento virtual (subdominio).','Addresses of Sites in your Network'=>'Direcciones de los sitios de tu red','Fill in the information below and you’ll be on your way to creating a network of WordPress sites. Configuration files will be created in the next step.'=>'Rellena la siguiente información y estarás a un paso de crear una red de sitios WordPress. Los archivos de configuración se crearán en el siguiente paso.','Welcome to the Network installation process!'=>'¡Bienvenido al proceso de instalación de la red!','The network could not be created.'=>'No se ha podido crear la red.','Once the network is created, you may reactivate your plugins.'=>'Una vez se haya creado la red, ya podrás reactivar tus plugins.','Please deactivate your plugins before enabling the Network feature.'=>'Por favor, desactiva tus plugins antes de activar la característica de red.','Network'=>'Red','The choice of subdirectory sites is disabled if this setup is more than a month old because of permalink problems with “/blog/” from the main site. This disabling will be addressed in a future version.'=>'La elección de sitios como subdirectorios está desactivada si esta instalación es de hace más de un mes para evitar problemas con la estructura «/blog/» de los enlaces permanentes del sitio principal. Se solucionará esta desactivación en futuras versiones de WordPress.','Once you add this code and refresh your browser, multisite should be enabled. This screen, now in the Network Admin navigation menu, will keep an archive of the added code. You can toggle between Network Admin and Site Admin by clicking on the Network Admin or an individual site name under the My Sites dropdown in the Toolbar.'=>'Una vez añadido este código y recargado tu navegador, el multisitio debería estar activo. Esta pantalla, una vez que se convierta en el menú de navegación del administrador de la red, mantendrá un archivo del código añadido. Puedes alternar entre Administrador de red y Administración del sitio haciendo clic en el administrador de red o en Mis sitios en el menú desplegable en la barra de herramientas.','The next screen for Network Setup will give you individually-generated lines of code to add to your wp-config.php and .htaccess files. Make sure the settings of your FTP client make files starting with a dot visible, so that you can find .htaccess; you may have to create this file if it really is not there. Make backup copies of those two files.'=>'La siguiente pantalla para configurar la red te ofrecerá líneas de código autogeneradas para ti, para que las añadas a tus archivos wp-config.php y .htaccess. Asegúrate de que los ajustes de tu cliente FTP permiten que los ficheros con un punto delante se muestren, para que puedas ver el fichero .htaccess; puede que tengas que crear este archivo, si no estuviera ya creado. Haz copias de seguridad de esos dos archivos.','Choose subdomains or subdirectories; this can only be switched afterwards by reconfiguring your installation. Fill out the network details, and click Install. If this does not work, you may have to add a wildcard DNS record (for subdomains) or change to another setting in Permalinks (for subdirectories).'=>'Elige subdominios o subdirectorios. Esto solo puede cambiarse posteriormente reconfigurando tu instalación. Completa los detalles de la red y haz clic en instalar. Si esto no funciona, deberás añadir un registro DNS con comodín (para los subdominios) o cambiar a otro ajuste de enlaces permanentes (para los subdirectorios).','This screen allows you to configure a network as having subdomains (site1.example.com) or subdirectories (example.com/site1). Subdomains require wildcard subdomains to be enabled in Apache and DNS records, if your host allows it.'=>'Esta pantalla te permite configurar una red con subdominios (sitio1.ejemplo.com) o subdirectorios (ejemplo.com/sitio1). Los subdominios requieren tener activados los comodines de subdominios en la configuración de Apache y en los registros DNS, si tu alojamiento lo permite.','Create a Network of WordPress Sites'=>'Crear una red de sitios de WordPress','The Network creation panel is not for WordPress MU networks.'=>'El panel de creación de la Red no es para redes de WordPress MU.','Warning! User cannot be modified. The user %s is a network administrator.'=>'¡Atención! El usuario no puede modificarse. El usuario %s es un administrador de la red.','If the admin email for the new site does not exist in the database, a new user will also be created.'=>'Si el correo electrónico del administrador para el nuevo sitio no existe en la base de datos, también se creará un nuevo usuario.','Flag for Deletion, Archive, and Spam which lead to confirmation screens. These actions can be reversed later.'=>'Marcar para desactivar, archivar y enviar a spam te lleva a pantallas de confirmación. Estas acciones pueden revertirse más tarde.','Hovering over each site reveals seven options (three for the primary site):'=>'Al pasar el cursor sobre cada sitio se muestran siete opciones (tres para el sitio primario):','Operational settings has fields for the network’s name and admin email.'=>'Los ajustes operacionales tienen campos para el nombre de red y el correo electrónico del administrador.','The bulk action will permanently delete selected users, or mark/unmark those selected as spam. Spam users will have posts removed and will be unable to sign up again with the same email addresses.'=>'La acción en lote borrará permanentemente los usuarios seleccionados o marca/desmarca los seleccionados como spam. Se eliminarán las entradas de los usuarios spam y no podrán acceder de nuevo con la misma dirección de correo electrónico. ','You can also go to the user’s profile page by clicking on the individual username.'=>'También puedes ir a la página de perfil del usuario haciendo clic en el nombre de usuario concreto.','Upload settings control the size of the uploaded files and the amount of available upload space for each site. You can change the default value for specific sites when you edit a particular site. Allowed file types are also listed (space separated only).'=>'Los ajustes de subida controlan el tamaño para la subida de archivos y la cantidad de espacio de subida disponible para cada sitio. Puedes cambiar el valor por defecto para sitios específicos cuando edites un sitio en concreto. También se listan los tipos de archivo permitidos (separados solo por espacios).','You can make an existing user an additional super admin by going to the Edit User profile page and checking the box to grant that privilege.'=>'Puedes convertir en super administrador a un usuario existente yendo a la página de edición del perfil del usuario y marcando la casilla que le da este privilegio.','Users who are signed up to the network without a site are added as subscribers to the main or primary dashboard site, giving them profile pages to manage their accounts. These users will only see Dashboard and My Sites in the main navigation until a site is created for them.'=>'Los usuarios que se registran en la red sin crear un sitio son añadidos al escritorio del sitio principal como suscriptores, dándoles unas páginas de perfil para gestionar sus cuentas. Estos usuarios solo verán el escritorio y Mis sitios en la navegación principal hasta que creen su propio sitio.','You can sort the table by clicking on any of the table headings and switch between list and excerpt views by using the icons above the users list.'=>'Puedes ordenar la tabla haciendo clic en cualquiera de los encabezados de la tabla y cambiando entre vista de listado y de extracto con los iconos de la parte superior de la lista de usuarios.','This table shows all users across the network and the sites to which they are assigned.'=>'Esta tabla muestra todos los usuarios de la red y los sitios que tienen asignados.','If this process fails for any reason, users logging in to their sites will force the same update.'=>'Si este proceso falla por cualquier circunstancia, cuando los usuarios accedan a su sitio forzaran esta misma actualización.','If a version update to core has not happened, clicking this button will not affect anything.'=>'Si no se ha producido una actualización de la versión del núcleo, hacer clic en este botón no afectará a nada.','If the network admin disables a theme that is in use, it can still remain selected on that site. If another theme is chosen, the disabled theme will not appear in the site’s Appearance > Themes screen.'=>'Si el administrador de la red desactiva un tema que está en uso, podrá continuar seleccionado en el sitio que lo tenga en uso. Si en el sitio selecciona otro tema, el tema ya no le aparecerá en la pantalla Apariencia > Temas.','This screen enables and disables the inclusion of themes available to choose in the Appearance menu for each site. It does not activate or deactivate which theme a site is currently using.'=>'Esta pantalla activa o desactiva la inclusión en la disponibilidad de Temas para los sitios en el menú Apariencia de cada sitio. No activa o desactiva qué temas se están usando en cada sitio.','This is the main table of all sites on this network. Switch between list and excerpt views by using the icons above the right side of the table.'=>'Esta es la tabla principal de todos los sitios de la red. Cambia de vista listado o fragmento usando los iconos de la parte superior derecha de la tabla.','Menu setting enables/disables the plugin menus from appearing for non super admins, so that only super admins, not site admins, have access to activate plugins.'=>'En ajustes de menú se activa o desactiva que aparezca o no el menú plugins para los usuarios que no son super administradores. Es decir, solo los super administradores, no los administradores, tienen acceso a los plugins.','New site settings are defaults applied when a new site is created in the network. These include welcome email for when a new site or user account is registered, and what᾿s put in the first post, page, comment, comment author, and comment URL.'=>'Los ajustes para nuevos sitios se aplican cuando se crea un nuevo sitio en la red. Esto incluye el correo electrónico de bienvenida, cuando se registra un nuevo sitio, o la cuenta de usuario y qué poner en la primera entrada, página, comentario, autor del comentario y la URL del comentario.','Registration settings can disable/enable public signups. If you let others sign up for a site, install spam plugins. Spaces, not commas, should separate names banned as sites for this network.'=>'Los ajustes de registro pueden activar/desactivar el registro público. Si permites que la gente registre un sitio, instala un plugin contra el spam. Espacios, sin comas, deben separar los nombres para sitios no permitidos para esta red.','This screen sets and changes options for the network as a whole. The first site is the main site in the network and network options are pulled from that original site’s options.'=>'Esta pantalla establece y cambia las opciones para toda la red. El primer sitio es el sitio principal de la red y las opciones de red serán pasadas desde las opciones del sitio original.','The following words are reserved for use by WordPress functions and cannot be used as site names: %s'=>'Las siguientes palabras están reservadas para su uso en las funciones de WordPress y no se pueden usar como nombres de sitios: %s','If your browser does not start loading the next page automatically, click this link:'=>'Si tu navegador no empieza a cargar automáticamente la siguiente página, haz clic en este enlace:','If you want to ban domains from site registrations. One domain per line.'=>'Si quieres prohibir dominios del registro de sitios. Un dominio por línea.','If you want to limit site registrations to certain domains. One domain per line.'=>'Si quieres limitar el registro de sitios a determinados dominios. Un dominio por línea.','Users removed from spam.'=>'Usuarios eliminados de spam.','Site marked as spam.'=>'Sitio marcado como spam.','Site removed from spam.'=>'Sitio eliminado de spam.','Sites marked as spam.'=>'Sitios marcados como spam.','Sites removed from spam.'=>'Sitios eliminados de spam.','Users deleted.'=>'Usuarios borrados.','Users marked as spam.'=>'Usuario marcado como spam.','Site unarchived.'=>'Sitio restaurado.','Site archived.'=>'Sitio archivado.','Sorry, you are not allowed to change the current site.'=>'Lo siento, no tienes permiso para cambiar el sitio actual.','There was an error creating the user.'=>'Ha habido un error al crear el usuario.','Upload file types'=>'Tipos de archivo permitidos','Limit total size of files uploaded to %s MB'=>'Tamaño máximo de espacio para archivos subidos %s MB','The URL for the first comment on a new site.'=>'La URL para el primer comentario en un nuevo sitio.','The author of the first comment on a new site.'=>'El autor del primer comentario en un sitio nuevo.','The first comment on a new site.'=>'El primer comentario en un sitio nuevo.','The first page on a new site.'=>'La primera página en un sitio nuevo.','The first post on a new site.'=>'La primera entrada en un sitio nuevo.','All done!'=>'¡Todo hecho!','Both sites and user accounts can be registered'=>'Pueden registrarse sitios y cuentas de usuario','Logged in users may register new sites'=>'Los usuarios conectados pueden registrar sitios nuevos','User accounts may be registered'=>'Se pueden crear cuentas de usuario.','Registration is disabled'=>'El registro está desactivado','Enable administration menus'=>'Activar menús de administración','Upload Settings'=>'Ajustes de subidas','New Site Settings'=>'Ajustes para sitios nuevos','Registration Settings'=>'Ajustes de registro','Operational Settings'=>'Ajustes operacionales','Missing email address.'=>'Falta la dirección de correo electrónico.','Missing or invalid site address.'=>'La dirección del sitio no está o no es válida.','Next Sites'=>'Siguientes sitios','Site upload space'=>'Espacio de subidas para el sitio','The welcome email sent to new site owners.'=>'El correo electrónico de bienvenida enviado a los dueños de sitios nuevos.','Users are not allowed to register these sites. Separate names by spaces.'=>'Los usuarios no tienen permiso para crear estos sitios. Separa los nombres mediante espacios.','Send the network admin an email notification every time someone registers a site or user account'=>'Envía al administrador de la red un correo electrónico cada vez que alguien se registre o registre un sitio','Network Admin Email'=>'Correo electrónico del administrador de la red','A new user will be created if the above email address is not in the database.'=>'Se creará un nuevo usuario si la dirección de correo electrónico anterior no está en la base de datos.','Admin Email'=>'Correo electrónico del administrador','Add Site'=>'Añadir sitio','Default Language'=>'Idioma por defecto','Max upload file size'=>'Tamaño máximo de archivo','First Comment URL'=>'URL del primer comentario','First Comment Author'=>'Autor del primer comentario','First Comment'=>'Primer comentario','First Page'=>'Primera página','The welcome email sent to new users.'=>'El correo electrónico de bienvenida enviado a los nuevos usuarios.','Welcome User Email'=>'Correo electrónico de bienvenida al usuario','Welcome Email'=>'Correo electrónico de bienvenida','Banned Email Domains'=>'Dominios de correo electrónico no permitidos','Limited Email Registrations'=>'Limitar el registro por correo electrónico','Banned Names'=>'Nombres prohibidos','Add New User'=>'Añadir nuevo usuario','Registration notification'=>'Aviso de registro','Allow new registrations'=>'Permitir nuevos registros','Duplicated username or email address.'=>'Nombre de usuario o correo electrónico duplicado.','Cannot create an empty user.'=>'No se puede crear un usuario vacío.','Confirm'=>'Confirmar']]; \ No newline at end of file diff --git a/wp-content/languages/admin-network-es_ES.mo b/wp-content/languages/admin-network-es_ES.mo new file mode 100644 index 0000000..9c19259 Binary files /dev/null and b/wp-content/languages/admin-network-es_ES.mo differ diff --git a/wp-content/languages/admin-network-es_ES.po b/wp-content/languages/admin-network-es_ES.po new file mode 100644 index 0000000..71508c2 --- /dev/null +++ b/wp-content/languages/admin-network-es_ES.po @@ -0,0 +1,1455 @@ +# Translation of WordPress - 6.9.x - Development - Administration - Network Admin in Spanish (Spain) +# This file is distributed under the same license as the WordPress - 6.9.x - Development - Administration - Network Admin package. +msgid "" +msgstr "" +"PO-Revision-Date: 2025-11-15 20:55:01+0000\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: GlotPress/4.0.3\n" +"Language: es\n" +"Project-Id-Version: WordPress - 6.9.x - Development - Administration - Network Admin\n" + +#: wp-admin/network/sites.php:361 +msgid "Site flagged for deletion." +msgstr "Sitio marcado para el borrado." + +#: wp-admin/network/sites.php:358 +msgid "Site deletion flag removed." +msgstr "Marca de borrado del sitio quitada." + +#: wp-admin/network/sites.php:346 +msgid "Site permanently deleted." +msgstr "Sitio borrado permanentemente." + +#: wp-admin/network/sites.php:343 +msgid "Sites permanently deleted." +msgstr "Sitios borrados permanentemente." + +#: wp-admin/network/sites.php:237 +msgid "Delete these sites permanently" +msgstr "Borrar estos sitios permanentemente" + +#: wp-admin/network/sites.php:137 +msgid "Flagging a site for deletion makes the site unavailable to its users and visitors. This is a reversible action. A super admin can permanently delete the site at a later date." +msgstr "Marcar un sitio para su borrado hace que el sitio no esté disponible para sus usuarios y visitantes. Esta acción es reversible. Un superadministrador puede borrar el sitio de forma permanente en una fecha posterior." + +#: wp-admin/network/sites.php:131 +msgid "Archiving a site makes the site unavailable to its users and visitors. This is a reversible action." +msgstr "Archivar un sitio hace que este no esté disponible para sus usuarios y visitantes. Se trata de una acción reversible." + +#. translators: %s: Site URL. +#: wp-admin/network/sites.php:66 +msgid "You are about to flag the site %s for deletion." +msgstr "Estás a punto de marcar el sito %s para el borrado." + +#. translators: %s: Site URL. +#: wp-admin/network/sites.php:64 +msgid "You are about to remove the deletion flag from the site %s." +msgstr "Estás a punto de quitar la marca de borrado del sitio %s." + +#: wp-admin/includes/class-wp-ms-sites-list-table.php:772 +msgid "Flag for Deletion" +msgstr "Marcado para el borrado" + +#: wp-admin/includes/class-wp-ms-sites-list-table.php:761 +msgctxt "site" +msgid "Remove Deletion Flag" +msgstr "Quitar marca de borrado" + +#. translators: %s: Number of sites. +#: wp-admin/includes/class-wp-ms-sites-list-table.php:258 +msgid "Flagged for Deletion (%s)" +msgid_plural "Flagged for Deletion (%s)" +msgstr[0] "Marcado para el borrado (%s)" +msgstr[1] "Marcados para el borrado (%s)" + +#: wp-admin/includes/class-wp-ms-sites-list-table.php:40 +#: wp-admin/network/site-info.php:205 +msgid "Flagged for Deletion" +msgstr "Marcado para el borrado" + +#: wp-admin/network/upgrade.php:37 +msgid "Documentation on Upgrade Network" +msgstr "Documentación sobre actualizar la red" + +#: wp-admin/network/sites.php:125 wp-admin/network/sites.php:220 +msgid "Deleting a site is a permanent action that cannot be undone. This will delete the entire site and its uploads directory." +msgstr "Borrar un sitio es una acción permanente que no se puede deshacer. Esto borrará todo el sitio y su directorio de subidas." + +#: wp-admin/network/sites.php:122 +msgid "Delete this site permanently" +msgstr "Borrar este sitio permanentemente" + +#: wp-admin/network/sites.php:38 +msgid "Visit to go to the front-end of the live site." +msgstr "Visitar para ir a la portada del sitio público." + +#: wp-admin/network/settings.php:64 +msgid "Documentation on Network Settings" +msgstr "Documentación sobre ajustes de red" + +#: wp-admin/network/index.php:56 +msgid "Documentation on the Network Admin" +msgstr "Documentación sobre el administrador de red" + +#: wp-admin/network.php:68 wp-admin/network.php:81 +msgid "Documentation on Creating a Network" +msgstr "Documentación sobre cómo crear una red" + +#: wp-admin/includes/network.php:680 +msgid "https://developer.wordpress.org/advanced-administration/server/web-server/nginx/" +msgstr "https://developer.wordpress.org/advanced-administration/server/web-server/nginx/" + +#: wp-admin/network/site-new.php:87 +msgid "Missing site title." +msgstr "Falta el título del sitio." + +#: wp-admin/includes/class-wp-ms-users-list-table.php:218 +msgid "Table ordered by User Registered Date." +msgstr "Tabla ordenada por fecha de registro del usuario." + +#: wp-admin/includes/class-wp-ms-themes-list-table.php:348 +msgid "Table ordered by Theme Name." +msgstr "Tabla ordenada por nombre del tema." + +#: wp-admin/includes/class-wp-ms-sites-list-table.php:404 +msgid "Table ordered by Site Registered Date." +msgstr "Tabla ordenada por fecha de registro del sitio." + +#: wp-admin/includes/class-wp-ms-sites-list-table.php:403 +msgid "Table ordered by Last Updated." +msgstr "Tabla ordenada por última actualización." + +#: wp-admin/includes/class-wp-ms-sites-list-table.php:398 +msgid "Table ordered by Site Path." +msgstr "Tabla ordenada por ruta del sitio." + +#: wp-admin/includes/class-wp-ms-sites-list-table.php:395 +msgid "Table ordered by Site Domain Name." +msgstr "Tabla ordenada por nombre de dominio del sitio." + +#: wp-admin/includes/network.php:588 +msgid "Network configuration authentication keys" +msgstr "Claves de identificación para configurar la red" + +#. translators: %s: File name (wp-config.php, .htaccess or web.config). +#: wp-admin/includes/network.php:525 wp-admin/includes/network.php:664 +#: wp-admin/includes/network.php:726 +msgid "Network configuration rules for %s" +msgstr "Reglas de configuración de la red para %s" + +#: wp-admin/network/upgrade.php:142 +msgid "WordPress has been updated! Next and final step is to individually upgrade the sites in your network." +msgstr "¡WordPress se ha actualizado! A continuación, y como último paso, hay que actualizar individualmente los sitios de tu red." + +#: wp-admin/network/site-new.php:40 +msgid "Cannot create an empty site." +msgstr "No se puede crear un sitio vacío." + +#. translators: %s: wp-config.php +#: wp-admin/includes/network.php:496 +msgid "You should back up your existing %s file." +msgstr "Deberías hacer una copia de seguridad de tu archivo %s existente." + +#. translators: 1: wp-config.php, 2: .htaccess +#. translators: 1: wp-config.php, 2: web.config +#: wp-admin/includes/network.php:482 wp-admin/includes/network.php:489 +msgid "You should back up your existing %1$s and %2$s files." +msgstr "Deberías hacer una copia de seguridad de tus archivos existentes %1$s y %2$s." + +#. translators: %s: Theme name. +#: wp-admin/includes/class-wp-ms-themes-list-table.php:744 +msgid "Visit theme site for %s" +msgstr "Visita el sitio del tema %s" + +#. translators: %s: Theme name. +#: wp-admin/includes/class-wp-ms-themes-list-table.php:757 +msgid "Child theme of %s" +msgstr "Tema hijo de %s" + +#: wp-admin/network/site-info.php:201 +msgctxt "site" +msgid "Public" +msgstr "Público" + +#: wp-admin/includes/class-wp-ms-sites-list-table.php:297 +msgctxt "site" +msgid "Not spam" +msgstr "No es spam" + +#. translators: %s: Number of themes. +#: wp-admin/network/themes.php:438 +msgid "%s theme will no longer be auto-updated." +msgid_plural "%s themes will no longer be auto-updated." +msgstr[0] "%s tema ya no se actualizará automáticamente." +msgstr[1] "%s temas ya no se actualizarán automáticamente." + +#. translators: %s: Number of themes. +#: wp-admin/network/themes.php:427 +msgid "%s theme will be auto-updated." +msgid_plural "%s themes will be auto-updated." +msgstr[0] "%s tema se actualizará automáticamente." +msgstr[1] "%s temas se actualizarán automáticamente." + +#: wp-admin/network/themes.php:240 +msgid "Sorry, you are not allowed to change themes automatic update settings." +msgstr "Lo siento, no tienes permisos para cambiar ajustes de actualización automática de temas." + +#: wp-admin/includes/class-wp-ms-themes-list-table.php:322 +msgid "No themes are currently available." +msgstr "Actualmente no hay ningún tema disponible." + +#: wp-admin/includes/class-wp-ms-sites-list-table.php:503 +#: wp-admin/includes/class-wp-ms-sites-list-table.php:528 +#: wp-admin/includes/class-wp-ms-users-list-table.php:346 +msgid "Y/m/d g:i:s a" +msgstr "d/m/Y H:i:s" + +#. translators: %s: Documentation URL. +#: wp-admin/includes/network.php:679 +msgid "It seems your network is running with Nginx web server. Learn more about further configuration." +msgstr "Parece que tu red se está ejecutando con un servidor web Nginx. Aprende más sobre las configuraciones." + +#. translators: %s: Number of sites. +#: wp-admin/includes/class-wp-ms-sites-list-table.php:251 +msgctxt "sites" +msgid "Spam (%s)" +msgid_plural "Spam (%s)" +msgstr[0] "Spam (%s)" +msgstr[1] "Spam (%s)" + +#. translators: %s: Number of sites. +#: wp-admin/includes/class-wp-ms-sites-list-table.php:245 +msgid "Mature (%s)" +msgid_plural "Mature (%s)" +msgstr[0] "Antiguo (%s)" +msgstr[1] "Antiguos (%s)" + +#. translators: %s: Number of sites. +#: wp-admin/includes/class-wp-ms-sites-list-table.php:239 +msgid "Archived (%s)" +msgid_plural "Archived (%s)" +msgstr[0] "Archivado (%s)" +msgstr[1] "Archivados (%s)" + +#. translators: %s: Number of sites. +#: wp-admin/includes/class-wp-ms-sites-list-table.php:233 +msgid "Public (%s)" +msgid_plural "Public (%s)" +msgstr[0] "Público (%s)" +msgstr[1] "Públicos (%s)" + +#. translators: %s: Number of sites. +#: wp-admin/includes/class-wp-ms-sites-list-table.php:226 +msgctxt "sites" +msgid "All (%s)" +msgid_plural "All (%s)" +msgstr[0] "Todo (%s)" +msgstr[1] "Todos (%s)" + +#. translators: %s: Number of themes. +#: wp-admin/includes/class-wp-ms-themes-list-table.php:407 +msgctxt "themes" +msgid "Update Available (%s)" +msgid_plural "Update Available (%s)" +msgstr[0] "Actualización disponible (%s)" +msgstr[1] "Actualizaciones disponibles (%s)" + +#: wp-admin/includes/class-wp-ms-sites-list-table.php:652 +msgid "Main" +msgstr "Principal" + +#: wp-admin/network.php:69 wp-admin/network.php:82 +msgid "Documentation on the Network Screen" +msgstr "Documentación sobre la pantalla de la red" + +#. translators: %s: DO_NOT_UPGRADE_GLOBAL_TABLES +#: wp-admin/includes/network.php:120 +msgid "The constant %s cannot be defined when creating a network." +msgstr "La constante %s no se puede definir al crear una red." + +#: wp-admin/network/sites.php:222 +msgid "You are about to delete the following sites:" +msgstr "Estás a punto de borrar los siguientes sitios:" + +#: wp-admin/network/site-users.php:269 +msgid "User could not be added to this site." +msgstr "No se ha podido añadir al usuario a este sitio." + +#: wp-admin/network/site-new.php:287 +msgid "The username and a link to set the password will be mailed to this email address." +msgstr "El nombre de usuario y un enlace para establecer la contraseña se enviarán por correo electrónico a esta dirección de correo electrónico." + +#. translators: %s: New network admin email. +#: wp-admin/network/settings.php:177 +msgid "There is a pending change of the network admin email to %s." +msgstr "Hay un cambio pendiente del correo electrónico de administración de la red en %s." + +#: wp-admin/includes/network.php:352 +msgid "Sub-domain Installation" +msgstr "Instalación en subdominio" + +#: wp-admin/includes/network.php:321 wp-admin/includes/network.php:339 +msgid "Sub-directory Installation" +msgstr "Instalación en subdirectorio" + +#: wp-admin/includes/class-wp-ms-themes-list-table.php:950 +msgid "Active Child Theme" +msgstr "Tema hijo activo" + +#. translators: %s: File size in kilobytes. +#: wp-admin/network/settings.php:438 +msgid "%s KB" +msgstr "%s KB" + +#. translators: %s: Default network title. +#: wp-admin/includes/network.php:179 +msgid "%s Sites" +msgstr "%s sitios" + +#: wp-admin/network/themes.php:102 +msgid "Sorry, you are not allowed to delete themes for this site." +msgstr "Lo siento, no tienes permiso para borrar temas en este sitio." + +#: wp-admin/network/themes.php:14 +msgid "Sorry, you are not allowed to manage network themes." +msgstr "Lo siento, no tienes permiso para gestionar temas de la red." + +#: wp-admin/network/sites.php:349 +msgid "Sorry, you are not allowed to delete that site." +msgstr "Lo siento, no tienes permiso para borrar este sitio." + +#: wp-admin/network/site-themes.php:14 +msgid "Sorry, you are not allowed to manage themes for this site." +msgstr "Lo siento, no tienes permiso para gestionar temas en este sitio." + +#: wp-admin/network/site-new.php:17 +msgid "Sorry, you are not allowed to add sites to this network." +msgstr "Lo siento, no tienes permiso para añadir sitios a esta red." + +#: wp-admin/network/site-info.php:14 wp-admin/network/site-settings.php:14 +#: wp-admin/network/site-users.php:14 +msgid "Sorry, you are not allowed to edit this site." +msgstr "Lo siento no tienes permiso para editar este sitio." + +#: wp-admin/network/settings.php:385 +msgid "The email address of the first comment author on a new site." +msgstr "La dirección de correo electrónico del autor del primer comentario en cada nuevo sitio." + +#: wp-admin/network/settings.php:381 +msgid "First Comment Email" +msgstr "Correo electrónico del primer comentario" + +#. translators: This string should only be translated if wp-config-sample.php +#. is localized. You can check the localized release package or +#. https://i18n.svn.wordpress.org//branches//dist/wp-config-sample.php +#: wp-admin/includes/network.php:517 +msgid "That’s all, stop editing! Happy publishing." +msgstr "¡Eso es todo, deja de editar! Disfruta publicando." + +#. translators: 1: wp-config.php, 2: Location of wp-config file, 3: Translated +#. version of "That's all, stop editing! Happy publishing." +#: wp-admin/includes/network.php:509 +msgid "Add the following to your %1$s file in %2$s above the line reading %3$s:" +msgstr "Añade lo siguiente a tu archivo %1$s en %2$s por encima de la línea que dice %3$s:" + +#. translators: 1: Theme name, 2: Theme author. +#: wp-admin/network/themes.php:164 +msgctxt "theme" +msgid "%1$s by %2$s" +msgstr "%1$s por %2$s" + +#: wp-admin/network/site-new.php:229 +msgid "Only lowercase letters (a-z), numbers, and hyphens are allowed." +msgstr "Solo se permiten minúsculas (a-z), números y guiones." + +#. translators: %s: wp-config.php +#: wp-admin/includes/network.php:581 +msgid "These unique authentication keys are also missing from your %s file." +msgstr "Estas claves únicas de identificación también faltan en tu archivo %s." + +#. translators: %s: wp-config.php +#: wp-admin/includes/network.php:575 +msgid "This unique authentication key is also missing from your %s file." +msgstr "Esta clave única de identificación también falta en tu archivo %s." + +#. translators: 1: localhost, 2: localhost.localdomain +#: wp-admin/includes/network.php:326 +msgid "Because you are using %1$s, the sites in your WordPress network must use sub-directories. Consider using %2$s if you wish to use sub-domains." +msgstr "Como estás usando %1$s, los sitios de tu red WordPress deben usar subdirectorios. Si quieres usar subdominios, deberías utilizar %2$s." + +#. translators: %s: Host name. +#: wp-admin/includes/network.php:308 wp-admin/includes/network.php:368 +msgid "The internet address of your network will be %s." +msgstr "La dirección de internet de tu red será %s." + +#. translators: 1: Site URL, 2: Host name, 3: www. +#: wp-admin/includes/network.php:294 +msgid "You should consider changing your site domain to %1$s before enabling the network feature. It will still be possible to visit your site using the %3$s prefix with an address like %2$s but any links will not have the %3$s prefix." +msgstr "Antes de activar la característica de red, deberías plantearte cambiar el dominio de tu sitio a %1$s. Todavía será posible visitar tu sitio usando el prefijo %3$s con una dirección como %2$s, pero los enlaces no tendrán el prefijo %3$s." + +#: wp-admin/includes/network.php:242 +msgid "You cannot change this later." +msgstr "No podrás cambiar esto después." + +#: wp-admin/includes/network.php:241 +msgid "Please choose whether you would like sites in your WordPress network to use sub-domains or sub-directories." +msgstr "Por favor, elige si quieres que los sitios de tu red WordPress usen subdominios o subdirectorios." + +#. translators: 1: mod_rewrite, 2: mod_rewrite documentation URL, 3: Google +#. search for mod_rewrite. +#: wp-admin/includes/network.php:222 +msgid "If %1$s is disabled, ask your administrator to enable that module, or look at the Apache documentation or elsewhere for help setting it up." +msgstr "Si %1$s está desactivado, pide a tu administrador que active ese módulo o echa un vistazo a la documentación de Apache o en otro sitio para saber cómo configurarlo." + +#. translators: %s: mod_rewrite +#: wp-admin/includes/network.php:214 +msgid "It looks like the Apache %s module is not installed." +msgstr "Parece que el módulo de Apache %s no está instalado." + +#. translators: %s: mod_rewrite +#: wp-admin/includes/network.php:206 +msgid "Please make sure the Apache %s module is installed as it will be used at the end of this installation." +msgstr "Por favor, asegúrate de que el módulo de Apache %s está instalado, ya que se usará al final de esta instalación." + +#: wp-admin/includes/class-wp-ms-users-list-table.php:196 +#: wp-admin/includes/class-wp-ms-users-list-table.php:218 +msgctxt "user" +msgid "Registered" +msgstr "Registrado" + +#. translators: Number of users. +#: wp-admin/includes/class-wp-ms-users-list-table.php:159 +msgid "Super Admin (%s)" +msgid_plural "Super Admins (%s)" +msgstr[0] "Superadministrador (%s)" +msgstr[1] "Superadministradores (%s)" + +#: wp-admin/includes/class-wp-ms-users-list-table.php:117 +msgctxt "user" +msgid "Not spam" +msgstr "No es spam" + +#: wp-admin/includes/class-wp-ms-users-list-table.php:116 +msgctxt "user" +msgid "Mark as spam" +msgstr "Marcar como spam" + +#: wp-admin/includes/class-wp-ms-themes-list-table.php:750 +msgid "Visit Theme Site" +msgstr "Visitar el sitio del tema" + +#: wp-admin/includes/class-wp-ms-themes-list-table.php:707 +msgid "Broken Theme:" +msgstr "Tema roto:" + +#. translators: %s: Theme name. +#: wp-admin/includes/class-wp-ms-themes-list-table.php:613 +msgid "Network Disable %s" +msgstr "Desactivar para la red %s" + +#. translators: %s: Theme name. +#: wp-admin/includes/class-wp-ms-themes-list-table.php:610 +msgid "Disable %s" +msgstr "Desactivar %s" + +#. translators: %s: Theme name. +#: wp-admin/includes/class-wp-ms-themes-list-table.php:587 +msgid "Network Enable %s" +msgstr "Activar para la red %s" + +#. translators: %s: Theme name. +#: wp-admin/includes/class-wp-ms-themes-list-table.php:584 +msgid "Enable %s" +msgstr "Activar %s" + +#: wp-admin/includes/class-wp-ms-themes-list-table.php:472 +#: wp-admin/includes/class-wp-ms-themes-list-table.php:620 +msgid "Network Disable" +msgstr "Desactivar para la red" + +#. translators: %s: Number of themes. +#: wp-admin/includes/class-wp-ms-themes-list-table.php:416 +msgctxt "themes" +msgid "Broken (%s)" +msgid_plural "Broken (%s)" +msgstr[0] "Roto (%s)" +msgstr[1] "Rotos (%s)" + +#. translators: %s: Number of themes. +#: wp-admin/includes/class-wp-ms-themes-list-table.php:398 +msgctxt "themes" +msgid "Disabled (%s)" +msgid_plural "Disabled (%s)" +msgstr[0] "Desactivado (%s)" +msgstr[1] "Desactivados (%s)" + +#. translators: %s: Number of themes. +#: wp-admin/includes/class-wp-ms-themes-list-table.php:389 +msgctxt "themes" +msgid "Enabled (%s)" +msgid_plural "Enabled (%s)" +msgstr[0] "Activado (%s)" +msgstr[1] "Activados (%s)" + +#. translators: %s: Number of themes. +#: wp-admin/includes/class-wp-ms-themes-list-table.php:380 +msgctxt "themes" +msgid "All (%s)" +msgid_plural "All (%s)" +msgstr[0] "Todo (%s)" +msgstr[1] "Todos (%s)" + +#: wp-admin/includes/class-wp-ms-themes-list-table.php:320 +msgid "No themes found." +msgstr "No se han encontrado temas." + +#: wp-admin/includes/class-wp-ms-sites-list-table.php:796 +msgctxt "verb; site" +msgid "Archive" +msgstr "Archivar" + +#: wp-admin/includes/class-wp-ms-sites-list-table.php:785 +msgid "Unarchive" +msgstr "Restaurar" + +#: wp-admin/includes/class-wp-ms-sites-list-table.php:507 +msgid "Never" +msgstr "Nunca" + +#. translators: 1: Site title, 2: Site tagline. +#: wp-admin/includes/class-wp-ms-sites-list-table.php:479 +msgid "%1$s – %2$s" +msgstr "%1$s – %2$s" + +#: wp-admin/includes/class-wp-ms-sites-list-table.php:369 +#: wp-admin/includes/class-wp-ms-sites-list-table.php:404 +#: wp-admin/network/site-info.php:191 +msgctxt "site" +msgid "Registered" +msgstr "Registrado" + +#: wp-admin/includes/class-wp-ms-sites-list-table.php:368 +#: wp-admin/includes/class-wp-ms-sites-list-table.php:403 +#: wp-admin/network/site-info.php:195 +msgid "Last Updated" +msgstr "Última actualización" + +#: wp-admin/includes/class-wp-ms-sites-list-table.php:809 +msgctxt "site" +msgid "Not Spam" +msgstr "No es spam" + +#: wp-admin/includes/class-wp-ms-sites-list-table.php:296 +msgctxt "site" +msgid "Mark as spam" +msgstr "Marcar como spam" + +#: wp-admin/includes/class-wp-ms-sites-list-table.php:211 +msgid "No sites found." +msgstr "No se han encontrado sitios." + +#: wp-admin/includes/class-wp-ms-sites-list-table.php:41 +#: wp-admin/network/site-info.php:207 +msgid "Mature" +msgstr "Adulto" + +#: wp-admin/includes/class-wp-ms-sites-list-table.php:39 +#: wp-admin/includes/class-wp-ms-sites-list-table.php:820 +#: wp-admin/network/site-info.php:204 +msgctxt "site" +msgid "Spam" +msgstr "Spam" + +#: wp-admin/includes/class-wp-ms-sites-list-table.php:38 +#: wp-admin/network/site-info.php:203 +msgid "Archived" +msgstr "Archivado" + +#: wp-admin/network/site-users.php:396 wp-admin/network/user-new.php:149 +msgid "A password reset link will be sent to the user via email." +msgstr "Se enviará al usuario un enlace por correo electrónico para que pueda restablecer la contraseña." + +#. translators: 1: NOBLOGREDIRECT, 2: wp-config.php +#: wp-admin/network/settings.php:223 +msgid "If registration is disabled, please set %1$s in %2$s to a URL you will redirect visitors to if they visit a non-existent site." +msgstr "Si el registro de usuarios está desactivado, establece como valor de %1$s en %2$s una URL donde redirigir a los visitantes que accedan a un sitio inexistente." + +#. translators: 1: WP_ALLOW_MULTISITE, 2: wp-config.php +#: wp-admin/network.php:44 +msgid "You must define the %1$s constant as true in your %2$s file to allow creation of a Network." +msgstr "Debes establecer la constante %1$s como verdadero (true) en tu archivo %2$s para permitir la creación de una red." + +#: wp-admin/network/themes.php:346 +msgid "Themes list navigation" +msgstr "Navegación por la lista de temas" + +#: wp-admin/network/sites.php:51 +msgid "Sites list" +msgstr "Lista de sitios" + +#: wp-admin/network/sites.php:50 +msgid "Sites list navigation" +msgstr "Navegación por la lista de sitios" + +#: wp-admin/network/site-users.php:27 +msgid "Site users list" +msgstr "Lista de usuarios del sitio" + +#: wp-admin/network/site-users.php:26 +msgid "Site users list navigation" +msgstr "Navegación por la lista de usuarios del sitio" + +#: wp-admin/network/site-users.php:25 +msgid "Filter site users list" +msgstr "Filtrar la lista de usuarios del sitio" + +#: wp-admin/network/site-themes.php:24 +msgid "Site themes list" +msgstr "Lista de temas del sitio" + +#: wp-admin/network/site-themes.php:23 +msgid "Site themes list navigation" +msgstr "Navegación por el listado de temas" + +#: wp-admin/network/site-themes.php:22 +msgid "Filter site themes list" +msgstr "Filtrar la lista de temas" + +#: wp-admin/network/site-new.php:125 +msgid "The domain or path entered conflicts with an existing username." +msgstr "El dominio o la ruta entran en conflicto con un nombre de usuario ya existente." + +#: wp-admin/network/sites.php:88 +msgid "The requested action is not valid." +msgstr "La acción solicitada no es válida." + +#. translators: %s: Site URL. +#: wp-admin/network/sites.php:80 +msgid "You are about to mark the site %s as not mature." +msgstr "Estás a punto de marcar el sitio %s como para todos los públicos." + +#. translators: %s: Site URL. +#: wp-admin/network/sites.php:78 +msgid "You are about to mark the site %s as mature." +msgstr "Estás a punto de marcar el sitio %s como para adultos." + +#. translators: %s: Site URL. +#: wp-admin/network/sites.php:76 +msgid "You are about to delete the site %s." +msgstr "Estás a punto de borrar el sitio %s." + +#. translators: %s: Site URL. +#: wp-admin/network/sites.php:74 +msgid "You are about to mark the site %s as spam." +msgstr "Estás a punto de marcar el sitio %s como spam." + +#. translators: %s: Site URL. +#: wp-admin/network/sites.php:72 +msgid "You are about to unspam the site %s." +msgstr "Estás a punto de sacar el sitio %s de spam." + +#. translators: %s: Site URL. +#: wp-admin/network/sites.php:70 +msgid "You are about to archive the site %s." +msgstr "Estás apunto de archivar el sitio %s." + +#. translators: %s: Site URL. +#: wp-admin/network/sites.php:68 +msgid "You are about to unarchive the site %s." +msgstr "Estás a punto de restaurar el sitio %s." + +#: wp-admin/network/site-info.php:28 wp-admin/network/site-settings.php:28 +#: wp-admin/network/site-themes.php:53 wp-admin/network/site-users.php:46 +msgid "The requested site does not exist." +msgstr "El sitio solicitado no existe." + +#: wp-admin/includes/class-wp-ms-sites-list-table.php:397 +msgid "Path" +msgstr "Ruta" + +#: wp-admin/includes/class-wp-ms-sites-list-table.php:394 +msgid "Domain" +msgstr "dominio" + +#: wp-admin/network/user-new.php:29 wp-admin/network/users.php:242 +msgid "Documentation on Network Users" +msgstr "Documentación sobre usuarios de la red" + +#: wp-admin/network/themes.php:338 +msgid "Documentation on Network Themes" +msgstr "Documentación sobre temas de la red" + +#. translators: 1: Site URL, 2: Server error message. +#: wp-admin/network/upgrade.php:100 +msgid "Warning! Problem updating %1$s. Your server may not be able to connect to sites running on it. Error message: %2$s" +msgstr "¡Advertencia! Problema al actualizar %1$s. Parece que tu servidor no es capaz de conectar con los sitios activos en la red. Mensaje de error: %2$s" + +#. translators: %s: Number of themes. +#: wp-admin/network/themes.php:416 +msgid "%s theme deleted." +msgid_plural "%s themes deleted." +msgstr[0] "%s tema borrado." +msgstr[1] "%s temas borrados." + +#. translators: %s: Number of themes. +#: wp-admin/network/site-themes.php:214 wp-admin/network/themes.php:405 +msgid "%s theme disabled." +msgid_plural "%s themes disabled." +msgstr[0] "%s tema desactivado." +msgstr[1] "%s temas desactivados." + +#. translators: %s: Number of themes. +#: wp-admin/network/site-themes.php:197 wp-admin/network/themes.php:394 +msgid "%s theme enabled." +msgid_plural "%s themes enabled." +msgstr[0] "%s tema activado." +msgstr[1] "%s temas activados." + +#: wp-admin/network/themes.php:190 +msgid "Yes, delete these themes" +msgstr "Sí, borrar estos temas" + +#: wp-admin/network/themes.php:157 +msgid "You are about to remove the following themes:" +msgstr "Estás a punto de eliminar los siguientes temas:" + +#: wp-admin/network/themes.php:151 +msgid "These themes may be active on other sites in the network." +msgstr "Estos temas pueden estar activos en otros sitios de la red." + +#: wp-admin/network/themes.php:148 +msgid "Delete Themes" +msgstr "Borrar temas" + +#. translators: Hidden accessibility text. +#: wp-admin/network/settings.php:445 +msgid "Size in kilobytes" +msgstr "Tamaño en kilobytes" + +#: wp-admin/network/settings.php:427 +msgid "Allowed file types. Separate types by spaces." +msgstr "Tipos de archivos permitidos. Separa los tipos con espacios." + +#. translators: 1: File name (.htaccess or web.config), 2: File path. +#: wp-admin/includes/network.php:651 wp-admin/includes/network.php:713 +msgid "Add the following to your %1$s file in %2$s, replacing other WordPress rules:" +msgstr "Añade lo siguiente a tu archivo %1$s en %2$s, reemplazando cualquier otra regla de WordPress:" + +#: wp-admin/network/sites.php:114 wp-admin/network/sites.php:214 +msgid "Confirm your action" +msgstr "Confirma tu acción" + +#: wp-admin/network/users.php:232 +msgid "Hover over any user on the list to make the edit links appear. The Edit link on the left will take you to their Edit User profile page; the Edit link on the right by any site name goes to an Edit Site screen for that site." +msgstr "Pasa el cursor sobre cualquier usuario de las lista para que se muestren los enlaces de edición. El enlace de edición de la izquierda te llevará a la página de edición del perfil de usuario; el de la derecha de los nombres de los sitios te lleva a la pantalla de edición de ese sitio." + +#: wp-admin/network/index.php:44 +msgid "To search for a site, enter the path or domain." +msgstr "Para buscar un sitio, introduce la ruta o el dominio." + +#: wp-admin/network/index.php:43 +msgid "To search for a user, enter an email address or username. Use a wildcard to search for a partial username, such as user*." +msgstr "Para buscar un usuario, introduce una dirección de correo electrónico o un nombre de usuario. Utiliza comodines para buscar un nombre de usuario parcial, como usuario*." + +#: wp-admin/network/index.php:41 +msgid "To add a new site, click Create a New Site." +msgstr "Para añadir un sitio nuevo, haz clic en Crear un nuevo sitio." + +#: wp-admin/network/index.php:40 +msgid "To add a new user, click Create a New User." +msgstr "Para añadir un nuevo usuario, haz clic en Crear nuevo usuario." + +#: wp-admin/network/index.php:49 +msgid "Quick Tasks" +msgstr "Tareas rápidas" + +#: wp-admin/network/index.php:42 +msgid "To search for a user or site, use the search boxes." +msgstr "Para buscar un usuario o sitio, usa las cajas de búsqueda." + +#: wp-admin/network/index.php:39 +msgid "The Right Now widget on this screen provides current user and site counts on your network." +msgstr "El widget Ahora mismo de esta pantalla ofrece contadores al usuario y sitio actual de tu red." + +#: wp-admin/network/index.php:29 +msgid "Modify global network settings" +msgstr "Modifica las opciones globales de la red" + +#: wp-admin/network/index.php:28 +msgid "Update your network" +msgstr "Actualiza tu red" + +#: wp-admin/network/index.php:27 +msgid "Install and activate themes or plugins" +msgstr "Instala y activa temas o plugins" + +#: wp-admin/network/index.php:26 +msgid "Add and manage sites or users" +msgstr "Añade y gestiona sitios o usuarios" + +#: wp-admin/network/index.php:25 +msgid "From here you can:" +msgstr "Desde aquí puedes:" + +#: wp-admin/network/index.php:24 +msgid "Welcome to your Network Admin. This area of the Administration Screens is used for managing all aspects of your Multisite Network." +msgstr "Bienvenido a la administración de la red. Este área de las pantallas de administración se utiliza para gestionar todos los aspectos de tu red multisitio." + +#: wp-admin/network/upgrade.php:29 +msgid "Only use this screen once you have updated to a new version of WordPress through Updates/Available Updates (via the Network Administration navigation menu or the Toolbar). Clicking the Upgrade Network button will step through each site in the network, five at a time, and make sure any database updates are applied." +msgstr "Usa solo esta pantalla una vez hayas actualizado a una nueva versión de WordPress desde Actualizaciones/Actualizaciones disponibles (en el menú de navegación o barra de administración de la red). Al hacer clic en el botón Actualizar red, se empezará a actualizar sitio a sitio de la red, cinco cada vez, asegurándose de que se actualizan las bases de datos." + +#: wp-admin/network/menu.php:51 wp-admin/network/upgrade.php:21 +#: wp-admin/network/upgrade.php:48 wp-admin/network/upgrade.php:146 +msgid "Upgrade Network" +msgstr "Actualizar la red" + +#: wp-admin/includes/network.php:277 wp-admin/includes/network.php:657 +#: wp-admin/includes/network.php:719 +msgid "Subdirectory networks may not be fully compatible with custom wp-content directories." +msgstr "Las redes en subdirectorio puede que no sean completamente compatibles con directorios wp-content personalizados." + +#: wp-admin/network.php:64 +msgid "Add the designated lines of code to wp-config.php (just before /*...stop editing...*/) and .htaccess (replacing the existing WordPress rules)." +msgstr "Añade las líneas de código designadas a wp-config.php (justo antes de /*...para de editar...*/) y a .htaccess (reemplazando las reglas existentes de WordPress)." + +#: wp-admin/network/settings.php:457 +msgid "Language Settings" +msgstr "Ajustes de idioma" + +#: wp-admin/network/settings.php:249 +msgid "Allow site administrators to add new users to their site via the \"Users → Add User\" page" +msgstr "Permite a los administradores de sitio añadir nuevos usuarios a su sitio a través de la página «Usuarios → Añadir nuevo»" + +#: wp-admin/network/settings.php:58 +msgid "Super admins can no longer be added on the Options screen. You must now go to the list of existing users on Network Admin > Users and click on Username or the Edit action link below that name. This goes to an Edit User page where you can check a box to grant super admin privileges." +msgstr "Los super administadores ya no pueden añadirse en la pantalla de Ajustes. Ahora debes ir a la lista de usuarios existentes en Administrar red > Usuarios y hacer clic en el enlace de acción de Usuario o Editar debajo del nombre. Esto te lleva a una página de Editar usuario en la que puedes marcar una casilla que le dará privilegios de Super administrador." + +#: wp-admin/network/site-users.php:293 +msgid "Enter the username and email." +msgstr "Introduce el nombre de usuario y correo electrónico." + +#: wp-admin/network/site-users.php:290 +msgid "User created." +msgstr "Usuario creado." + +#: wp-admin/network/site-users.php:286 +msgid "Select a user to remove." +msgstr "Elige un usuario para eliminarlo." + +#: wp-admin/network/site-users.php:279 +msgid "Select a user to change role." +msgstr "Elige un usuario para cambiar su perfil." + +#: wp-admin/network/site-users.php:272 +msgid "Enter the username of an existing user." +msgstr "Introduce el nombre de usuario de un usuario existente." + +#: wp-admin/network/site-users.php:266 +msgid "User is already a member of this site." +msgstr "El usuario ya es miembro de este sitio." + +#: wp-admin/network/site-settings.php:78 +msgid "Site options updated." +msgstr "Opciones del sitio actualizadas." + +#. translators: 1: Dashboard URL, 2: Network admin edit URL. +#: wp-admin/network/site-new.php:174 +msgid "Site added. Visit Dashboard or Edit Site" +msgstr "Sitio añadido. Visita el escritorio o edita el sitio" + +#: wp-admin/network/site-new.php:25 +msgid "This screen is for Super Admins to add new sites to the network. This is not affected by the registration settings." +msgstr "Esta pantalla es para que los Super administradores añadan nuevos sitios a la red. No le afectan los ajustes de registro." + +#: wp-admin/network/site-info.php:129 +msgid "Site info updated." +msgstr "Información del sitio actualizada." + +#: wp-admin/network/themes.php:446 +msgid "You cannot delete a theme while it is active on the main site." +msgstr "No puedes borrar un tema si está activo en el sitio principal." + +#: wp-admin/network/themes.php:316 +msgid "Themes can be enabled on a site by site basis by the network admin on the Edit Site screen (which has a Themes tab); get there via the Edit action link on the All Sites screen. Only network admins are able to install or edit themes." +msgstr "Los temas puede activarlos el administrador de la red sitio a sitio en la pantalla de Editar sitio (que tiene una pestaña Temas); puedes llegar ahí desde el enlace de acción Editar de la pantalla Todos los sitios. Solo los administradores de red pueden instalar o editar temas. " + +#: wp-admin/network/themes.php:197 +msgid "No, return me to the theme list" +msgstr "No, devuélveme a la lista de temas" + +#: wp-admin/network/themes.php:188 +msgid "Yes, delete this theme" +msgstr "Sí, borrar este tema" + +#: wp-admin/network/themes.php:174 +msgid "Are you sure you want to delete these themes?" +msgstr "¿Seguro que quieres borrar estos temas?" + +#: wp-admin/network/themes.php:146 +msgid "You are about to remove the following theme:" +msgstr "Estás a punto de eliminar el siguiente tema:" + +#: wp-admin/network/themes.php:140 +msgid "This theme may be active on other sites in the network." +msgstr "Este tema podría estar activo en otros sitios de la red." + +#: wp-admin/network/themes.php:137 +msgid "Delete Theme" +msgstr "Borrar tema" + +#: wp-admin/network/site-themes.php:237 +msgid "Network enabled themes are not shown on this screen." +msgstr "Los temas activos para la red no se muestran en esta pantalla." + +#: wp-admin/network/site-themes.php:227 wp-admin/network/themes.php:443 +msgid "No theme selected." +msgstr "Ningún tema seleccionado." + +#: wp-admin/network/site-themes.php:211 wp-admin/network/themes.php:401 +msgid "Theme disabled." +msgstr "Tema desactivado." + +#: wp-admin/network/site-themes.php:194 wp-admin/network/themes.php:390 +msgid "Theme enabled." +msgstr "Tema activado" + +#. translators: %s: Site title. +#: wp-admin/network/site-info.php:135 wp-admin/network/site-settings.php:84 +#: wp-admin/network/site-themes.php:171 wp-admin/network/site-users.php:220 +msgid "Edit Site: %s" +msgstr "Editar el sitio: %s" + +#: wp-admin/network/site-info.php:23 wp-admin/network/site-settings.php:23 +#: wp-admin/network/site-themes.php:46 wp-admin/network/site-users.php:41 +msgid "Invalid site ID." +msgstr "ID de sitio no válido." + +#. translators: %s: Site URL. +#: wp-admin/network/sites.php:189 +msgid "Sorry, you are not allowed to delete the site %s." +msgstr "Lo siento, no tienes permiso para borrar el sitio %s." + +#: wp-admin/network/sites.php:37 +msgid "Delete Permanently which is a permanent action after the confirmation screen." +msgstr "Borrar permanentemente es una acción permanente después de la pantalla de confirmación." + +#: wp-admin/network/sites.php:35 +msgid "Dashboard leads to the Dashboard for that site." +msgstr "Escritorio te lleva al escritorio de ese sitio." + +#: wp-admin/network/sites.php:34 +msgid "An Edit link to a separate Edit Site screen." +msgstr "Un enlace de editar que lleva la pantalla de Editar sitio." + +#: wp-admin/network/sites.php:31 +msgid "Add Site takes you to the screen for adding a new site to the network. You can search for a site by Name, ID number, or IP address. Screen Options allows you to choose how many sites to display on one page." +msgstr "«Añadir sitio» te lleva a la pantalla para añadir un nuevo sitio a la red. Puedes buscar un sitio por nombre, número de identificación o dirección IP. Las opciones de pantalla te permite elegir cuántos sitios mostrar en una página." + +#: wp-admin/network/settings.php:247 +msgid "Add Users" +msgstr "Añadir usuarios" + +#: wp-admin/network/user-new.php:55 +msgid "Cannot add user." +msgstr "No se ha podido añadir el usuario." + +#: wp-admin/network/user-new.php:22 +msgid "Add User will set up a new user account on the network and send that person an email with username and password." +msgstr "Añadir usuario configurará una nueva cuenta de usuario en la red y enviará a esa persona un correo electrónico con su usuario y contraseña." + +#: wp-admin/network/menu.php:46 +msgid "Updates" +msgstr "Actualizaciones" + +#: wp-admin/network/menu.php:116 wp-admin/network/settings.php:21 +msgid "Network Settings" +msgstr "Ajustes de la red" + +#: wp-admin/network/menu.php:85 +msgid "Installed Themes" +msgstr "Temas instalados" + +#: wp-admin/network/menu.php:57 +msgid "All Sites" +msgstr "Todos los sitios" + +#: wp-admin/includes/network.php:740 +msgid "Once you complete these steps, your network is enabled and configured. You will have to log in again." +msgstr "Una vez completes estos pasos, tu red estará activa y configurada. Tendrás que acceder de nuevo." + +#: wp-admin/includes/network.php:586 +msgid "To make your installation more secure, you should also add:" +msgstr "Para hacer más segura tu instalación, también deberías añadir:" + +#: wp-admin/includes/network.php:471 +msgid "Complete the following steps to enable the features for creating a network of sites." +msgstr "Completa los siguientes pasos para activar las características para crear una red de sitios." + +#: wp-admin/includes/network.php:470 +msgid "Enabling the Network" +msgstr "Activando la red" + +#: wp-admin/includes/network.php:459 +msgid "Please complete the configuration steps. To create a new network, you will need to empty or remove the network database tables." +msgstr "Por favor, completa los pasos de configuración. Para crear una nueva red, tendrás que vaciar o eliminar las tablas de la base de datos de la red." + +#: wp-admin/includes/network.php:453 +msgid "An existing WordPress network was detected." +msgstr "Se ha detectado una red WordPress existente." + +#: wp-admin/includes/network.php:447 +msgid "The original configuration steps are shown here for reference." +msgstr "Los pasos de la configuración original se muestran aquí como referencia." + +#: wp-admin/includes/network.php:389 +msgid "Your email address." +msgstr "Tu dirección de correo electrónico." + +#: wp-admin/includes/network.php:380 +msgid "What would you like to call your network?" +msgstr "¿Cómo te gustaría llamar a tu red?" + +#: wp-admin/includes/network.php:376 wp-admin/network/settings.php:159 +msgid "Network Title" +msgstr "Título de la red" + +#: wp-admin/includes/network.php:355 +msgid "Because your installation is not new, the sites in your WordPress network must use sub-domains." +msgstr "Como tu instalación no es nueva, los sitios de tu red WordPress deben usar subdominios." + +#: wp-admin/includes/network.php:342 +msgid "Because your installation is in a directory, the sites in your WordPress network must use sub-directories." +msgstr "Como tu instalación está hecha en un directorio, los sitios de tu red WordPress deben usar subdirectorios." + +#: wp-admin/includes/network.php:332 wp-admin/includes/network.php:345 +#: wp-admin/includes/network.php:356 +msgid "The main site in a sub-directory installation will need to use a modified permalink structure, potentially breaking existing links." +msgstr "El sitio principal en una instalación en subdirectorios tendrá que usar una estructura de enlaces permanentes modificada, lo que es posible que rompa enlaces actuales." + +#: wp-admin/includes/network.php:317 +msgid "Network Details" +msgstr "Detalles de la red" + +#: wp-admin/includes/network.php:289 wp-admin/includes/network.php:303 +#: wp-admin/includes/network.php:363 +msgid "Server Address" +msgstr "Dirección del servidor" + +#. translators: 1: Host name. +#: wp-admin/includes/network.php:264 +msgctxt "subdirectory examples" +msgid "like %1$s/site1 and %1$s/site2" +msgstr "como %1$s/sitio1 y %1$s/sitio2" + +#: wp-admin/includes/network.php:259 +msgid "Sub-directories" +msgstr "Subdirectorios" + +#. translators: 1: Host name. +#: wp-admin/includes/network.php:252 +msgctxt "subdomain examples" +msgid "like site1.%1$s and site2.%1$s" +msgstr "como sitio1.%1$s y sitio2.%1$s" + +#: wp-admin/includes/network.php:247 +msgid "Sub-domains" +msgstr "Subdominios" + +#: wp-admin/includes/network.php:243 +msgid "You will need a wildcard DNS record if you are going to use the virtual host (sub-domain) functionality." +msgstr "Necesitarás un registro DNS comodín si vas a usar la funcionalidad de alojamiento virtual (subdominio)." + +#: wp-admin/includes/network.php:240 +msgid "Addresses of Sites in your Network" +msgstr "Direcciones de los sitios de tu red" + +#: wp-admin/includes/network.php:189 +msgid "Fill in the information below and you’ll be on your way to creating a network of WordPress sites. Configuration files will be created in the next step." +msgstr "Rellena la siguiente información y estarás a un paso de crear una red de sitios WordPress. Los archivos de configuración se crearán en el siguiente paso." + +#: wp-admin/includes/network.php:188 +msgid "Welcome to the Network installation process!" +msgstr "¡Bienvenido al proceso de instalación de la red!" + +#: wp-admin/includes/network.php:161 +msgid "The network could not be created." +msgstr "No se ha podido crear la red." + +#: wp-admin/includes/network.php:146 +msgid "Once the network is created, you may reactivate your plugins." +msgstr "Una vez se haya creado la red, ya podrás reactivar tus plugins." + +#. translators: %s: URL to Plugins screen. +#: wp-admin/includes/network.php:141 +msgid "Please deactivate your plugins before enabling the Network feature." +msgstr "Por favor, desactiva tus plugins antes de activar la característica de red." + +#: wp-admin/network.php:74 +msgid "Network" +msgstr "Red" + +#: wp-admin/network.php:66 +msgid "The choice of subdirectory sites is disabled if this setup is more than a month old because of permalink problems with “/blog/” from the main site. This disabling will be addressed in a future version." +msgstr "La elección de sitios como subdirectorios está desactivada si esta instalación es de hace más de un mes para evitar problemas con la estructura «/blog/» de los enlaces permanentes del sitio principal. Se solucionará esta desactivación en futuras versiones de WordPress." + +#: wp-admin/network.php:65 +msgid "Once you add this code and refresh your browser, multisite should be enabled. This screen, now in the Network Admin navigation menu, will keep an archive of the added code. You can toggle between Network Admin and Site Admin by clicking on the Network Admin or an individual site name under the My Sites dropdown in the Toolbar." +msgstr "Una vez añadido este código y recargado tu navegador, el multisitio debería estar activo. Esta pantalla, una vez que se convierta en el menú de navegación del administrador de la red, mantendrá un archivo del código añadido. Puedes alternar entre Administrador de red y Administración del sitio haciendo clic en el administrador de red o en Mis sitios en el menú desplegable en la barra de herramientas." + +#: wp-admin/network.php:63 +msgid "The next screen for Network Setup will give you individually-generated lines of code to add to your wp-config.php and .htaccess files. Make sure the settings of your FTP client make files starting with a dot visible, so that you can find .htaccess; you may have to create this file if it really is not there. Make backup copies of those two files." +msgstr "La siguiente pantalla para configurar la red te ofrecerá líneas de código autogeneradas para ti, para que las añadas a tus archivos wp-config.php y .htaccess. Asegúrate de que los ajustes de tu cliente FTP permiten que los ficheros con un punto delante se muestren, para que puedas ver el fichero .htaccess; puede que tengas que crear este archivo, si no estuviera ya creado. Haz copias de seguridad de esos dos archivos." + +#: wp-admin/network.php:62 +msgid "Choose subdomains or subdirectories; this can only be switched afterwards by reconfiguring your installation. Fill out the network details, and click Install. If this does not work, you may have to add a wildcard DNS record (for subdomains) or change to another setting in Permalinks (for subdirectories)." +msgstr "Elige subdominios o subdirectorios. Esto solo puede cambiarse posteriormente reconfigurando tu instalación. Completa los detalles de la red y haz clic en instalar. Si esto no funciona, deberás añadir un registro DNS con comodín (para los subdominios) o cambiar a otro ajuste de enlaces permanentes (para los subdirectorios)." + +#: wp-admin/network.php:61 +msgid "This screen allows you to configure a network as having subdomains (site1.example.com) or subdirectories (example.com/site1). Subdomains require wildcard subdomains to be enabled in Apache and DNS records, if your host allows it." +msgstr "Esta pantalla te permite configurar una red con subdominios (sitio1.ejemplo.com) o subdirectorios (ejemplo.com/sitio1). Los subdominios requieren tener activados los comodines de subdominios en la configuración de Apache y en los registros DNS, si tu alojamiento lo permite." + +#: wp-admin/network.php:57 +msgid "Create a Network of WordPress Sites" +msgstr "Crear una red de sitios de WordPress" + +#: wp-admin/network.php:29 +msgid "The Network creation panel is not for WordPress MU networks." +msgstr "El panel de creación de la Red no es para redes de WordPress MU." + +#. translators: %s: User login. +#: wp-admin/network/users.php:87 +msgid "Warning! User cannot be modified. The user %s is a network administrator." +msgstr "¡Atención! El usuario no puede modificarse. El usuario %s es un administrador de la red." + +#: wp-admin/network/site-new.php:26 +msgid "If the admin email for the new site does not exist in the database, a new user will also be created." +msgstr "Si el correo electrónico del administrador para el nuevo sitio no existe en la base de datos, también se creará un nuevo usuario." + +#: wp-admin/network/sites.php:36 +msgid "Flag for Deletion, Archive, and Spam which lead to confirmation screens. These actions can be reversed later." +msgstr "Marcar para desactivar, archivar y enviar a spam te lleva a pantallas de confirmación. Estas acciones pueden revertirse más tarde." + +#: wp-admin/network/sites.php:33 +msgid "Hovering over each site reveals seven options (three for the primary site):" +msgstr "Al pasar el cursor sobre cada sitio se muestran siete opciones (tres para el sitio primario):" + +#: wp-admin/network/settings.php:52 +msgid "Operational settings has fields for the network’s name and admin email." +msgstr "Los ajustes operacionales tienen campos para el nombre de red y el correo electrónico del administrador." + +#: wp-admin/network/users.php:235 +msgid "The bulk action will permanently delete selected users, or mark/unmark those selected as spam. Spam users will have posts removed and will be unable to sign up again with the same email addresses." +msgstr "La acción en lote borrará permanentemente los usuarios seleccionados o marca/desmarca los seleccionados como spam. Se eliminarán las entradas de los usuarios spam y no podrán acceder de nuevo con la misma dirección de correo electrónico. " + +#: wp-admin/network/users.php:233 +msgid "You can also go to the user’s profile page by clicking on the individual username." +msgstr "También puedes ir a la página de perfil del usuario haciendo clic en el nombre de usuario concreto." + +#: wp-admin/network/settings.php:55 +msgid "Upload settings control the size of the uploaded files and the amount of available upload space for each site. You can change the default value for specific sites when you edit a particular site. Allowed file types are also listed (space separated only)." +msgstr "Los ajustes de subida controlan el tamaño para la subida de archivos y la cantidad de espacio de subida disponible para cada sitio. Puedes cambiar el valor por defecto para sitios específicos cuando edites un sitio en concreto. También se listan los tipos de archivo permitidos (separados solo por espacios)." + +#: wp-admin/network/users.php:236 +msgid "You can make an existing user an additional super admin by going to the Edit User profile page and checking the box to grant that privilege." +msgstr "Puedes convertir en super administrador a un usuario existente yendo a la página de edición del perfil del usuario y marcando la casilla que le da este privilegio." + +#: wp-admin/network/user-new.php:23 +msgid "Users who are signed up to the network without a site are added as subscribers to the main or primary dashboard site, giving them profile pages to manage their accounts. These users will only see Dashboard and My Sites in the main navigation until a site is created for them." +msgstr "Los usuarios que se registran en la red sin crear un sitio son añadidos al escritorio del sitio principal como suscriptores, dándoles unas páginas de perfil para gestionar sus cuentas. Estos usuarios solo verán el escritorio y Mis sitios en la navegación principal hasta que creen su propio sitio." + +#: wp-admin/network/users.php:234 +msgid "You can sort the table by clicking on any of the table headings and switch between list and excerpt views by using the icons above the users list." +msgstr "Puedes ordenar la tabla haciendo clic en cualquiera de los encabezados de la tabla y cambiando entre vista de listado y de extracto con los iconos de la parte superior de la lista de usuarios." + +#: wp-admin/network/users.php:231 +msgid "This table shows all users across the network and the sites to which they are assigned." +msgstr "Esta tabla muestra todos los usuarios de la red y los sitios que tienen asignados." + +#: wp-admin/network/upgrade.php:31 +msgid "If this process fails for any reason, users logging in to their sites will force the same update." +msgstr "Si este proceso falla por cualquier circunstancia, cuando los usuarios accedan a su sitio forzaran esta misma actualización." + +#: wp-admin/network/upgrade.php:30 +msgid "If a version update to core has not happened, clicking this button will not affect anything." +msgstr "Si no se ha producido una actualización de la versión del núcleo, hacer clic en este botón no afectará a nada." + +#: wp-admin/network/themes.php:315 +msgid "If the network admin disables a theme that is in use, it can still remain selected on that site. If another theme is chosen, the disabled theme will not appear in the site’s Appearance > Themes screen." +msgstr "Si el administrador de la red desactiva un tema que está en uso, podrá continuar seleccionado en el sitio que lo tenga en uso. Si en el sitio selecciona otro tema, el tema ya no le aparecerá en la pantalla Apariencia > Temas." + +#: wp-admin/network/themes.php:314 +msgid "This screen enables and disables the inclusion of themes available to choose in the Appearance menu for each site. It does not activate or deactivate which theme a site is currently using." +msgstr "Esta pantalla activa o desactiva la inclusión en la disponibilidad de Temas para los sitios en el menú Apariencia de cada sitio. No activa o desactiva qué temas se están usando en cada sitio." + +#: wp-admin/network/sites.php:32 +msgid "This is the main table of all sites on this network. Switch between list and excerpt views by using the icons above the right side of the table." +msgstr "Esta es la tabla principal de todos los sitios de la red. Cambia de vista listado o fragmento usando los iconos de la parte superior derecha de la tabla." + +#: wp-admin/network/settings.php:57 +msgid "Menu setting enables/disables the plugin menus from appearing for non super admins, so that only super admins, not site admins, have access to activate plugins." +msgstr "En ajustes de menú se activa o desactiva que aparezca o no el menú plugins para los usuarios que no son super administradores. Es decir, solo los super administradores, no los administradores, tienen acceso a los plugins." + +#: wp-admin/network/settings.php:54 +msgid "New site settings are defaults applied when a new site is created in the network. These include welcome email for when a new site or user account is registered, and what᾿s put in the first post, page, comment, comment author, and comment URL." +msgstr "Los ajustes para nuevos sitios se aplican cuando se crea un nuevo sitio en la red. Esto incluye el correo electrónico de bienvenida, cuando se registra un nuevo sitio, o la cuenta de usuario y qué poner en la primera entrada, página, comentario, autor del comentario y la URL del comentario." + +#: wp-admin/network/settings.php:53 +msgid "Registration settings can disable/enable public signups. If you let others sign up for a site, install spam plugins. Spaces, not commas, should separate names banned as sites for this network." +msgstr "Los ajustes de registro pueden activar/desactivar el registro público. Si permites que la gente registre un sitio, instala un plugin contra el spam. Espacios, sin comas, deben separar los nombres para sitios no permitidos para esta red." + +#: wp-admin/network/settings.php:51 +msgid "This screen sets and changes options for the network as a whole. The first site is the main site in the network and network options are pulled from that original site’s options." +msgstr "Esta pantalla establece y cambia las opciones para toda la red. El primer sitio es el sitio principal de la red y las opciones de red serán pasadas desde las opciones del sitio original." + +#. translators: %s: Reserved names list. +#: wp-admin/network/site-new.php:59 +msgid "The following words are reserved for use by WordPress functions and cannot be used as site names: %s" +msgstr "Las siguientes palabras están reservadas para su uso en las funciones de WordPress y no se pueden usar como nombres de sitios: %s" + +#: wp-admin/network/upgrade.php:126 +msgid "If your browser does not start loading the next page automatically, click this link:" +msgstr "Si tu navegador no empieza a cargar automáticamente la siguiente página, haz clic en este enlace:" + +#: wp-admin/network/settings.php:312 +msgid "If you want to ban domains from site registrations. One domain per line." +msgstr "Si quieres prohibir dominios del registro de sitios. Un dominio por línea." + +#: wp-admin/network/settings.php:292 +msgid "If you want to limit site registrations to certain domains. One domain per line." +msgstr "Si quieres limitar el registro de sitios a determinados dominios. Un dominio por línea." + +#: wp-admin/network/users.php:266 +msgid "Users removed from spam." +msgstr "Usuarios eliminados de spam." + +#: wp-admin/network/sites.php:367 +msgid "Site marked as spam." +msgstr "Sitio marcado como spam." + +#: wp-admin/network/sites.php:364 +msgid "Site removed from spam." +msgstr "Sitio eliminado de spam." + +#: wp-admin/network/sites.php:340 +msgid "Sites marked as spam." +msgstr "Sitios marcados como spam." + +#: wp-admin/network/sites.php:337 +msgid "Sites removed from spam." +msgstr "Sitios eliminados de spam." + +#: wp-admin/network/users.php:269 +msgid "Users deleted." +msgstr "Usuarios borrados." + +#: wp-admin/network/users.php:263 +msgid "Users marked as spam." +msgstr "Usuario marcado como spam." + +#: wp-admin/network/sites.php:355 +msgid "Site unarchived." +msgstr "Sitio restaurado." + +#: wp-admin/network/sites.php:352 +msgid "Site archived." +msgstr "Sitio archivado." + +#: wp-admin/network/sites.php:104 wp-admin/network/sites.php:252 +msgid "Sorry, you are not allowed to change the current site." +msgstr "Lo siento, no tienes permiso para cambiar el sitio actual." + +#: wp-admin/network/site-new.php:130 +msgid "There was an error creating the user." +msgstr "Ha habido un error al crear el usuario." + +#: wp-admin/network/settings.php:423 +msgid "Upload file types" +msgstr "Tipos de archivo permitidos" + +#. translators: %s: Number of megabytes to limit uploads to. +#: wp-admin/network/settings.php:408 +msgid "Limit total size of files uploaded to %s MB" +msgstr "Tamaño máximo de espacio para archivos subidos %s MB" + +#: wp-admin/network/settings.php:394 +msgid "The URL for the first comment on a new site." +msgstr "La URL para el primer comentario en un nuevo sitio." + +#: wp-admin/network/settings.php:376 +msgid "The author of the first comment on a new site." +msgstr "El autor del primer comentario en un sitio nuevo." + +#: wp-admin/network/settings.php:367 +msgid "The first comment on a new site." +msgstr "El primer comentario en un sitio nuevo." + +#: wp-admin/network/settings.php:357 +msgid "The first page on a new site." +msgstr "La primera página en un sitio nuevo." + +#: wp-admin/network/settings.php:347 +msgid "The first post on a new site." +msgstr "La primera entrada en un sitio nuevo." + +#: wp-admin/network/upgrade.php:75 +msgid "All done!" +msgstr "¡Todo hecho!" + +#: wp-admin/network/settings.php:217 +msgid "Both sites and user accounts can be registered" +msgstr "Pueden registrarse sitios y cuentas de usuario" + +#: wp-admin/network/settings.php:216 +msgid "Logged in users may register new sites" +msgstr "Los usuarios conectados pueden registrar sitios nuevos" + +#: wp-admin/network/settings.php:215 +msgid "User accounts may be registered" +msgstr "Se pueden crear cuentas de usuario." + +#: wp-admin/network/settings.php:214 +msgid "Registration is disabled" +msgstr "El registro está desactivado" + +#: wp-admin/network/settings.php:509 +msgid "Enable administration menus" +msgstr "Activar menús de administración" + +#: wp-admin/network/settings.php:399 +msgid "Upload Settings" +msgstr "Ajustes de subidas" + +#: wp-admin/network/settings.php:318 +msgid "New Site Settings" +msgstr "Ajustes para sitios nuevos" + +#: wp-admin/network/settings.php:200 +msgid "Registration Settings" +msgstr "Ajustes de registro" + +#: wp-admin/network/settings.php:156 +msgid "Operational Settings" +msgstr "Ajustes operacionales" + +#: wp-admin/network/site-new.php:95 +msgid "Missing email address." +msgstr "Falta la dirección de correo electrónico." + +#: wp-admin/network/site-new.php:91 +msgid "Missing or invalid site address." +msgstr "La dirección del sitio no está o no es válida." + +#: wp-admin/network/upgrade.php:126 +msgid "Next Sites" +msgstr "Siguientes sitios" + +#: wp-admin/network/settings.php:402 +msgid "Site upload space" +msgstr "Espacio de subidas para el sitio" + +#: wp-admin/network/settings.php:327 +msgid "The welcome email sent to new site owners." +msgstr "El correo electrónico de bienvenida enviado a los dueños de sitios nuevos." + +#: wp-admin/network/settings.php:267 +msgid "Users are not allowed to register these sites. Separate names by spaces." +msgstr "Los usuarios no tienen permiso para crear estos sitios. Separa los nombres mediante espacios." + +#: wp-admin/network/settings.php:242 +msgid "Send the network admin an email notification every time someone registers a site or user account" +msgstr "Envía al administrador de la red un correo electrónico cada vez que alguien se registre o registre un sitio" + +#: wp-admin/includes/network.php:385 wp-admin/network/settings.php:166 +msgid "Network Admin Email" +msgstr "Correo electrónico del administrador de la red" + +#: wp-admin/network/site-new.php:287 +msgid "A new user will be created if the above email address is not in the database." +msgstr "Se creará un nuevo usuario si la dirección de correo electrónico anterior no está en la base de datos." + +#: wp-admin/network/site-new.php:279 +msgid "Admin Email" +msgstr "Correo electrónico del administrador" + +#: wp-admin/network/menu.php:58 wp-admin/network/site-new.php:182 +#: wp-admin/network/site-new.php:192 wp-admin/network/site-new.php:299 +#: wp-admin/network/sites.php:405 +msgid "Add Site" +msgstr "Añadir sitio" + +#: wp-admin/network/settings.php:460 +msgid "Default Language" +msgstr "Idioma por defecto" + +#: wp-admin/network/settings.php:433 +msgid "Max upload file size" +msgstr "Tamaño máximo de archivo" + +#: wp-admin/network/settings.php:390 +msgid "First Comment URL" +msgstr "URL del primer comentario" + +#: wp-admin/network/settings.php:372 +msgid "First Comment Author" +msgstr "Autor del primer comentario" + +#: wp-admin/network/settings.php:362 +msgid "First Comment" +msgstr "Primer comentario" + +#: wp-admin/network/settings.php:352 +msgid "First Page" +msgstr "Primera página" + +#: wp-admin/network/settings.php:337 +msgid "The welcome email sent to new users." +msgstr "El correo electrónico de bienvenida enviado a los nuevos usuarios." + +#: wp-admin/network/settings.php:332 +msgid "Welcome User Email" +msgstr "Correo electrónico de bienvenida al usuario" + +#: wp-admin/network/settings.php:322 +msgid "Welcome Email" +msgstr "Correo electrónico de bienvenida" + +#: wp-admin/network/settings.php:298 +msgid "Banned Email Domains" +msgstr "Dominios de correo electrónico no permitidos" + +#: wp-admin/network/settings.php:273 +msgid "Limited Email Registrations" +msgstr "Limitar el registro por correo electrónico" + +#: wp-admin/network/settings.php:254 +msgid "Banned Names" +msgstr "Nombres prohibidos" + +#: wp-admin/network/site-users.php:373 +msgid "Add New User" +msgstr "Añadir nuevo usuario" + +#: wp-admin/network/settings.php:235 +msgid "Registration notification" +msgstr "Aviso de registro" + +#: wp-admin/network/settings.php:202 +msgid "Allow new registrations" +msgstr "Permitir nuevos registros" + +#: wp-admin/network/site-users.php:296 +msgid "Duplicated username or email address." +msgstr "Nombre de usuario o correo electrónico duplicado." + +#: wp-admin/network/user-new.php:41 +msgid "Cannot create an empty user." +msgstr "No se puede crear un usuario vacío." + +#: wp-admin/network/sites.php:109 +msgid "Confirm" +msgstr "Confirmar" \ No newline at end of file diff --git a/wp-content/languages/continents-cities-es_ES.l10n.php b/wp-content/languages/continents-cities-es_ES.l10n.php new file mode 100644 index 0000000..0ce06ce --- /dev/null +++ b/wp-content/languages/continents-cities-es_ES.l10n.php @@ -0,0 +1,2 @@ +'GlotPress/4.0.3','translation-revision-date'=>'2022-10-12 09:13:34+0000','plural-forms'=>'nplurals=2; plural=n != 1;','project-id-version'=>'WordPress - 6.9.x - Development - Continents & Cities','language'=>'es','messages'=>['Kanton'=>'Kanton','Kyiv'=>'Kyiv','Qostanay'=>'Qostanay','Nuuk'=>'Nuuk','Saratov'=>'Saratov','Yangon'=>'Yangon','Famagusta'=>'Famagusta','Atyrau'=>'Atyrau','Punta Arenas'=>'Punta Arenas','Pohnpei'=>'Pohnpei','Chuuk'=>'Chuuk','Bougainville'=>'Bougainville','Ulyanovsk'=>'Ulyanovsk','Kirov'=>'Kirov','Busingen'=>'Busingen','Astrakhan'=>'Astrakhan','Ust-Nera'=>'Ust-Nera','Tomsk'=>'Tomsk','Srednekolymsk'=>'Srednekolymsk','Novokuznetsk'=>'Novokuznetsk','Khandyga'=>'Khandyga','Kathmandu'=>'Kathmandu','Hebron'=>'Hebrón','Chita'=>'Chita','Barnaul'=>'Barnaul','Troll'=>'Troll','Macquarie'=>'Macquarie','Sitka'=>'Sitka','Santarem'=>'Santarem','Santa Isabel'=>'Santa Isabel','Ojinaga'=>'Ojinaga','Beulah'=>'Beulah','Metlakatla'=>'Metlakatla','Matamoros'=>'Matamoros','Lower Princes'=>'Lower Princes','Kralendijk'=>'Kralendijk','Fort Nelson'=>'Fuerte Nelson','Creston'=>'Creston','Bahia Banderas'=>'Bahía de Banderas','Salta'=>'Salta','Juba'=>'Juba','Yap'=>'Yap','Wallis'=>'Wallis','Wake'=>'Wake','Truk'=>'Truk','Tongatapu'=>'Tongatapu','Tarawa'=>'Tarawa','Tahiti'=>'Tahití','Samoa'=>'Samoa','Saipan'=>'Saipán','Rarotonga'=>'Rarotonga','Port Moresby'=>'Puerto Moresby','Ponape'=>'Ponape','Pitcairn'=>'Pitcairn','Palau'=>'Palaos','Pago Pago'=>'Pago Pago','Noumea'=>'Noumea','Norfolk'=>'Norfolk','Niue'=>'Niue','Nauru'=>'Nauru','Midway'=>'Midway','Marquesas'=>'Marquesas','Majuro'=>'Majuro','Kwajalein'=>'Kwajalein','Kosrae'=>'Kosrae','Kiritimati'=>'Kiritimati','Johnston'=>'Johnston','Honolulu'=>'Honolulu','Guam'=>'Guam','Guadalcanal'=>'Guadalcanal','Gambier'=>'Gambier','Galapagos'=>'Galápagos','Funafuti'=>'Funafuti','Fiji'=>'Fiyi','Fakaofo'=>'Fakaofo','Enderbury'=>'Enderbury','Efate'=>'Efate','Easter'=>'Pascua','Chatham'=>'Chatham','Auckland'=>'Auckland','Apia'=>'Apia','Pacific'=>'Pacífico','Reunion'=>'Reunión','Mayotte'=>'Mayotte','Mauritius'=>'Mauricio','Maldives'=>'Maldivas','Mahe'=>'Mahe','Kerguelen'=>'Kerguelen','Comoro'=>'Comoro','Cocos'=>'Cocos','Christmas'=>'Navidad','Chagos'=>'Chagos','Antananarivo'=>'Antananarivo','Indian'=>'India','Zurich'=>'Zurich','Zaporozhye'=>'Zaporozhye','Zagreb'=>'Zagreb','Warsaw'=>'Varsovia','Volgograd'=>'Volgogrado','Vilnius'=>'Vilna','Vienna'=>'Viena','Vatican'=>'Vaticano','Vaduz'=>'Vaduz','Uzhgorod'=>'Uzhgorod','Tiraspol'=>'Tiraspol','Tirane'=>'Tirana','Tallinn'=>'Tallín','Stockholm'=>'Estocolmo','Sofia'=>'Sofía','Skopje'=>'Skopje','Simferopol'=>'Simferopol','Sarajevo'=>'Sarajevo','San Marino'=>'San Marino','Samara'=>'Samara','Rome'=>'Roma','Riga'=>'Riga','Prague'=>'Praga','Podgorica'=>'Podgorica','Paris'=>'París','Oslo'=>'Oslo','Moscow'=>'Moscú','Monaco'=>'Mónaco','Minsk'=>'Minsk','Mariehamn'=>'Mariehamn','Malta'=>'Malta','Madrid'=>'Madrid','Luxembourg'=>'Luxemburgo','London'=>'Londres','Ljubljana'=>'Liubliana','Lisbon'=>'Lisboa','Kiev'=>'Kiev','Kaliningrad'=>'Kaliningrado','Jersey'=>'Jersey','Isle of Man'=>'Isla de Man','Helsinki'=>'Helsinki','Guernsey'=>'Guernsey','Gibraltar'=>'Gibraltar','Dublin'=>'Dublín','Copenhagen'=>'Copenhague','Chisinau'=>'Chisinau','Budapest'=>'Budapest','Bucharest'=>'Bucarest','Brussels'=>'Bruselas','Bratislava'=>'Bratislava','Berlin'=>'Berlín','Belgrade'=>'Belgrado','Belfast'=>'Belfast','Athens'=>'Atenas','Andorra'=>'Andorra','Amsterdam'=>'Ámsterdam','Europe'=>'Europa','Zulu'=>'Zulu','UTC'=>'UTC','Universal'=>'Universal','UCT'=>'UCT','Greenwich'=>'Greenwich','GMT0'=>'GMT0','GMT-9'=>'GMT-9','GMT-8'=>'GMT-8','GMT-7'=>'GMT-7','GMT-6'=>'GMT-6','GMT-5'=>'GMT-5','GMT-4'=>'GMT-4','GMT-3'=>'GMT-3','GMT-2'=>'GMT-2','GMT-14'=>'GMT-14','GMT-13'=>'GMT-13','GMT-12'=>'GMT-12','GMT-11'=>'GMT-11','GMT-10'=>'GMT-10','GMT-1'=>'GMT-1','GMT-0'=>'GMT-0','GMT+9'=>'GMT+9','GMT+8'=>'GMT+8','GMT+7'=>'GMT+7','GMT+6'=>'GMT+6','GMT+5'=>'GMT+5','GMT+4'=>'GMT+4','GMT+3'=>'GMT+3','GMT+2'=>'GMT+2','GMT+12'=>'GMT+12','GMT+11'=>'GMT+11','GMT+10'=>'GMT+10','GMT+1'=>'GMT+1','GMT+0'=>'GMT+0','GMT'=>'GMT','Etc'=>'Etc','Yancowinna'=>'Yancowinna','West'=>'Oeste','Victoria'=>'Victoria','Tasmania'=>'Tasmania','Sydney'=>'Sidney','South'=>'Sur','Queensland'=>'Queensland','Perth'=>'Perth','NSW'=>'NSW','North'=>'Norte','Melbourne'=>'Melbourne','Lord Howe'=>'Lord Howe','Lindeman'=>'Lindeman','LHI'=>'LHI','Hobart'=>'Hobart','Eucla'=>'Eucla','Darwin'=>'Darwin','Currie'=>'Currie','Canberra'=>'Canberra','Broken Hill'=>'Broken Hill','Brisbane'=>'Brisbane','Adelaide'=>'Adelaida','ACT'=>'ACT','Australia'=>'Australia','Stanley'=>'Stanley','St Helena'=>'Santa Elena','South Georgia'=>'Georgia el Sur','Reykjavik'=>'Reikiavik','Madeira'=>'Madeira','Jan Mayen'=>'Jan Mayen','Faroe'=>'Faroe','Faeroe'=>'Feroe','Cape Verde'=>'Cabo Verde','Canary'=>'Canarias','Bermuda'=>'Bermudas','Azores'=>'Azores','Atlantic'=>'Atlántico','Yerevan'=>'Ereván','Yekaterinburg'=>'Ekaterinburgo','Yakutsk'=>'Yakutsk','Vladivostok'=>'Vladivostok','Vientiane'=>'Vientiane','Urumqi'=>'Urumqi','Ulan Bator'=>'Ulan Bator','Ulaanbaatar'=>'Ulaanbaatar','Ujung Pandang'=>'Ujung Pandang','Tokyo'=>'Tokio','Thimphu'=>'Thimphu','Thimbu'=>'Thimbu','Tel Aviv'=>'Tel Aviv','Tehran'=>'Teherán','Tbilisi'=>'Tbilisi','Tashkent'=>'Tashkent','Taipei'=>'Taipei','Singapore'=>'Singapur','Shanghai'=>'Shanghái','Seoul'=>'Seúl','Samarkand'=>'Samarcanda','Sakhalin'=>'Sakhalin','Saigon'=>'Saigón','Riyadh'=>'Riad','Rangoon'=>'Rangún','Qyzylorda'=>'Qyzylorda','Qatar'=>'Catar','Pyongyang'=>'Pyongyang','Pontianak'=>'Pontianak','Phnom Penh'=>'Phnom Penh','Oral'=>'Oral','Omsk'=>'Omsk','Novosibirsk'=>'Novosibirsk','Nicosia'=>'Nicosia','Muscat'=>'Mascate','Manila'=>'Manila','Makassar'=>'Makassar','Magadan'=>'Magadan','Macau'=>'Macao','Macao'=>'Macao','Kuwait'=>'Kuwait','Kuching'=>'Kuching','Kuala Lumpur'=>'Kuala Lumpur','Krasnoyarsk'=>'Krasnoyarsk','Kolkata'=>'Kolkata','Katmandu'=>'Katmandú','Kashgar'=>'Kashgar','Karachi'=>'Karachi','Kamchatka'=>'Kamchatka','Kabul'=>'Kabul','Jerusalem'=>'Jerusalén','Jayapura'=>'Jayapura','Jakarta'=>'Jakarta','Istanbul'=>'Estambul','Irkutsk'=>'Irkutsk','Hovd'=>'Hovd','Hong Kong'=>'Hong Kong','Ho Chi Minh'=>'Ho Chi Minh','Harbin'=>'Harbin','Gaza'=>'Gaza','Dushanbe'=>'Dushanbe','Dubai'=>'Dubai','Dili'=>'Dili','Dhaka'=>'Dhaka','Damascus'=>'Damasco','Dacca'=>'Dacca','Colombo'=>'Colombo','Chungking'=>'Chungking','Chongqing'=>'Chongqing','Choibalsan'=>'Choibalsan','Calcutta'=>'Calcuta','Brunei'=>'Brunei','Bishkek'=>'Bishkek','Beirut'=>'Beirut','Bangkok'=>'Bangkok','Baku'=>'Bakú','Bahrain'=>'Baréin','Baghdad'=>'Bagdad','Ashkhabad'=>'Ashkhabad','Ashgabat'=>'Ashgabat','Aqtobe'=>'Aqtobe','Aqtau'=>'Aqtau','Anadyr'=>'Anadyr','Amman'=>'Amman','Almaty'=>'Almaty','Aden'=>'Aden','Asia'=>'Asia','Longyearbyen'=>'Longyearbyen','Arctic'=>'Ártico','Vostok'=>'Vostok','Syowa'=>'Syowa','South Pole'=>'Polo Sur','Rothera'=>'Rothera','Palmer'=>'Palmer','McMurdo'=>'McMurdo','Mawson'=>'Mawson','DumontDUrville'=>'DumontDUrville','Davis'=>'Davis','Casey'=>'Casey','Antarctica'=>'Antártida','Yellowknife'=>'Yellowknife','Yakutat'=>'Yakutat','Winnipeg'=>'Winnipeg','Whitehorse'=>'Whitehorse','Virgin'=>'Virgin','Vancouver'=>'Vancouver','Tortola'=>'Tortola','Toronto'=>'Toronto','Tijuana'=>'Tijuana','Thunder Bay'=>'Thunder Bay','Thule'=>'Thule','Tegucigalpa'=>'Tegucigalpa','Swift Current'=>'Swift Current','St Vincent'=>'San Vincente','St Thomas'=>'Santo Tomás','St Lucia'=>'Santa Lucía','St Kitts'=>'St Kitts','St Johns'=>'St Johns','St Barthelemy'=>'St Barthelemy','Shiprock'=>'Shiprock','Scoresbysund'=>'Scoresbysund','Sao Paulo'=>'Sao Paulo','Santo Domingo'=>'Santo Domingo','Santiago'=>'Santiago','Rosario'=>'Rosario','Rio Branco'=>'Río Branco','Resolute'=>'Resolute','Regina'=>'Regina','Recife'=>'Recife','Rankin Inlet'=>'Rankin Inlet','Rainy River'=>'Rainy River','Puerto Rico'=>'Puerto Rico','Porto Velho'=>'Porto Velho','Porto Acre'=>'Porto Acre','Port of Spain'=>'Puerto España','Port-au-Prince'=>'Puerto Príncipe','Phoenix'=>'Phoenix','Paramaribo'=>'Paramaribo','Pangnirtung'=>'Pangnirtung','Panama'=>'Panamá','New Salem'=>'New Salem','Center'=>'Center','North Dakota'=>'Dakota del Norte','Noronha'=>'Noronha','Nome'=>'Nome','Nipigon'=>'Nipigon','New York'=>'Nueva York','Nassau'=>'Nassau','Montserrat'=>'Montserrat','Montreal'=>'Montreal','Montevideo'=>'Montevideo','Monterrey'=>'Monterrey','Moncton'=>'Moncton','Miquelon'=>'Miquelon','Mexico City'=>'Ciudad de México','Merida'=>'Mérida','Menominee'=>'Menominee','Mazatlan'=>'Mazatlán','Martinique'=>'Martinica','Marigot'=>'Marigot','Manaus'=>'Manaos','Managua'=>'Managua','Maceio'=>'Maceio','Los Angeles'=>'Los Ángeles','Lima'=>'Lima','La Paz'=>'La Paz','Knox IN'=>'Knox IN','Monticello'=>'Monticello','Louisville'=>'Louisville','Kentucky'=>'Kentucky','Juneau'=>'Juneau','Jamaica'=>'Jamaica','Iqaluit'=>'Iqaluit','Inuvik'=>'Inuvik','Winamac'=>'Winamac','Vincennes'=>'Vincennes','Vevay'=>'Vevay','Tell City'=>'Tell City','Petersburg'=>'San Petersburgo','Marengo'=>'Marengo','Knox'=>'Knox','Indianapolis'=>'Indianápolis','Indiana'=>'Indiana','Hermosillo'=>'Hermosillo','Havana'=>'La Habana','Halifax'=>'Halifax','Guyana'=>'Guyana','Guayaquil'=>'Guayaquil','Guatemala'=>'Guatemala','Guadeloupe'=>'Guadalupe','Grenada'=>'Grenada','Grand Turk'=>'Gran Turca','Goose Bay'=>'Goose Bay','Godthab'=>'Godthab','Glace Bay'=>'Glace Bay','Fortaleza'=>'Fortaleza','Fort Wayne'=>'Fort Wayne','Ensenada'=>'Ensenada','El Salvador'=>'El Salvador','Eirunepe'=>'Eirunepe','Edmonton'=>'Edmonton','Dominica'=>'Dominica','Detroit'=>'Detroit','Denver'=>'Denver','Dawson Creek'=>'Dawson Creek','Dawson'=>'Dawson','Danmarkshavn'=>'Danmarkshavn','Curacao'=>'Curazao','Cuiaba'=>'Cuiaba','Costa Rica'=>'Costa Rica','Coral Harbour'=>'Coral Harbour','Chihuahua'=>'Chihuahua','Chicago'=>'Chicago','Cayman'=>'Caimán','Cayenne'=>'Cayena','Caracas'=>'Caracas','Cancun'=>'Cancún','Campo Grande'=>'Campo Grande','Cambridge Bay'=>'Cambridge Bay','Boise'=>'Boise','Bogota'=>'Bogotá','Boa Vista'=>'Boa Vista','Blanc-Sablon'=>'Blanc-Sablon','Belize'=>'Belice','Belem'=>'Belén','Barbados'=>'Barbados','Bahia'=>'Bahía','Atka'=>'Atka','Atikokan'=>'Atikokan','Asuncion'=>'Asunción','Aruba'=>'Aruba','Ushuaia'=>'Ushuaia','Tucuman'=>'Tucumán','San Luis'=>'San Luis','San Juan'=>'San Juan','Rio Gallegos'=>'Río Gallegos','Mendoza'=>'Mendoza','La Rioja'=>'La Rioja','Jujuy'=>'Jujuy','Cordoba'=>'Córdoba','ComodRivadavia'=>'Comodoro Rivadavia','Catamarca'=>'Catamarca','Buenos Aires'=>'Buenos Aires','Argentina'=>'Argentina','Araguaina'=>'Araguaina','Antigua'=>'Antigua','Anguilla'=>'Anguila','Anchorage'=>'Anchorage','Adak'=>'Adak','America'=>'América','Windhoek'=>'Windhoek','Tunis'=>'Túnez','Tripoli'=>'Trípoli','Timbuktu'=>'Tombuctú','Sao Tome'=>'Santo Tomé','Porto-Novo'=>'Porto-Novo','Ouagadougou'=>'Ouagadougou','Nouakchott'=>'Nouakchott','Niamey'=>'Niamey','Ndjamena'=>'Ndjamena','Nairobi'=>'Nairobi','Monrovia'=>'Monrovia','Mogadishu'=>'Mogadiscio','Mbabane'=>'Mbabane','Maseru'=>'Maseru','Maputo'=>'Maputo','Malabo'=>'Malabo','Lusaka'=>'Lusaka','Lubumbashi'=>'Lubumbashi','Luanda'=>'Luanda','Lome'=>'Lome','Libreville'=>'Libreville','Lagos'=>'Lagos','Kinshasa'=>'Kinshasa','Kigali'=>'Kigali','Khartoum'=>'Jartum','Kampala'=>'Kampala','Johannesburg'=>'Johanesburgo','Harare'=>'Harare','Gaborone'=>'Gaborone','Freetown'=>'Freetown','El Aaiun'=>'El Aaiún','Douala'=>'Douala','Djibouti'=>'Yibuti','Dar es Salaam'=>'Dar es Salaam','Dakar'=>'Dakar','Conakry'=>'Conakry','Ceuta'=>'Ceuta','Casablanca'=>'Casablanca','Cairo'=>'El Cairo','Bujumbura'=>'Bujumbura','Brazzaville'=>'Brazzaville','Blantyre'=>'Blantyre','Bissau'=>'Bisáu','Banjul'=>'Banjul','Bangui'=>'Bangui','Bamako'=>'Bamako','Asmera'=>'Asmera','Asmara'=>'Asmara','Algiers'=>'Argel','Addis Ababa'=>'Addis Abeba','Accra'=>'Accra','Abidjan'=>'Abidjan','Africa'=>'África']]; \ No newline at end of file diff --git a/wp-content/languages/continents-cities-es_ES.mo b/wp-content/languages/continents-cities-es_ES.mo new file mode 100644 index 0000000..dfbf603 Binary files /dev/null and b/wp-content/languages/continents-cities-es_ES.mo differ diff --git a/wp-content/languages/continents-cities-es_ES.po b/wp-content/languages/continents-cities-es_ES.po new file mode 100644 index 0000000..8143402 --- /dev/null +++ b/wp-content/languages/continents-cities-es_ES.po @@ -0,0 +1,2124 @@ +# Translation of WordPress - 6.9.x - Development - Continents & Cities in Spanish (Spain) +# This file is distributed under the same license as the WordPress - 6.9.x - Development - Continents & Cities package. +msgid "" +msgstr "" +"PO-Revision-Date: 2022-10-12 09:13:34+0000\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: GlotPress/4.0.3\n" +"Language: es\n" +"Project-Id-Version: WordPress - 6.9.x - Development - Continents & Cities\n" + +#: wp-admin/includes/continents-cities.php:523 +msgid "Kanton" +msgstr "Kanton" + +#: wp-admin/includes/continents-cities.php:451 +msgid "Kyiv" +msgstr "Kyiv" + +#: wp-admin/includes/continents-cities.php:319 +msgid "Qostanay" +msgstr "Qostanay" + +#: wp-admin/includes/continents-cities.php:187 +msgid "Nuuk" +msgstr "Nuuk" + +#: wp-admin/includes/continents-cities.php:472 +msgid "Saratov" +msgstr "Saratov" + +#: wp-admin/includes/continents-cities.php:347 +msgid "Yangon" +msgstr "Yangon" + +#: wp-admin/includes/continents-cities.php:281 +msgid "Famagusta" +msgstr "Famagusta" + +#: wp-admin/includes/continents-cities.php:260 +msgid "Atyrau" +msgstr "Atyrau" + +#: wp-admin/includes/continents-cities.php:198 +msgid "Punta Arenas" +msgstr "Punta Arenas" + +#: wp-admin/includes/continents-cities.php:537 +msgid "Pohnpei" +msgstr "Pohnpei" + +#: wp-admin/includes/continents-cities.php:510 +msgid "Chuuk" +msgstr "Chuuk" + +#: wp-admin/includes/continents-cities.php:508 +msgid "Bougainville" +msgstr "Bougainville" + +#: wp-admin/includes/continents-cities.php:480 +msgid "Ulyanovsk" +msgstr "Ulyanovsk" + +#: wp-admin/includes/continents-cities.php:452 +msgid "Kirov" +msgstr "Kirov" + +#: wp-admin/includes/continents-cities.php:439 +msgid "Busingen" +msgstr "Busingen" + +#: wp-admin/includes/continents-cities.php:430 +msgid "Astrakhan" +msgstr "Astrakhan" + +#: wp-admin/includes/continents-cities.php:343 +msgid "Ust-Nera" +msgstr "Ust-Nera" + +#: wp-admin/includes/continents-cities.php:338 +msgid "Tomsk" +msgstr "Tomsk" + +#: wp-admin/includes/continents-cities.php:329 +msgid "Srednekolymsk" +msgstr "Srednekolymsk" + +#: wp-admin/includes/continents-cities.php:311 +msgid "Novokuznetsk" +msgstr "Novokuznetsk" + +#: wp-admin/includes/continents-cities.php:298 +msgid "Khandyga" +msgstr "Khandyga" + +#: wp-admin/includes/continents-cities.php:296 +msgid "Kathmandu" +msgstr "Kathmandu" + +#: wp-admin/includes/continents-cities.php:284 +msgid "Hebron" +msgstr "Hebrón" + +#: wp-admin/includes/continents-cities.php:270 +msgid "Chita" +msgstr "Chita" + +#: wp-admin/includes/continents-cities.php:265 +msgid "Barnaul" +msgstr "Barnaul" + +#: wp-admin/includes/continents-cities.php:245 +msgid "Troll" +msgstr "Troll" + +#: wp-admin/includes/continents-cities.php:238 +msgid "Macquarie" +msgstr "Macquarie" + +#: wp-admin/includes/continents-cities.php:213 +msgid "Sitka" +msgstr "Sitka" + +#: wp-admin/includes/continents-cities.php:207 +msgid "Santarem" +msgstr "Santarem" + +#: wp-admin/includes/continents-cities.php:206 +msgid "Santa Isabel" +msgstr "Santa Isabel" + +#: wp-admin/includes/continents-cities.php:188 +msgid "Ojinaga" +msgstr "Ojinaga" + +#: wp-admin/includes/continents-cities.php:184 +msgid "Beulah" +msgstr "Beulah" + +#: wp-admin/includes/continents-cities.php:170 +msgid "Metlakatla" +msgstr "Metlakatla" + +#: wp-admin/includes/continents-cities.php:166 +msgid "Matamoros" +msgstr "Matamoros" + +#: wp-admin/includes/continents-cities.php:160 +msgid "Lower Princes" +msgstr "Lower Princes" + +#: wp-admin/includes/continents-cities.php:156 +msgid "Kralendijk" +msgstr "Kralendijk" + +#: wp-admin/includes/continents-cities.php:124 +msgid "Fort Nelson" +msgstr "Fuerte Nelson" + +#: wp-admin/includes/continents-cities.php:111 +msgid "Creston" +msgstr "Creston" + +#: wp-admin/includes/continents-cities.php:93 +msgid "Bahia Banderas" +msgstr "Bahía de Banderas" + +#: wp-admin/includes/continents-cities.php:83 +msgid "Salta" +msgstr "Salta" + +#: wp-admin/includes/continents-cities.php:39 +msgid "Juba" +msgstr "Juba" + +#: wp-admin/includes/continents-cities.php:549 +msgid "Yap" +msgstr "Yap" + +#: wp-admin/includes/continents-cities.php:548 +msgid "Wallis" +msgstr "Wallis" + +#: wp-admin/includes/continents-cities.php:547 +msgid "Wake" +msgstr "Wake" + +#: wp-admin/includes/continents-cities.php:546 +msgid "Truk" +msgstr "Truk" + +#: wp-admin/includes/continents-cities.php:545 +msgid "Tongatapu" +msgstr "Tongatapu" + +#: wp-admin/includes/continents-cities.php:544 +msgid "Tarawa" +msgstr "Tarawa" + +#: wp-admin/includes/continents-cities.php:543 +msgid "Tahiti" +msgstr "Tahití" + +#: wp-admin/includes/continents-cities.php:542 +msgid "Samoa" +msgstr "Samoa" + +#: wp-admin/includes/continents-cities.php:541 +msgid "Saipan" +msgstr "Saipán" + +#: wp-admin/includes/continents-cities.php:540 +msgid "Rarotonga" +msgstr "Rarotonga" + +#: wp-admin/includes/continents-cities.php:539 +msgid "Port Moresby" +msgstr "Puerto Moresby" + +#: wp-admin/includes/continents-cities.php:538 +msgid "Ponape" +msgstr "Ponape" + +#: wp-admin/includes/continents-cities.php:536 +msgid "Pitcairn" +msgstr "Pitcairn" + +#: wp-admin/includes/continents-cities.php:535 +msgid "Palau" +msgstr "Palaos" + +#: wp-admin/includes/continents-cities.php:534 +msgid "Pago Pago" +msgstr "Pago Pago" + +#: wp-admin/includes/continents-cities.php:533 +msgid "Noumea" +msgstr "Noumea" + +#: wp-admin/includes/continents-cities.php:532 +msgid "Norfolk" +msgstr "Norfolk" + +#: wp-admin/includes/continents-cities.php:531 +msgid "Niue" +msgstr "Niue" + +#: wp-admin/includes/continents-cities.php:530 +msgid "Nauru" +msgstr "Nauru" + +#: wp-admin/includes/continents-cities.php:529 +msgid "Midway" +msgstr "Midway" + +#: wp-admin/includes/continents-cities.php:528 +msgid "Marquesas" +msgstr "Marquesas" + +#: wp-admin/includes/continents-cities.php:527 +msgid "Majuro" +msgstr "Majuro" + +#: wp-admin/includes/continents-cities.php:526 +msgid "Kwajalein" +msgstr "Kwajalein" + +#: wp-admin/includes/continents-cities.php:525 +msgid "Kosrae" +msgstr "Kosrae" + +#: wp-admin/includes/continents-cities.php:524 +msgid "Kiritimati" +msgstr "Kiritimati" + +#: wp-admin/includes/continents-cities.php:522 +msgid "Johnston" +msgstr "Johnston" + +#: wp-admin/includes/continents-cities.php:521 +msgid "Honolulu" +msgstr "Honolulu" + +#: wp-admin/includes/continents-cities.php:520 +msgid "Guam" +msgstr "Guam" + +#: wp-admin/includes/continents-cities.php:519 +msgid "Guadalcanal" +msgstr "Guadalcanal" + +#: wp-admin/includes/continents-cities.php:518 +msgid "Gambier" +msgstr "Gambier" + +#: wp-admin/includes/continents-cities.php:517 +msgid "Galapagos" +msgstr "Galápagos" + +#: wp-admin/includes/continents-cities.php:516 +msgid "Funafuti" +msgstr "Funafuti" + +#: wp-admin/includes/continents-cities.php:515 +msgid "Fiji" +msgstr "Fiyi" + +#: wp-admin/includes/continents-cities.php:514 +msgid "Fakaofo" +msgstr "Fakaofo" + +#: wp-admin/includes/continents-cities.php:513 +msgid "Enderbury" +msgstr "Enderbury" + +#: wp-admin/includes/continents-cities.php:512 +msgid "Efate" +msgstr "Efate" + +#: wp-admin/includes/continents-cities.php:511 +msgid "Easter" +msgstr "Pascua" + +#: wp-admin/includes/continents-cities.php:509 +msgid "Chatham" +msgstr "Chatham" + +#: wp-admin/includes/continents-cities.php:507 +msgid "Auckland" +msgstr "Auckland" + +#: wp-admin/includes/continents-cities.php:506 +msgid "Apia" +msgstr "Apia" + +#: wp-admin/includes/continents-cities.php:505 +msgid "Pacific" +msgstr "Pacífico" + +#: wp-admin/includes/continents-cities.php:503 +msgid "Reunion" +msgstr "Reunión" + +#: wp-admin/includes/continents-cities.php:502 +msgid "Mayotte" +msgstr "Mayotte" + +#: wp-admin/includes/continents-cities.php:501 +msgid "Mauritius" +msgstr "Mauricio" + +#: wp-admin/includes/continents-cities.php:500 +msgid "Maldives" +msgstr "Maldivas" + +#: wp-admin/includes/continents-cities.php:499 +msgid "Mahe" +msgstr "Mahe" + +#: wp-admin/includes/continents-cities.php:498 +msgid "Kerguelen" +msgstr "Kerguelen" + +#: wp-admin/includes/continents-cities.php:497 +msgid "Comoro" +msgstr "Comoro" + +#: wp-admin/includes/continents-cities.php:496 +msgid "Cocos" +msgstr "Cocos" + +#: wp-admin/includes/continents-cities.php:495 +msgid "Christmas" +msgstr "Navidad" + +#: wp-admin/includes/continents-cities.php:494 +msgid "Chagos" +msgstr "Chagos" + +#: wp-admin/includes/continents-cities.php:493 +msgid "Antananarivo" +msgstr "Antananarivo" + +#: wp-admin/includes/continents-cities.php:492 +msgid "Indian" +msgstr "India" + +#: wp-admin/includes/continents-cities.php:490 +msgid "Zurich" +msgstr "Zurich" + +#: wp-admin/includes/continents-cities.php:489 +msgid "Zaporozhye" +msgstr "Zaporozhye" + +#: wp-admin/includes/continents-cities.php:488 +msgid "Zagreb" +msgstr "Zagreb" + +#: wp-admin/includes/continents-cities.php:487 +msgid "Warsaw" +msgstr "Varsovia" + +#: wp-admin/includes/continents-cities.php:486 +msgid "Volgograd" +msgstr "Volgogrado" + +#: wp-admin/includes/continents-cities.php:485 +msgid "Vilnius" +msgstr "Vilna" + +#: wp-admin/includes/continents-cities.php:484 +msgid "Vienna" +msgstr "Viena" + +#: wp-admin/includes/continents-cities.php:483 +msgid "Vatican" +msgstr "Vaticano" + +#: wp-admin/includes/continents-cities.php:482 +msgid "Vaduz" +msgstr "Vaduz" + +#: wp-admin/includes/continents-cities.php:481 +msgid "Uzhgorod" +msgstr "Uzhgorod" + +#: wp-admin/includes/continents-cities.php:479 +msgid "Tiraspol" +msgstr "Tiraspol" + +#: wp-admin/includes/continents-cities.php:478 +msgid "Tirane" +msgstr "Tirana" + +#: wp-admin/includes/continents-cities.php:477 +msgid "Tallinn" +msgstr "Tallín" + +#: wp-admin/includes/continents-cities.php:476 +msgid "Stockholm" +msgstr "Estocolmo" + +#: wp-admin/includes/continents-cities.php:475 +msgid "Sofia" +msgstr "Sofía" + +#: wp-admin/includes/continents-cities.php:474 +msgid "Skopje" +msgstr "Skopje" + +#: wp-admin/includes/continents-cities.php:473 +msgid "Simferopol" +msgstr "Simferopol" + +#: wp-admin/includes/continents-cities.php:471 +msgid "Sarajevo" +msgstr "Sarajevo" + +#: wp-admin/includes/continents-cities.php:470 +msgid "San Marino" +msgstr "San Marino" + +#: wp-admin/includes/continents-cities.php:469 +msgid "Samara" +msgstr "Samara" + +#: wp-admin/includes/continents-cities.php:468 +msgid "Rome" +msgstr "Roma" + +#: wp-admin/includes/continents-cities.php:467 +msgid "Riga" +msgstr "Riga" + +#: wp-admin/includes/continents-cities.php:466 +msgid "Prague" +msgstr "Praga" + +#: wp-admin/includes/continents-cities.php:465 +msgid "Podgorica" +msgstr "Podgorica" + +#: wp-admin/includes/continents-cities.php:464 +msgid "Paris" +msgstr "París" + +#: wp-admin/includes/continents-cities.php:463 +msgid "Oslo" +msgstr "Oslo" + +#: wp-admin/includes/continents-cities.php:462 +msgid "Moscow" +msgstr "Moscú" + +#: wp-admin/includes/continents-cities.php:461 +msgid "Monaco" +msgstr "Mónaco" + +#: wp-admin/includes/continents-cities.php:460 +msgid "Minsk" +msgstr "Minsk" + +#: wp-admin/includes/continents-cities.php:459 +msgid "Mariehamn" +msgstr "Mariehamn" + +#: wp-admin/includes/continents-cities.php:458 +msgid "Malta" +msgstr "Malta" + +#: wp-admin/includes/continents-cities.php:457 +msgid "Madrid" +msgstr "Madrid" + +#: wp-admin/includes/continents-cities.php:456 +msgid "Luxembourg" +msgstr "Luxemburgo" + +#: wp-admin/includes/continents-cities.php:455 +msgid "London" +msgstr "Londres" + +#: wp-admin/includes/continents-cities.php:454 +msgid "Ljubljana" +msgstr "Liubliana" + +#: wp-admin/includes/continents-cities.php:453 +msgid "Lisbon" +msgstr "Lisboa" + +#: wp-admin/includes/continents-cities.php:450 +msgid "Kiev" +msgstr "Kiev" + +#: wp-admin/includes/continents-cities.php:449 +msgid "Kaliningrad" +msgstr "Kaliningrado" + +#: wp-admin/includes/continents-cities.php:448 +msgid "Jersey" +msgstr "Jersey" + +#: wp-admin/includes/continents-cities.php:446 +msgid "Isle of Man" +msgstr "Isla de Man" + +#: wp-admin/includes/continents-cities.php:445 +msgid "Helsinki" +msgstr "Helsinki" + +#: wp-admin/includes/continents-cities.php:444 +msgid "Guernsey" +msgstr "Guernsey" + +#: wp-admin/includes/continents-cities.php:443 +msgid "Gibraltar" +msgstr "Gibraltar" + +#: wp-admin/includes/continents-cities.php:442 +msgid "Dublin" +msgstr "Dublín" + +#: wp-admin/includes/continents-cities.php:441 +msgid "Copenhagen" +msgstr "Copenhague" + +#: wp-admin/includes/continents-cities.php:440 +msgid "Chisinau" +msgstr "Chisinau" + +#: wp-admin/includes/continents-cities.php:438 +msgid "Budapest" +msgstr "Budapest" + +#: wp-admin/includes/continents-cities.php:437 +msgid "Bucharest" +msgstr "Bucarest" + +#: wp-admin/includes/continents-cities.php:436 +msgid "Brussels" +msgstr "Bruselas" + +#: wp-admin/includes/continents-cities.php:435 +msgid "Bratislava" +msgstr "Bratislava" + +#: wp-admin/includes/continents-cities.php:434 +msgid "Berlin" +msgstr "Berlín" + +#: wp-admin/includes/continents-cities.php:433 +msgid "Belgrade" +msgstr "Belgrado" + +#: wp-admin/includes/continents-cities.php:432 +msgid "Belfast" +msgstr "Belfast" + +#: wp-admin/includes/continents-cities.php:431 +msgid "Athens" +msgstr "Atenas" + +#: wp-admin/includes/continents-cities.php:429 +msgid "Andorra" +msgstr "Andorra" + +#: wp-admin/includes/continents-cities.php:428 +msgid "Amsterdam" +msgstr "Ámsterdam" + +#: wp-admin/includes/continents-cities.php:427 +msgid "Europe" +msgstr "Europa" + +#: wp-admin/includes/continents-cities.php:425 +msgid "Zulu" +msgstr "Zulu" + +#: wp-admin/includes/continents-cities.php:423 +msgid "UTC" +msgstr "UTC" + +#: wp-admin/includes/continents-cities.php:424 +msgid "Universal" +msgstr "Universal" + +#: wp-admin/includes/continents-cities.php:422 +msgid "UCT" +msgstr "UCT" + +#: wp-admin/includes/continents-cities.php:421 +msgid "Greenwich" +msgstr "Greenwich" + +#: wp-admin/includes/continents-cities.php:420 +msgid "GMT0" +msgstr "GMT0" + +#: wp-admin/includes/continents-cities.php:419 +msgid "GMT-9" +msgstr "GMT-9" + +#: wp-admin/includes/continents-cities.php:418 +msgid "GMT-8" +msgstr "GMT-8" + +#: wp-admin/includes/continents-cities.php:417 +msgid "GMT-7" +msgstr "GMT-7" + +#: wp-admin/includes/continents-cities.php:416 +msgid "GMT-6" +msgstr "GMT-6" + +#: wp-admin/includes/continents-cities.php:415 +msgid "GMT-5" +msgstr "GMT-5" + +#: wp-admin/includes/continents-cities.php:414 +msgid "GMT-4" +msgstr "GMT-4" + +#: wp-admin/includes/continents-cities.php:413 +msgid "GMT-3" +msgstr "GMT-3" + +#: wp-admin/includes/continents-cities.php:412 +msgid "GMT-2" +msgstr "GMT-2" + +#: wp-admin/includes/continents-cities.php:411 +msgid "GMT-14" +msgstr "GMT-14" + +#: wp-admin/includes/continents-cities.php:410 +msgid "GMT-13" +msgstr "GMT-13" + +#: wp-admin/includes/continents-cities.php:409 +msgid "GMT-12" +msgstr "GMT-12" + +#: wp-admin/includes/continents-cities.php:408 +msgid "GMT-11" +msgstr "GMT-11" + +#: wp-admin/includes/continents-cities.php:407 +msgid "GMT-10" +msgstr "GMT-10" + +#: wp-admin/includes/continents-cities.php:406 +msgid "GMT-1" +msgstr "GMT-1" + +#: wp-admin/includes/continents-cities.php:405 +msgid "GMT-0" +msgstr "GMT-0" + +#: wp-admin/includes/continents-cities.php:404 +msgid "GMT+9" +msgstr "GMT+9" + +#: wp-admin/includes/continents-cities.php:403 +msgid "GMT+8" +msgstr "GMT+8" + +#: wp-admin/includes/continents-cities.php:402 +msgid "GMT+7" +msgstr "GMT+7" + +#: wp-admin/includes/continents-cities.php:401 +msgid "GMT+6" +msgstr "GMT+6" + +#: wp-admin/includes/continents-cities.php:400 +msgid "GMT+5" +msgstr "GMT+5" + +#: wp-admin/includes/continents-cities.php:399 +msgid "GMT+4" +msgstr "GMT+4" + +#: wp-admin/includes/continents-cities.php:398 +msgid "GMT+3" +msgstr "GMT+3" + +#: wp-admin/includes/continents-cities.php:397 +msgid "GMT+2" +msgstr "GMT+2" + +#: wp-admin/includes/continents-cities.php:396 +msgid "GMT+12" +msgstr "GMT+12" + +#: wp-admin/includes/continents-cities.php:395 +msgid "GMT+11" +msgstr "GMT+11" + +#: wp-admin/includes/continents-cities.php:394 +msgid "GMT+10" +msgstr "GMT+10" + +#: wp-admin/includes/continents-cities.php:393 +msgid "GMT+1" +msgstr "GMT+1" + +#: wp-admin/includes/continents-cities.php:392 +msgid "GMT+0" +msgstr "GMT+0" + +#: wp-admin/includes/continents-cities.php:391 +msgid "GMT" +msgstr "GMT" + +#: wp-admin/includes/continents-cities.php:390 +msgid "Etc" +msgstr "Etc" + +#: wp-admin/includes/continents-cities.php:388 +msgid "Yancowinna" +msgstr "Yancowinna" + +#: wp-admin/includes/continents-cities.php:387 +msgid "West" +msgstr "Oeste" + +#: wp-admin/includes/continents-cities.php:386 +msgid "Victoria" +msgstr "Victoria" + +#: wp-admin/includes/continents-cities.php:385 +msgid "Tasmania" +msgstr "Tasmania" + +#: wp-admin/includes/continents-cities.php:384 +msgid "Sydney" +msgstr "Sidney" + +#: wp-admin/includes/continents-cities.php:383 +msgid "South" +msgstr "Sur" + +#: wp-admin/includes/continents-cities.php:382 +msgid "Queensland" +msgstr "Queensland" + +#: wp-admin/includes/continents-cities.php:381 +msgid "Perth" +msgstr "Perth" + +#: wp-admin/includes/continents-cities.php:379 +msgid "NSW" +msgstr "NSW" + +#: wp-admin/includes/continents-cities.php:380 +msgid "North" +msgstr "Norte" + +#: wp-admin/includes/continents-cities.php:378 +msgid "Melbourne" +msgstr "Melbourne" + +#: wp-admin/includes/continents-cities.php:377 +msgid "Lord Howe" +msgstr "Lord Howe" + +#: wp-admin/includes/continents-cities.php:376 +msgid "Lindeman" +msgstr "Lindeman" + +#: wp-admin/includes/continents-cities.php:375 +msgid "LHI" +msgstr "LHI" + +#: wp-admin/includes/continents-cities.php:374 +msgid "Hobart" +msgstr "Hobart" + +#: wp-admin/includes/continents-cities.php:373 +msgid "Eucla" +msgstr "Eucla" + +#: wp-admin/includes/continents-cities.php:372 +msgid "Darwin" +msgstr "Darwin" + +#: wp-admin/includes/continents-cities.php:371 +msgid "Currie" +msgstr "Currie" + +#: wp-admin/includes/continents-cities.php:370 +msgid "Canberra" +msgstr "Canberra" + +#: wp-admin/includes/continents-cities.php:369 +msgid "Broken Hill" +msgstr "Broken Hill" + +#: wp-admin/includes/continents-cities.php:368 +msgid "Brisbane" +msgstr "Brisbane" + +#: wp-admin/includes/continents-cities.php:367 +msgid "Adelaide" +msgstr "Adelaida" + +#: wp-admin/includes/continents-cities.php:366 +msgid "ACT" +msgstr "ACT" + +#: wp-admin/includes/continents-cities.php:365 +msgid "Australia" +msgstr "Australia" + +#: wp-admin/includes/continents-cities.php:363 +msgid "Stanley" +msgstr "Stanley" + +#: wp-admin/includes/continents-cities.php:362 +msgid "St Helena" +msgstr "Santa Elena" + +#: wp-admin/includes/continents-cities.php:361 +msgid "South Georgia" +msgstr "Georgia el Sur" + +#: wp-admin/includes/continents-cities.php:360 +msgid "Reykjavik" +msgstr "Reikiavik" + +#: wp-admin/includes/continents-cities.php:359 +msgid "Madeira" +msgstr "Madeira" + +#: wp-admin/includes/continents-cities.php:358 +msgid "Jan Mayen" +msgstr "Jan Mayen" + +#: wp-admin/includes/continents-cities.php:357 +msgid "Faroe" +msgstr "Faroe" + +#: wp-admin/includes/continents-cities.php:356 +msgid "Faeroe" +msgstr "Feroe" + +#: wp-admin/includes/continents-cities.php:355 +msgid "Cape Verde" +msgstr "Cabo Verde" + +#: wp-admin/includes/continents-cities.php:354 +msgid "Canary" +msgstr "Canarias" + +#: wp-admin/includes/continents-cities.php:353 +msgid "Bermuda" +msgstr "Bermudas" + +#: wp-admin/includes/continents-cities.php:352 +msgid "Azores" +msgstr "Azores" + +#: wp-admin/includes/continents-cities.php:351 +msgid "Atlantic" +msgstr "Atlántico" + +#: wp-admin/includes/continents-cities.php:349 +msgid "Yerevan" +msgstr "Ereván" + +#: wp-admin/includes/continents-cities.php:348 +msgid "Yekaterinburg" +msgstr "Ekaterinburgo" + +#: wp-admin/includes/continents-cities.php:346 +msgid "Yakutsk" +msgstr "Yakutsk" + +#: wp-admin/includes/continents-cities.php:345 +msgid "Vladivostok" +msgstr "Vladivostok" + +#: wp-admin/includes/continents-cities.php:344 +msgid "Vientiane" +msgstr "Vientiane" + +#: wp-admin/includes/continents-cities.php:342 +msgid "Urumqi" +msgstr "Urumqi" + +#: wp-admin/includes/continents-cities.php:341 +msgid "Ulan Bator" +msgstr "Ulan Bator" + +#: wp-admin/includes/continents-cities.php:340 +msgid "Ulaanbaatar" +msgstr "Ulaanbaatar" + +#: wp-admin/includes/continents-cities.php:339 +msgid "Ujung Pandang" +msgstr "Ujung Pandang" + +#: wp-admin/includes/continents-cities.php:337 +msgid "Tokyo" +msgstr "Tokio" + +#: wp-admin/includes/continents-cities.php:336 +msgid "Thimphu" +msgstr "Thimphu" + +#: wp-admin/includes/continents-cities.php:335 +msgid "Thimbu" +msgstr "Thimbu" + +#: wp-admin/includes/continents-cities.php:334 +msgid "Tel Aviv" +msgstr "Tel Aviv" + +#: wp-admin/includes/continents-cities.php:333 +msgid "Tehran" +msgstr "Teherán" + +#: wp-admin/includes/continents-cities.php:332 +msgid "Tbilisi" +msgstr "Tbilisi" + +#: wp-admin/includes/continents-cities.php:331 +msgid "Tashkent" +msgstr "Tashkent" + +#: wp-admin/includes/continents-cities.php:330 +msgid "Taipei" +msgstr "Taipei" + +#: wp-admin/includes/continents-cities.php:328 +msgid "Singapore" +msgstr "Singapur" + +#: wp-admin/includes/continents-cities.php:327 +msgid "Shanghai" +msgstr "Shanghái" + +#: wp-admin/includes/continents-cities.php:326 +msgid "Seoul" +msgstr "Seúl" + +#: wp-admin/includes/continents-cities.php:325 +msgid "Samarkand" +msgstr "Samarcanda" + +#: wp-admin/includes/continents-cities.php:324 +msgid "Sakhalin" +msgstr "Sakhalin" + +#: wp-admin/includes/continents-cities.php:323 +msgid "Saigon" +msgstr "Saigón" + +#: wp-admin/includes/continents-cities.php:322 +msgid "Riyadh" +msgstr "Riad" + +#: wp-admin/includes/continents-cities.php:321 +msgid "Rangoon" +msgstr "Rangún" + +#: wp-admin/includes/continents-cities.php:320 +msgid "Qyzylorda" +msgstr "Qyzylorda" + +#: wp-admin/includes/continents-cities.php:318 +msgid "Qatar" +msgstr "Catar" + +#: wp-admin/includes/continents-cities.php:317 +msgid "Pyongyang" +msgstr "Pyongyang" + +#: wp-admin/includes/continents-cities.php:316 +msgid "Pontianak" +msgstr "Pontianak" + +#: wp-admin/includes/continents-cities.php:315 +msgid "Phnom Penh" +msgstr "Phnom Penh" + +#: wp-admin/includes/continents-cities.php:314 +msgid "Oral" +msgstr "Oral" + +#: wp-admin/includes/continents-cities.php:313 +msgid "Omsk" +msgstr "Omsk" + +#: wp-admin/includes/continents-cities.php:312 +msgid "Novosibirsk" +msgstr "Novosibirsk" + +#: wp-admin/includes/continents-cities.php:310 +msgid "Nicosia" +msgstr "Nicosia" + +#: wp-admin/includes/continents-cities.php:309 +msgid "Muscat" +msgstr "Mascate" + +#: wp-admin/includes/continents-cities.php:308 +msgid "Manila" +msgstr "Manila" + +#: wp-admin/includes/continents-cities.php:307 +msgid "Makassar" +msgstr "Makassar" + +#: wp-admin/includes/continents-cities.php:306 +msgid "Magadan" +msgstr "Magadan" + +#: wp-admin/includes/continents-cities.php:305 +msgid "Macau" +msgstr "Macao" + +#: wp-admin/includes/continents-cities.php:304 +msgid "Macao" +msgstr "Macao" + +#: wp-admin/includes/continents-cities.php:303 +msgid "Kuwait" +msgstr "Kuwait" + +#: wp-admin/includes/continents-cities.php:302 +msgid "Kuching" +msgstr "Kuching" + +#: wp-admin/includes/continents-cities.php:301 +msgid "Kuala Lumpur" +msgstr "Kuala Lumpur" + +#: wp-admin/includes/continents-cities.php:300 +msgid "Krasnoyarsk" +msgstr "Krasnoyarsk" + +#: wp-admin/includes/continents-cities.php:299 +msgid "Kolkata" +msgstr "Kolkata" + +#: wp-admin/includes/continents-cities.php:297 +msgid "Katmandu" +msgstr "Katmandú" + +#: wp-admin/includes/continents-cities.php:295 +msgid "Kashgar" +msgstr "Kashgar" + +#: wp-admin/includes/continents-cities.php:294 +msgid "Karachi" +msgstr "Karachi" + +#: wp-admin/includes/continents-cities.php:293 +msgid "Kamchatka" +msgstr "Kamchatka" + +#: wp-admin/includes/continents-cities.php:292 +msgid "Kabul" +msgstr "Kabul" + +#: wp-admin/includes/continents-cities.php:291 +msgid "Jerusalem" +msgstr "Jerusalén" + +#: wp-admin/includes/continents-cities.php:290 +msgid "Jayapura" +msgstr "Jayapura" + +#: wp-admin/includes/continents-cities.php:289 +msgid "Jakarta" +msgstr "Jakarta" + +#: wp-admin/includes/continents-cities.php:447 +msgid "Istanbul" +msgstr "Estambul" + +#: wp-admin/includes/continents-cities.php:288 +msgid "Irkutsk" +msgstr "Irkutsk" + +#: wp-admin/includes/continents-cities.php:287 +msgid "Hovd" +msgstr "Hovd" + +#: wp-admin/includes/continents-cities.php:286 +msgid "Hong Kong" +msgstr "Hong Kong" + +#: wp-admin/includes/continents-cities.php:285 +msgid "Ho Chi Minh" +msgstr "Ho Chi Minh" + +#: wp-admin/includes/continents-cities.php:283 +msgid "Harbin" +msgstr "Harbin" + +#: wp-admin/includes/continents-cities.php:282 +msgid "Gaza" +msgstr "Gaza" + +#: wp-admin/includes/continents-cities.php:280 +msgid "Dushanbe" +msgstr "Dushanbe" + +#: wp-admin/includes/continents-cities.php:279 +msgid "Dubai" +msgstr "Dubai" + +#: wp-admin/includes/continents-cities.php:278 +msgid "Dili" +msgstr "Dili" + +#: wp-admin/includes/continents-cities.php:277 +msgid "Dhaka" +msgstr "Dhaka" + +#: wp-admin/includes/continents-cities.php:276 +msgid "Damascus" +msgstr "Damasco" + +#: wp-admin/includes/continents-cities.php:275 +msgid "Dacca" +msgstr "Dacca" + +#: wp-admin/includes/continents-cities.php:274 +msgid "Colombo" +msgstr "Colombo" + +#: wp-admin/includes/continents-cities.php:273 +msgid "Chungking" +msgstr "Chungking" + +#: wp-admin/includes/continents-cities.php:272 +msgid "Chongqing" +msgstr "Chongqing" + +#: wp-admin/includes/continents-cities.php:271 +msgid "Choibalsan" +msgstr "Choibalsan" + +#: wp-admin/includes/continents-cities.php:269 +msgid "Calcutta" +msgstr "Calcuta" + +#: wp-admin/includes/continents-cities.php:268 +msgid "Brunei" +msgstr "Brunei" + +#: wp-admin/includes/continents-cities.php:267 +msgid "Bishkek" +msgstr "Bishkek" + +#: wp-admin/includes/continents-cities.php:266 +msgid "Beirut" +msgstr "Beirut" + +#: wp-admin/includes/continents-cities.php:264 +msgid "Bangkok" +msgstr "Bangkok" + +#: wp-admin/includes/continents-cities.php:263 +msgid "Baku" +msgstr "Bakú" + +#: wp-admin/includes/continents-cities.php:262 +msgid "Bahrain" +msgstr "Baréin" + +#: wp-admin/includes/continents-cities.php:261 +msgid "Baghdad" +msgstr "Bagdad" + +#: wp-admin/includes/continents-cities.php:259 +msgid "Ashkhabad" +msgstr "Ashkhabad" + +#: wp-admin/includes/continents-cities.php:258 +msgid "Ashgabat" +msgstr "Ashgabat" + +#: wp-admin/includes/continents-cities.php:257 +msgid "Aqtobe" +msgstr "Aqtobe" + +#: wp-admin/includes/continents-cities.php:256 +msgid "Aqtau" +msgstr "Aqtau" + +#: wp-admin/includes/continents-cities.php:255 +msgid "Anadyr" +msgstr "Anadyr" + +#: wp-admin/includes/continents-cities.php:254 +msgid "Amman" +msgstr "Amman" + +#: wp-admin/includes/continents-cities.php:253 +msgid "Almaty" +msgstr "Almaty" + +#: wp-admin/includes/continents-cities.php:252 +msgid "Aden" +msgstr "Aden" + +#: wp-admin/includes/continents-cities.php:251 +msgid "Asia" +msgstr "Asia" + +#: wp-admin/includes/continents-cities.php:249 +msgid "Longyearbyen" +msgstr "Longyearbyen" + +#: wp-admin/includes/continents-cities.php:248 +msgid "Arctic" +msgstr "Ártico" + +#: wp-admin/includes/continents-cities.php:246 +msgid "Vostok" +msgstr "Vostok" + +#: wp-admin/includes/continents-cities.php:244 +msgid "Syowa" +msgstr "Syowa" + +#: wp-admin/includes/continents-cities.php:243 +msgid "South Pole" +msgstr "Polo Sur" + +#: wp-admin/includes/continents-cities.php:242 +msgid "Rothera" +msgstr "Rothera" + +#: wp-admin/includes/continents-cities.php:241 +msgid "Palmer" +msgstr "Palmer" + +#: wp-admin/includes/continents-cities.php:240 +msgid "McMurdo" +msgstr "McMurdo" + +#: wp-admin/includes/continents-cities.php:239 +msgid "Mawson" +msgstr "Mawson" + +#: wp-admin/includes/continents-cities.php:237 +msgid "DumontDUrville" +msgstr "DumontDUrville" + +#: wp-admin/includes/continents-cities.php:236 +msgid "Davis" +msgstr "Davis" + +#: wp-admin/includes/continents-cities.php:235 +msgid "Casey" +msgstr "Casey" + +#: wp-admin/includes/continents-cities.php:234 +msgid "Antarctica" +msgstr "Antártida" + +#: wp-admin/includes/continents-cities.php:232 +msgid "Yellowknife" +msgstr "Yellowknife" + +#: wp-admin/includes/continents-cities.php:231 +msgid "Yakutat" +msgstr "Yakutat" + +#: wp-admin/includes/continents-cities.php:230 +msgid "Winnipeg" +msgstr "Winnipeg" + +#: wp-admin/includes/continents-cities.php:229 +msgid "Whitehorse" +msgstr "Whitehorse" + +#: wp-admin/includes/continents-cities.php:228 +msgid "Virgin" +msgstr "Virgin" + +#: wp-admin/includes/continents-cities.php:227 +msgid "Vancouver" +msgstr "Vancouver" + +#: wp-admin/includes/continents-cities.php:226 +msgid "Tortola" +msgstr "Tortola" + +#: wp-admin/includes/continents-cities.php:225 +msgid "Toronto" +msgstr "Toronto" + +#: wp-admin/includes/continents-cities.php:224 +msgid "Tijuana" +msgstr "Tijuana" + +#: wp-admin/includes/continents-cities.php:223 +msgid "Thunder Bay" +msgstr "Thunder Bay" + +#: wp-admin/includes/continents-cities.php:222 +msgid "Thule" +msgstr "Thule" + +#: wp-admin/includes/continents-cities.php:221 +msgid "Tegucigalpa" +msgstr "Tegucigalpa" + +#: wp-admin/includes/continents-cities.php:220 +msgid "Swift Current" +msgstr "Swift Current" + +#: wp-admin/includes/continents-cities.php:219 +msgid "St Vincent" +msgstr "San Vincente" + +#: wp-admin/includes/continents-cities.php:218 +msgid "St Thomas" +msgstr "Santo Tomás" + +#: wp-admin/includes/continents-cities.php:217 +msgid "St Lucia" +msgstr "Santa Lucía" + +#: wp-admin/includes/continents-cities.php:216 +msgid "St Kitts" +msgstr "St Kitts" + +#: wp-admin/includes/continents-cities.php:215 +msgid "St Johns" +msgstr "St Johns" + +#: wp-admin/includes/continents-cities.php:214 +msgid "St Barthelemy" +msgstr "St Barthelemy" + +#: wp-admin/includes/continents-cities.php:212 +msgid "Shiprock" +msgstr "Shiprock" + +#: wp-admin/includes/continents-cities.php:211 +msgid "Scoresbysund" +msgstr "Scoresbysund" + +#: wp-admin/includes/continents-cities.php:210 +msgid "Sao Paulo" +msgstr "Sao Paulo" + +#: wp-admin/includes/continents-cities.php:209 +msgid "Santo Domingo" +msgstr "Santo Domingo" + +#: wp-admin/includes/continents-cities.php:208 +msgid "Santiago" +msgstr "Santiago" + +#: wp-admin/includes/continents-cities.php:205 +msgid "Rosario" +msgstr "Rosario" + +#: wp-admin/includes/continents-cities.php:204 +msgid "Rio Branco" +msgstr "Río Branco" + +#: wp-admin/includes/continents-cities.php:203 +msgid "Resolute" +msgstr "Resolute" + +#: wp-admin/includes/continents-cities.php:202 +msgid "Regina" +msgstr "Regina" + +#: wp-admin/includes/continents-cities.php:201 +msgid "Recife" +msgstr "Recife" + +#: wp-admin/includes/continents-cities.php:200 +msgid "Rankin Inlet" +msgstr "Rankin Inlet" + +#: wp-admin/includes/continents-cities.php:199 +msgid "Rainy River" +msgstr "Rainy River" + +#: wp-admin/includes/continents-cities.php:197 +msgid "Puerto Rico" +msgstr "Puerto Rico" + +#: wp-admin/includes/continents-cities.php:196 +msgid "Porto Velho" +msgstr "Porto Velho" + +#: wp-admin/includes/continents-cities.php:195 +msgid "Porto Acre" +msgstr "Porto Acre" + +#: wp-admin/includes/continents-cities.php:194 +msgid "Port of Spain" +msgstr "Puerto España" + +#: wp-admin/includes/continents-cities.php:193 +msgid "Port-au-Prince" +msgstr "Puerto Príncipe" + +#: wp-admin/includes/continents-cities.php:192 +msgid "Phoenix" +msgstr "Phoenix" + +#: wp-admin/includes/continents-cities.php:191 +msgid "Paramaribo" +msgstr "Paramaribo" + +#: wp-admin/includes/continents-cities.php:190 +msgid "Pangnirtung" +msgstr "Pangnirtung" + +#: wp-admin/includes/continents-cities.php:189 +msgid "Panama" +msgstr "Panamá" + +#: wp-admin/includes/continents-cities.php:186 +msgid "New Salem" +msgstr "New Salem" + +#: wp-admin/includes/continents-cities.php:185 +msgid "Center" +msgstr "Center" + +#: wp-admin/includes/continents-cities.php:183 +msgid "North Dakota" +msgstr "Dakota del Norte" + +#: wp-admin/includes/continents-cities.php:182 +msgid "Noronha" +msgstr "Noronha" + +#: wp-admin/includes/continents-cities.php:181 +msgid "Nome" +msgstr "Nome" + +#: wp-admin/includes/continents-cities.php:180 +msgid "Nipigon" +msgstr "Nipigon" + +#: wp-admin/includes/continents-cities.php:179 +msgid "New York" +msgstr "Nueva York" + +#: wp-admin/includes/continents-cities.php:178 +msgid "Nassau" +msgstr "Nassau" + +#: wp-admin/includes/continents-cities.php:177 +msgid "Montserrat" +msgstr "Montserrat" + +#: wp-admin/includes/continents-cities.php:176 +msgid "Montreal" +msgstr "Montreal" + +#: wp-admin/includes/continents-cities.php:175 +msgid "Montevideo" +msgstr "Montevideo" + +#: wp-admin/includes/continents-cities.php:174 +msgid "Monterrey" +msgstr "Monterrey" + +#: wp-admin/includes/continents-cities.php:173 +msgid "Moncton" +msgstr "Moncton" + +#: wp-admin/includes/continents-cities.php:172 +msgid "Miquelon" +msgstr "Miquelon" + +#: wp-admin/includes/continents-cities.php:171 +msgid "Mexico City" +msgstr "Ciudad de México" + +#: wp-admin/includes/continents-cities.php:169 +msgid "Merida" +msgstr "Mérida" + +#: wp-admin/includes/continents-cities.php:168 +msgid "Menominee" +msgstr "Menominee" + +#: wp-admin/includes/continents-cities.php:167 +msgid "Mazatlan" +msgstr "Mazatlán" + +#: wp-admin/includes/continents-cities.php:165 +msgid "Martinique" +msgstr "Martinica" + +#: wp-admin/includes/continents-cities.php:164 +msgid "Marigot" +msgstr "Marigot" + +#: wp-admin/includes/continents-cities.php:163 +msgid "Manaus" +msgstr "Manaos" + +#: wp-admin/includes/continents-cities.php:162 +msgid "Managua" +msgstr "Managua" + +#: wp-admin/includes/continents-cities.php:161 +msgid "Maceio" +msgstr "Maceio" + +#: wp-admin/includes/continents-cities.php:159 +msgid "Los Angeles" +msgstr "Los Ángeles" + +#: wp-admin/includes/continents-cities.php:158 +msgid "Lima" +msgstr "Lima" + +#: wp-admin/includes/continents-cities.php:157 +msgid "La Paz" +msgstr "La Paz" + +#: wp-admin/includes/continents-cities.php:155 +msgid "Knox IN" +msgstr "Knox IN" + +#: wp-admin/includes/continents-cities.php:154 +msgid "Monticello" +msgstr "Monticello" + +#: wp-admin/includes/continents-cities.php:153 +msgid "Louisville" +msgstr "Louisville" + +#: wp-admin/includes/continents-cities.php:152 +msgid "Kentucky" +msgstr "Kentucky" + +#: wp-admin/includes/continents-cities.php:151 +msgid "Juneau" +msgstr "Juneau" + +#: wp-admin/includes/continents-cities.php:150 +msgid "Jamaica" +msgstr "Jamaica" + +#: wp-admin/includes/continents-cities.php:149 +msgid "Iqaluit" +msgstr "Iqaluit" + +#: wp-admin/includes/continents-cities.php:148 +msgid "Inuvik" +msgstr "Inuvik" + +#: wp-admin/includes/continents-cities.php:147 +msgid "Winamac" +msgstr "Winamac" + +#: wp-admin/includes/continents-cities.php:146 +msgid "Vincennes" +msgstr "Vincennes" + +#: wp-admin/includes/continents-cities.php:145 +msgid "Vevay" +msgstr "Vevay" + +#: wp-admin/includes/continents-cities.php:144 +msgid "Tell City" +msgstr "Tell City" + +#: wp-admin/includes/continents-cities.php:143 +msgid "Petersburg" +msgstr "San Petersburgo" + +#: wp-admin/includes/continents-cities.php:142 +msgid "Marengo" +msgstr "Marengo" + +#: wp-admin/includes/continents-cities.php:141 +msgid "Knox" +msgstr "Knox" + +#: wp-admin/includes/continents-cities.php:140 +msgid "Indianapolis" +msgstr "Indianápolis" + +#: wp-admin/includes/continents-cities.php:139 +msgid "Indiana" +msgstr "Indiana" + +#: wp-admin/includes/continents-cities.php:138 +msgid "Hermosillo" +msgstr "Hermosillo" + +#: wp-admin/includes/continents-cities.php:137 +msgid "Havana" +msgstr "La Habana" + +#: wp-admin/includes/continents-cities.php:136 +msgid "Halifax" +msgstr "Halifax" + +#: wp-admin/includes/continents-cities.php:135 +msgid "Guyana" +msgstr "Guyana" + +#: wp-admin/includes/continents-cities.php:134 +msgid "Guayaquil" +msgstr "Guayaquil" + +#: wp-admin/includes/continents-cities.php:133 +msgid "Guatemala" +msgstr "Guatemala" + +#: wp-admin/includes/continents-cities.php:132 +msgid "Guadeloupe" +msgstr "Guadalupe" + +#: wp-admin/includes/continents-cities.php:131 +msgid "Grenada" +msgstr "Grenada" + +#: wp-admin/includes/continents-cities.php:130 +msgid "Grand Turk" +msgstr "Gran Turca" + +#: wp-admin/includes/continents-cities.php:129 +msgid "Goose Bay" +msgstr "Goose Bay" + +#: wp-admin/includes/continents-cities.php:128 +msgid "Godthab" +msgstr "Godthab" + +#: wp-admin/includes/continents-cities.php:127 +msgid "Glace Bay" +msgstr "Glace Bay" + +#: wp-admin/includes/continents-cities.php:126 +msgid "Fortaleza" +msgstr "Fortaleza" + +#: wp-admin/includes/continents-cities.php:125 +msgid "Fort Wayne" +msgstr "Fort Wayne" + +#: wp-admin/includes/continents-cities.php:123 +msgid "Ensenada" +msgstr "Ensenada" + +#: wp-admin/includes/continents-cities.php:122 +msgid "El Salvador" +msgstr "El Salvador" + +#: wp-admin/includes/continents-cities.php:121 +msgid "Eirunepe" +msgstr "Eirunepe" + +#: wp-admin/includes/continents-cities.php:120 +msgid "Edmonton" +msgstr "Edmonton" + +#: wp-admin/includes/continents-cities.php:119 +msgid "Dominica" +msgstr "Dominica" + +#: wp-admin/includes/continents-cities.php:118 +msgid "Detroit" +msgstr "Detroit" + +#: wp-admin/includes/continents-cities.php:117 +msgid "Denver" +msgstr "Denver" + +#: wp-admin/includes/continents-cities.php:116 +msgid "Dawson Creek" +msgstr "Dawson Creek" + +#: wp-admin/includes/continents-cities.php:115 +msgid "Dawson" +msgstr "Dawson" + +#: wp-admin/includes/continents-cities.php:114 +msgid "Danmarkshavn" +msgstr "Danmarkshavn" + +#: wp-admin/includes/continents-cities.php:113 +msgid "Curacao" +msgstr "Curazao" + +#: wp-admin/includes/continents-cities.php:112 +msgid "Cuiaba" +msgstr "Cuiaba" + +#: wp-admin/includes/continents-cities.php:110 +msgid "Costa Rica" +msgstr "Costa Rica" + +#: wp-admin/includes/continents-cities.php:109 +msgid "Coral Harbour" +msgstr "Coral Harbour" + +#: wp-admin/includes/continents-cities.php:108 +msgid "Chihuahua" +msgstr "Chihuahua" + +#: wp-admin/includes/continents-cities.php:107 +msgid "Chicago" +msgstr "Chicago" + +#: wp-admin/includes/continents-cities.php:106 +msgid "Cayman" +msgstr "Caimán" + +#: wp-admin/includes/continents-cities.php:105 +msgid "Cayenne" +msgstr "Cayena" + +#: wp-admin/includes/continents-cities.php:104 +msgid "Caracas" +msgstr "Caracas" + +#: wp-admin/includes/continents-cities.php:103 +msgid "Cancun" +msgstr "Cancún" + +#: wp-admin/includes/continents-cities.php:102 +msgid "Campo Grande" +msgstr "Campo Grande" + +#: wp-admin/includes/continents-cities.php:101 +msgid "Cambridge Bay" +msgstr "Cambridge Bay" + +#: wp-admin/includes/continents-cities.php:100 +msgid "Boise" +msgstr "Boise" + +#: wp-admin/includes/continents-cities.php:99 +msgid "Bogota" +msgstr "Bogotá" + +#: wp-admin/includes/continents-cities.php:98 +msgid "Boa Vista" +msgstr "Boa Vista" + +#: wp-admin/includes/continents-cities.php:97 +msgid "Blanc-Sablon" +msgstr "Blanc-Sablon" + +#: wp-admin/includes/continents-cities.php:96 +msgid "Belize" +msgstr "Belice" + +#: wp-admin/includes/continents-cities.php:95 +msgid "Belem" +msgstr "Belén" + +#: wp-admin/includes/continents-cities.php:94 +msgid "Barbados" +msgstr "Barbados" + +#: wp-admin/includes/continents-cities.php:92 +msgid "Bahia" +msgstr "Bahía" + +#: wp-admin/includes/continents-cities.php:91 +msgid "Atka" +msgstr "Atka" + +#: wp-admin/includes/continents-cities.php:90 +msgid "Atikokan" +msgstr "Atikokan" + +#: wp-admin/includes/continents-cities.php:89 +msgid "Asuncion" +msgstr "Asunción" + +#: wp-admin/includes/continents-cities.php:88 +msgid "Aruba" +msgstr "Aruba" + +#: wp-admin/includes/continents-cities.php:87 +msgid "Ushuaia" +msgstr "Ushuaia" + +#: wp-admin/includes/continents-cities.php:86 +msgid "Tucuman" +msgstr "Tucumán" + +#: wp-admin/includes/continents-cities.php:85 +msgid "San Luis" +msgstr "San Luis" + +#: wp-admin/includes/continents-cities.php:84 +msgid "San Juan" +msgstr "San Juan" + +#: wp-admin/includes/continents-cities.php:82 +msgid "Rio Gallegos" +msgstr "Río Gallegos" + +#: wp-admin/includes/continents-cities.php:81 +msgid "Mendoza" +msgstr "Mendoza" + +#: wp-admin/includes/continents-cities.php:80 +msgid "La Rioja" +msgstr "La Rioja" + +#: wp-admin/includes/continents-cities.php:79 +msgid "Jujuy" +msgstr "Jujuy" + +#: wp-admin/includes/continents-cities.php:78 +msgid "Cordoba" +msgstr "Córdoba" + +#: wp-admin/includes/continents-cities.php:77 +msgid "ComodRivadavia" +msgstr "Comodoro Rivadavia" + +#: wp-admin/includes/continents-cities.php:76 +msgid "Catamarca" +msgstr "Catamarca" + +#: wp-admin/includes/continents-cities.php:75 +msgid "Buenos Aires" +msgstr "Buenos Aires" + +#: wp-admin/includes/continents-cities.php:74 +msgid "Argentina" +msgstr "Argentina" + +#: wp-admin/includes/continents-cities.php:73 +msgid "Araguaina" +msgstr "Araguaina" + +#: wp-admin/includes/continents-cities.php:72 +msgid "Antigua" +msgstr "Antigua" + +#: wp-admin/includes/continents-cities.php:71 +msgid "Anguilla" +msgstr "Anguila" + +#: wp-admin/includes/continents-cities.php:70 +msgid "Anchorage" +msgstr "Anchorage" + +#: wp-admin/includes/continents-cities.php:69 +msgid "Adak" +msgstr "Adak" + +#: wp-admin/includes/continents-cities.php:68 +msgid "America" +msgstr "América" + +#: wp-admin/includes/continents-cities.php:66 +msgid "Windhoek" +msgstr "Windhoek" + +#: wp-admin/includes/continents-cities.php:65 +msgid "Tunis" +msgstr "Túnez" + +#: wp-admin/includes/continents-cities.php:64 +msgid "Tripoli" +msgstr "Trípoli" + +#: wp-admin/includes/continents-cities.php:63 +msgid "Timbuktu" +msgstr "Tombuctú" + +#: wp-admin/includes/continents-cities.php:62 +msgid "Sao Tome" +msgstr "Santo Tomé" + +#: wp-admin/includes/continents-cities.php:61 +msgid "Porto-Novo" +msgstr "Porto-Novo" + +#: wp-admin/includes/continents-cities.php:60 +msgid "Ouagadougou" +msgstr "Ouagadougou" + +#: wp-admin/includes/continents-cities.php:59 +msgid "Nouakchott" +msgstr "Nouakchott" + +#: wp-admin/includes/continents-cities.php:58 +msgid "Niamey" +msgstr "Niamey" + +#: wp-admin/includes/continents-cities.php:57 +msgid "Ndjamena" +msgstr "Ndjamena" + +#: wp-admin/includes/continents-cities.php:56 +msgid "Nairobi" +msgstr "Nairobi" + +#: wp-admin/includes/continents-cities.php:55 +msgid "Monrovia" +msgstr "Monrovia" + +#: wp-admin/includes/continents-cities.php:54 +msgid "Mogadishu" +msgstr "Mogadiscio" + +#: wp-admin/includes/continents-cities.php:53 +msgid "Mbabane" +msgstr "Mbabane" + +#: wp-admin/includes/continents-cities.php:52 +msgid "Maseru" +msgstr "Maseru" + +#: wp-admin/includes/continents-cities.php:51 +msgid "Maputo" +msgstr "Maputo" + +#: wp-admin/includes/continents-cities.php:50 +msgid "Malabo" +msgstr "Malabo" + +#: wp-admin/includes/continents-cities.php:49 +msgid "Lusaka" +msgstr "Lusaka" + +#: wp-admin/includes/continents-cities.php:48 +msgid "Lubumbashi" +msgstr "Lubumbashi" + +#: wp-admin/includes/continents-cities.php:47 +msgid "Luanda" +msgstr "Luanda" + +#: wp-admin/includes/continents-cities.php:46 +msgid "Lome" +msgstr "Lome" + +#: wp-admin/includes/continents-cities.php:45 +msgid "Libreville" +msgstr "Libreville" + +#: wp-admin/includes/continents-cities.php:44 +msgid "Lagos" +msgstr "Lagos" + +#: wp-admin/includes/continents-cities.php:43 +msgid "Kinshasa" +msgstr "Kinshasa" + +#: wp-admin/includes/continents-cities.php:42 +msgid "Kigali" +msgstr "Kigali" + +#: wp-admin/includes/continents-cities.php:41 +msgid "Khartoum" +msgstr "Jartum" + +#: wp-admin/includes/continents-cities.php:40 +msgid "Kampala" +msgstr "Kampala" + +#: wp-admin/includes/continents-cities.php:38 +msgid "Johannesburg" +msgstr "Johanesburgo" + +#: wp-admin/includes/continents-cities.php:37 +msgid "Harare" +msgstr "Harare" + +#: wp-admin/includes/continents-cities.php:36 +msgid "Gaborone" +msgstr "Gaborone" + +#: wp-admin/includes/continents-cities.php:35 +msgid "Freetown" +msgstr "Freetown" + +#: wp-admin/includes/continents-cities.php:34 +msgid "El Aaiun" +msgstr "El Aaiún" + +#: wp-admin/includes/continents-cities.php:33 +msgid "Douala" +msgstr "Douala" + +#: wp-admin/includes/continents-cities.php:32 +msgid "Djibouti" +msgstr "Yibuti" + +#: wp-admin/includes/continents-cities.php:31 +msgid "Dar es Salaam" +msgstr "Dar es Salaam" + +#: wp-admin/includes/continents-cities.php:30 +msgid "Dakar" +msgstr "Dakar" + +#: wp-admin/includes/continents-cities.php:29 +msgid "Conakry" +msgstr "Conakry" + +#: wp-admin/includes/continents-cities.php:28 +msgid "Ceuta" +msgstr "Ceuta" + +#: wp-admin/includes/continents-cities.php:27 +msgid "Casablanca" +msgstr "Casablanca" + +#: wp-admin/includes/continents-cities.php:26 +msgid "Cairo" +msgstr "El Cairo" + +#: wp-admin/includes/continents-cities.php:25 +msgid "Bujumbura" +msgstr "Bujumbura" + +#: wp-admin/includes/continents-cities.php:24 +msgid "Brazzaville" +msgstr "Brazzaville" + +#: wp-admin/includes/continents-cities.php:23 +msgid "Blantyre" +msgstr "Blantyre" + +#: wp-admin/includes/continents-cities.php:22 +msgid "Bissau" +msgstr "Bisáu" + +#: wp-admin/includes/continents-cities.php:21 +msgid "Banjul" +msgstr "Banjul" + +#: wp-admin/includes/continents-cities.php:20 +msgid "Bangui" +msgstr "Bangui" + +#: wp-admin/includes/continents-cities.php:19 +msgid "Bamako" +msgstr "Bamako" + +#: wp-admin/includes/continents-cities.php:18 +msgid "Asmera" +msgstr "Asmera" + +#: wp-admin/includes/continents-cities.php:17 +msgid "Asmara" +msgstr "Asmara" + +#: wp-admin/includes/continents-cities.php:16 +msgid "Algiers" +msgstr "Argel" + +#: wp-admin/includes/continents-cities.php:15 +msgid "Addis Ababa" +msgstr "Addis Abeba" + +#: wp-admin/includes/continents-cities.php:14 +msgid "Accra" +msgstr "Accra" + +#: wp-admin/includes/continents-cities.php:13 +msgid "Abidjan" +msgstr "Abidjan" + +#: wp-admin/includes/continents-cities.php:12 +msgid "Africa" +msgstr "África" \ No newline at end of file diff --git a/wp-content/languages/es_ES-0cc31205f20441b3df1d1b46100f6b8d.json b/wp-content/languages/es_ES-0cc31205f20441b3df1d1b46100f6b8d.json new file mode 100644 index 0000000..b9671e5 --- /dev/null +++ b/wp-content/languages/es_ES-0cc31205f20441b3df1d1b46100f6b8d.json @@ -0,0 +1 @@ +{"translation-revision-date":"2025-12-01 08:15:40+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"es"},"The suggested policy text has been copied to your clipboard.":["El texto sugerido de la pol\u00edtica ha sido copiado a tu portapapeles."],"This user’s personal data export file was downloaded.":["Se ha descargado el archivo de exportaci\u00f3n de datos personales de este usuario."],"This user’s personal data export link was sent.":["Se ha enviado el enlace de exportaci\u00f3n de datos personales de este usuario."],"An error occurred while attempting to find and erase personal data.":["Ha ocurrido un error al intentar encontrar y borrar los datos personales."],"Personal data was found for this user but some of the personal data found was not erased.":["Se han encontrado datos personales de este usuario, pero algunos de los datos personales encontrados no se han borrado."],"All of the personal data found for this user was erased.":["Se han borrado todos los datos personales encontrados de este usuario."],"Personal data was found for this user but was not erased.":["Se han encontrado datos personales de este usuario, pero no se han borrado."],"No personal data was found for this user.":["No se han encontrado datos personales de este usuario."],"An error occurred while attempting to export personal data.":["Ha ocurrido un error al intentar exportar los datos personales."],"No personal data export file was generated.":["No se ha generado ning\u00fan archivo de exportaci\u00f3n de datos personales."]}},"comment":{"reference":"wp-admin\/js\/privacy-tools.js"}} \ No newline at end of file diff --git a/wp-content/languages/es_ES-0ce75ad2f775d1cac9696967d484808c.json b/wp-content/languages/es_ES-0ce75ad2f775d1cac9696967d484808c.json new file mode 100644 index 0000000..97aad7e --- /dev/null +++ b/wp-content/languages/es_ES-0ce75ad2f775d1cac9696967d484808c.json @@ -0,0 +1 @@ +{"translation-revision-date":"2026-01-07 19:47:18+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"es"},"Editor tips":["Consejos del editor"],"Disable tips":["Desactivar los consejos"],"Got it":["Entendido"],"See next tip":["Ver el siguiente consejo"]}},"comment":{"reference":"wp-includes\/js\/dist\/nux.js"}} \ No newline at end of file diff --git a/wp-content/languages/es_ES-0eebe503220d4a00341eb011b92769b4.json b/wp-content/languages/es_ES-0eebe503220d4a00341eb011b92769b4.json new file mode 100644 index 0000000..26abb51 --- /dev/null +++ b/wp-content/languages/es_ES-0eebe503220d4a00341eb011b92769b4.json @@ -0,0 +1 @@ +{"translation-revision-date":"2025-12-01 08:15:40+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"es"},"%1$s is deprecated since version %2$s! Use %3$s instead. Please consider writing more inclusive code.":["\u00a1%1$s est\u00e1 obsoleto desde la versi\u00f3n %2$s! Usa %3$s en su lugar. Por favor, plant\u00e9ate escribir un c\u00f3digo m\u00e1s inclusivo."]}},"comment":{"reference":"wp-admin\/js\/password-strength-meter.js"}} \ No newline at end of file diff --git a/wp-content/languages/es_ES-17179a5f2930647c89151e365f843b6e.json b/wp-content/languages/es_ES-17179a5f2930647c89151e365f843b6e.json new file mode 100644 index 0000000..69d2812 --- /dev/null +++ b/wp-content/languages/es_ES-17179a5f2930647c89151e365f843b6e.json @@ -0,0 +1 @@ +{"translation-revision-date":"2026-01-07 19:47:18+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"es"},"%s applied.":["%s aplicado."],"%s removed.":["%s eliminado."]}},"comment":{"reference":"wp-includes\/js\/dist\/rich-text.js"}} \ No newline at end of file diff --git a/wp-content/languages/es_ES-1780a2033cf98d69ce13c2e5c8510004.json b/wp-content/languages/es_ES-1780a2033cf98d69ce13c2e5c8510004.json new file mode 100644 index 0000000..b01f5d9 --- /dev/null +++ b/wp-content/languages/es_ES-1780a2033cf98d69ce13c2e5c8510004.json @@ -0,0 +1 @@ +{"translation-revision-date":"2026-01-07 19:47:18+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"es"},"pattern (singular)\u0004Synced":["Sincronizado"],"Sync this pattern across multiple locations.":["Sincroniza este patr\u00f3n en varias ubicaciones."],"Unsynced pattern created: %s":["Patr\u00f3n no sincronizado creado: %s"],"Synced pattern created: %s":["Patr\u00f3n sincronizado creado: %s"],"Untitled pattern block":["Patr\u00f3n de bloque sin t\u00edtulo"],"My pattern":["Mi patr\u00f3n"],"Create pattern":["Crear patr\u00f3n"],"Manage patterns":["Gestionar patrones"],"Create":["Crear"],"Detach":["Desvincular"],"Cancel":["Cancelar"],"Name":["Nombre"]}},"comment":{"reference":"wp-includes\/js\/dist\/reusable-blocks.js"}} \ No newline at end of file diff --git a/wp-content/languages/es_ES-1a0cd6a7128913b15c1a10dd68951869.json b/wp-content/languages/es_ES-1a0cd6a7128913b15c1a10dd68951869.json new file mode 100644 index 0000000..019a8f3 --- /dev/null +++ b/wp-content/languages/es_ES-1a0cd6a7128913b15c1a10dd68951869.json @@ -0,0 +1 @@ +{"translation-revision-date":"2026-01-07 19:47:18+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"es"},"%1$s Block. Row %2$d":["Bloque %1$s. Fila %2$d"],"Design":["Dise\u00f1o"],"%s Block":["Bloque %s"],"%1$s Block. %2$s":["Bloque %1$s. %2$s"],"%1$s Block. Column %2$d":["Bloque %1$s. Columna %2$d"],"%1$s Block. Column %2$d. %3$s":["Bloque %1$s. Columna %2$d. %3$s"],"%1$s Block. Row %2$d. %3$s":["Bloque %1$s. Fila %2$d. %3$s"],"Reusable blocks":["Bloques reutilizables"],"Embeds":["Incrustados"],"Text":["Texto"],"Widgets":["Widgets"],"Theme":["Temas"],"Media":["Medios"]}},"comment":{"reference":"wp-includes\/js\/dist\/blocks.js"}} \ No newline at end of file diff --git a/wp-content/languages/es_ES-1bba9045bb07c89671c88a3f328548e8.json b/wp-content/languages/es_ES-1bba9045bb07c89671c88a3f328548e8.json new file mode 100644 index 0000000..a73fb3f --- /dev/null +++ b/wp-content/languages/es_ES-1bba9045bb07c89671c88a3f328548e8.json @@ -0,0 +1 @@ +{"translation-revision-date":"2026-01-07 19:47:18+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"es"},"Could not get a valid response from the server.":["No se pudo obtener una respuesta v\u00e1lida del servidor."],"Unable to connect. Please check your Internet connection.":["No se puede conectar. Revisa tu conexi\u00f3n a Internet."],"Media upload failed. If this is a photo or a large image, please scale it down and try again.":["La subida de medios ha fallado. Si esto es una foto o una imagen grande, por favor, reduce su tama\u00f1o e int\u00e9ntalo de nuevo."],"The response is not a valid JSON response.":["Las respuesta no es una respuesta JSON v\u00e1lida."]}},"comment":{"reference":"wp-includes\/js\/dist\/api-fetch.js"}} \ No newline at end of file diff --git a/wp-content/languages/es_ES-1c4303f02ff93b290e9faad991eeb06f.json b/wp-content/languages/es_ES-1c4303f02ff93b290e9faad991eeb06f.json new file mode 100644 index 0000000..475b84e --- /dev/null +++ b/wp-content/languages/es_ES-1c4303f02ff93b290e9faad991eeb06f.json @@ -0,0 +1 @@ +{"translation-revision-date":"2025-12-01 08:15:40+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"es"},"Submitted on:":["Enviado el:"],"%1$s %2$s, %3$s at %4$s:%5$s":["%2$s de %1$s de %3$s a las %4$s:%5$s"]}},"comment":{"reference":"wp-admin\/js\/comment.js"}} \ No newline at end of file diff --git a/wp-content/languages/es_ES-1d17475f620f63a92e2c5d2681c51ee8.json b/wp-content/languages/es_ES-1d17475f620f63a92e2c5d2681c51ee8.json new file mode 100644 index 0000000..1b3f792 --- /dev/null +++ b/wp-content/languages/es_ES-1d17475f620f63a92e2c5d2681c51ee8.json @@ -0,0 +1 @@ +{"translation-revision-date":"2025-12-01 08:15:40+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"es"},"Selected crop ratio exceeds the boundaries of the image. Try a different ratio.":["La proporci\u00f3n de recorte seleccionada excede los l\u00edmites de la imagen. Pruebe con otra proporci\u00f3n."],"Could not load the preview image.":["No se ha podido cargar la vista previa de la imagen."],"Could not load the preview image. Please reload the page and try again.":["No se puede cargar la vista previa de la imagen. Por favor, recarga la p\u00e1gina e int\u00e9ntalo de nuevo."],"Image updated.":["Imagen actualizada."]}},"comment":{"reference":"wp-admin\/js\/image-edit.js"}} \ No newline at end of file diff --git a/wp-content/languages/es_ES-2617ce121227a46077ede6c69aa9fcb5.json b/wp-content/languages/es_ES-2617ce121227a46077ede6c69aa9fcb5.json new file mode 100644 index 0000000..d629b9f --- /dev/null +++ b/wp-content/languages/es_ES-2617ce121227a46077ede6c69aa9fcb5.json @@ -0,0 +1 @@ +{"translation-revision-date":"2026-01-07 19:47:18+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"es"},"Overrides currently don't support image links. Remove the link first before enabling overrides.":["Las anulaciones actualmente no admiten enlaces de im\u00e1genes. Elimina primero el enlace antes de activar las anulaciones."],"pattern\u0004\"%s\" duplicated.":["\u00ab%s\u00bb duplicado."],"pattern\u0004%s (Copy)":["%s (copia)"],"These blocks are editable using overrides.":["Estos bloques son editables mediante anulaciones."],"This %1$s is editable using the \"%2$s\" override.":["Este %1$s es editable utilizando la anulaci\u00f3n \u00ab%2$s\u00bb."],"Allow changes to this block throughout instances of this pattern.":["Permite cambios en este bloque en todas las instancias de este patr\u00f3n."],"Disable":["Desactivar"],"Are you sure you want to disable overrides? Disabling overrides will revert all applied overrides for this block throughout instances of this pattern.":["\u00bfSeguro que quieres desactivar las modificaciones? Desactivar las modificaciones revertir\u00e1 todas las modificaciones aplicadas a este bloque en todas las instancias de este patr\u00f3n."],"Disable overrides":["Desactivar modificaciones"],"For example, if you are creating a recipe pattern, you use \"Recipe Title\", \"Recipe Description\", etc.":["Por ejemplo, si est\u00e1s creando un patr\u00f3n de recetas, utiliza \u00abT\u00edtulo de la receta\u00bb, \u00abDescripci\u00f3n de la receta\u00bb, etc."],"Overrides are changes you make to a block within a synced pattern instance. Use overrides to customize a synced pattern instance to suit its new context. Name this block to specify an override.":["Las modificaciones son cambios que haces en un bloque dentro de una instancia de patr\u00f3n sincronizada. Utiliza las modificaciones para adaptar una instancia de patr\u00f3n sincronizado a su nuevo contexto. Nombra este bloque para especificar su nueva modificaci\u00f3n."],"Enable overrides":["Activar modificaciones"],"Overrides":["Modificaciones"],"pattern (singular)\u0004Synced":["Sincronizado"],"Pattern category renamed.":["Categor\u00eda de patrones renombrada."],"This category already exists. Please use a different name.":["Esta categor\u00eda ya existe. Por favor, usa un nombre diferente."],"Please enter a new name for this category.":["Por favor, introduce un nombre nuevo para esta categor\u00eda."],"Pattern renamed":["Patr\u00f3n renombrado"],"Sync this pattern across multiple locations.":["Sincroniza este patr\u00f3n en varias ubicaciones."],"Duplicate pattern":["Duplicar patr\u00f3n"],"Block name changed to: \"%s\".":["El nombre del bloque ha cambiado a \u00ab%s\u00bb."],"Unsynced pattern created: %s":["Patr\u00f3n no sincronizado creado: %s"],"Synced pattern created: %s":["Patr\u00f3n sincronizado creado: %s"],"My pattern":["Mi patr\u00f3n"],"Create pattern":["Crear patr\u00f3n"],"An error occurred while renaming the pattern.":["Se ha producido un error al renombrar el patr\u00f3n."],"Manage patterns":["Gestionar patrones"],"Rename":["Renombrar"],"Duplicate":["Duplicar"],"Reset":["Restablecer"],"Detach":["Desvincular"],"Enable":["Activar"],"Add":["A\u00f1adir"],"Cancel":["Cancelar"],"Name":["Nombre"],"Categories":["Categor\u00edas"],"Save":["Guardar"]}},"comment":{"reference":"wp-includes\/js\/dist\/patterns.js"}} \ No newline at end of file diff --git a/wp-content/languages/es_ES-270d72d1cff17227d37f3244759cbecb.json b/wp-content/languages/es_ES-270d72d1cff17227d37f3244759cbecb.json new file mode 100644 index 0000000..6a86b56 --- /dev/null +++ b/wp-content/languages/es_ES-270d72d1cff17227d37f3244759cbecb.json @@ -0,0 +1 @@ +{"translation-revision-date":"2026-01-07 19:47:18+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"es"},"Search commands and settings":["Busca comandos y ajustes"],"Command suggestions":["Sugerencias de comandos"],"Command palette":["Paleta de comandos"],"Open the command palette.":["Abrir la paleta de comandos"],"No results found.":["No se han encontrado resultados."]}},"comment":{"reference":"wp-includes\/js\/dist\/commands.js"}} \ No newline at end of file diff --git a/wp-content/languages/es_ES-28b3c3d595952907e08d98287077426c.json b/wp-content/languages/es_ES-28b3c3d595952907e08d98287077426c.json new file mode 100644 index 0000000..0869faf --- /dev/null +++ b/wp-content/languages/es_ES-28b3c3d595952907e08d98287077426c.json @@ -0,0 +1 @@ +{"translation-revision-date":"2026-01-07 19:47:18+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"es"},"Pattern imported successfully!":["\u00a1Patr\u00f3n importado correctamente!"],"Invalid pattern JSON file":["Archivo JSON de patr\u00f3n no v\u00e1lido"],"button label\u0004Import":["Importar"],"Unknown error":["Error desconocido"],"Invalid JSON file":["Archivo JSON no v\u00e1lido"],"Import from JSON":["Importar de JSON"],"File":["Archivo"]}},"comment":{"reference":"wp-includes\/js\/dist\/list-reusable-blocks.js"}} \ No newline at end of file diff --git a/wp-content/languages/es_ES-2b390f85a3048c5b4255fb45960b6514.json b/wp-content/languages/es_ES-2b390f85a3048c5b4255fb45960b6514.json new file mode 100644 index 0000000..80f0195 --- /dev/null +++ b/wp-content/languages/es_ES-2b390f85a3048c5b4255fb45960b6514.json @@ -0,0 +1 @@ +{"translation-revision-date":"2025-12-01 08:15:40+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"es"},"An error occurred during the update process. Please try again.":["Se ha producido un error durante el proceso de actualizaci\u00f3n. Int\u00e9ntalo de nuevo."],"Dependencies check failed: %s":["Ha fallado la comprobaci\u00f3n de dependencias: %s"],"plugin\/plugins\u0004%s item":["%s elemento","%s elementos"],"plugin\u0004%s activation failed":["La activaci\u00f3n de %s ha fallado"],"Activation failed.":["Ha fallado la activaci\u00f3n."],"Activation completed successfully.":["Activaci\u00f3n completada correctamente."],"plugin\u0004Activated!":["\u00a1Activado!"],"plugin\u0004Activating %s":["Activando %s"],"Activating...":["Activando..."],"Activating... please wait.":["Activando... espera, por favor."],"Activation failed: %s":["Ha fallado la activaci\u00f3n: %s"],"plugin\u0004Cannot activate %1$s. %2$s":["No se puede activar %1$s. %2$s"],"Plugin dependencies check completed successfully.":["La comprobaci\u00f3n de dependencias del plugin se ha completado correctamente."],"Checking plugin dependencies... please wait.":["Comprobando las dependencias del plugin... espera, por favor."],"plugin\u0004Activate":["Activar"],"plugin\u0004Network Activate":["Activar para la red"],"plugin\u0004Install Now":["Instalar ahora"],"Search Results":["Resultados de la b\u00fasqueda"],"Search results for: %s":["Resultados de b\u00fasqueda para: %s"],"The request could not be completed.":["La petici\u00f3n no se ha podido completar."],"Disabling...":["Desactivando..."],"Enabling...":["Activando..."],"Number of plugins found: %d":["N\u00famero de plugins encontrados: %d"],"Caution: These themes may be active on other sites in the network. Are you sure you want to proceed?":["Precauci\u00f3n: estos temas pueden estar activos en otros sitios de la red. \u00bfSeguro que quieres continuar?"],"Are you sure you want to delete the selected plugins and their data?":["\u00bfSeguro que quieres borrar los plugins seleccionados y sus datos?"],"Are you sure you want to delete %s and its data?":["\u00bfSeguro que quieres borrar %s y sus datos?"],"Update canceled.":["Actualizaci\u00f3n cancelada."],"plugin\u0004Update %s now":["Actualizar %s ahora"],"Updates may not complete if you navigate away from this page.":["Puede que no se completen las actualizaciones si navegas fuera de esta p\u00e1gina."],"Connection lost or the server is busy. Please try again later.":["Conexi\u00f3n perdida o el servidor est\u00e1 ocupado. Por favor, int\u00e9ntalo de nuevo m\u00e1s tarde."],"Deletion failed: %s":["Borrado fallido: %s"],"theme\u0004Deleted!":["\u00a1Borrado!"],"theme\u0004%s installation failed":["Ha fallado la instalaci\u00f3n de %s"],"theme\u0004Network Activate %s":["Activar %s para la red"],"theme\u0004%s installed!":["\u00a1%s instalado!"],"theme\u0004Installing %s...":["Instalando %s..."],"theme\u0004Updated!":["\u00a1Actualizado!"],"Updating... please wait.":["Actualizando..., por favor, espera."],"plugin\u0004Deleted!":["\u00a1Borrado!"],"Deleting...":["Borrando..."],"plugin\u0004Install %s now":["Instalar %s ahora"],"Importer installed successfully. Run importer<\/a>":["Importador instalado correctamente. Ejecutar el importador<\/a>"],"plugin\u0004%s installation failed":["Ha fallado la instalaci\u00f3n de %s"],"Installation failed: %s":["Instalaci\u00f3n fallida: %s"],"Installation completed successfully.":["Instalaci\u00f3n completada correctamente."],"plugin\u0004Installed!":["\u00a1Instalado!"],"plugin\u0004%s installed!":["\u00a1%s instalado!"],"Installing... please wait.":["Instalando..., por favor, espera."],"plugin\u0004Installing %s...":["Instalando %s..."],"Installing...":["Instalando..."],"plugin\u0004%s update failed.":["Ha fallado la actualizaci\u00f3n de %s."],"Update failed: %s":["Actualizaci\u00f3n fallida: %s"],"Update completed successfully.":["Actualizaci\u00f3n completada correctamente."],"plugin\u0004Updated!":["\u00a1Actualizado!"],"plugin\u0004%s updated!":["\u00a1%s actualizado!"],"Updating...":["Actualizando..."],"plugin\u0004Updating %s...":["Actualizando %s..."],"No plugins found. Try a different search.":["No se han encontrado plugins. Prueba con una b\u00fasqueda diferente."],"Enable auto-updates":["Activar las actualizaciones autom\u00e1ticas"],"Disable auto-updates":["Desactivar las actualizaciones autom\u00e1ticas"],"No plugins are currently available.":["Actualmente no hay ning\u00fan plugin disponible."],"Auto-updates disabled":["Actualizaciones autom\u00e1ticas desactivadas"],"Auto-updates enabled":["Actualizaciones autom\u00e1ticas activadas"],"theme\u0004Activate":["Activar"],"plugin\u0004Network Activate %s":["Activar %s para la red"],"plugin\u0004Activate %s":["Activar %s"],"Run Importer":["Ejecutar el importador"],"Run %s":["Ejecutar %s"],"%s update failed.":["%s actualizaci\u00f3n fallida."],"%s theme successfully updated.":["%s tema actualizado correctamente."],"%s plugin successfully updated.":["%s plugin actualizado correctamente."],"plugin\u0004Active":["Activo"],"Update failed.":["Actualizaci\u00f3n fallida"],"theme\u0004Installed!":["\u00a1Instalado!"],"Are you sure you want to delete %s?":["\u00bfSeguro que quieres borrar %s?"],"Network Enable":["Activar para la red"],"Update Now":["Actualizar ahora"],"Installation failed.":["Instalaci\u00f3n fallida"],"You do not appear to have any plugins available at this time.":["No parece que tengas plugins disponibles en este momento."],"%s update available":["%s actualizaci\u00f3n disponible","%s actualizaciones disponibles"],"theme\u0004Activate %s":["Activar %s"],"Live Preview":["Vista previa"],"An error has occurred. Please reload the page and try again.":["Ha ocurrido un error. Por favor, recarga la p\u00e1gina e int\u00e9ntalo de nuevo"]}},"comment":{"reference":"wp-admin\/js\/updates.js"}} \ No newline at end of file diff --git a/wp-content/languages/es_ES-2c5d274ea625dd91556554ad82901529.json b/wp-content/languages/es_ES-2c5d274ea625dd91556554ad82901529.json new file mode 100644 index 0000000..bb4a965 --- /dev/null +++ b/wp-content/languages/es_ES-2c5d274ea625dd91556554ad82901529.json @@ -0,0 +1 @@ +{"translation-revision-date":"2026-01-07 19:47:18+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"es"},"Annotation":["Notas"]}},"comment":{"reference":"wp-includes\/js\/dist\/annotations.js"}} \ No newline at end of file diff --git a/wp-content/languages/es_ES-320f4ad9792aaa6dedb1e71cbdf85d57.json b/wp-content/languages/es_ES-320f4ad9792aaa6dedb1e71cbdf85d57.json new file mode 100644 index 0000000..73736e6 --- /dev/null +++ b/wp-content/languages/es_ES-320f4ad9792aaa6dedb1e71cbdf85d57.json @@ -0,0 +1 @@ +{"translation-revision-date":"2026-01-07 19:47:18+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"es"},"Notifications":["Avisos"]}},"comment":{"reference":"wp-includes\/js\/dist\/a11y.js"}} \ No newline at end of file diff --git a/wp-content/languages/es_ES-440127dd25bde48a531ded36f33e927b.json b/wp-content/languages/es_ES-440127dd25bde48a531ded36f33e927b.json new file mode 100644 index 0000000..aabb1a5 --- /dev/null +++ b/wp-content/languages/es_ES-440127dd25bde48a531ded36f33e927b.json @@ -0,0 +1 @@ +{"translation-revision-date":"2026-01-07 19:47:18+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"es"},"Add non breaking space.":["A\u00f1ade espacios sin salto."],"https:\/\/wordpress.org\/documentation\/article\/wordpress-block-editor\/":["https:\/\/wordpress.org\/documentation\/article\/wordpress-block-editor\/"],"Convert the current paragraph or heading to a heading of level 1 to 6.":["Convierte el p\u00e1rrafo o encabezado actual a un encabezado de nivel 1 a 6."],"Convert the current heading to a paragraph.":["Convierte el encabezado actual en un p\u00e1rrafo."],"Make the selected text inline code.":["Hacer que el texto seleccionado sea c\u00f3digo integrado."],"Strikethrough the selected text.":["Tachar el texto seleccionado."],"Insert a link to a post or page.":["Insertar un enlace a una entrada o p\u00e1gina"],"https:\/\/wordpress.org\/documentation\/article\/block-based-widgets-editor\/":["https:\/\/wordpress.org\/documentation\/article\/block-based-widgets-editor\/"],"New to the block editor?":["\u00bfEres nuevo en el editor de bloques?"],"Get the Classic Widgets plugin.":["Obt\u00e9n el plugin Classic Widgets."],"https:\/\/wordpress.org\/plugins\/classic-widgets\/":["https:\/\/es.wordpress.org\/plugins\/classic-widgets\/"],"Want to stick with the old widgets?":["\u00bfQuieres seguir con los widgets antiguos?"],"You can now add any block to your site\u2019s widget areas. Don\u2019t worry, all of your favorite widgets still work flawlessly.":["Ahora puedes a\u00f1adir cualquier bloque a las \u00e1reas de widgets de tu sitio. No te preocupes, todos tus widgets favoritos siguen funcionando sin problemas."],"Your theme provides different \u201cblock\u201d areas for you to add and edit content.\u00a0Try adding a search bar, social icons, or other types of blocks here and see how they\u2019ll look on your site.":["Tu tema proporciona diferentes \u00e1reas de \u00abbloques\u00bb para que a\u00f1adas y edites el contenido. Prueba a a\u00f1adir aqu\u00ed una barra de b\u00fasqueda, iconos sociales u otros tipos de bloques y mira c\u00f3mo quedar\u00e1n en tu sitio."],"Welcome to block Widgets":["Te damos la bienvenida al bloque de widgets"],"Contain text cursor inside block deactivated":["Contener el cursor de texto dentro del bloque desactivado"],"Contain text cursor inside block activated":["Contener el cursor de texto dentro del bloque activado"],"Close inserter":["Cerrar insertador"],"Aids screen readers by stopping text caret from leaving blocks.":["Ayuda a los lectores de pantalla impidiendo que el texto escrito salga de los bloques."],"Preferences":["Preferencias"],"Show more settings":["Mostrar m\u00e1s ajustes"],"Contain text cursor inside block":["Contener el cursor de texto dentro del bloque"],"Here's a detailed guide.":["Aqu\u00ed hay una gu\u00eda detallada."],"Welcome Guide":["Gu\u00eda de bienvenida"],"Keyboard shortcuts":["Atajos del teclado"],"Generic label for block inserter button\u0004Add block":["A\u00f1adir un bloque"],"Display these keyboard shortcuts.":["Mostrar estos atajos del teclado."],"Add a block":["A\u00f1ade un bloque"],"Top toolbar deactivated":["Barra superior desactivada"],"Top toolbar activated":["Barra superior activada"],"Top toolbar":["Barra de herramientas superior"],"Got it":["Entendido"],"Block Settings":["Ajustes del bloque"],"Remove a link.":["Elimina un enlace."],"Convert the selected text into a link.":["Convierte el texto seleccionado en un enlace."],"Underline the selected text.":["Subraya el texto seleccionado."],"Make the selected text italic.":["Cambia el texto seleccionado a cursiva."],"Make the selected text bold.":["Cambia el texto seleccionado a negrita."],"Text formatting":["Formatos de texto"],"Forward-slash":["Barra ( \/ )"],"Change the block type after adding a new paragraph.":["Cambia el tipo de bloque despu\u00e9s de a\u00f1adir un nuevo p\u00e1rrafo."],"Block shortcuts":["Atajos de bloques"],"Selection shortcuts":["Atajos de selecci\u00f3n"],"Redo your last undo.":["Rehace tu \u00faltimo deshacer."],"Undo your last changes.":["Deshace tus \u00faltimos cambios."],"Save your changes.":["Guarda tus cambios."],"Global shortcuts":["Atajos globales"],"Access all block and document tools in a single place":["Accede a todas las herramientas de bloques y documentos desde un solo lugar"],"noun\u0004View":["Ver"],"Options":["Opciones"],"Document tools":["Herramientas del documento"],"The editor has encountered an unexpected error.":["El editor ha encontrado un error inesperado."],"Copy Error":["Copiar el error"],"(opens in a new tab)":["(abre en una nueva pesta\u00f1a)"],"Customizing":["Personalizaci\u00f3n"],"Tools":["Herramientas"],"Widgets":["Widgets"],"Help":["Ayuda"],"Redo":["Rehacer"],"Undo":["Deshacer"]}},"comment":{"reference":"wp-includes\/js\/dist\/customize-widgets.js"}} \ No newline at end of file diff --git a/wp-content/languages/es_ES-49c6d4acf36cf3aca9f0b2a77617304f.json b/wp-content/languages/es_ES-49c6d4acf36cf3aca9f0b2a77617304f.json new file mode 100644 index 0000000..b528972 --- /dev/null +++ b/wp-content/languages/es_ES-49c6d4acf36cf3aca9f0b2a77617304f.json @@ -0,0 +1 @@ +{"translation-revision-date":"2026-01-07 19:47:18+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"es"},"Custom Styles":["Estilos personalizados"],"Global Styles":["Estilos globales"],"Widget types":["Tipos de widgets"],"Menu Item":["Elemento del men\u00fa"],"Comment":["Comentario"],"Widget areas":["\u00c1reas de widgets"],"Site":["Sitio"],"Post Type":["Tipo de entrada"],"Taxonomy":["Taxonom\u00eda"],"Menu Location":["Ubicaci\u00f3n de men\u00fa"],"Status":["Estado"],"Menu":["Men\u00fa"],"User":["Usuario"],"Base":["Base"],"Widgets":["Widgets"],"Themes":["Temas"],"(no title)":["(sin t\u00edtulo)"],"Media":["Medios"],"Plugins":["Plugins"]}},"comment":{"reference":"wp-includes\/js\/dist\/core-data.js"}} \ No newline at end of file diff --git a/wp-content/languages/es_ES-4a38fe1c0c45989e44682ba6109d9f46.json b/wp-content/languages/es_ES-4a38fe1c0c45989e44682ba6109d9f46.json new file mode 100644 index 0000000..f4c9c62 --- /dev/null +++ b/wp-content/languages/es_ES-4a38fe1c0c45989e44682ba6109d9f46.json @@ -0,0 +1 @@ +{"translation-revision-date":"2025-12-01 08:15:40+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"es"},"Running additional tests... please wait.":["Ejecutando pruebas adicionales\u2026 por favor, espera."],"All site health tests have finished running. There are items that should be addressed.":["Todas las pruebas de salud del sitio han terminado de ejecutarse. Hay elementos que deben solucionarse."],"All site health tests have finished running. Your site is looking good.":["Todas las pruebas de salud del sitio han terminado de ejecutarse. Tu sitio tiene buen aspecto."],"Unavailable":["No disponible"],"No details available":["No hay detalles disponibles"],"A test is unavailable":["No est\u00e1 disponible una prueba"],"Should be improved":["Necesita mejoras"],"Good":["Bueno"],"%s critical issue":["%s error cr\u00edtico","%s errores cr\u00edticos"],"%s item with no issues detected":["Detectado %s elemento sin problemas","Detectados %s elementos sin problemas"],"%s recommended improvement":["%s mejora recomendada","%s mejoras recomendadas"],"Site information has been copied to your clipboard.":["La informaci\u00f3n del sitio ha sido copiada a tu portapapeles."]}},"comment":{"reference":"wp-admin\/js\/site-health.js"}} \ No newline at end of file diff --git a/wp-content/languages/es_ES-4bfa11da57ff2600004bb500368247f4.json b/wp-content/languages/es_ES-4bfa11da57ff2600004bb500368247f4.json new file mode 100644 index 0000000..79960a4 --- /dev/null +++ b/wp-content/languages/es_ES-4bfa11da57ff2600004bb500368247f4.json @@ -0,0 +1 @@ +{"translation-revision-date":"2025-12-01 08:15:40+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"es"},"Use as featured image":["Usar como imagen destacada"],"Saving\u2026":["Guardando\u2026"],"Could not set that as the thumbnail image. Try a different attachment.":["No se ha podido establecer como imagen de miniatura. Prueba con otro adjunto."],"Done":["Hecho"]}},"comment":{"reference":"wp-admin\/js\/set-post-thumbnail.js"}} \ No newline at end of file diff --git a/wp-content/languages/es_ES-50278328b502f4eb3f2b8b7ab49324a1.json b/wp-content/languages/es_ES-50278328b502f4eb3f2b8b7ab49324a1.json new file mode 100644 index 0000000..ba51cbb --- /dev/null +++ b/wp-content/languages/es_ES-50278328b502f4eb3f2b8b7ab49324a1.json @@ -0,0 +1 @@ +{"translation-revision-date":"2025-12-01 08:15:40+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"es"},"Screen Options updated.":["Opciones de pantalla actualizadas."],"Drag boxes here":["Arrastra aqu\u00ed las cajas"],"Add boxes from the Screen Options menu":["A\u00f1adir cajas desde el men\u00fa de opciones de pantalla"],"The boxes order has been saved.":["Ha sido guardado el orden de las cajas."],"The box is on the last position":["La caja est\u00e1 en la \u00faltima posici\u00f3n"],"The box is on the first position":["La caja est\u00e1 en la primera posici\u00f3n"]}},"comment":{"reference":"wp-admin\/js\/postbox.js"}} \ No newline at end of file diff --git a/wp-content/languages/es_ES-5251f7623766a714c8207c7edb938628.json b/wp-content/languages/es_ES-5251f7623766a714c8207c7edb938628.json new file mode 100644 index 0000000..17616ac --- /dev/null +++ b/wp-content/languages/es_ES-5251f7623766a714c8207c7edb938628.json @@ -0,0 +1 @@ +{"translation-revision-date":"2025-12-01 08:15:40+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"es"},"Widget has been added to the selected sidebar":["El widget ha sido a\u00f1adido a la barra lateral seleccionada"],"Saved":["Guardado"],"The changes you made will be lost if you navigate away from this page.":["Los cambios realizados se perder\u00e1n si sales de esta p\u00e1gina."],"Save":["Guardar"]}},"comment":{"reference":"wp-admin\/js\/widgets.js"}} \ No newline at end of file diff --git a/wp-content/languages/es_ES-529362903a5a05b34b06b5e793fb4cf8.json b/wp-content/languages/es_ES-529362903a5a05b34b06b5e793fb4cf8.json new file mode 100644 index 0000000..cf309a3 --- /dev/null +++ b/wp-content/languages/es_ES-529362903a5a05b34b06b5e793fb4cf8.json @@ -0,0 +1 @@ +{"translation-revision-date":"2025-12-01 08:15:40+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"es"},"All application passwords revoked.":["Se han anulado todas las contrase\u00f1as de aplicaci\u00f3n."],"Are you sure you want to revoke all passwords? This action cannot be undone.":["\u00bfSeguro que quieres anular todas las contrase\u00f1as? Esta acci\u00f3n no se puede deshacer."],"Application password revoked.":["Se ha anulado la contrase\u00f1a de la aplicaci\u00f3n."],"Are you sure you want to revoke this password? This action cannot be undone.":["\u00bfSeguro que quieres anular esta contrase\u00f1a? Esta acci\u00f3n no se puede deshacer."],"Dismiss this notice.":["Descartar este aviso."]}},"comment":{"reference":"wp-admin\/js\/application-passwords.js"}} \ No newline at end of file diff --git a/wp-content/languages/es_ES-569e85ef168299eb8c8f24d8ef8c8a78.json b/wp-content/languages/es_ES-569e85ef168299eb8c8f24d8ef8c8a78.json new file mode 100644 index 0000000..8ea7b45 --- /dev/null +++ b/wp-content/languages/es_ES-569e85ef168299eb8c8f24d8ef8c8a78.json @@ -0,0 +1 @@ +{"translation-revision-date":"2025-12-01 08:15:40+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"es"},"URL Slug":["Slug de la URL"],"Permalink saved":["Enlace permanente guardado"],"Published on:":["Publicada el:"],"Publish on:":["Publicar el:"],"Schedule for:":["Programar para:"],"Saving Draft\u2026":["Guardando el borrador..."],"No more comments found.":["No se han encontrado m\u00e1s comentarios."],"Show more comments":["Mostrar m\u00e1s comentarios"],"post action\/button label\u0004Schedule":["Programar"],"%1$s %2$s, %3$s at %4$s:%5$s":["%2$s de %1$s de %3$s a las %4$s:%5$s"],"Public, Sticky":["P\u00fablica, fija"],"Privately Published":["Publicada como privada"],"Save as Pending":["Guardar como pendiente"],"Password Protected":["Protegida con contrase\u00f1a"],"The file URL has been copied to your clipboard":["La URL del archivo ha sido copiada a tu portapapeles"],"Could not set that as the thumbnail image. Try a different attachment.":["No se ha podido establecer como imagen de miniatura. Prueba con otro adjunto."],"The changes you made will be lost if you navigate away from this page.":["Los cambios realizados se perder\u00e1n si sales de esta p\u00e1gina."],"Update":["Actualizar"],"Public":["P\u00fablica"],"Private":["Privada"],"OK":["Aceptar"],"Save Draft":["Guardar borrador"],"Cancel":["Cancelar"],"Publish":["Publicar"],"Published":["Publicada"]}},"comment":{"reference":"wp-admin\/js\/post.js"}} \ No newline at end of file diff --git a/wp-content/languages/es_ES-6025add6bde16aaeb12787d250f9b414.json b/wp-content/languages/es_ES-6025add6bde16aaeb12787d250f9b414.json new file mode 100644 index 0000000..60e8b12 --- /dev/null +++ b/wp-content/languages/es_ES-6025add6bde16aaeb12787d250f9b414.json @@ -0,0 +1 @@ +{"translation-revision-date":"2025-12-01 08:15:40+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"es"},"Are you sure you want to do this?\nThe comment changes you made will be lost.":["\u00bfSeguro que quieres hacer esto?\nSe perder\u00e1n los cambios que has hecho en el comentario."],"Are you sure you want to edit this comment?\nThe changes you made will be lost.":["\u00bfSeguro que quieres editar este comentario?\nSe perder\u00e1n los cambios que hayas hecho."],"Approve and Reply":["Aprobar y responder"],"Comments (%s)":["Comentarios (%s)"],"Reply":["Responder"],"Comments":["Comentarios"]}},"comment":{"reference":"wp-admin\/js\/edit-comments.js"}} \ No newline at end of file diff --git a/wp-content/languages/es_ES-60d06fac6f98e8e8f0ec5a945738b660.json b/wp-content/languages/es_ES-60d06fac6f98e8e8f0ec5a945738b660.json new file mode 100644 index 0000000..dc995a4 --- /dev/null +++ b/wp-content/languages/es_ES-60d06fac6f98e8e8f0ec5a945738b660.json @@ -0,0 +1 @@ +{"translation-revision-date":"2026-01-07 19:47:18+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"es"},"Preference activated - %s":["Preferencia activada - %s"],"Preference deactivated - %s":["Preferencia desactivada - %s"],"Preferences":["Preferencias"],"Back":["Volver"]}},"comment":{"reference":"wp-includes\/js\/dist\/preferences.js"}} \ No newline at end of file diff --git a/wp-content/languages/es_ES-68f2cec7514bf8563c723a4d675fcfe6.json b/wp-content/languages/es_ES-68f2cec7514bf8563c723a4d675fcfe6.json new file mode 100644 index 0000000..5485f6b --- /dev/null +++ b/wp-content/languages/es_ES-68f2cec7514bf8563c723a4d675fcfe6.json @@ -0,0 +1 @@ +{"translation-revision-date":"2026-01-07 19:47:18+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"es"},"Math":["Matem\u00e1ticas"],"CSS classes":["Clases CSS"],"e.g., x^2, \\frac{a}{b}":["p.ej.: x^2, \\frac{a}{b}"],"LaTeX math syntax":["Sintaxis matem\u00e1tica de LaTeX"],"Non breaking space":["Espacio sin salto"],"https:\/\/www.w3.org\/WAI\/tutorials\/images\/decision-tree\/":["https:\/\/www.w3.org\/WAI\/tutorials\/images\/decision-tree\/"],"Mark as nofollow":["Marcar como nofollow"],"Text direction":["Direcci\u00f3n de escritura"],"A valid language attribute, like \"en\" or \"fr\".":["Un atributo de idioma v\u00e1lido, como \u00aben\u00bb o \u00abfr\u00bb."],"Leave empty if decorative.":["D\u00e9jalo vac\u00edo si es decorativo."],"Clear Unknown Formatting":["Vaciar formatos desconocidos"],"Create page: %s<\/mark>":["Crear p\u00e1gina: %s<\/mark>"],"Highlight":["Resaltado"],"Keyboard input":["Entrada de teclado"],"Inline code":["C\u00f3digo integrado"],"Describe the purpose of the image.":["Describe el prop\u00f3sito de la imagen."],"Separate multiple classes with spaces.":["Separa m\u00faltiples clases con espacios."],"Link edited.":["Enlace editado."],"Link removed.":["Enlace eliminado."],"Inline image":["Imagen integrada"],"media":["medios"],"photo":["foto"],"Additional CSS class(es)":["Clase(s) CSS adicional(es)"],"Replace image":["Reemplazar la imagen"],"Warning: the link has been inserted but may have errors. Please test it.":["Advertencia: el enlace ha sido insertado, pero puede tener errores. Por favor, compru\u00e9balo."],"Link inserted.":["Enlace insertado."],"Left to right":["De izquierda a derecha"],"Right to left":["De derecha a izquierda"],"Link":["Enlace"],"Background":["Fondo"],"Superscript":["Super\u00edndice"],"Subscript":["Sub\u00edndice"],"Strikethrough":["Tachado"],"Underline":["Subrayado"],"Italic":["Cursiva"],"Bold":["Negrita"],"Language":["Idioma"],"Text":["Texto"],"Width":["Anchura"],"Alternative text":["Texto alternativo"],"Apply":["Aplicar"]}},"comment":{"reference":"wp-includes\/js\/dist\/format-library.js"}} \ No newline at end of file diff --git a/wp-content/languages/es_ES-7233008897033de5ee0d14f86a42a65a.json b/wp-content/languages/es_ES-7233008897033de5ee0d14f86a42a65a.json new file mode 100644 index 0000000..62c17d3 --- /dev/null +++ b/wp-content/languages/es_ES-7233008897033de5ee0d14f86a42a65a.json @@ -0,0 +1 @@ +{"translation-revision-date":"2026-01-07 19:47:18+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"es"},"Legacy widget":["Widget heredado"],"Create a classic widget layout with a title that\u2019s styled by your theme for your widget areas.":["Crea un dise\u00f1o de widget cl\u00e1sico con un t\u00edtulo con el estilo de tu tema para tus \u00e1reas de widgets."],"Widget Group":["Grupo de widgets"],"The \"%s\" block was affected by errors and may not function properly. Check the developer tools for more details.":["El bloque \u00ab%s\u00bb ha sido afectado por errores y puede que no funcione correctamente. Compru\u00e9balo con las herramientas para desarrolladores para m\u00e1s detalles."],"Move to widget area":["Mover al \u00e1rea de widgets"],"Widget is missing.":["Falta el widget."],"No preview available.":["Vista previa no disponible."],"Legacy Widget Preview":["Vista previa de widget heredado"],"Select widget":["Selecciona un widget"],"Convert to blocks":["Convertir en bloques"],"Move to":["Mover a"],"Legacy Widget":["Widget heredado"],"There are no widgets available.":["No hay ning\u00fan widget disponible."],"Save":["Guardar"],"Title":["T\u00edtulo"]}},"comment":{"reference":"wp-includes\/js\/dist\/widgets.js"}} \ No newline at end of file diff --git a/wp-content/languages/es_ES-7289286ed59e90a8f36ae797df62220b.json b/wp-content/languages/es_ES-7289286ed59e90a8f36ae797df62220b.json new file mode 100644 index 0000000..8022908 --- /dev/null +++ b/wp-content/languages/es_ES-7289286ed59e90a8f36ae797df62220b.json @@ -0,0 +1 @@ +{"translation-revision-date":"2026-01-07 19:47:18+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"es"},"The file URL has been copied to your clipboard":["La URL del archivo ha sido copiada a tu portapapeles"],"An error has occurred. Please reload the page and try again.":["Ha ocurrido un error. Por favor, recarga la p\u00e1gina e int\u00e9ntalo de nuevo"]}},"comment":{"reference":"wp-admin\/js\/media.js"}} \ No newline at end of file diff --git a/wp-content/languages/es_ES-7436b7ee9e4f11ac0d618d8cc886eb66.json b/wp-content/languages/es_ES-7436b7ee9e4f11ac0d618d8cc886eb66.json new file mode 100644 index 0000000..463a0c9 --- /dev/null +++ b/wp-content/languages/es_ES-7436b7ee9e4f11ac0d618d8cc886eb66.json @@ -0,0 +1 @@ +{"translation-revision-date":"2025-12-01 08:15:40+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"es"},"Plugin details":["Detalles del plugin"],"Plugin: %s":["Plugin: %s"]}},"comment":{"reference":"wp-admin\/js\/plugin-install.js"}} \ No newline at end of file diff --git a/wp-content/languages/es_ES-77fdfadaf2e1ca3a027d1956b910bc50.json b/wp-content/languages/es_ES-77fdfadaf2e1ca3a027d1956b910bc50.json new file mode 100644 index 0000000..9cfd20f --- /dev/null +++ b/wp-content/languages/es_ES-77fdfadaf2e1ca3a027d1956b910bc50.json @@ -0,0 +1 @@ +{"translation-revision-date":"2025-12-01 08:15:40+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"es"},"Screen Options updated.":["Opciones de pantalla actualizadas."],"%1$s is deprecated since version %2$s with no alternative available.":["%1$s est\u00e1 obsoleta desde la versi\u00f3n %2$s sin una alternativa disponible."],"%1$s is deprecated since version %2$s! Use %3$s instead.":["\u00a1%1$s est\u00e1 obsoleta desde la versi\u00f3n %2$s! Usa %3$s en su lugar."],"Please select at least one item to perform this action on.":["Por favor, selecciona al menos un elemento en el que realizar esta acci\u00f3n."],"Expand Main menu":["Desplegar el men\u00fa principal"],"Dismiss this notice.":["Descartar este aviso."],"You are about to permanently delete these items from your site.\nThis action cannot be undone.\n'Cancel' to stop, 'OK' to delete.":["Est\u00e1s a punto de borrar permanentemente estos elementos de tu sitio.\nEsta acci\u00f3n no se puede deshacer.\n\u00abCancelar\u00bb para parar, \u00abAceptar\u00bb para borrar."],"Collapse Main menu":["Contraer el men\u00fa principal"]}},"comment":{"reference":"wp-admin\/js\/common.js"}} \ No newline at end of file diff --git a/wp-content/languages/es_ES-7b74c8457eaa7fcc50db41b431f8a003.json b/wp-content/languages/es_ES-7b74c8457eaa7fcc50db41b431f8a003.json new file mode 100644 index 0000000..3ba3d18 --- /dev/null +++ b/wp-content/languages/es_ES-7b74c8457eaa7fcc50db41b431f8a003.json @@ -0,0 +1 @@ +{"translation-revision-date":"2025-12-01 08:15:40+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"es"},"The selected tag has been deleted.":["La etiqueta seleccionada se ha borrado."],"An error occurred while processing your request. Please try again later.":["Ha ocurrido un error al procesar tu solicitud. Int\u00e9ntalo de nuevo m\u00e1s tarde."],"Sorry, you are not allowed to do that.":["Lo siento, no tienes permisos para hacer eso."]}},"comment":{"reference":"wp-admin\/js\/tags.js"}} \ No newline at end of file diff --git a/wp-content/languages/es_ES-7c90cd4398ee2d9d3628c387a87a70e5.json b/wp-content/languages/es_ES-7c90cd4398ee2d9d3628c387a87a70e5.json new file mode 100644 index 0000000..2f2dab4 --- /dev/null +++ b/wp-content/languages/es_ES-7c90cd4398ee2d9d3628c387a87a70e5.json @@ -0,0 +1 @@ +{"translation-revision-date":"2026-01-07 19:47:18+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"es"},"Hide password":["Ocultar la contrase\u00f1a"],"Show password":["Mostrar la contrase\u00f1a"],"Hide":["Ocultar"],"Show":["Mostrar"]}},"comment":{"reference":"wp-admin\/js\/password-toggle.js"}} \ No newline at end of file diff --git a/wp-content/languages/es_ES-7d5ca435e60d92f024d46c9257aaa0f7.json b/wp-content/languages/es_ES-7d5ca435e60d92f024d46c9257aaa0f7.json new file mode 100644 index 0000000..c31ad9e --- /dev/null +++ b/wp-content/languages/es_ES-7d5ca435e60d92f024d46c9257aaa0f7.json @@ -0,0 +1 @@ +{"translation-revision-date":"2025-12-01 08:15:40+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"es"},"%d result found. Use up and down arrow keys to navigate.":["%d resultado encontrado. Utiliza las teclas de flecha arriba y abajo para navegar.","%d resultados encontrados. Utiliza las teclas de flecha arriba y abajo para navegar."],"Term selected.":["T\u00e9rmino seleccionado."],"tag delimiter\u0004,":[","],"No results found.":["No se han encontrado resultados."]}},"comment":{"reference":"wp-admin\/js\/tags-suggest.js"}} \ No newline at end of file diff --git a/wp-content/languages/es_ES-7f13c36c641b114bf18cd0bcc9ecc7e0.json b/wp-content/languages/es_ES-7f13c36c641b114bf18cd0bcc9ecc7e0.json new file mode 100644 index 0000000..00789f3 --- /dev/null +++ b/wp-content/languages/es_ES-7f13c36c641b114bf18cd0bcc9ecc7e0.json @@ -0,0 +1 @@ +{"translation-revision-date":"2026-01-07 19:47:18+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"es"},"December":["diciembre"],"November":["noviembre"],"October":["octubre"],"September":["septiembre"],"August":["agosto"],"July":["julio"],"June":["junio"],"May":["mayo"],"April":["abril"],"March":["marzo"],"February":["febrero"],"January":["enero"],"Optional":["Opcional"],"%s, selected":["%s, seleccionado"],"Go to the Previous Month":["Ir al mes anterior"],"Go to the Next Month":["Ir al mes siguiente"],"Today, %s":["Hoy, %s"],"Date range calendar":["Calendario de rango de fechas"],"Date calendar":["Calendario de fechas"],"input control\u0004Show %s":["Mostrar %s"],"Border color picker. The currently selected color has a value of \"%s\".":["Selector del color del borde. El color seleccionado actualmente tiene un valor de \u00ab%s\u00bb."],"Border color picker. The currently selected color is called \"%1$s\" and has a value of \"%2$s\".":["Selector del color del borde. El color seleccionado actualmente se llama \u00ab%1$s\u00bb y tiene un valor de \u00ab%2$s\u00bb."],"Border color and style picker. The currently selected color has a value of \"%s\".":["Selector de color y estilo de borde. El color seleccionado actualmente tiene un valor de \u00ab%s\u00bb."],"Border color and style picker. The currently selected color has a value of \"%1$s\". The currently selected style is \"%2$s\".":["Selector de color y estilo de borde. El color seleccionado actualmente tiene un valor de \u00ab%1$s\u00bb. El estilo seleccionado actualmente es \u00ab%2$s\u00bb."],"Border color and style picker. The currently selected color is called \"%1$s\" and has a value of \"%2$s\".":["Selector de color y estilo de borde. El color seleccionado actualmente se llama \u00ab%1$s\u00bb y tiene un valor de \u00ab%2$s\u00bb."],"Border color and style picker. The currently selected color is called \"%1$s\" and has a value of \"%2$s\". The currently selected style is \"%3$s\".":["Selector de color y estilo de borde. El color actualmente seleccionado se llama \u00ab%1$s\u00bb y tiene un valor de \u00ab%2$s\u00bb. El estilo seleccionado actualmente es \u00ab%3$s\u00bb."],"%d item selected":["%d elemento seleccionado","%d elementos seleccionados"],"Select AM or PM":["Selecciona AM o PM"],"Select an item":["Selecciona un elemento"],"No items found":["No se han encontrado elementos"],"Remove color: %s":["Eliminar color: %s"],"authors\u0004All":["Todos"],"categories\u0004All":["Todas"],"Edit: %s":["Editar: %s"],"Left and right sides":["Lados izquierdo y derecho"],"Top and bottom sides":["Laterales superior e inferior"],"Right side":["Lado derecho"],"Left side":["Lado izquierdo"],"Bottom side":["Parte inferior"],"Top side":["Parte superior"],"Large viewport largest dimension (lvmax)":["Dimensi\u00f3n m\u00e1xima del \u00e1rea visible grande (lvmax)"],"Small viewport largest dimension (svmax)":["Dimensi\u00f3n m\u00ednima del \u00e1rea visible peque\u00f1o (svmax)"],"Dynamic viewport largest dimension (dvmax)":["Dimensi\u00f3n m\u00e1xima del \u00e1rea visible din\u00e1mico (dvmax)"],"Dynamic viewport smallest dimension (dvmin)":["Dimensi\u00f3n m\u00ednima del \u00e1rea visible din\u00e1mico (dvmin)"],"Dynamic viewport width or height (dvb)":["Ancho o alto del \u00e1rea visible din\u00e1mico (dvb)"],"Dynamic viewport width or height (dvi)":["Ancho o alto del \u00e1rea visible din\u00e1mico (dvi)"],"Dynamic viewport height (dvh)":["Alto del \u00e1rea visible din\u00e1mico (dvh)"],"Dynamic viewport width (dvw)":["Ancho del \u00e1rea visible din\u00e1mico (dvw)"],"Large viewport smallest dimension (lvmin)":["Dimensi\u00f3n m\u00ednima del \u00e1rea visible grande (lvmin)"],"Large viewport width or height (lvb)":["Ancho o alto del \u00e1rea visible grande (lvb)"],"Large viewport width or height (lvi)":["Ancho o alto del \u00e1rea visible grande (lvi)"],"Large viewport height (lvh)":["Alto del \u00e1rea visible grande (lvh)"],"Large viewport width (lvw)":["Ancho del \u00e1rea visible grande (lvw)"],"Small viewport smallest dimension (svmin)":["Dimensi\u00f3n m\u00ednima del \u00e1rea visible peque\u00f1o (svmin)"],"Small viewport width or height (svb)":["Ancho o alto del \u00e1rea visible peque\u00f1o (svb)"],"Viewport smallest size in the block direction (svb)":["Tama\u00f1o m\u00ednimo del \u00e1rea visible en la direcci\u00f3n del bloque (svb)"],"Small viewport width or height (svi)":["Ancho o alto del \u00e1rea visible peque\u00f1o (svi)"],"Viewport smallest size in the inline direction (svi)":["Tama\u00f1o m\u00ednimo del \u00e1rea visible en la direcci\u00f3n incrustada (svi)"],"Small viewport height (svh)":["Alto del \u00e1rea visible peque\u00f1o (svh)"],"Small viewport width (svw)":["Ancho del \u00e1rea visible peque\u00f1o (svw)"],"No color selected":["No se ha seleccionado ning\u00fan color"],"Required":["Obligatorio"],"Notice":["Aviso"],"Error notice":["Aviso de error"],"Information notice":["Aviso informativo"],"Warning notice":["Aviso de advertencia"],"Focal point top position":["Posici\u00f3n superior del punto focal"],"Focal point left position":["Posici\u00f3n izquierda del punto focal"],"Scrollable section":["Secci\u00f3n con desplazamiento"],"Initial %d result loaded. Type to filter all available results. Use up and down arrow keys to navigate.":["Resultado inicial %d cargado. Escribe para filtrar todos los resultados disponibles. Utiliza las teclas de flecha arriba y abajo para navegar.","Resultados iniciaesl %d cargados. Escribe para filtrar todos los resultados disponibles. Utiliza las teclas de flecha arriba y abajo para navegar."],"Extra Extra Large":["Extra extra grande"],"Show details":["Mostrar detalles"],"Decrement":["Reducir"],"Increment":["Aumentar"],"All options reset":["Restablecer todas las opciones."],"All options are currently hidden":["Todas las opciones est\u00e1n ocultas"],"%s is now visible":["%s est\u00e1 ahora visible"],"%s hidden and reset to default":["%s oculto y restablecido a por defecto"],"%s reset to default":["%s restablecer a valores por defecto"],"XXL":["XXL"],"XL":["XL"],"L":["L"],"M":["M"],"S":["S"],"Unset":["No establecido"],"%1$s. Selected":["%1$s. Seleccionada"],"%1$s. Selected. There is %2$d event":["%1$s. Seleccionada. Hay %2$d evento","%1$s. Seleccionada. Hay %2$d eventos"],"View next month":["Ver mes siguiente"],"View previous month":["Ver mes anterior"],"Border color and style picker":["Selector de color de bordes y estilos"],"Loading \u2026":["Cargando\u2026"],"All sides":["Todos los lados"],"Bottom border":["Borde inferior"],"Right border":["Borde derecho"],"Left border":["Borde izquierdo"],"Top border":["Borde superior"],"Border color picker.":["Selector de color del borde."],"Border color and style picker.":["Selector de color y estilo del borde."],"Custom color picker. The currently selected color is called \"%1$s\" and has a value of \"%2$s\".":["Selector de color personalizado. El color seleccionado actualmente se llama \u00ab%1$s\u00bb y tiene un valor de \u00ab%2$s\u00bb."],"Link sides":["Enlazar laterales"],"Unlink sides":["Quitar enlaces laterales"],"Reset all":["Restablecer todo"],"Button label to reveal tool panel options\u0004%s options":["Opciones de %s"],"Hide and reset %s":["Ocultar y restablecer %s"],"Reset %s":["Restablecer %s"],"Search %s":["Buscar %s"],"Set custom size":["Establecer un tama\u00f1o personalizado"],"Use size preset":["Usar un tama\u00f1o prestablecido"],"Currently selected font size: %s":["Tama\u00f1o de fuente seleccionado actualmente: %s"],"Highlights":["Luces"],"Size of a UI element\u0004Extra Large":["Extra grande"],"Size of a UI element\u0004Large":["Grande"],"Size of a UI element\u0004Medium":["Medio"],"Size of a UI element\u0004Small":["Peque\u00f1o"],"Size of a UI element\u0004None":["Ninguno"],"Currently selected: %s":["Seleccionado actualmente: %s"],"Reset colors":["Restablecer los colores"],"Reset gradient":["Restablecer el degradado"],"Remove all colors":["Eliminar todos los colores"],"Remove all gradients":["Eliminar todos los degradados"],"Color options":["Opciones del color"],"Gradient options":["Opciones del degradado"],"Add color":["A\u00f1adir un color"],"Add gradient":["A\u00f1adir un degradado"],"Gradient name":["Nombre del degradado"],"Color %d":["Color %d"],"Color format":["Formato del color"],"Hex color":["Color hexadecimal"],"%1$s (%2$d of %3$d)":["%1$s (%2$d de %3$d)"],"Invalid item":["Elemento no v\u00e1lido"],"Shadows":["Sombras"],"Duotone: %s":["Duotono: %s"],"Duotone code: %s":["C\u00f3digo de duotono: %s"],"%1$s. There is %2$d event":["%1$s. Hay %2$d evento.","%1$s. Hay %2$d eventos."],"Relative to root font size (rem)\u0004rems":["rems"],"Relative to parent font size (em)\u0004ems":["ems"],"Points (pt)":["Puntos (pt)"],"Picas (pc)":["Picas (pc)"],"Inches (in)":["Pulgadas (in)"],"Millimeters (mm)":["Mil\u00edmetros (mm)"],"Centimeters (cm)":["Cent\u00edmetros (cm)"],"x-height of the font (ex)":["x-height de la fuente (ex)"],"Width of the zero (0) character (ch)":["Ancho del car\u00e1cter (ch) cero (0)"],"Viewport largest dimension (vmax)":["Dimensi\u00f3n m\u00e1xima de la ventana (vmax)"],"Viewport smallest dimension (vmin)":["Dimensi\u00f3n m\u00ednima de la ventana (vmin)"],"Percent (%)":["Porcentaje (%)"],"Border width":["Ancho del borde"],"Dotted":["Punteado"],"Dashed":["Discontinuo"],"Viewport height (vh)":["Alto de la visualizaci\u00f3n (vh)"],"Viewport width (vw)":["Ancho de la visualizaci\u00f3n (vw)"],"Relative to root font size (rem)":["Relativo al tama\u00f1o ra\u00edz de la fuente (rem)"],"Relative to parent font size (em)":["Relativo al tama\u00f1o de la fuente superior (em)"],"Pixels (px)":["P\u00edxeles (px)"],"Percentage (%)":["Porcentaje (%)"],"Close search":["Cerrar la b\u00fasqueda"],"Search in %s":["Buscar en %s"],"Select unit":["Seleccionar la unidad"],"Radial":["Radial"],"Linear":["Lineal"],"Media preview":["Vista previa de medios"],"Coordinated Universal Time":["Hora universal coordinada"],"Color name":["Nombre del color"],"Reset search":["Restablecer la b\u00fasqueda"],"Box Control":["Control de cajas"],"Alignment Matrix Control":["Control de la matriz de alineaci\u00f3n"],"Bottom Center":["Abajo al centro"],"Center Right":["Centro a la derecha"],"Center Left":["Centro a la izquierda"],"Top Center":["Arriba al centro"],"Solid":["Continuo"],"Finish":["Finalizar"],"Page %1$d of %2$d":["P\u00e1gina %1$d de %2$d"],"Guide controls":["Controles de gu\u00eda"],"Gradient: %s":["Degradado: %s"],"Gradient code: %s":["C\u00f3digo de degradado: %s"],"Remove Control Point":["Eliminar el punto de control"],"Use your left or right arrow keys or drag and drop with the mouse to change the gradient position. Press the button to change the color or remove the control point.":["Usa las teclas de flecha izquierda o derecha o arrastra y suelta con el rat\u00f3n para cambiar la posici\u00f3n del degradado. Pulsa el bot\u00f3n para cambiar el color o eliminar el punto de control."],"Gradient control point at position %1$d%% with color code %2$s.":["Punto de control de degradado en la posici\u00f3n %1$d%% con c\u00f3digo de color %2$s."],"Extra Large":["Muy grande"],"Small":["Peque\u00f1o"],"Angle":["\u00c1ngulo"],"Separate with commas or the Enter key.":["Separar con comas o la tecla Intro."],"Separate with commas, spaces, or the Enter key.":["Separar con comas, espacios o la tecla Intro."],"Copied!":["\u00a1Copiado!"],"%d result found.":["%d resultado encontrado.","%d resultados encontrados."],"Number of items":["N\u00famero de elementos"],"Category":["Categor\u00eda"],"Z \u2192 A":["Z \u27f6 A"],"A \u2192 Z":["A \u27f6 Z"],"Oldest to newest":["De antiguas a nuevas"],"Newest to oldest":["De nuevas a antiguas"],"Order by":["Ordenar por"],"Dismiss this notice":["Descartar este aviso"],"Remove item":["Eliminar el elemento"],"Item removed.":["Elemento eliminado."],"Item added.":["Elemento a\u00f1adido."],"Add item":["A\u00f1adir un elemento"],"Reset":["Restablecer"],"(opens in a new tab)":["(abre en una nueva pesta\u00f1a)"],"Minutes":["Minutos"],"Color code: %s":["C\u00f3digo de color: %s"],"Custom color picker":["Selector de color personalizado"],"No results.":["No hay resultados."],"%d result found, use up and down arrow keys to navigate.":["%d resultado encontrado, utiliza las teclas arriba y abajo para navegar.","%d resultados encontrados, utiliza las teclas arriba y abajo para navegar."],"Time":["Hora"],"Day":["D\u00eda"],"Month":["Mes"],"Date":["Fecha"],"Hours":["Horas"],"Item selected.":["Elemento seleccionado."],"Previous":["Anterior"],"Year":["A\u00f1o"],"Back":["Volver"],"Style":["Estilo"],"Large":["Grande"],"Drop files to upload":["Arrastra los archivos para subirlos"],"Clear":["Borrar"],"Mixed":["Mixto"],"Custom":["Personalizado"],"Next":["Siguiente"],"PM":["PM"],"AM":["AM"],"Bottom Right":["Abajo a la derecha"],"Bottom Left":["Abajo a la izquierda"],"Top Right":["Arriba a la derecha"],"Top Left":["Arriba a la izquierda"],"Type":["Tipo"],"Top":["Arriba"],"Copy":["Copiar"],"Font size":["Tama\u00f1o de la fuente"],"Calendar":["Calendario"],"No results found.":["No se han encontrado resultados."],"Default":["Por defecto"],"Close":["Cerrar"],"Search":["Buscar"],"OK":["Aceptar"],"Medium":["Medio"],"Center":["Centrar"],"Left":["Izquierda"],"Cancel":["Cancelar"],"Done":["Hecho"],"None":["Ninguna"],"Categories":["Categor\u00edas"],"Author":["Autor"]}},"comment":{"reference":"wp-includes\/js\/dist\/components.js"}} \ No newline at end of file diff --git a/wp-content/languages/es_ES-803bf1ce2131e13efc590c1bc47851fc.json b/wp-content/languages/es_ES-803bf1ce2131e13efc590c1bc47851fc.json new file mode 100644 index 0000000..ea968dd --- /dev/null +++ b/wp-content/languages/es_ES-803bf1ce2131e13efc590c1bc47851fc.json @@ -0,0 +1 @@ +{"translation-revision-date":"2026-01-07 19:47:18+0000","generator":"GlotPress\/4.0.3","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"es"},"Uncategorized":["Sin categor\u00eda"],"Multiple
elements detected. The duplicate may be in your content or template. This is not valid HTML and may cause accessibility issues. Please change this HTML element.":["Se han detectado varias tarjetas.
El duplicado puede estar en tu contenido o plantilla. Esto no es HTML v\u00e1lido y puede causar problemas de accesibilidad. Cambia este elemento HTML."],"%s (Already in use)":["%s (Ya en uso)"],"The + + + + + + array( + 'href' => true, + ), +); +?> +
+
+
+ +
+
+
+ + + + + + $name ) ) ); ?> + + + + +
+
+

+ +

+ +
+ + + +
+
+ +
+ +
+ +
+ +
    +
  • +

    + spam ); ?> + spam, 'akismet' ) ); ?> +
  • +
  • +

    + spam ); ?> + spam, 'akismet' ) ); ?> +
  • +
  • +

    + accuracy ); ?>% + + missed_spam, 'akismet' ), number_format( $stat_totals['all']->missed_spam ) ) ) . ', '; + /* translators: %s: number of false positive spam flagged by Akismet */ + echo esc_html( sprintf( _n( '%s false positive', '%s false positives', $stat_totals['all']->false_positives, 'akismet' ), number_format( $stat_totals['all']->false_positives ) ) ); + ?> + +
  • +
+
+
+ + + + + + + +
+
+

+ +

+
+ +
+
+ +
+ +
+

+ +

+
+ +
+
+ + + +
+
+

+
+ + + + + + + + + + + + + + +
+
+
+ + +
+
+

+
+
+ +
+
+ +
+
+

+
+
+
+ + + +
+ +
+
+ +
+
+ +
+ + %s', + esc_url( admin_url( 'edit-comments.php?comment_status=spam' ) ), + esc_html__( 'spam folder', 'akismet' ) + ); + + // The _n() needs to be on one line so the i18n tooling can extract the translator comment. + /* translators: %1$s: spam folder link, %2$d: delete interval in days */ + $delete_message = _n( 'Spam in the %1$s older than %2$d day is deleted automatically.', 'Spam in the %1$s older than %2$d days is deleted automatically.', $delete_interval, 'akismet' ); + + printf( + wp_kses( $delete_message, $kses_allow_link_href ), + wp_kses( $spam_folder_link, $kses_allow_link_href ), + esc_html( $delete_interval ) + ); + ?> +
+
+
+ +
+
+

+
+
+
+ + + +
+ +
+
+ +
+
+ +
+ +
+
+
+
+ +
+ +
+ +
+ + + + +
+ + +
+
+
+
+
+ + +
+
+

+ +

+
+ +
+ + + + + + + + + + + next_billing_date ) : ?> + + + + + + + +
+ status === Akismet::USER_STATUS_ACTIVE ) : ?> +
+ +
+ +
+ ( $akismet_user->account_type === 'free-api-key' && $akismet_user->status === Akismet::USER_STATUS_ACTIVE ? __( 'Upgrade', 'akismet' ) : __( 'Change', 'akismet' ) ), + 'redirect' => 'upgrade', + 'utm_content' => ( $akismet_user->account_type === 'free-api-key' && $akismet_user->status === Akismet::USER_STATUS_ACTIVE ? 'config_upgrade' : 'config_change' ), + ) + ); + ?> +
+
+
+
+ + +
+
diff --git a/wp-content/plugins/akismet/views/connect-jp.php b/wp-content/plugins/akismet/views/connect-jp.php new file mode 100644 index 0000000..2647eae --- /dev/null +++ b/wp-content/plugins/akismet/views/connect-jp.php @@ -0,0 +1,14 @@ + +
+ true ) ); ?> + $akismet_user ) ); ?> +
+ +
+ +
diff --git a/wp-content/plugins/akismet/views/enter.php b/wp-content/plugins/akismet/views/enter.php new file mode 100644 index 0000000..70b6f3a --- /dev/null +++ b/wp-content/plugins/akismet/views/enter.php @@ -0,0 +1,14 @@ +
+ +
+
+ + +

+
+ + +
+
+
+
diff --git a/wp-content/plugins/akismet/views/get.php b/wp-content/plugins/akismet/views/get.php new file mode 100644 index 0000000..41a1369 --- /dev/null +++ b/wp-content/plugins/akismet/views/get.php @@ -0,0 +1,32 @@ + 0 ) { + $submit_classes_attr = implode( ' ', $classes ); +} + +$query_args = array( + 'passback_url' => Akismet_Admin::get_page_url(), + 'redirect' => isset( $redirect ) ? $redirect : 'plugin-signup', +); + +// Set default UTM parameters, overriding with any provided values. +$utm_args = array( + 'utm_source' => isset( $utm_source ) ? $utm_source : 'akismet_plugin', + 'utm_medium' => isset( $utm_medium ) ? $utm_medium : 'in_plugin', + 'utm_campaign' => isset( $utm_campaign ) ? $utm_campaign : 'plugin_static_link', + 'utm_content' => isset( $utm_content ) ? $utm_content : 'get_view_link', +); + +$query_args = array_merge( $query_args, $utm_args ); + +$url = add_query_arg( $query_args, 'https://akismet.com/get/' ); +?> + + + + diff --git a/wp-content/plugins/akismet/views/logo.php b/wp-content/plugins/akismet/views/logo.php new file mode 100644 index 0000000..661d0a1 --- /dev/null +++ b/wp-content/plugins/akismet/views/logo.php @@ -0,0 +1,13 @@ + +
+ + + + + + + +
diff --git a/wp-content/plugins/akismet/views/notice.php b/wp-content/plugins/akismet/views/notice.php new file mode 100644 index 0000000..d68f682 --- /dev/null +++ b/wp-content/plugins/akismet/views/notice.php @@ -0,0 +1,379 @@ + array( + 'href' => true, + 'target' => true, + 'class' => true, + ), +); +$kses_allow_strong = array( 'strong' => true ); + +if ( ! isset( $type ) ) { + $type = false; // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited +} + +/* + * Some notices (plugin, spam-check, spam-check-cron-disabled, alert and usage-limit) are also shown elsewhere in wp-admin, so have different classes applied so that they match the standard WordPress notice format. + */ +?> + + +
+
+
+ +
+ +
+
+
+
+ + +
+

+

+ +

+ +
+ + + +
+

+

+
+ + + +
+
+

+

+ personal, non-commercial use. Please upgrade your plan to continue using Akismet.', 'akismet' ), esc_url( 'https://akismet.com/support/getting-started/free-or-paid/?utm_source=akismet_plugin&utm_campaign=plugin_static_link&utm_medium=in_plugin&utm_content=commercial_support' ) ), $kses_allow_link ); + ?> +

+

+ please get in touch', 'akismet' ), esc_url( 'https://akismet.com/contact/?purpose=commercial&utm_source=akismet_plugin&utm_campaign=plugin_static_link&utm_medium=in_plugin&utm_content=commercial_contact' ) ), $kses_allow_link ); + ?> +

+
+
+ __( 'Upgrade plan', 'akismet' ), + 'classes' => array( 'akismet-alert-button', 'akismet-button' ), + 'redirect' => 'upgrade', + 'utm_content' => 'commercial_upgrade', + ) + ); + ?> +
+
+ + +
+ +

+

+

+ error documentation on akismet.com', 'akismet' ), + esc_url( 'https://akismet.com/developers/detailed-docs/errors/akismet-error-' . absint( $code ) . '?utm_source=akismet_plugin&utm_campaign=plugin_static_link&utm_medium=in_plugin&utm_content=error_info' ) + ), + $kses_allow_link + ); + ?> +

+
+ + +
+

+

+ +

+
+ + +
+

+

+ gethostbynamel function.', 'akismet' ), array_merge( $kses_allow_link, $kses_allow_strong, array( 'code' => true ) ) ); + ?> +

+

+ this information about Akismet’s system requirements', 'akismet' ), esc_url( 'https://akismet.com/akismet-hosting-faq/?utm_source=akismet_plugin&utm_campaign=plugin_static_link&utm_medium=in_plugin&utm_content=hosting_faq_php' ) ), array_merge( $kses_allow_link, $kses_allow_strong, array( 'code' => true ) ) ); + ?> +

+
+ + +
+

+

+ our guide about firewalls', 'akismet' ), esc_url( 'https://akismet.com/akismet-hosting-faq/?utm_source=akismet_plugin&utm_campaign=plugin_static_link&utm_medium=in_plugin&utm_content=hosting_faq_firewall' ) ), $kses_allow_link ); + ?> +

+
+ + +
+

+

+ update your payment details', 'akismet' ), esc_url( 'https://wordpress.com/me/purchases/payment-methods?utm_source=akismet_plugin&utm_campaign=plugin_static_link&utm_medium=in_plugin&utm_content=payment_update' ) ), $kses_allow_link ); + ?> +

+
+ + +
+

+

+ Akismet.com to purchase a new subscription.', 'akismet' ), esc_url( 'https://akismet.com/pricing/?utm_source=akismet_plugin&utm_campaign=plugin_static_link&utm_medium=in_plugin&utm_content=pricing_cancelled' ) ), $kses_allow_link ); + ?> +

+
+ + +
+

+

+ Akismet support for assistance.', 'akismet' ), esc_url( 'https://akismet.com/contact/?utm_source=akismet_plugin&utm_campaign=plugin_static_link&utm_medium=in_plugin&utm_content=support_suspended' ) ), $kses_allow_link ); + ?> +

+
+ + +
+

+

+ contributing a token amount', 'akismet' ), esc_url( 'https://akismet.com/pricing?utm_source=akismet_plugin&utm_campaign=plugin_static_link&utm_medium=in_plugin&utm_content=upgrade_contribution' ) ), $kses_allow_link ); + ?> +

+
+ + +
+

+

+ Akismet support for assistance.', 'akismet' ), esc_url( 'https://akismet.com/contact/?utm_source=akismet_plugin&utm_campaign=plugin_static_link&utm_medium=in_plugin&utm_content=support_missing' ) ), $kses_allow_link ); + ?> +

+
+ + +
+

+

+ choose a free or paid plan so Akismet can protect your site from spam.', 'akismet' ), esc_url( 'https://akismet.com/pricing?utm_source=akismet_plugin&utm_campaign=plugin_static_link&utm_medium=in_plugin&utm_content=choose_plan' ) ), $kses_allow_link ); + ?> +

+

+
+ + + get_var( "SELECT comment_ID FROM {$wpdb->comments} WHERE comment_approved = '0' LIMIT 1" ); + + if ( $at_least_one_comment_in_moderation ) { + $check_pending_link = 'edit-comments.php?akismet_recheck=' . wp_create_nonce( 'akismet_recheck' ); + } + ?> +
+

+ +

+ check pending comments?', 'akismet' ), + esc_url( $check_pending_link ) + ), + $kses_allow_link + ); + ?> +

+ +
+ + +
+

+
+ + +
+

+

+ contact Akismet support', 'akismet' ), + 'https://akismet.com/contact/?utm_source=akismet_plugin&utm_campaign=plugin_static_link&utm_medium=in_plugin&utm_content=support_invalid_key' + ), + $kses_allow_link + ); + ?> +

+
+ + +
+

+

+ our guide about firewalls and check your server configuration.', 'akismet' ), + 'https://akismet.com/akismet-hosting-faq/?utm_source=akismet_plugin&utm_campaign=plugin_static_link&utm_medium=in_plugin&utm_content=hosting_faq' + ), + $kses_allow_link + ); + ?> +

+
+ + +
+ +
+

+ +

+

+ '; + echo esc_html( __( 'Learn more about usage limits', 'akismet' ) ); + echo ''; + + break; + case 'SECOND_MONTH_OVER_LIMIT': + echo esc_html( __( 'Your Akismet usage has been over your plan’s limit for two consecutive months. Next month, we will restrict your account after you reach the limit. Increase your limit to make sure your site stays protected from spam.', 'akismet' ) ); + echo ' '; + echo ''; + echo esc_html( __( 'Learn more about usage limits', 'akismet' ) ); + echo ''; + + break; + case 'THIRD_MONTH_APPROACHING_LIMIT': + echo esc_html( __( 'Your Akismet usage is nearing your plan’s limit for the third consecutive month. We will restrict your account after you reach the limit. Increase your limit to make sure your site stays protected from spam.', 'akismet' ) ); + echo ' '; + echo ''; + echo esc_html( __( 'Learn more about usage limits', 'akismet' ) ); + echo ''; + + break; + case 'THIRD_MONTH_OVER_LIMIT': + case 'FOUR_PLUS_MONTHS_OVER_LIMIT': + echo esc_html( __( 'Your Akismet usage has been over your plan’s limit for three consecutive months. We have restricted your account for the rest of the month. Increase your limit to make sure your site stays protected from spam.', 'akismet' ) ); + echo ' '; + echo ''; + echo esc_html( __( 'Learn more about usage limits', 'akismet' ) ); + echo ''; + + break; + + default: + } + ?> +

+
+
+ + + +
+
+ diff --git a/wp-content/plugins/akismet/views/predefined.php b/wp-content/plugins/akismet/views/predefined.php new file mode 100644 index 0000000..667b7fe --- /dev/null +++ b/wp-content/plugins/akismet/views/predefined.php @@ -0,0 +1,11 @@ +
+

+

+ wp-config.php' ); + + ?> +

+
\ No newline at end of file diff --git a/wp-content/plugins/akismet/views/setup-jetpack.php b/wp-content/plugins/akismet/views/setup-jetpack.php new file mode 100644 index 0000000..774e24c --- /dev/null +++ b/wp-content/plugins/akismet/views/setup-jetpack.php @@ -0,0 +1,97 @@ +status ?? null; +?> +
+ user_email ) && ! empty( $akismet_user->user_login ) ) : ?> +
+
+ user_email, + 48, + '', + '', + array( + 'class' => 'akismet-setup__connection-avatar-image', + 'alt' => '', + ) + ); + ?> + +
+
+ +
+ + +

+ +

+ + + + + +

+ +

+ + +

+ +

+ + + + + +
+ + + + +
+ +

+ +

+ + + +

+ Visit akismet.com to set it up and get your API key.', 'akismet' ), + esc_url( 'https://akismet.com/get?utm_source=akismet_plugin&utm_campaign=plugin_static_link&utm_medium=in_plugin&utm_content=jetpack_flow_different_account' ) + ), + array( + 'a' => array( + 'href' => array(), + 'class' => array(), + ), + ) + ); + ?> +

+ +
+
diff --git a/wp-content/plugins/akismet/views/setup.php b/wp-content/plugins/akismet/views/setup.php new file mode 100644 index 0000000..8030565 --- /dev/null +++ b/wp-content/plugins/akismet/views/setup.php @@ -0,0 +1,78 @@ + + + +'; +?> +
+

+ +

+ +

+ +
    +
  • + +
    +

    + +

    +

    + +

    +
    +
  • +
  • + +
    +

    + +

    +

    + +

    +
    +
  • +
  • + +
    +

    + +

    +

    + +

    +
    +
  • +
  • + +
    +

    + +

    +

    + +

    +
    +
  • +
+ + __( 'Get started', 'akismet' ), + 'classes' => array( 'akismet-button', 'akismet-is-primary', 'akismet-setup-instructions__button' ), + 'utm_content' => 'setup_instructions', + ) + ); + endif; + ?> +
diff --git a/wp-content/plugins/akismet/views/start.php b/wp-content/plugins/akismet/views/start.php new file mode 100644 index 0000000..3e6b6b1 --- /dev/null +++ b/wp-content/plugins/akismet/views/start.php @@ -0,0 +1,26 @@ + +
+
+
+ +
+
+
+ +
+ status, array( Akismet::USER_STATUS_ACTIVE, 'active-dunning', Akismet::USER_STATUS_NO_SUB, Akismet::USER_STATUS_MISSING, Akismet::USER_STATUS_CANCELLED, Akismet::USER_STATUS_SUSPENDED ) ) ) { + Akismet::view( 'connect-jp', compact( 'akismet_user' ) ); + } else { + Akismet::view( 'activate' ); + } + ?> +
+
+
\ No newline at end of file diff --git a/wp-content/plugins/akismet/views/stats.php b/wp-content/plugins/akismet/views/stats.php new file mode 100644 index 0000000..0de0155 --- /dev/null +++ b/wp-content/plugins/akismet/views/stats.php @@ -0,0 +1,12 @@ +
+
+
+ true ) ); ?> + +
+
+ + +
diff --git a/wp-content/plugins/akismet/wrapper.php b/wp-content/plugins/akismet/wrapper.php new file mode 100644 index 0000000..a50b754 --- /dev/null +++ b/wp-content/plugins/akismet/wrapper.php @@ -0,0 +1,215 @@ +Hello, Dolly in the upper right of your admin screen on every page. +Author: Matt Mullenweg +Version: 1.7.2 +Author URI: http://ma.tt/ +Text Domain: hello-dolly +*/ + +// Do not load directly. +if ( ! defined( 'ABSPATH' ) ) { + die(); +} + +function hello_dolly_get_lyric() { + /** These are the lyrics to Hello Dolly */ + $lyrics = "Hello, Dolly +Well, hello, Dolly +It's so nice to have you back where you belong +You're lookin' swell, Dolly +I can tell, Dolly +You're still glowin', you're still crowin' +You're still goin' strong +I feel the room swayin' +While the band's playin' +One of our old favorite songs from way back when +So, take her wrap, fellas +Dolly, never go away again +Hello, Dolly +Well, hello, Dolly +It's so nice to have you back where you belong +You're lookin' swell, Dolly +I can tell, Dolly +You're still glowin', you're still crowin' +You're still goin' strong +I feel the room swayin' +While the band's playin' +One of our old favorite songs from way back when +So, golly, gee, fellas +Have a little faith in me, fellas +Dolly, never go away +Promise, you'll never go away +Dolly'll never go away again"; + + // Here we split it into lines. + $lyrics = explode( "\n", $lyrics ); + + // And then randomly choose a line. + return wptexturize( $lyrics[ mt_rand( 0, count( $lyrics ) - 1 ) ] ); +} + +// This just echoes the chosen line, we'll position it later. +function hello_dolly() { + $chosen = hello_dolly_get_lyric(); + $lang = ''; + if ( 'en_' !== substr( get_user_locale(), 0, 3 ) ) { + $lang = ' lang="en"'; + } + + printf( + '

%s %s

', + __( 'Quote from Hello Dolly song, by Jerry Herman:' ), + $lang, + $chosen + ); +} + +// Now we set that function up to execute when the admin_notices action is called. +add_action( 'admin_notices', 'hello_dolly' ); + +// We need some CSS to position the paragraph. +function dolly_css() { + echo " + + "; +} + +add_action( 'admin_head', 'dolly_css' ); diff --git a/wp-content/plugins/index.php b/wp-content/plugins/index.php new file mode 100644 index 0000000..6220032 --- /dev/null +++ b/wp-content/plugins/index.php @@ -0,0 +1,2 @@ + +
+
+
+
+
+ +

+
+

+

+
+
+ +
+
+
+
+
+
+ \ No newline at end of file diff --git a/wp-content/themes/abiz/archive.php b/wp-content/themes/abiz/archive.php new file mode 100644 index 0000000..aa7edab --- /dev/null +++ b/wp-content/themes/abiz/archive.php @@ -0,0 +1,46 @@ + +
+
+
+
+
+ +
+ +
+ +
+
+
+
+ '', + 'next_text' => '', + ) + ); + ?> +
+
+
+
+ +
+
+
+ \ No newline at end of file diff --git a/wp-content/themes/abiz/assets/css/all.css b/wp-content/themes/abiz/assets/css/all.css new file mode 100644 index 0000000..6da5de1 --- /dev/null +++ b/wp-content/themes/abiz/assets/css/all.css @@ -0,0 +1,35305 @@ +/*! + * Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2023 Fonticons, Inc. + */ + +.fa { + font-family: var(--fa-style-family, "Font Awesome 6 Free"); + font-weight: var(--fa-style, 900) +} + +.fa, +.fa-brands, +.fa-classic, +.fa-duotone, +.fa-light, +.fa-regular, +.fa-sharp, +.fa-sharp-solid, +.fa-solid, +.fa-thin, +.fab, +.fad, +.fal, +.far, +.fas, +.fasl, +.fasr, +.fass, +.fast, +.fat { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + display: var(--fa-display, inline-block); + font-style: normal; + font-variant: normal; + line-height: 1; + text-rendering: auto +} + +.fa-classic, +.fa-light, +.fa-regular, +.fa-solid, +.fa-thin, +.fal, +.far, +.fas, +.fat { + font-family: "Font Awesome 6 Free" +} + +.fa-brands, +.fab { + font-family: "Font Awesome 6 Brands" +} + +.fa-classic.fa-duotone, +.fa-duotone, +.fad { + font-family: "Font Awesome 6 Duotone" +} + +.fa-sharp, +.fasl, +.fasr, +.fass, +.fast { + font-family: "Font Awesome 6 Sharp" +} + +.fa-sharp, +.fass { + font-weight: 900 +} + +.fa-1x { + font-size: 1em +} + +.fa-2x { + font-size: 2em +} + +.fa-3x { + font-size: 3em +} + +.fa-4x { + font-size: 4em +} + +.fa-5x { + font-size: 5em +} + +.fa-6x { + font-size: 6em +} + +.fa-7x { + font-size: 7em +} + +.fa-8x { + font-size: 8em +} + +.fa-9x { + font-size: 9em +} + +.fa-10x { + font-size: 10em +} + +.fa-2xs { + font-size: .625em; + line-height: .1em; + vertical-align: .225em +} + +.fa-xs { + font-size: .75em; + line-height: .08333em; + vertical-align: .125em +} + +.fa-sm { + font-size: .875em; + line-height: .07143em; + vertical-align: .05357em +} + +.fa-lg { + font-size: 1.25em; + line-height: .05em; + vertical-align: -.075em +} + +.fa-xl { + font-size: 1.5em; + line-height: .04167em; + vertical-align: -.125em +} + +.fa-2xl { + font-size: 2em; + line-height: .03125em; + vertical-align: -.1875em +} + +.fa-fw { + text-align: center; + width: 1.25em +} + +.fa-ul { + list-style-type: none; + margin-left: var(--fa-li-margin, 2.5em); + padding-left: 0 +} + +.fa-ul>li { + position: relative +} + +.fa-li { + left: calc(var(--fa-li-width, 2em)*-1); + position: absolute; + text-align: center; + width: var(--fa-li-width, 2em); + line-height: inherit +} + +.fa-border { + border-radius: var(--fa-border-radius, .1em); + border: var(--fa-border-width, .08em) var(--fa-border-style, solid) var(--fa-border-color, #eee); + padding: var(--fa-border-padding, .2em .25em .15em) +} + +.fa-pull-left { + float: left; + margin-right: var(--fa-pull-margin, .3em) +} + +.fa-pull-right { + float: right; + margin-left: var(--fa-pull-margin, .3em) +} + +.fa-beat { + -webkit-animation-name: fa-beat; + animation-name: fa-beat; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out); + animation-timing-function: var(--fa-animation-timing, ease-in-out) +} + +.fa-bounce { + -webkit-animation-name: fa-bounce; + animation-name: fa-bounce; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(.28, .84, .42, 1)); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(.28, .84, .42, 1)) +} + +.fa-fade { + -webkit-animation-name: fa-fade; + animation-name: fa-fade; + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(.4, 0, .6, 1)); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(.4, 0, .6, 1)) +} + +.fa-beat-fade, +.fa-fade { + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s) +} + +.fa-beat-fade { + -webkit-animation-name: fa-beat-fade; + animation-name: fa-beat-fade; + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(.4, 0, .6, 1)); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(.4, 0, .6, 1)) +} + +.fa-flip { + -webkit-animation-name: fa-flip; + animation-name: fa-flip; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out); + animation-timing-function: var(--fa-animation-timing, ease-in-out) +} + +.fa-shake { + -webkit-animation-name: fa-shake; + animation-name: fa-shake; + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, linear); + animation-timing-function: var(--fa-animation-timing, linear) +} + +.fa-shake, +.fa-spin { + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal) +} + +.fa-spin { + -webkit-animation-name: fa-spin; + animation-name: fa-spin; + -webkit-animation-duration: var(--fa-animation-duration, 2s); + animation-duration: var(--fa-animation-duration, 2s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, linear); + animation-timing-function: var(--fa-animation-timing, linear) +} + +.fa-spin-reverse { + --fa-animation-direction: reverse +} + +.fa-pulse, +.fa-spin-pulse { + -webkit-animation-name: fa-spin; + animation-name: fa-spin; + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, steps(8)); + animation-timing-function: var(--fa-animation-timing, steps(8)) +} + +@media (prefers-reduced-motion:reduce) { + .fa-beat, + .fa-beat-fade, + .fa-bounce, + .fa-fade, + .fa-flip, + .fa-pulse, + .fa-shake, + .fa-spin, + .fa-spin-pulse { + -webkit-animation-delay: -1ms; + animation-delay: -1ms; + -webkit-animation-duration: 1ms; + animation-duration: 1ms; + -webkit-animation-iteration-count: 1; + animation-iteration-count: 1; + -webkit-transition-delay: 0s; + transition-delay: 0s; + -webkit-transition-duration: 0s; + transition-duration: 0s + } +} + +@-webkit-keyframes fa-beat { + 0%, + 90% { + -webkit-transform: scale(1); + transform: scale(1) + } + 45% { + -webkit-transform: scale(var(--fa-beat-scale, 1.25)); + transform: scale(var(--fa-beat-scale, 1.25)) + } +} + +@keyframes fa-beat { + 0%, + 90% { + -webkit-transform: scale(1); + transform: scale(1) + } + 45% { + -webkit-transform: scale(var(--fa-beat-scale, 1.25)); + transform: scale(var(--fa-beat-scale, 1.25)) + } +} + +@-webkit-keyframes fa-bounce { + 0% { + -webkit-transform: scale(1) translateY(0); + transform: scale(1) translateY(0) + } + 10% { + -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, .9)) translateY(0); + transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, .9)) translateY(0) + } + 30% { + -webkit-transform: scale(var(--fa-bounce-jump-scale-x, .9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -.5em)); + transform: scale(var(--fa-bounce-jump-scale-x, .9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -.5em)) + } + 50% { + -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, .95)) translateY(0); + transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, .95)) translateY(0) + } + 57% { + -webkit-transform: scale(1) translateY(var(--fa-bounce-rebound, -.125em)); + transform: scale(1) translateY(var(--fa-bounce-rebound, -.125em)) + } + 64% { + -webkit-transform: scale(1) translateY(0); + transform: scale(1) translateY(0) + } + to { + -webkit-transform: scale(1) translateY(0); + transform: scale(1) translateY(0) + } +} + +@keyframes fa-bounce { + 0% { + -webkit-transform: scale(1) translateY(0); + transform: scale(1) translateY(0) + } + 10% { + -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, .9)) translateY(0); + transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, .9)) translateY(0) + } + 30% { + -webkit-transform: scale(var(--fa-bounce-jump-scale-x, .9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -.5em)); + transform: scale(var(--fa-bounce-jump-scale-x, .9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -.5em)) + } + 50% { + -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, .95)) translateY(0); + transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, .95)) translateY(0) + } + 57% { + -webkit-transform: scale(1) translateY(var(--fa-bounce-rebound, -.125em)); + transform: scale(1) translateY(var(--fa-bounce-rebound, -.125em)) + } + 64% { + -webkit-transform: scale(1) translateY(0); + transform: scale(1) translateY(0) + } + to { + -webkit-transform: scale(1) translateY(0); + transform: scale(1) translateY(0) + } +} + +@-webkit-keyframes fa-fade { + 50% { + opacity: var(--fa-fade-opacity, .4) + } +} + +@keyframes fa-fade { + 50% { + opacity: var(--fa-fade-opacity, .4) + } +} + +@-webkit-keyframes fa-beat-fade { + 0%, + to { + opacity: var(--fa-beat-fade-opacity, .4); + -webkit-transform: scale(1); + transform: scale(1) + } + 50% { + opacity: 1; + -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125)); + transform: scale(var(--fa-beat-fade-scale, 1.125)) + } +} + +@keyframes fa-beat-fade { + 0%, + to { + opacity: var(--fa-beat-fade-opacity, .4); + -webkit-transform: scale(1); + transform: scale(1) + } + 50% { + opacity: 1; + -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125)); + transform: scale(var(--fa-beat-fade-scale, 1.125)) + } +} + +@-webkit-keyframes fa-flip { + 50% { + -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); + transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)) + } +} + +@keyframes fa-flip { + 50% { + -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); + transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)) + } +} + +@-webkit-keyframes fa-shake { + 0% { + -webkit-transform: rotate(-15deg); + transform: rotate(-15deg) + } + 4% { + -webkit-transform: rotate(15deg); + transform: rotate(15deg) + } + 8%, + 24% { + -webkit-transform: rotate(-18deg); + transform: rotate(-18deg) + } + 12%, + 28% { + -webkit-transform: rotate(18deg); + transform: rotate(18deg) + } + 16% { + -webkit-transform: rotate(-22deg); + transform: rotate(-22deg) + } + 20% { + -webkit-transform: rotate(22deg); + transform: rotate(22deg) + } + 32% { + -webkit-transform: rotate(-12deg); + transform: rotate(-12deg) + } + 36% { + -webkit-transform: rotate(12deg); + transform: rotate(12deg) + } + 40%, + to { + -webkit-transform: rotate(0deg); + transform: rotate(0deg) + } +} + +@keyframes fa-shake { + 0% { + -webkit-transform: rotate(-15deg); + transform: rotate(-15deg) + } + 4% { + -webkit-transform: rotate(15deg); + transform: rotate(15deg) + } + 8%, + 24% { + -webkit-transform: rotate(-18deg); + transform: rotate(-18deg) + } + 12%, + 28% { + -webkit-transform: rotate(18deg); + transform: rotate(18deg) + } + 16% { + -webkit-transform: rotate(-22deg); + transform: rotate(-22deg) + } + 20% { + -webkit-transform: rotate(22deg); + transform: rotate(22deg) + } + 32% { + -webkit-transform: rotate(-12deg); + transform: rotate(-12deg) + } + 36% { + -webkit-transform: rotate(12deg); + transform: rotate(12deg) + } + 40%, + to { + -webkit-transform: rotate(0deg); + transform: rotate(0deg) + } +} + +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg) + } + to { + -webkit-transform: rotate(1turn); + transform: rotate(1turn) + } +} + +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg) + } + to { + -webkit-transform: rotate(1turn); + transform: rotate(1turn) + } +} + +.fa-rotate-90 { + -webkit-transform: rotate(90deg); + transform: rotate(90deg) +} + +.fa-rotate-180 { + -webkit-transform: rotate(180deg); + transform: rotate(180deg) +} + +.fa-rotate-270 { + -webkit-transform: rotate(270deg); + transform: rotate(270deg) +} + +.fa-flip-horizontal { + -webkit-transform: scaleX(-1); + transform: scaleX(-1) +} + +.fa-flip-vertical { + -webkit-transform: scaleY(-1); + transform: scaleY(-1) +} + +.fa-flip-both, +.fa-flip-horizontal.fa-flip-vertical { + -webkit-transform: scale(-1); + transform: scale(-1) +} + +.fa-rotate-by { + -webkit-transform: rotate(var(--fa-rotate-angle, none)); + transform: rotate(var(--fa-rotate-angle, none)) +} + +.fa-stack { + display: inline-block; + height: 2em; + line-height: 2em; + position: relative; + vertical-align: middle; + width: 2.5em +} + +.fa-stack-1x, +.fa-stack-2x { + left: 0; + position: absolute; + text-align: center; + width: 100%; + z-index: var(--fa-stack-z-index, auto) +} + +.fa-stack-1x { + line-height: inherit +} + +.fa-stack-2x { + font-size: 2em +} + +.fa-inverse { + color: var(--fa-inverse, #fff) +} + +.fa-0:before { + content: "\30" +} + +.fa-1:before { + content: "\31" +} + +.fa-2:before { + content: "\32" +} + +.fa-3:before { + content: "\33" +} + +.fa-4:before { + content: "\34" +} + +.fa-5:before { + content: "\35" +} + +.fa-6:before { + content: "\36" +} + +.fa-7:before { + content: "\37" +} + +.fa-8:before { + content: "\38" +} + +.fa-9:before { + content: "\39" +} + +.fa-fill-drip:before { + content: "\f576" +} + +.fa-arrows-to-circle:before { + content: "\e4bd" +} + +.fa-chevron-circle-right:before, +.fa-circle-chevron-right:before { + content: "\f138" +} + +.fa-wagon-covered:before { + content: "\f8ee" +} + +.fa-line-height:before { + content: "\f871" +} + +.fa-bagel:before { + content: "\e3d7" +} + +.fa-transporter-7:before { + content: "\e2a8" +} + +.fa-at:before { + content: "\40" +} + +.fa-rectangles-mixed:before { + content: "\e323" +} + +.fa-phone-arrow-up-right:before, +.fa-phone-arrow-up:before, +.fa-phone-outgoing:before { + content: "\e224" +} + +.fa-trash-alt:before, +.fa-trash-can:before { + content: "\f2ed" +} + +.fa-circle-l:before { + content: "\e114" +} + +.fa-head-side-goggles:before, +.fa-head-vr:before { + content: "\f6ea" +} + +.fa-text-height:before { + content: "\f034" +} + +.fa-user-times:before, +.fa-user-xmark:before { + content: "\f235" +} + +.fa-face-hand-yawn:before { + content: "\e379" +} + +.fa-gauge-simple-min:before, +.fa-tachometer-slowest:before { + content: "\f62d" +} + +.fa-stethoscope:before { + content: "\f0f1" +} + +.fa-coffin:before { + content: "\f6c6" +} + +.fa-comment-alt:before, +.fa-message:before { + content: "\f27a" +} + +.fa-bowl-salad:before, +.fa-salad:before { + content: "\f81e" +} + +.fa-info:before { + content: "\f129" +} + +.fa-robot-astromech:before { + content: "\e2d2" +} + +.fa-ring-diamond:before { + content: "\e5ab" +} + +.fa-fondue-pot:before { + content: "\e40d" +} + +.fa-theta:before { + content: "\f69e" +} + +.fa-face-hand-peeking:before { + content: "\e481" +} + +.fa-square-user:before { + content: "\e283" +} + +.fa-compress-alt:before, +.fa-down-left-and-up-right-to-center:before { + content: "\f422" +} + +.fa-explosion:before { + content: "\e4e9" +} + +.fa-file-alt:before, +.fa-file-lines:before, +.fa-file-text:before { + content: "\f15c" +} + +.fa-wave-square:before { + content: "\f83e" +} + +.fa-ring:before { + content: "\f70b" +} + +.fa-building-un:before { + content: "\e4d9" +} + +.fa-dice-three:before { + content: "\f527" +} + +.fa-tire-pressure-warning:before { + content: "\f633" +} + +.fa-wifi-2:before, +.fa-wifi-fair:before { + content: "\f6ab" +} + +.fa-calendar-alt:before, +.fa-calendar-days:before { + content: "\f073" +} + +.fa-mp3-player:before { + content: "\f8ce" +} + +.fa-anchor-circle-check:before { + content: "\e4aa" +} + +.fa-tally-4:before { + content: "\e297" +} + +.fa-rectangle-history:before { + content: "\e4a2" +} + +.fa-building-circle-arrow-right:before { + content: "\e4d1" +} + +.fa-volleyball-ball:before, +.fa-volleyball:before { + content: "\f45f" +} + +.fa-sun-haze:before { + content: "\f765" +} + +.fa-text-size:before { + content: "\f894" +} + +.fa-ufo:before { + content: "\e047" +} + +.fa-fork:before, +.fa-utensil-fork:before { + content: "\f2e3" +} + +.fa-arrows-up-to-line:before { + content: "\e4c2" +} + +.fa-mobile-signal:before { + content: "\e1ef" +} + +.fa-barcode-scan:before { + content: "\f465" +} + +.fa-sort-desc:before, +.fa-sort-down:before { + content: "\f0dd" +} + +.fa-folder-arrow-down:before, +.fa-folder-download:before { + content: "\e053" +} + +.fa-circle-minus:before, +.fa-minus-circle:before { + content: "\f056" +} + +.fa-face-icicles:before { + content: "\e37c" +} + +.fa-shovel:before { + content: "\f713" +} + +.fa-door-open:before { + content: "\f52b" +} + +.fa-films:before { + content: "\e17a" +} + +.fa-right-from-bracket:before, +.fa-sign-out-alt:before { + content: "\f2f5" +} + +.fa-face-glasses:before { + content: "\e377" +} + +.fa-nfc:before { + content: "\e1f7" +} + +.fa-atom:before { + content: "\f5d2" +} + +.fa-soap:before { + content: "\e06e" +} + +.fa-heart-music-camera-bolt:before, +.fa-icons:before { + content: "\f86d" +} + +.fa-microphone-alt-slash:before, +.fa-microphone-lines-slash:before { + content: "\f539" +} + +.fa-closed-captioning-slash:before { + content: "\e135" +} + +.fa-calculator-alt:before, +.fa-calculator-simple:before { + content: "\f64c" +} + +.fa-bridge-circle-check:before { + content: "\e4c9" +} + +.fa-sliders-up:before, +.fa-sliders-v:before { + content: "\f3f1" +} + +.fa-location-minus:before, +.fa-map-marker-minus:before { + content: "\f609" +} + +.fa-pump-medical:before { + content: "\e06a" +} + +.fa-fingerprint:before { + content: "\f577" +} + +.fa-ski-boot:before { + content: "\e3cc" +} + +.fa-rectangle-sd:before, +.fa-standard-definition:before { + content: "\e28a" +} + +.fa-h1:before { + content: "\f313" +} + +.fa-hand-point-right:before { + content: "\f0a4" +} + +.fa-magnifying-glass-location:before, +.fa-search-location:before { + content: "\f689" +} + +.fa-message-bot:before { + content: "\e3b8" +} + +.fa-forward-step:before, +.fa-step-forward:before { + content: "\f051" +} + +.fa-face-smile-beam:before, +.fa-smile-beam:before { + content: "\f5b8" +} + +.fa-light-ceiling:before { + content: "\e016" +} + +.fa-comment-alt-exclamation:before, +.fa-message-exclamation:before { + content: "\f4a5" +} + +.fa-bowl-scoop:before, +.fa-bowl-shaved-ice:before { + content: "\e3de" +} + +.fa-square-x:before { + content: "\e286" +} + +.fa-building-memo:before { + content: "\e61e" +} + +.fa-utility-pole-double:before { + content: "\e2c4" +} + +.fa-flag-checkered:before { + content: "\f11e" +} + +.fa-chevron-double-up:before, +.fa-chevrons-up:before { + content: "\f325" +} + +.fa-football-ball:before, +.fa-football:before { + content: "\f44e" +} + +.fa-user-vneck:before { + content: "\e461" +} + +.fa-school-circle-exclamation:before { + content: "\e56c" +} + +.fa-crop:before { + content: "\f125" +} + +.fa-angle-double-down:before, +.fa-angles-down:before { + content: "\f103" +} + +.fa-users-rectangle:before { + content: "\e594" +} + +.fa-people-roof:before { + content: "\e537" +} + +.fa-arrow-square-right:before, +.fa-square-arrow-right:before { + content: "\f33b" +} + +.fa-location-plus:before, +.fa-map-marker-plus:before { + content: "\f60a" +} + +.fa-lightbulb-exclamation-on:before { + content: "\e1ca" +} + +.fa-people-line:before { + content: "\e534" +} + +.fa-beer-mug-empty:before, +.fa-beer:before { + content: "\f0fc" +} + +.fa-crate-empty:before { + content: "\e151" +} + +.fa-diagram-predecessor:before { + content: "\e477" +} + +.fa-transporter:before { + content: "\e042" +} + +.fa-calendar-circle-user:before { + content: "\e471" +} + +.fa-arrow-up-long:before, +.fa-long-arrow-up:before { + content: "\f176" +} + +.fa-person-carry-box:before, +.fa-person-carry:before { + content: "\f4cf" +} + +.fa-burn:before, +.fa-fire-flame-simple:before { + content: "\f46a" +} + +.fa-male:before, +.fa-person:before { + content: "\f183" +} + +.fa-laptop:before { + content: "\f109" +} + +.fa-file-csv:before { + content: "\f6dd" +} + +.fa-menorah:before { + content: "\f676" +} + +.fa-union:before { + content: "\f6a2" +} + +.fa-chevron-double-left:before, +.fa-chevrons-left:before { + content: "\f323" +} + +.fa-circle-heart:before, +.fa-heart-circle:before { + content: "\f4c7" +} + +.fa-truck-plane:before { + content: "\e58f" +} + +.fa-record-vinyl:before { + content: "\f8d9" +} + +.fa-bring-forward:before { + content: "\f856" +} + +.fa-square-p:before { + content: "\e279" +} + +.fa-face-grin-stars:before, +.fa-grin-stars:before { + content: "\f587" +} + +.fa-sigma:before { + content: "\f68b" +} + +.fa-camera-movie:before { + content: "\f8a9" +} + +.fa-bong:before { + content: "\f55c" +} + +.fa-clarinet:before { + content: "\f8ad" +} + +.fa-truck-flatbed:before { + content: "\e2b6" +} + +.fa-pastafarianism:before, +.fa-spaghetti-monster-flying:before { + content: "\f67b" +} + +.fa-arrow-down-up-across-line:before { + content: "\e4af" +} + +.fa-arrows-rotate-reverse:before { + content: "\e630" +} + +.fa-leaf-heart:before { + content: "\f4cb" +} + +.fa-house-building:before { + content: "\e1b1" +} + +.fa-cheese-swiss:before { + content: "\f7f0" +} + +.fa-spoon:before, +.fa-utensil-spoon:before { + content: "\f2e5" +} + +.fa-jar-wheat:before { + content: "\e517" +} + +.fa-envelopes-bulk:before, +.fa-mail-bulk:before { + content: "\f674" +} + +.fa-file-circle-exclamation:before { + content: "\e4eb" +} + +.fa-bow-arrow:before { + content: "\f6b9" +} + +.fa-cart-xmark:before { + content: "\e0dd" +} + +.fa-hexagon-xmark:before, +.fa-times-hexagon:before, +.fa-xmark-hexagon:before { + content: "\f2ee" +} + +.fa-circle-h:before, +.fa-hospital-symbol:before { + content: "\f47e" +} + +.fa-merge:before { + content: "\e526" +} + +.fa-pager:before { + content: "\f815" +} + +.fa-cart-minus:before { + content: "\e0db" +} + +.fa-address-book:before, +.fa-contact-book:before { + content: "\f2b9" +} + +.fa-pan-frying:before { + content: "\e42c" +} + +.fa-grid-3:before, +.fa-grid:before { + content: "\e195" +} + +.fa-football-helmet:before { + content: "\f44f" +} + +.fa-hand-love:before { + content: "\e1a5" +} + +.fa-trees:before { + content: "\f724" +} + +.fa-strikethrough:before { + content: "\f0cc" +} + +.fa-page:before { + content: "\e428" +} + +.fa-k:before { + content: "\4b" +} + +.fa-diagram-previous:before { + content: "\e478" +} + +.fa-gauge-min:before, +.fa-tachometer-alt-slowest:before { + content: "\f628" +} + +.fa-folder-grid:before { + content: "\e188" +} + +.fa-eggplant:before { + content: "\e16c" +} + +.fa-excavator:before { + content: "\e656" +} + +.fa-ram:before { + content: "\f70a" +} + +.fa-landmark-flag:before { + content: "\e51c" +} + +.fa-lips:before { + content: "\f600" +} + +.fa-pencil-alt:before, +.fa-pencil:before { + content: "\f303" +} + +.fa-backward:before { + content: "\f04a" +} + +.fa-caret-right:before { + content: "\f0da" +} + +.fa-comments:before { + content: "\f086" +} + +.fa-file-clipboard:before, +.fa-paste:before { + content: "\f0ea" +} + +.fa-desktop-arrow-down:before { + content: "\e155" +} + +.fa-code-pull-request:before { + content: "\e13c" +} + +.fa-pumpkin:before { + content: "\f707" +} + +.fa-clipboard-list:before { + content: "\f46d" +} + +.fa-pen-field:before { + content: "\e211" +} + +.fa-blueberries:before { + content: "\e2e8" +} + +.fa-truck-loading:before, +.fa-truck-ramp-box:before { + content: "\f4de" +} + +.fa-note:before { + content: "\e1ff" +} + +.fa-arrow-down-to-square:before { + content: "\e096" +} + +.fa-user-check:before { + content: "\f4fc" +} + +.fa-cloud-xmark:before { + content: "\e35f" +} + +.fa-vial-virus:before { + content: "\e597" +} + +.fa-book-alt:before, +.fa-book-blank:before { + content: "\f5d9" +} + +.fa-golf-flag-hole:before { + content: "\e3ac" +} + +.fa-comment-alt-arrow-down:before, +.fa-message-arrow-down:before { + content: "\e1db" +} + +.fa-face-unamused:before { + content: "\e39f" +} + +.fa-sheet-plastic:before { + content: "\e571" +} + +.fa-circle-9:before { + content: "\e0f6" +} + +.fa-blog:before { + content: "\f781" +} + +.fa-user-ninja:before { + content: "\f504" +} + +.fa-pencil-slash:before { + content: "\e215" +} + +.fa-bowling-pins:before { + content: "\f437" +} + +.fa-person-arrow-up-from-line:before { + content: "\e539" +} + +.fa-down-right:before { + content: "\e16b" +} + +.fa-scroll-torah:before, +.fa-torah:before { + content: "\f6a0" +} + +.fa-webhook:before { + content: "\e5d5" +} + +.fa-blinds-open:before { + content: "\f8fc" +} + +.fa-fence:before { + content: "\e303" +} + +.fa-arrow-alt-up:before, +.fa-up:before { + content: "\f357" +} + +.fa-broom-ball:before, +.fa-quidditch-broom-ball:before, +.fa-quidditch:before { + content: "\f458" +} + +.fa-drumstick:before { + content: "\f6d6" +} + +.fa-square-v:before { + content: "\e284" +} + +.fa-face-awesome:before, +.fa-gave-dandy:before { + content: "\e409" +} + +.fa-dial-off:before { + content: "\e162" +} + +.fa-toggle-off:before { + content: "\f204" +} + +.fa-face-smile-horns:before { + content: "\e391" +} + +.fa-archive:before, +.fa-box-archive:before { + content: "\f187" +} + +.fa-grapes:before { + content: "\e306" +} + +.fa-person-drowning:before { + content: "\e545" +} + +.fa-dial-max:before { + content: "\e15e" +} + +.fa-circle-m:before { + content: "\e115" +} + +.fa-calendar-image:before { + content: "\e0d4" +} + +.fa-caret-circle-down:before, +.fa-circle-caret-down:before { + content: "\f32d" +} + +.fa-arrow-down-9-1:before, +.fa-sort-numeric-desc:before, +.fa-sort-numeric-down-alt:before { + content: "\f886" +} + +.fa-face-grin-tongue-squint:before, +.fa-grin-tongue-squint:before { + content: "\f58a" +} + +.fa-shish-kebab:before { + content: "\f821" +} + +.fa-spray-can:before { + content: "\f5bd" +} + +.fa-alarm-snooze:before { + content: "\f845" +} + +.fa-scarecrow:before { + content: "\f70d" +} + +.fa-truck-monster:before { + content: "\f63b" +} + +.fa-gift-card:before { + content: "\f663" +} + +.fa-w:before { + content: "\57" +} + +.fa-code-pull-request-draft:before { + content: "\e3fa" +} + +.fa-square-b:before { + content: "\e264" +} + +.fa-elephant:before { + content: "\f6da" +} + +.fa-earth-africa:before, +.fa-globe-africa:before { + content: "\f57c" +} + +.fa-rainbow:before { + content: "\f75b" +} + +.fa-circle-notch:before { + content: "\f1ce" +} + +.fa-tablet-alt:before, +.fa-tablet-screen-button:before { + content: "\f3fa" +} + +.fa-paw:before { + content: "\f1b0" +} + +.fa-message-question:before { + content: "\e1e3" +} + +.fa-cloud:before { + content: "\f0c2" +} + +.fa-trowel-bricks:before { + content: "\e58a" +} + +.fa-square-3:before { + content: "\e258" +} + +.fa-face-flushed:before, +.fa-flushed:before { + content: "\f579" +} + +.fa-hospital-user:before { + content: "\f80d" +} + +.fa-microwave:before { + content: "\e01b" +} + +.fa-chf-sign:before { + content: "\e602" +} + +.fa-tent-arrow-left-right:before { + content: "\e57f" +} + +.fa-cart-circle-arrow-up:before { + content: "\e3f0" +} + +.fa-trash-clock:before { + content: "\e2b0" +} + +.fa-gavel:before, +.fa-legal:before { + content: "\f0e3" +} + +.fa-sprinkler-ceiling:before { + content: "\e44c" +} + +.fa-browsers:before { + content: "\e0cb" +} + +.fa-trillium:before { + content: "\e588" +} + +.fa-music-slash:before { + content: "\f8d1" +} + +.fa-truck-ramp:before { + content: "\f4e0" +} + +.fa-binoculars:before { + content: "\f1e5" +} + +.fa-microphone-slash:before { + content: "\f131" +} + +.fa-box-tissue:before { + content: "\e05b" +} + +.fa-circle-c:before { + content: "\e101" +} + +.fa-star-christmas:before { + content: "\f7d4" +} + +.fa-chart-bullet:before { + content: "\e0e1" +} + +.fa-motorcycle:before { + content: "\f21c" +} + +.fa-tree-christmas:before { + content: "\f7db" +} + +.fa-tire-flat:before { + content: "\f632" +} + +.fa-sunglasses:before { + content: "\f892" +} + +.fa-badge:before { + content: "\f335" +} + +.fa-comment-alt-edit:before, +.fa-message-edit:before, +.fa-message-pen:before { + content: "\f4a4" +} + +.fa-bell-concierge:before, +.fa-concierge-bell:before { + content: "\f562" +} + +.fa-pen-ruler:before, +.fa-pencil-ruler:before { + content: "\f5ae" +} + +.fa-file-mp3:before { + content: "\e648" +} + +.fa-arrow-progress:before { + content: "\e5df" +} + +.fa-chess-rook-alt:before, +.fa-chess-rook-piece:before { + content: "\f448" +} + +.fa-square-root:before { + content: "\f697" +} + +.fa-album-collection-circle-plus:before { + content: "\e48e" +} + +.fa-people-arrows-left-right:before, +.fa-people-arrows:before { + content: "\e068" +} + +.fa-sign-post:before { + content: "\e624" +} + +.fa-face-angry-horns:before { + content: "\e368" +} + +.fa-mars-and-venus-burst:before { + content: "\e523" +} + +.fa-tombstone:before { + content: "\f720" +} + +.fa-caret-square-right:before, +.fa-square-caret-right:before { + content: "\f152" +} + +.fa-cut:before, +.fa-scissors:before { + content: "\f0c4" +} + +.fa-list-music:before { + content: "\f8c9" +} + +.fa-sun-plant-wilt:before { + content: "\e57a" +} + +.fa-toilets-portable:before { + content: "\e584" +} + +.fa-hockey-puck:before { + content: "\f453" +} + +.fa-mustache:before { + content: "\e5bc" +} + +.fa-hyphen:before { + content: "\2d" +} + +.fa-table:before { + content: "\f0ce" +} + +.fa-user-chef:before { + content: "\e3d2" +} + +.fa-comment-alt-image:before, +.fa-message-image:before { + content: "\e1e0" +} + +.fa-users-medical:before { + content: "\f830" +} + +.fa-sensor-alert:before, +.fa-sensor-triangle-exclamation:before { + content: "\e029" +} + +.fa-magnifying-glass-arrow-right:before { + content: "\e521" +} + +.fa-digital-tachograph:before, +.fa-tachograph-digital:before { + content: "\f566" +} + +.fa-face-mask:before { + content: "\e37f" +} + +.fa-pickleball:before { + content: "\e435" +} + +.fa-star-sharp-half:before { + content: "\e28c" +} + +.fa-users-slash:before { + content: "\e073" +} + +.fa-clover:before { + content: "\e139" +} + +.fa-meat:before { + content: "\f814" +} + +.fa-mail-reply:before, +.fa-reply:before { + content: "\f3e5" +} + +.fa-star-and-crescent:before { + content: "\f699" +} + +.fa-empty-set:before { + content: "\f656" +} + +.fa-house-fire:before { + content: "\e50c" +} + +.fa-minus-square:before, +.fa-square-minus:before { + content: "\f146" +} + +.fa-helicopter:before { + content: "\f533" +} + +.fa-bird:before { + content: "\e469" +} + +.fa-compass:before { + content: "\f14e" +} + +.fa-caret-square-down:before, +.fa-square-caret-down:before { + content: "\f150" +} + +.fa-heart-half-alt:before, +.fa-heart-half-stroke:before { + content: "\e1ac" +} + +.fa-file-circle-question:before { + content: "\e4ef" +} + +.fa-truck-utensils:before { + content: "\e628" +} + +.fa-laptop-code:before { + content: "\f5fc" +} + +.fa-joystick:before { + content: "\f8c5" +} + +.fa-grill-fire:before { + content: "\e5a4" +} + +.fa-rectangle-vertical-history:before { + content: "\e237" +} + +.fa-swatchbook:before { + content: "\f5c3" +} + +.fa-prescription-bottle:before { + content: "\f485" +} + +.fa-bars:before, +.fa-navicon:before { + content: "\f0c9" +} + +.fa-keyboard-left:before { + content: "\e1c3" +} + +.fa-people-group:before { + content: "\e533" +} + +.fa-hourglass-3:before, +.fa-hourglass-end:before { + content: "\f253" +} + +.fa-heart-broken:before, +.fa-heart-crack:before { + content: "\f7a9" +} + +.fa-face-beam-hand-over-mouth:before { + content: "\e47c" +} + +.fa-droplet-percent:before, +.fa-humidity:before { + content: "\f750" +} + +.fa-external-link-square-alt:before, +.fa-square-up-right:before { + content: "\f360" +} + +.fa-face-kiss-beam:before, +.fa-kiss-beam:before { + content: "\f597" +} + +.fa-corn:before { + content: "\f6c7" +} + +.fa-roller-coaster:before { + content: "\e324" +} + +.fa-photo-film-music:before { + content: "\e228" +} + +.fa-radar:before { + content: "\e024" +} + +.fa-sickle:before { + content: "\f822" +} + +.fa-film:before { + content: "\f008" +} + +.fa-coconut:before { + content: "\e2f6" +} + +.fa-ruler-horizontal:before { + content: "\f547" +} + +.fa-shield-cross:before { + content: "\f712" +} + +.fa-cassette-tape:before { + content: "\f8ab" +} + +.fa-square-terminal:before { + content: "\e32a" +} + +.fa-people-robbery:before { + content: "\e536" +} + +.fa-lightbulb:before { + content: "\f0eb" +} + +.fa-caret-left:before { + content: "\f0d9" +} + +.fa-comment-middle:before { + content: "\e149" +} + +.fa-trash-can-list:before { + content: "\e2ab" +} + +.fa-block:before { + content: "\e46a" +} + +.fa-circle-exclamation:before, +.fa-exclamation-circle:before { + content: "\f06a" +} + +.fa-school-circle-xmark:before { + content: "\e56d" +} + +.fa-arrow-right-from-bracket:before, +.fa-sign-out:before { + content: "\f08b" +} + +.fa-face-frown-slight:before { + content: "\e376" +} + +.fa-chevron-circle-down:before, +.fa-circle-chevron-down:before { + content: "\f13a" +} + +.fa-sidebar-flip:before { + content: "\e24f" +} + +.fa-unlock-alt:before, +.fa-unlock-keyhole:before { + content: "\f13e" +} + +.fa-temperature-list:before { + content: "\e299" +} + +.fa-cloud-showers-heavy:before { + content: "\f740" +} + +.fa-headphones-alt:before, +.fa-headphones-simple:before { + content: "\f58f" +} + +.fa-sitemap:before { + content: "\f0e8" +} + +.fa-pipe-section:before { + content: "\e438" +} + +.fa-space-station-moon-alt:before, +.fa-space-station-moon-construction:before { + content: "\e034" +} + +.fa-circle-dollar-to-slot:before, +.fa-donate:before { + content: "\f4b9" +} + +.fa-memory:before { + content: "\f538" +} + +.fa-face-sleeping:before { + content: "\e38d" +} + +.fa-road-spikes:before { + content: "\e568" +} + +.fa-fire-burner:before { + content: "\e4f1" +} + +.fa-squirrel:before { + content: "\f71a" +} + +.fa-arrow-to-top:before, +.fa-arrow-up-to-line:before { + content: "\f341" +} + +.fa-flag:before { + content: "\f024" +} + +.fa-face-cowboy-hat:before { + content: "\e36e" +} + +.fa-hanukiah:before { + content: "\f6e6" +} + +.fa-chart-scatter-3d:before { + content: "\e0e8" +} + +.fa-display-chart-up:before { + content: "\e5e3" +} + +.fa-square-code:before { + content: "\e267" +} + +.fa-feather:before { + content: "\f52d" +} + +.fa-volume-down:before, +.fa-volume-low:before { + content: "\f027" +} + +.fa-times-to-slot:before, +.fa-vote-nay:before, +.fa-xmark-to-slot:before { + content: "\f771" +} + +.fa-box-alt:before, +.fa-box-taped:before { + content: "\f49a" +} + +.fa-comment-slash:before { + content: "\f4b3" +} + +.fa-swords:before { + content: "\f71d" +} + +.fa-cloud-sun-rain:before { + content: "\f743" +} + +.fa-album:before { + content: "\f89f" +} + +.fa-circle-n:before { + content: "\e118" +} + +.fa-compress:before { + content: "\f066" +} + +.fa-wheat-alt:before, +.fa-wheat-awn:before { + content: "\e2cd" +} + +.fa-ankh:before { + content: "\f644" +} + +.fa-hands-holding-child:before { + content: "\e4fa" +} + +.fa-asterisk:before { + content: "\2a" +} + +.fa-key-skeleton-left-right:before { + content: "\e3b4" +} + +.fa-comment-lines:before { + content: "\f4b0" +} + +.fa-luchador-mask:before, +.fa-luchador:before, +.fa-mask-luchador:before { + content: "\f455" +} + +.fa-check-square:before, +.fa-square-check:before { + content: "\f14a" +} + +.fa-shredder:before { + content: "\f68a" +} + +.fa-book-open-alt:before, +.fa-book-open-cover:before { + content: "\e0c0" +} + +.fa-sandwich:before { + content: "\f81f" +} + +.fa-peseta-sign:before { + content: "\e221" +} + +.fa-parking-slash:before, +.fa-square-parking-slash:before { + content: "\f617" +} + +.fa-train-tunnel:before { + content: "\e454" +} + +.fa-header:before, +.fa-heading:before { + content: "\f1dc" +} + +.fa-ghost:before { + content: "\f6e2" +} + +.fa-face-anguished:before { + content: "\e369" +} + +.fa-hockey-sticks:before { + content: "\f454" +} + +.fa-abacus:before { + content: "\f640" +} + +.fa-film-alt:before, +.fa-film-simple:before { + content: "\f3a0" +} + +.fa-list-squares:before, +.fa-list:before { + content: "\f03a" +} + +.fa-tree-palm:before { + content: "\f82b" +} + +.fa-phone-square-alt:before, +.fa-square-phone-flip:before { + content: "\f87b" +} + +.fa-cart-plus:before { + content: "\f217" +} + +.fa-gamepad:before { + content: "\f11b" +} + +.fa-border-center-v:before { + content: "\f89d" +} + +.fa-circle-dot:before, +.fa-dot-circle:before { + content: "\f192" +} + +.fa-clipboard-medical:before { + content: "\e133" +} + +.fa-dizzy:before, +.fa-face-dizzy:before { + content: "\f567" +} + +.fa-egg:before { + content: "\f7fb" +} + +.fa-arrow-alt-to-top:before, +.fa-up-to-line:before { + content: "\f34d" +} + +.fa-house-medical-circle-xmark:before { + content: "\e513" +} + +.fa-watch-fitness:before { + content: "\f63e" +} + +.fa-clock-nine-thirty:before { + content: "\e34d" +} + +.fa-campground:before { + content: "\f6bb" +} + +.fa-folder-plus:before { + content: "\f65e" +} + +.fa-jug:before { + content: "\f8c6" +} + +.fa-futbol-ball:before, +.fa-futbol:before, +.fa-soccer-ball:before { + content: "\f1e3" +} + +.fa-snow-blowing:before { + content: "\f761" +} + +.fa-paint-brush:before, +.fa-paintbrush:before { + content: "\f1fc" +} + +.fa-lock:before { + content: "\f023" +} + +.fa-arrow-down-from-line:before, +.fa-arrow-from-top:before { + content: "\f345" +} + +.fa-gas-pump:before { + content: "\f52f" +} + +.fa-signal-alt-slash:before, +.fa-signal-bars-slash:before { + content: "\f694" +} + +.fa-monkey:before { + content: "\f6fb" +} + +.fa-pro:before, +.fa-rectangle-pro:before { + content: "\e235" +} + +.fa-house-night:before { + content: "\e010" +} + +.fa-hot-tub-person:before, +.fa-hot-tub:before { + content: "\f593" +} + +.fa-globe-pointer:before { + content: "\e60e" +} + +.fa-blanket:before { + content: "\f498" +} + +.fa-map-location:before, +.fa-map-marked:before { + content: "\f59f" +} + +.fa-house-flood-water:before { + content: "\e50e" +} + +.fa-comments-question-check:before { + content: "\e14f" +} + +.fa-tree:before { + content: "\f1bb" +} + +.fa-arrows-cross:before { + content: "\e0a2" +} + +.fa-backpack:before { + content: "\f5d4" +} + +.fa-square-small:before { + content: "\e27e" +} + +.fa-folder-arrow-up:before, +.fa-folder-upload:before { + content: "\e054" +} + +.fa-bridge-lock:before { + content: "\e4cc" +} + +.fa-crosshairs-simple:before { + content: "\e59f" +} + +.fa-sack-dollar:before { + content: "\f81d" +} + +.fa-edit:before, +.fa-pen-to-square:before { + content: "\f044" +} + +.fa-sliders-h-square:before, +.fa-square-sliders:before { + content: "\f3f0" +} + +.fa-car-side:before { + content: "\f5e4" +} + +.fa-comment-middle-top-alt:before, +.fa-message-middle-top:before { + content: "\e1e2" +} + +.fa-lightbulb-on:before { + content: "\f672" +} + +.fa-knife:before, +.fa-utensil-knife:before { + content: "\f2e4" +} + +.fa-share-alt:before, +.fa-share-nodes:before { + content: "\f1e0" +} + +.fa-display-chart-up-circle-dollar:before { + content: "\e5e6" +} + +.fa-wave-sine:before { + content: "\f899" +} + +.fa-heart-circle-minus:before { + content: "\e4ff" +} + +.fa-circle-w:before { + content: "\e12c" +} + +.fa-calendar-circle:before, +.fa-circle-calendar:before { + content: "\e102" +} + +.fa-hourglass-2:before, +.fa-hourglass-half:before { + content: "\f252" +} + +.fa-microscope:before { + content: "\f610" +} + +.fa-sunset:before { + content: "\f767" +} + +.fa-sink:before { + content: "\e06d" +} + +.fa-calendar-exclamation:before { + content: "\f334" +} + +.fa-truck-container-empty:before { + content: "\e2b5" +} + +.fa-hand-heart:before { + content: "\f4bc" +} + +.fa-bag-shopping:before, +.fa-shopping-bag:before { + content: "\f290" +} + +.fa-arrow-down-z-a:before, +.fa-sort-alpha-desc:before, +.fa-sort-alpha-down-alt:before { + content: "\f881" +} + +.fa-mitten:before { + content: "\f7b5" +} + +.fa-reply-clock:before, +.fa-reply-time:before { + content: "\e239" +} + +.fa-person-rays:before { + content: "\e54d" +} + +.fa-arrow-alt-right:before, +.fa-right:before { + content: "\f356" +} + +.fa-circle-f:before { + content: "\e10e" +} + +.fa-users:before { + content: "\f0c0" +} + +.fa-face-pleading:before { + content: "\e386" +} + +.fa-eye-slash:before { + content: "\f070" +} + +.fa-flask-vial:before { + content: "\e4f3" +} + +.fa-police-box:before { + content: "\e021" +} + +.fa-cucumber:before { + content: "\e401" +} + +.fa-head-side-brain:before { + content: "\f808" +} + +.fa-hand-paper:before, +.fa-hand:before { + content: "\f256" +} + +.fa-biking-mountain:before, +.fa-person-biking-mountain:before { + content: "\f84b" +} + +.fa-utensils-slash:before { + content: "\e464" +} + +.fa-print-magnifying-glass:before, +.fa-print-search:before { + content: "\f81a" +} + +.fa-turn-right:before { + content: "\e639" +} + +.fa-folder-bookmark:before { + content: "\e186" +} + +.fa-arrow-turn-left-down:before { + content: "\e633" +} + +.fa-om:before { + content: "\f679" +} + +.fa-pi:before { + content: "\f67e" +} + +.fa-flask-potion:before, +.fa-flask-round-potion:before { + content: "\f6e1" +} + +.fa-face-shush:before { + content: "\e38c" +} + +.fa-worm:before { + content: "\e599" +} + +.fa-house-circle-xmark:before { + content: "\e50b" +} + +.fa-plug:before { + content: "\f1e6" +} + +.fa-calendar-circle-exclamation:before { + content: "\e46e" +} + +.fa-square-i:before { + content: "\e272" +} + +.fa-chevron-up:before { + content: "\f077" +} + +.fa-face-saluting:before { + content: "\e484" +} + +.fa-gauge-simple-low:before, +.fa-tachometer-slow:before { + content: "\f62c" +} + +.fa-face-persevering:before { + content: "\e385" +} + +.fa-camera-circle:before, +.fa-circle-camera:before { + content: "\e103" +} + +.fa-hand-spock:before { + content: "\f259" +} + +.fa-spider-web:before { + content: "\f719" +} + +.fa-circle-microphone:before, +.fa-microphone-circle:before { + content: "\e116" +} + +.fa-book-arrow-up:before { + content: "\e0ba" +} + +.fa-popsicle:before { + content: "\e43e" +} + +.fa-command:before { + content: "\e142" +} + +.fa-blinds:before { + content: "\f8fb" +} + +.fa-stopwatch:before { + content: "\f2f2" +} + +.fa-saxophone:before { + content: "\f8dc" +} + +.fa-square-2:before { + content: "\e257" +} + +.fa-field-hockey-stick-ball:before, +.fa-field-hockey:before { + content: "\f44c" +} + +.fa-arrow-up-square-triangle:before, +.fa-sort-shapes-up-alt:before { + content: "\f88b" +} + +.fa-face-scream:before { + content: "\e38b" +} + +.fa-square-m:before { + content: "\e276" +} + +.fa-camera-web:before, +.fa-webcam:before { + content: "\f832" +} + +.fa-comment-arrow-down:before { + content: "\e143" +} + +.fa-lightbulb-cfl:before { + content: "\e5a6" +} + +.fa-window-frame-open:before { + content: "\e050" +} + +.fa-face-kiss:before, +.fa-kiss:before { + content: "\f596" +} + +.fa-bridge-circle-xmark:before { + content: "\e4cb" +} + +.fa-period:before { + content: "\2e" +} + +.fa-face-grin-tongue:before, +.fa-grin-tongue:before { + content: "\f589" +} + +.fa-up-to-dotted-line:before { + content: "\e457" +} + +.fa-thought-bubble:before { + content: "\e32e" +} + +.fa-skeleton-ribs:before { + content: "\e5cb" +} + +.fa-raygun:before { + content: "\e025" +} + +.fa-flute:before { + content: "\f8b9" +} + +.fa-acorn:before { + content: "\f6ae" +} + +.fa-video-arrow-up-right:before { + content: "\e2c9" +} + +.fa-grate-droplet:before { + content: "\e194" +} + +.fa-seal-exclamation:before { + content: "\e242" +} + +.fa-chess-bishop:before { + content: "\f43a" +} + +.fa-message-sms:before { + content: "\e1e5" +} + +.fa-coffee-beans:before { + content: "\e13f" +} + +.fa-hat-witch:before { + content: "\f6e7" +} + +.fa-face-grin-wink:before, +.fa-grin-wink:before { + content: "\f58c" +} + +.fa-clock-three-thirty:before { + content: "\e357" +} + +.fa-deaf:before, +.fa-deafness:before, +.fa-ear-deaf:before, +.fa-hard-of-hearing:before { + content: "\f2a4" +} + +.fa-alarm-clock:before { + content: "\f34e" +} + +.fa-eclipse:before { + content: "\f749" +} + +.fa-face-relieved:before { + content: "\e389" +} + +.fa-road-circle-check:before { + content: "\e564" +} + +.fa-dice-five:before { + content: "\f523" +} + +.fa-minus-octagon:before, +.fa-octagon-minus:before { + content: "\f308" +} + +.fa-rss-square:before, +.fa-square-rss:before { + content: "\f143" +} + +.fa-face-zany:before { + content: "\e3a4" +} + +.fa-tricycle:before { + content: "\e5c3" +} + +.fa-land-mine-on:before { + content: "\e51b" +} + +.fa-square-arrow-up-left:before { + content: "\e263" +} + +.fa-i-cursor:before { + content: "\f246" +} + +.fa-chart-mixed-up-circle-dollar:before { + content: "\e5d9" +} + +.fa-salt-shaker:before { + content: "\e446" +} + +.fa-stamp:before { + content: "\f5bf" +} + +.fa-file-plus:before { + content: "\f319" +} + +.fa-draw-square:before { + content: "\f5ef" +} + +.fa-toilet-paper-reverse-slash:before, +.fa-toilet-paper-under-slash:before { + content: "\e2a1" +} + +.fa-stairs:before { + content: "\e289" +} + +.fa-drone-alt:before, +.fa-drone-front:before { + content: "\f860" +} + +.fa-glass-empty:before { + content: "\e191" +} + +.fa-dial-high:before { + content: "\e15c" +} + +.fa-user-construction:before, +.fa-user-hard-hat:before, +.fa-user-helmet-safety:before { + content: "\f82c" +} + +.fa-i:before { + content: "\49" +} + +.fa-hryvnia-sign:before, +.fa-hryvnia:before { + content: "\f6f2" +} + +.fa-arrow-down-left-and-arrow-up-right-to-center:before { + content: "\e092" +} + +.fa-pills:before { + content: "\f484" +} + +.fa-face-grin-wide:before, +.fa-grin-alt:before { + content: "\f581" +} + +.fa-tooth:before { + content: "\f5c9" +} + +.fa-basketball-hoop:before { + content: "\f435" +} + +.fa-objects-align-bottom:before { + content: "\e3bb" +} + +.fa-v:before { + content: "\56" +} + +.fa-sparkles:before { + content: "\f890" +} + +.fa-squid:before { + content: "\e450" +} + +.fa-leafy-green:before { + content: "\e41d" +} + +.fa-circle-arrow-up-right:before { + content: "\e0fc" +} + +.fa-calendars:before { + content: "\e0d7" +} + +.fa-bangladeshi-taka-sign:before { + content: "\e2e6" +} + +.fa-bicycle:before { + content: "\f206" +} + +.fa-hammer-war:before { + content: "\f6e4" +} + +.fa-circle-d:before { + content: "\e104" +} + +.fa-spider-black-widow:before { + content: "\f718" +} + +.fa-rod-asclepius:before, +.fa-rod-snake:before, +.fa-staff-aesculapius:before, +.fa-staff-snake:before { + content: "\e579" +} + +.fa-pear:before { + content: "\e20c" +} + +.fa-head-side-cough-slash:before { + content: "\e062" +} + +.fa-file-mov:before { + content: "\e647" +} + +.fa-triangle:before { + content: "\f2ec" +} + +.fa-apartment:before { + content: "\e468" +} + +.fa-ambulance:before, +.fa-truck-medical:before { + content: "\f0f9" +} + +.fa-pepper:before { + content: "\e432" +} + +.fa-piano:before { + content: "\f8d4" +} + +.fa-gun-squirt:before { + content: "\e19d" +} + +.fa-wheat-awn-circle-exclamation:before { + content: "\e598" +} + +.fa-snowman:before { + content: "\f7d0" +} + +.fa-user-alien:before { + content: "\e04a" +} + +.fa-shield-check:before { + content: "\f2f7" +} + +.fa-mortar-pestle:before { + content: "\f5a7" +} + +.fa-road-barrier:before { + content: "\e562" +} + +.fa-chart-candlestick:before { + content: "\e0e2" +} + +.fa-briefcase-blank:before { + content: "\e0c8" +} + +.fa-school:before { + content: "\f549" +} + +.fa-igloo:before { + content: "\f7ae" +} + +.fa-bracket-round:before, +.fa-parenthesis:before { + content: "\28" +} + +.fa-joint:before { + content: "\f595" +} + +.fa-horse-saddle:before { + content: "\f8c3" +} + +.fa-mug-marshmallows:before { + content: "\f7b7" +} + +.fa-filters:before { + content: "\e17e" +} + +.fa-bell-on:before { + content: "\f8fa" +} + +.fa-angle-right:before { + content: "\f105" +} + +.fa-dial-med:before { + content: "\e15f" +} + +.fa-horse:before { + content: "\f6f0" +} + +.fa-q:before { + content: "\51" +} + +.fa-monitor-heart-rate:before, +.fa-monitor-waveform:before { + content: "\f611" +} + +.fa-link-simple:before { + content: "\e1cd" +} + +.fa-whistle:before { + content: "\f460" +} + +.fa-g:before { + content: "\47" +} + +.fa-fragile:before, +.fa-wine-glass-crack:before { + content: "\f4bb" +} + +.fa-slot-machine:before { + content: "\e3ce" +} + +.fa-notes-medical:before { + content: "\f481" +} + +.fa-car-wash:before { + content: "\f5e6" +} + +.fa-escalator:before { + content: "\e171" +} + +.fa-comment-image:before { + content: "\e148" +} + +.fa-temperature-2:before, +.fa-temperature-half:before, +.fa-thermometer-2:before, +.fa-thermometer-half:before { + content: "\f2c9" +} + +.fa-dong-sign:before { + content: "\e169" +} + +.fa-donut:before, +.fa-doughnut:before { + content: "\e406" +} + +.fa-capsules:before { + content: "\f46b" +} + +.fa-poo-bolt:before, +.fa-poo-storm:before { + content: "\f75a" +} + +.fa-tally-1:before { + content: "\e294" +} + +.fa-file-vector:before { + content: "\e64c" +} + +.fa-face-frown-open:before, +.fa-frown-open:before { + content: "\f57a" +} + +.fa-square-dashed:before { + content: "\e269" +} + +.fa-bag-shopping-plus:before { + content: "\e651" +} + +.fa-square-j:before { + content: "\e273" +} + +.fa-hand-point-up:before { + content: "\f0a6" +} + +.fa-money-bill:before { + content: "\f0d6" +} + +.fa-arrow-up-big-small:before, +.fa-sort-size-up:before { + content: "\f88e" +} + +.fa-barcode-read:before { + content: "\f464" +} + +.fa-baguette:before { + content: "\e3d8" +} + +.fa-bowl-soft-serve:before { + content: "\e46b" +} + +.fa-face-holding-back-tears:before { + content: "\e482" +} + +.fa-arrow-alt-square-up:before, +.fa-square-up:before { + content: "\f353" +} + +.fa-subway-tunnel:before, +.fa-train-subway-tunnel:before { + content: "\e2a3" +} + +.fa-exclamation-square:before, +.fa-square-exclamation:before { + content: "\f321" +} + +.fa-semicolon:before { + content: "\3b" +} + +.fa-bookmark:before { + content: "\f02e" +} + +.fa-fan-table:before { + content: "\e004" +} + +.fa-align-justify:before { + content: "\f039" +} + +.fa-battery-1:before, +.fa-battery-low:before { + content: "\e0b1" +} + +.fa-credit-card-front:before { + content: "\f38a" +} + +.fa-brain-arrow-curved-right:before, +.fa-mind-share:before { + content: "\f677" +} + +.fa-umbrella-beach:before { + content: "\f5ca" +} + +.fa-helmet-un:before { + content: "\e503" +} + +.fa-location-smile:before, +.fa-map-marker-smile:before { + content: "\f60d" +} + +.fa-arrow-left-to-line:before, +.fa-arrow-to-left:before { + content: "\f33e" +} + +.fa-bullseye:before { + content: "\f140" +} + +.fa-nigiri:before, +.fa-sushi:before { + content: "\e48a" +} + +.fa-comment-alt-captions:before, +.fa-message-captions:before { + content: "\e1de" +} + +.fa-trash-list:before { + content: "\e2b1" +} + +.fa-bacon:before { + content: "\f7e5" +} + +.fa-option:before { + content: "\e318" +} + +.fa-raccoon:before { + content: "\e613" +} + +.fa-hand-point-down:before { + content: "\f0a7" +} + +.fa-arrow-up-from-bracket:before { + content: "\e09a" +} + +.fa-head-side-gear:before { + content: "\e611" +} + +.fa-trash-plus:before { + content: "\e2b2" +} + +.fa-objects-align-top:before { + content: "\e3c0" +} + +.fa-folder-blank:before, +.fa-folder:before { + content: "\f07b" +} + +.fa-face-anxious-sweat:before { + content: "\e36a" +} + +.fa-credit-card-blank:before { + content: "\f389" +} + +.fa-file-medical-alt:before, +.fa-file-waveform:before { + content: "\f478" +} + +.fa-microchip-ai:before { + content: "\e1ec" +} + +.fa-mug:before { + content: "\f874" +} + +.fa-plane-up-slash:before { + content: "\e22e" +} + +.fa-radiation:before { + content: "\f7b9" +} + +.fa-pen-circle:before { + content: "\e20e" +} + +.fa-bag-seedling:before { + content: "\e5f2" +} + +.fa-chart-simple:before { + content: "\e473" +} + +.fa-crutches:before { + content: "\f7f8" +} + +.fa-circle-parking:before, +.fa-parking-circle:before { + content: "\f615" +} + +.fa-mars-stroke:before { + content: "\f229" +} + +.fa-leaf-oak:before { + content: "\f6f7" +} + +.fa-square-bolt:before { + content: "\e265" +} + +.fa-vial:before { + content: "\f492" +} + +.fa-dashboard:before, +.fa-gauge-med:before, +.fa-gauge:before, +.fa-tachometer-alt-average:before { + content: "\f624" +} + +.fa-magic-wand-sparkles:before, +.fa-wand-magic-sparkles:before { + content: "\e2ca" +} + +.fa-lambda:before { + content: "\f66e" +} + +.fa-e:before { + content: "\45" +} + +.fa-pizza:before { + content: "\f817" +} + +.fa-bowl-chopsticks-noodles:before { + content: "\e2ea" +} + +.fa-h3:before { + content: "\f315" +} + +.fa-pen-alt:before, +.fa-pen-clip:before { + content: "\f305" +} + +.fa-bridge-circle-exclamation:before { + content: "\e4ca" +} + +.fa-badge-percent:before { + content: "\f646" +} + +.fa-rotate-reverse:before { + content: "\e631" +} + +.fa-user:before { + content: "\f007" +} + +.fa-sensor:before { + content: "\e028" +} + +.fa-comma:before { + content: "\2c" +} + +.fa-school-circle-check:before { + content: "\e56b" +} + +.fa-toilet-paper-reverse:before, +.fa-toilet-paper-under:before { + content: "\e2a0" +} + +.fa-light-emergency:before { + content: "\e41f" +} + +.fa-arrow-down-to-arc:before { + content: "\e4ae" +} + +.fa-dumpster:before { + content: "\f793" +} + +.fa-shuttle-van:before, +.fa-van-shuttle:before { + content: "\f5b6" +} + +.fa-building-user:before { + content: "\e4da" +} + +.fa-light-switch:before { + content: "\e017" +} + +.fa-caret-square-left:before, +.fa-square-caret-left:before { + content: "\f191" +} + +.fa-highlighter:before { + content: "\f591" +} + +.fa-heart-rate:before, +.fa-wave-pulse:before { + content: "\f5f8" +} + +.fa-key:before { + content: "\f084" +} + +.fa-hat-santa:before { + content: "\f7a7" +} + +.fa-tamale:before { + content: "\e451" +} + +.fa-box-check:before { + content: "\f467" +} + +.fa-bullhorn:before { + content: "\f0a1" +} + +.fa-steak:before { + content: "\f824" +} + +.fa-location-crosshairs-slash:before, +.fa-location-slash:before { + content: "\f603" +} + +.fa-person-dolly:before { + content: "\f4d0" +} + +.fa-globe:before { + content: "\f0ac" +} + +.fa-synagogue:before { + content: "\f69b" +} + +.fa-file-chart-column:before, +.fa-file-chart-line:before { + content: "\f659" +} + +.fa-person-half-dress:before { + content: "\e548" +} + +.fa-folder-image:before { + content: "\e18a" +} + +.fa-calendar-edit:before, +.fa-calendar-pen:before { + content: "\f333" +} + +.fa-road-bridge:before { + content: "\e563" +} + +.fa-face-smile-tear:before { + content: "\e393" +} + +.fa-comment-alt-plus:before, +.fa-message-plus:before { + content: "\f4a8" +} + +.fa-location-arrow:before { + content: "\f124" +} + +.fa-c:before { + content: "\43" +} + +.fa-tablet-button:before { + content: "\f10a" +} + +.fa-person-dress-fairy:before { + content: "\e607" +} + +.fa-rectangle-history-circle-user:before { + content: "\e4a4" +} + +.fa-building-lock:before { + content: "\e4d6" +} + +.fa-chart-line-up:before { + content: "\e0e5" +} + +.fa-mailbox:before { + content: "\f813" +} + +.fa-sign-posts:before { + content: "\e625" +} + +.fa-truck-bolt:before { + content: "\e3d0" +} + +.fa-pizza-slice:before { + content: "\f818" +} + +.fa-money-bill-wave:before { + content: "\f53a" +} + +.fa-area-chart:before, +.fa-chart-area:before { + content: "\f1fe" +} + +.fa-house-flag:before { + content: "\e50d" +} + +.fa-circle-three-quarters-stroke:before { + content: "\e5d4" +} + +.fa-person-circle-minus:before { + content: "\e540" +} + +.fa-scalpel:before { + content: "\f61d" +} + +.fa-ban:before, +.fa-cancel:before { + content: "\f05e" +} + +.fa-bell-exclamation:before { + content: "\f848" +} + +.fa-bookmark-circle:before, +.fa-circle-bookmark:before { + content: "\e100" +} + +.fa-egg-fried:before { + content: "\f7fc" +} + +.fa-face-weary:before { + content: "\e3a1" +} + +.fa-uniform-martial-arts:before { + content: "\e3d1" +} + +.fa-camera-rotate:before { + content: "\e0d8" +} + +.fa-sun-dust:before { + content: "\f764" +} + +.fa-comment-text:before { + content: "\e14d" +} + +.fa-air-freshener:before, +.fa-spray-can-sparkles:before { + content: "\f5d0" +} + +.fa-signal-alt-4:before, +.fa-signal-alt:before, +.fa-signal-bars-strong:before, +.fa-signal-bars:before { + content: "\f690" +} + +.fa-diamond-exclamation:before { + content: "\e405" +} + +.fa-star:before { + content: "\f005" +} + +.fa-dial-min:before { + content: "\e161" +} + +.fa-repeat:before { + content: "\f363" +} + +.fa-cross:before { + content: "\f654" +} + +.fa-file-caret-down:before, +.fa-page-caret-down:before { + content: "\e429" +} + +.fa-box:before { + content: "\f466" +} + +.fa-venus-mars:before { + content: "\f228" +} + +.fa-clock-seven-thirty:before { + content: "\e351" +} + +.fa-arrow-pointer:before, +.fa-mouse-pointer:before { + content: "\f245" +} + +.fa-clock-four-thirty:before { + content: "\e34b" +} + +.fa-signal-alt-3:before, +.fa-signal-bars-good:before { + content: "\f693" +} + +.fa-cactus:before { + content: "\f8a7" +} + +.fa-lightbulb-gear:before { + content: "\e5fd" +} + +.fa-expand-arrows-alt:before, +.fa-maximize:before { + content: "\f31e" +} + +.fa-charging-station:before { + content: "\f5e7" +} + +.fa-shapes:before, +.fa-triangle-circle-square:before { + content: "\f61f" +} + +.fa-plane-tail:before { + content: "\e22c" +} + +.fa-gauge-simple-max:before, +.fa-tachometer-fastest:before { + content: "\f62b" +} + +.fa-circle-u:before { + content: "\e127" +} + +.fa-shield-slash:before { + content: "\e24b" +} + +.fa-phone-square-down:before, +.fa-square-phone-hangup:before { + content: "\e27a" +} + +.fa-arrow-up-left:before { + content: "\e09d" +} + +.fa-transporter-1:before { + content: "\e043" +} + +.fa-peanuts:before { + content: "\e431" +} + +.fa-random:before, +.fa-shuffle:before { + content: "\f074" +} + +.fa-person-running:before, +.fa-running:before { + content: "\f70c" +} + +.fa-mobile-retro:before { + content: "\e527" +} + +.fa-grip-lines-vertical:before { + content: "\f7a5" +} + +.fa-bin-bottles-recycle:before { + content: "\e5f6" +} + +.fa-arrow-up-from-square:before { + content: "\e09c" +} + +.fa-file-dashed-line:before, +.fa-page-break:before { + content: "\f877" +} + +.fa-bracket-curly-right:before { + content: "\7d" +} + +.fa-spider:before { + content: "\f717" +} + +.fa-clock-three:before { + content: "\e356" +} + +.fa-hands-bound:before { + content: "\e4f9" +} + +.fa-scalpel-line-dashed:before, +.fa-scalpel-path:before { + content: "\f61e" +} + +.fa-file-invoice-dollar:before { + content: "\f571" +} + +.fa-pipe-smoking:before { + content: "\e3c4" +} + +.fa-face-astonished:before { + content: "\e36b" +} + +.fa-window:before { + content: "\f40e" +} + +.fa-plane-circle-exclamation:before { + content: "\e556" +} + +.fa-ear:before { + content: "\f5f0" +} + +.fa-file-lock:before { + content: "\e3a6" +} + +.fa-diagram-venn:before { + content: "\e15a" +} + +.fa-x-ray:before { + content: "\f497" +} + +.fa-goal-net:before { + content: "\e3ab" +} + +.fa-coffin-cross:before { + content: "\e051" +} + +.fa-spell-check:before { + content: "\f891" +} + +.fa-location-xmark:before, +.fa-map-marker-times:before, +.fa-map-marker-xmark:before { + content: "\f60e" +} + +.fa-circle-quarter-stroke:before { + content: "\e5d3" +} + +.fa-lasso:before { + content: "\f8c8" +} + +.fa-slash:before { + content: "\f715" +} + +.fa-person-to-portal:before, +.fa-portal-enter:before { + content: "\e022" +} + +.fa-calendar-star:before { + content: "\f736" +} + +.fa-computer-mouse:before, +.fa-mouse:before { + content: "\f8cc" +} + +.fa-arrow-right-to-bracket:before, +.fa-sign-in:before { + content: "\f090" +} + +.fa-pegasus:before { + content: "\f703" +} + +.fa-files-medical:before { + content: "\f7fd" +} + +.fa-cannon:before { + content: "\e642" +} + +.fa-nfc-lock:before { + content: "\e1f8" +} + +.fa-person-ski-lift:before, +.fa-ski-lift:before { + content: "\f7c8" +} + +.fa-square-6:before { + content: "\e25b" +} + +.fa-shop-slash:before, +.fa-store-alt-slash:before { + content: "\e070" +} + +.fa-wind-turbine:before { + content: "\f89b" +} + +.fa-sliders-simple:before { + content: "\e253" +} + +.fa-grid-round:before { + content: "\e5da" +} + +.fa-badge-sheriff:before { + content: "\f8a2" +} + +.fa-server:before { + content: "\f233" +} + +.fa-virus-covid-slash:before { + content: "\e4a9" +} + +.fa-intersection:before { + content: "\f668" +} + +.fa-shop-lock:before { + content: "\e4a5" +} + +.fa-family:before { + content: "\e300" +} + +.fa-hourglass-1:before, +.fa-hourglass-start:before { + content: "\f251" +} + +.fa-user-hair-buns:before { + content: "\e3d3" +} + +.fa-blender-phone:before { + content: "\f6b6" +} + +.fa-hourglass-clock:before { + content: "\e41b" +} + +.fa-person-seat-reclined:before { + content: "\e21f" +} + +.fa-paper-plane-alt:before, +.fa-paper-plane-top:before, +.fa-send:before { + content: "\e20a" +} + +.fa-comment-alt-arrow-up:before, +.fa-message-arrow-up:before { + content: "\e1dc" +} + +.fa-lightbulb-exclamation:before { + content: "\f671" +} + +.fa-layer-group-minus:before, +.fa-layer-minus:before { + content: "\f5fe" +} + +.fa-chart-pie-simple-circle-currency:before { + content: "\e604" +} + +.fa-circle-e:before { + content: "\e109" +} + +.fa-building-wheat:before { + content: "\e4db" +} + +.fa-gauge-max:before, +.fa-tachometer-alt-fastest:before { + content: "\f626" +} + +.fa-person-breastfeeding:before { + content: "\e53a" +} + +.fa-apostrophe:before { + content: "\27" +} + +.fa-file-png:before { + content: "\e666" +} + +.fa-fire-hydrant:before { + content: "\e17f" +} + +.fa-right-to-bracket:before, +.fa-sign-in-alt:before { + content: "\f2f6" +} + +.fa-video-plus:before { + content: "\f4e1" +} + +.fa-arrow-alt-square-right:before, +.fa-square-right:before { + content: "\f352" +} + +.fa-comment-smile:before { + content: "\f4b4" +} + +.fa-venus:before { + content: "\f221" +} + +.fa-passport:before { + content: "\f5ab" +} + +.fa-inbox-arrow-down:before, +.fa-inbox-in:before { + content: "\f310" +} + +.fa-heart-pulse:before, +.fa-heartbeat:before { + content: "\f21e" +} + +.fa-circle-8:before { + content: "\e0f5" +} + +.fa-clouds-moon:before { + content: "\f745" +} + +.fa-clock-ten-thirty:before { + content: "\e355" +} + +.fa-people-carry-box:before, +.fa-people-carry:before { + content: "\f4ce" +} + +.fa-folder-user:before { + content: "\e18e" +} + +.fa-trash-can-xmark:before { + content: "\e2ae" +} + +.fa-temperature-high:before { + content: "\f769" +} + +.fa-microchip:before { + content: "\f2db" +} + +.fa-left-long-to-line:before { + content: "\e41e" +} + +.fa-crown:before { + content: "\f521" +} + +.fa-weight-hanging:before { + content: "\f5cd" +} + +.fa-xmarks-lines:before { + content: "\e59a" +} + +.fa-file-prescription:before { + content: "\f572" +} + +.fa-calendar-range:before { + content: "\e0d6" +} + +.fa-flower-daffodil:before { + content: "\f800" +} + +.fa-hand-back-point-up:before { + content: "\e1a2" +} + +.fa-weight-scale:before, +.fa-weight:before { + content: "\f496" +} + +.fa-arrow-up-to-arc:before { + content: "\e617" +} + +.fa-star-exclamation:before { + content: "\f2f3" +} + +.fa-books:before { + content: "\f5db" +} + +.fa-user-friends:before, +.fa-user-group:before { + content: "\f500" +} + +.fa-arrow-up-a-z:before, +.fa-sort-alpha-up:before { + content: "\f15e" +} + +.fa-layer-group-plus:before, +.fa-layer-plus:before { + content: "\f5ff" +} + +.fa-play-pause:before { + content: "\e22f" +} + +.fa-block-question:before { + content: "\e3dd" +} + +.fa-snooze:before, +.fa-zzz:before { + content: "\f880" +} + +.fa-scanner-image:before { + content: "\f8f3" +} + +.fa-tv-retro:before { + content: "\f401" +} + +.fa-square-t:before { + content: "\e280" +} + +.fa-barn-silo:before, +.fa-farm:before { + content: "\f864" +} + +.fa-chess-knight:before { + content: "\f441" +} + +.fa-bars-sort:before { + content: "\e0ae" +} + +.fa-palette-boxes:before, +.fa-pallet-alt:before, +.fa-pallet-boxes:before { + content: "\f483" +} + +.fa-face-laugh-squint:before, +.fa-laugh-squint:before { + content: "\f59b" +} + +.fa-code-simple:before { + content: "\e13d" +} + +.fa-bolt-slash:before { + content: "\e0b8" +} + +.fa-panel-fire:before { + content: "\e42f" +} + +.fa-binary-circle-check:before { + content: "\e33c" +} + +.fa-comment-minus:before { + content: "\f4b1" +} + +.fa-burrito:before { + content: "\f7ed" +} + +.fa-violin:before { + content: "\f8ed" +} + +.fa-objects-column:before { + content: "\e3c1" +} + +.fa-chevron-square-down:before, +.fa-square-chevron-down:before { + content: "\f329" +} + +.fa-comment-plus:before { + content: "\f4b2" +} + +.fa-triangle-instrument:before, +.fa-triangle-music:before { + content: "\f8e2" +} + +.fa-wheelchair:before { + content: "\f193" +} + +.fa-user-pilot-tie:before { + content: "\e2c1" +} + +.fa-piano-keyboard:before { + content: "\f8d5" +} + +.fa-bed-empty:before { + content: "\f8f9" +} + +.fa-arrow-circle-up:before, +.fa-circle-arrow-up:before { + content: "\f0aa" +} + +.fa-toggle-on:before { + content: "\f205" +} + +.fa-rectangle-portrait:before, +.fa-rectangle-vertical:before { + content: "\f2fb" +} + +.fa-person-walking:before, +.fa-walking:before { + content: "\f554" +} + +.fa-l:before { + content: "\4c" +} + +.fa-signal-stream:before { + content: "\f8dd" +} + +.fa-down-to-bracket:before { + content: "\e4e7" +} + +.fa-circle-z:before { + content: "\e130" +} + +.fa-stars:before { + content: "\f762" +} + +.fa-fire:before { + content: "\f06d" +} + +.fa-bed-pulse:before, +.fa-procedures:before { + content: "\f487" +} + +.fa-house-day:before { + content: "\e00e" +} + +.fa-shuttle-space:before, +.fa-space-shuttle:before { + content: "\f197" +} + +.fa-shirt-long-sleeve:before { + content: "\e3c7" +} + +.fa-chart-pie-alt:before, +.fa-chart-pie-simple:before { + content: "\f64e" +} + +.fa-face-laugh:before, +.fa-laugh:before { + content: "\f599" +} + +.fa-folder-open:before { + content: "\f07c" +} + +.fa-album-collection-circle-user:before { + content: "\e48f" +} + +.fa-candy:before { + content: "\e3e7" +} + +.fa-bowl-hot:before, +.fa-soup:before { + content: "\f823" +} + +.fa-flatbread:before { + content: "\e40b" +} + +.fa-heart-circle-plus:before { + content: "\e500" +} + +.fa-code-fork:before { + content: "\e13b" +} + +.fa-city:before { + content: "\f64f" +} + +.fa-signal-alt-1:before, +.fa-signal-bars-weak:before { + content: "\f691" +} + +.fa-microphone-alt:before, +.fa-microphone-lines:before { + content: "\f3c9" +} + +.fa-clock-twelve:before { + content: "\e358" +} + +.fa-pepper-hot:before { + content: "\f816" +} + +.fa-citrus-slice:before { + content: "\e2f5" +} + +.fa-sheep:before { + content: "\f711" +} + +.fa-unlock:before { + content: "\f09c" +} + +.fa-colon-sign:before { + content: "\e140" +} + +.fa-headset:before { + content: "\f590" +} + +.fa-badger-honey:before { + content: "\f6b4" +} + +.fa-h4:before { + content: "\f86a" +} + +.fa-store-slash:before { + content: "\e071" +} + +.fa-road-circle-xmark:before { + content: "\e566" +} + +.fa-signal-slash:before { + content: "\f695" +} + +.fa-user-minus:before { + content: "\f503" +} + +.fa-mars-stroke-up:before, +.fa-mars-stroke-v:before { + content: "\f22a" +} + +.fa-champagne-glasses:before, +.fa-glass-cheers:before { + content: "\f79f" +} + +.fa-taco:before { + content: "\f826" +} + +.fa-hexagon-plus:before, +.fa-plus-hexagon:before { + content: "\f300" +} + +.fa-clipboard:before { + content: "\f328" +} + +.fa-house-circle-exclamation:before { + content: "\e50a" +} + +.fa-file-arrow-up:before, +.fa-file-upload:before { + content: "\f574" +} + +.fa-wifi-3:before, +.fa-wifi-strong:before, +.fa-wifi:before { + content: "\f1eb" +} + +.fa-comments-alt:before, +.fa-messages:before { + content: "\f4b6" +} + +.fa-bath:before, +.fa-bathtub:before { + content: "\f2cd" +} + +.fa-umbrella-alt:before, +.fa-umbrella-simple:before { + content: "\e2bc" +} + +.fa-rectangle-history-circle-plus:before { + content: "\e4a3" +} + +.fa-underline:before { + content: "\f0cd" +} + +.fa-prescription-bottle-pill:before { + content: "\e5c0" +} + +.fa-user-edit:before, +.fa-user-pen:before { + content: "\f4ff" +} + +.fa-binary-slash:before { + content: "\e33e" +} + +.fa-square-o:before { + content: "\e278" +} + +.fa-signature:before { + content: "\f5b7" +} + +.fa-stroopwafel:before { + content: "\f551" +} + +.fa-bold:before { + content: "\f032" +} + +.fa-anchor-lock:before { + content: "\e4ad" +} + +.fa-building-ngo:before { + content: "\e4d7" +} + +.fa-transporter-3:before { + content: "\e045" +} + +.fa-engine-exclamation:before, +.fa-engine-warning:before { + content: "\f5f2" +} + +.fa-circle-down-right:before { + content: "\e108" +} + +.fa-square-k:before { + content: "\e274" +} + +.fa-manat-sign:before { + content: "\e1d5" +} + +.fa-money-check-edit:before, +.fa-money-check-pen:before { + content: "\f872" +} + +.fa-not-equal:before { + content: "\f53e" +} + +.fa-border-style:before, +.fa-border-top-left:before { + content: "\f853" +} + +.fa-map-location-dot:before, +.fa-map-marked-alt:before { + content: "\f5a0" +} + +.fa-tilde:before { + content: "\7e" +} + +.fa-jedi:before { + content: "\f669" +} + +.fa-poll:before, +.fa-square-poll-vertical:before { + content: "\f681" +} + +.fa-arrow-down-square-triangle:before, +.fa-sort-shapes-down-alt:before { + content: "\f889" +} + +.fa-mug-hot:before { + content: "\f7b6" +} + +.fa-dog-leashed:before { + content: "\f6d4" +} + +.fa-battery-car:before, +.fa-car-battery:before { + content: "\f5df" +} + +.fa-face-downcast-sweat:before { + content: "\e371" +} + +.fa-mailbox-flag-up:before { + content: "\e5bb" +} + +.fa-memo-circle-info:before { + content: "\e49a" +} + +.fa-gift:before { + content: "\f06b" +} + +.fa-dice-two:before { + content: "\f528" +} + +.fa-volume-medium:before, +.fa-volume:before { + content: "\f6a8" +} + +.fa-transporter-5:before { + content: "\e2a6" +} + +.fa-gauge-circle-bolt:before { + content: "\e496" +} + +.fa-coin-front:before { + content: "\e3fc" +} + +.fa-file-slash:before { + content: "\e3a7" +} + +.fa-message-arrow-up-right:before { + content: "\e1dd" +} + +.fa-treasure-chest:before { + content: "\f723" +} + +.fa-chess-queen:before { + content: "\f445" +} + +.fa-paint-brush-alt:before, +.fa-paint-brush-fine:before, +.fa-paintbrush-alt:before, +.fa-paintbrush-fine:before { + content: "\f5a9" +} + +.fa-glasses:before { + content: "\f530" +} + +.fa-hood-cloak:before { + content: "\f6ef" +} + +.fa-square-quote:before { + content: "\e329" +} + +.fa-up-left:before { + content: "\e2bd" +} + +.fa-bring-front:before { + content: "\f857" +} + +.fa-chess-board:before { + content: "\f43c" +} + +.fa-burger-cheese:before, +.fa-cheeseburger:before { + content: "\f7f1" +} + +.fa-building-circle-check:before { + content: "\e4d2" +} + +.fa-repeat-1:before { + content: "\f365" +} + +.fa-arrow-down-to-line:before, +.fa-arrow-to-bottom:before { + content: "\f33d" +} + +.fa-grid-5:before { + content: "\e199" +} + +.fa-swap-arrows:before { + content: "\e60a" +} + +.fa-right-long-to-line:before { + content: "\e444" +} + +.fa-person-chalkboard:before { + content: "\e53d" +} + +.fa-mars-stroke-h:before, +.fa-mars-stroke-right:before { + content: "\f22b" +} + +.fa-hand-back-fist:before, +.fa-hand-rock:before { + content: "\f255" +} + +.fa-grid-round-5:before { + content: "\e5de" +} + +.fa-tally-5:before, +.fa-tally:before { + content: "\f69c" +} + +.fa-caret-square-up:before, +.fa-square-caret-up:before { + content: "\f151" +} + +.fa-cloud-showers-water:before { + content: "\e4e4" +} + +.fa-bar-chart:before, +.fa-chart-bar:before { + content: "\f080" +} + +.fa-hands-bubbles:before, +.fa-hands-wash:before { + content: "\e05e" +} + +.fa-less-than-equal:before { + content: "\f537" +} + +.fa-train:before { + content: "\f238" +} + +.fa-up-from-dotted-line:before { + content: "\e456" +} + +.fa-eye-low-vision:before, +.fa-low-vision:before { + content: "\f2a8" +} + +.fa-traffic-light-go:before { + content: "\f638" +} + +.fa-face-exhaling:before { + content: "\e480" +} + +.fa-sensor-fire:before { + content: "\e02a" +} + +.fa-user-unlock:before { + content: "\e058" +} + +.fa-hexagon-divide:before { + content: "\e1ad" +} + +.fa-00:before { + content: "\e467" +} + +.fa-crow:before { + content: "\f520" +} + +.fa-betamax:before, +.fa-cassette-betamax:before { + content: "\f8a4" +} + +.fa-sailboat:before { + content: "\e445" +} + +.fa-window-restore:before { + content: "\f2d2" +} + +.fa-nfc-magnifying-glass:before { + content: "\e1f9" +} + +.fa-file-binary:before { + content: "\e175" +} + +.fa-circle-v:before { + content: "\e12a" +} + +.fa-plus-square:before, +.fa-square-plus:before { + content: "\f0fe" +} + +.fa-bowl-scoops:before { + content: "\e3df" +} + +.fa-mistletoe:before { + content: "\f7b4" +} + +.fa-custard:before { + content: "\e403" +} + +.fa-lacrosse-stick:before { + content: "\e3b5" +} + +.fa-hockey-mask:before { + content: "\f6ee" +} + +.fa-sunrise:before { + content: "\f766" +} + +.fa-subtitles:before { + content: "\e60f" +} + +.fa-panel-ews:before { + content: "\e42e" +} + +.fa-torii-gate:before { + content: "\f6a1" +} + +.fa-cloud-exclamation:before { + content: "\e491" +} + +.fa-comment-alt-lines:before, +.fa-message-lines:before { + content: "\f4a6" +} + +.fa-frog:before { + content: "\f52e" +} + +.fa-bucket:before { + content: "\e4cf" +} + +.fa-floppy-disk-pen:before { + content: "\e182" +} + +.fa-image:before { + content: "\f03e" +} + +.fa-window-frame:before { + content: "\e04f" +} + +.fa-microphone:before { + content: "\f130" +} + +.fa-cow:before { + content: "\f6c8" +} + +.fa-file-zip:before { + content: "\e5ee" +} + +.fa-square-ring:before { + content: "\e44f" +} + +.fa-arrow-alt-from-top:before, +.fa-down-from-line:before { + content: "\f349" +} + +.fa-caret-up:before { + content: "\f0d8" +} + +.fa-shield-times:before, +.fa-shield-xmark:before { + content: "\e24c" +} + +.fa-screwdriver:before { + content: "\f54a" +} + +.fa-circle-sort-down:before, +.fa-sort-circle-down:before { + content: "\e031" +} + +.fa-folder-closed:before { + content: "\e185" +} + +.fa-house-tsunami:before { + content: "\e515" +} + +.fa-square-nfi:before { + content: "\e576" +} + +.fa-forklift:before { + content: "\f47a" +} + +.fa-arrow-up-from-ground-water:before { + content: "\e4b5" +} + +.fa-bracket-square-right:before { + content: "\5d" +} + +.fa-glass-martini-alt:before, +.fa-martini-glass:before { + content: "\f57b" +} + +.fa-rotate-back:before, +.fa-rotate-backward:before, +.fa-rotate-left:before, +.fa-undo-alt:before { + content: "\f2ea" +} + +.fa-columns:before, +.fa-table-columns:before { + content: "\f0db" +} + +.fa-square-a:before { + content: "\e25f" +} + +.fa-tick:before { + content: "\e32f" +} + +.fa-lemon:before { + content: "\f094" +} + +.fa-head-side-mask:before { + content: "\e063" +} + +.fa-handshake:before { + content: "\f2b5" +} + +.fa-gem:before { + content: "\f3a5" +} + +.fa-dolly-box:before, +.fa-dolly:before { + content: "\f472" +} + +.fa-smoking:before { + content: "\f48d" +} + +.fa-compress-arrows-alt:before, +.fa-minimize:before { + content: "\f78c" +} + +.fa-refrigerator:before { + content: "\e026" +} + +.fa-monument:before { + content: "\f5a6" +} + +.fa-octagon-xmark:before, +.fa-times-octagon:before, +.fa-xmark-octagon:before { + content: "\f2f0" +} + +.fa-align-slash:before { + content: "\f846" +} + +.fa-snowplow:before { + content: "\f7d2" +} + +.fa-angle-double-right:before, +.fa-angles-right:before { + content: "\f101" +} + +.fa-truck-couch:before, +.fa-truck-ramp-couch:before { + content: "\f4dd" +} + +.fa-cannabis:before { + content: "\f55f" +} + +.fa-circle-play:before, +.fa-play-circle:before { + content: "\f144" +} + +.fa-arrow-up-right-and-arrow-down-left-from-center:before { + content: "\e0a0" +} + +.fa-location-arrow-up:before { + content: "\e63a" +} + +.fa-tablets:before { + content: "\f490" +} + +.fa-360-degrees:before { + content: "\e2dc" +} + +.fa-ethernet:before { + content: "\f796" +} + +.fa-eur:before, +.fa-euro-sign:before, +.fa-euro:before { + content: "\f153" +} + +.fa-chair:before { + content: "\f6c0" +} + +.fa-check-circle:before, +.fa-circle-check:before { + content: "\f058" +} + +.fa-square-dashed-circle-plus:before { + content: "\e5c2" +} + +.fa-hand-holding-circle-dollar:before { + content: "\e621" +} + +.fa-money-simple-from-bracket:before { + content: "\e313" +} + +.fa-bat:before { + content: "\f6b5" +} + +.fa-circle-stop:before, +.fa-stop-circle:before { + content: "\f28d" +} + +.fa-head-side-headphones:before { + content: "\f8c2" +} + +.fa-phone-rotary:before { + content: "\f8d3" +} + +.fa-compass-drafting:before, +.fa-drafting-compass:before { + content: "\f568" +} + +.fa-plate-wheat:before { + content: "\e55a" +} + +.fa-calendar-circle-minus:before { + content: "\e46f" +} + +.fa-chopsticks:before { + content: "\e3f7" +} + +.fa-car-mechanic:before, +.fa-car-wrench:before { + content: "\f5e3" +} + +.fa-icicles:before { + content: "\f7ad" +} + +.fa-person-shelter:before { + content: "\e54f" +} + +.fa-neuter:before { + content: "\f22c" +} + +.fa-id-badge:before { + content: "\f2c1" +} + +.fa-kazoo:before { + content: "\f8c7" +} + +.fa-marker:before { + content: "\f5a1" +} + +.fa-bin-bottles:before { + content: "\e5f5" +} + +.fa-face-laugh-beam:before, +.fa-laugh-beam:before { + content: "\f59a" +} + +.fa-square-arrow-down-left:before { + content: "\e261" +} + +.fa-battery-bolt:before { + content: "\f376" +} + +.fa-tree-large:before { + content: "\f7dd" +} + +.fa-helicopter-symbol:before { + content: "\e502" +} + +.fa-aperture:before { + content: "\e2df" +} + +.fa-universal-access:before { + content: "\f29a" +} + +.fa-gear-complex:before { + content: "\e5e9" +} + +.fa-file-magnifying-glass:before, +.fa-file-search:before { + content: "\f865" +} + +.fa-up-right:before { + content: "\e2be" +} + +.fa-chevron-circle-up:before, +.fa-circle-chevron-up:before { + content: "\f139" +} + +.fa-user-police:before { + content: "\e333" +} + +.fa-lari-sign:before { + content: "\e1c8" +} + +.fa-volcano:before { + content: "\f770" +} + +.fa-teddy-bear:before { + content: "\e3cf" +} + +.fa-stocking:before { + content: "\f7d5" +} + +.fa-person-walking-dashed-line-arrow-right:before { + content: "\e553" +} + +.fa-image-slash:before { + content: "\e1b7" +} + +.fa-mask-snorkel:before { + content: "\e3b7" +} + +.fa-smoke:before { + content: "\f760" +} + +.fa-gbp:before, +.fa-pound-sign:before, +.fa-sterling-sign:before { + content: "\f154" +} + +.fa-battery-exclamation:before { + content: "\e0b0" +} + +.fa-viruses:before { + content: "\e076" +} + +.fa-square-person-confined:before { + content: "\e577" +} + +.fa-user-tie:before { + content: "\f508" +} + +.fa-arrow-down-long:before, +.fa-long-arrow-down:before { + content: "\f175" +} + +.fa-tent-arrow-down-to-line:before { + content: "\e57e" +} + +.fa-certificate:before { + content: "\f0a3" +} + +.fa-crystal-ball:before { + content: "\e362" +} + +.fa-mail-reply-all:before, +.fa-reply-all:before { + content: "\f122" +} + +.fa-suitcase:before { + content: "\f0f2" +} + +.fa-person-skating:before, +.fa-skating:before { + content: "\f7c5" +} + +.fa-star-shooting:before { + content: "\e036" +} + +.fa-binary-lock:before { + content: "\e33d" +} + +.fa-filter-circle-dollar:before, +.fa-funnel-dollar:before { + content: "\f662" +} + +.fa-camera-retro:before { + content: "\f083" +} + +.fa-arrow-circle-down:before, +.fa-circle-arrow-down:before { + content: "\f0ab" +} + +.fa-comment-edit:before, +.fa-comment-pen:before { + content: "\f4ae" +} + +.fa-arrow-right-to-file:before, +.fa-file-import:before { + content: "\f56f" +} + +.fa-banjo:before { + content: "\f8a3" +} + +.fa-external-link-square:before, +.fa-square-arrow-up-right:before { + content: "\f14c" +} + +.fa-light-emergency-on:before { + content: "\e420" +} + +.fa-kerning:before { + content: "\f86f" +} + +.fa-box-open:before { + content: "\f49e" +} + +.fa-square-f:before { + content: "\e270" +} + +.fa-scroll:before { + content: "\f70e" +} + +.fa-spa:before { + content: "\f5bb" +} + +.fa-arrow-from-right:before, +.fa-arrow-left-from-line:before { + content: "\f344" +} + +.fa-strawberry:before { + content: "\e32b" +} + +.fa-location-pin-lock:before { + content: "\e51f" +} + +.fa-pause:before { + content: "\f04c" +} + +.fa-clock-eight-thirty:before { + content: "\e346" +} + +.fa-plane-alt:before, +.fa-plane-engines:before { + content: "\f3de" +} + +.fa-hill-avalanche:before { + content: "\e507" +} + +.fa-temperature-0:before, +.fa-temperature-empty:before, +.fa-thermometer-0:before, +.fa-thermometer-empty:before { + content: "\f2cb" +} + +.fa-bomb:before { + content: "\f1e2" +} + +.fa-gauge-low:before, +.fa-tachometer-alt-slow:before { + content: "\f627" +} + +.fa-registered:before { + content: "\f25d" +} + +.fa-trash-can-plus:before { + content: "\e2ac" +} + +.fa-address-card:before, +.fa-contact-card:before, +.fa-vcard:before { + content: "\f2bb" +} + +.fa-balance-scale-right:before, +.fa-scale-unbalanced-flip:before { + content: "\f516" +} + +.fa-globe-snow:before { + content: "\f7a3" +} + +.fa-subscript:before { + content: "\f12c" +} + +.fa-diamond-turn-right:before, +.fa-directions:before { + content: "\f5eb" +} + +.fa-integral:before { + content: "\f667" +} + +.fa-burst:before { + content: "\e4dc" +} + +.fa-house-laptop:before, +.fa-laptop-house:before { + content: "\e066" +} + +.fa-face-tired:before, +.fa-tired:before { + content: "\f5c8" +} + +.fa-money-bills:before { + content: "\e1f3" +} + +.fa-blinds-raised:before { + content: "\f8fd" +} + +.fa-smog:before { + content: "\f75f" +} + +.fa-ufo-beam:before { + content: "\e048" +} + +.fa-caret-circle-up:before, +.fa-circle-caret-up:before { + content: "\f331" +} + +.fa-user-vneck-hair-long:before { + content: "\e463" +} + +.fa-square-a-lock:before { + content: "\e44d" +} + +.fa-crutch:before { + content: "\f7f7" +} + +.fa-gas-pump-slash:before { + content: "\f5f4" +} + +.fa-cloud-arrow-up:before, +.fa-cloud-upload-alt:before, +.fa-cloud-upload:before { + content: "\f0ee" +} + +.fa-palette:before { + content: "\f53f" +} + +.fa-transporter-4:before { + content: "\e2a5" +} + +.fa-chart-mixed-up-circle-currency:before { + content: "\e5d8" +} + +.fa-objects-align-right:before { + content: "\e3bf" +} + +.fa-arrows-turn-right:before { + content: "\e4c0" +} + +.fa-vest:before { + content: "\e085" +} + +.fa-pig:before { + content: "\f706" +} + +.fa-inbox-full:before { + content: "\e1ba" +} + +.fa-circle-envelope:before, +.fa-envelope-circle:before { + content: "\e10c" +} + +.fa-construction:before, +.fa-triangle-person-digging:before { + content: "\f85d" +} + +.fa-ferry:before { + content: "\e4ea" +} + +.fa-bullseye-arrow:before { + content: "\f648" +} + +.fa-arrows-down-to-people:before { + content: "\e4b9" +} + +.fa-seedling:before, +.fa-sprout:before { + content: "\f4d8" +} + +.fa-clock-seven:before { + content: "\e350" +} + +.fa-arrows-alt-h:before, +.fa-left-right:before { + content: "\f337" +} + +.fa-boxes-packing:before { + content: "\e4c7" +} + +.fa-arrow-circle-left:before, +.fa-circle-arrow-left:before { + content: "\f0a8" +} + +.fa-flashlight:before { + content: "\f8b8" +} + +.fa-file-jpg:before { + content: "\e646" +} + +.fa-group-arrows-rotate:before { + content: "\e4f6" +} + +.fa-bowl-food:before { + content: "\e4c6" +} + +.fa-square-9:before { + content: "\e25e" +} + +.fa-candy-cane:before { + content: "\f786" +} + +.fa-arrow-down-wide-short:before, +.fa-sort-amount-asc:before, +.fa-sort-amount-down:before { + content: "\f160" +} + +.fa-dollar-square:before, +.fa-square-dollar:before, +.fa-usd-square:before { + content: "\f2e9" +} + +.fa-phone-arrow-right:before { + content: "\e5be" +} + +.fa-hand-holding-seedling:before { + content: "\f4bf" +} + +.fa-comment-alt-check:before, +.fa-message-check:before { + content: "\f4a2" +} + +.fa-cloud-bolt:before, +.fa-thunderstorm:before { + content: "\f76c" +} + +.fa-chart-line-up-down:before { + content: "\e5d7" +} + +.fa-remove-format:before, +.fa-text-slash:before { + content: "\f87d" +} + +.fa-watch:before { + content: "\f2e1" +} + +.fa-circle-down-left:before { + content: "\e107" +} + +.fa-text:before { + content: "\f893" +} + +.fa-projector:before { + content: "\f8d6" +} + +.fa-face-smile-wink:before, +.fa-smile-wink:before { + content: "\f4da" +} + +.fa-tombstone-alt:before, +.fa-tombstone-blank:before { + content: "\f721" +} + +.fa-chess-king-alt:before, +.fa-chess-king-piece:before { + content: "\f440" +} + +.fa-circle-6:before { + content: "\e0f3" +} + +.fa-waves-sine:before { + content: "\e65d" +} + +.fa-arrow-alt-left:before, +.fa-left:before { + content: "\f355" +} + +.fa-file-word:before { + content: "\f1c2" +} + +.fa-file-powerpoint:before { + content: "\f1c4" +} + +.fa-arrow-alt-square-down:before, +.fa-square-down:before { + content: "\f350" +} + +.fa-objects-align-center-vertical:before { + content: "\e3bd" +} + +.fa-arrows-h:before, +.fa-arrows-left-right:before { + content: "\f07e" +} + +.fa-house-lock:before { + content: "\e510" +} + +.fa-cloud-arrow-down:before, +.fa-cloud-download-alt:before, +.fa-cloud-download:before { + content: "\f0ed" +} + +.fa-wreath:before { + content: "\f7e2" +} + +.fa-children:before { + content: "\e4e1" +} + +.fa-meter-droplet:before { + content: "\e1ea" +} + +.fa-blackboard:before, +.fa-chalkboard:before { + content: "\f51b" +} + +.fa-user-alt-slash:before, +.fa-user-large-slash:before { + content: "\f4fa" +} + +.fa-signal-4:before, +.fa-signal-strong:before { + content: "\f68f" +} + +.fa-lollipop:before, +.fa-lollypop:before { + content: "\e424" +} + +.fa-list-tree:before { + content: "\e1d2" +} + +.fa-envelope-open:before { + content: "\f2b6" +} + +.fa-draw-circle:before { + content: "\f5ed" +} + +.fa-cat-space:before { + content: "\e001" +} + +.fa-handshake-alt-slash:before, +.fa-handshake-simple-slash:before { + content: "\e05f" +} + +.fa-rabbit-fast:before, +.fa-rabbit-running:before { + content: "\f709" +} + +.fa-memo-pad:before { + content: "\e1da" +} + +.fa-mattress-pillow:before { + content: "\e525" +} + +.fa-alarm-plus:before { + content: "\f844" +} + +.fa-alicorn:before { + content: "\f6b0" +} + +.fa-comment-question:before { + content: "\e14b" +} + +.fa-gingerbread-man:before { + content: "\f79d" +} + +.fa-guarani-sign:before { + content: "\e19a" +} + +.fa-burger-fries:before { + content: "\e0cd" +} + +.fa-mug-tea:before { + content: "\f875" +} + +.fa-border-top:before { + content: "\f855" +} + +.fa-arrows-rotate:before, +.fa-refresh:before, +.fa-sync:before { + content: "\f021" +} + +.fa-book-circle:before, +.fa-circle-book-open:before { + content: "\e0ff" +} + +.fa-arrows-to-dotted-line:before { + content: "\e0a6" +} + +.fa-fire-extinguisher:before { + content: "\f134" +} + +.fa-magnifying-glass-arrows-rotate:before { + content: "\e65e" +} + +.fa-garage-open:before { + content: "\e00b" +} + +.fa-shelves-empty:before { + content: "\e246" +} + +.fa-cruzeiro-sign:before { + content: "\e152" +} + +.fa-watch-apple:before { + content: "\e2cb" +} + +.fa-watch-calculator:before { + content: "\f8f0" +} + +.fa-list-dropdown:before { + content: "\e1cf" +} + +.fa-cabinet-filing:before { + content: "\f64b" +} + +.fa-burger-soda:before { + content: "\f858" +} + +.fa-arrow-square-up:before, +.fa-square-arrow-up:before { + content: "\f33c" +} + +.fa-greater-than-equal:before { + content: "\f532" +} + +.fa-pallet-box:before { + content: "\e208" +} + +.fa-face-confounded:before { + content: "\e36c" +} + +.fa-shield-alt:before, +.fa-shield-halved:before { + content: "\f3ed" +} + +.fa-truck-plow:before { + content: "\f7de" +} + +.fa-atlas:before, +.fa-book-atlas:before { + content: "\f558" +} + +.fa-virus:before { + content: "\e074" +} + +.fa-grid-round-2:before { + content: "\e5db" +} + +.fa-comment-middle-top:before { + content: "\e14a" +} + +.fa-wave:before { + content: "\e65b" +} + +.fa-envelope-circle-check:before { + content: "\e4e8" +} + +.fa-layer-group:before { + content: "\f5fd" +} + +.fa-restroom-simple:before { + content: "\e23a" +} + +.fa-arrows-to-dot:before { + content: "\e4be" +} + +.fa-border-outer:before { + content: "\f851" +} + +.fa-hashtag-lock:before { + content: "\e415" +} + +.fa-clock-two-thirty:before { + content: "\e35b" +} + +.fa-archway:before { + content: "\f557" +} + +.fa-heart-circle-check:before { + content: "\e4fd" +} + +.fa-house-chimney-crack:before, +.fa-house-damage:before { + content: "\f6f1" +} + +.fa-file-archive:before, +.fa-file-zipper:before { + content: "\f1c6" +} + +.fa-ticket-perforated:before { + content: "\e63e" +} + +.fa-heart-half:before { + content: "\e1ab" +} + +.fa-comment-check:before { + content: "\f4ac" +} + +.fa-square:before { + content: "\f0c8" +} + +.fa-memo:before { + content: "\e1d8" +} + +.fa-glass-martini:before, +.fa-martini-glass-empty:before { + content: "\f000" +} + +.fa-couch:before { + content: "\f4b8" +} + +.fa-cedi-sign:before { + content: "\e0df" +} + +.fa-italic:before { + content: "\f033" +} + +.fa-glass-citrus:before { + content: "\f869" +} + +.fa-calendar-lines-pen:before { + content: "\e472" +} + +.fa-church:before { + content: "\f51d" +} + +.fa-person-snowmobiling:before, +.fa-snowmobile:before { + content: "\f7d1" +} + +.fa-face-hushed:before { + content: "\e37b" +} + +.fa-comments-dollar:before { + content: "\f653" +} + +.fa-tickets-simple:before { + content: "\e659" +} + +.fa-pickaxe:before { + content: "\e5bf" +} + +.fa-link-simple-slash:before { + content: "\e1ce" +} + +.fa-democrat:before { + content: "\f747" +} + +.fa-face-confused:before { + content: "\e36d" +} + +.fa-pinball:before { + content: "\e229" +} + +.fa-z:before { + content: "\5a" +} + +.fa-person-skiing:before, +.fa-skiing:before { + content: "\f7c9" +} + +.fa-deer:before { + content: "\f78e" +} + +.fa-input-pipe:before { + content: "\e1be" +} + +.fa-road-lock:before { + content: "\e567" +} + +.fa-a:before { + content: "\41" +} + +.fa-bookmark-slash:before { + content: "\e0c2" +} + +.fa-temperature-arrow-down:before, +.fa-temperature-down:before { + content: "\e03f" +} + +.fa-mace:before { + content: "\f6f8" +} + +.fa-feather-alt:before, +.fa-feather-pointed:before { + content: "\f56b" +} + +.fa-sausage:before { + content: "\f820" +} + +.fa-trash-can-clock:before { + content: "\e2aa" +} + +.fa-p:before { + content: "\50" +} + +.fa-broom-wide:before { + content: "\e5d1" +} + +.fa-snowflake:before { + content: "\f2dc" +} + +.fa-stomach:before { + content: "\f623" +} + +.fa-newspaper:before { + content: "\f1ea" +} + +.fa-ad:before, +.fa-rectangle-ad:before { + content: "\f641" +} + +.fa-guitar-electric:before { + content: "\f8be" +} + +.fa-arrow-turn-down-right:before { + content: "\e3d6" +} + +.fa-moon-cloud:before { + content: "\f754" +} + +.fa-bread-slice-butter:before { + content: "\e3e1" +} + +.fa-arrow-circle-right:before, +.fa-circle-arrow-right:before { + content: "\f0a9" +} + +.fa-user-group-crown:before, +.fa-users-crown:before { + content: "\f6a5" +} + +.fa-circle-i:before { + content: "\e111" +} + +.fa-toilet-paper-check:before { + content: "\e5b2" +} + +.fa-filter-circle-xmark:before { + content: "\e17b" +} + +.fa-locust:before { + content: "\e520" +} + +.fa-sort:before, +.fa-unsorted:before { + content: "\f0dc" +} + +.fa-list-1-2:before, +.fa-list-numeric:before, +.fa-list-ol:before { + content: "\f0cb" +} + +.fa-chart-waterfall:before { + content: "\e0eb" +} + +.fa-sparkle:before { + content: "\e5d6" +} + +.fa-face-party:before { + content: "\e383" +} + +.fa-kidneys:before { + content: "\f5fb" +} + +.fa-wifi-exclamation:before { + content: "\e2cf" +} + +.fa-chart-network:before { + content: "\f78a" +} + +.fa-person-dress-burst:before { + content: "\e544" +} + +.fa-dice-d4:before { + content: "\f6d0" +} + +.fa-money-check-alt:before, +.fa-money-check-dollar:before { + content: "\f53d" +} + +.fa-vector-square:before { + content: "\f5cb" +} + +.fa-bread-slice:before { + content: "\f7ec" +} + +.fa-language:before { + content: "\f1ab" +} + +.fa-wheat-awn-slash:before { + content: "\e338" +} + +.fa-face-kiss-wink-heart:before, +.fa-kiss-wink-heart:before { + content: "\f598" +} + +.fa-dagger:before { + content: "\f6cb" +} + +.fa-podium:before { + content: "\f680" +} + +.fa-memo-circle-check:before { + content: "\e1d9" +} + +.fa-route-highway:before { + content: "\f61a" +} + +.fa-arrow-alt-to-bottom:before, +.fa-down-to-line:before { + content: "\f34a" +} + +.fa-filter:before { + content: "\f0b0" +} + +.fa-square-g:before { + content: "\e271" +} + +.fa-circle-phone:before, +.fa-phone-circle:before { + content: "\e11b" +} + +.fa-clipboard-prescription:before { + content: "\f5e8" +} + +.fa-user-nurse-hair:before { + content: "\e45d" +} + +.fa-question:before { + content: "\3f" +} + +.fa-file-signature:before { + content: "\f573" +} + +.fa-toggle-large-on:before { + content: "\e5b1" +} + +.fa-arrows-alt:before, +.fa-up-down-left-right:before { + content: "\f0b2" +} + +.fa-dryer-alt:before, +.fa-dryer-heat:before { + content: "\f862" +} + +.fa-house-chimney-user:before { + content: "\e065" +} + +.fa-hand-holding-heart:before { + content: "\f4be" +} + +.fa-arrow-up-small-big:before, +.fa-sort-size-up-alt:before { + content: "\f88f" +} + +.fa-train-track:before { + content: "\e453" +} + +.fa-puzzle-piece:before { + content: "\f12e" +} + +.fa-money-check:before { + content: "\f53c" +} + +.fa-star-half-alt:before, +.fa-star-half-stroke:before { + content: "\f5c0" +} + +.fa-file-exclamation:before { + content: "\f31a" +} + +.fa-code:before { + content: "\f121" +} + +.fa-glass-whiskey:before, +.fa-whiskey-glass:before { + content: "\f7a0" +} + +.fa-moon-stars:before { + content: "\f755" +} + +.fa-building-circle-exclamation:before { + content: "\e4d3" +} + +.fa-clothes-hanger:before { + content: "\e136" +} + +.fa-mobile-iphone:before, +.fa-mobile-notch:before { + content: "\e1ee" +} + +.fa-magnifying-glass-chart:before { + content: "\e522" +} + +.fa-arrow-up-right-from-square:before, +.fa-external-link:before { + content: "\f08e" +} + +.fa-cubes-stacked:before { + content: "\e4e6" +} + +.fa-images-user:before { + content: "\e1b9" +} + +.fa-krw:before, +.fa-won-sign:before, +.fa-won:before { + content: "\f159" +} + +.fa-image-polaroid-user:before { + content: "\e1b6" +} + +.fa-virus-covid:before { + content: "\e4a8" +} + +.fa-square-ellipsis:before { + content: "\e26e" +} + +.fa-pie:before { + content: "\f705" +} + +.fa-chess-knight-alt:before, +.fa-chess-knight-piece:before { + content: "\f442" +} + +.fa-austral-sign:before { + content: "\e0a9" +} + +.fa-cloud-plus:before { + content: "\e35e" +} + +.fa-f:before { + content: "\46" +} + +.fa-leaf:before { + content: "\f06c" +} + +.fa-bed-bunk:before { + content: "\f8f8" +} + +.fa-road:before { + content: "\f018" +} + +.fa-cab:before, +.fa-taxi:before { + content: "\f1ba" +} + +.fa-person-circle-plus:before { + content: "\e541" +} + +.fa-chart-pie:before, +.fa-pie-chart:before { + content: "\f200" +} + +.fa-bolt-lightning:before { + content: "\e0b7" +} + +.fa-clock-eight:before { + content: "\e345" +} + +.fa-sack-xmark:before { + content: "\e56a" +} + +.fa-file-xls:before { + content: "\e64d" +} + +.fa-file-excel:before { + content: "\f1c3" +} + +.fa-file-contract:before { + content: "\f56c" +} + +.fa-fish-fins:before { + content: "\e4f2" +} + +.fa-circle-q:before { + content: "\e11e" +} + +.fa-building-flag:before { + content: "\e4d5" +} + +.fa-face-grin-beam:before, +.fa-grin-beam:before { + content: "\f582" +} + +.fa-object-ungroup:before { + content: "\f248" +} + +.fa-face-disguise:before { + content: "\e370" +} + +.fa-circle-arrow-down-right:before { + content: "\e0fa" +} + +.fa-alien-8bit:before, +.fa-alien-monster:before { + content: "\f8f6" +} + +.fa-hand-point-ribbon:before { + content: "\e1a6" +} + +.fa-poop:before { + content: "\f619" +} + +.fa-object-exclude:before { + content: "\e49c" +} + +.fa-telescope:before { + content: "\e03e" +} + +.fa-location-pin:before, +.fa-map-marker:before { + content: "\f041" +} + +.fa-square-list:before { + content: "\e489" +} + +.fa-kaaba:before { + content: "\f66b" +} + +.fa-toilet-paper:before { + content: "\f71e" +} + +.fa-hard-hat:before, +.fa-hat-hard:before, +.fa-helmet-safety:before { + content: "\f807" +} + +.fa-comment-code:before { + content: "\e147" +} + +.fa-sim-cards:before { + content: "\e251" +} + +.fa-starship:before { + content: "\e039" +} + +.fa-eject:before { + content: "\f052" +} + +.fa-arrow-alt-circle-right:before, +.fa-circle-right:before { + content: "\f35a" +} + +.fa-plane-circle-check:before { + content: "\e555" +} + +.fa-seal:before { + content: "\e241" +} + +.fa-user-cowboy:before { + content: "\f8ea" +} + +.fa-hexagon-vertical-nft:before { + content: "\e505" +} + +.fa-face-rolling-eyes:before, +.fa-meh-rolling-eyes:before { + content: "\f5a5" +} + +.fa-bread-loaf:before { + content: "\f7eb" +} + +.fa-rings-wedding:before { + content: "\f81b" +} + +.fa-object-group:before { + content: "\f247" +} + +.fa-french-fries:before { + content: "\f803" +} + +.fa-chart-line:before, +.fa-line-chart:before { + content: "\f201" +} + +.fa-calendar-arrow-down:before, +.fa-calendar-download:before { + content: "\e0d0" +} + +.fa-send-back:before { + content: "\f87e" +} + +.fa-mask-ventilator:before { + content: "\e524" +} + +.fa-tickets:before { + content: "\e658" +} + +.fa-signature-lock:before { + content: "\e3ca" +} + +.fa-arrow-right:before { + content: "\f061" +} + +.fa-map-signs:before, +.fa-signs-post:before { + content: "\f277" +} + +.fa-octagon-plus:before, +.fa-plus-octagon:before { + content: "\f301" +} + +.fa-cash-register:before { + content: "\f788" +} + +.fa-person-circle-question:before { + content: "\e542" +} + +.fa-melon-slice:before { + content: "\e311" +} + +.fa-space-station-moon:before { + content: "\e033" +} + +.fa-comment-alt-smile:before, +.fa-message-smile:before { + content: "\f4aa" +} + +.fa-cup-straw:before { + content: "\e363" +} + +.fa-arrow-alt-from-right:before, +.fa-left-from-line:before { + content: "\f348" +} + +.fa-h:before { + content: "\48" +} + +.fa-basket-shopping-simple:before, +.fa-shopping-basket-alt:before { + content: "\e0af" +} + +.fa-hands-heart:before, +.fa-hands-holding-heart:before { + content: "\f4c3" +} + +.fa-clock-nine:before { + content: "\e34c" +} + +.fa-hammer-brush:before { + content: "\e620" +} + +.fa-tarp:before { + content: "\e57b" +} + +.fa-face-sleepy:before { + content: "\e38e" +} + +.fa-hand-horns:before { + content: "\e1a9" +} + +.fa-screwdriver-wrench:before, +.fa-tools:before { + content: "\f7d9" +} + +.fa-arrows-to-eye:before { + content: "\e4bf" +} + +.fa-circle-three-quarters:before { + content: "\e125" +} + +.fa-trophy-alt:before, +.fa-trophy-star:before { + content: "\f2eb" +} + +.fa-plug-circle-bolt:before { + content: "\e55b" +} + +.fa-face-thermometer:before { + content: "\e39a" +} + +.fa-grid-round-4:before { + content: "\e5dd" +} + +.fa-sign-posts-wrench:before { + content: "\e626" +} + +.fa-shirt-running:before { + content: "\e3c8" +} + +.fa-book-circle-arrow-up:before { + content: "\e0bd" +} + +.fa-face-nauseated:before { + content: "\e381" +} + +.fa-heart:before { + content: "\f004" +} + +.fa-file-chart-pie:before { + content: "\f65a" +} + +.fa-mars-and-venus:before { + content: "\f224" +} + +.fa-home-user:before, +.fa-house-user:before { + content: "\e1b0" +} + +.fa-circle-arrow-down-left:before { + content: "\e0f9" +} + +.fa-dumpster-fire:before { + content: "\f794" +} + +.fa-hexagon-minus:before, +.fa-minus-hexagon:before { + content: "\f307" +} + +.fa-arrow-alt-to-left:before, +.fa-left-to-line:before { + content: "\f34b" +} + +.fa-house-crack:before { + content: "\e3b1" +} + +.fa-paw-alt:before, +.fa-paw-simple:before { + content: "\f701" +} + +.fa-arrow-left-long-to-line:before { + content: "\e3d4" +} + +.fa-brackets-round:before, +.fa-parentheses:before { + content: "\e0c5" +} + +.fa-cocktail:before, +.fa-martini-glass-citrus:before { + content: "\f561" +} + +.fa-user-shakespeare:before { + content: "\e2c2" +} + +.fa-arrow-right-to-arc:before { + content: "\e4b2" +} + +.fa-face-surprise:before, +.fa-surprise:before { + content: "\f5c2" +} + +.fa-bottle-water:before { + content: "\e4c5" +} + +.fa-circle-pause:before, +.fa-pause-circle:before { + content: "\f28b" +} + +.fa-gauge-circle-plus:before { + content: "\e498" +} + +.fa-folders:before { + content: "\f660" +} + +.fa-angel:before { + content: "\f779" +} + +.fa-value-absolute:before { + content: "\f6a6" +} + +.fa-rabbit:before { + content: "\f708" +} + +.fa-toilet-paper-slash:before { + content: "\e072" +} + +.fa-circle-euro:before { + content: "\e5ce" +} + +.fa-apple-alt:before, +.fa-apple-whole:before { + content: "\f5d1" +} + +.fa-kitchen-set:before { + content: "\e51a" +} + +.fa-diamond-half:before { + content: "\e5b7" +} + +.fa-lock-alt:before, +.fa-lock-keyhole:before { + content: "\f30d" +} + +.fa-r:before { + content: "\52" +} + +.fa-temperature-1:before, +.fa-temperature-quarter:before, +.fa-thermometer-1:before, +.fa-thermometer-quarter:before { + content: "\f2ca" +} + +.fa-info-square:before, +.fa-square-info:before { + content: "\f30f" +} + +.fa-wifi-slash:before { + content: "\f6ac" +} + +.fa-toilet-paper-xmark:before { + content: "\e5b3" +} + +.fa-hands-holding-dollar:before, +.fa-hands-usd:before { + content: "\f4c5" +} + +.fa-cube:before { + content: "\f1b2" +} + +.fa-arrow-down-triangle-square:before, +.fa-sort-shapes-down:before { + content: "\f888" +} + +.fa-bitcoin-sign:before { + content: "\e0b4" +} + +.fa-shutters:before { + content: "\e449" +} + +.fa-shield-dog:before { + content: "\e573" +} + +.fa-solar-panel:before { + content: "\f5ba" +} + +.fa-lock-open:before { + content: "\f3c1" +} + +.fa-table-tree:before { + content: "\e293" +} + +.fa-house-chimney-heart:before { + content: "\e1b2" +} + +.fa-tally-3:before { + content: "\e296" +} + +.fa-elevator:before { + content: "\e16d" +} + +.fa-money-bill-transfer:before { + content: "\e528" +} + +.fa-money-bill-trend-up:before { + content: "\e529" +} + +.fa-house-flood-water-circle-arrow-right:before { + content: "\e50f" +} + +.fa-poll-h:before, +.fa-square-poll-horizontal:before { + content: "\f682" +} + +.fa-circle:before { + content: "\f111" +} + +.fa-cart-circle-exclamation:before { + content: "\e3f2" +} + +.fa-sword:before { + content: "\f71c" +} + +.fa-backward-fast:before, +.fa-fast-backward:before { + content: "\f049" +} + +.fa-recycle:before { + content: "\f1b8" +} + +.fa-user-astronaut:before { + content: "\f4fb" +} + +.fa-interrobang:before { + content: "\e5ba" +} + +.fa-plane-slash:before { + content: "\e069" +} + +.fa-circle-dashed:before { + content: "\e105" +} + +.fa-trademark:before { + content: "\f25c" +} + +.fa-basketball-ball:before, +.fa-basketball:before { + content: "\f434" +} + +.fa-fork-knife:before, +.fa-utensils-alt:before { + content: "\f2e6" +} + +.fa-satellite-dish:before { + content: "\f7c0" +} + +.fa-badge-check:before { + content: "\f336" +} + +.fa-arrow-alt-circle-up:before, +.fa-circle-up:before { + content: "\f35b" +} + +.fa-slider:before { + content: "\e252" +} + +.fa-mobile-alt:before, +.fa-mobile-screen-button:before { + content: "\f3cd" +} + +.fa-clock-one-thirty:before { + content: "\e34f" +} + +.fa-inbox-arrow-up:before, +.fa-inbox-out:before { + content: "\f311" +} + +.fa-cloud-slash:before { + content: "\e137" +} + +.fa-volume-high:before, +.fa-volume-up:before { + content: "\f028" +} + +.fa-users-rays:before { + content: "\e593" +} + +.fa-wallet:before { + content: "\f555" +} + +.fa-octagon-check:before { + content: "\e426" +} + +.fa-flatbread-stuffed:before { + content: "\e40c" +} + +.fa-clipboard-check:before { + content: "\f46c" +} + +.fa-cart-circle-plus:before { + content: "\e3f3" +} + +.fa-shipping-timed:before, +.fa-truck-clock:before { + content: "\f48c" +} + +.fa-pool-8-ball:before { + content: "\e3c5" +} + +.fa-file-audio:before { + content: "\f1c7" +} + +.fa-turn-down-left:before { + content: "\e331" +} + +.fa-lock-hashtag:before { + content: "\e423" +} + +.fa-chart-radar:before { + content: "\e0e7" +} + +.fa-staff:before { + content: "\f71b" +} + +.fa-burger:before, +.fa-hamburger:before { + content: "\f805" +} + +.fa-utility-pole:before { + content: "\e2c3" +} + +.fa-transporter-6:before { + content: "\e2a7" +} + +.fa-arrow-turn-left:before { + content: "\e632" +} + +.fa-wrench:before { + content: "\f0ad" +} + +.fa-bugs:before { + content: "\e4d0" +} + +.fa-vector-polygon:before { + content: "\e2c7" +} + +.fa-diagram-nested:before { + content: "\e157" +} + +.fa-rupee-sign:before, +.fa-rupee:before { + content: "\f156" +} + +.fa-file-image:before { + content: "\f1c5" +} + +.fa-circle-question:before, +.fa-question-circle:before { + content: "\f059" +} + +.fa-tickets-perforated:before { + content: "\e63f" +} + +.fa-image-user:before { + content: "\e1b8" +} + +.fa-buoy:before { + content: "\e5b5" +} + +.fa-plane-departure:before { + content: "\f5b0" +} + +.fa-handshake-slash:before { + content: "\e060" +} + +.fa-book-bookmark:before { + content: "\e0bb" +} + +.fa-border-center-h:before { + content: "\f89c" +} + +.fa-can-food:before { + content: "\e3e6" +} + +.fa-typewriter:before { + content: "\f8e7" +} + +.fa-arrow-right-from-arc:before { + content: "\e4b1" +} + +.fa-circle-k:before { + content: "\e113" +} + +.fa-face-hand-over-mouth:before { + content: "\e378" +} + +.fa-popcorn:before { + content: "\f819" +} + +.fa-house-flood:before, +.fa-house-water:before { + content: "\f74f" +} + +.fa-object-subtract:before { + content: "\e49e" +} + +.fa-code-branch:before { + content: "\f126" +} + +.fa-warehouse-alt:before, +.fa-warehouse-full:before { + content: "\f495" +} + +.fa-hat-cowboy:before { + content: "\f8c0" +} + +.fa-bridge:before { + content: "\e4c8" +} + +.fa-phone-alt:before, +.fa-phone-flip:before { + content: "\f879" +} + +.fa-arrow-down-from-dotted-line:before { + content: "\e090" +} + +.fa-file-doc:before { + content: "\e5ed" +} + +.fa-square-quarters:before { + content: "\e44e" +} + +.fa-truck-front:before { + content: "\e2b7" +} + +.fa-cat:before { + content: "\f6be" +} + +.fa-trash-xmark:before { + content: "\e2b4" +} + +.fa-caret-circle-left:before, +.fa-circle-caret-left:before { + content: "\f32e" +} + +.fa-files:before { + content: "\e178" +} + +.fa-anchor-circle-exclamation:before { + content: "\e4ab" +} + +.fa-face-clouds:before { + content: "\e47d" +} + +.fa-user-crown:before { + content: "\f6a4" +} + +.fa-basket-shopping-plus:before { + content: "\e653" +} + +.fa-truck-field:before { + content: "\e58d" +} + +.fa-route:before { + content: "\f4d7" +} + +.fa-cart-circle-check:before { + content: "\e3f1" +} + +.fa-clipboard-question:before { + content: "\e4e3" +} + +.fa-panorama:before { + content: "\e209" +} + +.fa-comment-medical:before { + content: "\f7f5" +} + +.fa-teeth-open:before { + content: "\f62f" +} + +.fa-user-tie-hair-long:before { + content: "\e460" +} + +.fa-file-circle-minus:before { + content: "\e4ed" +} + +.fa-head-side-medical:before { + content: "\f809" +} + +.fa-arrow-turn-right:before { + content: "\e635" +} + +.fa-tags:before { + content: "\f02c" +} + +.fa-wine-glass:before { + content: "\f4e3" +} + +.fa-fast-forward:before, +.fa-forward-fast:before { + content: "\f050" +} + +.fa-face-meh-blank:before, +.fa-meh-blank:before { + content: "\f5a4" +} + +.fa-user-robot:before { + content: "\e04b" +} + +.fa-parking:before, +.fa-square-parking:before { + content: "\f540" +} + +.fa-card-diamond:before { + content: "\e3ea" +} + +.fa-face-zipper:before { + content: "\e3a5" +} + +.fa-face-raised-eyebrow:before { + content: "\e388" +} + +.fa-house-signal:before { + content: "\e012" +} + +.fa-chevron-square-up:before, +.fa-square-chevron-up:before { + content: "\f32c" +} + +.fa-bars-progress:before, +.fa-tasks-alt:before { + content: "\f828" +} + +.fa-faucet-drip:before { + content: "\e006" +} + +.fa-arrows-to-line:before { + content: "\e0a7" +} + +.fa-dolphin:before { + content: "\e168" +} + +.fa-arrow-up-right:before { + content: "\e09f" +} + +.fa-circle-r:before { + content: "\e120" +} + +.fa-cart-flatbed:before, +.fa-dolly-flatbed:before { + content: "\f474" +} + +.fa-ban-smoking:before, +.fa-smoking-ban:before { + content: "\f54d" +} + +.fa-circle-sort-up:before, +.fa-sort-circle-up:before { + content: "\e032" +} + +.fa-terminal:before { + content: "\f120" +} + +.fa-mobile-button:before { + content: "\f10b" +} + +.fa-house-medical-flag:before { + content: "\e514" +} + +.fa-basket-shopping:before, +.fa-shopping-basket:before { + content: "\f291" +} + +.fa-tape:before { + content: "\f4db" +} + +.fa-chestnut:before { + content: "\e3f6" +} + +.fa-bus-alt:before, +.fa-bus-simple:before { + content: "\f55e" +} + +.fa-eye:before { + content: "\f06e" +} + +.fa-face-sad-cry:before, +.fa-sad-cry:before { + content: "\f5b3" +} + +.fa-heat:before { + content: "\e00c" +} + +.fa-ticket-airline:before, +.fa-ticket-perforated-plane:before, +.fa-ticket-plane:before { + content: "\e29a" +} + +.fa-boot-heeled:before { + content: "\e33f" +} + +.fa-arrows-minimize:before, +.fa-compress-arrows:before { + content: "\e0a5" +} + +.fa-audio-description:before { + content: "\f29e" +} + +.fa-person-military-to-person:before { + content: "\e54c" +} + +.fa-file-shield:before { + content: "\e4f0" +} + +.fa-hexagon:before { + content: "\f312" +} + +.fa-manhole:before { + content: "\e1d6" +} + +.fa-user-slash:before { + content: "\f506" +} + +.fa-pen:before { + content: "\f304" +} + +.fa-tower-observation:before { + content: "\e586" +} + +.fa-floppy-disks:before { + content: "\e183" +} + +.fa-toilet-paper-blank-under:before, +.fa-toilet-paper-reverse-alt:before { + content: "\e29f" +} + +.fa-file-code:before { + content: "\f1c9" +} + +.fa-signal-5:before, +.fa-signal-perfect:before, +.fa-signal:before { + content: "\f012" +} + +.fa-pump:before { + content: "\e442" +} + +.fa-bus:before { + content: "\f207" +} + +.fa-heart-circle-xmark:before { + content: "\e501" +} + +.fa-arrow-up-left-from-circle:before { + content: "\e09e" +} + +.fa-home-lg:before, +.fa-house-chimney:before { + content: "\e3af" +} + +.fa-window-maximize:before { + content: "\f2d0" +} + +.fa-dryer:before { + content: "\f861" +} + +.fa-face-frown:before, +.fa-frown:before { + content: "\f119" +} + +.fa-chess-bishop-alt:before, +.fa-chess-bishop-piece:before { + content: "\f43b" +} + +.fa-shirt-tank-top:before { + content: "\e3c9" +} + +.fa-diploma:before, +.fa-scroll-ribbon:before { + content: "\f5ea" +} + +.fa-screencast:before { + content: "\e23e" +} + +.fa-walker:before { + content: "\f831" +} + +.fa-prescription:before { + content: "\f5b1" +} + +.fa-shop:before, +.fa-store-alt:before { + content: "\f54f" +} + +.fa-floppy-disk:before, +.fa-save:before { + content: "\f0c7" +} + +.fa-vihara:before { + content: "\f6a7" +} + +.fa-face-kiss-closed-eyes:before { + content: "\e37d" +} + +.fa-balance-scale-left:before, +.fa-scale-unbalanced:before { + content: "\f515" +} + +.fa-file-user:before { + content: "\f65c" +} + +.fa-user-police-tie:before { + content: "\e334" +} + +.fa-face-tongue-money:before { + content: "\e39d" +} + +.fa-tennis-ball:before { + content: "\f45e" +} + +.fa-square-l:before { + content: "\e275" +} + +.fa-sort-asc:before, +.fa-sort-up:before { + content: "\f0de" +} + +.fa-calendar-arrow-up:before, +.fa-calendar-upload:before { + content: "\e0d1" +} + +.fa-comment-dots:before, +.fa-commenting:before { + content: "\f4ad" +} + +.fa-plant-wilt:before { + content: "\e5aa" +} + +.fa-scarf:before { + content: "\f7c1" +} + +.fa-album-circle-plus:before { + content: "\e48c" +} + +.fa-user-nurse-hair-long:before { + content: "\e45e" +} + +.fa-diamond:before { + content: "\f219" +} + +.fa-arrow-alt-square-left:before, +.fa-square-left:before { + content: "\f351" +} + +.fa-face-grin-squint:before, +.fa-grin-squint:before { + content: "\f585" +} + +.fa-circle-ellipsis-vertical:before { + content: "\e10b" +} + +.fa-hand-holding-dollar:before, +.fa-hand-holding-usd:before { + content: "\f4c0" +} + +.fa-grid-dividers:before { + content: "\e3ad" +} + +.fa-bacterium:before { + content: "\e05a" +} + +.fa-hand-pointer:before { + content: "\f25a" +} + +.fa-drum-steelpan:before { + content: "\f56a" +} + +.fa-hand-scissors:before { + content: "\f257" +} + +.fa-hands-praying:before, +.fa-praying-hands:before { + content: "\f684" +} + +.fa-face-pensive:before { + content: "\e384" +} + +.fa-user-music:before { + content: "\f8eb" +} + +.fa-arrow-right-rotate:before, +.fa-arrow-rotate-forward:before, +.fa-arrow-rotate-right:before, +.fa-redo:before { + content: "\f01e" +} + +.fa-comments-alt-dollar:before, +.fa-messages-dollar:before { + content: "\f652" +} + +.fa-sensor-on:before { + content: "\e02b" +} + +.fa-balloon:before { + content: "\e2e3" +} + +.fa-biohazard:before { + content: "\f780" +} + +.fa-chess-queen-alt:before, +.fa-chess-queen-piece:before { + content: "\f446" +} + +.fa-location-crosshairs:before, +.fa-location:before { + content: "\f601" +} + +.fa-mars-double:before { + content: "\f227" +} + +.fa-house-leave:before, +.fa-house-person-depart:before, +.fa-house-person-leave:before { + content: "\e00f" +} + +.fa-ruler-triangle:before { + content: "\f61c" +} + +.fa-card-club:before { + content: "\e3e9" +} + +.fa-child-dress:before { + content: "\e59c" +} + +.fa-users-between-lines:before { + content: "\e591" +} + +.fa-lungs-virus:before { + content: "\e067" +} + +.fa-spinner-third:before { + content: "\f3f4" +} + +.fa-face-grin-tears:before, +.fa-grin-tears:before { + content: "\f588" +} + +.fa-phone:before { + content: "\f095" +} + +.fa-computer-mouse-scrollwheel:before, +.fa-mouse-alt:before { + content: "\f8cd" +} + +.fa-calendar-times:before, +.fa-calendar-xmark:before { + content: "\f273" +} + +.fa-child-reaching:before { + content: "\e59d" +} + +.fa-table-layout:before { + content: "\e290" +} + +.fa-narwhal:before { + content: "\f6fe" +} + +.fa-ramp-loading:before { + content: "\f4d4" +} + +.fa-calendar-circle-plus:before { + content: "\e470" +} + +.fa-toothbrush:before { + content: "\f635" +} + +.fa-border-inner:before { + content: "\f84e" +} + +.fa-paw-claws:before { + content: "\f702" +} + +.fa-kiwi-fruit:before { + content: "\e30c" +} + +.fa-traffic-light-slow:before { + content: "\f639" +} + +.fa-rectangle-code:before { + content: "\e322" +} + +.fa-head-side-virus:before { + content: "\e064" +} + +.fa-keyboard-brightness:before { + content: "\e1c0" +} + +.fa-books-medical:before { + content: "\f7e8" +} + +.fa-lightbulb-slash:before { + content: "\f673" +} + +.fa-home-blank:before, +.fa-house-blank:before { + content: "\e487" +} + +.fa-square-5:before { + content: "\e25a" +} + +.fa-heart-square:before, +.fa-square-heart:before { + content: "\f4c8" +} + +.fa-puzzle:before { + content: "\e443" +} + +.fa-user-cog:before, +.fa-user-gear:before { + content: "\f4fe" +} + +.fa-pipe-circle-check:before { + content: "\e436" +} + +.fa-arrow-up-1-9:before, +.fa-sort-numeric-up:before { + content: "\f163" +} + +.fa-octagon-exclamation:before { + content: "\e204" +} + +.fa-dial-low:before { + content: "\e15d" +} + +.fa-door-closed:before { + content: "\f52a" +} + +.fa-laptop-mobile:before, +.fa-phone-laptop:before { + content: "\f87a" +} + +.fa-conveyor-belt-alt:before, +.fa-conveyor-belt-boxes:before { + content: "\f46f" +} + +.fa-shield-virus:before { + content: "\e06c" +} + +.fa-starfighter-alt-advanced:before, +.fa-starfighter-twin-ion-engine-advanced:before { + content: "\e28e" +} + +.fa-dice-six:before { + content: "\f526" +} + +.fa-starfighter-alt:before, +.fa-starfighter-twin-ion-engine:before { + content: "\e038" +} + +.fa-rocket-launch:before { + content: "\e027" +} + +.fa-mosquito-net:before { + content: "\e52c" +} + +.fa-vent-damper:before { + content: "\e465" +} + +.fa-bridge-water:before { + content: "\e4ce" +} + +.fa-ban-bug:before, +.fa-debug:before { + content: "\f7f9" +} + +.fa-person-booth:before { + content: "\f756" +} + +.fa-text-width:before { + content: "\f035" +} + +.fa-garage-car:before { + content: "\e00a" +} + +.fa-square-kanban:before { + content: "\e488" +} + +.fa-hat-wizard:before { + content: "\f6e8" +} + +.fa-chart-kanban:before { + content: "\e64f" +} + +.fa-pen-fancy:before { + content: "\f5ac" +} + +.fa-coffee-pot:before { + content: "\e002" +} + +.fa-mouse-field:before { + content: "\e5a8" +} + +.fa-digging:before, +.fa-person-digging:before { + content: "\f85e" +} + +.fa-shower-alt:before, +.fa-shower-down:before { + content: "\e24d" +} + +.fa-box-circle-check:before { + content: "\e0c4" +} + +.fa-brightness:before { + content: "\e0c9" +} + +.fa-car-side-bolt:before { + content: "\e344" +} + +.fa-file-xml:before { + content: "\e654" +} + +.fa-ornament:before { + content: "\f7b8" +} + +.fa-phone-arrow-down-left:before, +.fa-phone-arrow-down:before, +.fa-phone-incoming:before { + content: "\e223" +} + +.fa-cloud-word:before { + content: "\e138" +} + +.fa-hand-fingers-crossed:before { + content: "\e1a3" +} + +.fa-trash:before { + content: "\f1f8" +} + +.fa-gauge-simple-med:before, +.fa-gauge-simple:before, +.fa-tachometer-average:before { + content: "\f629" +} + +.fa-arrow-down-small-big:before, +.fa-sort-size-down-alt:before { + content: "\f88d" +} + +.fa-book-medical:before { + content: "\f7e6" +} + +.fa-face-melting:before { + content: "\e483" +} + +.fa-poo:before { + content: "\f2fe" +} + +.fa-pen-alt-slash:before, +.fa-pen-clip-slash:before { + content: "\e20f" +} + +.fa-quote-right-alt:before, +.fa-quote-right:before { + content: "\f10e" +} + +.fa-scroll-old:before { + content: "\f70f" +} + +.fa-guitars:before { + content: "\f8bf" +} + +.fa-phone-xmark:before { + content: "\e227" +} + +.fa-hose:before { + content: "\e419" +} + +.fa-clock-six:before { + content: "\e352" +} + +.fa-shirt:before, +.fa-t-shirt:before, +.fa-tshirt:before { + content: "\f553" +} + +.fa-billboard:before { + content: "\e5cd" +} + +.fa-square-r:before { + content: "\e27c" +} + +.fa-cubes:before { + content: "\f1b3" +} + +.fa-envelope-open-dollar:before { + content: "\f657" +} + +.fa-divide:before { + content: "\f529" +} + +.fa-sun-cloud:before { + content: "\f763" +} + +.fa-lamp-floor:before { + content: "\e015" +} + +.fa-square-7:before { + content: "\e25c" +} + +.fa-tenge-sign:before, +.fa-tenge:before { + content: "\f7d7" +} + +.fa-headphones:before { + content: "\f025" +} + +.fa-hands-holding:before { + content: "\f4c2" +} + +.fa-campfire:before { + content: "\f6ba" +} + +.fa-circle-ampersand:before { + content: "\e0f8" +} + +.fa-snowflakes:before { + content: "\f7cf" +} + +.fa-hands-clapping:before { + content: "\e1a8" +} + +.fa-republican:before { + content: "\f75e" +} + +.fa-leaf-maple:before { + content: "\f6f6" +} + +.fa-arrow-left:before { + content: "\f060" +} + +.fa-person-circle-xmark:before { + content: "\e543" +} + +.fa-ruler:before { + content: "\f545" +} + +.fa-cup-straw-swoosh:before { + content: "\e364" +} + +.fa-temperature-hot:before, +.fa-temperature-sun:before { + content: "\f76a" +} + +.fa-align-left:before { + content: "\f036" +} + +.fa-dice-d6:before { + content: "\f6d1" +} + +.fa-restroom:before { + content: "\f7bd" +} + +.fa-high-definition:before, +.fa-rectangle-hd:before { + content: "\e1ae" +} + +.fa-j:before { + content: "\4a" +} + +.fa-galaxy:before { + content: "\e008" +} + +.fa-users-viewfinder:before { + content: "\e595" +} + +.fa-file-video:before { + content: "\f1c8" +} + +.fa-cherries:before { + content: "\e0ec" +} + +.fa-external-link-alt:before, +.fa-up-right-from-square:before { + content: "\f35d" +} + +.fa-circle-sort:before, +.fa-sort-circle:before { + content: "\e030" +} + +.fa-table-cells:before, +.fa-th:before { + content: "\f00a" +} + +.fa-bag-shopping-minus:before { + content: "\e650" +} + +.fa-file-pdf:before { + content: "\f1c1" +} + +.fa-siren:before { + content: "\e02d" +} + +.fa-arrow-up-to-dotted-line:before { + content: "\e0a1" +} + +.fa-image-landscape:before, +.fa-landscape:before { + content: "\e1b5" +} + +.fa-tank-water:before { + content: "\e452" +} + +.fa-curling-stone:before, +.fa-curling:before { + content: "\f44a" +} + +.fa-gamepad-alt:before, +.fa-gamepad-modern:before { + content: "\e5a2" +} + +.fa-messages-question:before { + content: "\e1e7" +} + +.fa-bible:before, +.fa-book-bible:before { + content: "\f647" +} + +.fa-o:before { + content: "\4f" +} + +.fa-medkit:before, +.fa-suitcase-medical:before { + content: "\f0fa" +} + +.fa-briefcase-arrow-right:before { + content: "\e2f2" +} + +.fa-expand-wide:before { + content: "\f320" +} + +.fa-clock-eleven-thirty:before { + content: "\e348" +} + +.fa-rv:before { + content: "\f7be" +} + +.fa-user-secret:before { + content: "\f21b" +} + +.fa-otter:before { + content: "\f700" +} + +.fa-dreidel:before { + content: "\f792" +} + +.fa-female:before, +.fa-person-dress:before { + content: "\f182" +} + +.fa-comment-dollar:before { + content: "\f651" +} + +.fa-briefcase-clock:before, +.fa-business-time:before { + content: "\f64a" +} + +.fa-flower-tulip:before { + content: "\f801" +} + +.fa-people-pants-simple:before { + content: "\e21a" +} + +.fa-cloud-drizzle:before { + content: "\f738" +} + +.fa-table-cells-large:before, +.fa-th-large:before { + content: "\f009" +} + +.fa-book-tanakh:before, +.fa-tanakh:before { + content: "\f827" +} + +.fa-solar-system:before { + content: "\e02f" +} + +.fa-seal-question:before { + content: "\e243" +} + +.fa-phone-volume:before, +.fa-volume-control-phone:before { + content: "\f2a0" +} + +.fa-disc-drive:before { + content: "\f8b5" +} + +.fa-hat-cowboy-side:before { + content: "\f8c1" +} + +.fa-rows:before, +.fa-table-rows:before { + content: "\e292" +} + +.fa-location-exclamation:before, +.fa-map-marker-exclamation:before { + content: "\f608" +} + +.fa-face-fearful:before { + content: "\e375" +} + +.fa-clipboard-user:before { + content: "\f7f3" +} + +.fa-bus-school:before { + content: "\f5dd" +} + +.fa-film-slash:before { + content: "\e179" +} + +.fa-square-arrow-down-right:before { + content: "\e262" +} + +.fa-book-sparkles:before, +.fa-book-spells:before { + content: "\f6b8" +} + +.fa-washer:before, +.fa-washing-machine:before { + content: "\f898" +} + +.fa-child:before { + content: "\f1ae" +} + +.fa-lira-sign:before { + content: "\f195" +} + +.fa-user-visor:before { + content: "\e04c" +} + +.fa-file-plus-minus:before { + content: "\e177" +} + +.fa-chess-clock-alt:before, +.fa-chess-clock-flip:before { + content: "\f43e" +} + +.fa-satellite:before { + content: "\f7bf" +} + +.fa-truck-fire:before { + content: "\e65a" +} + +.fa-plane-lock:before { + content: "\e558" +} + +.fa-steering-wheel:before { + content: "\f622" +} + +.fa-tag:before { + content: "\f02b" +} + +.fa-stretcher:before { + content: "\f825" +} + +.fa-book-law:before, +.fa-book-section:before { + content: "\e0c1" +} + +.fa-inboxes:before { + content: "\e1bb" +} + +.fa-coffee-bean:before { + content: "\e13e" +} + +.fa-circle-yen:before { + content: "\e5d0" +} + +.fa-brackets-curly:before { + content: "\f7ea" +} + +.fa-ellipsis-stroke-vertical:before, +.fa-ellipsis-v-alt:before { + content: "\f39c" +} + +.fa-comment:before { + content: "\f075" +} + +.fa-square-1:before { + content: "\e256" +} + +.fa-birthday-cake:before, +.fa-cake-candles:before, +.fa-cake:before { + content: "\f1fd" +} + +.fa-head-side:before { + content: "\f6e9" +} + +.fa-truck-ladder:before { + content: "\e657" +} + +.fa-envelope:before { + content: "\f0e0" +} + +.fa-dolly-empty:before { + content: "\f473" +} + +.fa-face-tissue:before { + content: "\e39c" +} + +.fa-angle-double-up:before, +.fa-angles-up:before { + content: "\f102" +} + +.fa-bin-recycle:before { + content: "\e5f7" +} + +.fa-paperclip:before { + content: "\f0c6" +} + +.fa-chart-line-down:before { + content: "\f64d" +} + +.fa-arrow-right-to-city:before { + content: "\e4b3" +} + +.fa-lock-a:before { + content: "\e422" +} + +.fa-ribbon:before { + content: "\f4d6" +} + +.fa-lungs:before { + content: "\f604" +} + +.fa-person-pinball:before { + content: "\e21d" +} + +.fa-arrow-up-9-1:before, +.fa-sort-numeric-up-alt:before { + content: "\f887" +} + +.fa-apple-core:before { + content: "\e08f" +} + +.fa-circle-y:before { + content: "\e12f" +} + +.fa-h6:before { + content: "\e413" +} + +.fa-litecoin-sign:before { + content: "\e1d3" +} + +.fa-circle-small:before { + content: "\e122" +} + +.fa-border-none:before { + content: "\f850" +} + +.fa-arrow-turn-down-left:before { + content: "\e2e1" +} + +.fa-circle-nodes:before { + content: "\e4e2" +} + +.fa-parachute-box:before { + content: "\f4cd" +} + +.fa-reflect-horizontal:before { + content: "\e664" +} + +.fa-comment-alt-medical:before, +.fa-message-medical:before { + content: "\f7f4" +} + +.fa-rugby-ball:before { + content: "\e3c6" +} + +.fa-comment-music:before { + content: "\f8b0" +} + +.fa-indent:before { + content: "\f03c" +} + +.fa-tree-alt:before, +.fa-tree-deciduous:before { + content: "\f400" +} + +.fa-puzzle-piece-alt:before, +.fa-puzzle-piece-simple:before { + content: "\e231" +} + +.fa-truck-field-un:before { + content: "\e58e" +} + +.fa-nfc-trash:before { + content: "\e1fd" +} + +.fa-hourglass-empty:before, +.fa-hourglass:before { + content: "\f254" +} + +.fa-mountain:before { + content: "\f6fc" +} + +.fa-file-times:before, +.fa-file-xmark:before { + content: "\f317" +} + +.fa-home-heart:before, +.fa-house-heart:before { + content: "\f4c9" +} + +.fa-house-chimney-blank:before { + content: "\e3b0" +} + +.fa-meter-bolt:before { + content: "\e1e9" +} + +.fa-user-doctor:before, +.fa-user-md:before { + content: "\f0f0" +} + +.fa-slash-back:before { + content: "\5c" +} + +.fa-circle-info:before, +.fa-info-circle:before { + content: "\f05a" +} + +.fa-fishing-rod:before { + content: "\e3a8" +} + +.fa-hammer-crash:before { + content: "\e414" +} + +.fa-message-heart:before { + content: "\e5c9" +} + +.fa-cloud-meatball:before { + content: "\f73b" +} + +.fa-camera-polaroid:before { + content: "\f8aa" +} + +.fa-camera-alt:before, +.fa-camera:before { + content: "\f030" +} + +.fa-square-virus:before { + content: "\e578" +} + +.fa-cart-arrow-up:before { + content: "\e3ee" +} + +.fa-meteor:before { + content: "\f753" +} + +.fa-car-on:before { + content: "\e4dd" +} + +.fa-sleigh:before { + content: "\f7cc" +} + +.fa-arrow-down-1-9:before, +.fa-sort-numeric-asc:before, +.fa-sort-numeric-down:before { + content: "\f162" +} + +.fa-buoy-mooring:before { + content: "\e5b6" +} + +.fa-square-4:before { + content: "\e259" +} + +.fa-hand-holding-droplet:before, +.fa-hand-holding-water:before { + content: "\f4c1" +} + +.fa-file-eps:before { + content: "\e644" +} + +.fa-tricycle-adult:before { + content: "\e5c4" +} + +.fa-waveform:before { + content: "\f8f1" +} + +.fa-water:before { + content: "\f773" +} + +.fa-star-sharp-half-alt:before, +.fa-star-sharp-half-stroke:before { + content: "\e28d" +} + +.fa-nfc-signal:before { + content: "\e1fb" +} + +.fa-plane-prop:before { + content: "\e22b" +} + +.fa-calendar-check:before { + content: "\f274" +} + +.fa-clock-desk:before { + content: "\e134" +} + +.fa-calendar-clock:before, +.fa-calendar-time:before { + content: "\e0d2" +} + +.fa-braille:before { + content: "\f2a1" +} + +.fa-prescription-bottle-alt:before, +.fa-prescription-bottle-medical:before { + content: "\f486" +} + +.fa-plate-utensils:before { + content: "\e43b" +} + +.fa-family-pants:before { + content: "\e302" +} + +.fa-hose-reel:before { + content: "\e41a" +} + +.fa-house-window:before { + content: "\e3b3" +} + +.fa-landmark:before { + content: "\f66f" +} + +.fa-truck:before { + content: "\f0d1" +} + +.fa-music-magnifying-glass:before { + content: "\e662" +} + +.fa-crosshairs:before { + content: "\f05b" +} + +.fa-cloud-rainbow:before { + content: "\f73e" +} + +.fa-person-cane:before { + content: "\e53c" +} + +.fa-alien:before { + content: "\f8f5" +} + +.fa-tent:before { + content: "\e57d" +} + +.fa-laptop-binary:before { + content: "\e5e7" +} + +.fa-vest-patches:before { + content: "\e086" +} + +.fa-people-dress-simple:before { + content: "\e218" +} + +.fa-check-double:before { + content: "\f560" +} + +.fa-arrow-down-a-z:before, +.fa-sort-alpha-asc:before, +.fa-sort-alpha-down:before { + content: "\f15d" +} + +.fa-bowling-ball-pin:before { + content: "\e0c3" +} + +.fa-bell-school-slash:before { + content: "\f5d6" +} + +.fa-plus-large:before { + content: "\e59e" +} + +.fa-money-bill-wheat:before { + content: "\e52a" +} + +.fa-camera-viewfinder:before, +.fa-screenshot:before { + content: "\e0da" +} + +.fa-comment-alt-music:before, +.fa-message-music:before { + content: "\f8af" +} + +.fa-car-building:before { + content: "\f859" +} + +.fa-border-bottom-right:before, +.fa-border-style-alt:before { + content: "\f854" +} + +.fa-octagon:before { + content: "\f306" +} + +.fa-comment-arrow-up-right:before { + content: "\e145" +} + +.fa-octagon-divide:before { + content: "\e203" +} + +.fa-cookie:before { + content: "\f563" +} + +.fa-arrow-left-rotate:before, +.fa-arrow-rotate-back:before, +.fa-arrow-rotate-backward:before, +.fa-arrow-rotate-left:before, +.fa-undo:before { + content: "\f0e2" +} + +.fa-tv-music:before { + content: "\f8e6" +} + +.fa-hard-drive:before, +.fa-hdd:before { + content: "\f0a0" +} + +.fa-reel:before { + content: "\e238" +} + +.fa-face-grin-squint-tears:before, +.fa-grin-squint-tears:before { + content: "\f586" +} + +.fa-dumbbell:before { + content: "\f44b" +} + +.fa-list-alt:before, +.fa-rectangle-list:before { + content: "\f022" +} + +.fa-tarp-droplet:before { + content: "\e57c" +} + +.fa-alarm-exclamation:before { + content: "\f843" +} + +.fa-house-medical-circle-check:before { + content: "\e511" +} + +.fa-traffic-cone:before { + content: "\f636" +} + +.fa-grate:before { + content: "\e193" +} + +.fa-arrow-down-right:before { + content: "\e093" +} + +.fa-person-skiing-nordic:before, +.fa-skiing-nordic:before { + content: "\f7ca" +} + +.fa-calendar-plus:before { + content: "\f271" +} + +.fa-person-from-portal:before, +.fa-portal-exit:before { + content: "\e023" +} + +.fa-plane-arrival:before { + content: "\f5af" +} + +.fa-cowbell-circle-plus:before, +.fa-cowbell-more:before { + content: "\f8b4" +} + +.fa-arrow-alt-circle-left:before, +.fa-circle-left:before { + content: "\f359" +} + +.fa-distribute-spacing-vertical:before { + content: "\e366" +} + +.fa-signal-alt-2:before, +.fa-signal-bars-fair:before { + content: "\f692" +} + +.fa-sportsball:before { + content: "\e44b" +} + +.fa-game-console-handheld-crank:before { + content: "\e5b9" +} + +.fa-subway:before, +.fa-train-subway:before { + content: "\f239" +} + +.fa-chart-gantt:before { + content: "\e0e4" +} + +.fa-face-smile-upside-down:before { + content: "\e395" +} + +.fa-ball-pile:before { + content: "\f77e" +} + +.fa-badge-dollar:before { + content: "\f645" +} + +.fa-money-bills-alt:before, +.fa-money-bills-simple:before { + content: "\e1f4" +} + +.fa-list-timeline:before { + content: "\e1d1" +} + +.fa-indian-rupee-sign:before, +.fa-indian-rupee:before, +.fa-inr:before { + content: "\e1bc" +} + +.fa-crop-alt:before, +.fa-crop-simple:before { + content: "\f565" +} + +.fa-money-bill-1:before, +.fa-money-bill-alt:before { + content: "\f3d1" +} + +.fa-left-long:before, +.fa-long-arrow-alt-left:before { + content: "\f30a" +} + +.fa-keyboard-down:before { + content: "\e1c2" +} + +.fa-circle-up-right:before { + content: "\e129" +} + +.fa-cloud-bolt-moon:before, +.fa-thunderstorm-moon:before { + content: "\f76d" +} + +.fa-turn-left-up:before { + content: "\e638" +} + +.fa-dna:before { + content: "\f471" +} + +.fa-virus-slash:before { + content: "\e075" +} + +.fa-bracket-round-right:before { + content: "\29" +} + +.fa-circle-sterling:before { + content: "\e5cf" +} + +.fa-circle-5:before { + content: "\e0f2" +} + +.fa-minus:before, +.fa-subtract:before { + content: "\f068" +} + +.fa-fire-flame:before, +.fa-flame:before { + content: "\f6df" +} + +.fa-arrow-alt-to-right:before, +.fa-right-to-line:before { + content: "\f34c" +} + +.fa-gif:before { + content: "\e190" +} + +.fa-chess:before { + content: "\f439" +} + +.fa-trash-slash:before { + content: "\e2b3" +} + +.fa-arrow-left-long:before, +.fa-long-arrow-left:before { + content: "\f177" +} + +.fa-plug-circle-check:before { + content: "\e55c" +} + +.fa-font-case:before { + content: "\f866" +} + +.fa-street-view:before { + content: "\f21d" +} + +.fa-arrow-down-left:before { + content: "\e091" +} + +.fa-franc-sign:before { + content: "\e18f" +} + +.fa-flask-poison:before, +.fa-flask-round-poison:before { + content: "\f6e0" +} + +.fa-volume-off:before { + content: "\f026" +} + +.fa-book-circle-arrow-right:before { + content: "\e0bc" +} + +.fa-chart-user:before, +.fa-user-chart:before { + content: "\f6a3" +} + +.fa-american-sign-language-interpreting:before, +.fa-asl-interpreting:before, +.fa-hands-american-sign-language-interpreting:before, +.fa-hands-asl-interpreting:before { + content: "\f2a3" +} + +.fa-presentation-screen:before, +.fa-presentation:before { + content: "\f685" +} + +.fa-circle-bolt:before { + content: "\e0fe" +} + +.fa-face-smile-halo:before { + content: "\e38f" +} + +.fa-cart-circle-arrow-down:before { + content: "\e3ef" +} + +.fa-house-person-arrive:before, +.fa-house-person-return:before, +.fa-house-return:before { + content: "\e011" +} + +.fa-comment-alt-times:before, +.fa-message-times:before, +.fa-message-xmark:before { + content: "\f4ab" +} + +.fa-file-award:before, +.fa-file-certificate:before { + content: "\f5f3" +} + +.fa-user-doctor-hair-long:before { + content: "\e459" +} + +.fa-camera-home:before, +.fa-camera-security:before { + content: "\f8fe" +} + +.fa-cog:before, +.fa-gear:before { + content: "\f013" +} + +.fa-droplet-slash:before, +.fa-tint-slash:before { + content: "\f5c7" +} + +.fa-book-heart:before { + content: "\f499" +} + +.fa-mosque:before { + content: "\f678" +} + +.fa-duck:before { + content: "\f6d8" +} + +.fa-mosquito:before { + content: "\e52b" +} + +.fa-star-of-david:before { + content: "\f69a" +} + +.fa-flag-alt:before, +.fa-flag-swallowtail:before { + content: "\f74c" +} + +.fa-person-military-rifle:before { + content: "\e54b" +} + +.fa-car-garage:before { + content: "\f5e2" +} + +.fa-cart-shopping:before, +.fa-shopping-cart:before { + content: "\f07a" +} + +.fa-book-font:before { + content: "\e0bf" +} + +.fa-shield-plus:before { + content: "\e24a" +} + +.fa-vials:before { + content: "\f493" +} + +.fa-eye-dropper-full:before { + content: "\e172" +} + +.fa-distribute-spacing-horizontal:before { + content: "\e365" +} + +.fa-tablet-rugged:before { + content: "\f48f" +} + +.fa-temperature-frigid:before, +.fa-temperature-snow:before { + content: "\f768" +} + +.fa-moped:before { + content: "\e3b9" +} + +.fa-face-smile-plus:before, +.fa-smile-plus:before { + content: "\f5b9" +} + +.fa-radio-alt:before, +.fa-radio-tuner:before { + content: "\f8d8" +} + +.fa-face-swear:before { + content: "\e399" +} + +.fa-water-arrow-down:before, +.fa-water-lower:before { + content: "\f774" +} + +.fa-scanner-touchscreen:before { + content: "\f48a" +} + +.fa-circle-7:before { + content: "\e0f4" +} + +.fa-plug-circle-plus:before { + content: "\e55f" +} + +.fa-person-ski-jumping:before, +.fa-ski-jump:before { + content: "\f7c7" +} + +.fa-place-of-worship:before { + content: "\f67f" +} + +.fa-water-arrow-up:before, +.fa-water-rise:before { + content: "\f775" +} + +.fa-waveform-lines:before, +.fa-waveform-path:before { + content: "\f8f2" +} + +.fa-split:before { + content: "\e254" +} + +.fa-film-canister:before, +.fa-film-cannister:before { + content: "\f8b7" +} + +.fa-folder-times:before, +.fa-folder-xmark:before { + content: "\f65f" +} + +.fa-toilet-paper-alt:before, +.fa-toilet-paper-blank:before { + content: "\f71f" +} + +.fa-tablet-android-alt:before, +.fa-tablet-screen:before { + content: "\f3fc" +} + +.fa-hexagon-vertical-nft-slanted:before { + content: "\e506" +} + +.fa-folder-music:before { + content: "\e18d" +} + +.fa-desktop-medical:before, +.fa-display-medical:before { + content: "\e166" +} + +.fa-share-all:before { + content: "\f367" +} + +.fa-peapod:before { + content: "\e31c" +} + +.fa-chess-clock:before { + content: "\f43d" +} + +.fa-axe:before { + content: "\f6b2" +} + +.fa-square-d:before { + content: "\e268" +} + +.fa-grip-vertical:before { + content: "\f58e" +} + +.fa-mobile-signal-out:before { + content: "\e1f0" +} + +.fa-arrow-turn-up:before, +.fa-level-up:before { + content: "\f148" +} + +.fa-u:before { + content: "\55" +} + +.fa-arrow-up-from-dotted-line:before { + content: "\e09b" +} + +.fa-square-root-alt:before, +.fa-square-root-variable:before { + content: "\f698" +} + +.fa-light-switch-on:before { + content: "\e019" +} + +.fa-arrow-down-arrow-up:before, +.fa-sort-alt:before { + content: "\f883" +} + +.fa-raindrops:before { + content: "\f75c" +} + +.fa-dash:before, +.fa-minus-large:before { + content: "\e404" +} + +.fa-clock-four:before, +.fa-clock:before { + content: "\f017" +} + +.fa-input-numeric:before { + content: "\e1bd" +} + +.fa-truck-tow:before { + content: "\e2b8" +} + +.fa-backward-step:before, +.fa-step-backward:before { + content: "\f048" +} + +.fa-pallet:before { + content: "\f482" +} + +.fa-car-bolt:before { + content: "\e341" +} + +.fa-arrows-maximize:before, +.fa-expand-arrows:before { + content: "\f31d" +} + +.fa-faucet:before { + content: "\e005" +} + +.fa-cloud-sleet:before { + content: "\f741" +} + +.fa-lamp-street:before { + content: "\e1c5" +} + +.fa-list-radio:before { + content: "\e1d0" +} + +.fa-pen-nib-slash:before { + content: "\e4a1" +} + +.fa-baseball-bat-ball:before { + content: "\f432" +} + +.fa-square-up-left:before { + content: "\e282" +} + +.fa-overline:before { + content: "\f876" +} + +.fa-s:before { + content: "\53" +} + +.fa-timeline:before { + content: "\e29c" +} + +.fa-keyboard:before { + content: "\f11c" +} + +.fa-arrows-from-dotted-line:before { + content: "\e0a3" +} + +.fa-usb-drive:before { + content: "\f8e9" +} + +.fa-ballot:before { + content: "\f732" +} + +.fa-caret-down:before { + content: "\f0d7" +} + +.fa-location-dot-slash:before, +.fa-map-marker-alt-slash:before { + content: "\f605" +} + +.fa-cards:before { + content: "\e3ed" +} + +.fa-clinic-medical:before, +.fa-house-chimney-medical:before { + content: "\f7f2" +} + +.fa-boxing-glove:before, +.fa-glove-boxing:before { + content: "\f438" +} + +.fa-temperature-3:before, +.fa-temperature-three-quarters:before, +.fa-thermometer-3:before, +.fa-thermometer-three-quarters:before { + content: "\f2c8" +} + +.fa-bell-school:before { + content: "\f5d5" +} + +.fa-mobile-android-alt:before, +.fa-mobile-screen:before { + content: "\f3cf" +} + +.fa-plane-up:before { + content: "\e22d" +} + +.fa-folder-heart:before { + content: "\e189" +} + +.fa-circle-location-arrow:before, +.fa-location-circle:before { + content: "\f602" +} + +.fa-face-head-bandage:before { + content: "\e37a" +} + +.fa-maki-roll:before, +.fa-makizushi:before, +.fa-sushi-roll:before { + content: "\e48b" +} + +.fa-car-bump:before { + content: "\f5e0" +} + +.fa-piggy-bank:before { + content: "\f4d3" +} + +.fa-racquet:before { + content: "\f45a" +} + +.fa-car-mirrors:before { + content: "\e343" +} + +.fa-industry-alt:before, +.fa-industry-windows:before { + content: "\f3b3" +} + +.fa-bolt-auto:before { + content: "\e0b6" +} + +.fa-battery-3:before, +.fa-battery-half:before { + content: "\f242" +} + +.fa-flux-capacitor:before { + content: "\f8ba" +} + +.fa-mountain-city:before { + content: "\e52e" +} + +.fa-coins:before { + content: "\f51e" +} + +.fa-honey-pot:before { + content: "\e418" +} + +.fa-olive:before { + content: "\e316" +} + +.fa-khanda:before { + content: "\f66d" +} + +.fa-filter-list:before { + content: "\e17c" +} + +.fa-outlet:before { + content: "\e01c" +} + +.fa-sliders-h:before, +.fa-sliders:before { + content: "\f1de" +} + +.fa-cauldron:before { + content: "\f6bf" +} + +.fa-people:before { + content: "\e216" +} + +.fa-folder-tree:before { + content: "\f802" +} + +.fa-network-wired:before { + content: "\f6ff" +} + +.fa-croissant:before { + content: "\f7f6" +} + +.fa-map-pin:before { + content: "\f276" +} + +.fa-hamsa:before { + content: "\f665" +} + +.fa-cent-sign:before { + content: "\e3f5" +} + +.fa-swords-laser:before { + content: "\e03d" +} + +.fa-flask:before { + content: "\f0c3" +} + +.fa-person-pregnant:before { + content: "\e31e" +} + +.fa-square-u:before { + content: "\e281" +} + +.fa-wand-sparkles:before { + content: "\f72b" +} + +.fa-router:before { + content: "\f8da" +} + +.fa-ellipsis-v:before, +.fa-ellipsis-vertical:before { + content: "\f142" +} + +.fa-sword-laser-alt:before { + content: "\e03c" +} + +.fa-ticket:before { + content: "\f145" +} + +.fa-power-off:before { + content: "\f011" +} + +.fa-coin:before { + content: "\f85c" +} + +.fa-laptop-slash:before { + content: "\e1c7" +} + +.fa-long-arrow-alt-right:before, +.fa-right-long:before { + content: "\f30b" +} + +.fa-circle-b:before { + content: "\e0fd" +} + +.fa-person-dress-simple:before { + content: "\e21c" +} + +.fa-pipe-collar:before { + content: "\e437" +} + +.fa-lights-holiday:before { + content: "\f7b2" +} + +.fa-citrus:before { + content: "\e2f4" +} + +.fa-flag-usa:before { + content: "\f74d" +} + +.fa-laptop-file:before { + content: "\e51d" +} + +.fa-teletype:before, +.fa-tty:before { + content: "\f1e4" +} + +.fa-chart-tree-map:before { + content: "\e0ea" +} + +.fa-diagram-next:before { + content: "\e476" +} + +.fa-person-rifle:before { + content: "\e54e" +} + +.fa-clock-five-thirty:before { + content: "\e34a" +} + +.fa-pipe-valve:before { + content: "\e439" +} + +.fa-arrow-up-from-arc:before { + content: "\e4b4" +} + +.fa-face-spiral-eyes:before { + content: "\e485" +} + +.fa-compress-wide:before { + content: "\f326" +} + +.fa-circle-phone-hangup:before, +.fa-phone-circle-down:before { + content: "\e11d" +} + +.fa-gear-complex-code:before { + content: "\e5eb" +} + +.fa-house-medical-circle-exclamation:before { + content: "\e512" +} + +.fa-badminton:before { + content: "\e33a" +} + +.fa-closed-captioning:before { + content: "\f20a" +} + +.fa-hiking:before, +.fa-person-hiking:before { + content: "\f6ec" +} + +.fa-arrow-alt-from-left:before, +.fa-right-from-line:before { + content: "\f347" +} + +.fa-venus-double:before { + content: "\f226" +} + +.fa-images:before { + content: "\f302" +} + +.fa-calculator:before { + content: "\f1ec" +} + +.fa-shuttlecock:before { + content: "\f45b" +} + +.fa-user-hair:before { + content: "\e45a" +} + +.fa-eye-evil:before { + content: "\f6db" +} + +.fa-people-pulling:before { + content: "\e535" +} + +.fa-n:before { + content: "\4e" +} + +.fa-swap:before { + content: "\e609" +} + +.fa-garage:before { + content: "\e009" +} + +.fa-cable-car:before, +.fa-tram:before { + content: "\f7da" +} + +.fa-shovel-snow:before { + content: "\f7c3" +} + +.fa-cloud-rain:before { + content: "\f73d" +} + +.fa-face-lying:before { + content: "\e37e" +} + +.fa-sprinkler:before { + content: "\e035" +} + +.fa-building-circle-xmark:before { + content: "\e4d4" +} + +.fa-person-sledding:before, +.fa-sledding:before { + content: "\f7cb" +} + +.fa-game-console-handheld:before { + content: "\f8bb" +} + +.fa-ship:before { + content: "\f21a" +} + +.fa-clock-six-thirty:before { + content: "\e353" +} + +.fa-battery-slash:before { + content: "\f377" +} + +.fa-tugrik-sign:before { + content: "\e2ba" +} + +.fa-arrows-down-to-line:before { + content: "\e4b8" +} + +.fa-download:before { + content: "\f019" +} + +.fa-angles-up-down:before { + content: "\e60d" +} + +.fa-inventory:before, +.fa-shelves:before { + content: "\f480" +} + +.fa-cloud-snow:before { + content: "\f742" +} + +.fa-face-grin:before, +.fa-grin:before { + content: "\f580" +} + +.fa-backspace:before, +.fa-delete-left:before { + content: "\f55a" +} + +.fa-oven:before { + content: "\e01d" +} + +.fa-cloud-binary:before { + content: "\e601" +} + +.fa-eye-dropper-empty:before, +.fa-eye-dropper:before, +.fa-eyedropper:before { + content: "\f1fb" +} + +.fa-comment-captions:before { + content: "\e146" +} + +.fa-comments-question:before { + content: "\e14e" +} + +.fa-scribble:before { + content: "\e23f" +} + +.fa-rotate-exclamation:before { + content: "\e23c" +} + +.fa-file-circle-check:before { + content: "\e5a0" +} + +.fa-glass:before { + content: "\f804" +} + +.fa-loader:before { + content: "\e1d4" +} + +.fa-forward:before { + content: "\f04e" +} + +.fa-user-pilot:before { + content: "\e2c0" +} + +.fa-mobile-android:before, +.fa-mobile-phone:before, +.fa-mobile:before { + content: "\f3ce" +} + +.fa-code-pull-request-closed:before { + content: "\e3f9" +} + +.fa-face-meh:before, +.fa-meh:before { + content: "\f11a" +} + +.fa-align-center:before { + content: "\f037" +} + +.fa-book-dead:before, +.fa-book-skull:before { + content: "\f6b7" +} + +.fa-drivers-license:before, +.fa-id-card:before { + content: "\f2c2" +} + +.fa-face-dotted:before { + content: "\e47f" +} + +.fa-face-worried:before { + content: "\e3a3" +} + +.fa-dedent:before, +.fa-outdent:before { + content: "\f03b" +} + +.fa-court-sport:before { + content: "\e643" +} + +.fa-heart-circle-exclamation:before { + content: "\e4fe" +} + +.fa-home-alt:before, +.fa-home-lg-alt:before, +.fa-home:before, +.fa-house:before { + content: "\f015" +} + +.fa-vector-circle:before { + content: "\e2c6" +} + +.fa-car-circle-bolt:before { + content: "\e342" +} + +.fa-calendar-week:before { + content: "\f784" +} + +.fa-flying-disc:before { + content: "\e3a9" +} + +.fa-laptop-medical:before { + content: "\f812" +} + +.fa-square-down-right:before { + content: "\e26c" +} + +.fa-b:before { + content: "\42" +} + +.fa-seat-airline:before { + content: "\e244" +} + +.fa-eclipse-alt:before, +.fa-moon-over-sun:before { + content: "\f74a" +} + +.fa-pipe:before { + content: "\7c" +} + +.fa-file-medical:before { + content: "\f477" +} + +.fa-potato:before { + content: "\e440" +} + +.fa-dice-one:before { + content: "\f525" +} + +.fa-circle-a:before { + content: "\e0f7" +} + +.fa-helmet-battle:before { + content: "\f6eb" +} + +.fa-butter:before { + content: "\e3e4" +} + +.fa-blanket-fire:before { + content: "\e3da" +} + +.fa-kiwi-bird:before { + content: "\f535" +} + +.fa-castle:before { + content: "\e0de" +} + +.fa-golf-club:before { + content: "\f451" +} + +.fa-arrow-right-arrow-left:before, +.fa-exchange:before { + content: "\f0ec" +} + +.fa-redo-alt:before, +.fa-rotate-forward:before, +.fa-rotate-right:before { + content: "\f2f9" +} + +.fa-cutlery:before, +.fa-utensils:before { + content: "\f2e7" +} + +.fa-arrow-up-wide-short:before, +.fa-sort-amount-up:before { + content: "\f161" +} + +.fa-chart-pie-simple-circle-dollar:before { + content: "\e605" +} + +.fa-balloons:before { + content: "\e2e4" +} + +.fa-mill-sign:before { + content: "\e1ed" +} + +.fa-bowl-rice:before { + content: "\e2eb" +} + +.fa-timeline-arrow:before { + content: "\e29d" +} + +.fa-skull:before { + content: "\f54c" +} + +.fa-game-board-alt:before, +.fa-game-board-simple:before { + content: "\f868" +} + +.fa-circle-video:before, +.fa-video-circle:before { + content: "\e12b" +} + +.fa-chart-scatter-bubble:before { + content: "\e0e9" +} + +.fa-house-turret:before { + content: "\e1b4" +} + +.fa-banana:before { + content: "\e2e5" +} + +.fa-hand-holding-skull:before { + content: "\e1a4" +} + +.fa-people-dress:before { + content: "\e217" +} + +.fa-couch-small:before, +.fa-loveseat:before { + content: "\f4cc" +} + +.fa-broadcast-tower:before, +.fa-tower-broadcast:before { + content: "\f519" +} + +.fa-truck-pickup:before { + content: "\f63c" +} + +.fa-block-quote:before { + content: "\e0b5" +} + +.fa-long-arrow-alt-up:before, +.fa-up-long:before { + content: "\f30c" +} + +.fa-stop:before { + content: "\f04d" +} + +.fa-code-merge:before { + content: "\f387" +} + +.fa-money-check-dollar-pen:before, +.fa-money-check-edit-alt:before { + content: "\f873" +} + +.fa-arrow-alt-from-bottom:before, +.fa-up-from-line:before { + content: "\f346" +} + +.fa-upload:before { + content: "\f093" +} + +.fa-hurricane:before { + content: "\f751" +} + +.fa-grid-round-2-plus:before { + content: "\e5dc" +} + +.fa-people-pants:before { + content: "\e219" +} + +.fa-mound:before { + content: "\e52d" +} + +.fa-windsock:before { + content: "\f777" +} + +.fa-circle-half:before { + content: "\e110" +} + +.fa-brake-warning:before { + content: "\e0c7" +} + +.fa-toilet-portable:before { + content: "\e583" +} + +.fa-compact-disc:before { + content: "\f51f" +} + +.fa-file-arrow-down:before, +.fa-file-download:before { + content: "\f56d" +} + +.fa-sax-hot:before, +.fa-saxophone-fire:before { + content: "\f8db" +} + +.fa-camera-web-slash:before, +.fa-webcam-slash:before { + content: "\f833" +} + +.fa-folder-medical:before { + content: "\e18c" +} + +.fa-folder-cog:before, +.fa-folder-gear:before { + content: "\e187" +} + +.fa-hand-wave:before { + content: "\e1a7" +} + +.fa-arrow-up-arrow-down:before, +.fa-sort-up-down:before { + content: "\e099" +} + +.fa-caravan:before { + content: "\f8ff" +} + +.fa-shield-cat:before { + content: "\e572" +} + +.fa-comment-alt-slash:before, +.fa-message-slash:before { + content: "\f4a9" +} + +.fa-bolt:before, +.fa-zap:before { + content: "\f0e7" +} + +.fa-trash-can-check:before { + content: "\e2a9" +} + +.fa-glass-water:before { + content: "\e4f4" +} + +.fa-oil-well:before { + content: "\e532" +} + +.fa-person-simple:before { + content: "\e220" +} + +.fa-arrow-turn-left-up:before { + content: "\e634" +} + +.fa-vault:before { + content: "\e2c5" +} + +.fa-mars:before { + content: "\f222" +} + +.fa-toilet:before { + content: "\f7d8" +} + +.fa-plane-circle-xmark:before { + content: "\e557" +} + +.fa-cny:before, +.fa-jpy:before, +.fa-rmb:before, +.fa-yen-sign:before, +.fa-yen:before { + content: "\f157" +} + +.fa-gear-code:before { + content: "\e5e8" +} + +.fa-notes:before { + content: "\e202" +} + +.fa-rouble:before, +.fa-rub:before, +.fa-ruble-sign:before, +.fa-ruble:before { + content: "\f158" +} + +.fa-trash-arrow-turn-left:before, +.fa-trash-undo:before { + content: "\f895" +} + +.fa-champagne-glass:before, +.fa-glass-champagne:before { + content: "\f79e" +} + +.fa-objects-align-center-horizontal:before { + content: "\e3bc" +} + +.fa-sun:before { + content: "\f185" +} + +.fa-trash-alt-slash:before, +.fa-trash-can-slash:before { + content: "\e2ad" +} + +.fa-screen-users:before, +.fa-users-class:before { + content: "\f63d" +} + +.fa-guitar:before { + content: "\f7a6" +} + +.fa-arrow-square-left:before, +.fa-square-arrow-left:before { + content: "\f33a" +} + +.fa-square-8:before { + content: "\e25d" +} + +.fa-face-smile-hearts:before { + content: "\e390" +} + +.fa-brackets-square:before, +.fa-brackets:before { + content: "\f7e9" +} + +.fa-laptop-arrow-down:before { + content: "\e1c6" +} + +.fa-hockey-stick-puck:before { + content: "\e3ae" +} + +.fa-house-tree:before { + content: "\e1b3" +} + +.fa-signal-2:before, +.fa-signal-fair:before { + content: "\f68d" +} + +.fa-face-laugh-wink:before, +.fa-laugh-wink:before { + content: "\f59c" +} + +.fa-circle-dollar:before, +.fa-dollar-circle:before, +.fa-usd-circle:before { + content: "\f2e8" +} + +.fa-horse-head:before { + content: "\f7ab" +} + +.fa-arrows-repeat:before, +.fa-repeat-alt:before { + content: "\f364" +} + +.fa-bore-hole:before { + content: "\e4c3" +} + +.fa-industry:before { + content: "\f275" +} + +.fa-image-polaroid:before { + content: "\f8c4" +} + +.fa-wave-triangle:before { + content: "\f89a" +} + +.fa-turn-left-down:before { + content: "\e637" +} + +.fa-person-running-fast:before { + content: "\e5ff" +} + +.fa-arrow-alt-circle-down:before, +.fa-circle-down:before { + content: "\f358" +} + +.fa-grill:before { + content: "\e5a3" +} + +.fa-arrows-turn-to-dots:before { + content: "\e4c1" +} + +.fa-analytics:before, +.fa-chart-mixed:before { + content: "\f643" +} + +.fa-florin-sign:before { + content: "\e184" +} + +.fa-arrow-down-short-wide:before, +.fa-sort-amount-desc:before, +.fa-sort-amount-down-alt:before { + content: "\f884" +} + +.fa-less-than:before { + content: "\3c" +} + +.fa-desktop-code:before, +.fa-display-code:before { + content: "\e165" +} + +.fa-face-drooling:before { + content: "\e372" +} + +.fa-oil-temp:before, +.fa-oil-temperature:before { + content: "\f614" +} + +.fa-question-square:before, +.fa-square-question:before { + content: "\f2fd" +} + +.fa-air-conditioner:before { + content: "\f8f4" +} + +.fa-angle-down:before { + content: "\f107" +} + +.fa-mountains:before { + content: "\f6fd" +} + +.fa-omega:before { + content: "\f67a" +} + +.fa-car-tunnel:before { + content: "\e4de" +} + +.fa-person-dolly-empty:before { + content: "\f4d1" +} + +.fa-pan-food:before { + content: "\e42b" +} + +.fa-head-side-cough:before { + content: "\e061" +} + +.fa-grip-lines:before { + content: "\f7a4" +} + +.fa-thumbs-down:before { + content: "\f165" +} + +.fa-user-lock:before { + content: "\f502" +} + +.fa-arrow-right-long:before, +.fa-long-arrow-right:before { + content: "\f178" +} + +.fa-tickets-airline:before, +.fa-tickets-perforated-plane:before, +.fa-tickets-plane:before { + content: "\e29b" +} + +.fa-tent-double-peak:before { + content: "\e627" +} + +.fa-anchor-circle-xmark:before { + content: "\e4ac" +} + +.fa-ellipsis-h:before, +.fa-ellipsis:before { + content: "\f141" +} + +.fa-nfc-slash:before { + content: "\e1fc" +} + +.fa-chess-pawn:before { + content: "\f443" +} + +.fa-first-aid:before, +.fa-kit-medical:before { + content: "\f479" +} + +.fa-grid-2-plus:before { + content: "\e197" +} + +.fa-bells:before { + content: "\f77f" +} + +.fa-person-through-window:before { + content: "\e5a9" +} + +.fa-toolbox:before { + content: "\f552" +} + +.fa-envelope-badge:before, +.fa-envelope-dot:before { + content: "\e16f" +} + +.fa-magnifying-glass-waveform:before { + content: "\e661" +} + +.fa-hands-holding-circle:before { + content: "\e4fb" +} + +.fa-bug:before { + content: "\f188" +} + +.fa-bowl-chopsticks:before { + content: "\e2e9" +} + +.fa-credit-card-alt:before, +.fa-credit-card:before { + content: "\f09d" +} + +.fa-circle-s:before { + content: "\e121" +} + +.fa-box-ballot:before { + content: "\f735" +} + +.fa-automobile:before, +.fa-car:before { + content: "\f1b9" +} + +.fa-hand-holding-hand:before { + content: "\e4f7" +} + +.fa-user-tie-hair:before { + content: "\e45f" +} + +.fa-podium-star:before { + content: "\f758" +} + +.fa-business-front:before, +.fa-party-back:before, +.fa-trian-balbot:before, +.fa-user-hair-mullet:before { + content: "\e45c" +} + +.fa-microphone-stand:before { + content: "\f8cb" +} + +.fa-book-open-reader:before, +.fa-book-reader:before { + content: "\f5da" +} + +.fa-family-dress:before { + content: "\e301" +} + +.fa-circle-x:before { + content: "\e12e" +} + +.fa-cabin:before { + content: "\e46d" +} + +.fa-mountain-sun:before { + content: "\e52f" +} + +.fa-chart-simple-horizontal:before { + content: "\e474" +} + +.fa-arrows-left-right-to-line:before { + content: "\e4ba" +} + +.fa-hand-back-point-left:before { + content: "\e19f" +} + +.fa-comment-alt-dots:before, +.fa-message-dots:before, +.fa-messaging:before { + content: "\f4a3" +} + +.fa-file-heart:before { + content: "\e176" +} + +.fa-beer-foam:before, +.fa-beer-mug:before { + content: "\e0b3" +} + +.fa-dice-d20:before { + content: "\f6cf" +} + +.fa-drone:before { + content: "\f85f" +} + +.fa-truck-droplet:before { + content: "\e58c" +} + +.fa-file-circle-xmark:before { + content: "\e5a1" +} + +.fa-temperature-arrow-up:before, +.fa-temperature-up:before { + content: "\e040" +} + +.fa-medal:before { + content: "\f5a2" +} + +.fa-person-fairy:before { + content: "\e608" +} + +.fa-bed:before { + content: "\f236" +} + +.fa-book-copy:before { + content: "\e0be" +} + +.fa-h-square:before, +.fa-square-h:before { + content: "\f0fd" +} + +.fa-square-c:before { + content: "\e266" +} + +.fa-clock-two:before { + content: "\e35a" +} + +.fa-square-ellipsis-vertical:before { + content: "\e26f" +} + +.fa-calendar-users:before { + content: "\e5e2" +} + +.fa-podcast:before { + content: "\f2ce" +} + +.fa-bee:before { + content: "\e0b2" +} + +.fa-temperature-4:before, +.fa-temperature-full:before, +.fa-thermometer-4:before, +.fa-thermometer-full:before { + content: "\f2c7" +} + +.fa-bell:before { + content: "\f0f3" +} + +.fa-candy-bar:before, +.fa-chocolate-bar:before { + content: "\e3e8" +} + +.fa-xmark-large:before { + content: "\e59b" +} + +.fa-pinata:before { + content: "\e3c3" +} + +.fa-file-ppt:before { + content: "\e64a" +} + +.fa-arrows-from-line:before { + content: "\e0a4" +} + +.fa-superscript:before { + content: "\f12b" +} + +.fa-bowl-spoon:before { + content: "\e3e0" +} + +.fa-hexagon-check:before { + content: "\e416" +} + +.fa-plug-circle-xmark:before { + content: "\e560" +} + +.fa-star-of-life:before { + content: "\f621" +} + +.fa-phone-slash:before { + content: "\f3dd" +} + +.fa-traffic-light-stop:before { + content: "\f63a" +} + +.fa-paint-roller:before { + content: "\f5aa" +} + +.fa-accent-grave:before { + content: "\60" +} + +.fa-hands-helping:before, +.fa-handshake-angle:before { + content: "\f4c4" +} + +.fa-circle-0:before { + content: "\e0ed" +} + +.fa-dial-med-low:before { + content: "\e160" +} + +.fa-location-dot:before, +.fa-map-marker-alt:before { + content: "\f3c5" +} + +.fa-crab:before { + content: "\e3ff" +} + +.fa-box-full:before, +.fa-box-open-full:before { + content: "\f49c" +} + +.fa-file:before { + content: "\f15b" +} + +.fa-greater-than:before { + content: "\3e" +} + +.fa-quotes:before { + content: "\e234" +} + +.fa-pretzel:before { + content: "\e441" +} + +.fa-t-rex:before { + content: "\e629" +} + +.fa-person-swimming:before, +.fa-swimmer:before { + content: "\f5c4" +} + +.fa-arrow-down:before { + content: "\f063" +} + +.fa-user-robot-xmarks:before { + content: "\e4a7" +} + +.fa-comment-alt-quote:before, +.fa-message-quote:before { + content: "\e1e4" +} + +.fa-candy-corn:before { + content: "\f6bd" +} + +.fa-folder-magnifying-glass:before, +.fa-folder-search:before { + content: "\e18b" +} + +.fa-notebook:before { + content: "\e201" +} + +.fa-droplet:before, +.fa-tint:before { + content: "\f043" +} + +.fa-bullseye-pointer:before { + content: "\f649" +} + +.fa-eraser:before { + content: "\f12d" +} + +.fa-hexagon-image:before { + content: "\e504" +} + +.fa-earth-america:before, +.fa-earth-americas:before, +.fa-earth:before, +.fa-globe-americas:before { + content: "\f57d" +} + +.fa-file-svg:before { + content: "\e64b" +} + +.fa-crate-apple:before { + content: "\f6b1" +} + +.fa-apple-crate:before { + content: "\f6b1" +} + +.fa-person-burst:before { + content: "\e53b" +} + +.fa-game-board:before { + content: "\f867" +} + +.fa-hat-chef:before { + content: "\f86b" +} + +.fa-hand-back-point-right:before { + content: "\e1a1" +} + +.fa-dove:before { + content: "\f4ba" +} + +.fa-snowflake-droplets:before { + content: "\e5c1" +} + +.fa-battery-0:before, +.fa-battery-empty:before { + content: "\f244" +} + +.fa-grid-4:before { + content: "\e198" +} + +.fa-socks:before { + content: "\f696" +} + +.fa-face-sunglasses:before { + content: "\e398" +} + +.fa-inbox:before { + content: "\f01c" +} + +.fa-square-0:before { + content: "\e255" +} + +.fa-section:before { + content: "\e447" +} + +.fa-box-up:before, +.fa-square-this-way-up:before { + content: "\f49f" +} + +.fa-gauge-high:before, +.fa-tachometer-alt-fast:before, +.fa-tachometer-alt:before { + content: "\f625" +} + +.fa-square-ampersand:before { + content: "\e260" +} + +.fa-envelope-open-text:before { + content: "\f658" +} + +.fa-lamp-desk:before { + content: "\e014" +} + +.fa-hospital-alt:before, +.fa-hospital-wide:before, +.fa-hospital:before { + content: "\f0f8" +} + +.fa-poll-people:before { + content: "\f759" +} + +.fa-glass-whiskey-rocks:before, +.fa-whiskey-glass-ice:before { + content: "\f7a1" +} + +.fa-wine-bottle:before { + content: "\f72f" +} + +.fa-chess-rook:before { + content: "\f447" +} + +.fa-user-bounty-hunter:before { + content: "\e2bf" +} + +.fa-bars-staggered:before, +.fa-reorder:before, +.fa-stream:before { + content: "\f550" +} + +.fa-diagram-sankey:before { + content: "\e158" +} + +.fa-cloud-hail-mixed:before { + content: "\f73a" +} + +.fa-circle-up-left:before { + content: "\e128" +} + +.fa-dharmachakra:before { + content: "\f655" +} + +.fa-objects-align-left:before { + content: "\e3be" +} + +.fa-oil-can-drip:before { + content: "\e205" +} + +.fa-face-smiling-hands:before { + content: "\e396" +} + +.fa-broccoli:before { + content: "\e3e2" +} + +.fa-route-interstate:before { + content: "\f61b" +} + +.fa-ear-muffs:before { + content: "\f795" +} + +.fa-hotdog:before { + content: "\f80f" +} + +.fa-transporter-empty:before { + content: "\e046" +} + +.fa-blind:before, +.fa-person-walking-with-cane:before { + content: "\f29d" +} + +.fa-angle-90:before { + content: "\e08d" +} + +.fa-rectangle-terminal:before { + content: "\e236" +} + +.fa-kite:before { + content: "\f6f4" +} + +.fa-drum:before { + content: "\f569" +} + +.fa-scrubber:before { + content: "\f2f8" +} + +.fa-ice-cream:before { + content: "\f810" +} + +.fa-heart-circle-bolt:before { + content: "\e4fc" +} + +.fa-fish-bones:before { + content: "\e304" +} + +.fa-deer-rudolph:before { + content: "\f78f" +} + +.fa-fax:before { + content: "\f1ac" +} + +.fa-paragraph:before { + content: "\f1dd" +} + +.fa-head-side-heart:before { + content: "\e1aa" +} + +.fa-square-e:before { + content: "\e26d" +} + +.fa-meter-fire:before { + content: "\e1eb" +} + +.fa-cloud-hail:before { + content: "\f739" +} + +.fa-check-to-slot:before, +.fa-vote-yea:before { + content: "\f772" +} + +.fa-money-from-bracket:before { + content: "\e312" +} + +.fa-star-half:before { + content: "\f089" +} + +.fa-car-bus:before { + content: "\f85a" +} + +.fa-speaker:before { + content: "\f8df" +} + +.fa-timer:before { + content: "\e29e" +} + +.fa-boxes-alt:before, +.fa-boxes-stacked:before, +.fa-boxes:before { + content: "\f468" +} + +.fa-landmark-magnifying-glass:before { + content: "\e622" +} + +.fa-grill-hot:before { + content: "\e5a5" +} + +.fa-ballot-check:before { + content: "\f733" +} + +.fa-chain:before, +.fa-link:before { + content: "\f0c1" +} + +.fa-assistive-listening-systems:before, +.fa-ear-listen:before { + content: "\f2a2" +} + +.fa-file-minus:before { + content: "\f318" +} + +.fa-tree-city:before { + content: "\e587" +} + +.fa-play:before { + content: "\f04b" +} + +.fa-font:before { + content: "\f031" +} + +.fa-coffee-togo:before, +.fa-cup-togo:before { + content: "\f6c5" +} + +.fa-square-down-left:before { + content: "\e26b" +} + +.fa-burger-lettuce:before { + content: "\e3e3" +} + +.fa-rupiah-sign:before { + content: "\e23d" +} + +.fa-magnifying-glass:before, +.fa-search:before { + content: "\f002" +} + +.fa-ping-pong-paddle-ball:before, +.fa-table-tennis-paddle-ball:before, +.fa-table-tennis:before { + content: "\f45d" +} + +.fa-diagnoses:before, +.fa-person-dots-from-line:before { + content: "\f470" +} + +.fa-chevron-double-down:before, +.fa-chevrons-down:before { + content: "\f322" +} + +.fa-trash-can-arrow-up:before, +.fa-trash-restore-alt:before { + content: "\f82a" +} + +.fa-signal-3:before, +.fa-signal-good:before { + content: "\f68e" +} + +.fa-location-question:before, +.fa-map-marker-question:before { + content: "\f60b" +} + +.fa-floppy-disk-circle-xmark:before, +.fa-floppy-disk-times:before, +.fa-save-circle-xmark:before, +.fa-save-times:before { + content: "\e181" +} + +.fa-naira-sign:before { + content: "\e1f6" +} + +.fa-peach:before { + content: "\e20b" +} + +.fa-taxi-bus:before { + content: "\e298" +} + +.fa-bracket-curly-left:before, +.fa-bracket-curly:before { + content: "\7b" +} + +.fa-lobster:before { + content: "\e421" +} + +.fa-cart-flatbed-empty:before, +.fa-dolly-flatbed-empty:before { + content: "\f476" +} + +.fa-colon:before { + content: "\3a" +} + +.fa-cart-arrow-down:before { + content: "\f218" +} + +.fa-wand:before { + content: "\f72a" +} + +.fa-walkie-talkie:before { + content: "\f8ef" +} + +.fa-file-edit:before, +.fa-file-pen:before { + content: "\f31c" +} + +.fa-receipt:before { + content: "\f543" +} + +.fa-table-picnic:before { + content: "\e32d" +} + +.fa-pen-square:before, +.fa-pencil-square:before, +.fa-square-pen:before { + content: "\f14b" +} + +.fa-circle-microphone-lines:before, +.fa-microphone-circle-alt:before { + content: "\e117" +} + +.fa-desktop-slash:before, +.fa-display-slash:before { + content: "\e2fa" +} + +.fa-suitcase-rolling:before { + content: "\f5c1" +} + +.fa-person-circle-exclamation:before { + content: "\e53f" +} + +.fa-transporter-2:before { + content: "\e044" +} + +.fa-hand-receiving:before, +.fa-hands-holding-diamond:before { + content: "\f47c" +} + +.fa-money-bill-simple-wave:before { + content: "\e1f2" +} + +.fa-chevron-down:before { + content: "\f078" +} + +.fa-battery-5:before, +.fa-battery-full:before, +.fa-battery:before { + content: "\f240" +} + +.fa-bell-plus:before { + content: "\f849" +} + +.fa-book-arrow-right:before { + content: "\e0b9" +} + +.fa-hospitals:before { + content: "\f80e" +} + +.fa-club:before { + content: "\f327" +} + +.fa-skull-crossbones:before { + content: "\f714" +} + +.fa-dewpoint:before, +.fa-droplet-degree:before { + content: "\f748" +} + +.fa-code-compare:before { + content: "\e13a" +} + +.fa-list-dots:before, +.fa-list-ul:before { + content: "\f0ca" +} + +.fa-hand-holding-magic:before { + content: "\f6e5" +} + +.fa-watermelon-slice:before { + content: "\e337" +} + +.fa-circle-ellipsis:before { + content: "\e10a" +} + +.fa-school-lock:before { + content: "\e56f" +} + +.fa-tower-cell:before { + content: "\e585" +} + +.fa-sd-cards:before { + content: "\e240" +} + +.fa-jug-bottle:before { + content: "\e5fb" +} + +.fa-down-long:before, +.fa-long-arrow-alt-down:before { + content: "\f309" +} + +.fa-envelopes:before { + content: "\e170" +} + +.fa-phone-office:before { + content: "\f67d" +} + +.fa-ranking-star:before { + content: "\e561" +} + +.fa-chess-king:before { + content: "\f43f" +} + +.fa-nfc-pen:before { + content: "\e1fa" +} + +.fa-person-harassing:before { + content: "\e549" +} + +.fa-magnifying-glass-play:before { + content: "\e660" +} + +.fa-hat-winter:before { + content: "\f7a8" +} + +.fa-brazilian-real-sign:before { + content: "\e46c" +} + +.fa-landmark-alt:before, +.fa-landmark-dome:before { + content: "\f752" +} + +.fa-bone-break:before { + content: "\f5d8" +} + +.fa-arrow-up:before { + content: "\f062" +} + +.fa-down-from-dotted-line:before { + content: "\e407" +} + +.fa-television:before, +.fa-tv-alt:before, +.fa-tv:before { + content: "\f26c" +} + +.fa-border-left:before { + content: "\f84f" +} + +.fa-circle-divide:before { + content: "\e106" +} + +.fa-shrimp:before { + content: "\e448" +} + +.fa-list-check:before, +.fa-tasks:before { + content: "\f0ae" +} + +.fa-diagram-subtask:before { + content: "\e479" +} + +.fa-jug-detergent:before { + content: "\e519" +} + +.fa-circle-user:before, +.fa-user-circle:before { + content: "\f2bd" +} + +.fa-square-y:before { + content: "\e287" +} + +.fa-user-doctor-hair:before { + content: "\e458" +} + +.fa-planet-ringed:before { + content: "\e020" +} + +.fa-mushroom:before { + content: "\e425" +} + +.fa-user-shield:before { + content: "\f505" +} + +.fa-megaphone:before { + content: "\f675" +} + +.fa-wreath-laurel:before { + content: "\e5d2" +} + +.fa-circle-exclamation-check:before { + content: "\e10d" +} + +.fa-wind:before { + content: "\f72e" +} + +.fa-box-dollar:before, +.fa-box-usd:before { + content: "\f4a0" +} + +.fa-car-burst:before, +.fa-car-crash:before { + content: "\f5e1" +} + +.fa-y:before { + content: "\59" +} + +.fa-user-headset:before { + content: "\f82d" +} + +.fa-arrows-retweet:before, +.fa-retweet-alt:before { + content: "\f361" +} + +.fa-person-snowboarding:before, +.fa-snowboarding:before { + content: "\f7ce" +} + +.fa-chevron-square-right:before, +.fa-square-chevron-right:before { + content: "\f32b" +} + +.fa-lacrosse-stick-ball:before { + content: "\e3b6" +} + +.fa-shipping-fast:before, +.fa-truck-fast:before { + content: "\f48b" +} + +.fa-user-magnifying-glass:before { + content: "\e5c5" +} + +.fa-star-sharp:before { + content: "\e28b" +} + +.fa-comment-heart:before { + content: "\e5c8" +} + +.fa-circle-1:before { + content: "\e0ee" +} + +.fa-circle-star:before, +.fa-star-circle:before { + content: "\e123" +} + +.fa-fish:before { + content: "\f578" +} + +.fa-cloud-fog:before, +.fa-fog:before { + content: "\f74e" +} + +.fa-waffle:before { + content: "\e466" +} + +.fa-music-alt:before, +.fa-music-note:before { + content: "\f8cf" +} + +.fa-hexagon-exclamation:before { + content: "\e417" +} + +.fa-cart-shopping-fast:before { + content: "\e0dc" +} + +.fa-object-union:before { + content: "\e49f" +} + +.fa-user-graduate:before { + content: "\f501" +} + +.fa-starfighter:before { + content: "\e037" +} + +.fa-adjust:before, +.fa-circle-half-stroke:before { + content: "\f042" +} + +.fa-arrow-right-long-to-line:before { + content: "\e3d5" +} + +.fa-arrow-square-down:before, +.fa-square-arrow-down:before { + content: "\f339" +} + +.fa-diamond-half-stroke:before { + content: "\e5b8" +} + +.fa-clapperboard:before { + content: "\e131" +} + +.fa-chevron-square-left:before, +.fa-square-chevron-left:before { + content: "\f32a" +} + +.fa-phone-intercom:before { + content: "\e434" +} + +.fa-chain-horizontal:before, +.fa-link-horizontal:before { + content: "\e1cb" +} + +.fa-mango:before { + content: "\e30f" +} + +.fa-music-alt-slash:before, +.fa-music-note-slash:before { + content: "\f8d0" +} + +.fa-circle-radiation:before, +.fa-radiation-alt:before { + content: "\f7ba" +} + +.fa-face-tongue-sweat:before { + content: "\e39e" +} + +.fa-globe-stand:before { + content: "\f5f6" +} + +.fa-baseball-ball:before, +.fa-baseball:before { + content: "\f433" +} + +.fa-circle-p:before { + content: "\e11a" +} + +.fa-award-simple:before { + content: "\e0ab" +} + +.fa-jet-fighter-up:before { + content: "\e518" +} + +.fa-diagram-project:before, +.fa-project-diagram:before { + content: "\f542" +} + +.fa-pedestal:before { + content: "\e20d" +} + +.fa-chart-pyramid:before { + content: "\e0e6" +} + +.fa-sidebar:before { + content: "\e24e" +} + +.fa-frosty-head:before, +.fa-snowman-head:before { + content: "\f79b" +} + +.fa-copy:before { + content: "\f0c5" +} + +.fa-burger-glass:before { + content: "\e0ce" +} + +.fa-volume-mute:before, +.fa-volume-times:before, +.fa-volume-xmark:before { + content: "\f6a9" +} + +.fa-hand-sparkles:before { + content: "\e05d" +} + +.fa-bars-filter:before { + content: "\e0ad" +} + +.fa-paintbrush-pencil:before { + content: "\e206" +} + +.fa-party-bell:before { + content: "\e31a" +} + +.fa-user-vneck-hair:before { + content: "\e462" +} + +.fa-jack-o-lantern:before { + content: "\f30e" +} + +.fa-grip-horizontal:before, +.fa-grip:before { + content: "\f58d" +} + +.fa-share-from-square:before, +.fa-share-square:before { + content: "\f14d" +} + +.fa-keynote:before { + content: "\f66c" +} + +.fa-child-combatant:before, +.fa-child-rifle:before { + content: "\e4e0" +} + +.fa-gun:before { + content: "\e19b" +} + +.fa-phone-square:before, +.fa-square-phone:before { + content: "\f098" +} + +.fa-hat-beach:before { + content: "\e606" +} + +.fa-add:before, +.fa-plus:before { + content: "\2b" +} + +.fa-expand:before { + content: "\f065" +} + +.fa-computer:before { + content: "\e4e5" +} + +.fa-fort:before { + content: "\e486" +} + +.fa-cloud-check:before { + content: "\e35c" +} + +.fa-close:before, +.fa-multiply:before, +.fa-remove:before, +.fa-times:before, +.fa-xmark:before { + content: "\f00d" +} + +.fa-face-smirking:before { + content: "\e397" +} + +.fa-arrows-up-down-left-right:before, +.fa-arrows:before { + content: "\f047" +} + +.fa-chalkboard-teacher:before, +.fa-chalkboard-user:before { + content: "\f51c" +} + +.fa-rhombus:before { + content: "\e23b" +} + +.fa-claw-marks:before { + content: "\f6c2" +} + +.fa-peso-sign:before { + content: "\e222" +} + +.fa-face-smile-tongue:before { + content: "\e394" +} + +.fa-cart-circle-xmark:before { + content: "\e3f4" +} + +.fa-building-shield:before { + content: "\e4d8" +} + +.fa-circle-phone-flip:before, +.fa-phone-circle-alt:before { + content: "\e11c" +} + +.fa-baby:before { + content: "\f77c" +} + +.fa-users-line:before { + content: "\e592" +} + +.fa-quote-left-alt:before, +.fa-quote-left:before { + content: "\f10d" +} + +.fa-tractor:before { + content: "\f722" +} + +.fa-key-skeleton:before { + content: "\f6f3" +} + +.fa-trash-arrow-up:before, +.fa-trash-restore:before { + content: "\f829" +} + +.fa-arrow-down-up-lock:before { + content: "\e4b0" +} + +.fa-arrow-down-to-bracket:before { + content: "\e094" +} + +.fa-lines-leaning:before { + content: "\e51e" +} + +.fa-square-q:before { + content: "\e27b" +} + +.fa-ruler-combined:before { + content: "\f546" +} + +.fa-icons-alt:before, +.fa-symbols:before { + content: "\f86e" +} + +.fa-copyright:before { + content: "\f1f9" +} + +.fa-flask-gear:before { + content: "\e5f1" +} + +.fa-highlighter-line:before { + content: "\e1af" +} + +.fa-bracket-left:before, +.fa-bracket-square:before, +.fa-bracket:before { + content: "\5b" +} + +.fa-island-tree-palm:before, +.fa-island-tropical:before { + content: "\f811" +} + +.fa-arrow-from-left:before, +.fa-arrow-right-from-line:before { + content: "\f343" +} + +.fa-h2:before { + content: "\f314" +} + +.fa-equals:before { + content: "\3d" +} + +.fa-cake-slice:before, +.fa-shortcake:before { + content: "\e3e5" +} + +.fa-building-magnifying-glass:before { + content: "\e61c" +} + +.fa-peanut:before { + content: "\e430" +} + +.fa-wrench-simple:before { + content: "\e2d1" +} + +.fa-blender:before { + content: "\f517" +} + +.fa-teeth:before { + content: "\f62e" +} + +.fa-tally-2:before { + content: "\e295" +} + +.fa-ils:before, +.fa-shekel-sign:before, +.fa-shekel:before, +.fa-sheqel-sign:before, +.fa-sheqel:before { + content: "\f20b" +} + +.fa-cars:before { + content: "\f85b" +} + +.fa-axe-battle:before { + content: "\f6b3" +} + +.fa-user-hair-long:before { + content: "\e45b" +} + +.fa-map:before { + content: "\f279" +} + +.fa-arrow-left-from-arc:before { + content: "\e615" +} + +.fa-file-circle-info:before { + content: "\e493" +} + +.fa-face-disappointed:before { + content: "\e36f" +} + +.fa-lasso-sparkles:before { + content: "\e1c9" +} + +.fa-clock-eleven:before { + content: "\e347" +} + +.fa-rocket:before { + content: "\f135" +} + +.fa-siren-on:before { + content: "\e02e" +} + +.fa-clock-ten:before { + content: "\e354" +} + +.fa-candle-holder:before { + content: "\f6bc" +} + +.fa-video-arrow-down-left:before { + content: "\e2c8" +} + +.fa-photo-film:before, +.fa-photo-video:before { + content: "\f87c" +} + +.fa-floppy-disk-circle-arrow-right:before, +.fa-save-circle-arrow-right:before { + content: "\e180" +} + +.fa-folder-minus:before { + content: "\f65d" +} + +.fa-planet-moon:before { + content: "\e01f" +} + +.fa-face-eyes-xmarks:before { + content: "\e374" +} + +.fa-chart-scatter:before { + content: "\f7ee" +} + +.fa-display-arrow-down:before { + content: "\e164" +} + +.fa-store:before { + content: "\f54e" +} + +.fa-arrow-trend-up:before { + content: "\e098" +} + +.fa-plug-circle-minus:before { + content: "\e55e" +} + +.fa-olive-branch:before { + content: "\e317" +} + +.fa-angle:before { + content: "\e08c" +} + +.fa-vacuum-robot:before { + content: "\e04e" +} + +.fa-sign-hanging:before, +.fa-sign:before { + content: "\f4d9" +} + +.fa-square-divide:before { + content: "\e26a" +} + +.fa-folder-check:before { + content: "\e64e" +} + +.fa-signal-stream-slash:before { + content: "\e250" +} + +.fa-bezier-curve:before { + content: "\f55b" +} + +.fa-eye-dropper-half:before { + content: "\e173" +} + +.fa-store-lock:before { + content: "\e4a6" +} + +.fa-bell-slash:before { + content: "\f1f6" +} + +.fa-cloud-bolt-sun:before, +.fa-thunderstorm-sun:before { + content: "\f76e" +} + +.fa-camera-slash:before { + content: "\e0d9" +} + +.fa-comment-quote:before { + content: "\e14c" +} + +.fa-tablet-android:before, +.fa-tablet:before { + content: "\f3fb" +} + +.fa-school-flag:before { + content: "\e56e" +} + +.fa-message-code:before { + content: "\e1df" +} + +.fa-glass-half-empty:before, +.fa-glass-half-full:before, +.fa-glass-half:before { + content: "\e192" +} + +.fa-fill:before { + content: "\f575" +} + +.fa-comment-alt-minus:before, +.fa-message-minus:before { + content: "\f4a7" +} + +.fa-angle-up:before { + content: "\f106" +} + +.fa-dinosaur:before { + content: "\e5fe" +} + +.fa-drumstick-bite:before { + content: "\f6d7" +} + +.fa-chain-horizontal-slash:before, +.fa-link-horizontal-slash:before { + content: "\e1cc" +} + +.fa-holly-berry:before { + content: "\f7aa" +} + +.fa-nose:before { + content: "\e5bd" +} + +.fa-arrow-left-to-arc:before { + content: "\e616" +} + +.fa-chevron-left:before { + content: "\f053" +} + +.fa-bacteria:before { + content: "\e059" +} + +.fa-clouds:before { + content: "\f744" +} + +.fa-money-bill-simple:before { + content: "\e1f1" +} + +.fa-hand-lizard:before { + content: "\f258" +} + +.fa-table-pivot:before { + content: "\e291" +} + +.fa-filter-slash:before { + content: "\e17d" +} + +.fa-trash-can-arrow-turn-left:before, +.fa-trash-can-undo:before, +.fa-trash-undo-alt:before { + content: "\f896" +} + +.fa-notdef:before { + content: "\e1fe" +} + +.fa-disease:before { + content: "\f7fa" +} + +.fa-person-to-door:before { + content: "\e433" +} + +.fa-turntable:before { + content: "\f8e4" +} + +.fa-briefcase-medical:before { + content: "\f469" +} + +.fa-genderless:before { + content: "\f22d" +} + +.fa-chevron-right:before { + content: "\f054" +} + +.fa-signal-1:before, +.fa-signal-weak:before { + content: "\f68c" +} + +.fa-clock-five:before { + content: "\e349" +} + +.fa-retweet:before { + content: "\f079" +} + +.fa-car-alt:before, +.fa-car-rear:before { + content: "\f5de" +} + +.fa-pump-soap:before { + content: "\e06b" +} + +.fa-computer-classic:before { + content: "\f8b1" +} + +.fa-frame:before { + content: "\e495" +} + +.fa-video-slash:before { + content: "\f4e2" +} + +.fa-battery-2:before, +.fa-battery-quarter:before { + content: "\f243" +} + +.fa-ellipsis-h-alt:before, +.fa-ellipsis-stroke:before { + content: "\f39b" +} + +.fa-radio:before { + content: "\f8d7" +} + +.fa-baby-carriage:before, +.fa-carriage-baby:before { + content: "\f77d" +} + +.fa-face-expressionless:before { + content: "\e373" +} + +.fa-down-to-dotted-line:before { + content: "\e408" +} + +.fa-cloud-music:before { + content: "\f8ae" +} + +.fa-traffic-light:before { + content: "\f637" +} + +.fa-cloud-minus:before { + content: "\e35d" +} + +.fa-thermometer:before { + content: "\f491" +} + +.fa-shield-minus:before { + content: "\e249" +} + +.fa-vr-cardboard:before { + content: "\f729" +} + +.fa-car-tilt:before { + content: "\f5e5" +} + +.fa-gauge-circle-minus:before { + content: "\e497" +} + +.fa-brightness-low:before { + content: "\e0ca" +} + +.fa-hand-middle-finger:before { + content: "\f806" +} + +.fa-percent:before, +.fa-percentage:before { + content: "\25" +} + +.fa-truck-moving:before { + content: "\f4df" +} + +.fa-glass-water-droplet:before { + content: "\e4f5" +} + +.fa-conveyor-belt:before { + content: "\f46e" +} + +.fa-location-check:before, +.fa-map-marker-check:before { + content: "\f606" +} + +.fa-coin-vertical:before { + content: "\e3fd" +} + +.fa-display:before { + content: "\e163" +} + +.fa-person-sign:before { + content: "\f757" +} + +.fa-face-smile:before, +.fa-smile:before { + content: "\f118" +} + +.fa-phone-hangup:before { + content: "\e225" +} + +.fa-signature-slash:before { + content: "\e3cb" +} + +.fa-thumb-tack:before, +.fa-thumbtack:before { + content: "\f08d" +} + +.fa-wheat-slash:before { + content: "\e339" +} + +.fa-trophy:before { + content: "\f091" +} + +.fa-clouds-sun:before { + content: "\f746" +} + +.fa-person-praying:before, +.fa-pray:before { + content: "\f683" +} + +.fa-hammer:before { + content: "\f6e3" +} + +.fa-face-vomit:before { + content: "\e3a0" +} + +.fa-speakers:before { + content: "\f8e0" +} + +.fa-teletype-answer:before, +.fa-tty-answer:before { + content: "\e2b9" +} + +.fa-mug-tea-saucer:before { + content: "\e1f5" +} + +.fa-diagram-lean-canvas:before { + content: "\e156" +} + +.fa-alt:before { + content: "\e08a" +} + +.fa-dial-med-high:before, +.fa-dial:before { + content: "\e15b" +} + +.fa-hand-peace:before { + content: "\f25b" +} + +.fa-circle-trash:before, +.fa-trash-circle:before { + content: "\e126" +} + +.fa-rotate:before, +.fa-sync-alt:before { + content: "\f2f1" +} + +.fa-circle-quarters:before { + content: "\e3f8" +} + +.fa-spinner:before { + content: "\f110" +} + +.fa-tower-control:before { + content: "\e2a2" +} + +.fa-arrow-up-triangle-square:before, +.fa-sort-shapes-up:before { + content: "\f88a" +} + +.fa-whale:before { + content: "\f72c" +} + +.fa-robot:before { + content: "\f544" +} + +.fa-peace:before { + content: "\f67c" +} + +.fa-party-horn:before { + content: "\e31b" +} + +.fa-cogs:before, +.fa-gears:before { + content: "\f085" +} + +.fa-sun-alt:before, +.fa-sun-bright:before { + content: "\e28f" +} + +.fa-warehouse:before { + content: "\f494" +} + +.fa-conveyor-belt-arm:before { + content: "\e5f8" +} + +.fa-lock-keyhole-open:before, +.fa-lock-open-alt:before { + content: "\f3c2" +} + +.fa-box-fragile:before, +.fa-square-fragile:before, +.fa-square-wine-glass-crack:before { + content: "\f49b" +} + +.fa-arrow-up-right-dots:before { + content: "\e4b7" +} + +.fa-square-n:before { + content: "\e277" +} + +.fa-splotch:before { + content: "\f5bc" +} + +.fa-face-grin-hearts:before, +.fa-grin-hearts:before { + content: "\f584" +} + +.fa-meter:before { + content: "\e1e8" +} + +.fa-mandolin:before { + content: "\f6f9" +} + +.fa-dice-four:before { + content: "\f524" +} + +.fa-sim-card:before { + content: "\f7c4" +} + +.fa-transgender-alt:before, +.fa-transgender:before { + content: "\f225" +} + +.fa-mercury:before { + content: "\f223" +} + +.fa-up-from-bracket:before { + content: "\e590" +} + +.fa-knife-kitchen:before { + content: "\f6f5" +} + +.fa-border-right:before { + content: "\f852" +} + +.fa-arrow-turn-down:before, +.fa-level-down:before { + content: "\f149" +} + +.fa-spade:before { + content: "\f2f4" +} + +.fa-card-spade:before { + content: "\e3ec" +} + +.fa-line-columns:before { + content: "\f870" +} + +.fa-arrow-right-to-line:before, +.fa-arrow-to-right:before { + content: "\f340" +} + +.fa-person-falling-burst:before { + content: "\e547" +} + +.fa-flag-pennant:before, +.fa-pennant:before { + content: "\f456" +} + +.fa-conveyor-belt-empty:before { + content: "\e150" +} + +.fa-user-group-simple:before { + content: "\e603" +} + +.fa-award:before { + content: "\f559" +} + +.fa-ticket-alt:before, +.fa-ticket-simple:before { + content: "\f3ff" +} + +.fa-building:before { + content: "\f1ad" +} + +.fa-angle-double-left:before, +.fa-angles-left:before { + content: "\f100" +} + +.fa-camcorder:before, +.fa-video-handheld:before { + content: "\f8a8" +} + +.fa-pancakes:before { + content: "\e42d" +} + +.fa-album-circle-user:before { + content: "\e48d" +} + +.fa-subtitles-slash:before { + content: "\e610" +} + +.fa-qrcode:before { + content: "\f029" +} + +.fa-dice-d10:before { + content: "\f6cd" +} + +.fa-fireplace:before { + content: "\f79a" +} + +.fa-browser:before { + content: "\f37e" +} + +.fa-pen-paintbrush:before, +.fa-pencil-paintbrush:before { + content: "\f618" +} + +.fa-fish-cooked:before { + content: "\f7fe" +} + +.fa-chair-office:before { + content: "\f6c1" +} + +.fa-magnifying-glass-music:before { + content: "\e65f" +} + +.fa-nesting-dolls:before { + content: "\e3ba" +} + +.fa-clock-rotate-left:before, +.fa-history:before { + content: "\f1da" +} + +.fa-trumpet:before { + content: "\f8e3" +} + +.fa-face-grin-beam-sweat:before, +.fa-grin-beam-sweat:before { + content: "\f583" +} + +.fa-fire-smoke:before { + content: "\f74b" +} + +.fa-phone-missed:before { + content: "\e226" +} + +.fa-arrow-right-from-file:before, +.fa-file-export:before { + content: "\f56e" +} + +.fa-shield-blank:before, +.fa-shield:before { + content: "\f132" +} + +.fa-arrow-up-short-wide:before, +.fa-sort-amount-up-alt:before { + content: "\f885" +} + +.fa-arrows-repeat-1:before, +.fa-repeat-1-alt:before { + content: "\f366" +} + +.fa-gun-slash:before { + content: "\e19c" +} + +.fa-avocado:before { + content: "\e0aa" +} + +.fa-binary:before { + content: "\e33b" +} + +.fa-glasses-alt:before, +.fa-glasses-round:before { + content: "\f5f5" +} + +.fa-phone-plus:before { + content: "\f4d2" +} + +.fa-ditto:before { + content: "\22" +} + +.fa-person-seat:before { + content: "\e21e" +} + +.fa-house-medical:before { + content: "\e3b2" +} + +.fa-golf-ball-tee:before, +.fa-golf-ball:before { + content: "\f450" +} + +.fa-chevron-circle-left:before, +.fa-circle-chevron-left:before { + content: "\f137" +} + +.fa-house-chimney-window:before { + content: "\e00d" +} + +.fa-scythe:before { + content: "\f710" +} + +.fa-pen-nib:before { + content: "\f5ad" +} + +.fa-ban-parking:before, +.fa-parking-circle-slash:before { + content: "\f616" +} + +.fa-tent-arrow-turn-left:before { + content: "\e580" +} + +.fa-face-diagonal-mouth:before { + content: "\e47e" +} + +.fa-diagram-cells:before { + content: "\e475" +} + +.fa-cricket-bat-ball:before, +.fa-cricket:before { + content: "\f449" +} + +.fa-tents:before { + content: "\e582" +} + +.fa-magic:before, +.fa-wand-magic:before { + content: "\f0d0" +} + +.fa-dog:before { + content: "\f6d3" +} + +.fa-pen-line:before { + content: "\e212" +} + +.fa-atom-alt:before, +.fa-atom-simple:before { + content: "\f5d3" +} + +.fa-ampersand:before { + content: "\26" +} + +.fa-carrot:before { + content: "\f787" +} + +.fa-arrow-from-bottom:before, +.fa-arrow-up-from-line:before { + content: "\f342" +} + +.fa-moon:before { + content: "\f186" +} + +.fa-pen-slash:before { + content: "\e213" +} + +.fa-wine-glass-alt:before, +.fa-wine-glass-empty:before { + content: "\f5ce" +} + +.fa-square-star:before { + content: "\e27f" +} + +.fa-cheese:before { + content: "\f7ef" +} + +.fa-send-backward:before { + content: "\f87f" +} + +.fa-yin-yang:before { + content: "\f6ad" +} + +.fa-music:before { + content: "\f001" +} + +.fa-compass-slash:before { + content: "\f5e9" +} + +.fa-clock-one:before { + content: "\e34e" +} + +.fa-file-music:before { + content: "\f8b6" +} + +.fa-code-commit:before { + content: "\f386" +} + +.fa-temperature-low:before { + content: "\f76b" +} + +.fa-biking:before, +.fa-person-biking:before { + content: "\f84a" +} + +.fa-display-chart-up-circle-currency:before { + content: "\e5e5" +} + +.fa-skeleton:before { + content: "\f620" +} + +.fa-circle-g:before { + content: "\e10f" +} + +.fa-circle-arrow-up-left:before { + content: "\e0fb" +} + +.fa-coin-blank:before { + content: "\e3fb" +} + +.fa-broom:before { + content: "\f51a" +} + +.fa-vacuum:before { + content: "\e04d" +} + +.fa-shield-heart:before { + content: "\e574" +} + +.fa-card-heart:before { + content: "\e3eb" +} + +.fa-lightbulb-cfl-on:before { + content: "\e5a7" +} + +.fa-melon:before { + content: "\e310" +} + +.fa-gopuram:before { + content: "\f664" +} + +.fa-earth-oceania:before, +.fa-globe-oceania:before { + content: "\e47b" +} + +.fa-container-storage:before { + content: "\f4b7" +} + +.fa-face-pouting:before { + content: "\e387" +} + +.fa-square-xmark:before, +.fa-times-square:before, +.fa-xmark-square:before { + content: "\f2d3" +} + +.fa-exploding-head:before, +.fa-face-explode:before { + content: "\e2fe" +} + +.fa-hashtag:before { + content: "\23" +} + +.fa-expand-alt:before, +.fa-up-right-and-down-left-from-center:before { + content: "\f424" +} + +.fa-oil-can:before { + content: "\f613" +} + +.fa-t:before { + content: "\54" +} + +.fa-transformer-bolt:before { + content: "\e2a4" +} + +.fa-hippo:before { + content: "\f6ed" +} + +.fa-chart-column:before { + content: "\e0e3" +} + +.fa-cassette-vhs:before, +.fa-vhs:before { + content: "\f8ec" +} + +.fa-infinity:before { + content: "\f534" +} + +.fa-vial-circle-check:before { + content: "\e596" +} + +.fa-chimney:before { + content: "\f78b" +} + +.fa-object-intersect:before { + content: "\e49d" +} + +.fa-person-arrow-down-to-line:before { + content: "\e538" +} + +.fa-voicemail:before { + content: "\f897" +} + +.fa-block-brick:before, +.fa-wall-brick:before { + content: "\e3db" +} + +.fa-fan:before { + content: "\f863" +} + +.fa-bags-shopping:before { + content: "\f847" +} + +.fa-paragraph-left:before, +.fa-paragraph-rtl:before { + content: "\f878" +} + +.fa-person-walking-luggage:before { + content: "\e554" +} + +.fa-caravan-alt:before, +.fa-caravan-simple:before { + content: "\e000" +} + +.fa-turtle:before { + content: "\f726" +} + +.fa-pencil-mechanical:before { + content: "\e5ca" +} + +.fa-arrows-alt-v:before, +.fa-up-down:before { + content: "\f338" +} + +.fa-cloud-moon-rain:before { + content: "\f73c" +} + +.fa-booth-curtain:before { + content: "\f734" +} + +.fa-calendar:before { + content: "\f133" +} + +.fa-box-heart:before { + content: "\f49d" +} + +.fa-trailer:before { + content: "\e041" +} + +.fa-user-doctor-message:before, +.fa-user-md-chat:before { + content: "\f82e" +} + +.fa-bahai:before, +.fa-haykal:before { + content: "\f666" +} + +.fa-lighthouse:before { + content: "\e612" +} + +.fa-amp-guitar:before { + content: "\f8a1" +} + +.fa-sd-card:before { + content: "\f7c2" +} + +.fa-volume-slash:before { + content: "\f2e2" +} + +.fa-border-bottom:before { + content: "\f84d" +} + +.fa-wifi-1:before, +.fa-wifi-weak:before { + content: "\f6aa" +} + +.fa-dragon:before { + content: "\f6d5" +} + +.fa-shoe-prints:before { + content: "\f54b" +} + +.fa-circle-plus:before, +.fa-plus-circle:before { + content: "\f055" +} + +.fa-face-grin-tongue-wink:before, +.fa-grin-tongue-wink:before { + content: "\f58b" +} + +.fa-hand-holding:before { + content: "\f4bd" +} + +.fa-plug-circle-exclamation:before { + content: "\e55d" +} + +.fa-chain-broken:before, +.fa-chain-slash:before, +.fa-link-slash:before, +.fa-unlink:before { + content: "\f127" +} + +.fa-clone:before { + content: "\f24d" +} + +.fa-person-walking-arrow-loop-left:before { + content: "\e551" +} + +.fa-arrow-up-z-a:before, +.fa-sort-alpha-up-alt:before { + content: "\f882" +} + +.fa-fire-alt:before, +.fa-fire-flame-curved:before { + content: "\f7e4" +} + +.fa-tornado:before { + content: "\f76f" +} + +.fa-file-circle-plus:before { + content: "\e494" +} + +.fa-delete-right:before { + content: "\e154" +} + +.fa-book-quran:before, +.fa-quran:before { + content: "\f687" +} + +.fa-circle-quarter:before { + content: "\e11f" +} + +.fa-anchor:before { + content: "\f13d" +} + +.fa-border-all:before { + content: "\f84c" +} + +.fa-function:before { + content: "\f661" +} + +.fa-angry:before, +.fa-face-angry:before { + content: "\f556" +} + +.fa-people-simple:before { + content: "\e21b" +} + +.fa-cookie-bite:before { + content: "\f564" +} + +.fa-arrow-trend-down:before { + content: "\e097" +} + +.fa-feed:before, +.fa-rss:before { + content: "\f09e" +} + +.fa-face-monocle:before { + content: "\e380" +} + +.fa-draw-polygon:before { + content: "\f5ee" +} + +.fa-balance-scale:before, +.fa-scale-balanced:before { + content: "\f24e" +} + +.fa-calendar-lines:before, +.fa-calendar-note:before { + content: "\e0d5" +} + +.fa-arrow-down-big-small:before, +.fa-sort-size-down:before { + content: "\f88c" +} + +.fa-gauge-simple-high:before, +.fa-tachometer-fast:before, +.fa-tachometer:before { + content: "\f62a" +} + +.fa-do-not-enter:before { + content: "\f5ec" +} + +.fa-shower:before { + content: "\f2cc" +} + +.fa-dice-d8:before { + content: "\f6d2" +} + +.fa-desktop-alt:before, +.fa-desktop:before { + content: "\f390" +} + +.fa-m:before { + content: "\4d" +} + +.fa-spinner-scale:before { + content: "\e62a" +} + +.fa-grip-dots-vertical:before { + content: "\e411" +} + +.fa-face-viewfinder:before { + content: "\e2ff" +} + +.fa-creemee:before, +.fa-soft-serve:before { + content: "\e400" +} + +.fa-h5:before { + content: "\e412" +} + +.fa-hand-back-point-down:before { + content: "\e19e" +} + +.fa-table-list:before, +.fa-th-list:before { + content: "\f00b" +} + +.fa-basket-shopping-minus:before { + content: "\e652" +} + +.fa-comment-sms:before, +.fa-sms:before { + content: "\f7cd" +} + +.fa-rectangle-landscape:before, +.fa-rectangle:before { + content: "\f2fa" +} + +.fa-clipboard-list-check:before { + content: "\f737" +} + +.fa-turkey:before { + content: "\f725" +} + +.fa-book:before { + content: "\f02d" +} + +.fa-user-plus:before { + content: "\f234" +} + +.fa-ice-skate:before { + content: "\f7ac" +} + +.fa-check:before { + content: "\f00c" +} + +.fa-battery-4:before, +.fa-battery-three-quarters:before { + content: "\f241" +} + +.fa-tomato:before { + content: "\e330" +} + +.fa-sword-laser:before { + content: "\e03b" +} + +.fa-house-circle-check:before { + content: "\e509" +} + +.fa-buildings:before { + content: "\e0cc" +} + +.fa-angle-left:before { + content: "\f104" +} + +.fa-cart-flatbed-boxes:before, +.fa-dolly-flatbed-alt:before { + content: "\f475" +} + +.fa-diagram-successor:before { + content: "\e47a" +} + +.fa-truck-arrow-right:before { + content: "\e58b" +} + +.fa-square-w:before { + content: "\e285" +} + +.fa-arrows-split-up-and-left:before { + content: "\e4bc" +} + +.fa-lamp:before { + content: "\f4ca" +} + +.fa-airplay:before { + content: "\e089" +} + +.fa-fist-raised:before, +.fa-hand-fist:before { + content: "\f6de" +} + +.fa-shield-quartered:before { + content: "\e575" +} + +.fa-slash-forward:before { + content: "\2f" +} + +.fa-location-pen:before, +.fa-map-marker-edit:before { + content: "\f607" +} + +.fa-cloud-moon:before { + content: "\f6c3" +} + +.fa-pot-food:before { + content: "\e43f" +} + +.fa-briefcase:before { + content: "\f0b1" +} + +.fa-person-falling:before { + content: "\e546" +} + +.fa-image-portrait:before, +.fa-portrait:before { + content: "\f3e0" +} + +.fa-user-tag:before { + content: "\f507" +} + +.fa-rug:before { + content: "\e569" +} + +.fa-print-slash:before { + content: "\f686" +} + +.fa-earth-europe:before, +.fa-globe-europe:before { + content: "\f7a2" +} + +.fa-cart-flatbed-suitcase:before, +.fa-luggage-cart:before { + content: "\f59d" +} + +.fa-hand-back-point-ribbon:before { + content: "\e1a0" +} + +.fa-rectangle-times:before, +.fa-rectangle-xmark:before, +.fa-times-rectangle:before, +.fa-window-close:before { + content: "\f410" +} + +.fa-tire-rugged:before { + content: "\f634" +} + +.fa-lightbulb-dollar:before { + content: "\f670" +} + +.fa-cowbell:before { + content: "\f8b3" +} + +.fa-baht-sign:before { + content: "\e0ac" +} + +.fa-corner:before { + content: "\e3fe" +} + +.fa-chevron-double-right:before, +.fa-chevrons-right:before { + content: "\f324" +} + +.fa-book-open:before { + content: "\f518" +} + +.fa-book-journal-whills:before, +.fa-journal-whills:before { + content: "\f66a" +} + +.fa-inhaler:before { + content: "\f5f9" +} + +.fa-handcuffs:before { + content: "\e4f8" +} + +.fa-snake:before { + content: "\f716" +} + +.fa-exclamation-triangle:before, +.fa-triangle-exclamation:before, +.fa-warning:before { + content: "\f071" +} + +.fa-note-medical:before { + content: "\e200" +} + +.fa-database:before { + content: "\f1c0" +} + +.fa-down-left:before { + content: "\e16a" +} + +.fa-mail-forward:before, +.fa-share:before { + content: "\f064" +} + +.fa-face-thinking:before { + content: "\e39b" +} + +.fa-turn-down-right:before { + content: "\e455" +} + +.fa-bottle-droplet:before { + content: "\e4c4" +} + +.fa-mask-face:before { + content: "\e1d7" +} + +.fa-hill-rockslide:before { + content: "\e508" +} + +.fa-scanner-keyboard:before { + content: "\f489" +} + +.fa-circle-o:before { + content: "\e119" +} + +.fa-grid-horizontal:before { + content: "\e307" +} + +.fa-comment-alt-dollar:before, +.fa-message-dollar:before { + content: "\f650" +} + +.fa-exchange-alt:before, +.fa-right-left:before { + content: "\f362" +} + +.fa-columns-3:before { + content: "\e361" +} + +.fa-paper-plane:before { + content: "\f1d8" +} + +.fa-road-circle-exclamation:before { + content: "\e565" +} + +.fa-dungeon:before { + content: "\f6d9" +} + +.fa-hand-holding-box:before { + content: "\f47b" +} + +.fa-input-text:before { + content: "\e1bf" +} + +.fa-window-alt:before, +.fa-window-flip:before { + content: "\f40f" +} + +.fa-align-right:before { + content: "\f038" +} + +.fa-scanner-gun:before, +.fa-scanner:before { + content: "\f488" +} + +.fa-tire:before { + content: "\f631" +} + +.fa-engine:before { + content: "\e16e" +} + +.fa-money-bill-1-wave:before, +.fa-money-bill-wave-alt:before { + content: "\f53b" +} + +.fa-life-ring:before { + content: "\f1cd" +} + +.fa-hands:before, +.fa-sign-language:before, +.fa-signing:before { + content: "\f2a7" +} + +.fa-caret-circle-right:before, +.fa-circle-caret-right:before { + content: "\f330" +} + +.fa-turn-left:before { + content: "\e636" +} + +.fa-wheat:before { + content: "\f72d" +} + +.fa-file-spreadsheet:before { + content: "\f65b" +} + +.fa-audio-description-slash:before { + content: "\e0a8" +} + +.fa-bell-ring:before { + content: "\e62c" +} + +.fa-calendar-day:before { + content: "\f783" +} + +.fa-ladder-water:before, +.fa-swimming-pool:before, +.fa-water-ladder:before { + content: "\f5c5" +} + +.fa-arrows-up-down:before, +.fa-arrows-v:before { + content: "\f07d" +} + +.fa-chess-pawn-alt:before, +.fa-chess-pawn-piece:before { + content: "\f444" +} + +.fa-face-grimace:before, +.fa-grimace:before { + content: "\f57f" +} + +.fa-wheelchair-alt:before, +.fa-wheelchair-move:before { + content: "\e2ce" +} + +.fa-level-down-alt:before, +.fa-turn-down:before { + content: "\f3be" +} + +.fa-square-s:before { + content: "\e27d" +} + +.fa-barcode-alt:before, +.fa-rectangle-barcode:before { + content: "\f463" +} + +.fa-person-walking-arrow-right:before { + content: "\e552" +} + +.fa-envelope-square:before, +.fa-square-envelope:before { + content: "\f199" +} + +.fa-dice:before { + content: "\f522" +} + +.fa-unicorn:before { + content: "\f727" +} + +.fa-bowling-ball:before { + content: "\f436" +} + +.fa-pompebled:before { + content: "\e43d" +} + +.fa-brain:before { + content: "\f5dc" +} + +.fa-watch-smart:before { + content: "\e2cc" +} + +.fa-book-user:before { + content: "\f7e7" +} + +.fa-sensor-cloud:before, +.fa-sensor-smoke:before { + content: "\e02c" +} + +.fa-clapperboard-play:before { + content: "\e132" +} + +.fa-band-aid:before, +.fa-bandage:before { + content: "\f462" +} + +.fa-calendar-minus:before { + content: "\f272" +} + +.fa-circle-xmark:before, +.fa-times-circle:before, +.fa-xmark-circle:before { + content: "\f057" +} + +.fa-circle-4:before { + content: "\e0f1" +} + +.fa-gifts:before { + content: "\f79c" +} + +.fa-album-collection:before { + content: "\f8a0" +} + +.fa-hotel:before { + content: "\f594" +} + +.fa-earth-asia:before, +.fa-globe-asia:before { + content: "\f57e" +} + +.fa-id-card-alt:before, +.fa-id-card-clip:before { + content: "\f47f" +} + +.fa-magnifying-glass-plus:before, +.fa-search-plus:before { + content: "\f00e" +} + +.fa-thumbs-up:before { + content: "\f164" +} + +.fa-cloud-showers:before { + content: "\f73f" +} + +.fa-user-clock:before { + content: "\f4fd" +} + +.fa-onion:before { + content: "\e427" +} + +.fa-clock-twelve-thirty:before { + content: "\e359" +} + +.fa-arrow-down-to-dotted-line:before { + content: "\e095" +} + +.fa-allergies:before, +.fa-hand-dots:before { + content: "\f461" +} + +.fa-file-invoice:before { + content: "\f570" +} + +.fa-window-minimize:before { + content: "\f2d1" +} + +.fa-rectangle-wide:before { + content: "\f2fc" +} + +.fa-comment-arrow-up:before { + content: "\e144" +} + +.fa-garlic:before { + content: "\e40e" +} + +.fa-coffee:before, +.fa-mug-saucer:before { + content: "\f0f4" +} + +.fa-brush:before { + content: "\f55d" +} + +.fa-tree-decorated:before { + content: "\f7dc" +} + +.fa-mask:before { + content: "\f6fa" +} + +.fa-calendar-heart:before { + content: "\e0d3" +} + +.fa-magnifying-glass-minus:before, +.fa-search-minus:before { + content: "\f010" +} + +.fa-flower:before { + content: "\f7ff" +} + +.fa-arrow-down-from-arc:before { + content: "\e614" +} + +.fa-right-left-large:before { + content: "\e5e1" +} + +.fa-ruler-vertical:before { + content: "\f548" +} + +.fa-circles-overlap:before { + content: "\e600" +} + +.fa-user-alt:before, +.fa-user-large:before { + content: "\f406" +} + +.fa-starship-freighter:before { + content: "\e03a" +} + +.fa-train-tram:before { + content: "\e5b4" +} + +.fa-bridge-suspension:before { + content: "\e4cd" +} + +.fa-trash-check:before { + content: "\e2af" +} + +.fa-user-nurse:before { + content: "\f82f" +} + +.fa-boombox:before { + content: "\f8a5" +} + +.fa-syringe:before { + content: "\f48e" +} + +.fa-cloud-sun:before { + content: "\f6c4" +} + +.fa-shield-exclamation:before { + content: "\e247" +} + +.fa-stopwatch-20:before { + content: "\e06f" +} + +.fa-square-full:before { + content: "\f45c" +} + +.fa-grip-dots:before { + content: "\e410" +} + +.fa-comment-exclamation:before { + content: "\f4af" +} + +.fa-pen-swirl:before { + content: "\e214" +} + +.fa-falafel:before { + content: "\e40a" +} + +.fa-circle-2:before { + content: "\e0ef" +} + +.fa-magnet:before { + content: "\f076" +} + +.fa-jar:before { + content: "\e516" +} + +.fa-gramophone:before { + content: "\f8bd" +} + +.fa-dice-d12:before { + content: "\f6ce" +} + +.fa-note-sticky:before, +.fa-sticky-note:before { + content: "\f249" +} + +.fa-arrow-alt-down:before, +.fa-down:before { + content: "\f354" +} + +.fa-100:before, +.fa-hundred-points:before { + content: "\e41c" +} + +.fa-paperclip-vertical:before { + content: "\e3c2" +} + +.fa-wind-circle-exclamation:before, +.fa-wind-warning:before { + content: "\f776" +} + +.fa-location-pin-slash:before, +.fa-map-marker-slash:before { + content: "\f60c" +} + +.fa-face-sad-sweat:before { + content: "\e38a" +} + +.fa-bug-slash:before { + content: "\e490" +} + +.fa-cupcake:before { + content: "\e402" +} + +.fa-light-switch-off:before { + content: "\e018" +} + +.fa-toggle-large-off:before { + content: "\e5b0" +} + +.fa-pen-fancy-slash:before { + content: "\e210" +} + +.fa-truck-container:before { + content: "\f4dc" +} + +.fa-boot:before { + content: "\f782" +} + +.fa-arrow-up-from-water-pump:before { + content: "\e4b6" +} + +.fa-file-check:before { + content: "\f316" +} + +.fa-bone:before { + content: "\f5d7" +} + +.fa-cards-blank:before { + content: "\e4df" +} + +.fa-circle-3:before { + content: "\e0f0" +} + +.fa-bench-tree:before { + content: "\e2e7" +} + +.fa-keyboard-brightness-low:before { + content: "\e1c1" +} + +.fa-ski-boot-ski:before { + content: "\e3cd" +} + +.fa-brain-circuit:before { + content: "\e0c6" +} + +.fa-user-injured:before { + content: "\f728" +} + +.fa-block-brick-fire:before, +.fa-firewall:before { + content: "\e3dc" +} + +.fa-face-sad-tear:before, +.fa-sad-tear:before { + content: "\f5b4" +} + +.fa-plane:before { + content: "\f072" +} + +.fa-tent-arrows-down:before { + content: "\e581" +} + +.fa-exclamation:before { + content: "\21" +} + +.fa-arrows-spin:before { + content: "\e4bb" +} + +.fa-face-smile-relaxed:before { + content: "\e392" +} + +.fa-comment-times:before, +.fa-comment-xmark:before { + content: "\f4b5" +} + +.fa-print:before { + content: "\f02f" +} + +.fa-try:before, +.fa-turkish-lira-sign:before, +.fa-turkish-lira:before { + content: "\e2bb" +} + +.fa-face-nose-steam:before { + content: "\e382" +} + +.fa-circle-waveform-lines:before, +.fa-waveform-circle:before { + content: "\e12d" +} + +.fa-dollar-sign:before, +.fa-dollar:before, +.fa-usd:before { + content: "\24" +} + +.fa-ferris-wheel:before { + content: "\e174" +} + +.fa-computer-speaker:before { + content: "\f8b2" +} + +.fa-skull-cow:before { + content: "\f8de" +} + +.fa-x:before { + content: "\58" +} + +.fa-magnifying-glass-dollar:before, +.fa-search-dollar:before { + content: "\f688" +} + +.fa-users-cog:before, +.fa-users-gear:before { + content: "\f509" +} + +.fa-person-military-pointing:before { + content: "\e54a" +} + +.fa-bank:before, +.fa-building-columns:before, +.fa-institution:before, +.fa-museum:before, +.fa-university:before { + content: "\f19c" +} + +.fa-circle-t:before { + content: "\e124" +} + +.fa-sack:before { + content: "\f81c" +} + +.fa-grid-2:before { + content: "\e196" +} + +.fa-camera-cctv:before, +.fa-cctv:before { + content: "\f8ac" +} + +.fa-umbrella:before { + content: "\f0e9" +} + +.fa-trowel:before { + content: "\e589" +} + +.fa-horizontal-rule:before { + content: "\f86c" +} + +.fa-bed-alt:before, +.fa-bed-front:before { + content: "\f8f7" +} + +.fa-d:before { + content: "\44" +} + +.fa-stapler:before { + content: "\e5af" +} + +.fa-masks-theater:before, +.fa-theater-masks:before { + content: "\f630" +} + +.fa-file-gif:before { + content: "\e645" +} + +.fa-kip-sign:before { + content: "\e1c4" +} + +.fa-face-woozy:before { + content: "\e3a2" +} + +.fa-cloud-question:before { + content: "\e492" +} + +.fa-pineapple:before { + content: "\e31f" +} + +.fa-hand-point-left:before { + content: "\f0a5" +} + +.fa-gallery-thumbnails:before { + content: "\e3aa" +} + +.fa-circle-j:before { + content: "\e112" +} + +.fa-eyes:before { + content: "\e367" +} + +.fa-handshake-alt:before, +.fa-handshake-simple:before { + content: "\f4c6" +} + +.fa-file-caret-up:before, +.fa-page-caret-up:before { + content: "\e42a" +} + +.fa-fighter-jet:before, +.fa-jet-fighter:before { + content: "\f0fb" +} + +.fa-comet:before { + content: "\e003" +} + +.fa-share-alt-square:before, +.fa-square-share-nodes:before { + content: "\f1e1" +} + +.fa-reflect-vertical:before { + content: "\e665" +} + +.fa-shield-keyhole:before { + content: "\e248" +} + +.fa-file-mp4:before { + content: "\e649" +} + +.fa-barcode:before { + content: "\f02a" +} + +.fa-bulldozer:before { + content: "\e655" +} + +.fa-plus-minus:before { + content: "\e43c" +} + +.fa-sliders-v-square:before, +.fa-square-sliders-vertical:before { + content: "\f3f2" +} + +.fa-video-camera:before, +.fa-video:before { + content: "\f03d" +} + +.fa-comment-middle-alt:before, +.fa-message-middle:before { + content: "\e1e1" +} + +.fa-graduation-cap:before, +.fa-mortar-board:before { + content: "\f19d" +} + +.fa-hand-holding-medical:before { + content: "\e05c" +} + +.fa-person-circle-check:before { + content: "\e53e" +} + +.fa-square-z:before { + content: "\e288" +} + +.fa-comment-alt-text:before, +.fa-message-text:before { + content: "\e1e6" +} + +.fa-level-up-alt:before, +.fa-turn-up:before { + content: "\f3bf" +} + +.fa-sr-only, +.fa-sr-only-focusable:not(:focus), +.sr-only, +.sr-only-focusable:not(:focus) { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0 +} + +:host, +:root { + --fa-style-family-brands: "Font Awesome 6 Brands"; + --fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands" +} + +@font-face { + font-family: "Font Awesome 6 Brands"; + font-style: normal; + font-weight: 400; + font-display: block; + src: url(../webfonts/fa-brands-400.woff2) format("woff2"), url(../webfonts/fa-brands-400.ttf) format("truetype") +} + +.fa-brands, +.fab { + font-weight: 400 +} + +.fa-monero:before { + content: "\f3d0" +} + +.fa-hooli:before { + content: "\f427" +} + +.fa-yelp:before { + content: "\f1e9" +} + +.fa-cc-visa:before { + content: "\f1f0" +} + +.fa-lastfm:before { + content: "\f202" +} + +.fa-shopware:before { + content: "\f5b5" +} + +.fa-creative-commons-nc:before { + content: "\f4e8" +} + +.fa-aws:before { + content: "\f375" +} + +.fa-redhat:before { + content: "\f7bc" +} + +.fa-yoast:before { + content: "\f2b1" +} + +.fa-cloudflare:before { + content: "\e07d" +} + +.fa-ups:before { + content: "\f7e0" +} + +.fa-pixiv:before { + content: "\e640" +} + +.fa-wpexplorer:before { + content: "\f2de" +} + +.fa-dyalog:before { + content: "\f399" +} + +.fa-bity:before { + content: "\f37a" +} + +.fa-stackpath:before { + content: "\f842" +} + +.fa-buysellads:before { + content: "\f20d" +} + +.fa-first-order:before { + content: "\f2b0" +} + +.fa-modx:before { + content: "\f285" +} + +.fa-guilded:before { + content: "\e07e" +} + +.fa-vnv:before { + content: "\f40b" +} + +.fa-js-square:before, +.fa-square-js:before { + content: "\f3b9" +} + +.fa-microsoft:before { + content: "\f3ca" +} + +.fa-qq:before { + content: "\f1d6" +} + +.fa-orcid:before { + content: "\f8d2" +} + +.fa-java:before { + content: "\f4e4" +} + +.fa-invision:before { + content: "\f7b0" +} + +.fa-creative-commons-pd-alt:before { + content: "\f4ed" +} + +.fa-centercode:before { + content: "\f380" +} + +.fa-glide-g:before { + content: "\f2a6" +} + +.fa-drupal:before { + content: "\f1a9" +} + +.fa-hire-a-helper:before { + content: "\f3b0" +} + +.fa-creative-commons-by:before { + content: "\f4e7" +} + +.fa-unity:before { + content: "\e049" +} + +.fa-whmcs:before { + content: "\f40d" +} + +.fa-rocketchat:before { + content: "\f3e8" +} + +.fa-vk:before { + content: "\f189" +} + +.fa-untappd:before { + content: "\f405" +} + +.fa-mailchimp:before { + content: "\f59e" +} + +.fa-css3-alt:before { + content: "\f38b" +} + +.fa-reddit-square:before, +.fa-square-reddit:before { + content: "\f1a2" +} + +.fa-vimeo-v:before { + content: "\f27d" +} + +.fa-contao:before { + content: "\f26d" +} + +.fa-square-font-awesome:before { + content: "\e5ad" +} + +.fa-deskpro:before { + content: "\f38f" +} + +.fa-brave:before { + content: "\e63c" +} + +.fa-sistrix:before { + content: "\f3ee" +} + +.fa-instagram-square:before, +.fa-square-instagram:before { + content: "\e055" +} + +.fa-battle-net:before { + content: "\f835" +} + +.fa-the-red-yeti:before { + content: "\f69d" +} + +.fa-hacker-news-square:before, +.fa-square-hacker-news:before { + content: "\f3af" +} + +.fa-edge:before { + content: "\f282" +} + +.fa-threads:before { + content: "\e618" +} + +.fa-napster:before { + content: "\f3d2" +} + +.fa-snapchat-square:before, +.fa-square-snapchat:before { + content: "\f2ad" +} + +.fa-google-plus-g:before { + content: "\f0d5" +} + +.fa-artstation:before { + content: "\f77a" +} + +.fa-markdown:before { + content: "\f60f" +} + +.fa-sourcetree:before { + content: "\f7d3" +} + +.fa-google-plus:before { + content: "\f2b3" +} + +.fa-diaspora:before { + content: "\f791" +} + +.fa-foursquare:before { + content: "\f180" +} + +.fa-stack-overflow:before { + content: "\f16c" +} + +.fa-github-alt:before { + content: "\f113" +} + +.fa-phoenix-squadron:before { + content: "\f511" +} + +.fa-pagelines:before { + content: "\f18c" +} + +.fa-algolia:before { + content: "\f36c" +} + +.fa-red-river:before { + content: "\f3e3" +} + +.fa-creative-commons-sa:before { + content: "\f4ef" +} + +.fa-safari:before { + content: "\f267" +} + +.fa-google:before { + content: "\f1a0" +} + +.fa-font-awesome-alt:before, +.fa-square-font-awesome-stroke:before { + content: "\f35c" +} + +.fa-atlassian:before { + content: "\f77b" +} + +.fa-linkedin-in:before { + content: "\f0e1" +} + +.fa-digital-ocean:before { + content: "\f391" +} + +.fa-nimblr:before { + content: "\f5a8" +} + +.fa-chromecast:before { + content: "\f838" +} + +.fa-evernote:before { + content: "\f839" +} + +.fa-hacker-news:before { + content: "\f1d4" +} + +.fa-creative-commons-sampling:before { + content: "\f4f0" +} + +.fa-adversal:before { + content: "\f36a" +} + +.fa-creative-commons:before { + content: "\f25e" +} + +.fa-watchman-monitoring:before { + content: "\e087" +} + +.fa-fonticons:before { + content: "\f280" +} + +.fa-weixin:before { + content: "\f1d7" +} + +.fa-shirtsinbulk:before { + content: "\f214" +} + +.fa-codepen:before { + content: "\f1cb" +} + +.fa-git-alt:before { + content: "\f841" +} + +.fa-lyft:before { + content: "\f3c3" +} + +.fa-rev:before { + content: "\f5b2" +} + +.fa-windows:before { + content: "\f17a" +} + +.fa-wizards-of-the-coast:before { + content: "\f730" +} + +.fa-square-viadeo:before, +.fa-viadeo-square:before { + content: "\f2aa" +} + +.fa-meetup:before { + content: "\f2e0" +} + +.fa-centos:before { + content: "\f789" +} + +.fa-adn:before { + content: "\f170" +} + +.fa-cloudsmith:before { + content: "\f384" +} + +.fa-opensuse:before { + content: "\e62b" +} + +.fa-pied-piper-alt:before { + content: "\f1a8" +} + +.fa-dribbble-square:before, +.fa-square-dribbble:before { + content: "\f397" +} + +.fa-codiepie:before { + content: "\f284" +} + +.fa-node:before { + content: "\f419" +} + +.fa-mix:before { + content: "\f3cb" +} + +.fa-steam:before { + content: "\f1b6" +} + +.fa-cc-apple-pay:before { + content: "\f416" +} + +.fa-scribd:before { + content: "\f28a" +} + +.fa-debian:before { + content: "\e60b" +} + +.fa-openid:before { + content: "\f19b" +} + +.fa-instalod:before { + content: "\e081" +} + +.fa-expeditedssl:before { + content: "\f23e" +} + +.fa-sellcast:before { + content: "\f2da" +} + +.fa-square-twitter:before, +.fa-twitter-square:before { + content: "\f081" +} + +.fa-r-project:before { + content: "\f4f7" +} + +.fa-delicious:before { + content: "\f1a5" +} + +.fa-freebsd:before { + content: "\f3a4" +} + +.fa-vuejs:before { + content: "\f41f" +} + +.fa-accusoft:before { + content: "\f369" +} + +.fa-ioxhost:before { + content: "\f208" +} + +.fa-fonticons-fi:before { + content: "\f3a2" +} + +.fa-app-store:before { + content: "\f36f" +} + +.fa-cc-mastercard:before { + content: "\f1f1" +} + +.fa-itunes-note:before { + content: "\f3b5" +} + +.fa-golang:before { + content: "\e40f" +} + +.fa-kickstarter:before { + content: "\f3bb" +} + +.fa-grav:before { + content: "\f2d6" +} + +.fa-weibo:before { + content: "\f18a" +} + +.fa-uncharted:before { + content: "\e084" +} + +.fa-firstdraft:before { + content: "\f3a1" +} + +.fa-square-youtube:before, +.fa-youtube-square:before { + content: "\f431" +} + +.fa-wikipedia-w:before { + content: "\f266" +} + +.fa-rendact:before, +.fa-wpressr:before { + content: "\f3e4" +} + +.fa-angellist:before { + content: "\f209" +} + +.fa-galactic-republic:before { + content: "\f50c" +} + +.fa-nfc-directional:before { + content: "\e530" +} + +.fa-skype:before { + content: "\f17e" +} + +.fa-joget:before { + content: "\f3b7" +} + +.fa-fedora:before { + content: "\f798" +} + +.fa-stripe-s:before { + content: "\f42a" +} + +.fa-meta:before { + content: "\e49b" +} + +.fa-laravel:before { + content: "\f3bd" +} + +.fa-hotjar:before { + content: "\f3b1" +} + +.fa-bluetooth-b:before { + content: "\f294" +} + +.fa-square-letterboxd:before { + content: "\e62e" +} + +.fa-sticker-mule:before { + content: "\f3f7" +} + +.fa-creative-commons-zero:before { + content: "\f4f3" +} + +.fa-hips:before { + content: "\f452" +} + +.fa-behance:before { + content: "\f1b4" +} + +.fa-reddit:before { + content: "\f1a1" +} + +.fa-discord:before { + content: "\f392" +} + +.fa-chrome:before { + content: "\f268" +} + +.fa-app-store-ios:before { + content: "\f370" +} + +.fa-cc-discover:before { + content: "\f1f2" +} + +.fa-wpbeginner:before { + content: "\f297" +} + +.fa-confluence:before { + content: "\f78d" +} + +.fa-shoelace:before { + content: "\e60c" +} + +.fa-mdb:before { + content: "\f8ca" +} + +.fa-dochub:before { + content: "\f394" +} + +.fa-accessible-icon:before { + content: "\f368" +} + +.fa-ebay:before { + content: "\f4f4" +} + +.fa-amazon:before { + content: "\f270" +} + +.fa-unsplash:before { + content: "\e07c" +} + +.fa-yarn:before { + content: "\f7e3" +} + +.fa-square-steam:before, +.fa-steam-square:before { + content: "\f1b7" +} + +.fa-500px:before { + content: "\f26e" +} + +.fa-square-vimeo:before, +.fa-vimeo-square:before { + content: "\f194" +} + +.fa-asymmetrik:before { + content: "\f372" +} + +.fa-font-awesome-flag:before, +.fa-font-awesome-logo-full:before, +.fa-font-awesome:before { + content: "\f2b4" +} + +.fa-gratipay:before { + content: "\f184" +} + +.fa-apple:before { + content: "\f179" +} + +.fa-hive:before { + content: "\e07f" +} + +.fa-gitkraken:before { + content: "\f3a6" +} + +.fa-keybase:before { + content: "\f4f5" +} + +.fa-apple-pay:before { + content: "\f415" +} + +.fa-padlet:before { + content: "\e4a0" +} + +.fa-amazon-pay:before { + content: "\f42c" +} + +.fa-github-square:before, +.fa-square-github:before { + content: "\f092" +} + +.fa-stumbleupon:before { + content: "\f1a4" +} + +.fa-fedex:before { + content: "\f797" +} + +.fa-phoenix-framework:before { + content: "\f3dc" +} + +.fa-shopify:before { + content: "\e057" +} + +.fa-neos:before { + content: "\f612" +} + +.fa-square-threads:before { + content: "\e619" +} + +.fa-hackerrank:before { + content: "\f5f7" +} + +.fa-researchgate:before { + content: "\f4f8" +} + +.fa-swift:before { + content: "\f8e1" +} + +.fa-angular:before { + content: "\f420" +} + +.fa-speakap:before { + content: "\f3f3" +} + +.fa-angrycreative:before { + content: "\f36e" +} + +.fa-y-combinator:before { + content: "\f23b" +} + +.fa-empire:before { + content: "\f1d1" +} + +.fa-envira:before { + content: "\f299" +} + +.fa-google-scholar:before { + content: "\e63b" +} + +.fa-gitlab-square:before, +.fa-square-gitlab:before { + content: "\e5ae" +} + +.fa-studiovinari:before { + content: "\f3f8" +} + +.fa-pied-piper:before { + content: "\f2ae" +} + +.fa-wordpress:before { + content: "\f19a" +} + +.fa-product-hunt:before { + content: "\f288" +} + +.fa-firefox:before { + content: "\f269" +} + +.fa-linode:before { + content: "\f2b8" +} + +.fa-goodreads:before { + content: "\f3a8" +} + +.fa-odnoklassniki-square:before, +.fa-square-odnoklassniki:before { + content: "\f264" +} + +.fa-jsfiddle:before { + content: "\f1cc" +} + +.fa-sith:before { + content: "\f512" +} + +.fa-themeisle:before { + content: "\f2b2" +} + +.fa-page4:before { + content: "\f3d7" +} + +.fa-hashnode:before { + content: "\e499" +} + +.fa-react:before { + content: "\f41b" +} + +.fa-cc-paypal:before { + content: "\f1f4" +} + +.fa-squarespace:before { + content: "\f5be" +} + +.fa-cc-stripe:before { + content: "\f1f5" +} + +.fa-creative-commons-share:before { + content: "\f4f2" +} + +.fa-bitcoin:before { + content: "\f379" +} + +.fa-keycdn:before { + content: "\f3ba" +} + +.fa-opera:before { + content: "\f26a" +} + +.fa-itch-io:before { + content: "\f83a" +} + +.fa-umbraco:before { + content: "\f8e8" +} + +.fa-galactic-senate:before { + content: "\f50d" +} + +.fa-ubuntu:before { + content: "\f7df" +} + +.fa-draft2digital:before { + content: "\f396" +} + +.fa-stripe:before { + content: "\f429" +} + +.fa-houzz:before { + content: "\f27c" +} + +.fa-gg:before { + content: "\f260" +} + +.fa-dhl:before { + content: "\f790" +} + +.fa-pinterest-square:before, +.fa-square-pinterest:before { + content: "\f0d3" +} + +.fa-xing:before { + content: "\f168" +} + +.fa-blackberry:before { + content: "\f37b" +} + +.fa-creative-commons-pd:before { + content: "\f4ec" +} + +.fa-playstation:before { + content: "\f3df" +} + +.fa-quinscape:before { + content: "\f459" +} + +.fa-less:before { + content: "\f41d" +} + +.fa-blogger-b:before { + content: "\f37d" +} + +.fa-opencart:before { + content: "\f23d" +} + +.fa-vine:before { + content: "\f1ca" +} + +.fa-signal-messenger:before { + content: "\e663" +} + +.fa-paypal:before { + content: "\f1ed" +} + +.fa-gitlab:before { + content: "\f296" +} + +.fa-typo3:before { + content: "\f42b" +} + +.fa-reddit-alien:before { + content: "\f281" +} + +.fa-yahoo:before { + content: "\f19e" +} + +.fa-dailymotion:before { + content: "\e052" +} + +.fa-affiliatetheme:before { + content: "\f36b" +} + +.fa-pied-piper-pp:before { + content: "\f1a7" +} + +.fa-bootstrap:before { + content: "\f836" +} + +.fa-odnoklassniki:before { + content: "\f263" +} + +.fa-nfc-symbol:before { + content: "\e531" +} + +.fa-mintbit:before { + content: "\e62f" +} + +.fa-ethereum:before { + content: "\f42e" +} + +.fa-speaker-deck:before { + content: "\f83c" +} + +.fa-creative-commons-nc-eu:before { + content: "\f4e9" +} + +.fa-patreon:before { + content: "\f3d9" +} + +.fa-avianex:before { + content: "\f374" +} + +.fa-ello:before { + content: "\f5f1" +} + +.fa-gofore:before { + content: "\f3a7" +} + +.fa-bimobject:before { + content: "\f378" +} + +.fa-brave-reverse:before { + content: "\e63d" +} + +.fa-facebook-f:before { + content: "\f39e" +} + +.fa-google-plus-square:before, +.fa-square-google-plus:before { + content: "\f0d4" +} + +.fa-mandalorian:before { + content: "\f50f" +} + +.fa-first-order-alt:before { + content: "\f50a" +} + +.fa-osi:before { + content: "\f41a" +} + +.fa-google-wallet:before { + content: "\f1ee" +} + +.fa-d-and-d-beyond:before { + content: "\f6ca" +} + +.fa-periscope:before { + content: "\f3da" +} + +.fa-fulcrum:before { + content: "\f50b" +} + +.fa-cloudscale:before { + content: "\f383" +} + +.fa-forumbee:before { + content: "\f211" +} + +.fa-mizuni:before { + content: "\f3cc" +} + +.fa-schlix:before { + content: "\f3ea" +} + +.fa-square-xing:before, +.fa-xing-square:before { + content: "\f169" +} + +.fa-bandcamp:before { + content: "\f2d5" +} + +.fa-wpforms:before { + content: "\f298" +} + +.fa-cloudversify:before { + content: "\f385" +} + +.fa-usps:before { + content: "\f7e1" +} + +.fa-megaport:before { + content: "\f5a3" +} + +.fa-magento:before { + content: "\f3c4" +} + +.fa-spotify:before { + content: "\f1bc" +} + +.fa-optin-monster:before { + content: "\f23c" +} + +.fa-fly:before { + content: "\f417" +} + +.fa-aviato:before { + content: "\f421" +} + +.fa-itunes:before { + content: "\f3b4" +} + +.fa-cuttlefish:before { + content: "\f38c" +} + +.fa-blogger:before { + content: "\f37c" +} + +.fa-flickr:before { + content: "\f16e" +} + +.fa-viber:before { + content: "\f409" +} + +.fa-soundcloud:before { + content: "\f1be" +} + +.fa-digg:before { + content: "\f1a6" +} + +.fa-tencent-weibo:before { + content: "\f1d5" +} + +.fa-letterboxd:before { + content: "\e62d" +} + +.fa-symfony:before { + content: "\f83d" +} + +.fa-maxcdn:before { + content: "\f136" +} + +.fa-etsy:before { + content: "\f2d7" +} + +.fa-facebook-messenger:before { + content: "\f39f" +} + +.fa-audible:before { + content: "\f373" +} + +.fa-think-peaks:before { + content: "\f731" +} + +.fa-bilibili:before { + content: "\e3d9" +} + +.fa-erlang:before { + content: "\f39d" +} + +.fa-x-twitter:before { + content: "\e61b" +} + +.fa-cotton-bureau:before { + content: "\f89e" +} + +.fa-dashcube:before { + content: "\f210" +} + +.fa-42-group:before, +.fa-innosoft:before { + content: "\e080" +} + +.fa-stack-exchange:before { + content: "\f18d" +} + +.fa-elementor:before { + content: "\f430" +} + +.fa-pied-piper-square:before, +.fa-square-pied-piper:before { + content: "\e01e" +} + +.fa-creative-commons-nd:before { + content: "\f4eb" +} + +.fa-palfed:before { + content: "\f3d8" +} + +.fa-superpowers:before { + content: "\f2dd" +} + +.fa-resolving:before { + content: "\f3e7" +} + +.fa-xbox:before { + content: "\f412" +} + +.fa-searchengin:before { + content: "\f3eb" +} + +.fa-tiktok:before { + content: "\e07b" +} + +.fa-facebook-square:before, +.fa-square-facebook:before { + content: "\f082" +} + +.fa-renren:before { + content: "\f18b" +} + +.fa-linux:before { + content: "\f17c" +} + +.fa-glide:before { + content: "\f2a5" +} + +.fa-linkedin:before { + content: "\f08c" +} + +.fa-hubspot:before { + content: "\f3b2" +} + +.fa-deploydog:before { + content: "\f38e" +} + +.fa-twitch:before { + content: "\f1e8" +} + +.fa-ravelry:before { + content: "\f2d9" +} + +.fa-mixer:before { + content: "\e056" +} + +.fa-lastfm-square:before, +.fa-square-lastfm:before { + content: "\f203" +} + +.fa-vimeo:before { + content: "\f40a" +} + +.fa-mendeley:before { + content: "\f7b3" +} + +.fa-uniregistry:before { + content: "\f404" +} + +.fa-figma:before { + content: "\f799" +} + +.fa-creative-commons-remix:before { + content: "\f4ee" +} + +.fa-cc-amazon-pay:before { + content: "\f42d" +} + +.fa-dropbox:before { + content: "\f16b" +} + +.fa-instagram:before { + content: "\f16d" +} + +.fa-cmplid:before { + content: "\e360" +} + +.fa-upwork:before { + content: "\e641" +} + +.fa-facebook:before { + content: "\f09a" +} + +.fa-gripfire:before { + content: "\f3ac" +} + +.fa-jedi-order:before { + content: "\f50e" +} + +.fa-uikit:before { + content: "\f403" +} + +.fa-fort-awesome-alt:before { + content: "\f3a3" +} + +.fa-phabricator:before { + content: "\f3db" +} + +.fa-ussunnah:before { + content: "\f407" +} + +.fa-earlybirds:before { + content: "\f39a" +} + +.fa-trade-federation:before { + content: "\f513" +} + +.fa-autoprefixer:before { + content: "\f41c" +} + +.fa-whatsapp:before { + content: "\f232" +} + +.fa-slideshare:before { + content: "\f1e7" +} + +.fa-google-play:before { + content: "\f3ab" +} + +.fa-viadeo:before { + content: "\f2a9" +} + +.fa-line:before { + content: "\f3c0" +} + +.fa-google-drive:before { + content: "\f3aa" +} + +.fa-servicestack:before { + content: "\f3ec" +} + +.fa-simplybuilt:before { + content: "\f215" +} + +.fa-bitbucket:before { + content: "\f171" +} + +.fa-imdb:before { + content: "\f2d8" +} + +.fa-deezer:before { + content: "\e077" +} + +.fa-raspberry-pi:before { + content: "\f7bb" +} + +.fa-jira:before { + content: "\f7b1" +} + +.fa-docker:before { + content: "\f395" +} + +.fa-screenpal:before { + content: "\e570" +} + +.fa-bluetooth:before { + content: "\f293" +} + +.fa-gitter:before { + content: "\f426" +} + +.fa-d-and-d:before { + content: "\f38d" +} + +.fa-microblog:before { + content: "\e01a" +} + +.fa-cc-diners-club:before { + content: "\f24c" +} + +.fa-gg-circle:before { + content: "\f261" +} + +.fa-pied-piper-hat:before { + content: "\f4e5" +} + +.fa-kickstarter-k:before { + content: "\f3bc" +} + +.fa-yandex:before { + content: "\f413" +} + +.fa-readme:before { + content: "\f4d5" +} + +.fa-html5:before { + content: "\f13b" +} + +.fa-sellsy:before { + content: "\f213" +} + +.fa-sass:before { + content: "\f41e" +} + +.fa-wirsindhandwerk:before, +.fa-wsh:before { + content: "\e2d0" +} + +.fa-buromobelexperte:before { + content: "\f37f" +} + +.fa-salesforce:before { + content: "\f83b" +} + +.fa-octopus-deploy:before { + content: "\e082" +} + +.fa-medapps:before { + content: "\f3c6" +} + +.fa-ns8:before { + content: "\f3d5" +} + +.fa-pinterest-p:before { + content: "\f231" +} + +.fa-apper:before { + content: "\f371" +} + +.fa-fort-awesome:before { + content: "\f286" +} + +.fa-waze:before { + content: "\f83f" +} + +.fa-cc-jcb:before { + content: "\f24b" +} + +.fa-snapchat-ghost:before, +.fa-snapchat:before { + content: "\f2ab" +} + +.fa-fantasy-flight-games:before { + content: "\f6dc" +} + +.fa-rust:before { + content: "\e07a" +} + +.fa-wix:before { + content: "\f5cf" +} + +.fa-behance-square:before, +.fa-square-behance:before { + content: "\f1b5" +} + +.fa-supple:before { + content: "\f3f9" +} + +.fa-webflow:before { + content: "\e65c" +} + +.fa-rebel:before { + content: "\f1d0" +} + +.fa-css3:before { + content: "\f13c" +} + +.fa-staylinked:before { + content: "\f3f5" +} + +.fa-kaggle:before { + content: "\f5fa" +} + +.fa-space-awesome:before { + content: "\e5ac" +} + +.fa-deviantart:before { + content: "\f1bd" +} + +.fa-cpanel:before { + content: "\f388" +} + +.fa-goodreads-g:before { + content: "\f3a9" +} + +.fa-git-square:before, +.fa-square-git:before { + content: "\f1d2" +} + +.fa-square-tumblr:before, +.fa-tumblr-square:before { + content: "\f174" +} + +.fa-trello:before { + content: "\f181" +} + +.fa-creative-commons-nc-jp:before { + content: "\f4ea" +} + +.fa-get-pocket:before { + content: "\f265" +} + +.fa-perbyte:before { + content: "\e083" +} + +.fa-grunt:before { + content: "\f3ad" +} + +.fa-weebly:before { + content: "\f5cc" +} + +.fa-connectdevelop:before { + content: "\f20e" +} + +.fa-leanpub:before { + content: "\f212" +} + +.fa-black-tie:before { + content: "\f27e" +} + +.fa-themeco:before { + content: "\f5c6" +} + +.fa-python:before { + content: "\f3e2" +} + +.fa-android:before { + content: "\f17b" +} + +.fa-bots:before { + content: "\e340" +} + +.fa-free-code-camp:before { + content: "\f2c5" +} + +.fa-hornbill:before { + content: "\f592" +} + +.fa-js:before { + content: "\f3b8" +} + +.fa-ideal:before { + content: "\e013" +} + +.fa-git:before { + content: "\f1d3" +} + +.fa-dev:before { + content: "\f6cc" +} + +.fa-sketch:before { + content: "\f7c6" +} + +.fa-yandex-international:before { + content: "\f414" +} + +.fa-cc-amex:before { + content: "\f1f3" +} + +.fa-uber:before { + content: "\f402" +} + +.fa-github:before { + content: "\f09b" +} + +.fa-php:before { + content: "\f457" +} + +.fa-alipay:before { + content: "\f642" +} + +.fa-youtube:before { + content: "\f167" +} + +.fa-skyatlas:before { + content: "\f216" +} + +.fa-firefox-browser:before { + content: "\e007" +} + +.fa-replyd:before { + content: "\f3e6" +} + +.fa-suse:before { + content: "\f7d6" +} + +.fa-jenkins:before { + content: "\f3b6" +} + +.fa-twitter:before { + content: "\f099" +} + +.fa-rockrms:before { + content: "\f3e9" +} + +.fa-pinterest:before { + content: "\f0d2" +} + +.fa-buffer:before { + content: "\f837" +} + +.fa-npm:before { + content: "\f3d4" +} + +.fa-yammer:before { + content: "\f840" +} + +.fa-btc:before { + content: "\f15a" +} + +.fa-dribbble:before { + content: "\f17d" +} + +.fa-stumbleupon-circle:before { + content: "\f1a3" +} + +.fa-internet-explorer:before { + content: "\f26b" +} + +.fa-stubber:before { + content: "\e5c7" +} + +.fa-telegram-plane:before, +.fa-telegram:before { + content: "\f2c6" +} + +.fa-old-republic:before { + content: "\f510" +} + +.fa-odysee:before { + content: "\e5c6" +} + +.fa-square-whatsapp:before, +.fa-whatsapp-square:before { + content: "\f40c" +} + +.fa-node-js:before { + content: "\f3d3" +} + +.fa-edge-legacy:before { + content: "\e078" +} + +.fa-slack-hash:before, +.fa-slack:before { + content: "\f198" +} + +.fa-medrt:before { + content: "\f3c8" +} + +.fa-usb:before { + content: "\f287" +} + +.fa-tumblr:before { + content: "\f173" +} + +.fa-vaadin:before { + content: "\f408" +} + +.fa-quora:before { + content: "\f2c4" +} + +.fa-square-x-twitter:before { + content: "\e61a" +} + +.fa-reacteurope:before { + content: "\f75d" +} + +.fa-medium-m:before, +.fa-medium:before { + content: "\f23a" +} + +.fa-amilia:before { + content: "\f36d" +} + +.fa-mixcloud:before { + content: "\f289" +} + +.fa-flipboard:before { + content: "\f44d" +} + +.fa-viacoin:before { + content: "\f237" +} + +.fa-critical-role:before { + content: "\f6c9" +} + +.fa-sitrox:before { + content: "\e44a" +} + +.fa-discourse:before { + content: "\f393" +} + +.fa-joomla:before { + content: "\f1aa" +} + +.fa-mastodon:before { + content: "\f4f6" +} + +.fa-airbnb:before { + content: "\f834" +} + +.fa-wolf-pack-battalion:before { + content: "\f514" +} + +.fa-buy-n-large:before { + content: "\f8a6" +} + +.fa-gulp:before { + content: "\f3ae" +} + +.fa-creative-commons-sampling-plus:before { + content: "\f4f1" +} + +.fa-strava:before { + content: "\f428" +} + +.fa-ember:before { + content: "\f423" +} + +.fa-canadian-maple-leaf:before { + content: "\f785" +} + +.fa-teamspeak:before { + content: "\f4f9" +} + +.fa-pushed:before { + content: "\f3e1" +} + +.fa-wordpress-simple:before { + content: "\f411" +} + +.fa-nutritionix:before { + content: "\f3d6" +} + +.fa-wodu:before { + content: "\e088" +} + +.fa-google-pay:before { + content: "\e079" +} + +.fa-intercom:before { + content: "\f7af" +} + +.fa-zhihu:before { + content: "\f63f" +} + +.fa-korvue:before { + content: "\f42f" +} + +.fa-pix:before { + content: "\e43a" +} + +.fa-steam-symbol:before { + content: "\f3f6" +} + +:host, +:root { + --fa-style-family-duotone: "Font Awesome 6 Duotone"; + --fa-font-duotone: normal 900 1em/1 "Font Awesome 6 Duotone" +} + +@font-face { + font-family: "Font Awesome 6 Duotone"; + font-style: normal; + font-weight: 900; + font-display: block; + src: url(../webfonts/fa-duotone-900.woff2) format("woff2"), url(../webfonts/fa-duotone-900.ttf) format("truetype") +} + +.fa-duotone, +.fad { + position: relative; + font-weight: 900; + letter-spacing: normal +} + +.fa-duotone:before, +.fad:before { + position: absolute; + color: var(--fa-primary-color, inherit); + opacity: var(--fa-primary-opacity, 1) +} + +.fa-duotone:after, +.fad:after { + color: var(--fa-secondary-color, inherit) +} + +.fa-duotone.fa-swap-opacity:before, +.fa-duotone:after, +.fa-swap-opacity .fa-duotone:before, +.fa-swap-opacity .fad:before, +.fad.fa-swap-opacity:before, +.fad:after { + opacity: var(--fa-secondary-opacity, .4) +} + +.fa-duotone.fa-swap-opacity:after, +.fa-swap-opacity .fa-duotone:after, +.fa-swap-opacity .fad:after, +.fad.fa-swap-opacity:after { + opacity: var(--fa-primary-opacity, 1) +} + +.fa-duotone.fa-inverse, +.fad.fa-inverse { + color: var(--fa-inverse, #fff) +} + +.fa-duotone.fa-stack-1x, +.fa-duotone.fa-stack-2x, +.fad.fa-stack-1x, +.fad.fa-stack-2x { + position: absolute +} + +.fa-duotone.fa-0:after, +.fad.fa-0:after { + content: "\30\30" +} + +.fa-duotone.fa-1:after, +.fad.fa-1:after { + content: "\31\31" +} + +.fa-duotone.fa-2:after, +.fad.fa-2:after { + content: "\32\32" +} + +.fa-duotone.fa-3:after, +.fad.fa-3:after { + content: "\33\33" +} + +.fa-duotone.fa-4:after, +.fad.fa-4:after { + content: "\34\34" +} + +.fa-duotone.fa-5:after, +.fad.fa-5:after { + content: "\35\35" +} + +.fa-duotone.fa-6:after, +.fad.fa-6:after { + content: "\36\36" +} + +.fa-duotone.fa-7:after, +.fad.fa-7:after { + content: "\37\37" +} + +.fa-duotone.fa-8:after, +.fad.fa-8:after { + content: "\38\38" +} + +.fa-duotone.fa-9:after, +.fad.fa-9:after { + content: "\39\39" +} + +.fa-duotone.fa-fill-drip:after, +.fad.fa-fill-drip:after { + content: "\f576\f576" +} + +.fa-duotone.fa-arrows-to-circle:after, +.fad.fa-arrows-to-circle:after { + content: "\e4bd\e4bd" +} + +.fa-duotone.fa-chevron-circle-right:after, +.fa-duotone.fa-circle-chevron-right:after, +.fad.fa-chevron-circle-right:after, +.fad.fa-circle-chevron-right:after { + content: "\f138\f138" +} + +.fa-duotone.fa-wagon-covered:after, +.fad.fa-wagon-covered:after { + content: "\f8ee\f8ee" +} + +.fa-duotone.fa-line-height:after, +.fad.fa-line-height:after { + content: "\f871\f871" +} + +.fa-duotone.fa-bagel:after, +.fad.fa-bagel:after { + content: "\e3d7\e3d7" +} + +.fa-duotone.fa-transporter-7:after, +.fad.fa-transporter-7:after { + content: "\e2a8\e2a8" +} + +.fa-duotone.fa-at:after, +.fad.fa-at:after { + content: "\40\40" +} + +.fa-duotone.fa-rectangles-mixed:after, +.fad.fa-rectangles-mixed:after { + content: "\e323\e323" +} + +.fa-duotone.fa-phone-arrow-up-right:after, +.fa-duotone.fa-phone-arrow-up:after, +.fa-duotone.fa-phone-outgoing:after, +.fad.fa-phone-arrow-up-right:after, +.fad.fa-phone-arrow-up:after, +.fad.fa-phone-outgoing:after { + content: "\e224\e224" +} + +.fa-duotone.fa-trash-alt:after, +.fa-duotone.fa-trash-can:after, +.fad.fa-trash-alt:after, +.fad.fa-trash-can:after { + content: "\f2ed\f2ed" +} + +.fa-duotone.fa-circle-l:after, +.fad.fa-circle-l:after { + content: "\e114\e114" +} + +.fa-duotone.fa-head-side-goggles:after, +.fa-duotone.fa-head-vr:after, +.fad.fa-head-side-goggles:after, +.fad.fa-head-vr:after { + content: "\f6ea\f6ea" +} + +.fa-duotone.fa-text-height:after, +.fad.fa-text-height:after { + content: "\f034\f034" +} + +.fa-duotone.fa-user-times:after, +.fa-duotone.fa-user-xmark:after, +.fad.fa-user-times:after, +.fad.fa-user-xmark:after { + content: "\f235\f235" +} + +.fa-duotone.fa-face-hand-yawn:after, +.fad.fa-face-hand-yawn:after { + content: "\e379\e379" +} + +.fa-duotone.fa-gauge-simple-min:after, +.fa-duotone.fa-tachometer-slowest:after, +.fad.fa-gauge-simple-min:after, +.fad.fa-tachometer-slowest:after { + content: "\f62d\f62d" +} + +.fa-duotone.fa-stethoscope:after, +.fad.fa-stethoscope:after { + content: "\f0f1\f0f1" +} + +.fa-duotone.fa-coffin:after, +.fad.fa-coffin:after { + content: "\f6c6\f6c6" +} + +.fa-duotone.fa-comment-alt:after, +.fa-duotone.fa-message:after, +.fad.fa-comment-alt:after, +.fad.fa-message:after { + content: "\f27a\f27a" +} + +.fa-duotone.fa-bowl-salad:after, +.fa-duotone.fa-salad:after, +.fad.fa-bowl-salad:after, +.fad.fa-salad:after { + content: "\f81e\f81e" +} + +.fa-duotone.fa-info:after, +.fad.fa-info:after { + content: "\f129\f129" +} + +.fa-duotone.fa-robot-astromech:after, +.fad.fa-robot-astromech:after { + content: "\e2d2\e2d2" +} + +.fa-duotone.fa-ring-diamond:after, +.fad.fa-ring-diamond:after { + content: "\e5ab\e5ab" +} + +.fa-duotone.fa-fondue-pot:after, +.fad.fa-fondue-pot:after { + content: "\e40d\e40d" +} + +.fa-duotone.fa-theta:after, +.fad.fa-theta:after { + content: "\f69e\f69e" +} + +.fa-duotone.fa-face-hand-peeking:after, +.fad.fa-face-hand-peeking:after { + content: "\e481\e481" +} + +.fa-duotone.fa-square-user:after, +.fad.fa-square-user:after { + content: "\e283\e283" +} + +.fa-duotone.fa-compress-alt:after, +.fa-duotone.fa-down-left-and-up-right-to-center:after, +.fad.fa-compress-alt:after, +.fad.fa-down-left-and-up-right-to-center:after { + content: "\f422\f422" +} + +.fa-duotone.fa-explosion:after, +.fad.fa-explosion:after { + content: "\e4e9\e4e9" +} + +.fa-duotone.fa-file-alt:after, +.fa-duotone.fa-file-lines:after, +.fa-duotone.fa-file-text:after, +.fad.fa-file-alt:after, +.fad.fa-file-lines:after, +.fad.fa-file-text:after { + content: "\f15c\f15c" +} + +.fa-duotone.fa-wave-square:after, +.fad.fa-wave-square:after { + content: "\f83e\f83e" +} + +.fa-duotone.fa-ring:after, +.fad.fa-ring:after { + content: "\f70b\f70b" +} + +.fa-duotone.fa-building-un:after, +.fad.fa-building-un:after { + content: "\e4d9\e4d9" +} + +.fa-duotone.fa-dice-three:after, +.fad.fa-dice-three:after { + content: "\f527\f527" +} + +.fa-duotone.fa-tire-pressure-warning:after, +.fad.fa-tire-pressure-warning:after { + content: "\f633\f633" +} + +.fa-duotone.fa-wifi-2:after, +.fa-duotone.fa-wifi-fair:after, +.fad.fa-wifi-2:after, +.fad.fa-wifi-fair:after { + content: "\f6ab\f6ab" +} + +.fa-duotone.fa-calendar-alt:after, +.fa-duotone.fa-calendar-days:after, +.fad.fa-calendar-alt:after, +.fad.fa-calendar-days:after { + content: "\f073\f073" +} + +.fa-duotone.fa-mp3-player:after, +.fad.fa-mp3-player:after { + content: "\f8ce\f8ce" +} + +.fa-duotone.fa-anchor-circle-check:after, +.fad.fa-anchor-circle-check:after { + content: "\e4aa\e4aa" +} + +.fa-duotone.fa-tally-4:after, +.fad.fa-tally-4:after { + content: "\e297\e297" +} + +.fa-duotone.fa-rectangle-history:after, +.fad.fa-rectangle-history:after { + content: "\e4a2\e4a2" +} + +.fa-duotone.fa-building-circle-arrow-right:after, +.fad.fa-building-circle-arrow-right:after { + content: "\e4d1\e4d1" +} + +.fa-duotone.fa-volleyball-ball:after, +.fa-duotone.fa-volleyball:after, +.fad.fa-volleyball-ball:after, +.fad.fa-volleyball:after { + content: "\f45f\f45f" +} + +.fa-duotone.fa-sun-haze:after, +.fad.fa-sun-haze:after { + content: "\f765\f765" +} + +.fa-duotone.fa-text-size:after, +.fad.fa-text-size:after { + content: "\f894\f894" +} + +.fa-duotone.fa-ufo:after, +.fad.fa-ufo:after { + content: "\e047\e047" +} + +.fa-duotone.fa-fork:after, +.fa-duotone.fa-utensil-fork:after, +.fad.fa-fork:after, +.fad.fa-utensil-fork:after { + content: "\f2e3\f2e3" +} + +.fa-duotone.fa-arrows-up-to-line:after, +.fad.fa-arrows-up-to-line:after { + content: "\e4c2\e4c2" +} + +.fa-duotone.fa-mobile-signal:after, +.fad.fa-mobile-signal:after { + content: "\e1ef\e1ef" +} + +.fa-duotone.fa-barcode-scan:after, +.fad.fa-barcode-scan:after { + content: "\f465\f465" +} + +.fa-duotone.fa-sort-desc:after, +.fa-duotone.fa-sort-down:after, +.fad.fa-sort-desc:after, +.fad.fa-sort-down:after { + content: "\f0dd\f0dd" +} + +.fa-duotone.fa-folder-arrow-down:after, +.fa-duotone.fa-folder-download:after, +.fad.fa-folder-arrow-down:after, +.fad.fa-folder-download:after { + content: "\e053\e053" +} + +.fa-duotone.fa-circle-minus:after, +.fa-duotone.fa-minus-circle:after, +.fad.fa-circle-minus:after, +.fad.fa-minus-circle:after { + content: "\f056\f056" +} + +.fa-duotone.fa-face-icicles:after, +.fad.fa-face-icicles:after { + content: "\e37c\e37c" +} + +.fa-duotone.fa-shovel:after, +.fad.fa-shovel:after { + content: "\f713\f713" +} + +.fa-duotone.fa-door-open:after, +.fad.fa-door-open:after { + content: "\f52b\f52b" +} + +.fa-duotone.fa-films:after, +.fad.fa-films:after { + content: "\e17a\e17a" +} + +.fa-duotone.fa-right-from-bracket:after, +.fa-duotone.fa-sign-out-alt:after, +.fad.fa-right-from-bracket:after, +.fad.fa-sign-out-alt:after { + content: "\f2f5\f2f5" +} + +.fa-duotone.fa-face-glasses:after, +.fad.fa-face-glasses:after { + content: "\e377\e377" +} + +.fa-duotone.fa-nfc:after, +.fad.fa-nfc:after { + content: "\e1f7\e1f7" +} + +.fa-duotone.fa-atom:after, +.fad.fa-atom:after { + content: "\f5d2\f5d2" +} + +.fa-duotone.fa-soap:after, +.fad.fa-soap:after { + content: "\e06e\e06e" +} + +.fa-duotone.fa-heart-music-camera-bolt:after, +.fa-duotone.fa-icons:after, +.fad.fa-heart-music-camera-bolt:after, +.fad.fa-icons:after { + content: "\f86d\f86d" +} + +.fa-duotone.fa-microphone-alt-slash:after, +.fa-duotone.fa-microphone-lines-slash:after, +.fad.fa-microphone-alt-slash:after, +.fad.fa-microphone-lines-slash:after { + content: "\f539\f539" +} + +.fa-duotone.fa-closed-captioning-slash:after, +.fad.fa-closed-captioning-slash:after { + content: "\e135\e135" +} + +.fa-duotone.fa-calculator-alt:after, +.fa-duotone.fa-calculator-simple:after, +.fad.fa-calculator-alt:after, +.fad.fa-calculator-simple:after { + content: "\f64c\f64c" +} + +.fa-duotone.fa-bridge-circle-check:after, +.fad.fa-bridge-circle-check:after { + content: "\e4c9\e4c9" +} + +.fa-duotone.fa-sliders-up:after, +.fa-duotone.fa-sliders-v:after, +.fad.fa-sliders-up:after, +.fad.fa-sliders-v:after { + content: "\f3f1\f3f1" +} + +.fa-duotone.fa-location-minus:after, +.fa-duotone.fa-map-marker-minus:after, +.fad.fa-location-minus:after, +.fad.fa-map-marker-minus:after { + content: "\f609\f609" +} + +.fa-duotone.fa-pump-medical:after, +.fad.fa-pump-medical:after { + content: "\e06a\e06a" +} + +.fa-duotone.fa-fingerprint:after, +.fad.fa-fingerprint:after { + content: "\f577\f577" +} + +.fa-duotone.fa-ski-boot:after, +.fad.fa-ski-boot:after { + content: "\e3cc\e3cc" +} + +.fa-duotone.fa-rectangle-sd:after, +.fa-duotone.fa-standard-definition:after, +.fad.fa-rectangle-sd:after, +.fad.fa-standard-definition:after { + content: "\e28a\e28a" +} + +.fa-duotone.fa-h1:after, +.fad.fa-h1:after { + content: "\f313\f313" +} + +.fa-duotone.fa-hand-point-right:after, +.fad.fa-hand-point-right:after { + content: "\f0a4\f0a4" +} + +.fa-duotone.fa-magnifying-glass-location:after, +.fa-duotone.fa-search-location:after, +.fad.fa-magnifying-glass-location:after, +.fad.fa-search-location:after { + content: "\f689\f689" +} + +.fa-duotone.fa-message-bot:after, +.fad.fa-message-bot:after { + content: "\e3b8\e3b8" +} + +.fa-duotone.fa-forward-step:after, +.fa-duotone.fa-step-forward:after, +.fad.fa-forward-step:after, +.fad.fa-step-forward:after { + content: "\f051\f051" +} + +.fa-duotone.fa-face-smile-beam:after, +.fa-duotone.fa-smile-beam:after, +.fad.fa-face-smile-beam:after, +.fad.fa-smile-beam:after { + content: "\f5b8\f5b8" +} + +.fa-duotone.fa-light-ceiling:after, +.fad.fa-light-ceiling:after { + content: "\e016\e016" +} + +.fa-duotone.fa-comment-alt-exclamation:after, +.fa-duotone.fa-message-exclamation:after, +.fad.fa-comment-alt-exclamation:after, +.fad.fa-message-exclamation:after { + content: "\f4a5\f4a5" +} + +.fa-duotone.fa-bowl-scoop:after, +.fa-duotone.fa-bowl-shaved-ice:after, +.fad.fa-bowl-scoop:after, +.fad.fa-bowl-shaved-ice:after { + content: "\e3de\e3de" +} + +.fa-duotone.fa-square-x:after, +.fad.fa-square-x:after { + content: "\e286\e286" +} + +.fa-duotone.fa-building-memo:after, +.fad.fa-building-memo:after { + content: "\e61e\e61e" +} + +.fa-duotone.fa-utility-pole-double:after, +.fad.fa-utility-pole-double:after { + content: "\e2c4\e2c4" +} + +.fa-duotone.fa-flag-checkered:after, +.fad.fa-flag-checkered:after { + content: "\f11e\f11e" +} + +.fa-duotone.fa-chevron-double-up:after, +.fa-duotone.fa-chevrons-up:after, +.fad.fa-chevron-double-up:after, +.fad.fa-chevrons-up:after { + content: "\f325\f325" +} + +.fa-duotone.fa-football-ball:after, +.fa-duotone.fa-football:after, +.fad.fa-football-ball:after, +.fad.fa-football:after { + content: "\f44e\f44e" +} + +.fa-duotone.fa-user-vneck:after, +.fad.fa-user-vneck:after { + content: "\e461\e461" +} + +.fa-duotone.fa-school-circle-exclamation:after, +.fad.fa-school-circle-exclamation:after { + content: "\e56c\e56c" +} + +.fa-duotone.fa-crop:after, +.fad.fa-crop:after { + content: "\f125\f125" +} + +.fa-duotone.fa-angle-double-down:after, +.fa-duotone.fa-angles-down:after, +.fad.fa-angle-double-down:after, +.fad.fa-angles-down:after { + content: "\f103\f103" +} + +.fa-duotone.fa-users-rectangle:after, +.fad.fa-users-rectangle:after { + content: "\e594\e594" +} + +.fa-duotone.fa-people-roof:after, +.fad.fa-people-roof:after { + content: "\e537\e537" +} + +.fa-duotone.fa-arrow-square-right:after, +.fa-duotone.fa-square-arrow-right:after, +.fad.fa-arrow-square-right:after, +.fad.fa-square-arrow-right:after { + content: "\f33b\f33b" +} + +.fa-duotone.fa-location-plus:after, +.fa-duotone.fa-map-marker-plus:after, +.fad.fa-location-plus:after, +.fad.fa-map-marker-plus:after { + content: "\f60a\f60a" +} + +.fa-duotone.fa-lightbulb-exclamation-on:after, +.fad.fa-lightbulb-exclamation-on:after { + content: "\e1ca\e1ca" +} + +.fa-duotone.fa-people-line:after, +.fad.fa-people-line:after { + content: "\e534\e534" +} + +.fa-duotone.fa-beer-mug-empty:after, +.fa-duotone.fa-beer:after, +.fad.fa-beer-mug-empty:after, +.fad.fa-beer:after { + content: "\f0fc\f0fc" +} + +.fa-duotone.fa-crate-empty:after, +.fad.fa-crate-empty:after { + content: "\e151\e151" +} + +.fa-duotone.fa-diagram-predecessor:after, +.fad.fa-diagram-predecessor:after { + content: "\e477\e477" +} + +.fa-duotone.fa-transporter:after, +.fad.fa-transporter:after { + content: "\e042\e042" +} + +.fa-duotone.fa-calendar-circle-user:after, +.fad.fa-calendar-circle-user:after { + content: "\e471\e471" +} + +.fa-duotone.fa-arrow-up-long:after, +.fa-duotone.fa-long-arrow-up:after, +.fad.fa-arrow-up-long:after, +.fad.fa-long-arrow-up:after { + content: "\f176\f176" +} + +.fa-duotone.fa-person-carry-box:after, +.fa-duotone.fa-person-carry:after, +.fad.fa-person-carry-box:after, +.fad.fa-person-carry:after { + content: "\f4cf\f4cf" +} + +.fa-duotone.fa-burn:after, +.fa-duotone.fa-fire-flame-simple:after, +.fad.fa-burn:after, +.fad.fa-fire-flame-simple:after { + content: "\f46a\f46a" +} + +.fa-duotone.fa-male:after, +.fa-duotone.fa-person:after, +.fad.fa-male:after, +.fad.fa-person:after { + content: "\f183\f183" +} + +.fa-duotone.fa-laptop:after, +.fad.fa-laptop:after { + content: "\f109\f109" +} + +.fa-duotone.fa-file-csv:after, +.fad.fa-file-csv:after { + content: "\f6dd\f6dd" +} + +.fa-duotone.fa-menorah:after, +.fad.fa-menorah:after { + content: "\f676\f676" +} + +.fa-duotone.fa-union:after, +.fad.fa-union:after { + content: "\f6a2\f6a2" +} + +.fa-duotone.fa-chevron-double-left:after, +.fa-duotone.fa-chevrons-left:after, +.fad.fa-chevron-double-left:after, +.fad.fa-chevrons-left:after { + content: "\f323\f323" +} + +.fa-duotone.fa-circle-heart:after, +.fa-duotone.fa-heart-circle:after, +.fad.fa-circle-heart:after, +.fad.fa-heart-circle:after { + content: "\f4c7\f4c7" +} + +.fa-duotone.fa-truck-plane:after, +.fad.fa-truck-plane:after { + content: "\e58f\e58f" +} + +.fa-duotone.fa-record-vinyl:after, +.fad.fa-record-vinyl:after { + content: "\f8d9\f8d9" +} + +.fa-duotone.fa-bring-forward:after, +.fad.fa-bring-forward:after { + content: "\f856\f856" +} + +.fa-duotone.fa-square-p:after, +.fad.fa-square-p:after { + content: "\e279\e279" +} + +.fa-duotone.fa-face-grin-stars:after, +.fa-duotone.fa-grin-stars:after, +.fad.fa-face-grin-stars:after, +.fad.fa-grin-stars:after { + content: "\f587\f587" +} + +.fa-duotone.fa-sigma:after, +.fad.fa-sigma:after { + content: "\f68b\f68b" +} + +.fa-duotone.fa-camera-movie:after, +.fad.fa-camera-movie:after { + content: "\f8a9\f8a9" +} + +.fa-duotone.fa-bong:after, +.fad.fa-bong:after { + content: "\f55c\f55c" +} + +.fa-duotone.fa-clarinet:after, +.fad.fa-clarinet:after { + content: "\f8ad\f8ad" +} + +.fa-duotone.fa-truck-flatbed:after, +.fad.fa-truck-flatbed:after { + content: "\e2b6\e2b6" +} + +.fa-duotone.fa-pastafarianism:after, +.fa-duotone.fa-spaghetti-monster-flying:after, +.fad.fa-pastafarianism:after, +.fad.fa-spaghetti-monster-flying:after { + content: "\f67b\f67b" +} + +.fa-duotone.fa-arrow-down-up-across-line:after, +.fad.fa-arrow-down-up-across-line:after { + content: "\e4af\e4af" +} + +.fa-duotone.fa-arrows-rotate-reverse:after, +.fad.fa-arrows-rotate-reverse:after { + content: "\e630\e630" +} + +.fa-duotone.fa-leaf-heart:after, +.fad.fa-leaf-heart:after { + content: "\f4cb\f4cb" +} + +.fa-duotone.fa-house-building:after, +.fad.fa-house-building:after { + content: "\e1b1\e1b1" +} + +.fa-duotone.fa-cheese-swiss:after, +.fad.fa-cheese-swiss:after { + content: "\f7f0\f7f0" +} + +.fa-duotone.fa-spoon:after, +.fa-duotone.fa-utensil-spoon:after, +.fad.fa-spoon:after, +.fad.fa-utensil-spoon:after { + content: "\f2e5\f2e5" +} + +.fa-duotone.fa-jar-wheat:after, +.fad.fa-jar-wheat:after { + content: "\e517\e517" +} + +.fa-duotone.fa-envelopes-bulk:after, +.fa-duotone.fa-mail-bulk:after, +.fad.fa-envelopes-bulk:after, +.fad.fa-mail-bulk:after { + content: "\f674\f674" +} + +.fa-duotone.fa-file-circle-exclamation:after, +.fad.fa-file-circle-exclamation:after { + content: "\e4eb\e4eb" +} + +.fa-duotone.fa-bow-arrow:after, +.fad.fa-bow-arrow:after { + content: "\f6b9\f6b9" +} + +.fa-duotone.fa-cart-xmark:after, +.fad.fa-cart-xmark:after { + content: "\e0dd\e0dd" +} + +.fa-duotone.fa-hexagon-xmark:after, +.fa-duotone.fa-times-hexagon:after, +.fa-duotone.fa-xmark-hexagon:after, +.fad.fa-hexagon-xmark:after, +.fad.fa-times-hexagon:after, +.fad.fa-xmark-hexagon:after { + content: "\f2ee\f2ee" +} + +.fa-duotone.fa-circle-h:after, +.fa-duotone.fa-hospital-symbol:after, +.fad.fa-circle-h:after, +.fad.fa-hospital-symbol:after { + content: "\f47e\f47e" +} + +.fa-duotone.fa-merge:after, +.fad.fa-merge:after { + content: "\e526\e526" +} + +.fa-duotone.fa-pager:after, +.fad.fa-pager:after { + content: "\f815\f815" +} + +.fa-duotone.fa-cart-minus:after, +.fad.fa-cart-minus:after { + content: "\e0db\e0db" +} + +.fa-duotone.fa-address-book:after, +.fa-duotone.fa-contact-book:after, +.fad.fa-address-book:after, +.fad.fa-contact-book:after { + content: "\f2b9\f2b9" +} + +.fa-duotone.fa-pan-frying:after, +.fad.fa-pan-frying:after { + content: "\e42c\e42c" +} + +.fa-duotone.fa-grid-3:after, +.fa-duotone.fa-grid:after, +.fad.fa-grid-3:after, +.fad.fa-grid:after { + content: "\e195\e195" +} + +.fa-duotone.fa-football-helmet:after, +.fad.fa-football-helmet:after { + content: "\f44f\f44f" +} + +.fa-duotone.fa-hand-love:after, +.fad.fa-hand-love:after { + content: "\e1a5\e1a5" +} + +.fa-duotone.fa-trees:after, +.fad.fa-trees:after { + content: "\f724\f724" +} + +.fa-duotone.fa-strikethrough:after, +.fad.fa-strikethrough:after { + content: "\f0cc\f0cc" +} + +.fa-duotone.fa-page:after, +.fad.fa-page:after { + content: "\e428\e428" +} + +.fa-duotone.fa-k:after, +.fad.fa-k:after { + content: "\4b\4b" +} + +.fa-duotone.fa-diagram-previous:after, +.fad.fa-diagram-previous:after { + content: "\e478\e478" +} + +.fa-duotone.fa-gauge-min:after, +.fa-duotone.fa-tachometer-alt-slowest:after, +.fad.fa-gauge-min:after, +.fad.fa-tachometer-alt-slowest:after { + content: "\f628\f628" +} + +.fa-duotone.fa-folder-grid:after, +.fad.fa-folder-grid:after { + content: "\e188\e188" +} + +.fa-duotone.fa-eggplant:after, +.fad.fa-eggplant:after { + content: "\e16c\e16c" +} + +.fa-duotone.fa-excavator:after, +.fad.fa-excavator:after { + content: "\e656\e656" +} + +.fa-duotone.fa-ram:after, +.fad.fa-ram:after { + content: "\f70a\f70a" +} + +.fa-duotone.fa-landmark-flag:after, +.fad.fa-landmark-flag:after { + content: "\e51c\e51c" +} + +.fa-duotone.fa-lips:after, +.fad.fa-lips:after { + content: "\f600\f600" +} + +.fa-duotone.fa-pencil-alt:after, +.fa-duotone.fa-pencil:after, +.fad.fa-pencil-alt:after, +.fad.fa-pencil:after { + content: "\f303\f303" +} + +.fa-duotone.fa-backward:after, +.fad.fa-backward:after { + content: "\f04a\f04a" +} + +.fa-duotone.fa-caret-right:after, +.fad.fa-caret-right:after { + content: "\f0da\f0da" +} + +.fa-duotone.fa-comments:after, +.fad.fa-comments:after { + content: "\f086\f086" +} + +.fa-duotone.fa-file-clipboard:after, +.fa-duotone.fa-paste:after, +.fad.fa-file-clipboard:after, +.fad.fa-paste:after { + content: "\f0ea\f0ea" +} + +.fa-duotone.fa-desktop-arrow-down:after, +.fad.fa-desktop-arrow-down:after { + content: "\e155\e155" +} + +.fa-duotone.fa-code-pull-request:after, +.fad.fa-code-pull-request:after { + content: "\e13c\e13c" +} + +.fa-duotone.fa-pumpkin:after, +.fad.fa-pumpkin:after { + content: "\f707\f707" +} + +.fa-duotone.fa-clipboard-list:after, +.fad.fa-clipboard-list:after { + content: "\f46d\f46d" +} + +.fa-duotone.fa-pen-field:after, +.fad.fa-pen-field:after { + content: "\e211\e211" +} + +.fa-duotone.fa-blueberries:after, +.fad.fa-blueberries:after { + content: "\e2e8\e2e8" +} + +.fa-duotone.fa-truck-loading:after, +.fa-duotone.fa-truck-ramp-box:after, +.fad.fa-truck-loading:after, +.fad.fa-truck-ramp-box:after { + content: "\f4de\f4de" +} + +.fa-duotone.fa-note:after, +.fad.fa-note:after { + content: "\e1ff\e1ff" +} + +.fa-duotone.fa-arrow-down-to-square:after, +.fad.fa-arrow-down-to-square:after { + content: "\e096\e096" +} + +.fa-duotone.fa-user-check:after, +.fad.fa-user-check:after { + content: "\f4fc\f4fc" +} + +.fa-duotone.fa-cloud-xmark:after, +.fad.fa-cloud-xmark:after { + content: "\e35f\e35f" +} + +.fa-duotone.fa-vial-virus:after, +.fad.fa-vial-virus:after { + content: "\e597\e597" +} + +.fa-duotone.fa-book-alt:after, +.fa-duotone.fa-book-blank:after, +.fad.fa-book-alt:after, +.fad.fa-book-blank:after { + content: "\f5d9\f5d9" +} + +.fa-duotone.fa-golf-flag-hole:after, +.fad.fa-golf-flag-hole:after { + content: "\e3ac\e3ac" +} + +.fa-duotone.fa-comment-alt-arrow-down:after, +.fa-duotone.fa-message-arrow-down:after, +.fad.fa-comment-alt-arrow-down:after, +.fad.fa-message-arrow-down:after { + content: "\e1db\e1db" +} + +.fa-duotone.fa-face-unamused:after, +.fad.fa-face-unamused:after { + content: "\e39f\e39f" +} + +.fa-duotone.fa-sheet-plastic:after, +.fad.fa-sheet-plastic:after { + content: "\e571\e571" +} + +.fa-duotone.fa-circle-9:after, +.fad.fa-circle-9:after { + content: "\e0f6\e0f6" +} + +.fa-duotone.fa-blog:after, +.fad.fa-blog:after { + content: "\f781\f781" +} + +.fa-duotone.fa-user-ninja:after, +.fad.fa-user-ninja:after { + content: "\f504\f504" +} + +.fa-duotone.fa-pencil-slash:after, +.fad.fa-pencil-slash:after { + content: "\e215\e215" +} + +.fa-duotone.fa-bowling-pins:after, +.fad.fa-bowling-pins:after { + content: "\f437\f437" +} + +.fa-duotone.fa-person-arrow-up-from-line:after, +.fad.fa-person-arrow-up-from-line:after { + content: "\e539\e539" +} + +.fa-duotone.fa-down-right:after, +.fad.fa-down-right:after { + content: "\e16b\e16b" +} + +.fa-duotone.fa-scroll-torah:after, +.fa-duotone.fa-torah:after, +.fad.fa-scroll-torah:after, +.fad.fa-torah:after { + content: "\f6a0\f6a0" +} + +.fa-duotone.fa-webhook:after, +.fad.fa-webhook:after { + content: "\e5d5\e5d5" +} + +.fa-duotone.fa-blinds-open:after, +.fad.fa-blinds-open:after { + content: "\f8fc\f8fc" +} + +.fa-duotone.fa-fence:after, +.fad.fa-fence:after { + content: "\e303\e303" +} + +.fa-duotone.fa-arrow-alt-up:after, +.fa-duotone.fa-up:after, +.fad.fa-arrow-alt-up:after, +.fad.fa-up:after { + content: "\f357\f357" +} + +.fa-duotone.fa-broom-ball:after, +.fa-duotone.fa-quidditch-broom-ball:after, +.fa-duotone.fa-quidditch:after, +.fad.fa-broom-ball:after, +.fad.fa-quidditch-broom-ball:after, +.fad.fa-quidditch:after { + content: "\f458\f458" +} + +.fa-duotone.fa-drumstick:after, +.fad.fa-drumstick:after { + content: "\f6d6\f6d6" +} + +.fa-duotone.fa-square-v:after, +.fad.fa-square-v:after { + content: "\e284\e284" +} + +.fa-duotone.fa-face-awesome:after, +.fa-duotone.fa-gave-dandy:after, +.fad.fa-face-awesome:after, +.fad.fa-gave-dandy:after { + content: "\e409\e409" +} + +.fa-duotone.fa-dial-off:after, +.fad.fa-dial-off:after { + content: "\e162\e162" +} + +.fa-duotone.fa-toggle-off:after, +.fad.fa-toggle-off:after { + content: "\f204\f204" +} + +.fa-duotone.fa-face-smile-horns:after, +.fad.fa-face-smile-horns:after { + content: "\e391\e391" +} + +.fa-duotone.fa-archive:after, +.fa-duotone.fa-box-archive:after, +.fad.fa-archive:after, +.fad.fa-box-archive:after { + content: "\f187\f187" +} + +.fa-duotone.fa-grapes:after, +.fad.fa-grapes:after { + content: "\e306\e306" +} + +.fa-duotone.fa-person-drowning:after, +.fad.fa-person-drowning:after { + content: "\e545\e545" +} + +.fa-duotone.fa-dial-max:after, +.fad.fa-dial-max:after { + content: "\e15e\e15e" +} + +.fa-duotone.fa-circle-m:after, +.fad.fa-circle-m:after { + content: "\e115\e115" +} + +.fa-duotone.fa-calendar-image:after, +.fad.fa-calendar-image:after { + content: "\e0d4\e0d4" +} + +.fa-duotone.fa-caret-circle-down:after, +.fa-duotone.fa-circle-caret-down:after, +.fad.fa-caret-circle-down:after, +.fad.fa-circle-caret-down:after { + content: "\f32d\f32d" +} + +.fa-duotone.fa-arrow-down-9-1:after, +.fa-duotone.fa-sort-numeric-desc:after, +.fa-duotone.fa-sort-numeric-down-alt:after, +.fad.fa-arrow-down-9-1:after, +.fad.fa-sort-numeric-desc:after, +.fad.fa-sort-numeric-down-alt:after { + content: "\f886\f886" +} + +.fa-duotone.fa-face-grin-tongue-squint:after, +.fa-duotone.fa-grin-tongue-squint:after, +.fad.fa-face-grin-tongue-squint:after, +.fad.fa-grin-tongue-squint:after { + content: "\f58a\f58a" +} + +.fa-duotone.fa-shish-kebab:after, +.fad.fa-shish-kebab:after { + content: "\f821\f821" +} + +.fa-duotone.fa-spray-can:after, +.fad.fa-spray-can:after { + content: "\f5bd\f5bd" +} + +.fa-duotone.fa-alarm-snooze:after, +.fad.fa-alarm-snooze:after { + content: "\f845\f845" +} + +.fa-duotone.fa-scarecrow:after, +.fad.fa-scarecrow:after { + content: "\f70d\f70d" +} + +.fa-duotone.fa-truck-monster:after, +.fad.fa-truck-monster:after { + content: "\f63b\f63b" +} + +.fa-duotone.fa-gift-card:after, +.fad.fa-gift-card:after { + content: "\f663\f663" +} + +.fa-duotone.fa-w:after, +.fad.fa-w:after { + content: "\57\57" +} + +.fa-duotone.fa-code-pull-request-draft:after, +.fad.fa-code-pull-request-draft:after { + content: "\e3fa\e3fa" +} + +.fa-duotone.fa-square-b:after, +.fad.fa-square-b:after { + content: "\e264\e264" +} + +.fa-duotone.fa-elephant:after, +.fad.fa-elephant:after { + content: "\f6da\f6da" +} + +.fa-duotone.fa-earth-africa:after, +.fa-duotone.fa-globe-africa:after, +.fad.fa-earth-africa:after, +.fad.fa-globe-africa:after { + content: "\f57c\f57c" +} + +.fa-duotone.fa-rainbow:after, +.fad.fa-rainbow:after { + content: "\f75b\f75b" +} + +.fa-duotone.fa-circle-notch:after, +.fad.fa-circle-notch:after { + content: "\f1ce\f1ce" +} + +.fa-duotone.fa-tablet-alt:after, +.fa-duotone.fa-tablet-screen-button:after, +.fad.fa-tablet-alt:after, +.fad.fa-tablet-screen-button:after { + content: "\f3fa\f3fa" +} + +.fa-duotone.fa-paw:after, +.fad.fa-paw:after { + content: "\f1b0\f1b0" +} + +.fa-duotone.fa-message-question:after, +.fad.fa-message-question:after { + content: "\e1e3\e1e3" +} + +.fa-duotone.fa-cloud:after, +.fad.fa-cloud:after { + content: "\f0c2\f0c2" +} + +.fa-duotone.fa-trowel-bricks:after, +.fad.fa-trowel-bricks:after { + content: "\e58a\e58a" +} + +.fa-duotone.fa-square-3:after, +.fad.fa-square-3:after { + content: "\e258\e258" +} + +.fa-duotone.fa-face-flushed:after, +.fa-duotone.fa-flushed:after, +.fad.fa-face-flushed:after, +.fad.fa-flushed:after { + content: "\f579\f579" +} + +.fa-duotone.fa-hospital-user:after, +.fad.fa-hospital-user:after { + content: "\f80d\f80d" +} + +.fa-duotone.fa-microwave:after, +.fad.fa-microwave:after { + content: "\e01b\e01b" +} + +.fa-duotone.fa-chf-sign:after, +.fad.fa-chf-sign:after { + content: "\e602\e602" +} + +.fa-duotone.fa-tent-arrow-left-right:after, +.fad.fa-tent-arrow-left-right:after { + content: "\e57f\e57f" +} + +.fa-duotone.fa-cart-circle-arrow-up:after, +.fad.fa-cart-circle-arrow-up:after { + content: "\e3f0\e3f0" +} + +.fa-duotone.fa-trash-clock:after, +.fad.fa-trash-clock:after { + content: "\e2b0\e2b0" +} + +.fa-duotone.fa-gavel:after, +.fa-duotone.fa-legal:after, +.fad.fa-gavel:after, +.fad.fa-legal:after { + content: "\f0e3\f0e3" +} + +.fa-duotone.fa-sprinkler-ceiling:after, +.fad.fa-sprinkler-ceiling:after { + content: "\e44c\e44c" +} + +.fa-duotone.fa-browsers:after, +.fad.fa-browsers:after { + content: "\e0cb\e0cb" +} + +.fa-duotone.fa-trillium:after, +.fad.fa-trillium:after { + content: "\e588\e588" +} + +.fa-duotone.fa-music-slash:after, +.fad.fa-music-slash:after { + content: "\f8d1\f8d1" +} + +.fa-duotone.fa-truck-ramp:after, +.fad.fa-truck-ramp:after { + content: "\f4e0\f4e0" +} + +.fa-duotone.fa-binoculars:after, +.fad.fa-binoculars:after { + content: "\f1e5\f1e5" +} + +.fa-duotone.fa-microphone-slash:after, +.fad.fa-microphone-slash:after { + content: "\f131\f131" +} + +.fa-duotone.fa-box-tissue:after, +.fad.fa-box-tissue:after { + content: "\e05b\e05b" +} + +.fa-duotone.fa-circle-c:after, +.fad.fa-circle-c:after { + content: "\e101\e101" +} + +.fa-duotone.fa-star-christmas:after, +.fad.fa-star-christmas:after { + content: "\f7d4\f7d4" +} + +.fa-duotone.fa-chart-bullet:after, +.fad.fa-chart-bullet:after { + content: "\e0e1\e0e1" +} + +.fa-duotone.fa-motorcycle:after, +.fad.fa-motorcycle:after { + content: "\f21c\f21c" +} + +.fa-duotone.fa-tree-christmas:after, +.fad.fa-tree-christmas:after { + content: "\f7db\f7db" +} + +.fa-duotone.fa-tire-flat:after, +.fad.fa-tire-flat:after { + content: "\f632\f632" +} + +.fa-duotone.fa-sunglasses:after, +.fad.fa-sunglasses:after { + content: "\f892\f892" +} + +.fa-duotone.fa-badge:after, +.fad.fa-badge:after { + content: "\f335\f335" +} + +.fa-duotone.fa-comment-alt-edit:after, +.fa-duotone.fa-message-edit:after, +.fa-duotone.fa-message-pen:after, +.fad.fa-comment-alt-edit:after, +.fad.fa-message-edit:after, +.fad.fa-message-pen:after { + content: "\f4a4\f4a4" +} + +.fa-duotone.fa-bell-concierge:after, +.fa-duotone.fa-concierge-bell:after, +.fad.fa-bell-concierge:after, +.fad.fa-concierge-bell:after { + content: "\f562\f562" +} + +.fa-duotone.fa-pen-ruler:after, +.fa-duotone.fa-pencil-ruler:after, +.fad.fa-pen-ruler:after, +.fad.fa-pencil-ruler:after { + content: "\f5ae\f5ae" +} + +.fa-duotone.fa-file-mp3:after, +.fad.fa-file-mp3:after { + content: "\e648\e648" +} + +.fa-duotone.fa-arrow-progress:after, +.fad.fa-arrow-progress:after { + content: "\e5df\e5df" +} + +.fa-duotone.fa-chess-rook-alt:after, +.fa-duotone.fa-chess-rook-piece:after, +.fad.fa-chess-rook-alt:after, +.fad.fa-chess-rook-piece:after { + content: "\f448\f448" +} + +.fa-duotone.fa-square-root:after, +.fad.fa-square-root:after { + content: "\f697\f697" +} + +.fa-duotone.fa-album-collection-circle-plus:after, +.fad.fa-album-collection-circle-plus:after { + content: "\e48e\e48e" +} + +.fa-duotone.fa-people-arrows-left-right:after, +.fa-duotone.fa-people-arrows:after, +.fad.fa-people-arrows-left-right:after, +.fad.fa-people-arrows:after { + content: "\e068\e068" +} + +.fa-duotone.fa-sign-post:after, +.fad.fa-sign-post:after { + content: "\e624\e624" +} + +.fa-duotone.fa-face-angry-horns:after, +.fad.fa-face-angry-horns:after { + content: "\e368\e368" +} + +.fa-duotone.fa-mars-and-venus-burst:after, +.fad.fa-mars-and-venus-burst:after { + content: "\e523\e523" +} + +.fa-duotone.fa-tombstone:after, +.fad.fa-tombstone:after { + content: "\f720\f720" +} + +.fa-duotone.fa-caret-square-right:after, +.fa-duotone.fa-square-caret-right:after, +.fad.fa-caret-square-right:after, +.fad.fa-square-caret-right:after { + content: "\f152\f152" +} + +.fa-duotone.fa-cut:after, +.fa-duotone.fa-scissors:after, +.fad.fa-cut:after, +.fad.fa-scissors:after { + content: "\f0c4\f0c4" +} + +.fa-duotone.fa-list-music:after, +.fad.fa-list-music:after { + content: "\f8c9\f8c9" +} + +.fa-duotone.fa-sun-plant-wilt:after, +.fad.fa-sun-plant-wilt:after { + content: "\e57a\e57a" +} + +.fa-duotone.fa-toilets-portable:after, +.fad.fa-toilets-portable:after { + content: "\e584\e584" +} + +.fa-duotone.fa-hockey-puck:after, +.fad.fa-hockey-puck:after { + content: "\f453\f453" +} + +.fa-duotone.fa-mustache:after, +.fad.fa-mustache:after { + content: "\e5bc\e5bc" +} + +.fa-duotone.fa-hyphen:after, +.fad.fa-hyphen:after { + content: "\2d\2d" +} + +.fa-duotone.fa-table:after, +.fad.fa-table:after { + content: "\f0ce\f0ce" +} + +.fa-duotone.fa-user-chef:after, +.fad.fa-user-chef:after { + content: "\e3d2\e3d2" +} + +.fa-duotone.fa-comment-alt-image:after, +.fa-duotone.fa-message-image:after, +.fad.fa-comment-alt-image:after, +.fad.fa-message-image:after { + content: "\e1e0\e1e0" +} + +.fa-duotone.fa-users-medical:after, +.fad.fa-users-medical:after { + content: "\f830\f830" +} + +.fa-duotone.fa-sensor-alert:after, +.fa-duotone.fa-sensor-triangle-exclamation:after, +.fad.fa-sensor-alert:after, +.fad.fa-sensor-triangle-exclamation:after { + content: "\e029\e029" +} + +.fa-duotone.fa-magnifying-glass-arrow-right:after, +.fad.fa-magnifying-glass-arrow-right:after { + content: "\e521\e521" +} + +.fa-duotone.fa-digital-tachograph:after, +.fa-duotone.fa-tachograph-digital:after, +.fad.fa-digital-tachograph:after, +.fad.fa-tachograph-digital:after { + content: "\f566\f566" +} + +.fa-duotone.fa-face-mask:after, +.fad.fa-face-mask:after { + content: "\e37f\e37f" +} + +.fa-duotone.fa-pickleball:after, +.fad.fa-pickleball:after { + content: "\e435\e435" +} + +.fa-duotone.fa-star-sharp-half:after, +.fad.fa-star-sharp-half:after { + content: "\e28c\e28c" +} + +.fa-duotone.fa-users-slash:after, +.fad.fa-users-slash:after { + content: "\e073\e073" +} + +.fa-duotone.fa-clover:after, +.fad.fa-clover:after { + content: "\e139\e139" +} + +.fa-duotone.fa-meat:after, +.fad.fa-meat:after { + content: "\f814\f814" +} + +.fa-duotone.fa-mail-reply:after, +.fa-duotone.fa-reply:after, +.fad.fa-mail-reply:after, +.fad.fa-reply:after { + content: "\f3e5\f3e5" +} + +.fa-duotone.fa-star-and-crescent:after, +.fad.fa-star-and-crescent:after { + content: "\f699\f699" +} + +.fa-duotone.fa-empty-set:after, +.fad.fa-empty-set:after { + content: "\f656\f656" +} + +.fa-duotone.fa-house-fire:after, +.fad.fa-house-fire:after { + content: "\e50c\e50c" +} + +.fa-duotone.fa-minus-square:after, +.fa-duotone.fa-square-minus:after, +.fad.fa-minus-square:after, +.fad.fa-square-minus:after { + content: "\f146\f146" +} + +.fa-duotone.fa-helicopter:after, +.fad.fa-helicopter:after { + content: "\f533\f533" +} + +.fa-duotone.fa-bird:after, +.fad.fa-bird:after { + content: "\e469\e469" +} + +.fa-duotone.fa-compass:after, +.fad.fa-compass:after { + content: "\f14e\f14e" +} + +.fa-duotone.fa-caret-square-down:after, +.fa-duotone.fa-square-caret-down:after, +.fad.fa-caret-square-down:after, +.fad.fa-square-caret-down:after { + content: "\f150\f150" +} + +.fa-duotone.fa-heart-half-alt:after, +.fa-duotone.fa-heart-half-stroke:after, +.fad.fa-heart-half-alt:after, +.fad.fa-heart-half-stroke:after { + content: "\e1ac\e1ac" +} + +.fa-duotone.fa-file-circle-question:after, +.fad.fa-file-circle-question:after { + content: "\e4ef\e4ef" +} + +.fa-duotone.fa-truck-utensils:after, +.fad.fa-truck-utensils:after { + content: "\e628\e628" +} + +.fa-duotone.fa-laptop-code:after, +.fad.fa-laptop-code:after { + content: "\f5fc\f5fc" +} + +.fa-duotone.fa-joystick:after, +.fad.fa-joystick:after { + content: "\f8c5\f8c5" +} + +.fa-duotone.fa-grill-fire:after, +.fad.fa-grill-fire:after { + content: "\e5a4\e5a4" +} + +.fa-duotone.fa-rectangle-vertical-history:after, +.fad.fa-rectangle-vertical-history:after { + content: "\e237\e237" +} + +.fa-duotone.fa-swatchbook:after, +.fad.fa-swatchbook:after { + content: "\f5c3\f5c3" +} + +.fa-duotone.fa-prescription-bottle:after, +.fad.fa-prescription-bottle:after { + content: "\f485\f485" +} + +.fa-duotone.fa-bars:after, +.fa-duotone.fa-navicon:after, +.fad.fa-bars:after, +.fad.fa-navicon:after { + content: "\f0c9\f0c9" +} + +.fa-duotone.fa-keyboard-left:after, +.fad.fa-keyboard-left:after { + content: "\e1c3\e1c3" +} + +.fa-duotone.fa-people-group:after, +.fad.fa-people-group:after { + content: "\e533\e533" +} + +.fa-duotone.fa-hourglass-3:after, +.fa-duotone.fa-hourglass-end:after, +.fad.fa-hourglass-3:after, +.fad.fa-hourglass-end:after { + content: "\f253\f253" +} + +.fa-duotone.fa-heart-broken:after, +.fa-duotone.fa-heart-crack:after, +.fad.fa-heart-broken:after, +.fad.fa-heart-crack:after { + content: "\f7a9\f7a9" +} + +.fa-duotone.fa-face-beam-hand-over-mouth:after, +.fad.fa-face-beam-hand-over-mouth:after { + content: "\e47c\e47c" +} + +.fa-duotone.fa-droplet-percent:after, +.fa-duotone.fa-humidity:after, +.fad.fa-droplet-percent:after, +.fad.fa-humidity:after { + content: "\f750\f750" +} + +.fa-duotone.fa-external-link-square-alt:after, +.fa-duotone.fa-square-up-right:after, +.fad.fa-external-link-square-alt:after, +.fad.fa-square-up-right:after { + content: "\f360\f360" +} + +.fa-duotone.fa-face-kiss-beam:after, +.fa-duotone.fa-kiss-beam:after, +.fad.fa-face-kiss-beam:after, +.fad.fa-kiss-beam:after { + content: "\f597\f597" +} + +.fa-duotone.fa-corn:after, +.fad.fa-corn:after { + content: "\f6c7\f6c7" +} + +.fa-duotone.fa-roller-coaster:after, +.fad.fa-roller-coaster:after { + content: "\e324\e324" +} + +.fa-duotone.fa-photo-film-music:after, +.fad.fa-photo-film-music:after { + content: "\e228\e228" +} + +.fa-duotone.fa-radar:after, +.fad.fa-radar:after { + content: "\e024\e024" +} + +.fa-duotone.fa-sickle:after, +.fad.fa-sickle:after { + content: "\f822\f822" +} + +.fa-duotone.fa-film:after, +.fad.fa-film:after { + content: "\f008\f008" +} + +.fa-duotone.fa-coconut:after, +.fad.fa-coconut:after { + content: "\e2f6\e2f6" +} + +.fa-duotone.fa-ruler-horizontal:after, +.fad.fa-ruler-horizontal:after { + content: "\f547\f547" +} + +.fa-duotone.fa-shield-cross:after, +.fad.fa-shield-cross:after { + content: "\f712\f712" +} + +.fa-duotone.fa-cassette-tape:after, +.fad.fa-cassette-tape:after { + content: "\f8ab\f8ab" +} + +.fa-duotone.fa-square-terminal:after, +.fad.fa-square-terminal:after { + content: "\e32a\e32a" +} + +.fa-duotone.fa-people-robbery:after, +.fad.fa-people-robbery:after { + content: "\e536\e536" +} + +.fa-duotone.fa-lightbulb:after, +.fad.fa-lightbulb:after { + content: "\f0eb\f0eb" +} + +.fa-duotone.fa-caret-left:after, +.fad.fa-caret-left:after { + content: "\f0d9\f0d9" +} + +.fa-duotone.fa-comment-middle:after, +.fad.fa-comment-middle:after { + content: "\e149\e149" +} + +.fa-duotone.fa-trash-can-list:after, +.fad.fa-trash-can-list:after { + content: "\e2ab\e2ab" +} + +.fa-duotone.fa-block:after, +.fad.fa-block:after { + content: "\e46a\e46a" +} + +.fa-duotone.fa-circle-exclamation:after, +.fa-duotone.fa-exclamation-circle:after, +.fad.fa-circle-exclamation:after, +.fad.fa-exclamation-circle:after { + content: "\f06a\f06a" +} + +.fa-duotone.fa-school-circle-xmark:after, +.fad.fa-school-circle-xmark:after { + content: "\e56d\e56d" +} + +.fa-duotone.fa-arrow-right-from-bracket:after, +.fa-duotone.fa-sign-out:after, +.fad.fa-arrow-right-from-bracket:after, +.fad.fa-sign-out:after { + content: "\f08b\f08b" +} + +.fa-duotone.fa-face-frown-slight:after, +.fad.fa-face-frown-slight:after { + content: "\e376\e376" +} + +.fa-duotone.fa-chevron-circle-down:after, +.fa-duotone.fa-circle-chevron-down:after, +.fad.fa-chevron-circle-down:after, +.fad.fa-circle-chevron-down:after { + content: "\f13a\f13a" +} + +.fa-duotone.fa-sidebar-flip:after, +.fad.fa-sidebar-flip:after { + content: "\e24f\e24f" +} + +.fa-duotone.fa-unlock-alt:after, +.fa-duotone.fa-unlock-keyhole:after, +.fad.fa-unlock-alt:after, +.fad.fa-unlock-keyhole:after { + content: "\f13e\f13e" +} + +.fa-duotone.fa-temperature-list:after, +.fad.fa-temperature-list:after { + content: "\e299\e299" +} + +.fa-duotone.fa-cloud-showers-heavy:after, +.fad.fa-cloud-showers-heavy:after { + content: "\f740\f740" +} + +.fa-duotone.fa-headphones-alt:after, +.fa-duotone.fa-headphones-simple:after, +.fad.fa-headphones-alt:after, +.fad.fa-headphones-simple:after { + content: "\f58f\f58f" +} + +.fa-duotone.fa-sitemap:after, +.fad.fa-sitemap:after { + content: "\f0e8\f0e8" +} + +.fa-duotone.fa-pipe-section:after, +.fad.fa-pipe-section:after { + content: "\e438\e438" +} + +.fa-duotone.fa-space-station-moon-alt:after, +.fa-duotone.fa-space-station-moon-construction:after, +.fad.fa-space-station-moon-alt:after, +.fad.fa-space-station-moon-construction:after { + content: "\e034\e034" +} + +.fa-duotone.fa-circle-dollar-to-slot:after, +.fa-duotone.fa-donate:after, +.fad.fa-circle-dollar-to-slot:after, +.fad.fa-donate:after { + content: "\f4b9\f4b9" +} + +.fa-duotone.fa-memory:after, +.fad.fa-memory:after { + content: "\f538\f538" +} + +.fa-duotone.fa-face-sleeping:after, +.fad.fa-face-sleeping:after { + content: "\e38d\e38d" +} + +.fa-duotone.fa-road-spikes:after, +.fad.fa-road-spikes:after { + content: "\e568\e568" +} + +.fa-duotone.fa-fire-burner:after, +.fad.fa-fire-burner:after { + content: "\e4f1\e4f1" +} + +.fa-duotone.fa-squirrel:after, +.fad.fa-squirrel:after { + content: "\f71a\f71a" +} + +.fa-duotone.fa-arrow-to-top:after, +.fa-duotone.fa-arrow-up-to-line:after, +.fad.fa-arrow-to-top:after, +.fad.fa-arrow-up-to-line:after { + content: "\f341\f341" +} + +.fa-duotone.fa-flag:after, +.fad.fa-flag:after { + content: "\f024\f024" +} + +.fa-duotone.fa-face-cowboy-hat:after, +.fad.fa-face-cowboy-hat:after { + content: "\e36e\e36e" +} + +.fa-duotone.fa-hanukiah:after, +.fad.fa-hanukiah:after { + content: "\f6e6\f6e6" +} + +.fa-duotone.fa-chart-scatter-3d:after, +.fad.fa-chart-scatter-3d:after { + content: "\e0e8\e0e8" +} + +.fa-duotone.fa-display-chart-up:after, +.fad.fa-display-chart-up:after { + content: "\e5e3\e5e3" +} + +.fa-duotone.fa-square-code:after, +.fad.fa-square-code:after { + content: "\e267\e267" +} + +.fa-duotone.fa-feather:after, +.fad.fa-feather:after { + content: "\f52d\f52d" +} + +.fa-duotone.fa-volume-down:after, +.fa-duotone.fa-volume-low:after, +.fad.fa-volume-down:after, +.fad.fa-volume-low:after { + content: "\f027\f027" +} + +.fa-duotone.fa-times-to-slot:after, +.fa-duotone.fa-vote-nay:after, +.fa-duotone.fa-xmark-to-slot:after, +.fad.fa-times-to-slot:after, +.fad.fa-vote-nay:after, +.fad.fa-xmark-to-slot:after { + content: "\f771\f771" +} + +.fa-duotone.fa-box-alt:after, +.fa-duotone.fa-box-taped:after, +.fad.fa-box-alt:after, +.fad.fa-box-taped:after { + content: "\f49a\f49a" +} + +.fa-duotone.fa-comment-slash:after, +.fad.fa-comment-slash:after { + content: "\f4b3\f4b3" +} + +.fa-duotone.fa-swords:after, +.fad.fa-swords:after { + content: "\f71d\f71d" +} + +.fa-duotone.fa-cloud-sun-rain:after, +.fad.fa-cloud-sun-rain:after { + content: "\f743\f743" +} + +.fa-duotone.fa-album:after, +.fad.fa-album:after { + content: "\f89f\f89f" +} + +.fa-duotone.fa-circle-n:after, +.fad.fa-circle-n:after { + content: "\e118\e118" +} + +.fa-duotone.fa-compress:after, +.fad.fa-compress:after { + content: "\f066\f066" +} + +.fa-duotone.fa-wheat-alt:after, +.fa-duotone.fa-wheat-awn:after, +.fad.fa-wheat-alt:after, +.fad.fa-wheat-awn:after { + content: "\e2cd\e2cd" +} + +.fa-duotone.fa-ankh:after, +.fad.fa-ankh:after { + content: "\f644\f644" +} + +.fa-duotone.fa-hands-holding-child:after, +.fad.fa-hands-holding-child:after { + content: "\e4fa\e4fa" +} + +.fa-duotone.fa-asterisk:after, +.fad.fa-asterisk:after { + content: "\2a\2a" +} + +.fa-duotone.fa-key-skeleton-left-right:after, +.fad.fa-key-skeleton-left-right:after { + content: "\e3b4\e3b4" +} + +.fa-duotone.fa-comment-lines:after, +.fad.fa-comment-lines:after { + content: "\f4b0\f4b0" +} + +.fa-duotone.fa-luchador-mask:after, +.fa-duotone.fa-luchador:after, +.fa-duotone.fa-mask-luchador:after, +.fad.fa-luchador-mask:after, +.fad.fa-luchador:after, +.fad.fa-mask-luchador:after { + content: "\f455\f455" +} + +.fa-duotone.fa-check-square:after, +.fa-duotone.fa-square-check:after, +.fad.fa-check-square:after, +.fad.fa-square-check:after { + content: "\f14a\f14a" +} + +.fa-duotone.fa-shredder:after, +.fad.fa-shredder:after { + content: "\f68a\f68a" +} + +.fa-duotone.fa-book-open-alt:after, +.fa-duotone.fa-book-open-cover:after, +.fad.fa-book-open-alt:after, +.fad.fa-book-open-cover:after { + content: "\e0c0\e0c0" +} + +.fa-duotone.fa-sandwich:after, +.fad.fa-sandwich:after { + content: "\f81f\f81f" +} + +.fa-duotone.fa-peseta-sign:after, +.fad.fa-peseta-sign:after { + content: "\e221\e221" +} + +.fa-duotone.fa-parking-slash:after, +.fa-duotone.fa-square-parking-slash:after, +.fad.fa-parking-slash:after, +.fad.fa-square-parking-slash:after { + content: "\f617\f617" +} + +.fa-duotone.fa-train-tunnel:after, +.fad.fa-train-tunnel:after { + content: "\e454\e454" +} + +.fa-duotone.fa-header:after, +.fa-duotone.fa-heading:after, +.fad.fa-header:after, +.fad.fa-heading:after { + content: "\f1dc\f1dc" +} + +.fa-duotone.fa-ghost:after, +.fad.fa-ghost:after { + content: "\f6e2\f6e2" +} + +.fa-duotone.fa-face-anguished:after, +.fad.fa-face-anguished:after { + content: "\e369\e369" +} + +.fa-duotone.fa-hockey-sticks:after, +.fad.fa-hockey-sticks:after { + content: "\f454\f454" +} + +.fa-duotone.fa-abacus:after, +.fad.fa-abacus:after { + content: "\f640\f640" +} + +.fa-duotone.fa-film-alt:after, +.fa-duotone.fa-film-simple:after, +.fad.fa-film-alt:after, +.fad.fa-film-simple:after { + content: "\f3a0\f3a0" +} + +.fa-duotone.fa-list-squares:after, +.fa-duotone.fa-list:after, +.fad.fa-list-squares:after, +.fad.fa-list:after { + content: "\f03a\f03a" +} + +.fa-duotone.fa-tree-palm:after, +.fad.fa-tree-palm:after { + content: "\f82b\f82b" +} + +.fa-duotone.fa-phone-square-alt:after, +.fa-duotone.fa-square-phone-flip:after, +.fad.fa-phone-square-alt:after, +.fad.fa-square-phone-flip:after { + content: "\f87b\f87b" +} + +.fa-duotone.fa-cart-plus:after, +.fad.fa-cart-plus:after { + content: "\f217\f217" +} + +.fa-duotone.fa-gamepad:after, +.fad.fa-gamepad:after { + content: "\f11b\f11b" +} + +.fa-duotone.fa-border-center-v:after, +.fad.fa-border-center-v:after { + content: "\f89d\f89d" +} + +.fa-duotone.fa-circle-dot:after, +.fa-duotone.fa-dot-circle:after, +.fad.fa-circle-dot:after, +.fad.fa-dot-circle:after { + content: "\f192\f192" +} + +.fa-duotone.fa-clipboard-medical:after, +.fad.fa-clipboard-medical:after { + content: "\e133\e133" +} + +.fa-duotone.fa-dizzy:after, +.fa-duotone.fa-face-dizzy:after, +.fad.fa-dizzy:after, +.fad.fa-face-dizzy:after { + content: "\f567\f567" +} + +.fa-duotone.fa-egg:after, +.fad.fa-egg:after { + content: "\f7fb\f7fb" +} + +.fa-duotone.fa-arrow-alt-to-top:after, +.fa-duotone.fa-up-to-line:after, +.fad.fa-arrow-alt-to-top:after, +.fad.fa-up-to-line:after { + content: "\f34d\f34d" +} + +.fa-duotone.fa-house-medical-circle-xmark:after, +.fad.fa-house-medical-circle-xmark:after { + content: "\e513\e513" +} + +.fa-duotone.fa-watch-fitness:after, +.fad.fa-watch-fitness:after { + content: "\f63e\f63e" +} + +.fa-duotone.fa-clock-nine-thirty:after, +.fad.fa-clock-nine-thirty:after { + content: "\e34d\e34d" +} + +.fa-duotone.fa-campground:after, +.fad.fa-campground:after { + content: "\f6bb\f6bb" +} + +.fa-duotone.fa-folder-plus:after, +.fad.fa-folder-plus:after { + content: "\f65e\f65e" +} + +.fa-duotone.fa-jug:after, +.fad.fa-jug:after { + content: "\f8c6\f8c6" +} + +.fa-duotone.fa-futbol-ball:after, +.fa-duotone.fa-futbol:after, +.fa-duotone.fa-soccer-ball:after, +.fad.fa-futbol-ball:after, +.fad.fa-futbol:after, +.fad.fa-soccer-ball:after { + content: "\f1e3\f1e3" +} + +.fa-duotone.fa-snow-blowing:after, +.fad.fa-snow-blowing:after { + content: "\f761\f761" +} + +.fa-duotone.fa-paint-brush:after, +.fa-duotone.fa-paintbrush:after, +.fad.fa-paint-brush:after, +.fad.fa-paintbrush:after { + content: "\f1fc\f1fc" +} + +.fa-duotone.fa-lock:after, +.fad.fa-lock:after { + content: "\f023\f023" +} + +.fa-duotone.fa-arrow-down-from-line:after, +.fa-duotone.fa-arrow-from-top:after, +.fad.fa-arrow-down-from-line:after, +.fad.fa-arrow-from-top:after { + content: "\f345\f345" +} + +.fa-duotone.fa-gas-pump:after, +.fad.fa-gas-pump:after { + content: "\f52f\f52f" +} + +.fa-duotone.fa-signal-alt-slash:after, +.fa-duotone.fa-signal-bars-slash:after, +.fad.fa-signal-alt-slash:after, +.fad.fa-signal-bars-slash:after { + content: "\f694\f694" +} + +.fa-duotone.fa-monkey:after, +.fad.fa-monkey:after { + content: "\f6fb\f6fb" +} + +.fa-duotone.fa-pro:after, +.fa-duotone.fa-rectangle-pro:after, +.fad.fa-pro:after, +.fad.fa-rectangle-pro:after { + content: "\e235\e235" +} + +.fa-duotone.fa-house-night:after, +.fad.fa-house-night:after { + content: "\e010\e010" +} + +.fa-duotone.fa-hot-tub-person:after, +.fa-duotone.fa-hot-tub:after, +.fad.fa-hot-tub-person:after, +.fad.fa-hot-tub:after { + content: "\f593\f593" +} + +.fa-duotone.fa-globe-pointer:after, +.fad.fa-globe-pointer:after { + content: "\e60e\e60e" +} + +.fa-duotone.fa-blanket:after, +.fad.fa-blanket:after { + content: "\f498\f498" +} + +.fa-duotone.fa-map-location:after, +.fa-duotone.fa-map-marked:after, +.fad.fa-map-location:after, +.fad.fa-map-marked:after { + content: "\f59f\f59f" +} + +.fa-duotone.fa-house-flood-water:after, +.fad.fa-house-flood-water:after { + content: "\e50e\e50e" +} + +.fa-duotone.fa-comments-question-check:after, +.fad.fa-comments-question-check:after { + content: "\e14f\e14f" +} + +.fa-duotone.fa-tree:after, +.fad.fa-tree:after { + content: "\f1bb\f1bb" +} + +.fa-duotone.fa-arrows-cross:after, +.fad.fa-arrows-cross:after { + content: "\e0a2\e0a2" +} + +.fa-duotone.fa-backpack:after, +.fad.fa-backpack:after { + content: "\f5d4\f5d4" +} + +.fa-duotone.fa-square-small:after, +.fad.fa-square-small:after { + content: "\e27e\e27e" +} + +.fa-duotone.fa-folder-arrow-up:after, +.fa-duotone.fa-folder-upload:after, +.fad.fa-folder-arrow-up:after, +.fad.fa-folder-upload:after { + content: "\e054\e054" +} + +.fa-duotone.fa-bridge-lock:after, +.fad.fa-bridge-lock:after { + content: "\e4cc\e4cc" +} + +.fa-duotone.fa-crosshairs-simple:after, +.fad.fa-crosshairs-simple:after { + content: "\e59f\e59f" +} + +.fa-duotone.fa-sack-dollar:after, +.fad.fa-sack-dollar:after { + content: "\f81d\f81d" +} + +.fa-duotone.fa-edit:after, +.fa-duotone.fa-pen-to-square:after, +.fad.fa-edit:after, +.fad.fa-pen-to-square:after { + content: "\f044\f044" +} + +.fa-duotone.fa-sliders-h-square:after, +.fa-duotone.fa-square-sliders:after, +.fad.fa-sliders-h-square:after, +.fad.fa-square-sliders:after { + content: "\f3f0\f3f0" +} + +.fa-duotone.fa-car-side:after, +.fad.fa-car-side:after { + content: "\f5e4\f5e4" +} + +.fa-duotone.fa-comment-middle-top-alt:after, +.fa-duotone.fa-message-middle-top:after, +.fad.fa-comment-middle-top-alt:after, +.fad.fa-message-middle-top:after { + content: "\e1e2\e1e2" +} + +.fa-duotone.fa-lightbulb-on:after, +.fad.fa-lightbulb-on:after { + content: "\f672\f672" +} + +.fa-duotone.fa-knife:after, +.fa-duotone.fa-utensil-knife:after, +.fad.fa-knife:after, +.fad.fa-utensil-knife:after { + content: "\f2e4\f2e4" +} + +.fa-duotone.fa-share-alt:after, +.fa-duotone.fa-share-nodes:after, +.fad.fa-share-alt:after, +.fad.fa-share-nodes:after { + content: "\f1e0\f1e0" +} + +.fa-duotone.fa-display-chart-up-circle-dollar:after, +.fad.fa-display-chart-up-circle-dollar:after { + content: "\e5e6\e5e6" +} + +.fa-duotone.fa-wave-sine:after, +.fad.fa-wave-sine:after { + content: "\f899\f899" +} + +.fa-duotone.fa-heart-circle-minus:after, +.fad.fa-heart-circle-minus:after { + content: "\e4ff\e4ff" +} + +.fa-duotone.fa-circle-w:after, +.fad.fa-circle-w:after { + content: "\e12c\e12c" +} + +.fa-duotone.fa-calendar-circle:after, +.fa-duotone.fa-circle-calendar:after, +.fad.fa-calendar-circle:after, +.fad.fa-circle-calendar:after { + content: "\e102\e102" +} + +.fa-duotone.fa-hourglass-2:after, +.fa-duotone.fa-hourglass-half:after, +.fad.fa-hourglass-2:after, +.fad.fa-hourglass-half:after { + content: "\f252\f252" +} + +.fa-duotone.fa-microscope:after, +.fad.fa-microscope:after { + content: "\f610\f610" +} + +.fa-duotone.fa-sunset:after, +.fad.fa-sunset:after { + content: "\f767\f767" +} + +.fa-duotone.fa-sink:after, +.fad.fa-sink:after { + content: "\e06d\e06d" +} + +.fa-duotone.fa-calendar-exclamation:after, +.fad.fa-calendar-exclamation:after { + content: "\f334\f334" +} + +.fa-duotone.fa-truck-container-empty:after, +.fad.fa-truck-container-empty:after { + content: "\e2b5\e2b5" +} + +.fa-duotone.fa-hand-heart:after, +.fad.fa-hand-heart:after { + content: "\f4bc\f4bc" +} + +.fa-duotone.fa-bag-shopping:after, +.fa-duotone.fa-shopping-bag:after, +.fad.fa-bag-shopping:after, +.fad.fa-shopping-bag:after { + content: "\f290\f290" +} + +.fa-duotone.fa-arrow-down-z-a:after, +.fa-duotone.fa-sort-alpha-desc:after, +.fa-duotone.fa-sort-alpha-down-alt:after, +.fad.fa-arrow-down-z-a:after, +.fad.fa-sort-alpha-desc:after, +.fad.fa-sort-alpha-down-alt:after { + content: "\f881\f881" +} + +.fa-duotone.fa-mitten:after, +.fad.fa-mitten:after { + content: "\f7b5\f7b5" +} + +.fa-duotone.fa-reply-clock:after, +.fa-duotone.fa-reply-time:after, +.fad.fa-reply-clock:after, +.fad.fa-reply-time:after { + content: "\e239\e239" +} + +.fa-duotone.fa-person-rays:after, +.fad.fa-person-rays:after { + content: "\e54d\e54d" +} + +.fa-duotone.fa-arrow-alt-right:after, +.fa-duotone.fa-right:after, +.fad.fa-arrow-alt-right:after, +.fad.fa-right:after { + content: "\f356\f356" +} + +.fa-duotone.fa-circle-f:after, +.fad.fa-circle-f:after { + content: "\e10e\e10e" +} + +.fa-duotone.fa-users:after, +.fad.fa-users:after { + content: "\f0c0\f0c0" +} + +.fa-duotone.fa-face-pleading:after, +.fad.fa-face-pleading:after { + content: "\e386\e386" +} + +.fa-duotone.fa-eye-slash:after, +.fad.fa-eye-slash:after { + content: "\f070\f070" +} + +.fa-duotone.fa-flask-vial:after, +.fad.fa-flask-vial:after { + content: "\e4f3\e4f3" +} + +.fa-duotone.fa-police-box:after, +.fad.fa-police-box:after { + content: "\e021\e021" +} + +.fa-duotone.fa-cucumber:after, +.fad.fa-cucumber:after { + content: "\e401\e401" +} + +.fa-duotone.fa-head-side-brain:after, +.fad.fa-head-side-brain:after { + content: "\f808\f808" +} + +.fa-duotone.fa-hand-paper:after, +.fa-duotone.fa-hand:after, +.fad.fa-hand-paper:after, +.fad.fa-hand:after { + content: "\f256\f256" +} + +.fa-duotone.fa-biking-mountain:after, +.fa-duotone.fa-person-biking-mountain:after, +.fad.fa-biking-mountain:after, +.fad.fa-person-biking-mountain:after { + content: "\f84b\f84b" +} + +.fa-duotone.fa-utensils-slash:after, +.fad.fa-utensils-slash:after { + content: "\e464\e464" +} + +.fa-duotone.fa-print-magnifying-glass:after, +.fa-duotone.fa-print-search:after, +.fad.fa-print-magnifying-glass:after, +.fad.fa-print-search:after { + content: "\f81a\f81a" +} + +.fa-duotone.fa-turn-right:after, +.fad.fa-turn-right:after { + content: "\e639\e639" +} + +.fa-duotone.fa-folder-bookmark:after, +.fad.fa-folder-bookmark:after { + content: "\e186\e186" +} + +.fa-duotone.fa-arrow-turn-left-down:after, +.fad.fa-arrow-turn-left-down:after { + content: "\e633\e633" +} + +.fa-duotone.fa-om:after, +.fad.fa-om:after { + content: "\f679\f679" +} + +.fa-duotone.fa-pi:after, +.fad.fa-pi:after { + content: "\f67e\f67e" +} + +.fa-duotone.fa-flask-potion:after, +.fa-duotone.fa-flask-round-potion:after, +.fad.fa-flask-potion:after, +.fad.fa-flask-round-potion:after { + content: "\f6e1\f6e1" +} + +.fa-duotone.fa-face-shush:after, +.fad.fa-face-shush:after { + content: "\e38c\e38c" +} + +.fa-duotone.fa-worm:after, +.fad.fa-worm:after { + content: "\e599\e599" +} + +.fa-duotone.fa-house-circle-xmark:after, +.fad.fa-house-circle-xmark:after { + content: "\e50b\e50b" +} + +.fa-duotone.fa-plug:after, +.fad.fa-plug:after { + content: "\f1e6\f1e6" +} + +.fa-duotone.fa-calendar-circle-exclamation:after, +.fad.fa-calendar-circle-exclamation:after { + content: "\e46e\e46e" +} + +.fa-duotone.fa-square-i:after, +.fad.fa-square-i:after { + content: "\e272\e272" +} + +.fa-duotone.fa-chevron-up:after, +.fad.fa-chevron-up:after { + content: "\f077\f077" +} + +.fa-duotone.fa-face-saluting:after, +.fad.fa-face-saluting:after { + content: "\e484\e484" +} + +.fa-duotone.fa-gauge-simple-low:after, +.fa-duotone.fa-tachometer-slow:after, +.fad.fa-gauge-simple-low:after, +.fad.fa-tachometer-slow:after { + content: "\f62c\f62c" +} + +.fa-duotone.fa-face-persevering:after, +.fad.fa-face-persevering:after { + content: "\e385\e385" +} + +.fa-duotone.fa-camera-circle:after, +.fa-duotone.fa-circle-camera:after, +.fad.fa-camera-circle:after, +.fad.fa-circle-camera:after { + content: "\e103\e103" +} + +.fa-duotone.fa-hand-spock:after, +.fad.fa-hand-spock:after { + content: "\f259\f259" +} + +.fa-duotone.fa-spider-web:after, +.fad.fa-spider-web:after { + content: "\f719\f719" +} + +.fa-duotone.fa-circle-microphone:after, +.fa-duotone.fa-microphone-circle:after, +.fad.fa-circle-microphone:after, +.fad.fa-microphone-circle:after { + content: "\e116\e116" +} + +.fa-duotone.fa-book-arrow-up:after, +.fad.fa-book-arrow-up:after { + content: "\e0ba\e0ba" +} + +.fa-duotone.fa-popsicle:after, +.fad.fa-popsicle:after { + content: "\e43e\e43e" +} + +.fa-duotone.fa-command:after, +.fad.fa-command:after { + content: "\e142\e142" +} + +.fa-duotone.fa-blinds:after, +.fad.fa-blinds:after { + content: "\f8fb\f8fb" +} + +.fa-duotone.fa-stopwatch:after, +.fad.fa-stopwatch:after { + content: "\f2f2\f2f2" +} + +.fa-duotone.fa-saxophone:after, +.fad.fa-saxophone:after { + content: "\f8dc\f8dc" +} + +.fa-duotone.fa-square-2:after, +.fad.fa-square-2:after { + content: "\e257\e257" +} + +.fa-duotone.fa-field-hockey-stick-ball:after, +.fa-duotone.fa-field-hockey:after, +.fad.fa-field-hockey-stick-ball:after, +.fad.fa-field-hockey:after { + content: "\f44c\f44c" +} + +.fa-duotone.fa-arrow-up-square-triangle:after, +.fa-duotone.fa-sort-shapes-up-alt:after, +.fad.fa-arrow-up-square-triangle:after, +.fad.fa-sort-shapes-up-alt:after { + content: "\f88b\f88b" +} + +.fa-duotone.fa-face-scream:after, +.fad.fa-face-scream:after { + content: "\e38b\e38b" +} + +.fa-duotone.fa-square-m:after, +.fad.fa-square-m:after { + content: "\e276\e276" +} + +.fa-duotone.fa-camera-web:after, +.fa-duotone.fa-webcam:after, +.fad.fa-camera-web:after, +.fad.fa-webcam:after { + content: "\f832\f832" +} + +.fa-duotone.fa-comment-arrow-down:after, +.fad.fa-comment-arrow-down:after { + content: "\e143\e143" +} + +.fa-duotone.fa-lightbulb-cfl:after, +.fad.fa-lightbulb-cfl:after { + content: "\e5a6\e5a6" +} + +.fa-duotone.fa-window-frame-open:after, +.fad.fa-window-frame-open:after { + content: "\e050\e050" +} + +.fa-duotone.fa-face-kiss:after, +.fa-duotone.fa-kiss:after, +.fad.fa-face-kiss:after, +.fad.fa-kiss:after { + content: "\f596\f596" +} + +.fa-duotone.fa-bridge-circle-xmark:after, +.fad.fa-bridge-circle-xmark:after { + content: "\e4cb\e4cb" +} + +.fa-duotone.fa-period:after, +.fad.fa-period:after { + content: "\2e\2e" +} + +.fa-duotone.fa-face-grin-tongue:after, +.fa-duotone.fa-grin-tongue:after, +.fad.fa-face-grin-tongue:after, +.fad.fa-grin-tongue:after { + content: "\f589\f589" +} + +.fa-duotone.fa-up-to-dotted-line:after, +.fad.fa-up-to-dotted-line:after { + content: "\e457\e457" +} + +.fa-duotone.fa-thought-bubble:after, +.fad.fa-thought-bubble:after { + content: "\e32e\e32e" +} + +.fa-duotone.fa-skeleton-ribs:after, +.fad.fa-skeleton-ribs:after { + content: "\e5cb\e5cb" +} + +.fa-duotone.fa-raygun:after, +.fad.fa-raygun:after { + content: "\e025\e025" +} + +.fa-duotone.fa-flute:after, +.fad.fa-flute:after { + content: "\f8b9\f8b9" +} + +.fa-duotone.fa-acorn:after, +.fad.fa-acorn:after { + content: "\f6ae\f6ae" +} + +.fa-duotone.fa-video-arrow-up-right:after, +.fad.fa-video-arrow-up-right:after { + content: "\e2c9\e2c9" +} + +.fa-duotone.fa-grate-droplet:after, +.fad.fa-grate-droplet:after { + content: "\e194\e194" +} + +.fa-duotone.fa-seal-exclamation:after, +.fad.fa-seal-exclamation:after { + content: "\e242\e242" +} + +.fa-duotone.fa-chess-bishop:after, +.fad.fa-chess-bishop:after { + content: "\f43a\f43a" +} + +.fa-duotone.fa-message-sms:after, +.fad.fa-message-sms:after { + content: "\e1e5\e1e5" +} + +.fa-duotone.fa-coffee-beans:after, +.fad.fa-coffee-beans:after { + content: "\e13f\e13f" +} + +.fa-duotone.fa-hat-witch:after, +.fad.fa-hat-witch:after { + content: "\f6e7\f6e7" +} + +.fa-duotone.fa-face-grin-wink:after, +.fa-duotone.fa-grin-wink:after, +.fad.fa-face-grin-wink:after, +.fad.fa-grin-wink:after { + content: "\f58c\f58c" +} + +.fa-duotone.fa-clock-three-thirty:after, +.fad.fa-clock-three-thirty:after { + content: "\e357\e357" +} + +.fa-duotone.fa-deaf:after, +.fa-duotone.fa-deafness:after, +.fa-duotone.fa-ear-deaf:after, +.fa-duotone.fa-hard-of-hearing:after, +.fad.fa-deaf:after, +.fad.fa-deafness:after, +.fad.fa-ear-deaf:after, +.fad.fa-hard-of-hearing:after { + content: "\f2a4\f2a4" +} + +.fa-duotone.fa-alarm-clock:after, +.fad.fa-alarm-clock:after { + content: "\f34e\f34e" +} + +.fa-duotone.fa-eclipse:after, +.fad.fa-eclipse:after { + content: "\f749\f749" +} + +.fa-duotone.fa-face-relieved:after, +.fad.fa-face-relieved:after { + content: "\e389\e389" +} + +.fa-duotone.fa-road-circle-check:after, +.fad.fa-road-circle-check:after { + content: "\e564\e564" +} + +.fa-duotone.fa-dice-five:after, +.fad.fa-dice-five:after { + content: "\f523\f523" +} + +.fa-duotone.fa-minus-octagon:after, +.fa-duotone.fa-octagon-minus:after, +.fad.fa-minus-octagon:after, +.fad.fa-octagon-minus:after { + content: "\f308\f308" +} + +.fa-duotone.fa-rss-square:after, +.fa-duotone.fa-square-rss:after, +.fad.fa-rss-square:after, +.fad.fa-square-rss:after { + content: "\f143\f143" +} + +.fa-duotone.fa-face-zany:after, +.fad.fa-face-zany:after { + content: "\e3a4\e3a4" +} + +.fa-duotone.fa-tricycle:after, +.fad.fa-tricycle:after { + content: "\e5c3\e5c3" +} + +.fa-duotone.fa-land-mine-on:after, +.fad.fa-land-mine-on:after { + content: "\e51b\e51b" +} + +.fa-duotone.fa-square-arrow-up-left:after, +.fad.fa-square-arrow-up-left:after { + content: "\e263\e263" +} + +.fa-duotone.fa-i-cursor:after, +.fad.fa-i-cursor:after { + content: "\f246\f246" +} + +.fa-duotone.fa-chart-mixed-up-circle-dollar:after, +.fad.fa-chart-mixed-up-circle-dollar:after { + content: "\e5d9\e5d9" +} + +.fa-duotone.fa-salt-shaker:after, +.fad.fa-salt-shaker:after { + content: "\e446\e446" +} + +.fa-duotone.fa-stamp:after, +.fad.fa-stamp:after { + content: "\f5bf\f5bf" +} + +.fa-duotone.fa-file-plus:after, +.fad.fa-file-plus:after { + content: "\f319\f319" +} + +.fa-duotone.fa-draw-square:after, +.fad.fa-draw-square:after { + content: "\f5ef\f5ef" +} + +.fa-duotone.fa-toilet-paper-reverse-slash:after, +.fa-duotone.fa-toilet-paper-under-slash:after, +.fad.fa-toilet-paper-reverse-slash:after, +.fad.fa-toilet-paper-under-slash:after { + content: "\e2a1\e2a1" +} + +.fa-duotone.fa-stairs:after, +.fad.fa-stairs:after { + content: "\e289\e289" +} + +.fa-duotone.fa-drone-alt:after, +.fa-duotone.fa-drone-front:after, +.fad.fa-drone-alt:after, +.fad.fa-drone-front:after { + content: "\f860\f860" +} + +.fa-duotone.fa-glass-empty:after, +.fad.fa-glass-empty:after { + content: "\e191\e191" +} + +.fa-duotone.fa-dial-high:after, +.fad.fa-dial-high:after { + content: "\e15c\e15c" +} + +.fa-duotone.fa-user-construction:after, +.fa-duotone.fa-user-hard-hat:after, +.fa-duotone.fa-user-helmet-safety:after, +.fad.fa-user-construction:after, +.fad.fa-user-hard-hat:after, +.fad.fa-user-helmet-safety:after { + content: "\f82c\f82c" +} + +.fa-duotone.fa-i:after, +.fad.fa-i:after { + content: "\49\49" +} + +.fa-duotone.fa-hryvnia-sign:after, +.fa-duotone.fa-hryvnia:after, +.fad.fa-hryvnia-sign:after, +.fad.fa-hryvnia:after { + content: "\f6f2\f6f2" +} + +.fa-duotone.fa-arrow-down-left-and-arrow-up-right-to-center:after, +.fad.fa-arrow-down-left-and-arrow-up-right-to-center:after { + content: "\e092\e092" +} + +.fa-duotone.fa-pills:after, +.fad.fa-pills:after { + content: "\f484\f484" +} + +.fa-duotone.fa-face-grin-wide:after, +.fa-duotone.fa-grin-alt:after, +.fad.fa-face-grin-wide:after, +.fad.fa-grin-alt:after { + content: "\f581\f581" +} + +.fa-duotone.fa-tooth:after, +.fad.fa-tooth:after { + content: "\f5c9\f5c9" +} + +.fa-duotone.fa-basketball-hoop:after, +.fad.fa-basketball-hoop:after { + content: "\f435\f435" +} + +.fa-duotone.fa-objects-align-bottom:after, +.fad.fa-objects-align-bottom:after { + content: "\e3bb\e3bb" +} + +.fa-duotone.fa-v:after, +.fad.fa-v:after { + content: "\56\56" +} + +.fa-duotone.fa-sparkles:after, +.fad.fa-sparkles:after { + content: "\f890\f890" +} + +.fa-duotone.fa-squid:after, +.fad.fa-squid:after { + content: "\e450\e450" +} + +.fa-duotone.fa-leafy-green:after, +.fad.fa-leafy-green:after { + content: "\e41d\e41d" +} + +.fa-duotone.fa-circle-arrow-up-right:after, +.fad.fa-circle-arrow-up-right:after { + content: "\e0fc\e0fc" +} + +.fa-duotone.fa-calendars:after, +.fad.fa-calendars:after { + content: "\e0d7\e0d7" +} + +.fa-duotone.fa-bangladeshi-taka-sign:after, +.fad.fa-bangladeshi-taka-sign:after { + content: "\e2e6\e2e6" +} + +.fa-duotone.fa-bicycle:after, +.fad.fa-bicycle:after { + content: "\f206\f206" +} + +.fa-duotone.fa-hammer-war:after, +.fad.fa-hammer-war:after { + content: "\f6e4\f6e4" +} + +.fa-duotone.fa-circle-d:after, +.fad.fa-circle-d:after { + content: "\e104\e104" +} + +.fa-duotone.fa-spider-black-widow:after, +.fad.fa-spider-black-widow:after { + content: "\f718\f718" +} + +.fa-duotone.fa-rod-asclepius:after, +.fa-duotone.fa-rod-snake:after, +.fa-duotone.fa-staff-aesculapius:after, +.fa-duotone.fa-staff-snake:after, +.fad.fa-rod-asclepius:after, +.fad.fa-rod-snake:after, +.fad.fa-staff-aesculapius:after, +.fad.fa-staff-snake:after { + content: "\e579\e579" +} + +.fa-duotone.fa-pear:after, +.fad.fa-pear:after { + content: "\e20c\e20c" +} + +.fa-duotone.fa-head-side-cough-slash:after, +.fad.fa-head-side-cough-slash:after { + content: "\e062\e062" +} + +.fa-duotone.fa-file-mov:after, +.fad.fa-file-mov:after { + content: "\e647\e647" +} + +.fa-duotone.fa-triangle:after, +.fad.fa-triangle:after { + content: "\f2ec\f2ec" +} + +.fa-duotone.fa-apartment:after, +.fad.fa-apartment:after { + content: "\e468\e468" +} + +.fa-duotone.fa-ambulance:after, +.fa-duotone.fa-truck-medical:after, +.fad.fa-ambulance:after, +.fad.fa-truck-medical:after { + content: "\f0f9\f0f9" +} + +.fa-duotone.fa-pepper:after, +.fad.fa-pepper:after { + content: "\e432\e432" +} + +.fa-duotone.fa-piano:after, +.fad.fa-piano:after { + content: "\f8d4\f8d4" +} + +.fa-duotone.fa-gun-squirt:after, +.fad.fa-gun-squirt:after { + content: "\e19d\e19d" +} + +.fa-duotone.fa-wheat-awn-circle-exclamation:after, +.fad.fa-wheat-awn-circle-exclamation:after { + content: "\e598\e598" +} + +.fa-duotone.fa-snowman:after, +.fad.fa-snowman:after { + content: "\f7d0\f7d0" +} + +.fa-duotone.fa-user-alien:after, +.fad.fa-user-alien:after { + content: "\e04a\e04a" +} + +.fa-duotone.fa-shield-check:after, +.fad.fa-shield-check:after { + content: "\f2f7\f2f7" +} + +.fa-duotone.fa-mortar-pestle:after, +.fad.fa-mortar-pestle:after { + content: "\f5a7\f5a7" +} + +.fa-duotone.fa-road-barrier:after, +.fad.fa-road-barrier:after { + content: "\e562\e562" +} + +.fa-duotone.fa-chart-candlestick:after, +.fad.fa-chart-candlestick:after { + content: "\e0e2\e0e2" +} + +.fa-duotone.fa-briefcase-blank:after, +.fad.fa-briefcase-blank:after { + content: "\e0c8\e0c8" +} + +.fa-duotone.fa-school:after, +.fad.fa-school:after { + content: "\f549\f549" +} + +.fa-duotone.fa-igloo:after, +.fad.fa-igloo:after { + content: "\f7ae\f7ae" +} + +.fa-duotone.fa-bracket-round:after, +.fa-duotone.fa-parenthesis:after, +.fad.fa-bracket-round:after, +.fad.fa-parenthesis:after { + content: "\28\28" +} + +.fa-duotone.fa-joint:after, +.fad.fa-joint:after { + content: "\f595\f595" +} + +.fa-duotone.fa-horse-saddle:after, +.fad.fa-horse-saddle:after { + content: "\f8c3\f8c3" +} + +.fa-duotone.fa-mug-marshmallows:after, +.fad.fa-mug-marshmallows:after { + content: "\f7b7\f7b7" +} + +.fa-duotone.fa-filters:after, +.fad.fa-filters:after { + content: "\e17e\e17e" +} + +.fa-duotone.fa-bell-on:after, +.fad.fa-bell-on:after { + content: "\f8fa\f8fa" +} + +.fa-duotone.fa-angle-right:after, +.fad.fa-angle-right:after { + content: "\f105\f105" +} + +.fa-duotone.fa-dial-med:after, +.fad.fa-dial-med:after { + content: "\e15f\e15f" +} + +.fa-duotone.fa-horse:after, +.fad.fa-horse:after { + content: "\f6f0\f6f0" +} + +.fa-duotone.fa-q:after, +.fad.fa-q:after { + content: "\51\51" +} + +.fa-duotone.fa-monitor-heart-rate:after, +.fa-duotone.fa-monitor-waveform:after, +.fad.fa-monitor-heart-rate:after, +.fad.fa-monitor-waveform:after { + content: "\f611\f611" +} + +.fa-duotone.fa-link-simple:after, +.fad.fa-link-simple:after { + content: "\e1cd\e1cd" +} + +.fa-duotone.fa-whistle:after, +.fad.fa-whistle:after { + content: "\f460\f460" +} + +.fa-duotone.fa-g:after, +.fad.fa-g:after { + content: "\47\47" +} + +.fa-duotone.fa-fragile:after, +.fa-duotone.fa-wine-glass-crack:after, +.fad.fa-fragile:after, +.fad.fa-wine-glass-crack:after { + content: "\f4bb\f4bb" +} + +.fa-duotone.fa-slot-machine:after, +.fad.fa-slot-machine:after { + content: "\e3ce\e3ce" +} + +.fa-duotone.fa-notes-medical:after, +.fad.fa-notes-medical:after { + content: "\f481\f481" +} + +.fa-duotone.fa-car-wash:after, +.fad.fa-car-wash:after { + content: "\f5e6\f5e6" +} + +.fa-duotone.fa-escalator:after, +.fad.fa-escalator:after { + content: "\e171\e171" +} + +.fa-duotone.fa-comment-image:after, +.fad.fa-comment-image:after { + content: "\e148\e148" +} + +.fa-duotone.fa-temperature-2:after, +.fa-duotone.fa-temperature-half:after, +.fa-duotone.fa-thermometer-2:after, +.fa-duotone.fa-thermometer-half:after, +.fad.fa-temperature-2:after, +.fad.fa-temperature-half:after, +.fad.fa-thermometer-2:after, +.fad.fa-thermometer-half:after { + content: "\f2c9\f2c9" +} + +.fa-duotone.fa-dong-sign:after, +.fad.fa-dong-sign:after { + content: "\e169\e169" +} + +.fa-duotone.fa-donut:after, +.fa-duotone.fa-doughnut:after, +.fad.fa-donut:after, +.fad.fa-doughnut:after { + content: "\e406\e406" +} + +.fa-duotone.fa-capsules:after, +.fad.fa-capsules:after { + content: "\f46b\f46b" +} + +.fa-duotone.fa-poo-bolt:after, +.fa-duotone.fa-poo-storm:after, +.fad.fa-poo-bolt:after, +.fad.fa-poo-storm:after { + content: "\f75a\f75a" +} + +.fa-duotone.fa-tally-1:after, +.fad.fa-tally-1:after { + content: "\e294\e294" +} + +.fa-duotone.fa-file-vector:after, +.fad.fa-file-vector:after { + content: "\e64c\e64c" +} + +.fa-duotone.fa-face-frown-open:after, +.fa-duotone.fa-frown-open:after, +.fad.fa-face-frown-open:after, +.fad.fa-frown-open:after { + content: "\f57a\f57a" +} + +.fa-duotone.fa-square-dashed:after, +.fad.fa-square-dashed:after { + content: "\e269\e269" +} + +.fa-duotone.fa-bag-shopping-plus:after, +.fad.fa-bag-shopping-plus:after { + content: "\e651\e651" +} + +.fa-duotone.fa-square-j:after, +.fad.fa-square-j:after { + content: "\e273\e273" +} + +.fa-duotone.fa-hand-point-up:after, +.fad.fa-hand-point-up:after { + content: "\f0a6\f0a6" +} + +.fa-duotone.fa-money-bill:after, +.fad.fa-money-bill:after { + content: "\f0d6\f0d6" +} + +.fa-duotone.fa-arrow-up-big-small:after, +.fa-duotone.fa-sort-size-up:after, +.fad.fa-arrow-up-big-small:after, +.fad.fa-sort-size-up:after { + content: "\f88e\f88e" +} + +.fa-duotone.fa-barcode-read:after, +.fad.fa-barcode-read:after { + content: "\f464\f464" +} + +.fa-duotone.fa-baguette:after, +.fad.fa-baguette:after { + content: "\e3d8\e3d8" +} + +.fa-duotone.fa-bowl-soft-serve:after, +.fad.fa-bowl-soft-serve:after { + content: "\e46b\e46b" +} + +.fa-duotone.fa-face-holding-back-tears:after, +.fad.fa-face-holding-back-tears:after { + content: "\e482\e482" +} + +.fa-duotone.fa-arrow-alt-square-up:after, +.fa-duotone.fa-square-up:after, +.fad.fa-arrow-alt-square-up:after, +.fad.fa-square-up:after { + content: "\f353\f353" +} + +.fa-duotone.fa-subway-tunnel:after, +.fa-duotone.fa-train-subway-tunnel:after, +.fad.fa-subway-tunnel:after, +.fad.fa-train-subway-tunnel:after { + content: "\e2a3\e2a3" +} + +.fa-duotone.fa-exclamation-square:after, +.fa-duotone.fa-square-exclamation:after, +.fad.fa-exclamation-square:after, +.fad.fa-square-exclamation:after { + content: "\f321\f321" +} + +.fa-duotone.fa-semicolon:after, +.fad.fa-semicolon:after { + content: "\3b\3b" +} + +.fa-duotone.fa-bookmark:after, +.fad.fa-bookmark:after { + content: "\f02e\f02e" +} + +.fa-duotone.fa-fan-table:after, +.fad.fa-fan-table:after { + content: "\e004\e004" +} + +.fa-duotone.fa-align-justify:after, +.fad.fa-align-justify:after { + content: "\f039\f039" +} + +.fa-duotone.fa-battery-1:after, +.fa-duotone.fa-battery-low:after, +.fad.fa-battery-1:after, +.fad.fa-battery-low:after { + content: "\e0b1\e0b1" +} + +.fa-duotone.fa-credit-card-front:after, +.fad.fa-credit-card-front:after { + content: "\f38a\f38a" +} + +.fa-duotone.fa-brain-arrow-curved-right:after, +.fa-duotone.fa-mind-share:after, +.fad.fa-brain-arrow-curved-right:after, +.fad.fa-mind-share:after { + content: "\f677\f677" +} + +.fa-duotone.fa-umbrella-beach:after, +.fad.fa-umbrella-beach:after { + content: "\f5ca\f5ca" +} + +.fa-duotone.fa-helmet-un:after, +.fad.fa-helmet-un:after { + content: "\e503\e503" +} + +.fa-duotone.fa-location-smile:after, +.fa-duotone.fa-map-marker-smile:after, +.fad.fa-location-smile:after, +.fad.fa-map-marker-smile:after { + content: "\f60d\f60d" +} + +.fa-duotone.fa-arrow-left-to-line:after, +.fa-duotone.fa-arrow-to-left:after, +.fad.fa-arrow-left-to-line:after, +.fad.fa-arrow-to-left:after { + content: "\f33e\f33e" +} + +.fa-duotone.fa-bullseye:after, +.fad.fa-bullseye:after { + content: "\f140\f140" +} + +.fa-duotone.fa-nigiri:after, +.fa-duotone.fa-sushi:after, +.fad.fa-nigiri:after, +.fad.fa-sushi:after { + content: "\e48a\e48a" +} + +.fa-duotone.fa-comment-alt-captions:after, +.fa-duotone.fa-message-captions:after, +.fad.fa-comment-alt-captions:after, +.fad.fa-message-captions:after { + content: "\e1de\e1de" +} + +.fa-duotone.fa-trash-list:after, +.fad.fa-trash-list:after { + content: "\e2b1\e2b1" +} + +.fa-duotone.fa-bacon:after, +.fad.fa-bacon:after { + content: "\f7e5\f7e5" +} + +.fa-duotone.fa-option:after, +.fad.fa-option:after { + content: "\e318\e318" +} + +.fa-duotone.fa-raccoon:after, +.fad.fa-raccoon:after { + content: "\e613\e613" +} + +.fa-duotone.fa-hand-point-down:after, +.fad.fa-hand-point-down:after { + content: "\f0a7\f0a7" +} + +.fa-duotone.fa-arrow-up-from-bracket:after, +.fad.fa-arrow-up-from-bracket:after { + content: "\e09a\e09a" +} + +.fa-duotone.fa-head-side-gear:after, +.fad.fa-head-side-gear:after { + content: "\e611\e611" +} + +.fa-duotone.fa-trash-plus:after, +.fad.fa-trash-plus:after { + content: "\e2b2\e2b2" +} + +.fa-duotone.fa-objects-align-top:after, +.fad.fa-objects-align-top:after { + content: "\e3c0\e3c0" +} + +.fa-duotone.fa-folder-blank:after, +.fa-duotone.fa-folder:after, +.fad.fa-folder-blank:after, +.fad.fa-folder:after { + content: "\f07b\f07b" +} + +.fa-duotone.fa-face-anxious-sweat:after, +.fad.fa-face-anxious-sweat:after { + content: "\e36a\e36a" +} + +.fa-duotone.fa-credit-card-blank:after, +.fad.fa-credit-card-blank:after { + content: "\f389\f389" +} + +.fa-duotone.fa-file-medical-alt:after, +.fa-duotone.fa-file-waveform:after, +.fad.fa-file-medical-alt:after, +.fad.fa-file-waveform:after { + content: "\f478\f478" +} + +.fa-duotone.fa-microchip-ai:after, +.fad.fa-microchip-ai:after { + content: "\e1ec\e1ec" +} + +.fa-duotone.fa-mug:after, +.fad.fa-mug:after { + content: "\f874\f874" +} + +.fa-duotone.fa-plane-up-slash:after, +.fad.fa-plane-up-slash:after { + content: "\e22e\e22e" +} + +.fa-duotone.fa-radiation:after, +.fad.fa-radiation:after { + content: "\f7b9\f7b9" +} + +.fa-duotone.fa-pen-circle:after, +.fad.fa-pen-circle:after { + content: "\e20e\e20e" +} + +.fa-duotone.fa-bag-seedling:after, +.fad.fa-bag-seedling:after { + content: "\e5f2\e5f2" +} + +.fa-duotone.fa-chart-simple:after, +.fad.fa-chart-simple:after { + content: "\e473\e473" +} + +.fa-duotone.fa-crutches:after, +.fad.fa-crutches:after { + content: "\f7f8\f7f8" +} + +.fa-duotone.fa-circle-parking:after, +.fa-duotone.fa-parking-circle:after, +.fad.fa-circle-parking:after, +.fad.fa-parking-circle:after { + content: "\f615\f615" +} + +.fa-duotone.fa-mars-stroke:after, +.fad.fa-mars-stroke:after { + content: "\f229\f229" +} + +.fa-duotone.fa-leaf-oak:after, +.fad.fa-leaf-oak:after { + content: "\f6f7\f6f7" +} + +.fa-duotone.fa-square-bolt:after, +.fad.fa-square-bolt:after { + content: "\e265\e265" +} + +.fa-duotone.fa-vial:after, +.fad.fa-vial:after { + content: "\f492\f492" +} + +.fa-duotone.fa-dashboard:after, +.fa-duotone.fa-gauge-med:after, +.fa-duotone.fa-gauge:after, +.fa-duotone.fa-tachometer-alt-average:after, +.fad.fa-dashboard:after, +.fad.fa-gauge-med:after, +.fad.fa-gauge:after, +.fad.fa-tachometer-alt-average:after { + content: "\f624\f624" +} + +.fa-duotone.fa-magic-wand-sparkles:after, +.fa-duotone.fa-wand-magic-sparkles:after, +.fad.fa-magic-wand-sparkles:after, +.fad.fa-wand-magic-sparkles:after { + content: "\e2ca\e2ca" +} + +.fa-duotone.fa-lambda:after, +.fad.fa-lambda:after { + content: "\f66e\f66e" +} + +.fa-duotone.fa-e:after, +.fad.fa-e:after { + content: "\45\45" +} + +.fa-duotone.fa-pizza:after, +.fad.fa-pizza:after { + content: "\f817\f817" +} + +.fa-duotone.fa-bowl-chopsticks-noodles:after, +.fad.fa-bowl-chopsticks-noodles:after { + content: "\e2ea\e2ea" +} + +.fa-duotone.fa-h3:after, +.fad.fa-h3:after { + content: "\f315\f315" +} + +.fa-duotone.fa-pen-alt:after, +.fa-duotone.fa-pen-clip:after, +.fad.fa-pen-alt:after, +.fad.fa-pen-clip:after { + content: "\f305\f305" +} + +.fa-duotone.fa-bridge-circle-exclamation:after, +.fad.fa-bridge-circle-exclamation:after { + content: "\e4ca\e4ca" +} + +.fa-duotone.fa-badge-percent:after, +.fad.fa-badge-percent:after { + content: "\f646\f646" +} + +.fa-duotone.fa-rotate-reverse:after, +.fad.fa-rotate-reverse:after { + content: "\e631\e631" +} + +.fa-duotone.fa-user:after, +.fad.fa-user:after { + content: "\f007\f007" +} + +.fa-duotone.fa-sensor:after, +.fad.fa-sensor:after { + content: "\e028\e028" +} + +.fa-duotone.fa-comma:after, +.fad.fa-comma:after { + content: "\2c\2c" +} + +.fa-duotone.fa-school-circle-check:after, +.fad.fa-school-circle-check:after { + content: "\e56b\e56b" +} + +.fa-duotone.fa-toilet-paper-reverse:after, +.fa-duotone.fa-toilet-paper-under:after, +.fad.fa-toilet-paper-reverse:after, +.fad.fa-toilet-paper-under:after { + content: "\e2a0\e2a0" +} + +.fa-duotone.fa-light-emergency:after, +.fad.fa-light-emergency:after { + content: "\e41f\e41f" +} + +.fa-duotone.fa-arrow-down-to-arc:after, +.fad.fa-arrow-down-to-arc:after { + content: "\e4ae\e4ae" +} + +.fa-duotone.fa-dumpster:after, +.fad.fa-dumpster:after { + content: "\f793\f793" +} + +.fa-duotone.fa-shuttle-van:after, +.fa-duotone.fa-van-shuttle:after, +.fad.fa-shuttle-van:after, +.fad.fa-van-shuttle:after { + content: "\f5b6\f5b6" +} + +.fa-duotone.fa-building-user:after, +.fad.fa-building-user:after { + content: "\e4da\e4da" +} + +.fa-duotone.fa-light-switch:after, +.fad.fa-light-switch:after { + content: "\e017\e017" +} + +.fa-duotone.fa-caret-square-left:after, +.fa-duotone.fa-square-caret-left:after, +.fad.fa-caret-square-left:after, +.fad.fa-square-caret-left:after { + content: "\f191\f191" +} + +.fa-duotone.fa-highlighter:after, +.fad.fa-highlighter:after { + content: "\f591\f591" +} + +.fa-duotone.fa-heart-rate:after, +.fa-duotone.fa-wave-pulse:after, +.fad.fa-heart-rate:after, +.fad.fa-wave-pulse:after { + content: "\f5f8\f5f8" +} + +.fa-duotone.fa-key:after, +.fad.fa-key:after { + content: "\f084\f084" +} + +.fa-duotone.fa-hat-santa:after, +.fad.fa-hat-santa:after { + content: "\f7a7\f7a7" +} + +.fa-duotone.fa-tamale:after, +.fad.fa-tamale:after { + content: "\e451\e451" +} + +.fa-duotone.fa-box-check:after, +.fad.fa-box-check:after { + content: "\f467\f467" +} + +.fa-duotone.fa-bullhorn:after, +.fad.fa-bullhorn:after { + content: "\f0a1\f0a1" +} + +.fa-duotone.fa-steak:after, +.fad.fa-steak:after { + content: "\f824\f824" +} + +.fa-duotone.fa-location-crosshairs-slash:after, +.fa-duotone.fa-location-slash:after, +.fad.fa-location-crosshairs-slash:after, +.fad.fa-location-slash:after { + content: "\f603\f603" +} + +.fa-duotone.fa-person-dolly:after, +.fad.fa-person-dolly:after { + content: "\f4d0\f4d0" +} + +.fa-duotone.fa-globe:after, +.fad.fa-globe:after { + content: "\f0ac\f0ac" +} + +.fa-duotone.fa-synagogue:after, +.fad.fa-synagogue:after { + content: "\f69b\f69b" +} + +.fa-duotone.fa-file-chart-column:after, +.fa-duotone.fa-file-chart-line:after, +.fad.fa-file-chart-column:after, +.fad.fa-file-chart-line:after { + content: "\f659\f659" +} + +.fa-duotone.fa-person-half-dress:after, +.fad.fa-person-half-dress:after { + content: "\e548\e548" +} + +.fa-duotone.fa-folder-image:after, +.fad.fa-folder-image:after { + content: "\e18a\e18a" +} + +.fa-duotone.fa-calendar-edit:after, +.fa-duotone.fa-calendar-pen:after, +.fad.fa-calendar-edit:after, +.fad.fa-calendar-pen:after { + content: "\f333\f333" +} + +.fa-duotone.fa-road-bridge:after, +.fad.fa-road-bridge:after { + content: "\e563\e563" +} + +.fa-duotone.fa-face-smile-tear:after, +.fad.fa-face-smile-tear:after { + content: "\e393\e393" +} + +.fa-duotone.fa-comment-alt-plus:after, +.fa-duotone.fa-message-plus:after, +.fad.fa-comment-alt-plus:after, +.fad.fa-message-plus:after { + content: "\f4a8\f4a8" +} + +.fa-duotone.fa-location-arrow:after, +.fad.fa-location-arrow:after { + content: "\f124\f124" +} + +.fa-duotone.fa-c:after, +.fad.fa-c:after { + content: "\43\43" +} + +.fa-duotone.fa-tablet-button:after, +.fad.fa-tablet-button:after { + content: "\f10a\f10a" +} + +.fa-duotone.fa-person-dress-fairy:after, +.fad.fa-person-dress-fairy:after { + content: "\e607\e607" +} + +.fa-duotone.fa-rectangle-history-circle-user:after, +.fad.fa-rectangle-history-circle-user:after { + content: "\e4a4\e4a4" +} + +.fa-duotone.fa-building-lock:after, +.fad.fa-building-lock:after { + content: "\e4d6\e4d6" +} + +.fa-duotone.fa-chart-line-up:after, +.fad.fa-chart-line-up:after { + content: "\e0e5\e0e5" +} + +.fa-duotone.fa-mailbox:after, +.fad.fa-mailbox:after { + content: "\f813\f813" +} + +.fa-duotone.fa-sign-posts:after, +.fad.fa-sign-posts:after { + content: "\e625\e625" +} + +.fa-duotone.fa-truck-bolt:after, +.fad.fa-truck-bolt:after { + content: "\e3d0\e3d0" +} + +.fa-duotone.fa-pizza-slice:after, +.fad.fa-pizza-slice:after { + content: "\f818\f818" +} + +.fa-duotone.fa-money-bill-wave:after, +.fad.fa-money-bill-wave:after { + content: "\f53a\f53a" +} + +.fa-duotone.fa-area-chart:after, +.fa-duotone.fa-chart-area:after, +.fad.fa-area-chart:after, +.fad.fa-chart-area:after { + content: "\f1fe\f1fe" +} + +.fa-duotone.fa-house-flag:after, +.fad.fa-house-flag:after { + content: "\e50d\e50d" +} + +.fa-duotone.fa-circle-three-quarters-stroke:after, +.fad.fa-circle-three-quarters-stroke:after { + content: "\e5d4\e5d4" +} + +.fa-duotone.fa-person-circle-minus:after, +.fad.fa-person-circle-minus:after { + content: "\e540\e540" +} + +.fa-duotone.fa-scalpel:after, +.fad.fa-scalpel:after { + content: "\f61d\f61d" +} + +.fa-duotone.fa-ban:after, +.fa-duotone.fa-cancel:after, +.fad.fa-ban:after, +.fad.fa-cancel:after { + content: "\f05e\f05e" +} + +.fa-duotone.fa-bell-exclamation:after, +.fad.fa-bell-exclamation:after { + content: "\f848\f848" +} + +.fa-duotone.fa-bookmark-circle:after, +.fa-duotone.fa-circle-bookmark:after, +.fad.fa-bookmark-circle:after, +.fad.fa-circle-bookmark:after { + content: "\e100\e100" +} + +.fa-duotone.fa-egg-fried:after, +.fad.fa-egg-fried:after { + content: "\f7fc\f7fc" +} + +.fa-duotone.fa-face-weary:after, +.fad.fa-face-weary:after { + content: "\e3a1\e3a1" +} + +.fa-duotone.fa-uniform-martial-arts:after, +.fad.fa-uniform-martial-arts:after { + content: "\e3d1\e3d1" +} + +.fa-duotone.fa-camera-rotate:after, +.fad.fa-camera-rotate:after { + content: "\e0d8\e0d8" +} + +.fa-duotone.fa-sun-dust:after, +.fad.fa-sun-dust:after { + content: "\f764\f764" +} + +.fa-duotone.fa-comment-text:after, +.fad.fa-comment-text:after { + content: "\e14d\e14d" +} + +.fa-duotone.fa-air-freshener:after, +.fa-duotone.fa-spray-can-sparkles:after, +.fad.fa-air-freshener:after, +.fad.fa-spray-can-sparkles:after { + content: "\f5d0\f5d0" +} + +.fa-duotone.fa-signal-alt-4:after, +.fa-duotone.fa-signal-alt:after, +.fa-duotone.fa-signal-bars-strong:after, +.fa-duotone.fa-signal-bars:after, +.fad.fa-signal-alt-4:after, +.fad.fa-signal-alt:after, +.fad.fa-signal-bars-strong:after, +.fad.fa-signal-bars:after { + content: "\f690\f690" +} + +.fa-duotone.fa-diamond-exclamation:after, +.fad.fa-diamond-exclamation:after { + content: "\e405\e405" +} + +.fa-duotone.fa-star:after, +.fad.fa-star:after { + content: "\f005\f005" +} + +.fa-duotone.fa-dial-min:after, +.fad.fa-dial-min:after { + content: "\e161\e161" +} + +.fa-duotone.fa-repeat:after, +.fad.fa-repeat:after { + content: "\f363\f363" +} + +.fa-duotone.fa-cross:after, +.fad.fa-cross:after { + content: "\f654\f654" +} + +.fa-duotone.fa-file-caret-down:after, +.fa-duotone.fa-page-caret-down:after, +.fad.fa-file-caret-down:after, +.fad.fa-page-caret-down:after { + content: "\e429\e429" +} + +.fa-duotone.fa-box:after, +.fad.fa-box:after { + content: "\f466\f466" +} + +.fa-duotone.fa-venus-mars:after, +.fad.fa-venus-mars:after { + content: "\f228\f228" +} + +.fa-duotone.fa-clock-seven-thirty:after, +.fad.fa-clock-seven-thirty:after { + content: "\e351\e351" +} + +.fa-duotone.fa-arrow-pointer:after, +.fa-duotone.fa-mouse-pointer:after, +.fad.fa-arrow-pointer:after, +.fad.fa-mouse-pointer:after { + content: "\f245\f245" +} + +.fa-duotone.fa-clock-four-thirty:after, +.fad.fa-clock-four-thirty:after { + content: "\e34b\e34b" +} + +.fa-duotone.fa-signal-alt-3:after, +.fa-duotone.fa-signal-bars-good:after, +.fad.fa-signal-alt-3:after, +.fad.fa-signal-bars-good:after { + content: "\f693\f693" +} + +.fa-duotone.fa-cactus:after, +.fad.fa-cactus:after { + content: "\f8a7\f8a7" +} + +.fa-duotone.fa-lightbulb-gear:after, +.fad.fa-lightbulb-gear:after { + content: "\e5fd\e5fd" +} + +.fa-duotone.fa-expand-arrows-alt:after, +.fa-duotone.fa-maximize:after, +.fad.fa-expand-arrows-alt:after, +.fad.fa-maximize:after { + content: "\f31e\f31e" +} + +.fa-duotone.fa-charging-station:after, +.fad.fa-charging-station:after { + content: "\f5e7\f5e7" +} + +.fa-duotone.fa-shapes:after, +.fa-duotone.fa-triangle-circle-square:after, +.fad.fa-shapes:after, +.fad.fa-triangle-circle-square:after { + content: "\f61f\f61f" +} + +.fa-duotone.fa-plane-tail:after, +.fad.fa-plane-tail:after { + content: "\e22c\e22c" +} + +.fa-duotone.fa-gauge-simple-max:after, +.fa-duotone.fa-tachometer-fastest:after, +.fad.fa-gauge-simple-max:after, +.fad.fa-tachometer-fastest:after { + content: "\f62b\f62b" +} + +.fa-duotone.fa-circle-u:after, +.fad.fa-circle-u:after { + content: "\e127\e127" +} + +.fa-duotone.fa-shield-slash:after, +.fad.fa-shield-slash:after { + content: "\e24b\e24b" +} + +.fa-duotone.fa-phone-square-down:after, +.fa-duotone.fa-square-phone-hangup:after, +.fad.fa-phone-square-down:after, +.fad.fa-square-phone-hangup:after { + content: "\e27a\e27a" +} + +.fa-duotone.fa-arrow-up-left:after, +.fad.fa-arrow-up-left:after { + content: "\e09d\e09d" +} + +.fa-duotone.fa-transporter-1:after, +.fad.fa-transporter-1:after { + content: "\e043\e043" +} + +.fa-duotone.fa-peanuts:after, +.fad.fa-peanuts:after { + content: "\e431\e431" +} + +.fa-duotone.fa-random:after, +.fa-duotone.fa-shuffle:after, +.fad.fa-random:after, +.fad.fa-shuffle:after { + content: "\f074\f074" +} + +.fa-duotone.fa-person-running:after, +.fa-duotone.fa-running:after, +.fad.fa-person-running:after, +.fad.fa-running:after { + content: "\f70c\f70c" +} + +.fa-duotone.fa-mobile-retro:after, +.fad.fa-mobile-retro:after { + content: "\e527\e527" +} + +.fa-duotone.fa-grip-lines-vertical:after, +.fad.fa-grip-lines-vertical:after { + content: "\f7a5\f7a5" +} + +.fa-duotone.fa-bin-bottles-recycle:after, +.fad.fa-bin-bottles-recycle:after { + content: "\e5f6\e5f6" +} + +.fa-duotone.fa-arrow-up-from-square:after, +.fad.fa-arrow-up-from-square:after { + content: "\e09c\e09c" +} + +.fa-duotone.fa-file-dashed-line:after, +.fa-duotone.fa-page-break:after, +.fad.fa-file-dashed-line:after, +.fad.fa-page-break:after { + content: "\f877\f877" +} + +.fa-duotone.fa-bracket-curly-right:after, +.fad.fa-bracket-curly-right:after { + content: "\7d\7d" +} + +.fa-duotone.fa-spider:after, +.fad.fa-spider:after { + content: "\f717\f717" +} + +.fa-duotone.fa-clock-three:after, +.fad.fa-clock-three:after { + content: "\e356\e356" +} + +.fa-duotone.fa-hands-bound:after, +.fad.fa-hands-bound:after { + content: "\e4f9\e4f9" +} + +.fa-duotone.fa-scalpel-line-dashed:after, +.fa-duotone.fa-scalpel-path:after, +.fad.fa-scalpel-line-dashed:after, +.fad.fa-scalpel-path:after { + content: "\f61e\f61e" +} + +.fa-duotone.fa-file-invoice-dollar:after, +.fad.fa-file-invoice-dollar:after { + content: "\f571\f571" +} + +.fa-duotone.fa-pipe-smoking:after, +.fad.fa-pipe-smoking:after { + content: "\e3c4\e3c4" +} + +.fa-duotone.fa-face-astonished:after, +.fad.fa-face-astonished:after { + content: "\e36b\e36b" +} + +.fa-duotone.fa-window:after, +.fad.fa-window:after { + content: "\f40e\f40e" +} + +.fa-duotone.fa-plane-circle-exclamation:after, +.fad.fa-plane-circle-exclamation:after { + content: "\e556\e556" +} + +.fa-duotone.fa-ear:after, +.fad.fa-ear:after { + content: "\f5f0\f5f0" +} + +.fa-duotone.fa-file-lock:after, +.fad.fa-file-lock:after { + content: "\e3a6\e3a6" +} + +.fa-duotone.fa-diagram-venn:after, +.fad.fa-diagram-venn:after { + content: "\e15a\e15a" +} + +.fa-duotone.fa-x-ray:after, +.fad.fa-x-ray:after { + content: "\f497\f497" +} + +.fa-duotone.fa-goal-net:after, +.fad.fa-goal-net:after { + content: "\e3ab\e3ab" +} + +.fa-duotone.fa-coffin-cross:after, +.fad.fa-coffin-cross:after { + content: "\e051\e051" +} + +.fa-duotone.fa-spell-check:after, +.fad.fa-spell-check:after { + content: "\f891\f891" +} + +.fa-duotone.fa-location-xmark:after, +.fa-duotone.fa-map-marker-times:after, +.fa-duotone.fa-map-marker-xmark:after, +.fad.fa-location-xmark:after, +.fad.fa-map-marker-times:after, +.fad.fa-map-marker-xmark:after { + content: "\f60e\f60e" +} + +.fa-duotone.fa-circle-quarter-stroke:after, +.fad.fa-circle-quarter-stroke:after { + content: "\e5d3\e5d3" +} + +.fa-duotone.fa-lasso:after, +.fad.fa-lasso:after { + content: "\f8c8\f8c8" +} + +.fa-duotone.fa-slash:after, +.fad.fa-slash:after { + content: "\f715\f715" +} + +.fa-duotone.fa-person-to-portal:after, +.fa-duotone.fa-portal-enter:after, +.fad.fa-person-to-portal:after, +.fad.fa-portal-enter:after { + content: "\e022\e022" +} + +.fa-duotone.fa-calendar-star:after, +.fad.fa-calendar-star:after { + content: "\f736\f736" +} + +.fa-duotone.fa-computer-mouse:after, +.fa-duotone.fa-mouse:after, +.fad.fa-computer-mouse:after, +.fad.fa-mouse:after { + content: "\f8cc\f8cc" +} + +.fa-duotone.fa-arrow-right-to-bracket:after, +.fa-duotone.fa-sign-in:after, +.fad.fa-arrow-right-to-bracket:after, +.fad.fa-sign-in:after { + content: "\f090\f090" +} + +.fa-duotone.fa-pegasus:after, +.fad.fa-pegasus:after { + content: "\f703\f703" +} + +.fa-duotone.fa-files-medical:after, +.fad.fa-files-medical:after { + content: "\f7fd\f7fd" +} + +.fa-duotone.fa-cannon:after, +.fad.fa-cannon:after { + content: "\e642\e642" +} + +.fa-duotone.fa-nfc-lock:after, +.fad.fa-nfc-lock:after { + content: "\e1f8\e1f8" +} + +.fa-duotone.fa-person-ski-lift:after, +.fa-duotone.fa-ski-lift:after, +.fad.fa-person-ski-lift:after, +.fad.fa-ski-lift:after { + content: "\f7c8\f7c8" +} + +.fa-duotone.fa-square-6:after, +.fad.fa-square-6:after { + content: "\e25b\e25b" +} + +.fa-duotone.fa-shop-slash:after, +.fa-duotone.fa-store-alt-slash:after, +.fad.fa-shop-slash:after, +.fad.fa-store-alt-slash:after { + content: "\e070\e070" +} + +.fa-duotone.fa-wind-turbine:after, +.fad.fa-wind-turbine:after { + content: "\f89b\f89b" +} + +.fa-duotone.fa-sliders-simple:after, +.fad.fa-sliders-simple:after { + content: "\e253\e253" +} + +.fa-duotone.fa-grid-round:after, +.fad.fa-grid-round:after { + content: "\e5da\e5da" +} + +.fa-duotone.fa-badge-sheriff:after, +.fad.fa-badge-sheriff:after { + content: "\f8a2\f8a2" +} + +.fa-duotone.fa-server:after, +.fad.fa-server:after { + content: "\f233\f233" +} + +.fa-duotone.fa-virus-covid-slash:after, +.fad.fa-virus-covid-slash:after { + content: "\e4a9\e4a9" +} + +.fa-duotone.fa-intersection:after, +.fad.fa-intersection:after { + content: "\f668\f668" +} + +.fa-duotone.fa-shop-lock:after, +.fad.fa-shop-lock:after { + content: "\e4a5\e4a5" +} + +.fa-duotone.fa-family:after, +.fad.fa-family:after { + content: "\e300\e300" +} + +.fa-duotone.fa-hourglass-1:after, +.fa-duotone.fa-hourglass-start:after, +.fad.fa-hourglass-1:after, +.fad.fa-hourglass-start:after { + content: "\f251\f251" +} + +.fa-duotone.fa-user-hair-buns:after, +.fad.fa-user-hair-buns:after { + content: "\e3d3\e3d3" +} + +.fa-duotone.fa-blender-phone:after, +.fad.fa-blender-phone:after { + content: "\f6b6\f6b6" +} + +.fa-duotone.fa-hourglass-clock:after, +.fad.fa-hourglass-clock:after { + content: "\e41b\e41b" +} + +.fa-duotone.fa-person-seat-reclined:after, +.fad.fa-person-seat-reclined:after { + content: "\e21f\e21f" +} + +.fa-duotone.fa-paper-plane-alt:after, +.fa-duotone.fa-paper-plane-top:after, +.fa-duotone.fa-send:after, +.fad.fa-paper-plane-alt:after, +.fad.fa-paper-plane-top:after, +.fad.fa-send:after { + content: "\e20a\e20a" +} + +.fa-duotone.fa-comment-alt-arrow-up:after, +.fa-duotone.fa-message-arrow-up:after, +.fad.fa-comment-alt-arrow-up:after, +.fad.fa-message-arrow-up:after { + content: "\e1dc\e1dc" +} + +.fa-duotone.fa-lightbulb-exclamation:after, +.fad.fa-lightbulb-exclamation:after { + content: "\f671\f671" +} + +.fa-duotone.fa-layer-group-minus:after, +.fa-duotone.fa-layer-minus:after, +.fad.fa-layer-group-minus:after, +.fad.fa-layer-minus:after { + content: "\f5fe\f5fe" +} + +.fa-duotone.fa-chart-pie-simple-circle-currency:after, +.fad.fa-chart-pie-simple-circle-currency:after { + content: "\e604\e604" +} + +.fa-duotone.fa-circle-e:after, +.fad.fa-circle-e:after { + content: "\e109\e109" +} + +.fa-duotone.fa-building-wheat:after, +.fad.fa-building-wheat:after { + content: "\e4db\e4db" +} + +.fa-duotone.fa-gauge-max:after, +.fa-duotone.fa-tachometer-alt-fastest:after, +.fad.fa-gauge-max:after, +.fad.fa-tachometer-alt-fastest:after { + content: "\f626\f626" +} + +.fa-duotone.fa-person-breastfeeding:after, +.fad.fa-person-breastfeeding:after { + content: "\e53a\e53a" +} + +.fa-duotone.fa-apostrophe:after, +.fad.fa-apostrophe:after { + content: "\27\27" +} + +.fa-duotone.fa-file-png:after, +.fad.fa-file-png:after { + content: "\e666\e666" +} + +.fa-duotone.fa-fire-hydrant:after, +.fad.fa-fire-hydrant:after { + content: "\e17f\e17f" +} + +.fa-duotone.fa-right-to-bracket:after, +.fa-duotone.fa-sign-in-alt:after, +.fad.fa-right-to-bracket:after, +.fad.fa-sign-in-alt:after { + content: "\f2f6\f2f6" +} + +.fa-duotone.fa-video-plus:after, +.fad.fa-video-plus:after { + content: "\f4e1\f4e1" +} + +.fa-duotone.fa-arrow-alt-square-right:after, +.fa-duotone.fa-square-right:after, +.fad.fa-arrow-alt-square-right:after, +.fad.fa-square-right:after { + content: "\f352\f352" +} + +.fa-duotone.fa-comment-smile:after, +.fad.fa-comment-smile:after { + content: "\f4b4\f4b4" +} + +.fa-duotone.fa-venus:after, +.fad.fa-venus:after { + content: "\f221\f221" +} + +.fa-duotone.fa-passport:after, +.fad.fa-passport:after { + content: "\f5ab\f5ab" +} + +.fa-duotone.fa-inbox-arrow-down:after, +.fa-duotone.fa-inbox-in:after, +.fad.fa-inbox-arrow-down:after, +.fad.fa-inbox-in:after { + content: "\f310\f310" +} + +.fa-duotone.fa-heart-pulse:after, +.fa-duotone.fa-heartbeat:after, +.fad.fa-heart-pulse:after, +.fad.fa-heartbeat:after { + content: "\f21e\f21e" +} + +.fa-duotone.fa-circle-8:after, +.fad.fa-circle-8:after { + content: "\e0f5\e0f5" +} + +.fa-duotone.fa-clouds-moon:after, +.fad.fa-clouds-moon:after { + content: "\f745\f745" +} + +.fa-duotone.fa-clock-ten-thirty:after, +.fad.fa-clock-ten-thirty:after { + content: "\e355\e355" +} + +.fa-duotone.fa-people-carry-box:after, +.fa-duotone.fa-people-carry:after, +.fad.fa-people-carry-box:after, +.fad.fa-people-carry:after { + content: "\f4ce\f4ce" +} + +.fa-duotone.fa-folder-user:after, +.fad.fa-folder-user:after { + content: "\e18e\e18e" +} + +.fa-duotone.fa-trash-can-xmark:after, +.fad.fa-trash-can-xmark:after { + content: "\e2ae\e2ae" +} + +.fa-duotone.fa-temperature-high:after, +.fad.fa-temperature-high:after { + content: "\f769\f769" +} + +.fa-duotone.fa-microchip:after, +.fad.fa-microchip:after { + content: "\f2db\f2db" +} + +.fa-duotone.fa-left-long-to-line:after, +.fad.fa-left-long-to-line:after { + content: "\e41e\e41e" +} + +.fa-duotone.fa-crown:after, +.fad.fa-crown:after { + content: "\f521\f521" +} + +.fa-duotone.fa-weight-hanging:after, +.fad.fa-weight-hanging:after { + content: "\f5cd\f5cd" +} + +.fa-duotone.fa-xmarks-lines:after, +.fad.fa-xmarks-lines:after { + content: "\e59a\e59a" +} + +.fa-duotone.fa-file-prescription:after, +.fad.fa-file-prescription:after { + content: "\f572\f572" +} + +.fa-duotone.fa-calendar-range:after, +.fad.fa-calendar-range:after { + content: "\e0d6\e0d6" +} + +.fa-duotone.fa-flower-daffodil:after, +.fad.fa-flower-daffodil:after { + content: "\f800\f800" +} + +.fa-duotone.fa-hand-back-point-up:after, +.fad.fa-hand-back-point-up:after { + content: "\e1a2\e1a2" +} + +.fa-duotone.fa-weight-scale:after, +.fa-duotone.fa-weight:after, +.fad.fa-weight-scale:after, +.fad.fa-weight:after { + content: "\f496\f496" +} + +.fa-duotone.fa-arrow-up-to-arc:after, +.fad.fa-arrow-up-to-arc:after { + content: "\e617\e617" +} + +.fa-duotone.fa-star-exclamation:after, +.fad.fa-star-exclamation:after { + content: "\f2f3\f2f3" +} + +.fa-duotone.fa-books:after, +.fad.fa-books:after { + content: "\f5db\f5db" +} + +.fa-duotone.fa-user-friends:after, +.fa-duotone.fa-user-group:after, +.fad.fa-user-friends:after, +.fad.fa-user-group:after { + content: "\f500\f500" +} + +.fa-duotone.fa-arrow-up-a-z:after, +.fa-duotone.fa-sort-alpha-up:after, +.fad.fa-arrow-up-a-z:after, +.fad.fa-sort-alpha-up:after { + content: "\f15e\f15e" +} + +.fa-duotone.fa-layer-group-plus:after, +.fa-duotone.fa-layer-plus:after, +.fad.fa-layer-group-plus:after, +.fad.fa-layer-plus:after { + content: "\f5ff\f5ff" +} + +.fa-duotone.fa-play-pause:after, +.fad.fa-play-pause:after { + content: "\e22f\e22f" +} + +.fa-duotone.fa-block-question:after, +.fad.fa-block-question:after { + content: "\e3dd\e3dd" +} + +.fa-duotone.fa-snooze:after, +.fa-duotone.fa-zzz:after, +.fad.fa-snooze:after, +.fad.fa-zzz:after { + content: "\f880\f880" +} + +.fa-duotone.fa-scanner-image:after, +.fad.fa-scanner-image:after { + content: "\f8f3\f8f3" +} + +.fa-duotone.fa-tv-retro:after, +.fad.fa-tv-retro:after { + content: "\f401\f401" +} + +.fa-duotone.fa-square-t:after, +.fad.fa-square-t:after { + content: "\e280\e280" +} + +.fa-duotone.fa-barn-silo:after, +.fa-duotone.fa-farm:after, +.fad.fa-barn-silo:after, +.fad.fa-farm:after { + content: "\f864\f864" +} + +.fa-duotone.fa-chess-knight:after, +.fad.fa-chess-knight:after { + content: "\f441\f441" +} + +.fa-duotone.fa-bars-sort:after, +.fad.fa-bars-sort:after { + content: "\e0ae\e0ae" +} + +.fa-duotone.fa-palette-boxes:after, +.fa-duotone.fa-pallet-alt:after, +.fa-duotone.fa-pallet-boxes:after, +.fad.fa-palette-boxes:after, +.fad.fa-pallet-alt:after, +.fad.fa-pallet-boxes:after { + content: "\f483\f483" +} + +.fa-duotone.fa-face-laugh-squint:after, +.fa-duotone.fa-laugh-squint:after, +.fad.fa-face-laugh-squint:after, +.fad.fa-laugh-squint:after { + content: "\f59b\f59b" +} + +.fa-duotone.fa-code-simple:after, +.fad.fa-code-simple:after { + content: "\e13d\e13d" +} + +.fa-duotone.fa-bolt-slash:after, +.fad.fa-bolt-slash:after { + content: "\e0b8\e0b8" +} + +.fa-duotone.fa-panel-fire:after, +.fad.fa-panel-fire:after { + content: "\e42f\e42f" +} + +.fa-duotone.fa-binary-circle-check:after, +.fad.fa-binary-circle-check:after { + content: "\e33c\e33c" +} + +.fa-duotone.fa-comment-minus:after, +.fad.fa-comment-minus:after { + content: "\f4b1\f4b1" +} + +.fa-duotone.fa-burrito:after, +.fad.fa-burrito:after { + content: "\f7ed\f7ed" +} + +.fa-duotone.fa-violin:after, +.fad.fa-violin:after { + content: "\f8ed\f8ed" +} + +.fa-duotone.fa-objects-column:after, +.fad.fa-objects-column:after { + content: "\e3c1\e3c1" +} + +.fa-duotone.fa-chevron-square-down:after, +.fa-duotone.fa-square-chevron-down:after, +.fad.fa-chevron-square-down:after, +.fad.fa-square-chevron-down:after { + content: "\f329\f329" +} + +.fa-duotone.fa-comment-plus:after, +.fad.fa-comment-plus:after { + content: "\f4b2\f4b2" +} + +.fa-duotone.fa-triangle-instrument:after, +.fa-duotone.fa-triangle-music:after, +.fad.fa-triangle-instrument:after, +.fad.fa-triangle-music:after { + content: "\f8e2\f8e2" +} + +.fa-duotone.fa-wheelchair:after, +.fad.fa-wheelchair:after { + content: "\f193\f193" +} + +.fa-duotone.fa-user-pilot-tie:after, +.fad.fa-user-pilot-tie:after { + content: "\e2c1\e2c1" +} + +.fa-duotone.fa-piano-keyboard:after, +.fad.fa-piano-keyboard:after { + content: "\f8d5\f8d5" +} + +.fa-duotone.fa-bed-empty:after, +.fad.fa-bed-empty:after { + content: "\f8f9\f8f9" +} + +.fa-duotone.fa-arrow-circle-up:after, +.fa-duotone.fa-circle-arrow-up:after, +.fad.fa-arrow-circle-up:after, +.fad.fa-circle-arrow-up:after { + content: "\f0aa\f0aa" +} + +.fa-duotone.fa-toggle-on:after, +.fad.fa-toggle-on:after { + content: "\f205\f205" +} + +.fa-duotone.fa-rectangle-portrait:after, +.fa-duotone.fa-rectangle-vertical:after, +.fad.fa-rectangle-portrait:after, +.fad.fa-rectangle-vertical:after { + content: "\f2fb\f2fb" +} + +.fa-duotone.fa-person-walking:after, +.fa-duotone.fa-walking:after, +.fad.fa-person-walking:after, +.fad.fa-walking:after { + content: "\f554\f554" +} + +.fa-duotone.fa-l:after, +.fad.fa-l:after { + content: "\4c\4c" +} + +.fa-duotone.fa-signal-stream:after, +.fad.fa-signal-stream:after { + content: "\f8dd\f8dd" +} + +.fa-duotone.fa-down-to-bracket:after, +.fad.fa-down-to-bracket:after { + content: "\e4e7\e4e7" +} + +.fa-duotone.fa-circle-z:after, +.fad.fa-circle-z:after { + content: "\e130\e130" +} + +.fa-duotone.fa-stars:after, +.fad.fa-stars:after { + content: "\f762\f762" +} + +.fa-duotone.fa-fire:after, +.fad.fa-fire:after { + content: "\f06d\f06d" +} + +.fa-duotone.fa-bed-pulse:after, +.fa-duotone.fa-procedures:after, +.fad.fa-bed-pulse:after, +.fad.fa-procedures:after { + content: "\f487\f487" +} + +.fa-duotone.fa-house-day:after, +.fad.fa-house-day:after { + content: "\e00e\e00e" +} + +.fa-duotone.fa-shuttle-space:after, +.fa-duotone.fa-space-shuttle:after, +.fad.fa-shuttle-space:after, +.fad.fa-space-shuttle:after { + content: "\f197\f197" +} + +.fa-duotone.fa-shirt-long-sleeve:after, +.fad.fa-shirt-long-sleeve:after { + content: "\e3c7\e3c7" +} + +.fa-duotone.fa-chart-pie-alt:after, +.fa-duotone.fa-chart-pie-simple:after, +.fad.fa-chart-pie-alt:after, +.fad.fa-chart-pie-simple:after { + content: "\f64e\f64e" +} + +.fa-duotone.fa-face-laugh:after, +.fa-duotone.fa-laugh:after, +.fad.fa-face-laugh:after, +.fad.fa-laugh:after { + content: "\f599\f599" +} + +.fa-duotone.fa-folder-open:after, +.fad.fa-folder-open:after { + content: "\f07c\f07c" +} + +.fa-duotone.fa-album-collection-circle-user:after, +.fad.fa-album-collection-circle-user:after { + content: "\e48f\e48f" +} + +.fa-duotone.fa-candy:after, +.fad.fa-candy:after { + content: "\e3e7\e3e7" +} + +.fa-duotone.fa-bowl-hot:after, +.fa-duotone.fa-soup:after, +.fad.fa-bowl-hot:after, +.fad.fa-soup:after { + content: "\f823\f823" +} + +.fa-duotone.fa-flatbread:after, +.fad.fa-flatbread:after { + content: "\e40b\e40b" +} + +.fa-duotone.fa-heart-circle-plus:after, +.fad.fa-heart-circle-plus:after { + content: "\e500\e500" +} + +.fa-duotone.fa-code-fork:after, +.fad.fa-code-fork:after { + content: "\e13b\e13b" +} + +.fa-duotone.fa-city:after, +.fad.fa-city:after { + content: "\f64f\f64f" +} + +.fa-duotone.fa-signal-alt-1:after, +.fa-duotone.fa-signal-bars-weak:after, +.fad.fa-signal-alt-1:after, +.fad.fa-signal-bars-weak:after { + content: "\f691\f691" +} + +.fa-duotone.fa-microphone-alt:after, +.fa-duotone.fa-microphone-lines:after, +.fad.fa-microphone-alt:after, +.fad.fa-microphone-lines:after { + content: "\f3c9\f3c9" +} + +.fa-duotone.fa-clock-twelve:after, +.fad.fa-clock-twelve:after { + content: "\e358\e358" +} + +.fa-duotone.fa-pepper-hot:after, +.fad.fa-pepper-hot:after { + content: "\f816\f816" +} + +.fa-duotone.fa-citrus-slice:after, +.fad.fa-citrus-slice:after { + content: "\e2f5\e2f5" +} + +.fa-duotone.fa-sheep:after, +.fad.fa-sheep:after { + content: "\f711\f711" +} + +.fa-duotone.fa-unlock:after, +.fad.fa-unlock:after { + content: "\f09c\f09c" +} + +.fa-duotone.fa-colon-sign:after, +.fad.fa-colon-sign:after { + content: "\e140\e140" +} + +.fa-duotone.fa-headset:after, +.fad.fa-headset:after { + content: "\f590\f590" +} + +.fa-duotone.fa-badger-honey:after, +.fad.fa-badger-honey:after { + content: "\f6b4\f6b4" +} + +.fa-duotone.fa-h4:after, +.fad.fa-h4:after { + content: "\f86a\f86a" +} + +.fa-duotone.fa-store-slash:after, +.fad.fa-store-slash:after { + content: "\e071\e071" +} + +.fa-duotone.fa-road-circle-xmark:after, +.fad.fa-road-circle-xmark:after { + content: "\e566\e566" +} + +.fa-duotone.fa-signal-slash:after, +.fad.fa-signal-slash:after { + content: "\f695\f695" +} + +.fa-duotone.fa-user-minus:after, +.fad.fa-user-minus:after { + content: "\f503\f503" +} + +.fa-duotone.fa-mars-stroke-up:after, +.fa-duotone.fa-mars-stroke-v:after, +.fad.fa-mars-stroke-up:after, +.fad.fa-mars-stroke-v:after { + content: "\f22a\f22a" +} + +.fa-duotone.fa-champagne-glasses:after, +.fa-duotone.fa-glass-cheers:after, +.fad.fa-champagne-glasses:after, +.fad.fa-glass-cheers:after { + content: "\f79f\f79f" +} + +.fa-duotone.fa-taco:after, +.fad.fa-taco:after { + content: "\f826\f826" +} + +.fa-duotone.fa-hexagon-plus:after, +.fa-duotone.fa-plus-hexagon:after, +.fad.fa-hexagon-plus:after, +.fad.fa-plus-hexagon:after { + content: "\f300\f300" +} + +.fa-duotone.fa-clipboard:after, +.fad.fa-clipboard:after { + content: "\f328\f328" +} + +.fa-duotone.fa-house-circle-exclamation:after, +.fad.fa-house-circle-exclamation:after { + content: "\e50a\e50a" +} + +.fa-duotone.fa-file-arrow-up:after, +.fa-duotone.fa-file-upload:after, +.fad.fa-file-arrow-up:after, +.fad.fa-file-upload:after { + content: "\f574\f574" +} + +.fa-duotone.fa-wifi-3:after, +.fa-duotone.fa-wifi-strong:after, +.fa-duotone.fa-wifi:after, +.fad.fa-wifi-3:after, +.fad.fa-wifi-strong:after, +.fad.fa-wifi:after { + content: "\f1eb\f1eb" +} + +.fa-duotone.fa-comments-alt:after, +.fa-duotone.fa-messages:after, +.fad.fa-comments-alt:after, +.fad.fa-messages:after { + content: "\f4b6\f4b6" +} + +.fa-duotone.fa-bath:after, +.fa-duotone.fa-bathtub:after, +.fad.fa-bath:after, +.fad.fa-bathtub:after { + content: "\f2cd\f2cd" +} + +.fa-duotone.fa-umbrella-alt:after, +.fa-duotone.fa-umbrella-simple:after, +.fad.fa-umbrella-alt:after, +.fad.fa-umbrella-simple:after { + content: "\e2bc\e2bc" +} + +.fa-duotone.fa-rectangle-history-circle-plus:after, +.fad.fa-rectangle-history-circle-plus:after { + content: "\e4a3\e4a3" +} + +.fa-duotone.fa-underline:after, +.fad.fa-underline:after { + content: "\f0cd\f0cd" +} + +.fa-duotone.fa-prescription-bottle-pill:after, +.fad.fa-prescription-bottle-pill:after { + content: "\e5c0\e5c0" +} + +.fa-duotone.fa-user-edit:after, +.fa-duotone.fa-user-pen:after, +.fad.fa-user-edit:after, +.fad.fa-user-pen:after { + content: "\f4ff\f4ff" +} + +.fa-duotone.fa-binary-slash:after, +.fad.fa-binary-slash:after { + content: "\e33e\e33e" +} + +.fa-duotone.fa-square-o:after, +.fad.fa-square-o:after { + content: "\e278\e278" +} + +.fa-duotone.fa-signature:after, +.fad.fa-signature:after { + content: "\f5b7\f5b7" +} + +.fa-duotone.fa-stroopwafel:after, +.fad.fa-stroopwafel:after { + content: "\f551\f551" +} + +.fa-duotone.fa-bold:after, +.fad.fa-bold:after { + content: "\f032\f032" +} + +.fa-duotone.fa-anchor-lock:after, +.fad.fa-anchor-lock:after { + content: "\e4ad\e4ad" +} + +.fa-duotone.fa-building-ngo:after, +.fad.fa-building-ngo:after { + content: "\e4d7\e4d7" +} + +.fa-duotone.fa-transporter-3:after, +.fad.fa-transporter-3:after { + content: "\e045\e045" +} + +.fa-duotone.fa-engine-exclamation:after, +.fa-duotone.fa-engine-warning:after, +.fad.fa-engine-exclamation:after, +.fad.fa-engine-warning:after { + content: "\f5f2\f5f2" +} + +.fa-duotone.fa-circle-down-right:after, +.fad.fa-circle-down-right:after { + content: "\e108\e108" +} + +.fa-duotone.fa-square-k:after, +.fad.fa-square-k:after { + content: "\e274\e274" +} + +.fa-duotone.fa-manat-sign:after, +.fad.fa-manat-sign:after { + content: "\e1d5\e1d5" +} + +.fa-duotone.fa-money-check-edit:after, +.fa-duotone.fa-money-check-pen:after, +.fad.fa-money-check-edit:after, +.fad.fa-money-check-pen:after { + content: "\f872\f872" +} + +.fa-duotone.fa-not-equal:after, +.fad.fa-not-equal:after { + content: "\f53e\f53e" +} + +.fa-duotone.fa-border-style:after, +.fa-duotone.fa-border-top-left:after, +.fad.fa-border-style:after, +.fad.fa-border-top-left:after { + content: "\f853\f853" +} + +.fa-duotone.fa-map-location-dot:after, +.fa-duotone.fa-map-marked-alt:after, +.fad.fa-map-location-dot:after, +.fad.fa-map-marked-alt:after { + content: "\f5a0\f5a0" +} + +.fa-duotone.fa-tilde:after, +.fad.fa-tilde:after { + content: "\7e\7e" +} + +.fa-duotone.fa-jedi:after, +.fad.fa-jedi:after { + content: "\f669\f669" +} + +.fa-duotone.fa-poll:after, +.fa-duotone.fa-square-poll-vertical:after, +.fad.fa-poll:after, +.fad.fa-square-poll-vertical:after { + content: "\f681\f681" +} + +.fa-duotone.fa-arrow-down-square-triangle:after, +.fa-duotone.fa-sort-shapes-down-alt:after, +.fad.fa-arrow-down-square-triangle:after, +.fad.fa-sort-shapes-down-alt:after { + content: "\f889\f889" +} + +.fa-duotone.fa-mug-hot:after, +.fad.fa-mug-hot:after { + content: "\f7b6\f7b6" +} + +.fa-duotone.fa-dog-leashed:after, +.fad.fa-dog-leashed:after { + content: "\f6d4\f6d4" +} + +.fa-duotone.fa-battery-car:after, +.fa-duotone.fa-car-battery:after, +.fad.fa-battery-car:after, +.fad.fa-car-battery:after { + content: "\f5df\f5df" +} + +.fa-duotone.fa-face-downcast-sweat:after, +.fad.fa-face-downcast-sweat:after { + content: "\e371\e371" +} + +.fa-duotone.fa-mailbox-flag-up:after, +.fad.fa-mailbox-flag-up:after { + content: "\e5bb\e5bb" +} + +.fa-duotone.fa-memo-circle-info:after, +.fad.fa-memo-circle-info:after { + content: "\e49a\e49a" +} + +.fa-duotone.fa-gift:after, +.fad.fa-gift:after { + content: "\f06b\f06b" +} + +.fa-duotone.fa-dice-two:after, +.fad.fa-dice-two:after { + content: "\f528\f528" +} + +.fa-duotone.fa-volume-medium:after, +.fa-duotone.fa-volume:after, +.fad.fa-volume-medium:after, +.fad.fa-volume:after { + content: "\f6a8\f6a8" +} + +.fa-duotone.fa-transporter-5:after, +.fad.fa-transporter-5:after { + content: "\e2a6\e2a6" +} + +.fa-duotone.fa-gauge-circle-bolt:after, +.fad.fa-gauge-circle-bolt:after { + content: "\e496\e496" +} + +.fa-duotone.fa-coin-front:after, +.fad.fa-coin-front:after { + content: "\e3fc\e3fc" +} + +.fa-duotone.fa-file-slash:after, +.fad.fa-file-slash:after { + content: "\e3a7\e3a7" +} + +.fa-duotone.fa-message-arrow-up-right:after, +.fad.fa-message-arrow-up-right:after { + content: "\e1dd\e1dd" +} + +.fa-duotone.fa-treasure-chest:after, +.fad.fa-treasure-chest:after { + content: "\f723\f723" +} + +.fa-duotone.fa-chess-queen:after, +.fad.fa-chess-queen:after { + content: "\f445\f445" +} + +.fa-duotone.fa-paint-brush-alt:after, +.fa-duotone.fa-paint-brush-fine:after, +.fa-duotone.fa-paintbrush-alt:after, +.fa-duotone.fa-paintbrush-fine:after, +.fad.fa-paint-brush-alt:after, +.fad.fa-paint-brush-fine:after, +.fad.fa-paintbrush-alt:after, +.fad.fa-paintbrush-fine:after { + content: "\f5a9\f5a9" +} + +.fa-duotone.fa-glasses:after, +.fad.fa-glasses:after { + content: "\f530\f530" +} + +.fa-duotone.fa-hood-cloak:after, +.fad.fa-hood-cloak:after { + content: "\f6ef\f6ef" +} + +.fa-duotone.fa-square-quote:after, +.fad.fa-square-quote:after { + content: "\e329\e329" +} + +.fa-duotone.fa-up-left:after, +.fad.fa-up-left:after { + content: "\e2bd\e2bd" +} + +.fa-duotone.fa-bring-front:after, +.fad.fa-bring-front:after { + content: "\f857\f857" +} + +.fa-duotone.fa-chess-board:after, +.fad.fa-chess-board:after { + content: "\f43c\f43c" +} + +.fa-duotone.fa-burger-cheese:after, +.fa-duotone.fa-cheeseburger:after, +.fad.fa-burger-cheese:after, +.fad.fa-cheeseburger:after { + content: "\f7f1\f7f1" +} + +.fa-duotone.fa-building-circle-check:after, +.fad.fa-building-circle-check:after { + content: "\e4d2\e4d2" +} + +.fa-duotone.fa-repeat-1:after, +.fad.fa-repeat-1:after { + content: "\f365\f365" +} + +.fa-duotone.fa-arrow-down-to-line:after, +.fa-duotone.fa-arrow-to-bottom:after, +.fad.fa-arrow-down-to-line:after, +.fad.fa-arrow-to-bottom:after { + content: "\f33d\f33d" +} + +.fa-duotone.fa-grid-5:after, +.fad.fa-grid-5:after { + content: "\e199\e199" +} + +.fa-duotone.fa-swap-arrows:after, +.fad.fa-swap-arrows:after { + content: "\e60a\e60a" +} + +.fa-duotone.fa-right-long-to-line:after, +.fad.fa-right-long-to-line:after { + content: "\e444\e444" +} + +.fa-duotone.fa-person-chalkboard:after, +.fad.fa-person-chalkboard:after { + content: "\e53d\e53d" +} + +.fa-duotone.fa-mars-stroke-h:after, +.fa-duotone.fa-mars-stroke-right:after, +.fad.fa-mars-stroke-h:after, +.fad.fa-mars-stroke-right:after { + content: "\f22b\f22b" +} + +.fa-duotone.fa-hand-back-fist:after, +.fa-duotone.fa-hand-rock:after, +.fad.fa-hand-back-fist:after, +.fad.fa-hand-rock:after { + content: "\f255\f255" +} + +.fa-duotone.fa-grid-round-5:after, +.fad.fa-grid-round-5:after { + content: "\e5de\e5de" +} + +.fa-duotone.fa-tally-5:after, +.fa-duotone.fa-tally:after, +.fad.fa-tally-5:after, +.fad.fa-tally:after { + content: "\f69c\f69c" +} + +.fa-duotone.fa-caret-square-up:after, +.fa-duotone.fa-square-caret-up:after, +.fad.fa-caret-square-up:after, +.fad.fa-square-caret-up:after { + content: "\f151\f151" +} + +.fa-duotone.fa-cloud-showers-water:after, +.fad.fa-cloud-showers-water:after { + content: "\e4e4\e4e4" +} + +.fa-duotone.fa-bar-chart:after, +.fa-duotone.fa-chart-bar:after, +.fad.fa-bar-chart:after, +.fad.fa-chart-bar:after { + content: "\f080\f080" +} + +.fa-duotone.fa-hands-bubbles:after, +.fa-duotone.fa-hands-wash:after, +.fad.fa-hands-bubbles:after, +.fad.fa-hands-wash:after { + content: "\e05e\e05e" +} + +.fa-duotone.fa-less-than-equal:after, +.fad.fa-less-than-equal:after { + content: "\f537\f537" +} + +.fa-duotone.fa-train:after, +.fad.fa-train:after { + content: "\f238\f238" +} + +.fa-duotone.fa-up-from-dotted-line:after, +.fad.fa-up-from-dotted-line:after { + content: "\e456\e456" +} + +.fa-duotone.fa-eye-low-vision:after, +.fa-duotone.fa-low-vision:after, +.fad.fa-eye-low-vision:after, +.fad.fa-low-vision:after { + content: "\f2a8\f2a8" +} + +.fa-duotone.fa-traffic-light-go:after, +.fad.fa-traffic-light-go:after { + content: "\f638\f638" +} + +.fa-duotone.fa-face-exhaling:after, +.fad.fa-face-exhaling:after { + content: "\e480\e480" +} + +.fa-duotone.fa-sensor-fire:after, +.fad.fa-sensor-fire:after { + content: "\e02a\e02a" +} + +.fa-duotone.fa-user-unlock:after, +.fad.fa-user-unlock:after { + content: "\e058\e058" +} + +.fa-duotone.fa-hexagon-divide:after, +.fad.fa-hexagon-divide:after { + content: "\e1ad\e1ad" +} + +.fa-duotone.fa-00:after, +.fad.fa-00:after { + content: "\e467\e467" +} + +.fa-duotone.fa-crow:after, +.fad.fa-crow:after { + content: "\f520\f520" +} + +.fa-duotone.fa-betamax:after, +.fa-duotone.fa-cassette-betamax:after, +.fad.fa-betamax:after, +.fad.fa-cassette-betamax:after { + content: "\f8a4\f8a4" +} + +.fa-duotone.fa-sailboat:after, +.fad.fa-sailboat:after { + content: "\e445\e445" +} + +.fa-duotone.fa-window-restore:after, +.fad.fa-window-restore:after { + content: "\f2d2\f2d2" +} + +.fa-duotone.fa-nfc-magnifying-glass:after, +.fad.fa-nfc-magnifying-glass:after { + content: "\e1f9\e1f9" +} + +.fa-duotone.fa-file-binary:after, +.fad.fa-file-binary:after { + content: "\e175\e175" +} + +.fa-duotone.fa-circle-v:after, +.fad.fa-circle-v:after { + content: "\e12a\e12a" +} + +.fa-duotone.fa-plus-square:after, +.fa-duotone.fa-square-plus:after, +.fad.fa-plus-square:after, +.fad.fa-square-plus:after { + content: "\f0fe\f0fe" +} + +.fa-duotone.fa-bowl-scoops:after, +.fad.fa-bowl-scoops:after { + content: "\e3df\e3df" +} + +.fa-duotone.fa-mistletoe:after, +.fad.fa-mistletoe:after { + content: "\f7b4\f7b4" +} + +.fa-duotone.fa-custard:after, +.fad.fa-custard:after { + content: "\e403\e403" +} + +.fa-duotone.fa-lacrosse-stick:after, +.fad.fa-lacrosse-stick:after { + content: "\e3b5\e3b5" +} + +.fa-duotone.fa-hockey-mask:after, +.fad.fa-hockey-mask:after { + content: "\f6ee\f6ee" +} + +.fa-duotone.fa-sunrise:after, +.fad.fa-sunrise:after { + content: "\f766\f766" +} + +.fa-duotone.fa-subtitles:after, +.fad.fa-subtitles:after { + content: "\e60f\e60f" +} + +.fa-duotone.fa-panel-ews:after, +.fad.fa-panel-ews:after { + content: "\e42e\e42e" +} + +.fa-duotone.fa-torii-gate:after, +.fad.fa-torii-gate:after { + content: "\f6a1\f6a1" +} + +.fa-duotone.fa-cloud-exclamation:after, +.fad.fa-cloud-exclamation:after { + content: "\e491\e491" +} + +.fa-duotone.fa-comment-alt-lines:after, +.fa-duotone.fa-message-lines:after, +.fad.fa-comment-alt-lines:after, +.fad.fa-message-lines:after { + content: "\f4a6\f4a6" +} + +.fa-duotone.fa-frog:after, +.fad.fa-frog:after { + content: "\f52e\f52e" +} + +.fa-duotone.fa-bucket:after, +.fad.fa-bucket:after { + content: "\e4cf\e4cf" +} + +.fa-duotone.fa-floppy-disk-pen:after, +.fad.fa-floppy-disk-pen:after { + content: "\e182\e182" +} + +.fa-duotone.fa-image:after, +.fad.fa-image:after { + content: "\f03e\f03e" +} + +.fa-duotone.fa-window-frame:after, +.fad.fa-window-frame:after { + content: "\e04f\e04f" +} + +.fa-duotone.fa-microphone:after, +.fad.fa-microphone:after { + content: "\f130\f130" +} + +.fa-duotone.fa-cow:after, +.fad.fa-cow:after { + content: "\f6c8\f6c8" +} + +.fa-duotone.fa-file-zip:after, +.fad.fa-file-zip:after { + content: "\e5ee\e5ee" +} + +.fa-duotone.fa-square-ring:after, +.fad.fa-square-ring:after { + content: "\e44f\e44f" +} + +.fa-duotone.fa-arrow-alt-from-top:after, +.fa-duotone.fa-down-from-line:after, +.fad.fa-arrow-alt-from-top:after, +.fad.fa-down-from-line:after { + content: "\f349\f349" +} + +.fa-duotone.fa-caret-up:after, +.fad.fa-caret-up:after { + content: "\f0d8\f0d8" +} + +.fa-duotone.fa-shield-times:after, +.fa-duotone.fa-shield-xmark:after, +.fad.fa-shield-times:after, +.fad.fa-shield-xmark:after { + content: "\e24c\e24c" +} + +.fa-duotone.fa-screwdriver:after, +.fad.fa-screwdriver:after { + content: "\f54a\f54a" +} + +.fa-duotone.fa-circle-sort-down:after, +.fa-duotone.fa-sort-circle-down:after, +.fad.fa-circle-sort-down:after, +.fad.fa-sort-circle-down:after { + content: "\e031\e031" +} + +.fa-duotone.fa-folder-closed:after, +.fad.fa-folder-closed:after { + content: "\e185\e185" +} + +.fa-duotone.fa-house-tsunami:after, +.fad.fa-house-tsunami:after { + content: "\e515\e515" +} + +.fa-duotone.fa-square-nfi:after, +.fad.fa-square-nfi:after { + content: "\e576\e576" +} + +.fa-duotone.fa-forklift:after, +.fad.fa-forklift:after { + content: "\f47a\f47a" +} + +.fa-duotone.fa-arrow-up-from-ground-water:after, +.fad.fa-arrow-up-from-ground-water:after { + content: "\e4b5\e4b5" +} + +.fa-duotone.fa-bracket-square-right:after, +.fad.fa-bracket-square-right:after { + content: "\5d\5d" +} + +.fa-duotone.fa-glass-martini-alt:after, +.fa-duotone.fa-martini-glass:after, +.fad.fa-glass-martini-alt:after, +.fad.fa-martini-glass:after { + content: "\f57b\f57b" +} + +.fa-duotone.fa-rotate-back:after, +.fa-duotone.fa-rotate-backward:after, +.fa-duotone.fa-rotate-left:after, +.fa-duotone.fa-undo-alt:after, +.fad.fa-rotate-back:after, +.fad.fa-rotate-backward:after, +.fad.fa-rotate-left:after, +.fad.fa-undo-alt:after { + content: "\f2ea\f2ea" +} + +.fa-duotone.fa-columns:after, +.fa-duotone.fa-table-columns:after, +.fad.fa-columns:after, +.fad.fa-table-columns:after { + content: "\f0db\f0db" +} + +.fa-duotone.fa-square-a:after, +.fad.fa-square-a:after { + content: "\e25f\e25f" +} + +.fa-duotone.fa-tick:after, +.fad.fa-tick:after { + content: "\e32f\e32f" +} + +.fa-duotone.fa-lemon:after, +.fad.fa-lemon:after { + content: "\f094\f094" +} + +.fa-duotone.fa-head-side-mask:after, +.fad.fa-head-side-mask:after { + content: "\e063\e063" +} + +.fa-duotone.fa-handshake:after, +.fad.fa-handshake:after { + content: "\f2b5\f2b5" +} + +.fa-duotone.fa-gem:after, +.fad.fa-gem:after { + content: "\f3a5\f3a5" +} + +.fa-duotone.fa-dolly-box:after, +.fa-duotone.fa-dolly:after, +.fad.fa-dolly-box:after, +.fad.fa-dolly:after { + content: "\f472\f472" +} + +.fa-duotone.fa-smoking:after, +.fad.fa-smoking:after { + content: "\f48d\f48d" +} + +.fa-duotone.fa-compress-arrows-alt:after, +.fa-duotone.fa-minimize:after, +.fad.fa-compress-arrows-alt:after, +.fad.fa-minimize:after { + content: "\f78c\f78c" +} + +.fa-duotone.fa-refrigerator:after, +.fad.fa-refrigerator:after { + content: "\e026\e026" +} + +.fa-duotone.fa-monument:after, +.fad.fa-monument:after { + content: "\f5a6\f5a6" +} + +.fa-duotone.fa-octagon-xmark:after, +.fa-duotone.fa-times-octagon:after, +.fa-duotone.fa-xmark-octagon:after, +.fad.fa-octagon-xmark:after, +.fad.fa-times-octagon:after, +.fad.fa-xmark-octagon:after { + content: "\f2f0\f2f0" +} + +.fa-duotone.fa-align-slash:after, +.fad.fa-align-slash:after { + content: "\f846\f846" +} + +.fa-duotone.fa-snowplow:after, +.fad.fa-snowplow:after { + content: "\f7d2\f7d2" +} + +.fa-duotone.fa-angle-double-right:after, +.fa-duotone.fa-angles-right:after, +.fad.fa-angle-double-right:after, +.fad.fa-angles-right:after { + content: "\f101\f101" +} + +.fa-duotone.fa-truck-couch:after, +.fa-duotone.fa-truck-ramp-couch:after, +.fad.fa-truck-couch:after, +.fad.fa-truck-ramp-couch:after { + content: "\f4dd\f4dd" +} + +.fa-duotone.fa-cannabis:after, +.fad.fa-cannabis:after { + content: "\f55f\f55f" +} + +.fa-duotone.fa-circle-play:after, +.fa-duotone.fa-play-circle:after, +.fad.fa-circle-play:after, +.fad.fa-play-circle:after { + content: "\f144\f144" +} + +.fa-duotone.fa-arrow-up-right-and-arrow-down-left-from-center:after, +.fad.fa-arrow-up-right-and-arrow-down-left-from-center:after { + content: "\e0a0\e0a0" +} + +.fa-duotone.fa-location-arrow-up:after, +.fad.fa-location-arrow-up:after { + content: "\e63a\e63a" +} + +.fa-duotone.fa-tablets:after, +.fad.fa-tablets:after { + content: "\f490\f490" +} + +.fa-duotone.fa-360-degrees:after, +.fad.fa-360-degrees:after { + content: "\e2dc\e2dc" +} + +.fa-duotone.fa-ethernet:after, +.fad.fa-ethernet:after { + content: "\f796\f796" +} + +.fa-duotone.fa-eur:after, +.fa-duotone.fa-euro-sign:after, +.fa-duotone.fa-euro:after, +.fad.fa-eur:after, +.fad.fa-euro-sign:after, +.fad.fa-euro:after { + content: "\f153\f153" +} + +.fa-duotone.fa-chair:after, +.fad.fa-chair:after { + content: "\f6c0\f6c0" +} + +.fa-duotone.fa-check-circle:after, +.fa-duotone.fa-circle-check:after, +.fad.fa-check-circle:after, +.fad.fa-circle-check:after { + content: "\f058\f058" +} + +.fa-duotone.fa-square-dashed-circle-plus:after, +.fad.fa-square-dashed-circle-plus:after { + content: "\e5c2\e5c2" +} + +.fa-duotone.fa-hand-holding-circle-dollar:after, +.fad.fa-hand-holding-circle-dollar:after { + content: "\e621\e621" +} + +.fa-duotone.fa-money-simple-from-bracket:after, +.fad.fa-money-simple-from-bracket:after { + content: "\e313\e313" +} + +.fa-duotone.fa-bat:after, +.fad.fa-bat:after { + content: "\f6b5\f6b5" +} + +.fa-duotone.fa-circle-stop:after, +.fa-duotone.fa-stop-circle:after, +.fad.fa-circle-stop:after, +.fad.fa-stop-circle:after { + content: "\f28d\f28d" +} + +.fa-duotone.fa-head-side-headphones:after, +.fad.fa-head-side-headphones:after { + content: "\f8c2\f8c2" +} + +.fa-duotone.fa-phone-rotary:after, +.fad.fa-phone-rotary:after { + content: "\f8d3\f8d3" +} + +.fa-duotone.fa-compass-drafting:after, +.fa-duotone.fa-drafting-compass:after, +.fad.fa-compass-drafting:after, +.fad.fa-drafting-compass:after { + content: "\f568\f568" +} + +.fa-duotone.fa-plate-wheat:after, +.fad.fa-plate-wheat:after { + content: "\e55a\e55a" +} + +.fa-duotone.fa-calendar-circle-minus:after, +.fad.fa-calendar-circle-minus:after { + content: "\e46f\e46f" +} + +.fa-duotone.fa-chopsticks:after, +.fad.fa-chopsticks:after { + content: "\e3f7\e3f7" +} + +.fa-duotone.fa-car-mechanic:after, +.fa-duotone.fa-car-wrench:after, +.fad.fa-car-mechanic:after, +.fad.fa-car-wrench:after { + content: "\f5e3\f5e3" +} + +.fa-duotone.fa-icicles:after, +.fad.fa-icicles:after { + content: "\f7ad\f7ad" +} + +.fa-duotone.fa-person-shelter:after, +.fad.fa-person-shelter:after { + content: "\e54f\e54f" +} + +.fa-duotone.fa-neuter:after, +.fad.fa-neuter:after { + content: "\f22c\f22c" +} + +.fa-duotone.fa-id-badge:after, +.fad.fa-id-badge:after { + content: "\f2c1\f2c1" +} + +.fa-duotone.fa-kazoo:after, +.fad.fa-kazoo:after { + content: "\f8c7\f8c7" +} + +.fa-duotone.fa-marker:after, +.fad.fa-marker:after { + content: "\f5a1\f5a1" +} + +.fa-duotone.fa-bin-bottles:after, +.fad.fa-bin-bottles:after { + content: "\e5f5\e5f5" +} + +.fa-duotone.fa-face-laugh-beam:after, +.fa-duotone.fa-laugh-beam:after, +.fad.fa-face-laugh-beam:after, +.fad.fa-laugh-beam:after { + content: "\f59a\f59a" +} + +.fa-duotone.fa-square-arrow-down-left:after, +.fad.fa-square-arrow-down-left:after { + content: "\e261\e261" +} + +.fa-duotone.fa-battery-bolt:after, +.fad.fa-battery-bolt:after { + content: "\f376\f376" +} + +.fa-duotone.fa-tree-large:after, +.fad.fa-tree-large:after { + content: "\f7dd\f7dd" +} + +.fa-duotone.fa-helicopter-symbol:after, +.fad.fa-helicopter-symbol:after { + content: "\e502\e502" +} + +.fa-duotone.fa-aperture:after, +.fad.fa-aperture:after { + content: "\e2df\e2df" +} + +.fa-duotone.fa-universal-access:after, +.fad.fa-universal-access:after { + content: "\f29a\f29a" +} + +.fa-duotone.fa-gear-complex:after, +.fad.fa-gear-complex:after { + content: "\e5e9\e5e9" +} + +.fa-duotone.fa-file-magnifying-glass:after, +.fa-duotone.fa-file-search:after, +.fad.fa-file-magnifying-glass:after, +.fad.fa-file-search:after { + content: "\f865\f865" +} + +.fa-duotone.fa-up-right:after, +.fad.fa-up-right:after { + content: "\e2be\e2be" +} + +.fa-duotone.fa-chevron-circle-up:after, +.fa-duotone.fa-circle-chevron-up:after, +.fad.fa-chevron-circle-up:after, +.fad.fa-circle-chevron-up:after { + content: "\f139\f139" +} + +.fa-duotone.fa-user-police:after, +.fad.fa-user-police:after { + content: "\e333\e333" +} + +.fa-duotone.fa-lari-sign:after, +.fad.fa-lari-sign:after { + content: "\e1c8\e1c8" +} + +.fa-duotone.fa-volcano:after, +.fad.fa-volcano:after { + content: "\f770\f770" +} + +.fa-duotone.fa-teddy-bear:after, +.fad.fa-teddy-bear:after { + content: "\e3cf\e3cf" +} + +.fa-duotone.fa-stocking:after, +.fad.fa-stocking:after { + content: "\f7d5\f7d5" +} + +.fa-duotone.fa-person-walking-dashed-line-arrow-right:after, +.fad.fa-person-walking-dashed-line-arrow-right:after { + content: "\e553\e553" +} + +.fa-duotone.fa-image-slash:after, +.fad.fa-image-slash:after { + content: "\e1b7\e1b7" +} + +.fa-duotone.fa-mask-snorkel:after, +.fad.fa-mask-snorkel:after { + content: "\e3b7\e3b7" +} + +.fa-duotone.fa-smoke:after, +.fad.fa-smoke:after { + content: "\f760\f760" +} + +.fa-duotone.fa-gbp:after, +.fa-duotone.fa-pound-sign:after, +.fa-duotone.fa-sterling-sign:after, +.fad.fa-gbp:after, +.fad.fa-pound-sign:after, +.fad.fa-sterling-sign:after { + content: "\f154\f154" +} + +.fa-duotone.fa-battery-exclamation:after, +.fad.fa-battery-exclamation:after { + content: "\e0b0\e0b0" +} + +.fa-duotone.fa-viruses:after, +.fad.fa-viruses:after { + content: "\e076\e076" +} + +.fa-duotone.fa-square-person-confined:after, +.fad.fa-square-person-confined:after { + content: "\e577\e577" +} + +.fa-duotone.fa-user-tie:after, +.fad.fa-user-tie:after { + content: "\f508\f508" +} + +.fa-duotone.fa-arrow-down-long:after, +.fa-duotone.fa-long-arrow-down:after, +.fad.fa-arrow-down-long:after, +.fad.fa-long-arrow-down:after { + content: "\f175\f175" +} + +.fa-duotone.fa-tent-arrow-down-to-line:after, +.fad.fa-tent-arrow-down-to-line:after { + content: "\e57e\e57e" +} + +.fa-duotone.fa-certificate:after, +.fad.fa-certificate:after { + content: "\f0a3\f0a3" +} + +.fa-duotone.fa-crystal-ball:after, +.fad.fa-crystal-ball:after { + content: "\e362\e362" +} + +.fa-duotone.fa-mail-reply-all:after, +.fa-duotone.fa-reply-all:after, +.fad.fa-mail-reply-all:after, +.fad.fa-reply-all:after { + content: "\f122\f122" +} + +.fa-duotone.fa-suitcase:after, +.fad.fa-suitcase:after { + content: "\f0f2\f0f2" +} + +.fa-duotone.fa-person-skating:after, +.fa-duotone.fa-skating:after, +.fad.fa-person-skating:after, +.fad.fa-skating:after { + content: "\f7c5\f7c5" +} + +.fa-duotone.fa-star-shooting:after, +.fad.fa-star-shooting:after { + content: "\e036\e036" +} + +.fa-duotone.fa-binary-lock:after, +.fad.fa-binary-lock:after { + content: "\e33d\e33d" +} + +.fa-duotone.fa-filter-circle-dollar:after, +.fa-duotone.fa-funnel-dollar:after, +.fad.fa-filter-circle-dollar:after, +.fad.fa-funnel-dollar:after { + content: "\f662\f662" +} + +.fa-duotone.fa-camera-retro:after, +.fad.fa-camera-retro:after { + content: "\f083\f083" +} + +.fa-duotone.fa-arrow-circle-down:after, +.fa-duotone.fa-circle-arrow-down:after, +.fad.fa-arrow-circle-down:after, +.fad.fa-circle-arrow-down:after { + content: "\f0ab\f0ab" +} + +.fa-duotone.fa-comment-edit:after, +.fa-duotone.fa-comment-pen:after, +.fad.fa-comment-edit:after, +.fad.fa-comment-pen:after { + content: "\f4ae\f4ae" +} + +.fa-duotone.fa-arrow-right-to-file:after, +.fa-duotone.fa-file-import:after, +.fad.fa-arrow-right-to-file:after, +.fad.fa-file-import:after { + content: "\f56f\f56f" +} + +.fa-duotone.fa-banjo:after, +.fad.fa-banjo:after { + content: "\f8a3\f8a3" +} + +.fa-duotone.fa-external-link-square:after, +.fa-duotone.fa-square-arrow-up-right:after, +.fad.fa-external-link-square:after, +.fad.fa-square-arrow-up-right:after { + content: "\f14c\f14c" +} + +.fa-duotone.fa-light-emergency-on:after, +.fad.fa-light-emergency-on:after { + content: "\e420\e420" +} + +.fa-duotone.fa-kerning:after, +.fad.fa-kerning:after { + content: "\f86f\f86f" +} + +.fa-duotone.fa-box-open:after, +.fad.fa-box-open:after { + content: "\f49e\f49e" +} + +.fa-duotone.fa-square-f:after, +.fad.fa-square-f:after { + content: "\e270\e270" +} + +.fa-duotone.fa-scroll:after, +.fad.fa-scroll:after { + content: "\f70e\f70e" +} + +.fa-duotone.fa-spa:after, +.fad.fa-spa:after { + content: "\f5bb\f5bb" +} + +.fa-duotone.fa-arrow-from-right:after, +.fa-duotone.fa-arrow-left-from-line:after, +.fad.fa-arrow-from-right:after, +.fad.fa-arrow-left-from-line:after { + content: "\f344\f344" +} + +.fa-duotone.fa-strawberry:after, +.fad.fa-strawberry:after { + content: "\e32b\e32b" +} + +.fa-duotone.fa-location-pin-lock:after, +.fad.fa-location-pin-lock:after { + content: "\e51f\e51f" +} + +.fa-duotone.fa-pause:after, +.fad.fa-pause:after { + content: "\f04c\f04c" +} + +.fa-duotone.fa-clock-eight-thirty:after, +.fad.fa-clock-eight-thirty:after { + content: "\e346\e346" +} + +.fa-duotone.fa-plane-alt:after, +.fa-duotone.fa-plane-engines:after, +.fad.fa-plane-alt:after, +.fad.fa-plane-engines:after { + content: "\f3de\f3de" +} + +.fa-duotone.fa-hill-avalanche:after, +.fad.fa-hill-avalanche:after { + content: "\e507\e507" +} + +.fa-duotone.fa-temperature-0:after, +.fa-duotone.fa-temperature-empty:after, +.fa-duotone.fa-thermometer-0:after, +.fa-duotone.fa-thermometer-empty:after, +.fad.fa-temperature-0:after, +.fad.fa-temperature-empty:after, +.fad.fa-thermometer-0:after, +.fad.fa-thermometer-empty:after { + content: "\f2cb\f2cb" +} + +.fa-duotone.fa-bomb:after, +.fad.fa-bomb:after { + content: "\f1e2\f1e2" +} + +.fa-duotone.fa-gauge-low:after, +.fa-duotone.fa-tachometer-alt-slow:after, +.fad.fa-gauge-low:after, +.fad.fa-tachometer-alt-slow:after { + content: "\f627\f627" +} + +.fa-duotone.fa-registered:after, +.fad.fa-registered:after { + content: "\f25d\f25d" +} + +.fa-duotone.fa-trash-can-plus:after, +.fad.fa-trash-can-plus:after { + content: "\e2ac\e2ac" +} + +.fa-duotone.fa-address-card:after, +.fa-duotone.fa-contact-card:after, +.fa-duotone.fa-vcard:after, +.fad.fa-address-card:after, +.fad.fa-contact-card:after, +.fad.fa-vcard:after { + content: "\f2bb\f2bb" +} + +.fa-duotone.fa-balance-scale-right:after, +.fa-duotone.fa-scale-unbalanced-flip:after, +.fad.fa-balance-scale-right:after, +.fad.fa-scale-unbalanced-flip:after { + content: "\f516\f516" +} + +.fa-duotone.fa-globe-snow:after, +.fad.fa-globe-snow:after { + content: "\f7a3\f7a3" +} + +.fa-duotone.fa-subscript:after, +.fad.fa-subscript:after { + content: "\f12c\f12c" +} + +.fa-duotone.fa-diamond-turn-right:after, +.fa-duotone.fa-directions:after, +.fad.fa-diamond-turn-right:after, +.fad.fa-directions:after { + content: "\f5eb\f5eb" +} + +.fa-duotone.fa-integral:after, +.fad.fa-integral:after { + content: "\f667\f667" +} + +.fa-duotone.fa-burst:after, +.fad.fa-burst:after { + content: "\e4dc\e4dc" +} + +.fa-duotone.fa-house-laptop:after, +.fa-duotone.fa-laptop-house:after, +.fad.fa-house-laptop:after, +.fad.fa-laptop-house:after { + content: "\e066\e066" +} + +.fa-duotone.fa-face-tired:after, +.fa-duotone.fa-tired:after, +.fad.fa-face-tired:after, +.fad.fa-tired:after { + content: "\f5c8\f5c8" +} + +.fa-duotone.fa-money-bills:after, +.fad.fa-money-bills:after { + content: "\e1f3\e1f3" +} + +.fa-duotone.fa-blinds-raised:after, +.fad.fa-blinds-raised:after { + content: "\f8fd\f8fd" +} + +.fa-duotone.fa-smog:after, +.fad.fa-smog:after { + content: "\f75f\f75f" +} + +.fa-duotone.fa-ufo-beam:after, +.fad.fa-ufo-beam:after { + content: "\e048\e048" +} + +.fa-duotone.fa-caret-circle-up:after, +.fa-duotone.fa-circle-caret-up:after, +.fad.fa-caret-circle-up:after, +.fad.fa-circle-caret-up:after { + content: "\f331\f331" +} + +.fa-duotone.fa-user-vneck-hair-long:after, +.fad.fa-user-vneck-hair-long:after { + content: "\e463\e463" +} + +.fa-duotone.fa-square-a-lock:after, +.fad.fa-square-a-lock:after { + content: "\e44d\e44d" +} + +.fa-duotone.fa-crutch:after, +.fad.fa-crutch:after { + content: "\f7f7\f7f7" +} + +.fa-duotone.fa-gas-pump-slash:after, +.fad.fa-gas-pump-slash:after { + content: "\f5f4\f5f4" +} + +.fa-duotone.fa-cloud-arrow-up:after, +.fa-duotone.fa-cloud-upload-alt:after, +.fa-duotone.fa-cloud-upload:after, +.fad.fa-cloud-arrow-up:after, +.fad.fa-cloud-upload-alt:after, +.fad.fa-cloud-upload:after { + content: "\f0ee\f0ee" +} + +.fa-duotone.fa-palette:after, +.fad.fa-palette:after { + content: "\f53f\f53f" +} + +.fa-duotone.fa-transporter-4:after, +.fad.fa-transporter-4:after { + content: "\e2a5\e2a5" +} + +.fa-duotone.fa-chart-mixed-up-circle-currency:after, +.fad.fa-chart-mixed-up-circle-currency:after { + content: "\e5d8\e5d8" +} + +.fa-duotone.fa-objects-align-right:after, +.fad.fa-objects-align-right:after { + content: "\e3bf\e3bf" +} + +.fa-duotone.fa-arrows-turn-right:after, +.fad.fa-arrows-turn-right:after { + content: "\e4c0\e4c0" +} + +.fa-duotone.fa-vest:after, +.fad.fa-vest:after { + content: "\e085\e085" +} + +.fa-duotone.fa-pig:after, +.fad.fa-pig:after { + content: "\f706\f706" +} + +.fa-duotone.fa-inbox-full:after, +.fad.fa-inbox-full:after { + content: "\e1ba\e1ba" +} + +.fa-duotone.fa-circle-envelope:after, +.fa-duotone.fa-envelope-circle:after, +.fad.fa-circle-envelope:after, +.fad.fa-envelope-circle:after { + content: "\e10c\e10c" +} + +.fa-duotone.fa-construction:after, +.fa-duotone.fa-triangle-person-digging:after, +.fad.fa-construction:after, +.fad.fa-triangle-person-digging:after { + content: "\f85d\f85d" +} + +.fa-duotone.fa-ferry:after, +.fad.fa-ferry:after { + content: "\e4ea\e4ea" +} + +.fa-duotone.fa-bullseye-arrow:after, +.fad.fa-bullseye-arrow:after { + content: "\f648\f648" +} + +.fa-duotone.fa-arrows-down-to-people:after, +.fad.fa-arrows-down-to-people:after { + content: "\e4b9\e4b9" +} + +.fa-duotone.fa-seedling:after, +.fa-duotone.fa-sprout:after, +.fad.fa-seedling:after, +.fad.fa-sprout:after { + content: "\f4d8\f4d8" +} + +.fa-duotone.fa-clock-seven:after, +.fad.fa-clock-seven:after { + content: "\e350\e350" +} + +.fa-duotone.fa-arrows-alt-h:after, +.fa-duotone.fa-left-right:after, +.fad.fa-arrows-alt-h:after, +.fad.fa-left-right:after { + content: "\f337\f337" +} + +.fa-duotone.fa-boxes-packing:after, +.fad.fa-boxes-packing:after { + content: "\e4c7\e4c7" +} + +.fa-duotone.fa-arrow-circle-left:after, +.fa-duotone.fa-circle-arrow-left:after, +.fad.fa-arrow-circle-left:after, +.fad.fa-circle-arrow-left:after { + content: "\f0a8\f0a8" +} + +.fa-duotone.fa-flashlight:after, +.fad.fa-flashlight:after { + content: "\f8b8\f8b8" +} + +.fa-duotone.fa-file-jpg:after, +.fad.fa-file-jpg:after { + content: "\e646\e646" +} + +.fa-duotone.fa-group-arrows-rotate:after, +.fad.fa-group-arrows-rotate:after { + content: "\e4f6\e4f6" +} + +.fa-duotone.fa-bowl-food:after, +.fad.fa-bowl-food:after { + content: "\e4c6\e4c6" +} + +.fa-duotone.fa-square-9:after, +.fad.fa-square-9:after { + content: "\e25e\e25e" +} + +.fa-duotone.fa-candy-cane:after, +.fad.fa-candy-cane:after { + content: "\f786\f786" +} + +.fa-duotone.fa-arrow-down-wide-short:after, +.fa-duotone.fa-sort-amount-asc:after, +.fa-duotone.fa-sort-amount-down:after, +.fad.fa-arrow-down-wide-short:after, +.fad.fa-sort-amount-asc:after, +.fad.fa-sort-amount-down:after { + content: "\f160\f160" +} + +.fa-duotone.fa-dollar-square:after, +.fa-duotone.fa-square-dollar:after, +.fa-duotone.fa-usd-square:after, +.fad.fa-dollar-square:after, +.fad.fa-square-dollar:after, +.fad.fa-usd-square:after { + content: "\f2e9\f2e9" +} + +.fa-duotone.fa-phone-arrow-right:after, +.fad.fa-phone-arrow-right:after { + content: "\e5be\e5be" +} + +.fa-duotone.fa-hand-holding-seedling:after, +.fad.fa-hand-holding-seedling:after { + content: "\f4bf\f4bf" +} + +.fa-duotone.fa-comment-alt-check:after, +.fa-duotone.fa-message-check:after, +.fad.fa-comment-alt-check:after, +.fad.fa-message-check:after { + content: "\f4a2\f4a2" +} + +.fa-duotone.fa-cloud-bolt:after, +.fa-duotone.fa-thunderstorm:after, +.fad.fa-cloud-bolt:after, +.fad.fa-thunderstorm:after { + content: "\f76c\f76c" +} + +.fa-duotone.fa-chart-line-up-down:after, +.fad.fa-chart-line-up-down:after { + content: "\e5d7\e5d7" +} + +.fa-duotone.fa-remove-format:after, +.fa-duotone.fa-text-slash:after, +.fad.fa-remove-format:after, +.fad.fa-text-slash:after { + content: "\f87d\f87d" +} + +.fa-duotone.fa-watch:after, +.fad.fa-watch:after { + content: "\f2e1\f2e1" +} + +.fa-duotone.fa-circle-down-left:after, +.fad.fa-circle-down-left:after { + content: "\e107\e107" +} + +.fa-duotone.fa-text:after, +.fad.fa-text:after { + content: "\f893\f893" +} + +.fa-duotone.fa-projector:after, +.fad.fa-projector:after { + content: "\f8d6\f8d6" +} + +.fa-duotone.fa-face-smile-wink:after, +.fa-duotone.fa-smile-wink:after, +.fad.fa-face-smile-wink:after, +.fad.fa-smile-wink:after { + content: "\f4da\f4da" +} + +.fa-duotone.fa-tombstone-alt:after, +.fa-duotone.fa-tombstone-blank:after, +.fad.fa-tombstone-alt:after, +.fad.fa-tombstone-blank:after { + content: "\f721\f721" +} + +.fa-duotone.fa-chess-king-alt:after, +.fa-duotone.fa-chess-king-piece:after, +.fad.fa-chess-king-alt:after, +.fad.fa-chess-king-piece:after { + content: "\f440\f440" +} + +.fa-duotone.fa-circle-6:after, +.fad.fa-circle-6:after { + content: "\e0f3\e0f3" +} + +.fa-duotone.fa-waves-sine:after, +.fad.fa-waves-sine:after { + content: "\e65d\e65d" +} + +.fa-duotone.fa-arrow-alt-left:after, +.fa-duotone.fa-left:after, +.fad.fa-arrow-alt-left:after, +.fad.fa-left:after { + content: "\f355\f355" +} + +.fa-duotone.fa-file-word:after, +.fad.fa-file-word:after { + content: "\f1c2\f1c2" +} + +.fa-duotone.fa-file-powerpoint:after, +.fad.fa-file-powerpoint:after { + content: "\f1c4\f1c4" +} + +.fa-duotone.fa-arrow-alt-square-down:after, +.fa-duotone.fa-square-down:after, +.fad.fa-arrow-alt-square-down:after, +.fad.fa-square-down:after { + content: "\f350\f350" +} + +.fa-duotone.fa-objects-align-center-vertical:after, +.fad.fa-objects-align-center-vertical:after { + content: "\e3bd\e3bd" +} + +.fa-duotone.fa-arrows-h:after, +.fa-duotone.fa-arrows-left-right:after, +.fad.fa-arrows-h:after, +.fad.fa-arrows-left-right:after { + content: "\f07e\f07e" +} + +.fa-duotone.fa-house-lock:after, +.fad.fa-house-lock:after { + content: "\e510\e510" +} + +.fa-duotone.fa-cloud-arrow-down:after, +.fa-duotone.fa-cloud-download-alt:after, +.fa-duotone.fa-cloud-download:after, +.fad.fa-cloud-arrow-down:after, +.fad.fa-cloud-download-alt:after, +.fad.fa-cloud-download:after { + content: "\f0ed\f0ed" +} + +.fa-duotone.fa-wreath:after, +.fad.fa-wreath:after { + content: "\f7e2\f7e2" +} + +.fa-duotone.fa-children:after, +.fad.fa-children:after { + content: "\e4e1\e4e1" +} + +.fa-duotone.fa-meter-droplet:after, +.fad.fa-meter-droplet:after { + content: "\e1ea\e1ea" +} + +.fa-duotone.fa-blackboard:after, +.fa-duotone.fa-chalkboard:after, +.fad.fa-blackboard:after, +.fad.fa-chalkboard:after { + content: "\f51b\f51b" +} + +.fa-duotone.fa-user-alt-slash:after, +.fa-duotone.fa-user-large-slash:after, +.fad.fa-user-alt-slash:after, +.fad.fa-user-large-slash:after { + content: "\f4fa\f4fa" +} + +.fa-duotone.fa-signal-4:after, +.fa-duotone.fa-signal-strong:after, +.fad.fa-signal-4:after, +.fad.fa-signal-strong:after { + content: "\f68f\f68f" +} + +.fa-duotone.fa-lollipop:after, +.fa-duotone.fa-lollypop:after, +.fad.fa-lollipop:after, +.fad.fa-lollypop:after { + content: "\e424\e424" +} + +.fa-duotone.fa-list-tree:after, +.fad.fa-list-tree:after { + content: "\e1d2\e1d2" +} + +.fa-duotone.fa-envelope-open:after, +.fad.fa-envelope-open:after { + content: "\f2b6\f2b6" +} + +.fa-duotone.fa-draw-circle:after, +.fad.fa-draw-circle:after { + content: "\f5ed\f5ed" +} + +.fa-duotone.fa-cat-space:after, +.fad.fa-cat-space:after { + content: "\e001\e001" +} + +.fa-duotone.fa-handshake-alt-slash:after, +.fa-duotone.fa-handshake-simple-slash:after, +.fad.fa-handshake-alt-slash:after, +.fad.fa-handshake-simple-slash:after { + content: "\e05f\e05f" +} + +.fa-duotone.fa-rabbit-fast:after, +.fa-duotone.fa-rabbit-running:after, +.fad.fa-rabbit-fast:after, +.fad.fa-rabbit-running:after { + content: "\f709\f709" +} + +.fa-duotone.fa-memo-pad:after, +.fad.fa-memo-pad:after { + content: "\e1da\e1da" +} + +.fa-duotone.fa-mattress-pillow:after, +.fad.fa-mattress-pillow:after { + content: "\e525\e525" +} + +.fa-duotone.fa-alarm-plus:after, +.fad.fa-alarm-plus:after { + content: "\f844\f844" +} + +.fa-duotone.fa-alicorn:after, +.fad.fa-alicorn:after { + content: "\f6b0\f6b0" +} + +.fa-duotone.fa-comment-question:after, +.fad.fa-comment-question:after { + content: "\e14b\e14b" +} + +.fa-duotone.fa-gingerbread-man:after, +.fad.fa-gingerbread-man:after { + content: "\f79d\f79d" +} + +.fa-duotone.fa-guarani-sign:after, +.fad.fa-guarani-sign:after { + content: "\e19a\e19a" +} + +.fa-duotone.fa-burger-fries:after, +.fad.fa-burger-fries:after { + content: "\e0cd\e0cd" +} + +.fa-duotone.fa-mug-tea:after, +.fad.fa-mug-tea:after { + content: "\f875\f875" +} + +.fa-duotone.fa-border-top:after, +.fad.fa-border-top:after { + content: "\f855\f855" +} + +.fa-duotone.fa-arrows-rotate:after, +.fa-duotone.fa-refresh:after, +.fa-duotone.fa-sync:after, +.fad.fa-arrows-rotate:after, +.fad.fa-refresh:after, +.fad.fa-sync:after { + content: "\f021\f021" +} + +.fa-duotone.fa-book-circle:after, +.fa-duotone.fa-circle-book-open:after, +.fad.fa-book-circle:after, +.fad.fa-circle-book-open:after { + content: "\e0ff\e0ff" +} + +.fa-duotone.fa-arrows-to-dotted-line:after, +.fad.fa-arrows-to-dotted-line:after { + content: "\e0a6\e0a6" +} + +.fa-duotone.fa-fire-extinguisher:after, +.fad.fa-fire-extinguisher:after { + content: "\f134\f134" +} + +.fa-duotone.fa-magnifying-glass-arrows-rotate:after, +.fad.fa-magnifying-glass-arrows-rotate:after { + content: "\e65e\e65e" +} + +.fa-duotone.fa-garage-open:after, +.fad.fa-garage-open:after { + content: "\e00b\e00b" +} + +.fa-duotone.fa-shelves-empty:after, +.fad.fa-shelves-empty:after { + content: "\e246\e246" +} + +.fa-duotone.fa-cruzeiro-sign:after, +.fad.fa-cruzeiro-sign:after { + content: "\e152\e152" +} + +.fa-duotone.fa-watch-apple:after, +.fad.fa-watch-apple:after { + content: "\e2cb\e2cb" +} + +.fa-duotone.fa-watch-calculator:after, +.fad.fa-watch-calculator:after { + content: "\f8f0\f8f0" +} + +.fa-duotone.fa-list-dropdown:after, +.fad.fa-list-dropdown:after { + content: "\e1cf\e1cf" +} + +.fa-duotone.fa-cabinet-filing:after, +.fad.fa-cabinet-filing:after { + content: "\f64b\f64b" +} + +.fa-duotone.fa-burger-soda:after, +.fad.fa-burger-soda:after { + content: "\f858\f858" +} + +.fa-duotone.fa-arrow-square-up:after, +.fa-duotone.fa-square-arrow-up:after, +.fad.fa-arrow-square-up:after, +.fad.fa-square-arrow-up:after { + content: "\f33c\f33c" +} + +.fa-duotone.fa-greater-than-equal:after, +.fad.fa-greater-than-equal:after { + content: "\f532\f532" +} + +.fa-duotone.fa-pallet-box:after, +.fad.fa-pallet-box:after { + content: "\e208\e208" +} + +.fa-duotone.fa-face-confounded:after, +.fad.fa-face-confounded:after { + content: "\e36c\e36c" +} + +.fa-duotone.fa-shield-alt:after, +.fa-duotone.fa-shield-halved:after, +.fad.fa-shield-alt:after, +.fad.fa-shield-halved:after { + content: "\f3ed\f3ed" +} + +.fa-duotone.fa-truck-plow:after, +.fad.fa-truck-plow:after { + content: "\f7de\f7de" +} + +.fa-duotone.fa-atlas:after, +.fa-duotone.fa-book-atlas:after, +.fad.fa-atlas:after, +.fad.fa-book-atlas:after { + content: "\f558\f558" +} + +.fa-duotone.fa-virus:after, +.fad.fa-virus:after { + content: "\e074\e074" +} + +.fa-duotone.fa-grid-round-2:after, +.fad.fa-grid-round-2:after { + content: "\e5db\e5db" +} + +.fa-duotone.fa-comment-middle-top:after, +.fad.fa-comment-middle-top:after { + content: "\e14a\e14a" +} + +.fa-duotone.fa-wave:after, +.fad.fa-wave:after { + content: "\e65b\e65b" +} + +.fa-duotone.fa-envelope-circle-check:after, +.fad.fa-envelope-circle-check:after { + content: "\e4e8\e4e8" +} + +.fa-duotone.fa-layer-group:after, +.fad.fa-layer-group:after { + content: "\f5fd\f5fd" +} + +.fa-duotone.fa-restroom-simple:after, +.fad.fa-restroom-simple:after { + content: "\e23a\e23a" +} + +.fa-duotone.fa-arrows-to-dot:after, +.fad.fa-arrows-to-dot:after { + content: "\e4be\e4be" +} + +.fa-duotone.fa-border-outer:after, +.fad.fa-border-outer:after { + content: "\f851\f851" +} + +.fa-duotone.fa-hashtag-lock:after, +.fad.fa-hashtag-lock:after { + content: "\e415\e415" +} + +.fa-duotone.fa-clock-two-thirty:after, +.fad.fa-clock-two-thirty:after { + content: "\e35b\e35b" +} + +.fa-duotone.fa-archway:after, +.fad.fa-archway:after { + content: "\f557\f557" +} + +.fa-duotone.fa-heart-circle-check:after, +.fad.fa-heart-circle-check:after { + content: "\e4fd\e4fd" +} + +.fa-duotone.fa-house-chimney-crack:after, +.fa-duotone.fa-house-damage:after, +.fad.fa-house-chimney-crack:after, +.fad.fa-house-damage:after { + content: "\f6f1\f6f1" +} + +.fa-duotone.fa-file-archive:after, +.fa-duotone.fa-file-zipper:after, +.fad.fa-file-archive:after, +.fad.fa-file-zipper:after { + content: "\f1c6\f1c6" +} + +.fa-duotone.fa-ticket-perforated:after, +.fad.fa-ticket-perforated:after { + content: "\e63e\e63e" +} + +.fa-duotone.fa-heart-half:after, +.fad.fa-heart-half:after { + content: "\e1ab\e1ab" +} + +.fa-duotone.fa-comment-check:after, +.fad.fa-comment-check:after { + content: "\f4ac\f4ac" +} + +.fa-duotone.fa-square:after, +.fad.fa-square:after { + content: "\f0c8\f0c8" +} + +.fa-duotone.fa-memo:after, +.fad.fa-memo:after { + content: "\e1d8\e1d8" +} + +.fa-duotone.fa-glass-martini:after, +.fa-duotone.fa-martini-glass-empty:after, +.fad.fa-glass-martini:after, +.fad.fa-martini-glass-empty:after { + content: "\f000\f000" +} + +.fa-duotone.fa-couch:after, +.fad.fa-couch:after { + content: "\f4b8\f4b8" +} + +.fa-duotone.fa-cedi-sign:after, +.fad.fa-cedi-sign:after { + content: "\e0df\e0df" +} + +.fa-duotone.fa-italic:after, +.fad.fa-italic:after { + content: "\f033\f033" +} + +.fa-duotone.fa-glass-citrus:after, +.fad.fa-glass-citrus:after { + content: "\f869\f869" +} + +.fa-duotone.fa-calendar-lines-pen:after, +.fad.fa-calendar-lines-pen:after { + content: "\e472\e472" +} + +.fa-duotone.fa-church:after, +.fad.fa-church:after { + content: "\f51d\f51d" +} + +.fa-duotone.fa-person-snowmobiling:after, +.fa-duotone.fa-snowmobile:after, +.fad.fa-person-snowmobiling:after, +.fad.fa-snowmobile:after { + content: "\f7d1\f7d1" +} + +.fa-duotone.fa-face-hushed:after, +.fad.fa-face-hushed:after { + content: "\e37b\e37b" +} + +.fa-duotone.fa-comments-dollar:after, +.fad.fa-comments-dollar:after { + content: "\f653\f653" +} + +.fa-duotone.fa-tickets-simple:after, +.fad.fa-tickets-simple:after { + content: "\e659\e659" +} + +.fa-duotone.fa-pickaxe:after, +.fad.fa-pickaxe:after { + content: "\e5bf\e5bf" +} + +.fa-duotone.fa-link-simple-slash:after, +.fad.fa-link-simple-slash:after { + content: "\e1ce\e1ce" +} + +.fa-duotone.fa-democrat:after, +.fad.fa-democrat:after { + content: "\f747\f747" +} + +.fa-duotone.fa-face-confused:after, +.fad.fa-face-confused:after { + content: "\e36d\e36d" +} + +.fa-duotone.fa-pinball:after, +.fad.fa-pinball:after { + content: "\e229\e229" +} + +.fa-duotone.fa-z:after, +.fad.fa-z:after { + content: "\5a\5a" +} + +.fa-duotone.fa-person-skiing:after, +.fa-duotone.fa-skiing:after, +.fad.fa-person-skiing:after, +.fad.fa-skiing:after { + content: "\f7c9\f7c9" +} + +.fa-duotone.fa-deer:after, +.fad.fa-deer:after { + content: "\f78e\f78e" +} + +.fa-duotone.fa-input-pipe:after, +.fad.fa-input-pipe:after { + content: "\e1be\e1be" +} + +.fa-duotone.fa-road-lock:after, +.fad.fa-road-lock:after { + content: "\e567\e567" +} + +.fa-duotone.fa-a:after, +.fad.fa-a:after { + content: "\41\41" +} + +.fa-duotone.fa-bookmark-slash:after, +.fad.fa-bookmark-slash:after { + content: "\e0c2\e0c2" +} + +.fa-duotone.fa-temperature-arrow-down:after, +.fa-duotone.fa-temperature-down:after, +.fad.fa-temperature-arrow-down:after, +.fad.fa-temperature-down:after { + content: "\e03f\e03f" +} + +.fa-duotone.fa-mace:after, +.fad.fa-mace:after { + content: "\f6f8\f6f8" +} + +.fa-duotone.fa-feather-alt:after, +.fa-duotone.fa-feather-pointed:after, +.fad.fa-feather-alt:after, +.fad.fa-feather-pointed:after { + content: "\f56b\f56b" +} + +.fa-duotone.fa-sausage:after, +.fad.fa-sausage:after { + content: "\f820\f820" +} + +.fa-duotone.fa-trash-can-clock:after, +.fad.fa-trash-can-clock:after { + content: "\e2aa\e2aa" +} + +.fa-duotone.fa-p:after, +.fad.fa-p:after { + content: "\50\50" +} + +.fa-duotone.fa-broom-wide:after, +.fad.fa-broom-wide:after { + content: "\e5d1\e5d1" +} + +.fa-duotone.fa-snowflake:after, +.fad.fa-snowflake:after { + content: "\f2dc\f2dc" +} + +.fa-duotone.fa-stomach:after, +.fad.fa-stomach:after { + content: "\f623\f623" +} + +.fa-duotone.fa-newspaper:after, +.fad.fa-newspaper:after { + content: "\f1ea\f1ea" +} + +.fa-duotone.fa-ad:after, +.fa-duotone.fa-rectangle-ad:after, +.fad.fa-ad:after, +.fad.fa-rectangle-ad:after { + content: "\f641\f641" +} + +.fa-duotone.fa-guitar-electric:after, +.fad.fa-guitar-electric:after { + content: "\f8be\f8be" +} + +.fa-duotone.fa-arrow-turn-down-right:after, +.fad.fa-arrow-turn-down-right:after { + content: "\e3d6\e3d6" +} + +.fa-duotone.fa-moon-cloud:after, +.fad.fa-moon-cloud:after { + content: "\f754\f754" +} + +.fa-duotone.fa-bread-slice-butter:after, +.fad.fa-bread-slice-butter:after { + content: "\e3e1\e3e1" +} + +.fa-duotone.fa-arrow-circle-right:after, +.fa-duotone.fa-circle-arrow-right:after, +.fad.fa-arrow-circle-right:after, +.fad.fa-circle-arrow-right:after { + content: "\f0a9\f0a9" +} + +.fa-duotone.fa-user-group-crown:after, +.fa-duotone.fa-users-crown:after, +.fad.fa-user-group-crown:after, +.fad.fa-users-crown:after { + content: "\f6a5\f6a5" +} + +.fa-duotone.fa-circle-i:after, +.fad.fa-circle-i:after { + content: "\e111\e111" +} + +.fa-duotone.fa-toilet-paper-check:after, +.fad.fa-toilet-paper-check:after { + content: "\e5b2\e5b2" +} + +.fa-duotone.fa-filter-circle-xmark:after, +.fad.fa-filter-circle-xmark:after { + content: "\e17b\e17b" +} + +.fa-duotone.fa-locust:after, +.fad.fa-locust:after { + content: "\e520\e520" +} + +.fa-duotone.fa-sort:after, +.fa-duotone.fa-unsorted:after, +.fad.fa-sort:after, +.fad.fa-unsorted:after { + content: "\f0dc\f0dc" +} + +.fa-duotone.fa-list-1-2:after, +.fa-duotone.fa-list-numeric:after, +.fa-duotone.fa-list-ol:after, +.fad.fa-list-1-2:after, +.fad.fa-list-numeric:after, +.fad.fa-list-ol:after { + content: "\f0cb\f0cb" +} + +.fa-duotone.fa-chart-waterfall:after, +.fad.fa-chart-waterfall:after { + content: "\e0eb\e0eb" +} + +.fa-duotone.fa-sparkle:after, +.fad.fa-sparkle:after { + content: "\e5d6\e5d6" +} + +.fa-duotone.fa-face-party:after, +.fad.fa-face-party:after { + content: "\e383\e383" +} + +.fa-duotone.fa-kidneys:after, +.fad.fa-kidneys:after { + content: "\f5fb\f5fb" +} + +.fa-duotone.fa-wifi-exclamation:after, +.fad.fa-wifi-exclamation:after { + content: "\e2cf\e2cf" +} + +.fa-duotone.fa-chart-network:after, +.fad.fa-chart-network:after { + content: "\f78a\f78a" +} + +.fa-duotone.fa-person-dress-burst:after, +.fad.fa-person-dress-burst:after { + content: "\e544\e544" +} + +.fa-duotone.fa-dice-d4:after, +.fad.fa-dice-d4:after { + content: "\f6d0\f6d0" +} + +.fa-duotone.fa-money-check-alt:after, +.fa-duotone.fa-money-check-dollar:after, +.fad.fa-money-check-alt:after, +.fad.fa-money-check-dollar:after { + content: "\f53d\f53d" +} + +.fa-duotone.fa-vector-square:after, +.fad.fa-vector-square:after { + content: "\f5cb\f5cb" +} + +.fa-duotone.fa-bread-slice:after, +.fad.fa-bread-slice:after { + content: "\f7ec\f7ec" +} + +.fa-duotone.fa-language:after, +.fad.fa-language:after { + content: "\f1ab\f1ab" +} + +.fa-duotone.fa-wheat-awn-slash:after, +.fad.fa-wheat-awn-slash:after { + content: "\e338\e338" +} + +.fa-duotone.fa-face-kiss-wink-heart:after, +.fa-duotone.fa-kiss-wink-heart:after, +.fad.fa-face-kiss-wink-heart:after, +.fad.fa-kiss-wink-heart:after { + content: "\f598\f598" +} + +.fa-duotone.fa-dagger:after, +.fad.fa-dagger:after { + content: "\f6cb\f6cb" +} + +.fa-duotone.fa-podium:after, +.fad.fa-podium:after { + content: "\f680\f680" +} + +.fa-duotone.fa-memo-circle-check:after, +.fad.fa-memo-circle-check:after { + content: "\e1d9\e1d9" +} + +.fa-duotone.fa-route-highway:after, +.fad.fa-route-highway:after { + content: "\f61a\f61a" +} + +.fa-duotone.fa-arrow-alt-to-bottom:after, +.fa-duotone.fa-down-to-line:after, +.fad.fa-arrow-alt-to-bottom:after, +.fad.fa-down-to-line:after { + content: "\f34a\f34a" +} + +.fa-duotone.fa-filter:after, +.fad.fa-filter:after { + content: "\f0b0\f0b0" +} + +.fa-duotone.fa-square-g:after, +.fad.fa-square-g:after { + content: "\e271\e271" +} + +.fa-duotone.fa-circle-phone:after, +.fa-duotone.fa-phone-circle:after, +.fad.fa-circle-phone:after, +.fad.fa-phone-circle:after { + content: "\e11b\e11b" +} + +.fa-duotone.fa-clipboard-prescription:after, +.fad.fa-clipboard-prescription:after { + content: "\f5e8\f5e8" +} + +.fa-duotone.fa-user-nurse-hair:after, +.fad.fa-user-nurse-hair:after { + content: "\e45d\e45d" +} + +.fa-duotone.fa-question:after, +.fad.fa-question:after { + content: "\3f\3f" +} + +.fa-duotone.fa-file-signature:after, +.fad.fa-file-signature:after { + content: "\f573\f573" +} + +.fa-duotone.fa-toggle-large-on:after, +.fad.fa-toggle-large-on:after { + content: "\e5b1\e5b1" +} + +.fa-duotone.fa-arrows-alt:after, +.fa-duotone.fa-up-down-left-right:after, +.fad.fa-arrows-alt:after, +.fad.fa-up-down-left-right:after { + content: "\f0b2\f0b2" +} + +.fa-duotone.fa-dryer-alt:after, +.fa-duotone.fa-dryer-heat:after, +.fad.fa-dryer-alt:after, +.fad.fa-dryer-heat:after { + content: "\f862\f862" +} + +.fa-duotone.fa-house-chimney-user:after, +.fad.fa-house-chimney-user:after { + content: "\e065\e065" +} + +.fa-duotone.fa-hand-holding-heart:after, +.fad.fa-hand-holding-heart:after { + content: "\f4be\f4be" +} + +.fa-duotone.fa-arrow-up-small-big:after, +.fa-duotone.fa-sort-size-up-alt:after, +.fad.fa-arrow-up-small-big:after, +.fad.fa-sort-size-up-alt:after { + content: "\f88f\f88f" +} + +.fa-duotone.fa-train-track:after, +.fad.fa-train-track:after { + content: "\e453\e453" +} + +.fa-duotone.fa-puzzle-piece:after, +.fad.fa-puzzle-piece:after { + content: "\f12e\f12e" +} + +.fa-duotone.fa-money-check:after, +.fad.fa-money-check:after { + content: "\f53c\f53c" +} + +.fa-duotone.fa-star-half-alt:after, +.fa-duotone.fa-star-half-stroke:after, +.fad.fa-star-half-alt:after, +.fad.fa-star-half-stroke:after { + content: "\f5c0\f5c0" +} + +.fa-duotone.fa-file-exclamation:after, +.fad.fa-file-exclamation:after { + content: "\f31a\f31a" +} + +.fa-duotone.fa-code:after, +.fad.fa-code:after { + content: "\f121\f121" +} + +.fa-duotone.fa-glass-whiskey:after, +.fa-duotone.fa-whiskey-glass:after, +.fad.fa-glass-whiskey:after, +.fad.fa-whiskey-glass:after { + content: "\f7a0\f7a0" +} + +.fa-duotone.fa-moon-stars:after, +.fad.fa-moon-stars:after { + content: "\f755\f755" +} + +.fa-duotone.fa-building-circle-exclamation:after, +.fad.fa-building-circle-exclamation:after { + content: "\e4d3\e4d3" +} + +.fa-duotone.fa-clothes-hanger:after, +.fad.fa-clothes-hanger:after { + content: "\e136\e136" +} + +.fa-duotone.fa-mobile-iphone:after, +.fa-duotone.fa-mobile-notch:after, +.fad.fa-mobile-iphone:after, +.fad.fa-mobile-notch:after { + content: "\e1ee\e1ee" +} + +.fa-duotone.fa-magnifying-glass-chart:after, +.fad.fa-magnifying-glass-chart:after { + content: "\e522\e522" +} + +.fa-duotone.fa-arrow-up-right-from-square:after, +.fa-duotone.fa-external-link:after, +.fad.fa-arrow-up-right-from-square:after, +.fad.fa-external-link:after { + content: "\f08e\f08e" +} + +.fa-duotone.fa-cubes-stacked:after, +.fad.fa-cubes-stacked:after { + content: "\e4e6\e4e6" +} + +.fa-duotone.fa-images-user:after, +.fad.fa-images-user:after { + content: "\e1b9\e1b9" +} + +.fa-duotone.fa-krw:after, +.fa-duotone.fa-won-sign:after, +.fa-duotone.fa-won:after, +.fad.fa-krw:after, +.fad.fa-won-sign:after, +.fad.fa-won:after { + content: "\f159\f159" +} + +.fa-duotone.fa-image-polaroid-user:after, +.fad.fa-image-polaroid-user:after { + content: "\e1b6\e1b6" +} + +.fa-duotone.fa-virus-covid:after, +.fad.fa-virus-covid:after { + content: "\e4a8\e4a8" +} + +.fa-duotone.fa-square-ellipsis:after, +.fad.fa-square-ellipsis:after { + content: "\e26e\e26e" +} + +.fa-duotone.fa-pie:after, +.fad.fa-pie:after { + content: "\f705\f705" +} + +.fa-duotone.fa-chess-knight-alt:after, +.fa-duotone.fa-chess-knight-piece:after, +.fad.fa-chess-knight-alt:after, +.fad.fa-chess-knight-piece:after { + content: "\f442\f442" +} + +.fa-duotone.fa-austral-sign:after, +.fad.fa-austral-sign:after { + content: "\e0a9\e0a9" +} + +.fa-duotone.fa-cloud-plus:after, +.fad.fa-cloud-plus:after { + content: "\e35e\e35e" +} + +.fa-duotone.fa-f:after, +.fad.fa-f:after { + content: "\46\46" +} + +.fa-duotone.fa-leaf:after, +.fad.fa-leaf:after { + content: "\f06c\f06c" +} + +.fa-duotone.fa-bed-bunk:after, +.fad.fa-bed-bunk:after { + content: "\f8f8\f8f8" +} + +.fa-duotone.fa-road:after, +.fad.fa-road:after { + content: "\f018\f018" +} + +.fa-duotone.fa-cab:after, +.fa-duotone.fa-taxi:after, +.fad.fa-cab:after, +.fad.fa-taxi:after { + content: "\f1ba\f1ba" +} + +.fa-duotone.fa-person-circle-plus:after, +.fad.fa-person-circle-plus:after { + content: "\e541\e541" +} + +.fa-duotone.fa-chart-pie:after, +.fa-duotone.fa-pie-chart:after, +.fad.fa-chart-pie:after, +.fad.fa-pie-chart:after { + content: "\f200\f200" +} + +.fa-duotone.fa-bolt-lightning:after, +.fad.fa-bolt-lightning:after { + content: "\e0b7\e0b7" +} + +.fa-duotone.fa-clock-eight:after, +.fad.fa-clock-eight:after { + content: "\e345\e345" +} + +.fa-duotone.fa-sack-xmark:after, +.fad.fa-sack-xmark:after { + content: "\e56a\e56a" +} + +.fa-duotone.fa-file-xls:after, +.fad.fa-file-xls:after { + content: "\e64d\e64d" +} + +.fa-duotone.fa-file-excel:after, +.fad.fa-file-excel:after { + content: "\f1c3\f1c3" +} + +.fa-duotone.fa-file-contract:after, +.fad.fa-file-contract:after { + content: "\f56c\f56c" +} + +.fa-duotone.fa-fish-fins:after, +.fad.fa-fish-fins:after { + content: "\e4f2\e4f2" +} + +.fa-duotone.fa-circle-q:after, +.fad.fa-circle-q:after { + content: "\e11e\e11e" +} + +.fa-duotone.fa-building-flag:after, +.fad.fa-building-flag:after { + content: "\e4d5\e4d5" +} + +.fa-duotone.fa-face-grin-beam:after, +.fa-duotone.fa-grin-beam:after, +.fad.fa-face-grin-beam:after, +.fad.fa-grin-beam:after { + content: "\f582\f582" +} + +.fa-duotone.fa-object-ungroup:after, +.fad.fa-object-ungroup:after { + content: "\f248\f248" +} + +.fa-duotone.fa-face-disguise:after, +.fad.fa-face-disguise:after { + content: "\e370\e370" +} + +.fa-duotone.fa-circle-arrow-down-right:after, +.fad.fa-circle-arrow-down-right:after { + content: "\e0fa\e0fa" +} + +.fa-duotone.fa-alien-8bit:after, +.fa-duotone.fa-alien-monster:after, +.fad.fa-alien-8bit:after, +.fad.fa-alien-monster:after { + content: "\f8f6\f8f6" +} + +.fa-duotone.fa-hand-point-ribbon:after, +.fad.fa-hand-point-ribbon:after { + content: "\e1a6\e1a6" +} + +.fa-duotone.fa-poop:after, +.fad.fa-poop:after { + content: "\f619\f619" +} + +.fa-duotone.fa-object-exclude:after, +.fad.fa-object-exclude:after { + content: "\e49c\e49c" +} + +.fa-duotone.fa-telescope:after, +.fad.fa-telescope:after { + content: "\e03e\e03e" +} + +.fa-duotone.fa-location-pin:after, +.fa-duotone.fa-map-marker:after, +.fad.fa-location-pin:after, +.fad.fa-map-marker:after { + content: "\f041\f041" +} + +.fa-duotone.fa-square-list:after, +.fad.fa-square-list:after { + content: "\e489\e489" +} + +.fa-duotone.fa-kaaba:after, +.fad.fa-kaaba:after { + content: "\f66b\f66b" +} + +.fa-duotone.fa-toilet-paper:after, +.fad.fa-toilet-paper:after { + content: "\f71e\f71e" +} + +.fa-duotone.fa-hard-hat:after, +.fa-duotone.fa-hat-hard:after, +.fa-duotone.fa-helmet-safety:after, +.fad.fa-hard-hat:after, +.fad.fa-hat-hard:after, +.fad.fa-helmet-safety:after { + content: "\f807\f807" +} + +.fa-duotone.fa-comment-code:after, +.fad.fa-comment-code:after { + content: "\e147\e147" +} + +.fa-duotone.fa-sim-cards:after, +.fad.fa-sim-cards:after { + content: "\e251\e251" +} + +.fa-duotone.fa-starship:after, +.fad.fa-starship:after { + content: "\e039\e039" +} + +.fa-duotone.fa-eject:after, +.fad.fa-eject:after { + content: "\f052\f052" +} + +.fa-duotone.fa-arrow-alt-circle-right:after, +.fa-duotone.fa-circle-right:after, +.fad.fa-arrow-alt-circle-right:after, +.fad.fa-circle-right:after { + content: "\f35a\f35a" +} + +.fa-duotone.fa-plane-circle-check:after, +.fad.fa-plane-circle-check:after { + content: "\e555\e555" +} + +.fa-duotone.fa-seal:after, +.fad.fa-seal:after { + content: "\e241\e241" +} + +.fa-duotone.fa-user-cowboy:after, +.fad.fa-user-cowboy:after { + content: "\f8ea\f8ea" +} + +.fa-duotone.fa-hexagon-vertical-nft:after, +.fad.fa-hexagon-vertical-nft:after { + content: "\e505\e505" +} + +.fa-duotone.fa-face-rolling-eyes:after, +.fa-duotone.fa-meh-rolling-eyes:after, +.fad.fa-face-rolling-eyes:after, +.fad.fa-meh-rolling-eyes:after { + content: "\f5a5\f5a5" +} + +.fa-duotone.fa-bread-loaf:after, +.fad.fa-bread-loaf:after { + content: "\f7eb\f7eb" +} + +.fa-duotone.fa-rings-wedding:after, +.fad.fa-rings-wedding:after { + content: "\f81b\f81b" +} + +.fa-duotone.fa-object-group:after, +.fad.fa-object-group:after { + content: "\f247\f247" +} + +.fa-duotone.fa-french-fries:after, +.fad.fa-french-fries:after { + content: "\f803\f803" +} + +.fa-duotone.fa-chart-line:after, +.fa-duotone.fa-line-chart:after, +.fad.fa-chart-line:after, +.fad.fa-line-chart:after { + content: "\f201\f201" +} + +.fa-duotone.fa-calendar-arrow-down:after, +.fa-duotone.fa-calendar-download:after, +.fad.fa-calendar-arrow-down:after, +.fad.fa-calendar-download:after { + content: "\e0d0\e0d0" +} + +.fa-duotone.fa-send-back:after, +.fad.fa-send-back:after { + content: "\f87e\f87e" +} + +.fa-duotone.fa-mask-ventilator:after, +.fad.fa-mask-ventilator:after { + content: "\e524\e524" +} + +.fa-duotone.fa-tickets:after, +.fad.fa-tickets:after { + content: "\e658\e658" +} + +.fa-duotone.fa-signature-lock:after, +.fad.fa-signature-lock:after { + content: "\e3ca\e3ca" +} + +.fa-duotone.fa-arrow-right:after, +.fad.fa-arrow-right:after { + content: "\f061\f061" +} + +.fa-duotone.fa-map-signs:after, +.fa-duotone.fa-signs-post:after, +.fad.fa-map-signs:after, +.fad.fa-signs-post:after { + content: "\f277\f277" +} + +.fa-duotone.fa-octagon-plus:after, +.fa-duotone.fa-plus-octagon:after, +.fad.fa-octagon-plus:after, +.fad.fa-plus-octagon:after { + content: "\f301\f301" +} + +.fa-duotone.fa-cash-register:after, +.fad.fa-cash-register:after { + content: "\f788\f788" +} + +.fa-duotone.fa-person-circle-question:after, +.fad.fa-person-circle-question:after { + content: "\e542\e542" +} + +.fa-duotone.fa-melon-slice:after, +.fad.fa-melon-slice:after { + content: "\e311\e311" +} + +.fa-duotone.fa-space-station-moon:after, +.fad.fa-space-station-moon:after { + content: "\e033\e033" +} + +.fa-duotone.fa-comment-alt-smile:after, +.fa-duotone.fa-message-smile:after, +.fad.fa-comment-alt-smile:after, +.fad.fa-message-smile:after { + content: "\f4aa\f4aa" +} + +.fa-duotone.fa-cup-straw:after, +.fad.fa-cup-straw:after { + content: "\e363\e363" +} + +.fa-duotone.fa-arrow-alt-from-right:after, +.fa-duotone.fa-left-from-line:after, +.fad.fa-arrow-alt-from-right:after, +.fad.fa-left-from-line:after { + content: "\f348\f348" +} + +.fa-duotone.fa-h:after, +.fad.fa-h:after { + content: "\48\48" +} + +.fa-duotone.fa-basket-shopping-simple:after, +.fa-duotone.fa-shopping-basket-alt:after, +.fad.fa-basket-shopping-simple:after, +.fad.fa-shopping-basket-alt:after { + content: "\e0af\e0af" +} + +.fa-duotone.fa-hands-heart:after, +.fa-duotone.fa-hands-holding-heart:after, +.fad.fa-hands-heart:after, +.fad.fa-hands-holding-heart:after { + content: "\f4c3\f4c3" +} + +.fa-duotone.fa-clock-nine:after, +.fad.fa-clock-nine:after { + content: "\e34c\e34c" +} + +.fa-duotone.fa-hammer-brush:after, +.fad.fa-hammer-brush:after { + content: "\e620\e620" +} + +.fa-duotone.fa-tarp:after, +.fad.fa-tarp:after { + content: "\e57b\e57b" +} + +.fa-duotone.fa-face-sleepy:after, +.fad.fa-face-sleepy:after { + content: "\e38e\e38e" +} + +.fa-duotone.fa-hand-horns:after, +.fad.fa-hand-horns:after { + content: "\e1a9\e1a9" +} + +.fa-duotone.fa-screwdriver-wrench:after, +.fa-duotone.fa-tools:after, +.fad.fa-screwdriver-wrench:after, +.fad.fa-tools:after { + content: "\f7d9\f7d9" +} + +.fa-duotone.fa-arrows-to-eye:after, +.fad.fa-arrows-to-eye:after { + content: "\e4bf\e4bf" +} + +.fa-duotone.fa-circle-three-quarters:after, +.fad.fa-circle-three-quarters:after { + content: "\e125\e125" +} + +.fa-duotone.fa-trophy-alt:after, +.fa-duotone.fa-trophy-star:after, +.fad.fa-trophy-alt:after, +.fad.fa-trophy-star:after { + content: "\f2eb\f2eb" +} + +.fa-duotone.fa-plug-circle-bolt:after, +.fad.fa-plug-circle-bolt:after { + content: "\e55b\e55b" +} + +.fa-duotone.fa-face-thermometer:after, +.fad.fa-face-thermometer:after { + content: "\e39a\e39a" +} + +.fa-duotone.fa-grid-round-4:after, +.fad.fa-grid-round-4:after { + content: "\e5dd\e5dd" +} + +.fa-duotone.fa-sign-posts-wrench:after, +.fad.fa-sign-posts-wrench:after { + content: "\e626\e626" +} + +.fa-duotone.fa-shirt-running:after, +.fad.fa-shirt-running:after { + content: "\e3c8\e3c8" +} + +.fa-duotone.fa-book-circle-arrow-up:after, +.fad.fa-book-circle-arrow-up:after { + content: "\e0bd\e0bd" +} + +.fa-duotone.fa-face-nauseated:after, +.fad.fa-face-nauseated:after { + content: "\e381\e381" +} + +.fa-duotone.fa-heart:after, +.fad.fa-heart:after { + content: "\f004\f004" +} + +.fa-duotone.fa-file-chart-pie:after, +.fad.fa-file-chart-pie:after { + content: "\f65a\f65a" +} + +.fa-duotone.fa-mars-and-venus:after, +.fad.fa-mars-and-venus:after { + content: "\f224\f224" +} + +.fa-duotone.fa-home-user:after, +.fa-duotone.fa-house-user:after, +.fad.fa-home-user:after, +.fad.fa-house-user:after { + content: "\e1b0\e1b0" +} + +.fa-duotone.fa-circle-arrow-down-left:after, +.fad.fa-circle-arrow-down-left:after { + content: "\e0f9\e0f9" +} + +.fa-duotone.fa-dumpster-fire:after, +.fad.fa-dumpster-fire:after { + content: "\f794\f794" +} + +.fa-duotone.fa-hexagon-minus:after, +.fa-duotone.fa-minus-hexagon:after, +.fad.fa-hexagon-minus:after, +.fad.fa-minus-hexagon:after { + content: "\f307\f307" +} + +.fa-duotone.fa-arrow-alt-to-left:after, +.fa-duotone.fa-left-to-line:after, +.fad.fa-arrow-alt-to-left:after, +.fad.fa-left-to-line:after { + content: "\f34b\f34b" +} + +.fa-duotone.fa-house-crack:after, +.fad.fa-house-crack:after { + content: "\e3b1\e3b1" +} + +.fa-duotone.fa-paw-alt:after, +.fa-duotone.fa-paw-simple:after, +.fad.fa-paw-alt:after, +.fad.fa-paw-simple:after { + content: "\f701\f701" +} + +.fa-duotone.fa-arrow-left-long-to-line:after, +.fad.fa-arrow-left-long-to-line:after { + content: "\e3d4\e3d4" +} + +.fa-duotone.fa-brackets-round:after, +.fa-duotone.fa-parentheses:after, +.fad.fa-brackets-round:after, +.fad.fa-parentheses:after { + content: "\e0c5\e0c5" +} + +.fa-duotone.fa-cocktail:after, +.fa-duotone.fa-martini-glass-citrus:after, +.fad.fa-cocktail:after, +.fad.fa-martini-glass-citrus:after { + content: "\f561\f561" +} + +.fa-duotone.fa-user-shakespeare:after, +.fad.fa-user-shakespeare:after { + content: "\e2c2\e2c2" +} + +.fa-duotone.fa-arrow-right-to-arc:after, +.fad.fa-arrow-right-to-arc:after { + content: "\e4b2\e4b2" +} + +.fa-duotone.fa-face-surprise:after, +.fa-duotone.fa-surprise:after, +.fad.fa-face-surprise:after, +.fad.fa-surprise:after { + content: "\f5c2\f5c2" +} + +.fa-duotone.fa-bottle-water:after, +.fad.fa-bottle-water:after { + content: "\e4c5\e4c5" +} + +.fa-duotone.fa-circle-pause:after, +.fa-duotone.fa-pause-circle:after, +.fad.fa-circle-pause:after, +.fad.fa-pause-circle:after { + content: "\f28b\f28b" +} + +.fa-duotone.fa-gauge-circle-plus:after, +.fad.fa-gauge-circle-plus:after { + content: "\e498\e498" +} + +.fa-duotone.fa-folders:after, +.fad.fa-folders:after { + content: "\f660\f660" +} + +.fa-duotone.fa-angel:after, +.fad.fa-angel:after { + content: "\f779\f779" +} + +.fa-duotone.fa-value-absolute:after, +.fad.fa-value-absolute:after { + content: "\f6a6\f6a6" +} + +.fa-duotone.fa-rabbit:after, +.fad.fa-rabbit:after { + content: "\f708\f708" +} + +.fa-duotone.fa-toilet-paper-slash:after, +.fad.fa-toilet-paper-slash:after { + content: "\e072\e072" +} + +.fa-duotone.fa-circle-euro:after, +.fad.fa-circle-euro:after { + content: "\e5ce\e5ce" +} + +.fa-duotone.fa-apple-alt:after, +.fa-duotone.fa-apple-whole:after, +.fad.fa-apple-alt:after, +.fad.fa-apple-whole:after { + content: "\f5d1\f5d1" +} + +.fa-duotone.fa-kitchen-set:after, +.fad.fa-kitchen-set:after { + content: "\e51a\e51a" +} + +.fa-duotone.fa-diamond-half:after, +.fad.fa-diamond-half:after { + content: "\e5b7\e5b7" +} + +.fa-duotone.fa-lock-alt:after, +.fa-duotone.fa-lock-keyhole:after, +.fad.fa-lock-alt:after, +.fad.fa-lock-keyhole:after { + content: "\f30d\f30d" +} + +.fa-duotone.fa-r:after, +.fad.fa-r:after { + content: "\52\52" +} + +.fa-duotone.fa-temperature-1:after, +.fa-duotone.fa-temperature-quarter:after, +.fa-duotone.fa-thermometer-1:after, +.fa-duotone.fa-thermometer-quarter:after, +.fad.fa-temperature-1:after, +.fad.fa-temperature-quarter:after, +.fad.fa-thermometer-1:after, +.fad.fa-thermometer-quarter:after { + content: "\f2ca\f2ca" +} + +.fa-duotone.fa-info-square:after, +.fa-duotone.fa-square-info:after, +.fad.fa-info-square:after, +.fad.fa-square-info:after { + content: "\f30f\f30f" +} + +.fa-duotone.fa-wifi-slash:after, +.fad.fa-wifi-slash:after { + content: "\f6ac\f6ac" +} + +.fa-duotone.fa-toilet-paper-xmark:after, +.fad.fa-toilet-paper-xmark:after { + content: "\e5b3\e5b3" +} + +.fa-duotone.fa-hands-holding-dollar:after, +.fa-duotone.fa-hands-usd:after, +.fad.fa-hands-holding-dollar:after, +.fad.fa-hands-usd:after { + content: "\f4c5\f4c5" +} + +.fa-duotone.fa-cube:after, +.fad.fa-cube:after { + content: "\f1b2\f1b2" +} + +.fa-duotone.fa-arrow-down-triangle-square:after, +.fa-duotone.fa-sort-shapes-down:after, +.fad.fa-arrow-down-triangle-square:after, +.fad.fa-sort-shapes-down:after { + content: "\f888\f888" +} + +.fa-duotone.fa-bitcoin-sign:after, +.fad.fa-bitcoin-sign:after { + content: "\e0b4\e0b4" +} + +.fa-duotone.fa-shutters:after, +.fad.fa-shutters:after { + content: "\e449\e449" +} + +.fa-duotone.fa-shield-dog:after, +.fad.fa-shield-dog:after { + content: "\e573\e573" +} + +.fa-duotone.fa-solar-panel:after, +.fad.fa-solar-panel:after { + content: "\f5ba\f5ba" +} + +.fa-duotone.fa-lock-open:after, +.fad.fa-lock-open:after { + content: "\f3c1\f3c1" +} + +.fa-duotone.fa-table-tree:after, +.fad.fa-table-tree:after { + content: "\e293\e293" +} + +.fa-duotone.fa-house-chimney-heart:after, +.fad.fa-house-chimney-heart:after { + content: "\e1b2\e1b2" +} + +.fa-duotone.fa-tally-3:after, +.fad.fa-tally-3:after { + content: "\e296\e296" +} + +.fa-duotone.fa-elevator:after, +.fad.fa-elevator:after { + content: "\e16d\e16d" +} + +.fa-duotone.fa-money-bill-transfer:after, +.fad.fa-money-bill-transfer:after { + content: "\e528\e528" +} + +.fa-duotone.fa-money-bill-trend-up:after, +.fad.fa-money-bill-trend-up:after { + content: "\e529\e529" +} + +.fa-duotone.fa-house-flood-water-circle-arrow-right:after, +.fad.fa-house-flood-water-circle-arrow-right:after { + content: "\e50f\e50f" +} + +.fa-duotone.fa-poll-h:after, +.fa-duotone.fa-square-poll-horizontal:after, +.fad.fa-poll-h:after, +.fad.fa-square-poll-horizontal:after { + content: "\f682\f682" +} + +.fa-duotone.fa-circle:after, +.fad.fa-circle:after { + content: "\f111\f111" +} + +.fa-duotone.fa-cart-circle-exclamation:after, +.fad.fa-cart-circle-exclamation:after { + content: "\e3f2\e3f2" +} + +.fa-duotone.fa-sword:after, +.fad.fa-sword:after { + content: "\f71c\f71c" +} + +.fa-duotone.fa-backward-fast:after, +.fa-duotone.fa-fast-backward:after, +.fad.fa-backward-fast:after, +.fad.fa-fast-backward:after { + content: "\f049\f049" +} + +.fa-duotone.fa-recycle:after, +.fad.fa-recycle:after { + content: "\f1b8\f1b8" +} + +.fa-duotone.fa-user-astronaut:after, +.fad.fa-user-astronaut:after { + content: "\f4fb\f4fb" +} + +.fa-duotone.fa-interrobang:after, +.fad.fa-interrobang:after { + content: "\e5ba\e5ba" +} + +.fa-duotone.fa-plane-slash:after, +.fad.fa-plane-slash:after { + content: "\e069\e069" +} + +.fa-duotone.fa-circle-dashed:after, +.fad.fa-circle-dashed:after { + content: "\e105\e105" +} + +.fa-duotone.fa-trademark:after, +.fad.fa-trademark:after { + content: "\f25c\f25c" +} + +.fa-duotone.fa-basketball-ball:after, +.fa-duotone.fa-basketball:after, +.fad.fa-basketball-ball:after, +.fad.fa-basketball:after { + content: "\f434\f434" +} + +.fa-duotone.fa-fork-knife:after, +.fa-duotone.fa-utensils-alt:after, +.fad.fa-fork-knife:after, +.fad.fa-utensils-alt:after { + content: "\f2e6\f2e6" +} + +.fa-duotone.fa-satellite-dish:after, +.fad.fa-satellite-dish:after { + content: "\f7c0\f7c0" +} + +.fa-duotone.fa-badge-check:after, +.fad.fa-badge-check:after { + content: "\f336\f336" +} + +.fa-duotone.fa-arrow-alt-circle-up:after, +.fa-duotone.fa-circle-up:after, +.fad.fa-arrow-alt-circle-up:after, +.fad.fa-circle-up:after { + content: "\f35b\f35b" +} + +.fa-duotone.fa-slider:after, +.fad.fa-slider:after { + content: "\e252\e252" +} + +.fa-duotone.fa-mobile-alt:after, +.fa-duotone.fa-mobile-screen-button:after, +.fad.fa-mobile-alt:after, +.fad.fa-mobile-screen-button:after { + content: "\f3cd\f3cd" +} + +.fa-duotone.fa-clock-one-thirty:after, +.fad.fa-clock-one-thirty:after { + content: "\e34f\e34f" +} + +.fa-duotone.fa-inbox-arrow-up:after, +.fa-duotone.fa-inbox-out:after, +.fad.fa-inbox-arrow-up:after, +.fad.fa-inbox-out:after { + content: "\f311\f311" +} + +.fa-duotone.fa-cloud-slash:after, +.fad.fa-cloud-slash:after { + content: "\e137\e137" +} + +.fa-duotone.fa-volume-high:after, +.fa-duotone.fa-volume-up:after, +.fad.fa-volume-high:after, +.fad.fa-volume-up:after { + content: "\f028\f028" +} + +.fa-duotone.fa-users-rays:after, +.fad.fa-users-rays:after { + content: "\e593\e593" +} + +.fa-duotone.fa-wallet:after, +.fad.fa-wallet:after { + content: "\f555\f555" +} + +.fa-duotone.fa-octagon-check:after, +.fad.fa-octagon-check:after { + content: "\e426\e426" +} + +.fa-duotone.fa-flatbread-stuffed:after, +.fad.fa-flatbread-stuffed:after { + content: "\e40c\e40c" +} + +.fa-duotone.fa-clipboard-check:after, +.fad.fa-clipboard-check:after { + content: "\f46c\f46c" +} + +.fa-duotone.fa-cart-circle-plus:after, +.fad.fa-cart-circle-plus:after { + content: "\e3f3\e3f3" +} + +.fa-duotone.fa-shipping-timed:after, +.fa-duotone.fa-truck-clock:after, +.fad.fa-shipping-timed:after, +.fad.fa-truck-clock:after { + content: "\f48c\f48c" +} + +.fa-duotone.fa-pool-8-ball:after, +.fad.fa-pool-8-ball:after { + content: "\e3c5\e3c5" +} + +.fa-duotone.fa-file-audio:after, +.fad.fa-file-audio:after { + content: "\f1c7\f1c7" +} + +.fa-duotone.fa-turn-down-left:after, +.fad.fa-turn-down-left:after { + content: "\e331\e331" +} + +.fa-duotone.fa-lock-hashtag:after, +.fad.fa-lock-hashtag:after { + content: "\e423\e423" +} + +.fa-duotone.fa-chart-radar:after, +.fad.fa-chart-radar:after { + content: "\e0e7\e0e7" +} + +.fa-duotone.fa-staff:after, +.fad.fa-staff:after { + content: "\f71b\f71b" +} + +.fa-duotone.fa-burger:after, +.fa-duotone.fa-hamburger:after, +.fad.fa-burger:after, +.fad.fa-hamburger:after { + content: "\f805\f805" +} + +.fa-duotone.fa-utility-pole:after, +.fad.fa-utility-pole:after { + content: "\e2c3\e2c3" +} + +.fa-duotone.fa-transporter-6:after, +.fad.fa-transporter-6:after { + content: "\e2a7\e2a7" +} + +.fa-duotone.fa-arrow-turn-left:after, +.fad.fa-arrow-turn-left:after { + content: "\e632\e632" +} + +.fa-duotone.fa-wrench:after, +.fad.fa-wrench:after { + content: "\f0ad\f0ad" +} + +.fa-duotone.fa-bugs:after, +.fad.fa-bugs:after { + content: "\e4d0\e4d0" +} + +.fa-duotone.fa-vector-polygon:after, +.fad.fa-vector-polygon:after { + content: "\e2c7\e2c7" +} + +.fa-duotone.fa-diagram-nested:after, +.fad.fa-diagram-nested:after { + content: "\e157\e157" +} + +.fa-duotone.fa-rupee-sign:after, +.fa-duotone.fa-rupee:after, +.fad.fa-rupee-sign:after, +.fad.fa-rupee:after { + content: "\f156\f156" +} + +.fa-duotone.fa-file-image:after, +.fad.fa-file-image:after { + content: "\f1c5\f1c5" +} + +.fa-duotone.fa-circle-question:after, +.fa-duotone.fa-question-circle:after, +.fad.fa-circle-question:after, +.fad.fa-question-circle:after { + content: "\f059\f059" +} + +.fa-duotone.fa-tickets-perforated:after, +.fad.fa-tickets-perforated:after { + content: "\e63f\e63f" +} + +.fa-duotone.fa-image-user:after, +.fad.fa-image-user:after { + content: "\e1b8\e1b8" +} + +.fa-duotone.fa-buoy:after, +.fad.fa-buoy:after { + content: "\e5b5\e5b5" +} + +.fa-duotone.fa-plane-departure:after, +.fad.fa-plane-departure:after { + content: "\f5b0\f5b0" +} + +.fa-duotone.fa-handshake-slash:after, +.fad.fa-handshake-slash:after { + content: "\e060\e060" +} + +.fa-duotone.fa-book-bookmark:after, +.fad.fa-book-bookmark:after { + content: "\e0bb\e0bb" +} + +.fa-duotone.fa-border-center-h:after, +.fad.fa-border-center-h:after { + content: "\f89c\f89c" +} + +.fa-duotone.fa-can-food:after, +.fad.fa-can-food:after { + content: "\e3e6\e3e6" +} + +.fa-duotone.fa-typewriter:after, +.fad.fa-typewriter:after { + content: "\f8e7\f8e7" +} + +.fa-duotone.fa-arrow-right-from-arc:after, +.fad.fa-arrow-right-from-arc:after { + content: "\e4b1\e4b1" +} + +.fa-duotone.fa-circle-k:after, +.fad.fa-circle-k:after { + content: "\e113\e113" +} + +.fa-duotone.fa-face-hand-over-mouth:after, +.fad.fa-face-hand-over-mouth:after { + content: "\e378\e378" +} + +.fa-duotone.fa-popcorn:after, +.fad.fa-popcorn:after { + content: "\f819\f819" +} + +.fa-duotone.fa-house-flood:after, +.fa-duotone.fa-house-water:after, +.fad.fa-house-flood:after, +.fad.fa-house-water:after { + content: "\f74f\f74f" +} + +.fa-duotone.fa-object-subtract:after, +.fad.fa-object-subtract:after { + content: "\e49e\e49e" +} + +.fa-duotone.fa-code-branch:after, +.fad.fa-code-branch:after { + content: "\f126\f126" +} + +.fa-duotone.fa-warehouse-alt:after, +.fa-duotone.fa-warehouse-full:after, +.fad.fa-warehouse-alt:after, +.fad.fa-warehouse-full:after { + content: "\f495\f495" +} + +.fa-duotone.fa-hat-cowboy:after, +.fad.fa-hat-cowboy:after { + content: "\f8c0\f8c0" +} + +.fa-duotone.fa-bridge:after, +.fad.fa-bridge:after { + content: "\e4c8\e4c8" +} + +.fa-duotone.fa-phone-alt:after, +.fa-duotone.fa-phone-flip:after, +.fad.fa-phone-alt:after, +.fad.fa-phone-flip:after { + content: "\f879\f879" +} + +.fa-duotone.fa-arrow-down-from-dotted-line:after, +.fad.fa-arrow-down-from-dotted-line:after { + content: "\e090\e090" +} + +.fa-duotone.fa-file-doc:after, +.fad.fa-file-doc:after { + content: "\e5ed\e5ed" +} + +.fa-duotone.fa-square-quarters:after, +.fad.fa-square-quarters:after { + content: "\e44e\e44e" +} + +.fa-duotone.fa-truck-front:after, +.fad.fa-truck-front:after { + content: "\e2b7\e2b7" +} + +.fa-duotone.fa-cat:after, +.fad.fa-cat:after { + content: "\f6be\f6be" +} + +.fa-duotone.fa-trash-xmark:after, +.fad.fa-trash-xmark:after { + content: "\e2b4\e2b4" +} + +.fa-duotone.fa-caret-circle-left:after, +.fa-duotone.fa-circle-caret-left:after, +.fad.fa-caret-circle-left:after, +.fad.fa-circle-caret-left:after { + content: "\f32e\f32e" +} + +.fa-duotone.fa-files:after, +.fad.fa-files:after { + content: "\e178\e178" +} + +.fa-duotone.fa-anchor-circle-exclamation:after, +.fad.fa-anchor-circle-exclamation:after { + content: "\e4ab\e4ab" +} + +.fa-duotone.fa-face-clouds:after, +.fad.fa-face-clouds:after { + content: "\e47d\e47d" +} + +.fa-duotone.fa-user-crown:after, +.fad.fa-user-crown:after { + content: "\f6a4\f6a4" +} + +.fa-duotone.fa-basket-shopping-plus:after, +.fad.fa-basket-shopping-plus:after { + content: "\e653\e653" +} + +.fa-duotone.fa-truck-field:after, +.fad.fa-truck-field:after { + content: "\e58d\e58d" +} + +.fa-duotone.fa-route:after, +.fad.fa-route:after { + content: "\f4d7\f4d7" +} + +.fa-duotone.fa-cart-circle-check:after, +.fad.fa-cart-circle-check:after { + content: "\e3f1\e3f1" +} + +.fa-duotone.fa-clipboard-question:after, +.fad.fa-clipboard-question:after { + content: "\e4e3\e4e3" +} + +.fa-duotone.fa-panorama:after, +.fad.fa-panorama:after { + content: "\e209\e209" +} + +.fa-duotone.fa-comment-medical:after, +.fad.fa-comment-medical:after { + content: "\f7f5\f7f5" +} + +.fa-duotone.fa-teeth-open:after, +.fad.fa-teeth-open:after { + content: "\f62f\f62f" +} + +.fa-duotone.fa-user-tie-hair-long:after, +.fad.fa-user-tie-hair-long:after { + content: "\e460\e460" +} + +.fa-duotone.fa-file-circle-minus:after, +.fad.fa-file-circle-minus:after { + content: "\e4ed\e4ed" +} + +.fa-duotone.fa-head-side-medical:after, +.fad.fa-head-side-medical:after { + content: "\f809\f809" +} + +.fa-duotone.fa-arrow-turn-right:after, +.fad.fa-arrow-turn-right:after { + content: "\e635\e635" +} + +.fa-duotone.fa-tags:after, +.fad.fa-tags:after { + content: "\f02c\f02c" +} + +.fa-duotone.fa-wine-glass:after, +.fad.fa-wine-glass:after { + content: "\f4e3\f4e3" +} + +.fa-duotone.fa-fast-forward:after, +.fa-duotone.fa-forward-fast:after, +.fad.fa-fast-forward:after, +.fad.fa-forward-fast:after { + content: "\f050\f050" +} + +.fa-duotone.fa-face-meh-blank:after, +.fa-duotone.fa-meh-blank:after, +.fad.fa-face-meh-blank:after, +.fad.fa-meh-blank:after { + content: "\f5a4\f5a4" +} + +.fa-duotone.fa-user-robot:after, +.fad.fa-user-robot:after { + content: "\e04b\e04b" +} + +.fa-duotone.fa-parking:after, +.fa-duotone.fa-square-parking:after, +.fad.fa-parking:after, +.fad.fa-square-parking:after { + content: "\f540\f540" +} + +.fa-duotone.fa-card-diamond:after, +.fad.fa-card-diamond:after { + content: "\e3ea\e3ea" +} + +.fa-duotone.fa-face-zipper:after, +.fad.fa-face-zipper:after { + content: "\e3a5\e3a5" +} + +.fa-duotone.fa-face-raised-eyebrow:after, +.fad.fa-face-raised-eyebrow:after { + content: "\e388\e388" +} + +.fa-duotone.fa-house-signal:after, +.fad.fa-house-signal:after { + content: "\e012\e012" +} + +.fa-duotone.fa-chevron-square-up:after, +.fa-duotone.fa-square-chevron-up:after, +.fad.fa-chevron-square-up:after, +.fad.fa-square-chevron-up:after { + content: "\f32c\f32c" +} + +.fa-duotone.fa-bars-progress:after, +.fa-duotone.fa-tasks-alt:after, +.fad.fa-bars-progress:after, +.fad.fa-tasks-alt:after { + content: "\f828\f828" +} + +.fa-duotone.fa-faucet-drip:after, +.fad.fa-faucet-drip:after { + content: "\e006\e006" +} + +.fa-duotone.fa-arrows-to-line:after, +.fad.fa-arrows-to-line:after { + content: "\e0a7\e0a7" +} + +.fa-duotone.fa-dolphin:after, +.fad.fa-dolphin:after { + content: "\e168\e168" +} + +.fa-duotone.fa-arrow-up-right:after, +.fad.fa-arrow-up-right:after { + content: "\e09f\e09f" +} + +.fa-duotone.fa-circle-r:after, +.fad.fa-circle-r:after { + content: "\e120\e120" +} + +.fa-duotone.fa-cart-flatbed:after, +.fa-duotone.fa-dolly-flatbed:after, +.fad.fa-cart-flatbed:after, +.fad.fa-dolly-flatbed:after { + content: "\f474\f474" +} + +.fa-duotone.fa-ban-smoking:after, +.fa-duotone.fa-smoking-ban:after, +.fad.fa-ban-smoking:after, +.fad.fa-smoking-ban:after { + content: "\f54d\f54d" +} + +.fa-duotone.fa-circle-sort-up:after, +.fa-duotone.fa-sort-circle-up:after, +.fad.fa-circle-sort-up:after, +.fad.fa-sort-circle-up:after { + content: "\e032\e032" +} + +.fa-duotone.fa-terminal:after, +.fad.fa-terminal:after { + content: "\f120\f120" +} + +.fa-duotone.fa-mobile-button:after, +.fad.fa-mobile-button:after { + content: "\f10b\f10b" +} + +.fa-duotone.fa-house-medical-flag:after, +.fad.fa-house-medical-flag:after { + content: "\e514\e514" +} + +.fa-duotone.fa-basket-shopping:after, +.fa-duotone.fa-shopping-basket:after, +.fad.fa-basket-shopping:after, +.fad.fa-shopping-basket:after { + content: "\f291\f291" +} + +.fa-duotone.fa-tape:after, +.fad.fa-tape:after { + content: "\f4db\f4db" +} + +.fa-duotone.fa-chestnut:after, +.fad.fa-chestnut:after { + content: "\e3f6\e3f6" +} + +.fa-duotone.fa-bus-alt:after, +.fa-duotone.fa-bus-simple:after, +.fad.fa-bus-alt:after, +.fad.fa-bus-simple:after { + content: "\f55e\f55e" +} + +.fa-duotone.fa-eye:after, +.fad.fa-eye:after { + content: "\f06e\f06e" +} + +.fa-duotone.fa-face-sad-cry:after, +.fa-duotone.fa-sad-cry:after, +.fad.fa-face-sad-cry:after, +.fad.fa-sad-cry:after { + content: "\f5b3\f5b3" +} + +.fa-duotone.fa-heat:after, +.fad.fa-heat:after { + content: "\e00c\e00c" +} + +.fa-duotone.fa-ticket-airline:after, +.fa-duotone.fa-ticket-perforated-plane:after, +.fa-duotone.fa-ticket-plane:after, +.fad.fa-ticket-airline:after, +.fad.fa-ticket-perforated-plane:after, +.fad.fa-ticket-plane:after { + content: "\e29a\e29a" +} + +.fa-duotone.fa-boot-heeled:after, +.fad.fa-boot-heeled:after { + content: "\e33f\e33f" +} + +.fa-duotone.fa-arrows-minimize:after, +.fa-duotone.fa-compress-arrows:after, +.fad.fa-arrows-minimize:after, +.fad.fa-compress-arrows:after { + content: "\e0a5\e0a5" +} + +.fa-duotone.fa-audio-description:after, +.fad.fa-audio-description:after { + content: "\f29e\f29e" +} + +.fa-duotone.fa-person-military-to-person:after, +.fad.fa-person-military-to-person:after { + content: "\e54c\e54c" +} + +.fa-duotone.fa-file-shield:after, +.fad.fa-file-shield:after { + content: "\e4f0\e4f0" +} + +.fa-duotone.fa-hexagon:after, +.fad.fa-hexagon:after { + content: "\f312\f312" +} + +.fa-duotone.fa-manhole:after, +.fad.fa-manhole:after { + content: "\e1d6\e1d6" +} + +.fa-duotone.fa-user-slash:after, +.fad.fa-user-slash:after { + content: "\f506\f506" +} + +.fa-duotone.fa-pen:after, +.fad.fa-pen:after { + content: "\f304\f304" +} + +.fa-duotone.fa-tower-observation:after, +.fad.fa-tower-observation:after { + content: "\e586\e586" +} + +.fa-duotone.fa-floppy-disks:after, +.fad.fa-floppy-disks:after { + content: "\e183\e183" +} + +.fa-duotone.fa-toilet-paper-blank-under:after, +.fa-duotone.fa-toilet-paper-reverse-alt:after, +.fad.fa-toilet-paper-blank-under:after, +.fad.fa-toilet-paper-reverse-alt:after { + content: "\e29f\e29f" +} + +.fa-duotone.fa-file-code:after, +.fad.fa-file-code:after { + content: "\f1c9\f1c9" +} + +.fa-duotone.fa-signal-5:after, +.fa-duotone.fa-signal-perfect:after, +.fa-duotone.fa-signal:after, +.fad.fa-signal-5:after, +.fad.fa-signal-perfect:after, +.fad.fa-signal:after { + content: "\f012\f012" +} + +.fa-duotone.fa-pump:after, +.fad.fa-pump:after { + content: "\e442\e442" +} + +.fa-duotone.fa-bus:after, +.fad.fa-bus:after { + content: "\f207\f207" +} + +.fa-duotone.fa-heart-circle-xmark:after, +.fad.fa-heart-circle-xmark:after { + content: "\e501\e501" +} + +.fa-duotone.fa-arrow-up-left-from-circle:after, +.fad.fa-arrow-up-left-from-circle:after { + content: "\e09e\e09e" +} + +.fa-duotone.fa-home-lg:after, +.fa-duotone.fa-house-chimney:after, +.fad.fa-home-lg:after, +.fad.fa-house-chimney:after { + content: "\e3af\e3af" +} + +.fa-duotone.fa-window-maximize:after, +.fad.fa-window-maximize:after { + content: "\f2d0\f2d0" +} + +.fa-duotone.fa-dryer:after, +.fad.fa-dryer:after { + content: "\f861\f861" +} + +.fa-duotone.fa-face-frown:after, +.fa-duotone.fa-frown:after, +.fad.fa-face-frown:after, +.fad.fa-frown:after { + content: "\f119\f119" +} + +.fa-duotone.fa-chess-bishop-alt:after, +.fa-duotone.fa-chess-bishop-piece:after, +.fad.fa-chess-bishop-alt:after, +.fad.fa-chess-bishop-piece:after { + content: "\f43b\f43b" +} + +.fa-duotone.fa-shirt-tank-top:after, +.fad.fa-shirt-tank-top:after { + content: "\e3c9\e3c9" +} + +.fa-duotone.fa-diploma:after, +.fa-duotone.fa-scroll-ribbon:after, +.fad.fa-diploma:after, +.fad.fa-scroll-ribbon:after { + content: "\f5ea\f5ea" +} + +.fa-duotone.fa-screencast:after, +.fad.fa-screencast:after { + content: "\e23e\e23e" +} + +.fa-duotone.fa-walker:after, +.fad.fa-walker:after { + content: "\f831\f831" +} + +.fa-duotone.fa-prescription:after, +.fad.fa-prescription:after { + content: "\f5b1\f5b1" +} + +.fa-duotone.fa-shop:after, +.fa-duotone.fa-store-alt:after, +.fad.fa-shop:after, +.fad.fa-store-alt:after { + content: "\f54f\f54f" +} + +.fa-duotone.fa-floppy-disk:after, +.fa-duotone.fa-save:after, +.fad.fa-floppy-disk:after, +.fad.fa-save:after { + content: "\f0c7\f0c7" +} + +.fa-duotone.fa-vihara:after, +.fad.fa-vihara:after { + content: "\f6a7\f6a7" +} + +.fa-duotone.fa-face-kiss-closed-eyes:after, +.fad.fa-face-kiss-closed-eyes:after { + content: "\e37d\e37d" +} + +.fa-duotone.fa-balance-scale-left:after, +.fa-duotone.fa-scale-unbalanced:after, +.fad.fa-balance-scale-left:after, +.fad.fa-scale-unbalanced:after { + content: "\f515\f515" +} + +.fa-duotone.fa-file-user:after, +.fad.fa-file-user:after { + content: "\f65c\f65c" +} + +.fa-duotone.fa-user-police-tie:after, +.fad.fa-user-police-tie:after { + content: "\e334\e334" +} + +.fa-duotone.fa-face-tongue-money:after, +.fad.fa-face-tongue-money:after { + content: "\e39d\e39d" +} + +.fa-duotone.fa-tennis-ball:after, +.fad.fa-tennis-ball:after { + content: "\f45e\f45e" +} + +.fa-duotone.fa-square-l:after, +.fad.fa-square-l:after { + content: "\e275\e275" +} + +.fa-duotone.fa-sort-asc:after, +.fa-duotone.fa-sort-up:after, +.fad.fa-sort-asc:after, +.fad.fa-sort-up:after { + content: "\f0de\f0de" +} + +.fa-duotone.fa-calendar-arrow-up:after, +.fa-duotone.fa-calendar-upload:after, +.fad.fa-calendar-arrow-up:after, +.fad.fa-calendar-upload:after { + content: "\e0d1\e0d1" +} + +.fa-duotone.fa-comment-dots:after, +.fa-duotone.fa-commenting:after, +.fad.fa-comment-dots:after, +.fad.fa-commenting:after { + content: "\f4ad\f4ad" +} + +.fa-duotone.fa-plant-wilt:after, +.fad.fa-plant-wilt:after { + content: "\e5aa\e5aa" +} + +.fa-duotone.fa-scarf:after, +.fad.fa-scarf:after { + content: "\f7c1\f7c1" +} + +.fa-duotone.fa-album-circle-plus:after, +.fad.fa-album-circle-plus:after { + content: "\e48c\e48c" +} + +.fa-duotone.fa-user-nurse-hair-long:after, +.fad.fa-user-nurse-hair-long:after { + content: "\e45e\e45e" +} + +.fa-duotone.fa-diamond:after, +.fad.fa-diamond:after { + content: "\f219\f219" +} + +.fa-duotone.fa-arrow-alt-square-left:after, +.fa-duotone.fa-square-left:after, +.fad.fa-arrow-alt-square-left:after, +.fad.fa-square-left:after { + content: "\f351\f351" +} + +.fa-duotone.fa-face-grin-squint:after, +.fa-duotone.fa-grin-squint:after, +.fad.fa-face-grin-squint:after, +.fad.fa-grin-squint:after { + content: "\f585\f585" +} + +.fa-duotone.fa-circle-ellipsis-vertical:after, +.fad.fa-circle-ellipsis-vertical:after { + content: "\e10b\e10b" +} + +.fa-duotone.fa-hand-holding-dollar:after, +.fa-duotone.fa-hand-holding-usd:after, +.fad.fa-hand-holding-dollar:after, +.fad.fa-hand-holding-usd:after { + content: "\f4c0\f4c0" +} + +.fa-duotone.fa-grid-dividers:after, +.fad.fa-grid-dividers:after { + content: "\e3ad\e3ad" +} + +.fa-duotone.fa-bacterium:after, +.fad.fa-bacterium:after { + content: "\e05a\e05a" +} + +.fa-duotone.fa-hand-pointer:after, +.fad.fa-hand-pointer:after { + content: "\f25a\f25a" +} + +.fa-duotone.fa-drum-steelpan:after, +.fad.fa-drum-steelpan:after { + content: "\f56a\f56a" +} + +.fa-duotone.fa-hand-scissors:after, +.fad.fa-hand-scissors:after { + content: "\f257\f257" +} + +.fa-duotone.fa-hands-praying:after, +.fa-duotone.fa-praying-hands:after, +.fad.fa-hands-praying:after, +.fad.fa-praying-hands:after { + content: "\f684\f684" +} + +.fa-duotone.fa-face-pensive:after, +.fad.fa-face-pensive:after { + content: "\e384\e384" +} + +.fa-duotone.fa-user-music:after, +.fad.fa-user-music:after { + content: "\f8eb\f8eb" +} + +.fa-duotone.fa-arrow-right-rotate:after, +.fa-duotone.fa-arrow-rotate-forward:after, +.fa-duotone.fa-arrow-rotate-right:after, +.fa-duotone.fa-redo:after, +.fad.fa-arrow-right-rotate:after, +.fad.fa-arrow-rotate-forward:after, +.fad.fa-arrow-rotate-right:after, +.fad.fa-redo:after { + content: "\f01e\f01e" +} + +.fa-duotone.fa-comments-alt-dollar:after, +.fa-duotone.fa-messages-dollar:after, +.fad.fa-comments-alt-dollar:after, +.fad.fa-messages-dollar:after { + content: "\f652\f652" +} + +.fa-duotone.fa-sensor-on:after, +.fad.fa-sensor-on:after { + content: "\e02b\e02b" +} + +.fa-duotone.fa-balloon:after, +.fad.fa-balloon:after { + content: "\e2e3\e2e3" +} + +.fa-duotone.fa-biohazard:after, +.fad.fa-biohazard:after { + content: "\f780\f780" +} + +.fa-duotone.fa-chess-queen-alt:after, +.fa-duotone.fa-chess-queen-piece:after, +.fad.fa-chess-queen-alt:after, +.fad.fa-chess-queen-piece:after { + content: "\f446\f446" +} + +.fa-duotone.fa-location-crosshairs:after, +.fa-duotone.fa-location:after, +.fad.fa-location-crosshairs:after, +.fad.fa-location:after { + content: "\f601\f601" +} + +.fa-duotone.fa-mars-double:after, +.fad.fa-mars-double:after { + content: "\f227\f227" +} + +.fa-duotone.fa-house-leave:after, +.fa-duotone.fa-house-person-depart:after, +.fa-duotone.fa-house-person-leave:after, +.fad.fa-house-leave:after, +.fad.fa-house-person-depart:after, +.fad.fa-house-person-leave:after { + content: "\e00f\e00f" +} + +.fa-duotone.fa-ruler-triangle:after, +.fad.fa-ruler-triangle:after { + content: "\f61c\f61c" +} + +.fa-duotone.fa-card-club:after, +.fad.fa-card-club:after { + content: "\e3e9\e3e9" +} + +.fa-duotone.fa-child-dress:after, +.fad.fa-child-dress:after { + content: "\e59c\e59c" +} + +.fa-duotone.fa-users-between-lines:after, +.fad.fa-users-between-lines:after { + content: "\e591\e591" +} + +.fa-duotone.fa-lungs-virus:after, +.fad.fa-lungs-virus:after { + content: "\e067\e067" +} + +.fa-duotone.fa-spinner-third:after, +.fad.fa-spinner-third:after { + content: "\f3f4\f3f4" +} + +.fa-duotone.fa-face-grin-tears:after, +.fa-duotone.fa-grin-tears:after, +.fad.fa-face-grin-tears:after, +.fad.fa-grin-tears:after { + content: "\f588\f588" +} + +.fa-duotone.fa-phone:after, +.fad.fa-phone:after { + content: "\f095\f095" +} + +.fa-duotone.fa-computer-mouse-scrollwheel:after, +.fa-duotone.fa-mouse-alt:after, +.fad.fa-computer-mouse-scrollwheel:after, +.fad.fa-mouse-alt:after { + content: "\f8cd\f8cd" +} + +.fa-duotone.fa-calendar-times:after, +.fa-duotone.fa-calendar-xmark:after, +.fad.fa-calendar-times:after, +.fad.fa-calendar-xmark:after { + content: "\f273\f273" +} + +.fa-duotone.fa-child-reaching:after, +.fad.fa-child-reaching:after { + content: "\e59d\e59d" +} + +.fa-duotone.fa-table-layout:after, +.fad.fa-table-layout:after { + content: "\e290\e290" +} + +.fa-duotone.fa-narwhal:after, +.fad.fa-narwhal:after { + content: "\f6fe\f6fe" +} + +.fa-duotone.fa-ramp-loading:after, +.fad.fa-ramp-loading:after { + content: "\f4d4\f4d4" +} + +.fa-duotone.fa-calendar-circle-plus:after, +.fad.fa-calendar-circle-plus:after { + content: "\e470\e470" +} + +.fa-duotone.fa-toothbrush:after, +.fad.fa-toothbrush:after { + content: "\f635\f635" +} + +.fa-duotone.fa-border-inner:after, +.fad.fa-border-inner:after { + content: "\f84e\f84e" +} + +.fa-duotone.fa-paw-claws:after, +.fad.fa-paw-claws:after { + content: "\f702\f702" +} + +.fa-duotone.fa-kiwi-fruit:after, +.fad.fa-kiwi-fruit:after { + content: "\e30c\e30c" +} + +.fa-duotone.fa-traffic-light-slow:after, +.fad.fa-traffic-light-slow:after { + content: "\f639\f639" +} + +.fa-duotone.fa-rectangle-code:after, +.fad.fa-rectangle-code:after { + content: "\e322\e322" +} + +.fa-duotone.fa-head-side-virus:after, +.fad.fa-head-side-virus:after { + content: "\e064\e064" +} + +.fa-duotone.fa-keyboard-brightness:after, +.fad.fa-keyboard-brightness:after { + content: "\e1c0\e1c0" +} + +.fa-duotone.fa-books-medical:after, +.fad.fa-books-medical:after { + content: "\f7e8\f7e8" +} + +.fa-duotone.fa-lightbulb-slash:after, +.fad.fa-lightbulb-slash:after { + content: "\f673\f673" +} + +.fa-duotone.fa-home-blank:after, +.fa-duotone.fa-house-blank:after, +.fad.fa-home-blank:after, +.fad.fa-house-blank:after { + content: "\e487\e487" +} + +.fa-duotone.fa-square-5:after, +.fad.fa-square-5:after { + content: "\e25a\e25a" +} + +.fa-duotone.fa-heart-square:after, +.fa-duotone.fa-square-heart:after, +.fad.fa-heart-square:after, +.fad.fa-square-heart:after { + content: "\f4c8\f4c8" +} + +.fa-duotone.fa-puzzle:after, +.fad.fa-puzzle:after { + content: "\e443\e443" +} + +.fa-duotone.fa-user-cog:after, +.fa-duotone.fa-user-gear:after, +.fad.fa-user-cog:after, +.fad.fa-user-gear:after { + content: "\f4fe\f4fe" +} + +.fa-duotone.fa-pipe-circle-check:after, +.fad.fa-pipe-circle-check:after { + content: "\e436\e436" +} + +.fa-duotone.fa-arrow-up-1-9:after, +.fa-duotone.fa-sort-numeric-up:after, +.fad.fa-arrow-up-1-9:after, +.fad.fa-sort-numeric-up:after { + content: "\f163\f163" +} + +.fa-duotone.fa-octagon-exclamation:after, +.fad.fa-octagon-exclamation:after { + content: "\e204\e204" +} + +.fa-duotone.fa-dial-low:after, +.fad.fa-dial-low:after { + content: "\e15d\e15d" +} + +.fa-duotone.fa-door-closed:after, +.fad.fa-door-closed:after { + content: "\f52a\f52a" +} + +.fa-duotone.fa-laptop-mobile:after, +.fa-duotone.fa-phone-laptop:after, +.fad.fa-laptop-mobile:after, +.fad.fa-phone-laptop:after { + content: "\f87a\f87a" +} + +.fa-duotone.fa-conveyor-belt-alt:after, +.fa-duotone.fa-conveyor-belt-boxes:after, +.fad.fa-conveyor-belt-alt:after, +.fad.fa-conveyor-belt-boxes:after { + content: "\f46f\f46f" +} + +.fa-duotone.fa-shield-virus:after, +.fad.fa-shield-virus:after { + content: "\e06c\e06c" +} + +.fa-duotone.fa-starfighter-alt-advanced:after, +.fa-duotone.fa-starfighter-twin-ion-engine-advanced:after, +.fad.fa-starfighter-alt-advanced:after, +.fad.fa-starfighter-twin-ion-engine-advanced:after { + content: "\e28e\e28e" +} + +.fa-duotone.fa-dice-six:after, +.fad.fa-dice-six:after { + content: "\f526\f526" +} + +.fa-duotone.fa-starfighter-alt:after, +.fa-duotone.fa-starfighter-twin-ion-engine:after, +.fad.fa-starfighter-alt:after, +.fad.fa-starfighter-twin-ion-engine:after { + content: "\e038\e038" +} + +.fa-duotone.fa-rocket-launch:after, +.fad.fa-rocket-launch:after { + content: "\e027\e027" +} + +.fa-duotone.fa-mosquito-net:after, +.fad.fa-mosquito-net:after { + content: "\e52c\e52c" +} + +.fa-duotone.fa-vent-damper:after, +.fad.fa-vent-damper:after { + content: "\e465\e465" +} + +.fa-duotone.fa-bridge-water:after, +.fad.fa-bridge-water:after { + content: "\e4ce\e4ce" +} + +.fa-duotone.fa-ban-bug:after, +.fa-duotone.fa-debug:after, +.fad.fa-ban-bug:after, +.fad.fa-debug:after { + content: "\f7f9\f7f9" +} + +.fa-duotone.fa-person-booth:after, +.fad.fa-person-booth:after { + content: "\f756\f756" +} + +.fa-duotone.fa-text-width:after, +.fad.fa-text-width:after { + content: "\f035\f035" +} + +.fa-duotone.fa-garage-car:after, +.fad.fa-garage-car:after { + content: "\e00a\e00a" +} + +.fa-duotone.fa-square-kanban:after, +.fad.fa-square-kanban:after { + content: "\e488\e488" +} + +.fa-duotone.fa-hat-wizard:after, +.fad.fa-hat-wizard:after { + content: "\f6e8\f6e8" +} + +.fa-duotone.fa-chart-kanban:after, +.fad.fa-chart-kanban:after { + content: "\e64f\e64f" +} + +.fa-duotone.fa-pen-fancy:after, +.fad.fa-pen-fancy:after { + content: "\f5ac\f5ac" +} + +.fa-duotone.fa-coffee-pot:after, +.fad.fa-coffee-pot:after { + content: "\e002\e002" +} + +.fa-duotone.fa-mouse-field:after, +.fad.fa-mouse-field:after { + content: "\e5a8\e5a8" +} + +.fa-duotone.fa-digging:after, +.fa-duotone.fa-person-digging:after, +.fad.fa-digging:after, +.fad.fa-person-digging:after { + content: "\f85e\f85e" +} + +.fa-duotone.fa-shower-alt:after, +.fa-duotone.fa-shower-down:after, +.fad.fa-shower-alt:after, +.fad.fa-shower-down:after { + content: "\e24d\e24d" +} + +.fa-duotone.fa-box-circle-check:after, +.fad.fa-box-circle-check:after { + content: "\e0c4\e0c4" +} + +.fa-duotone.fa-brightness:after, +.fad.fa-brightness:after { + content: "\e0c9\e0c9" +} + +.fa-duotone.fa-car-side-bolt:after, +.fad.fa-car-side-bolt:after { + content: "\e344\e344" +} + +.fa-duotone.fa-file-xml:after, +.fad.fa-file-xml:after { + content: "\e654\e654" +} + +.fa-duotone.fa-ornament:after, +.fad.fa-ornament:after { + content: "\f7b8\f7b8" +} + +.fa-duotone.fa-phone-arrow-down-left:after, +.fa-duotone.fa-phone-arrow-down:after, +.fa-duotone.fa-phone-incoming:after, +.fad.fa-phone-arrow-down-left:after, +.fad.fa-phone-arrow-down:after, +.fad.fa-phone-incoming:after { + content: "\e223\e223" +} + +.fa-duotone.fa-cloud-word:after, +.fad.fa-cloud-word:after { + content: "\e138\e138" +} + +.fa-duotone.fa-hand-fingers-crossed:after, +.fad.fa-hand-fingers-crossed:after { + content: "\e1a3\e1a3" +} + +.fa-duotone.fa-trash:after, +.fad.fa-trash:after { + content: "\f1f8\f1f8" +} + +.fa-duotone.fa-gauge-simple-med:after, +.fa-duotone.fa-gauge-simple:after, +.fa-duotone.fa-tachometer-average:after, +.fad.fa-gauge-simple-med:after, +.fad.fa-gauge-simple:after, +.fad.fa-tachometer-average:after { + content: "\f629\f629" +} + +.fa-duotone.fa-arrow-down-small-big:after, +.fa-duotone.fa-sort-size-down-alt:after, +.fad.fa-arrow-down-small-big:after, +.fad.fa-sort-size-down-alt:after { + content: "\f88d\f88d" +} + +.fa-duotone.fa-book-medical:after, +.fad.fa-book-medical:after { + content: "\f7e6\f7e6" +} + +.fa-duotone.fa-face-melting:after, +.fad.fa-face-melting:after { + content: "\e483\e483" +} + +.fa-duotone.fa-poo:after, +.fad.fa-poo:after { + content: "\f2fe\f2fe" +} + +.fa-duotone.fa-pen-alt-slash:after, +.fa-duotone.fa-pen-clip-slash:after, +.fad.fa-pen-alt-slash:after, +.fad.fa-pen-clip-slash:after { + content: "\e20f\e20f" +} + +.fa-duotone.fa-quote-right-alt:after, +.fa-duotone.fa-quote-right:after, +.fad.fa-quote-right-alt:after, +.fad.fa-quote-right:after { + content: "\f10e\f10e" +} + +.fa-duotone.fa-scroll-old:after, +.fad.fa-scroll-old:after { + content: "\f70f\f70f" +} + +.fa-duotone.fa-guitars:after, +.fad.fa-guitars:after { + content: "\f8bf\f8bf" +} + +.fa-duotone.fa-phone-xmark:after, +.fad.fa-phone-xmark:after { + content: "\e227\e227" +} + +.fa-duotone.fa-hose:after, +.fad.fa-hose:after { + content: "\e419\e419" +} + +.fa-duotone.fa-clock-six:after, +.fad.fa-clock-six:after { + content: "\e352\e352" +} + +.fa-duotone.fa-shirt:after, +.fa-duotone.fa-t-shirt:after, +.fa-duotone.fa-tshirt:after, +.fad.fa-shirt:after, +.fad.fa-t-shirt:after, +.fad.fa-tshirt:after { + content: "\f553\f553" +} + +.fa-duotone.fa-billboard:after, +.fad.fa-billboard:after { + content: "\e5cd\e5cd" +} + +.fa-duotone.fa-square-r:after, +.fad.fa-square-r:after { + content: "\e27c\e27c" +} + +.fa-duotone.fa-cubes:after, +.fad.fa-cubes:after { + content: "\f1b3\f1b3" +} + +.fa-duotone.fa-envelope-open-dollar:after, +.fad.fa-envelope-open-dollar:after { + content: "\f657\f657" +} + +.fa-duotone.fa-divide:after, +.fad.fa-divide:after { + content: "\f529\f529" +} + +.fa-duotone.fa-sun-cloud:after, +.fad.fa-sun-cloud:after { + content: "\f763\f763" +} + +.fa-duotone.fa-lamp-floor:after, +.fad.fa-lamp-floor:after { + content: "\e015\e015" +} + +.fa-duotone.fa-square-7:after, +.fad.fa-square-7:after { + content: "\e25c\e25c" +} + +.fa-duotone.fa-tenge-sign:after, +.fa-duotone.fa-tenge:after, +.fad.fa-tenge-sign:after, +.fad.fa-tenge:after { + content: "\f7d7\f7d7" +} + +.fa-duotone.fa-headphones:after, +.fad.fa-headphones:after { + content: "\f025\f025" +} + +.fa-duotone.fa-hands-holding:after, +.fad.fa-hands-holding:after { + content: "\f4c2\f4c2" +} + +.fa-duotone.fa-campfire:after, +.fad.fa-campfire:after { + content: "\f6ba\f6ba" +} + +.fa-duotone.fa-circle-ampersand:after, +.fad.fa-circle-ampersand:after { + content: "\e0f8\e0f8" +} + +.fa-duotone.fa-snowflakes:after, +.fad.fa-snowflakes:after { + content: "\f7cf\f7cf" +} + +.fa-duotone.fa-hands-clapping:after, +.fad.fa-hands-clapping:after { + content: "\e1a8\e1a8" +} + +.fa-duotone.fa-republican:after, +.fad.fa-republican:after { + content: "\f75e\f75e" +} + +.fa-duotone.fa-leaf-maple:after, +.fad.fa-leaf-maple:after { + content: "\f6f6\f6f6" +} + +.fa-duotone.fa-arrow-left:after, +.fad.fa-arrow-left:after { + content: "\f060\f060" +} + +.fa-duotone.fa-person-circle-xmark:after, +.fad.fa-person-circle-xmark:after { + content: "\e543\e543" +} + +.fa-duotone.fa-ruler:after, +.fad.fa-ruler:after { + content: "\f545\f545" +} + +.fa-duotone.fa-cup-straw-swoosh:after, +.fad.fa-cup-straw-swoosh:after { + content: "\e364\e364" +} + +.fa-duotone.fa-temperature-hot:after, +.fa-duotone.fa-temperature-sun:after, +.fad.fa-temperature-hot:after, +.fad.fa-temperature-sun:after { + content: "\f76a\f76a" +} + +.fa-duotone.fa-align-left:after, +.fad.fa-align-left:after { + content: "\f036\f036" +} + +.fa-duotone.fa-dice-d6:after, +.fad.fa-dice-d6:after { + content: "\f6d1\f6d1" +} + +.fa-duotone.fa-restroom:after, +.fad.fa-restroom:after { + content: "\f7bd\f7bd" +} + +.fa-duotone.fa-high-definition:after, +.fa-duotone.fa-rectangle-hd:after, +.fad.fa-high-definition:after, +.fad.fa-rectangle-hd:after { + content: "\e1ae\e1ae" +} + +.fa-duotone.fa-j:after, +.fad.fa-j:after { + content: "\4a\4a" +} + +.fa-duotone.fa-galaxy:after, +.fad.fa-galaxy:after { + content: "\e008\e008" +} + +.fa-duotone.fa-users-viewfinder:after, +.fad.fa-users-viewfinder:after { + content: "\e595\e595" +} + +.fa-duotone.fa-file-video:after, +.fad.fa-file-video:after { + content: "\f1c8\f1c8" +} + +.fa-duotone.fa-cherries:after, +.fad.fa-cherries:after { + content: "\e0ec\e0ec" +} + +.fa-duotone.fa-external-link-alt:after, +.fa-duotone.fa-up-right-from-square:after, +.fad.fa-external-link-alt:after, +.fad.fa-up-right-from-square:after { + content: "\f35d\f35d" +} + +.fa-duotone.fa-circle-sort:after, +.fa-duotone.fa-sort-circle:after, +.fad.fa-circle-sort:after, +.fad.fa-sort-circle:after { + content: "\e030\e030" +} + +.fa-duotone.fa-table-cells:after, +.fa-duotone.fa-th:after, +.fad.fa-table-cells:after, +.fad.fa-th:after { + content: "\f00a\f00a" +} + +.fa-duotone.fa-bag-shopping-minus:after, +.fad.fa-bag-shopping-minus:after { + content: "\e650\e650" +} + +.fa-duotone.fa-file-pdf:after, +.fad.fa-file-pdf:after { + content: "\f1c1\f1c1" +} + +.fa-duotone.fa-siren:after, +.fad.fa-siren:after { + content: "\e02d\e02d" +} + +.fa-duotone.fa-arrow-up-to-dotted-line:after, +.fad.fa-arrow-up-to-dotted-line:after { + content: "\e0a1\e0a1" +} + +.fa-duotone.fa-image-landscape:after, +.fa-duotone.fa-landscape:after, +.fad.fa-image-landscape:after, +.fad.fa-landscape:after { + content: "\e1b5\e1b5" +} + +.fa-duotone.fa-tank-water:after, +.fad.fa-tank-water:after { + content: "\e452\e452" +} + +.fa-duotone.fa-curling-stone:after, +.fa-duotone.fa-curling:after, +.fad.fa-curling-stone:after, +.fad.fa-curling:after { + content: "\f44a\f44a" +} + +.fa-duotone.fa-gamepad-alt:after, +.fa-duotone.fa-gamepad-modern:after, +.fad.fa-gamepad-alt:after, +.fad.fa-gamepad-modern:after { + content: "\e5a2\e5a2" +} + +.fa-duotone.fa-messages-question:after, +.fad.fa-messages-question:after { + content: "\e1e7\e1e7" +} + +.fa-duotone.fa-bible:after, +.fa-duotone.fa-book-bible:after, +.fad.fa-bible:after, +.fad.fa-book-bible:after { + content: "\f647\f647" +} + +.fa-duotone.fa-o:after, +.fad.fa-o:after { + content: "\4f\4f" +} + +.fa-duotone.fa-medkit:after, +.fa-duotone.fa-suitcase-medical:after, +.fad.fa-medkit:after, +.fad.fa-suitcase-medical:after { + content: "\f0fa\f0fa" +} + +.fa-duotone.fa-briefcase-arrow-right:after, +.fad.fa-briefcase-arrow-right:after { + content: "\e2f2\e2f2" +} + +.fa-duotone.fa-expand-wide:after, +.fad.fa-expand-wide:after { + content: "\f320\f320" +} + +.fa-duotone.fa-clock-eleven-thirty:after, +.fad.fa-clock-eleven-thirty:after { + content: "\e348\e348" +} + +.fa-duotone.fa-rv:after, +.fad.fa-rv:after { + content: "\f7be\f7be" +} + +.fa-duotone.fa-user-secret:after, +.fad.fa-user-secret:after { + content: "\f21b\f21b" +} + +.fa-duotone.fa-otter:after, +.fad.fa-otter:after { + content: "\f700\f700" +} + +.fa-duotone.fa-dreidel:after, +.fad.fa-dreidel:after { + content: "\f792\f792" +} + +.fa-duotone.fa-female:after, +.fa-duotone.fa-person-dress:after, +.fad.fa-female:after, +.fad.fa-person-dress:after { + content: "\f182\f182" +} + +.fa-duotone.fa-comment-dollar:after, +.fad.fa-comment-dollar:after { + content: "\f651\f651" +} + +.fa-duotone.fa-briefcase-clock:after, +.fa-duotone.fa-business-time:after, +.fad.fa-briefcase-clock:after, +.fad.fa-business-time:after { + content: "\f64a\f64a" +} + +.fa-duotone.fa-flower-tulip:after, +.fad.fa-flower-tulip:after { + content: "\f801\f801" +} + +.fa-duotone.fa-people-pants-simple:after, +.fad.fa-people-pants-simple:after { + content: "\e21a\e21a" +} + +.fa-duotone.fa-cloud-drizzle:after, +.fad.fa-cloud-drizzle:after { + content: "\f738\f738" +} + +.fa-duotone.fa-table-cells-large:after, +.fa-duotone.fa-th-large:after, +.fad.fa-table-cells-large:after, +.fad.fa-th-large:after { + content: "\f009\f009" +} + +.fa-duotone.fa-book-tanakh:after, +.fa-duotone.fa-tanakh:after, +.fad.fa-book-tanakh:after, +.fad.fa-tanakh:after { + content: "\f827\f827" +} + +.fa-duotone.fa-solar-system:after, +.fad.fa-solar-system:after { + content: "\e02f\e02f" +} + +.fa-duotone.fa-seal-question:after, +.fad.fa-seal-question:after { + content: "\e243\e243" +} + +.fa-duotone.fa-phone-volume:after, +.fa-duotone.fa-volume-control-phone:after, +.fad.fa-phone-volume:after, +.fad.fa-volume-control-phone:after { + content: "\f2a0\f2a0" +} + +.fa-duotone.fa-disc-drive:after, +.fad.fa-disc-drive:after { + content: "\f8b5\f8b5" +} + +.fa-duotone.fa-hat-cowboy-side:after, +.fad.fa-hat-cowboy-side:after { + content: "\f8c1\f8c1" +} + +.fa-duotone.fa-rows:after, +.fa-duotone.fa-table-rows:after, +.fad.fa-rows:after, +.fad.fa-table-rows:after { + content: "\e292\e292" +} + +.fa-duotone.fa-location-exclamation:after, +.fa-duotone.fa-map-marker-exclamation:after, +.fad.fa-location-exclamation:after, +.fad.fa-map-marker-exclamation:after { + content: "\f608\f608" +} + +.fa-duotone.fa-face-fearful:after, +.fad.fa-face-fearful:after { + content: "\e375\e375" +} + +.fa-duotone.fa-clipboard-user:after, +.fad.fa-clipboard-user:after { + content: "\f7f3\f7f3" +} + +.fa-duotone.fa-bus-school:after, +.fad.fa-bus-school:after { + content: "\f5dd\f5dd" +} + +.fa-duotone.fa-film-slash:after, +.fad.fa-film-slash:after { + content: "\e179\e179" +} + +.fa-duotone.fa-square-arrow-down-right:after, +.fad.fa-square-arrow-down-right:after { + content: "\e262\e262" +} + +.fa-duotone.fa-book-sparkles:after, +.fa-duotone.fa-book-spells:after, +.fad.fa-book-sparkles:after, +.fad.fa-book-spells:after { + content: "\f6b8\f6b8" +} + +.fa-duotone.fa-washer:after, +.fa-duotone.fa-washing-machine:after, +.fad.fa-washer:after, +.fad.fa-washing-machine:after { + content: "\f898\f898" +} + +.fa-duotone.fa-child:after, +.fad.fa-child:after { + content: "\f1ae\f1ae" +} + +.fa-duotone.fa-lira-sign:after, +.fad.fa-lira-sign:after { + content: "\f195\f195" +} + +.fa-duotone.fa-user-visor:after, +.fad.fa-user-visor:after { + content: "\e04c\e04c" +} + +.fa-duotone.fa-file-plus-minus:after, +.fad.fa-file-plus-minus:after { + content: "\e177\e177" +} + +.fa-duotone.fa-chess-clock-alt:after, +.fa-duotone.fa-chess-clock-flip:after, +.fad.fa-chess-clock-alt:after, +.fad.fa-chess-clock-flip:after { + content: "\f43e\f43e" +} + +.fa-duotone.fa-satellite:after, +.fad.fa-satellite:after { + content: "\f7bf\f7bf" +} + +.fa-duotone.fa-truck-fire:after, +.fad.fa-truck-fire:after { + content: "\e65a\e65a" +} + +.fa-duotone.fa-plane-lock:after, +.fad.fa-plane-lock:after { + content: "\e558\e558" +} + +.fa-duotone.fa-steering-wheel:after, +.fad.fa-steering-wheel:after { + content: "\f622\f622" +} + +.fa-duotone.fa-tag:after, +.fad.fa-tag:after { + content: "\f02b\f02b" +} + +.fa-duotone.fa-stretcher:after, +.fad.fa-stretcher:after { + content: "\f825\f825" +} + +.fa-duotone.fa-book-law:after, +.fa-duotone.fa-book-section:after, +.fad.fa-book-law:after, +.fad.fa-book-section:after { + content: "\e0c1\e0c1" +} + +.fa-duotone.fa-inboxes:after, +.fad.fa-inboxes:after { + content: "\e1bb\e1bb" +} + +.fa-duotone.fa-coffee-bean:after, +.fad.fa-coffee-bean:after { + content: "\e13e\e13e" +} + +.fa-duotone.fa-circle-yen:after, +.fad.fa-circle-yen:after { + content: "\e5d0\e5d0" +} + +.fa-duotone.fa-brackets-curly:after, +.fad.fa-brackets-curly:after { + content: "\f7ea\f7ea" +} + +.fa-duotone.fa-ellipsis-stroke-vertical:after, +.fa-duotone.fa-ellipsis-v-alt:after, +.fad.fa-ellipsis-stroke-vertical:after, +.fad.fa-ellipsis-v-alt:after { + content: "\f39c\f39c" +} + +.fa-duotone.fa-comment:after, +.fad.fa-comment:after { + content: "\f075\f075" +} + +.fa-duotone.fa-square-1:after, +.fad.fa-square-1:after { + content: "\e256\e256" +} + +.fa-duotone.fa-birthday-cake:after, +.fa-duotone.fa-cake-candles:after, +.fa-duotone.fa-cake:after, +.fad.fa-birthday-cake:after, +.fad.fa-cake-candles:after, +.fad.fa-cake:after { + content: "\f1fd\f1fd" +} + +.fa-duotone.fa-head-side:after, +.fad.fa-head-side:after { + content: "\f6e9\f6e9" +} + +.fa-duotone.fa-truck-ladder:after, +.fad.fa-truck-ladder:after { + content: "\e657\e657" +} + +.fa-duotone.fa-envelope:after, +.fad.fa-envelope:after { + content: "\f0e0\f0e0" +} + +.fa-duotone.fa-dolly-empty:after, +.fad.fa-dolly-empty:after { + content: "\f473\f473" +} + +.fa-duotone.fa-face-tissue:after, +.fad.fa-face-tissue:after { + content: "\e39c\e39c" +} + +.fa-duotone.fa-angle-double-up:after, +.fa-duotone.fa-angles-up:after, +.fad.fa-angle-double-up:after, +.fad.fa-angles-up:after { + content: "\f102\f102" +} + +.fa-duotone.fa-bin-recycle:after, +.fad.fa-bin-recycle:after { + content: "\e5f7\e5f7" +} + +.fa-duotone.fa-paperclip:after, +.fad.fa-paperclip:after { + content: "\f0c6\f0c6" +} + +.fa-duotone.fa-chart-line-down:after, +.fad.fa-chart-line-down:after { + content: "\f64d\f64d" +} + +.fa-duotone.fa-arrow-right-to-city:after, +.fad.fa-arrow-right-to-city:after { + content: "\e4b3\e4b3" +} + +.fa-duotone.fa-lock-a:after, +.fad.fa-lock-a:after { + content: "\e422\e422" +} + +.fa-duotone.fa-ribbon:after, +.fad.fa-ribbon:after { + content: "\f4d6\f4d6" +} + +.fa-duotone.fa-lungs:after, +.fad.fa-lungs:after { + content: "\f604\f604" +} + +.fa-duotone.fa-person-pinball:after, +.fad.fa-person-pinball:after { + content: "\e21d\e21d" +} + +.fa-duotone.fa-arrow-up-9-1:after, +.fa-duotone.fa-sort-numeric-up-alt:after, +.fad.fa-arrow-up-9-1:after, +.fad.fa-sort-numeric-up-alt:after { + content: "\f887\f887" +} + +.fa-duotone.fa-apple-core:after, +.fad.fa-apple-core:after { + content: "\e08f\e08f" +} + +.fa-duotone.fa-circle-y:after, +.fad.fa-circle-y:after { + content: "\e12f\e12f" +} + +.fa-duotone.fa-h6:after, +.fad.fa-h6:after { + content: "\e413\e413" +} + +.fa-duotone.fa-litecoin-sign:after, +.fad.fa-litecoin-sign:after { + content: "\e1d3\e1d3" +} + +.fa-duotone.fa-circle-small:after, +.fad.fa-circle-small:after { + content: "\e122\e122" +} + +.fa-duotone.fa-border-none:after, +.fad.fa-border-none:after { + content: "\f850\f850" +} + +.fa-duotone.fa-arrow-turn-down-left:after, +.fad.fa-arrow-turn-down-left:after { + content: "\e2e1\e2e1" +} + +.fa-duotone.fa-circle-nodes:after, +.fad.fa-circle-nodes:after { + content: "\e4e2\e4e2" +} + +.fa-duotone.fa-parachute-box:after, +.fad.fa-parachute-box:after { + content: "\f4cd\f4cd" +} + +.fa-duotone.fa-reflect-horizontal:after, +.fad.fa-reflect-horizontal:after { + content: "\e664\e664" +} + +.fa-duotone.fa-comment-alt-medical:after, +.fa-duotone.fa-message-medical:after, +.fad.fa-comment-alt-medical:after, +.fad.fa-message-medical:after { + content: "\f7f4\f7f4" +} + +.fa-duotone.fa-rugby-ball:after, +.fad.fa-rugby-ball:after { + content: "\e3c6\e3c6" +} + +.fa-duotone.fa-comment-music:after, +.fad.fa-comment-music:after { + content: "\f8b0\f8b0" +} + +.fa-duotone.fa-indent:after, +.fad.fa-indent:after { + content: "\f03c\f03c" +} + +.fa-duotone.fa-tree-alt:after, +.fa-duotone.fa-tree-deciduous:after, +.fad.fa-tree-alt:after, +.fad.fa-tree-deciduous:after { + content: "\f400\f400" +} + +.fa-duotone.fa-puzzle-piece-alt:after, +.fa-duotone.fa-puzzle-piece-simple:after, +.fad.fa-puzzle-piece-alt:after, +.fad.fa-puzzle-piece-simple:after { + content: "\e231\e231" +} + +.fa-duotone.fa-truck-field-un:after, +.fad.fa-truck-field-un:after { + content: "\e58e\e58e" +} + +.fa-duotone.fa-nfc-trash:after, +.fad.fa-nfc-trash:after { + content: "\e1fd\e1fd" +} + +.fa-duotone.fa-hourglass-empty:after, +.fa-duotone.fa-hourglass:after, +.fad.fa-hourglass-empty:after, +.fad.fa-hourglass:after { + content: "\f254\f254" +} + +.fa-duotone.fa-mountain:after, +.fad.fa-mountain:after { + content: "\f6fc\f6fc" +} + +.fa-duotone.fa-file-times:after, +.fa-duotone.fa-file-xmark:after, +.fad.fa-file-times:after, +.fad.fa-file-xmark:after { + content: "\f317\f317" +} + +.fa-duotone.fa-home-heart:after, +.fa-duotone.fa-house-heart:after, +.fad.fa-home-heart:after, +.fad.fa-house-heart:after { + content: "\f4c9\f4c9" +} + +.fa-duotone.fa-house-chimney-blank:after, +.fad.fa-house-chimney-blank:after { + content: "\e3b0\e3b0" +} + +.fa-duotone.fa-meter-bolt:after, +.fad.fa-meter-bolt:after { + content: "\e1e9\e1e9" +} + +.fa-duotone.fa-user-doctor:after, +.fa-duotone.fa-user-md:after, +.fad.fa-user-doctor:after, +.fad.fa-user-md:after { + content: "\f0f0\f0f0" +} + +.fa-duotone.fa-slash-back:after, +.fad.fa-slash-back:after { + content: "\5c\5c" +} + +.fa-duotone.fa-circle-info:after, +.fa-duotone.fa-info-circle:after, +.fad.fa-circle-info:after, +.fad.fa-info-circle:after { + content: "\f05a\f05a" +} + +.fa-duotone.fa-fishing-rod:after, +.fad.fa-fishing-rod:after { + content: "\e3a8\e3a8" +} + +.fa-duotone.fa-hammer-crash:after, +.fad.fa-hammer-crash:after { + content: "\e414\e414" +} + +.fa-duotone.fa-message-heart:after, +.fad.fa-message-heart:after { + content: "\e5c9\e5c9" +} + +.fa-duotone.fa-cloud-meatball:after, +.fad.fa-cloud-meatball:after { + content: "\f73b\f73b" +} + +.fa-duotone.fa-camera-polaroid:after, +.fad.fa-camera-polaroid:after { + content: "\f8aa\f8aa" +} + +.fa-duotone.fa-camera-alt:after, +.fa-duotone.fa-camera:after, +.fad.fa-camera-alt:after, +.fad.fa-camera:after { + content: "\f030\f030" +} + +.fa-duotone.fa-square-virus:after, +.fad.fa-square-virus:after { + content: "\e578\e578" +} + +.fa-duotone.fa-cart-arrow-up:after, +.fad.fa-cart-arrow-up:after { + content: "\e3ee\e3ee" +} + +.fa-duotone.fa-meteor:after, +.fad.fa-meteor:after { + content: "\f753\f753" +} + +.fa-duotone.fa-car-on:after, +.fad.fa-car-on:after { + content: "\e4dd\e4dd" +} + +.fa-duotone.fa-sleigh:after, +.fad.fa-sleigh:after { + content: "\f7cc\f7cc" +} + +.fa-duotone.fa-arrow-down-1-9:after, +.fa-duotone.fa-sort-numeric-asc:after, +.fa-duotone.fa-sort-numeric-down:after, +.fad.fa-arrow-down-1-9:after, +.fad.fa-sort-numeric-asc:after, +.fad.fa-sort-numeric-down:after { + content: "\f162\f162" +} + +.fa-duotone.fa-buoy-mooring:after, +.fad.fa-buoy-mooring:after { + content: "\e5b6\e5b6" +} + +.fa-duotone.fa-square-4:after, +.fad.fa-square-4:after { + content: "\e259\e259" +} + +.fa-duotone.fa-hand-holding-droplet:after, +.fa-duotone.fa-hand-holding-water:after, +.fad.fa-hand-holding-droplet:after, +.fad.fa-hand-holding-water:after { + content: "\f4c1\f4c1" +} + +.fa-duotone.fa-file-eps:after, +.fad.fa-file-eps:after { + content: "\e644\e644" +} + +.fa-duotone.fa-tricycle-adult:after, +.fad.fa-tricycle-adult:after { + content: "\e5c4\e5c4" +} + +.fa-duotone.fa-waveform:after, +.fad.fa-waveform:after { + content: "\f8f1\f8f1" +} + +.fa-duotone.fa-water:after, +.fad.fa-water:after { + content: "\f773\f773" +} + +.fa-duotone.fa-star-sharp-half-alt:after, +.fa-duotone.fa-star-sharp-half-stroke:after, +.fad.fa-star-sharp-half-alt:after, +.fad.fa-star-sharp-half-stroke:after { + content: "\e28d\e28d" +} + +.fa-duotone.fa-nfc-signal:after, +.fad.fa-nfc-signal:after { + content: "\e1fb\e1fb" +} + +.fa-duotone.fa-plane-prop:after, +.fad.fa-plane-prop:after { + content: "\e22b\e22b" +} + +.fa-duotone.fa-calendar-check:after, +.fad.fa-calendar-check:after { + content: "\f274\f274" +} + +.fa-duotone.fa-clock-desk:after, +.fad.fa-clock-desk:after { + content: "\e134\e134" +} + +.fa-duotone.fa-calendar-clock:after, +.fa-duotone.fa-calendar-time:after, +.fad.fa-calendar-clock:after, +.fad.fa-calendar-time:after { + content: "\e0d2\e0d2" +} + +.fa-duotone.fa-braille:after, +.fad.fa-braille:after { + content: "\f2a1\f2a1" +} + +.fa-duotone.fa-prescription-bottle-alt:after, +.fa-duotone.fa-prescription-bottle-medical:after, +.fad.fa-prescription-bottle-alt:after, +.fad.fa-prescription-bottle-medical:after { + content: "\f486\f486" +} + +.fa-duotone.fa-plate-utensils:after, +.fad.fa-plate-utensils:after { + content: "\e43b\e43b" +} + +.fa-duotone.fa-family-pants:after, +.fad.fa-family-pants:after { + content: "\e302\e302" +} + +.fa-duotone.fa-hose-reel:after, +.fad.fa-hose-reel:after { + content: "\e41a\e41a" +} + +.fa-duotone.fa-house-window:after, +.fad.fa-house-window:after { + content: "\e3b3\e3b3" +} + +.fa-duotone.fa-landmark:after, +.fad.fa-landmark:after { + content: "\f66f\f66f" +} + +.fa-duotone.fa-truck:after, +.fad.fa-truck:after { + content: "\f0d1\f0d1" +} + +.fa-duotone.fa-music-magnifying-glass:after, +.fad.fa-music-magnifying-glass:after { + content: "\e662\e662" +} + +.fa-duotone.fa-crosshairs:after, +.fad.fa-crosshairs:after { + content: "\f05b\f05b" +} + +.fa-duotone.fa-cloud-rainbow:after, +.fad.fa-cloud-rainbow:after { + content: "\f73e\f73e" +} + +.fa-duotone.fa-person-cane:after, +.fad.fa-person-cane:after { + content: "\e53c\e53c" +} + +.fa-duotone.fa-alien:after, +.fad.fa-alien:after { + content: "\f8f5\f8f5" +} + +.fa-duotone.fa-tent:after, +.fad.fa-tent:after { + content: "\e57d\e57d" +} + +.fa-duotone.fa-laptop-binary:after, +.fad.fa-laptop-binary:after { + content: "\e5e7\e5e7" +} + +.fa-duotone.fa-vest-patches:after, +.fad.fa-vest-patches:after { + content: "\e086\e086" +} + +.fa-duotone.fa-people-dress-simple:after, +.fad.fa-people-dress-simple:after { + content: "\e218\e218" +} + +.fa-duotone.fa-check-double:after, +.fad.fa-check-double:after { + content: "\f560\f560" +} + +.fa-duotone.fa-arrow-down-a-z:after, +.fa-duotone.fa-sort-alpha-asc:after, +.fa-duotone.fa-sort-alpha-down:after, +.fad.fa-arrow-down-a-z:after, +.fad.fa-sort-alpha-asc:after, +.fad.fa-sort-alpha-down:after { + content: "\f15d\f15d" +} + +.fa-duotone.fa-bowling-ball-pin:after, +.fad.fa-bowling-ball-pin:after { + content: "\e0c3\e0c3" +} + +.fa-duotone.fa-bell-school-slash:after, +.fad.fa-bell-school-slash:after { + content: "\f5d6\f5d6" +} + +.fa-duotone.fa-plus-large:after, +.fad.fa-plus-large:after { + content: "\e59e\e59e" +} + +.fa-duotone.fa-money-bill-wheat:after, +.fad.fa-money-bill-wheat:after { + content: "\e52a\e52a" +} + +.fa-duotone.fa-camera-viewfinder:after, +.fa-duotone.fa-screenshot:after, +.fad.fa-camera-viewfinder:after, +.fad.fa-screenshot:after { + content: "\e0da\e0da" +} + +.fa-duotone.fa-comment-alt-music:after, +.fa-duotone.fa-message-music:after, +.fad.fa-comment-alt-music:after, +.fad.fa-message-music:after { + content: "\f8af\f8af" +} + +.fa-duotone.fa-car-building:after, +.fad.fa-car-building:after { + content: "\f859\f859" +} + +.fa-duotone.fa-border-bottom-right:after, +.fa-duotone.fa-border-style-alt:after, +.fad.fa-border-bottom-right:after, +.fad.fa-border-style-alt:after { + content: "\f854\f854" +} + +.fa-duotone.fa-octagon:after, +.fad.fa-octagon:after { + content: "\f306\f306" +} + +.fa-duotone.fa-comment-arrow-up-right:after, +.fad.fa-comment-arrow-up-right:after { + content: "\e145\e145" +} + +.fa-duotone.fa-octagon-divide:after, +.fad.fa-octagon-divide:after { + content: "\e203\e203" +} + +.fa-duotone.fa-cookie:after, +.fad.fa-cookie:after { + content: "\f563\f563" +} + +.fa-duotone.fa-arrow-left-rotate:after, +.fa-duotone.fa-arrow-rotate-back:after, +.fa-duotone.fa-arrow-rotate-backward:after, +.fa-duotone.fa-arrow-rotate-left:after, +.fa-duotone.fa-undo:after, +.fad.fa-arrow-left-rotate:after, +.fad.fa-arrow-rotate-back:after, +.fad.fa-arrow-rotate-backward:after, +.fad.fa-arrow-rotate-left:after, +.fad.fa-undo:after { + content: "\f0e2\f0e2" +} + +.fa-duotone.fa-tv-music:after, +.fad.fa-tv-music:after { + content: "\f8e6\f8e6" +} + +.fa-duotone.fa-hard-drive:after, +.fa-duotone.fa-hdd:after, +.fad.fa-hard-drive:after, +.fad.fa-hdd:after { + content: "\f0a0\f0a0" +} + +.fa-duotone.fa-reel:after, +.fad.fa-reel:after { + content: "\e238\e238" +} + +.fa-duotone.fa-face-grin-squint-tears:after, +.fa-duotone.fa-grin-squint-tears:after, +.fad.fa-face-grin-squint-tears:after, +.fad.fa-grin-squint-tears:after { + content: "\f586\f586" +} + +.fa-duotone.fa-dumbbell:after, +.fad.fa-dumbbell:after { + content: "\f44b\f44b" +} + +.fa-duotone.fa-list-alt:after, +.fa-duotone.fa-rectangle-list:after, +.fad.fa-list-alt:after, +.fad.fa-rectangle-list:after { + content: "\f022\f022" +} + +.fa-duotone.fa-tarp-droplet:after, +.fad.fa-tarp-droplet:after { + content: "\e57c\e57c" +} + +.fa-duotone.fa-alarm-exclamation:after, +.fad.fa-alarm-exclamation:after { + content: "\f843\f843" +} + +.fa-duotone.fa-house-medical-circle-check:after, +.fad.fa-house-medical-circle-check:after { + content: "\e511\e511" +} + +.fa-duotone.fa-traffic-cone:after, +.fad.fa-traffic-cone:after { + content: "\f636\f636" +} + +.fa-duotone.fa-grate:after, +.fad.fa-grate:after { + content: "\e193\e193" +} + +.fa-duotone.fa-arrow-down-right:after, +.fad.fa-arrow-down-right:after { + content: "\e093\e093" +} + +.fa-duotone.fa-person-skiing-nordic:after, +.fa-duotone.fa-skiing-nordic:after, +.fad.fa-person-skiing-nordic:after, +.fad.fa-skiing-nordic:after { + content: "\f7ca\f7ca" +} + +.fa-duotone.fa-calendar-plus:after, +.fad.fa-calendar-plus:after { + content: "\f271\f271" +} + +.fa-duotone.fa-person-from-portal:after, +.fa-duotone.fa-portal-exit:after, +.fad.fa-person-from-portal:after, +.fad.fa-portal-exit:after { + content: "\e023\e023" +} + +.fa-duotone.fa-plane-arrival:after, +.fad.fa-plane-arrival:after { + content: "\f5af\f5af" +} + +.fa-duotone.fa-cowbell-circle-plus:after, +.fa-duotone.fa-cowbell-more:after, +.fad.fa-cowbell-circle-plus:after, +.fad.fa-cowbell-more:after { + content: "\f8b4\f8b4" +} + +.fa-duotone.fa-arrow-alt-circle-left:after, +.fa-duotone.fa-circle-left:after, +.fad.fa-arrow-alt-circle-left:after, +.fad.fa-circle-left:after { + content: "\f359\f359" +} + +.fa-duotone.fa-distribute-spacing-vertical:after, +.fad.fa-distribute-spacing-vertical:after { + content: "\e366\e366" +} + +.fa-duotone.fa-signal-alt-2:after, +.fa-duotone.fa-signal-bars-fair:after, +.fad.fa-signal-alt-2:after, +.fad.fa-signal-bars-fair:after { + content: "\f692\f692" +} + +.fa-duotone.fa-sportsball:after, +.fad.fa-sportsball:after { + content: "\e44b\e44b" +} + +.fa-duotone.fa-game-console-handheld-crank:after, +.fad.fa-game-console-handheld-crank:after { + content: "\e5b9\e5b9" +} + +.fa-duotone.fa-subway:after, +.fa-duotone.fa-train-subway:after, +.fad.fa-subway:after, +.fad.fa-train-subway:after { + content: "\f239\f239" +} + +.fa-duotone.fa-chart-gantt:after, +.fad.fa-chart-gantt:after { + content: "\e0e4\e0e4" +} + +.fa-duotone.fa-face-smile-upside-down:after, +.fad.fa-face-smile-upside-down:after { + content: "\e395\e395" +} + +.fa-duotone.fa-ball-pile:after, +.fad.fa-ball-pile:after { + content: "\f77e\f77e" +} + +.fa-duotone.fa-badge-dollar:after, +.fad.fa-badge-dollar:after { + content: "\f645\f645" +} + +.fa-duotone.fa-money-bills-alt:after, +.fa-duotone.fa-money-bills-simple:after, +.fad.fa-money-bills-alt:after, +.fad.fa-money-bills-simple:after { + content: "\e1f4\e1f4" +} + +.fa-duotone.fa-list-timeline:after, +.fad.fa-list-timeline:after { + content: "\e1d1\e1d1" +} + +.fa-duotone.fa-indian-rupee-sign:after, +.fa-duotone.fa-indian-rupee:after, +.fa-duotone.fa-inr:after, +.fad.fa-indian-rupee-sign:after, +.fad.fa-indian-rupee:after, +.fad.fa-inr:after { + content: "\e1bc\e1bc" +} + +.fa-duotone.fa-crop-alt:after, +.fa-duotone.fa-crop-simple:after, +.fad.fa-crop-alt:after, +.fad.fa-crop-simple:after { + content: "\f565\f565" +} + +.fa-duotone.fa-money-bill-1:after, +.fa-duotone.fa-money-bill-alt:after, +.fad.fa-money-bill-1:after, +.fad.fa-money-bill-alt:after { + content: "\f3d1\f3d1" +} + +.fa-duotone.fa-left-long:after, +.fa-duotone.fa-long-arrow-alt-left:after, +.fad.fa-left-long:after, +.fad.fa-long-arrow-alt-left:after { + content: "\f30a\f30a" +} + +.fa-duotone.fa-keyboard-down:after, +.fad.fa-keyboard-down:after { + content: "\e1c2\e1c2" +} + +.fa-duotone.fa-circle-up-right:after, +.fad.fa-circle-up-right:after { + content: "\e129\e129" +} + +.fa-duotone.fa-cloud-bolt-moon:after, +.fa-duotone.fa-thunderstorm-moon:after, +.fad.fa-cloud-bolt-moon:after, +.fad.fa-thunderstorm-moon:after { + content: "\f76d\f76d" +} + +.fa-duotone.fa-turn-left-up:after, +.fad.fa-turn-left-up:after { + content: "\e638\e638" +} + +.fa-duotone.fa-dna:after, +.fad.fa-dna:after { + content: "\f471\f471" +} + +.fa-duotone.fa-virus-slash:after, +.fad.fa-virus-slash:after { + content: "\e075\e075" +} + +.fa-duotone.fa-bracket-round-right:after, +.fad.fa-bracket-round-right:after { + content: "\29\29" +} + +.fa-duotone.fa-circle-sterling:after, +.fad.fa-circle-sterling:after { + content: "\e5cf\e5cf" +} + +.fa-duotone.fa-circle-5:after, +.fad.fa-circle-5:after { + content: "\e0f2\e0f2" +} + +.fa-duotone.fa-minus:after, +.fa-duotone.fa-subtract:after, +.fad.fa-minus:after, +.fad.fa-subtract:after { + content: "\f068\f068" +} + +.fa-duotone.fa-fire-flame:after, +.fa-duotone.fa-flame:after, +.fad.fa-fire-flame:after, +.fad.fa-flame:after { + content: "\f6df\f6df" +} + +.fa-duotone.fa-arrow-alt-to-right:after, +.fa-duotone.fa-right-to-line:after, +.fad.fa-arrow-alt-to-right:after, +.fad.fa-right-to-line:after { + content: "\f34c\f34c" +} + +.fa-duotone.fa-gif:after, +.fad.fa-gif:after { + content: "\e190\e190" +} + +.fa-duotone.fa-chess:after, +.fad.fa-chess:after { + content: "\f439\f439" +} + +.fa-duotone.fa-trash-slash:after, +.fad.fa-trash-slash:after { + content: "\e2b3\e2b3" +} + +.fa-duotone.fa-arrow-left-long:after, +.fa-duotone.fa-long-arrow-left:after, +.fad.fa-arrow-left-long:after, +.fad.fa-long-arrow-left:after { + content: "\f177\f177" +} + +.fa-duotone.fa-plug-circle-check:after, +.fad.fa-plug-circle-check:after { + content: "\e55c\e55c" +} + +.fa-duotone.fa-font-case:after, +.fad.fa-font-case:after { + content: "\f866\f866" +} + +.fa-duotone.fa-street-view:after, +.fad.fa-street-view:after { + content: "\f21d\f21d" +} + +.fa-duotone.fa-arrow-down-left:after, +.fad.fa-arrow-down-left:after { + content: "\e091\e091" +} + +.fa-duotone.fa-franc-sign:after, +.fad.fa-franc-sign:after { + content: "\e18f\e18f" +} + +.fa-duotone.fa-flask-poison:after, +.fa-duotone.fa-flask-round-poison:after, +.fad.fa-flask-poison:after, +.fad.fa-flask-round-poison:after { + content: "\f6e0\f6e0" +} + +.fa-duotone.fa-volume-off:after, +.fad.fa-volume-off:after { + content: "\f026\f026" +} + +.fa-duotone.fa-book-circle-arrow-right:after, +.fad.fa-book-circle-arrow-right:after { + content: "\e0bc\e0bc" +} + +.fa-duotone.fa-chart-user:after, +.fa-duotone.fa-user-chart:after, +.fad.fa-chart-user:after, +.fad.fa-user-chart:after { + content: "\f6a3\f6a3" +} + +.fa-duotone.fa-american-sign-language-interpreting:after, +.fa-duotone.fa-asl-interpreting:after, +.fa-duotone.fa-hands-american-sign-language-interpreting:after, +.fa-duotone.fa-hands-asl-interpreting:after, +.fad.fa-american-sign-language-interpreting:after, +.fad.fa-asl-interpreting:after, +.fad.fa-hands-american-sign-language-interpreting:after, +.fad.fa-hands-asl-interpreting:after { + content: "\f2a3\f2a3" +} + +.fa-duotone.fa-presentation-screen:after, +.fa-duotone.fa-presentation:after, +.fad.fa-presentation-screen:after, +.fad.fa-presentation:after { + content: "\f685\f685" +} + +.fa-duotone.fa-circle-bolt:after, +.fad.fa-circle-bolt:after { + content: "\e0fe\e0fe" +} + +.fa-duotone.fa-face-smile-halo:after, +.fad.fa-face-smile-halo:after { + content: "\e38f\e38f" +} + +.fa-duotone.fa-cart-circle-arrow-down:after, +.fad.fa-cart-circle-arrow-down:after { + content: "\e3ef\e3ef" +} + +.fa-duotone.fa-house-person-arrive:after, +.fa-duotone.fa-house-person-return:after, +.fa-duotone.fa-house-return:after, +.fad.fa-house-person-arrive:after, +.fad.fa-house-person-return:after, +.fad.fa-house-return:after { + content: "\e011\e011" +} + +.fa-duotone.fa-comment-alt-times:after, +.fa-duotone.fa-message-times:after, +.fa-duotone.fa-message-xmark:after, +.fad.fa-comment-alt-times:after, +.fad.fa-message-times:after, +.fad.fa-message-xmark:after { + content: "\f4ab\f4ab" +} + +.fa-duotone.fa-file-award:after, +.fa-duotone.fa-file-certificate:after, +.fad.fa-file-award:after, +.fad.fa-file-certificate:after { + content: "\f5f3\f5f3" +} + +.fa-duotone.fa-user-doctor-hair-long:after, +.fad.fa-user-doctor-hair-long:after { + content: "\e459\e459" +} + +.fa-duotone.fa-camera-home:after, +.fa-duotone.fa-camera-security:after, +.fad.fa-camera-home:after, +.fad.fa-camera-security:after { + content: "\f8fe\f8fe" +} + +.fa-duotone.fa-cog:after, +.fa-duotone.fa-gear:after, +.fad.fa-cog:after, +.fad.fa-gear:after { + content: "\f013\f013" +} + +.fa-duotone.fa-droplet-slash:after, +.fa-duotone.fa-tint-slash:after, +.fad.fa-droplet-slash:after, +.fad.fa-tint-slash:after { + content: "\f5c7\f5c7" +} + +.fa-duotone.fa-book-heart:after, +.fad.fa-book-heart:after { + content: "\f499\f499" +} + +.fa-duotone.fa-mosque:after, +.fad.fa-mosque:after { + content: "\f678\f678" +} + +.fa-duotone.fa-duck:after, +.fad.fa-duck:after { + content: "\f6d8\f6d8" +} + +.fa-duotone.fa-mosquito:after, +.fad.fa-mosquito:after { + content: "\e52b\e52b" +} + +.fa-duotone.fa-star-of-david:after, +.fad.fa-star-of-david:after { + content: "\f69a\f69a" +} + +.fa-duotone.fa-flag-alt:after, +.fa-duotone.fa-flag-swallowtail:after, +.fad.fa-flag-alt:after, +.fad.fa-flag-swallowtail:after { + content: "\f74c\f74c" +} + +.fa-duotone.fa-person-military-rifle:after, +.fad.fa-person-military-rifle:after { + content: "\e54b\e54b" +} + +.fa-duotone.fa-car-garage:after, +.fad.fa-car-garage:after { + content: "\f5e2\f5e2" +} + +.fa-duotone.fa-cart-shopping:after, +.fa-duotone.fa-shopping-cart:after, +.fad.fa-cart-shopping:after, +.fad.fa-shopping-cart:after { + content: "\f07a\f07a" +} + +.fa-duotone.fa-book-font:after, +.fad.fa-book-font:after { + content: "\e0bf\e0bf" +} + +.fa-duotone.fa-shield-plus:after, +.fad.fa-shield-plus:after { + content: "\e24a\e24a" +} + +.fa-duotone.fa-vials:after, +.fad.fa-vials:after { + content: "\f493\f493" +} + +.fa-duotone.fa-eye-dropper-full:after, +.fad.fa-eye-dropper-full:after { + content: "\e172\e172" +} + +.fa-duotone.fa-distribute-spacing-horizontal:after, +.fad.fa-distribute-spacing-horizontal:after { + content: "\e365\e365" +} + +.fa-duotone.fa-tablet-rugged:after, +.fad.fa-tablet-rugged:after { + content: "\f48f\f48f" +} + +.fa-duotone.fa-temperature-frigid:after, +.fa-duotone.fa-temperature-snow:after, +.fad.fa-temperature-frigid:after, +.fad.fa-temperature-snow:after { + content: "\f768\f768" +} + +.fa-duotone.fa-moped:after, +.fad.fa-moped:after { + content: "\e3b9\e3b9" +} + +.fa-duotone.fa-face-smile-plus:after, +.fa-duotone.fa-smile-plus:after, +.fad.fa-face-smile-plus:after, +.fad.fa-smile-plus:after { + content: "\f5b9\f5b9" +} + +.fa-duotone.fa-radio-alt:after, +.fa-duotone.fa-radio-tuner:after, +.fad.fa-radio-alt:after, +.fad.fa-radio-tuner:after { + content: "\f8d8\f8d8" +} + +.fa-duotone.fa-face-swear:after, +.fad.fa-face-swear:after { + content: "\e399\e399" +} + +.fa-duotone.fa-water-arrow-down:after, +.fa-duotone.fa-water-lower:after, +.fad.fa-water-arrow-down:after, +.fad.fa-water-lower:after { + content: "\f774\f774" +} + +.fa-duotone.fa-scanner-touchscreen:after, +.fad.fa-scanner-touchscreen:after { + content: "\f48a\f48a" +} + +.fa-duotone.fa-circle-7:after, +.fad.fa-circle-7:after { + content: "\e0f4\e0f4" +} + +.fa-duotone.fa-plug-circle-plus:after, +.fad.fa-plug-circle-plus:after { + content: "\e55f\e55f" +} + +.fa-duotone.fa-person-ski-jumping:after, +.fa-duotone.fa-ski-jump:after, +.fad.fa-person-ski-jumping:after, +.fad.fa-ski-jump:after { + content: "\f7c7\f7c7" +} + +.fa-duotone.fa-place-of-worship:after, +.fad.fa-place-of-worship:after { + content: "\f67f\f67f" +} + +.fa-duotone.fa-water-arrow-up:after, +.fa-duotone.fa-water-rise:after, +.fad.fa-water-arrow-up:after, +.fad.fa-water-rise:after { + content: "\f775\f775" +} + +.fa-duotone.fa-waveform-lines:after, +.fa-duotone.fa-waveform-path:after, +.fad.fa-waveform-lines:after, +.fad.fa-waveform-path:after { + content: "\f8f2\f8f2" +} + +.fa-duotone.fa-split:after, +.fad.fa-split:after { + content: "\e254\e254" +} + +.fa-duotone.fa-film-canister:after, +.fa-duotone.fa-film-cannister:after, +.fad.fa-film-canister:after, +.fad.fa-film-cannister:after { + content: "\f8b7\f8b7" +} + +.fa-duotone.fa-folder-times:after, +.fa-duotone.fa-folder-xmark:after, +.fad.fa-folder-times:after, +.fad.fa-folder-xmark:after { + content: "\f65f\f65f" +} + +.fa-duotone.fa-toilet-paper-alt:after, +.fa-duotone.fa-toilet-paper-blank:after, +.fad.fa-toilet-paper-alt:after, +.fad.fa-toilet-paper-blank:after { + content: "\f71f\f71f" +} + +.fa-duotone.fa-tablet-android-alt:after, +.fa-duotone.fa-tablet-screen:after, +.fad.fa-tablet-android-alt:after, +.fad.fa-tablet-screen:after { + content: "\f3fc\f3fc" +} + +.fa-duotone.fa-hexagon-vertical-nft-slanted:after, +.fad.fa-hexagon-vertical-nft-slanted:after { + content: "\e506\e506" +} + +.fa-duotone.fa-folder-music:after, +.fad.fa-folder-music:after { + content: "\e18d\e18d" +} + +.fa-duotone.fa-desktop-medical:after, +.fa-duotone.fa-display-medical:after, +.fad.fa-desktop-medical:after, +.fad.fa-display-medical:after { + content: "\e166\e166" +} + +.fa-duotone.fa-share-all:after, +.fad.fa-share-all:after { + content: "\f367\f367" +} + +.fa-duotone.fa-peapod:after, +.fad.fa-peapod:after { + content: "\e31c\e31c" +} + +.fa-duotone.fa-chess-clock:after, +.fad.fa-chess-clock:after { + content: "\f43d\f43d" +} + +.fa-duotone.fa-axe:after, +.fad.fa-axe:after { + content: "\f6b2\f6b2" +} + +.fa-duotone.fa-square-d:after, +.fad.fa-square-d:after { + content: "\e268\e268" +} + +.fa-duotone.fa-grip-vertical:after, +.fad.fa-grip-vertical:after { + content: "\f58e\f58e" +} + +.fa-duotone.fa-mobile-signal-out:after, +.fad.fa-mobile-signal-out:after { + content: "\e1f0\e1f0" +} + +.fa-duotone.fa-arrow-turn-up:after, +.fa-duotone.fa-level-up:after, +.fad.fa-arrow-turn-up:after, +.fad.fa-level-up:after { + content: "\f148\f148" +} + +.fa-duotone.fa-u:after, +.fad.fa-u:after { + content: "\55\55" +} + +.fa-duotone.fa-arrow-up-from-dotted-line:after, +.fad.fa-arrow-up-from-dotted-line:after { + content: "\e09b\e09b" +} + +.fa-duotone.fa-square-root-alt:after, +.fa-duotone.fa-square-root-variable:after, +.fad.fa-square-root-alt:after, +.fad.fa-square-root-variable:after { + content: "\f698\f698" +} + +.fa-duotone.fa-light-switch-on:after, +.fad.fa-light-switch-on:after { + content: "\e019\e019" +} + +.fa-duotone.fa-arrow-down-arrow-up:after, +.fa-duotone.fa-sort-alt:after, +.fad.fa-arrow-down-arrow-up:after, +.fad.fa-sort-alt:after { + content: "\f883\f883" +} + +.fa-duotone.fa-raindrops:after, +.fad.fa-raindrops:after { + content: "\f75c\f75c" +} + +.fa-duotone.fa-dash:after, +.fa-duotone.fa-minus-large:after, +.fad.fa-dash:after, +.fad.fa-minus-large:after { + content: "\e404\e404" +} + +.fa-duotone.fa-clock-four:after, +.fa-duotone.fa-clock:after, +.fad.fa-clock-four:after, +.fad.fa-clock:after { + content: "\f017\f017" +} + +.fa-duotone.fa-input-numeric:after, +.fad.fa-input-numeric:after { + content: "\e1bd\e1bd" +} + +.fa-duotone.fa-truck-tow:after, +.fad.fa-truck-tow:after { + content: "\e2b8\e2b8" +} + +.fa-duotone.fa-backward-step:after, +.fa-duotone.fa-step-backward:after, +.fad.fa-backward-step:after, +.fad.fa-step-backward:after { + content: "\f048\f048" +} + +.fa-duotone.fa-pallet:after, +.fad.fa-pallet:after { + content: "\f482\f482" +} + +.fa-duotone.fa-car-bolt:after, +.fad.fa-car-bolt:after { + content: "\e341\e341" +} + +.fa-duotone.fa-arrows-maximize:after, +.fa-duotone.fa-expand-arrows:after, +.fad.fa-arrows-maximize:after, +.fad.fa-expand-arrows:after { + content: "\f31d\f31d" +} + +.fa-duotone.fa-faucet:after, +.fad.fa-faucet:after { + content: "\e005\e005" +} + +.fa-duotone.fa-cloud-sleet:after, +.fad.fa-cloud-sleet:after { + content: "\f741\f741" +} + +.fa-duotone.fa-lamp-street:after, +.fad.fa-lamp-street:after { + content: "\e1c5\e1c5" +} + +.fa-duotone.fa-list-radio:after, +.fad.fa-list-radio:after { + content: "\e1d0\e1d0" +} + +.fa-duotone.fa-pen-nib-slash:after, +.fad.fa-pen-nib-slash:after { + content: "\e4a1\e4a1" +} + +.fa-duotone.fa-baseball-bat-ball:after, +.fad.fa-baseball-bat-ball:after { + content: "\f432\f432" +} + +.fa-duotone.fa-square-up-left:after, +.fad.fa-square-up-left:after { + content: "\e282\e282" +} + +.fa-duotone.fa-overline:after, +.fad.fa-overline:after { + content: "\f876\f876" +} + +.fa-duotone.fa-s:after, +.fad.fa-s:after { + content: "\53\53" +} + +.fa-duotone.fa-timeline:after, +.fad.fa-timeline:after { + content: "\e29c\e29c" +} + +.fa-duotone.fa-keyboard:after, +.fad.fa-keyboard:after { + content: "\f11c\f11c" +} + +.fa-duotone.fa-arrows-from-dotted-line:after, +.fad.fa-arrows-from-dotted-line:after { + content: "\e0a3\e0a3" +} + +.fa-duotone.fa-usb-drive:after, +.fad.fa-usb-drive:after { + content: "\f8e9\f8e9" +} + +.fa-duotone.fa-ballot:after, +.fad.fa-ballot:after { + content: "\f732\f732" +} + +.fa-duotone.fa-caret-down:after, +.fad.fa-caret-down:after { + content: "\f0d7\f0d7" +} + +.fa-duotone.fa-location-dot-slash:after, +.fa-duotone.fa-map-marker-alt-slash:after, +.fad.fa-location-dot-slash:after, +.fad.fa-map-marker-alt-slash:after { + content: "\f605\f605" +} + +.fa-duotone.fa-cards:after, +.fad.fa-cards:after { + content: "\e3ed\e3ed" +} + +.fa-duotone.fa-clinic-medical:after, +.fa-duotone.fa-house-chimney-medical:after, +.fad.fa-clinic-medical:after, +.fad.fa-house-chimney-medical:after { + content: "\f7f2\f7f2" +} + +.fa-duotone.fa-boxing-glove:after, +.fa-duotone.fa-glove-boxing:after, +.fad.fa-boxing-glove:after, +.fad.fa-glove-boxing:after { + content: "\f438\f438" +} + +.fa-duotone.fa-temperature-3:after, +.fa-duotone.fa-temperature-three-quarters:after, +.fa-duotone.fa-thermometer-3:after, +.fa-duotone.fa-thermometer-three-quarters:after, +.fad.fa-temperature-3:after, +.fad.fa-temperature-three-quarters:after, +.fad.fa-thermometer-3:after, +.fad.fa-thermometer-three-quarters:after { + content: "\f2c8\f2c8" +} + +.fa-duotone.fa-bell-school:after, +.fad.fa-bell-school:after { + content: "\f5d5\f5d5" +} + +.fa-duotone.fa-mobile-android-alt:after, +.fa-duotone.fa-mobile-screen:after, +.fad.fa-mobile-android-alt:after, +.fad.fa-mobile-screen:after { + content: "\f3cf\f3cf" +} + +.fa-duotone.fa-plane-up:after, +.fad.fa-plane-up:after { + content: "\e22d\e22d" +} + +.fa-duotone.fa-folder-heart:after, +.fad.fa-folder-heart:after { + content: "\e189\e189" +} + +.fa-duotone.fa-circle-location-arrow:after, +.fa-duotone.fa-location-circle:after, +.fad.fa-circle-location-arrow:after, +.fad.fa-location-circle:after { + content: "\f602\f602" +} + +.fa-duotone.fa-face-head-bandage:after, +.fad.fa-face-head-bandage:after { + content: "\e37a\e37a" +} + +.fa-duotone.fa-maki-roll:after, +.fa-duotone.fa-makizushi:after, +.fa-duotone.fa-sushi-roll:after, +.fad.fa-maki-roll:after, +.fad.fa-makizushi:after, +.fad.fa-sushi-roll:after { + content: "\e48b\e48b" +} + +.fa-duotone.fa-car-bump:after, +.fad.fa-car-bump:after { + content: "\f5e0\f5e0" +} + +.fa-duotone.fa-piggy-bank:after, +.fad.fa-piggy-bank:after { + content: "\f4d3\f4d3" +} + +.fa-duotone.fa-racquet:after, +.fad.fa-racquet:after { + content: "\f45a\f45a" +} + +.fa-duotone.fa-car-mirrors:after, +.fad.fa-car-mirrors:after { + content: "\e343\e343" +} + +.fa-duotone.fa-industry-alt:after, +.fa-duotone.fa-industry-windows:after, +.fad.fa-industry-alt:after, +.fad.fa-industry-windows:after { + content: "\f3b3\f3b3" +} + +.fa-duotone.fa-bolt-auto:after, +.fad.fa-bolt-auto:after { + content: "\e0b6\e0b6" +} + +.fa-duotone.fa-battery-3:after, +.fa-duotone.fa-battery-half:after, +.fad.fa-battery-3:after, +.fad.fa-battery-half:after { + content: "\f242\f242" +} + +.fa-duotone.fa-flux-capacitor:after, +.fad.fa-flux-capacitor:after { + content: "\f8ba\f8ba" +} + +.fa-duotone.fa-mountain-city:after, +.fad.fa-mountain-city:after { + content: "\e52e\e52e" +} + +.fa-duotone.fa-coins:after, +.fad.fa-coins:after { + content: "\f51e\f51e" +} + +.fa-duotone.fa-honey-pot:after, +.fad.fa-honey-pot:after { + content: "\e418\e418" +} + +.fa-duotone.fa-olive:after, +.fad.fa-olive:after { + content: "\e316\e316" +} + +.fa-duotone.fa-khanda:after, +.fad.fa-khanda:after { + content: "\f66d\f66d" +} + +.fa-duotone.fa-filter-list:after, +.fad.fa-filter-list:after { + content: "\e17c\e17c" +} + +.fa-duotone.fa-outlet:after, +.fad.fa-outlet:after { + content: "\e01c\e01c" +} + +.fa-duotone.fa-sliders-h:after, +.fa-duotone.fa-sliders:after, +.fad.fa-sliders-h:after, +.fad.fa-sliders:after { + content: "\f1de\f1de" +} + +.fa-duotone.fa-cauldron:after, +.fad.fa-cauldron:after { + content: "\f6bf\f6bf" +} + +.fa-duotone.fa-people:after, +.fad.fa-people:after { + content: "\e216\e216" +} + +.fa-duotone.fa-folder-tree:after, +.fad.fa-folder-tree:after { + content: "\f802\f802" +} + +.fa-duotone.fa-network-wired:after, +.fad.fa-network-wired:after { + content: "\f6ff\f6ff" +} + +.fa-duotone.fa-croissant:after, +.fad.fa-croissant:after { + content: "\f7f6\f7f6" +} + +.fa-duotone.fa-map-pin:after, +.fad.fa-map-pin:after { + content: "\f276\f276" +} + +.fa-duotone.fa-hamsa:after, +.fad.fa-hamsa:after { + content: "\f665\f665" +} + +.fa-duotone.fa-cent-sign:after, +.fad.fa-cent-sign:after { + content: "\e3f5\e3f5" +} + +.fa-duotone.fa-swords-laser:after, +.fad.fa-swords-laser:after { + content: "\e03d\e03d" +} + +.fa-duotone.fa-flask:after, +.fad.fa-flask:after { + content: "\f0c3\f0c3" +} + +.fa-duotone.fa-person-pregnant:after, +.fad.fa-person-pregnant:after { + content: "\e31e\e31e" +} + +.fa-duotone.fa-square-u:after, +.fad.fa-square-u:after { + content: "\e281\e281" +} + +.fa-duotone.fa-wand-sparkles:after, +.fad.fa-wand-sparkles:after { + content: "\f72b\f72b" +} + +.fa-duotone.fa-router:after, +.fad.fa-router:after { + content: "\f8da\f8da" +} + +.fa-duotone.fa-ellipsis-v:after, +.fa-duotone.fa-ellipsis-vertical:after, +.fad.fa-ellipsis-v:after, +.fad.fa-ellipsis-vertical:after { + content: "\f142\f142" +} + +.fa-duotone.fa-sword-laser-alt:after, +.fad.fa-sword-laser-alt:after { + content: "\e03c\e03c" +} + +.fa-duotone.fa-ticket:after, +.fad.fa-ticket:after { + content: "\f145\f145" +} + +.fa-duotone.fa-power-off:after, +.fad.fa-power-off:after { + content: "\f011\f011" +} + +.fa-duotone.fa-coin:after, +.fad.fa-coin:after { + content: "\f85c\f85c" +} + +.fa-duotone.fa-laptop-slash:after, +.fad.fa-laptop-slash:after { + content: "\e1c7\e1c7" +} + +.fa-duotone.fa-long-arrow-alt-right:after, +.fa-duotone.fa-right-long:after, +.fad.fa-long-arrow-alt-right:after, +.fad.fa-right-long:after { + content: "\f30b\f30b" +} + +.fa-duotone.fa-circle-b:after, +.fad.fa-circle-b:after { + content: "\e0fd\e0fd" +} + +.fa-duotone.fa-person-dress-simple:after, +.fad.fa-person-dress-simple:after { + content: "\e21c\e21c" +} + +.fa-duotone.fa-pipe-collar:after, +.fad.fa-pipe-collar:after { + content: "\e437\e437" +} + +.fa-duotone.fa-lights-holiday:after, +.fad.fa-lights-holiday:after { + content: "\f7b2\f7b2" +} + +.fa-duotone.fa-citrus:after, +.fad.fa-citrus:after { + content: "\e2f4\e2f4" +} + +.fa-duotone.fa-flag-usa:after, +.fad.fa-flag-usa:after { + content: "\f74d\f74d" +} + +.fa-duotone.fa-laptop-file:after, +.fad.fa-laptop-file:after { + content: "\e51d\e51d" +} + +.fa-duotone.fa-teletype:after, +.fa-duotone.fa-tty:after, +.fad.fa-teletype:after, +.fad.fa-tty:after { + content: "\f1e4\f1e4" +} + +.fa-duotone.fa-chart-tree-map:after, +.fad.fa-chart-tree-map:after { + content: "\e0ea\e0ea" +} + +.fa-duotone.fa-diagram-next:after, +.fad.fa-diagram-next:after { + content: "\e476\e476" +} + +.fa-duotone.fa-person-rifle:after, +.fad.fa-person-rifle:after { + content: "\e54e\e54e" +} + +.fa-duotone.fa-clock-five-thirty:after, +.fad.fa-clock-five-thirty:after { + content: "\e34a\e34a" +} + +.fa-duotone.fa-pipe-valve:after, +.fad.fa-pipe-valve:after { + content: "\e439\e439" +} + +.fa-duotone.fa-arrow-up-from-arc:after, +.fad.fa-arrow-up-from-arc:after { + content: "\e4b4\e4b4" +} + +.fa-duotone.fa-face-spiral-eyes:after, +.fad.fa-face-spiral-eyes:after { + content: "\e485\e485" +} + +.fa-duotone.fa-compress-wide:after, +.fad.fa-compress-wide:after { + content: "\f326\f326" +} + +.fa-duotone.fa-circle-phone-hangup:after, +.fa-duotone.fa-phone-circle-down:after, +.fad.fa-circle-phone-hangup:after, +.fad.fa-phone-circle-down:after { + content: "\e11d\e11d" +} + +.fa-duotone.fa-gear-complex-code:after, +.fad.fa-gear-complex-code:after { + content: "\e5eb\e5eb" +} + +.fa-duotone.fa-house-medical-circle-exclamation:after, +.fad.fa-house-medical-circle-exclamation:after { + content: "\e512\e512" +} + +.fa-duotone.fa-badminton:after, +.fad.fa-badminton:after { + content: "\e33a\e33a" +} + +.fa-duotone.fa-closed-captioning:after, +.fad.fa-closed-captioning:after { + content: "\f20a\f20a" +} + +.fa-duotone.fa-hiking:after, +.fa-duotone.fa-person-hiking:after, +.fad.fa-hiking:after, +.fad.fa-person-hiking:after { + content: "\f6ec\f6ec" +} + +.fa-duotone.fa-arrow-alt-from-left:after, +.fa-duotone.fa-right-from-line:after, +.fad.fa-arrow-alt-from-left:after, +.fad.fa-right-from-line:after { + content: "\f347\f347" +} + +.fa-duotone.fa-venus-double:after, +.fad.fa-venus-double:after { + content: "\f226\f226" +} + +.fa-duotone.fa-images:after, +.fad.fa-images:after { + content: "\f302\f302" +} + +.fa-duotone.fa-calculator:after, +.fad.fa-calculator:after { + content: "\f1ec\f1ec" +} + +.fa-duotone.fa-shuttlecock:after, +.fad.fa-shuttlecock:after { + content: "\f45b\f45b" +} + +.fa-duotone.fa-user-hair:after, +.fad.fa-user-hair:after { + content: "\e45a\e45a" +} + +.fa-duotone.fa-eye-evil:after, +.fad.fa-eye-evil:after { + content: "\f6db\f6db" +} + +.fa-duotone.fa-people-pulling:after, +.fad.fa-people-pulling:after { + content: "\e535\e535" +} + +.fa-duotone.fa-n:after, +.fad.fa-n:after { + content: "\4e\4e" +} + +.fa-duotone.fa-swap:after, +.fad.fa-swap:after { + content: "\e609\e609" +} + +.fa-duotone.fa-garage:after, +.fad.fa-garage:after { + content: "\e009\e009" +} + +.fa-duotone.fa-cable-car:after, +.fa-duotone.fa-tram:after, +.fad.fa-cable-car:after, +.fad.fa-tram:after { + content: "\f7da\f7da" +} + +.fa-duotone.fa-shovel-snow:after, +.fad.fa-shovel-snow:after { + content: "\f7c3\f7c3" +} + +.fa-duotone.fa-cloud-rain:after, +.fad.fa-cloud-rain:after { + content: "\f73d\f73d" +} + +.fa-duotone.fa-face-lying:after, +.fad.fa-face-lying:after { + content: "\e37e\e37e" +} + +.fa-duotone.fa-sprinkler:after, +.fad.fa-sprinkler:after { + content: "\e035\e035" +} + +.fa-duotone.fa-building-circle-xmark:after, +.fad.fa-building-circle-xmark:after { + content: "\e4d4\e4d4" +} + +.fa-duotone.fa-person-sledding:after, +.fa-duotone.fa-sledding:after, +.fad.fa-person-sledding:after, +.fad.fa-sledding:after { + content: "\f7cb\f7cb" +} + +.fa-duotone.fa-game-console-handheld:after, +.fad.fa-game-console-handheld:after { + content: "\f8bb\f8bb" +} + +.fa-duotone.fa-ship:after, +.fad.fa-ship:after { + content: "\f21a\f21a" +} + +.fa-duotone.fa-clock-six-thirty:after, +.fad.fa-clock-six-thirty:after { + content: "\e353\e353" +} + +.fa-duotone.fa-battery-slash:after, +.fad.fa-battery-slash:after { + content: "\f377\f377" +} + +.fa-duotone.fa-tugrik-sign:after, +.fad.fa-tugrik-sign:after { + content: "\e2ba\e2ba" +} + +.fa-duotone.fa-arrows-down-to-line:after, +.fad.fa-arrows-down-to-line:after { + content: "\e4b8\e4b8" +} + +.fa-duotone.fa-download:after, +.fad.fa-download:after { + content: "\f019\f019" +} + +.fa-duotone.fa-angles-up-down:after, +.fad.fa-angles-up-down:after { + content: "\e60d\e60d" +} + +.fa-duotone.fa-inventory:after, +.fa-duotone.fa-shelves:after, +.fad.fa-inventory:after, +.fad.fa-shelves:after { + content: "\f480\f480" +} + +.fa-duotone.fa-cloud-snow:after, +.fad.fa-cloud-snow:after { + content: "\f742\f742" +} + +.fa-duotone.fa-face-grin:after, +.fa-duotone.fa-grin:after, +.fad.fa-face-grin:after, +.fad.fa-grin:after { + content: "\f580\f580" +} + +.fa-duotone.fa-backspace:after, +.fa-duotone.fa-delete-left:after, +.fad.fa-backspace:after, +.fad.fa-delete-left:after { + content: "\f55a\f55a" +} + +.fa-duotone.fa-oven:after, +.fad.fa-oven:after { + content: "\e01d\e01d" +} + +.fa-duotone.fa-cloud-binary:after, +.fad.fa-cloud-binary:after { + content: "\e601\e601" +} + +.fa-duotone.fa-eye-dropper-empty:after, +.fa-duotone.fa-eye-dropper:after, +.fa-duotone.fa-eyedropper:after, +.fad.fa-eye-dropper-empty:after, +.fad.fa-eye-dropper:after, +.fad.fa-eyedropper:after { + content: "\f1fb\f1fb" +} + +.fa-duotone.fa-comment-captions:after, +.fad.fa-comment-captions:after { + content: "\e146\e146" +} + +.fa-duotone.fa-comments-question:after, +.fad.fa-comments-question:after { + content: "\e14e\e14e" +} + +.fa-duotone.fa-scribble:after, +.fad.fa-scribble:after { + content: "\e23f\e23f" +} + +.fa-duotone.fa-rotate-exclamation:after, +.fad.fa-rotate-exclamation:after { + content: "\e23c\e23c" +} + +.fa-duotone.fa-file-circle-check:after, +.fad.fa-file-circle-check:after { + content: "\e5a0\e5a0" +} + +.fa-duotone.fa-glass:after, +.fad.fa-glass:after { + content: "\f804\f804" +} + +.fa-duotone.fa-loader:after, +.fad.fa-loader:after { + content: "\e1d4\e1d4" +} + +.fa-duotone.fa-forward:after, +.fad.fa-forward:after { + content: "\f04e\f04e" +} + +.fa-duotone.fa-user-pilot:after, +.fad.fa-user-pilot:after { + content: "\e2c0\e2c0" +} + +.fa-duotone.fa-mobile-android:after, +.fa-duotone.fa-mobile-phone:after, +.fa-duotone.fa-mobile:after, +.fad.fa-mobile-android:after, +.fad.fa-mobile-phone:after, +.fad.fa-mobile:after { + content: "\f3ce\f3ce" +} + +.fa-duotone.fa-code-pull-request-closed:after, +.fad.fa-code-pull-request-closed:after { + content: "\e3f9\e3f9" +} + +.fa-duotone.fa-face-meh:after, +.fa-duotone.fa-meh:after, +.fad.fa-face-meh:after, +.fad.fa-meh:after { + content: "\f11a\f11a" +} + +.fa-duotone.fa-align-center:after, +.fad.fa-align-center:after { + content: "\f037\f037" +} + +.fa-duotone.fa-book-dead:after, +.fa-duotone.fa-book-skull:after, +.fad.fa-book-dead:after, +.fad.fa-book-skull:after { + content: "\f6b7\f6b7" +} + +.fa-duotone.fa-drivers-license:after, +.fa-duotone.fa-id-card:after, +.fad.fa-drivers-license:after, +.fad.fa-id-card:after { + content: "\f2c2\f2c2" +} + +.fa-duotone.fa-face-dotted:after, +.fad.fa-face-dotted:after { + content: "\e47f\e47f" +} + +.fa-duotone.fa-face-worried:after, +.fad.fa-face-worried:after { + content: "\e3a3\e3a3" +} + +.fa-duotone.fa-dedent:after, +.fa-duotone.fa-outdent:after, +.fad.fa-dedent:after, +.fad.fa-outdent:after { + content: "\f03b\f03b" +} + +.fa-duotone.fa-court-sport:after, +.fad.fa-court-sport:after { + content: "\e643\e643" +} + +.fa-duotone.fa-heart-circle-exclamation:after, +.fad.fa-heart-circle-exclamation:after { + content: "\e4fe\e4fe" +} + +.fa-duotone.fa-home-alt:after, +.fa-duotone.fa-home-lg-alt:after, +.fa-duotone.fa-home:after, +.fa-duotone.fa-house:after, +.fad.fa-home-alt:after, +.fad.fa-home-lg-alt:after, +.fad.fa-home:after, +.fad.fa-house:after { + content: "\f015\f015" +} + +.fa-duotone.fa-vector-circle:after, +.fad.fa-vector-circle:after { + content: "\e2c6\e2c6" +} + +.fa-duotone.fa-car-circle-bolt:after, +.fad.fa-car-circle-bolt:after { + content: "\e342\e342" +} + +.fa-duotone.fa-calendar-week:after, +.fad.fa-calendar-week:after { + content: "\f784\f784" +} + +.fa-duotone.fa-flying-disc:after, +.fad.fa-flying-disc:after { + content: "\e3a9\e3a9" +} + +.fa-duotone.fa-laptop-medical:after, +.fad.fa-laptop-medical:after { + content: "\f812\f812" +} + +.fa-duotone.fa-square-down-right:after, +.fad.fa-square-down-right:after { + content: "\e26c\e26c" +} + +.fa-duotone.fa-b:after, +.fad.fa-b:after { + content: "\42\42" +} + +.fa-duotone.fa-seat-airline:after, +.fad.fa-seat-airline:after { + content: "\e244\e244" +} + +.fa-duotone.fa-eclipse-alt:after, +.fa-duotone.fa-moon-over-sun:after, +.fad.fa-eclipse-alt:after, +.fad.fa-moon-over-sun:after { + content: "\f74a\f74a" +} + +.fa-duotone.fa-pipe:after, +.fad.fa-pipe:after { + content: "\7c\7c" +} + +.fa-duotone.fa-file-medical:after, +.fad.fa-file-medical:after { + content: "\f477\f477" +} + +.fa-duotone.fa-potato:after, +.fad.fa-potato:after { + content: "\e440\e440" +} + +.fa-duotone.fa-dice-one:after, +.fad.fa-dice-one:after { + content: "\f525\f525" +} + +.fa-duotone.fa-circle-a:after, +.fad.fa-circle-a:after { + content: "\e0f7\e0f7" +} + +.fa-duotone.fa-helmet-battle:after, +.fad.fa-helmet-battle:after { + content: "\f6eb\f6eb" +} + +.fa-duotone.fa-butter:after, +.fad.fa-butter:after { + content: "\e3e4\e3e4" +} + +.fa-duotone.fa-blanket-fire:after, +.fad.fa-blanket-fire:after { + content: "\e3da\e3da" +} + +.fa-duotone.fa-kiwi-bird:after, +.fad.fa-kiwi-bird:after { + content: "\f535\f535" +} + +.fa-duotone.fa-castle:after, +.fad.fa-castle:after { + content: "\e0de\e0de" +} + +.fa-duotone.fa-golf-club:after, +.fad.fa-golf-club:after { + content: "\f451\f451" +} + +.fa-duotone.fa-arrow-right-arrow-left:after, +.fa-duotone.fa-exchange:after, +.fad.fa-arrow-right-arrow-left:after, +.fad.fa-exchange:after { + content: "\f0ec\f0ec" +} + +.fa-duotone.fa-redo-alt:after, +.fa-duotone.fa-rotate-forward:after, +.fa-duotone.fa-rotate-right:after, +.fad.fa-redo-alt:after, +.fad.fa-rotate-forward:after, +.fad.fa-rotate-right:after { + content: "\f2f9\f2f9" +} + +.fa-duotone.fa-cutlery:after, +.fa-duotone.fa-utensils:after, +.fad.fa-cutlery:after, +.fad.fa-utensils:after { + content: "\f2e7\f2e7" +} + +.fa-duotone.fa-arrow-up-wide-short:after, +.fa-duotone.fa-sort-amount-up:after, +.fad.fa-arrow-up-wide-short:after, +.fad.fa-sort-amount-up:after { + content: "\f161\f161" +} + +.fa-duotone.fa-chart-pie-simple-circle-dollar:after, +.fad.fa-chart-pie-simple-circle-dollar:after { + content: "\e605\e605" +} + +.fa-duotone.fa-balloons:after, +.fad.fa-balloons:after { + content: "\e2e4\e2e4" +} + +.fa-duotone.fa-mill-sign:after, +.fad.fa-mill-sign:after { + content: "\e1ed\e1ed" +} + +.fa-duotone.fa-bowl-rice:after, +.fad.fa-bowl-rice:after { + content: "\e2eb\e2eb" +} + +.fa-duotone.fa-timeline-arrow:after, +.fad.fa-timeline-arrow:after { + content: "\e29d\e29d" +} + +.fa-duotone.fa-skull:after, +.fad.fa-skull:after { + content: "\f54c\f54c" +} + +.fa-duotone.fa-game-board-alt:after, +.fa-duotone.fa-game-board-simple:after, +.fad.fa-game-board-alt:after, +.fad.fa-game-board-simple:after { + content: "\f868\f868" +} + +.fa-duotone.fa-circle-video:after, +.fa-duotone.fa-video-circle:after, +.fad.fa-circle-video:after, +.fad.fa-video-circle:after { + content: "\e12b\e12b" +} + +.fa-duotone.fa-chart-scatter-bubble:after, +.fad.fa-chart-scatter-bubble:after { + content: "\e0e9\e0e9" +} + +.fa-duotone.fa-house-turret:after, +.fad.fa-house-turret:after { + content: "\e1b4\e1b4" +} + +.fa-duotone.fa-banana:after, +.fad.fa-banana:after { + content: "\e2e5\e2e5" +} + +.fa-duotone.fa-hand-holding-skull:after, +.fad.fa-hand-holding-skull:after { + content: "\e1a4\e1a4" +} + +.fa-duotone.fa-people-dress:after, +.fad.fa-people-dress:after { + content: "\e217\e217" +} + +.fa-duotone.fa-couch-small:after, +.fa-duotone.fa-loveseat:after, +.fad.fa-couch-small:after, +.fad.fa-loveseat:after { + content: "\f4cc\f4cc" +} + +.fa-duotone.fa-broadcast-tower:after, +.fa-duotone.fa-tower-broadcast:after, +.fad.fa-broadcast-tower:after, +.fad.fa-tower-broadcast:after { + content: "\f519\f519" +} + +.fa-duotone.fa-truck-pickup:after, +.fad.fa-truck-pickup:after { + content: "\f63c\f63c" +} + +.fa-duotone.fa-block-quote:after, +.fad.fa-block-quote:after { + content: "\e0b5\e0b5" +} + +.fa-duotone.fa-long-arrow-alt-up:after, +.fa-duotone.fa-up-long:after, +.fad.fa-long-arrow-alt-up:after, +.fad.fa-up-long:after { + content: "\f30c\f30c" +} + +.fa-duotone.fa-stop:after, +.fad.fa-stop:after { + content: "\f04d\f04d" +} + +.fa-duotone.fa-code-merge:after, +.fad.fa-code-merge:after { + content: "\f387\f387" +} + +.fa-duotone.fa-money-check-dollar-pen:after, +.fa-duotone.fa-money-check-edit-alt:after, +.fad.fa-money-check-dollar-pen:after, +.fad.fa-money-check-edit-alt:after { + content: "\f873\f873" +} + +.fa-duotone.fa-arrow-alt-from-bottom:after, +.fa-duotone.fa-up-from-line:after, +.fad.fa-arrow-alt-from-bottom:after, +.fad.fa-up-from-line:after { + content: "\f346\f346" +} + +.fa-duotone.fa-upload:after, +.fad.fa-upload:after { + content: "\f093\f093" +} + +.fa-duotone.fa-hurricane:after, +.fad.fa-hurricane:after { + content: "\f751\f751" +} + +.fa-duotone.fa-grid-round-2-plus:after, +.fad.fa-grid-round-2-plus:after { + content: "\e5dc\e5dc" +} + +.fa-duotone.fa-people-pants:after, +.fad.fa-people-pants:after { + content: "\e219\e219" +} + +.fa-duotone.fa-mound:after, +.fad.fa-mound:after { + content: "\e52d\e52d" +} + +.fa-duotone.fa-windsock:after, +.fad.fa-windsock:after { + content: "\f777\f777" +} + +.fa-duotone.fa-circle-half:after, +.fad.fa-circle-half:after { + content: "\e110\e110" +} + +.fa-duotone.fa-brake-warning:after, +.fad.fa-brake-warning:after { + content: "\e0c7\e0c7" +} + +.fa-duotone.fa-toilet-portable:after, +.fad.fa-toilet-portable:after { + content: "\e583\e583" +} + +.fa-duotone.fa-compact-disc:after, +.fad.fa-compact-disc:after { + content: "\f51f\f51f" +} + +.fa-duotone.fa-file-arrow-down:after, +.fa-duotone.fa-file-download:after, +.fad.fa-file-arrow-down:after, +.fad.fa-file-download:after { + content: "\f56d\f56d" +} + +.fa-duotone.fa-sax-hot:after, +.fa-duotone.fa-saxophone-fire:after, +.fad.fa-sax-hot:after, +.fad.fa-saxophone-fire:after { + content: "\f8db\f8db" +} + +.fa-duotone.fa-camera-web-slash:after, +.fa-duotone.fa-webcam-slash:after, +.fad.fa-camera-web-slash:after, +.fad.fa-webcam-slash:after { + content: "\f833\f833" +} + +.fa-duotone.fa-folder-medical:after, +.fad.fa-folder-medical:after { + content: "\e18c\e18c" +} + +.fa-duotone.fa-folder-cog:after, +.fa-duotone.fa-folder-gear:after, +.fad.fa-folder-cog:after, +.fad.fa-folder-gear:after { + content: "\e187\e187" +} + +.fa-duotone.fa-hand-wave:after, +.fad.fa-hand-wave:after { + content: "\e1a7\e1a7" +} + +.fa-duotone.fa-arrow-up-arrow-down:after, +.fa-duotone.fa-sort-up-down:after, +.fad.fa-arrow-up-arrow-down:after, +.fad.fa-sort-up-down:after { + content: "\e099\e099" +} + +.fa-duotone.fa-caravan:after, +.fad.fa-caravan:after { + content: "\f8ff\f8ff" +} + +.fa-duotone.fa-shield-cat:after, +.fad.fa-shield-cat:after { + content: "\e572\e572" +} + +.fa-duotone.fa-comment-alt-slash:after, +.fa-duotone.fa-message-slash:after, +.fad.fa-comment-alt-slash:after, +.fad.fa-message-slash:after { + content: "\f4a9\f4a9" +} + +.fa-duotone.fa-bolt:after, +.fa-duotone.fa-zap:after, +.fad.fa-bolt:after, +.fad.fa-zap:after { + content: "\f0e7\f0e7" +} + +.fa-duotone.fa-trash-can-check:after, +.fad.fa-trash-can-check:after { + content: "\e2a9\e2a9" +} + +.fa-duotone.fa-glass-water:after, +.fad.fa-glass-water:after { + content: "\e4f4\e4f4" +} + +.fa-duotone.fa-oil-well:after, +.fad.fa-oil-well:after { + content: "\e532\e532" +} + +.fa-duotone.fa-person-simple:after, +.fad.fa-person-simple:after { + content: "\e220\e220" +} + +.fa-duotone.fa-arrow-turn-left-up:after, +.fad.fa-arrow-turn-left-up:after { + content: "\e634\e634" +} + +.fa-duotone.fa-vault:after, +.fad.fa-vault:after { + content: "\e2c5\e2c5" +} + +.fa-duotone.fa-mars:after, +.fad.fa-mars:after { + content: "\f222\f222" +} + +.fa-duotone.fa-toilet:after, +.fad.fa-toilet:after { + content: "\f7d8\f7d8" +} + +.fa-duotone.fa-plane-circle-xmark:after, +.fad.fa-plane-circle-xmark:after { + content: "\e557\e557" +} + +.fa-duotone.fa-cny:after, +.fa-duotone.fa-jpy:after, +.fa-duotone.fa-rmb:after, +.fa-duotone.fa-yen-sign:after, +.fa-duotone.fa-yen:after, +.fad.fa-cny:after, +.fad.fa-jpy:after, +.fad.fa-rmb:after, +.fad.fa-yen-sign:after, +.fad.fa-yen:after { + content: "\f157\f157" +} + +.fa-duotone.fa-gear-code:after, +.fad.fa-gear-code:after { + content: "\e5e8\e5e8" +} + +.fa-duotone.fa-notes:after, +.fad.fa-notes:after { + content: "\e202\e202" +} + +.fa-duotone.fa-rouble:after, +.fa-duotone.fa-rub:after, +.fa-duotone.fa-ruble-sign:after, +.fa-duotone.fa-ruble:after, +.fad.fa-rouble:after, +.fad.fa-rub:after, +.fad.fa-ruble-sign:after, +.fad.fa-ruble:after { + content: "\f158\f158" +} + +.fa-duotone.fa-trash-arrow-turn-left:after, +.fa-duotone.fa-trash-undo:after, +.fad.fa-trash-arrow-turn-left:after, +.fad.fa-trash-undo:after { + content: "\f895\f895" +} + +.fa-duotone.fa-champagne-glass:after, +.fa-duotone.fa-glass-champagne:after, +.fad.fa-champagne-glass:after, +.fad.fa-glass-champagne:after { + content: "\f79e\f79e" +} + +.fa-duotone.fa-objects-align-center-horizontal:after, +.fad.fa-objects-align-center-horizontal:after { + content: "\e3bc\e3bc" +} + +.fa-duotone.fa-sun:after, +.fad.fa-sun:after { + content: "\f185\f185" +} + +.fa-duotone.fa-trash-alt-slash:after, +.fa-duotone.fa-trash-can-slash:after, +.fad.fa-trash-alt-slash:after, +.fad.fa-trash-can-slash:after { + content: "\e2ad\e2ad" +} + +.fa-duotone.fa-screen-users:after, +.fa-duotone.fa-users-class:after, +.fad.fa-screen-users:after, +.fad.fa-users-class:after { + content: "\f63d\f63d" +} + +.fa-duotone.fa-guitar:after, +.fad.fa-guitar:after { + content: "\f7a6\f7a6" +} + +.fa-duotone.fa-arrow-square-left:after, +.fa-duotone.fa-square-arrow-left:after, +.fad.fa-arrow-square-left:after, +.fad.fa-square-arrow-left:after { + content: "\f33a\f33a" +} + +.fa-duotone.fa-square-8:after, +.fad.fa-square-8:after { + content: "\e25d\e25d" +} + +.fa-duotone.fa-face-smile-hearts:after, +.fad.fa-face-smile-hearts:after { + content: "\e390\e390" +} + +.fa-duotone.fa-brackets-square:after, +.fa-duotone.fa-brackets:after, +.fad.fa-brackets-square:after, +.fad.fa-brackets:after { + content: "\f7e9\f7e9" +} + +.fa-duotone.fa-laptop-arrow-down:after, +.fad.fa-laptop-arrow-down:after { + content: "\e1c6\e1c6" +} + +.fa-duotone.fa-hockey-stick-puck:after, +.fad.fa-hockey-stick-puck:after { + content: "\e3ae\e3ae" +} + +.fa-duotone.fa-house-tree:after, +.fad.fa-house-tree:after { + content: "\e1b3\e1b3" +} + +.fa-duotone.fa-signal-2:after, +.fa-duotone.fa-signal-fair:after, +.fad.fa-signal-2:after, +.fad.fa-signal-fair:after { + content: "\f68d\f68d" +} + +.fa-duotone.fa-face-laugh-wink:after, +.fa-duotone.fa-laugh-wink:after, +.fad.fa-face-laugh-wink:after, +.fad.fa-laugh-wink:after { + content: "\f59c\f59c" +} + +.fa-duotone.fa-circle-dollar:after, +.fa-duotone.fa-dollar-circle:after, +.fa-duotone.fa-usd-circle:after, +.fad.fa-circle-dollar:after, +.fad.fa-dollar-circle:after, +.fad.fa-usd-circle:after { + content: "\f2e8\f2e8" +} + +.fa-duotone.fa-horse-head:after, +.fad.fa-horse-head:after { + content: "\f7ab\f7ab" +} + +.fa-duotone.fa-arrows-repeat:after, +.fa-duotone.fa-repeat-alt:after, +.fad.fa-arrows-repeat:after, +.fad.fa-repeat-alt:after { + content: "\f364\f364" +} + +.fa-duotone.fa-bore-hole:after, +.fad.fa-bore-hole:after { + content: "\e4c3\e4c3" +} + +.fa-duotone.fa-industry:after, +.fad.fa-industry:after { + content: "\f275\f275" +} + +.fa-duotone.fa-image-polaroid:after, +.fad.fa-image-polaroid:after { + content: "\f8c4\f8c4" +} + +.fa-duotone.fa-wave-triangle:after, +.fad.fa-wave-triangle:after { + content: "\f89a\f89a" +} + +.fa-duotone.fa-turn-left-down:after, +.fad.fa-turn-left-down:after { + content: "\e637\e637" +} + +.fa-duotone.fa-person-running-fast:after, +.fad.fa-person-running-fast:after { + content: "\e5ff\e5ff" +} + +.fa-duotone.fa-arrow-alt-circle-down:after, +.fa-duotone.fa-circle-down:after, +.fad.fa-arrow-alt-circle-down:after, +.fad.fa-circle-down:after { + content: "\f358\f358" +} + +.fa-duotone.fa-grill:after, +.fad.fa-grill:after { + content: "\e5a3\e5a3" +} + +.fa-duotone.fa-arrows-turn-to-dots:after, +.fad.fa-arrows-turn-to-dots:after { + content: "\e4c1\e4c1" +} + +.fa-duotone.fa-analytics:after, +.fa-duotone.fa-chart-mixed:after, +.fad.fa-analytics:after, +.fad.fa-chart-mixed:after { + content: "\f643\f643" +} + +.fa-duotone.fa-florin-sign:after, +.fad.fa-florin-sign:after { + content: "\e184\e184" +} + +.fa-duotone.fa-arrow-down-short-wide:after, +.fa-duotone.fa-sort-amount-desc:after, +.fa-duotone.fa-sort-amount-down-alt:after, +.fad.fa-arrow-down-short-wide:after, +.fad.fa-sort-amount-desc:after, +.fad.fa-sort-amount-down-alt:after { + content: "\f884\f884" +} + +.fa-duotone.fa-less-than:after, +.fad.fa-less-than:after { + content: "\3c\3c" +} + +.fa-duotone.fa-desktop-code:after, +.fa-duotone.fa-display-code:after, +.fad.fa-desktop-code:after, +.fad.fa-display-code:after { + content: "\e165\e165" +} + +.fa-duotone.fa-face-drooling:after, +.fad.fa-face-drooling:after { + content: "\e372\e372" +} + +.fa-duotone.fa-oil-temp:after, +.fa-duotone.fa-oil-temperature:after, +.fad.fa-oil-temp:after, +.fad.fa-oil-temperature:after { + content: "\f614\f614" +} + +.fa-duotone.fa-question-square:after, +.fa-duotone.fa-square-question:after, +.fad.fa-question-square:after, +.fad.fa-square-question:after { + content: "\f2fd\f2fd" +} + +.fa-duotone.fa-air-conditioner:after, +.fad.fa-air-conditioner:after { + content: "\f8f4\f8f4" +} + +.fa-duotone.fa-angle-down:after, +.fad.fa-angle-down:after { + content: "\f107\f107" +} + +.fa-duotone.fa-mountains:after, +.fad.fa-mountains:after { + content: "\f6fd\f6fd" +} + +.fa-duotone.fa-omega:after, +.fad.fa-omega:after { + content: "\f67a\f67a" +} + +.fa-duotone.fa-car-tunnel:after, +.fad.fa-car-tunnel:after { + content: "\e4de\e4de" +} + +.fa-duotone.fa-person-dolly-empty:after, +.fad.fa-person-dolly-empty:after { + content: "\f4d1\f4d1" +} + +.fa-duotone.fa-pan-food:after, +.fad.fa-pan-food:after { + content: "\e42b\e42b" +} + +.fa-duotone.fa-head-side-cough:after, +.fad.fa-head-side-cough:after { + content: "\e061\e061" +} + +.fa-duotone.fa-grip-lines:after, +.fad.fa-grip-lines:after { + content: "\f7a4\f7a4" +} + +.fa-duotone.fa-thumbs-down:after, +.fad.fa-thumbs-down:after { + content: "\f165\f165" +} + +.fa-duotone.fa-user-lock:after, +.fad.fa-user-lock:after { + content: "\f502\f502" +} + +.fa-duotone.fa-arrow-right-long:after, +.fa-duotone.fa-long-arrow-right:after, +.fad.fa-arrow-right-long:after, +.fad.fa-long-arrow-right:after { + content: "\f178\f178" +} + +.fa-duotone.fa-tickets-airline:after, +.fa-duotone.fa-tickets-perforated-plane:after, +.fa-duotone.fa-tickets-plane:after, +.fad.fa-tickets-airline:after, +.fad.fa-tickets-perforated-plane:after, +.fad.fa-tickets-plane:after { + content: "\e29b\e29b" +} + +.fa-duotone.fa-tent-double-peak:after, +.fad.fa-tent-double-peak:after { + content: "\e627\e627" +} + +.fa-duotone.fa-anchor-circle-xmark:after, +.fad.fa-anchor-circle-xmark:after { + content: "\e4ac\e4ac" +} + +.fa-duotone.fa-ellipsis-h:after, +.fa-duotone.fa-ellipsis:after, +.fad.fa-ellipsis-h:after, +.fad.fa-ellipsis:after { + content: "\f141\f141" +} + +.fa-duotone.fa-nfc-slash:after, +.fad.fa-nfc-slash:after { + content: "\e1fc\e1fc" +} + +.fa-duotone.fa-chess-pawn:after, +.fad.fa-chess-pawn:after { + content: "\f443\f443" +} + +.fa-duotone.fa-first-aid:after, +.fa-duotone.fa-kit-medical:after, +.fad.fa-first-aid:after, +.fad.fa-kit-medical:after { + content: "\f479\f479" +} + +.fa-duotone.fa-grid-2-plus:after, +.fad.fa-grid-2-plus:after { + content: "\e197\e197" +} + +.fa-duotone.fa-bells:after, +.fad.fa-bells:after { + content: "\f77f\f77f" +} + +.fa-duotone.fa-person-through-window:after, +.fad.fa-person-through-window:after { + content: "\e5a9\e5a9" +} + +.fa-duotone.fa-toolbox:after, +.fad.fa-toolbox:after { + content: "\f552\f552" +} + +.fa-duotone.fa-envelope-badge:after, +.fa-duotone.fa-envelope-dot:after, +.fad.fa-envelope-badge:after, +.fad.fa-envelope-dot:after { + content: "\e16f\e16f" +} + +.fa-duotone.fa-magnifying-glass-waveform:after, +.fad.fa-magnifying-glass-waveform:after { + content: "\e661\e661" +} + +.fa-duotone.fa-hands-holding-circle:after, +.fad.fa-hands-holding-circle:after { + content: "\e4fb\e4fb" +} + +.fa-duotone.fa-bug:after, +.fad.fa-bug:after { + content: "\f188\f188" +} + +.fa-duotone.fa-bowl-chopsticks:after, +.fad.fa-bowl-chopsticks:after { + content: "\e2e9\e2e9" +} + +.fa-duotone.fa-credit-card-alt:after, +.fa-duotone.fa-credit-card:after, +.fad.fa-credit-card-alt:after, +.fad.fa-credit-card:after { + content: "\f09d\f09d" +} + +.fa-duotone.fa-circle-s:after, +.fad.fa-circle-s:after { + content: "\e121\e121" +} + +.fa-duotone.fa-box-ballot:after, +.fad.fa-box-ballot:after { + content: "\f735\f735" +} + +.fa-duotone.fa-automobile:after, +.fa-duotone.fa-car:after, +.fad.fa-automobile:after, +.fad.fa-car:after { + content: "\f1b9\f1b9" +} + +.fa-duotone.fa-hand-holding-hand:after, +.fad.fa-hand-holding-hand:after { + content: "\e4f7\e4f7" +} + +.fa-duotone.fa-user-tie-hair:after, +.fad.fa-user-tie-hair:after { + content: "\e45f\e45f" +} + +.fa-duotone.fa-podium-star:after, +.fad.fa-podium-star:after { + content: "\f758\f758" +} + +.fa-duotone.fa-business-front:after, +.fa-duotone.fa-party-back:after, +.fa-duotone.fa-trian-balbot:after, +.fa-duotone.fa-user-hair-mullet:after, +.fad.fa-business-front:after, +.fad.fa-party-back:after, +.fad.fa-trian-balbot:after, +.fad.fa-user-hair-mullet:after { + content: "\e45c\e45c" +} + +.fa-duotone.fa-microphone-stand:after, +.fad.fa-microphone-stand:after { + content: "\f8cb\f8cb" +} + +.fa-duotone.fa-book-open-reader:after, +.fa-duotone.fa-book-reader:after, +.fad.fa-book-open-reader:after, +.fad.fa-book-reader:after { + content: "\f5da\f5da" +} + +.fa-duotone.fa-family-dress:after, +.fad.fa-family-dress:after { + content: "\e301\e301" +} + +.fa-duotone.fa-circle-x:after, +.fad.fa-circle-x:after { + content: "\e12e\e12e" +} + +.fa-duotone.fa-cabin:after, +.fad.fa-cabin:after { + content: "\e46d\e46d" +} + +.fa-duotone.fa-mountain-sun:after, +.fad.fa-mountain-sun:after { + content: "\e52f\e52f" +} + +.fa-duotone.fa-chart-simple-horizontal:after, +.fad.fa-chart-simple-horizontal:after { + content: "\e474\e474" +} + +.fa-duotone.fa-arrows-left-right-to-line:after, +.fad.fa-arrows-left-right-to-line:after { + content: "\e4ba\e4ba" +} + +.fa-duotone.fa-hand-back-point-left:after, +.fad.fa-hand-back-point-left:after { + content: "\e19f\e19f" +} + +.fa-duotone.fa-comment-alt-dots:after, +.fa-duotone.fa-message-dots:after, +.fa-duotone.fa-messaging:after, +.fad.fa-comment-alt-dots:after, +.fad.fa-message-dots:after, +.fad.fa-messaging:after { + content: "\f4a3\f4a3" +} + +.fa-duotone.fa-file-heart:after, +.fad.fa-file-heart:after { + content: "\e176\e176" +} + +.fa-duotone.fa-beer-foam:after, +.fa-duotone.fa-beer-mug:after, +.fad.fa-beer-foam:after, +.fad.fa-beer-mug:after { + content: "\e0b3\e0b3" +} + +.fa-duotone.fa-dice-d20:after, +.fad.fa-dice-d20:after { + content: "\f6cf\f6cf" +} + +.fa-duotone.fa-drone:after, +.fad.fa-drone:after { + content: "\f85f\f85f" +} + +.fa-duotone.fa-truck-droplet:after, +.fad.fa-truck-droplet:after { + content: "\e58c\e58c" +} + +.fa-duotone.fa-file-circle-xmark:after, +.fad.fa-file-circle-xmark:after { + content: "\e5a1\e5a1" +} + +.fa-duotone.fa-temperature-arrow-up:after, +.fa-duotone.fa-temperature-up:after, +.fad.fa-temperature-arrow-up:after, +.fad.fa-temperature-up:after { + content: "\e040\e040" +} + +.fa-duotone.fa-medal:after, +.fad.fa-medal:after { + content: "\f5a2\f5a2" +} + +.fa-duotone.fa-person-fairy:after, +.fad.fa-person-fairy:after { + content: "\e608\e608" +} + +.fa-duotone.fa-bed:after, +.fad.fa-bed:after { + content: "\f236\f236" +} + +.fa-duotone.fa-book-copy:after, +.fad.fa-book-copy:after { + content: "\e0be\e0be" +} + +.fa-duotone.fa-h-square:after, +.fa-duotone.fa-square-h:after, +.fad.fa-h-square:after, +.fad.fa-square-h:after { + content: "\f0fd\f0fd" +} + +.fa-duotone.fa-square-c:after, +.fad.fa-square-c:after { + content: "\e266\e266" +} + +.fa-duotone.fa-clock-two:after, +.fad.fa-clock-two:after { + content: "\e35a\e35a" +} + +.fa-duotone.fa-square-ellipsis-vertical:after, +.fad.fa-square-ellipsis-vertical:after { + content: "\e26f\e26f" +} + +.fa-duotone.fa-calendar-users:after, +.fad.fa-calendar-users:after { + content: "\e5e2\e5e2" +} + +.fa-duotone.fa-podcast:after, +.fad.fa-podcast:after { + content: "\f2ce\f2ce" +} + +.fa-duotone.fa-bee:after, +.fad.fa-bee:after { + content: "\e0b2\e0b2" +} + +.fa-duotone.fa-temperature-4:after, +.fa-duotone.fa-temperature-full:after, +.fa-duotone.fa-thermometer-4:after, +.fa-duotone.fa-thermometer-full:after, +.fad.fa-temperature-4:after, +.fad.fa-temperature-full:after, +.fad.fa-thermometer-4:after, +.fad.fa-thermometer-full:after { + content: "\f2c7\f2c7" +} + +.fa-duotone.fa-bell:after, +.fad.fa-bell:after { + content: "\f0f3\f0f3" +} + +.fa-duotone.fa-candy-bar:after, +.fa-duotone.fa-chocolate-bar:after, +.fad.fa-candy-bar:after, +.fad.fa-chocolate-bar:after { + content: "\e3e8\e3e8" +} + +.fa-duotone.fa-xmark-large:after, +.fad.fa-xmark-large:after { + content: "\e59b\e59b" +} + +.fa-duotone.fa-pinata:after, +.fad.fa-pinata:after { + content: "\e3c3\e3c3" +} + +.fa-duotone.fa-file-ppt:after, +.fad.fa-file-ppt:after { + content: "\e64a\e64a" +} + +.fa-duotone.fa-arrows-from-line:after, +.fad.fa-arrows-from-line:after { + content: "\e0a4\e0a4" +} + +.fa-duotone.fa-superscript:after, +.fad.fa-superscript:after { + content: "\f12b\f12b" +} + +.fa-duotone.fa-bowl-spoon:after, +.fad.fa-bowl-spoon:after { + content: "\e3e0\e3e0" +} + +.fa-duotone.fa-hexagon-check:after, +.fad.fa-hexagon-check:after { + content: "\e416\e416" +} + +.fa-duotone.fa-plug-circle-xmark:after, +.fad.fa-plug-circle-xmark:after { + content: "\e560\e560" +} + +.fa-duotone.fa-star-of-life:after, +.fad.fa-star-of-life:after { + content: "\f621\f621" +} + +.fa-duotone.fa-phone-slash:after, +.fad.fa-phone-slash:after { + content: "\f3dd\f3dd" +} + +.fa-duotone.fa-traffic-light-stop:after, +.fad.fa-traffic-light-stop:after { + content: "\f63a\f63a" +} + +.fa-duotone.fa-paint-roller:after, +.fad.fa-paint-roller:after { + content: "\f5aa\f5aa" +} + +.fa-duotone.fa-accent-grave:after, +.fad.fa-accent-grave:after { + content: "\60\60" +} + +.fa-duotone.fa-hands-helping:after, +.fa-duotone.fa-handshake-angle:after, +.fad.fa-hands-helping:after, +.fad.fa-handshake-angle:after { + content: "\f4c4\f4c4" +} + +.fa-duotone.fa-circle-0:after, +.fad.fa-circle-0:after { + content: "\e0ed\e0ed" +} + +.fa-duotone.fa-dial-med-low:after, +.fad.fa-dial-med-low:after { + content: "\e160\e160" +} + +.fa-duotone.fa-location-dot:after, +.fa-duotone.fa-map-marker-alt:after, +.fad.fa-location-dot:after, +.fad.fa-map-marker-alt:after { + content: "\f3c5\f3c5" +} + +.fa-duotone.fa-crab:after, +.fad.fa-crab:after { + content: "\e3ff\e3ff" +} + +.fa-duotone.fa-box-full:after, +.fa-duotone.fa-box-open-full:after, +.fad.fa-box-full:after, +.fad.fa-box-open-full:after { + content: "\f49c\f49c" +} + +.fa-duotone.fa-file:after, +.fad.fa-file:after { + content: "\f15b\f15b" +} + +.fa-duotone.fa-greater-than:after, +.fad.fa-greater-than:after { + content: "\3e\3e" +} + +.fa-duotone.fa-quotes:after, +.fad.fa-quotes:after { + content: "\e234\e234" +} + +.fa-duotone.fa-pretzel:after, +.fad.fa-pretzel:after { + content: "\e441\e441" +} + +.fa-duotone.fa-t-rex:after, +.fad.fa-t-rex:after { + content: "\e629\e629" +} + +.fa-duotone.fa-person-swimming:after, +.fa-duotone.fa-swimmer:after, +.fad.fa-person-swimming:after, +.fad.fa-swimmer:after { + content: "\f5c4\f5c4" +} + +.fa-duotone.fa-arrow-down:after, +.fad.fa-arrow-down:after { + content: "\f063\f063" +} + +.fa-duotone.fa-user-robot-xmarks:after, +.fad.fa-user-robot-xmarks:after { + content: "\e4a7\e4a7" +} + +.fa-duotone.fa-comment-alt-quote:after, +.fa-duotone.fa-message-quote:after, +.fad.fa-comment-alt-quote:after, +.fad.fa-message-quote:after { + content: "\e1e4\e1e4" +} + +.fa-duotone.fa-candy-corn:after, +.fad.fa-candy-corn:after { + content: "\f6bd\f6bd" +} + +.fa-duotone.fa-folder-magnifying-glass:after, +.fa-duotone.fa-folder-search:after, +.fad.fa-folder-magnifying-glass:after, +.fad.fa-folder-search:after { + content: "\e18b\e18b" +} + +.fa-duotone.fa-notebook:after, +.fad.fa-notebook:after { + content: "\e201\e201" +} + +.fa-duotone.fa-droplet:after, +.fa-duotone.fa-tint:after, +.fad.fa-droplet:after, +.fad.fa-tint:after { + content: "\f043\f043" +} + +.fa-duotone.fa-bullseye-pointer:after, +.fad.fa-bullseye-pointer:after { + content: "\f649\f649" +} + +.fa-duotone.fa-eraser:after, +.fad.fa-eraser:after { + content: "\f12d\f12d" +} + +.fa-duotone.fa-hexagon-image:after, +.fad.fa-hexagon-image:after { + content: "\e504\e504" +} + +.fa-duotone.fa-earth-america:after, +.fa-duotone.fa-earth-americas:after, +.fa-duotone.fa-earth:after, +.fa-duotone.fa-globe-americas:after, +.fad.fa-earth-america:after, +.fad.fa-earth-americas:after, +.fad.fa-earth:after, +.fad.fa-globe-americas:after { + content: "\f57d\f57d" +} + +.fa-duotone.fa-file-svg:after, +.fad.fa-file-svg:after { + content: "\e64b\e64b" +} + +.fa-duotone.fa-crate-apple:after, +.fad.fa-crate-apple:after { + content: "\f6b1\f6b1" +} + +.fa-duotone.fa-apple-crate:after, +.fad.fa-apple-crate:after { + content: "\f6b1\f6b1" +} + +.fa-duotone.fa-person-burst:after, +.fad.fa-person-burst:after { + content: "\e53b\e53b" +} + +.fa-duotone.fa-game-board:after, +.fad.fa-game-board:after { + content: "\f867\f867" +} + +.fa-duotone.fa-hat-chef:after, +.fad.fa-hat-chef:after { + content: "\f86b\f86b" +} + +.fa-duotone.fa-hand-back-point-right:after, +.fad.fa-hand-back-point-right:after { + content: "\e1a1\e1a1" +} + +.fa-duotone.fa-dove:after, +.fad.fa-dove:after { + content: "\f4ba\f4ba" +} + +.fa-duotone.fa-snowflake-droplets:after, +.fad.fa-snowflake-droplets:after { + content: "\e5c1\e5c1" +} + +.fa-duotone.fa-battery-0:after, +.fa-duotone.fa-battery-empty:after, +.fad.fa-battery-0:after, +.fad.fa-battery-empty:after { + content: "\f244\f244" +} + +.fa-duotone.fa-grid-4:after, +.fad.fa-grid-4:after { + content: "\e198\e198" +} + +.fa-duotone.fa-socks:after, +.fad.fa-socks:after { + content: "\f696\f696" +} + +.fa-duotone.fa-face-sunglasses:after, +.fad.fa-face-sunglasses:after { + content: "\e398\e398" +} + +.fa-duotone.fa-inbox:after, +.fad.fa-inbox:after { + content: "\f01c\f01c" +} + +.fa-duotone.fa-square-0:after, +.fad.fa-square-0:after { + content: "\e255\e255" +} + +.fa-duotone.fa-section:after, +.fad.fa-section:after { + content: "\e447\e447" +} + +.fa-duotone.fa-box-up:after, +.fa-duotone.fa-square-this-way-up:after, +.fad.fa-box-up:after, +.fad.fa-square-this-way-up:after { + content: "\f49f\f49f" +} + +.fa-duotone.fa-gauge-high:after, +.fa-duotone.fa-tachometer-alt-fast:after, +.fa-duotone.fa-tachometer-alt:after, +.fad.fa-gauge-high:after, +.fad.fa-tachometer-alt-fast:after, +.fad.fa-tachometer-alt:after { + content: "\f625\f625" +} + +.fa-duotone.fa-square-ampersand:after, +.fad.fa-square-ampersand:after { + content: "\e260\e260" +} + +.fa-duotone.fa-envelope-open-text:after, +.fad.fa-envelope-open-text:after { + content: "\f658\f658" +} + +.fa-duotone.fa-lamp-desk:after, +.fad.fa-lamp-desk:after { + content: "\e014\e014" +} + +.fa-duotone.fa-hospital-alt:after, +.fa-duotone.fa-hospital-wide:after, +.fa-duotone.fa-hospital:after, +.fad.fa-hospital-alt:after, +.fad.fa-hospital-wide:after, +.fad.fa-hospital:after { + content: "\f0f8\f0f8" +} + +.fa-duotone.fa-poll-people:after, +.fad.fa-poll-people:after { + content: "\f759\f759" +} + +.fa-duotone.fa-glass-whiskey-rocks:after, +.fa-duotone.fa-whiskey-glass-ice:after, +.fad.fa-glass-whiskey-rocks:after, +.fad.fa-whiskey-glass-ice:after { + content: "\f7a1\f7a1" +} + +.fa-duotone.fa-wine-bottle:after, +.fad.fa-wine-bottle:after { + content: "\f72f\f72f" +} + +.fa-duotone.fa-chess-rook:after, +.fad.fa-chess-rook:after { + content: "\f447\f447" +} + +.fa-duotone.fa-user-bounty-hunter:after, +.fad.fa-user-bounty-hunter:after { + content: "\e2bf\e2bf" +} + +.fa-duotone.fa-bars-staggered:after, +.fa-duotone.fa-reorder:after, +.fa-duotone.fa-stream:after, +.fad.fa-bars-staggered:after, +.fad.fa-reorder:after, +.fad.fa-stream:after { + content: "\f550\f550" +} + +.fa-duotone.fa-diagram-sankey:after, +.fad.fa-diagram-sankey:after { + content: "\e158\e158" +} + +.fa-duotone.fa-cloud-hail-mixed:after, +.fad.fa-cloud-hail-mixed:after { + content: "\f73a\f73a" +} + +.fa-duotone.fa-circle-up-left:after, +.fad.fa-circle-up-left:after { + content: "\e128\e128" +} + +.fa-duotone.fa-dharmachakra:after, +.fad.fa-dharmachakra:after { + content: "\f655\f655" +} + +.fa-duotone.fa-objects-align-left:after, +.fad.fa-objects-align-left:after { + content: "\e3be\e3be" +} + +.fa-duotone.fa-oil-can-drip:after, +.fad.fa-oil-can-drip:after { + content: "\e205\e205" +} + +.fa-duotone.fa-face-smiling-hands:after, +.fad.fa-face-smiling-hands:after { + content: "\e396\e396" +} + +.fa-duotone.fa-broccoli:after, +.fad.fa-broccoli:after { + content: "\e3e2\e3e2" +} + +.fa-duotone.fa-route-interstate:after, +.fad.fa-route-interstate:after { + content: "\f61b\f61b" +} + +.fa-duotone.fa-ear-muffs:after, +.fad.fa-ear-muffs:after { + content: "\f795\f795" +} + +.fa-duotone.fa-hotdog:after, +.fad.fa-hotdog:after { + content: "\f80f\f80f" +} + +.fa-duotone.fa-transporter-empty:after, +.fad.fa-transporter-empty:after { + content: "\e046\e046" +} + +.fa-duotone.fa-blind:after, +.fa-duotone.fa-person-walking-with-cane:after, +.fad.fa-blind:after, +.fad.fa-person-walking-with-cane:after { + content: "\f29d\f29d" +} + +.fa-duotone.fa-angle-90:after, +.fad.fa-angle-90:after { + content: "\e08d\e08d" +} + +.fa-duotone.fa-rectangle-terminal:after, +.fad.fa-rectangle-terminal:after { + content: "\e236\e236" +} + +.fa-duotone.fa-kite:after, +.fad.fa-kite:after { + content: "\f6f4\f6f4" +} + +.fa-duotone.fa-drum:after, +.fad.fa-drum:after { + content: "\f569\f569" +} + +.fa-duotone.fa-scrubber:after, +.fad.fa-scrubber:after { + content: "\f2f8\f2f8" +} + +.fa-duotone.fa-ice-cream:after, +.fad.fa-ice-cream:after { + content: "\f810\f810" +} + +.fa-duotone.fa-heart-circle-bolt:after, +.fad.fa-heart-circle-bolt:after { + content: "\e4fc\e4fc" +} + +.fa-duotone.fa-fish-bones:after, +.fad.fa-fish-bones:after { + content: "\e304\e304" +} + +.fa-duotone.fa-deer-rudolph:after, +.fad.fa-deer-rudolph:after { + content: "\f78f\f78f" +} + +.fa-duotone.fa-fax:after, +.fad.fa-fax:after { + content: "\f1ac\f1ac" +} + +.fa-duotone.fa-paragraph:after, +.fad.fa-paragraph:after { + content: "\f1dd\f1dd" +} + +.fa-duotone.fa-head-side-heart:after, +.fad.fa-head-side-heart:after { + content: "\e1aa\e1aa" +} + +.fa-duotone.fa-square-e:after, +.fad.fa-square-e:after { + content: "\e26d\e26d" +} + +.fa-duotone.fa-meter-fire:after, +.fad.fa-meter-fire:after { + content: "\e1eb\e1eb" +} + +.fa-duotone.fa-cloud-hail:after, +.fad.fa-cloud-hail:after { + content: "\f739\f739" +} + +.fa-duotone.fa-check-to-slot:after, +.fa-duotone.fa-vote-yea:after, +.fad.fa-check-to-slot:after, +.fad.fa-vote-yea:after { + content: "\f772\f772" +} + +.fa-duotone.fa-money-from-bracket:after, +.fad.fa-money-from-bracket:after { + content: "\e312\e312" +} + +.fa-duotone.fa-star-half:after, +.fad.fa-star-half:after { + content: "\f089\f089" +} + +.fa-duotone.fa-car-bus:after, +.fad.fa-car-bus:after { + content: "\f85a\f85a" +} + +.fa-duotone.fa-speaker:after, +.fad.fa-speaker:after { + content: "\f8df\f8df" +} + +.fa-duotone.fa-timer:after, +.fad.fa-timer:after { + content: "\e29e\e29e" +} + +.fa-duotone.fa-boxes-alt:after, +.fa-duotone.fa-boxes-stacked:after, +.fa-duotone.fa-boxes:after, +.fad.fa-boxes-alt:after, +.fad.fa-boxes-stacked:after, +.fad.fa-boxes:after { + content: "\f468\f468" +} + +.fa-duotone.fa-landmark-magnifying-glass:after, +.fad.fa-landmark-magnifying-glass:after { + content: "\e622\e622" +} + +.fa-duotone.fa-grill-hot:after, +.fad.fa-grill-hot:after { + content: "\e5a5\e5a5" +} + +.fa-duotone.fa-ballot-check:after, +.fad.fa-ballot-check:after { + content: "\f733\f733" +} + +.fa-duotone.fa-chain:after, +.fa-duotone.fa-link:after, +.fad.fa-chain:after, +.fad.fa-link:after { + content: "\f0c1\f0c1" +} + +.fa-duotone.fa-assistive-listening-systems:after, +.fa-duotone.fa-ear-listen:after, +.fad.fa-assistive-listening-systems:after, +.fad.fa-ear-listen:after { + content: "\f2a2\f2a2" +} + +.fa-duotone.fa-file-minus:after, +.fad.fa-file-minus:after { + content: "\f318\f318" +} + +.fa-duotone.fa-tree-city:after, +.fad.fa-tree-city:after { + content: "\e587\e587" +} + +.fa-duotone.fa-play:after, +.fad.fa-play:after { + content: "\f04b\f04b" +} + +.fa-duotone.fa-font:after, +.fad.fa-font:after { + content: "\f031\f031" +} + +.fa-duotone.fa-coffee-togo:after, +.fa-duotone.fa-cup-togo:after, +.fad.fa-coffee-togo:after, +.fad.fa-cup-togo:after { + content: "\f6c5\f6c5" +} + +.fa-duotone.fa-square-down-left:after, +.fad.fa-square-down-left:after { + content: "\e26b\e26b" +} + +.fa-duotone.fa-burger-lettuce:after, +.fad.fa-burger-lettuce:after { + content: "\e3e3\e3e3" +} + +.fa-duotone.fa-rupiah-sign:after, +.fad.fa-rupiah-sign:after { + content: "\e23d\e23d" +} + +.fa-duotone.fa-magnifying-glass:after, +.fa-duotone.fa-search:after, +.fad.fa-magnifying-glass:after, +.fad.fa-search:after { + content: "\f002\f002" +} + +.fa-duotone.fa-ping-pong-paddle-ball:after, +.fa-duotone.fa-table-tennis-paddle-ball:after, +.fa-duotone.fa-table-tennis:after, +.fad.fa-ping-pong-paddle-ball:after, +.fad.fa-table-tennis-paddle-ball:after, +.fad.fa-table-tennis:after { + content: "\f45d\f45d" +} + +.fa-duotone.fa-diagnoses:after, +.fa-duotone.fa-person-dots-from-line:after, +.fad.fa-diagnoses:after, +.fad.fa-person-dots-from-line:after { + content: "\f470\f470" +} + +.fa-duotone.fa-chevron-double-down:after, +.fa-duotone.fa-chevrons-down:after, +.fad.fa-chevron-double-down:after, +.fad.fa-chevrons-down:after { + content: "\f322\f322" +} + +.fa-duotone.fa-trash-can-arrow-up:after, +.fa-duotone.fa-trash-restore-alt:after, +.fad.fa-trash-can-arrow-up:after, +.fad.fa-trash-restore-alt:after { + content: "\f82a\f82a" +} + +.fa-duotone.fa-signal-3:after, +.fa-duotone.fa-signal-good:after, +.fad.fa-signal-3:after, +.fad.fa-signal-good:after { + content: "\f68e\f68e" +} + +.fa-duotone.fa-location-question:after, +.fa-duotone.fa-map-marker-question:after, +.fad.fa-location-question:after, +.fad.fa-map-marker-question:after { + content: "\f60b\f60b" +} + +.fa-duotone.fa-floppy-disk-circle-xmark:after, +.fa-duotone.fa-floppy-disk-times:after, +.fa-duotone.fa-save-circle-xmark:after, +.fa-duotone.fa-save-times:after, +.fad.fa-floppy-disk-circle-xmark:after, +.fad.fa-floppy-disk-times:after, +.fad.fa-save-circle-xmark:after, +.fad.fa-save-times:after { + content: "\e181\e181" +} + +.fa-duotone.fa-naira-sign:after, +.fad.fa-naira-sign:after { + content: "\e1f6\e1f6" +} + +.fa-duotone.fa-peach:after, +.fad.fa-peach:after { + content: "\e20b\e20b" +} + +.fa-duotone.fa-taxi-bus:after, +.fad.fa-taxi-bus:after { + content: "\e298\e298" +} + +.fa-duotone.fa-bracket-curly-left:after, +.fa-duotone.fa-bracket-curly:after, +.fad.fa-bracket-curly-left:after, +.fad.fa-bracket-curly:after { + content: "\7b\7b" +} + +.fa-duotone.fa-lobster:after, +.fad.fa-lobster:after { + content: "\e421\e421" +} + +.fa-duotone.fa-cart-flatbed-empty:after, +.fa-duotone.fa-dolly-flatbed-empty:after, +.fad.fa-cart-flatbed-empty:after, +.fad.fa-dolly-flatbed-empty:after { + content: "\f476\f476" +} + +.fa-duotone.fa-colon:after, +.fad.fa-colon:after { + content: "\3a\3a" +} + +.fa-duotone.fa-cart-arrow-down:after, +.fad.fa-cart-arrow-down:after { + content: "\f218\f218" +} + +.fa-duotone.fa-wand:after, +.fad.fa-wand:after { + content: "\f72a\f72a" +} + +.fa-duotone.fa-walkie-talkie:after, +.fad.fa-walkie-talkie:after { + content: "\f8ef\f8ef" +} + +.fa-duotone.fa-file-edit:after, +.fa-duotone.fa-file-pen:after, +.fad.fa-file-edit:after, +.fad.fa-file-pen:after { + content: "\f31c\f31c" +} + +.fa-duotone.fa-receipt:after, +.fad.fa-receipt:after { + content: "\f543\f543" +} + +.fa-duotone.fa-table-picnic:after, +.fad.fa-table-picnic:after { + content: "\e32d\e32d" +} + +.fa-duotone.fa-pen-square:after, +.fa-duotone.fa-pencil-square:after, +.fa-duotone.fa-square-pen:after, +.fad.fa-pen-square:after, +.fad.fa-pencil-square:after, +.fad.fa-square-pen:after { + content: "\f14b\f14b" +} + +.fa-duotone.fa-circle-microphone-lines:after, +.fa-duotone.fa-microphone-circle-alt:after, +.fad.fa-circle-microphone-lines:after, +.fad.fa-microphone-circle-alt:after { + content: "\e117\e117" +} + +.fa-duotone.fa-desktop-slash:after, +.fa-duotone.fa-display-slash:after, +.fad.fa-desktop-slash:after, +.fad.fa-display-slash:after { + content: "\e2fa\e2fa" +} + +.fa-duotone.fa-suitcase-rolling:after, +.fad.fa-suitcase-rolling:after { + content: "\f5c1\f5c1" +} + +.fa-duotone.fa-person-circle-exclamation:after, +.fad.fa-person-circle-exclamation:after { + content: "\e53f\e53f" +} + +.fa-duotone.fa-transporter-2:after, +.fad.fa-transporter-2:after { + content: "\e044\e044" +} + +.fa-duotone.fa-hand-receiving:after, +.fa-duotone.fa-hands-holding-diamond:after, +.fad.fa-hand-receiving:after, +.fad.fa-hands-holding-diamond:after { + content: "\f47c\f47c" +} + +.fa-duotone.fa-money-bill-simple-wave:after, +.fad.fa-money-bill-simple-wave:after { + content: "\e1f2\e1f2" +} + +.fa-duotone.fa-chevron-down:after, +.fad.fa-chevron-down:after { + content: "\f078\f078" +} + +.fa-duotone.fa-battery-5:after, +.fa-duotone.fa-battery-full:after, +.fa-duotone.fa-battery:after, +.fad.fa-battery-5:after, +.fad.fa-battery-full:after, +.fad.fa-battery:after { + content: "\f240\f240" +} + +.fa-duotone.fa-bell-plus:after, +.fad.fa-bell-plus:after { + content: "\f849\f849" +} + +.fa-duotone.fa-book-arrow-right:after, +.fad.fa-book-arrow-right:after { + content: "\e0b9\e0b9" +} + +.fa-duotone.fa-hospitals:after, +.fad.fa-hospitals:after { + content: "\f80e\f80e" +} + +.fa-duotone.fa-club:after, +.fad.fa-club:after { + content: "\f327\f327" +} + +.fa-duotone.fa-skull-crossbones:after, +.fad.fa-skull-crossbones:after { + content: "\f714\f714" +} + +.fa-duotone.fa-dewpoint:after, +.fa-duotone.fa-droplet-degree:after, +.fad.fa-dewpoint:after, +.fad.fa-droplet-degree:after { + content: "\f748\f748" +} + +.fa-duotone.fa-code-compare:after, +.fad.fa-code-compare:after { + content: "\e13a\e13a" +} + +.fa-duotone.fa-list-dots:after, +.fa-duotone.fa-list-ul:after, +.fad.fa-list-dots:after, +.fad.fa-list-ul:after { + content: "\f0ca\f0ca" +} + +.fa-duotone.fa-hand-holding-magic:after, +.fad.fa-hand-holding-magic:after { + content: "\f6e5\f6e5" +} + +.fa-duotone.fa-watermelon-slice:after, +.fad.fa-watermelon-slice:after { + content: "\e337\e337" +} + +.fa-duotone.fa-circle-ellipsis:after, +.fad.fa-circle-ellipsis:after { + content: "\e10a\e10a" +} + +.fa-duotone.fa-school-lock:after, +.fad.fa-school-lock:after { + content: "\e56f\e56f" +} + +.fa-duotone.fa-tower-cell:after, +.fad.fa-tower-cell:after { + content: "\e585\e585" +} + +.fa-duotone.fa-sd-cards:after, +.fad.fa-sd-cards:after { + content: "\e240\e240" +} + +.fa-duotone.fa-jug-bottle:after, +.fad.fa-jug-bottle:after { + content: "\e5fb\e5fb" +} + +.fa-duotone.fa-down-long:after, +.fa-duotone.fa-long-arrow-alt-down:after, +.fad.fa-down-long:after, +.fad.fa-long-arrow-alt-down:after { + content: "\f309\f309" +} + +.fa-duotone.fa-envelopes:after, +.fad.fa-envelopes:after { + content: "\e170\e170" +} + +.fa-duotone.fa-phone-office:after, +.fad.fa-phone-office:after { + content: "\f67d\f67d" +} + +.fa-duotone.fa-ranking-star:after, +.fad.fa-ranking-star:after { + content: "\e561\e561" +} + +.fa-duotone.fa-chess-king:after, +.fad.fa-chess-king:after { + content: "\f43f\f43f" +} + +.fa-duotone.fa-nfc-pen:after, +.fad.fa-nfc-pen:after { + content: "\e1fa\e1fa" +} + +.fa-duotone.fa-person-harassing:after, +.fad.fa-person-harassing:after { + content: "\e549\e549" +} + +.fa-duotone.fa-magnifying-glass-play:after, +.fad.fa-magnifying-glass-play:after { + content: "\e660\e660" +} + +.fa-duotone.fa-hat-winter:after, +.fad.fa-hat-winter:after { + content: "\f7a8\f7a8" +} + +.fa-duotone.fa-brazilian-real-sign:after, +.fad.fa-brazilian-real-sign:after { + content: "\e46c\e46c" +} + +.fa-duotone.fa-landmark-alt:after, +.fa-duotone.fa-landmark-dome:after, +.fad.fa-landmark-alt:after, +.fad.fa-landmark-dome:after { + content: "\f752\f752" +} + +.fa-duotone.fa-bone-break:after, +.fad.fa-bone-break:after { + content: "\f5d8\f5d8" +} + +.fa-duotone.fa-arrow-up:after, +.fad.fa-arrow-up:after { + content: "\f062\f062" +} + +.fa-duotone.fa-down-from-dotted-line:after, +.fad.fa-down-from-dotted-line:after { + content: "\e407\e407" +} + +.fa-duotone.fa-television:after, +.fa-duotone.fa-tv-alt:after, +.fa-duotone.fa-tv:after, +.fad.fa-television:after, +.fad.fa-tv-alt:after, +.fad.fa-tv:after { + content: "\f26c\f26c" +} + +.fa-duotone.fa-border-left:after, +.fad.fa-border-left:after { + content: "\f84f\f84f" +} + +.fa-duotone.fa-circle-divide:after, +.fad.fa-circle-divide:after { + content: "\e106\e106" +} + +.fa-duotone.fa-shrimp:after, +.fad.fa-shrimp:after { + content: "\e448\e448" +} + +.fa-duotone.fa-list-check:after, +.fa-duotone.fa-tasks:after, +.fad.fa-list-check:after, +.fad.fa-tasks:after { + content: "\f0ae\f0ae" +} + +.fa-duotone.fa-diagram-subtask:after, +.fad.fa-diagram-subtask:after { + content: "\e479\e479" +} + +.fa-duotone.fa-jug-detergent:after, +.fad.fa-jug-detergent:after { + content: "\e519\e519" +} + +.fa-duotone.fa-circle-user:after, +.fa-duotone.fa-user-circle:after, +.fad.fa-circle-user:after, +.fad.fa-user-circle:after { + content: "\f2bd\f2bd" +} + +.fa-duotone.fa-square-y:after, +.fad.fa-square-y:after { + content: "\e287\e287" +} + +.fa-duotone.fa-user-doctor-hair:after, +.fad.fa-user-doctor-hair:after { + content: "\e458\e458" +} + +.fa-duotone.fa-planet-ringed:after, +.fad.fa-planet-ringed:after { + content: "\e020\e020" +} + +.fa-duotone.fa-mushroom:after, +.fad.fa-mushroom:after { + content: "\e425\e425" +} + +.fa-duotone.fa-user-shield:after, +.fad.fa-user-shield:after { + content: "\f505\f505" +} + +.fa-duotone.fa-megaphone:after, +.fad.fa-megaphone:after { + content: "\f675\f675" +} + +.fa-duotone.fa-wreath-laurel:after, +.fad.fa-wreath-laurel:after { + content: "\e5d2\e5d2" +} + +.fa-duotone.fa-circle-exclamation-check:after, +.fad.fa-circle-exclamation-check:after { + content: "\e10d\e10d" +} + +.fa-duotone.fa-wind:after, +.fad.fa-wind:after { + content: "\f72e\f72e" +} + +.fa-duotone.fa-box-dollar:after, +.fa-duotone.fa-box-usd:after, +.fad.fa-box-dollar:after, +.fad.fa-box-usd:after { + content: "\f4a0\f4a0" +} + +.fa-duotone.fa-car-burst:after, +.fa-duotone.fa-car-crash:after, +.fad.fa-car-burst:after, +.fad.fa-car-crash:after { + content: "\f5e1\f5e1" +} + +.fa-duotone.fa-y:after, +.fad.fa-y:after { + content: "\59\59" +} + +.fa-duotone.fa-user-headset:after, +.fad.fa-user-headset:after { + content: "\f82d\f82d" +} + +.fa-duotone.fa-arrows-retweet:after, +.fa-duotone.fa-retweet-alt:after, +.fad.fa-arrows-retweet:after, +.fad.fa-retweet-alt:after { + content: "\f361\f361" +} + +.fa-duotone.fa-person-snowboarding:after, +.fa-duotone.fa-snowboarding:after, +.fad.fa-person-snowboarding:after, +.fad.fa-snowboarding:after { + content: "\f7ce\f7ce" +} + +.fa-duotone.fa-chevron-square-right:after, +.fa-duotone.fa-square-chevron-right:after, +.fad.fa-chevron-square-right:after, +.fad.fa-square-chevron-right:after { + content: "\f32b\f32b" +} + +.fa-duotone.fa-lacrosse-stick-ball:after, +.fad.fa-lacrosse-stick-ball:after { + content: "\e3b6\e3b6" +} + +.fa-duotone.fa-shipping-fast:after, +.fa-duotone.fa-truck-fast:after, +.fad.fa-shipping-fast:after, +.fad.fa-truck-fast:after { + content: "\f48b\f48b" +} + +.fa-duotone.fa-user-magnifying-glass:after, +.fad.fa-user-magnifying-glass:after { + content: "\e5c5\e5c5" +} + +.fa-duotone.fa-star-sharp:after, +.fad.fa-star-sharp:after { + content: "\e28b\e28b" +} + +.fa-duotone.fa-comment-heart:after, +.fad.fa-comment-heart:after { + content: "\e5c8\e5c8" +} + +.fa-duotone.fa-circle-1:after, +.fad.fa-circle-1:after { + content: "\e0ee\e0ee" +} + +.fa-duotone.fa-circle-star:after, +.fa-duotone.fa-star-circle:after, +.fad.fa-circle-star:after, +.fad.fa-star-circle:after { + content: "\e123\e123" +} + +.fa-duotone.fa-fish:after, +.fad.fa-fish:after { + content: "\f578\f578" +} + +.fa-duotone.fa-cloud-fog:after, +.fa-duotone.fa-fog:after, +.fad.fa-cloud-fog:after, +.fad.fa-fog:after { + content: "\f74e\f74e" +} + +.fa-duotone.fa-waffle:after, +.fad.fa-waffle:after { + content: "\e466\e466" +} + +.fa-duotone.fa-music-alt:after, +.fa-duotone.fa-music-note:after, +.fad.fa-music-alt:after, +.fad.fa-music-note:after { + content: "\f8cf\f8cf" +} + +.fa-duotone.fa-hexagon-exclamation:after, +.fad.fa-hexagon-exclamation:after { + content: "\e417\e417" +} + +.fa-duotone.fa-cart-shopping-fast:after, +.fad.fa-cart-shopping-fast:after { + content: "\e0dc\e0dc" +} + +.fa-duotone.fa-object-union:after, +.fad.fa-object-union:after { + content: "\e49f\e49f" +} + +.fa-duotone.fa-user-graduate:after, +.fad.fa-user-graduate:after { + content: "\f501\f501" +} + +.fa-duotone.fa-starfighter:after, +.fad.fa-starfighter:after { + content: "\e037\e037" +} + +.fa-duotone.fa-adjust:after, +.fa-duotone.fa-circle-half-stroke:after, +.fad.fa-adjust:after, +.fad.fa-circle-half-stroke:after { + content: "\f042\f042" +} + +.fa-duotone.fa-arrow-right-long-to-line:after, +.fad.fa-arrow-right-long-to-line:after { + content: "\e3d5\e3d5" +} + +.fa-duotone.fa-arrow-square-down:after, +.fa-duotone.fa-square-arrow-down:after, +.fad.fa-arrow-square-down:after, +.fad.fa-square-arrow-down:after { + content: "\f339\f339" +} + +.fa-duotone.fa-diamond-half-stroke:after, +.fad.fa-diamond-half-stroke:after { + content: "\e5b8\e5b8" +} + +.fa-duotone.fa-clapperboard:after, +.fad.fa-clapperboard:after { + content: "\e131\e131" +} + +.fa-duotone.fa-chevron-square-left:after, +.fa-duotone.fa-square-chevron-left:after, +.fad.fa-chevron-square-left:after, +.fad.fa-square-chevron-left:after { + content: "\f32a\f32a" +} + +.fa-duotone.fa-phone-intercom:after, +.fad.fa-phone-intercom:after { + content: "\e434\e434" +} + +.fa-duotone.fa-chain-horizontal:after, +.fa-duotone.fa-link-horizontal:after, +.fad.fa-chain-horizontal:after, +.fad.fa-link-horizontal:after { + content: "\e1cb\e1cb" +} + +.fa-duotone.fa-mango:after, +.fad.fa-mango:after { + content: "\e30f\e30f" +} + +.fa-duotone.fa-music-alt-slash:after, +.fa-duotone.fa-music-note-slash:after, +.fad.fa-music-alt-slash:after, +.fad.fa-music-note-slash:after { + content: "\f8d0\f8d0" +} + +.fa-duotone.fa-circle-radiation:after, +.fa-duotone.fa-radiation-alt:after, +.fad.fa-circle-radiation:after, +.fad.fa-radiation-alt:after { + content: "\f7ba\f7ba" +} + +.fa-duotone.fa-face-tongue-sweat:after, +.fad.fa-face-tongue-sweat:after { + content: "\e39e\e39e" +} + +.fa-duotone.fa-globe-stand:after, +.fad.fa-globe-stand:after { + content: "\f5f6\f5f6" +} + +.fa-duotone.fa-baseball-ball:after, +.fa-duotone.fa-baseball:after, +.fad.fa-baseball-ball:after, +.fad.fa-baseball:after { + content: "\f433\f433" +} + +.fa-duotone.fa-circle-p:after, +.fad.fa-circle-p:after { + content: "\e11a\e11a" +} + +.fa-duotone.fa-award-simple:after, +.fad.fa-award-simple:after { + content: "\e0ab\e0ab" +} + +.fa-duotone.fa-jet-fighter-up:after, +.fad.fa-jet-fighter-up:after { + content: "\e518\e518" +} + +.fa-duotone.fa-diagram-project:after, +.fa-duotone.fa-project-diagram:after, +.fad.fa-diagram-project:after, +.fad.fa-project-diagram:after { + content: "\f542\f542" +} + +.fa-duotone.fa-pedestal:after, +.fad.fa-pedestal:after { + content: "\e20d\e20d" +} + +.fa-duotone.fa-chart-pyramid:after, +.fad.fa-chart-pyramid:after { + content: "\e0e6\e0e6" +} + +.fa-duotone.fa-sidebar:after, +.fad.fa-sidebar:after { + content: "\e24e\e24e" +} + +.fa-duotone.fa-frosty-head:after, +.fa-duotone.fa-snowman-head:after, +.fad.fa-frosty-head:after, +.fad.fa-snowman-head:after { + content: "\f79b\f79b" +} + +.fa-duotone.fa-copy:after, +.fad.fa-copy:after { + content: "\f0c5\f0c5" +} + +.fa-duotone.fa-burger-glass:after, +.fad.fa-burger-glass:after { + content: "\e0ce\e0ce" +} + +.fa-duotone.fa-volume-mute:after, +.fa-duotone.fa-volume-times:after, +.fa-duotone.fa-volume-xmark:after, +.fad.fa-volume-mute:after, +.fad.fa-volume-times:after, +.fad.fa-volume-xmark:after { + content: "\f6a9\f6a9" +} + +.fa-duotone.fa-hand-sparkles:after, +.fad.fa-hand-sparkles:after { + content: "\e05d\e05d" +} + +.fa-duotone.fa-bars-filter:after, +.fad.fa-bars-filter:after { + content: "\e0ad\e0ad" +} + +.fa-duotone.fa-paintbrush-pencil:after, +.fad.fa-paintbrush-pencil:after { + content: "\e206\e206" +} + +.fa-duotone.fa-party-bell:after, +.fad.fa-party-bell:after { + content: "\e31a\e31a" +} + +.fa-duotone.fa-user-vneck-hair:after, +.fad.fa-user-vneck-hair:after { + content: "\e462\e462" +} + +.fa-duotone.fa-jack-o-lantern:after, +.fad.fa-jack-o-lantern:after { + content: "\f30e\f30e" +} + +.fa-duotone.fa-grip-horizontal:after, +.fa-duotone.fa-grip:after, +.fad.fa-grip-horizontal:after, +.fad.fa-grip:after { + content: "\f58d\f58d" +} + +.fa-duotone.fa-share-from-square:after, +.fa-duotone.fa-share-square:after, +.fad.fa-share-from-square:after, +.fad.fa-share-square:after { + content: "\f14d\f14d" +} + +.fa-duotone.fa-keynote:after, +.fad.fa-keynote:after { + content: "\f66c\f66c" +} + +.fa-duotone.fa-child-combatant:after, +.fa-duotone.fa-child-rifle:after, +.fad.fa-child-combatant:after, +.fad.fa-child-rifle:after { + content: "\e4e0\e4e0" +} + +.fa-duotone.fa-gun:after, +.fad.fa-gun:after { + content: "\e19b\e19b" +} + +.fa-duotone.fa-phone-square:after, +.fa-duotone.fa-square-phone:after, +.fad.fa-phone-square:after, +.fad.fa-square-phone:after { + content: "\f098\f098" +} + +.fa-duotone.fa-hat-beach:after, +.fad.fa-hat-beach:after { + content: "\e606\e606" +} + +.fa-duotone.fa-add:after, +.fa-duotone.fa-plus:after, +.fad.fa-add:after, +.fad.fa-plus:after { + content: "\2b\2b" +} + +.fa-duotone.fa-expand:after, +.fad.fa-expand:after { + content: "\f065\f065" +} + +.fa-duotone.fa-computer:after, +.fad.fa-computer:after { + content: "\e4e5\e4e5" +} + +.fa-duotone.fa-fort:after, +.fad.fa-fort:after { + content: "\e486\e486" +} + +.fa-duotone.fa-cloud-check:after, +.fad.fa-cloud-check:after { + content: "\e35c\e35c" +} + +.fa-duotone.fa-close:after, +.fa-duotone.fa-multiply:after, +.fa-duotone.fa-remove:after, +.fa-duotone.fa-times:after, +.fa-duotone.fa-xmark:after, +.fad.fa-close:after, +.fad.fa-multiply:after, +.fad.fa-remove:after, +.fad.fa-times:after, +.fad.fa-xmark:after { + content: "\f00d\f00d" +} + +.fa-duotone.fa-face-smirking:after, +.fad.fa-face-smirking:after { + content: "\e397\e397" +} + +.fa-duotone.fa-arrows-up-down-left-right:after, +.fa-duotone.fa-arrows:after, +.fad.fa-arrows-up-down-left-right:after, +.fad.fa-arrows:after { + content: "\f047\f047" +} + +.fa-duotone.fa-chalkboard-teacher:after, +.fa-duotone.fa-chalkboard-user:after, +.fad.fa-chalkboard-teacher:after, +.fad.fa-chalkboard-user:after { + content: "\f51c\f51c" +} + +.fa-duotone.fa-rhombus:after, +.fad.fa-rhombus:after { + content: "\e23b\e23b" +} + +.fa-duotone.fa-claw-marks:after, +.fad.fa-claw-marks:after { + content: "\f6c2\f6c2" +} + +.fa-duotone.fa-peso-sign:after, +.fad.fa-peso-sign:after { + content: "\e222\e222" +} + +.fa-duotone.fa-face-smile-tongue:after, +.fad.fa-face-smile-tongue:after { + content: "\e394\e394" +} + +.fa-duotone.fa-cart-circle-xmark:after, +.fad.fa-cart-circle-xmark:after { + content: "\e3f4\e3f4" +} + +.fa-duotone.fa-building-shield:after, +.fad.fa-building-shield:after { + content: "\e4d8\e4d8" +} + +.fa-duotone.fa-circle-phone-flip:after, +.fa-duotone.fa-phone-circle-alt:after, +.fad.fa-circle-phone-flip:after, +.fad.fa-phone-circle-alt:after { + content: "\e11c\e11c" +} + +.fa-duotone.fa-baby:after, +.fad.fa-baby:after { + content: "\f77c\f77c" +} + +.fa-duotone.fa-users-line:after, +.fad.fa-users-line:after { + content: "\e592\e592" +} + +.fa-duotone.fa-quote-left-alt:after, +.fa-duotone.fa-quote-left:after, +.fad.fa-quote-left-alt:after, +.fad.fa-quote-left:after { + content: "\f10d\f10d" +} + +.fa-duotone.fa-tractor:after, +.fad.fa-tractor:after { + content: "\f722\f722" +} + +.fa-duotone.fa-key-skeleton:after, +.fad.fa-key-skeleton:after { + content: "\f6f3\f6f3" +} + +.fa-duotone.fa-trash-arrow-up:after, +.fa-duotone.fa-trash-restore:after, +.fad.fa-trash-arrow-up:after, +.fad.fa-trash-restore:after { + content: "\f829\f829" +} + +.fa-duotone.fa-arrow-down-up-lock:after, +.fad.fa-arrow-down-up-lock:after { + content: "\e4b0\e4b0" +} + +.fa-duotone.fa-arrow-down-to-bracket:after, +.fad.fa-arrow-down-to-bracket:after { + content: "\e094\e094" +} + +.fa-duotone.fa-lines-leaning:after, +.fad.fa-lines-leaning:after { + content: "\e51e\e51e" +} + +.fa-duotone.fa-square-q:after, +.fad.fa-square-q:after { + content: "\e27b\e27b" +} + +.fa-duotone.fa-ruler-combined:after, +.fad.fa-ruler-combined:after { + content: "\f546\f546" +} + +.fa-duotone.fa-icons-alt:after, +.fa-duotone.fa-symbols:after, +.fad.fa-icons-alt:after, +.fad.fa-symbols:after { + content: "\f86e\f86e" +} + +.fa-duotone.fa-copyright:after, +.fad.fa-copyright:after { + content: "\f1f9\f1f9" +} + +.fa-duotone.fa-flask-gear:after, +.fad.fa-flask-gear:after { + content: "\e5f1\e5f1" +} + +.fa-duotone.fa-highlighter-line:after, +.fad.fa-highlighter-line:after { + content: "\e1af\e1af" +} + +.fa-duotone.fa-bracket-left:after, +.fa-duotone.fa-bracket-square:after, +.fa-duotone.fa-bracket:after, +.fad.fa-bracket-left:after, +.fad.fa-bracket-square:after, +.fad.fa-bracket:after { + content: "\5b\5b" +} + +.fa-duotone.fa-island-tree-palm:after, +.fa-duotone.fa-island-tropical:after, +.fad.fa-island-tree-palm:after, +.fad.fa-island-tropical:after { + content: "\f811\f811" +} + +.fa-duotone.fa-arrow-from-left:after, +.fa-duotone.fa-arrow-right-from-line:after, +.fad.fa-arrow-from-left:after, +.fad.fa-arrow-right-from-line:after { + content: "\f343\f343" +} + +.fa-duotone.fa-h2:after, +.fad.fa-h2:after { + content: "\f314\f314" +} + +.fa-duotone.fa-equals:after, +.fad.fa-equals:after { + content: "\3d\3d" +} + +.fa-duotone.fa-cake-slice:after, +.fa-duotone.fa-shortcake:after, +.fad.fa-cake-slice:after, +.fad.fa-shortcake:after { + content: "\e3e5\e3e5" +} + +.fa-duotone.fa-building-magnifying-glass:after, +.fad.fa-building-magnifying-glass:after { + content: "\e61c\e61c" +} + +.fa-duotone.fa-peanut:after, +.fad.fa-peanut:after { + content: "\e430\e430" +} + +.fa-duotone.fa-wrench-simple:after, +.fad.fa-wrench-simple:after { + content: "\e2d1\e2d1" +} + +.fa-duotone.fa-blender:after, +.fad.fa-blender:after { + content: "\f517\f517" +} + +.fa-duotone.fa-teeth:after, +.fad.fa-teeth:after { + content: "\f62e\f62e" +} + +.fa-duotone.fa-tally-2:after, +.fad.fa-tally-2:after { + content: "\e295\e295" +} + +.fa-duotone.fa-ils:after, +.fa-duotone.fa-shekel-sign:after, +.fa-duotone.fa-shekel:after, +.fa-duotone.fa-sheqel-sign:after, +.fa-duotone.fa-sheqel:after, +.fad.fa-ils:after, +.fad.fa-shekel-sign:after, +.fad.fa-shekel:after, +.fad.fa-sheqel-sign:after, +.fad.fa-sheqel:after { + content: "\f20b\f20b" +} + +.fa-duotone.fa-cars:after, +.fad.fa-cars:after { + content: "\f85b\f85b" +} + +.fa-duotone.fa-axe-battle:after, +.fad.fa-axe-battle:after { + content: "\f6b3\f6b3" +} + +.fa-duotone.fa-user-hair-long:after, +.fad.fa-user-hair-long:after { + content: "\e45b\e45b" +} + +.fa-duotone.fa-map:after, +.fad.fa-map:after { + content: "\f279\f279" +} + +.fa-duotone.fa-arrow-left-from-arc:after, +.fad.fa-arrow-left-from-arc:after { + content: "\e615\e615" +} + +.fa-duotone.fa-file-circle-info:after, +.fad.fa-file-circle-info:after { + content: "\e493\e493" +} + +.fa-duotone.fa-face-disappointed:after, +.fad.fa-face-disappointed:after { + content: "\e36f\e36f" +} + +.fa-duotone.fa-lasso-sparkles:after, +.fad.fa-lasso-sparkles:after { + content: "\e1c9\e1c9" +} + +.fa-duotone.fa-clock-eleven:after, +.fad.fa-clock-eleven:after { + content: "\e347\e347" +} + +.fa-duotone.fa-rocket:after, +.fad.fa-rocket:after { + content: "\f135\f135" +} + +.fa-duotone.fa-siren-on:after, +.fad.fa-siren-on:after { + content: "\e02e\e02e" +} + +.fa-duotone.fa-clock-ten:after, +.fad.fa-clock-ten:after { + content: "\e354\e354" +} + +.fa-duotone.fa-candle-holder:after, +.fad.fa-candle-holder:after { + content: "\f6bc\f6bc" +} + +.fa-duotone.fa-video-arrow-down-left:after, +.fad.fa-video-arrow-down-left:after { + content: "\e2c8\e2c8" +} + +.fa-duotone.fa-photo-film:after, +.fa-duotone.fa-photo-video:after, +.fad.fa-photo-film:after, +.fad.fa-photo-video:after { + content: "\f87c\f87c" +} + +.fa-duotone.fa-floppy-disk-circle-arrow-right:after, +.fa-duotone.fa-save-circle-arrow-right:after, +.fad.fa-floppy-disk-circle-arrow-right:after, +.fad.fa-save-circle-arrow-right:after { + content: "\e180\e180" +} + +.fa-duotone.fa-folder-minus:after, +.fad.fa-folder-minus:after { + content: "\f65d\f65d" +} + +.fa-duotone.fa-planet-moon:after, +.fad.fa-planet-moon:after { + content: "\e01f\e01f" +} + +.fa-duotone.fa-face-eyes-xmarks:after, +.fad.fa-face-eyes-xmarks:after { + content: "\e374\e374" +} + +.fa-duotone.fa-chart-scatter:after, +.fad.fa-chart-scatter:after { + content: "\f7ee\f7ee" +} + +.fa-duotone.fa-display-arrow-down:after, +.fad.fa-display-arrow-down:after { + content: "\e164\e164" +} + +.fa-duotone.fa-store:after, +.fad.fa-store:after { + content: "\f54e\f54e" +} + +.fa-duotone.fa-arrow-trend-up:after, +.fad.fa-arrow-trend-up:after { + content: "\e098\e098" +} + +.fa-duotone.fa-plug-circle-minus:after, +.fad.fa-plug-circle-minus:after { + content: "\e55e\e55e" +} + +.fa-duotone.fa-olive-branch:after, +.fad.fa-olive-branch:after { + content: "\e317\e317" +} + +.fa-duotone.fa-angle:after, +.fad.fa-angle:after { + content: "\e08c\e08c" +} + +.fa-duotone.fa-vacuum-robot:after, +.fad.fa-vacuum-robot:after { + content: "\e04e\e04e" +} + +.fa-duotone.fa-sign-hanging:after, +.fa-duotone.fa-sign:after, +.fad.fa-sign-hanging:after, +.fad.fa-sign:after { + content: "\f4d9\f4d9" +} + +.fa-duotone.fa-square-divide:after, +.fad.fa-square-divide:after { + content: "\e26a\e26a" +} + +.fa-duotone.fa-folder-check:after, +.fad.fa-folder-check:after { + content: "\e64e\e64e" +} + +.fa-duotone.fa-signal-stream-slash:after, +.fad.fa-signal-stream-slash:after { + content: "\e250\e250" +} + +.fa-duotone.fa-bezier-curve:after, +.fad.fa-bezier-curve:after { + content: "\f55b\f55b" +} + +.fa-duotone.fa-eye-dropper-half:after, +.fad.fa-eye-dropper-half:after { + content: "\e173\e173" +} + +.fa-duotone.fa-store-lock:after, +.fad.fa-store-lock:after { + content: "\e4a6\e4a6" +} + +.fa-duotone.fa-bell-slash:after, +.fad.fa-bell-slash:after { + content: "\f1f6\f1f6" +} + +.fa-duotone.fa-cloud-bolt-sun:after, +.fa-duotone.fa-thunderstorm-sun:after, +.fad.fa-cloud-bolt-sun:after, +.fad.fa-thunderstorm-sun:after { + content: "\f76e\f76e" +} + +.fa-duotone.fa-camera-slash:after, +.fad.fa-camera-slash:after { + content: "\e0d9\e0d9" +} + +.fa-duotone.fa-comment-quote:after, +.fad.fa-comment-quote:after { + content: "\e14c\e14c" +} + +.fa-duotone.fa-tablet-android:after, +.fa-duotone.fa-tablet:after, +.fad.fa-tablet-android:after, +.fad.fa-tablet:after { + content: "\f3fb\f3fb" +} + +.fa-duotone.fa-school-flag:after, +.fad.fa-school-flag:after { + content: "\e56e\e56e" +} + +.fa-duotone.fa-message-code:after, +.fad.fa-message-code:after { + content: "\e1df\e1df" +} + +.fa-duotone.fa-glass-half-empty:after, +.fa-duotone.fa-glass-half-full:after, +.fa-duotone.fa-glass-half:after, +.fad.fa-glass-half-empty:after, +.fad.fa-glass-half-full:after, +.fad.fa-glass-half:after { + content: "\e192\e192" +} + +.fa-duotone.fa-fill:after, +.fad.fa-fill:after { + content: "\f575\f575" +} + +.fa-duotone.fa-comment-alt-minus:after, +.fa-duotone.fa-message-minus:after, +.fad.fa-comment-alt-minus:after, +.fad.fa-message-minus:after { + content: "\f4a7\f4a7" +} + +.fa-duotone.fa-angle-up:after, +.fad.fa-angle-up:after { + content: "\f106\f106" +} + +.fa-duotone.fa-dinosaur:after, +.fad.fa-dinosaur:after { + content: "\e5fe\e5fe" +} + +.fa-duotone.fa-drumstick-bite:after, +.fad.fa-drumstick-bite:after { + content: "\f6d7\f6d7" +} + +.fa-duotone.fa-chain-horizontal-slash:after, +.fa-duotone.fa-link-horizontal-slash:after, +.fad.fa-chain-horizontal-slash:after, +.fad.fa-link-horizontal-slash:after { + content: "\e1cc\e1cc" +} + +.fa-duotone.fa-holly-berry:after, +.fad.fa-holly-berry:after { + content: "\f7aa\f7aa" +} + +.fa-duotone.fa-nose:after, +.fad.fa-nose:after { + content: "\e5bd\e5bd" +} + +.fa-duotone.fa-arrow-left-to-arc:after, +.fad.fa-arrow-left-to-arc:after { + content: "\e616\e616" +} + +.fa-duotone.fa-chevron-left:after, +.fad.fa-chevron-left:after { + content: "\f053\f053" +} + +.fa-duotone.fa-bacteria:after, +.fad.fa-bacteria:after { + content: "\e059\e059" +} + +.fa-duotone.fa-clouds:after, +.fad.fa-clouds:after { + content: "\f744\f744" +} + +.fa-duotone.fa-money-bill-simple:after, +.fad.fa-money-bill-simple:after { + content: "\e1f1\e1f1" +} + +.fa-duotone.fa-hand-lizard:after, +.fad.fa-hand-lizard:after { + content: "\f258\f258" +} + +.fa-duotone.fa-table-pivot:after, +.fad.fa-table-pivot:after { + content: "\e291\e291" +} + +.fa-duotone.fa-filter-slash:after, +.fad.fa-filter-slash:after { + content: "\e17d\e17d" +} + +.fa-duotone.fa-trash-can-arrow-turn-left:after, +.fa-duotone.fa-trash-can-undo:after, +.fa-duotone.fa-trash-undo-alt:after, +.fad.fa-trash-can-arrow-turn-left:after, +.fad.fa-trash-can-undo:after, +.fad.fa-trash-undo-alt:after { + content: "\f896\f896" +} + +.fa-duotone.fa-notdef:after, +.fad.fa-notdef:after { + content: "\e1fe\e1fe" +} + +.fa-duotone.fa-disease:after, +.fad.fa-disease:after { + content: "\f7fa\f7fa" +} + +.fa-duotone.fa-person-to-door:after, +.fad.fa-person-to-door:after { + content: "\e433\e433" +} + +.fa-duotone.fa-turntable:after, +.fad.fa-turntable:after { + content: "\f8e4\f8e4" +} + +.fa-duotone.fa-briefcase-medical:after, +.fad.fa-briefcase-medical:after { + content: "\f469\f469" +} + +.fa-duotone.fa-genderless:after, +.fad.fa-genderless:after { + content: "\f22d\f22d" +} + +.fa-duotone.fa-chevron-right:after, +.fad.fa-chevron-right:after { + content: "\f054\f054" +} + +.fa-duotone.fa-signal-1:after, +.fa-duotone.fa-signal-weak:after, +.fad.fa-signal-1:after, +.fad.fa-signal-weak:after { + content: "\f68c\f68c" +} + +.fa-duotone.fa-clock-five:after, +.fad.fa-clock-five:after { + content: "\e349\e349" +} + +.fa-duotone.fa-retweet:after, +.fad.fa-retweet:after { + content: "\f079\f079" +} + +.fa-duotone.fa-car-alt:after, +.fa-duotone.fa-car-rear:after, +.fad.fa-car-alt:after, +.fad.fa-car-rear:after { + content: "\f5de\f5de" +} + +.fa-duotone.fa-pump-soap:after, +.fad.fa-pump-soap:after { + content: "\e06b\e06b" +} + +.fa-duotone.fa-computer-classic:after, +.fad.fa-computer-classic:after { + content: "\f8b1\f8b1" +} + +.fa-duotone.fa-frame:after, +.fad.fa-frame:after { + content: "\e495\e495" +} + +.fa-duotone.fa-video-slash:after, +.fad.fa-video-slash:after { + content: "\f4e2\f4e2" +} + +.fa-duotone.fa-battery-2:after, +.fa-duotone.fa-battery-quarter:after, +.fad.fa-battery-2:after, +.fad.fa-battery-quarter:after { + content: "\f243\f243" +} + +.fa-duotone.fa-ellipsis-h-alt:after, +.fa-duotone.fa-ellipsis-stroke:after, +.fad.fa-ellipsis-h-alt:after, +.fad.fa-ellipsis-stroke:after { + content: "\f39b\f39b" +} + +.fa-duotone.fa-radio:after, +.fad.fa-radio:after { + content: "\f8d7\f8d7" +} + +.fa-duotone.fa-baby-carriage:after, +.fa-duotone.fa-carriage-baby:after, +.fad.fa-baby-carriage:after, +.fad.fa-carriage-baby:after { + content: "\f77d\f77d" +} + +.fa-duotone.fa-face-expressionless:after, +.fad.fa-face-expressionless:after { + content: "\e373\e373" +} + +.fa-duotone.fa-down-to-dotted-line:after, +.fad.fa-down-to-dotted-line:after { + content: "\e408\e408" +} + +.fa-duotone.fa-cloud-music:after, +.fad.fa-cloud-music:after { + content: "\f8ae\f8ae" +} + +.fa-duotone.fa-traffic-light:after, +.fad.fa-traffic-light:after { + content: "\f637\f637" +} + +.fa-duotone.fa-cloud-minus:after, +.fad.fa-cloud-minus:after { + content: "\e35d\e35d" +} + +.fa-duotone.fa-thermometer:after, +.fad.fa-thermometer:after { + content: "\f491\f491" +} + +.fa-duotone.fa-shield-minus:after, +.fad.fa-shield-minus:after { + content: "\e249\e249" +} + +.fa-duotone.fa-vr-cardboard:after, +.fad.fa-vr-cardboard:after { + content: "\f729\f729" +} + +.fa-duotone.fa-car-tilt:after, +.fad.fa-car-tilt:after { + content: "\f5e5\f5e5" +} + +.fa-duotone.fa-gauge-circle-minus:after, +.fad.fa-gauge-circle-minus:after { + content: "\e497\e497" +} + +.fa-duotone.fa-brightness-low:after, +.fad.fa-brightness-low:after { + content: "\e0ca\e0ca" +} + +.fa-duotone.fa-hand-middle-finger:after, +.fad.fa-hand-middle-finger:after { + content: "\f806\f806" +} + +.fa-duotone.fa-percent:after, +.fa-duotone.fa-percentage:after, +.fad.fa-percent:after, +.fad.fa-percentage:after { + content: "\25\25" +} + +.fa-duotone.fa-truck-moving:after, +.fad.fa-truck-moving:after { + content: "\f4df\f4df" +} + +.fa-duotone.fa-glass-water-droplet:after, +.fad.fa-glass-water-droplet:after { + content: "\e4f5\e4f5" +} + +.fa-duotone.fa-conveyor-belt:after, +.fad.fa-conveyor-belt:after { + content: "\f46e\f46e" +} + +.fa-duotone.fa-location-check:after, +.fa-duotone.fa-map-marker-check:after, +.fad.fa-location-check:after, +.fad.fa-map-marker-check:after { + content: "\f606\f606" +} + +.fa-duotone.fa-coin-vertical:after, +.fad.fa-coin-vertical:after { + content: "\e3fd\e3fd" +} + +.fa-duotone.fa-display:after, +.fad.fa-display:after { + content: "\e163\e163" +} + +.fa-duotone.fa-person-sign:after, +.fad.fa-person-sign:after { + content: "\f757\f757" +} + +.fa-duotone.fa-face-smile:after, +.fa-duotone.fa-smile:after, +.fad.fa-face-smile:after, +.fad.fa-smile:after { + content: "\f118\f118" +} + +.fa-duotone.fa-phone-hangup:after, +.fad.fa-phone-hangup:after { + content: "\e225\e225" +} + +.fa-duotone.fa-signature-slash:after, +.fad.fa-signature-slash:after { + content: "\e3cb\e3cb" +} + +.fa-duotone.fa-thumb-tack:after, +.fa-duotone.fa-thumbtack:after, +.fad.fa-thumb-tack:after, +.fad.fa-thumbtack:after { + content: "\f08d\f08d" +} + +.fa-duotone.fa-wheat-slash:after, +.fad.fa-wheat-slash:after { + content: "\e339\e339" +} + +.fa-duotone.fa-trophy:after, +.fad.fa-trophy:after { + content: "\f091\f091" +} + +.fa-duotone.fa-clouds-sun:after, +.fad.fa-clouds-sun:after { + content: "\f746\f746" +} + +.fa-duotone.fa-person-praying:after, +.fa-duotone.fa-pray:after, +.fad.fa-person-praying:after, +.fad.fa-pray:after { + content: "\f683\f683" +} + +.fa-duotone.fa-hammer:after, +.fad.fa-hammer:after { + content: "\f6e3\f6e3" +} + +.fa-duotone.fa-face-vomit:after, +.fad.fa-face-vomit:after { + content: "\e3a0\e3a0" +} + +.fa-duotone.fa-speakers:after, +.fad.fa-speakers:after { + content: "\f8e0\f8e0" +} + +.fa-duotone.fa-teletype-answer:after, +.fa-duotone.fa-tty-answer:after, +.fad.fa-teletype-answer:after, +.fad.fa-tty-answer:after { + content: "\e2b9\e2b9" +} + +.fa-duotone.fa-mug-tea-saucer:after, +.fad.fa-mug-tea-saucer:after { + content: "\e1f5\e1f5" +} + +.fa-duotone.fa-diagram-lean-canvas:after, +.fad.fa-diagram-lean-canvas:after { + content: "\e156\e156" +} + +.fa-duotone.fa-alt:after, +.fad.fa-alt:after { + content: "\e08a\e08a" +} + +.fa-duotone.fa-dial-med-high:after, +.fa-duotone.fa-dial:after, +.fad.fa-dial-med-high:after, +.fad.fa-dial:after { + content: "\e15b\e15b" +} + +.fa-duotone.fa-hand-peace:after, +.fad.fa-hand-peace:after { + content: "\f25b\f25b" +} + +.fa-duotone.fa-circle-trash:after, +.fa-duotone.fa-trash-circle:after, +.fad.fa-circle-trash:after, +.fad.fa-trash-circle:after { + content: "\e126\e126" +} + +.fa-duotone.fa-rotate:after, +.fa-duotone.fa-sync-alt:after, +.fad.fa-rotate:after, +.fad.fa-sync-alt:after { + content: "\f2f1\f2f1" +} + +.fa-duotone.fa-circle-quarters:after, +.fad.fa-circle-quarters:after { + content: "\e3f8\e3f8" +} + +.fa-duotone.fa-spinner:after, +.fad.fa-spinner:after { + content: "\f110\f110" +} + +.fa-duotone.fa-tower-control:after, +.fad.fa-tower-control:after { + content: "\e2a2\e2a2" +} + +.fa-duotone.fa-arrow-up-triangle-square:after, +.fa-duotone.fa-sort-shapes-up:after, +.fad.fa-arrow-up-triangle-square:after, +.fad.fa-sort-shapes-up:after { + content: "\f88a\f88a" +} + +.fa-duotone.fa-whale:after, +.fad.fa-whale:after { + content: "\f72c\f72c" +} + +.fa-duotone.fa-robot:after, +.fad.fa-robot:after { + content: "\f544\f544" +} + +.fa-duotone.fa-peace:after, +.fad.fa-peace:after { + content: "\f67c\f67c" +} + +.fa-duotone.fa-party-horn:after, +.fad.fa-party-horn:after { + content: "\e31b\e31b" +} + +.fa-duotone.fa-cogs:after, +.fa-duotone.fa-gears:after, +.fad.fa-cogs:after, +.fad.fa-gears:after { + content: "\f085\f085" +} + +.fa-duotone.fa-sun-alt:after, +.fa-duotone.fa-sun-bright:after, +.fad.fa-sun-alt:after, +.fad.fa-sun-bright:after { + content: "\e28f\e28f" +} + +.fa-duotone.fa-warehouse:after, +.fad.fa-warehouse:after { + content: "\f494\f494" +} + +.fa-duotone.fa-conveyor-belt-arm:after, +.fad.fa-conveyor-belt-arm:after { + content: "\e5f8\e5f8" +} + +.fa-duotone.fa-lock-keyhole-open:after, +.fa-duotone.fa-lock-open-alt:after, +.fad.fa-lock-keyhole-open:after, +.fad.fa-lock-open-alt:after { + content: "\f3c2\f3c2" +} + +.fa-duotone.fa-box-fragile:after, +.fa-duotone.fa-square-fragile:after, +.fa-duotone.fa-square-wine-glass-crack:after, +.fad.fa-box-fragile:after, +.fad.fa-square-fragile:after, +.fad.fa-square-wine-glass-crack:after { + content: "\f49b\f49b" +} + +.fa-duotone.fa-arrow-up-right-dots:after, +.fad.fa-arrow-up-right-dots:after { + content: "\e4b7\e4b7" +} + +.fa-duotone.fa-square-n:after, +.fad.fa-square-n:after { + content: "\e277\e277" +} + +.fa-duotone.fa-splotch:after, +.fad.fa-splotch:after { + content: "\f5bc\f5bc" +} + +.fa-duotone.fa-face-grin-hearts:after, +.fa-duotone.fa-grin-hearts:after, +.fad.fa-face-grin-hearts:after, +.fad.fa-grin-hearts:after { + content: "\f584\f584" +} + +.fa-duotone.fa-meter:after, +.fad.fa-meter:after { + content: "\e1e8\e1e8" +} + +.fa-duotone.fa-mandolin:after, +.fad.fa-mandolin:after { + content: "\f6f9\f6f9" +} + +.fa-duotone.fa-dice-four:after, +.fad.fa-dice-four:after { + content: "\f524\f524" +} + +.fa-duotone.fa-sim-card:after, +.fad.fa-sim-card:after { + content: "\f7c4\f7c4" +} + +.fa-duotone.fa-transgender-alt:after, +.fa-duotone.fa-transgender:after, +.fad.fa-transgender-alt:after, +.fad.fa-transgender:after { + content: "\f225\f225" +} + +.fa-duotone.fa-mercury:after, +.fad.fa-mercury:after { + content: "\f223\f223" +} + +.fa-duotone.fa-up-from-bracket:after, +.fad.fa-up-from-bracket:after { + content: "\e590\e590" +} + +.fa-duotone.fa-knife-kitchen:after, +.fad.fa-knife-kitchen:after { + content: "\f6f5\f6f5" +} + +.fa-duotone.fa-border-right:after, +.fad.fa-border-right:after { + content: "\f852\f852" +} + +.fa-duotone.fa-arrow-turn-down:after, +.fa-duotone.fa-level-down:after, +.fad.fa-arrow-turn-down:after, +.fad.fa-level-down:after { + content: "\f149\f149" +} + +.fa-duotone.fa-spade:after, +.fad.fa-spade:after { + content: "\f2f4\f2f4" +} + +.fa-duotone.fa-card-spade:after, +.fad.fa-card-spade:after { + content: "\e3ec\e3ec" +} + +.fa-duotone.fa-line-columns:after, +.fad.fa-line-columns:after { + content: "\f870\f870" +} + +.fa-duotone.fa-arrow-right-to-line:after, +.fa-duotone.fa-arrow-to-right:after, +.fad.fa-arrow-right-to-line:after, +.fad.fa-arrow-to-right:after { + content: "\f340\f340" +} + +.fa-duotone.fa-person-falling-burst:after, +.fad.fa-person-falling-burst:after { + content: "\e547\e547" +} + +.fa-duotone.fa-flag-pennant:after, +.fa-duotone.fa-pennant:after, +.fad.fa-flag-pennant:after, +.fad.fa-pennant:after { + content: "\f456\f456" +} + +.fa-duotone.fa-conveyor-belt-empty:after, +.fad.fa-conveyor-belt-empty:after { + content: "\e150\e150" +} + +.fa-duotone.fa-user-group-simple:after, +.fad.fa-user-group-simple:after { + content: "\e603\e603" +} + +.fa-duotone.fa-award:after, +.fad.fa-award:after { + content: "\f559\f559" +} + +.fa-duotone.fa-ticket-alt:after, +.fa-duotone.fa-ticket-simple:after, +.fad.fa-ticket-alt:after, +.fad.fa-ticket-simple:after { + content: "\f3ff\f3ff" +} + +.fa-duotone.fa-building:after, +.fad.fa-building:after { + content: "\f1ad\f1ad" +} + +.fa-duotone.fa-angle-double-left:after, +.fa-duotone.fa-angles-left:after, +.fad.fa-angle-double-left:after, +.fad.fa-angles-left:after { + content: "\f100\f100" +} + +.fa-duotone.fa-camcorder:after, +.fa-duotone.fa-video-handheld:after, +.fad.fa-camcorder:after, +.fad.fa-video-handheld:after { + content: "\f8a8\f8a8" +} + +.fa-duotone.fa-pancakes:after, +.fad.fa-pancakes:after { + content: "\e42d\e42d" +} + +.fa-duotone.fa-album-circle-user:after, +.fad.fa-album-circle-user:after { + content: "\e48d\e48d" +} + +.fa-duotone.fa-subtitles-slash:after, +.fad.fa-subtitles-slash:after { + content: "\e610\e610" +} + +.fa-duotone.fa-qrcode:after, +.fad.fa-qrcode:after { + content: "\f029\f029" +} + +.fa-duotone.fa-dice-d10:after, +.fad.fa-dice-d10:after { + content: "\f6cd\f6cd" +} + +.fa-duotone.fa-fireplace:after, +.fad.fa-fireplace:after { + content: "\f79a\f79a" +} + +.fa-duotone.fa-browser:after, +.fad.fa-browser:after { + content: "\f37e\f37e" +} + +.fa-duotone.fa-pen-paintbrush:after, +.fa-duotone.fa-pencil-paintbrush:after, +.fad.fa-pen-paintbrush:after, +.fad.fa-pencil-paintbrush:after { + content: "\f618\f618" +} + +.fa-duotone.fa-fish-cooked:after, +.fad.fa-fish-cooked:after { + content: "\f7fe\f7fe" +} + +.fa-duotone.fa-chair-office:after, +.fad.fa-chair-office:after { + content: "\f6c1\f6c1" +} + +.fa-duotone.fa-magnifying-glass-music:after, +.fad.fa-magnifying-glass-music:after { + content: "\e65f\e65f" +} + +.fa-duotone.fa-nesting-dolls:after, +.fad.fa-nesting-dolls:after { + content: "\e3ba\e3ba" +} + +.fa-duotone.fa-clock-rotate-left:after, +.fa-duotone.fa-history:after, +.fad.fa-clock-rotate-left:after, +.fad.fa-history:after { + content: "\f1da\f1da" +} + +.fa-duotone.fa-trumpet:after, +.fad.fa-trumpet:after { + content: "\f8e3\f8e3" +} + +.fa-duotone.fa-face-grin-beam-sweat:after, +.fa-duotone.fa-grin-beam-sweat:after, +.fad.fa-face-grin-beam-sweat:after, +.fad.fa-grin-beam-sweat:after { + content: "\f583\f583" +} + +.fa-duotone.fa-fire-smoke:after, +.fad.fa-fire-smoke:after { + content: "\f74b\f74b" +} + +.fa-duotone.fa-phone-missed:after, +.fad.fa-phone-missed:after { + content: "\e226\e226" +} + +.fa-duotone.fa-arrow-right-from-file:after, +.fa-duotone.fa-file-export:after, +.fad.fa-arrow-right-from-file:after, +.fad.fa-file-export:after { + content: "\f56e\f56e" +} + +.fa-duotone.fa-shield-blank:after, +.fa-duotone.fa-shield:after, +.fad.fa-shield-blank:after, +.fad.fa-shield:after { + content: "\f132\f132" +} + +.fa-duotone.fa-arrow-up-short-wide:after, +.fa-duotone.fa-sort-amount-up-alt:after, +.fad.fa-arrow-up-short-wide:after, +.fad.fa-sort-amount-up-alt:after { + content: "\f885\f885" +} + +.fa-duotone.fa-arrows-repeat-1:after, +.fa-duotone.fa-repeat-1-alt:after, +.fad.fa-arrows-repeat-1:after, +.fad.fa-repeat-1-alt:after { + content: "\f366\f366" +} + +.fa-duotone.fa-gun-slash:after, +.fad.fa-gun-slash:after { + content: "\e19c\e19c" +} + +.fa-duotone.fa-avocado:after, +.fad.fa-avocado:after { + content: "\e0aa\e0aa" +} + +.fa-duotone.fa-binary:after, +.fad.fa-binary:after { + content: "\e33b\e33b" +} + +.fa-duotone.fa-glasses-alt:after, +.fa-duotone.fa-glasses-round:after, +.fad.fa-glasses-alt:after, +.fad.fa-glasses-round:after { + content: "\f5f5\f5f5" +} + +.fa-duotone.fa-phone-plus:after, +.fad.fa-phone-plus:after { + content: "\f4d2\f4d2" +} + +.fa-duotone.fa-ditto:after, +.fad.fa-ditto:after { + content: "\22\22" +} + +.fa-duotone.fa-person-seat:after, +.fad.fa-person-seat:after { + content: "\e21e\e21e" +} + +.fa-duotone.fa-house-medical:after, +.fad.fa-house-medical:after { + content: "\e3b2\e3b2" +} + +.fa-duotone.fa-golf-ball-tee:after, +.fa-duotone.fa-golf-ball:after, +.fad.fa-golf-ball-tee:after, +.fad.fa-golf-ball:after { + content: "\f450\f450" +} + +.fa-duotone.fa-chevron-circle-left:after, +.fa-duotone.fa-circle-chevron-left:after, +.fad.fa-chevron-circle-left:after, +.fad.fa-circle-chevron-left:after { + content: "\f137\f137" +} + +.fa-duotone.fa-house-chimney-window:after, +.fad.fa-house-chimney-window:after { + content: "\e00d\e00d" +} + +.fa-duotone.fa-scythe:after, +.fad.fa-scythe:after { + content: "\f710\f710" +} + +.fa-duotone.fa-pen-nib:after, +.fad.fa-pen-nib:after { + content: "\f5ad\f5ad" +} + +.fa-duotone.fa-ban-parking:after, +.fa-duotone.fa-parking-circle-slash:after, +.fad.fa-ban-parking:after, +.fad.fa-parking-circle-slash:after { + content: "\f616\f616" +} + +.fa-duotone.fa-tent-arrow-turn-left:after, +.fad.fa-tent-arrow-turn-left:after { + content: "\e580\e580" +} + +.fa-duotone.fa-face-diagonal-mouth:after, +.fad.fa-face-diagonal-mouth:after { + content: "\e47e\e47e" +} + +.fa-duotone.fa-diagram-cells:after, +.fad.fa-diagram-cells:after { + content: "\e475\e475" +} + +.fa-duotone.fa-cricket-bat-ball:after, +.fa-duotone.fa-cricket:after, +.fad.fa-cricket-bat-ball:after, +.fad.fa-cricket:after { + content: "\f449\f449" +} + +.fa-duotone.fa-tents:after, +.fad.fa-tents:after { + content: "\e582\e582" +} + +.fa-duotone.fa-magic:after, +.fa-duotone.fa-wand-magic:after, +.fad.fa-magic:after, +.fad.fa-wand-magic:after { + content: "\f0d0\f0d0" +} + +.fa-duotone.fa-dog:after, +.fad.fa-dog:after { + content: "\f6d3\f6d3" +} + +.fa-duotone.fa-pen-line:after, +.fad.fa-pen-line:after { + content: "\e212\e212" +} + +.fa-duotone.fa-atom-alt:after, +.fa-duotone.fa-atom-simple:after, +.fad.fa-atom-alt:after, +.fad.fa-atom-simple:after { + content: "\f5d3\f5d3" +} + +.fa-duotone.fa-ampersand:after, +.fad.fa-ampersand:after { + content: "\26\26" +} + +.fa-duotone.fa-carrot:after, +.fad.fa-carrot:after { + content: "\f787\f787" +} + +.fa-duotone.fa-arrow-from-bottom:after, +.fa-duotone.fa-arrow-up-from-line:after, +.fad.fa-arrow-from-bottom:after, +.fad.fa-arrow-up-from-line:after { + content: "\f342\f342" +} + +.fa-duotone.fa-moon:after, +.fad.fa-moon:after { + content: "\f186\f186" +} + +.fa-duotone.fa-pen-slash:after, +.fad.fa-pen-slash:after { + content: "\e213\e213" +} + +.fa-duotone.fa-wine-glass-alt:after, +.fa-duotone.fa-wine-glass-empty:after, +.fad.fa-wine-glass-alt:after, +.fad.fa-wine-glass-empty:after { + content: "\f5ce\f5ce" +} + +.fa-duotone.fa-square-star:after, +.fad.fa-square-star:after { + content: "\e27f\e27f" +} + +.fa-duotone.fa-cheese:after, +.fad.fa-cheese:after { + content: "\f7ef\f7ef" +} + +.fa-duotone.fa-send-backward:after, +.fad.fa-send-backward:after { + content: "\f87f\f87f" +} + +.fa-duotone.fa-yin-yang:after, +.fad.fa-yin-yang:after { + content: "\f6ad\f6ad" +} + +.fa-duotone.fa-music:after, +.fad.fa-music:after { + content: "\f001\f001" +} + +.fa-duotone.fa-compass-slash:after, +.fad.fa-compass-slash:after { + content: "\f5e9\f5e9" +} + +.fa-duotone.fa-clock-one:after, +.fad.fa-clock-one:after { + content: "\e34e\e34e" +} + +.fa-duotone.fa-file-music:after, +.fad.fa-file-music:after { + content: "\f8b6\f8b6" +} + +.fa-duotone.fa-code-commit:after, +.fad.fa-code-commit:after { + content: "\f386\f386" +} + +.fa-duotone.fa-temperature-low:after, +.fad.fa-temperature-low:after { + content: "\f76b\f76b" +} + +.fa-duotone.fa-biking:after, +.fa-duotone.fa-person-biking:after, +.fad.fa-biking:after, +.fad.fa-person-biking:after { + content: "\f84a\f84a" +} + +.fa-duotone.fa-display-chart-up-circle-currency:after, +.fad.fa-display-chart-up-circle-currency:after { + content: "\e5e5\e5e5" +} + +.fa-duotone.fa-skeleton:after, +.fad.fa-skeleton:after { + content: "\f620\f620" +} + +.fa-duotone.fa-circle-g:after, +.fad.fa-circle-g:after { + content: "\e10f\e10f" +} + +.fa-duotone.fa-circle-arrow-up-left:after, +.fad.fa-circle-arrow-up-left:after { + content: "\e0fb\e0fb" +} + +.fa-duotone.fa-coin-blank:after, +.fad.fa-coin-blank:after { + content: "\e3fb\e3fb" +} + +.fa-duotone.fa-broom:after, +.fad.fa-broom:after { + content: "\f51a\f51a" +} + +.fa-duotone.fa-vacuum:after, +.fad.fa-vacuum:after { + content: "\e04d\e04d" +} + +.fa-duotone.fa-shield-heart:after, +.fad.fa-shield-heart:after { + content: "\e574\e574" +} + +.fa-duotone.fa-card-heart:after, +.fad.fa-card-heart:after { + content: "\e3eb\e3eb" +} + +.fa-duotone.fa-lightbulb-cfl-on:after, +.fad.fa-lightbulb-cfl-on:after { + content: "\e5a7\e5a7" +} + +.fa-duotone.fa-melon:after, +.fad.fa-melon:after { + content: "\e310\e310" +} + +.fa-duotone.fa-gopuram:after, +.fad.fa-gopuram:after { + content: "\f664\f664" +} + +.fa-duotone.fa-earth-oceania:after, +.fa-duotone.fa-globe-oceania:after, +.fad.fa-earth-oceania:after, +.fad.fa-globe-oceania:after { + content: "\e47b\e47b" +} + +.fa-duotone.fa-container-storage:after, +.fad.fa-container-storage:after { + content: "\f4b7\f4b7" +} + +.fa-duotone.fa-face-pouting:after, +.fad.fa-face-pouting:after { + content: "\e387\e387" +} + +.fa-duotone.fa-square-xmark:after, +.fa-duotone.fa-times-square:after, +.fa-duotone.fa-xmark-square:after, +.fad.fa-square-xmark:after, +.fad.fa-times-square:after, +.fad.fa-xmark-square:after { + content: "\f2d3\f2d3" +} + +.fa-duotone.fa-exploding-head:after, +.fa-duotone.fa-face-explode:after, +.fad.fa-exploding-head:after, +.fad.fa-face-explode:after { + content: "\e2fe\e2fe" +} + +.fa-duotone.fa-hashtag:after, +.fad.fa-hashtag:after { + content: "\23\23" +} + +.fa-duotone.fa-expand-alt:after, +.fa-duotone.fa-up-right-and-down-left-from-center:after, +.fad.fa-expand-alt:after, +.fad.fa-up-right-and-down-left-from-center:after { + content: "\f424\f424" +} + +.fa-duotone.fa-oil-can:after, +.fad.fa-oil-can:after { + content: "\f613\f613" +} + +.fa-duotone.fa-t:after, +.fad.fa-t:after { + content: "\54\54" +} + +.fa-duotone.fa-transformer-bolt:after, +.fad.fa-transformer-bolt:after { + content: "\e2a4\e2a4" +} + +.fa-duotone.fa-hippo:after, +.fad.fa-hippo:after { + content: "\f6ed\f6ed" +} + +.fa-duotone.fa-chart-column:after, +.fad.fa-chart-column:after { + content: "\e0e3\e0e3" +} + +.fa-duotone.fa-cassette-vhs:after, +.fa-duotone.fa-vhs:after, +.fad.fa-cassette-vhs:after, +.fad.fa-vhs:after { + content: "\f8ec\f8ec" +} + +.fa-duotone.fa-infinity:after, +.fad.fa-infinity:after { + content: "\f534\f534" +} + +.fa-duotone.fa-vial-circle-check:after, +.fad.fa-vial-circle-check:after { + content: "\e596\e596" +} + +.fa-duotone.fa-chimney:after, +.fad.fa-chimney:after { + content: "\f78b\f78b" +} + +.fa-duotone.fa-object-intersect:after, +.fad.fa-object-intersect:after { + content: "\e49d\e49d" +} + +.fa-duotone.fa-person-arrow-down-to-line:after, +.fad.fa-person-arrow-down-to-line:after { + content: "\e538\e538" +} + +.fa-duotone.fa-voicemail:after, +.fad.fa-voicemail:after { + content: "\f897\f897" +} + +.fa-duotone.fa-block-brick:after, +.fa-duotone.fa-wall-brick:after, +.fad.fa-block-brick:after, +.fad.fa-wall-brick:after { + content: "\e3db\e3db" +} + +.fa-duotone.fa-fan:after, +.fad.fa-fan:after { + content: "\f863\f863" +} + +.fa-duotone.fa-bags-shopping:after, +.fad.fa-bags-shopping:after { + content: "\f847\f847" +} + +.fa-duotone.fa-paragraph-left:after, +.fa-duotone.fa-paragraph-rtl:after, +.fad.fa-paragraph-left:after, +.fad.fa-paragraph-rtl:after { + content: "\f878\f878" +} + +.fa-duotone.fa-person-walking-luggage:after, +.fad.fa-person-walking-luggage:after { + content: "\e554\e554" +} + +.fa-duotone.fa-caravan-alt:after, +.fa-duotone.fa-caravan-simple:after, +.fad.fa-caravan-alt:after, +.fad.fa-caravan-simple:after { + content: "\e000\e000" +} + +.fa-duotone.fa-turtle:after, +.fad.fa-turtle:after { + content: "\f726\f726" +} + +.fa-duotone.fa-pencil-mechanical:after, +.fad.fa-pencil-mechanical:after { + content: "\e5ca\e5ca" +} + +.fa-duotone.fa-arrows-alt-v:after, +.fa-duotone.fa-up-down:after, +.fad.fa-arrows-alt-v:after, +.fad.fa-up-down:after { + content: "\f338\f338" +} + +.fa-duotone.fa-cloud-moon-rain:after, +.fad.fa-cloud-moon-rain:after { + content: "\f73c\f73c" +} + +.fa-duotone.fa-booth-curtain:after, +.fad.fa-booth-curtain:after { + content: "\f734\f734" +} + +.fa-duotone.fa-calendar:after, +.fad.fa-calendar:after { + content: "\f133\f133" +} + +.fa-duotone.fa-box-heart:after, +.fad.fa-box-heart:after { + content: "\f49d\f49d" +} + +.fa-duotone.fa-trailer:after, +.fad.fa-trailer:after { + content: "\e041\e041" +} + +.fa-duotone.fa-user-doctor-message:after, +.fa-duotone.fa-user-md-chat:after, +.fad.fa-user-doctor-message:after, +.fad.fa-user-md-chat:after { + content: "\f82e\f82e" +} + +.fa-duotone.fa-bahai:after, +.fa-duotone.fa-haykal:after, +.fad.fa-bahai:after, +.fad.fa-haykal:after { + content: "\f666\f666" +} + +.fa-duotone.fa-lighthouse:after, +.fad.fa-lighthouse:after { + content: "\e612\e612" +} + +.fa-duotone.fa-amp-guitar:after, +.fad.fa-amp-guitar:after { + content: "\f8a1\f8a1" +} + +.fa-duotone.fa-sd-card:after, +.fad.fa-sd-card:after { + content: "\f7c2\f7c2" +} + +.fa-duotone.fa-volume-slash:after, +.fad.fa-volume-slash:after { + content: "\f2e2\f2e2" +} + +.fa-duotone.fa-border-bottom:after, +.fad.fa-border-bottom:after { + content: "\f84d\f84d" +} + +.fa-duotone.fa-wifi-1:after, +.fa-duotone.fa-wifi-weak:after, +.fad.fa-wifi-1:after, +.fad.fa-wifi-weak:after { + content: "\f6aa\f6aa" +} + +.fa-duotone.fa-dragon:after, +.fad.fa-dragon:after { + content: "\f6d5\f6d5" +} + +.fa-duotone.fa-shoe-prints:after, +.fad.fa-shoe-prints:after { + content: "\f54b\f54b" +} + +.fa-duotone.fa-circle-plus:after, +.fa-duotone.fa-plus-circle:after, +.fad.fa-circle-plus:after, +.fad.fa-plus-circle:after { + content: "\f055\f055" +} + +.fa-duotone.fa-face-grin-tongue-wink:after, +.fa-duotone.fa-grin-tongue-wink:after, +.fad.fa-face-grin-tongue-wink:after, +.fad.fa-grin-tongue-wink:after { + content: "\f58b\f58b" +} + +.fa-duotone.fa-hand-holding:after, +.fad.fa-hand-holding:after { + content: "\f4bd\f4bd" +} + +.fa-duotone.fa-plug-circle-exclamation:after, +.fad.fa-plug-circle-exclamation:after { + content: "\e55d\e55d" +} + +.fa-duotone.fa-chain-broken:after, +.fa-duotone.fa-chain-slash:after, +.fa-duotone.fa-link-slash:after, +.fa-duotone.fa-unlink:after, +.fad.fa-chain-broken:after, +.fad.fa-chain-slash:after, +.fad.fa-link-slash:after, +.fad.fa-unlink:after { + content: "\f127\f127" +} + +.fa-duotone.fa-clone:after, +.fad.fa-clone:after { + content: "\f24d\f24d" +} + +.fa-duotone.fa-person-walking-arrow-loop-left:after, +.fad.fa-person-walking-arrow-loop-left:after { + content: "\e551\e551" +} + +.fa-duotone.fa-arrow-up-z-a:after, +.fa-duotone.fa-sort-alpha-up-alt:after, +.fad.fa-arrow-up-z-a:after, +.fad.fa-sort-alpha-up-alt:after { + content: "\f882\f882" +} + +.fa-duotone.fa-fire-alt:after, +.fa-duotone.fa-fire-flame-curved:after, +.fad.fa-fire-alt:after, +.fad.fa-fire-flame-curved:after { + content: "\f7e4\f7e4" +} + +.fa-duotone.fa-tornado:after, +.fad.fa-tornado:after { + content: "\f76f\f76f" +} + +.fa-duotone.fa-file-circle-plus:after, +.fad.fa-file-circle-plus:after { + content: "\e494\e494" +} + +.fa-duotone.fa-delete-right:after, +.fad.fa-delete-right:after { + content: "\e154\e154" +} + +.fa-duotone.fa-book-quran:after, +.fa-duotone.fa-quran:after, +.fad.fa-book-quran:after, +.fad.fa-quran:after { + content: "\f687\f687" +} + +.fa-duotone.fa-circle-quarter:after, +.fad.fa-circle-quarter:after { + content: "\e11f\e11f" +} + +.fa-duotone.fa-anchor:after, +.fad.fa-anchor:after { + content: "\f13d\f13d" +} + +.fa-duotone.fa-border-all:after, +.fad.fa-border-all:after { + content: "\f84c\f84c" +} + +.fa-duotone.fa-function:after, +.fad.fa-function:after { + content: "\f661\f661" +} + +.fa-duotone.fa-angry:after, +.fa-duotone.fa-face-angry:after, +.fad.fa-angry:after, +.fad.fa-face-angry:after { + content: "\f556\f556" +} + +.fa-duotone.fa-people-simple:after, +.fad.fa-people-simple:after { + content: "\e21b\e21b" +} + +.fa-duotone.fa-cookie-bite:after, +.fad.fa-cookie-bite:after { + content: "\f564\f564" +} + +.fa-duotone.fa-arrow-trend-down:after, +.fad.fa-arrow-trend-down:after { + content: "\e097\e097" +} + +.fa-duotone.fa-feed:after, +.fa-duotone.fa-rss:after, +.fad.fa-feed:after, +.fad.fa-rss:after { + content: "\f09e\f09e" +} + +.fa-duotone.fa-face-monocle:after, +.fad.fa-face-monocle:after { + content: "\e380\e380" +} + +.fa-duotone.fa-draw-polygon:after, +.fad.fa-draw-polygon:after { + content: "\f5ee\f5ee" +} + +.fa-duotone.fa-balance-scale:after, +.fa-duotone.fa-scale-balanced:after, +.fad.fa-balance-scale:after, +.fad.fa-scale-balanced:after { + content: "\f24e\f24e" +} + +.fa-duotone.fa-calendar-lines:after, +.fa-duotone.fa-calendar-note:after, +.fad.fa-calendar-lines:after, +.fad.fa-calendar-note:after { + content: "\e0d5\e0d5" +} + +.fa-duotone.fa-arrow-down-big-small:after, +.fa-duotone.fa-sort-size-down:after, +.fad.fa-arrow-down-big-small:after, +.fad.fa-sort-size-down:after { + content: "\f88c\f88c" +} + +.fa-duotone.fa-gauge-simple-high:after, +.fa-duotone.fa-tachometer-fast:after, +.fa-duotone.fa-tachometer:after, +.fad.fa-gauge-simple-high:after, +.fad.fa-tachometer-fast:after, +.fad.fa-tachometer:after { + content: "\f62a\f62a" +} + +.fa-duotone.fa-do-not-enter:after, +.fad.fa-do-not-enter:after { + content: "\f5ec\f5ec" +} + +.fa-duotone.fa-shower:after, +.fad.fa-shower:after { + content: "\f2cc\f2cc" +} + +.fa-duotone.fa-dice-d8:after, +.fad.fa-dice-d8:after { + content: "\f6d2\f6d2" +} + +.fa-duotone.fa-desktop-alt:after, +.fa-duotone.fa-desktop:after, +.fad.fa-desktop-alt:after, +.fad.fa-desktop:after { + content: "\f390\f390" +} + +.fa-duotone.fa-m:after, +.fad.fa-m:after { + content: "\4d\4d" +} + +.fa-duotone.fa-spinner-scale:after, +.fad.fa-spinner-scale:after { + content: "\e62a\e62a" +} + +.fa-duotone.fa-grip-dots-vertical:after, +.fad.fa-grip-dots-vertical:after { + content: "\e411\e411" +} + +.fa-duotone.fa-face-viewfinder:after, +.fad.fa-face-viewfinder:after { + content: "\e2ff\e2ff" +} + +.fa-duotone.fa-creemee:after, +.fa-duotone.fa-soft-serve:after, +.fad.fa-creemee:after, +.fad.fa-soft-serve:after { + content: "\e400\e400" +} + +.fa-duotone.fa-h5:after, +.fad.fa-h5:after { + content: "\e412\e412" +} + +.fa-duotone.fa-hand-back-point-down:after, +.fad.fa-hand-back-point-down:after { + content: "\e19e\e19e" +} + +.fa-duotone.fa-table-list:after, +.fa-duotone.fa-th-list:after, +.fad.fa-table-list:after, +.fad.fa-th-list:after { + content: "\f00b\f00b" +} + +.fa-duotone.fa-basket-shopping-minus:after, +.fad.fa-basket-shopping-minus:after { + content: "\e652\e652" +} + +.fa-duotone.fa-comment-sms:after, +.fa-duotone.fa-sms:after, +.fad.fa-comment-sms:after, +.fad.fa-sms:after { + content: "\f7cd\f7cd" +} + +.fa-duotone.fa-rectangle-landscape:after, +.fa-duotone.fa-rectangle:after, +.fad.fa-rectangle-landscape:after, +.fad.fa-rectangle:after { + content: "\f2fa\f2fa" +} + +.fa-duotone.fa-clipboard-list-check:after, +.fad.fa-clipboard-list-check:after { + content: "\f737\f737" +} + +.fa-duotone.fa-turkey:after, +.fad.fa-turkey:after { + content: "\f725\f725" +} + +.fa-duotone.fa-book:after, +.fad.fa-book:after { + content: "\f02d\f02d" +} + +.fa-duotone.fa-user-plus:after, +.fad.fa-user-plus:after { + content: "\f234\f234" +} + +.fa-duotone.fa-ice-skate:after, +.fad.fa-ice-skate:after { + content: "\f7ac\f7ac" +} + +.fa-duotone.fa-check:after, +.fad.fa-check:after { + content: "\f00c\f00c" +} + +.fa-duotone.fa-battery-4:after, +.fa-duotone.fa-battery-three-quarters:after, +.fad.fa-battery-4:after, +.fad.fa-battery-three-quarters:after { + content: "\f241\f241" +} + +.fa-duotone.fa-tomato:after, +.fad.fa-tomato:after { + content: "\e330\e330" +} + +.fa-duotone.fa-sword-laser:after, +.fad.fa-sword-laser:after { + content: "\e03b\e03b" +} + +.fa-duotone.fa-house-circle-check:after, +.fad.fa-house-circle-check:after { + content: "\e509\e509" +} + +.fa-duotone.fa-buildings:after, +.fad.fa-buildings:after { + content: "\e0cc\e0cc" +} + +.fa-duotone.fa-angle-left:after, +.fad.fa-angle-left:after { + content: "\f104\f104" +} + +.fa-duotone.fa-cart-flatbed-boxes:after, +.fa-duotone.fa-dolly-flatbed-alt:after, +.fad.fa-cart-flatbed-boxes:after, +.fad.fa-dolly-flatbed-alt:after { + content: "\f475\f475" +} + +.fa-duotone.fa-diagram-successor:after, +.fad.fa-diagram-successor:after { + content: "\e47a\e47a" +} + +.fa-duotone.fa-truck-arrow-right:after, +.fad.fa-truck-arrow-right:after { + content: "\e58b\e58b" +} + +.fa-duotone.fa-square-w:after, +.fad.fa-square-w:after { + content: "\e285\e285" +} + +.fa-duotone.fa-arrows-split-up-and-left:after, +.fad.fa-arrows-split-up-and-left:after { + content: "\e4bc\e4bc" +} + +.fa-duotone.fa-lamp:after, +.fad.fa-lamp:after { + content: "\f4ca\f4ca" +} + +.fa-duotone.fa-airplay:after, +.fad.fa-airplay:after { + content: "\e089\e089" +} + +.fa-duotone.fa-fist-raised:after, +.fa-duotone.fa-hand-fist:after, +.fad.fa-fist-raised:after, +.fad.fa-hand-fist:after { + content: "\f6de\f6de" +} + +.fa-duotone.fa-shield-quartered:after, +.fad.fa-shield-quartered:after { + content: "\e575\e575" +} + +.fa-duotone.fa-slash-forward:after, +.fad.fa-slash-forward:after { + content: "\2f\2f" +} + +.fa-duotone.fa-location-pen:after, +.fa-duotone.fa-map-marker-edit:after, +.fad.fa-location-pen:after, +.fad.fa-map-marker-edit:after { + content: "\f607\f607" +} + +.fa-duotone.fa-cloud-moon:after, +.fad.fa-cloud-moon:after { + content: "\f6c3\f6c3" +} + +.fa-duotone.fa-pot-food:after, +.fad.fa-pot-food:after { + content: "\e43f\e43f" +} + +.fa-duotone.fa-briefcase:after, +.fad.fa-briefcase:after { + content: "\f0b1\f0b1" +} + +.fa-duotone.fa-person-falling:after, +.fad.fa-person-falling:after { + content: "\e546\e546" +} + +.fa-duotone.fa-image-portrait:after, +.fa-duotone.fa-portrait:after, +.fad.fa-image-portrait:after, +.fad.fa-portrait:after { + content: "\f3e0\f3e0" +} + +.fa-duotone.fa-user-tag:after, +.fad.fa-user-tag:after { + content: "\f507\f507" +} + +.fa-duotone.fa-rug:after, +.fad.fa-rug:after { + content: "\e569\e569" +} + +.fa-duotone.fa-print-slash:after, +.fad.fa-print-slash:after { + content: "\f686\f686" +} + +.fa-duotone.fa-earth-europe:after, +.fa-duotone.fa-globe-europe:after, +.fad.fa-earth-europe:after, +.fad.fa-globe-europe:after { + content: "\f7a2\f7a2" +} + +.fa-duotone.fa-cart-flatbed-suitcase:after, +.fa-duotone.fa-luggage-cart:after, +.fad.fa-cart-flatbed-suitcase:after, +.fad.fa-luggage-cart:after { + content: "\f59d\f59d" +} + +.fa-duotone.fa-hand-back-point-ribbon:after, +.fad.fa-hand-back-point-ribbon:after { + content: "\e1a0\e1a0" +} + +.fa-duotone.fa-rectangle-times:after, +.fa-duotone.fa-rectangle-xmark:after, +.fa-duotone.fa-times-rectangle:after, +.fa-duotone.fa-window-close:after, +.fad.fa-rectangle-times:after, +.fad.fa-rectangle-xmark:after, +.fad.fa-times-rectangle:after, +.fad.fa-window-close:after { + content: "\f410\f410" +} + +.fa-duotone.fa-tire-rugged:after, +.fad.fa-tire-rugged:after { + content: "\f634\f634" +} + +.fa-duotone.fa-lightbulb-dollar:after, +.fad.fa-lightbulb-dollar:after { + content: "\f670\f670" +} + +.fa-duotone.fa-cowbell:after, +.fad.fa-cowbell:after { + content: "\f8b3\f8b3" +} + +.fa-duotone.fa-baht-sign:after, +.fad.fa-baht-sign:after { + content: "\e0ac\e0ac" +} + +.fa-duotone.fa-corner:after, +.fad.fa-corner:after { + content: "\e3fe\e3fe" +} + +.fa-duotone.fa-chevron-double-right:after, +.fa-duotone.fa-chevrons-right:after, +.fad.fa-chevron-double-right:after, +.fad.fa-chevrons-right:after { + content: "\f324\f324" +} + +.fa-duotone.fa-book-open:after, +.fad.fa-book-open:after { + content: "\f518\f518" +} + +.fa-duotone.fa-book-journal-whills:after, +.fa-duotone.fa-journal-whills:after, +.fad.fa-book-journal-whills:after, +.fad.fa-journal-whills:after { + content: "\f66a\f66a" +} + +.fa-duotone.fa-inhaler:after, +.fad.fa-inhaler:after { + content: "\f5f9\f5f9" +} + +.fa-duotone.fa-handcuffs:after, +.fad.fa-handcuffs:after { + content: "\e4f8\e4f8" +} + +.fa-duotone.fa-snake:after, +.fad.fa-snake:after { + content: "\f716\f716" +} + +.fa-duotone.fa-exclamation-triangle:after, +.fa-duotone.fa-triangle-exclamation:after, +.fa-duotone.fa-warning:after, +.fad.fa-exclamation-triangle:after, +.fad.fa-triangle-exclamation:after, +.fad.fa-warning:after { + content: "\f071\f071" +} + +.fa-duotone.fa-note-medical:after, +.fad.fa-note-medical:after { + content: "\e200\e200" +} + +.fa-duotone.fa-database:after, +.fad.fa-database:after { + content: "\f1c0\f1c0" +} + +.fa-duotone.fa-down-left:after, +.fad.fa-down-left:after { + content: "\e16a\e16a" +} + +.fa-duotone.fa-mail-forward:after, +.fa-duotone.fa-share:after, +.fad.fa-mail-forward:after, +.fad.fa-share:after { + content: "\f064\f064" +} + +.fa-duotone.fa-face-thinking:after, +.fad.fa-face-thinking:after { + content: "\e39b\e39b" +} + +.fa-duotone.fa-turn-down-right:after, +.fad.fa-turn-down-right:after { + content: "\e455\e455" +} + +.fa-duotone.fa-bottle-droplet:after, +.fad.fa-bottle-droplet:after { + content: "\e4c4\e4c4" +} + +.fa-duotone.fa-mask-face:after, +.fad.fa-mask-face:after { + content: "\e1d7\e1d7" +} + +.fa-duotone.fa-hill-rockslide:after, +.fad.fa-hill-rockslide:after { + content: "\e508\e508" +} + +.fa-duotone.fa-scanner-keyboard:after, +.fad.fa-scanner-keyboard:after { + content: "\f489\f489" +} + +.fa-duotone.fa-circle-o:after, +.fad.fa-circle-o:after { + content: "\e119\e119" +} + +.fa-duotone.fa-grid-horizontal:after, +.fad.fa-grid-horizontal:after { + content: "\e307\e307" +} + +.fa-duotone.fa-comment-alt-dollar:after, +.fa-duotone.fa-message-dollar:after, +.fad.fa-comment-alt-dollar:after, +.fad.fa-message-dollar:after { + content: "\f650\f650" +} + +.fa-duotone.fa-exchange-alt:after, +.fa-duotone.fa-right-left:after, +.fad.fa-exchange-alt:after, +.fad.fa-right-left:after { + content: "\f362\f362" +} + +.fa-duotone.fa-columns-3:after, +.fad.fa-columns-3:after { + content: "\e361\e361" +} + +.fa-duotone.fa-paper-plane:after, +.fad.fa-paper-plane:after { + content: "\f1d8\f1d8" +} + +.fa-duotone.fa-road-circle-exclamation:after, +.fad.fa-road-circle-exclamation:after { + content: "\e565\e565" +} + +.fa-duotone.fa-dungeon:after, +.fad.fa-dungeon:after { + content: "\f6d9\f6d9" +} + +.fa-duotone.fa-hand-holding-box:after, +.fad.fa-hand-holding-box:after { + content: "\f47b\f47b" +} + +.fa-duotone.fa-input-text:after, +.fad.fa-input-text:after { + content: "\e1bf\e1bf" +} + +.fa-duotone.fa-window-alt:after, +.fa-duotone.fa-window-flip:after, +.fad.fa-window-alt:after, +.fad.fa-window-flip:after { + content: "\f40f\f40f" +} + +.fa-duotone.fa-align-right:after, +.fad.fa-align-right:after { + content: "\f038\f038" +} + +.fa-duotone.fa-scanner-gun:after, +.fa-duotone.fa-scanner:after, +.fad.fa-scanner-gun:after, +.fad.fa-scanner:after { + content: "\f488\f488" +} + +.fa-duotone.fa-tire:after, +.fad.fa-tire:after { + content: "\f631\f631" +} + +.fa-duotone.fa-engine:after, +.fad.fa-engine:after { + content: "\e16e\e16e" +} + +.fa-duotone.fa-money-bill-1-wave:after, +.fa-duotone.fa-money-bill-wave-alt:after, +.fad.fa-money-bill-1-wave:after, +.fad.fa-money-bill-wave-alt:after { + content: "\f53b\f53b" +} + +.fa-duotone.fa-life-ring:after, +.fad.fa-life-ring:after { + content: "\f1cd\f1cd" +} + +.fa-duotone.fa-hands:after, +.fa-duotone.fa-sign-language:after, +.fa-duotone.fa-signing:after, +.fad.fa-hands:after, +.fad.fa-sign-language:after, +.fad.fa-signing:after { + content: "\f2a7\f2a7" +} + +.fa-duotone.fa-caret-circle-right:after, +.fa-duotone.fa-circle-caret-right:after, +.fad.fa-caret-circle-right:after, +.fad.fa-circle-caret-right:after { + content: "\f330\f330" +} + +.fa-duotone.fa-turn-left:after, +.fad.fa-turn-left:after { + content: "\e636\e636" +} + +.fa-duotone.fa-wheat:after, +.fad.fa-wheat:after { + content: "\f72d\f72d" +} + +.fa-duotone.fa-file-spreadsheet:after, +.fad.fa-file-spreadsheet:after { + content: "\f65b\f65b" +} + +.fa-duotone.fa-audio-description-slash:after, +.fad.fa-audio-description-slash:after { + content: "\e0a8\e0a8" +} + +.fa-duotone.fa-bell-ring:after, +.fad.fa-bell-ring:after { + content: "\e62c\e62c" +} + +.fa-duotone.fa-calendar-day:after, +.fad.fa-calendar-day:after { + content: "\f783\f783" +} + +.fa-duotone.fa-ladder-water:after, +.fa-duotone.fa-swimming-pool:after, +.fa-duotone.fa-water-ladder:after, +.fad.fa-ladder-water:after, +.fad.fa-swimming-pool:after, +.fad.fa-water-ladder:after { + content: "\f5c5\f5c5" +} + +.fa-duotone.fa-arrows-up-down:after, +.fa-duotone.fa-arrows-v:after, +.fad.fa-arrows-up-down:after, +.fad.fa-arrows-v:after { + content: "\f07d\f07d" +} + +.fa-duotone.fa-chess-pawn-alt:after, +.fa-duotone.fa-chess-pawn-piece:after, +.fad.fa-chess-pawn-alt:after, +.fad.fa-chess-pawn-piece:after { + content: "\f444\f444" +} + +.fa-duotone.fa-face-grimace:after, +.fa-duotone.fa-grimace:after, +.fad.fa-face-grimace:after, +.fad.fa-grimace:after { + content: "\f57f\f57f" +} + +.fa-duotone.fa-wheelchair-alt:after, +.fa-duotone.fa-wheelchair-move:after, +.fad.fa-wheelchair-alt:after, +.fad.fa-wheelchair-move:after { + content: "\e2ce\e2ce" +} + +.fa-duotone.fa-level-down-alt:after, +.fa-duotone.fa-turn-down:after, +.fad.fa-level-down-alt:after, +.fad.fa-turn-down:after { + content: "\f3be\f3be" +} + +.fa-duotone.fa-square-s:after, +.fad.fa-square-s:after { + content: "\e27d\e27d" +} + +.fa-duotone.fa-barcode-alt:after, +.fa-duotone.fa-rectangle-barcode:after, +.fad.fa-barcode-alt:after, +.fad.fa-rectangle-barcode:after { + content: "\f463\f463" +} + +.fa-duotone.fa-person-walking-arrow-right:after, +.fad.fa-person-walking-arrow-right:after { + content: "\e552\e552" +} + +.fa-duotone.fa-envelope-square:after, +.fa-duotone.fa-square-envelope:after, +.fad.fa-envelope-square:after, +.fad.fa-square-envelope:after { + content: "\f199\f199" +} + +.fa-duotone.fa-dice:after, +.fad.fa-dice:after { + content: "\f522\f522" +} + +.fa-duotone.fa-unicorn:after, +.fad.fa-unicorn:after { + content: "\f727\f727" +} + +.fa-duotone.fa-bowling-ball:after, +.fad.fa-bowling-ball:after { + content: "\f436\f436" +} + +.fa-duotone.fa-pompebled:after, +.fad.fa-pompebled:after { + content: "\e43d\e43d" +} + +.fa-duotone.fa-brain:after, +.fad.fa-brain:after { + content: "\f5dc\f5dc" +} + +.fa-duotone.fa-watch-smart:after, +.fad.fa-watch-smart:after { + content: "\e2cc\e2cc" +} + +.fa-duotone.fa-book-user:after, +.fad.fa-book-user:after { + content: "\f7e7\f7e7" +} + +.fa-duotone.fa-sensor-cloud:after, +.fa-duotone.fa-sensor-smoke:after, +.fad.fa-sensor-cloud:after, +.fad.fa-sensor-smoke:after { + content: "\e02c\e02c" +} + +.fa-duotone.fa-clapperboard-play:after, +.fad.fa-clapperboard-play:after { + content: "\e132\e132" +} + +.fa-duotone.fa-band-aid:after, +.fa-duotone.fa-bandage:after, +.fad.fa-band-aid:after, +.fad.fa-bandage:after { + content: "\f462\f462" +} + +.fa-duotone.fa-calendar-minus:after, +.fad.fa-calendar-minus:after { + content: "\f272\f272" +} + +.fa-duotone.fa-circle-xmark:after, +.fa-duotone.fa-times-circle:after, +.fa-duotone.fa-xmark-circle:after, +.fad.fa-circle-xmark:after, +.fad.fa-times-circle:after, +.fad.fa-xmark-circle:after { + content: "\f057\f057" +} + +.fa-duotone.fa-circle-4:after, +.fad.fa-circle-4:after { + content: "\e0f1\e0f1" +} + +.fa-duotone.fa-gifts:after, +.fad.fa-gifts:after { + content: "\f79c\f79c" +} + +.fa-duotone.fa-album-collection:after, +.fad.fa-album-collection:after { + content: "\f8a0\f8a0" +} + +.fa-duotone.fa-hotel:after, +.fad.fa-hotel:after { + content: "\f594\f594" +} + +.fa-duotone.fa-earth-asia:after, +.fa-duotone.fa-globe-asia:after, +.fad.fa-earth-asia:after, +.fad.fa-globe-asia:after { + content: "\f57e\f57e" +} + +.fa-duotone.fa-id-card-alt:after, +.fa-duotone.fa-id-card-clip:after, +.fad.fa-id-card-alt:after, +.fad.fa-id-card-clip:after { + content: "\f47f\f47f" +} + +.fa-duotone.fa-magnifying-glass-plus:after, +.fa-duotone.fa-search-plus:after, +.fad.fa-magnifying-glass-plus:after, +.fad.fa-search-plus:after { + content: "\f00e\f00e" +} + +.fa-duotone.fa-thumbs-up:after, +.fad.fa-thumbs-up:after { + content: "\f164\f164" +} + +.fa-duotone.fa-cloud-showers:after, +.fad.fa-cloud-showers:after { + content: "\f73f\f73f" +} + +.fa-duotone.fa-user-clock:after, +.fad.fa-user-clock:after { + content: "\f4fd\f4fd" +} + +.fa-duotone.fa-onion:after, +.fad.fa-onion:after { + content: "\e427\e427" +} + +.fa-duotone.fa-clock-twelve-thirty:after, +.fad.fa-clock-twelve-thirty:after { + content: "\e359\e359" +} + +.fa-duotone.fa-arrow-down-to-dotted-line:after, +.fad.fa-arrow-down-to-dotted-line:after { + content: "\e095\e095" +} + +.fa-duotone.fa-allergies:after, +.fa-duotone.fa-hand-dots:after, +.fad.fa-allergies:after, +.fad.fa-hand-dots:after { + content: "\f461\f461" +} + +.fa-duotone.fa-file-invoice:after, +.fad.fa-file-invoice:after { + content: "\f570\f570" +} + +.fa-duotone.fa-window-minimize:after, +.fad.fa-window-minimize:after { + content: "\f2d1\f2d1" +} + +.fa-duotone.fa-rectangle-wide:after, +.fad.fa-rectangle-wide:after { + content: "\f2fc\f2fc" +} + +.fa-duotone.fa-comment-arrow-up:after, +.fad.fa-comment-arrow-up:after { + content: "\e144\e144" +} + +.fa-duotone.fa-garlic:after, +.fad.fa-garlic:after { + content: "\e40e\e40e" +} + +.fa-duotone.fa-coffee:after, +.fa-duotone.fa-mug-saucer:after, +.fad.fa-coffee:after, +.fad.fa-mug-saucer:after { + content: "\f0f4\f0f4" +} + +.fa-duotone.fa-brush:after, +.fad.fa-brush:after { + content: "\f55d\f55d" +} + +.fa-duotone.fa-tree-decorated:after, +.fad.fa-tree-decorated:after { + content: "\f7dc\f7dc" +} + +.fa-duotone.fa-mask:after, +.fad.fa-mask:after { + content: "\f6fa\f6fa" +} + +.fa-duotone.fa-calendar-heart:after, +.fad.fa-calendar-heart:after { + content: "\e0d3\e0d3" +} + +.fa-duotone.fa-magnifying-glass-minus:after, +.fa-duotone.fa-search-minus:after, +.fad.fa-magnifying-glass-minus:after, +.fad.fa-search-minus:after { + content: "\f010\f010" +} + +.fa-duotone.fa-flower:after, +.fad.fa-flower:after { + content: "\f7ff\f7ff" +} + +.fa-duotone.fa-arrow-down-from-arc:after, +.fad.fa-arrow-down-from-arc:after { + content: "\e614\e614" +} + +.fa-duotone.fa-right-left-large:after, +.fad.fa-right-left-large:after { + content: "\e5e1\e5e1" +} + +.fa-duotone.fa-ruler-vertical:after, +.fad.fa-ruler-vertical:after { + content: "\f548\f548" +} + +.fa-duotone.fa-circles-overlap:after, +.fad.fa-circles-overlap:after { + content: "\e600\e600" +} + +.fa-duotone.fa-user-alt:after, +.fa-duotone.fa-user-large:after, +.fad.fa-user-alt:after, +.fad.fa-user-large:after { + content: "\f406\f406" +} + +.fa-duotone.fa-starship-freighter:after, +.fad.fa-starship-freighter:after { + content: "\e03a\e03a" +} + +.fa-duotone.fa-train-tram:after, +.fad.fa-train-tram:after { + content: "\e5b4\e5b4" +} + +.fa-duotone.fa-bridge-suspension:after, +.fad.fa-bridge-suspension:after { + content: "\e4cd\e4cd" +} + +.fa-duotone.fa-trash-check:after, +.fad.fa-trash-check:after { + content: "\e2af\e2af" +} + +.fa-duotone.fa-user-nurse:after, +.fad.fa-user-nurse:after { + content: "\f82f\f82f" +} + +.fa-duotone.fa-boombox:after, +.fad.fa-boombox:after { + content: "\f8a5\f8a5" +} + +.fa-duotone.fa-syringe:after, +.fad.fa-syringe:after { + content: "\f48e\f48e" +} + +.fa-duotone.fa-cloud-sun:after, +.fad.fa-cloud-sun:after { + content: "\f6c4\f6c4" +} + +.fa-duotone.fa-shield-exclamation:after, +.fad.fa-shield-exclamation:after { + content: "\e247\e247" +} + +.fa-duotone.fa-stopwatch-20:after, +.fad.fa-stopwatch-20:after { + content: "\e06f\e06f" +} + +.fa-duotone.fa-square-full:after, +.fad.fa-square-full:after { + content: "\f45c\f45c" +} + +.fa-duotone.fa-grip-dots:after, +.fad.fa-grip-dots:after { + content: "\e410\e410" +} + +.fa-duotone.fa-comment-exclamation:after, +.fad.fa-comment-exclamation:after { + content: "\f4af\f4af" +} + +.fa-duotone.fa-pen-swirl:after, +.fad.fa-pen-swirl:after { + content: "\e214\e214" +} + +.fa-duotone.fa-falafel:after, +.fad.fa-falafel:after { + content: "\e40a\e40a" +} + +.fa-duotone.fa-circle-2:after, +.fad.fa-circle-2:after { + content: "\e0ef\e0ef" +} + +.fa-duotone.fa-magnet:after, +.fad.fa-magnet:after { + content: "\f076\f076" +} + +.fa-duotone.fa-jar:after, +.fad.fa-jar:after { + content: "\e516\e516" +} + +.fa-duotone.fa-gramophone:after, +.fad.fa-gramophone:after { + content: "\f8bd\f8bd" +} + +.fa-duotone.fa-dice-d12:after, +.fad.fa-dice-d12:after { + content: "\f6ce\f6ce" +} + +.fa-duotone.fa-note-sticky:after, +.fa-duotone.fa-sticky-note:after, +.fad.fa-note-sticky:after, +.fad.fa-sticky-note:after { + content: "\f249\f249" +} + +.fa-duotone.fa-arrow-alt-down:after, +.fa-duotone.fa-down:after, +.fad.fa-arrow-alt-down:after, +.fad.fa-down:after { + content: "\f354\f354" +} + +.fa-duotone.fa-100:after, +.fa-duotone.fa-hundred-points:after, +.fad.fa-100:after, +.fad.fa-hundred-points:after { + content: "\e41c\e41c" +} + +.fa-duotone.fa-paperclip-vertical:after, +.fad.fa-paperclip-vertical:after { + content: "\e3c2\e3c2" +} + +.fa-duotone.fa-wind-circle-exclamation:after, +.fa-duotone.fa-wind-warning:after, +.fad.fa-wind-circle-exclamation:after, +.fad.fa-wind-warning:after { + content: "\f776\f776" +} + +.fa-duotone.fa-location-pin-slash:after, +.fa-duotone.fa-map-marker-slash:after, +.fad.fa-location-pin-slash:after, +.fad.fa-map-marker-slash:after { + content: "\f60c\f60c" +} + +.fa-duotone.fa-face-sad-sweat:after, +.fad.fa-face-sad-sweat:after { + content: "\e38a\e38a" +} + +.fa-duotone.fa-bug-slash:after, +.fad.fa-bug-slash:after { + content: "\e490\e490" +} + +.fa-duotone.fa-cupcake:after, +.fad.fa-cupcake:after { + content: "\e402\e402" +} + +.fa-duotone.fa-light-switch-off:after, +.fad.fa-light-switch-off:after { + content: "\e018\e018" +} + +.fa-duotone.fa-toggle-large-off:after, +.fad.fa-toggle-large-off:after { + content: "\e5b0\e5b0" +} + +.fa-duotone.fa-pen-fancy-slash:after, +.fad.fa-pen-fancy-slash:after { + content: "\e210\e210" +} + +.fa-duotone.fa-truck-container:after, +.fad.fa-truck-container:after { + content: "\f4dc\f4dc" +} + +.fa-duotone.fa-boot:after, +.fad.fa-boot:after { + content: "\f782\f782" +} + +.fa-duotone.fa-arrow-up-from-water-pump:after, +.fad.fa-arrow-up-from-water-pump:after { + content: "\e4b6\e4b6" +} + +.fa-duotone.fa-file-check:after, +.fad.fa-file-check:after { + content: "\f316\f316" +} + +.fa-duotone.fa-bone:after, +.fad.fa-bone:after { + content: "\f5d7\f5d7" +} + +.fa-duotone.fa-cards-blank:after, +.fad.fa-cards-blank:after { + content: "\e4df\e4df" +} + +.fa-duotone.fa-circle-3:after, +.fad.fa-circle-3:after { + content: "\e0f0\e0f0" +} + +.fa-duotone.fa-bench-tree:after, +.fad.fa-bench-tree:after { + content: "\e2e7\e2e7" +} + +.fa-duotone.fa-keyboard-brightness-low:after, +.fad.fa-keyboard-brightness-low:after { + content: "\e1c1\e1c1" +} + +.fa-duotone.fa-ski-boot-ski:after, +.fad.fa-ski-boot-ski:after { + content: "\e3cd\e3cd" +} + +.fa-duotone.fa-brain-circuit:after, +.fad.fa-brain-circuit:after { + content: "\e0c6\e0c6" +} + +.fa-duotone.fa-user-injured:after, +.fad.fa-user-injured:after { + content: "\f728\f728" +} + +.fa-duotone.fa-block-brick-fire:after, +.fa-duotone.fa-firewall:after, +.fad.fa-block-brick-fire:after, +.fad.fa-firewall:after { + content: "\e3dc\e3dc" +} + +.fa-duotone.fa-face-sad-tear:after, +.fa-duotone.fa-sad-tear:after, +.fad.fa-face-sad-tear:after, +.fad.fa-sad-tear:after { + content: "\f5b4\f5b4" +} + +.fa-duotone.fa-plane:after, +.fad.fa-plane:after { + content: "\f072\f072" +} + +.fa-duotone.fa-tent-arrows-down:after, +.fad.fa-tent-arrows-down:after { + content: "\e581\e581" +} + +.fa-duotone.fa-exclamation:after, +.fad.fa-exclamation:after { + content: "\21\21" +} + +.fa-duotone.fa-arrows-spin:after, +.fad.fa-arrows-spin:after { + content: "\e4bb\e4bb" +} + +.fa-duotone.fa-face-smile-relaxed:after, +.fad.fa-face-smile-relaxed:after { + content: "\e392\e392" +} + +.fa-duotone.fa-comment-times:after, +.fa-duotone.fa-comment-xmark:after, +.fad.fa-comment-times:after, +.fad.fa-comment-xmark:after { + content: "\f4b5\f4b5" +} + +.fa-duotone.fa-print:after, +.fad.fa-print:after { + content: "\f02f\f02f" +} + +.fa-duotone.fa-try:after, +.fa-duotone.fa-turkish-lira-sign:after, +.fa-duotone.fa-turkish-lira:after, +.fad.fa-try:after, +.fad.fa-turkish-lira-sign:after, +.fad.fa-turkish-lira:after { + content: "\e2bb\e2bb" +} + +.fa-duotone.fa-face-nose-steam:after, +.fad.fa-face-nose-steam:after { + content: "\e382\e382" +} + +.fa-duotone.fa-circle-waveform-lines:after, +.fa-duotone.fa-waveform-circle:after, +.fad.fa-circle-waveform-lines:after, +.fad.fa-waveform-circle:after { + content: "\e12d\e12d" +} + +.fa-duotone.fa-dollar-sign:after, +.fa-duotone.fa-dollar:after, +.fa-duotone.fa-usd:after, +.fad.fa-dollar-sign:after, +.fad.fa-dollar:after, +.fad.fa-usd:after { + content: "\24\24" +} + +.fa-duotone.fa-ferris-wheel:after, +.fad.fa-ferris-wheel:after { + content: "\e174\e174" +} + +.fa-duotone.fa-computer-speaker:after, +.fad.fa-computer-speaker:after { + content: "\f8b2\f8b2" +} + +.fa-duotone.fa-skull-cow:after, +.fad.fa-skull-cow:after { + content: "\f8de\f8de" +} + +.fa-duotone.fa-x:after, +.fad.fa-x:after { + content: "\58\58" +} + +.fa-duotone.fa-magnifying-glass-dollar:after, +.fa-duotone.fa-search-dollar:after, +.fad.fa-magnifying-glass-dollar:after, +.fad.fa-search-dollar:after { + content: "\f688\f688" +} + +.fa-duotone.fa-users-cog:after, +.fa-duotone.fa-users-gear:after, +.fad.fa-users-cog:after, +.fad.fa-users-gear:after { + content: "\f509\f509" +} + +.fa-duotone.fa-person-military-pointing:after, +.fad.fa-person-military-pointing:after { + content: "\e54a\e54a" +} + +.fa-duotone.fa-bank:after, +.fa-duotone.fa-building-columns:after, +.fa-duotone.fa-institution:after, +.fa-duotone.fa-museum:after, +.fa-duotone.fa-university:after, +.fad.fa-bank:after, +.fad.fa-building-columns:after, +.fad.fa-institution:after, +.fad.fa-museum:after, +.fad.fa-university:after { + content: "\f19c\f19c" +} + +.fa-duotone.fa-circle-t:after, +.fad.fa-circle-t:after { + content: "\e124\e124" +} + +.fa-duotone.fa-sack:after, +.fad.fa-sack:after { + content: "\f81c\f81c" +} + +.fa-duotone.fa-grid-2:after, +.fad.fa-grid-2:after { + content: "\e196\e196" +} + +.fa-duotone.fa-camera-cctv:after, +.fa-duotone.fa-cctv:after, +.fad.fa-camera-cctv:after, +.fad.fa-cctv:after { + content: "\f8ac\f8ac" +} + +.fa-duotone.fa-umbrella:after, +.fad.fa-umbrella:after { + content: "\f0e9\f0e9" +} + +.fa-duotone.fa-trowel:after, +.fad.fa-trowel:after { + content: "\e589\e589" +} + +.fa-duotone.fa-horizontal-rule:after, +.fad.fa-horizontal-rule:after { + content: "\f86c\f86c" +} + +.fa-duotone.fa-bed-alt:after, +.fa-duotone.fa-bed-front:after, +.fad.fa-bed-alt:after, +.fad.fa-bed-front:after { + content: "\f8f7\f8f7" +} + +.fa-duotone.fa-d:after, +.fad.fa-d:after { + content: "\44\44" +} + +.fa-duotone.fa-stapler:after, +.fad.fa-stapler:after { + content: "\e5af\e5af" +} + +.fa-duotone.fa-masks-theater:after, +.fa-duotone.fa-theater-masks:after, +.fad.fa-masks-theater:after, +.fad.fa-theater-masks:after { + content: "\f630\f630" +} + +.fa-duotone.fa-file-gif:after, +.fad.fa-file-gif:after { + content: "\e645\e645" +} + +.fa-duotone.fa-kip-sign:after, +.fad.fa-kip-sign:after { + content: "\e1c4\e1c4" +} + +.fa-duotone.fa-face-woozy:after, +.fad.fa-face-woozy:after { + content: "\e3a2\e3a2" +} + +.fa-duotone.fa-cloud-question:after, +.fad.fa-cloud-question:after { + content: "\e492\e492" +} + +.fa-duotone.fa-pineapple:after, +.fad.fa-pineapple:after { + content: "\e31f\e31f" +} + +.fa-duotone.fa-hand-point-left:after, +.fad.fa-hand-point-left:after { + content: "\f0a5\f0a5" +} + +.fa-duotone.fa-gallery-thumbnails:after, +.fad.fa-gallery-thumbnails:after { + content: "\e3aa\e3aa" +} + +.fa-duotone.fa-circle-j:after, +.fad.fa-circle-j:after { + content: "\e112\e112" +} + +.fa-duotone.fa-eyes:after, +.fad.fa-eyes:after { + content: "\e367\e367" +} + +.fa-duotone.fa-handshake-alt:after, +.fa-duotone.fa-handshake-simple:after, +.fad.fa-handshake-alt:after, +.fad.fa-handshake-simple:after { + content: "\f4c6\f4c6" +} + +.fa-duotone.fa-file-caret-up:after, +.fa-duotone.fa-page-caret-up:after, +.fad.fa-file-caret-up:after, +.fad.fa-page-caret-up:after { + content: "\e42a\e42a" +} + +.fa-duotone.fa-fighter-jet:after, +.fa-duotone.fa-jet-fighter:after, +.fad.fa-fighter-jet:after, +.fad.fa-jet-fighter:after { + content: "\f0fb\f0fb" +} + +.fa-duotone.fa-comet:after, +.fad.fa-comet:after { + content: "\e003\e003" +} + +.fa-duotone.fa-share-alt-square:after, +.fa-duotone.fa-square-share-nodes:after, +.fad.fa-share-alt-square:after, +.fad.fa-square-share-nodes:after { + content: "\f1e1\f1e1" +} + +.fa-duotone.fa-reflect-vertical:after, +.fad.fa-reflect-vertical:after { + content: "\e665\e665" +} + +.fa-duotone.fa-shield-keyhole:after, +.fad.fa-shield-keyhole:after { + content: "\e248\e248" +} + +.fa-duotone.fa-file-mp4:after, +.fad.fa-file-mp4:after { + content: "\e649\e649" +} + +.fa-duotone.fa-barcode:after, +.fad.fa-barcode:after { + content: "\f02a\f02a" +} + +.fa-duotone.fa-bulldozer:after, +.fad.fa-bulldozer:after { + content: "\e655\e655" +} + +.fa-duotone.fa-plus-minus:after, +.fad.fa-plus-minus:after { + content: "\e43c\e43c" +} + +.fa-duotone.fa-sliders-v-square:after, +.fa-duotone.fa-square-sliders-vertical:after, +.fad.fa-sliders-v-square:after, +.fad.fa-square-sliders-vertical:after { + content: "\f3f2\f3f2" +} + +.fa-duotone.fa-video-camera:after, +.fa-duotone.fa-video:after, +.fad.fa-video-camera:after, +.fad.fa-video:after { + content: "\f03d\f03d" +} + +.fa-duotone.fa-comment-middle-alt:after, +.fa-duotone.fa-message-middle:after, +.fad.fa-comment-middle-alt:after, +.fad.fa-message-middle:after { + content: "\e1e1\e1e1" +} + +.fa-duotone.fa-graduation-cap:after, +.fa-duotone.fa-mortar-board:after, +.fad.fa-graduation-cap:after, +.fad.fa-mortar-board:after { + content: "\f19d\f19d" +} + +.fa-duotone.fa-hand-holding-medical:after, +.fad.fa-hand-holding-medical:after { + content: "\e05c\e05c" +} + +.fa-duotone.fa-person-circle-check:after, +.fad.fa-person-circle-check:after { + content: "\e53e\e53e" +} + +.fa-duotone.fa-square-z:after, +.fad.fa-square-z:after { + content: "\e288\e288" +} + +.fa-duotone.fa-comment-alt-text:after, +.fa-duotone.fa-message-text:after, +.fad.fa-comment-alt-text:after, +.fad.fa-message-text:after { + content: "\e1e6\e1e6" +} + +.fa-duotone.fa-level-up-alt:after, +.fa-duotone.fa-turn-up:after, +.fad.fa-level-up-alt:after, +.fad.fa-turn-up:after { + content: "\f3bf\f3bf" +} + +:host, +:root { + --fa-font-light: normal 300 1em/1 "Font Awesome 6 Free" +} + +@font-face { + font-family: "Font Awesome 6 Free"; + font-style: normal; + font-weight: 300; + font-display: block; + src: url(../webfonts/fa-light-300.woff2) format("woff2"), url(../webfonts/fa-light-300.ttf) format("truetype") +} + +.fa-light, +.fal { + font-weight: 300 +} + +:host, +:root { + --fa-font-regular: normal 400 1em/1 "Font Awesome 6 Free" +} + +@font-face { + font-family: "Font Awesome 6 Free"; + font-style: normal; + font-weight: 400; + font-display: block; + src: url(../webfonts/fa-regular-400.woff2) format("woff2"), url(../webfonts/fa-regular-400.ttf) format("truetype") +} + +.fa-regular, +.far { + font-weight: 400 +} + +:host, +:root { + --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Free" +} + +@font-face { + font-family: "Font Awesome 6 Free"; + font-style: normal; + font-weight: 900; + font-display: block; + src: url(../webfonts/fa-solid-900.woff2) format("woff2"), url(../webfonts/fa-solid-900.ttf) format("truetype") +} + +.fa-solid, +.fas { + font-weight: 900 +} + +:host, +:root { + --fa-style-family-classic: "Font Awesome 6 Free"; + --fa-font-thin: normal 100 1em/1 "Font Awesome 6 Free" +} + +@font-face { + font-family: "Font Awesome 6 Free"; + font-style: normal; + font-weight: 100; + font-display: block; + src: url(../webfonts/fa-thin-100.woff2) format("woff2"), url(../webfonts/fa-thin-100.ttf) format("truetype") +} + +.fa-thin, +.fat { + font-weight: 100 +} + +@font-face { + font-family: "Font Awesome 5 Brands"; + font-display: block; + font-weight: 400; + src: url(../webfonts/fa-brands-400.woff2) format("woff2"), url(../webfonts/fa-brands-400.ttf) format("truetype") +} + +@font-face { + font-family: "Font Awesome 5 Pro"; + font-display: block; + font-weight: 900; + src: url(../webfonts/fa-solid-900.woff2) format("woff2"), url(../webfonts/fa-solid-900.ttf) format("truetype") +} + +@font-face { + font-family: "Font Awesome 5 Pro"; + font-display: block; + font-weight: 400; + src: url(../webfonts/fa-regular-400.woff2) format("woff2"), url(../webfonts/fa-regular-400.ttf) format("truetype") +} + +@font-face { + font-family: "Font Awesome 5 Pro"; + font-display: block; + font-weight: 300; + src: url(../webfonts/fa-light-300.woff2) format("woff2"), url(../webfonts/fa-light-300.ttf) format("truetype") +} + +@font-face { + font-family: "Font Awesome 5 Duotone"; + font-display: block; + font-weight: 900; + src: url(../webfonts/fa-duotone-900.woff2) format("woff2"), url(../webfonts/fa-duotone-900.ttf) format("truetype") +} + +@font-face { + font-family: "FontAwesome"; + font-display: block; + src: url(../webfonts/fa-solid-900.woff2) format("woff2"), url(../webfonts/fa-solid-900.ttf) format("truetype") +} + +@font-face { + font-family: "FontAwesome"; + font-display: block; + src: url(../webfonts/fa-brands-400.woff2) format("woff2"), url(../webfonts/fa-brands-400.ttf) format("truetype") +} + +@font-face { + font-family: "FontAwesome"; + font-display: block; + src: url(../webfonts/fa-regular-400.woff2) format("woff2"), url(../webfonts/fa-regular-400.ttf) format("truetype"); + unicode-range: u+f003, u+f006, u+f014, u+f016-f017, u+f01a-f01b, u+f01d, u+f022, u+f03e, u+f044, u+f046, u+f05c-f05d, u+f06e, u+f070, u+f087-f088, u+f08a, u+f094, u+f096-f097, u+f09d, u+f0a0, u+f0a2, u+f0a4-f0a7, u+f0c5, u+f0c7, u+f0e5-f0e6, u+f0eb, u+f0f6-f0f8, u+f10c, u+f114-f115, u+f118-f11a, u+f11c-f11d, u+f133, u+f147, u+f14e, u+f150-f152, u+f185-f186, u+f18e, u+f190-f192, u+f196, u+f1c1-f1c9, u+f1d9, u+f1db, u+f1e3, u+f1ea, u+f1f7, u+f1f9, u+f20a, u+f247-f248, u+f24a, u+f24d, u+f255-f25b, u+f25d, u+f271-f274, u+f278, u+f27b, u+f28c, u+f28e, u+f29c, u+f2b5, u+f2b7, u+f2ba, u+f2bc, u+f2be, u+f2c0-f2c1, u+f2c3, u+f2d0, u+f2d2, u+f2d4, u+f2dc +} + +@font-face { + font-family: "FontAwesome"; + font-display: block; + src: url(../webfonts/fa-v4compatibility.woff2) format("woff2"), url(../webfonts/fa-v4compatibility.ttf) format("truetype"); + unicode-range: u+f041, u+f047, u+f065-f066, u+f07d-f07e, u+f080, u+f08b, u+f08e, u+f090, u+f09a, u+f0ac, u+f0ae, u+f0b2, u+f0d0, u+f0d6, u+f0e4, u+f0ec, u+f10a-f10b, u+f123, u+f13e, u+f148-f149, u+f14c, u+f156, u+f15e, u+f160-f161, u+f163, u+f175-f178, u+f195, u+f1f8, u+f219, u+f27a +} \ No newline at end of file diff --git a/wp-content/themes/abiz/assets/css/all.min.css b/wp-content/themes/abiz/assets/css/all.min.css new file mode 100644 index 0000000..93a74d4 --- /dev/null +++ b/wp-content/themes/abiz/assets/css/all.min.css @@ -0,0 +1,6 @@ +/*! + * Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2023 Fonticons, Inc. + */ +.fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.fa,.fa-brands,.fa-classic,.fa-duotone,.fa-light,.fa-regular,.fa-sharp,.fa-sharp-solid,.fa-solid,.fa-thin,.fab,.fad,.fal,.far,.fas,.fasl,.fasr,.fass,.fast,.fat{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-classic,.fa-light,.fa-regular,.fa-solid,.fa-thin,.fal,.far,.fas,.fat{font-family:"Font Awesome 6 Free"}.fa-brands,.fab{font-family:"Font Awesome 6 Brands"}.fa-classic.fa-duotone,.fa-duotone,.fad{font-family:"Font Awesome 6 Duotone"}.fa-sharp,.fasl,.fasr,.fass,.fast{font-family:"Font Awesome 6 Sharp"}.fa-sharp,.fass{font-weight:900}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius,.1em);border:var(--fa-border-width,.08em) var(--fa-border-style,solid) var(--fa-border-color,#eee);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-duration:var(--fa-animation-duration,2s);animation-duration:var(--fa-animation-duration,2s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,steps(8));animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-transition-delay:0s;transition-delay:0s;-webkit-transition-duration:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle,none));transform:rotate(var(--fa-rotate-angle,none))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)}.fa-0:before{content:"\30"}.fa-1:before{content:"\31"}.fa-2:before{content:"\32"}.fa-3:before{content:"\33"}.fa-4:before{content:"\34"}.fa-5:before{content:"\35"}.fa-6:before{content:"\36"}.fa-7:before{content:"\37"}.fa-8:before{content:"\38"}.fa-9:before{content:"\39"}.fa-fill-drip:before{content:"\f576"}.fa-arrows-to-circle:before{content:"\e4bd"}.fa-chevron-circle-right:before,.fa-circle-chevron-right:before{content:"\f138"}.fa-wagon-covered:before{content:"\f8ee"}.fa-line-height:before{content:"\f871"}.fa-bagel:before{content:"\e3d7"}.fa-transporter-7:before{content:"\e2a8"}.fa-at:before{content:"\40"}.fa-rectangles-mixed:before{content:"\e323"}.fa-phone-arrow-up-right:before,.fa-phone-arrow-up:before,.fa-phone-outgoing:before{content:"\e224"}.fa-trash-alt:before,.fa-trash-can:before{content:"\f2ed"}.fa-circle-l:before{content:"\e114"}.fa-head-side-goggles:before,.fa-head-vr:before{content:"\f6ea"}.fa-text-height:before{content:"\f034"}.fa-user-times:before,.fa-user-xmark:before{content:"\f235"}.fa-face-hand-yawn:before{content:"\e379"}.fa-gauge-simple-min:before,.fa-tachometer-slowest:before{content:"\f62d"}.fa-stethoscope:before{content:"\f0f1"}.fa-coffin:before{content:"\f6c6"}.fa-comment-alt:before,.fa-message:before{content:"\f27a"}.fa-bowl-salad:before,.fa-salad:before{content:"\f81e"}.fa-info:before{content:"\f129"}.fa-robot-astromech:before{content:"\e2d2"}.fa-ring-diamond:before{content:"\e5ab"}.fa-fondue-pot:before{content:"\e40d"}.fa-theta:before{content:"\f69e"}.fa-face-hand-peeking:before{content:"\e481"}.fa-square-user:before{content:"\e283"}.fa-compress-alt:before,.fa-down-left-and-up-right-to-center:before{content:"\f422"}.fa-explosion:before{content:"\e4e9"}.fa-file-alt:before,.fa-file-lines:before,.fa-file-text:before{content:"\f15c"}.fa-wave-square:before{content:"\f83e"}.fa-ring:before{content:"\f70b"}.fa-building-un:before{content:"\e4d9"}.fa-dice-three:before{content:"\f527"}.fa-tire-pressure-warning:before{content:"\f633"}.fa-wifi-2:before,.fa-wifi-fair:before{content:"\f6ab"}.fa-calendar-alt:before,.fa-calendar-days:before{content:"\f073"}.fa-mp3-player:before{content:"\f8ce"}.fa-anchor-circle-check:before{content:"\e4aa"}.fa-tally-4:before{content:"\e297"}.fa-rectangle-history:before{content:"\e4a2"}.fa-building-circle-arrow-right:before{content:"\e4d1"}.fa-volleyball-ball:before,.fa-volleyball:before{content:"\f45f"}.fa-sun-haze:before{content:"\f765"}.fa-text-size:before{content:"\f894"}.fa-ufo:before{content:"\e047"}.fa-fork:before,.fa-utensil-fork:before{content:"\f2e3"}.fa-arrows-up-to-line:before{content:"\e4c2"}.fa-mobile-signal:before{content:"\e1ef"}.fa-barcode-scan:before{content:"\f465"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-folder-arrow-down:before,.fa-folder-download:before{content:"\e053"}.fa-circle-minus:before,.fa-minus-circle:before{content:"\f056"}.fa-face-icicles:before{content:"\e37c"}.fa-shovel:before{content:"\f713"}.fa-door-open:before{content:"\f52b"}.fa-films:before{content:"\e17a"}.fa-right-from-bracket:before,.fa-sign-out-alt:before{content:"\f2f5"}.fa-face-glasses:before{content:"\e377"}.fa-nfc:before{content:"\e1f7"}.fa-atom:before{content:"\f5d2"}.fa-soap:before{content:"\e06e"}.fa-heart-music-camera-bolt:before,.fa-icons:before{content:"\f86d"}.fa-microphone-alt-slash:before,.fa-microphone-lines-slash:before{content:"\f539"}.fa-closed-captioning-slash:before{content:"\e135"}.fa-calculator-alt:before,.fa-calculator-simple:before{content:"\f64c"}.fa-bridge-circle-check:before{content:"\e4c9"}.fa-sliders-up:before,.fa-sliders-v:before{content:"\f3f1"}.fa-location-minus:before,.fa-map-marker-minus:before{content:"\f609"}.fa-pump-medical:before{content:"\e06a"}.fa-fingerprint:before{content:"\f577"}.fa-ski-boot:before{content:"\e3cc"}.fa-rectangle-sd:before,.fa-standard-definition:before{content:"\e28a"}.fa-h1:before{content:"\f313"}.fa-hand-point-right:before{content:"\f0a4"}.fa-magnifying-glass-location:before,.fa-search-location:before{content:"\f689"}.fa-message-bot:before{content:"\e3b8"}.fa-forward-step:before,.fa-step-forward:before{content:"\f051"}.fa-face-smile-beam:before,.fa-smile-beam:before{content:"\f5b8"}.fa-light-ceiling:before{content:"\e016"}.fa-comment-alt-exclamation:before,.fa-message-exclamation:before{content:"\f4a5"}.fa-bowl-scoop:before,.fa-bowl-shaved-ice:before{content:"\e3de"}.fa-square-x:before{content:"\e286"}.fa-building-memo:before{content:"\e61e"}.fa-utility-pole-double:before{content:"\e2c4"}.fa-flag-checkered:before{content:"\f11e"}.fa-chevron-double-up:before,.fa-chevrons-up:before{content:"\f325"}.fa-football-ball:before,.fa-football:before{content:"\f44e"}.fa-user-vneck:before{content:"\e461"}.fa-school-circle-exclamation:before{content:"\e56c"}.fa-crop:before{content:"\f125"}.fa-angle-double-down:before,.fa-angles-down:before{content:"\f103"}.fa-users-rectangle:before{content:"\e594"}.fa-people-roof:before{content:"\e537"}.fa-arrow-square-right:before,.fa-square-arrow-right:before{content:"\f33b"}.fa-location-plus:before,.fa-map-marker-plus:before{content:"\f60a"}.fa-lightbulb-exclamation-on:before{content:"\e1ca"}.fa-people-line:before{content:"\e534"}.fa-beer-mug-empty:before,.fa-beer:before{content:"\f0fc"}.fa-crate-empty:before{content:"\e151"}.fa-diagram-predecessor:before{content:"\e477"}.fa-transporter:before{content:"\e042"}.fa-calendar-circle-user:before{content:"\e471"}.fa-arrow-up-long:before,.fa-long-arrow-up:before{content:"\f176"}.fa-person-carry-box:before,.fa-person-carry:before{content:"\f4cf"}.fa-burn:before,.fa-fire-flame-simple:before{content:"\f46a"}.fa-male:before,.fa-person:before{content:"\f183"}.fa-laptop:before{content:"\f109"}.fa-file-csv:before{content:"\f6dd"}.fa-menorah:before{content:"\f676"}.fa-union:before{content:"\f6a2"}.fa-chevron-double-left:before,.fa-chevrons-left:before{content:"\f323"}.fa-circle-heart:before,.fa-heart-circle:before{content:"\f4c7"}.fa-truck-plane:before{content:"\e58f"}.fa-record-vinyl:before{content:"\f8d9"}.fa-bring-forward:before{content:"\f856"}.fa-square-p:before{content:"\e279"}.fa-face-grin-stars:before,.fa-grin-stars:before{content:"\f587"}.fa-sigma:before{content:"\f68b"}.fa-camera-movie:before{content:"\f8a9"}.fa-bong:before{content:"\f55c"}.fa-clarinet:before{content:"\f8ad"}.fa-truck-flatbed:before{content:"\e2b6"}.fa-pastafarianism:before,.fa-spaghetti-monster-flying:before{content:"\f67b"}.fa-arrow-down-up-across-line:before{content:"\e4af"}.fa-arrows-rotate-reverse:before{content:"\e630"}.fa-leaf-heart:before{content:"\f4cb"}.fa-house-building:before{content:"\e1b1"}.fa-cheese-swiss:before{content:"\f7f0"}.fa-spoon:before,.fa-utensil-spoon:before{content:"\f2e5"}.fa-jar-wheat:before{content:"\e517"}.fa-envelopes-bulk:before,.fa-mail-bulk:before{content:"\f674"}.fa-file-circle-exclamation:before{content:"\e4eb"}.fa-bow-arrow:before{content:"\f6b9"}.fa-cart-xmark:before{content:"\e0dd"}.fa-hexagon-xmark:before,.fa-times-hexagon:before,.fa-xmark-hexagon:before{content:"\f2ee"}.fa-circle-h:before,.fa-hospital-symbol:before{content:"\f47e"}.fa-merge:before{content:"\e526"}.fa-pager:before{content:"\f815"}.fa-cart-minus:before{content:"\e0db"}.fa-address-book:before,.fa-contact-book:before{content:"\f2b9"}.fa-pan-frying:before{content:"\e42c"}.fa-grid-3:before,.fa-grid:before{content:"\e195"}.fa-football-helmet:before{content:"\f44f"}.fa-hand-love:before{content:"\e1a5"}.fa-trees:before{content:"\f724"}.fa-strikethrough:before{content:"\f0cc"}.fa-page:before{content:"\e428"}.fa-k:before{content:"\4b"}.fa-diagram-previous:before{content:"\e478"}.fa-gauge-min:before,.fa-tachometer-alt-slowest:before{content:"\f628"}.fa-folder-grid:before{content:"\e188"}.fa-eggplant:before{content:"\e16c"}.fa-excavator:before{content:"\e656"}.fa-ram:before{content:"\f70a"}.fa-landmark-flag:before{content:"\e51c"}.fa-lips:before{content:"\f600"}.fa-pencil-alt:before,.fa-pencil:before{content:"\f303"}.fa-backward:before{content:"\f04a"}.fa-caret-right:before{content:"\f0da"}.fa-comments:before{content:"\f086"}.fa-file-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-desktop-arrow-down:before{content:"\e155"}.fa-code-pull-request:before{content:"\e13c"}.fa-pumpkin:before{content:"\f707"}.fa-clipboard-list:before{content:"\f46d"}.fa-pen-field:before{content:"\e211"}.fa-blueberries:before{content:"\e2e8"}.fa-truck-loading:before,.fa-truck-ramp-box:before{content:"\f4de"}.fa-note:before{content:"\e1ff"}.fa-arrow-down-to-square:before{content:"\e096"}.fa-user-check:before{content:"\f4fc"}.fa-cloud-xmark:before{content:"\e35f"}.fa-vial-virus:before{content:"\e597"}.fa-book-alt:before,.fa-book-blank:before{content:"\f5d9"}.fa-golf-flag-hole:before{content:"\e3ac"}.fa-comment-alt-arrow-down:before,.fa-message-arrow-down:before{content:"\e1db"}.fa-face-unamused:before{content:"\e39f"}.fa-sheet-plastic:before{content:"\e571"}.fa-circle-9:before{content:"\e0f6"}.fa-blog:before{content:"\f781"}.fa-user-ninja:before{content:"\f504"}.fa-pencil-slash:before{content:"\e215"}.fa-bowling-pins:before{content:"\f437"}.fa-person-arrow-up-from-line:before{content:"\e539"}.fa-down-right:before{content:"\e16b"}.fa-scroll-torah:before,.fa-torah:before{content:"\f6a0"}.fa-webhook:before{content:"\e5d5"}.fa-blinds-open:before{content:"\f8fc"}.fa-fence:before{content:"\e303"}.fa-arrow-alt-up:before,.fa-up:before{content:"\f357"}.fa-broom-ball:before,.fa-quidditch-broom-ball:before,.fa-quidditch:before{content:"\f458"}.fa-drumstick:before{content:"\f6d6"}.fa-square-v:before{content:"\e284"}.fa-face-awesome:before,.fa-gave-dandy:before{content:"\e409"}.fa-dial-off:before{content:"\e162"}.fa-toggle-off:before{content:"\f204"}.fa-face-smile-horns:before{content:"\e391"}.fa-archive:before,.fa-box-archive:before{content:"\f187"}.fa-grapes:before{content:"\e306"}.fa-person-drowning:before{content:"\e545"}.fa-dial-max:before{content:"\e15e"}.fa-circle-m:before{content:"\e115"}.fa-calendar-image:before{content:"\e0d4"}.fa-caret-circle-down:before,.fa-circle-caret-down:before{content:"\f32d"}.fa-arrow-down-9-1:before,.fa-sort-numeric-desc:before,.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-face-grin-tongue-squint:before,.fa-grin-tongue-squint:before{content:"\f58a"}.fa-shish-kebab:before{content:"\f821"}.fa-spray-can:before{content:"\f5bd"}.fa-alarm-snooze:before{content:"\f845"}.fa-scarecrow:before{content:"\f70d"}.fa-truck-monster:before{content:"\f63b"}.fa-gift-card:before{content:"\f663"}.fa-w:before{content:"\57"}.fa-code-pull-request-draft:before{content:"\e3fa"}.fa-square-b:before{content:"\e264"}.fa-elephant:before{content:"\f6da"}.fa-earth-africa:before,.fa-globe-africa:before{content:"\f57c"}.fa-rainbow:before{content:"\f75b"}.fa-circle-notch:before{content:"\f1ce"}.fa-tablet-alt:before,.fa-tablet-screen-button:before{content:"\f3fa"}.fa-paw:before{content:"\f1b0"}.fa-message-question:before{content:"\e1e3"}.fa-cloud:before{content:"\f0c2"}.fa-trowel-bricks:before{content:"\e58a"}.fa-square-3:before{content:"\e258"}.fa-face-flushed:before,.fa-flushed:before{content:"\f579"}.fa-hospital-user:before{content:"\f80d"}.fa-microwave:before{content:"\e01b"}.fa-chf-sign:before{content:"\e602"}.fa-tent-arrow-left-right:before{content:"\e57f"}.fa-cart-circle-arrow-up:before{content:"\e3f0"}.fa-trash-clock:before{content:"\e2b0"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-sprinkler-ceiling:before{content:"\e44c"}.fa-browsers:before{content:"\e0cb"}.fa-trillium:before{content:"\e588"}.fa-music-slash:before{content:"\f8d1"}.fa-truck-ramp:before{content:"\f4e0"}.fa-binoculars:before{content:"\f1e5"}.fa-microphone-slash:before{content:"\f131"}.fa-box-tissue:before{content:"\e05b"}.fa-circle-c:before{content:"\e101"}.fa-star-christmas:before{content:"\f7d4"}.fa-chart-bullet:before{content:"\e0e1"}.fa-motorcycle:before{content:"\f21c"}.fa-tree-christmas:before{content:"\f7db"}.fa-tire-flat:before{content:"\f632"}.fa-sunglasses:before{content:"\f892"}.fa-badge:before{content:"\f335"}.fa-comment-alt-edit:before,.fa-message-edit:before,.fa-message-pen:before{content:"\f4a4"}.fa-bell-concierge:before,.fa-concierge-bell:before{content:"\f562"}.fa-pen-ruler:before,.fa-pencil-ruler:before{content:"\f5ae"}.fa-file-mp3:before{content:"\e648"}.fa-arrow-progress:before{content:"\e5df"}.fa-chess-rook-alt:before,.fa-chess-rook-piece:before{content:"\f448"}.fa-square-root:before{content:"\f697"}.fa-album-collection-circle-plus:before{content:"\e48e"}.fa-people-arrows-left-right:before,.fa-people-arrows:before{content:"\e068"}.fa-sign-post:before{content:"\e624"}.fa-face-angry-horns:before{content:"\e368"}.fa-mars-and-venus-burst:before{content:"\e523"}.fa-tombstone:before{content:"\f720"}.fa-caret-square-right:before,.fa-square-caret-right:before{content:"\f152"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-list-music:before{content:"\f8c9"}.fa-sun-plant-wilt:before{content:"\e57a"}.fa-toilets-portable:before{content:"\e584"}.fa-hockey-puck:before{content:"\f453"}.fa-mustache:before{content:"\e5bc"}.fa-hyphen:before{content:"\2d"}.fa-table:before{content:"\f0ce"}.fa-user-chef:before{content:"\e3d2"}.fa-comment-alt-image:before,.fa-message-image:before{content:"\e1e0"}.fa-users-medical:before{content:"\f830"}.fa-sensor-alert:before,.fa-sensor-triangle-exclamation:before{content:"\e029"}.fa-magnifying-glass-arrow-right:before{content:"\e521"}.fa-digital-tachograph:before,.fa-tachograph-digital:before{content:"\f566"}.fa-face-mask:before{content:"\e37f"}.fa-pickleball:before{content:"\e435"}.fa-star-sharp-half:before{content:"\e28c"}.fa-users-slash:before{content:"\e073"}.fa-clover:before{content:"\e139"}.fa-meat:before{content:"\f814"}.fa-mail-reply:before,.fa-reply:before{content:"\f3e5"}.fa-star-and-crescent:before{content:"\f699"}.fa-empty-set:before{content:"\f656"}.fa-house-fire:before{content:"\e50c"}.fa-minus-square:before,.fa-square-minus:before{content:"\f146"}.fa-helicopter:before{content:"\f533"}.fa-bird:before{content:"\e469"}.fa-compass:before{content:"\f14e"}.fa-caret-square-down:before,.fa-square-caret-down:before{content:"\f150"}.fa-heart-half-alt:before,.fa-heart-half-stroke:before{content:"\e1ac"}.fa-file-circle-question:before{content:"\e4ef"}.fa-truck-utensils:before{content:"\e628"}.fa-laptop-code:before{content:"\f5fc"}.fa-joystick:before{content:"\f8c5"}.fa-grill-fire:before{content:"\e5a4"}.fa-rectangle-vertical-history:before{content:"\e237"}.fa-swatchbook:before{content:"\f5c3"}.fa-prescription-bottle:before{content:"\f485"}.fa-bars:before,.fa-navicon:before{content:"\f0c9"}.fa-keyboard-left:before{content:"\e1c3"}.fa-people-group:before{content:"\e533"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-heart-broken:before,.fa-heart-crack:before{content:"\f7a9"}.fa-face-beam-hand-over-mouth:before{content:"\e47c"}.fa-droplet-percent:before,.fa-humidity:before{content:"\f750"}.fa-external-link-square-alt:before,.fa-square-up-right:before{content:"\f360"}.fa-face-kiss-beam:before,.fa-kiss-beam:before{content:"\f597"}.fa-corn:before{content:"\f6c7"}.fa-roller-coaster:before{content:"\e324"}.fa-photo-film-music:before{content:"\e228"}.fa-radar:before{content:"\e024"}.fa-sickle:before{content:"\f822"}.fa-film:before{content:"\f008"}.fa-coconut:before{content:"\e2f6"}.fa-ruler-horizontal:before{content:"\f547"}.fa-shield-cross:before{content:"\f712"}.fa-cassette-tape:before{content:"\f8ab"}.fa-square-terminal:before{content:"\e32a"}.fa-people-robbery:before{content:"\e536"}.fa-lightbulb:before{content:"\f0eb"}.fa-caret-left:before{content:"\f0d9"}.fa-comment-middle:before{content:"\e149"}.fa-trash-can-list:before{content:"\e2ab"}.fa-block:before{content:"\e46a"}.fa-circle-exclamation:before,.fa-exclamation-circle:before{content:"\f06a"}.fa-school-circle-xmark:before{content:"\e56d"}.fa-arrow-right-from-bracket:before,.fa-sign-out:before{content:"\f08b"}.fa-face-frown-slight:before{content:"\e376"}.fa-chevron-circle-down:before,.fa-circle-chevron-down:before{content:"\f13a"}.fa-sidebar-flip:before{content:"\e24f"}.fa-unlock-alt:before,.fa-unlock-keyhole:before{content:"\f13e"}.fa-temperature-list:before{content:"\e299"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-headphones-alt:before,.fa-headphones-simple:before{content:"\f58f"}.fa-sitemap:before{content:"\f0e8"}.fa-pipe-section:before{content:"\e438"}.fa-space-station-moon-alt:before,.fa-space-station-moon-construction:before{content:"\e034"}.fa-circle-dollar-to-slot:before,.fa-donate:before{content:"\f4b9"}.fa-memory:before{content:"\f538"}.fa-face-sleeping:before{content:"\e38d"}.fa-road-spikes:before{content:"\e568"}.fa-fire-burner:before{content:"\e4f1"}.fa-squirrel:before{content:"\f71a"}.fa-arrow-to-top:before,.fa-arrow-up-to-line:before{content:"\f341"}.fa-flag:before{content:"\f024"}.fa-face-cowboy-hat:before{content:"\e36e"}.fa-hanukiah:before{content:"\f6e6"}.fa-chart-scatter-3d:before{content:"\e0e8"}.fa-display-chart-up:before{content:"\e5e3"}.fa-square-code:before{content:"\e267"}.fa-feather:before{content:"\f52d"}.fa-volume-down:before,.fa-volume-low:before{content:"\f027"}.fa-times-to-slot:before,.fa-vote-nay:before,.fa-xmark-to-slot:before{content:"\f771"}.fa-box-alt:before,.fa-box-taped:before{content:"\f49a"}.fa-comment-slash:before{content:"\f4b3"}.fa-swords:before{content:"\f71d"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-album:before{content:"\f89f"}.fa-circle-n:before{content:"\e118"}.fa-compress:before{content:"\f066"}.fa-wheat-alt:before,.fa-wheat-awn:before{content:"\e2cd"}.fa-ankh:before{content:"\f644"}.fa-hands-holding-child:before{content:"\e4fa"}.fa-asterisk:before{content:"\2a"}.fa-key-skeleton-left-right:before{content:"\e3b4"}.fa-comment-lines:before{content:"\f4b0"}.fa-luchador-mask:before,.fa-luchador:before,.fa-mask-luchador:before{content:"\f455"}.fa-check-square:before,.fa-square-check:before{content:"\f14a"}.fa-shredder:before{content:"\f68a"}.fa-book-open-alt:before,.fa-book-open-cover:before{content:"\e0c0"}.fa-sandwich:before{content:"\f81f"}.fa-peseta-sign:before{content:"\e221"}.fa-parking-slash:before,.fa-square-parking-slash:before{content:"\f617"}.fa-train-tunnel:before{content:"\e454"}.fa-header:before,.fa-heading:before{content:"\f1dc"}.fa-ghost:before{content:"\f6e2"}.fa-face-anguished:before{content:"\e369"}.fa-hockey-sticks:before{content:"\f454"}.fa-abacus:before{content:"\f640"}.fa-film-alt:before,.fa-film-simple:before{content:"\f3a0"}.fa-list-squares:before,.fa-list:before{content:"\f03a"}.fa-tree-palm:before{content:"\f82b"}.fa-phone-square-alt:before,.fa-square-phone-flip:before{content:"\f87b"}.fa-cart-plus:before{content:"\f217"}.fa-gamepad:before{content:"\f11b"}.fa-border-center-v:before{content:"\f89d"}.fa-circle-dot:before,.fa-dot-circle:before{content:"\f192"}.fa-clipboard-medical:before{content:"\e133"}.fa-dizzy:before,.fa-face-dizzy:before{content:"\f567"}.fa-egg:before{content:"\f7fb"}.fa-arrow-alt-to-top:before,.fa-up-to-line:before{content:"\f34d"}.fa-house-medical-circle-xmark:before{content:"\e513"}.fa-watch-fitness:before{content:"\f63e"}.fa-clock-nine-thirty:before{content:"\e34d"}.fa-campground:before{content:"\f6bb"}.fa-folder-plus:before{content:"\f65e"}.fa-jug:before{content:"\f8c6"}.fa-futbol-ball:before,.fa-futbol:before,.fa-soccer-ball:before{content:"\f1e3"}.fa-snow-blowing:before{content:"\f761"}.fa-paint-brush:before,.fa-paintbrush:before{content:"\f1fc"}.fa-lock:before{content:"\f023"}.fa-arrow-down-from-line:before,.fa-arrow-from-top:before{content:"\f345"}.fa-gas-pump:before{content:"\f52f"}.fa-signal-alt-slash:before,.fa-signal-bars-slash:before{content:"\f694"}.fa-monkey:before{content:"\f6fb"}.fa-pro:before,.fa-rectangle-pro:before{content:"\e235"}.fa-house-night:before{content:"\e010"}.fa-hot-tub-person:before,.fa-hot-tub:before{content:"\f593"}.fa-globe-pointer:before{content:"\e60e"}.fa-blanket:before{content:"\f498"}.fa-map-location:before,.fa-map-marked:before{content:"\f59f"}.fa-house-flood-water:before{content:"\e50e"}.fa-comments-question-check:before{content:"\e14f"}.fa-tree:before{content:"\f1bb"}.fa-arrows-cross:before{content:"\e0a2"}.fa-backpack:before{content:"\f5d4"}.fa-square-small:before{content:"\e27e"}.fa-folder-arrow-up:before,.fa-folder-upload:before{content:"\e054"}.fa-bridge-lock:before{content:"\e4cc"}.fa-crosshairs-simple:before{content:"\e59f"}.fa-sack-dollar:before{content:"\f81d"}.fa-edit:before,.fa-pen-to-square:before{content:"\f044"}.fa-sliders-h-square:before,.fa-square-sliders:before{content:"\f3f0"}.fa-car-side:before{content:"\f5e4"}.fa-comment-middle-top-alt:before,.fa-message-middle-top:before{content:"\e1e2"}.fa-lightbulb-on:before{content:"\f672"}.fa-knife:before,.fa-utensil-knife:before{content:"\f2e4"}.fa-share-alt:before,.fa-share-nodes:before{content:"\f1e0"}.fa-display-chart-up-circle-dollar:before{content:"\e5e6"}.fa-wave-sine:before{content:"\f899"}.fa-heart-circle-minus:before{content:"\e4ff"}.fa-circle-w:before{content:"\e12c"}.fa-calendar-circle:before,.fa-circle-calendar:before{content:"\e102"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-microscope:before{content:"\f610"}.fa-sunset:before{content:"\f767"}.fa-sink:before{content:"\e06d"}.fa-calendar-exclamation:before{content:"\f334"}.fa-truck-container-empty:before{content:"\e2b5"}.fa-hand-heart:before{content:"\f4bc"}.fa-bag-shopping:before,.fa-shopping-bag:before{content:"\f290"}.fa-arrow-down-z-a:before,.fa-sort-alpha-desc:before,.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-mitten:before{content:"\f7b5"}.fa-reply-clock:before,.fa-reply-time:before{content:"\e239"}.fa-person-rays:before{content:"\e54d"}.fa-arrow-alt-right:before,.fa-right:before{content:"\f356"}.fa-circle-f:before{content:"\e10e"}.fa-users:before{content:"\f0c0"}.fa-face-pleading:before{content:"\e386"}.fa-eye-slash:before{content:"\f070"}.fa-flask-vial:before{content:"\e4f3"}.fa-police-box:before{content:"\e021"}.fa-cucumber:before{content:"\e401"}.fa-head-side-brain:before{content:"\f808"}.fa-hand-paper:before,.fa-hand:before{content:"\f256"}.fa-biking-mountain:before,.fa-person-biking-mountain:before{content:"\f84b"}.fa-utensils-slash:before{content:"\e464"}.fa-print-magnifying-glass:before,.fa-print-search:before{content:"\f81a"}.fa-turn-right:before{content:"\e639"}.fa-folder-bookmark:before{content:"\e186"}.fa-arrow-turn-left-down:before{content:"\e633"}.fa-om:before{content:"\f679"}.fa-pi:before{content:"\f67e"}.fa-flask-potion:before,.fa-flask-round-potion:before{content:"\f6e1"}.fa-face-shush:before{content:"\e38c"}.fa-worm:before{content:"\e599"}.fa-house-circle-xmark:before{content:"\e50b"}.fa-plug:before{content:"\f1e6"}.fa-calendar-circle-exclamation:before{content:"\e46e"}.fa-square-i:before{content:"\e272"}.fa-chevron-up:before{content:"\f077"}.fa-face-saluting:before{content:"\e484"}.fa-gauge-simple-low:before,.fa-tachometer-slow:before{content:"\f62c"}.fa-face-persevering:before{content:"\e385"}.fa-camera-circle:before,.fa-circle-camera:before{content:"\e103"}.fa-hand-spock:before{content:"\f259"}.fa-spider-web:before{content:"\f719"}.fa-circle-microphone:before,.fa-microphone-circle:before{content:"\e116"}.fa-book-arrow-up:before{content:"\e0ba"}.fa-popsicle:before{content:"\e43e"}.fa-command:before{content:"\e142"}.fa-blinds:before{content:"\f8fb"}.fa-stopwatch:before{content:"\f2f2"}.fa-saxophone:before{content:"\f8dc"}.fa-square-2:before{content:"\e257"}.fa-field-hockey-stick-ball:before,.fa-field-hockey:before{content:"\f44c"}.fa-arrow-up-square-triangle:before,.fa-sort-shapes-up-alt:before{content:"\f88b"}.fa-face-scream:before{content:"\e38b"}.fa-square-m:before{content:"\e276"}.fa-camera-web:before,.fa-webcam:before{content:"\f832"}.fa-comment-arrow-down:before{content:"\e143"}.fa-lightbulb-cfl:before{content:"\e5a6"}.fa-window-frame-open:before{content:"\e050"}.fa-face-kiss:before,.fa-kiss:before{content:"\f596"}.fa-bridge-circle-xmark:before{content:"\e4cb"}.fa-period:before{content:"\2e"}.fa-face-grin-tongue:before,.fa-grin-tongue:before{content:"\f589"}.fa-up-to-dotted-line:before{content:"\e457"}.fa-thought-bubble:before{content:"\e32e"}.fa-skeleton-ribs:before{content:"\e5cb"}.fa-raygun:before{content:"\e025"}.fa-flute:before{content:"\f8b9"}.fa-acorn:before{content:"\f6ae"}.fa-video-arrow-up-right:before{content:"\e2c9"}.fa-grate-droplet:before{content:"\e194"}.fa-seal-exclamation:before{content:"\e242"}.fa-chess-bishop:before{content:"\f43a"}.fa-message-sms:before{content:"\e1e5"}.fa-coffee-beans:before{content:"\e13f"}.fa-hat-witch:before{content:"\f6e7"}.fa-face-grin-wink:before,.fa-grin-wink:before{content:"\f58c"}.fa-clock-three-thirty:before{content:"\e357"}.fa-deaf:before,.fa-deafness:before,.fa-ear-deaf:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-alarm-clock:before{content:"\f34e"}.fa-eclipse:before{content:"\f749"}.fa-face-relieved:before{content:"\e389"}.fa-road-circle-check:before{content:"\e564"}.fa-dice-five:before{content:"\f523"}.fa-minus-octagon:before,.fa-octagon-minus:before{content:"\f308"}.fa-rss-square:before,.fa-square-rss:before{content:"\f143"}.fa-face-zany:before{content:"\e3a4"}.fa-tricycle:before{content:"\e5c3"}.fa-land-mine-on:before{content:"\e51b"}.fa-square-arrow-up-left:before{content:"\e263"}.fa-i-cursor:before{content:"\f246"}.fa-chart-mixed-up-circle-dollar:before{content:"\e5d9"}.fa-salt-shaker:before{content:"\e446"}.fa-stamp:before{content:"\f5bf"}.fa-file-plus:before{content:"\f319"}.fa-draw-square:before{content:"\f5ef"}.fa-toilet-paper-reverse-slash:before,.fa-toilet-paper-under-slash:before{content:"\e2a1"}.fa-stairs:before{content:"\e289"}.fa-drone-alt:before,.fa-drone-front:before{content:"\f860"}.fa-glass-empty:before{content:"\e191"}.fa-dial-high:before{content:"\e15c"}.fa-user-construction:before,.fa-user-hard-hat:before,.fa-user-helmet-safety:before{content:"\f82c"}.fa-i:before{content:"\49"}.fa-hryvnia-sign:before,.fa-hryvnia:before{content:"\f6f2"}.fa-arrow-down-left-and-arrow-up-right-to-center:before{content:"\e092"}.fa-pills:before{content:"\f484"}.fa-face-grin-wide:before,.fa-grin-alt:before{content:"\f581"}.fa-tooth:before{content:"\f5c9"}.fa-basketball-hoop:before{content:"\f435"}.fa-objects-align-bottom:before{content:"\e3bb"}.fa-v:before{content:"\56"}.fa-sparkles:before{content:"\f890"}.fa-squid:before{content:"\e450"}.fa-leafy-green:before{content:"\e41d"}.fa-circle-arrow-up-right:before{content:"\e0fc"}.fa-calendars:before{content:"\e0d7"}.fa-bangladeshi-taka-sign:before{content:"\e2e6"}.fa-bicycle:before{content:"\f206"}.fa-hammer-war:before{content:"\f6e4"}.fa-circle-d:before{content:"\e104"}.fa-spider-black-widow:before{content:"\f718"}.fa-rod-asclepius:before,.fa-rod-snake:before,.fa-staff-aesculapius:before,.fa-staff-snake:before{content:"\e579"}.fa-pear:before{content:"\e20c"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-file-mov:before{content:"\e647"}.fa-triangle:before{content:"\f2ec"}.fa-apartment:before{content:"\e468"}.fa-ambulance:before,.fa-truck-medical:before{content:"\f0f9"}.fa-pepper:before{content:"\e432"}.fa-piano:before{content:"\f8d4"}.fa-gun-squirt:before{content:"\e19d"}.fa-wheat-awn-circle-exclamation:before{content:"\e598"}.fa-snowman:before{content:"\f7d0"}.fa-user-alien:before{content:"\e04a"}.fa-shield-check:before{content:"\f2f7"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-road-barrier:before{content:"\e562"}.fa-chart-candlestick:before{content:"\e0e2"}.fa-briefcase-blank:before{content:"\e0c8"}.fa-school:before{content:"\f549"}.fa-igloo:before{content:"\f7ae"}.fa-bracket-round:before,.fa-parenthesis:before{content:"\28"}.fa-joint:before{content:"\f595"}.fa-horse-saddle:before{content:"\f8c3"}.fa-mug-marshmallows:before{content:"\f7b7"}.fa-filters:before{content:"\e17e"}.fa-bell-on:before{content:"\f8fa"}.fa-angle-right:before{content:"\f105"}.fa-dial-med:before{content:"\e15f"}.fa-horse:before{content:"\f6f0"}.fa-q:before{content:"\51"}.fa-monitor-heart-rate:before,.fa-monitor-waveform:before{content:"\f611"}.fa-link-simple:before{content:"\e1cd"}.fa-whistle:before{content:"\f460"}.fa-g:before{content:"\47"}.fa-fragile:before,.fa-wine-glass-crack:before{content:"\f4bb"}.fa-slot-machine:before{content:"\e3ce"}.fa-notes-medical:before{content:"\f481"}.fa-car-wash:before{content:"\f5e6"}.fa-escalator:before{content:"\e171"}.fa-comment-image:before{content:"\e148"}.fa-temperature-2:before,.fa-temperature-half:before,.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-dong-sign:before{content:"\e169"}.fa-donut:before,.fa-doughnut:before{content:"\e406"}.fa-capsules:before{content:"\f46b"}.fa-poo-bolt:before,.fa-poo-storm:before{content:"\f75a"}.fa-tally-1:before{content:"\e294"}.fa-file-vector:before{content:"\e64c"}.fa-face-frown-open:before,.fa-frown-open:before{content:"\f57a"}.fa-square-dashed:before{content:"\e269"}.fa-bag-shopping-plus:before{content:"\e651"}.fa-square-j:before{content:"\e273"}.fa-hand-point-up:before{content:"\f0a6"}.fa-money-bill:before{content:"\f0d6"}.fa-arrow-up-big-small:before,.fa-sort-size-up:before{content:"\f88e"}.fa-barcode-read:before{content:"\f464"}.fa-baguette:before{content:"\e3d8"}.fa-bowl-soft-serve:before{content:"\e46b"}.fa-face-holding-back-tears:before{content:"\e482"}.fa-arrow-alt-square-up:before,.fa-square-up:before{content:"\f353"}.fa-subway-tunnel:before,.fa-train-subway-tunnel:before{content:"\e2a3"}.fa-exclamation-square:before,.fa-square-exclamation:before{content:"\f321"}.fa-semicolon:before{content:"\3b"}.fa-bookmark:before{content:"\f02e"}.fa-fan-table:before{content:"\e004"}.fa-align-justify:before{content:"\f039"}.fa-battery-1:before,.fa-battery-low:before{content:"\e0b1"}.fa-credit-card-front:before{content:"\f38a"}.fa-brain-arrow-curved-right:before,.fa-mind-share:before{content:"\f677"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-helmet-un:before{content:"\e503"}.fa-location-smile:before,.fa-map-marker-smile:before{content:"\f60d"}.fa-arrow-left-to-line:before,.fa-arrow-to-left:before{content:"\f33e"}.fa-bullseye:before{content:"\f140"}.fa-nigiri:before,.fa-sushi:before{content:"\e48a"}.fa-comment-alt-captions:before,.fa-message-captions:before{content:"\e1de"}.fa-trash-list:before{content:"\e2b1"}.fa-bacon:before{content:"\f7e5"}.fa-option:before{content:"\e318"}.fa-raccoon:before{content:"\e613"}.fa-hand-point-down:before{content:"\f0a7"}.fa-arrow-up-from-bracket:before{content:"\e09a"}.fa-head-side-gear:before{content:"\e611"}.fa-trash-plus:before{content:"\e2b2"}.fa-objects-align-top:before{content:"\e3c0"}.fa-folder-blank:before,.fa-folder:before{content:"\f07b"}.fa-face-anxious-sweat:before{content:"\e36a"}.fa-credit-card-blank:before{content:"\f389"}.fa-file-medical-alt:before,.fa-file-waveform:before{content:"\f478"}.fa-microchip-ai:before{content:"\e1ec"}.fa-mug:before{content:"\f874"}.fa-plane-up-slash:before{content:"\e22e"}.fa-radiation:before{content:"\f7b9"}.fa-pen-circle:before{content:"\e20e"}.fa-bag-seedling:before{content:"\e5f2"}.fa-chart-simple:before{content:"\e473"}.fa-crutches:before{content:"\f7f8"}.fa-circle-parking:before,.fa-parking-circle:before{content:"\f615"}.fa-mars-stroke:before{content:"\f229"}.fa-leaf-oak:before{content:"\f6f7"}.fa-square-bolt:before{content:"\e265"}.fa-vial:before{content:"\f492"}.fa-dashboard:before,.fa-gauge-med:before,.fa-gauge:before,.fa-tachometer-alt-average:before{content:"\f624"}.fa-magic-wand-sparkles:before,.fa-wand-magic-sparkles:before{content:"\e2ca"}.fa-lambda:before{content:"\f66e"}.fa-e:before{content:"\45"}.fa-pizza:before{content:"\f817"}.fa-bowl-chopsticks-noodles:before{content:"\e2ea"}.fa-h3:before{content:"\f315"}.fa-pen-alt:before,.fa-pen-clip:before{content:"\f305"}.fa-bridge-circle-exclamation:before{content:"\e4ca"}.fa-badge-percent:before{content:"\f646"}.fa-rotate-reverse:before{content:"\e631"}.fa-user:before{content:"\f007"}.fa-sensor:before{content:"\e028"}.fa-comma:before{content:"\2c"}.fa-school-circle-check:before{content:"\e56b"}.fa-toilet-paper-reverse:before,.fa-toilet-paper-under:before{content:"\e2a0"}.fa-light-emergency:before{content:"\e41f"}.fa-arrow-down-to-arc:before{content:"\e4ae"}.fa-dumpster:before{content:"\f793"}.fa-shuttle-van:before,.fa-van-shuttle:before{content:"\f5b6"}.fa-building-user:before{content:"\e4da"}.fa-light-switch:before{content:"\e017"}.fa-caret-square-left:before,.fa-square-caret-left:before{content:"\f191"}.fa-highlighter:before{content:"\f591"}.fa-heart-rate:before,.fa-wave-pulse:before{content:"\f5f8"}.fa-key:before{content:"\f084"}.fa-hat-santa:before{content:"\f7a7"}.fa-tamale:before{content:"\e451"}.fa-box-check:before{content:"\f467"}.fa-bullhorn:before{content:"\f0a1"}.fa-steak:before{content:"\f824"}.fa-location-crosshairs-slash:before,.fa-location-slash:before{content:"\f603"}.fa-person-dolly:before{content:"\f4d0"}.fa-globe:before{content:"\f0ac"}.fa-synagogue:before{content:"\f69b"}.fa-file-chart-column:before,.fa-file-chart-line:before{content:"\f659"}.fa-person-half-dress:before{content:"\e548"}.fa-folder-image:before{content:"\e18a"}.fa-calendar-edit:before,.fa-calendar-pen:before{content:"\f333"}.fa-road-bridge:before{content:"\e563"}.fa-face-smile-tear:before{content:"\e393"}.fa-comment-alt-plus:before,.fa-message-plus:before{content:"\f4a8"}.fa-location-arrow:before{content:"\f124"}.fa-c:before{content:"\43"}.fa-tablet-button:before{content:"\f10a"}.fa-person-dress-fairy:before{content:"\e607"}.fa-rectangle-history-circle-user:before{content:"\e4a4"}.fa-building-lock:before{content:"\e4d6"}.fa-chart-line-up:before{content:"\e0e5"}.fa-mailbox:before{content:"\f813"}.fa-sign-posts:before{content:"\e625"}.fa-truck-bolt:before{content:"\e3d0"}.fa-pizza-slice:before{content:"\f818"}.fa-money-bill-wave:before{content:"\f53a"}.fa-area-chart:before,.fa-chart-area:before{content:"\f1fe"}.fa-house-flag:before{content:"\e50d"}.fa-circle-three-quarters-stroke:before{content:"\e5d4"}.fa-person-circle-minus:before{content:"\e540"}.fa-scalpel:before{content:"\f61d"}.fa-ban:before,.fa-cancel:before{content:"\f05e"}.fa-bell-exclamation:before{content:"\f848"}.fa-bookmark-circle:before,.fa-circle-bookmark:before{content:"\e100"}.fa-egg-fried:before{content:"\f7fc"}.fa-face-weary:before{content:"\e3a1"}.fa-uniform-martial-arts:before{content:"\e3d1"}.fa-camera-rotate:before{content:"\e0d8"}.fa-sun-dust:before{content:"\f764"}.fa-comment-text:before{content:"\e14d"}.fa-air-freshener:before,.fa-spray-can-sparkles:before{content:"\f5d0"}.fa-signal-alt-4:before,.fa-signal-alt:before,.fa-signal-bars-strong:before,.fa-signal-bars:before{content:"\f690"}.fa-diamond-exclamation:before{content:"\e405"}.fa-star:before{content:"\f005"}.fa-dial-min:before{content:"\e161"}.fa-repeat:before{content:"\f363"}.fa-cross:before{content:"\f654"}.fa-file-caret-down:before,.fa-page-caret-down:before{content:"\e429"}.fa-box:before{content:"\f466"}.fa-venus-mars:before{content:"\f228"}.fa-clock-seven-thirty:before{content:"\e351"}.fa-arrow-pointer:before,.fa-mouse-pointer:before{content:"\f245"}.fa-clock-four-thirty:before{content:"\e34b"}.fa-signal-alt-3:before,.fa-signal-bars-good:before{content:"\f693"}.fa-cactus:before{content:"\f8a7"}.fa-lightbulb-gear:before{content:"\e5fd"}.fa-expand-arrows-alt:before,.fa-maximize:before{content:"\f31e"}.fa-charging-station:before{content:"\f5e7"}.fa-shapes:before,.fa-triangle-circle-square:before{content:"\f61f"}.fa-plane-tail:before{content:"\e22c"}.fa-gauge-simple-max:before,.fa-tachometer-fastest:before{content:"\f62b"}.fa-circle-u:before{content:"\e127"}.fa-shield-slash:before{content:"\e24b"}.fa-phone-square-down:before,.fa-square-phone-hangup:before{content:"\e27a"}.fa-arrow-up-left:before{content:"\e09d"}.fa-transporter-1:before{content:"\e043"}.fa-peanuts:before{content:"\e431"}.fa-random:before,.fa-shuffle:before{content:"\f074"}.fa-person-running:before,.fa-running:before{content:"\f70c"}.fa-mobile-retro:before{content:"\e527"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-bin-bottles-recycle:before{content:"\e5f6"}.fa-arrow-up-from-square:before{content:"\e09c"}.fa-file-dashed-line:before,.fa-page-break:before{content:"\f877"}.fa-bracket-curly-right:before{content:"\7d"}.fa-spider:before{content:"\f717"}.fa-clock-three:before{content:"\e356"}.fa-hands-bound:before{content:"\e4f9"}.fa-scalpel-line-dashed:before,.fa-scalpel-path:before{content:"\f61e"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-pipe-smoking:before{content:"\e3c4"}.fa-face-astonished:before{content:"\e36b"}.fa-window:before{content:"\f40e"}.fa-plane-circle-exclamation:before{content:"\e556"}.fa-ear:before{content:"\f5f0"}.fa-file-lock:before{content:"\e3a6"}.fa-diagram-venn:before{content:"\e15a"}.fa-x-ray:before{content:"\f497"}.fa-goal-net:before{content:"\e3ab"}.fa-coffin-cross:before{content:"\e051"}.fa-spell-check:before{content:"\f891"}.fa-location-xmark:before,.fa-map-marker-times:before,.fa-map-marker-xmark:before{content:"\f60e"}.fa-circle-quarter-stroke:before{content:"\e5d3"}.fa-lasso:before{content:"\f8c8"}.fa-slash:before{content:"\f715"}.fa-person-to-portal:before,.fa-portal-enter:before{content:"\e022"}.fa-calendar-star:before{content:"\f736"}.fa-computer-mouse:before,.fa-mouse:before{content:"\f8cc"}.fa-arrow-right-to-bracket:before,.fa-sign-in:before{content:"\f090"}.fa-pegasus:before{content:"\f703"}.fa-files-medical:before{content:"\f7fd"}.fa-cannon:before{content:"\e642"}.fa-nfc-lock:before{content:"\e1f8"}.fa-person-ski-lift:before,.fa-ski-lift:before{content:"\f7c8"}.fa-square-6:before{content:"\e25b"}.fa-shop-slash:before,.fa-store-alt-slash:before{content:"\e070"}.fa-wind-turbine:before{content:"\f89b"}.fa-sliders-simple:before{content:"\e253"}.fa-grid-round:before{content:"\e5da"}.fa-badge-sheriff:before{content:"\f8a2"}.fa-server:before{content:"\f233"}.fa-virus-covid-slash:before{content:"\e4a9"}.fa-intersection:before{content:"\f668"}.fa-shop-lock:before{content:"\e4a5"}.fa-family:before{content:"\e300"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-user-hair-buns:before{content:"\e3d3"}.fa-blender-phone:before{content:"\f6b6"}.fa-hourglass-clock:before{content:"\e41b"}.fa-person-seat-reclined:before{content:"\e21f"}.fa-paper-plane-alt:before,.fa-paper-plane-top:before,.fa-send:before{content:"\e20a"}.fa-comment-alt-arrow-up:before,.fa-message-arrow-up:before{content:"\e1dc"}.fa-lightbulb-exclamation:before{content:"\f671"}.fa-layer-group-minus:before,.fa-layer-minus:before{content:"\f5fe"}.fa-chart-pie-simple-circle-currency:before{content:"\e604"}.fa-circle-e:before{content:"\e109"}.fa-building-wheat:before{content:"\e4db"}.fa-gauge-max:before,.fa-tachometer-alt-fastest:before{content:"\f626"}.fa-person-breastfeeding:before{content:"\e53a"}.fa-apostrophe:before{content:"\27"}.fa-file-png:before{content:"\e666"}.fa-fire-hydrant:before{content:"\e17f"}.fa-right-to-bracket:before,.fa-sign-in-alt:before{content:"\f2f6"}.fa-video-plus:before{content:"\f4e1"}.fa-arrow-alt-square-right:before,.fa-square-right:before{content:"\f352"}.fa-comment-smile:before{content:"\f4b4"}.fa-venus:before{content:"\f221"}.fa-passport:before{content:"\f5ab"}.fa-inbox-arrow-down:before,.fa-inbox-in:before{content:"\f310"}.fa-heart-pulse:before,.fa-heartbeat:before{content:"\f21e"}.fa-circle-8:before{content:"\e0f5"}.fa-clouds-moon:before{content:"\f745"}.fa-clock-ten-thirty:before{content:"\e355"}.fa-people-carry-box:before,.fa-people-carry:before{content:"\f4ce"}.fa-folder-user:before{content:"\e18e"}.fa-trash-can-xmark:before{content:"\e2ae"}.fa-temperature-high:before{content:"\f769"}.fa-microchip:before{content:"\f2db"}.fa-left-long-to-line:before{content:"\e41e"}.fa-crown:before{content:"\f521"}.fa-weight-hanging:before{content:"\f5cd"}.fa-xmarks-lines:before{content:"\e59a"}.fa-file-prescription:before{content:"\f572"}.fa-calendar-range:before{content:"\e0d6"}.fa-flower-daffodil:before{content:"\f800"}.fa-hand-back-point-up:before{content:"\e1a2"}.fa-weight-scale:before,.fa-weight:before{content:"\f496"}.fa-arrow-up-to-arc:before{content:"\e617"}.fa-star-exclamation:before{content:"\f2f3"}.fa-books:before{content:"\f5db"}.fa-user-friends:before,.fa-user-group:before{content:"\f500"}.fa-arrow-up-a-z:before,.fa-sort-alpha-up:before{content:"\f15e"}.fa-layer-group-plus:before,.fa-layer-plus:before{content:"\f5ff"}.fa-play-pause:before{content:"\e22f"}.fa-block-question:before{content:"\e3dd"}.fa-snooze:before,.fa-zzz:before{content:"\f880"}.fa-scanner-image:before{content:"\f8f3"}.fa-tv-retro:before{content:"\f401"}.fa-square-t:before{content:"\e280"}.fa-barn-silo:before,.fa-farm:before{content:"\f864"}.fa-chess-knight:before{content:"\f441"}.fa-bars-sort:before{content:"\e0ae"}.fa-palette-boxes:before,.fa-pallet-alt:before,.fa-pallet-boxes:before{content:"\f483"}.fa-face-laugh-squint:before,.fa-laugh-squint:before{content:"\f59b"}.fa-code-simple:before{content:"\e13d"}.fa-bolt-slash:before{content:"\e0b8"}.fa-panel-fire:before{content:"\e42f"}.fa-binary-circle-check:before{content:"\e33c"}.fa-comment-minus:before{content:"\f4b1"}.fa-burrito:before{content:"\f7ed"}.fa-violin:before{content:"\f8ed"}.fa-objects-column:before{content:"\e3c1"}.fa-chevron-square-down:before,.fa-square-chevron-down:before{content:"\f329"}.fa-comment-plus:before{content:"\f4b2"}.fa-triangle-instrument:before,.fa-triangle-music:before{content:"\f8e2"}.fa-wheelchair:before{content:"\f193"}.fa-user-pilot-tie:before{content:"\e2c1"}.fa-piano-keyboard:before{content:"\f8d5"}.fa-bed-empty:before{content:"\f8f9"}.fa-arrow-circle-up:before,.fa-circle-arrow-up:before{content:"\f0aa"}.fa-toggle-on:before{content:"\f205"}.fa-rectangle-portrait:before,.fa-rectangle-vertical:before{content:"\f2fb"}.fa-person-walking:before,.fa-walking:before{content:"\f554"}.fa-l:before{content:"\4c"}.fa-signal-stream:before{content:"\f8dd"}.fa-down-to-bracket:before{content:"\e4e7"}.fa-circle-z:before{content:"\e130"}.fa-stars:before{content:"\f762"}.fa-fire:before{content:"\f06d"}.fa-bed-pulse:before,.fa-procedures:before{content:"\f487"}.fa-house-day:before{content:"\e00e"}.fa-shuttle-space:before,.fa-space-shuttle:before{content:"\f197"}.fa-shirt-long-sleeve:before{content:"\e3c7"}.fa-chart-pie-alt:before,.fa-chart-pie-simple:before{content:"\f64e"}.fa-face-laugh:before,.fa-laugh:before{content:"\f599"}.fa-folder-open:before{content:"\f07c"}.fa-album-collection-circle-user:before{content:"\e48f"}.fa-candy:before{content:"\e3e7"}.fa-bowl-hot:before,.fa-soup:before{content:"\f823"}.fa-flatbread:before{content:"\e40b"}.fa-heart-circle-plus:before{content:"\e500"}.fa-code-fork:before{content:"\e13b"}.fa-city:before{content:"\f64f"}.fa-signal-alt-1:before,.fa-signal-bars-weak:before{content:"\f691"}.fa-microphone-alt:before,.fa-microphone-lines:before{content:"\f3c9"}.fa-clock-twelve:before{content:"\e358"}.fa-pepper-hot:before{content:"\f816"}.fa-citrus-slice:before{content:"\e2f5"}.fa-sheep:before{content:"\f711"}.fa-unlock:before{content:"\f09c"}.fa-colon-sign:before{content:"\e140"}.fa-headset:before{content:"\f590"}.fa-badger-honey:before{content:"\f6b4"}.fa-h4:before{content:"\f86a"}.fa-store-slash:before{content:"\e071"}.fa-road-circle-xmark:before{content:"\e566"}.fa-signal-slash:before{content:"\f695"}.fa-user-minus:before{content:"\f503"}.fa-mars-stroke-up:before,.fa-mars-stroke-v:before{content:"\f22a"}.fa-champagne-glasses:before,.fa-glass-cheers:before{content:"\f79f"}.fa-taco:before{content:"\f826"}.fa-hexagon-plus:before,.fa-plus-hexagon:before{content:"\f300"}.fa-clipboard:before{content:"\f328"}.fa-house-circle-exclamation:before{content:"\e50a"}.fa-file-arrow-up:before,.fa-file-upload:before{content:"\f574"}.fa-wifi-3:before,.fa-wifi-strong:before,.fa-wifi:before{content:"\f1eb"}.fa-comments-alt:before,.fa-messages:before{content:"\f4b6"}.fa-bath:before,.fa-bathtub:before{content:"\f2cd"}.fa-umbrella-alt:before,.fa-umbrella-simple:before{content:"\e2bc"}.fa-rectangle-history-circle-plus:before{content:"\e4a3"}.fa-underline:before{content:"\f0cd"}.fa-prescription-bottle-pill:before{content:"\e5c0"}.fa-user-edit:before,.fa-user-pen:before{content:"\f4ff"}.fa-binary-slash:before{content:"\e33e"}.fa-square-o:before{content:"\e278"}.fa-signature:before{content:"\f5b7"}.fa-stroopwafel:before{content:"\f551"}.fa-bold:before{content:"\f032"}.fa-anchor-lock:before{content:"\e4ad"}.fa-building-ngo:before{content:"\e4d7"}.fa-transporter-3:before{content:"\e045"}.fa-engine-exclamation:before,.fa-engine-warning:before{content:"\f5f2"}.fa-circle-down-right:before{content:"\e108"}.fa-square-k:before{content:"\e274"}.fa-manat-sign:before{content:"\e1d5"}.fa-money-check-edit:before,.fa-money-check-pen:before{content:"\f872"}.fa-not-equal:before{content:"\f53e"}.fa-border-style:before,.fa-border-top-left:before{content:"\f853"}.fa-map-location-dot:before,.fa-map-marked-alt:before{content:"\f5a0"}.fa-tilde:before{content:"\7e"}.fa-jedi:before{content:"\f669"}.fa-poll:before,.fa-square-poll-vertical:before{content:"\f681"}.fa-arrow-down-square-triangle:before,.fa-sort-shapes-down-alt:before{content:"\f889"}.fa-mug-hot:before{content:"\f7b6"}.fa-dog-leashed:before{content:"\f6d4"}.fa-battery-car:before,.fa-car-battery:before{content:"\f5df"}.fa-face-downcast-sweat:before{content:"\e371"}.fa-mailbox-flag-up:before{content:"\e5bb"}.fa-memo-circle-info:before{content:"\e49a"}.fa-gift:before{content:"\f06b"}.fa-dice-two:before{content:"\f528"}.fa-volume-medium:before,.fa-volume:before{content:"\f6a8"}.fa-transporter-5:before{content:"\e2a6"}.fa-gauge-circle-bolt:before{content:"\e496"}.fa-coin-front:before{content:"\e3fc"}.fa-file-slash:before{content:"\e3a7"}.fa-message-arrow-up-right:before{content:"\e1dd"}.fa-treasure-chest:before{content:"\f723"}.fa-chess-queen:before{content:"\f445"}.fa-paint-brush-alt:before,.fa-paint-brush-fine:before,.fa-paintbrush-alt:before,.fa-paintbrush-fine:before{content:"\f5a9"}.fa-glasses:before{content:"\f530"}.fa-hood-cloak:before{content:"\f6ef"}.fa-square-quote:before{content:"\e329"}.fa-up-left:before{content:"\e2bd"}.fa-bring-front:before{content:"\f857"}.fa-chess-board:before{content:"\f43c"}.fa-burger-cheese:before,.fa-cheeseburger:before{content:"\f7f1"}.fa-building-circle-check:before{content:"\e4d2"}.fa-repeat-1:before{content:"\f365"}.fa-arrow-down-to-line:before,.fa-arrow-to-bottom:before{content:"\f33d"}.fa-grid-5:before{content:"\e199"}.fa-swap-arrows:before{content:"\e60a"}.fa-right-long-to-line:before{content:"\e444"}.fa-person-chalkboard:before{content:"\e53d"}.fa-mars-stroke-h:before,.fa-mars-stroke-right:before{content:"\f22b"}.fa-hand-back-fist:before,.fa-hand-rock:before{content:"\f255"}.fa-grid-round-5:before{content:"\e5de"}.fa-tally-5:before,.fa-tally:before{content:"\f69c"}.fa-caret-square-up:before,.fa-square-caret-up:before{content:"\f151"}.fa-cloud-showers-water:before{content:"\e4e4"}.fa-bar-chart:before,.fa-chart-bar:before{content:"\f080"}.fa-hands-bubbles:before,.fa-hands-wash:before{content:"\e05e"}.fa-less-than-equal:before{content:"\f537"}.fa-train:before{content:"\f238"}.fa-up-from-dotted-line:before{content:"\e456"}.fa-eye-low-vision:before,.fa-low-vision:before{content:"\f2a8"}.fa-traffic-light-go:before{content:"\f638"}.fa-face-exhaling:before{content:"\e480"}.fa-sensor-fire:before{content:"\e02a"}.fa-user-unlock:before{content:"\e058"}.fa-hexagon-divide:before{content:"\e1ad"}.fa-00:before{content:"\e467"}.fa-crow:before{content:"\f520"}.fa-betamax:before,.fa-cassette-betamax:before{content:"\f8a4"}.fa-sailboat:before{content:"\e445"}.fa-window-restore:before{content:"\f2d2"}.fa-nfc-magnifying-glass:before{content:"\e1f9"}.fa-file-binary:before{content:"\e175"}.fa-circle-v:before{content:"\e12a"}.fa-plus-square:before,.fa-square-plus:before{content:"\f0fe"}.fa-bowl-scoops:before{content:"\e3df"}.fa-mistletoe:before{content:"\f7b4"}.fa-custard:before{content:"\e403"}.fa-lacrosse-stick:before{content:"\e3b5"}.fa-hockey-mask:before{content:"\f6ee"}.fa-sunrise:before{content:"\f766"}.fa-subtitles:before{content:"\e60f"}.fa-panel-ews:before{content:"\e42e"}.fa-torii-gate:before{content:"\f6a1"}.fa-cloud-exclamation:before{content:"\e491"}.fa-comment-alt-lines:before,.fa-message-lines:before{content:"\f4a6"}.fa-frog:before{content:"\f52e"}.fa-bucket:before{content:"\e4cf"}.fa-floppy-disk-pen:before{content:"\e182"}.fa-image:before{content:"\f03e"}.fa-window-frame:before{content:"\e04f"}.fa-microphone:before{content:"\f130"}.fa-cow:before{content:"\f6c8"}.fa-file-zip:before{content:"\e5ee"}.fa-square-ring:before{content:"\e44f"}.fa-arrow-alt-from-top:before,.fa-down-from-line:before{content:"\f349"}.fa-caret-up:before{content:"\f0d8"}.fa-shield-times:before,.fa-shield-xmark:before{content:"\e24c"}.fa-screwdriver:before{content:"\f54a"}.fa-circle-sort-down:before,.fa-sort-circle-down:before{content:"\e031"}.fa-folder-closed:before{content:"\e185"}.fa-house-tsunami:before{content:"\e515"}.fa-square-nfi:before{content:"\e576"}.fa-forklift:before{content:"\f47a"}.fa-arrow-up-from-ground-water:before{content:"\e4b5"}.fa-bracket-square-right:before{content:"\5d"}.fa-glass-martini-alt:before,.fa-martini-glass:before{content:"\f57b"}.fa-rotate-back:before,.fa-rotate-backward:before,.fa-rotate-left:before,.fa-undo-alt:before{content:"\f2ea"}.fa-columns:before,.fa-table-columns:before{content:"\f0db"}.fa-square-a:before{content:"\e25f"}.fa-tick:before{content:"\e32f"}.fa-lemon:before{content:"\f094"}.fa-head-side-mask:before{content:"\e063"}.fa-handshake:before{content:"\f2b5"}.fa-gem:before{content:"\f3a5"}.fa-dolly-box:before,.fa-dolly:before{content:"\f472"}.fa-smoking:before{content:"\f48d"}.fa-compress-arrows-alt:before,.fa-minimize:before{content:"\f78c"}.fa-refrigerator:before{content:"\e026"}.fa-monument:before{content:"\f5a6"}.fa-octagon-xmark:before,.fa-times-octagon:before,.fa-xmark-octagon:before{content:"\f2f0"}.fa-align-slash:before{content:"\f846"}.fa-snowplow:before{content:"\f7d2"}.fa-angle-double-right:before,.fa-angles-right:before{content:"\f101"}.fa-truck-couch:before,.fa-truck-ramp-couch:before{content:"\f4dd"}.fa-cannabis:before{content:"\f55f"}.fa-circle-play:before,.fa-play-circle:before{content:"\f144"}.fa-arrow-up-right-and-arrow-down-left-from-center:before{content:"\e0a0"}.fa-location-arrow-up:before{content:"\e63a"}.fa-tablets:before{content:"\f490"}.fa-360-degrees:before{content:"\e2dc"}.fa-ethernet:before{content:"\f796"}.fa-eur:before,.fa-euro-sign:before,.fa-euro:before{content:"\f153"}.fa-chair:before{content:"\f6c0"}.fa-check-circle:before,.fa-circle-check:before{content:"\f058"}.fa-square-dashed-circle-plus:before{content:"\e5c2"}.fa-hand-holding-circle-dollar:before{content:"\e621"}.fa-money-simple-from-bracket:before{content:"\e313"}.fa-bat:before{content:"\f6b5"}.fa-circle-stop:before,.fa-stop-circle:before{content:"\f28d"}.fa-head-side-headphones:before{content:"\f8c2"}.fa-phone-rotary:before{content:"\f8d3"}.fa-compass-drafting:before,.fa-drafting-compass:before{content:"\f568"}.fa-plate-wheat:before{content:"\e55a"}.fa-calendar-circle-minus:before{content:"\e46f"}.fa-chopsticks:before{content:"\e3f7"}.fa-car-mechanic:before,.fa-car-wrench:before{content:"\f5e3"}.fa-icicles:before{content:"\f7ad"}.fa-person-shelter:before{content:"\e54f"}.fa-neuter:before{content:"\f22c"}.fa-id-badge:before{content:"\f2c1"}.fa-kazoo:before{content:"\f8c7"}.fa-marker:before{content:"\f5a1"}.fa-bin-bottles:before{content:"\e5f5"}.fa-face-laugh-beam:before,.fa-laugh-beam:before{content:"\f59a"}.fa-square-arrow-down-left:before{content:"\e261"}.fa-battery-bolt:before{content:"\f376"}.fa-tree-large:before{content:"\f7dd"}.fa-helicopter-symbol:before{content:"\e502"}.fa-aperture:before{content:"\e2df"}.fa-universal-access:before{content:"\f29a"}.fa-gear-complex:before{content:"\e5e9"}.fa-file-magnifying-glass:before,.fa-file-search:before{content:"\f865"}.fa-up-right:before{content:"\e2be"}.fa-chevron-circle-up:before,.fa-circle-chevron-up:before{content:"\f139"}.fa-user-police:before{content:"\e333"}.fa-lari-sign:before{content:"\e1c8"}.fa-volcano:before{content:"\f770"}.fa-teddy-bear:before{content:"\e3cf"}.fa-stocking:before{content:"\f7d5"}.fa-person-walking-dashed-line-arrow-right:before{content:"\e553"}.fa-image-slash:before{content:"\e1b7"}.fa-mask-snorkel:before{content:"\e3b7"}.fa-smoke:before{content:"\f760"}.fa-gbp:before,.fa-pound-sign:before,.fa-sterling-sign:before{content:"\f154"}.fa-battery-exclamation:before{content:"\e0b0"}.fa-viruses:before{content:"\e076"}.fa-square-person-confined:before{content:"\e577"}.fa-user-tie:before{content:"\f508"}.fa-arrow-down-long:before,.fa-long-arrow-down:before{content:"\f175"}.fa-tent-arrow-down-to-line:before{content:"\e57e"}.fa-certificate:before{content:"\f0a3"}.fa-crystal-ball:before{content:"\e362"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-suitcase:before{content:"\f0f2"}.fa-person-skating:before,.fa-skating:before{content:"\f7c5"}.fa-star-shooting:before{content:"\e036"}.fa-binary-lock:before{content:"\e33d"}.fa-filter-circle-dollar:before,.fa-funnel-dollar:before{content:"\f662"}.fa-camera-retro:before{content:"\f083"}.fa-arrow-circle-down:before,.fa-circle-arrow-down:before{content:"\f0ab"}.fa-comment-edit:before,.fa-comment-pen:before{content:"\f4ae"}.fa-arrow-right-to-file:before,.fa-file-import:before{content:"\f56f"}.fa-banjo:before{content:"\f8a3"}.fa-external-link-square:before,.fa-square-arrow-up-right:before{content:"\f14c"}.fa-light-emergency-on:before{content:"\e420"}.fa-kerning:before{content:"\f86f"}.fa-box-open:before{content:"\f49e"}.fa-square-f:before{content:"\e270"}.fa-scroll:before{content:"\f70e"}.fa-spa:before{content:"\f5bb"}.fa-arrow-from-right:before,.fa-arrow-left-from-line:before{content:"\f344"}.fa-strawberry:before{content:"\e32b"}.fa-location-pin-lock:before{content:"\e51f"}.fa-pause:before{content:"\f04c"}.fa-clock-eight-thirty:before{content:"\e346"}.fa-plane-alt:before,.fa-plane-engines:before{content:"\f3de"}.fa-hill-avalanche:before{content:"\e507"}.fa-temperature-0:before,.fa-temperature-empty:before,.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-bomb:before{content:"\f1e2"}.fa-gauge-low:before,.fa-tachometer-alt-slow:before{content:"\f627"}.fa-registered:before{content:"\f25d"}.fa-trash-can-plus:before{content:"\e2ac"}.fa-address-card:before,.fa-contact-card:before,.fa-vcard:before{content:"\f2bb"}.fa-balance-scale-right:before,.fa-scale-unbalanced-flip:before{content:"\f516"}.fa-globe-snow:before{content:"\f7a3"}.fa-subscript:before{content:"\f12c"}.fa-diamond-turn-right:before,.fa-directions:before{content:"\f5eb"}.fa-integral:before{content:"\f667"}.fa-burst:before{content:"\e4dc"}.fa-house-laptop:before,.fa-laptop-house:before{content:"\e066"}.fa-face-tired:before,.fa-tired:before{content:"\f5c8"}.fa-money-bills:before{content:"\e1f3"}.fa-blinds-raised:before{content:"\f8fd"}.fa-smog:before{content:"\f75f"}.fa-ufo-beam:before{content:"\e048"}.fa-caret-circle-up:before,.fa-circle-caret-up:before{content:"\f331"}.fa-user-vneck-hair-long:before{content:"\e463"}.fa-square-a-lock:before{content:"\e44d"}.fa-crutch:before{content:"\f7f7"}.fa-gas-pump-slash:before{content:"\f5f4"}.fa-cloud-arrow-up:before,.fa-cloud-upload-alt:before,.fa-cloud-upload:before{content:"\f0ee"}.fa-palette:before{content:"\f53f"}.fa-transporter-4:before{content:"\e2a5"}.fa-chart-mixed-up-circle-currency:before{content:"\e5d8"}.fa-objects-align-right:before{content:"\e3bf"}.fa-arrows-turn-right:before{content:"\e4c0"}.fa-vest:before{content:"\e085"}.fa-pig:before{content:"\f706"}.fa-inbox-full:before{content:"\e1ba"}.fa-circle-envelope:before,.fa-envelope-circle:before{content:"\e10c"}.fa-construction:before,.fa-triangle-person-digging:before{content:"\f85d"}.fa-ferry:before{content:"\e4ea"}.fa-bullseye-arrow:before{content:"\f648"}.fa-arrows-down-to-people:before{content:"\e4b9"}.fa-seedling:before,.fa-sprout:before{content:"\f4d8"}.fa-clock-seven:before{content:"\e350"}.fa-arrows-alt-h:before,.fa-left-right:before{content:"\f337"}.fa-boxes-packing:before{content:"\e4c7"}.fa-arrow-circle-left:before,.fa-circle-arrow-left:before{content:"\f0a8"}.fa-flashlight:before{content:"\f8b8"}.fa-file-jpg:before{content:"\e646"}.fa-group-arrows-rotate:before{content:"\e4f6"}.fa-bowl-food:before{content:"\e4c6"}.fa-square-9:before{content:"\e25e"}.fa-candy-cane:before{content:"\f786"}.fa-arrow-down-wide-short:before,.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:"\f160"}.fa-dollar-square:before,.fa-square-dollar:before,.fa-usd-square:before{content:"\f2e9"}.fa-phone-arrow-right:before{content:"\e5be"}.fa-hand-holding-seedling:before{content:"\f4bf"}.fa-comment-alt-check:before,.fa-message-check:before{content:"\f4a2"}.fa-cloud-bolt:before,.fa-thunderstorm:before{content:"\f76c"}.fa-chart-line-up-down:before{content:"\e5d7"}.fa-remove-format:before,.fa-text-slash:before{content:"\f87d"}.fa-watch:before{content:"\f2e1"}.fa-circle-down-left:before{content:"\e107"}.fa-text:before{content:"\f893"}.fa-projector:before{content:"\f8d6"}.fa-face-smile-wink:before,.fa-smile-wink:before{content:"\f4da"}.fa-tombstone-alt:before,.fa-tombstone-blank:before{content:"\f721"}.fa-chess-king-alt:before,.fa-chess-king-piece:before{content:"\f440"}.fa-circle-6:before{content:"\e0f3"}.fa-waves-sine:before{content:"\e65d"}.fa-arrow-alt-left:before,.fa-left:before{content:"\f355"}.fa-file-word:before{content:"\f1c2"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-arrow-alt-square-down:before,.fa-square-down:before{content:"\f350"}.fa-objects-align-center-vertical:before{content:"\e3bd"}.fa-arrows-h:before,.fa-arrows-left-right:before{content:"\f07e"}.fa-house-lock:before{content:"\e510"}.fa-cloud-arrow-down:before,.fa-cloud-download-alt:before,.fa-cloud-download:before{content:"\f0ed"}.fa-wreath:before{content:"\f7e2"}.fa-children:before{content:"\e4e1"}.fa-meter-droplet:before{content:"\e1ea"}.fa-blackboard:before,.fa-chalkboard:before{content:"\f51b"}.fa-user-alt-slash:before,.fa-user-large-slash:before{content:"\f4fa"}.fa-signal-4:before,.fa-signal-strong:before{content:"\f68f"}.fa-lollipop:before,.fa-lollypop:before{content:"\e424"}.fa-list-tree:before{content:"\e1d2"}.fa-envelope-open:before{content:"\f2b6"}.fa-draw-circle:before{content:"\f5ed"}.fa-cat-space:before{content:"\e001"}.fa-handshake-alt-slash:before,.fa-handshake-simple-slash:before{content:"\e05f"}.fa-rabbit-fast:before,.fa-rabbit-running:before{content:"\f709"}.fa-memo-pad:before{content:"\e1da"}.fa-mattress-pillow:before{content:"\e525"}.fa-alarm-plus:before{content:"\f844"}.fa-alicorn:before{content:"\f6b0"}.fa-comment-question:before{content:"\e14b"}.fa-gingerbread-man:before{content:"\f79d"}.fa-guarani-sign:before{content:"\e19a"}.fa-burger-fries:before{content:"\e0cd"}.fa-mug-tea:before{content:"\f875"}.fa-border-top:before{content:"\f855"}.fa-arrows-rotate:before,.fa-refresh:before,.fa-sync:before{content:"\f021"}.fa-book-circle:before,.fa-circle-book-open:before{content:"\e0ff"}.fa-arrows-to-dotted-line:before{content:"\e0a6"}.fa-fire-extinguisher:before{content:"\f134"}.fa-magnifying-glass-arrows-rotate:before{content:"\e65e"}.fa-garage-open:before{content:"\e00b"}.fa-shelves-empty:before{content:"\e246"}.fa-cruzeiro-sign:before{content:"\e152"}.fa-watch-apple:before{content:"\e2cb"}.fa-watch-calculator:before{content:"\f8f0"}.fa-list-dropdown:before{content:"\e1cf"}.fa-cabinet-filing:before{content:"\f64b"}.fa-burger-soda:before{content:"\f858"}.fa-arrow-square-up:before,.fa-square-arrow-up:before{content:"\f33c"}.fa-greater-than-equal:before{content:"\f532"}.fa-pallet-box:before{content:"\e208"}.fa-face-confounded:before{content:"\e36c"}.fa-shield-alt:before,.fa-shield-halved:before{content:"\f3ed"}.fa-truck-plow:before{content:"\f7de"}.fa-atlas:before,.fa-book-atlas:before{content:"\f558"}.fa-virus:before{content:"\e074"}.fa-grid-round-2:before{content:"\e5db"}.fa-comment-middle-top:before{content:"\e14a"}.fa-wave:before{content:"\e65b"}.fa-envelope-circle-check:before{content:"\e4e8"}.fa-layer-group:before{content:"\f5fd"}.fa-restroom-simple:before{content:"\e23a"}.fa-arrows-to-dot:before{content:"\e4be"}.fa-border-outer:before{content:"\f851"}.fa-hashtag-lock:before{content:"\e415"}.fa-clock-two-thirty:before{content:"\e35b"}.fa-archway:before{content:"\f557"}.fa-heart-circle-check:before{content:"\e4fd"}.fa-house-chimney-crack:before,.fa-house-damage:before{content:"\f6f1"}.fa-file-archive:before,.fa-file-zipper:before{content:"\f1c6"}.fa-ticket-perforated:before{content:"\e63e"}.fa-heart-half:before{content:"\e1ab"}.fa-comment-check:before{content:"\f4ac"}.fa-square:before{content:"\f0c8"}.fa-memo:before{content:"\e1d8"}.fa-glass-martini:before,.fa-martini-glass-empty:before{content:"\f000"}.fa-couch:before{content:"\f4b8"}.fa-cedi-sign:before{content:"\e0df"}.fa-italic:before{content:"\f033"}.fa-glass-citrus:before{content:"\f869"}.fa-calendar-lines-pen:before{content:"\e472"}.fa-church:before{content:"\f51d"}.fa-person-snowmobiling:before,.fa-snowmobile:before{content:"\f7d1"}.fa-face-hushed:before{content:"\e37b"}.fa-comments-dollar:before{content:"\f653"}.fa-tickets-simple:before{content:"\e659"}.fa-pickaxe:before{content:"\e5bf"}.fa-link-simple-slash:before{content:"\e1ce"}.fa-democrat:before{content:"\f747"}.fa-face-confused:before{content:"\e36d"}.fa-pinball:before{content:"\e229"}.fa-z:before{content:"\5a"}.fa-person-skiing:before,.fa-skiing:before{content:"\f7c9"}.fa-deer:before{content:"\f78e"}.fa-input-pipe:before{content:"\e1be"}.fa-road-lock:before{content:"\e567"}.fa-a:before{content:"\41"}.fa-bookmark-slash:before{content:"\e0c2"}.fa-temperature-arrow-down:before,.fa-temperature-down:before{content:"\e03f"}.fa-mace:before{content:"\f6f8"}.fa-feather-alt:before,.fa-feather-pointed:before{content:"\f56b"}.fa-sausage:before{content:"\f820"}.fa-trash-can-clock:before{content:"\e2aa"}.fa-p:before{content:"\50"}.fa-broom-wide:before{content:"\e5d1"}.fa-snowflake:before{content:"\f2dc"}.fa-stomach:before{content:"\f623"}.fa-newspaper:before{content:"\f1ea"}.fa-ad:before,.fa-rectangle-ad:before{content:"\f641"}.fa-guitar-electric:before{content:"\f8be"}.fa-arrow-turn-down-right:before{content:"\e3d6"}.fa-moon-cloud:before{content:"\f754"}.fa-bread-slice-butter:before{content:"\e3e1"}.fa-arrow-circle-right:before,.fa-circle-arrow-right:before{content:"\f0a9"}.fa-user-group-crown:before,.fa-users-crown:before{content:"\f6a5"}.fa-circle-i:before{content:"\e111"}.fa-toilet-paper-check:before{content:"\e5b2"}.fa-filter-circle-xmark:before{content:"\e17b"}.fa-locust:before{content:"\e520"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-list-1-2:before,.fa-list-numeric:before,.fa-list-ol:before{content:"\f0cb"}.fa-chart-waterfall:before{content:"\e0eb"}.fa-sparkle:before{content:"\e5d6"}.fa-face-party:before{content:"\e383"}.fa-kidneys:before{content:"\f5fb"}.fa-wifi-exclamation:before{content:"\e2cf"}.fa-chart-network:before{content:"\f78a"}.fa-person-dress-burst:before{content:"\e544"}.fa-dice-d4:before{content:"\f6d0"}.fa-money-check-alt:before,.fa-money-check-dollar:before{content:"\f53d"}.fa-vector-square:before{content:"\f5cb"}.fa-bread-slice:before{content:"\f7ec"}.fa-language:before{content:"\f1ab"}.fa-wheat-awn-slash:before{content:"\e338"}.fa-face-kiss-wink-heart:before,.fa-kiss-wink-heart:before{content:"\f598"}.fa-dagger:before{content:"\f6cb"}.fa-podium:before{content:"\f680"}.fa-memo-circle-check:before{content:"\e1d9"}.fa-route-highway:before{content:"\f61a"}.fa-arrow-alt-to-bottom:before,.fa-down-to-line:before{content:"\f34a"}.fa-filter:before{content:"\f0b0"}.fa-square-g:before{content:"\e271"}.fa-circle-phone:before,.fa-phone-circle:before{content:"\e11b"}.fa-clipboard-prescription:before{content:"\f5e8"}.fa-user-nurse-hair:before{content:"\e45d"}.fa-question:before{content:"\3f"}.fa-file-signature:before{content:"\f573"}.fa-toggle-large-on:before{content:"\e5b1"}.fa-arrows-alt:before,.fa-up-down-left-right:before{content:"\f0b2"}.fa-dryer-alt:before,.fa-dryer-heat:before{content:"\f862"}.fa-house-chimney-user:before{content:"\e065"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-arrow-up-small-big:before,.fa-sort-size-up-alt:before{content:"\f88f"}.fa-train-track:before{content:"\e453"}.fa-puzzle-piece:before{content:"\f12e"}.fa-money-check:before{content:"\f53c"}.fa-star-half-alt:before,.fa-star-half-stroke:before{content:"\f5c0"}.fa-file-exclamation:before{content:"\f31a"}.fa-code:before{content:"\f121"}.fa-glass-whiskey:before,.fa-whiskey-glass:before{content:"\f7a0"}.fa-moon-stars:before{content:"\f755"}.fa-building-circle-exclamation:before{content:"\e4d3"}.fa-clothes-hanger:before{content:"\e136"}.fa-mobile-iphone:before,.fa-mobile-notch:before{content:"\e1ee"}.fa-magnifying-glass-chart:before{content:"\e522"}.fa-arrow-up-right-from-square:before,.fa-external-link:before{content:"\f08e"}.fa-cubes-stacked:before{content:"\e4e6"}.fa-images-user:before{content:"\e1b9"}.fa-krw:before,.fa-won-sign:before,.fa-won:before{content:"\f159"}.fa-image-polaroid-user:before{content:"\e1b6"}.fa-virus-covid:before{content:"\e4a8"}.fa-square-ellipsis:before{content:"\e26e"}.fa-pie:before{content:"\f705"}.fa-chess-knight-alt:before,.fa-chess-knight-piece:before{content:"\f442"}.fa-austral-sign:before{content:"\e0a9"}.fa-cloud-plus:before{content:"\e35e"}.fa-f:before{content:"\46"}.fa-leaf:before{content:"\f06c"}.fa-bed-bunk:before{content:"\f8f8"}.fa-road:before{content:"\f018"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-person-circle-plus:before{content:"\e541"}.fa-chart-pie:before,.fa-pie-chart:before{content:"\f200"}.fa-bolt-lightning:before{content:"\e0b7"}.fa-clock-eight:before{content:"\e345"}.fa-sack-xmark:before{content:"\e56a"}.fa-file-xls:before{content:"\e64d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-contract:before{content:"\f56c"}.fa-fish-fins:before{content:"\e4f2"}.fa-circle-q:before{content:"\e11e"}.fa-building-flag:before{content:"\e4d5"}.fa-face-grin-beam:before,.fa-grin-beam:before{content:"\f582"}.fa-object-ungroup:before{content:"\f248"}.fa-face-disguise:before{content:"\e370"}.fa-circle-arrow-down-right:before{content:"\e0fa"}.fa-alien-8bit:before,.fa-alien-monster:before{content:"\f8f6"}.fa-hand-point-ribbon:before{content:"\e1a6"}.fa-poop:before{content:"\f619"}.fa-object-exclude:before{content:"\e49c"}.fa-telescope:before{content:"\e03e"}.fa-location-pin:before,.fa-map-marker:before{content:"\f041"}.fa-square-list:before{content:"\e489"}.fa-kaaba:before{content:"\f66b"}.fa-toilet-paper:before{content:"\f71e"}.fa-hard-hat:before,.fa-hat-hard:before,.fa-helmet-safety:before{content:"\f807"}.fa-comment-code:before{content:"\e147"}.fa-sim-cards:before{content:"\e251"}.fa-starship:before{content:"\e039"}.fa-eject:before{content:"\f052"}.fa-arrow-alt-circle-right:before,.fa-circle-right:before{content:"\f35a"}.fa-plane-circle-check:before{content:"\e555"}.fa-seal:before{content:"\e241"}.fa-user-cowboy:before{content:"\f8ea"}.fa-hexagon-vertical-nft:before{content:"\e505"}.fa-face-rolling-eyes:before,.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-bread-loaf:before{content:"\f7eb"}.fa-rings-wedding:before{content:"\f81b"}.fa-object-group:before{content:"\f247"}.fa-french-fries:before{content:"\f803"}.fa-chart-line:before,.fa-line-chart:before{content:"\f201"}.fa-calendar-arrow-down:before,.fa-calendar-download:before{content:"\e0d0"}.fa-send-back:before{content:"\f87e"}.fa-mask-ventilator:before{content:"\e524"}.fa-tickets:before{content:"\e658"}.fa-signature-lock:before{content:"\e3ca"}.fa-arrow-right:before{content:"\f061"}.fa-map-signs:before,.fa-signs-post:before{content:"\f277"}.fa-octagon-plus:before,.fa-plus-octagon:before{content:"\f301"}.fa-cash-register:before{content:"\f788"}.fa-person-circle-question:before{content:"\e542"}.fa-melon-slice:before{content:"\e311"}.fa-space-station-moon:before{content:"\e033"}.fa-comment-alt-smile:before,.fa-message-smile:before{content:"\f4aa"}.fa-cup-straw:before{content:"\e363"}.fa-arrow-alt-from-right:before,.fa-left-from-line:before{content:"\f348"}.fa-h:before{content:"\48"}.fa-basket-shopping-simple:before,.fa-shopping-basket-alt:before{content:"\e0af"}.fa-hands-heart:before,.fa-hands-holding-heart:before{content:"\f4c3"}.fa-clock-nine:before{content:"\e34c"}.fa-hammer-brush:before{content:"\e620"}.fa-tarp:before{content:"\e57b"}.fa-face-sleepy:before{content:"\e38e"}.fa-hand-horns:before{content:"\e1a9"}.fa-screwdriver-wrench:before,.fa-tools:before{content:"\f7d9"}.fa-arrows-to-eye:before{content:"\e4bf"}.fa-circle-three-quarters:before{content:"\e125"}.fa-trophy-alt:before,.fa-trophy-star:before{content:"\f2eb"}.fa-plug-circle-bolt:before{content:"\e55b"}.fa-face-thermometer:before{content:"\e39a"}.fa-grid-round-4:before{content:"\e5dd"}.fa-sign-posts-wrench:before{content:"\e626"}.fa-shirt-running:before{content:"\e3c8"}.fa-book-circle-arrow-up:before{content:"\e0bd"}.fa-face-nauseated:before{content:"\e381"}.fa-heart:before{content:"\f004"}.fa-file-chart-pie:before{content:"\f65a"}.fa-mars-and-venus:before{content:"\f224"}.fa-home-user:before,.fa-house-user:before{content:"\e1b0"}.fa-circle-arrow-down-left:before{content:"\e0f9"}.fa-dumpster-fire:before{content:"\f794"}.fa-hexagon-minus:before,.fa-minus-hexagon:before{content:"\f307"}.fa-arrow-alt-to-left:before,.fa-left-to-line:before{content:"\f34b"}.fa-house-crack:before{content:"\e3b1"}.fa-paw-alt:before,.fa-paw-simple:before{content:"\f701"}.fa-arrow-left-long-to-line:before{content:"\e3d4"}.fa-brackets-round:before,.fa-parentheses:before{content:"\e0c5"}.fa-cocktail:before,.fa-martini-glass-citrus:before{content:"\f561"}.fa-user-shakespeare:before{content:"\e2c2"}.fa-arrow-right-to-arc:before{content:"\e4b2"}.fa-face-surprise:before,.fa-surprise:before{content:"\f5c2"}.fa-bottle-water:before{content:"\e4c5"}.fa-circle-pause:before,.fa-pause-circle:before{content:"\f28b"}.fa-gauge-circle-plus:before{content:"\e498"}.fa-folders:before{content:"\f660"}.fa-angel:before{content:"\f779"}.fa-value-absolute:before{content:"\f6a6"}.fa-rabbit:before{content:"\f708"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-circle-euro:before{content:"\e5ce"}.fa-apple-alt:before,.fa-apple-whole:before{content:"\f5d1"}.fa-kitchen-set:before{content:"\e51a"}.fa-diamond-half:before{content:"\e5b7"}.fa-lock-alt:before,.fa-lock-keyhole:before{content:"\f30d"}.fa-r:before{content:"\52"}.fa-temperature-1:before,.fa-temperature-quarter:before,.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-info-square:before,.fa-square-info:before{content:"\f30f"}.fa-wifi-slash:before{content:"\f6ac"}.fa-toilet-paper-xmark:before{content:"\e5b3"}.fa-hands-holding-dollar:before,.fa-hands-usd:before{content:"\f4c5"}.fa-cube:before{content:"\f1b2"}.fa-arrow-down-triangle-square:before,.fa-sort-shapes-down:before{content:"\f888"}.fa-bitcoin-sign:before{content:"\e0b4"}.fa-shutters:before{content:"\e449"}.fa-shield-dog:before{content:"\e573"}.fa-solar-panel:before{content:"\f5ba"}.fa-lock-open:before{content:"\f3c1"}.fa-table-tree:before{content:"\e293"}.fa-house-chimney-heart:before{content:"\e1b2"}.fa-tally-3:before{content:"\e296"}.fa-elevator:before{content:"\e16d"}.fa-money-bill-transfer:before{content:"\e528"}.fa-money-bill-trend-up:before{content:"\e529"}.fa-house-flood-water-circle-arrow-right:before{content:"\e50f"}.fa-poll-h:before,.fa-square-poll-horizontal:before{content:"\f682"}.fa-circle:before{content:"\f111"}.fa-cart-circle-exclamation:before{content:"\e3f2"}.fa-sword:before{content:"\f71c"}.fa-backward-fast:before,.fa-fast-backward:before{content:"\f049"}.fa-recycle:before{content:"\f1b8"}.fa-user-astronaut:before{content:"\f4fb"}.fa-interrobang:before{content:"\e5ba"}.fa-plane-slash:before{content:"\e069"}.fa-circle-dashed:before{content:"\e105"}.fa-trademark:before{content:"\f25c"}.fa-basketball-ball:before,.fa-basketball:before{content:"\f434"}.fa-fork-knife:before,.fa-utensils-alt:before{content:"\f2e6"}.fa-satellite-dish:before{content:"\f7c0"}.fa-badge-check:before{content:"\f336"}.fa-arrow-alt-circle-up:before,.fa-circle-up:before{content:"\f35b"}.fa-slider:before{content:"\e252"}.fa-mobile-alt:before,.fa-mobile-screen-button:before{content:"\f3cd"}.fa-clock-one-thirty:before{content:"\e34f"}.fa-inbox-arrow-up:before,.fa-inbox-out:before{content:"\f311"}.fa-cloud-slash:before{content:"\e137"}.fa-volume-high:before,.fa-volume-up:before{content:"\f028"}.fa-users-rays:before{content:"\e593"}.fa-wallet:before{content:"\f555"}.fa-octagon-check:before{content:"\e426"}.fa-flatbread-stuffed:before{content:"\e40c"}.fa-clipboard-check:before{content:"\f46c"}.fa-cart-circle-plus:before{content:"\e3f3"}.fa-shipping-timed:before,.fa-truck-clock:before{content:"\f48c"}.fa-pool-8-ball:before{content:"\e3c5"}.fa-file-audio:before{content:"\f1c7"}.fa-turn-down-left:before{content:"\e331"}.fa-lock-hashtag:before{content:"\e423"}.fa-chart-radar:before{content:"\e0e7"}.fa-staff:before{content:"\f71b"}.fa-burger:before,.fa-hamburger:before{content:"\f805"}.fa-utility-pole:before{content:"\e2c3"}.fa-transporter-6:before{content:"\e2a7"}.fa-arrow-turn-left:before{content:"\e632"}.fa-wrench:before{content:"\f0ad"}.fa-bugs:before{content:"\e4d0"}.fa-vector-polygon:before{content:"\e2c7"}.fa-diagram-nested:before{content:"\e157"}.fa-rupee-sign:before,.fa-rupee:before{content:"\f156"}.fa-file-image:before{content:"\f1c5"}.fa-circle-question:before,.fa-question-circle:before{content:"\f059"}.fa-tickets-perforated:before{content:"\e63f"}.fa-image-user:before{content:"\e1b8"}.fa-buoy:before{content:"\e5b5"}.fa-plane-departure:before{content:"\f5b0"}.fa-handshake-slash:before{content:"\e060"}.fa-book-bookmark:before{content:"\e0bb"}.fa-border-center-h:before{content:"\f89c"}.fa-can-food:before{content:"\e3e6"}.fa-typewriter:before{content:"\f8e7"}.fa-arrow-right-from-arc:before{content:"\e4b1"}.fa-circle-k:before{content:"\e113"}.fa-face-hand-over-mouth:before{content:"\e378"}.fa-popcorn:before{content:"\f819"}.fa-house-flood:before,.fa-house-water:before{content:"\f74f"}.fa-object-subtract:before{content:"\e49e"}.fa-code-branch:before{content:"\f126"}.fa-warehouse-alt:before,.fa-warehouse-full:before{content:"\f495"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-bridge:before{content:"\e4c8"}.fa-phone-alt:before,.fa-phone-flip:before{content:"\f879"}.fa-arrow-down-from-dotted-line:before{content:"\e090"}.fa-file-doc:before{content:"\e5ed"}.fa-square-quarters:before{content:"\e44e"}.fa-truck-front:before{content:"\e2b7"}.fa-cat:before{content:"\f6be"}.fa-trash-xmark:before{content:"\e2b4"}.fa-caret-circle-left:before,.fa-circle-caret-left:before{content:"\f32e"}.fa-files:before{content:"\e178"}.fa-anchor-circle-exclamation:before{content:"\e4ab"}.fa-face-clouds:before{content:"\e47d"}.fa-user-crown:before{content:"\f6a4"}.fa-basket-shopping-plus:before{content:"\e653"}.fa-truck-field:before{content:"\e58d"}.fa-route:before{content:"\f4d7"}.fa-cart-circle-check:before{content:"\e3f1"}.fa-clipboard-question:before{content:"\e4e3"}.fa-panorama:before{content:"\e209"}.fa-comment-medical:before{content:"\f7f5"}.fa-teeth-open:before{content:"\f62f"}.fa-user-tie-hair-long:before{content:"\e460"}.fa-file-circle-minus:before{content:"\e4ed"}.fa-head-side-medical:before{content:"\f809"}.fa-arrow-turn-right:before{content:"\e635"}.fa-tags:before{content:"\f02c"}.fa-wine-glass:before{content:"\f4e3"}.fa-fast-forward:before,.fa-forward-fast:before{content:"\f050"}.fa-face-meh-blank:before,.fa-meh-blank:before{content:"\f5a4"}.fa-user-robot:before{content:"\e04b"}.fa-parking:before,.fa-square-parking:before{content:"\f540"}.fa-card-diamond:before{content:"\e3ea"}.fa-face-zipper:before{content:"\e3a5"}.fa-face-raised-eyebrow:before{content:"\e388"}.fa-house-signal:before{content:"\e012"}.fa-chevron-square-up:before,.fa-square-chevron-up:before{content:"\f32c"}.fa-bars-progress:before,.fa-tasks-alt:before{content:"\f828"}.fa-faucet-drip:before{content:"\e006"}.fa-arrows-to-line:before{content:"\e0a7"}.fa-dolphin:before{content:"\e168"}.fa-arrow-up-right:before{content:"\e09f"}.fa-circle-r:before{content:"\e120"}.fa-cart-flatbed:before,.fa-dolly-flatbed:before{content:"\f474"}.fa-ban-smoking:before,.fa-smoking-ban:before{content:"\f54d"}.fa-circle-sort-up:before,.fa-sort-circle-up:before{content:"\e032"}.fa-terminal:before{content:"\f120"}.fa-mobile-button:before{content:"\f10b"}.fa-house-medical-flag:before{content:"\e514"}.fa-basket-shopping:before,.fa-shopping-basket:before{content:"\f291"}.fa-tape:before{content:"\f4db"}.fa-chestnut:before{content:"\e3f6"}.fa-bus-alt:before,.fa-bus-simple:before{content:"\f55e"}.fa-eye:before{content:"\f06e"}.fa-face-sad-cry:before,.fa-sad-cry:before{content:"\f5b3"}.fa-heat:before{content:"\e00c"}.fa-ticket-airline:before,.fa-ticket-perforated-plane:before,.fa-ticket-plane:before{content:"\e29a"}.fa-boot-heeled:before{content:"\e33f"}.fa-arrows-minimize:before,.fa-compress-arrows:before{content:"\e0a5"}.fa-audio-description:before{content:"\f29e"}.fa-person-military-to-person:before{content:"\e54c"}.fa-file-shield:before{content:"\e4f0"}.fa-hexagon:before{content:"\f312"}.fa-manhole:before{content:"\e1d6"}.fa-user-slash:before{content:"\f506"}.fa-pen:before{content:"\f304"}.fa-tower-observation:before{content:"\e586"}.fa-floppy-disks:before{content:"\e183"}.fa-toilet-paper-blank-under:before,.fa-toilet-paper-reverse-alt:before{content:"\e29f"}.fa-file-code:before{content:"\f1c9"}.fa-signal-5:before,.fa-signal-perfect:before,.fa-signal:before{content:"\f012"}.fa-pump:before{content:"\e442"}.fa-bus:before{content:"\f207"}.fa-heart-circle-xmark:before{content:"\e501"}.fa-arrow-up-left-from-circle:before{content:"\e09e"}.fa-home-lg:before,.fa-house-chimney:before{content:"\e3af"}.fa-window-maximize:before{content:"\f2d0"}.fa-dryer:before{content:"\f861"}.fa-face-frown:before,.fa-frown:before{content:"\f119"}.fa-chess-bishop-alt:before,.fa-chess-bishop-piece:before{content:"\f43b"}.fa-shirt-tank-top:before{content:"\e3c9"}.fa-diploma:before,.fa-scroll-ribbon:before{content:"\f5ea"}.fa-screencast:before{content:"\e23e"}.fa-walker:before{content:"\f831"}.fa-prescription:before{content:"\f5b1"}.fa-shop:before,.fa-store-alt:before{content:"\f54f"}.fa-floppy-disk:before,.fa-save:before{content:"\f0c7"}.fa-vihara:before{content:"\f6a7"}.fa-face-kiss-closed-eyes:before{content:"\e37d"}.fa-balance-scale-left:before,.fa-scale-unbalanced:before{content:"\f515"}.fa-file-user:before{content:"\f65c"}.fa-user-police-tie:before{content:"\e334"}.fa-face-tongue-money:before{content:"\e39d"}.fa-tennis-ball:before{content:"\f45e"}.fa-square-l:before{content:"\e275"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-calendar-arrow-up:before,.fa-calendar-upload:before{content:"\e0d1"}.fa-comment-dots:before,.fa-commenting:before{content:"\f4ad"}.fa-plant-wilt:before{content:"\e5aa"}.fa-scarf:before{content:"\f7c1"}.fa-album-circle-plus:before{content:"\e48c"}.fa-user-nurse-hair-long:before{content:"\e45e"}.fa-diamond:before{content:"\f219"}.fa-arrow-alt-square-left:before,.fa-square-left:before{content:"\f351"}.fa-face-grin-squint:before,.fa-grin-squint:before{content:"\f585"}.fa-circle-ellipsis-vertical:before{content:"\e10b"}.fa-hand-holding-dollar:before,.fa-hand-holding-usd:before{content:"\f4c0"}.fa-grid-dividers:before{content:"\e3ad"}.fa-bacterium:before{content:"\e05a"}.fa-hand-pointer:before{content:"\f25a"}.fa-drum-steelpan:before{content:"\f56a"}.fa-hand-scissors:before{content:"\f257"}.fa-hands-praying:before,.fa-praying-hands:before{content:"\f684"}.fa-face-pensive:before{content:"\e384"}.fa-user-music:before{content:"\f8eb"}.fa-arrow-right-rotate:before,.fa-arrow-rotate-forward:before,.fa-arrow-rotate-right:before,.fa-redo:before{content:"\f01e"}.fa-comments-alt-dollar:before,.fa-messages-dollar:before{content:"\f652"}.fa-sensor-on:before{content:"\e02b"}.fa-balloon:before{content:"\e2e3"}.fa-biohazard:before{content:"\f780"}.fa-chess-queen-alt:before,.fa-chess-queen-piece:before{content:"\f446"}.fa-location-crosshairs:before,.fa-location:before{content:"\f601"}.fa-mars-double:before{content:"\f227"}.fa-house-leave:before,.fa-house-person-depart:before,.fa-house-person-leave:before{content:"\e00f"}.fa-ruler-triangle:before{content:"\f61c"}.fa-card-club:before{content:"\e3e9"}.fa-child-dress:before{content:"\e59c"}.fa-users-between-lines:before{content:"\e591"}.fa-lungs-virus:before{content:"\e067"}.fa-spinner-third:before{content:"\f3f4"}.fa-face-grin-tears:before,.fa-grin-tears:before{content:"\f588"}.fa-phone:before{content:"\f095"}.fa-computer-mouse-scrollwheel:before,.fa-mouse-alt:before{content:"\f8cd"}.fa-calendar-times:before,.fa-calendar-xmark:before{content:"\f273"}.fa-child-reaching:before{content:"\e59d"}.fa-table-layout:before{content:"\e290"}.fa-narwhal:before{content:"\f6fe"}.fa-ramp-loading:before{content:"\f4d4"}.fa-calendar-circle-plus:before{content:"\e470"}.fa-toothbrush:before{content:"\f635"}.fa-border-inner:before{content:"\f84e"}.fa-paw-claws:before{content:"\f702"}.fa-kiwi-fruit:before{content:"\e30c"}.fa-traffic-light-slow:before{content:"\f639"}.fa-rectangle-code:before{content:"\e322"}.fa-head-side-virus:before{content:"\e064"}.fa-keyboard-brightness:before{content:"\e1c0"}.fa-books-medical:before{content:"\f7e8"}.fa-lightbulb-slash:before{content:"\f673"}.fa-home-blank:before,.fa-house-blank:before{content:"\e487"}.fa-square-5:before{content:"\e25a"}.fa-heart-square:before,.fa-square-heart:before{content:"\f4c8"}.fa-puzzle:before{content:"\e443"}.fa-user-cog:before,.fa-user-gear:before{content:"\f4fe"}.fa-pipe-circle-check:before{content:"\e436"}.fa-arrow-up-1-9:before,.fa-sort-numeric-up:before{content:"\f163"}.fa-octagon-exclamation:before{content:"\e204"}.fa-dial-low:before{content:"\e15d"}.fa-door-closed:before{content:"\f52a"}.fa-laptop-mobile:before,.fa-phone-laptop:before{content:"\f87a"}.fa-conveyor-belt-alt:before,.fa-conveyor-belt-boxes:before{content:"\f46f"}.fa-shield-virus:before{content:"\e06c"}.fa-starfighter-alt-advanced:before,.fa-starfighter-twin-ion-engine-advanced:before{content:"\e28e"}.fa-dice-six:before{content:"\f526"}.fa-starfighter-alt:before,.fa-starfighter-twin-ion-engine:before{content:"\e038"}.fa-rocket-launch:before{content:"\e027"}.fa-mosquito-net:before{content:"\e52c"}.fa-vent-damper:before{content:"\e465"}.fa-bridge-water:before{content:"\e4ce"}.fa-ban-bug:before,.fa-debug:before{content:"\f7f9"}.fa-person-booth:before{content:"\f756"}.fa-text-width:before{content:"\f035"}.fa-garage-car:before{content:"\e00a"}.fa-square-kanban:before{content:"\e488"}.fa-hat-wizard:before{content:"\f6e8"}.fa-chart-kanban:before{content:"\e64f"}.fa-pen-fancy:before{content:"\f5ac"}.fa-coffee-pot:before{content:"\e002"}.fa-mouse-field:before{content:"\e5a8"}.fa-digging:before,.fa-person-digging:before{content:"\f85e"}.fa-shower-alt:before,.fa-shower-down:before{content:"\e24d"}.fa-box-circle-check:before{content:"\e0c4"}.fa-brightness:before{content:"\e0c9"}.fa-car-side-bolt:before{content:"\e344"}.fa-file-xml:before{content:"\e654"}.fa-ornament:before{content:"\f7b8"}.fa-phone-arrow-down-left:before,.fa-phone-arrow-down:before,.fa-phone-incoming:before{content:"\e223"}.fa-cloud-word:before{content:"\e138"}.fa-hand-fingers-crossed:before{content:"\e1a3"}.fa-trash:before{content:"\f1f8"}.fa-gauge-simple-med:before,.fa-gauge-simple:before,.fa-tachometer-average:before{content:"\f629"}.fa-arrow-down-small-big:before,.fa-sort-size-down-alt:before{content:"\f88d"}.fa-book-medical:before{content:"\f7e6"}.fa-face-melting:before{content:"\e483"}.fa-poo:before{content:"\f2fe"}.fa-pen-alt-slash:before,.fa-pen-clip-slash:before{content:"\e20f"}.fa-quote-right-alt:before,.fa-quote-right:before{content:"\f10e"}.fa-scroll-old:before{content:"\f70f"}.fa-guitars:before{content:"\f8bf"}.fa-phone-xmark:before{content:"\e227"}.fa-hose:before{content:"\e419"}.fa-clock-six:before{content:"\e352"}.fa-shirt:before,.fa-t-shirt:before,.fa-tshirt:before{content:"\f553"}.fa-billboard:before{content:"\e5cd"}.fa-square-r:before{content:"\e27c"}.fa-cubes:before{content:"\f1b3"}.fa-envelope-open-dollar:before{content:"\f657"}.fa-divide:before{content:"\f529"}.fa-sun-cloud:before{content:"\f763"}.fa-lamp-floor:before{content:"\e015"}.fa-square-7:before{content:"\e25c"}.fa-tenge-sign:before,.fa-tenge:before{content:"\f7d7"}.fa-headphones:before{content:"\f025"}.fa-hands-holding:before{content:"\f4c2"}.fa-campfire:before{content:"\f6ba"}.fa-circle-ampersand:before{content:"\e0f8"}.fa-snowflakes:before{content:"\f7cf"}.fa-hands-clapping:before{content:"\e1a8"}.fa-republican:before{content:"\f75e"}.fa-leaf-maple:before{content:"\f6f6"}.fa-arrow-left:before{content:"\f060"}.fa-person-circle-xmark:before{content:"\e543"}.fa-ruler:before{content:"\f545"}.fa-cup-straw-swoosh:before{content:"\e364"}.fa-temperature-hot:before,.fa-temperature-sun:before{content:"\f76a"}.fa-align-left:before{content:"\f036"}.fa-dice-d6:before{content:"\f6d1"}.fa-restroom:before{content:"\f7bd"}.fa-high-definition:before,.fa-rectangle-hd:before{content:"\e1ae"}.fa-j:before{content:"\4a"}.fa-galaxy:before{content:"\e008"}.fa-users-viewfinder:before{content:"\e595"}.fa-file-video:before{content:"\f1c8"}.fa-cherries:before{content:"\e0ec"}.fa-external-link-alt:before,.fa-up-right-from-square:before{content:"\f35d"}.fa-circle-sort:before,.fa-sort-circle:before{content:"\e030"}.fa-table-cells:before,.fa-th:before{content:"\f00a"}.fa-bag-shopping-minus:before{content:"\e650"}.fa-file-pdf:before{content:"\f1c1"}.fa-siren:before{content:"\e02d"}.fa-arrow-up-to-dotted-line:before{content:"\e0a1"}.fa-image-landscape:before,.fa-landscape:before{content:"\e1b5"}.fa-tank-water:before{content:"\e452"}.fa-curling-stone:before,.fa-curling:before{content:"\f44a"}.fa-gamepad-alt:before,.fa-gamepad-modern:before{content:"\e5a2"}.fa-messages-question:before{content:"\e1e7"}.fa-bible:before,.fa-book-bible:before{content:"\f647"}.fa-o:before{content:"\4f"}.fa-medkit:before,.fa-suitcase-medical:before{content:"\f0fa"}.fa-briefcase-arrow-right:before{content:"\e2f2"}.fa-expand-wide:before{content:"\f320"}.fa-clock-eleven-thirty:before{content:"\e348"}.fa-rv:before{content:"\f7be"}.fa-user-secret:before{content:"\f21b"}.fa-otter:before{content:"\f700"}.fa-dreidel:before{content:"\f792"}.fa-female:before,.fa-person-dress:before{content:"\f182"}.fa-comment-dollar:before{content:"\f651"}.fa-briefcase-clock:before,.fa-business-time:before{content:"\f64a"}.fa-flower-tulip:before{content:"\f801"}.fa-people-pants-simple:before{content:"\e21a"}.fa-cloud-drizzle:before{content:"\f738"}.fa-table-cells-large:before,.fa-th-large:before{content:"\f009"}.fa-book-tanakh:before,.fa-tanakh:before{content:"\f827"}.fa-solar-system:before{content:"\e02f"}.fa-seal-question:before{content:"\e243"}.fa-phone-volume:before,.fa-volume-control-phone:before{content:"\f2a0"}.fa-disc-drive:before{content:"\f8b5"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-rows:before,.fa-table-rows:before{content:"\e292"}.fa-location-exclamation:before,.fa-map-marker-exclamation:before{content:"\f608"}.fa-face-fearful:before{content:"\e375"}.fa-clipboard-user:before{content:"\f7f3"}.fa-bus-school:before{content:"\f5dd"}.fa-film-slash:before{content:"\e179"}.fa-square-arrow-down-right:before{content:"\e262"}.fa-book-sparkles:before,.fa-book-spells:before{content:"\f6b8"}.fa-washer:before,.fa-washing-machine:before{content:"\f898"}.fa-child:before{content:"\f1ae"}.fa-lira-sign:before{content:"\f195"}.fa-user-visor:before{content:"\e04c"}.fa-file-plus-minus:before{content:"\e177"}.fa-chess-clock-alt:before,.fa-chess-clock-flip:before{content:"\f43e"}.fa-satellite:before{content:"\f7bf"}.fa-truck-fire:before{content:"\e65a"}.fa-plane-lock:before{content:"\e558"}.fa-steering-wheel:before{content:"\f622"}.fa-tag:before{content:"\f02b"}.fa-stretcher:before{content:"\f825"}.fa-book-law:before,.fa-book-section:before{content:"\e0c1"}.fa-inboxes:before{content:"\e1bb"}.fa-coffee-bean:before{content:"\e13e"}.fa-circle-yen:before{content:"\e5d0"}.fa-brackets-curly:before{content:"\f7ea"}.fa-ellipsis-stroke-vertical:before,.fa-ellipsis-v-alt:before{content:"\f39c"}.fa-comment:before{content:"\f075"}.fa-square-1:before{content:"\e256"}.fa-birthday-cake:before,.fa-cake-candles:before,.fa-cake:before{content:"\f1fd"}.fa-head-side:before{content:"\f6e9"}.fa-truck-ladder:before{content:"\e657"}.fa-envelope:before{content:"\f0e0"}.fa-dolly-empty:before{content:"\f473"}.fa-face-tissue:before{content:"\e39c"}.fa-angle-double-up:before,.fa-angles-up:before{content:"\f102"}.fa-bin-recycle:before{content:"\e5f7"}.fa-paperclip:before{content:"\f0c6"}.fa-chart-line-down:before{content:"\f64d"}.fa-arrow-right-to-city:before{content:"\e4b3"}.fa-lock-a:before{content:"\e422"}.fa-ribbon:before{content:"\f4d6"}.fa-lungs:before{content:"\f604"}.fa-person-pinball:before{content:"\e21d"}.fa-arrow-up-9-1:before,.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-apple-core:before{content:"\e08f"}.fa-circle-y:before{content:"\e12f"}.fa-h6:before{content:"\e413"}.fa-litecoin-sign:before{content:"\e1d3"}.fa-circle-small:before{content:"\e122"}.fa-border-none:before{content:"\f850"}.fa-arrow-turn-down-left:before{content:"\e2e1"}.fa-circle-nodes:before{content:"\e4e2"}.fa-parachute-box:before{content:"\f4cd"}.fa-reflect-horizontal:before{content:"\e664"}.fa-comment-alt-medical:before,.fa-message-medical:before{content:"\f7f4"}.fa-rugby-ball:before{content:"\e3c6"}.fa-comment-music:before{content:"\f8b0"}.fa-indent:before{content:"\f03c"}.fa-tree-alt:before,.fa-tree-deciduous:before{content:"\f400"}.fa-puzzle-piece-alt:before,.fa-puzzle-piece-simple:before{content:"\e231"}.fa-truck-field-un:before{content:"\e58e"}.fa-nfc-trash:before{content:"\e1fd"}.fa-hourglass-empty:before,.fa-hourglass:before{content:"\f254"}.fa-mountain:before{content:"\f6fc"}.fa-file-times:before,.fa-file-xmark:before{content:"\f317"}.fa-home-heart:before,.fa-house-heart:before{content:"\f4c9"}.fa-house-chimney-blank:before{content:"\e3b0"}.fa-meter-bolt:before{content:"\e1e9"}.fa-user-doctor:before,.fa-user-md:before{content:"\f0f0"}.fa-slash-back:before{content:"\5c"}.fa-circle-info:before,.fa-info-circle:before{content:"\f05a"}.fa-fishing-rod:before{content:"\e3a8"}.fa-hammer-crash:before{content:"\e414"}.fa-message-heart:before{content:"\e5c9"}.fa-cloud-meatball:before{content:"\f73b"}.fa-camera-polaroid:before{content:"\f8aa"}.fa-camera-alt:before,.fa-camera:before{content:"\f030"}.fa-square-virus:before{content:"\e578"}.fa-cart-arrow-up:before{content:"\e3ee"}.fa-meteor:before{content:"\f753"}.fa-car-on:before{content:"\e4dd"}.fa-sleigh:before{content:"\f7cc"}.fa-arrow-down-1-9:before,.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:"\f162"}.fa-buoy-mooring:before{content:"\e5b6"}.fa-square-4:before{content:"\e259"}.fa-hand-holding-droplet:before,.fa-hand-holding-water:before{content:"\f4c1"}.fa-file-eps:before{content:"\e644"}.fa-tricycle-adult:before{content:"\e5c4"}.fa-waveform:before{content:"\f8f1"}.fa-water:before{content:"\f773"}.fa-star-sharp-half-alt:before,.fa-star-sharp-half-stroke:before{content:"\e28d"}.fa-nfc-signal:before{content:"\e1fb"}.fa-plane-prop:before{content:"\e22b"}.fa-calendar-check:before{content:"\f274"}.fa-clock-desk:before{content:"\e134"}.fa-calendar-clock:before,.fa-calendar-time:before{content:"\e0d2"}.fa-braille:before{content:"\f2a1"}.fa-prescription-bottle-alt:before,.fa-prescription-bottle-medical:before{content:"\f486"}.fa-plate-utensils:before{content:"\e43b"}.fa-family-pants:before{content:"\e302"}.fa-hose-reel:before{content:"\e41a"}.fa-house-window:before{content:"\e3b3"}.fa-landmark:before{content:"\f66f"}.fa-truck:before{content:"\f0d1"}.fa-music-magnifying-glass:before{content:"\e662"}.fa-crosshairs:before{content:"\f05b"}.fa-cloud-rainbow:before{content:"\f73e"}.fa-person-cane:before{content:"\e53c"}.fa-alien:before{content:"\f8f5"}.fa-tent:before{content:"\e57d"}.fa-laptop-binary:before{content:"\e5e7"}.fa-vest-patches:before{content:"\e086"}.fa-people-dress-simple:before{content:"\e218"}.fa-check-double:before{content:"\f560"}.fa-arrow-down-a-z:before,.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:"\f15d"}.fa-bowling-ball-pin:before{content:"\e0c3"}.fa-bell-school-slash:before{content:"\f5d6"}.fa-plus-large:before{content:"\e59e"}.fa-money-bill-wheat:before{content:"\e52a"}.fa-camera-viewfinder:before,.fa-screenshot:before{content:"\e0da"}.fa-comment-alt-music:before,.fa-message-music:before{content:"\f8af"}.fa-car-building:before{content:"\f859"}.fa-border-bottom-right:before,.fa-border-style-alt:before{content:"\f854"}.fa-octagon:before{content:"\f306"}.fa-comment-arrow-up-right:before{content:"\e145"}.fa-octagon-divide:before{content:"\e203"}.fa-cookie:before{content:"\f563"}.fa-arrow-left-rotate:before,.fa-arrow-rotate-back:before,.fa-arrow-rotate-backward:before,.fa-arrow-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-tv-music:before{content:"\f8e6"}.fa-hard-drive:before,.fa-hdd:before{content:"\f0a0"}.fa-reel:before{content:"\e238"}.fa-face-grin-squint-tears:before,.fa-grin-squint-tears:before{content:"\f586"}.fa-dumbbell:before{content:"\f44b"}.fa-list-alt:before,.fa-rectangle-list:before{content:"\f022"}.fa-tarp-droplet:before{content:"\e57c"}.fa-alarm-exclamation:before{content:"\f843"}.fa-house-medical-circle-check:before{content:"\e511"}.fa-traffic-cone:before{content:"\f636"}.fa-grate:before{content:"\e193"}.fa-arrow-down-right:before{content:"\e093"}.fa-person-skiing-nordic:before,.fa-skiing-nordic:before{content:"\f7ca"}.fa-calendar-plus:before{content:"\f271"}.fa-person-from-portal:before,.fa-portal-exit:before{content:"\e023"}.fa-plane-arrival:before{content:"\f5af"}.fa-cowbell-circle-plus:before,.fa-cowbell-more:before{content:"\f8b4"}.fa-arrow-alt-circle-left:before,.fa-circle-left:before{content:"\f359"}.fa-distribute-spacing-vertical:before{content:"\e366"}.fa-signal-alt-2:before,.fa-signal-bars-fair:before{content:"\f692"}.fa-sportsball:before{content:"\e44b"}.fa-game-console-handheld-crank:before{content:"\e5b9"}.fa-subway:before,.fa-train-subway:before{content:"\f239"}.fa-chart-gantt:before{content:"\e0e4"}.fa-face-smile-upside-down:before{content:"\e395"}.fa-ball-pile:before{content:"\f77e"}.fa-badge-dollar:before{content:"\f645"}.fa-money-bills-alt:before,.fa-money-bills-simple:before{content:"\e1f4"}.fa-list-timeline:before{content:"\e1d1"}.fa-indian-rupee-sign:before,.fa-indian-rupee:before,.fa-inr:before{content:"\e1bc"}.fa-crop-alt:before,.fa-crop-simple:before{content:"\f565"}.fa-money-bill-1:before,.fa-money-bill-alt:before{content:"\f3d1"}.fa-left-long:before,.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-keyboard-down:before{content:"\e1c2"}.fa-circle-up-right:before{content:"\e129"}.fa-cloud-bolt-moon:before,.fa-thunderstorm-moon:before{content:"\f76d"}.fa-turn-left-up:before{content:"\e638"}.fa-dna:before{content:"\f471"}.fa-virus-slash:before{content:"\e075"}.fa-bracket-round-right:before{content:"\29"}.fa-circle-sterling:before{content:"\e5cf"}.fa-circle-5:before{content:"\e0f2"}.fa-minus:before,.fa-subtract:before{content:"\f068"}.fa-fire-flame:before,.fa-flame:before{content:"\f6df"}.fa-arrow-alt-to-right:before,.fa-right-to-line:before{content:"\f34c"}.fa-gif:before{content:"\e190"}.fa-chess:before{content:"\f439"}.fa-trash-slash:before{content:"\e2b3"}.fa-arrow-left-long:before,.fa-long-arrow-left:before{content:"\f177"}.fa-plug-circle-check:before{content:"\e55c"}.fa-font-case:before{content:"\f866"}.fa-street-view:before{content:"\f21d"}.fa-arrow-down-left:before{content:"\e091"}.fa-franc-sign:before{content:"\e18f"}.fa-flask-poison:before,.fa-flask-round-poison:before{content:"\f6e0"}.fa-volume-off:before{content:"\f026"}.fa-book-circle-arrow-right:before{content:"\e0bc"}.fa-chart-user:before,.fa-user-chart:before{content:"\f6a3"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before,.fa-hands-american-sign-language-interpreting:before,.fa-hands-asl-interpreting:before{content:"\f2a3"}.fa-presentation-screen:before,.fa-presentation:before{content:"\f685"}.fa-circle-bolt:before{content:"\e0fe"}.fa-face-smile-halo:before{content:"\e38f"}.fa-cart-circle-arrow-down:before{content:"\e3ef"}.fa-house-person-arrive:before,.fa-house-person-return:before,.fa-house-return:before{content:"\e011"}.fa-comment-alt-times:before,.fa-message-times:before,.fa-message-xmark:before{content:"\f4ab"}.fa-file-award:before,.fa-file-certificate:before{content:"\f5f3"}.fa-user-doctor-hair-long:before{content:"\e459"}.fa-camera-home:before,.fa-camera-security:before{content:"\f8fe"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-droplet-slash:before,.fa-tint-slash:before{content:"\f5c7"}.fa-book-heart:before{content:"\f499"}.fa-mosque:before{content:"\f678"}.fa-duck:before{content:"\f6d8"}.fa-mosquito:before{content:"\e52b"}.fa-star-of-david:before{content:"\f69a"}.fa-flag-alt:before,.fa-flag-swallowtail:before{content:"\f74c"}.fa-person-military-rifle:before{content:"\e54b"}.fa-car-garage:before{content:"\f5e2"}.fa-cart-shopping:before,.fa-shopping-cart:before{content:"\f07a"}.fa-book-font:before{content:"\e0bf"}.fa-shield-plus:before{content:"\e24a"}.fa-vials:before{content:"\f493"}.fa-eye-dropper-full:before{content:"\e172"}.fa-distribute-spacing-horizontal:before{content:"\e365"}.fa-tablet-rugged:before{content:"\f48f"}.fa-temperature-frigid:before,.fa-temperature-snow:before{content:"\f768"}.fa-moped:before{content:"\e3b9"}.fa-face-smile-plus:before,.fa-smile-plus:before{content:"\f5b9"}.fa-radio-alt:before,.fa-radio-tuner:before{content:"\f8d8"}.fa-face-swear:before{content:"\e399"}.fa-water-arrow-down:before,.fa-water-lower:before{content:"\f774"}.fa-scanner-touchscreen:before{content:"\f48a"}.fa-circle-7:before{content:"\e0f4"}.fa-plug-circle-plus:before{content:"\e55f"}.fa-person-ski-jumping:before,.fa-ski-jump:before{content:"\f7c7"}.fa-place-of-worship:before{content:"\f67f"}.fa-water-arrow-up:before,.fa-water-rise:before{content:"\f775"}.fa-waveform-lines:before,.fa-waveform-path:before{content:"\f8f2"}.fa-split:before{content:"\e254"}.fa-film-canister:before,.fa-film-cannister:before{content:"\f8b7"}.fa-folder-times:before,.fa-folder-xmark:before{content:"\f65f"}.fa-toilet-paper-alt:before,.fa-toilet-paper-blank:before{content:"\f71f"}.fa-tablet-android-alt:before,.fa-tablet-screen:before{content:"\f3fc"}.fa-hexagon-vertical-nft-slanted:before{content:"\e506"}.fa-folder-music:before{content:"\e18d"}.fa-desktop-medical:before,.fa-display-medical:before{content:"\e166"}.fa-share-all:before{content:"\f367"}.fa-peapod:before{content:"\e31c"}.fa-chess-clock:before{content:"\f43d"}.fa-axe:before{content:"\f6b2"}.fa-square-d:before{content:"\e268"}.fa-grip-vertical:before{content:"\f58e"}.fa-mobile-signal-out:before{content:"\e1f0"}.fa-arrow-turn-up:before,.fa-level-up:before{content:"\f148"}.fa-u:before{content:"\55"}.fa-arrow-up-from-dotted-line:before{content:"\e09b"}.fa-square-root-alt:before,.fa-square-root-variable:before{content:"\f698"}.fa-light-switch-on:before{content:"\e019"}.fa-arrow-down-arrow-up:before,.fa-sort-alt:before{content:"\f883"}.fa-raindrops:before{content:"\f75c"}.fa-dash:before,.fa-minus-large:before{content:"\e404"}.fa-clock-four:before,.fa-clock:before{content:"\f017"}.fa-input-numeric:before{content:"\e1bd"}.fa-truck-tow:before{content:"\e2b8"}.fa-backward-step:before,.fa-step-backward:before{content:"\f048"}.fa-pallet:before{content:"\f482"}.fa-car-bolt:before{content:"\e341"}.fa-arrows-maximize:before,.fa-expand-arrows:before{content:"\f31d"}.fa-faucet:before{content:"\e005"}.fa-cloud-sleet:before{content:"\f741"}.fa-lamp-street:before{content:"\e1c5"}.fa-list-radio:before{content:"\e1d0"}.fa-pen-nib-slash:before{content:"\e4a1"}.fa-baseball-bat-ball:before{content:"\f432"}.fa-square-up-left:before{content:"\e282"}.fa-overline:before{content:"\f876"}.fa-s:before{content:"\53"}.fa-timeline:before{content:"\e29c"}.fa-keyboard:before{content:"\f11c"}.fa-arrows-from-dotted-line:before{content:"\e0a3"}.fa-usb-drive:before{content:"\f8e9"}.fa-ballot:before{content:"\f732"}.fa-caret-down:before{content:"\f0d7"}.fa-location-dot-slash:before,.fa-map-marker-alt-slash:before{content:"\f605"}.fa-cards:before{content:"\e3ed"}.fa-clinic-medical:before,.fa-house-chimney-medical:before{content:"\f7f2"}.fa-boxing-glove:before,.fa-glove-boxing:before{content:"\f438"}.fa-temperature-3:before,.fa-temperature-three-quarters:before,.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-bell-school:before{content:"\f5d5"}.fa-mobile-android-alt:before,.fa-mobile-screen:before{content:"\f3cf"}.fa-plane-up:before{content:"\e22d"}.fa-folder-heart:before{content:"\e189"}.fa-circle-location-arrow:before,.fa-location-circle:before{content:"\f602"}.fa-face-head-bandage:before{content:"\e37a"}.fa-maki-roll:before,.fa-makizushi:before,.fa-sushi-roll:before{content:"\e48b"}.fa-car-bump:before{content:"\f5e0"}.fa-piggy-bank:before{content:"\f4d3"}.fa-racquet:before{content:"\f45a"}.fa-car-mirrors:before{content:"\e343"}.fa-industry-alt:before,.fa-industry-windows:before{content:"\f3b3"}.fa-bolt-auto:before{content:"\e0b6"}.fa-battery-3:before,.fa-battery-half:before{content:"\f242"}.fa-flux-capacitor:before{content:"\f8ba"}.fa-mountain-city:before{content:"\e52e"}.fa-coins:before{content:"\f51e"}.fa-honey-pot:before{content:"\e418"}.fa-olive:before{content:"\e316"}.fa-khanda:before{content:"\f66d"}.fa-filter-list:before{content:"\e17c"}.fa-outlet:before{content:"\e01c"}.fa-sliders-h:before,.fa-sliders:before{content:"\f1de"}.fa-cauldron:before{content:"\f6bf"}.fa-people:before{content:"\e216"}.fa-folder-tree:before{content:"\f802"}.fa-network-wired:before{content:"\f6ff"}.fa-croissant:before{content:"\f7f6"}.fa-map-pin:before{content:"\f276"}.fa-hamsa:before{content:"\f665"}.fa-cent-sign:before{content:"\e3f5"}.fa-swords-laser:before{content:"\e03d"}.fa-flask:before{content:"\f0c3"}.fa-person-pregnant:before{content:"\e31e"}.fa-square-u:before{content:"\e281"}.fa-wand-sparkles:before{content:"\f72b"}.fa-router:before{content:"\f8da"}.fa-ellipsis-v:before,.fa-ellipsis-vertical:before{content:"\f142"}.fa-sword-laser-alt:before{content:"\e03c"}.fa-ticket:before{content:"\f145"}.fa-power-off:before{content:"\f011"}.fa-coin:before{content:"\f85c"}.fa-laptop-slash:before{content:"\e1c7"}.fa-long-arrow-alt-right:before,.fa-right-long:before{content:"\f30b"}.fa-circle-b:before{content:"\e0fd"}.fa-person-dress-simple:before{content:"\e21c"}.fa-pipe-collar:before{content:"\e437"}.fa-lights-holiday:before{content:"\f7b2"}.fa-citrus:before{content:"\e2f4"}.fa-flag-usa:before{content:"\f74d"}.fa-laptop-file:before{content:"\e51d"}.fa-teletype:before,.fa-tty:before{content:"\f1e4"}.fa-chart-tree-map:before{content:"\e0ea"}.fa-diagram-next:before{content:"\e476"}.fa-person-rifle:before{content:"\e54e"}.fa-clock-five-thirty:before{content:"\e34a"}.fa-pipe-valve:before{content:"\e439"}.fa-arrow-up-from-arc:before{content:"\e4b4"}.fa-face-spiral-eyes:before{content:"\e485"}.fa-compress-wide:before{content:"\f326"}.fa-circle-phone-hangup:before,.fa-phone-circle-down:before{content:"\e11d"}.fa-gear-complex-code:before{content:"\e5eb"}.fa-house-medical-circle-exclamation:before{content:"\e512"}.fa-badminton:before{content:"\e33a"}.fa-closed-captioning:before{content:"\f20a"}.fa-hiking:before,.fa-person-hiking:before{content:"\f6ec"}.fa-arrow-alt-from-left:before,.fa-right-from-line:before{content:"\f347"}.fa-venus-double:before{content:"\f226"}.fa-images:before{content:"\f302"}.fa-calculator:before{content:"\f1ec"}.fa-shuttlecock:before{content:"\f45b"}.fa-user-hair:before{content:"\e45a"}.fa-eye-evil:before{content:"\f6db"}.fa-people-pulling:before{content:"\e535"}.fa-n:before{content:"\4e"}.fa-swap:before{content:"\e609"}.fa-garage:before{content:"\e009"}.fa-cable-car:before,.fa-tram:before{content:"\f7da"}.fa-shovel-snow:before{content:"\f7c3"}.fa-cloud-rain:before{content:"\f73d"}.fa-face-lying:before{content:"\e37e"}.fa-sprinkler:before{content:"\e035"}.fa-building-circle-xmark:before{content:"\e4d4"}.fa-person-sledding:before,.fa-sledding:before{content:"\f7cb"}.fa-game-console-handheld:before{content:"\f8bb"}.fa-ship:before{content:"\f21a"}.fa-clock-six-thirty:before{content:"\e353"}.fa-battery-slash:before{content:"\f377"}.fa-tugrik-sign:before{content:"\e2ba"}.fa-arrows-down-to-line:before{content:"\e4b8"}.fa-download:before{content:"\f019"}.fa-angles-up-down:before{content:"\e60d"}.fa-inventory:before,.fa-shelves:before{content:"\f480"}.fa-cloud-snow:before{content:"\f742"}.fa-face-grin:before,.fa-grin:before{content:"\f580"}.fa-backspace:before,.fa-delete-left:before{content:"\f55a"}.fa-oven:before{content:"\e01d"}.fa-cloud-binary:before{content:"\e601"}.fa-eye-dropper-empty:before,.fa-eye-dropper:before,.fa-eyedropper:before{content:"\f1fb"}.fa-comment-captions:before{content:"\e146"}.fa-comments-question:before{content:"\e14e"}.fa-scribble:before{content:"\e23f"}.fa-rotate-exclamation:before{content:"\e23c"}.fa-file-circle-check:before{content:"\e5a0"}.fa-glass:before{content:"\f804"}.fa-loader:before{content:"\e1d4"}.fa-forward:before{content:"\f04e"}.fa-user-pilot:before{content:"\e2c0"}.fa-mobile-android:before,.fa-mobile-phone:before,.fa-mobile:before{content:"\f3ce"}.fa-code-pull-request-closed:before{content:"\e3f9"}.fa-face-meh:before,.fa-meh:before{content:"\f11a"}.fa-align-center:before{content:"\f037"}.fa-book-dead:before,.fa-book-skull:before{content:"\f6b7"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-face-dotted:before{content:"\e47f"}.fa-face-worried:before{content:"\e3a3"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-court-sport:before{content:"\e643"}.fa-heart-circle-exclamation:before{content:"\e4fe"}.fa-home-alt:before,.fa-home-lg-alt:before,.fa-home:before,.fa-house:before{content:"\f015"}.fa-vector-circle:before{content:"\e2c6"}.fa-car-circle-bolt:before{content:"\e342"}.fa-calendar-week:before{content:"\f784"}.fa-flying-disc:before{content:"\e3a9"}.fa-laptop-medical:before{content:"\f812"}.fa-square-down-right:before{content:"\e26c"}.fa-b:before{content:"\42"}.fa-seat-airline:before{content:"\e244"}.fa-eclipse-alt:before,.fa-moon-over-sun:before{content:"\f74a"}.fa-pipe:before{content:"\7c"}.fa-file-medical:before{content:"\f477"}.fa-potato:before{content:"\e440"}.fa-dice-one:before{content:"\f525"}.fa-circle-a:before{content:"\e0f7"}.fa-helmet-battle:before{content:"\f6eb"}.fa-butter:before{content:"\e3e4"}.fa-blanket-fire:before{content:"\e3da"}.fa-kiwi-bird:before{content:"\f535"}.fa-castle:before{content:"\e0de"}.fa-golf-club:before{content:"\f451"}.fa-arrow-right-arrow-left:before,.fa-exchange:before{content:"\f0ec"}.fa-redo-alt:before,.fa-rotate-forward:before,.fa-rotate-right:before{content:"\f2f9"}.fa-cutlery:before,.fa-utensils:before{content:"\f2e7"}.fa-arrow-up-wide-short:before,.fa-sort-amount-up:before{content:"\f161"}.fa-chart-pie-simple-circle-dollar:before{content:"\e605"}.fa-balloons:before{content:"\e2e4"}.fa-mill-sign:before{content:"\e1ed"}.fa-bowl-rice:before{content:"\e2eb"}.fa-timeline-arrow:before{content:"\e29d"}.fa-skull:before{content:"\f54c"}.fa-game-board-alt:before,.fa-game-board-simple:before{content:"\f868"}.fa-circle-video:before,.fa-video-circle:before{content:"\e12b"}.fa-chart-scatter-bubble:before{content:"\e0e9"}.fa-house-turret:before{content:"\e1b4"}.fa-banana:before{content:"\e2e5"}.fa-hand-holding-skull:before{content:"\e1a4"}.fa-people-dress:before{content:"\e217"}.fa-couch-small:before,.fa-loveseat:before{content:"\f4cc"}.fa-broadcast-tower:before,.fa-tower-broadcast:before{content:"\f519"}.fa-truck-pickup:before{content:"\f63c"}.fa-block-quote:before{content:"\e0b5"}.fa-long-arrow-alt-up:before,.fa-up-long:before{content:"\f30c"}.fa-stop:before{content:"\f04d"}.fa-code-merge:before{content:"\f387"}.fa-money-check-dollar-pen:before,.fa-money-check-edit-alt:before{content:"\f873"}.fa-arrow-alt-from-bottom:before,.fa-up-from-line:before{content:"\f346"}.fa-upload:before{content:"\f093"}.fa-hurricane:before{content:"\f751"}.fa-grid-round-2-plus:before{content:"\e5dc"}.fa-people-pants:before{content:"\e219"}.fa-mound:before{content:"\e52d"}.fa-windsock:before{content:"\f777"}.fa-circle-half:before{content:"\e110"}.fa-brake-warning:before{content:"\e0c7"}.fa-toilet-portable:before{content:"\e583"}.fa-compact-disc:before{content:"\f51f"}.fa-file-arrow-down:before,.fa-file-download:before{content:"\f56d"}.fa-sax-hot:before,.fa-saxophone-fire:before{content:"\f8db"}.fa-camera-web-slash:before,.fa-webcam-slash:before{content:"\f833"}.fa-folder-medical:before{content:"\e18c"}.fa-folder-cog:before,.fa-folder-gear:before{content:"\e187"}.fa-hand-wave:before{content:"\e1a7"}.fa-arrow-up-arrow-down:before,.fa-sort-up-down:before{content:"\e099"}.fa-caravan:before{content:"\f8ff"}.fa-shield-cat:before{content:"\e572"}.fa-comment-alt-slash:before,.fa-message-slash:before{content:"\f4a9"}.fa-bolt:before,.fa-zap:before{content:"\f0e7"}.fa-trash-can-check:before{content:"\e2a9"}.fa-glass-water:before{content:"\e4f4"}.fa-oil-well:before{content:"\e532"}.fa-person-simple:before{content:"\e220"}.fa-arrow-turn-left-up:before{content:"\e634"}.fa-vault:before{content:"\e2c5"}.fa-mars:before{content:"\f222"}.fa-toilet:before{content:"\f7d8"}.fa-plane-circle-xmark:before{content:"\e557"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen-sign:before,.fa-yen:before{content:"\f157"}.fa-gear-code:before{content:"\e5e8"}.fa-notes:before{content:"\e202"}.fa-rouble:before,.fa-rub:before,.fa-ruble-sign:before,.fa-ruble:before{content:"\f158"}.fa-trash-arrow-turn-left:before,.fa-trash-undo:before{content:"\f895"}.fa-champagne-glass:before,.fa-glass-champagne:before{content:"\f79e"}.fa-objects-align-center-horizontal:before{content:"\e3bc"}.fa-sun:before{content:"\f185"}.fa-trash-alt-slash:before,.fa-trash-can-slash:before{content:"\e2ad"}.fa-screen-users:before,.fa-users-class:before{content:"\f63d"}.fa-guitar:before{content:"\f7a6"}.fa-arrow-square-left:before,.fa-square-arrow-left:before{content:"\f33a"}.fa-square-8:before{content:"\e25d"}.fa-face-smile-hearts:before{content:"\e390"}.fa-brackets-square:before,.fa-brackets:before{content:"\f7e9"}.fa-laptop-arrow-down:before{content:"\e1c6"}.fa-hockey-stick-puck:before{content:"\e3ae"}.fa-house-tree:before{content:"\e1b3"}.fa-signal-2:before,.fa-signal-fair:before{content:"\f68d"}.fa-face-laugh-wink:before,.fa-laugh-wink:before{content:"\f59c"}.fa-circle-dollar:before,.fa-dollar-circle:before,.fa-usd-circle:before{content:"\f2e8"}.fa-horse-head:before{content:"\f7ab"}.fa-arrows-repeat:before,.fa-repeat-alt:before{content:"\f364"}.fa-bore-hole:before{content:"\e4c3"}.fa-industry:before{content:"\f275"}.fa-image-polaroid:before{content:"\f8c4"}.fa-wave-triangle:before{content:"\f89a"}.fa-turn-left-down:before{content:"\e637"}.fa-person-running-fast:before{content:"\e5ff"}.fa-arrow-alt-circle-down:before,.fa-circle-down:before{content:"\f358"}.fa-grill:before{content:"\e5a3"}.fa-arrows-turn-to-dots:before{content:"\e4c1"}.fa-analytics:before,.fa-chart-mixed:before{content:"\f643"}.fa-florin-sign:before{content:"\e184"}.fa-arrow-down-short-wide:before,.fa-sort-amount-desc:before,.fa-sort-amount-down-alt:before{content:"\f884"}.fa-less-than:before{content:"\3c"}.fa-desktop-code:before,.fa-display-code:before{content:"\e165"}.fa-face-drooling:before{content:"\e372"}.fa-oil-temp:before,.fa-oil-temperature:before{content:"\f614"}.fa-question-square:before,.fa-square-question:before{content:"\f2fd"}.fa-air-conditioner:before{content:"\f8f4"}.fa-angle-down:before{content:"\f107"}.fa-mountains:before{content:"\f6fd"}.fa-omega:before{content:"\f67a"}.fa-car-tunnel:before{content:"\e4de"}.fa-person-dolly-empty:before{content:"\f4d1"}.fa-pan-food:before{content:"\e42b"}.fa-head-side-cough:before{content:"\e061"}.fa-grip-lines:before{content:"\f7a4"}.fa-thumbs-down:before{content:"\f165"}.fa-user-lock:before{content:"\f502"}.fa-arrow-right-long:before,.fa-long-arrow-right:before{content:"\f178"}.fa-tickets-airline:before,.fa-tickets-perforated-plane:before,.fa-tickets-plane:before{content:"\e29b"}.fa-tent-double-peak:before{content:"\e627"}.fa-anchor-circle-xmark:before{content:"\e4ac"}.fa-ellipsis-h:before,.fa-ellipsis:before{content:"\f141"}.fa-nfc-slash:before{content:"\e1fc"}.fa-chess-pawn:before{content:"\f443"}.fa-first-aid:before,.fa-kit-medical:before{content:"\f479"}.fa-grid-2-plus:before{content:"\e197"}.fa-bells:before{content:"\f77f"}.fa-person-through-window:before{content:"\e5a9"}.fa-toolbox:before{content:"\f552"}.fa-envelope-badge:before,.fa-envelope-dot:before{content:"\e16f"}.fa-magnifying-glass-waveform:before{content:"\e661"}.fa-hands-holding-circle:before{content:"\e4fb"}.fa-bug:before{content:"\f188"}.fa-bowl-chopsticks:before{content:"\e2e9"}.fa-credit-card-alt:before,.fa-credit-card:before{content:"\f09d"}.fa-circle-s:before{content:"\e121"}.fa-box-ballot:before{content:"\f735"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-hand-holding-hand:before{content:"\e4f7"}.fa-user-tie-hair:before{content:"\e45f"}.fa-podium-star:before{content:"\f758"}.fa-business-front:before,.fa-party-back:before,.fa-trian-balbot:before,.fa-user-hair-mullet:before{content:"\e45c"}.fa-microphone-stand:before{content:"\f8cb"}.fa-book-open-reader:before,.fa-book-reader:before{content:"\f5da"}.fa-family-dress:before{content:"\e301"}.fa-circle-x:before{content:"\e12e"}.fa-cabin:before{content:"\e46d"}.fa-mountain-sun:before{content:"\e52f"}.fa-chart-simple-horizontal:before{content:"\e474"}.fa-arrows-left-right-to-line:before{content:"\e4ba"}.fa-hand-back-point-left:before{content:"\e19f"}.fa-comment-alt-dots:before,.fa-message-dots:before,.fa-messaging:before{content:"\f4a3"}.fa-file-heart:before{content:"\e176"}.fa-beer-foam:before,.fa-beer-mug:before{content:"\e0b3"}.fa-dice-d20:before{content:"\f6cf"}.fa-drone:before{content:"\f85f"}.fa-truck-droplet:before{content:"\e58c"}.fa-file-circle-xmark:before{content:"\e5a1"}.fa-temperature-arrow-up:before,.fa-temperature-up:before{content:"\e040"}.fa-medal:before{content:"\f5a2"}.fa-person-fairy:before{content:"\e608"}.fa-bed:before{content:"\f236"}.fa-book-copy:before{content:"\e0be"}.fa-h-square:before,.fa-square-h:before{content:"\f0fd"}.fa-square-c:before{content:"\e266"}.fa-clock-two:before{content:"\e35a"}.fa-square-ellipsis-vertical:before{content:"\e26f"}.fa-calendar-users:before{content:"\e5e2"}.fa-podcast:before{content:"\f2ce"}.fa-bee:before{content:"\e0b2"}.fa-temperature-4:before,.fa-temperature-full:before,.fa-thermometer-4:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-bell:before{content:"\f0f3"}.fa-candy-bar:before,.fa-chocolate-bar:before{content:"\e3e8"}.fa-xmark-large:before{content:"\e59b"}.fa-pinata:before{content:"\e3c3"}.fa-file-ppt:before{content:"\e64a"}.fa-arrows-from-line:before{content:"\e0a4"}.fa-superscript:before{content:"\f12b"}.fa-bowl-spoon:before{content:"\e3e0"}.fa-hexagon-check:before{content:"\e416"}.fa-plug-circle-xmark:before{content:"\e560"}.fa-star-of-life:before{content:"\f621"}.fa-phone-slash:before{content:"\f3dd"}.fa-traffic-light-stop:before{content:"\f63a"}.fa-paint-roller:before{content:"\f5aa"}.fa-accent-grave:before{content:"\60"}.fa-hands-helping:before,.fa-handshake-angle:before{content:"\f4c4"}.fa-circle-0:before{content:"\e0ed"}.fa-dial-med-low:before{content:"\e160"}.fa-location-dot:before,.fa-map-marker-alt:before{content:"\f3c5"}.fa-crab:before{content:"\e3ff"}.fa-box-full:before,.fa-box-open-full:before{content:"\f49c"}.fa-file:before{content:"\f15b"}.fa-greater-than:before{content:"\3e"}.fa-quotes:before{content:"\e234"}.fa-pretzel:before{content:"\e441"}.fa-t-rex:before{content:"\e629"}.fa-person-swimming:before,.fa-swimmer:before{content:"\f5c4"}.fa-arrow-down:before{content:"\f063"}.fa-user-robot-xmarks:before{content:"\e4a7"}.fa-comment-alt-quote:before,.fa-message-quote:before{content:"\e1e4"}.fa-candy-corn:before{content:"\f6bd"}.fa-folder-magnifying-glass:before,.fa-folder-search:before{content:"\e18b"}.fa-notebook:before{content:"\e201"}.fa-droplet:before,.fa-tint:before{content:"\f043"}.fa-bullseye-pointer:before{content:"\f649"}.fa-eraser:before{content:"\f12d"}.fa-hexagon-image:before{content:"\e504"}.fa-earth-america:before,.fa-earth-americas:before,.fa-earth:before,.fa-globe-americas:before{content:"\f57d"}.fa-file-svg:before{content:"\e64b"}.fa-crate-apple:before{content:"\f6b1"}.fa-apple-crate:before{content:"\f6b1"}.fa-person-burst:before{content:"\e53b"}.fa-game-board:before{content:"\f867"}.fa-hat-chef:before{content:"\f86b"}.fa-hand-back-point-right:before{content:"\e1a1"}.fa-dove:before{content:"\f4ba"}.fa-snowflake-droplets:before{content:"\e5c1"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-grid-4:before{content:"\e198"}.fa-socks:before{content:"\f696"}.fa-face-sunglasses:before{content:"\e398"}.fa-inbox:before{content:"\f01c"}.fa-square-0:before{content:"\e255"}.fa-section:before{content:"\e447"}.fa-box-up:before,.fa-square-this-way-up:before{content:"\f49f"}.fa-gauge-high:before,.fa-tachometer-alt-fast:before,.fa-tachometer-alt:before{content:"\f625"}.fa-square-ampersand:before{content:"\e260"}.fa-envelope-open-text:before{content:"\f658"}.fa-lamp-desk:before{content:"\e014"}.fa-hospital-alt:before,.fa-hospital-wide:before,.fa-hospital:before{content:"\f0f8"}.fa-poll-people:before{content:"\f759"}.fa-glass-whiskey-rocks:before,.fa-whiskey-glass-ice:before{content:"\f7a1"}.fa-wine-bottle:before{content:"\f72f"}.fa-chess-rook:before{content:"\f447"}.fa-user-bounty-hunter:before{content:"\e2bf"}.fa-bars-staggered:before,.fa-reorder:before,.fa-stream:before{content:"\f550"}.fa-diagram-sankey:before{content:"\e158"}.fa-cloud-hail-mixed:before{content:"\f73a"}.fa-circle-up-left:before{content:"\e128"}.fa-dharmachakra:before{content:"\f655"}.fa-objects-align-left:before{content:"\e3be"}.fa-oil-can-drip:before{content:"\e205"}.fa-face-smiling-hands:before{content:"\e396"}.fa-broccoli:before{content:"\e3e2"}.fa-route-interstate:before{content:"\f61b"}.fa-ear-muffs:before{content:"\f795"}.fa-hotdog:before{content:"\f80f"}.fa-transporter-empty:before{content:"\e046"}.fa-blind:before,.fa-person-walking-with-cane:before{content:"\f29d"}.fa-angle-90:before{content:"\e08d"}.fa-rectangle-terminal:before{content:"\e236"}.fa-kite:before{content:"\f6f4"}.fa-drum:before{content:"\f569"}.fa-scrubber:before{content:"\f2f8"}.fa-ice-cream:before{content:"\f810"}.fa-heart-circle-bolt:before{content:"\e4fc"}.fa-fish-bones:before{content:"\e304"}.fa-deer-rudolph:before{content:"\f78f"}.fa-fax:before{content:"\f1ac"}.fa-paragraph:before{content:"\f1dd"}.fa-head-side-heart:before{content:"\e1aa"}.fa-square-e:before{content:"\e26d"}.fa-meter-fire:before{content:"\e1eb"}.fa-cloud-hail:before{content:"\f739"}.fa-check-to-slot:before,.fa-vote-yea:before{content:"\f772"}.fa-money-from-bracket:before{content:"\e312"}.fa-star-half:before{content:"\f089"}.fa-car-bus:before{content:"\f85a"}.fa-speaker:before{content:"\f8df"}.fa-timer:before{content:"\e29e"}.fa-boxes-alt:before,.fa-boxes-stacked:before,.fa-boxes:before{content:"\f468"}.fa-landmark-magnifying-glass:before{content:"\e622"}.fa-grill-hot:before{content:"\e5a5"}.fa-ballot-check:before{content:"\f733"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-assistive-listening-systems:before,.fa-ear-listen:before{content:"\f2a2"}.fa-file-minus:before{content:"\f318"}.fa-tree-city:before{content:"\e587"}.fa-play:before{content:"\f04b"}.fa-font:before{content:"\f031"}.fa-coffee-togo:before,.fa-cup-togo:before{content:"\f6c5"}.fa-square-down-left:before{content:"\e26b"}.fa-burger-lettuce:before{content:"\e3e3"}.fa-rupiah-sign:before{content:"\e23d"}.fa-magnifying-glass:before,.fa-search:before{content:"\f002"}.fa-ping-pong-paddle-ball:before,.fa-table-tennis-paddle-ball:before,.fa-table-tennis:before{content:"\f45d"}.fa-diagnoses:before,.fa-person-dots-from-line:before{content:"\f470"}.fa-chevron-double-down:before,.fa-chevrons-down:before{content:"\f322"}.fa-trash-can-arrow-up:before,.fa-trash-restore-alt:before{content:"\f82a"}.fa-signal-3:before,.fa-signal-good:before{content:"\f68e"}.fa-location-question:before,.fa-map-marker-question:before{content:"\f60b"}.fa-floppy-disk-circle-xmark:before,.fa-floppy-disk-times:before,.fa-save-circle-xmark:before,.fa-save-times:before{content:"\e181"}.fa-naira-sign:before{content:"\e1f6"}.fa-peach:before{content:"\e20b"}.fa-taxi-bus:before{content:"\e298"}.fa-bracket-curly-left:before,.fa-bracket-curly:before{content:"\7b"}.fa-lobster:before{content:"\e421"}.fa-cart-flatbed-empty:before,.fa-dolly-flatbed-empty:before{content:"\f476"}.fa-colon:before{content:"\3a"}.fa-cart-arrow-down:before{content:"\f218"}.fa-wand:before{content:"\f72a"}.fa-walkie-talkie:before{content:"\f8ef"}.fa-file-edit:before,.fa-file-pen:before{content:"\f31c"}.fa-receipt:before{content:"\f543"}.fa-table-picnic:before{content:"\e32d"}.fa-pen-square:before,.fa-pencil-square:before,.fa-square-pen:before{content:"\f14b"}.fa-circle-microphone-lines:before,.fa-microphone-circle-alt:before{content:"\e117"}.fa-desktop-slash:before,.fa-display-slash:before{content:"\e2fa"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-person-circle-exclamation:before{content:"\e53f"}.fa-transporter-2:before{content:"\e044"}.fa-hand-receiving:before,.fa-hands-holding-diamond:before{content:"\f47c"}.fa-money-bill-simple-wave:before{content:"\e1f2"}.fa-chevron-down:before{content:"\f078"}.fa-battery-5:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-bell-plus:before{content:"\f849"}.fa-book-arrow-right:before{content:"\e0b9"}.fa-hospitals:before{content:"\f80e"}.fa-club:before{content:"\f327"}.fa-skull-crossbones:before{content:"\f714"}.fa-dewpoint:before,.fa-droplet-degree:before{content:"\f748"}.fa-code-compare:before{content:"\e13a"}.fa-list-dots:before,.fa-list-ul:before{content:"\f0ca"}.fa-hand-holding-magic:before{content:"\f6e5"}.fa-watermelon-slice:before{content:"\e337"}.fa-circle-ellipsis:before{content:"\e10a"}.fa-school-lock:before{content:"\e56f"}.fa-tower-cell:before{content:"\e585"}.fa-sd-cards:before{content:"\e240"}.fa-jug-bottle:before{content:"\e5fb"}.fa-down-long:before,.fa-long-arrow-alt-down:before{content:"\f309"}.fa-envelopes:before{content:"\e170"}.fa-phone-office:before{content:"\f67d"}.fa-ranking-star:before{content:"\e561"}.fa-chess-king:before{content:"\f43f"}.fa-nfc-pen:before{content:"\e1fa"}.fa-person-harassing:before{content:"\e549"}.fa-magnifying-glass-play:before{content:"\e660"}.fa-hat-winter:before{content:"\f7a8"}.fa-brazilian-real-sign:before{content:"\e46c"}.fa-landmark-alt:before,.fa-landmark-dome:before{content:"\f752"}.fa-bone-break:before{content:"\f5d8"}.fa-arrow-up:before{content:"\f062"}.fa-down-from-dotted-line:before{content:"\e407"}.fa-television:before,.fa-tv-alt:before,.fa-tv:before{content:"\f26c"}.fa-border-left:before{content:"\f84f"}.fa-circle-divide:before{content:"\e106"}.fa-shrimp:before{content:"\e448"}.fa-list-check:before,.fa-tasks:before{content:"\f0ae"}.fa-diagram-subtask:before{content:"\e479"}.fa-jug-detergent:before{content:"\e519"}.fa-circle-user:before,.fa-user-circle:before{content:"\f2bd"}.fa-square-y:before{content:"\e287"}.fa-user-doctor-hair:before{content:"\e458"}.fa-planet-ringed:before{content:"\e020"}.fa-mushroom:before{content:"\e425"}.fa-user-shield:before{content:"\f505"}.fa-megaphone:before{content:"\f675"}.fa-wreath-laurel:before{content:"\e5d2"}.fa-circle-exclamation-check:before{content:"\e10d"}.fa-wind:before{content:"\f72e"}.fa-box-dollar:before,.fa-box-usd:before{content:"\f4a0"}.fa-car-burst:before,.fa-car-crash:before{content:"\f5e1"}.fa-y:before{content:"\59"}.fa-user-headset:before{content:"\f82d"}.fa-arrows-retweet:before,.fa-retweet-alt:before{content:"\f361"}.fa-person-snowboarding:before,.fa-snowboarding:before{content:"\f7ce"}.fa-chevron-square-right:before,.fa-square-chevron-right:before{content:"\f32b"}.fa-lacrosse-stick-ball:before{content:"\e3b6"}.fa-shipping-fast:before,.fa-truck-fast:before{content:"\f48b"}.fa-user-magnifying-glass:before{content:"\e5c5"}.fa-star-sharp:before{content:"\e28b"}.fa-comment-heart:before{content:"\e5c8"}.fa-circle-1:before{content:"\e0ee"}.fa-circle-star:before,.fa-star-circle:before{content:"\e123"}.fa-fish:before{content:"\f578"}.fa-cloud-fog:before,.fa-fog:before{content:"\f74e"}.fa-waffle:before{content:"\e466"}.fa-music-alt:before,.fa-music-note:before{content:"\f8cf"}.fa-hexagon-exclamation:before{content:"\e417"}.fa-cart-shopping-fast:before{content:"\e0dc"}.fa-object-union:before{content:"\e49f"}.fa-user-graduate:before{content:"\f501"}.fa-starfighter:before{content:"\e037"}.fa-adjust:before,.fa-circle-half-stroke:before{content:"\f042"}.fa-arrow-right-long-to-line:before{content:"\e3d5"}.fa-arrow-square-down:before,.fa-square-arrow-down:before{content:"\f339"}.fa-diamond-half-stroke:before{content:"\e5b8"}.fa-clapperboard:before{content:"\e131"}.fa-chevron-square-left:before,.fa-square-chevron-left:before{content:"\f32a"}.fa-phone-intercom:before{content:"\e434"}.fa-chain-horizontal:before,.fa-link-horizontal:before{content:"\e1cb"}.fa-mango:before{content:"\e30f"}.fa-music-alt-slash:before,.fa-music-note-slash:before{content:"\f8d0"}.fa-circle-radiation:before,.fa-radiation-alt:before{content:"\f7ba"}.fa-face-tongue-sweat:before{content:"\e39e"}.fa-globe-stand:before{content:"\f5f6"}.fa-baseball-ball:before,.fa-baseball:before{content:"\f433"}.fa-circle-p:before{content:"\e11a"}.fa-award-simple:before{content:"\e0ab"}.fa-jet-fighter-up:before{content:"\e518"}.fa-diagram-project:before,.fa-project-diagram:before{content:"\f542"}.fa-pedestal:before{content:"\e20d"}.fa-chart-pyramid:before{content:"\e0e6"}.fa-sidebar:before{content:"\e24e"}.fa-frosty-head:before,.fa-snowman-head:before{content:"\f79b"}.fa-copy:before{content:"\f0c5"}.fa-burger-glass:before{content:"\e0ce"}.fa-volume-mute:before,.fa-volume-times:before,.fa-volume-xmark:before{content:"\f6a9"}.fa-hand-sparkles:before{content:"\e05d"}.fa-bars-filter:before{content:"\e0ad"}.fa-paintbrush-pencil:before{content:"\e206"}.fa-party-bell:before{content:"\e31a"}.fa-user-vneck-hair:before{content:"\e462"}.fa-jack-o-lantern:before{content:"\f30e"}.fa-grip-horizontal:before,.fa-grip:before{content:"\f58d"}.fa-share-from-square:before,.fa-share-square:before{content:"\f14d"}.fa-keynote:before{content:"\f66c"}.fa-child-combatant:before,.fa-child-rifle:before{content:"\e4e0"}.fa-gun:before{content:"\e19b"}.fa-phone-square:before,.fa-square-phone:before{content:"\f098"}.fa-hat-beach:before{content:"\e606"}.fa-add:before,.fa-plus:before{content:"\2b"}.fa-expand:before{content:"\f065"}.fa-computer:before{content:"\e4e5"}.fa-fort:before{content:"\e486"}.fa-cloud-check:before{content:"\e35c"}.fa-close:before,.fa-multiply:before,.fa-remove:before,.fa-times:before,.fa-xmark:before{content:"\f00d"}.fa-face-smirking:before{content:"\e397"}.fa-arrows-up-down-left-right:before,.fa-arrows:before{content:"\f047"}.fa-chalkboard-teacher:before,.fa-chalkboard-user:before{content:"\f51c"}.fa-rhombus:before{content:"\e23b"}.fa-claw-marks:before{content:"\f6c2"}.fa-peso-sign:before{content:"\e222"}.fa-face-smile-tongue:before{content:"\e394"}.fa-cart-circle-xmark:before{content:"\e3f4"}.fa-building-shield:before{content:"\e4d8"}.fa-circle-phone-flip:before,.fa-phone-circle-alt:before{content:"\e11c"}.fa-baby:before{content:"\f77c"}.fa-users-line:before{content:"\e592"}.fa-quote-left-alt:before,.fa-quote-left:before{content:"\f10d"}.fa-tractor:before{content:"\f722"}.fa-key-skeleton:before{content:"\f6f3"}.fa-trash-arrow-up:before,.fa-trash-restore:before{content:"\f829"}.fa-arrow-down-up-lock:before{content:"\e4b0"}.fa-arrow-down-to-bracket:before{content:"\e094"}.fa-lines-leaning:before{content:"\e51e"}.fa-square-q:before{content:"\e27b"}.fa-ruler-combined:before{content:"\f546"}.fa-icons-alt:before,.fa-symbols:before{content:"\f86e"}.fa-copyright:before{content:"\f1f9"}.fa-flask-gear:before{content:"\e5f1"}.fa-highlighter-line:before{content:"\e1af"}.fa-bracket-left:before,.fa-bracket-square:before,.fa-bracket:before{content:"\5b"}.fa-island-tree-palm:before,.fa-island-tropical:before{content:"\f811"}.fa-arrow-from-left:before,.fa-arrow-right-from-line:before{content:"\f343"}.fa-h2:before{content:"\f314"}.fa-equals:before{content:"\3d"}.fa-cake-slice:before,.fa-shortcake:before{content:"\e3e5"}.fa-building-magnifying-glass:before{content:"\e61c"}.fa-peanut:before{content:"\e430"}.fa-wrench-simple:before{content:"\e2d1"}.fa-blender:before{content:"\f517"}.fa-teeth:before{content:"\f62e"}.fa-tally-2:before{content:"\e295"}.fa-ils:before,.fa-shekel-sign:before,.fa-shekel:before,.fa-sheqel-sign:before,.fa-sheqel:before{content:"\f20b"}.fa-cars:before{content:"\f85b"}.fa-axe-battle:before{content:"\f6b3"}.fa-user-hair-long:before{content:"\e45b"}.fa-map:before{content:"\f279"}.fa-arrow-left-from-arc:before{content:"\e615"}.fa-file-circle-info:before{content:"\e493"}.fa-face-disappointed:before{content:"\e36f"}.fa-lasso-sparkles:before{content:"\e1c9"}.fa-clock-eleven:before{content:"\e347"}.fa-rocket:before{content:"\f135"}.fa-siren-on:before{content:"\e02e"}.fa-clock-ten:before{content:"\e354"}.fa-candle-holder:before{content:"\f6bc"}.fa-video-arrow-down-left:before{content:"\e2c8"}.fa-photo-film:before,.fa-photo-video:before{content:"\f87c"}.fa-floppy-disk-circle-arrow-right:before,.fa-save-circle-arrow-right:before{content:"\e180"}.fa-folder-minus:before{content:"\f65d"}.fa-planet-moon:before{content:"\e01f"}.fa-face-eyes-xmarks:before{content:"\e374"}.fa-chart-scatter:before{content:"\f7ee"}.fa-display-arrow-down:before{content:"\e164"}.fa-store:before{content:"\f54e"}.fa-arrow-trend-up:before{content:"\e098"}.fa-plug-circle-minus:before{content:"\e55e"}.fa-olive-branch:before{content:"\e317"}.fa-angle:before{content:"\e08c"}.fa-vacuum-robot:before{content:"\e04e"}.fa-sign-hanging:before,.fa-sign:before{content:"\f4d9"}.fa-square-divide:before{content:"\e26a"}.fa-folder-check:before{content:"\e64e"}.fa-signal-stream-slash:before{content:"\e250"}.fa-bezier-curve:before{content:"\f55b"}.fa-eye-dropper-half:before{content:"\e173"}.fa-store-lock:before{content:"\e4a6"}.fa-bell-slash:before{content:"\f1f6"}.fa-cloud-bolt-sun:before,.fa-thunderstorm-sun:before{content:"\f76e"}.fa-camera-slash:before{content:"\e0d9"}.fa-comment-quote:before{content:"\e14c"}.fa-tablet-android:before,.fa-tablet:before{content:"\f3fb"}.fa-school-flag:before{content:"\e56e"}.fa-message-code:before{content:"\e1df"}.fa-glass-half-empty:before,.fa-glass-half-full:before,.fa-glass-half:before{content:"\e192"}.fa-fill:before{content:"\f575"}.fa-comment-alt-minus:before,.fa-message-minus:before{content:"\f4a7"}.fa-angle-up:before{content:"\f106"}.fa-dinosaur:before{content:"\e5fe"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-chain-horizontal-slash:before,.fa-link-horizontal-slash:before{content:"\e1cc"}.fa-holly-berry:before{content:"\f7aa"}.fa-nose:before{content:"\e5bd"}.fa-arrow-left-to-arc:before{content:"\e616"}.fa-chevron-left:before{content:"\f053"}.fa-bacteria:before{content:"\e059"}.fa-clouds:before{content:"\f744"}.fa-money-bill-simple:before{content:"\e1f1"}.fa-hand-lizard:before{content:"\f258"}.fa-table-pivot:before{content:"\e291"}.fa-filter-slash:before{content:"\e17d"}.fa-trash-can-arrow-turn-left:before,.fa-trash-can-undo:before,.fa-trash-undo-alt:before{content:"\f896"}.fa-notdef:before{content:"\e1fe"}.fa-disease:before{content:"\f7fa"}.fa-person-to-door:before{content:"\e433"}.fa-turntable:before{content:"\f8e4"}.fa-briefcase-medical:before{content:"\f469"}.fa-genderless:before{content:"\f22d"}.fa-chevron-right:before{content:"\f054"}.fa-signal-1:before,.fa-signal-weak:before{content:"\f68c"}.fa-clock-five:before{content:"\e349"}.fa-retweet:before{content:"\f079"}.fa-car-alt:before,.fa-car-rear:before{content:"\f5de"}.fa-pump-soap:before{content:"\e06b"}.fa-computer-classic:before{content:"\f8b1"}.fa-frame:before{content:"\e495"}.fa-video-slash:before{content:"\f4e2"}.fa-battery-2:before,.fa-battery-quarter:before{content:"\f243"}.fa-ellipsis-h-alt:before,.fa-ellipsis-stroke:before{content:"\f39b"}.fa-radio:before{content:"\f8d7"}.fa-baby-carriage:before,.fa-carriage-baby:before{content:"\f77d"}.fa-face-expressionless:before{content:"\e373"}.fa-down-to-dotted-line:before{content:"\e408"}.fa-cloud-music:before{content:"\f8ae"}.fa-traffic-light:before{content:"\f637"}.fa-cloud-minus:before{content:"\e35d"}.fa-thermometer:before{content:"\f491"}.fa-shield-minus:before{content:"\e249"}.fa-vr-cardboard:before{content:"\f729"}.fa-car-tilt:before{content:"\f5e5"}.fa-gauge-circle-minus:before{content:"\e497"}.fa-brightness-low:before{content:"\e0ca"}.fa-hand-middle-finger:before{content:"\f806"}.fa-percent:before,.fa-percentage:before{content:"\25"}.fa-truck-moving:before{content:"\f4df"}.fa-glass-water-droplet:before{content:"\e4f5"}.fa-conveyor-belt:before{content:"\f46e"}.fa-location-check:before,.fa-map-marker-check:before{content:"\f606"}.fa-coin-vertical:before{content:"\e3fd"}.fa-display:before{content:"\e163"}.fa-person-sign:before{content:"\f757"}.fa-face-smile:before,.fa-smile:before{content:"\f118"}.fa-phone-hangup:before{content:"\e225"}.fa-signature-slash:before{content:"\e3cb"}.fa-thumb-tack:before,.fa-thumbtack:before{content:"\f08d"}.fa-wheat-slash:before{content:"\e339"}.fa-trophy:before{content:"\f091"}.fa-clouds-sun:before{content:"\f746"}.fa-person-praying:before,.fa-pray:before{content:"\f683"}.fa-hammer:before{content:"\f6e3"}.fa-face-vomit:before{content:"\e3a0"}.fa-speakers:before{content:"\f8e0"}.fa-teletype-answer:before,.fa-tty-answer:before{content:"\e2b9"}.fa-mug-tea-saucer:before{content:"\e1f5"}.fa-diagram-lean-canvas:before{content:"\e156"}.fa-alt:before{content:"\e08a"}.fa-dial-med-high:before,.fa-dial:before{content:"\e15b"}.fa-hand-peace:before{content:"\f25b"}.fa-circle-trash:before,.fa-trash-circle:before{content:"\e126"}.fa-rotate:before,.fa-sync-alt:before{content:"\f2f1"}.fa-circle-quarters:before{content:"\e3f8"}.fa-spinner:before{content:"\f110"}.fa-tower-control:before{content:"\e2a2"}.fa-arrow-up-triangle-square:before,.fa-sort-shapes-up:before{content:"\f88a"}.fa-whale:before{content:"\f72c"}.fa-robot:before{content:"\f544"}.fa-peace:before{content:"\f67c"}.fa-party-horn:before{content:"\e31b"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-sun-alt:before,.fa-sun-bright:before{content:"\e28f"}.fa-warehouse:before{content:"\f494"}.fa-conveyor-belt-arm:before{content:"\e5f8"}.fa-lock-keyhole-open:before,.fa-lock-open-alt:before{content:"\f3c2"}.fa-box-fragile:before,.fa-square-fragile:before,.fa-square-wine-glass-crack:before{content:"\f49b"}.fa-arrow-up-right-dots:before{content:"\e4b7"}.fa-square-n:before{content:"\e277"}.fa-splotch:before{content:"\f5bc"}.fa-face-grin-hearts:before,.fa-grin-hearts:before{content:"\f584"}.fa-meter:before{content:"\e1e8"}.fa-mandolin:before{content:"\f6f9"}.fa-dice-four:before{content:"\f524"}.fa-sim-card:before{content:"\f7c4"}.fa-transgender-alt:before,.fa-transgender:before{content:"\f225"}.fa-mercury:before{content:"\f223"}.fa-up-from-bracket:before{content:"\e590"}.fa-knife-kitchen:before{content:"\f6f5"}.fa-border-right:before{content:"\f852"}.fa-arrow-turn-down:before,.fa-level-down:before{content:"\f149"}.fa-spade:before{content:"\f2f4"}.fa-card-spade:before{content:"\e3ec"}.fa-line-columns:before{content:"\f870"}.fa-arrow-right-to-line:before,.fa-arrow-to-right:before{content:"\f340"}.fa-person-falling-burst:before{content:"\e547"}.fa-flag-pennant:before,.fa-pennant:before{content:"\f456"}.fa-conveyor-belt-empty:before{content:"\e150"}.fa-user-group-simple:before{content:"\e603"}.fa-award:before{content:"\f559"}.fa-ticket-alt:before,.fa-ticket-simple:before{content:"\f3ff"}.fa-building:before{content:"\f1ad"}.fa-angle-double-left:before,.fa-angles-left:before{content:"\f100"}.fa-camcorder:before,.fa-video-handheld:before{content:"\f8a8"}.fa-pancakes:before{content:"\e42d"}.fa-album-circle-user:before{content:"\e48d"}.fa-subtitles-slash:before{content:"\e610"}.fa-qrcode:before{content:"\f029"}.fa-dice-d10:before{content:"\f6cd"}.fa-fireplace:before{content:"\f79a"}.fa-browser:before{content:"\f37e"}.fa-pen-paintbrush:before,.fa-pencil-paintbrush:before{content:"\f618"}.fa-fish-cooked:before{content:"\f7fe"}.fa-chair-office:before{content:"\f6c1"}.fa-magnifying-glass-music:before{content:"\e65f"}.fa-nesting-dolls:before{content:"\e3ba"}.fa-clock-rotate-left:before,.fa-history:before{content:"\f1da"}.fa-trumpet:before{content:"\f8e3"}.fa-face-grin-beam-sweat:before,.fa-grin-beam-sweat:before{content:"\f583"}.fa-fire-smoke:before{content:"\f74b"}.fa-phone-missed:before{content:"\e226"}.fa-arrow-right-from-file:before,.fa-file-export:before{content:"\f56e"}.fa-shield-blank:before,.fa-shield:before{content:"\f132"}.fa-arrow-up-short-wide:before,.fa-sort-amount-up-alt:before{content:"\f885"}.fa-arrows-repeat-1:before,.fa-repeat-1-alt:before{content:"\f366"}.fa-gun-slash:before{content:"\e19c"}.fa-avocado:before{content:"\e0aa"}.fa-binary:before{content:"\e33b"}.fa-glasses-alt:before,.fa-glasses-round:before{content:"\f5f5"}.fa-phone-plus:before{content:"\f4d2"}.fa-ditto:before{content:"\22"}.fa-person-seat:before{content:"\e21e"}.fa-house-medical:before{content:"\e3b2"}.fa-golf-ball-tee:before,.fa-golf-ball:before{content:"\f450"}.fa-chevron-circle-left:before,.fa-circle-chevron-left:before{content:"\f137"}.fa-house-chimney-window:before{content:"\e00d"}.fa-scythe:before{content:"\f710"}.fa-pen-nib:before{content:"\f5ad"}.fa-ban-parking:before,.fa-parking-circle-slash:before{content:"\f616"}.fa-tent-arrow-turn-left:before{content:"\e580"}.fa-face-diagonal-mouth:before{content:"\e47e"}.fa-diagram-cells:before{content:"\e475"}.fa-cricket-bat-ball:before,.fa-cricket:before{content:"\f449"}.fa-tents:before{content:"\e582"}.fa-magic:before,.fa-wand-magic:before{content:"\f0d0"}.fa-dog:before{content:"\f6d3"}.fa-pen-line:before{content:"\e212"}.fa-atom-alt:before,.fa-atom-simple:before{content:"\f5d3"}.fa-ampersand:before{content:"\26"}.fa-carrot:before{content:"\f787"}.fa-arrow-from-bottom:before,.fa-arrow-up-from-line:before{content:"\f342"}.fa-moon:before{content:"\f186"}.fa-pen-slash:before{content:"\e213"}.fa-wine-glass-alt:before,.fa-wine-glass-empty:before{content:"\f5ce"}.fa-square-star:before{content:"\e27f"}.fa-cheese:before{content:"\f7ef"}.fa-send-backward:before{content:"\f87f"}.fa-yin-yang:before{content:"\f6ad"}.fa-music:before{content:"\f001"}.fa-compass-slash:before{content:"\f5e9"}.fa-clock-one:before{content:"\e34e"}.fa-file-music:before{content:"\f8b6"}.fa-code-commit:before{content:"\f386"}.fa-temperature-low:before{content:"\f76b"}.fa-biking:before,.fa-person-biking:before{content:"\f84a"}.fa-display-chart-up-circle-currency:before{content:"\e5e5"}.fa-skeleton:before{content:"\f620"}.fa-circle-g:before{content:"\e10f"}.fa-circle-arrow-up-left:before{content:"\e0fb"}.fa-coin-blank:before{content:"\e3fb"}.fa-broom:before{content:"\f51a"}.fa-vacuum:before{content:"\e04d"}.fa-shield-heart:before{content:"\e574"}.fa-card-heart:before{content:"\e3eb"}.fa-lightbulb-cfl-on:before{content:"\e5a7"}.fa-melon:before{content:"\e310"}.fa-gopuram:before{content:"\f664"}.fa-earth-oceania:before,.fa-globe-oceania:before{content:"\e47b"}.fa-container-storage:before{content:"\f4b7"}.fa-face-pouting:before{content:"\e387"}.fa-square-xmark:before,.fa-times-square:before,.fa-xmark-square:before{content:"\f2d3"}.fa-exploding-head:before,.fa-face-explode:before{content:"\e2fe"}.fa-hashtag:before{content:"\23"}.fa-expand-alt:before,.fa-up-right-and-down-left-from-center:before{content:"\f424"}.fa-oil-can:before{content:"\f613"}.fa-t:before{content:"\54"}.fa-transformer-bolt:before{content:"\e2a4"}.fa-hippo:before{content:"\f6ed"}.fa-chart-column:before{content:"\e0e3"}.fa-cassette-vhs:before,.fa-vhs:before{content:"\f8ec"}.fa-infinity:before{content:"\f534"}.fa-vial-circle-check:before{content:"\e596"}.fa-chimney:before{content:"\f78b"}.fa-object-intersect:before{content:"\e49d"}.fa-person-arrow-down-to-line:before{content:"\e538"}.fa-voicemail:before{content:"\f897"}.fa-block-brick:before,.fa-wall-brick:before{content:"\e3db"}.fa-fan:before{content:"\f863"}.fa-bags-shopping:before{content:"\f847"}.fa-paragraph-left:before,.fa-paragraph-rtl:before{content:"\f878"}.fa-person-walking-luggage:before{content:"\e554"}.fa-caravan-alt:before,.fa-caravan-simple:before{content:"\e000"}.fa-turtle:before{content:"\f726"}.fa-pencil-mechanical:before{content:"\e5ca"}.fa-arrows-alt-v:before,.fa-up-down:before{content:"\f338"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-booth-curtain:before{content:"\f734"}.fa-calendar:before{content:"\f133"}.fa-box-heart:before{content:"\f49d"}.fa-trailer:before{content:"\e041"}.fa-user-doctor-message:before,.fa-user-md-chat:before{content:"\f82e"}.fa-bahai:before,.fa-haykal:before{content:"\f666"}.fa-lighthouse:before{content:"\e612"}.fa-amp-guitar:before{content:"\f8a1"}.fa-sd-card:before{content:"\f7c2"}.fa-volume-slash:before{content:"\f2e2"}.fa-border-bottom:before{content:"\f84d"}.fa-wifi-1:before,.fa-wifi-weak:before{content:"\f6aa"}.fa-dragon:before{content:"\f6d5"}.fa-shoe-prints:before{content:"\f54b"}.fa-circle-plus:before,.fa-plus-circle:before{content:"\f055"}.fa-face-grin-tongue-wink:before,.fa-grin-tongue-wink:before{content:"\f58b"}.fa-hand-holding:before{content:"\f4bd"}.fa-plug-circle-exclamation:before{content:"\e55d"}.fa-chain-broken:before,.fa-chain-slash:before,.fa-link-slash:before,.fa-unlink:before{content:"\f127"}.fa-clone:before{content:"\f24d"}.fa-person-walking-arrow-loop-left:before{content:"\e551"}.fa-arrow-up-z-a:before,.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-fire-alt:before,.fa-fire-flame-curved:before{content:"\f7e4"}.fa-tornado:before{content:"\f76f"}.fa-file-circle-plus:before{content:"\e494"}.fa-delete-right:before{content:"\e154"}.fa-book-quran:before,.fa-quran:before{content:"\f687"}.fa-circle-quarter:before{content:"\e11f"}.fa-anchor:before{content:"\f13d"}.fa-border-all:before{content:"\f84c"}.fa-function:before{content:"\f661"}.fa-angry:before,.fa-face-angry:before{content:"\f556"}.fa-people-simple:before{content:"\e21b"}.fa-cookie-bite:before{content:"\f564"}.fa-arrow-trend-down:before{content:"\e097"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-face-monocle:before{content:"\e380"}.fa-draw-polygon:before{content:"\f5ee"}.fa-balance-scale:before,.fa-scale-balanced:before{content:"\f24e"}.fa-calendar-lines:before,.fa-calendar-note:before{content:"\e0d5"}.fa-arrow-down-big-small:before,.fa-sort-size-down:before{content:"\f88c"}.fa-gauge-simple-high:before,.fa-tachometer-fast:before,.fa-tachometer:before{content:"\f62a"}.fa-do-not-enter:before{content:"\f5ec"}.fa-shower:before{content:"\f2cc"}.fa-dice-d8:before{content:"\f6d2"}.fa-desktop-alt:before,.fa-desktop:before{content:"\f390"}.fa-m:before{content:"\4d"}.fa-spinner-scale:before{content:"\e62a"}.fa-grip-dots-vertical:before{content:"\e411"}.fa-face-viewfinder:before{content:"\e2ff"}.fa-creemee:before,.fa-soft-serve:before{content:"\e400"}.fa-h5:before{content:"\e412"}.fa-hand-back-point-down:before{content:"\e19e"}.fa-table-list:before,.fa-th-list:before{content:"\f00b"}.fa-basket-shopping-minus:before{content:"\e652"}.fa-comment-sms:before,.fa-sms:before{content:"\f7cd"}.fa-rectangle-landscape:before,.fa-rectangle:before{content:"\f2fa"}.fa-clipboard-list-check:before{content:"\f737"}.fa-turkey:before{content:"\f725"}.fa-book:before{content:"\f02d"}.fa-user-plus:before{content:"\f234"}.fa-ice-skate:before{content:"\f7ac"}.fa-check:before{content:"\f00c"}.fa-battery-4:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-tomato:before{content:"\e330"}.fa-sword-laser:before{content:"\e03b"}.fa-house-circle-check:before{content:"\e509"}.fa-buildings:before{content:"\e0cc"}.fa-angle-left:before{content:"\f104"}.fa-cart-flatbed-boxes:before,.fa-dolly-flatbed-alt:before{content:"\f475"}.fa-diagram-successor:before{content:"\e47a"}.fa-truck-arrow-right:before{content:"\e58b"}.fa-square-w:before{content:"\e285"}.fa-arrows-split-up-and-left:before{content:"\e4bc"}.fa-lamp:before{content:"\f4ca"}.fa-airplay:before{content:"\e089"}.fa-fist-raised:before,.fa-hand-fist:before{content:"\f6de"}.fa-shield-quartered:before{content:"\e575"}.fa-slash-forward:before{content:"\2f"}.fa-location-pen:before,.fa-map-marker-edit:before{content:"\f607"}.fa-cloud-moon:before{content:"\f6c3"}.fa-pot-food:before{content:"\e43f"}.fa-briefcase:before{content:"\f0b1"}.fa-person-falling:before{content:"\e546"}.fa-image-portrait:before,.fa-portrait:before{content:"\f3e0"}.fa-user-tag:before{content:"\f507"}.fa-rug:before{content:"\e569"}.fa-print-slash:before{content:"\f686"}.fa-earth-europe:before,.fa-globe-europe:before{content:"\f7a2"}.fa-cart-flatbed-suitcase:before,.fa-luggage-cart:before{content:"\f59d"}.fa-hand-back-point-ribbon:before{content:"\e1a0"}.fa-rectangle-times:before,.fa-rectangle-xmark:before,.fa-times-rectangle:before,.fa-window-close:before{content:"\f410"}.fa-tire-rugged:before{content:"\f634"}.fa-lightbulb-dollar:before{content:"\f670"}.fa-cowbell:before{content:"\f8b3"}.fa-baht-sign:before{content:"\e0ac"}.fa-corner:before{content:"\e3fe"}.fa-chevron-double-right:before,.fa-chevrons-right:before{content:"\f324"}.fa-book-open:before{content:"\f518"}.fa-book-journal-whills:before,.fa-journal-whills:before{content:"\f66a"}.fa-inhaler:before{content:"\f5f9"}.fa-handcuffs:before{content:"\e4f8"}.fa-snake:before{content:"\f716"}.fa-exclamation-triangle:before,.fa-triangle-exclamation:before,.fa-warning:before{content:"\f071"}.fa-note-medical:before{content:"\e200"}.fa-database:before{content:"\f1c0"}.fa-down-left:before{content:"\e16a"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-face-thinking:before{content:"\e39b"}.fa-turn-down-right:before{content:"\e455"}.fa-bottle-droplet:before{content:"\e4c4"}.fa-mask-face:before{content:"\e1d7"}.fa-hill-rockslide:before{content:"\e508"}.fa-scanner-keyboard:before{content:"\f489"}.fa-circle-o:before{content:"\e119"}.fa-grid-horizontal:before{content:"\e307"}.fa-comment-alt-dollar:before,.fa-message-dollar:before{content:"\f650"}.fa-exchange-alt:before,.fa-right-left:before{content:"\f362"}.fa-columns-3:before{content:"\e361"}.fa-paper-plane:before{content:"\f1d8"}.fa-road-circle-exclamation:before{content:"\e565"}.fa-dungeon:before{content:"\f6d9"}.fa-hand-holding-box:before{content:"\f47b"}.fa-input-text:before{content:"\e1bf"}.fa-window-alt:before,.fa-window-flip:before{content:"\f40f"}.fa-align-right:before{content:"\f038"}.fa-scanner-gun:before,.fa-scanner:before{content:"\f488"}.fa-tire:before{content:"\f631"}.fa-engine:before{content:"\e16e"}.fa-money-bill-1-wave:before,.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-life-ring:before{content:"\f1cd"}.fa-hands:before,.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-caret-circle-right:before,.fa-circle-caret-right:before{content:"\f330"}.fa-turn-left:before{content:"\e636"}.fa-wheat:before{content:"\f72d"}.fa-file-spreadsheet:before{content:"\f65b"}.fa-audio-description-slash:before{content:"\e0a8"}.fa-bell-ring:before{content:"\e62c"}.fa-calendar-day:before{content:"\f783"}.fa-ladder-water:before,.fa-swimming-pool:before,.fa-water-ladder:before{content:"\f5c5"}.fa-arrows-up-down:before,.fa-arrows-v:before{content:"\f07d"}.fa-chess-pawn-alt:before,.fa-chess-pawn-piece:before{content:"\f444"}.fa-face-grimace:before,.fa-grimace:before{content:"\f57f"}.fa-wheelchair-alt:before,.fa-wheelchair-move:before{content:"\e2ce"}.fa-level-down-alt:before,.fa-turn-down:before{content:"\f3be"}.fa-square-s:before{content:"\e27d"}.fa-barcode-alt:before,.fa-rectangle-barcode:before{content:"\f463"}.fa-person-walking-arrow-right:before{content:"\e552"}.fa-envelope-square:before,.fa-square-envelope:before{content:"\f199"}.fa-dice:before{content:"\f522"}.fa-unicorn:before{content:"\f727"}.fa-bowling-ball:before{content:"\f436"}.fa-pompebled:before{content:"\e43d"}.fa-brain:before{content:"\f5dc"}.fa-watch-smart:before{content:"\e2cc"}.fa-book-user:before{content:"\f7e7"}.fa-sensor-cloud:before,.fa-sensor-smoke:before{content:"\e02c"}.fa-clapperboard-play:before{content:"\e132"}.fa-band-aid:before,.fa-bandage:before{content:"\f462"}.fa-calendar-minus:before{content:"\f272"}.fa-circle-xmark:before,.fa-times-circle:before,.fa-xmark-circle:before{content:"\f057"}.fa-circle-4:before{content:"\e0f1"}.fa-gifts:before{content:"\f79c"}.fa-album-collection:before{content:"\f8a0"}.fa-hotel:before{content:"\f594"}.fa-earth-asia:before,.fa-globe-asia:before{content:"\f57e"}.fa-id-card-alt:before,.fa-id-card-clip:before{content:"\f47f"}.fa-magnifying-glass-plus:before,.fa-search-plus:before{content:"\f00e"}.fa-thumbs-up:before{content:"\f164"}.fa-cloud-showers:before{content:"\f73f"}.fa-user-clock:before{content:"\f4fd"}.fa-onion:before{content:"\e427"}.fa-clock-twelve-thirty:before{content:"\e359"}.fa-arrow-down-to-dotted-line:before{content:"\e095"}.fa-allergies:before,.fa-hand-dots:before{content:"\f461"}.fa-file-invoice:before{content:"\f570"}.fa-window-minimize:before{content:"\f2d1"}.fa-rectangle-wide:before{content:"\f2fc"}.fa-comment-arrow-up:before{content:"\e144"}.fa-garlic:before{content:"\e40e"}.fa-coffee:before,.fa-mug-saucer:before{content:"\f0f4"}.fa-brush:before{content:"\f55d"}.fa-tree-decorated:before{content:"\f7dc"}.fa-mask:before{content:"\f6fa"}.fa-calendar-heart:before{content:"\e0d3"}.fa-magnifying-glass-minus:before,.fa-search-minus:before{content:"\f010"}.fa-flower:before{content:"\f7ff"}.fa-arrow-down-from-arc:before{content:"\e614"}.fa-right-left-large:before{content:"\e5e1"}.fa-ruler-vertical:before{content:"\f548"}.fa-circles-overlap:before{content:"\e600"}.fa-user-alt:before,.fa-user-large:before{content:"\f406"}.fa-starship-freighter:before{content:"\e03a"}.fa-train-tram:before{content:"\e5b4"}.fa-bridge-suspension:before{content:"\e4cd"}.fa-trash-check:before{content:"\e2af"}.fa-user-nurse:before{content:"\f82f"}.fa-boombox:before{content:"\f8a5"}.fa-syringe:before{content:"\f48e"}.fa-cloud-sun:before{content:"\f6c4"}.fa-shield-exclamation:before{content:"\e247"}.fa-stopwatch-20:before{content:"\e06f"}.fa-square-full:before{content:"\f45c"}.fa-grip-dots:before{content:"\e410"}.fa-comment-exclamation:before{content:"\f4af"}.fa-pen-swirl:before{content:"\e214"}.fa-falafel:before{content:"\e40a"}.fa-circle-2:before{content:"\e0ef"}.fa-magnet:before{content:"\f076"}.fa-jar:before{content:"\e516"}.fa-gramophone:before{content:"\f8bd"}.fa-dice-d12:before{content:"\f6ce"}.fa-note-sticky:before,.fa-sticky-note:before{content:"\f249"}.fa-arrow-alt-down:before,.fa-down:before{content:"\f354"}.fa-100:before,.fa-hundred-points:before{content:"\e41c"}.fa-paperclip-vertical:before{content:"\e3c2"}.fa-wind-circle-exclamation:before,.fa-wind-warning:before{content:"\f776"}.fa-location-pin-slash:before,.fa-map-marker-slash:before{content:"\f60c"}.fa-face-sad-sweat:before{content:"\e38a"}.fa-bug-slash:before{content:"\e490"}.fa-cupcake:before{content:"\e402"}.fa-light-switch-off:before{content:"\e018"}.fa-toggle-large-off:before{content:"\e5b0"}.fa-pen-fancy-slash:before{content:"\e210"}.fa-truck-container:before{content:"\f4dc"}.fa-boot:before{content:"\f782"}.fa-arrow-up-from-water-pump:before{content:"\e4b6"}.fa-file-check:before{content:"\f316"}.fa-bone:before{content:"\f5d7"}.fa-cards-blank:before{content:"\e4df"}.fa-circle-3:before{content:"\e0f0"}.fa-bench-tree:before{content:"\e2e7"}.fa-keyboard-brightness-low:before{content:"\e1c1"}.fa-ski-boot-ski:before{content:"\e3cd"}.fa-brain-circuit:before{content:"\e0c6"}.fa-user-injured:before{content:"\f728"}.fa-block-brick-fire:before,.fa-firewall:before{content:"\e3dc"}.fa-face-sad-tear:before,.fa-sad-tear:before{content:"\f5b4"}.fa-plane:before{content:"\f072"}.fa-tent-arrows-down:before{content:"\e581"}.fa-exclamation:before{content:"\21"}.fa-arrows-spin:before{content:"\e4bb"}.fa-face-smile-relaxed:before{content:"\e392"}.fa-comment-times:before,.fa-comment-xmark:before{content:"\f4b5"}.fa-print:before{content:"\f02f"}.fa-try:before,.fa-turkish-lira-sign:before,.fa-turkish-lira:before{content:"\e2bb"}.fa-face-nose-steam:before{content:"\e382"}.fa-circle-waveform-lines:before,.fa-waveform-circle:before{content:"\e12d"}.fa-dollar-sign:before,.fa-dollar:before,.fa-usd:before{content:"\24"}.fa-ferris-wheel:before{content:"\e174"}.fa-computer-speaker:before{content:"\f8b2"}.fa-skull-cow:before{content:"\f8de"}.fa-x:before{content:"\58"}.fa-magnifying-glass-dollar:before,.fa-search-dollar:before{content:"\f688"}.fa-users-cog:before,.fa-users-gear:before{content:"\f509"}.fa-person-military-pointing:before{content:"\e54a"}.fa-bank:before,.fa-building-columns:before,.fa-institution:before,.fa-museum:before,.fa-university:before{content:"\f19c"}.fa-circle-t:before{content:"\e124"}.fa-sack:before{content:"\f81c"}.fa-grid-2:before{content:"\e196"}.fa-camera-cctv:before,.fa-cctv:before{content:"\f8ac"}.fa-umbrella:before{content:"\f0e9"}.fa-trowel:before{content:"\e589"}.fa-horizontal-rule:before{content:"\f86c"}.fa-bed-alt:before,.fa-bed-front:before{content:"\f8f7"}.fa-d:before{content:"\44"}.fa-stapler:before{content:"\e5af"}.fa-masks-theater:before,.fa-theater-masks:before{content:"\f630"}.fa-file-gif:before{content:"\e645"}.fa-kip-sign:before{content:"\e1c4"}.fa-face-woozy:before{content:"\e3a2"}.fa-cloud-question:before{content:"\e492"}.fa-pineapple:before{content:"\e31f"}.fa-hand-point-left:before{content:"\f0a5"}.fa-gallery-thumbnails:before{content:"\e3aa"}.fa-circle-j:before{content:"\e112"}.fa-eyes:before{content:"\e367"}.fa-handshake-alt:before,.fa-handshake-simple:before{content:"\f4c6"}.fa-file-caret-up:before,.fa-page-caret-up:before{content:"\e42a"}.fa-fighter-jet:before,.fa-jet-fighter:before{content:"\f0fb"}.fa-comet:before{content:"\e003"}.fa-share-alt-square:before,.fa-square-share-nodes:before{content:"\f1e1"}.fa-reflect-vertical:before{content:"\e665"}.fa-shield-keyhole:before{content:"\e248"}.fa-file-mp4:before{content:"\e649"}.fa-barcode:before{content:"\f02a"}.fa-bulldozer:before{content:"\e655"}.fa-plus-minus:before{content:"\e43c"}.fa-sliders-v-square:before,.fa-square-sliders-vertical:before{content:"\f3f2"}.fa-video-camera:before,.fa-video:before{content:"\f03d"}.fa-comment-middle-alt:before,.fa-message-middle:before{content:"\e1e1"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-person-circle-check:before{content:"\e53e"}.fa-square-z:before{content:"\e288"}.fa-comment-alt-text:before,.fa-message-text:before{content:"\e1e6"}.fa-level-up-alt:before,.fa-turn-up:before{content:"\f3bf"}.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:host,:root{--fa-style-family-brands:"Font Awesome 6 Brands";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}.fa-brands,.fab{font-weight:400}.fa-monero:before{content:"\f3d0"}.fa-hooli:before{content:"\f427"}.fa-yelp:before{content:"\f1e9"}.fa-cc-visa:before{content:"\f1f0"}.fa-lastfm:before{content:"\f202"}.fa-shopware:before{content:"\f5b5"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-aws:before{content:"\f375"}.fa-redhat:before{content:"\f7bc"}.fa-yoast:before{content:"\f2b1"}.fa-cloudflare:before{content:"\e07d"}.fa-ups:before{content:"\f7e0"}.fa-pixiv:before{content:"\e640"}.fa-wpexplorer:before{content:"\f2de"}.fa-dyalog:before{content:"\f399"}.fa-bity:before{content:"\f37a"}.fa-stackpath:before{content:"\f842"}.fa-buysellads:before{content:"\f20d"}.fa-first-order:before{content:"\f2b0"}.fa-modx:before{content:"\f285"}.fa-guilded:before{content:"\e07e"}.fa-vnv:before{content:"\f40b"}.fa-js-square:before,.fa-square-js:before{content:"\f3b9"}.fa-microsoft:before{content:"\f3ca"}.fa-qq:before{content:"\f1d6"}.fa-orcid:before{content:"\f8d2"}.fa-java:before{content:"\f4e4"}.fa-invision:before{content:"\f7b0"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-centercode:before{content:"\f380"}.fa-glide-g:before{content:"\f2a6"}.fa-drupal:before{content:"\f1a9"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-unity:before{content:"\e049"}.fa-whmcs:before{content:"\f40d"}.fa-rocketchat:before{content:"\f3e8"}.fa-vk:before{content:"\f189"}.fa-untappd:before{content:"\f405"}.fa-mailchimp:before{content:"\f59e"}.fa-css3-alt:before{content:"\f38b"}.fa-reddit-square:before,.fa-square-reddit:before{content:"\f1a2"}.fa-vimeo-v:before{content:"\f27d"}.fa-contao:before{content:"\f26d"}.fa-square-font-awesome:before{content:"\e5ad"}.fa-deskpro:before{content:"\f38f"}.fa-brave:before{content:"\e63c"}.fa-sistrix:before{content:"\f3ee"}.fa-instagram-square:before,.fa-square-instagram:before{content:"\e055"}.fa-battle-net:before{content:"\f835"}.fa-the-red-yeti:before{content:"\f69d"}.fa-hacker-news-square:before,.fa-square-hacker-news:before{content:"\f3af"}.fa-edge:before{content:"\f282"}.fa-threads:before{content:"\e618"}.fa-napster:before{content:"\f3d2"}.fa-snapchat-square:before,.fa-square-snapchat:before{content:"\f2ad"}.fa-google-plus-g:before{content:"\f0d5"}.fa-artstation:before{content:"\f77a"}.fa-markdown:before{content:"\f60f"}.fa-sourcetree:before{content:"\f7d3"}.fa-google-plus:before{content:"\f2b3"}.fa-diaspora:before{content:"\f791"}.fa-foursquare:before{content:"\f180"}.fa-stack-overflow:before{content:"\f16c"}.fa-github-alt:before{content:"\f113"}.fa-phoenix-squadron:before{content:"\f511"}.fa-pagelines:before{content:"\f18c"}.fa-algolia:before{content:"\f36c"}.fa-red-river:before{content:"\f3e3"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-safari:before{content:"\f267"}.fa-google:before{content:"\f1a0"}.fa-font-awesome-alt:before,.fa-square-font-awesome-stroke:before{content:"\f35c"}.fa-atlassian:before{content:"\f77b"}.fa-linkedin-in:before{content:"\f0e1"}.fa-digital-ocean:before{content:"\f391"}.fa-nimblr:before{content:"\f5a8"}.fa-chromecast:before{content:"\f838"}.fa-evernote:before{content:"\f839"}.fa-hacker-news:before{content:"\f1d4"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-adversal:before{content:"\f36a"}.fa-creative-commons:before{content:"\f25e"}.fa-watchman-monitoring:before{content:"\e087"}.fa-fonticons:before{content:"\f280"}.fa-weixin:before{content:"\f1d7"}.fa-shirtsinbulk:before{content:"\f214"}.fa-codepen:before{content:"\f1cb"}.fa-git-alt:before{content:"\f841"}.fa-lyft:before{content:"\f3c3"}.fa-rev:before{content:"\f5b2"}.fa-windows:before{content:"\f17a"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-square-viadeo:before,.fa-viadeo-square:before{content:"\f2aa"}.fa-meetup:before{content:"\f2e0"}.fa-centos:before{content:"\f789"}.fa-adn:before{content:"\f170"}.fa-cloudsmith:before{content:"\f384"}.fa-opensuse:before{content:"\e62b"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-dribbble-square:before,.fa-square-dribbble:before{content:"\f397"}.fa-codiepie:before{content:"\f284"}.fa-node:before{content:"\f419"}.fa-mix:before{content:"\f3cb"}.fa-steam:before{content:"\f1b6"}.fa-cc-apple-pay:before{content:"\f416"}.fa-scribd:before{content:"\f28a"}.fa-debian:before{content:"\e60b"}.fa-openid:before{content:"\f19b"}.fa-instalod:before{content:"\e081"}.fa-expeditedssl:before{content:"\f23e"}.fa-sellcast:before{content:"\f2da"}.fa-square-twitter:before,.fa-twitter-square:before{content:"\f081"}.fa-r-project:before{content:"\f4f7"}.fa-delicious:before{content:"\f1a5"}.fa-freebsd:before{content:"\f3a4"}.fa-vuejs:before{content:"\f41f"}.fa-accusoft:before{content:"\f369"}.fa-ioxhost:before{content:"\f208"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-app-store:before{content:"\f36f"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-itunes-note:before{content:"\f3b5"}.fa-golang:before{content:"\e40f"}.fa-kickstarter:before{content:"\f3bb"}.fa-grav:before{content:"\f2d6"}.fa-weibo:before{content:"\f18a"}.fa-uncharted:before{content:"\e084"}.fa-firstdraft:before{content:"\f3a1"}.fa-square-youtube:before,.fa-youtube-square:before{content:"\f431"}.fa-wikipedia-w:before{content:"\f266"}.fa-rendact:before,.fa-wpressr:before{content:"\f3e4"}.fa-angellist:before{content:"\f209"}.fa-galactic-republic:before{content:"\f50c"}.fa-nfc-directional:before{content:"\e530"}.fa-skype:before{content:"\f17e"}.fa-joget:before{content:"\f3b7"}.fa-fedora:before{content:"\f798"}.fa-stripe-s:before{content:"\f42a"}.fa-meta:before{content:"\e49b"}.fa-laravel:before{content:"\f3bd"}.fa-hotjar:before{content:"\f3b1"}.fa-bluetooth-b:before{content:"\f294"}.fa-square-letterboxd:before{content:"\e62e"}.fa-sticker-mule:before{content:"\f3f7"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-hips:before{content:"\f452"}.fa-behance:before{content:"\f1b4"}.fa-reddit:before{content:"\f1a1"}.fa-discord:before{content:"\f392"}.fa-chrome:before{content:"\f268"}.fa-app-store-ios:before{content:"\f370"}.fa-cc-discover:before{content:"\f1f2"}.fa-wpbeginner:before{content:"\f297"}.fa-confluence:before{content:"\f78d"}.fa-shoelace:before{content:"\e60c"}.fa-mdb:before{content:"\f8ca"}.fa-dochub:before{content:"\f394"}.fa-accessible-icon:before{content:"\f368"}.fa-ebay:before{content:"\f4f4"}.fa-amazon:before{content:"\f270"}.fa-unsplash:before{content:"\e07c"}.fa-yarn:before{content:"\f7e3"}.fa-square-steam:before,.fa-steam-square:before{content:"\f1b7"}.fa-500px:before{content:"\f26e"}.fa-square-vimeo:before,.fa-vimeo-square:before{content:"\f194"}.fa-asymmetrik:before{content:"\f372"}.fa-font-awesome-flag:before,.fa-font-awesome-logo-full:before,.fa-font-awesome:before{content:"\f2b4"}.fa-gratipay:before{content:"\f184"}.fa-apple:before{content:"\f179"}.fa-hive:before{content:"\e07f"}.fa-gitkraken:before{content:"\f3a6"}.fa-keybase:before{content:"\f4f5"}.fa-apple-pay:before{content:"\f415"}.fa-padlet:before{content:"\e4a0"}.fa-amazon-pay:before{content:"\f42c"}.fa-github-square:before,.fa-square-github:before{content:"\f092"}.fa-stumbleupon:before{content:"\f1a4"}.fa-fedex:before{content:"\f797"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-shopify:before{content:"\e057"}.fa-neos:before{content:"\f612"}.fa-square-threads:before{content:"\e619"}.fa-hackerrank:before{content:"\f5f7"}.fa-researchgate:before{content:"\f4f8"}.fa-swift:before{content:"\f8e1"}.fa-angular:before{content:"\f420"}.fa-speakap:before{content:"\f3f3"}.fa-angrycreative:before{content:"\f36e"}.fa-y-combinator:before{content:"\f23b"}.fa-empire:before{content:"\f1d1"}.fa-envira:before{content:"\f299"}.fa-google-scholar:before{content:"\e63b"}.fa-gitlab-square:before,.fa-square-gitlab:before{content:"\e5ae"}.fa-studiovinari:before{content:"\f3f8"}.fa-pied-piper:before{content:"\f2ae"}.fa-wordpress:before{content:"\f19a"}.fa-product-hunt:before{content:"\f288"}.fa-firefox:before{content:"\f269"}.fa-linode:before{content:"\f2b8"}.fa-goodreads:before{content:"\f3a8"}.fa-odnoklassniki-square:before,.fa-square-odnoklassniki:before{content:"\f264"}.fa-jsfiddle:before{content:"\f1cc"}.fa-sith:before{content:"\f512"}.fa-themeisle:before{content:"\f2b2"}.fa-page4:before{content:"\f3d7"}.fa-hashnode:before{content:"\e499"}.fa-react:before{content:"\f41b"}.fa-cc-paypal:before{content:"\f1f4"}.fa-squarespace:before{content:"\f5be"}.fa-cc-stripe:before{content:"\f1f5"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-bitcoin:before{content:"\f379"}.fa-keycdn:before{content:"\f3ba"}.fa-opera:before{content:"\f26a"}.fa-itch-io:before{content:"\f83a"}.fa-umbraco:before{content:"\f8e8"}.fa-galactic-senate:before{content:"\f50d"}.fa-ubuntu:before{content:"\f7df"}.fa-draft2digital:before{content:"\f396"}.fa-stripe:before{content:"\f429"}.fa-houzz:before{content:"\f27c"}.fa-gg:before{content:"\f260"}.fa-dhl:before{content:"\f790"}.fa-pinterest-square:before,.fa-square-pinterest:before{content:"\f0d3"}.fa-xing:before{content:"\f168"}.fa-blackberry:before{content:"\f37b"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-playstation:before{content:"\f3df"}.fa-quinscape:before{content:"\f459"}.fa-less:before{content:"\f41d"}.fa-blogger-b:before{content:"\f37d"}.fa-opencart:before{content:"\f23d"}.fa-vine:before{content:"\f1ca"}.fa-signal-messenger:before{content:"\e663"}.fa-paypal:before{content:"\f1ed"}.fa-gitlab:before{content:"\f296"}.fa-typo3:before{content:"\f42b"}.fa-reddit-alien:before{content:"\f281"}.fa-yahoo:before{content:"\f19e"}.fa-dailymotion:before{content:"\e052"}.fa-affiliatetheme:before{content:"\f36b"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-bootstrap:before{content:"\f836"}.fa-odnoklassniki:before{content:"\f263"}.fa-nfc-symbol:before{content:"\e531"}.fa-mintbit:before{content:"\e62f"}.fa-ethereum:before{content:"\f42e"}.fa-speaker-deck:before{content:"\f83c"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-patreon:before{content:"\f3d9"}.fa-avianex:before{content:"\f374"}.fa-ello:before{content:"\f5f1"}.fa-gofore:before{content:"\f3a7"}.fa-bimobject:before{content:"\f378"}.fa-brave-reverse:before{content:"\e63d"}.fa-facebook-f:before{content:"\f39e"}.fa-google-plus-square:before,.fa-square-google-plus:before{content:"\f0d4"}.fa-mandalorian:before{content:"\f50f"}.fa-first-order-alt:before{content:"\f50a"}.fa-osi:before{content:"\f41a"}.fa-google-wallet:before{content:"\f1ee"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-periscope:before{content:"\f3da"}.fa-fulcrum:before{content:"\f50b"}.fa-cloudscale:before{content:"\f383"}.fa-forumbee:before{content:"\f211"}.fa-mizuni:before{content:"\f3cc"}.fa-schlix:before{content:"\f3ea"}.fa-square-xing:before,.fa-xing-square:before{content:"\f169"}.fa-bandcamp:before{content:"\f2d5"}.fa-wpforms:before{content:"\f298"}.fa-cloudversify:before{content:"\f385"}.fa-usps:before{content:"\f7e1"}.fa-megaport:before{content:"\f5a3"}.fa-magento:before{content:"\f3c4"}.fa-spotify:before{content:"\f1bc"}.fa-optin-monster:before{content:"\f23c"}.fa-fly:before{content:"\f417"}.fa-aviato:before{content:"\f421"}.fa-itunes:before{content:"\f3b4"}.fa-cuttlefish:before{content:"\f38c"}.fa-blogger:before{content:"\f37c"}.fa-flickr:before{content:"\f16e"}.fa-viber:before{content:"\f409"}.fa-soundcloud:before{content:"\f1be"}.fa-digg:before{content:"\f1a6"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-letterboxd:before{content:"\e62d"}.fa-symfony:before{content:"\f83d"}.fa-maxcdn:before{content:"\f136"}.fa-etsy:before{content:"\f2d7"}.fa-facebook-messenger:before{content:"\f39f"}.fa-audible:before{content:"\f373"}.fa-think-peaks:before{content:"\f731"}.fa-bilibili:before{content:"\e3d9"}.fa-erlang:before{content:"\f39d"}.fa-x-twitter:before{content:"\e61b"}.fa-cotton-bureau:before{content:"\f89e"}.fa-dashcube:before{content:"\f210"}.fa-42-group:before,.fa-innosoft:before{content:"\e080"}.fa-stack-exchange:before{content:"\f18d"}.fa-elementor:before{content:"\f430"}.fa-pied-piper-square:before,.fa-square-pied-piper:before{content:"\e01e"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-palfed:before{content:"\f3d8"}.fa-superpowers:before{content:"\f2dd"}.fa-resolving:before{content:"\f3e7"}.fa-xbox:before{content:"\f412"}.fa-searchengin:before{content:"\f3eb"}.fa-tiktok:before{content:"\e07b"}.fa-facebook-square:before,.fa-square-facebook:before{content:"\f082"}.fa-renren:before{content:"\f18b"}.fa-linux:before{content:"\f17c"}.fa-glide:before{content:"\f2a5"}.fa-linkedin:before{content:"\f08c"}.fa-hubspot:before{content:"\f3b2"}.fa-deploydog:before{content:"\f38e"}.fa-twitch:before{content:"\f1e8"}.fa-ravelry:before{content:"\f2d9"}.fa-mixer:before{content:"\e056"}.fa-lastfm-square:before,.fa-square-lastfm:before{content:"\f203"}.fa-vimeo:before{content:"\f40a"}.fa-mendeley:before{content:"\f7b3"}.fa-uniregistry:before{content:"\f404"}.fa-figma:before{content:"\f799"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-dropbox:before{content:"\f16b"}.fa-instagram:before{content:"\f16d"}.fa-cmplid:before{content:"\e360"}.fa-upwork:before{content:"\e641"}.fa-facebook:before{content:"\f09a"}.fa-gripfire:before{content:"\f3ac"}.fa-jedi-order:before{content:"\f50e"}.fa-uikit:before{content:"\f403"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-phabricator:before{content:"\f3db"}.fa-ussunnah:before{content:"\f407"}.fa-earlybirds:before{content:"\f39a"}.fa-trade-federation:before{content:"\f513"}.fa-autoprefixer:before{content:"\f41c"}.fa-whatsapp:before{content:"\f232"}.fa-slideshare:before{content:"\f1e7"}.fa-google-play:before{content:"\f3ab"}.fa-viadeo:before{content:"\f2a9"}.fa-line:before{content:"\f3c0"}.fa-google-drive:before{content:"\f3aa"}.fa-servicestack:before{content:"\f3ec"}.fa-simplybuilt:before{content:"\f215"}.fa-bitbucket:before{content:"\f171"}.fa-imdb:before{content:"\f2d8"}.fa-deezer:before{content:"\e077"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-jira:before{content:"\f7b1"}.fa-docker:before{content:"\f395"}.fa-screenpal:before{content:"\e570"}.fa-bluetooth:before{content:"\f293"}.fa-gitter:before{content:"\f426"}.fa-d-and-d:before{content:"\f38d"}.fa-microblog:before{content:"\e01a"}.fa-cc-diners-club:before{content:"\f24c"}.fa-gg-circle:before{content:"\f261"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-yandex:before{content:"\f413"}.fa-readme:before{content:"\f4d5"}.fa-html5:before{content:"\f13b"}.fa-sellsy:before{content:"\f213"}.fa-sass:before{content:"\f41e"}.fa-wirsindhandwerk:before,.fa-wsh:before{content:"\e2d0"}.fa-buromobelexperte:before{content:"\f37f"}.fa-salesforce:before{content:"\f83b"}.fa-octopus-deploy:before{content:"\e082"}.fa-medapps:before{content:"\f3c6"}.fa-ns8:before{content:"\f3d5"}.fa-pinterest-p:before{content:"\f231"}.fa-apper:before{content:"\f371"}.fa-fort-awesome:before{content:"\f286"}.fa-waze:before{content:"\f83f"}.fa-cc-jcb:before{content:"\f24b"}.fa-snapchat-ghost:before,.fa-snapchat:before{content:"\f2ab"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-rust:before{content:"\e07a"}.fa-wix:before{content:"\f5cf"}.fa-behance-square:before,.fa-square-behance:before{content:"\f1b5"}.fa-supple:before{content:"\f3f9"}.fa-webflow:before{content:"\e65c"}.fa-rebel:before{content:"\f1d0"}.fa-css3:before{content:"\f13c"}.fa-staylinked:before{content:"\f3f5"}.fa-kaggle:before{content:"\f5fa"}.fa-space-awesome:before{content:"\e5ac"}.fa-deviantart:before{content:"\f1bd"}.fa-cpanel:before{content:"\f388"}.fa-goodreads-g:before{content:"\f3a9"}.fa-git-square:before,.fa-square-git:before{content:"\f1d2"}.fa-square-tumblr:before,.fa-tumblr-square:before{content:"\f174"}.fa-trello:before{content:"\f181"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-get-pocket:before{content:"\f265"}.fa-perbyte:before{content:"\e083"}.fa-grunt:before{content:"\f3ad"}.fa-weebly:before{content:"\f5cc"}.fa-connectdevelop:before{content:"\f20e"}.fa-leanpub:before{content:"\f212"}.fa-black-tie:before{content:"\f27e"}.fa-themeco:before{content:"\f5c6"}.fa-python:before{content:"\f3e2"}.fa-android:before{content:"\f17b"}.fa-bots:before{content:"\e340"}.fa-free-code-camp:before{content:"\f2c5"}.fa-hornbill:before{content:"\f592"}.fa-js:before{content:"\f3b8"}.fa-ideal:before{content:"\e013"}.fa-git:before{content:"\f1d3"}.fa-dev:before{content:"\f6cc"}.fa-sketch:before{content:"\f7c6"}.fa-yandex-international:before{content:"\f414"}.fa-cc-amex:before{content:"\f1f3"}.fa-uber:before{content:"\f402"}.fa-github:before{content:"\f09b"}.fa-php:before{content:"\f457"}.fa-alipay:before{content:"\f642"}.fa-youtube:before{content:"\f167"}.fa-skyatlas:before{content:"\f216"}.fa-firefox-browser:before{content:"\e007"}.fa-replyd:before{content:"\f3e6"}.fa-suse:before{content:"\f7d6"}.fa-jenkins:before{content:"\f3b6"}.fa-twitter:before{content:"\f099"}.fa-rockrms:before{content:"\f3e9"}.fa-pinterest:before{content:"\f0d2"}.fa-buffer:before{content:"\f837"}.fa-npm:before{content:"\f3d4"}.fa-yammer:before{content:"\f840"}.fa-btc:before{content:"\f15a"}.fa-dribbble:before{content:"\f17d"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-internet-explorer:before{content:"\f26b"}.fa-stubber:before{content:"\e5c7"}.fa-telegram-plane:before,.fa-telegram:before{content:"\f2c6"}.fa-old-republic:before{content:"\f510"}.fa-odysee:before{content:"\e5c6"}.fa-square-whatsapp:before,.fa-whatsapp-square:before{content:"\f40c"}.fa-node-js:before{content:"\f3d3"}.fa-edge-legacy:before{content:"\e078"}.fa-slack-hash:before,.fa-slack:before{content:"\f198"}.fa-medrt:before{content:"\f3c8"}.fa-usb:before{content:"\f287"}.fa-tumblr:before{content:"\f173"}.fa-vaadin:before{content:"\f408"}.fa-quora:before{content:"\f2c4"}.fa-square-x-twitter:before{content:"\e61a"}.fa-reacteurope:before{content:"\f75d"}.fa-medium-m:before,.fa-medium:before{content:"\f23a"}.fa-amilia:before{content:"\f36d"}.fa-mixcloud:before{content:"\f289"}.fa-flipboard:before{content:"\f44d"}.fa-viacoin:before{content:"\f237"}.fa-critical-role:before{content:"\f6c9"}.fa-sitrox:before{content:"\e44a"}.fa-discourse:before{content:"\f393"}.fa-joomla:before{content:"\f1aa"}.fa-mastodon:before{content:"\f4f6"}.fa-airbnb:before{content:"\f834"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-buy-n-large:before{content:"\f8a6"}.fa-gulp:before{content:"\f3ae"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-strava:before{content:"\f428"}.fa-ember:before{content:"\f423"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-teamspeak:before{content:"\f4f9"}.fa-pushed:before{content:"\f3e1"}.fa-wordpress-simple:before{content:"\f411"}.fa-nutritionix:before{content:"\f3d6"}.fa-wodu:before{content:"\e088"}.fa-google-pay:before{content:"\e079"}.fa-intercom:before{content:"\f7af"}.fa-zhihu:before{content:"\f63f"}.fa-korvue:before{content:"\f42f"}.fa-pix:before{content:"\e43a"}.fa-steam-symbol:before{content:"\f3f6"}:host,:root{--fa-style-family-duotone:"Font Awesome 6 Duotone";--fa-font-duotone:normal 900 1em/1 "Font Awesome 6 Duotone"}@font-face{font-family:"Font Awesome 6 Duotone";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-duotone-900.woff2) format("woff2"),url(../webfonts/fa-duotone-900.ttf) format("truetype")}.fa-duotone,.fad{position:relative;font-weight:900;letter-spacing:normal}.fa-duotone:before,.fad:before{position:absolute;color:var(--fa-primary-color,inherit);opacity:var(--fa-primary-opacity,1)}.fa-duotone:after,.fad:after{color:var(--fa-secondary-color,inherit)}.fa-duotone.fa-swap-opacity:before,.fa-duotone:after,.fa-swap-opacity .fa-duotone:before,.fa-swap-opacity .fad:before,.fad.fa-swap-opacity:before,.fad:after{opacity:var(--fa-secondary-opacity,.4)}.fa-duotone.fa-swap-opacity:after,.fa-swap-opacity .fa-duotone:after,.fa-swap-opacity .fad:after,.fad.fa-swap-opacity:after{opacity:var(--fa-primary-opacity,1)}.fa-duotone.fa-inverse,.fad.fa-inverse{color:var(--fa-inverse,#fff)}.fa-duotone.fa-stack-1x,.fa-duotone.fa-stack-2x,.fad.fa-stack-1x,.fad.fa-stack-2x{position:absolute}.fa-duotone.fa-0:after,.fad.fa-0:after{content:"\30\30"}.fa-duotone.fa-1:after,.fad.fa-1:after{content:"\31\31"}.fa-duotone.fa-2:after,.fad.fa-2:after{content:"\32\32"}.fa-duotone.fa-3:after,.fad.fa-3:after{content:"\33\33"}.fa-duotone.fa-4:after,.fad.fa-4:after{content:"\34\34"}.fa-duotone.fa-5:after,.fad.fa-5:after{content:"\35\35"}.fa-duotone.fa-6:after,.fad.fa-6:after{content:"\36\36"}.fa-duotone.fa-7:after,.fad.fa-7:after{content:"\37\37"}.fa-duotone.fa-8:after,.fad.fa-8:after{content:"\38\38"}.fa-duotone.fa-9:after,.fad.fa-9:after{content:"\39\39"}.fa-duotone.fa-fill-drip:after,.fad.fa-fill-drip:after{content:"\f576\f576"}.fa-duotone.fa-arrows-to-circle:after,.fad.fa-arrows-to-circle:after{content:"\e4bd\e4bd"}.fa-duotone.fa-chevron-circle-right:after,.fa-duotone.fa-circle-chevron-right:after,.fad.fa-chevron-circle-right:after,.fad.fa-circle-chevron-right:after{content:"\f138\f138"}.fa-duotone.fa-wagon-covered:after,.fad.fa-wagon-covered:after{content:"\f8ee\f8ee"}.fa-duotone.fa-line-height:after,.fad.fa-line-height:after{content:"\f871\f871"}.fa-duotone.fa-bagel:after,.fad.fa-bagel:after{content:"\e3d7\e3d7"}.fa-duotone.fa-transporter-7:after,.fad.fa-transporter-7:after{content:"\e2a8\e2a8"}.fa-duotone.fa-at:after,.fad.fa-at:after{content:"\40\40"}.fa-duotone.fa-rectangles-mixed:after,.fad.fa-rectangles-mixed:after{content:"\e323\e323"}.fa-duotone.fa-phone-arrow-up-right:after,.fa-duotone.fa-phone-arrow-up:after,.fa-duotone.fa-phone-outgoing:after,.fad.fa-phone-arrow-up-right:after,.fad.fa-phone-arrow-up:after,.fad.fa-phone-outgoing:after{content:"\e224\e224"}.fa-duotone.fa-trash-alt:after,.fa-duotone.fa-trash-can:after,.fad.fa-trash-alt:after,.fad.fa-trash-can:after{content:"\f2ed\f2ed"}.fa-duotone.fa-circle-l:after,.fad.fa-circle-l:after{content:"\e114\e114"}.fa-duotone.fa-head-side-goggles:after,.fa-duotone.fa-head-vr:after,.fad.fa-head-side-goggles:after,.fad.fa-head-vr:after{content:"\f6ea\f6ea"}.fa-duotone.fa-text-height:after,.fad.fa-text-height:after{content:"\f034\f034"}.fa-duotone.fa-user-times:after,.fa-duotone.fa-user-xmark:after,.fad.fa-user-times:after,.fad.fa-user-xmark:after{content:"\f235\f235"}.fa-duotone.fa-face-hand-yawn:after,.fad.fa-face-hand-yawn:after{content:"\e379\e379"}.fa-duotone.fa-gauge-simple-min:after,.fa-duotone.fa-tachometer-slowest:after,.fad.fa-gauge-simple-min:after,.fad.fa-tachometer-slowest:after{content:"\f62d\f62d"}.fa-duotone.fa-stethoscope:after,.fad.fa-stethoscope:after{content:"\f0f1\f0f1"}.fa-duotone.fa-coffin:after,.fad.fa-coffin:after{content:"\f6c6\f6c6"}.fa-duotone.fa-comment-alt:after,.fa-duotone.fa-message:after,.fad.fa-comment-alt:after,.fad.fa-message:after{content:"\f27a\f27a"}.fa-duotone.fa-bowl-salad:after,.fa-duotone.fa-salad:after,.fad.fa-bowl-salad:after,.fad.fa-salad:after{content:"\f81e\f81e"}.fa-duotone.fa-info:after,.fad.fa-info:after{content:"\f129\f129"}.fa-duotone.fa-robot-astromech:after,.fad.fa-robot-astromech:after{content:"\e2d2\e2d2"}.fa-duotone.fa-ring-diamond:after,.fad.fa-ring-diamond:after{content:"\e5ab\e5ab"}.fa-duotone.fa-fondue-pot:after,.fad.fa-fondue-pot:after{content:"\e40d\e40d"}.fa-duotone.fa-theta:after,.fad.fa-theta:after{content:"\f69e\f69e"}.fa-duotone.fa-face-hand-peeking:after,.fad.fa-face-hand-peeking:after{content:"\e481\e481"}.fa-duotone.fa-square-user:after,.fad.fa-square-user:after{content:"\e283\e283"}.fa-duotone.fa-compress-alt:after,.fa-duotone.fa-down-left-and-up-right-to-center:after,.fad.fa-compress-alt:after,.fad.fa-down-left-and-up-right-to-center:after{content:"\f422\f422"}.fa-duotone.fa-explosion:after,.fad.fa-explosion:after{content:"\e4e9\e4e9"}.fa-duotone.fa-file-alt:after,.fa-duotone.fa-file-lines:after,.fa-duotone.fa-file-text:after,.fad.fa-file-alt:after,.fad.fa-file-lines:after,.fad.fa-file-text:after{content:"\f15c\f15c"}.fa-duotone.fa-wave-square:after,.fad.fa-wave-square:after{content:"\f83e\f83e"}.fa-duotone.fa-ring:after,.fad.fa-ring:after{content:"\f70b\f70b"}.fa-duotone.fa-building-un:after,.fad.fa-building-un:after{content:"\e4d9\e4d9"}.fa-duotone.fa-dice-three:after,.fad.fa-dice-three:after{content:"\f527\f527"}.fa-duotone.fa-tire-pressure-warning:after,.fad.fa-tire-pressure-warning:after{content:"\f633\f633"}.fa-duotone.fa-wifi-2:after,.fa-duotone.fa-wifi-fair:after,.fad.fa-wifi-2:after,.fad.fa-wifi-fair:after{content:"\f6ab\f6ab"}.fa-duotone.fa-calendar-alt:after,.fa-duotone.fa-calendar-days:after,.fad.fa-calendar-alt:after,.fad.fa-calendar-days:after{content:"\f073\f073"}.fa-duotone.fa-mp3-player:after,.fad.fa-mp3-player:after{content:"\f8ce\f8ce"}.fa-duotone.fa-anchor-circle-check:after,.fad.fa-anchor-circle-check:after{content:"\e4aa\e4aa"}.fa-duotone.fa-tally-4:after,.fad.fa-tally-4:after{content:"\e297\e297"}.fa-duotone.fa-rectangle-history:after,.fad.fa-rectangle-history:after{content:"\e4a2\e4a2"}.fa-duotone.fa-building-circle-arrow-right:after,.fad.fa-building-circle-arrow-right:after{content:"\e4d1\e4d1"}.fa-duotone.fa-volleyball-ball:after,.fa-duotone.fa-volleyball:after,.fad.fa-volleyball-ball:after,.fad.fa-volleyball:after{content:"\f45f\f45f"}.fa-duotone.fa-sun-haze:after,.fad.fa-sun-haze:after{content:"\f765\f765"}.fa-duotone.fa-text-size:after,.fad.fa-text-size:after{content:"\f894\f894"}.fa-duotone.fa-ufo:after,.fad.fa-ufo:after{content:"\e047\e047"}.fa-duotone.fa-fork:after,.fa-duotone.fa-utensil-fork:after,.fad.fa-fork:after,.fad.fa-utensil-fork:after{content:"\f2e3\f2e3"}.fa-duotone.fa-arrows-up-to-line:after,.fad.fa-arrows-up-to-line:after{content:"\e4c2\e4c2"}.fa-duotone.fa-mobile-signal:after,.fad.fa-mobile-signal:after{content:"\e1ef\e1ef"}.fa-duotone.fa-barcode-scan:after,.fad.fa-barcode-scan:after{content:"\f465\f465"}.fa-duotone.fa-sort-desc:after,.fa-duotone.fa-sort-down:after,.fad.fa-sort-desc:after,.fad.fa-sort-down:after{content:"\f0dd\f0dd"}.fa-duotone.fa-folder-arrow-down:after,.fa-duotone.fa-folder-download:after,.fad.fa-folder-arrow-down:after,.fad.fa-folder-download:after{content:"\e053\e053"}.fa-duotone.fa-circle-minus:after,.fa-duotone.fa-minus-circle:after,.fad.fa-circle-minus:after,.fad.fa-minus-circle:after{content:"\f056\f056"}.fa-duotone.fa-face-icicles:after,.fad.fa-face-icicles:after{content:"\e37c\e37c"}.fa-duotone.fa-shovel:after,.fad.fa-shovel:after{content:"\f713\f713"}.fa-duotone.fa-door-open:after,.fad.fa-door-open:after{content:"\f52b\f52b"}.fa-duotone.fa-films:after,.fad.fa-films:after{content:"\e17a\e17a"}.fa-duotone.fa-right-from-bracket:after,.fa-duotone.fa-sign-out-alt:after,.fad.fa-right-from-bracket:after,.fad.fa-sign-out-alt:after{content:"\f2f5\f2f5"}.fa-duotone.fa-face-glasses:after,.fad.fa-face-glasses:after{content:"\e377\e377"}.fa-duotone.fa-nfc:after,.fad.fa-nfc:after{content:"\e1f7\e1f7"}.fa-duotone.fa-atom:after,.fad.fa-atom:after{content:"\f5d2\f5d2"}.fa-duotone.fa-soap:after,.fad.fa-soap:after{content:"\e06e\e06e"}.fa-duotone.fa-heart-music-camera-bolt:after,.fa-duotone.fa-icons:after,.fad.fa-heart-music-camera-bolt:after,.fad.fa-icons:after{content:"\f86d\f86d"}.fa-duotone.fa-microphone-alt-slash:after,.fa-duotone.fa-microphone-lines-slash:after,.fad.fa-microphone-alt-slash:after,.fad.fa-microphone-lines-slash:after{content:"\f539\f539"}.fa-duotone.fa-closed-captioning-slash:after,.fad.fa-closed-captioning-slash:after{content:"\e135\e135"}.fa-duotone.fa-calculator-alt:after,.fa-duotone.fa-calculator-simple:after,.fad.fa-calculator-alt:after,.fad.fa-calculator-simple:after{content:"\f64c\f64c"}.fa-duotone.fa-bridge-circle-check:after,.fad.fa-bridge-circle-check:after{content:"\e4c9\e4c9"}.fa-duotone.fa-sliders-up:after,.fa-duotone.fa-sliders-v:after,.fad.fa-sliders-up:after,.fad.fa-sliders-v:after{content:"\f3f1\f3f1"}.fa-duotone.fa-location-minus:after,.fa-duotone.fa-map-marker-minus:after,.fad.fa-location-minus:after,.fad.fa-map-marker-minus:after{content:"\f609\f609"}.fa-duotone.fa-pump-medical:after,.fad.fa-pump-medical:after{content:"\e06a\e06a"}.fa-duotone.fa-fingerprint:after,.fad.fa-fingerprint:after{content:"\f577\f577"}.fa-duotone.fa-ski-boot:after,.fad.fa-ski-boot:after{content:"\e3cc\e3cc"}.fa-duotone.fa-rectangle-sd:after,.fa-duotone.fa-standard-definition:after,.fad.fa-rectangle-sd:after,.fad.fa-standard-definition:after{content:"\e28a\e28a"}.fa-duotone.fa-h1:after,.fad.fa-h1:after{content:"\f313\f313"}.fa-duotone.fa-hand-point-right:after,.fad.fa-hand-point-right:after{content:"\f0a4\f0a4"}.fa-duotone.fa-magnifying-glass-location:after,.fa-duotone.fa-search-location:after,.fad.fa-magnifying-glass-location:after,.fad.fa-search-location:after{content:"\f689\f689"}.fa-duotone.fa-message-bot:after,.fad.fa-message-bot:after{content:"\e3b8\e3b8"}.fa-duotone.fa-forward-step:after,.fa-duotone.fa-step-forward:after,.fad.fa-forward-step:after,.fad.fa-step-forward:after{content:"\f051\f051"}.fa-duotone.fa-face-smile-beam:after,.fa-duotone.fa-smile-beam:after,.fad.fa-face-smile-beam:after,.fad.fa-smile-beam:after{content:"\f5b8\f5b8"}.fa-duotone.fa-light-ceiling:after,.fad.fa-light-ceiling:after{content:"\e016\e016"}.fa-duotone.fa-comment-alt-exclamation:after,.fa-duotone.fa-message-exclamation:after,.fad.fa-comment-alt-exclamation:after,.fad.fa-message-exclamation:after{content:"\f4a5\f4a5"}.fa-duotone.fa-bowl-scoop:after,.fa-duotone.fa-bowl-shaved-ice:after,.fad.fa-bowl-scoop:after,.fad.fa-bowl-shaved-ice:after{content:"\e3de\e3de"}.fa-duotone.fa-square-x:after,.fad.fa-square-x:after{content:"\e286\e286"}.fa-duotone.fa-building-memo:after,.fad.fa-building-memo:after{content:"\e61e\e61e"}.fa-duotone.fa-utility-pole-double:after,.fad.fa-utility-pole-double:after{content:"\e2c4\e2c4"}.fa-duotone.fa-flag-checkered:after,.fad.fa-flag-checkered:after{content:"\f11e\f11e"}.fa-duotone.fa-chevron-double-up:after,.fa-duotone.fa-chevrons-up:after,.fad.fa-chevron-double-up:after,.fad.fa-chevrons-up:after{content:"\f325\f325"}.fa-duotone.fa-football-ball:after,.fa-duotone.fa-football:after,.fad.fa-football-ball:after,.fad.fa-football:after{content:"\f44e\f44e"}.fa-duotone.fa-user-vneck:after,.fad.fa-user-vneck:after{content:"\e461\e461"}.fa-duotone.fa-school-circle-exclamation:after,.fad.fa-school-circle-exclamation:after{content:"\e56c\e56c"}.fa-duotone.fa-crop:after,.fad.fa-crop:after{content:"\f125\f125"}.fa-duotone.fa-angle-double-down:after,.fa-duotone.fa-angles-down:after,.fad.fa-angle-double-down:after,.fad.fa-angles-down:after{content:"\f103\f103"}.fa-duotone.fa-users-rectangle:after,.fad.fa-users-rectangle:after{content:"\e594\e594"}.fa-duotone.fa-people-roof:after,.fad.fa-people-roof:after{content:"\e537\e537"}.fa-duotone.fa-arrow-square-right:after,.fa-duotone.fa-square-arrow-right:after,.fad.fa-arrow-square-right:after,.fad.fa-square-arrow-right:after{content:"\f33b\f33b"}.fa-duotone.fa-location-plus:after,.fa-duotone.fa-map-marker-plus:after,.fad.fa-location-plus:after,.fad.fa-map-marker-plus:after{content:"\f60a\f60a"}.fa-duotone.fa-lightbulb-exclamation-on:after,.fad.fa-lightbulb-exclamation-on:after{content:"\e1ca\e1ca"}.fa-duotone.fa-people-line:after,.fad.fa-people-line:after{content:"\e534\e534"}.fa-duotone.fa-beer-mug-empty:after,.fa-duotone.fa-beer:after,.fad.fa-beer-mug-empty:after,.fad.fa-beer:after{content:"\f0fc\f0fc"}.fa-duotone.fa-crate-empty:after,.fad.fa-crate-empty:after{content:"\e151\e151"}.fa-duotone.fa-diagram-predecessor:after,.fad.fa-diagram-predecessor:after{content:"\e477\e477"}.fa-duotone.fa-transporter:after,.fad.fa-transporter:after{content:"\e042\e042"}.fa-duotone.fa-calendar-circle-user:after,.fad.fa-calendar-circle-user:after{content:"\e471\e471"}.fa-duotone.fa-arrow-up-long:after,.fa-duotone.fa-long-arrow-up:after,.fad.fa-arrow-up-long:after,.fad.fa-long-arrow-up:after{content:"\f176\f176"}.fa-duotone.fa-person-carry-box:after,.fa-duotone.fa-person-carry:after,.fad.fa-person-carry-box:after,.fad.fa-person-carry:after{content:"\f4cf\f4cf"}.fa-duotone.fa-burn:after,.fa-duotone.fa-fire-flame-simple:after,.fad.fa-burn:after,.fad.fa-fire-flame-simple:after{content:"\f46a\f46a"}.fa-duotone.fa-male:after,.fa-duotone.fa-person:after,.fad.fa-male:after,.fad.fa-person:after{content:"\f183\f183"}.fa-duotone.fa-laptop:after,.fad.fa-laptop:after{content:"\f109\f109"}.fa-duotone.fa-file-csv:after,.fad.fa-file-csv:after{content:"\f6dd\f6dd"}.fa-duotone.fa-menorah:after,.fad.fa-menorah:after{content:"\f676\f676"}.fa-duotone.fa-union:after,.fad.fa-union:after{content:"\f6a2\f6a2"}.fa-duotone.fa-chevron-double-left:after,.fa-duotone.fa-chevrons-left:after,.fad.fa-chevron-double-left:after,.fad.fa-chevrons-left:after{content:"\f323\f323"}.fa-duotone.fa-circle-heart:after,.fa-duotone.fa-heart-circle:after,.fad.fa-circle-heart:after,.fad.fa-heart-circle:after{content:"\f4c7\f4c7"}.fa-duotone.fa-truck-plane:after,.fad.fa-truck-plane:after{content:"\e58f\e58f"}.fa-duotone.fa-record-vinyl:after,.fad.fa-record-vinyl:after{content:"\f8d9\f8d9"}.fa-duotone.fa-bring-forward:after,.fad.fa-bring-forward:after{content:"\f856\f856"}.fa-duotone.fa-square-p:after,.fad.fa-square-p:after{content:"\e279\e279"}.fa-duotone.fa-face-grin-stars:after,.fa-duotone.fa-grin-stars:after,.fad.fa-face-grin-stars:after,.fad.fa-grin-stars:after{content:"\f587\f587"}.fa-duotone.fa-sigma:after,.fad.fa-sigma:after{content:"\f68b\f68b"}.fa-duotone.fa-camera-movie:after,.fad.fa-camera-movie:after{content:"\f8a9\f8a9"}.fa-duotone.fa-bong:after,.fad.fa-bong:after{content:"\f55c\f55c"}.fa-duotone.fa-clarinet:after,.fad.fa-clarinet:after{content:"\f8ad\f8ad"}.fa-duotone.fa-truck-flatbed:after,.fad.fa-truck-flatbed:after{content:"\e2b6\e2b6"}.fa-duotone.fa-pastafarianism:after,.fa-duotone.fa-spaghetti-monster-flying:after,.fad.fa-pastafarianism:after,.fad.fa-spaghetti-monster-flying:after{content:"\f67b\f67b"}.fa-duotone.fa-arrow-down-up-across-line:after,.fad.fa-arrow-down-up-across-line:after{content:"\e4af\e4af"}.fa-duotone.fa-arrows-rotate-reverse:after,.fad.fa-arrows-rotate-reverse:after{content:"\e630\e630"}.fa-duotone.fa-leaf-heart:after,.fad.fa-leaf-heart:after{content:"\f4cb\f4cb"}.fa-duotone.fa-house-building:after,.fad.fa-house-building:after{content:"\e1b1\e1b1"}.fa-duotone.fa-cheese-swiss:after,.fad.fa-cheese-swiss:after{content:"\f7f0\f7f0"}.fa-duotone.fa-spoon:after,.fa-duotone.fa-utensil-spoon:after,.fad.fa-spoon:after,.fad.fa-utensil-spoon:after{content:"\f2e5\f2e5"}.fa-duotone.fa-jar-wheat:after,.fad.fa-jar-wheat:after{content:"\e517\e517"}.fa-duotone.fa-envelopes-bulk:after,.fa-duotone.fa-mail-bulk:after,.fad.fa-envelopes-bulk:after,.fad.fa-mail-bulk:after{content:"\f674\f674"}.fa-duotone.fa-file-circle-exclamation:after,.fad.fa-file-circle-exclamation:after{content:"\e4eb\e4eb"}.fa-duotone.fa-bow-arrow:after,.fad.fa-bow-arrow:after{content:"\f6b9\f6b9"}.fa-duotone.fa-cart-xmark:after,.fad.fa-cart-xmark:after{content:"\e0dd\e0dd"}.fa-duotone.fa-hexagon-xmark:after,.fa-duotone.fa-times-hexagon:after,.fa-duotone.fa-xmark-hexagon:after,.fad.fa-hexagon-xmark:after,.fad.fa-times-hexagon:after,.fad.fa-xmark-hexagon:after{content:"\f2ee\f2ee"}.fa-duotone.fa-circle-h:after,.fa-duotone.fa-hospital-symbol:after,.fad.fa-circle-h:after,.fad.fa-hospital-symbol:after{content:"\f47e\f47e"}.fa-duotone.fa-merge:after,.fad.fa-merge:after{content:"\e526\e526"}.fa-duotone.fa-pager:after,.fad.fa-pager:after{content:"\f815\f815"}.fa-duotone.fa-cart-minus:after,.fad.fa-cart-minus:after{content:"\e0db\e0db"}.fa-duotone.fa-address-book:after,.fa-duotone.fa-contact-book:after,.fad.fa-address-book:after,.fad.fa-contact-book:after{content:"\f2b9\f2b9"}.fa-duotone.fa-pan-frying:after,.fad.fa-pan-frying:after{content:"\e42c\e42c"}.fa-duotone.fa-grid-3:after,.fa-duotone.fa-grid:after,.fad.fa-grid-3:after,.fad.fa-grid:after{content:"\e195\e195"}.fa-duotone.fa-football-helmet:after,.fad.fa-football-helmet:after{content:"\f44f\f44f"}.fa-duotone.fa-hand-love:after,.fad.fa-hand-love:after{content:"\e1a5\e1a5"}.fa-duotone.fa-trees:after,.fad.fa-trees:after{content:"\f724\f724"}.fa-duotone.fa-strikethrough:after,.fad.fa-strikethrough:after{content:"\f0cc\f0cc"}.fa-duotone.fa-page:after,.fad.fa-page:after{content:"\e428\e428"}.fa-duotone.fa-k:after,.fad.fa-k:after{content:"\4b\4b"}.fa-duotone.fa-diagram-previous:after,.fad.fa-diagram-previous:after{content:"\e478\e478"}.fa-duotone.fa-gauge-min:after,.fa-duotone.fa-tachometer-alt-slowest:after,.fad.fa-gauge-min:after,.fad.fa-tachometer-alt-slowest:after{content:"\f628\f628"}.fa-duotone.fa-folder-grid:after,.fad.fa-folder-grid:after{content:"\e188\e188"}.fa-duotone.fa-eggplant:after,.fad.fa-eggplant:after{content:"\e16c\e16c"}.fa-duotone.fa-excavator:after,.fad.fa-excavator:after{content:"\e656\e656"}.fa-duotone.fa-ram:after,.fad.fa-ram:after{content:"\f70a\f70a"}.fa-duotone.fa-landmark-flag:after,.fad.fa-landmark-flag:after{content:"\e51c\e51c"}.fa-duotone.fa-lips:after,.fad.fa-lips:after{content:"\f600\f600"}.fa-duotone.fa-pencil-alt:after,.fa-duotone.fa-pencil:after,.fad.fa-pencil-alt:after,.fad.fa-pencil:after{content:"\f303\f303"}.fa-duotone.fa-backward:after,.fad.fa-backward:after{content:"\f04a\f04a"}.fa-duotone.fa-caret-right:after,.fad.fa-caret-right:after{content:"\f0da\f0da"}.fa-duotone.fa-comments:after,.fad.fa-comments:after{content:"\f086\f086"}.fa-duotone.fa-file-clipboard:after,.fa-duotone.fa-paste:after,.fad.fa-file-clipboard:after,.fad.fa-paste:after{content:"\f0ea\f0ea"}.fa-duotone.fa-desktop-arrow-down:after,.fad.fa-desktop-arrow-down:after{content:"\e155\e155"}.fa-duotone.fa-code-pull-request:after,.fad.fa-code-pull-request:after{content:"\e13c\e13c"}.fa-duotone.fa-pumpkin:after,.fad.fa-pumpkin:after{content:"\f707\f707"}.fa-duotone.fa-clipboard-list:after,.fad.fa-clipboard-list:after{content:"\f46d\f46d"}.fa-duotone.fa-pen-field:after,.fad.fa-pen-field:after{content:"\e211\e211"}.fa-duotone.fa-blueberries:after,.fad.fa-blueberries:after{content:"\e2e8\e2e8"}.fa-duotone.fa-truck-loading:after,.fa-duotone.fa-truck-ramp-box:after,.fad.fa-truck-loading:after,.fad.fa-truck-ramp-box:after{content:"\f4de\f4de"}.fa-duotone.fa-note:after,.fad.fa-note:after{content:"\e1ff\e1ff"}.fa-duotone.fa-arrow-down-to-square:after,.fad.fa-arrow-down-to-square:after{content:"\e096\e096"}.fa-duotone.fa-user-check:after,.fad.fa-user-check:after{content:"\f4fc\f4fc"}.fa-duotone.fa-cloud-xmark:after,.fad.fa-cloud-xmark:after{content:"\e35f\e35f"}.fa-duotone.fa-vial-virus:after,.fad.fa-vial-virus:after{content:"\e597\e597"}.fa-duotone.fa-book-alt:after,.fa-duotone.fa-book-blank:after,.fad.fa-book-alt:after,.fad.fa-book-blank:after{content:"\f5d9\f5d9"}.fa-duotone.fa-golf-flag-hole:after,.fad.fa-golf-flag-hole:after{content:"\e3ac\e3ac"}.fa-duotone.fa-comment-alt-arrow-down:after,.fa-duotone.fa-message-arrow-down:after,.fad.fa-comment-alt-arrow-down:after,.fad.fa-message-arrow-down:after{content:"\e1db\e1db"}.fa-duotone.fa-face-unamused:after,.fad.fa-face-unamused:after{content:"\e39f\e39f"}.fa-duotone.fa-sheet-plastic:after,.fad.fa-sheet-plastic:after{content:"\e571\e571"}.fa-duotone.fa-circle-9:after,.fad.fa-circle-9:after{content:"\e0f6\e0f6"}.fa-duotone.fa-blog:after,.fad.fa-blog:after{content:"\f781\f781"}.fa-duotone.fa-user-ninja:after,.fad.fa-user-ninja:after{content:"\f504\f504"}.fa-duotone.fa-pencil-slash:after,.fad.fa-pencil-slash:after{content:"\e215\e215"}.fa-duotone.fa-bowling-pins:after,.fad.fa-bowling-pins:after{content:"\f437\f437"}.fa-duotone.fa-person-arrow-up-from-line:after,.fad.fa-person-arrow-up-from-line:after{content:"\e539\e539"}.fa-duotone.fa-down-right:after,.fad.fa-down-right:after{content:"\e16b\e16b"}.fa-duotone.fa-scroll-torah:after,.fa-duotone.fa-torah:after,.fad.fa-scroll-torah:after,.fad.fa-torah:after{content:"\f6a0\f6a0"}.fa-duotone.fa-webhook:after,.fad.fa-webhook:after{content:"\e5d5\e5d5"}.fa-duotone.fa-blinds-open:after,.fad.fa-blinds-open:after{content:"\f8fc\f8fc"}.fa-duotone.fa-fence:after,.fad.fa-fence:after{content:"\e303\e303"}.fa-duotone.fa-arrow-alt-up:after,.fa-duotone.fa-up:after,.fad.fa-arrow-alt-up:after,.fad.fa-up:after{content:"\f357\f357"}.fa-duotone.fa-broom-ball:after,.fa-duotone.fa-quidditch-broom-ball:after,.fa-duotone.fa-quidditch:after,.fad.fa-broom-ball:after,.fad.fa-quidditch-broom-ball:after,.fad.fa-quidditch:after{content:"\f458\f458"}.fa-duotone.fa-drumstick:after,.fad.fa-drumstick:after{content:"\f6d6\f6d6"}.fa-duotone.fa-square-v:after,.fad.fa-square-v:after{content:"\e284\e284"}.fa-duotone.fa-face-awesome:after,.fa-duotone.fa-gave-dandy:after,.fad.fa-face-awesome:after,.fad.fa-gave-dandy:after{content:"\e409\e409"}.fa-duotone.fa-dial-off:after,.fad.fa-dial-off:after{content:"\e162\e162"}.fa-duotone.fa-toggle-off:after,.fad.fa-toggle-off:after{content:"\f204\f204"}.fa-duotone.fa-face-smile-horns:after,.fad.fa-face-smile-horns:after{content:"\e391\e391"}.fa-duotone.fa-archive:after,.fa-duotone.fa-box-archive:after,.fad.fa-archive:after,.fad.fa-box-archive:after{content:"\f187\f187"}.fa-duotone.fa-grapes:after,.fad.fa-grapes:after{content:"\e306\e306"}.fa-duotone.fa-person-drowning:after,.fad.fa-person-drowning:after{content:"\e545\e545"}.fa-duotone.fa-dial-max:after,.fad.fa-dial-max:after{content:"\e15e\e15e"}.fa-duotone.fa-circle-m:after,.fad.fa-circle-m:after{content:"\e115\e115"}.fa-duotone.fa-calendar-image:after,.fad.fa-calendar-image:after{content:"\e0d4\e0d4"}.fa-duotone.fa-caret-circle-down:after,.fa-duotone.fa-circle-caret-down:after,.fad.fa-caret-circle-down:after,.fad.fa-circle-caret-down:after{content:"\f32d\f32d"}.fa-duotone.fa-arrow-down-9-1:after,.fa-duotone.fa-sort-numeric-desc:after,.fa-duotone.fa-sort-numeric-down-alt:after,.fad.fa-arrow-down-9-1:after,.fad.fa-sort-numeric-desc:after,.fad.fa-sort-numeric-down-alt:after{content:"\f886\f886"}.fa-duotone.fa-face-grin-tongue-squint:after,.fa-duotone.fa-grin-tongue-squint:after,.fad.fa-face-grin-tongue-squint:after,.fad.fa-grin-tongue-squint:after{content:"\f58a\f58a"}.fa-duotone.fa-shish-kebab:after,.fad.fa-shish-kebab:after{content:"\f821\f821"}.fa-duotone.fa-spray-can:after,.fad.fa-spray-can:after{content:"\f5bd\f5bd"}.fa-duotone.fa-alarm-snooze:after,.fad.fa-alarm-snooze:after{content:"\f845\f845"}.fa-duotone.fa-scarecrow:after,.fad.fa-scarecrow:after{content:"\f70d\f70d"}.fa-duotone.fa-truck-monster:after,.fad.fa-truck-monster:after{content:"\f63b\f63b"}.fa-duotone.fa-gift-card:after,.fad.fa-gift-card:after{content:"\f663\f663"}.fa-duotone.fa-w:after,.fad.fa-w:after{content:"\57\57"}.fa-duotone.fa-code-pull-request-draft:after,.fad.fa-code-pull-request-draft:after{content:"\e3fa\e3fa"}.fa-duotone.fa-square-b:after,.fad.fa-square-b:after{content:"\e264\e264"}.fa-duotone.fa-elephant:after,.fad.fa-elephant:after{content:"\f6da\f6da"}.fa-duotone.fa-earth-africa:after,.fa-duotone.fa-globe-africa:after,.fad.fa-earth-africa:after,.fad.fa-globe-africa:after{content:"\f57c\f57c"}.fa-duotone.fa-rainbow:after,.fad.fa-rainbow:after{content:"\f75b\f75b"}.fa-duotone.fa-circle-notch:after,.fad.fa-circle-notch:after{content:"\f1ce\f1ce"}.fa-duotone.fa-tablet-alt:after,.fa-duotone.fa-tablet-screen-button:after,.fad.fa-tablet-alt:after,.fad.fa-tablet-screen-button:after{content:"\f3fa\f3fa"}.fa-duotone.fa-paw:after,.fad.fa-paw:after{content:"\f1b0\f1b0"}.fa-duotone.fa-message-question:after,.fad.fa-message-question:after{content:"\e1e3\e1e3"}.fa-duotone.fa-cloud:after,.fad.fa-cloud:after{content:"\f0c2\f0c2"}.fa-duotone.fa-trowel-bricks:after,.fad.fa-trowel-bricks:after{content:"\e58a\e58a"}.fa-duotone.fa-square-3:after,.fad.fa-square-3:after{content:"\e258\e258"}.fa-duotone.fa-face-flushed:after,.fa-duotone.fa-flushed:after,.fad.fa-face-flushed:after,.fad.fa-flushed:after{content:"\f579\f579"}.fa-duotone.fa-hospital-user:after,.fad.fa-hospital-user:after{content:"\f80d\f80d"}.fa-duotone.fa-microwave:after,.fad.fa-microwave:after{content:"\e01b\e01b"}.fa-duotone.fa-chf-sign:after,.fad.fa-chf-sign:after{content:"\e602\e602"}.fa-duotone.fa-tent-arrow-left-right:after,.fad.fa-tent-arrow-left-right:after{content:"\e57f\e57f"}.fa-duotone.fa-cart-circle-arrow-up:after,.fad.fa-cart-circle-arrow-up:after{content:"\e3f0\e3f0"}.fa-duotone.fa-trash-clock:after,.fad.fa-trash-clock:after{content:"\e2b0\e2b0"}.fa-duotone.fa-gavel:after,.fa-duotone.fa-legal:after,.fad.fa-gavel:after,.fad.fa-legal:after{content:"\f0e3\f0e3"}.fa-duotone.fa-sprinkler-ceiling:after,.fad.fa-sprinkler-ceiling:after{content:"\e44c\e44c"}.fa-duotone.fa-browsers:after,.fad.fa-browsers:after{content:"\e0cb\e0cb"}.fa-duotone.fa-trillium:after,.fad.fa-trillium:after{content:"\e588\e588"}.fa-duotone.fa-music-slash:after,.fad.fa-music-slash:after{content:"\f8d1\f8d1"}.fa-duotone.fa-truck-ramp:after,.fad.fa-truck-ramp:after{content:"\f4e0\f4e0"}.fa-duotone.fa-binoculars:after,.fad.fa-binoculars:after{content:"\f1e5\f1e5"}.fa-duotone.fa-microphone-slash:after,.fad.fa-microphone-slash:after{content:"\f131\f131"}.fa-duotone.fa-box-tissue:after,.fad.fa-box-tissue:after{content:"\e05b\e05b"}.fa-duotone.fa-circle-c:after,.fad.fa-circle-c:after{content:"\e101\e101"}.fa-duotone.fa-star-christmas:after,.fad.fa-star-christmas:after{content:"\f7d4\f7d4"}.fa-duotone.fa-chart-bullet:after,.fad.fa-chart-bullet:after{content:"\e0e1\e0e1"}.fa-duotone.fa-motorcycle:after,.fad.fa-motorcycle:after{content:"\f21c\f21c"}.fa-duotone.fa-tree-christmas:after,.fad.fa-tree-christmas:after{content:"\f7db\f7db"}.fa-duotone.fa-tire-flat:after,.fad.fa-tire-flat:after{content:"\f632\f632"}.fa-duotone.fa-sunglasses:after,.fad.fa-sunglasses:after{content:"\f892\f892"}.fa-duotone.fa-badge:after,.fad.fa-badge:after{content:"\f335\f335"}.fa-duotone.fa-comment-alt-edit:after,.fa-duotone.fa-message-edit:after,.fa-duotone.fa-message-pen:after,.fad.fa-comment-alt-edit:after,.fad.fa-message-edit:after,.fad.fa-message-pen:after{content:"\f4a4\f4a4"}.fa-duotone.fa-bell-concierge:after,.fa-duotone.fa-concierge-bell:after,.fad.fa-bell-concierge:after,.fad.fa-concierge-bell:after{content:"\f562\f562"}.fa-duotone.fa-pen-ruler:after,.fa-duotone.fa-pencil-ruler:after,.fad.fa-pen-ruler:after,.fad.fa-pencil-ruler:after{content:"\f5ae\f5ae"}.fa-duotone.fa-file-mp3:after,.fad.fa-file-mp3:after{content:"\e648\e648"}.fa-duotone.fa-arrow-progress:after,.fad.fa-arrow-progress:after{content:"\e5df\e5df"}.fa-duotone.fa-chess-rook-alt:after,.fa-duotone.fa-chess-rook-piece:after,.fad.fa-chess-rook-alt:after,.fad.fa-chess-rook-piece:after{content:"\f448\f448"}.fa-duotone.fa-square-root:after,.fad.fa-square-root:after{content:"\f697\f697"}.fa-duotone.fa-album-collection-circle-plus:after,.fad.fa-album-collection-circle-plus:after{content:"\e48e\e48e"}.fa-duotone.fa-people-arrows-left-right:after,.fa-duotone.fa-people-arrows:after,.fad.fa-people-arrows-left-right:after,.fad.fa-people-arrows:after{content:"\e068\e068"}.fa-duotone.fa-sign-post:after,.fad.fa-sign-post:after{content:"\e624\e624"}.fa-duotone.fa-face-angry-horns:after,.fad.fa-face-angry-horns:after{content:"\e368\e368"}.fa-duotone.fa-mars-and-venus-burst:after,.fad.fa-mars-and-venus-burst:after{content:"\e523\e523"}.fa-duotone.fa-tombstone:after,.fad.fa-tombstone:after{content:"\f720\f720"}.fa-duotone.fa-caret-square-right:after,.fa-duotone.fa-square-caret-right:after,.fad.fa-caret-square-right:after,.fad.fa-square-caret-right:after{content:"\f152\f152"}.fa-duotone.fa-cut:after,.fa-duotone.fa-scissors:after,.fad.fa-cut:after,.fad.fa-scissors:after{content:"\f0c4\f0c4"}.fa-duotone.fa-list-music:after,.fad.fa-list-music:after{content:"\f8c9\f8c9"}.fa-duotone.fa-sun-plant-wilt:after,.fad.fa-sun-plant-wilt:after{content:"\e57a\e57a"}.fa-duotone.fa-toilets-portable:after,.fad.fa-toilets-portable:after{content:"\e584\e584"}.fa-duotone.fa-hockey-puck:after,.fad.fa-hockey-puck:after{content:"\f453\f453"}.fa-duotone.fa-mustache:after,.fad.fa-mustache:after{content:"\e5bc\e5bc"}.fa-duotone.fa-hyphen:after,.fad.fa-hyphen:after{content:"\2d\2d"}.fa-duotone.fa-table:after,.fad.fa-table:after{content:"\f0ce\f0ce"}.fa-duotone.fa-user-chef:after,.fad.fa-user-chef:after{content:"\e3d2\e3d2"}.fa-duotone.fa-comment-alt-image:after,.fa-duotone.fa-message-image:after,.fad.fa-comment-alt-image:after,.fad.fa-message-image:after{content:"\e1e0\e1e0"}.fa-duotone.fa-users-medical:after,.fad.fa-users-medical:after{content:"\f830\f830"}.fa-duotone.fa-sensor-alert:after,.fa-duotone.fa-sensor-triangle-exclamation:after,.fad.fa-sensor-alert:after,.fad.fa-sensor-triangle-exclamation:after{content:"\e029\e029"}.fa-duotone.fa-magnifying-glass-arrow-right:after,.fad.fa-magnifying-glass-arrow-right:after{content:"\e521\e521"}.fa-duotone.fa-digital-tachograph:after,.fa-duotone.fa-tachograph-digital:after,.fad.fa-digital-tachograph:after,.fad.fa-tachograph-digital:after{content:"\f566\f566"}.fa-duotone.fa-face-mask:after,.fad.fa-face-mask:after{content:"\e37f\e37f"}.fa-duotone.fa-pickleball:after,.fad.fa-pickleball:after{content:"\e435\e435"}.fa-duotone.fa-star-sharp-half:after,.fad.fa-star-sharp-half:after{content:"\e28c\e28c"}.fa-duotone.fa-users-slash:after,.fad.fa-users-slash:after{content:"\e073\e073"}.fa-duotone.fa-clover:after,.fad.fa-clover:after{content:"\e139\e139"}.fa-duotone.fa-meat:after,.fad.fa-meat:after{content:"\f814\f814"}.fa-duotone.fa-mail-reply:after,.fa-duotone.fa-reply:after,.fad.fa-mail-reply:after,.fad.fa-reply:after{content:"\f3e5\f3e5"}.fa-duotone.fa-star-and-crescent:after,.fad.fa-star-and-crescent:after{content:"\f699\f699"}.fa-duotone.fa-empty-set:after,.fad.fa-empty-set:after{content:"\f656\f656"}.fa-duotone.fa-house-fire:after,.fad.fa-house-fire:after{content:"\e50c\e50c"}.fa-duotone.fa-minus-square:after,.fa-duotone.fa-square-minus:after,.fad.fa-minus-square:after,.fad.fa-square-minus:after{content:"\f146\f146"}.fa-duotone.fa-helicopter:after,.fad.fa-helicopter:after{content:"\f533\f533"}.fa-duotone.fa-bird:after,.fad.fa-bird:after{content:"\e469\e469"}.fa-duotone.fa-compass:after,.fad.fa-compass:after{content:"\f14e\f14e"}.fa-duotone.fa-caret-square-down:after,.fa-duotone.fa-square-caret-down:after,.fad.fa-caret-square-down:after,.fad.fa-square-caret-down:after{content:"\f150\f150"}.fa-duotone.fa-heart-half-alt:after,.fa-duotone.fa-heart-half-stroke:after,.fad.fa-heart-half-alt:after,.fad.fa-heart-half-stroke:after{content:"\e1ac\e1ac"}.fa-duotone.fa-file-circle-question:after,.fad.fa-file-circle-question:after{content:"\e4ef\e4ef"}.fa-duotone.fa-truck-utensils:after,.fad.fa-truck-utensils:after{content:"\e628\e628"}.fa-duotone.fa-laptop-code:after,.fad.fa-laptop-code:after{content:"\f5fc\f5fc"}.fa-duotone.fa-joystick:after,.fad.fa-joystick:after{content:"\f8c5\f8c5"}.fa-duotone.fa-grill-fire:after,.fad.fa-grill-fire:after{content:"\e5a4\e5a4"}.fa-duotone.fa-rectangle-vertical-history:after,.fad.fa-rectangle-vertical-history:after{content:"\e237\e237"}.fa-duotone.fa-swatchbook:after,.fad.fa-swatchbook:after{content:"\f5c3\f5c3"}.fa-duotone.fa-prescription-bottle:after,.fad.fa-prescription-bottle:after{content:"\f485\f485"}.fa-duotone.fa-bars:after,.fa-duotone.fa-navicon:after,.fad.fa-bars:after,.fad.fa-navicon:after{content:"\f0c9\f0c9"}.fa-duotone.fa-keyboard-left:after,.fad.fa-keyboard-left:after{content:"\e1c3\e1c3"}.fa-duotone.fa-people-group:after,.fad.fa-people-group:after{content:"\e533\e533"}.fa-duotone.fa-hourglass-3:after,.fa-duotone.fa-hourglass-end:after,.fad.fa-hourglass-3:after,.fad.fa-hourglass-end:after{content:"\f253\f253"}.fa-duotone.fa-heart-broken:after,.fa-duotone.fa-heart-crack:after,.fad.fa-heart-broken:after,.fad.fa-heart-crack:after{content:"\f7a9\f7a9"}.fa-duotone.fa-face-beam-hand-over-mouth:after,.fad.fa-face-beam-hand-over-mouth:after{content:"\e47c\e47c"}.fa-duotone.fa-droplet-percent:after,.fa-duotone.fa-humidity:after,.fad.fa-droplet-percent:after,.fad.fa-humidity:after{content:"\f750\f750"}.fa-duotone.fa-external-link-square-alt:after,.fa-duotone.fa-square-up-right:after,.fad.fa-external-link-square-alt:after,.fad.fa-square-up-right:after{content:"\f360\f360"}.fa-duotone.fa-face-kiss-beam:after,.fa-duotone.fa-kiss-beam:after,.fad.fa-face-kiss-beam:after,.fad.fa-kiss-beam:after{content:"\f597\f597"}.fa-duotone.fa-corn:after,.fad.fa-corn:after{content:"\f6c7\f6c7"}.fa-duotone.fa-roller-coaster:after,.fad.fa-roller-coaster:after{content:"\e324\e324"}.fa-duotone.fa-photo-film-music:after,.fad.fa-photo-film-music:after{content:"\e228\e228"}.fa-duotone.fa-radar:after,.fad.fa-radar:after{content:"\e024\e024"}.fa-duotone.fa-sickle:after,.fad.fa-sickle:after{content:"\f822\f822"}.fa-duotone.fa-film:after,.fad.fa-film:after{content:"\f008\f008"}.fa-duotone.fa-coconut:after,.fad.fa-coconut:after{content:"\e2f6\e2f6"}.fa-duotone.fa-ruler-horizontal:after,.fad.fa-ruler-horizontal:after{content:"\f547\f547"}.fa-duotone.fa-shield-cross:after,.fad.fa-shield-cross:after{content:"\f712\f712"}.fa-duotone.fa-cassette-tape:after,.fad.fa-cassette-tape:after{content:"\f8ab\f8ab"}.fa-duotone.fa-square-terminal:after,.fad.fa-square-terminal:after{content:"\e32a\e32a"}.fa-duotone.fa-people-robbery:after,.fad.fa-people-robbery:after{content:"\e536\e536"}.fa-duotone.fa-lightbulb:after,.fad.fa-lightbulb:after{content:"\f0eb\f0eb"}.fa-duotone.fa-caret-left:after,.fad.fa-caret-left:after{content:"\f0d9\f0d9"}.fa-duotone.fa-comment-middle:after,.fad.fa-comment-middle:after{content:"\e149\e149"}.fa-duotone.fa-trash-can-list:after,.fad.fa-trash-can-list:after{content:"\e2ab\e2ab"}.fa-duotone.fa-block:after,.fad.fa-block:after{content:"\e46a\e46a"}.fa-duotone.fa-circle-exclamation:after,.fa-duotone.fa-exclamation-circle:after,.fad.fa-circle-exclamation:after,.fad.fa-exclamation-circle:after{content:"\f06a\f06a"}.fa-duotone.fa-school-circle-xmark:after,.fad.fa-school-circle-xmark:after{content:"\e56d\e56d"}.fa-duotone.fa-arrow-right-from-bracket:after,.fa-duotone.fa-sign-out:after,.fad.fa-arrow-right-from-bracket:after,.fad.fa-sign-out:after{content:"\f08b\f08b"}.fa-duotone.fa-face-frown-slight:after,.fad.fa-face-frown-slight:after{content:"\e376\e376"}.fa-duotone.fa-chevron-circle-down:after,.fa-duotone.fa-circle-chevron-down:after,.fad.fa-chevron-circle-down:after,.fad.fa-circle-chevron-down:after{content:"\f13a\f13a"}.fa-duotone.fa-sidebar-flip:after,.fad.fa-sidebar-flip:after{content:"\e24f\e24f"}.fa-duotone.fa-unlock-alt:after,.fa-duotone.fa-unlock-keyhole:after,.fad.fa-unlock-alt:after,.fad.fa-unlock-keyhole:after{content:"\f13e\f13e"}.fa-duotone.fa-temperature-list:after,.fad.fa-temperature-list:after{content:"\e299\e299"}.fa-duotone.fa-cloud-showers-heavy:after,.fad.fa-cloud-showers-heavy:after{content:"\f740\f740"}.fa-duotone.fa-headphones-alt:after,.fa-duotone.fa-headphones-simple:after,.fad.fa-headphones-alt:after,.fad.fa-headphones-simple:after{content:"\f58f\f58f"}.fa-duotone.fa-sitemap:after,.fad.fa-sitemap:after{content:"\f0e8\f0e8"}.fa-duotone.fa-pipe-section:after,.fad.fa-pipe-section:after{content:"\e438\e438"}.fa-duotone.fa-space-station-moon-alt:after,.fa-duotone.fa-space-station-moon-construction:after,.fad.fa-space-station-moon-alt:after,.fad.fa-space-station-moon-construction:after{content:"\e034\e034"}.fa-duotone.fa-circle-dollar-to-slot:after,.fa-duotone.fa-donate:after,.fad.fa-circle-dollar-to-slot:after,.fad.fa-donate:after{content:"\f4b9\f4b9"}.fa-duotone.fa-memory:after,.fad.fa-memory:after{content:"\f538\f538"}.fa-duotone.fa-face-sleeping:after,.fad.fa-face-sleeping:after{content:"\e38d\e38d"}.fa-duotone.fa-road-spikes:after,.fad.fa-road-spikes:after{content:"\e568\e568"}.fa-duotone.fa-fire-burner:after,.fad.fa-fire-burner:after{content:"\e4f1\e4f1"}.fa-duotone.fa-squirrel:after,.fad.fa-squirrel:after{content:"\f71a\f71a"}.fa-duotone.fa-arrow-to-top:after,.fa-duotone.fa-arrow-up-to-line:after,.fad.fa-arrow-to-top:after,.fad.fa-arrow-up-to-line:after{content:"\f341\f341"}.fa-duotone.fa-flag:after,.fad.fa-flag:after{content:"\f024\f024"}.fa-duotone.fa-face-cowboy-hat:after,.fad.fa-face-cowboy-hat:after{content:"\e36e\e36e"}.fa-duotone.fa-hanukiah:after,.fad.fa-hanukiah:after{content:"\f6e6\f6e6"}.fa-duotone.fa-chart-scatter-3d:after,.fad.fa-chart-scatter-3d:after{content:"\e0e8\e0e8"}.fa-duotone.fa-display-chart-up:after,.fad.fa-display-chart-up:after{content:"\e5e3\e5e3"}.fa-duotone.fa-square-code:after,.fad.fa-square-code:after{content:"\e267\e267"}.fa-duotone.fa-feather:after,.fad.fa-feather:after{content:"\f52d\f52d"}.fa-duotone.fa-volume-down:after,.fa-duotone.fa-volume-low:after,.fad.fa-volume-down:after,.fad.fa-volume-low:after{content:"\f027\f027"}.fa-duotone.fa-times-to-slot:after,.fa-duotone.fa-vote-nay:after,.fa-duotone.fa-xmark-to-slot:after,.fad.fa-times-to-slot:after,.fad.fa-vote-nay:after,.fad.fa-xmark-to-slot:after{content:"\f771\f771"}.fa-duotone.fa-box-alt:after,.fa-duotone.fa-box-taped:after,.fad.fa-box-alt:after,.fad.fa-box-taped:after{content:"\f49a\f49a"}.fa-duotone.fa-comment-slash:after,.fad.fa-comment-slash:after{content:"\f4b3\f4b3"}.fa-duotone.fa-swords:after,.fad.fa-swords:after{content:"\f71d\f71d"}.fa-duotone.fa-cloud-sun-rain:after,.fad.fa-cloud-sun-rain:after{content:"\f743\f743"}.fa-duotone.fa-album:after,.fad.fa-album:after{content:"\f89f\f89f"}.fa-duotone.fa-circle-n:after,.fad.fa-circle-n:after{content:"\e118\e118"}.fa-duotone.fa-compress:after,.fad.fa-compress:after{content:"\f066\f066"}.fa-duotone.fa-wheat-alt:after,.fa-duotone.fa-wheat-awn:after,.fad.fa-wheat-alt:after,.fad.fa-wheat-awn:after{content:"\e2cd\e2cd"}.fa-duotone.fa-ankh:after,.fad.fa-ankh:after{content:"\f644\f644"}.fa-duotone.fa-hands-holding-child:after,.fad.fa-hands-holding-child:after{content:"\e4fa\e4fa"}.fa-duotone.fa-asterisk:after,.fad.fa-asterisk:after{content:"\2a\2a"}.fa-duotone.fa-key-skeleton-left-right:after,.fad.fa-key-skeleton-left-right:after{content:"\e3b4\e3b4"}.fa-duotone.fa-comment-lines:after,.fad.fa-comment-lines:after{content:"\f4b0\f4b0"}.fa-duotone.fa-luchador-mask:after,.fa-duotone.fa-luchador:after,.fa-duotone.fa-mask-luchador:after,.fad.fa-luchador-mask:after,.fad.fa-luchador:after,.fad.fa-mask-luchador:after{content:"\f455\f455"}.fa-duotone.fa-check-square:after,.fa-duotone.fa-square-check:after,.fad.fa-check-square:after,.fad.fa-square-check:after{content:"\f14a\f14a"}.fa-duotone.fa-shredder:after,.fad.fa-shredder:after{content:"\f68a\f68a"}.fa-duotone.fa-book-open-alt:after,.fa-duotone.fa-book-open-cover:after,.fad.fa-book-open-alt:after,.fad.fa-book-open-cover:after{content:"\e0c0\e0c0"}.fa-duotone.fa-sandwich:after,.fad.fa-sandwich:after{content:"\f81f\f81f"}.fa-duotone.fa-peseta-sign:after,.fad.fa-peseta-sign:after{content:"\e221\e221"}.fa-duotone.fa-parking-slash:after,.fa-duotone.fa-square-parking-slash:after,.fad.fa-parking-slash:after,.fad.fa-square-parking-slash:after{content:"\f617\f617"}.fa-duotone.fa-train-tunnel:after,.fad.fa-train-tunnel:after{content:"\e454\e454"}.fa-duotone.fa-header:after,.fa-duotone.fa-heading:after,.fad.fa-header:after,.fad.fa-heading:after{content:"\f1dc\f1dc"}.fa-duotone.fa-ghost:after,.fad.fa-ghost:after{content:"\f6e2\f6e2"}.fa-duotone.fa-face-anguished:after,.fad.fa-face-anguished:after{content:"\e369\e369"}.fa-duotone.fa-hockey-sticks:after,.fad.fa-hockey-sticks:after{content:"\f454\f454"}.fa-duotone.fa-abacus:after,.fad.fa-abacus:after{content:"\f640\f640"}.fa-duotone.fa-film-alt:after,.fa-duotone.fa-film-simple:after,.fad.fa-film-alt:after,.fad.fa-film-simple:after{content:"\f3a0\f3a0"}.fa-duotone.fa-list-squares:after,.fa-duotone.fa-list:after,.fad.fa-list-squares:after,.fad.fa-list:after{content:"\f03a\f03a"}.fa-duotone.fa-tree-palm:after,.fad.fa-tree-palm:after{content:"\f82b\f82b"}.fa-duotone.fa-phone-square-alt:after,.fa-duotone.fa-square-phone-flip:after,.fad.fa-phone-square-alt:after,.fad.fa-square-phone-flip:after{content:"\f87b\f87b"}.fa-duotone.fa-cart-plus:after,.fad.fa-cart-plus:after{content:"\f217\f217"}.fa-duotone.fa-gamepad:after,.fad.fa-gamepad:after{content:"\f11b\f11b"}.fa-duotone.fa-border-center-v:after,.fad.fa-border-center-v:after{content:"\f89d\f89d"}.fa-duotone.fa-circle-dot:after,.fa-duotone.fa-dot-circle:after,.fad.fa-circle-dot:after,.fad.fa-dot-circle:after{content:"\f192\f192"}.fa-duotone.fa-clipboard-medical:after,.fad.fa-clipboard-medical:after{content:"\e133\e133"}.fa-duotone.fa-dizzy:after,.fa-duotone.fa-face-dizzy:after,.fad.fa-dizzy:after,.fad.fa-face-dizzy:after{content:"\f567\f567"}.fa-duotone.fa-egg:after,.fad.fa-egg:after{content:"\f7fb\f7fb"}.fa-duotone.fa-arrow-alt-to-top:after,.fa-duotone.fa-up-to-line:after,.fad.fa-arrow-alt-to-top:after,.fad.fa-up-to-line:after{content:"\f34d\f34d"}.fa-duotone.fa-house-medical-circle-xmark:after,.fad.fa-house-medical-circle-xmark:after{content:"\e513\e513"}.fa-duotone.fa-watch-fitness:after,.fad.fa-watch-fitness:after{content:"\f63e\f63e"}.fa-duotone.fa-clock-nine-thirty:after,.fad.fa-clock-nine-thirty:after{content:"\e34d\e34d"}.fa-duotone.fa-campground:after,.fad.fa-campground:after{content:"\f6bb\f6bb"}.fa-duotone.fa-folder-plus:after,.fad.fa-folder-plus:after{content:"\f65e\f65e"}.fa-duotone.fa-jug:after,.fad.fa-jug:after{content:"\f8c6\f8c6"}.fa-duotone.fa-futbol-ball:after,.fa-duotone.fa-futbol:after,.fa-duotone.fa-soccer-ball:after,.fad.fa-futbol-ball:after,.fad.fa-futbol:after,.fad.fa-soccer-ball:after{content:"\f1e3\f1e3"}.fa-duotone.fa-snow-blowing:after,.fad.fa-snow-blowing:after{content:"\f761\f761"}.fa-duotone.fa-paint-brush:after,.fa-duotone.fa-paintbrush:after,.fad.fa-paint-brush:after,.fad.fa-paintbrush:after{content:"\f1fc\f1fc"}.fa-duotone.fa-lock:after,.fad.fa-lock:after{content:"\f023\f023"}.fa-duotone.fa-arrow-down-from-line:after,.fa-duotone.fa-arrow-from-top:after,.fad.fa-arrow-down-from-line:after,.fad.fa-arrow-from-top:after{content:"\f345\f345"}.fa-duotone.fa-gas-pump:after,.fad.fa-gas-pump:after{content:"\f52f\f52f"}.fa-duotone.fa-signal-alt-slash:after,.fa-duotone.fa-signal-bars-slash:after,.fad.fa-signal-alt-slash:after,.fad.fa-signal-bars-slash:after{content:"\f694\f694"}.fa-duotone.fa-monkey:after,.fad.fa-monkey:after{content:"\f6fb\f6fb"}.fa-duotone.fa-pro:after,.fa-duotone.fa-rectangle-pro:after,.fad.fa-pro:after,.fad.fa-rectangle-pro:after{content:"\e235\e235"}.fa-duotone.fa-house-night:after,.fad.fa-house-night:after{content:"\e010\e010"}.fa-duotone.fa-hot-tub-person:after,.fa-duotone.fa-hot-tub:after,.fad.fa-hot-tub-person:after,.fad.fa-hot-tub:after{content:"\f593\f593"}.fa-duotone.fa-globe-pointer:after,.fad.fa-globe-pointer:after{content:"\e60e\e60e"}.fa-duotone.fa-blanket:after,.fad.fa-blanket:after{content:"\f498\f498"}.fa-duotone.fa-map-location:after,.fa-duotone.fa-map-marked:after,.fad.fa-map-location:after,.fad.fa-map-marked:after{content:"\f59f\f59f"}.fa-duotone.fa-house-flood-water:after,.fad.fa-house-flood-water:after{content:"\e50e\e50e"}.fa-duotone.fa-comments-question-check:after,.fad.fa-comments-question-check:after{content:"\e14f\e14f"}.fa-duotone.fa-tree:after,.fad.fa-tree:after{content:"\f1bb\f1bb"}.fa-duotone.fa-arrows-cross:after,.fad.fa-arrows-cross:after{content:"\e0a2\e0a2"}.fa-duotone.fa-backpack:after,.fad.fa-backpack:after{content:"\f5d4\f5d4"}.fa-duotone.fa-square-small:after,.fad.fa-square-small:after{content:"\e27e\e27e"}.fa-duotone.fa-folder-arrow-up:after,.fa-duotone.fa-folder-upload:after,.fad.fa-folder-arrow-up:after,.fad.fa-folder-upload:after{content:"\e054\e054"}.fa-duotone.fa-bridge-lock:after,.fad.fa-bridge-lock:after{content:"\e4cc\e4cc"}.fa-duotone.fa-crosshairs-simple:after,.fad.fa-crosshairs-simple:after{content:"\e59f\e59f"}.fa-duotone.fa-sack-dollar:after,.fad.fa-sack-dollar:after{content:"\f81d\f81d"}.fa-duotone.fa-edit:after,.fa-duotone.fa-pen-to-square:after,.fad.fa-edit:after,.fad.fa-pen-to-square:after{content:"\f044\f044"}.fa-duotone.fa-sliders-h-square:after,.fa-duotone.fa-square-sliders:after,.fad.fa-sliders-h-square:after,.fad.fa-square-sliders:after{content:"\f3f0\f3f0"}.fa-duotone.fa-car-side:after,.fad.fa-car-side:after{content:"\f5e4\f5e4"}.fa-duotone.fa-comment-middle-top-alt:after,.fa-duotone.fa-message-middle-top:after,.fad.fa-comment-middle-top-alt:after,.fad.fa-message-middle-top:after{content:"\e1e2\e1e2"}.fa-duotone.fa-lightbulb-on:after,.fad.fa-lightbulb-on:after{content:"\f672\f672"}.fa-duotone.fa-knife:after,.fa-duotone.fa-utensil-knife:after,.fad.fa-knife:after,.fad.fa-utensil-knife:after{content:"\f2e4\f2e4"}.fa-duotone.fa-share-alt:after,.fa-duotone.fa-share-nodes:after,.fad.fa-share-alt:after,.fad.fa-share-nodes:after{content:"\f1e0\f1e0"}.fa-duotone.fa-display-chart-up-circle-dollar:after,.fad.fa-display-chart-up-circle-dollar:after{content:"\e5e6\e5e6"}.fa-duotone.fa-wave-sine:after,.fad.fa-wave-sine:after{content:"\f899\f899"}.fa-duotone.fa-heart-circle-minus:after,.fad.fa-heart-circle-minus:after{content:"\e4ff\e4ff"}.fa-duotone.fa-circle-w:after,.fad.fa-circle-w:after{content:"\e12c\e12c"}.fa-duotone.fa-calendar-circle:after,.fa-duotone.fa-circle-calendar:after,.fad.fa-calendar-circle:after,.fad.fa-circle-calendar:after{content:"\e102\e102"}.fa-duotone.fa-hourglass-2:after,.fa-duotone.fa-hourglass-half:after,.fad.fa-hourglass-2:after,.fad.fa-hourglass-half:after{content:"\f252\f252"}.fa-duotone.fa-microscope:after,.fad.fa-microscope:after{content:"\f610\f610"}.fa-duotone.fa-sunset:after,.fad.fa-sunset:after{content:"\f767\f767"}.fa-duotone.fa-sink:after,.fad.fa-sink:after{content:"\e06d\e06d"}.fa-duotone.fa-calendar-exclamation:after,.fad.fa-calendar-exclamation:after{content:"\f334\f334"}.fa-duotone.fa-truck-container-empty:after,.fad.fa-truck-container-empty:after{content:"\e2b5\e2b5"}.fa-duotone.fa-hand-heart:after,.fad.fa-hand-heart:after{content:"\f4bc\f4bc"}.fa-duotone.fa-bag-shopping:after,.fa-duotone.fa-shopping-bag:after,.fad.fa-bag-shopping:after,.fad.fa-shopping-bag:after{content:"\f290\f290"}.fa-duotone.fa-arrow-down-z-a:after,.fa-duotone.fa-sort-alpha-desc:after,.fa-duotone.fa-sort-alpha-down-alt:after,.fad.fa-arrow-down-z-a:after,.fad.fa-sort-alpha-desc:after,.fad.fa-sort-alpha-down-alt:after{content:"\f881\f881"}.fa-duotone.fa-mitten:after,.fad.fa-mitten:after{content:"\f7b5\f7b5"}.fa-duotone.fa-reply-clock:after,.fa-duotone.fa-reply-time:after,.fad.fa-reply-clock:after,.fad.fa-reply-time:after{content:"\e239\e239"}.fa-duotone.fa-person-rays:after,.fad.fa-person-rays:after{content:"\e54d\e54d"}.fa-duotone.fa-arrow-alt-right:after,.fa-duotone.fa-right:after,.fad.fa-arrow-alt-right:after,.fad.fa-right:after{content:"\f356\f356"}.fa-duotone.fa-circle-f:after,.fad.fa-circle-f:after{content:"\e10e\e10e"}.fa-duotone.fa-users:after,.fad.fa-users:after{content:"\f0c0\f0c0"}.fa-duotone.fa-face-pleading:after,.fad.fa-face-pleading:after{content:"\e386\e386"}.fa-duotone.fa-eye-slash:after,.fad.fa-eye-slash:after{content:"\f070\f070"}.fa-duotone.fa-flask-vial:after,.fad.fa-flask-vial:after{content:"\e4f3\e4f3"}.fa-duotone.fa-police-box:after,.fad.fa-police-box:after{content:"\e021\e021"}.fa-duotone.fa-cucumber:after,.fad.fa-cucumber:after{content:"\e401\e401"}.fa-duotone.fa-head-side-brain:after,.fad.fa-head-side-brain:after{content:"\f808\f808"}.fa-duotone.fa-hand-paper:after,.fa-duotone.fa-hand:after,.fad.fa-hand-paper:after,.fad.fa-hand:after{content:"\f256\f256"}.fa-duotone.fa-biking-mountain:after,.fa-duotone.fa-person-biking-mountain:after,.fad.fa-biking-mountain:after,.fad.fa-person-biking-mountain:after{content:"\f84b\f84b"}.fa-duotone.fa-utensils-slash:after,.fad.fa-utensils-slash:after{content:"\e464\e464"}.fa-duotone.fa-print-magnifying-glass:after,.fa-duotone.fa-print-search:after,.fad.fa-print-magnifying-glass:after,.fad.fa-print-search:after{content:"\f81a\f81a"}.fa-duotone.fa-turn-right:after,.fad.fa-turn-right:after{content:"\e639\e639"}.fa-duotone.fa-folder-bookmark:after,.fad.fa-folder-bookmark:after{content:"\e186\e186"}.fa-duotone.fa-arrow-turn-left-down:after,.fad.fa-arrow-turn-left-down:after{content:"\e633\e633"}.fa-duotone.fa-om:after,.fad.fa-om:after{content:"\f679\f679"}.fa-duotone.fa-pi:after,.fad.fa-pi:after{content:"\f67e\f67e"}.fa-duotone.fa-flask-potion:after,.fa-duotone.fa-flask-round-potion:after,.fad.fa-flask-potion:after,.fad.fa-flask-round-potion:after{content:"\f6e1\f6e1"}.fa-duotone.fa-face-shush:after,.fad.fa-face-shush:after{content:"\e38c\e38c"}.fa-duotone.fa-worm:after,.fad.fa-worm:after{content:"\e599\e599"}.fa-duotone.fa-house-circle-xmark:after,.fad.fa-house-circle-xmark:after{content:"\e50b\e50b"}.fa-duotone.fa-plug:after,.fad.fa-plug:after{content:"\f1e6\f1e6"}.fa-duotone.fa-calendar-circle-exclamation:after,.fad.fa-calendar-circle-exclamation:after{content:"\e46e\e46e"}.fa-duotone.fa-square-i:after,.fad.fa-square-i:after{content:"\e272\e272"}.fa-duotone.fa-chevron-up:after,.fad.fa-chevron-up:after{content:"\f077\f077"}.fa-duotone.fa-face-saluting:after,.fad.fa-face-saluting:after{content:"\e484\e484"}.fa-duotone.fa-gauge-simple-low:after,.fa-duotone.fa-tachometer-slow:after,.fad.fa-gauge-simple-low:after,.fad.fa-tachometer-slow:after{content:"\f62c\f62c"}.fa-duotone.fa-face-persevering:after,.fad.fa-face-persevering:after{content:"\e385\e385"}.fa-duotone.fa-camera-circle:after,.fa-duotone.fa-circle-camera:after,.fad.fa-camera-circle:after,.fad.fa-circle-camera:after{content:"\e103\e103"}.fa-duotone.fa-hand-spock:after,.fad.fa-hand-spock:after{content:"\f259\f259"}.fa-duotone.fa-spider-web:after,.fad.fa-spider-web:after{content:"\f719\f719"}.fa-duotone.fa-circle-microphone:after,.fa-duotone.fa-microphone-circle:after,.fad.fa-circle-microphone:after,.fad.fa-microphone-circle:after{content:"\e116\e116"}.fa-duotone.fa-book-arrow-up:after,.fad.fa-book-arrow-up:after{content:"\e0ba\e0ba"}.fa-duotone.fa-popsicle:after,.fad.fa-popsicle:after{content:"\e43e\e43e"}.fa-duotone.fa-command:after,.fad.fa-command:after{content:"\e142\e142"}.fa-duotone.fa-blinds:after,.fad.fa-blinds:after{content:"\f8fb\f8fb"}.fa-duotone.fa-stopwatch:after,.fad.fa-stopwatch:after{content:"\f2f2\f2f2"}.fa-duotone.fa-saxophone:after,.fad.fa-saxophone:after{content:"\f8dc\f8dc"}.fa-duotone.fa-square-2:after,.fad.fa-square-2:after{content:"\e257\e257"}.fa-duotone.fa-field-hockey-stick-ball:after,.fa-duotone.fa-field-hockey:after,.fad.fa-field-hockey-stick-ball:after,.fad.fa-field-hockey:after{content:"\f44c\f44c"}.fa-duotone.fa-arrow-up-square-triangle:after,.fa-duotone.fa-sort-shapes-up-alt:after,.fad.fa-arrow-up-square-triangle:after,.fad.fa-sort-shapes-up-alt:after{content:"\f88b\f88b"}.fa-duotone.fa-face-scream:after,.fad.fa-face-scream:after{content:"\e38b\e38b"}.fa-duotone.fa-square-m:after,.fad.fa-square-m:after{content:"\e276\e276"}.fa-duotone.fa-camera-web:after,.fa-duotone.fa-webcam:after,.fad.fa-camera-web:after,.fad.fa-webcam:after{content:"\f832\f832"}.fa-duotone.fa-comment-arrow-down:after,.fad.fa-comment-arrow-down:after{content:"\e143\e143"}.fa-duotone.fa-lightbulb-cfl:after,.fad.fa-lightbulb-cfl:after{content:"\e5a6\e5a6"}.fa-duotone.fa-window-frame-open:after,.fad.fa-window-frame-open:after{content:"\e050\e050"}.fa-duotone.fa-face-kiss:after,.fa-duotone.fa-kiss:after,.fad.fa-face-kiss:after,.fad.fa-kiss:after{content:"\f596\f596"}.fa-duotone.fa-bridge-circle-xmark:after,.fad.fa-bridge-circle-xmark:after{content:"\e4cb\e4cb"}.fa-duotone.fa-period:after,.fad.fa-period:after{content:"\2e\2e"}.fa-duotone.fa-face-grin-tongue:after,.fa-duotone.fa-grin-tongue:after,.fad.fa-face-grin-tongue:after,.fad.fa-grin-tongue:after{content:"\f589\f589"}.fa-duotone.fa-up-to-dotted-line:after,.fad.fa-up-to-dotted-line:after{content:"\e457\e457"}.fa-duotone.fa-thought-bubble:after,.fad.fa-thought-bubble:after{content:"\e32e\e32e"}.fa-duotone.fa-skeleton-ribs:after,.fad.fa-skeleton-ribs:after{content:"\e5cb\e5cb"}.fa-duotone.fa-raygun:after,.fad.fa-raygun:after{content:"\e025\e025"}.fa-duotone.fa-flute:after,.fad.fa-flute:after{content:"\f8b9\f8b9"}.fa-duotone.fa-acorn:after,.fad.fa-acorn:after{content:"\f6ae\f6ae"}.fa-duotone.fa-video-arrow-up-right:after,.fad.fa-video-arrow-up-right:after{content:"\e2c9\e2c9"}.fa-duotone.fa-grate-droplet:after,.fad.fa-grate-droplet:after{content:"\e194\e194"}.fa-duotone.fa-seal-exclamation:after,.fad.fa-seal-exclamation:after{content:"\e242\e242"}.fa-duotone.fa-chess-bishop:after,.fad.fa-chess-bishop:after{content:"\f43a\f43a"}.fa-duotone.fa-message-sms:after,.fad.fa-message-sms:after{content:"\e1e5\e1e5"}.fa-duotone.fa-coffee-beans:after,.fad.fa-coffee-beans:after{content:"\e13f\e13f"}.fa-duotone.fa-hat-witch:after,.fad.fa-hat-witch:after{content:"\f6e7\f6e7"}.fa-duotone.fa-face-grin-wink:after,.fa-duotone.fa-grin-wink:after,.fad.fa-face-grin-wink:after,.fad.fa-grin-wink:after{content:"\f58c\f58c"}.fa-duotone.fa-clock-three-thirty:after,.fad.fa-clock-three-thirty:after{content:"\e357\e357"}.fa-duotone.fa-deaf:after,.fa-duotone.fa-deafness:after,.fa-duotone.fa-ear-deaf:after,.fa-duotone.fa-hard-of-hearing:after,.fad.fa-deaf:after,.fad.fa-deafness:after,.fad.fa-ear-deaf:after,.fad.fa-hard-of-hearing:after{content:"\f2a4\f2a4"}.fa-duotone.fa-alarm-clock:after,.fad.fa-alarm-clock:after{content:"\f34e\f34e"}.fa-duotone.fa-eclipse:after,.fad.fa-eclipse:after{content:"\f749\f749"}.fa-duotone.fa-face-relieved:after,.fad.fa-face-relieved:after{content:"\e389\e389"}.fa-duotone.fa-road-circle-check:after,.fad.fa-road-circle-check:after{content:"\e564\e564"}.fa-duotone.fa-dice-five:after,.fad.fa-dice-five:after{content:"\f523\f523"}.fa-duotone.fa-minus-octagon:after,.fa-duotone.fa-octagon-minus:after,.fad.fa-minus-octagon:after,.fad.fa-octagon-minus:after{content:"\f308\f308"}.fa-duotone.fa-rss-square:after,.fa-duotone.fa-square-rss:after,.fad.fa-rss-square:after,.fad.fa-square-rss:after{content:"\f143\f143"}.fa-duotone.fa-face-zany:after,.fad.fa-face-zany:after{content:"\e3a4\e3a4"}.fa-duotone.fa-tricycle:after,.fad.fa-tricycle:after{content:"\e5c3\e5c3"}.fa-duotone.fa-land-mine-on:after,.fad.fa-land-mine-on:after{content:"\e51b\e51b"}.fa-duotone.fa-square-arrow-up-left:after,.fad.fa-square-arrow-up-left:after{content:"\e263\e263"}.fa-duotone.fa-i-cursor:after,.fad.fa-i-cursor:after{content:"\f246\f246"}.fa-duotone.fa-chart-mixed-up-circle-dollar:after,.fad.fa-chart-mixed-up-circle-dollar:after{content:"\e5d9\e5d9"}.fa-duotone.fa-salt-shaker:after,.fad.fa-salt-shaker:after{content:"\e446\e446"}.fa-duotone.fa-stamp:after,.fad.fa-stamp:after{content:"\f5bf\f5bf"}.fa-duotone.fa-file-plus:after,.fad.fa-file-plus:after{content:"\f319\f319"}.fa-duotone.fa-draw-square:after,.fad.fa-draw-square:after{content:"\f5ef\f5ef"}.fa-duotone.fa-toilet-paper-reverse-slash:after,.fa-duotone.fa-toilet-paper-under-slash:after,.fad.fa-toilet-paper-reverse-slash:after,.fad.fa-toilet-paper-under-slash:after{content:"\e2a1\e2a1"}.fa-duotone.fa-stairs:after,.fad.fa-stairs:after{content:"\e289\e289"}.fa-duotone.fa-drone-alt:after,.fa-duotone.fa-drone-front:after,.fad.fa-drone-alt:after,.fad.fa-drone-front:after{content:"\f860\f860"}.fa-duotone.fa-glass-empty:after,.fad.fa-glass-empty:after{content:"\e191\e191"}.fa-duotone.fa-dial-high:after,.fad.fa-dial-high:after{content:"\e15c\e15c"}.fa-duotone.fa-user-construction:after,.fa-duotone.fa-user-hard-hat:after,.fa-duotone.fa-user-helmet-safety:after,.fad.fa-user-construction:after,.fad.fa-user-hard-hat:after,.fad.fa-user-helmet-safety:after{content:"\f82c\f82c"}.fa-duotone.fa-i:after,.fad.fa-i:after{content:"\49\49"}.fa-duotone.fa-hryvnia-sign:after,.fa-duotone.fa-hryvnia:after,.fad.fa-hryvnia-sign:after,.fad.fa-hryvnia:after{content:"\f6f2\f6f2"}.fa-duotone.fa-arrow-down-left-and-arrow-up-right-to-center:after,.fad.fa-arrow-down-left-and-arrow-up-right-to-center:after{content:"\e092\e092"}.fa-duotone.fa-pills:after,.fad.fa-pills:after{content:"\f484\f484"}.fa-duotone.fa-face-grin-wide:after,.fa-duotone.fa-grin-alt:after,.fad.fa-face-grin-wide:after,.fad.fa-grin-alt:after{content:"\f581\f581"}.fa-duotone.fa-tooth:after,.fad.fa-tooth:after{content:"\f5c9\f5c9"}.fa-duotone.fa-basketball-hoop:after,.fad.fa-basketball-hoop:after{content:"\f435\f435"}.fa-duotone.fa-objects-align-bottom:after,.fad.fa-objects-align-bottom:after{content:"\e3bb\e3bb"}.fa-duotone.fa-v:after,.fad.fa-v:after{content:"\56\56"}.fa-duotone.fa-sparkles:after,.fad.fa-sparkles:after{content:"\f890\f890"}.fa-duotone.fa-squid:after,.fad.fa-squid:after{content:"\e450\e450"}.fa-duotone.fa-leafy-green:after,.fad.fa-leafy-green:after{content:"\e41d\e41d"}.fa-duotone.fa-circle-arrow-up-right:after,.fad.fa-circle-arrow-up-right:after{content:"\e0fc\e0fc"}.fa-duotone.fa-calendars:after,.fad.fa-calendars:after{content:"\e0d7\e0d7"}.fa-duotone.fa-bangladeshi-taka-sign:after,.fad.fa-bangladeshi-taka-sign:after{content:"\e2e6\e2e6"}.fa-duotone.fa-bicycle:after,.fad.fa-bicycle:after{content:"\f206\f206"}.fa-duotone.fa-hammer-war:after,.fad.fa-hammer-war:after{content:"\f6e4\f6e4"}.fa-duotone.fa-circle-d:after,.fad.fa-circle-d:after{content:"\e104\e104"}.fa-duotone.fa-spider-black-widow:after,.fad.fa-spider-black-widow:after{content:"\f718\f718"}.fa-duotone.fa-rod-asclepius:after,.fa-duotone.fa-rod-snake:after,.fa-duotone.fa-staff-aesculapius:after,.fa-duotone.fa-staff-snake:after,.fad.fa-rod-asclepius:after,.fad.fa-rod-snake:after,.fad.fa-staff-aesculapius:after,.fad.fa-staff-snake:after{content:"\e579\e579"}.fa-duotone.fa-pear:after,.fad.fa-pear:after{content:"\e20c\e20c"}.fa-duotone.fa-head-side-cough-slash:after,.fad.fa-head-side-cough-slash:after{content:"\e062\e062"}.fa-duotone.fa-file-mov:after,.fad.fa-file-mov:after{content:"\e647\e647"}.fa-duotone.fa-triangle:after,.fad.fa-triangle:after{content:"\f2ec\f2ec"}.fa-duotone.fa-apartment:after,.fad.fa-apartment:after{content:"\e468\e468"}.fa-duotone.fa-ambulance:after,.fa-duotone.fa-truck-medical:after,.fad.fa-ambulance:after,.fad.fa-truck-medical:after{content:"\f0f9\f0f9"}.fa-duotone.fa-pepper:after,.fad.fa-pepper:after{content:"\e432\e432"}.fa-duotone.fa-piano:after,.fad.fa-piano:after{content:"\f8d4\f8d4"}.fa-duotone.fa-gun-squirt:after,.fad.fa-gun-squirt:after{content:"\e19d\e19d"}.fa-duotone.fa-wheat-awn-circle-exclamation:after,.fad.fa-wheat-awn-circle-exclamation:after{content:"\e598\e598"}.fa-duotone.fa-snowman:after,.fad.fa-snowman:after{content:"\f7d0\f7d0"}.fa-duotone.fa-user-alien:after,.fad.fa-user-alien:after{content:"\e04a\e04a"}.fa-duotone.fa-shield-check:after,.fad.fa-shield-check:after{content:"\f2f7\f2f7"}.fa-duotone.fa-mortar-pestle:after,.fad.fa-mortar-pestle:after{content:"\f5a7\f5a7"}.fa-duotone.fa-road-barrier:after,.fad.fa-road-barrier:after{content:"\e562\e562"}.fa-duotone.fa-chart-candlestick:after,.fad.fa-chart-candlestick:after{content:"\e0e2\e0e2"}.fa-duotone.fa-briefcase-blank:after,.fad.fa-briefcase-blank:after{content:"\e0c8\e0c8"}.fa-duotone.fa-school:after,.fad.fa-school:after{content:"\f549\f549"}.fa-duotone.fa-igloo:after,.fad.fa-igloo:after{content:"\f7ae\f7ae"}.fa-duotone.fa-bracket-round:after,.fa-duotone.fa-parenthesis:after,.fad.fa-bracket-round:after,.fad.fa-parenthesis:after{content:"\28\28"}.fa-duotone.fa-joint:after,.fad.fa-joint:after{content:"\f595\f595"}.fa-duotone.fa-horse-saddle:after,.fad.fa-horse-saddle:after{content:"\f8c3\f8c3"}.fa-duotone.fa-mug-marshmallows:after,.fad.fa-mug-marshmallows:after{content:"\f7b7\f7b7"}.fa-duotone.fa-filters:after,.fad.fa-filters:after{content:"\e17e\e17e"}.fa-duotone.fa-bell-on:after,.fad.fa-bell-on:after{content:"\f8fa\f8fa"}.fa-duotone.fa-angle-right:after,.fad.fa-angle-right:after{content:"\f105\f105"}.fa-duotone.fa-dial-med:after,.fad.fa-dial-med:after{content:"\e15f\e15f"}.fa-duotone.fa-horse:after,.fad.fa-horse:after{content:"\f6f0\f6f0"}.fa-duotone.fa-q:after,.fad.fa-q:after{content:"\51\51"}.fa-duotone.fa-monitor-heart-rate:after,.fa-duotone.fa-monitor-waveform:after,.fad.fa-monitor-heart-rate:after,.fad.fa-monitor-waveform:after{content:"\f611\f611"}.fa-duotone.fa-link-simple:after,.fad.fa-link-simple:after{content:"\e1cd\e1cd"}.fa-duotone.fa-whistle:after,.fad.fa-whistle:after{content:"\f460\f460"}.fa-duotone.fa-g:after,.fad.fa-g:after{content:"\47\47"}.fa-duotone.fa-fragile:after,.fa-duotone.fa-wine-glass-crack:after,.fad.fa-fragile:after,.fad.fa-wine-glass-crack:after{content:"\f4bb\f4bb"}.fa-duotone.fa-slot-machine:after,.fad.fa-slot-machine:after{content:"\e3ce\e3ce"}.fa-duotone.fa-notes-medical:after,.fad.fa-notes-medical:after{content:"\f481\f481"}.fa-duotone.fa-car-wash:after,.fad.fa-car-wash:after{content:"\f5e6\f5e6"}.fa-duotone.fa-escalator:after,.fad.fa-escalator:after{content:"\e171\e171"}.fa-duotone.fa-comment-image:after,.fad.fa-comment-image:after{content:"\e148\e148"}.fa-duotone.fa-temperature-2:after,.fa-duotone.fa-temperature-half:after,.fa-duotone.fa-thermometer-2:after,.fa-duotone.fa-thermometer-half:after,.fad.fa-temperature-2:after,.fad.fa-temperature-half:after,.fad.fa-thermometer-2:after,.fad.fa-thermometer-half:after{content:"\f2c9\f2c9"}.fa-duotone.fa-dong-sign:after,.fad.fa-dong-sign:after{content:"\e169\e169"}.fa-duotone.fa-donut:after,.fa-duotone.fa-doughnut:after,.fad.fa-donut:after,.fad.fa-doughnut:after{content:"\e406\e406"}.fa-duotone.fa-capsules:after,.fad.fa-capsules:after{content:"\f46b\f46b"}.fa-duotone.fa-poo-bolt:after,.fa-duotone.fa-poo-storm:after,.fad.fa-poo-bolt:after,.fad.fa-poo-storm:after{content:"\f75a\f75a"}.fa-duotone.fa-tally-1:after,.fad.fa-tally-1:after{content:"\e294\e294"}.fa-duotone.fa-file-vector:after,.fad.fa-file-vector:after{content:"\e64c\e64c"}.fa-duotone.fa-face-frown-open:after,.fa-duotone.fa-frown-open:after,.fad.fa-face-frown-open:after,.fad.fa-frown-open:after{content:"\f57a\f57a"}.fa-duotone.fa-square-dashed:after,.fad.fa-square-dashed:after{content:"\e269\e269"}.fa-duotone.fa-bag-shopping-plus:after,.fad.fa-bag-shopping-plus:after{content:"\e651\e651"}.fa-duotone.fa-square-j:after,.fad.fa-square-j:after{content:"\e273\e273"}.fa-duotone.fa-hand-point-up:after,.fad.fa-hand-point-up:after{content:"\f0a6\f0a6"}.fa-duotone.fa-money-bill:after,.fad.fa-money-bill:after{content:"\f0d6\f0d6"}.fa-duotone.fa-arrow-up-big-small:after,.fa-duotone.fa-sort-size-up:after,.fad.fa-arrow-up-big-small:after,.fad.fa-sort-size-up:after{content:"\f88e\f88e"}.fa-duotone.fa-barcode-read:after,.fad.fa-barcode-read:after{content:"\f464\f464"}.fa-duotone.fa-baguette:after,.fad.fa-baguette:after{content:"\e3d8\e3d8"}.fa-duotone.fa-bowl-soft-serve:after,.fad.fa-bowl-soft-serve:after{content:"\e46b\e46b"}.fa-duotone.fa-face-holding-back-tears:after,.fad.fa-face-holding-back-tears:after{content:"\e482\e482"}.fa-duotone.fa-arrow-alt-square-up:after,.fa-duotone.fa-square-up:after,.fad.fa-arrow-alt-square-up:after,.fad.fa-square-up:after{content:"\f353\f353"}.fa-duotone.fa-subway-tunnel:after,.fa-duotone.fa-train-subway-tunnel:after,.fad.fa-subway-tunnel:after,.fad.fa-train-subway-tunnel:after{content:"\e2a3\e2a3"}.fa-duotone.fa-exclamation-square:after,.fa-duotone.fa-square-exclamation:after,.fad.fa-exclamation-square:after,.fad.fa-square-exclamation:after{content:"\f321\f321"}.fa-duotone.fa-semicolon:after,.fad.fa-semicolon:after{content:"\3b\3b"}.fa-duotone.fa-bookmark:after,.fad.fa-bookmark:after{content:"\f02e\f02e"}.fa-duotone.fa-fan-table:after,.fad.fa-fan-table:after{content:"\e004\e004"}.fa-duotone.fa-align-justify:after,.fad.fa-align-justify:after{content:"\f039\f039"}.fa-duotone.fa-battery-1:after,.fa-duotone.fa-battery-low:after,.fad.fa-battery-1:after,.fad.fa-battery-low:after{content:"\e0b1\e0b1"}.fa-duotone.fa-credit-card-front:after,.fad.fa-credit-card-front:after{content:"\f38a\f38a"}.fa-duotone.fa-brain-arrow-curved-right:after,.fa-duotone.fa-mind-share:after,.fad.fa-brain-arrow-curved-right:after,.fad.fa-mind-share:after{content:"\f677\f677"}.fa-duotone.fa-umbrella-beach:after,.fad.fa-umbrella-beach:after{content:"\f5ca\f5ca"}.fa-duotone.fa-helmet-un:after,.fad.fa-helmet-un:after{content:"\e503\e503"}.fa-duotone.fa-location-smile:after,.fa-duotone.fa-map-marker-smile:after,.fad.fa-location-smile:after,.fad.fa-map-marker-smile:after{content:"\f60d\f60d"}.fa-duotone.fa-arrow-left-to-line:after,.fa-duotone.fa-arrow-to-left:after,.fad.fa-arrow-left-to-line:after,.fad.fa-arrow-to-left:after{content:"\f33e\f33e"}.fa-duotone.fa-bullseye:after,.fad.fa-bullseye:after{content:"\f140\f140"}.fa-duotone.fa-nigiri:after,.fa-duotone.fa-sushi:after,.fad.fa-nigiri:after,.fad.fa-sushi:after{content:"\e48a\e48a"}.fa-duotone.fa-comment-alt-captions:after,.fa-duotone.fa-message-captions:after,.fad.fa-comment-alt-captions:after,.fad.fa-message-captions:after{content:"\e1de\e1de"}.fa-duotone.fa-trash-list:after,.fad.fa-trash-list:after{content:"\e2b1\e2b1"}.fa-duotone.fa-bacon:after,.fad.fa-bacon:after{content:"\f7e5\f7e5"}.fa-duotone.fa-option:after,.fad.fa-option:after{content:"\e318\e318"}.fa-duotone.fa-raccoon:after,.fad.fa-raccoon:after{content:"\e613\e613"}.fa-duotone.fa-hand-point-down:after,.fad.fa-hand-point-down:after{content:"\f0a7\f0a7"}.fa-duotone.fa-arrow-up-from-bracket:after,.fad.fa-arrow-up-from-bracket:after{content:"\e09a\e09a"}.fa-duotone.fa-head-side-gear:after,.fad.fa-head-side-gear:after{content:"\e611\e611"}.fa-duotone.fa-trash-plus:after,.fad.fa-trash-plus:after{content:"\e2b2\e2b2"}.fa-duotone.fa-objects-align-top:after,.fad.fa-objects-align-top:after{content:"\e3c0\e3c0"}.fa-duotone.fa-folder-blank:after,.fa-duotone.fa-folder:after,.fad.fa-folder-blank:after,.fad.fa-folder:after{content:"\f07b\f07b"}.fa-duotone.fa-face-anxious-sweat:after,.fad.fa-face-anxious-sweat:after{content:"\e36a\e36a"}.fa-duotone.fa-credit-card-blank:after,.fad.fa-credit-card-blank:after{content:"\f389\f389"}.fa-duotone.fa-file-medical-alt:after,.fa-duotone.fa-file-waveform:after,.fad.fa-file-medical-alt:after,.fad.fa-file-waveform:after{content:"\f478\f478"}.fa-duotone.fa-microchip-ai:after,.fad.fa-microchip-ai:after{content:"\e1ec\e1ec"}.fa-duotone.fa-mug:after,.fad.fa-mug:after{content:"\f874\f874"}.fa-duotone.fa-plane-up-slash:after,.fad.fa-plane-up-slash:after{content:"\e22e\e22e"}.fa-duotone.fa-radiation:after,.fad.fa-radiation:after{content:"\f7b9\f7b9"}.fa-duotone.fa-pen-circle:after,.fad.fa-pen-circle:after{content:"\e20e\e20e"}.fa-duotone.fa-bag-seedling:after,.fad.fa-bag-seedling:after{content:"\e5f2\e5f2"}.fa-duotone.fa-chart-simple:after,.fad.fa-chart-simple:after{content:"\e473\e473"}.fa-duotone.fa-crutches:after,.fad.fa-crutches:after{content:"\f7f8\f7f8"}.fa-duotone.fa-circle-parking:after,.fa-duotone.fa-parking-circle:after,.fad.fa-circle-parking:after,.fad.fa-parking-circle:after{content:"\f615\f615"}.fa-duotone.fa-mars-stroke:after,.fad.fa-mars-stroke:after{content:"\f229\f229"}.fa-duotone.fa-leaf-oak:after,.fad.fa-leaf-oak:after{content:"\f6f7\f6f7"}.fa-duotone.fa-square-bolt:after,.fad.fa-square-bolt:after{content:"\e265\e265"}.fa-duotone.fa-vial:after,.fad.fa-vial:after{content:"\f492\f492"}.fa-duotone.fa-dashboard:after,.fa-duotone.fa-gauge-med:after,.fa-duotone.fa-gauge:after,.fa-duotone.fa-tachometer-alt-average:after,.fad.fa-dashboard:after,.fad.fa-gauge-med:after,.fad.fa-gauge:after,.fad.fa-tachometer-alt-average:after{content:"\f624\f624"}.fa-duotone.fa-magic-wand-sparkles:after,.fa-duotone.fa-wand-magic-sparkles:after,.fad.fa-magic-wand-sparkles:after,.fad.fa-wand-magic-sparkles:after{content:"\e2ca\e2ca"}.fa-duotone.fa-lambda:after,.fad.fa-lambda:after{content:"\f66e\f66e"}.fa-duotone.fa-e:after,.fad.fa-e:after{content:"\45\45"}.fa-duotone.fa-pizza:after,.fad.fa-pizza:after{content:"\f817\f817"}.fa-duotone.fa-bowl-chopsticks-noodles:after,.fad.fa-bowl-chopsticks-noodles:after{content:"\e2ea\e2ea"}.fa-duotone.fa-h3:after,.fad.fa-h3:after{content:"\f315\f315"}.fa-duotone.fa-pen-alt:after,.fa-duotone.fa-pen-clip:after,.fad.fa-pen-alt:after,.fad.fa-pen-clip:after{content:"\f305\f305"}.fa-duotone.fa-bridge-circle-exclamation:after,.fad.fa-bridge-circle-exclamation:after{content:"\e4ca\e4ca"}.fa-duotone.fa-badge-percent:after,.fad.fa-badge-percent:after{content:"\f646\f646"}.fa-duotone.fa-rotate-reverse:after,.fad.fa-rotate-reverse:after{content:"\e631\e631"}.fa-duotone.fa-user:after,.fad.fa-user:after{content:"\f007\f007"}.fa-duotone.fa-sensor:after,.fad.fa-sensor:after{content:"\e028\e028"}.fa-duotone.fa-comma:after,.fad.fa-comma:after{content:"\2c\2c"}.fa-duotone.fa-school-circle-check:after,.fad.fa-school-circle-check:after{content:"\e56b\e56b"}.fa-duotone.fa-toilet-paper-reverse:after,.fa-duotone.fa-toilet-paper-under:after,.fad.fa-toilet-paper-reverse:after,.fad.fa-toilet-paper-under:after{content:"\e2a0\e2a0"}.fa-duotone.fa-light-emergency:after,.fad.fa-light-emergency:after{content:"\e41f\e41f"}.fa-duotone.fa-arrow-down-to-arc:after,.fad.fa-arrow-down-to-arc:after{content:"\e4ae\e4ae"}.fa-duotone.fa-dumpster:after,.fad.fa-dumpster:after{content:"\f793\f793"}.fa-duotone.fa-shuttle-van:after,.fa-duotone.fa-van-shuttle:after,.fad.fa-shuttle-van:after,.fad.fa-van-shuttle:after{content:"\f5b6\f5b6"}.fa-duotone.fa-building-user:after,.fad.fa-building-user:after{content:"\e4da\e4da"}.fa-duotone.fa-light-switch:after,.fad.fa-light-switch:after{content:"\e017\e017"}.fa-duotone.fa-caret-square-left:after,.fa-duotone.fa-square-caret-left:after,.fad.fa-caret-square-left:after,.fad.fa-square-caret-left:after{content:"\f191\f191"}.fa-duotone.fa-highlighter:after,.fad.fa-highlighter:after{content:"\f591\f591"}.fa-duotone.fa-heart-rate:after,.fa-duotone.fa-wave-pulse:after,.fad.fa-heart-rate:after,.fad.fa-wave-pulse:after{content:"\f5f8\f5f8"}.fa-duotone.fa-key:after,.fad.fa-key:after{content:"\f084\f084"}.fa-duotone.fa-hat-santa:after,.fad.fa-hat-santa:after{content:"\f7a7\f7a7"}.fa-duotone.fa-tamale:after,.fad.fa-tamale:after{content:"\e451\e451"}.fa-duotone.fa-box-check:after,.fad.fa-box-check:after{content:"\f467\f467"}.fa-duotone.fa-bullhorn:after,.fad.fa-bullhorn:after{content:"\f0a1\f0a1"}.fa-duotone.fa-steak:after,.fad.fa-steak:after{content:"\f824\f824"}.fa-duotone.fa-location-crosshairs-slash:after,.fa-duotone.fa-location-slash:after,.fad.fa-location-crosshairs-slash:after,.fad.fa-location-slash:after{content:"\f603\f603"}.fa-duotone.fa-person-dolly:after,.fad.fa-person-dolly:after{content:"\f4d0\f4d0"}.fa-duotone.fa-globe:after,.fad.fa-globe:after{content:"\f0ac\f0ac"}.fa-duotone.fa-synagogue:after,.fad.fa-synagogue:after{content:"\f69b\f69b"}.fa-duotone.fa-file-chart-column:after,.fa-duotone.fa-file-chart-line:after,.fad.fa-file-chart-column:after,.fad.fa-file-chart-line:after{content:"\f659\f659"}.fa-duotone.fa-person-half-dress:after,.fad.fa-person-half-dress:after{content:"\e548\e548"}.fa-duotone.fa-folder-image:after,.fad.fa-folder-image:after{content:"\e18a\e18a"}.fa-duotone.fa-calendar-edit:after,.fa-duotone.fa-calendar-pen:after,.fad.fa-calendar-edit:after,.fad.fa-calendar-pen:after{content:"\f333\f333"}.fa-duotone.fa-road-bridge:after,.fad.fa-road-bridge:after{content:"\e563\e563"}.fa-duotone.fa-face-smile-tear:after,.fad.fa-face-smile-tear:after{content:"\e393\e393"}.fa-duotone.fa-comment-alt-plus:after,.fa-duotone.fa-message-plus:after,.fad.fa-comment-alt-plus:after,.fad.fa-message-plus:after{content:"\f4a8\f4a8"}.fa-duotone.fa-location-arrow:after,.fad.fa-location-arrow:after{content:"\f124\f124"}.fa-duotone.fa-c:after,.fad.fa-c:after{content:"\43\43"}.fa-duotone.fa-tablet-button:after,.fad.fa-tablet-button:after{content:"\f10a\f10a"}.fa-duotone.fa-person-dress-fairy:after,.fad.fa-person-dress-fairy:after{content:"\e607\e607"}.fa-duotone.fa-rectangle-history-circle-user:after,.fad.fa-rectangle-history-circle-user:after{content:"\e4a4\e4a4"}.fa-duotone.fa-building-lock:after,.fad.fa-building-lock:after{content:"\e4d6\e4d6"}.fa-duotone.fa-chart-line-up:after,.fad.fa-chart-line-up:after{content:"\e0e5\e0e5"}.fa-duotone.fa-mailbox:after,.fad.fa-mailbox:after{content:"\f813\f813"}.fa-duotone.fa-sign-posts:after,.fad.fa-sign-posts:after{content:"\e625\e625"}.fa-duotone.fa-truck-bolt:after,.fad.fa-truck-bolt:after{content:"\e3d0\e3d0"}.fa-duotone.fa-pizza-slice:after,.fad.fa-pizza-slice:after{content:"\f818\f818"}.fa-duotone.fa-money-bill-wave:after,.fad.fa-money-bill-wave:after{content:"\f53a\f53a"}.fa-duotone.fa-area-chart:after,.fa-duotone.fa-chart-area:after,.fad.fa-area-chart:after,.fad.fa-chart-area:after{content:"\f1fe\f1fe"}.fa-duotone.fa-house-flag:after,.fad.fa-house-flag:after{content:"\e50d\e50d"}.fa-duotone.fa-circle-three-quarters-stroke:after,.fad.fa-circle-three-quarters-stroke:after{content:"\e5d4\e5d4"}.fa-duotone.fa-person-circle-minus:after,.fad.fa-person-circle-minus:after{content:"\e540\e540"}.fa-duotone.fa-scalpel:after,.fad.fa-scalpel:after{content:"\f61d\f61d"}.fa-duotone.fa-ban:after,.fa-duotone.fa-cancel:after,.fad.fa-ban:after,.fad.fa-cancel:after{content:"\f05e\f05e"}.fa-duotone.fa-bell-exclamation:after,.fad.fa-bell-exclamation:after{content:"\f848\f848"}.fa-duotone.fa-bookmark-circle:after,.fa-duotone.fa-circle-bookmark:after,.fad.fa-bookmark-circle:after,.fad.fa-circle-bookmark:after{content:"\e100\e100"}.fa-duotone.fa-egg-fried:after,.fad.fa-egg-fried:after{content:"\f7fc\f7fc"}.fa-duotone.fa-face-weary:after,.fad.fa-face-weary:after{content:"\e3a1\e3a1"}.fa-duotone.fa-uniform-martial-arts:after,.fad.fa-uniform-martial-arts:after{content:"\e3d1\e3d1"}.fa-duotone.fa-camera-rotate:after,.fad.fa-camera-rotate:after{content:"\e0d8\e0d8"}.fa-duotone.fa-sun-dust:after,.fad.fa-sun-dust:after{content:"\f764\f764"}.fa-duotone.fa-comment-text:after,.fad.fa-comment-text:after{content:"\e14d\e14d"}.fa-duotone.fa-air-freshener:after,.fa-duotone.fa-spray-can-sparkles:after,.fad.fa-air-freshener:after,.fad.fa-spray-can-sparkles:after{content:"\f5d0\f5d0"}.fa-duotone.fa-signal-alt-4:after,.fa-duotone.fa-signal-alt:after,.fa-duotone.fa-signal-bars-strong:after,.fa-duotone.fa-signal-bars:after,.fad.fa-signal-alt-4:after,.fad.fa-signal-alt:after,.fad.fa-signal-bars-strong:after,.fad.fa-signal-bars:after{content:"\f690\f690"}.fa-duotone.fa-diamond-exclamation:after,.fad.fa-diamond-exclamation:after{content:"\e405\e405"}.fa-duotone.fa-star:after,.fad.fa-star:after{content:"\f005\f005"}.fa-duotone.fa-dial-min:after,.fad.fa-dial-min:after{content:"\e161\e161"}.fa-duotone.fa-repeat:after,.fad.fa-repeat:after{content:"\f363\f363"}.fa-duotone.fa-cross:after,.fad.fa-cross:after{content:"\f654\f654"}.fa-duotone.fa-file-caret-down:after,.fa-duotone.fa-page-caret-down:after,.fad.fa-file-caret-down:after,.fad.fa-page-caret-down:after{content:"\e429\e429"}.fa-duotone.fa-box:after,.fad.fa-box:after{content:"\f466\f466"}.fa-duotone.fa-venus-mars:after,.fad.fa-venus-mars:after{content:"\f228\f228"}.fa-duotone.fa-clock-seven-thirty:after,.fad.fa-clock-seven-thirty:after{content:"\e351\e351"}.fa-duotone.fa-arrow-pointer:after,.fa-duotone.fa-mouse-pointer:after,.fad.fa-arrow-pointer:after,.fad.fa-mouse-pointer:after{content:"\f245\f245"}.fa-duotone.fa-clock-four-thirty:after,.fad.fa-clock-four-thirty:after{content:"\e34b\e34b"}.fa-duotone.fa-signal-alt-3:after,.fa-duotone.fa-signal-bars-good:after,.fad.fa-signal-alt-3:after,.fad.fa-signal-bars-good:after{content:"\f693\f693"}.fa-duotone.fa-cactus:after,.fad.fa-cactus:after{content:"\f8a7\f8a7"}.fa-duotone.fa-lightbulb-gear:after,.fad.fa-lightbulb-gear:after{content:"\e5fd\e5fd"}.fa-duotone.fa-expand-arrows-alt:after,.fa-duotone.fa-maximize:after,.fad.fa-expand-arrows-alt:after,.fad.fa-maximize:after{content:"\f31e\f31e"}.fa-duotone.fa-charging-station:after,.fad.fa-charging-station:after{content:"\f5e7\f5e7"}.fa-duotone.fa-shapes:after,.fa-duotone.fa-triangle-circle-square:after,.fad.fa-shapes:after,.fad.fa-triangle-circle-square:after{content:"\f61f\f61f"}.fa-duotone.fa-plane-tail:after,.fad.fa-plane-tail:after{content:"\e22c\e22c"}.fa-duotone.fa-gauge-simple-max:after,.fa-duotone.fa-tachometer-fastest:after,.fad.fa-gauge-simple-max:after,.fad.fa-tachometer-fastest:after{content:"\f62b\f62b"}.fa-duotone.fa-circle-u:after,.fad.fa-circle-u:after{content:"\e127\e127"}.fa-duotone.fa-shield-slash:after,.fad.fa-shield-slash:after{content:"\e24b\e24b"}.fa-duotone.fa-phone-square-down:after,.fa-duotone.fa-square-phone-hangup:after,.fad.fa-phone-square-down:after,.fad.fa-square-phone-hangup:after{content:"\e27a\e27a"}.fa-duotone.fa-arrow-up-left:after,.fad.fa-arrow-up-left:after{content:"\e09d\e09d"}.fa-duotone.fa-transporter-1:after,.fad.fa-transporter-1:after{content:"\e043\e043"}.fa-duotone.fa-peanuts:after,.fad.fa-peanuts:after{content:"\e431\e431"}.fa-duotone.fa-random:after,.fa-duotone.fa-shuffle:after,.fad.fa-random:after,.fad.fa-shuffle:after{content:"\f074\f074"}.fa-duotone.fa-person-running:after,.fa-duotone.fa-running:after,.fad.fa-person-running:after,.fad.fa-running:after{content:"\f70c\f70c"}.fa-duotone.fa-mobile-retro:after,.fad.fa-mobile-retro:after{content:"\e527\e527"}.fa-duotone.fa-grip-lines-vertical:after,.fad.fa-grip-lines-vertical:after{content:"\f7a5\f7a5"}.fa-duotone.fa-bin-bottles-recycle:after,.fad.fa-bin-bottles-recycle:after{content:"\e5f6\e5f6"}.fa-duotone.fa-arrow-up-from-square:after,.fad.fa-arrow-up-from-square:after{content:"\e09c\e09c"}.fa-duotone.fa-file-dashed-line:after,.fa-duotone.fa-page-break:after,.fad.fa-file-dashed-line:after,.fad.fa-page-break:after{content:"\f877\f877"}.fa-duotone.fa-bracket-curly-right:after,.fad.fa-bracket-curly-right:after{content:"\7d\7d"}.fa-duotone.fa-spider:after,.fad.fa-spider:after{content:"\f717\f717"}.fa-duotone.fa-clock-three:after,.fad.fa-clock-three:after{content:"\e356\e356"}.fa-duotone.fa-hands-bound:after,.fad.fa-hands-bound:after{content:"\e4f9\e4f9"}.fa-duotone.fa-scalpel-line-dashed:after,.fa-duotone.fa-scalpel-path:after,.fad.fa-scalpel-line-dashed:after,.fad.fa-scalpel-path:after{content:"\f61e\f61e"}.fa-duotone.fa-file-invoice-dollar:after,.fad.fa-file-invoice-dollar:after{content:"\f571\f571"}.fa-duotone.fa-pipe-smoking:after,.fad.fa-pipe-smoking:after{content:"\e3c4\e3c4"}.fa-duotone.fa-face-astonished:after,.fad.fa-face-astonished:after{content:"\e36b\e36b"}.fa-duotone.fa-window:after,.fad.fa-window:after{content:"\f40e\f40e"}.fa-duotone.fa-plane-circle-exclamation:after,.fad.fa-plane-circle-exclamation:after{content:"\e556\e556"}.fa-duotone.fa-ear:after,.fad.fa-ear:after{content:"\f5f0\f5f0"}.fa-duotone.fa-file-lock:after,.fad.fa-file-lock:after{content:"\e3a6\e3a6"}.fa-duotone.fa-diagram-venn:after,.fad.fa-diagram-venn:after{content:"\e15a\e15a"}.fa-duotone.fa-x-ray:after,.fad.fa-x-ray:after{content:"\f497\f497"}.fa-duotone.fa-goal-net:after,.fad.fa-goal-net:after{content:"\e3ab\e3ab"}.fa-duotone.fa-coffin-cross:after,.fad.fa-coffin-cross:after{content:"\e051\e051"}.fa-duotone.fa-spell-check:after,.fad.fa-spell-check:after{content:"\f891\f891"}.fa-duotone.fa-location-xmark:after,.fa-duotone.fa-map-marker-times:after,.fa-duotone.fa-map-marker-xmark:after,.fad.fa-location-xmark:after,.fad.fa-map-marker-times:after,.fad.fa-map-marker-xmark:after{content:"\f60e\f60e"}.fa-duotone.fa-circle-quarter-stroke:after,.fad.fa-circle-quarter-stroke:after{content:"\e5d3\e5d3"}.fa-duotone.fa-lasso:after,.fad.fa-lasso:after{content:"\f8c8\f8c8"}.fa-duotone.fa-slash:after,.fad.fa-slash:after{content:"\f715\f715"}.fa-duotone.fa-person-to-portal:after,.fa-duotone.fa-portal-enter:after,.fad.fa-person-to-portal:after,.fad.fa-portal-enter:after{content:"\e022\e022"}.fa-duotone.fa-calendar-star:after,.fad.fa-calendar-star:after{content:"\f736\f736"}.fa-duotone.fa-computer-mouse:after,.fa-duotone.fa-mouse:after,.fad.fa-computer-mouse:after,.fad.fa-mouse:after{content:"\f8cc\f8cc"}.fa-duotone.fa-arrow-right-to-bracket:after,.fa-duotone.fa-sign-in:after,.fad.fa-arrow-right-to-bracket:after,.fad.fa-sign-in:after{content:"\f090\f090"}.fa-duotone.fa-pegasus:after,.fad.fa-pegasus:after{content:"\f703\f703"}.fa-duotone.fa-files-medical:after,.fad.fa-files-medical:after{content:"\f7fd\f7fd"}.fa-duotone.fa-cannon:after,.fad.fa-cannon:after{content:"\e642\e642"}.fa-duotone.fa-nfc-lock:after,.fad.fa-nfc-lock:after{content:"\e1f8\e1f8"}.fa-duotone.fa-person-ski-lift:after,.fa-duotone.fa-ski-lift:after,.fad.fa-person-ski-lift:after,.fad.fa-ski-lift:after{content:"\f7c8\f7c8"}.fa-duotone.fa-square-6:after,.fad.fa-square-6:after{content:"\e25b\e25b"}.fa-duotone.fa-shop-slash:after,.fa-duotone.fa-store-alt-slash:after,.fad.fa-shop-slash:after,.fad.fa-store-alt-slash:after{content:"\e070\e070"}.fa-duotone.fa-wind-turbine:after,.fad.fa-wind-turbine:after{content:"\f89b\f89b"}.fa-duotone.fa-sliders-simple:after,.fad.fa-sliders-simple:after{content:"\e253\e253"}.fa-duotone.fa-grid-round:after,.fad.fa-grid-round:after{content:"\e5da\e5da"}.fa-duotone.fa-badge-sheriff:after,.fad.fa-badge-sheriff:after{content:"\f8a2\f8a2"}.fa-duotone.fa-server:after,.fad.fa-server:after{content:"\f233\f233"}.fa-duotone.fa-virus-covid-slash:after,.fad.fa-virus-covid-slash:after{content:"\e4a9\e4a9"}.fa-duotone.fa-intersection:after,.fad.fa-intersection:after{content:"\f668\f668"}.fa-duotone.fa-shop-lock:after,.fad.fa-shop-lock:after{content:"\e4a5\e4a5"}.fa-duotone.fa-family:after,.fad.fa-family:after{content:"\e300\e300"}.fa-duotone.fa-hourglass-1:after,.fa-duotone.fa-hourglass-start:after,.fad.fa-hourglass-1:after,.fad.fa-hourglass-start:after{content:"\f251\f251"}.fa-duotone.fa-user-hair-buns:after,.fad.fa-user-hair-buns:after{content:"\e3d3\e3d3"}.fa-duotone.fa-blender-phone:after,.fad.fa-blender-phone:after{content:"\f6b6\f6b6"}.fa-duotone.fa-hourglass-clock:after,.fad.fa-hourglass-clock:after{content:"\e41b\e41b"}.fa-duotone.fa-person-seat-reclined:after,.fad.fa-person-seat-reclined:after{content:"\e21f\e21f"}.fa-duotone.fa-paper-plane-alt:after,.fa-duotone.fa-paper-plane-top:after,.fa-duotone.fa-send:after,.fad.fa-paper-plane-alt:after,.fad.fa-paper-plane-top:after,.fad.fa-send:after{content:"\e20a\e20a"}.fa-duotone.fa-comment-alt-arrow-up:after,.fa-duotone.fa-message-arrow-up:after,.fad.fa-comment-alt-arrow-up:after,.fad.fa-message-arrow-up:after{content:"\e1dc\e1dc"}.fa-duotone.fa-lightbulb-exclamation:after,.fad.fa-lightbulb-exclamation:after{content:"\f671\f671"}.fa-duotone.fa-layer-group-minus:after,.fa-duotone.fa-layer-minus:after,.fad.fa-layer-group-minus:after,.fad.fa-layer-minus:after{content:"\f5fe\f5fe"}.fa-duotone.fa-chart-pie-simple-circle-currency:after,.fad.fa-chart-pie-simple-circle-currency:after{content:"\e604\e604"}.fa-duotone.fa-circle-e:after,.fad.fa-circle-e:after{content:"\e109\e109"}.fa-duotone.fa-building-wheat:after,.fad.fa-building-wheat:after{content:"\e4db\e4db"}.fa-duotone.fa-gauge-max:after,.fa-duotone.fa-tachometer-alt-fastest:after,.fad.fa-gauge-max:after,.fad.fa-tachometer-alt-fastest:after{content:"\f626\f626"}.fa-duotone.fa-person-breastfeeding:after,.fad.fa-person-breastfeeding:after{content:"\e53a\e53a"}.fa-duotone.fa-apostrophe:after,.fad.fa-apostrophe:after{content:"\27\27"}.fa-duotone.fa-file-png:after,.fad.fa-file-png:after{content:"\e666\e666"}.fa-duotone.fa-fire-hydrant:after,.fad.fa-fire-hydrant:after{content:"\e17f\e17f"}.fa-duotone.fa-right-to-bracket:after,.fa-duotone.fa-sign-in-alt:after,.fad.fa-right-to-bracket:after,.fad.fa-sign-in-alt:after{content:"\f2f6\f2f6"}.fa-duotone.fa-video-plus:after,.fad.fa-video-plus:after{content:"\f4e1\f4e1"}.fa-duotone.fa-arrow-alt-square-right:after,.fa-duotone.fa-square-right:after,.fad.fa-arrow-alt-square-right:after,.fad.fa-square-right:after{content:"\f352\f352"}.fa-duotone.fa-comment-smile:after,.fad.fa-comment-smile:after{content:"\f4b4\f4b4"}.fa-duotone.fa-venus:after,.fad.fa-venus:after{content:"\f221\f221"}.fa-duotone.fa-passport:after,.fad.fa-passport:after{content:"\f5ab\f5ab"}.fa-duotone.fa-inbox-arrow-down:after,.fa-duotone.fa-inbox-in:after,.fad.fa-inbox-arrow-down:after,.fad.fa-inbox-in:after{content:"\f310\f310"}.fa-duotone.fa-heart-pulse:after,.fa-duotone.fa-heartbeat:after,.fad.fa-heart-pulse:after,.fad.fa-heartbeat:after{content:"\f21e\f21e"}.fa-duotone.fa-circle-8:after,.fad.fa-circle-8:after{content:"\e0f5\e0f5"}.fa-duotone.fa-clouds-moon:after,.fad.fa-clouds-moon:after{content:"\f745\f745"}.fa-duotone.fa-clock-ten-thirty:after,.fad.fa-clock-ten-thirty:after{content:"\e355\e355"}.fa-duotone.fa-people-carry-box:after,.fa-duotone.fa-people-carry:after,.fad.fa-people-carry-box:after,.fad.fa-people-carry:after{content:"\f4ce\f4ce"}.fa-duotone.fa-folder-user:after,.fad.fa-folder-user:after{content:"\e18e\e18e"}.fa-duotone.fa-trash-can-xmark:after,.fad.fa-trash-can-xmark:after{content:"\e2ae\e2ae"}.fa-duotone.fa-temperature-high:after,.fad.fa-temperature-high:after{content:"\f769\f769"}.fa-duotone.fa-microchip:after,.fad.fa-microchip:after{content:"\f2db\f2db"}.fa-duotone.fa-left-long-to-line:after,.fad.fa-left-long-to-line:after{content:"\e41e\e41e"}.fa-duotone.fa-crown:after,.fad.fa-crown:after{content:"\f521\f521"}.fa-duotone.fa-weight-hanging:after,.fad.fa-weight-hanging:after{content:"\f5cd\f5cd"}.fa-duotone.fa-xmarks-lines:after,.fad.fa-xmarks-lines:after{content:"\e59a\e59a"}.fa-duotone.fa-file-prescription:after,.fad.fa-file-prescription:after{content:"\f572\f572"}.fa-duotone.fa-calendar-range:after,.fad.fa-calendar-range:after{content:"\e0d6\e0d6"}.fa-duotone.fa-flower-daffodil:after,.fad.fa-flower-daffodil:after{content:"\f800\f800"}.fa-duotone.fa-hand-back-point-up:after,.fad.fa-hand-back-point-up:after{content:"\e1a2\e1a2"}.fa-duotone.fa-weight-scale:after,.fa-duotone.fa-weight:after,.fad.fa-weight-scale:after,.fad.fa-weight:after{content:"\f496\f496"}.fa-duotone.fa-arrow-up-to-arc:after,.fad.fa-arrow-up-to-arc:after{content:"\e617\e617"}.fa-duotone.fa-star-exclamation:after,.fad.fa-star-exclamation:after{content:"\f2f3\f2f3"}.fa-duotone.fa-books:after,.fad.fa-books:after{content:"\f5db\f5db"}.fa-duotone.fa-user-friends:after,.fa-duotone.fa-user-group:after,.fad.fa-user-friends:after,.fad.fa-user-group:after{content:"\f500\f500"}.fa-duotone.fa-arrow-up-a-z:after,.fa-duotone.fa-sort-alpha-up:after,.fad.fa-arrow-up-a-z:after,.fad.fa-sort-alpha-up:after{content:"\f15e\f15e"}.fa-duotone.fa-layer-group-plus:after,.fa-duotone.fa-layer-plus:after,.fad.fa-layer-group-plus:after,.fad.fa-layer-plus:after{content:"\f5ff\f5ff"}.fa-duotone.fa-play-pause:after,.fad.fa-play-pause:after{content:"\e22f\e22f"}.fa-duotone.fa-block-question:after,.fad.fa-block-question:after{content:"\e3dd\e3dd"}.fa-duotone.fa-snooze:after,.fa-duotone.fa-zzz:after,.fad.fa-snooze:after,.fad.fa-zzz:after{content:"\f880\f880"}.fa-duotone.fa-scanner-image:after,.fad.fa-scanner-image:after{content:"\f8f3\f8f3"}.fa-duotone.fa-tv-retro:after,.fad.fa-tv-retro:after{content:"\f401\f401"}.fa-duotone.fa-square-t:after,.fad.fa-square-t:after{content:"\e280\e280"}.fa-duotone.fa-barn-silo:after,.fa-duotone.fa-farm:after,.fad.fa-barn-silo:after,.fad.fa-farm:after{content:"\f864\f864"}.fa-duotone.fa-chess-knight:after,.fad.fa-chess-knight:after{content:"\f441\f441"}.fa-duotone.fa-bars-sort:after,.fad.fa-bars-sort:after{content:"\e0ae\e0ae"}.fa-duotone.fa-palette-boxes:after,.fa-duotone.fa-pallet-alt:after,.fa-duotone.fa-pallet-boxes:after,.fad.fa-palette-boxes:after,.fad.fa-pallet-alt:after,.fad.fa-pallet-boxes:after{content:"\f483\f483"}.fa-duotone.fa-face-laugh-squint:after,.fa-duotone.fa-laugh-squint:after,.fad.fa-face-laugh-squint:after,.fad.fa-laugh-squint:after{content:"\f59b\f59b"}.fa-duotone.fa-code-simple:after,.fad.fa-code-simple:after{content:"\e13d\e13d"}.fa-duotone.fa-bolt-slash:after,.fad.fa-bolt-slash:after{content:"\e0b8\e0b8"}.fa-duotone.fa-panel-fire:after,.fad.fa-panel-fire:after{content:"\e42f\e42f"}.fa-duotone.fa-binary-circle-check:after,.fad.fa-binary-circle-check:after{content:"\e33c\e33c"}.fa-duotone.fa-comment-minus:after,.fad.fa-comment-minus:after{content:"\f4b1\f4b1"}.fa-duotone.fa-burrito:after,.fad.fa-burrito:after{content:"\f7ed\f7ed"}.fa-duotone.fa-violin:after,.fad.fa-violin:after{content:"\f8ed\f8ed"}.fa-duotone.fa-objects-column:after,.fad.fa-objects-column:after{content:"\e3c1\e3c1"}.fa-duotone.fa-chevron-square-down:after,.fa-duotone.fa-square-chevron-down:after,.fad.fa-chevron-square-down:after,.fad.fa-square-chevron-down:after{content:"\f329\f329"}.fa-duotone.fa-comment-plus:after,.fad.fa-comment-plus:after{content:"\f4b2\f4b2"}.fa-duotone.fa-triangle-instrument:after,.fa-duotone.fa-triangle-music:after,.fad.fa-triangle-instrument:after,.fad.fa-triangle-music:after{content:"\f8e2\f8e2"}.fa-duotone.fa-wheelchair:after,.fad.fa-wheelchair:after{content:"\f193\f193"}.fa-duotone.fa-user-pilot-tie:after,.fad.fa-user-pilot-tie:after{content:"\e2c1\e2c1"}.fa-duotone.fa-piano-keyboard:after,.fad.fa-piano-keyboard:after{content:"\f8d5\f8d5"}.fa-duotone.fa-bed-empty:after,.fad.fa-bed-empty:after{content:"\f8f9\f8f9"}.fa-duotone.fa-arrow-circle-up:after,.fa-duotone.fa-circle-arrow-up:after,.fad.fa-arrow-circle-up:after,.fad.fa-circle-arrow-up:after{content:"\f0aa\f0aa"}.fa-duotone.fa-toggle-on:after,.fad.fa-toggle-on:after{content:"\f205\f205"}.fa-duotone.fa-rectangle-portrait:after,.fa-duotone.fa-rectangle-vertical:after,.fad.fa-rectangle-portrait:after,.fad.fa-rectangle-vertical:after{content:"\f2fb\f2fb"}.fa-duotone.fa-person-walking:after,.fa-duotone.fa-walking:after,.fad.fa-person-walking:after,.fad.fa-walking:after{content:"\f554\f554"}.fa-duotone.fa-l:after,.fad.fa-l:after{content:"\4c\4c"}.fa-duotone.fa-signal-stream:after,.fad.fa-signal-stream:after{content:"\f8dd\f8dd"}.fa-duotone.fa-down-to-bracket:after,.fad.fa-down-to-bracket:after{content:"\e4e7\e4e7"}.fa-duotone.fa-circle-z:after,.fad.fa-circle-z:after{content:"\e130\e130"}.fa-duotone.fa-stars:after,.fad.fa-stars:after{content:"\f762\f762"}.fa-duotone.fa-fire:after,.fad.fa-fire:after{content:"\f06d\f06d"}.fa-duotone.fa-bed-pulse:after,.fa-duotone.fa-procedures:after,.fad.fa-bed-pulse:after,.fad.fa-procedures:after{content:"\f487\f487"}.fa-duotone.fa-house-day:after,.fad.fa-house-day:after{content:"\e00e\e00e"}.fa-duotone.fa-shuttle-space:after,.fa-duotone.fa-space-shuttle:after,.fad.fa-shuttle-space:after,.fad.fa-space-shuttle:after{content:"\f197\f197"}.fa-duotone.fa-shirt-long-sleeve:after,.fad.fa-shirt-long-sleeve:after{content:"\e3c7\e3c7"}.fa-duotone.fa-chart-pie-alt:after,.fa-duotone.fa-chart-pie-simple:after,.fad.fa-chart-pie-alt:after,.fad.fa-chart-pie-simple:after{content:"\f64e\f64e"}.fa-duotone.fa-face-laugh:after,.fa-duotone.fa-laugh:after,.fad.fa-face-laugh:after,.fad.fa-laugh:after{content:"\f599\f599"}.fa-duotone.fa-folder-open:after,.fad.fa-folder-open:after{content:"\f07c\f07c"}.fa-duotone.fa-album-collection-circle-user:after,.fad.fa-album-collection-circle-user:after{content:"\e48f\e48f"}.fa-duotone.fa-candy:after,.fad.fa-candy:after{content:"\e3e7\e3e7"}.fa-duotone.fa-bowl-hot:after,.fa-duotone.fa-soup:after,.fad.fa-bowl-hot:after,.fad.fa-soup:after{content:"\f823\f823"}.fa-duotone.fa-flatbread:after,.fad.fa-flatbread:after{content:"\e40b\e40b"}.fa-duotone.fa-heart-circle-plus:after,.fad.fa-heart-circle-plus:after{content:"\e500\e500"}.fa-duotone.fa-code-fork:after,.fad.fa-code-fork:after{content:"\e13b\e13b"}.fa-duotone.fa-city:after,.fad.fa-city:after{content:"\f64f\f64f"}.fa-duotone.fa-signal-alt-1:after,.fa-duotone.fa-signal-bars-weak:after,.fad.fa-signal-alt-1:after,.fad.fa-signal-bars-weak:after{content:"\f691\f691"}.fa-duotone.fa-microphone-alt:after,.fa-duotone.fa-microphone-lines:after,.fad.fa-microphone-alt:after,.fad.fa-microphone-lines:after{content:"\f3c9\f3c9"}.fa-duotone.fa-clock-twelve:after,.fad.fa-clock-twelve:after{content:"\e358\e358"}.fa-duotone.fa-pepper-hot:after,.fad.fa-pepper-hot:after{content:"\f816\f816"}.fa-duotone.fa-citrus-slice:after,.fad.fa-citrus-slice:after{content:"\e2f5\e2f5"}.fa-duotone.fa-sheep:after,.fad.fa-sheep:after{content:"\f711\f711"}.fa-duotone.fa-unlock:after,.fad.fa-unlock:after{content:"\f09c\f09c"}.fa-duotone.fa-colon-sign:after,.fad.fa-colon-sign:after{content:"\e140\e140"}.fa-duotone.fa-headset:after,.fad.fa-headset:after{content:"\f590\f590"}.fa-duotone.fa-badger-honey:after,.fad.fa-badger-honey:after{content:"\f6b4\f6b4"}.fa-duotone.fa-h4:after,.fad.fa-h4:after{content:"\f86a\f86a"}.fa-duotone.fa-store-slash:after,.fad.fa-store-slash:after{content:"\e071\e071"}.fa-duotone.fa-road-circle-xmark:after,.fad.fa-road-circle-xmark:after{content:"\e566\e566"}.fa-duotone.fa-signal-slash:after,.fad.fa-signal-slash:after{content:"\f695\f695"}.fa-duotone.fa-user-minus:after,.fad.fa-user-minus:after{content:"\f503\f503"}.fa-duotone.fa-mars-stroke-up:after,.fa-duotone.fa-mars-stroke-v:after,.fad.fa-mars-stroke-up:after,.fad.fa-mars-stroke-v:after{content:"\f22a\f22a"}.fa-duotone.fa-champagne-glasses:after,.fa-duotone.fa-glass-cheers:after,.fad.fa-champagne-glasses:after,.fad.fa-glass-cheers:after{content:"\f79f\f79f"}.fa-duotone.fa-taco:after,.fad.fa-taco:after{content:"\f826\f826"}.fa-duotone.fa-hexagon-plus:after,.fa-duotone.fa-plus-hexagon:after,.fad.fa-hexagon-plus:after,.fad.fa-plus-hexagon:after{content:"\f300\f300"}.fa-duotone.fa-clipboard:after,.fad.fa-clipboard:after{content:"\f328\f328"}.fa-duotone.fa-house-circle-exclamation:after,.fad.fa-house-circle-exclamation:after{content:"\e50a\e50a"}.fa-duotone.fa-file-arrow-up:after,.fa-duotone.fa-file-upload:after,.fad.fa-file-arrow-up:after,.fad.fa-file-upload:after{content:"\f574\f574"}.fa-duotone.fa-wifi-3:after,.fa-duotone.fa-wifi-strong:after,.fa-duotone.fa-wifi:after,.fad.fa-wifi-3:after,.fad.fa-wifi-strong:after,.fad.fa-wifi:after{content:"\f1eb\f1eb"}.fa-duotone.fa-comments-alt:after,.fa-duotone.fa-messages:after,.fad.fa-comments-alt:after,.fad.fa-messages:after{content:"\f4b6\f4b6"}.fa-duotone.fa-bath:after,.fa-duotone.fa-bathtub:after,.fad.fa-bath:after,.fad.fa-bathtub:after{content:"\f2cd\f2cd"}.fa-duotone.fa-umbrella-alt:after,.fa-duotone.fa-umbrella-simple:after,.fad.fa-umbrella-alt:after,.fad.fa-umbrella-simple:after{content:"\e2bc\e2bc"}.fa-duotone.fa-rectangle-history-circle-plus:after,.fad.fa-rectangle-history-circle-plus:after{content:"\e4a3\e4a3"}.fa-duotone.fa-underline:after,.fad.fa-underline:after{content:"\f0cd\f0cd"}.fa-duotone.fa-prescription-bottle-pill:after,.fad.fa-prescription-bottle-pill:after{content:"\e5c0\e5c0"}.fa-duotone.fa-user-edit:after,.fa-duotone.fa-user-pen:after,.fad.fa-user-edit:after,.fad.fa-user-pen:after{content:"\f4ff\f4ff"}.fa-duotone.fa-binary-slash:after,.fad.fa-binary-slash:after{content:"\e33e\e33e"}.fa-duotone.fa-square-o:after,.fad.fa-square-o:after{content:"\e278\e278"}.fa-duotone.fa-signature:after,.fad.fa-signature:after{content:"\f5b7\f5b7"}.fa-duotone.fa-stroopwafel:after,.fad.fa-stroopwafel:after{content:"\f551\f551"}.fa-duotone.fa-bold:after,.fad.fa-bold:after{content:"\f032\f032"}.fa-duotone.fa-anchor-lock:after,.fad.fa-anchor-lock:after{content:"\e4ad\e4ad"}.fa-duotone.fa-building-ngo:after,.fad.fa-building-ngo:after{content:"\e4d7\e4d7"}.fa-duotone.fa-transporter-3:after,.fad.fa-transporter-3:after{content:"\e045\e045"}.fa-duotone.fa-engine-exclamation:after,.fa-duotone.fa-engine-warning:after,.fad.fa-engine-exclamation:after,.fad.fa-engine-warning:after{content:"\f5f2\f5f2"}.fa-duotone.fa-circle-down-right:after,.fad.fa-circle-down-right:after{content:"\e108\e108"}.fa-duotone.fa-square-k:after,.fad.fa-square-k:after{content:"\e274\e274"}.fa-duotone.fa-manat-sign:after,.fad.fa-manat-sign:after{content:"\e1d5\e1d5"}.fa-duotone.fa-money-check-edit:after,.fa-duotone.fa-money-check-pen:after,.fad.fa-money-check-edit:after,.fad.fa-money-check-pen:after{content:"\f872\f872"}.fa-duotone.fa-not-equal:after,.fad.fa-not-equal:after{content:"\f53e\f53e"}.fa-duotone.fa-border-style:after,.fa-duotone.fa-border-top-left:after,.fad.fa-border-style:after,.fad.fa-border-top-left:after{content:"\f853\f853"}.fa-duotone.fa-map-location-dot:after,.fa-duotone.fa-map-marked-alt:after,.fad.fa-map-location-dot:after,.fad.fa-map-marked-alt:after{content:"\f5a0\f5a0"}.fa-duotone.fa-tilde:after,.fad.fa-tilde:after{content:"\7e\7e"}.fa-duotone.fa-jedi:after,.fad.fa-jedi:after{content:"\f669\f669"}.fa-duotone.fa-poll:after,.fa-duotone.fa-square-poll-vertical:after,.fad.fa-poll:after,.fad.fa-square-poll-vertical:after{content:"\f681\f681"}.fa-duotone.fa-arrow-down-square-triangle:after,.fa-duotone.fa-sort-shapes-down-alt:after,.fad.fa-arrow-down-square-triangle:after,.fad.fa-sort-shapes-down-alt:after{content:"\f889\f889"}.fa-duotone.fa-mug-hot:after,.fad.fa-mug-hot:after{content:"\f7b6\f7b6"}.fa-duotone.fa-dog-leashed:after,.fad.fa-dog-leashed:after{content:"\f6d4\f6d4"}.fa-duotone.fa-battery-car:after,.fa-duotone.fa-car-battery:after,.fad.fa-battery-car:after,.fad.fa-car-battery:after{content:"\f5df\f5df"}.fa-duotone.fa-face-downcast-sweat:after,.fad.fa-face-downcast-sweat:after{content:"\e371\e371"}.fa-duotone.fa-mailbox-flag-up:after,.fad.fa-mailbox-flag-up:after{content:"\e5bb\e5bb"}.fa-duotone.fa-memo-circle-info:after,.fad.fa-memo-circle-info:after{content:"\e49a\e49a"}.fa-duotone.fa-gift:after,.fad.fa-gift:after{content:"\f06b\f06b"}.fa-duotone.fa-dice-two:after,.fad.fa-dice-two:after{content:"\f528\f528"}.fa-duotone.fa-volume-medium:after,.fa-duotone.fa-volume:after,.fad.fa-volume-medium:after,.fad.fa-volume:after{content:"\f6a8\f6a8"}.fa-duotone.fa-transporter-5:after,.fad.fa-transporter-5:after{content:"\e2a6\e2a6"}.fa-duotone.fa-gauge-circle-bolt:after,.fad.fa-gauge-circle-bolt:after{content:"\e496\e496"}.fa-duotone.fa-coin-front:after,.fad.fa-coin-front:after{content:"\e3fc\e3fc"}.fa-duotone.fa-file-slash:after,.fad.fa-file-slash:after{content:"\e3a7\e3a7"}.fa-duotone.fa-message-arrow-up-right:after,.fad.fa-message-arrow-up-right:after{content:"\e1dd\e1dd"}.fa-duotone.fa-treasure-chest:after,.fad.fa-treasure-chest:after{content:"\f723\f723"}.fa-duotone.fa-chess-queen:after,.fad.fa-chess-queen:after{content:"\f445\f445"}.fa-duotone.fa-paint-brush-alt:after,.fa-duotone.fa-paint-brush-fine:after,.fa-duotone.fa-paintbrush-alt:after,.fa-duotone.fa-paintbrush-fine:after,.fad.fa-paint-brush-alt:after,.fad.fa-paint-brush-fine:after,.fad.fa-paintbrush-alt:after,.fad.fa-paintbrush-fine:after{content:"\f5a9\f5a9"}.fa-duotone.fa-glasses:after,.fad.fa-glasses:after{content:"\f530\f530"}.fa-duotone.fa-hood-cloak:after,.fad.fa-hood-cloak:after{content:"\f6ef\f6ef"}.fa-duotone.fa-square-quote:after,.fad.fa-square-quote:after{content:"\e329\e329"}.fa-duotone.fa-up-left:after,.fad.fa-up-left:after{content:"\e2bd\e2bd"}.fa-duotone.fa-bring-front:after,.fad.fa-bring-front:after{content:"\f857\f857"}.fa-duotone.fa-chess-board:after,.fad.fa-chess-board:after{content:"\f43c\f43c"}.fa-duotone.fa-burger-cheese:after,.fa-duotone.fa-cheeseburger:after,.fad.fa-burger-cheese:after,.fad.fa-cheeseburger:after{content:"\f7f1\f7f1"}.fa-duotone.fa-building-circle-check:after,.fad.fa-building-circle-check:after{content:"\e4d2\e4d2"}.fa-duotone.fa-repeat-1:after,.fad.fa-repeat-1:after{content:"\f365\f365"}.fa-duotone.fa-arrow-down-to-line:after,.fa-duotone.fa-arrow-to-bottom:after,.fad.fa-arrow-down-to-line:after,.fad.fa-arrow-to-bottom:after{content:"\f33d\f33d"}.fa-duotone.fa-grid-5:after,.fad.fa-grid-5:after{content:"\e199\e199"}.fa-duotone.fa-swap-arrows:after,.fad.fa-swap-arrows:after{content:"\e60a\e60a"}.fa-duotone.fa-right-long-to-line:after,.fad.fa-right-long-to-line:after{content:"\e444\e444"}.fa-duotone.fa-person-chalkboard:after,.fad.fa-person-chalkboard:after{content:"\e53d\e53d"}.fa-duotone.fa-mars-stroke-h:after,.fa-duotone.fa-mars-stroke-right:after,.fad.fa-mars-stroke-h:after,.fad.fa-mars-stroke-right:after{content:"\f22b\f22b"}.fa-duotone.fa-hand-back-fist:after,.fa-duotone.fa-hand-rock:after,.fad.fa-hand-back-fist:after,.fad.fa-hand-rock:after{content:"\f255\f255"}.fa-duotone.fa-grid-round-5:after,.fad.fa-grid-round-5:after{content:"\e5de\e5de"}.fa-duotone.fa-tally-5:after,.fa-duotone.fa-tally:after,.fad.fa-tally-5:after,.fad.fa-tally:after{content:"\f69c\f69c"}.fa-duotone.fa-caret-square-up:after,.fa-duotone.fa-square-caret-up:after,.fad.fa-caret-square-up:after,.fad.fa-square-caret-up:after{content:"\f151\f151"}.fa-duotone.fa-cloud-showers-water:after,.fad.fa-cloud-showers-water:after{content:"\e4e4\e4e4"}.fa-duotone.fa-bar-chart:after,.fa-duotone.fa-chart-bar:after,.fad.fa-bar-chart:after,.fad.fa-chart-bar:after{content:"\f080\f080"}.fa-duotone.fa-hands-bubbles:after,.fa-duotone.fa-hands-wash:after,.fad.fa-hands-bubbles:after,.fad.fa-hands-wash:after{content:"\e05e\e05e"}.fa-duotone.fa-less-than-equal:after,.fad.fa-less-than-equal:after{content:"\f537\f537"}.fa-duotone.fa-train:after,.fad.fa-train:after{content:"\f238\f238"}.fa-duotone.fa-up-from-dotted-line:after,.fad.fa-up-from-dotted-line:after{content:"\e456\e456"}.fa-duotone.fa-eye-low-vision:after,.fa-duotone.fa-low-vision:after,.fad.fa-eye-low-vision:after,.fad.fa-low-vision:after{content:"\f2a8\f2a8"}.fa-duotone.fa-traffic-light-go:after,.fad.fa-traffic-light-go:after{content:"\f638\f638"}.fa-duotone.fa-face-exhaling:after,.fad.fa-face-exhaling:after{content:"\e480\e480"}.fa-duotone.fa-sensor-fire:after,.fad.fa-sensor-fire:after{content:"\e02a\e02a"}.fa-duotone.fa-user-unlock:after,.fad.fa-user-unlock:after{content:"\e058\e058"}.fa-duotone.fa-hexagon-divide:after,.fad.fa-hexagon-divide:after{content:"\e1ad\e1ad"}.fa-duotone.fa-00:after,.fad.fa-00:after{content:"\e467\e467"}.fa-duotone.fa-crow:after,.fad.fa-crow:after{content:"\f520\f520"}.fa-duotone.fa-betamax:after,.fa-duotone.fa-cassette-betamax:after,.fad.fa-betamax:after,.fad.fa-cassette-betamax:after{content:"\f8a4\f8a4"}.fa-duotone.fa-sailboat:after,.fad.fa-sailboat:after{content:"\e445\e445"}.fa-duotone.fa-window-restore:after,.fad.fa-window-restore:after{content:"\f2d2\f2d2"}.fa-duotone.fa-nfc-magnifying-glass:after,.fad.fa-nfc-magnifying-glass:after{content:"\e1f9\e1f9"}.fa-duotone.fa-file-binary:after,.fad.fa-file-binary:after{content:"\e175\e175"}.fa-duotone.fa-circle-v:after,.fad.fa-circle-v:after{content:"\e12a\e12a"}.fa-duotone.fa-plus-square:after,.fa-duotone.fa-square-plus:after,.fad.fa-plus-square:after,.fad.fa-square-plus:after{content:"\f0fe\f0fe"}.fa-duotone.fa-bowl-scoops:after,.fad.fa-bowl-scoops:after{content:"\e3df\e3df"}.fa-duotone.fa-mistletoe:after,.fad.fa-mistletoe:after{content:"\f7b4\f7b4"}.fa-duotone.fa-custard:after,.fad.fa-custard:after{content:"\e403\e403"}.fa-duotone.fa-lacrosse-stick:after,.fad.fa-lacrosse-stick:after{content:"\e3b5\e3b5"}.fa-duotone.fa-hockey-mask:after,.fad.fa-hockey-mask:after{content:"\f6ee\f6ee"}.fa-duotone.fa-sunrise:after,.fad.fa-sunrise:after{content:"\f766\f766"}.fa-duotone.fa-subtitles:after,.fad.fa-subtitles:after{content:"\e60f\e60f"}.fa-duotone.fa-panel-ews:after,.fad.fa-panel-ews:after{content:"\e42e\e42e"}.fa-duotone.fa-torii-gate:after,.fad.fa-torii-gate:after{content:"\f6a1\f6a1"}.fa-duotone.fa-cloud-exclamation:after,.fad.fa-cloud-exclamation:after{content:"\e491\e491"}.fa-duotone.fa-comment-alt-lines:after,.fa-duotone.fa-message-lines:after,.fad.fa-comment-alt-lines:after,.fad.fa-message-lines:after{content:"\f4a6\f4a6"}.fa-duotone.fa-frog:after,.fad.fa-frog:after{content:"\f52e\f52e"}.fa-duotone.fa-bucket:after,.fad.fa-bucket:after{content:"\e4cf\e4cf"}.fa-duotone.fa-floppy-disk-pen:after,.fad.fa-floppy-disk-pen:after{content:"\e182\e182"}.fa-duotone.fa-image:after,.fad.fa-image:after{content:"\f03e\f03e"}.fa-duotone.fa-window-frame:after,.fad.fa-window-frame:after{content:"\e04f\e04f"}.fa-duotone.fa-microphone:after,.fad.fa-microphone:after{content:"\f130\f130"}.fa-duotone.fa-cow:after,.fad.fa-cow:after{content:"\f6c8\f6c8"}.fa-duotone.fa-file-zip:after,.fad.fa-file-zip:after{content:"\e5ee\e5ee"}.fa-duotone.fa-square-ring:after,.fad.fa-square-ring:after{content:"\e44f\e44f"}.fa-duotone.fa-arrow-alt-from-top:after,.fa-duotone.fa-down-from-line:after,.fad.fa-arrow-alt-from-top:after,.fad.fa-down-from-line:after{content:"\f349\f349"}.fa-duotone.fa-caret-up:after,.fad.fa-caret-up:after{content:"\f0d8\f0d8"}.fa-duotone.fa-shield-times:after,.fa-duotone.fa-shield-xmark:after,.fad.fa-shield-times:after,.fad.fa-shield-xmark:after{content:"\e24c\e24c"}.fa-duotone.fa-screwdriver:after,.fad.fa-screwdriver:after{content:"\f54a\f54a"}.fa-duotone.fa-circle-sort-down:after,.fa-duotone.fa-sort-circle-down:after,.fad.fa-circle-sort-down:after,.fad.fa-sort-circle-down:after{content:"\e031\e031"}.fa-duotone.fa-folder-closed:after,.fad.fa-folder-closed:after{content:"\e185\e185"}.fa-duotone.fa-house-tsunami:after,.fad.fa-house-tsunami:after{content:"\e515\e515"}.fa-duotone.fa-square-nfi:after,.fad.fa-square-nfi:after{content:"\e576\e576"}.fa-duotone.fa-forklift:after,.fad.fa-forklift:after{content:"\f47a\f47a"}.fa-duotone.fa-arrow-up-from-ground-water:after,.fad.fa-arrow-up-from-ground-water:after{content:"\e4b5\e4b5"}.fa-duotone.fa-bracket-square-right:after,.fad.fa-bracket-square-right:after{content:"\5d\5d"}.fa-duotone.fa-glass-martini-alt:after,.fa-duotone.fa-martini-glass:after,.fad.fa-glass-martini-alt:after,.fad.fa-martini-glass:after{content:"\f57b\f57b"}.fa-duotone.fa-rotate-back:after,.fa-duotone.fa-rotate-backward:after,.fa-duotone.fa-rotate-left:after,.fa-duotone.fa-undo-alt:after,.fad.fa-rotate-back:after,.fad.fa-rotate-backward:after,.fad.fa-rotate-left:after,.fad.fa-undo-alt:after{content:"\f2ea\f2ea"}.fa-duotone.fa-columns:after,.fa-duotone.fa-table-columns:after,.fad.fa-columns:after,.fad.fa-table-columns:after{content:"\f0db\f0db"}.fa-duotone.fa-square-a:after,.fad.fa-square-a:after{content:"\e25f\e25f"}.fa-duotone.fa-tick:after,.fad.fa-tick:after{content:"\e32f\e32f"}.fa-duotone.fa-lemon:after,.fad.fa-lemon:after{content:"\f094\f094"}.fa-duotone.fa-head-side-mask:after,.fad.fa-head-side-mask:after{content:"\e063\e063"}.fa-duotone.fa-handshake:after,.fad.fa-handshake:after{content:"\f2b5\f2b5"}.fa-duotone.fa-gem:after,.fad.fa-gem:after{content:"\f3a5\f3a5"}.fa-duotone.fa-dolly-box:after,.fa-duotone.fa-dolly:after,.fad.fa-dolly-box:after,.fad.fa-dolly:after{content:"\f472\f472"}.fa-duotone.fa-smoking:after,.fad.fa-smoking:after{content:"\f48d\f48d"}.fa-duotone.fa-compress-arrows-alt:after,.fa-duotone.fa-minimize:after,.fad.fa-compress-arrows-alt:after,.fad.fa-minimize:after{content:"\f78c\f78c"}.fa-duotone.fa-refrigerator:after,.fad.fa-refrigerator:after{content:"\e026\e026"}.fa-duotone.fa-monument:after,.fad.fa-monument:after{content:"\f5a6\f5a6"}.fa-duotone.fa-octagon-xmark:after,.fa-duotone.fa-times-octagon:after,.fa-duotone.fa-xmark-octagon:after,.fad.fa-octagon-xmark:after,.fad.fa-times-octagon:after,.fad.fa-xmark-octagon:after{content:"\f2f0\f2f0"}.fa-duotone.fa-align-slash:after,.fad.fa-align-slash:after{content:"\f846\f846"}.fa-duotone.fa-snowplow:after,.fad.fa-snowplow:after{content:"\f7d2\f7d2"}.fa-duotone.fa-angle-double-right:after,.fa-duotone.fa-angles-right:after,.fad.fa-angle-double-right:after,.fad.fa-angles-right:after{content:"\f101\f101"}.fa-duotone.fa-truck-couch:after,.fa-duotone.fa-truck-ramp-couch:after,.fad.fa-truck-couch:after,.fad.fa-truck-ramp-couch:after{content:"\f4dd\f4dd"}.fa-duotone.fa-cannabis:after,.fad.fa-cannabis:after{content:"\f55f\f55f"}.fa-duotone.fa-circle-play:after,.fa-duotone.fa-play-circle:after,.fad.fa-circle-play:after,.fad.fa-play-circle:after{content:"\f144\f144"}.fa-duotone.fa-arrow-up-right-and-arrow-down-left-from-center:after,.fad.fa-arrow-up-right-and-arrow-down-left-from-center:after{content:"\e0a0\e0a0"}.fa-duotone.fa-location-arrow-up:after,.fad.fa-location-arrow-up:after{content:"\e63a\e63a"}.fa-duotone.fa-tablets:after,.fad.fa-tablets:after{content:"\f490\f490"}.fa-duotone.fa-360-degrees:after,.fad.fa-360-degrees:after{content:"\e2dc\e2dc"}.fa-duotone.fa-ethernet:after,.fad.fa-ethernet:after{content:"\f796\f796"}.fa-duotone.fa-eur:after,.fa-duotone.fa-euro-sign:after,.fa-duotone.fa-euro:after,.fad.fa-eur:after,.fad.fa-euro-sign:after,.fad.fa-euro:after{content:"\f153\f153"}.fa-duotone.fa-chair:after,.fad.fa-chair:after{content:"\f6c0\f6c0"}.fa-duotone.fa-check-circle:after,.fa-duotone.fa-circle-check:after,.fad.fa-check-circle:after,.fad.fa-circle-check:after{content:"\f058\f058"}.fa-duotone.fa-square-dashed-circle-plus:after,.fad.fa-square-dashed-circle-plus:after{content:"\e5c2\e5c2"}.fa-duotone.fa-hand-holding-circle-dollar:after,.fad.fa-hand-holding-circle-dollar:after{content:"\e621\e621"}.fa-duotone.fa-money-simple-from-bracket:after,.fad.fa-money-simple-from-bracket:after{content:"\e313\e313"}.fa-duotone.fa-bat:after,.fad.fa-bat:after{content:"\f6b5\f6b5"}.fa-duotone.fa-circle-stop:after,.fa-duotone.fa-stop-circle:after,.fad.fa-circle-stop:after,.fad.fa-stop-circle:after{content:"\f28d\f28d"}.fa-duotone.fa-head-side-headphones:after,.fad.fa-head-side-headphones:after{content:"\f8c2\f8c2"}.fa-duotone.fa-phone-rotary:after,.fad.fa-phone-rotary:after{content:"\f8d3\f8d3"}.fa-duotone.fa-compass-drafting:after,.fa-duotone.fa-drafting-compass:after,.fad.fa-compass-drafting:after,.fad.fa-drafting-compass:after{content:"\f568\f568"}.fa-duotone.fa-plate-wheat:after,.fad.fa-plate-wheat:after{content:"\e55a\e55a"}.fa-duotone.fa-calendar-circle-minus:after,.fad.fa-calendar-circle-minus:after{content:"\e46f\e46f"}.fa-duotone.fa-chopsticks:after,.fad.fa-chopsticks:after{content:"\e3f7\e3f7"}.fa-duotone.fa-car-mechanic:after,.fa-duotone.fa-car-wrench:after,.fad.fa-car-mechanic:after,.fad.fa-car-wrench:after{content:"\f5e3\f5e3"}.fa-duotone.fa-icicles:after,.fad.fa-icicles:after{content:"\f7ad\f7ad"}.fa-duotone.fa-person-shelter:after,.fad.fa-person-shelter:after{content:"\e54f\e54f"}.fa-duotone.fa-neuter:after,.fad.fa-neuter:after{content:"\f22c\f22c"}.fa-duotone.fa-id-badge:after,.fad.fa-id-badge:after{content:"\f2c1\f2c1"}.fa-duotone.fa-kazoo:after,.fad.fa-kazoo:after{content:"\f8c7\f8c7"}.fa-duotone.fa-marker:after,.fad.fa-marker:after{content:"\f5a1\f5a1"}.fa-duotone.fa-bin-bottles:after,.fad.fa-bin-bottles:after{content:"\e5f5\e5f5"}.fa-duotone.fa-face-laugh-beam:after,.fa-duotone.fa-laugh-beam:after,.fad.fa-face-laugh-beam:after,.fad.fa-laugh-beam:after{content:"\f59a\f59a"}.fa-duotone.fa-square-arrow-down-left:after,.fad.fa-square-arrow-down-left:after{content:"\e261\e261"}.fa-duotone.fa-battery-bolt:after,.fad.fa-battery-bolt:after{content:"\f376\f376"}.fa-duotone.fa-tree-large:after,.fad.fa-tree-large:after{content:"\f7dd\f7dd"}.fa-duotone.fa-helicopter-symbol:after,.fad.fa-helicopter-symbol:after{content:"\e502\e502"}.fa-duotone.fa-aperture:after,.fad.fa-aperture:after{content:"\e2df\e2df"}.fa-duotone.fa-universal-access:after,.fad.fa-universal-access:after{content:"\f29a\f29a"}.fa-duotone.fa-gear-complex:after,.fad.fa-gear-complex:after{content:"\e5e9\e5e9"}.fa-duotone.fa-file-magnifying-glass:after,.fa-duotone.fa-file-search:after,.fad.fa-file-magnifying-glass:after,.fad.fa-file-search:after{content:"\f865\f865"}.fa-duotone.fa-up-right:after,.fad.fa-up-right:after{content:"\e2be\e2be"}.fa-duotone.fa-chevron-circle-up:after,.fa-duotone.fa-circle-chevron-up:after,.fad.fa-chevron-circle-up:after,.fad.fa-circle-chevron-up:after{content:"\f139\f139"}.fa-duotone.fa-user-police:after,.fad.fa-user-police:after{content:"\e333\e333"}.fa-duotone.fa-lari-sign:after,.fad.fa-lari-sign:after{content:"\e1c8\e1c8"}.fa-duotone.fa-volcano:after,.fad.fa-volcano:after{content:"\f770\f770"}.fa-duotone.fa-teddy-bear:after,.fad.fa-teddy-bear:after{content:"\e3cf\e3cf"}.fa-duotone.fa-stocking:after,.fad.fa-stocking:after{content:"\f7d5\f7d5"}.fa-duotone.fa-person-walking-dashed-line-arrow-right:after,.fad.fa-person-walking-dashed-line-arrow-right:after{content:"\e553\e553"}.fa-duotone.fa-image-slash:after,.fad.fa-image-slash:after{content:"\e1b7\e1b7"}.fa-duotone.fa-mask-snorkel:after,.fad.fa-mask-snorkel:after{content:"\e3b7\e3b7"}.fa-duotone.fa-smoke:after,.fad.fa-smoke:after{content:"\f760\f760"}.fa-duotone.fa-gbp:after,.fa-duotone.fa-pound-sign:after,.fa-duotone.fa-sterling-sign:after,.fad.fa-gbp:after,.fad.fa-pound-sign:after,.fad.fa-sterling-sign:after{content:"\f154\f154"}.fa-duotone.fa-battery-exclamation:after,.fad.fa-battery-exclamation:after{content:"\e0b0\e0b0"}.fa-duotone.fa-viruses:after,.fad.fa-viruses:after{content:"\e076\e076"}.fa-duotone.fa-square-person-confined:after,.fad.fa-square-person-confined:after{content:"\e577\e577"}.fa-duotone.fa-user-tie:after,.fad.fa-user-tie:after{content:"\f508\f508"}.fa-duotone.fa-arrow-down-long:after,.fa-duotone.fa-long-arrow-down:after,.fad.fa-arrow-down-long:after,.fad.fa-long-arrow-down:after{content:"\f175\f175"}.fa-duotone.fa-tent-arrow-down-to-line:after,.fad.fa-tent-arrow-down-to-line:after{content:"\e57e\e57e"}.fa-duotone.fa-certificate:after,.fad.fa-certificate:after{content:"\f0a3\f0a3"}.fa-duotone.fa-crystal-ball:after,.fad.fa-crystal-ball:after{content:"\e362\e362"}.fa-duotone.fa-mail-reply-all:after,.fa-duotone.fa-reply-all:after,.fad.fa-mail-reply-all:after,.fad.fa-reply-all:after{content:"\f122\f122"}.fa-duotone.fa-suitcase:after,.fad.fa-suitcase:after{content:"\f0f2\f0f2"}.fa-duotone.fa-person-skating:after,.fa-duotone.fa-skating:after,.fad.fa-person-skating:after,.fad.fa-skating:after{content:"\f7c5\f7c5"}.fa-duotone.fa-star-shooting:after,.fad.fa-star-shooting:after{content:"\e036\e036"}.fa-duotone.fa-binary-lock:after,.fad.fa-binary-lock:after{content:"\e33d\e33d"}.fa-duotone.fa-filter-circle-dollar:after,.fa-duotone.fa-funnel-dollar:after,.fad.fa-filter-circle-dollar:after,.fad.fa-funnel-dollar:after{content:"\f662\f662"}.fa-duotone.fa-camera-retro:after,.fad.fa-camera-retro:after{content:"\f083\f083"}.fa-duotone.fa-arrow-circle-down:after,.fa-duotone.fa-circle-arrow-down:after,.fad.fa-arrow-circle-down:after,.fad.fa-circle-arrow-down:after{content:"\f0ab\f0ab"}.fa-duotone.fa-comment-edit:after,.fa-duotone.fa-comment-pen:after,.fad.fa-comment-edit:after,.fad.fa-comment-pen:after{content:"\f4ae\f4ae"}.fa-duotone.fa-arrow-right-to-file:after,.fa-duotone.fa-file-import:after,.fad.fa-arrow-right-to-file:after,.fad.fa-file-import:after{content:"\f56f\f56f"}.fa-duotone.fa-banjo:after,.fad.fa-banjo:after{content:"\f8a3\f8a3"}.fa-duotone.fa-external-link-square:after,.fa-duotone.fa-square-arrow-up-right:after,.fad.fa-external-link-square:after,.fad.fa-square-arrow-up-right:after{content:"\f14c\f14c"}.fa-duotone.fa-light-emergency-on:after,.fad.fa-light-emergency-on:after{content:"\e420\e420"}.fa-duotone.fa-kerning:after,.fad.fa-kerning:after{content:"\f86f\f86f"}.fa-duotone.fa-box-open:after,.fad.fa-box-open:after{content:"\f49e\f49e"}.fa-duotone.fa-square-f:after,.fad.fa-square-f:after{content:"\e270\e270"}.fa-duotone.fa-scroll:after,.fad.fa-scroll:after{content:"\f70e\f70e"}.fa-duotone.fa-spa:after,.fad.fa-spa:after{content:"\f5bb\f5bb"}.fa-duotone.fa-arrow-from-right:after,.fa-duotone.fa-arrow-left-from-line:after,.fad.fa-arrow-from-right:after,.fad.fa-arrow-left-from-line:after{content:"\f344\f344"}.fa-duotone.fa-strawberry:after,.fad.fa-strawberry:after{content:"\e32b\e32b"}.fa-duotone.fa-location-pin-lock:after,.fad.fa-location-pin-lock:after{content:"\e51f\e51f"}.fa-duotone.fa-pause:after,.fad.fa-pause:after{content:"\f04c\f04c"}.fa-duotone.fa-clock-eight-thirty:after,.fad.fa-clock-eight-thirty:after{content:"\e346\e346"}.fa-duotone.fa-plane-alt:after,.fa-duotone.fa-plane-engines:after,.fad.fa-plane-alt:after,.fad.fa-plane-engines:after{content:"\f3de\f3de"}.fa-duotone.fa-hill-avalanche:after,.fad.fa-hill-avalanche:after{content:"\e507\e507"}.fa-duotone.fa-temperature-0:after,.fa-duotone.fa-temperature-empty:after,.fa-duotone.fa-thermometer-0:after,.fa-duotone.fa-thermometer-empty:after,.fad.fa-temperature-0:after,.fad.fa-temperature-empty:after,.fad.fa-thermometer-0:after,.fad.fa-thermometer-empty:after{content:"\f2cb\f2cb"}.fa-duotone.fa-bomb:after,.fad.fa-bomb:after{content:"\f1e2\f1e2"}.fa-duotone.fa-gauge-low:after,.fa-duotone.fa-tachometer-alt-slow:after,.fad.fa-gauge-low:after,.fad.fa-tachometer-alt-slow:after{content:"\f627\f627"}.fa-duotone.fa-registered:after,.fad.fa-registered:after{content:"\f25d\f25d"}.fa-duotone.fa-trash-can-plus:after,.fad.fa-trash-can-plus:after{content:"\e2ac\e2ac"}.fa-duotone.fa-address-card:after,.fa-duotone.fa-contact-card:after,.fa-duotone.fa-vcard:after,.fad.fa-address-card:after,.fad.fa-contact-card:after,.fad.fa-vcard:after{content:"\f2bb\f2bb"}.fa-duotone.fa-balance-scale-right:after,.fa-duotone.fa-scale-unbalanced-flip:after,.fad.fa-balance-scale-right:after,.fad.fa-scale-unbalanced-flip:after{content:"\f516\f516"}.fa-duotone.fa-globe-snow:after,.fad.fa-globe-snow:after{content:"\f7a3\f7a3"}.fa-duotone.fa-subscript:after,.fad.fa-subscript:after{content:"\f12c\f12c"}.fa-duotone.fa-diamond-turn-right:after,.fa-duotone.fa-directions:after,.fad.fa-diamond-turn-right:after,.fad.fa-directions:after{content:"\f5eb\f5eb"}.fa-duotone.fa-integral:after,.fad.fa-integral:after{content:"\f667\f667"}.fa-duotone.fa-burst:after,.fad.fa-burst:after{content:"\e4dc\e4dc"}.fa-duotone.fa-house-laptop:after,.fa-duotone.fa-laptop-house:after,.fad.fa-house-laptop:after,.fad.fa-laptop-house:after{content:"\e066\e066"}.fa-duotone.fa-face-tired:after,.fa-duotone.fa-tired:after,.fad.fa-face-tired:after,.fad.fa-tired:after{content:"\f5c8\f5c8"}.fa-duotone.fa-money-bills:after,.fad.fa-money-bills:after{content:"\e1f3\e1f3"}.fa-duotone.fa-blinds-raised:after,.fad.fa-blinds-raised:after{content:"\f8fd\f8fd"}.fa-duotone.fa-smog:after,.fad.fa-smog:after{content:"\f75f\f75f"}.fa-duotone.fa-ufo-beam:after,.fad.fa-ufo-beam:after{content:"\e048\e048"}.fa-duotone.fa-caret-circle-up:after,.fa-duotone.fa-circle-caret-up:after,.fad.fa-caret-circle-up:after,.fad.fa-circle-caret-up:after{content:"\f331\f331"}.fa-duotone.fa-user-vneck-hair-long:after,.fad.fa-user-vneck-hair-long:after{content:"\e463\e463"}.fa-duotone.fa-square-a-lock:after,.fad.fa-square-a-lock:after{content:"\e44d\e44d"}.fa-duotone.fa-crutch:after,.fad.fa-crutch:after{content:"\f7f7\f7f7"}.fa-duotone.fa-gas-pump-slash:after,.fad.fa-gas-pump-slash:after{content:"\f5f4\f5f4"}.fa-duotone.fa-cloud-arrow-up:after,.fa-duotone.fa-cloud-upload-alt:after,.fa-duotone.fa-cloud-upload:after,.fad.fa-cloud-arrow-up:after,.fad.fa-cloud-upload-alt:after,.fad.fa-cloud-upload:after{content:"\f0ee\f0ee"}.fa-duotone.fa-palette:after,.fad.fa-palette:after{content:"\f53f\f53f"}.fa-duotone.fa-transporter-4:after,.fad.fa-transporter-4:after{content:"\e2a5\e2a5"}.fa-duotone.fa-chart-mixed-up-circle-currency:after,.fad.fa-chart-mixed-up-circle-currency:after{content:"\e5d8\e5d8"}.fa-duotone.fa-objects-align-right:after,.fad.fa-objects-align-right:after{content:"\e3bf\e3bf"}.fa-duotone.fa-arrows-turn-right:after,.fad.fa-arrows-turn-right:after{content:"\e4c0\e4c0"}.fa-duotone.fa-vest:after,.fad.fa-vest:after{content:"\e085\e085"}.fa-duotone.fa-pig:after,.fad.fa-pig:after{content:"\f706\f706"}.fa-duotone.fa-inbox-full:after,.fad.fa-inbox-full:after{content:"\e1ba\e1ba"}.fa-duotone.fa-circle-envelope:after,.fa-duotone.fa-envelope-circle:after,.fad.fa-circle-envelope:after,.fad.fa-envelope-circle:after{content:"\e10c\e10c"}.fa-duotone.fa-construction:after,.fa-duotone.fa-triangle-person-digging:after,.fad.fa-construction:after,.fad.fa-triangle-person-digging:after{content:"\f85d\f85d"}.fa-duotone.fa-ferry:after,.fad.fa-ferry:after{content:"\e4ea\e4ea"}.fa-duotone.fa-bullseye-arrow:after,.fad.fa-bullseye-arrow:after{content:"\f648\f648"}.fa-duotone.fa-arrows-down-to-people:after,.fad.fa-arrows-down-to-people:after{content:"\e4b9\e4b9"}.fa-duotone.fa-seedling:after,.fa-duotone.fa-sprout:after,.fad.fa-seedling:after,.fad.fa-sprout:after{content:"\f4d8\f4d8"}.fa-duotone.fa-clock-seven:after,.fad.fa-clock-seven:after{content:"\e350\e350"}.fa-duotone.fa-arrows-alt-h:after,.fa-duotone.fa-left-right:after,.fad.fa-arrows-alt-h:after,.fad.fa-left-right:after{content:"\f337\f337"}.fa-duotone.fa-boxes-packing:after,.fad.fa-boxes-packing:after{content:"\e4c7\e4c7"}.fa-duotone.fa-arrow-circle-left:after,.fa-duotone.fa-circle-arrow-left:after,.fad.fa-arrow-circle-left:after,.fad.fa-circle-arrow-left:after{content:"\f0a8\f0a8"}.fa-duotone.fa-flashlight:after,.fad.fa-flashlight:after{content:"\f8b8\f8b8"}.fa-duotone.fa-file-jpg:after,.fad.fa-file-jpg:after{content:"\e646\e646"}.fa-duotone.fa-group-arrows-rotate:after,.fad.fa-group-arrows-rotate:after{content:"\e4f6\e4f6"}.fa-duotone.fa-bowl-food:after,.fad.fa-bowl-food:after{content:"\e4c6\e4c6"}.fa-duotone.fa-square-9:after,.fad.fa-square-9:after{content:"\e25e\e25e"}.fa-duotone.fa-candy-cane:after,.fad.fa-candy-cane:after{content:"\f786\f786"}.fa-duotone.fa-arrow-down-wide-short:after,.fa-duotone.fa-sort-amount-asc:after,.fa-duotone.fa-sort-amount-down:after,.fad.fa-arrow-down-wide-short:after,.fad.fa-sort-amount-asc:after,.fad.fa-sort-amount-down:after{content:"\f160\f160"}.fa-duotone.fa-dollar-square:after,.fa-duotone.fa-square-dollar:after,.fa-duotone.fa-usd-square:after,.fad.fa-dollar-square:after,.fad.fa-square-dollar:after,.fad.fa-usd-square:after{content:"\f2e9\f2e9"}.fa-duotone.fa-phone-arrow-right:after,.fad.fa-phone-arrow-right:after{content:"\e5be\e5be"}.fa-duotone.fa-hand-holding-seedling:after,.fad.fa-hand-holding-seedling:after{content:"\f4bf\f4bf"}.fa-duotone.fa-comment-alt-check:after,.fa-duotone.fa-message-check:after,.fad.fa-comment-alt-check:after,.fad.fa-message-check:after{content:"\f4a2\f4a2"}.fa-duotone.fa-cloud-bolt:after,.fa-duotone.fa-thunderstorm:after,.fad.fa-cloud-bolt:after,.fad.fa-thunderstorm:after{content:"\f76c\f76c"}.fa-duotone.fa-chart-line-up-down:after,.fad.fa-chart-line-up-down:after{content:"\e5d7\e5d7"}.fa-duotone.fa-remove-format:after,.fa-duotone.fa-text-slash:after,.fad.fa-remove-format:after,.fad.fa-text-slash:after{content:"\f87d\f87d"}.fa-duotone.fa-watch:after,.fad.fa-watch:after{content:"\f2e1\f2e1"}.fa-duotone.fa-circle-down-left:after,.fad.fa-circle-down-left:after{content:"\e107\e107"}.fa-duotone.fa-text:after,.fad.fa-text:after{content:"\f893\f893"}.fa-duotone.fa-projector:after,.fad.fa-projector:after{content:"\f8d6\f8d6"}.fa-duotone.fa-face-smile-wink:after,.fa-duotone.fa-smile-wink:after,.fad.fa-face-smile-wink:after,.fad.fa-smile-wink:after{content:"\f4da\f4da"}.fa-duotone.fa-tombstone-alt:after,.fa-duotone.fa-tombstone-blank:after,.fad.fa-tombstone-alt:after,.fad.fa-tombstone-blank:after{content:"\f721\f721"}.fa-duotone.fa-chess-king-alt:after,.fa-duotone.fa-chess-king-piece:after,.fad.fa-chess-king-alt:after,.fad.fa-chess-king-piece:after{content:"\f440\f440"}.fa-duotone.fa-circle-6:after,.fad.fa-circle-6:after{content:"\e0f3\e0f3"}.fa-duotone.fa-waves-sine:after,.fad.fa-waves-sine:after{content:"\e65d\e65d"}.fa-duotone.fa-arrow-alt-left:after,.fa-duotone.fa-left:after,.fad.fa-arrow-alt-left:after,.fad.fa-left:after{content:"\f355\f355"}.fa-duotone.fa-file-word:after,.fad.fa-file-word:after{content:"\f1c2\f1c2"}.fa-duotone.fa-file-powerpoint:after,.fad.fa-file-powerpoint:after{content:"\f1c4\f1c4"}.fa-duotone.fa-arrow-alt-square-down:after,.fa-duotone.fa-square-down:after,.fad.fa-arrow-alt-square-down:after,.fad.fa-square-down:after{content:"\f350\f350"}.fa-duotone.fa-objects-align-center-vertical:after,.fad.fa-objects-align-center-vertical:after{content:"\e3bd\e3bd"}.fa-duotone.fa-arrows-h:after,.fa-duotone.fa-arrows-left-right:after,.fad.fa-arrows-h:after,.fad.fa-arrows-left-right:after{content:"\f07e\f07e"}.fa-duotone.fa-house-lock:after,.fad.fa-house-lock:after{content:"\e510\e510"}.fa-duotone.fa-cloud-arrow-down:after,.fa-duotone.fa-cloud-download-alt:after,.fa-duotone.fa-cloud-download:after,.fad.fa-cloud-arrow-down:after,.fad.fa-cloud-download-alt:after,.fad.fa-cloud-download:after{content:"\f0ed\f0ed"}.fa-duotone.fa-wreath:after,.fad.fa-wreath:after{content:"\f7e2\f7e2"}.fa-duotone.fa-children:after,.fad.fa-children:after{content:"\e4e1\e4e1"}.fa-duotone.fa-meter-droplet:after,.fad.fa-meter-droplet:after{content:"\e1ea\e1ea"}.fa-duotone.fa-blackboard:after,.fa-duotone.fa-chalkboard:after,.fad.fa-blackboard:after,.fad.fa-chalkboard:after{content:"\f51b\f51b"}.fa-duotone.fa-user-alt-slash:after,.fa-duotone.fa-user-large-slash:after,.fad.fa-user-alt-slash:after,.fad.fa-user-large-slash:after{content:"\f4fa\f4fa"}.fa-duotone.fa-signal-4:after,.fa-duotone.fa-signal-strong:after,.fad.fa-signal-4:after,.fad.fa-signal-strong:after{content:"\f68f\f68f"}.fa-duotone.fa-lollipop:after,.fa-duotone.fa-lollypop:after,.fad.fa-lollipop:after,.fad.fa-lollypop:after{content:"\e424\e424"}.fa-duotone.fa-list-tree:after,.fad.fa-list-tree:after{content:"\e1d2\e1d2"}.fa-duotone.fa-envelope-open:after,.fad.fa-envelope-open:after{content:"\f2b6\f2b6"}.fa-duotone.fa-draw-circle:after,.fad.fa-draw-circle:after{content:"\f5ed\f5ed"}.fa-duotone.fa-cat-space:after,.fad.fa-cat-space:after{content:"\e001\e001"}.fa-duotone.fa-handshake-alt-slash:after,.fa-duotone.fa-handshake-simple-slash:after,.fad.fa-handshake-alt-slash:after,.fad.fa-handshake-simple-slash:after{content:"\e05f\e05f"}.fa-duotone.fa-rabbit-fast:after,.fa-duotone.fa-rabbit-running:after,.fad.fa-rabbit-fast:after,.fad.fa-rabbit-running:after{content:"\f709\f709"}.fa-duotone.fa-memo-pad:after,.fad.fa-memo-pad:after{content:"\e1da\e1da"}.fa-duotone.fa-mattress-pillow:after,.fad.fa-mattress-pillow:after{content:"\e525\e525"}.fa-duotone.fa-alarm-plus:after,.fad.fa-alarm-plus:after{content:"\f844\f844"}.fa-duotone.fa-alicorn:after,.fad.fa-alicorn:after{content:"\f6b0\f6b0"}.fa-duotone.fa-comment-question:after,.fad.fa-comment-question:after{content:"\e14b\e14b"}.fa-duotone.fa-gingerbread-man:after,.fad.fa-gingerbread-man:after{content:"\f79d\f79d"}.fa-duotone.fa-guarani-sign:after,.fad.fa-guarani-sign:after{content:"\e19a\e19a"}.fa-duotone.fa-burger-fries:after,.fad.fa-burger-fries:after{content:"\e0cd\e0cd"}.fa-duotone.fa-mug-tea:after,.fad.fa-mug-tea:after{content:"\f875\f875"}.fa-duotone.fa-border-top:after,.fad.fa-border-top:after{content:"\f855\f855"}.fa-duotone.fa-arrows-rotate:after,.fa-duotone.fa-refresh:after,.fa-duotone.fa-sync:after,.fad.fa-arrows-rotate:after,.fad.fa-refresh:after,.fad.fa-sync:after{content:"\f021\f021"}.fa-duotone.fa-book-circle:after,.fa-duotone.fa-circle-book-open:after,.fad.fa-book-circle:after,.fad.fa-circle-book-open:after{content:"\e0ff\e0ff"}.fa-duotone.fa-arrows-to-dotted-line:after,.fad.fa-arrows-to-dotted-line:after{content:"\e0a6\e0a6"}.fa-duotone.fa-fire-extinguisher:after,.fad.fa-fire-extinguisher:after{content:"\f134\f134"}.fa-duotone.fa-magnifying-glass-arrows-rotate:after,.fad.fa-magnifying-glass-arrows-rotate:after{content:"\e65e\e65e"}.fa-duotone.fa-garage-open:after,.fad.fa-garage-open:after{content:"\e00b\e00b"}.fa-duotone.fa-shelves-empty:after,.fad.fa-shelves-empty:after{content:"\e246\e246"}.fa-duotone.fa-cruzeiro-sign:after,.fad.fa-cruzeiro-sign:after{content:"\e152\e152"}.fa-duotone.fa-watch-apple:after,.fad.fa-watch-apple:after{content:"\e2cb\e2cb"}.fa-duotone.fa-watch-calculator:after,.fad.fa-watch-calculator:after{content:"\f8f0\f8f0"}.fa-duotone.fa-list-dropdown:after,.fad.fa-list-dropdown:after{content:"\e1cf\e1cf"}.fa-duotone.fa-cabinet-filing:after,.fad.fa-cabinet-filing:after{content:"\f64b\f64b"}.fa-duotone.fa-burger-soda:after,.fad.fa-burger-soda:after{content:"\f858\f858"}.fa-duotone.fa-arrow-square-up:after,.fa-duotone.fa-square-arrow-up:after,.fad.fa-arrow-square-up:after,.fad.fa-square-arrow-up:after{content:"\f33c\f33c"}.fa-duotone.fa-greater-than-equal:after,.fad.fa-greater-than-equal:after{content:"\f532\f532"}.fa-duotone.fa-pallet-box:after,.fad.fa-pallet-box:after{content:"\e208\e208"}.fa-duotone.fa-face-confounded:after,.fad.fa-face-confounded:after{content:"\e36c\e36c"}.fa-duotone.fa-shield-alt:after,.fa-duotone.fa-shield-halved:after,.fad.fa-shield-alt:after,.fad.fa-shield-halved:after{content:"\f3ed\f3ed"}.fa-duotone.fa-truck-plow:after,.fad.fa-truck-plow:after{content:"\f7de\f7de"}.fa-duotone.fa-atlas:after,.fa-duotone.fa-book-atlas:after,.fad.fa-atlas:after,.fad.fa-book-atlas:after{content:"\f558\f558"}.fa-duotone.fa-virus:after,.fad.fa-virus:after{content:"\e074\e074"}.fa-duotone.fa-grid-round-2:after,.fad.fa-grid-round-2:after{content:"\e5db\e5db"}.fa-duotone.fa-comment-middle-top:after,.fad.fa-comment-middle-top:after{content:"\e14a\e14a"}.fa-duotone.fa-wave:after,.fad.fa-wave:after{content:"\e65b\e65b"}.fa-duotone.fa-envelope-circle-check:after,.fad.fa-envelope-circle-check:after{content:"\e4e8\e4e8"}.fa-duotone.fa-layer-group:after,.fad.fa-layer-group:after{content:"\f5fd\f5fd"}.fa-duotone.fa-restroom-simple:after,.fad.fa-restroom-simple:after{content:"\e23a\e23a"}.fa-duotone.fa-arrows-to-dot:after,.fad.fa-arrows-to-dot:after{content:"\e4be\e4be"}.fa-duotone.fa-border-outer:after,.fad.fa-border-outer:after{content:"\f851\f851"}.fa-duotone.fa-hashtag-lock:after,.fad.fa-hashtag-lock:after{content:"\e415\e415"}.fa-duotone.fa-clock-two-thirty:after,.fad.fa-clock-two-thirty:after{content:"\e35b\e35b"}.fa-duotone.fa-archway:after,.fad.fa-archway:after{content:"\f557\f557"}.fa-duotone.fa-heart-circle-check:after,.fad.fa-heart-circle-check:after{content:"\e4fd\e4fd"}.fa-duotone.fa-house-chimney-crack:after,.fa-duotone.fa-house-damage:after,.fad.fa-house-chimney-crack:after,.fad.fa-house-damage:after{content:"\f6f1\f6f1"}.fa-duotone.fa-file-archive:after,.fa-duotone.fa-file-zipper:after,.fad.fa-file-archive:after,.fad.fa-file-zipper:after{content:"\f1c6\f1c6"}.fa-duotone.fa-ticket-perforated:after,.fad.fa-ticket-perforated:after{content:"\e63e\e63e"}.fa-duotone.fa-heart-half:after,.fad.fa-heart-half:after{content:"\e1ab\e1ab"}.fa-duotone.fa-comment-check:after,.fad.fa-comment-check:after{content:"\f4ac\f4ac"}.fa-duotone.fa-square:after,.fad.fa-square:after{content:"\f0c8\f0c8"}.fa-duotone.fa-memo:after,.fad.fa-memo:after{content:"\e1d8\e1d8"}.fa-duotone.fa-glass-martini:after,.fa-duotone.fa-martini-glass-empty:after,.fad.fa-glass-martini:after,.fad.fa-martini-glass-empty:after{content:"\f000\f000"}.fa-duotone.fa-couch:after,.fad.fa-couch:after{content:"\f4b8\f4b8"}.fa-duotone.fa-cedi-sign:after,.fad.fa-cedi-sign:after{content:"\e0df\e0df"}.fa-duotone.fa-italic:after,.fad.fa-italic:after{content:"\f033\f033"}.fa-duotone.fa-glass-citrus:after,.fad.fa-glass-citrus:after{content:"\f869\f869"}.fa-duotone.fa-calendar-lines-pen:after,.fad.fa-calendar-lines-pen:after{content:"\e472\e472"}.fa-duotone.fa-church:after,.fad.fa-church:after{content:"\f51d\f51d"}.fa-duotone.fa-person-snowmobiling:after,.fa-duotone.fa-snowmobile:after,.fad.fa-person-snowmobiling:after,.fad.fa-snowmobile:after{content:"\f7d1\f7d1"}.fa-duotone.fa-face-hushed:after,.fad.fa-face-hushed:after{content:"\e37b\e37b"}.fa-duotone.fa-comments-dollar:after,.fad.fa-comments-dollar:after{content:"\f653\f653"}.fa-duotone.fa-tickets-simple:after,.fad.fa-tickets-simple:after{content:"\e659\e659"}.fa-duotone.fa-pickaxe:after,.fad.fa-pickaxe:after{content:"\e5bf\e5bf"}.fa-duotone.fa-link-simple-slash:after,.fad.fa-link-simple-slash:after{content:"\e1ce\e1ce"}.fa-duotone.fa-democrat:after,.fad.fa-democrat:after{content:"\f747\f747"}.fa-duotone.fa-face-confused:after,.fad.fa-face-confused:after{content:"\e36d\e36d"}.fa-duotone.fa-pinball:after,.fad.fa-pinball:after{content:"\e229\e229"}.fa-duotone.fa-z:after,.fad.fa-z:after{content:"\5a\5a"}.fa-duotone.fa-person-skiing:after,.fa-duotone.fa-skiing:after,.fad.fa-person-skiing:after,.fad.fa-skiing:after{content:"\f7c9\f7c9"}.fa-duotone.fa-deer:after,.fad.fa-deer:after{content:"\f78e\f78e"}.fa-duotone.fa-input-pipe:after,.fad.fa-input-pipe:after{content:"\e1be\e1be"}.fa-duotone.fa-road-lock:after,.fad.fa-road-lock:after{content:"\e567\e567"}.fa-duotone.fa-a:after,.fad.fa-a:after{content:"\41\41"}.fa-duotone.fa-bookmark-slash:after,.fad.fa-bookmark-slash:after{content:"\e0c2\e0c2"}.fa-duotone.fa-temperature-arrow-down:after,.fa-duotone.fa-temperature-down:after,.fad.fa-temperature-arrow-down:after,.fad.fa-temperature-down:after{content:"\e03f\e03f"}.fa-duotone.fa-mace:after,.fad.fa-mace:after{content:"\f6f8\f6f8"}.fa-duotone.fa-feather-alt:after,.fa-duotone.fa-feather-pointed:after,.fad.fa-feather-alt:after,.fad.fa-feather-pointed:after{content:"\f56b\f56b"}.fa-duotone.fa-sausage:after,.fad.fa-sausage:after{content:"\f820\f820"}.fa-duotone.fa-trash-can-clock:after,.fad.fa-trash-can-clock:after{content:"\e2aa\e2aa"}.fa-duotone.fa-p:after,.fad.fa-p:after{content:"\50\50"}.fa-duotone.fa-broom-wide:after,.fad.fa-broom-wide:after{content:"\e5d1\e5d1"}.fa-duotone.fa-snowflake:after,.fad.fa-snowflake:after{content:"\f2dc\f2dc"}.fa-duotone.fa-stomach:after,.fad.fa-stomach:after{content:"\f623\f623"}.fa-duotone.fa-newspaper:after,.fad.fa-newspaper:after{content:"\f1ea\f1ea"}.fa-duotone.fa-ad:after,.fa-duotone.fa-rectangle-ad:after,.fad.fa-ad:after,.fad.fa-rectangle-ad:after{content:"\f641\f641"}.fa-duotone.fa-guitar-electric:after,.fad.fa-guitar-electric:after{content:"\f8be\f8be"}.fa-duotone.fa-arrow-turn-down-right:after,.fad.fa-arrow-turn-down-right:after{content:"\e3d6\e3d6"}.fa-duotone.fa-moon-cloud:after,.fad.fa-moon-cloud:after{content:"\f754\f754"}.fa-duotone.fa-bread-slice-butter:after,.fad.fa-bread-slice-butter:after{content:"\e3e1\e3e1"}.fa-duotone.fa-arrow-circle-right:after,.fa-duotone.fa-circle-arrow-right:after,.fad.fa-arrow-circle-right:after,.fad.fa-circle-arrow-right:after{content:"\f0a9\f0a9"}.fa-duotone.fa-user-group-crown:after,.fa-duotone.fa-users-crown:after,.fad.fa-user-group-crown:after,.fad.fa-users-crown:after{content:"\f6a5\f6a5"}.fa-duotone.fa-circle-i:after,.fad.fa-circle-i:after{content:"\e111\e111"}.fa-duotone.fa-toilet-paper-check:after,.fad.fa-toilet-paper-check:after{content:"\e5b2\e5b2"}.fa-duotone.fa-filter-circle-xmark:after,.fad.fa-filter-circle-xmark:after{content:"\e17b\e17b"}.fa-duotone.fa-locust:after,.fad.fa-locust:after{content:"\e520\e520"}.fa-duotone.fa-sort:after,.fa-duotone.fa-unsorted:after,.fad.fa-sort:after,.fad.fa-unsorted:after{content:"\f0dc\f0dc"}.fa-duotone.fa-list-1-2:after,.fa-duotone.fa-list-numeric:after,.fa-duotone.fa-list-ol:after,.fad.fa-list-1-2:after,.fad.fa-list-numeric:after,.fad.fa-list-ol:after{content:"\f0cb\f0cb"}.fa-duotone.fa-chart-waterfall:after,.fad.fa-chart-waterfall:after{content:"\e0eb\e0eb"}.fa-duotone.fa-sparkle:after,.fad.fa-sparkle:after{content:"\e5d6\e5d6"}.fa-duotone.fa-face-party:after,.fad.fa-face-party:after{content:"\e383\e383"}.fa-duotone.fa-kidneys:after,.fad.fa-kidneys:after{content:"\f5fb\f5fb"}.fa-duotone.fa-wifi-exclamation:after,.fad.fa-wifi-exclamation:after{content:"\e2cf\e2cf"}.fa-duotone.fa-chart-network:after,.fad.fa-chart-network:after{content:"\f78a\f78a"}.fa-duotone.fa-person-dress-burst:after,.fad.fa-person-dress-burst:after{content:"\e544\e544"}.fa-duotone.fa-dice-d4:after,.fad.fa-dice-d4:after{content:"\f6d0\f6d0"}.fa-duotone.fa-money-check-alt:after,.fa-duotone.fa-money-check-dollar:after,.fad.fa-money-check-alt:after,.fad.fa-money-check-dollar:after{content:"\f53d\f53d"}.fa-duotone.fa-vector-square:after,.fad.fa-vector-square:after{content:"\f5cb\f5cb"}.fa-duotone.fa-bread-slice:after,.fad.fa-bread-slice:after{content:"\f7ec\f7ec"}.fa-duotone.fa-language:after,.fad.fa-language:after{content:"\f1ab\f1ab"}.fa-duotone.fa-wheat-awn-slash:after,.fad.fa-wheat-awn-slash:after{content:"\e338\e338"}.fa-duotone.fa-face-kiss-wink-heart:after,.fa-duotone.fa-kiss-wink-heart:after,.fad.fa-face-kiss-wink-heart:after,.fad.fa-kiss-wink-heart:after{content:"\f598\f598"}.fa-duotone.fa-dagger:after,.fad.fa-dagger:after{content:"\f6cb\f6cb"}.fa-duotone.fa-podium:after,.fad.fa-podium:after{content:"\f680\f680"}.fa-duotone.fa-memo-circle-check:after,.fad.fa-memo-circle-check:after{content:"\e1d9\e1d9"}.fa-duotone.fa-route-highway:after,.fad.fa-route-highway:after{content:"\f61a\f61a"}.fa-duotone.fa-arrow-alt-to-bottom:after,.fa-duotone.fa-down-to-line:after,.fad.fa-arrow-alt-to-bottom:after,.fad.fa-down-to-line:after{content:"\f34a\f34a"}.fa-duotone.fa-filter:after,.fad.fa-filter:after{content:"\f0b0\f0b0"}.fa-duotone.fa-square-g:after,.fad.fa-square-g:after{content:"\e271\e271"}.fa-duotone.fa-circle-phone:after,.fa-duotone.fa-phone-circle:after,.fad.fa-circle-phone:after,.fad.fa-phone-circle:after{content:"\e11b\e11b"}.fa-duotone.fa-clipboard-prescription:after,.fad.fa-clipboard-prescription:after{content:"\f5e8\f5e8"}.fa-duotone.fa-user-nurse-hair:after,.fad.fa-user-nurse-hair:after{content:"\e45d\e45d"}.fa-duotone.fa-question:after,.fad.fa-question:after{content:"\3f\3f"}.fa-duotone.fa-file-signature:after,.fad.fa-file-signature:after{content:"\f573\f573"}.fa-duotone.fa-toggle-large-on:after,.fad.fa-toggle-large-on:after{content:"\e5b1\e5b1"}.fa-duotone.fa-arrows-alt:after,.fa-duotone.fa-up-down-left-right:after,.fad.fa-arrows-alt:after,.fad.fa-up-down-left-right:after{content:"\f0b2\f0b2"}.fa-duotone.fa-dryer-alt:after,.fa-duotone.fa-dryer-heat:after,.fad.fa-dryer-alt:after,.fad.fa-dryer-heat:after{content:"\f862\f862"}.fa-duotone.fa-house-chimney-user:after,.fad.fa-house-chimney-user:after{content:"\e065\e065"}.fa-duotone.fa-hand-holding-heart:after,.fad.fa-hand-holding-heart:after{content:"\f4be\f4be"}.fa-duotone.fa-arrow-up-small-big:after,.fa-duotone.fa-sort-size-up-alt:after,.fad.fa-arrow-up-small-big:after,.fad.fa-sort-size-up-alt:after{content:"\f88f\f88f"}.fa-duotone.fa-train-track:after,.fad.fa-train-track:after{content:"\e453\e453"}.fa-duotone.fa-puzzle-piece:after,.fad.fa-puzzle-piece:after{content:"\f12e\f12e"}.fa-duotone.fa-money-check:after,.fad.fa-money-check:after{content:"\f53c\f53c"}.fa-duotone.fa-star-half-alt:after,.fa-duotone.fa-star-half-stroke:after,.fad.fa-star-half-alt:after,.fad.fa-star-half-stroke:after{content:"\f5c0\f5c0"}.fa-duotone.fa-file-exclamation:after,.fad.fa-file-exclamation:after{content:"\f31a\f31a"}.fa-duotone.fa-code:after,.fad.fa-code:after{content:"\f121\f121"}.fa-duotone.fa-glass-whiskey:after,.fa-duotone.fa-whiskey-glass:after,.fad.fa-glass-whiskey:after,.fad.fa-whiskey-glass:after{content:"\f7a0\f7a0"}.fa-duotone.fa-moon-stars:after,.fad.fa-moon-stars:after{content:"\f755\f755"}.fa-duotone.fa-building-circle-exclamation:after,.fad.fa-building-circle-exclamation:after{content:"\e4d3\e4d3"}.fa-duotone.fa-clothes-hanger:after,.fad.fa-clothes-hanger:after{content:"\e136\e136"}.fa-duotone.fa-mobile-iphone:after,.fa-duotone.fa-mobile-notch:after,.fad.fa-mobile-iphone:after,.fad.fa-mobile-notch:after{content:"\e1ee\e1ee"}.fa-duotone.fa-magnifying-glass-chart:after,.fad.fa-magnifying-glass-chart:after{content:"\e522\e522"}.fa-duotone.fa-arrow-up-right-from-square:after,.fa-duotone.fa-external-link:after,.fad.fa-arrow-up-right-from-square:after,.fad.fa-external-link:after{content:"\f08e\f08e"}.fa-duotone.fa-cubes-stacked:after,.fad.fa-cubes-stacked:after{content:"\e4e6\e4e6"}.fa-duotone.fa-images-user:after,.fad.fa-images-user:after{content:"\e1b9\e1b9"}.fa-duotone.fa-krw:after,.fa-duotone.fa-won-sign:after,.fa-duotone.fa-won:after,.fad.fa-krw:after,.fad.fa-won-sign:after,.fad.fa-won:after{content:"\f159\f159"}.fa-duotone.fa-image-polaroid-user:after,.fad.fa-image-polaroid-user:after{content:"\e1b6\e1b6"}.fa-duotone.fa-virus-covid:after,.fad.fa-virus-covid:after{content:"\e4a8\e4a8"}.fa-duotone.fa-square-ellipsis:after,.fad.fa-square-ellipsis:after{content:"\e26e\e26e"}.fa-duotone.fa-pie:after,.fad.fa-pie:after{content:"\f705\f705"}.fa-duotone.fa-chess-knight-alt:after,.fa-duotone.fa-chess-knight-piece:after,.fad.fa-chess-knight-alt:after,.fad.fa-chess-knight-piece:after{content:"\f442\f442"}.fa-duotone.fa-austral-sign:after,.fad.fa-austral-sign:after{content:"\e0a9\e0a9"}.fa-duotone.fa-cloud-plus:after,.fad.fa-cloud-plus:after{content:"\e35e\e35e"}.fa-duotone.fa-f:after,.fad.fa-f:after{content:"\46\46"}.fa-duotone.fa-leaf:after,.fad.fa-leaf:after{content:"\f06c\f06c"}.fa-duotone.fa-bed-bunk:after,.fad.fa-bed-bunk:after{content:"\f8f8\f8f8"}.fa-duotone.fa-road:after,.fad.fa-road:after{content:"\f018\f018"}.fa-duotone.fa-cab:after,.fa-duotone.fa-taxi:after,.fad.fa-cab:after,.fad.fa-taxi:after{content:"\f1ba\f1ba"}.fa-duotone.fa-person-circle-plus:after,.fad.fa-person-circle-plus:after{content:"\e541\e541"}.fa-duotone.fa-chart-pie:after,.fa-duotone.fa-pie-chart:after,.fad.fa-chart-pie:after,.fad.fa-pie-chart:after{content:"\f200\f200"}.fa-duotone.fa-bolt-lightning:after,.fad.fa-bolt-lightning:after{content:"\e0b7\e0b7"}.fa-duotone.fa-clock-eight:after,.fad.fa-clock-eight:after{content:"\e345\e345"}.fa-duotone.fa-sack-xmark:after,.fad.fa-sack-xmark:after{content:"\e56a\e56a"}.fa-duotone.fa-file-xls:after,.fad.fa-file-xls:after{content:"\e64d\e64d"}.fa-duotone.fa-file-excel:after,.fad.fa-file-excel:after{content:"\f1c3\f1c3"}.fa-duotone.fa-file-contract:after,.fad.fa-file-contract:after{content:"\f56c\f56c"}.fa-duotone.fa-fish-fins:after,.fad.fa-fish-fins:after{content:"\e4f2\e4f2"}.fa-duotone.fa-circle-q:after,.fad.fa-circle-q:after{content:"\e11e\e11e"}.fa-duotone.fa-building-flag:after,.fad.fa-building-flag:after{content:"\e4d5\e4d5"}.fa-duotone.fa-face-grin-beam:after,.fa-duotone.fa-grin-beam:after,.fad.fa-face-grin-beam:after,.fad.fa-grin-beam:after{content:"\f582\f582"}.fa-duotone.fa-object-ungroup:after,.fad.fa-object-ungroup:after{content:"\f248\f248"}.fa-duotone.fa-face-disguise:after,.fad.fa-face-disguise:after{content:"\e370\e370"}.fa-duotone.fa-circle-arrow-down-right:after,.fad.fa-circle-arrow-down-right:after{content:"\e0fa\e0fa"}.fa-duotone.fa-alien-8bit:after,.fa-duotone.fa-alien-monster:after,.fad.fa-alien-8bit:after,.fad.fa-alien-monster:after{content:"\f8f6\f8f6"}.fa-duotone.fa-hand-point-ribbon:after,.fad.fa-hand-point-ribbon:after{content:"\e1a6\e1a6"}.fa-duotone.fa-poop:after,.fad.fa-poop:after{content:"\f619\f619"}.fa-duotone.fa-object-exclude:after,.fad.fa-object-exclude:after{content:"\e49c\e49c"}.fa-duotone.fa-telescope:after,.fad.fa-telescope:after{content:"\e03e\e03e"}.fa-duotone.fa-location-pin:after,.fa-duotone.fa-map-marker:after,.fad.fa-location-pin:after,.fad.fa-map-marker:after{content:"\f041\f041"}.fa-duotone.fa-square-list:after,.fad.fa-square-list:after{content:"\e489\e489"}.fa-duotone.fa-kaaba:after,.fad.fa-kaaba:after{content:"\f66b\f66b"}.fa-duotone.fa-toilet-paper:after,.fad.fa-toilet-paper:after{content:"\f71e\f71e"}.fa-duotone.fa-hard-hat:after,.fa-duotone.fa-hat-hard:after,.fa-duotone.fa-helmet-safety:after,.fad.fa-hard-hat:after,.fad.fa-hat-hard:after,.fad.fa-helmet-safety:after{content:"\f807\f807"}.fa-duotone.fa-comment-code:after,.fad.fa-comment-code:after{content:"\e147\e147"}.fa-duotone.fa-sim-cards:after,.fad.fa-sim-cards:after{content:"\e251\e251"}.fa-duotone.fa-starship:after,.fad.fa-starship:after{content:"\e039\e039"}.fa-duotone.fa-eject:after,.fad.fa-eject:after{content:"\f052\f052"}.fa-duotone.fa-arrow-alt-circle-right:after,.fa-duotone.fa-circle-right:after,.fad.fa-arrow-alt-circle-right:after,.fad.fa-circle-right:after{content:"\f35a\f35a"}.fa-duotone.fa-plane-circle-check:after,.fad.fa-plane-circle-check:after{content:"\e555\e555"}.fa-duotone.fa-seal:after,.fad.fa-seal:after{content:"\e241\e241"}.fa-duotone.fa-user-cowboy:after,.fad.fa-user-cowboy:after{content:"\f8ea\f8ea"}.fa-duotone.fa-hexagon-vertical-nft:after,.fad.fa-hexagon-vertical-nft:after{content:"\e505\e505"}.fa-duotone.fa-face-rolling-eyes:after,.fa-duotone.fa-meh-rolling-eyes:after,.fad.fa-face-rolling-eyes:after,.fad.fa-meh-rolling-eyes:after{content:"\f5a5\f5a5"}.fa-duotone.fa-bread-loaf:after,.fad.fa-bread-loaf:after{content:"\f7eb\f7eb"}.fa-duotone.fa-rings-wedding:after,.fad.fa-rings-wedding:after{content:"\f81b\f81b"}.fa-duotone.fa-object-group:after,.fad.fa-object-group:after{content:"\f247\f247"}.fa-duotone.fa-french-fries:after,.fad.fa-french-fries:after{content:"\f803\f803"}.fa-duotone.fa-chart-line:after,.fa-duotone.fa-line-chart:after,.fad.fa-chart-line:after,.fad.fa-line-chart:after{content:"\f201\f201"}.fa-duotone.fa-calendar-arrow-down:after,.fa-duotone.fa-calendar-download:after,.fad.fa-calendar-arrow-down:after,.fad.fa-calendar-download:after{content:"\e0d0\e0d0"}.fa-duotone.fa-send-back:after,.fad.fa-send-back:after{content:"\f87e\f87e"}.fa-duotone.fa-mask-ventilator:after,.fad.fa-mask-ventilator:after{content:"\e524\e524"}.fa-duotone.fa-tickets:after,.fad.fa-tickets:after{content:"\e658\e658"}.fa-duotone.fa-signature-lock:after,.fad.fa-signature-lock:after{content:"\e3ca\e3ca"}.fa-duotone.fa-arrow-right:after,.fad.fa-arrow-right:after{content:"\f061\f061"}.fa-duotone.fa-map-signs:after,.fa-duotone.fa-signs-post:after,.fad.fa-map-signs:after,.fad.fa-signs-post:after{content:"\f277\f277"}.fa-duotone.fa-octagon-plus:after,.fa-duotone.fa-plus-octagon:after,.fad.fa-octagon-plus:after,.fad.fa-plus-octagon:after{content:"\f301\f301"}.fa-duotone.fa-cash-register:after,.fad.fa-cash-register:after{content:"\f788\f788"}.fa-duotone.fa-person-circle-question:after,.fad.fa-person-circle-question:after{content:"\e542\e542"}.fa-duotone.fa-melon-slice:after,.fad.fa-melon-slice:after{content:"\e311\e311"}.fa-duotone.fa-space-station-moon:after,.fad.fa-space-station-moon:after{content:"\e033\e033"}.fa-duotone.fa-comment-alt-smile:after,.fa-duotone.fa-message-smile:after,.fad.fa-comment-alt-smile:after,.fad.fa-message-smile:after{content:"\f4aa\f4aa"}.fa-duotone.fa-cup-straw:after,.fad.fa-cup-straw:after{content:"\e363\e363"}.fa-duotone.fa-arrow-alt-from-right:after,.fa-duotone.fa-left-from-line:after,.fad.fa-arrow-alt-from-right:after,.fad.fa-left-from-line:after{content:"\f348\f348"}.fa-duotone.fa-h:after,.fad.fa-h:after{content:"\48\48"}.fa-duotone.fa-basket-shopping-simple:after,.fa-duotone.fa-shopping-basket-alt:after,.fad.fa-basket-shopping-simple:after,.fad.fa-shopping-basket-alt:after{content:"\e0af\e0af"}.fa-duotone.fa-hands-heart:after,.fa-duotone.fa-hands-holding-heart:after,.fad.fa-hands-heart:after,.fad.fa-hands-holding-heart:after{content:"\f4c3\f4c3"}.fa-duotone.fa-clock-nine:after,.fad.fa-clock-nine:after{content:"\e34c\e34c"}.fa-duotone.fa-hammer-brush:after,.fad.fa-hammer-brush:after{content:"\e620\e620"}.fa-duotone.fa-tarp:after,.fad.fa-tarp:after{content:"\e57b\e57b"}.fa-duotone.fa-face-sleepy:after,.fad.fa-face-sleepy:after{content:"\e38e\e38e"}.fa-duotone.fa-hand-horns:after,.fad.fa-hand-horns:after{content:"\e1a9\e1a9"}.fa-duotone.fa-screwdriver-wrench:after,.fa-duotone.fa-tools:after,.fad.fa-screwdriver-wrench:after,.fad.fa-tools:after{content:"\f7d9\f7d9"}.fa-duotone.fa-arrows-to-eye:after,.fad.fa-arrows-to-eye:after{content:"\e4bf\e4bf"}.fa-duotone.fa-circle-three-quarters:after,.fad.fa-circle-three-quarters:after{content:"\e125\e125"}.fa-duotone.fa-trophy-alt:after,.fa-duotone.fa-trophy-star:after,.fad.fa-trophy-alt:after,.fad.fa-trophy-star:after{content:"\f2eb\f2eb"}.fa-duotone.fa-plug-circle-bolt:after,.fad.fa-plug-circle-bolt:after{content:"\e55b\e55b"}.fa-duotone.fa-face-thermometer:after,.fad.fa-face-thermometer:after{content:"\e39a\e39a"}.fa-duotone.fa-grid-round-4:after,.fad.fa-grid-round-4:after{content:"\e5dd\e5dd"}.fa-duotone.fa-sign-posts-wrench:after,.fad.fa-sign-posts-wrench:after{content:"\e626\e626"}.fa-duotone.fa-shirt-running:after,.fad.fa-shirt-running:after{content:"\e3c8\e3c8"}.fa-duotone.fa-book-circle-arrow-up:after,.fad.fa-book-circle-arrow-up:after{content:"\e0bd\e0bd"}.fa-duotone.fa-face-nauseated:after,.fad.fa-face-nauseated:after{content:"\e381\e381"}.fa-duotone.fa-heart:after,.fad.fa-heart:after{content:"\f004\f004"}.fa-duotone.fa-file-chart-pie:after,.fad.fa-file-chart-pie:after{content:"\f65a\f65a"}.fa-duotone.fa-mars-and-venus:after,.fad.fa-mars-and-venus:after{content:"\f224\f224"}.fa-duotone.fa-home-user:after,.fa-duotone.fa-house-user:after,.fad.fa-home-user:after,.fad.fa-house-user:after{content:"\e1b0\e1b0"}.fa-duotone.fa-circle-arrow-down-left:after,.fad.fa-circle-arrow-down-left:after{content:"\e0f9\e0f9"}.fa-duotone.fa-dumpster-fire:after,.fad.fa-dumpster-fire:after{content:"\f794\f794"}.fa-duotone.fa-hexagon-minus:after,.fa-duotone.fa-minus-hexagon:after,.fad.fa-hexagon-minus:after,.fad.fa-minus-hexagon:after{content:"\f307\f307"}.fa-duotone.fa-arrow-alt-to-left:after,.fa-duotone.fa-left-to-line:after,.fad.fa-arrow-alt-to-left:after,.fad.fa-left-to-line:after{content:"\f34b\f34b"}.fa-duotone.fa-house-crack:after,.fad.fa-house-crack:after{content:"\e3b1\e3b1"}.fa-duotone.fa-paw-alt:after,.fa-duotone.fa-paw-simple:after,.fad.fa-paw-alt:after,.fad.fa-paw-simple:after{content:"\f701\f701"}.fa-duotone.fa-arrow-left-long-to-line:after,.fad.fa-arrow-left-long-to-line:after{content:"\e3d4\e3d4"}.fa-duotone.fa-brackets-round:after,.fa-duotone.fa-parentheses:after,.fad.fa-brackets-round:after,.fad.fa-parentheses:after{content:"\e0c5\e0c5"}.fa-duotone.fa-cocktail:after,.fa-duotone.fa-martini-glass-citrus:after,.fad.fa-cocktail:after,.fad.fa-martini-glass-citrus:after{content:"\f561\f561"}.fa-duotone.fa-user-shakespeare:after,.fad.fa-user-shakespeare:after{content:"\e2c2\e2c2"}.fa-duotone.fa-arrow-right-to-arc:after,.fad.fa-arrow-right-to-arc:after{content:"\e4b2\e4b2"}.fa-duotone.fa-face-surprise:after,.fa-duotone.fa-surprise:after,.fad.fa-face-surprise:after,.fad.fa-surprise:after{content:"\f5c2\f5c2"}.fa-duotone.fa-bottle-water:after,.fad.fa-bottle-water:after{content:"\e4c5\e4c5"}.fa-duotone.fa-circle-pause:after,.fa-duotone.fa-pause-circle:after,.fad.fa-circle-pause:after,.fad.fa-pause-circle:after{content:"\f28b\f28b"}.fa-duotone.fa-gauge-circle-plus:after,.fad.fa-gauge-circle-plus:after{content:"\e498\e498"}.fa-duotone.fa-folders:after,.fad.fa-folders:after{content:"\f660\f660"}.fa-duotone.fa-angel:after,.fad.fa-angel:after{content:"\f779\f779"}.fa-duotone.fa-value-absolute:after,.fad.fa-value-absolute:after{content:"\f6a6\f6a6"}.fa-duotone.fa-rabbit:after,.fad.fa-rabbit:after{content:"\f708\f708"}.fa-duotone.fa-toilet-paper-slash:after,.fad.fa-toilet-paper-slash:after{content:"\e072\e072"}.fa-duotone.fa-circle-euro:after,.fad.fa-circle-euro:after{content:"\e5ce\e5ce"}.fa-duotone.fa-apple-alt:after,.fa-duotone.fa-apple-whole:after,.fad.fa-apple-alt:after,.fad.fa-apple-whole:after{content:"\f5d1\f5d1"}.fa-duotone.fa-kitchen-set:after,.fad.fa-kitchen-set:after{content:"\e51a\e51a"}.fa-duotone.fa-diamond-half:after,.fad.fa-diamond-half:after{content:"\e5b7\e5b7"}.fa-duotone.fa-lock-alt:after,.fa-duotone.fa-lock-keyhole:after,.fad.fa-lock-alt:after,.fad.fa-lock-keyhole:after{content:"\f30d\f30d"}.fa-duotone.fa-r:after,.fad.fa-r:after{content:"\52\52"}.fa-duotone.fa-temperature-1:after,.fa-duotone.fa-temperature-quarter:after,.fa-duotone.fa-thermometer-1:after,.fa-duotone.fa-thermometer-quarter:after,.fad.fa-temperature-1:after,.fad.fa-temperature-quarter:after,.fad.fa-thermometer-1:after,.fad.fa-thermometer-quarter:after{content:"\f2ca\f2ca"}.fa-duotone.fa-info-square:after,.fa-duotone.fa-square-info:after,.fad.fa-info-square:after,.fad.fa-square-info:after{content:"\f30f\f30f"}.fa-duotone.fa-wifi-slash:after,.fad.fa-wifi-slash:after{content:"\f6ac\f6ac"}.fa-duotone.fa-toilet-paper-xmark:after,.fad.fa-toilet-paper-xmark:after{content:"\e5b3\e5b3"}.fa-duotone.fa-hands-holding-dollar:after,.fa-duotone.fa-hands-usd:after,.fad.fa-hands-holding-dollar:after,.fad.fa-hands-usd:after{content:"\f4c5\f4c5"}.fa-duotone.fa-cube:after,.fad.fa-cube:after{content:"\f1b2\f1b2"}.fa-duotone.fa-arrow-down-triangle-square:after,.fa-duotone.fa-sort-shapes-down:after,.fad.fa-arrow-down-triangle-square:after,.fad.fa-sort-shapes-down:after{content:"\f888\f888"}.fa-duotone.fa-bitcoin-sign:after,.fad.fa-bitcoin-sign:after{content:"\e0b4\e0b4"}.fa-duotone.fa-shutters:after,.fad.fa-shutters:after{content:"\e449\e449"}.fa-duotone.fa-shield-dog:after,.fad.fa-shield-dog:after{content:"\e573\e573"}.fa-duotone.fa-solar-panel:after,.fad.fa-solar-panel:after{content:"\f5ba\f5ba"}.fa-duotone.fa-lock-open:after,.fad.fa-lock-open:after{content:"\f3c1\f3c1"}.fa-duotone.fa-table-tree:after,.fad.fa-table-tree:after{content:"\e293\e293"}.fa-duotone.fa-house-chimney-heart:after,.fad.fa-house-chimney-heart:after{content:"\e1b2\e1b2"}.fa-duotone.fa-tally-3:after,.fad.fa-tally-3:after{content:"\e296\e296"}.fa-duotone.fa-elevator:after,.fad.fa-elevator:after{content:"\e16d\e16d"}.fa-duotone.fa-money-bill-transfer:after,.fad.fa-money-bill-transfer:after{content:"\e528\e528"}.fa-duotone.fa-money-bill-trend-up:after,.fad.fa-money-bill-trend-up:after{content:"\e529\e529"}.fa-duotone.fa-house-flood-water-circle-arrow-right:after,.fad.fa-house-flood-water-circle-arrow-right:after{content:"\e50f\e50f"}.fa-duotone.fa-poll-h:after,.fa-duotone.fa-square-poll-horizontal:after,.fad.fa-poll-h:after,.fad.fa-square-poll-horizontal:after{content:"\f682\f682"}.fa-duotone.fa-circle:after,.fad.fa-circle:after{content:"\f111\f111"}.fa-duotone.fa-cart-circle-exclamation:after,.fad.fa-cart-circle-exclamation:after{content:"\e3f2\e3f2"}.fa-duotone.fa-sword:after,.fad.fa-sword:after{content:"\f71c\f71c"}.fa-duotone.fa-backward-fast:after,.fa-duotone.fa-fast-backward:after,.fad.fa-backward-fast:after,.fad.fa-fast-backward:after{content:"\f049\f049"}.fa-duotone.fa-recycle:after,.fad.fa-recycle:after{content:"\f1b8\f1b8"}.fa-duotone.fa-user-astronaut:after,.fad.fa-user-astronaut:after{content:"\f4fb\f4fb"}.fa-duotone.fa-interrobang:after,.fad.fa-interrobang:after{content:"\e5ba\e5ba"}.fa-duotone.fa-plane-slash:after,.fad.fa-plane-slash:after{content:"\e069\e069"}.fa-duotone.fa-circle-dashed:after,.fad.fa-circle-dashed:after{content:"\e105\e105"}.fa-duotone.fa-trademark:after,.fad.fa-trademark:after{content:"\f25c\f25c"}.fa-duotone.fa-basketball-ball:after,.fa-duotone.fa-basketball:after,.fad.fa-basketball-ball:after,.fad.fa-basketball:after{content:"\f434\f434"}.fa-duotone.fa-fork-knife:after,.fa-duotone.fa-utensils-alt:after,.fad.fa-fork-knife:after,.fad.fa-utensils-alt:after{content:"\f2e6\f2e6"}.fa-duotone.fa-satellite-dish:after,.fad.fa-satellite-dish:after{content:"\f7c0\f7c0"}.fa-duotone.fa-badge-check:after,.fad.fa-badge-check:after{content:"\f336\f336"}.fa-duotone.fa-arrow-alt-circle-up:after,.fa-duotone.fa-circle-up:after,.fad.fa-arrow-alt-circle-up:after,.fad.fa-circle-up:after{content:"\f35b\f35b"}.fa-duotone.fa-slider:after,.fad.fa-slider:after{content:"\e252\e252"}.fa-duotone.fa-mobile-alt:after,.fa-duotone.fa-mobile-screen-button:after,.fad.fa-mobile-alt:after,.fad.fa-mobile-screen-button:after{content:"\f3cd\f3cd"}.fa-duotone.fa-clock-one-thirty:after,.fad.fa-clock-one-thirty:after{content:"\e34f\e34f"}.fa-duotone.fa-inbox-arrow-up:after,.fa-duotone.fa-inbox-out:after,.fad.fa-inbox-arrow-up:after,.fad.fa-inbox-out:after{content:"\f311\f311"}.fa-duotone.fa-cloud-slash:after,.fad.fa-cloud-slash:after{content:"\e137\e137"}.fa-duotone.fa-volume-high:after,.fa-duotone.fa-volume-up:after,.fad.fa-volume-high:after,.fad.fa-volume-up:after{content:"\f028\f028"}.fa-duotone.fa-users-rays:after,.fad.fa-users-rays:after{content:"\e593\e593"}.fa-duotone.fa-wallet:after,.fad.fa-wallet:after{content:"\f555\f555"}.fa-duotone.fa-octagon-check:after,.fad.fa-octagon-check:after{content:"\e426\e426"}.fa-duotone.fa-flatbread-stuffed:after,.fad.fa-flatbread-stuffed:after{content:"\e40c\e40c"}.fa-duotone.fa-clipboard-check:after,.fad.fa-clipboard-check:after{content:"\f46c\f46c"}.fa-duotone.fa-cart-circle-plus:after,.fad.fa-cart-circle-plus:after{content:"\e3f3\e3f3"}.fa-duotone.fa-shipping-timed:after,.fa-duotone.fa-truck-clock:after,.fad.fa-shipping-timed:after,.fad.fa-truck-clock:after{content:"\f48c\f48c"}.fa-duotone.fa-pool-8-ball:after,.fad.fa-pool-8-ball:after{content:"\e3c5\e3c5"}.fa-duotone.fa-file-audio:after,.fad.fa-file-audio:after{content:"\f1c7\f1c7"}.fa-duotone.fa-turn-down-left:after,.fad.fa-turn-down-left:after{content:"\e331\e331"}.fa-duotone.fa-lock-hashtag:after,.fad.fa-lock-hashtag:after{content:"\e423\e423"}.fa-duotone.fa-chart-radar:after,.fad.fa-chart-radar:after{content:"\e0e7\e0e7"}.fa-duotone.fa-staff:after,.fad.fa-staff:after{content:"\f71b\f71b"}.fa-duotone.fa-burger:after,.fa-duotone.fa-hamburger:after,.fad.fa-burger:after,.fad.fa-hamburger:after{content:"\f805\f805"}.fa-duotone.fa-utility-pole:after,.fad.fa-utility-pole:after{content:"\e2c3\e2c3"}.fa-duotone.fa-transporter-6:after,.fad.fa-transporter-6:after{content:"\e2a7\e2a7"}.fa-duotone.fa-arrow-turn-left:after,.fad.fa-arrow-turn-left:after{content:"\e632\e632"}.fa-duotone.fa-wrench:after,.fad.fa-wrench:after{content:"\f0ad\f0ad"}.fa-duotone.fa-bugs:after,.fad.fa-bugs:after{content:"\e4d0\e4d0"}.fa-duotone.fa-vector-polygon:after,.fad.fa-vector-polygon:after{content:"\e2c7\e2c7"}.fa-duotone.fa-diagram-nested:after,.fad.fa-diagram-nested:after{content:"\e157\e157"}.fa-duotone.fa-rupee-sign:after,.fa-duotone.fa-rupee:after,.fad.fa-rupee-sign:after,.fad.fa-rupee:after{content:"\f156\f156"}.fa-duotone.fa-file-image:after,.fad.fa-file-image:after{content:"\f1c5\f1c5"}.fa-duotone.fa-circle-question:after,.fa-duotone.fa-question-circle:after,.fad.fa-circle-question:after,.fad.fa-question-circle:after{content:"\f059\f059"}.fa-duotone.fa-tickets-perforated:after,.fad.fa-tickets-perforated:after{content:"\e63f\e63f"}.fa-duotone.fa-image-user:after,.fad.fa-image-user:after{content:"\e1b8\e1b8"}.fa-duotone.fa-buoy:after,.fad.fa-buoy:after{content:"\e5b5\e5b5"}.fa-duotone.fa-plane-departure:after,.fad.fa-plane-departure:after{content:"\f5b0\f5b0"}.fa-duotone.fa-handshake-slash:after,.fad.fa-handshake-slash:after{content:"\e060\e060"}.fa-duotone.fa-book-bookmark:after,.fad.fa-book-bookmark:after{content:"\e0bb\e0bb"}.fa-duotone.fa-border-center-h:after,.fad.fa-border-center-h:after{content:"\f89c\f89c"}.fa-duotone.fa-can-food:after,.fad.fa-can-food:after{content:"\e3e6\e3e6"}.fa-duotone.fa-typewriter:after,.fad.fa-typewriter:after{content:"\f8e7\f8e7"}.fa-duotone.fa-arrow-right-from-arc:after,.fad.fa-arrow-right-from-arc:after{content:"\e4b1\e4b1"}.fa-duotone.fa-circle-k:after,.fad.fa-circle-k:after{content:"\e113\e113"}.fa-duotone.fa-face-hand-over-mouth:after,.fad.fa-face-hand-over-mouth:after{content:"\e378\e378"}.fa-duotone.fa-popcorn:after,.fad.fa-popcorn:after{content:"\f819\f819"}.fa-duotone.fa-house-flood:after,.fa-duotone.fa-house-water:after,.fad.fa-house-flood:after,.fad.fa-house-water:after{content:"\f74f\f74f"}.fa-duotone.fa-object-subtract:after,.fad.fa-object-subtract:after{content:"\e49e\e49e"}.fa-duotone.fa-code-branch:after,.fad.fa-code-branch:after{content:"\f126\f126"}.fa-duotone.fa-warehouse-alt:after,.fa-duotone.fa-warehouse-full:after,.fad.fa-warehouse-alt:after,.fad.fa-warehouse-full:after{content:"\f495\f495"}.fa-duotone.fa-hat-cowboy:after,.fad.fa-hat-cowboy:after{content:"\f8c0\f8c0"}.fa-duotone.fa-bridge:after,.fad.fa-bridge:after{content:"\e4c8\e4c8"}.fa-duotone.fa-phone-alt:after,.fa-duotone.fa-phone-flip:after,.fad.fa-phone-alt:after,.fad.fa-phone-flip:after{content:"\f879\f879"}.fa-duotone.fa-arrow-down-from-dotted-line:after,.fad.fa-arrow-down-from-dotted-line:after{content:"\e090\e090"}.fa-duotone.fa-file-doc:after,.fad.fa-file-doc:after{content:"\e5ed\e5ed"}.fa-duotone.fa-square-quarters:after,.fad.fa-square-quarters:after{content:"\e44e\e44e"}.fa-duotone.fa-truck-front:after,.fad.fa-truck-front:after{content:"\e2b7\e2b7"}.fa-duotone.fa-cat:after,.fad.fa-cat:after{content:"\f6be\f6be"}.fa-duotone.fa-trash-xmark:after,.fad.fa-trash-xmark:after{content:"\e2b4\e2b4"}.fa-duotone.fa-caret-circle-left:after,.fa-duotone.fa-circle-caret-left:after,.fad.fa-caret-circle-left:after,.fad.fa-circle-caret-left:after{content:"\f32e\f32e"}.fa-duotone.fa-files:after,.fad.fa-files:after{content:"\e178\e178"}.fa-duotone.fa-anchor-circle-exclamation:after,.fad.fa-anchor-circle-exclamation:after{content:"\e4ab\e4ab"}.fa-duotone.fa-face-clouds:after,.fad.fa-face-clouds:after{content:"\e47d\e47d"}.fa-duotone.fa-user-crown:after,.fad.fa-user-crown:after{content:"\f6a4\f6a4"}.fa-duotone.fa-basket-shopping-plus:after,.fad.fa-basket-shopping-plus:after{content:"\e653\e653"}.fa-duotone.fa-truck-field:after,.fad.fa-truck-field:after{content:"\e58d\e58d"}.fa-duotone.fa-route:after,.fad.fa-route:after{content:"\f4d7\f4d7"}.fa-duotone.fa-cart-circle-check:after,.fad.fa-cart-circle-check:after{content:"\e3f1\e3f1"}.fa-duotone.fa-clipboard-question:after,.fad.fa-clipboard-question:after{content:"\e4e3\e4e3"}.fa-duotone.fa-panorama:after,.fad.fa-panorama:after{content:"\e209\e209"}.fa-duotone.fa-comment-medical:after,.fad.fa-comment-medical:after{content:"\f7f5\f7f5"}.fa-duotone.fa-teeth-open:after,.fad.fa-teeth-open:after{content:"\f62f\f62f"}.fa-duotone.fa-user-tie-hair-long:after,.fad.fa-user-tie-hair-long:after{content:"\e460\e460"}.fa-duotone.fa-file-circle-minus:after,.fad.fa-file-circle-minus:after{content:"\e4ed\e4ed"}.fa-duotone.fa-head-side-medical:after,.fad.fa-head-side-medical:after{content:"\f809\f809"}.fa-duotone.fa-arrow-turn-right:after,.fad.fa-arrow-turn-right:after{content:"\e635\e635"}.fa-duotone.fa-tags:after,.fad.fa-tags:after{content:"\f02c\f02c"}.fa-duotone.fa-wine-glass:after,.fad.fa-wine-glass:after{content:"\f4e3\f4e3"}.fa-duotone.fa-fast-forward:after,.fa-duotone.fa-forward-fast:after,.fad.fa-fast-forward:after,.fad.fa-forward-fast:after{content:"\f050\f050"}.fa-duotone.fa-face-meh-blank:after,.fa-duotone.fa-meh-blank:after,.fad.fa-face-meh-blank:after,.fad.fa-meh-blank:after{content:"\f5a4\f5a4"}.fa-duotone.fa-user-robot:after,.fad.fa-user-robot:after{content:"\e04b\e04b"}.fa-duotone.fa-parking:after,.fa-duotone.fa-square-parking:after,.fad.fa-parking:after,.fad.fa-square-parking:after{content:"\f540\f540"}.fa-duotone.fa-card-diamond:after,.fad.fa-card-diamond:after{content:"\e3ea\e3ea"}.fa-duotone.fa-face-zipper:after,.fad.fa-face-zipper:after{content:"\e3a5\e3a5"}.fa-duotone.fa-face-raised-eyebrow:after,.fad.fa-face-raised-eyebrow:after{content:"\e388\e388"}.fa-duotone.fa-house-signal:after,.fad.fa-house-signal:after{content:"\e012\e012"}.fa-duotone.fa-chevron-square-up:after,.fa-duotone.fa-square-chevron-up:after,.fad.fa-chevron-square-up:after,.fad.fa-square-chevron-up:after{content:"\f32c\f32c"}.fa-duotone.fa-bars-progress:after,.fa-duotone.fa-tasks-alt:after,.fad.fa-bars-progress:after,.fad.fa-tasks-alt:after{content:"\f828\f828"}.fa-duotone.fa-faucet-drip:after,.fad.fa-faucet-drip:after{content:"\e006\e006"}.fa-duotone.fa-arrows-to-line:after,.fad.fa-arrows-to-line:after{content:"\e0a7\e0a7"}.fa-duotone.fa-dolphin:after,.fad.fa-dolphin:after{content:"\e168\e168"}.fa-duotone.fa-arrow-up-right:after,.fad.fa-arrow-up-right:after{content:"\e09f\e09f"}.fa-duotone.fa-circle-r:after,.fad.fa-circle-r:after{content:"\e120\e120"}.fa-duotone.fa-cart-flatbed:after,.fa-duotone.fa-dolly-flatbed:after,.fad.fa-cart-flatbed:after,.fad.fa-dolly-flatbed:after{content:"\f474\f474"}.fa-duotone.fa-ban-smoking:after,.fa-duotone.fa-smoking-ban:after,.fad.fa-ban-smoking:after,.fad.fa-smoking-ban:after{content:"\f54d\f54d"}.fa-duotone.fa-circle-sort-up:after,.fa-duotone.fa-sort-circle-up:after,.fad.fa-circle-sort-up:after,.fad.fa-sort-circle-up:after{content:"\e032\e032"}.fa-duotone.fa-terminal:after,.fad.fa-terminal:after{content:"\f120\f120"}.fa-duotone.fa-mobile-button:after,.fad.fa-mobile-button:after{content:"\f10b\f10b"}.fa-duotone.fa-house-medical-flag:after,.fad.fa-house-medical-flag:after{content:"\e514\e514"}.fa-duotone.fa-basket-shopping:after,.fa-duotone.fa-shopping-basket:after,.fad.fa-basket-shopping:after,.fad.fa-shopping-basket:after{content:"\f291\f291"}.fa-duotone.fa-tape:after,.fad.fa-tape:after{content:"\f4db\f4db"}.fa-duotone.fa-chestnut:after,.fad.fa-chestnut:after{content:"\e3f6\e3f6"}.fa-duotone.fa-bus-alt:after,.fa-duotone.fa-bus-simple:after,.fad.fa-bus-alt:after,.fad.fa-bus-simple:after{content:"\f55e\f55e"}.fa-duotone.fa-eye:after,.fad.fa-eye:after{content:"\f06e\f06e"}.fa-duotone.fa-face-sad-cry:after,.fa-duotone.fa-sad-cry:after,.fad.fa-face-sad-cry:after,.fad.fa-sad-cry:after{content:"\f5b3\f5b3"}.fa-duotone.fa-heat:after,.fad.fa-heat:after{content:"\e00c\e00c"}.fa-duotone.fa-ticket-airline:after,.fa-duotone.fa-ticket-perforated-plane:after,.fa-duotone.fa-ticket-plane:after,.fad.fa-ticket-airline:after,.fad.fa-ticket-perforated-plane:after,.fad.fa-ticket-plane:after{content:"\e29a\e29a"}.fa-duotone.fa-boot-heeled:after,.fad.fa-boot-heeled:after{content:"\e33f\e33f"}.fa-duotone.fa-arrows-minimize:after,.fa-duotone.fa-compress-arrows:after,.fad.fa-arrows-minimize:after,.fad.fa-compress-arrows:after{content:"\e0a5\e0a5"}.fa-duotone.fa-audio-description:after,.fad.fa-audio-description:after{content:"\f29e\f29e"}.fa-duotone.fa-person-military-to-person:after,.fad.fa-person-military-to-person:after{content:"\e54c\e54c"}.fa-duotone.fa-file-shield:after,.fad.fa-file-shield:after{content:"\e4f0\e4f0"}.fa-duotone.fa-hexagon:after,.fad.fa-hexagon:after{content:"\f312\f312"}.fa-duotone.fa-manhole:after,.fad.fa-manhole:after{content:"\e1d6\e1d6"}.fa-duotone.fa-user-slash:after,.fad.fa-user-slash:after{content:"\f506\f506"}.fa-duotone.fa-pen:after,.fad.fa-pen:after{content:"\f304\f304"}.fa-duotone.fa-tower-observation:after,.fad.fa-tower-observation:after{content:"\e586\e586"}.fa-duotone.fa-floppy-disks:after,.fad.fa-floppy-disks:after{content:"\e183\e183"}.fa-duotone.fa-toilet-paper-blank-under:after,.fa-duotone.fa-toilet-paper-reverse-alt:after,.fad.fa-toilet-paper-blank-under:after,.fad.fa-toilet-paper-reverse-alt:after{content:"\e29f\e29f"}.fa-duotone.fa-file-code:after,.fad.fa-file-code:after{content:"\f1c9\f1c9"}.fa-duotone.fa-signal-5:after,.fa-duotone.fa-signal-perfect:after,.fa-duotone.fa-signal:after,.fad.fa-signal-5:after,.fad.fa-signal-perfect:after,.fad.fa-signal:after{content:"\f012\f012"}.fa-duotone.fa-pump:after,.fad.fa-pump:after{content:"\e442\e442"}.fa-duotone.fa-bus:after,.fad.fa-bus:after{content:"\f207\f207"}.fa-duotone.fa-heart-circle-xmark:after,.fad.fa-heart-circle-xmark:after{content:"\e501\e501"}.fa-duotone.fa-arrow-up-left-from-circle:after,.fad.fa-arrow-up-left-from-circle:after{content:"\e09e\e09e"}.fa-duotone.fa-home-lg:after,.fa-duotone.fa-house-chimney:after,.fad.fa-home-lg:after,.fad.fa-house-chimney:after{content:"\e3af\e3af"}.fa-duotone.fa-window-maximize:after,.fad.fa-window-maximize:after{content:"\f2d0\f2d0"}.fa-duotone.fa-dryer:after,.fad.fa-dryer:after{content:"\f861\f861"}.fa-duotone.fa-face-frown:after,.fa-duotone.fa-frown:after,.fad.fa-face-frown:after,.fad.fa-frown:after{content:"\f119\f119"}.fa-duotone.fa-chess-bishop-alt:after,.fa-duotone.fa-chess-bishop-piece:after,.fad.fa-chess-bishop-alt:after,.fad.fa-chess-bishop-piece:after{content:"\f43b\f43b"}.fa-duotone.fa-shirt-tank-top:after,.fad.fa-shirt-tank-top:after{content:"\e3c9\e3c9"}.fa-duotone.fa-diploma:after,.fa-duotone.fa-scroll-ribbon:after,.fad.fa-diploma:after,.fad.fa-scroll-ribbon:after{content:"\f5ea\f5ea"}.fa-duotone.fa-screencast:after,.fad.fa-screencast:after{content:"\e23e\e23e"}.fa-duotone.fa-walker:after,.fad.fa-walker:after{content:"\f831\f831"}.fa-duotone.fa-prescription:after,.fad.fa-prescription:after{content:"\f5b1\f5b1"}.fa-duotone.fa-shop:after,.fa-duotone.fa-store-alt:after,.fad.fa-shop:after,.fad.fa-store-alt:after{content:"\f54f\f54f"}.fa-duotone.fa-floppy-disk:after,.fa-duotone.fa-save:after,.fad.fa-floppy-disk:after,.fad.fa-save:after{content:"\f0c7\f0c7"}.fa-duotone.fa-vihara:after,.fad.fa-vihara:after{content:"\f6a7\f6a7"}.fa-duotone.fa-face-kiss-closed-eyes:after,.fad.fa-face-kiss-closed-eyes:after{content:"\e37d\e37d"}.fa-duotone.fa-balance-scale-left:after,.fa-duotone.fa-scale-unbalanced:after,.fad.fa-balance-scale-left:after,.fad.fa-scale-unbalanced:after{content:"\f515\f515"}.fa-duotone.fa-file-user:after,.fad.fa-file-user:after{content:"\f65c\f65c"}.fa-duotone.fa-user-police-tie:after,.fad.fa-user-police-tie:after{content:"\e334\e334"}.fa-duotone.fa-face-tongue-money:after,.fad.fa-face-tongue-money:after{content:"\e39d\e39d"}.fa-duotone.fa-tennis-ball:after,.fad.fa-tennis-ball:after{content:"\f45e\f45e"}.fa-duotone.fa-square-l:after,.fad.fa-square-l:after{content:"\e275\e275"}.fa-duotone.fa-sort-asc:after,.fa-duotone.fa-sort-up:after,.fad.fa-sort-asc:after,.fad.fa-sort-up:after{content:"\f0de\f0de"}.fa-duotone.fa-calendar-arrow-up:after,.fa-duotone.fa-calendar-upload:after,.fad.fa-calendar-arrow-up:after,.fad.fa-calendar-upload:after{content:"\e0d1\e0d1"}.fa-duotone.fa-comment-dots:after,.fa-duotone.fa-commenting:after,.fad.fa-comment-dots:after,.fad.fa-commenting:after{content:"\f4ad\f4ad"}.fa-duotone.fa-plant-wilt:after,.fad.fa-plant-wilt:after{content:"\e5aa\e5aa"}.fa-duotone.fa-scarf:after,.fad.fa-scarf:after{content:"\f7c1\f7c1"}.fa-duotone.fa-album-circle-plus:after,.fad.fa-album-circle-plus:after{content:"\e48c\e48c"}.fa-duotone.fa-user-nurse-hair-long:after,.fad.fa-user-nurse-hair-long:after{content:"\e45e\e45e"}.fa-duotone.fa-diamond:after,.fad.fa-diamond:after{content:"\f219\f219"}.fa-duotone.fa-arrow-alt-square-left:after,.fa-duotone.fa-square-left:after,.fad.fa-arrow-alt-square-left:after,.fad.fa-square-left:after{content:"\f351\f351"}.fa-duotone.fa-face-grin-squint:after,.fa-duotone.fa-grin-squint:after,.fad.fa-face-grin-squint:after,.fad.fa-grin-squint:after{content:"\f585\f585"}.fa-duotone.fa-circle-ellipsis-vertical:after,.fad.fa-circle-ellipsis-vertical:after{content:"\e10b\e10b"}.fa-duotone.fa-hand-holding-dollar:after,.fa-duotone.fa-hand-holding-usd:after,.fad.fa-hand-holding-dollar:after,.fad.fa-hand-holding-usd:after{content:"\f4c0\f4c0"}.fa-duotone.fa-grid-dividers:after,.fad.fa-grid-dividers:after{content:"\e3ad\e3ad"}.fa-duotone.fa-bacterium:after,.fad.fa-bacterium:after{content:"\e05a\e05a"}.fa-duotone.fa-hand-pointer:after,.fad.fa-hand-pointer:after{content:"\f25a\f25a"}.fa-duotone.fa-drum-steelpan:after,.fad.fa-drum-steelpan:after{content:"\f56a\f56a"}.fa-duotone.fa-hand-scissors:after,.fad.fa-hand-scissors:after{content:"\f257\f257"}.fa-duotone.fa-hands-praying:after,.fa-duotone.fa-praying-hands:after,.fad.fa-hands-praying:after,.fad.fa-praying-hands:after{content:"\f684\f684"}.fa-duotone.fa-face-pensive:after,.fad.fa-face-pensive:after{content:"\e384\e384"}.fa-duotone.fa-user-music:after,.fad.fa-user-music:after{content:"\f8eb\f8eb"}.fa-duotone.fa-arrow-right-rotate:after,.fa-duotone.fa-arrow-rotate-forward:after,.fa-duotone.fa-arrow-rotate-right:after,.fa-duotone.fa-redo:after,.fad.fa-arrow-right-rotate:after,.fad.fa-arrow-rotate-forward:after,.fad.fa-arrow-rotate-right:after,.fad.fa-redo:after{content:"\f01e\f01e"}.fa-duotone.fa-comments-alt-dollar:after,.fa-duotone.fa-messages-dollar:after,.fad.fa-comments-alt-dollar:after,.fad.fa-messages-dollar:after{content:"\f652\f652"}.fa-duotone.fa-sensor-on:after,.fad.fa-sensor-on:after{content:"\e02b\e02b"}.fa-duotone.fa-balloon:after,.fad.fa-balloon:after{content:"\e2e3\e2e3"}.fa-duotone.fa-biohazard:after,.fad.fa-biohazard:after{content:"\f780\f780"}.fa-duotone.fa-chess-queen-alt:after,.fa-duotone.fa-chess-queen-piece:after,.fad.fa-chess-queen-alt:after,.fad.fa-chess-queen-piece:after{content:"\f446\f446"}.fa-duotone.fa-location-crosshairs:after,.fa-duotone.fa-location:after,.fad.fa-location-crosshairs:after,.fad.fa-location:after{content:"\f601\f601"}.fa-duotone.fa-mars-double:after,.fad.fa-mars-double:after{content:"\f227\f227"}.fa-duotone.fa-house-leave:after,.fa-duotone.fa-house-person-depart:after,.fa-duotone.fa-house-person-leave:after,.fad.fa-house-leave:after,.fad.fa-house-person-depart:after,.fad.fa-house-person-leave:after{content:"\e00f\e00f"}.fa-duotone.fa-ruler-triangle:after,.fad.fa-ruler-triangle:after{content:"\f61c\f61c"}.fa-duotone.fa-card-club:after,.fad.fa-card-club:after{content:"\e3e9\e3e9"}.fa-duotone.fa-child-dress:after,.fad.fa-child-dress:after{content:"\e59c\e59c"}.fa-duotone.fa-users-between-lines:after,.fad.fa-users-between-lines:after{content:"\e591\e591"}.fa-duotone.fa-lungs-virus:after,.fad.fa-lungs-virus:after{content:"\e067\e067"}.fa-duotone.fa-spinner-third:after,.fad.fa-spinner-third:after{content:"\f3f4\f3f4"}.fa-duotone.fa-face-grin-tears:after,.fa-duotone.fa-grin-tears:after,.fad.fa-face-grin-tears:after,.fad.fa-grin-tears:after{content:"\f588\f588"}.fa-duotone.fa-phone:after,.fad.fa-phone:after{content:"\f095\f095"}.fa-duotone.fa-computer-mouse-scrollwheel:after,.fa-duotone.fa-mouse-alt:after,.fad.fa-computer-mouse-scrollwheel:after,.fad.fa-mouse-alt:after{content:"\f8cd\f8cd"}.fa-duotone.fa-calendar-times:after,.fa-duotone.fa-calendar-xmark:after,.fad.fa-calendar-times:after,.fad.fa-calendar-xmark:after{content:"\f273\f273"}.fa-duotone.fa-child-reaching:after,.fad.fa-child-reaching:after{content:"\e59d\e59d"}.fa-duotone.fa-table-layout:after,.fad.fa-table-layout:after{content:"\e290\e290"}.fa-duotone.fa-narwhal:after,.fad.fa-narwhal:after{content:"\f6fe\f6fe"}.fa-duotone.fa-ramp-loading:after,.fad.fa-ramp-loading:after{content:"\f4d4\f4d4"}.fa-duotone.fa-calendar-circle-plus:after,.fad.fa-calendar-circle-plus:after{content:"\e470\e470"}.fa-duotone.fa-toothbrush:after,.fad.fa-toothbrush:after{content:"\f635\f635"}.fa-duotone.fa-border-inner:after,.fad.fa-border-inner:after{content:"\f84e\f84e"}.fa-duotone.fa-paw-claws:after,.fad.fa-paw-claws:after{content:"\f702\f702"}.fa-duotone.fa-kiwi-fruit:after,.fad.fa-kiwi-fruit:after{content:"\e30c\e30c"}.fa-duotone.fa-traffic-light-slow:after,.fad.fa-traffic-light-slow:after{content:"\f639\f639"}.fa-duotone.fa-rectangle-code:after,.fad.fa-rectangle-code:after{content:"\e322\e322"}.fa-duotone.fa-head-side-virus:after,.fad.fa-head-side-virus:after{content:"\e064\e064"}.fa-duotone.fa-keyboard-brightness:after,.fad.fa-keyboard-brightness:after{content:"\e1c0\e1c0"}.fa-duotone.fa-books-medical:after,.fad.fa-books-medical:after{content:"\f7e8\f7e8"}.fa-duotone.fa-lightbulb-slash:after,.fad.fa-lightbulb-slash:after{content:"\f673\f673"}.fa-duotone.fa-home-blank:after,.fa-duotone.fa-house-blank:after,.fad.fa-home-blank:after,.fad.fa-house-blank:after{content:"\e487\e487"}.fa-duotone.fa-square-5:after,.fad.fa-square-5:after{content:"\e25a\e25a"}.fa-duotone.fa-heart-square:after,.fa-duotone.fa-square-heart:after,.fad.fa-heart-square:after,.fad.fa-square-heart:after{content:"\f4c8\f4c8"}.fa-duotone.fa-puzzle:after,.fad.fa-puzzle:after{content:"\e443\e443"}.fa-duotone.fa-user-cog:after,.fa-duotone.fa-user-gear:after,.fad.fa-user-cog:after,.fad.fa-user-gear:after{content:"\f4fe\f4fe"}.fa-duotone.fa-pipe-circle-check:after,.fad.fa-pipe-circle-check:after{content:"\e436\e436"}.fa-duotone.fa-arrow-up-1-9:after,.fa-duotone.fa-sort-numeric-up:after,.fad.fa-arrow-up-1-9:after,.fad.fa-sort-numeric-up:after{content:"\f163\f163"}.fa-duotone.fa-octagon-exclamation:after,.fad.fa-octagon-exclamation:after{content:"\e204\e204"}.fa-duotone.fa-dial-low:after,.fad.fa-dial-low:after{content:"\e15d\e15d"}.fa-duotone.fa-door-closed:after,.fad.fa-door-closed:after{content:"\f52a\f52a"}.fa-duotone.fa-laptop-mobile:after,.fa-duotone.fa-phone-laptop:after,.fad.fa-laptop-mobile:after,.fad.fa-phone-laptop:after{content:"\f87a\f87a"}.fa-duotone.fa-conveyor-belt-alt:after,.fa-duotone.fa-conveyor-belt-boxes:after,.fad.fa-conveyor-belt-alt:after,.fad.fa-conveyor-belt-boxes:after{content:"\f46f\f46f"}.fa-duotone.fa-shield-virus:after,.fad.fa-shield-virus:after{content:"\e06c\e06c"}.fa-duotone.fa-starfighter-alt-advanced:after,.fa-duotone.fa-starfighter-twin-ion-engine-advanced:after,.fad.fa-starfighter-alt-advanced:after,.fad.fa-starfighter-twin-ion-engine-advanced:after{content:"\e28e\e28e"}.fa-duotone.fa-dice-six:after,.fad.fa-dice-six:after{content:"\f526\f526"}.fa-duotone.fa-starfighter-alt:after,.fa-duotone.fa-starfighter-twin-ion-engine:after,.fad.fa-starfighter-alt:after,.fad.fa-starfighter-twin-ion-engine:after{content:"\e038\e038"}.fa-duotone.fa-rocket-launch:after,.fad.fa-rocket-launch:after{content:"\e027\e027"}.fa-duotone.fa-mosquito-net:after,.fad.fa-mosquito-net:after{content:"\e52c\e52c"}.fa-duotone.fa-vent-damper:after,.fad.fa-vent-damper:after{content:"\e465\e465"}.fa-duotone.fa-bridge-water:after,.fad.fa-bridge-water:after{content:"\e4ce\e4ce"}.fa-duotone.fa-ban-bug:after,.fa-duotone.fa-debug:after,.fad.fa-ban-bug:after,.fad.fa-debug:after{content:"\f7f9\f7f9"}.fa-duotone.fa-person-booth:after,.fad.fa-person-booth:after{content:"\f756\f756"}.fa-duotone.fa-text-width:after,.fad.fa-text-width:after{content:"\f035\f035"}.fa-duotone.fa-garage-car:after,.fad.fa-garage-car:after{content:"\e00a\e00a"}.fa-duotone.fa-square-kanban:after,.fad.fa-square-kanban:after{content:"\e488\e488"}.fa-duotone.fa-hat-wizard:after,.fad.fa-hat-wizard:after{content:"\f6e8\f6e8"}.fa-duotone.fa-chart-kanban:after,.fad.fa-chart-kanban:after{content:"\e64f\e64f"}.fa-duotone.fa-pen-fancy:after,.fad.fa-pen-fancy:after{content:"\f5ac\f5ac"}.fa-duotone.fa-coffee-pot:after,.fad.fa-coffee-pot:after{content:"\e002\e002"}.fa-duotone.fa-mouse-field:after,.fad.fa-mouse-field:after{content:"\e5a8\e5a8"}.fa-duotone.fa-digging:after,.fa-duotone.fa-person-digging:after,.fad.fa-digging:after,.fad.fa-person-digging:after{content:"\f85e\f85e"}.fa-duotone.fa-shower-alt:after,.fa-duotone.fa-shower-down:after,.fad.fa-shower-alt:after,.fad.fa-shower-down:after{content:"\e24d\e24d"}.fa-duotone.fa-box-circle-check:after,.fad.fa-box-circle-check:after{content:"\e0c4\e0c4"}.fa-duotone.fa-brightness:after,.fad.fa-brightness:after{content:"\e0c9\e0c9"}.fa-duotone.fa-car-side-bolt:after,.fad.fa-car-side-bolt:after{content:"\e344\e344"}.fa-duotone.fa-file-xml:after,.fad.fa-file-xml:after{content:"\e654\e654"}.fa-duotone.fa-ornament:after,.fad.fa-ornament:after{content:"\f7b8\f7b8"}.fa-duotone.fa-phone-arrow-down-left:after,.fa-duotone.fa-phone-arrow-down:after,.fa-duotone.fa-phone-incoming:after,.fad.fa-phone-arrow-down-left:after,.fad.fa-phone-arrow-down:after,.fad.fa-phone-incoming:after{content:"\e223\e223"}.fa-duotone.fa-cloud-word:after,.fad.fa-cloud-word:after{content:"\e138\e138"}.fa-duotone.fa-hand-fingers-crossed:after,.fad.fa-hand-fingers-crossed:after{content:"\e1a3\e1a3"}.fa-duotone.fa-trash:after,.fad.fa-trash:after{content:"\f1f8\f1f8"}.fa-duotone.fa-gauge-simple-med:after,.fa-duotone.fa-gauge-simple:after,.fa-duotone.fa-tachometer-average:after,.fad.fa-gauge-simple-med:after,.fad.fa-gauge-simple:after,.fad.fa-tachometer-average:after{content:"\f629\f629"}.fa-duotone.fa-arrow-down-small-big:after,.fa-duotone.fa-sort-size-down-alt:after,.fad.fa-arrow-down-small-big:after,.fad.fa-sort-size-down-alt:after{content:"\f88d\f88d"}.fa-duotone.fa-book-medical:after,.fad.fa-book-medical:after{content:"\f7e6\f7e6"}.fa-duotone.fa-face-melting:after,.fad.fa-face-melting:after{content:"\e483\e483"}.fa-duotone.fa-poo:after,.fad.fa-poo:after{content:"\f2fe\f2fe"}.fa-duotone.fa-pen-alt-slash:after,.fa-duotone.fa-pen-clip-slash:after,.fad.fa-pen-alt-slash:after,.fad.fa-pen-clip-slash:after{content:"\e20f\e20f"}.fa-duotone.fa-quote-right-alt:after,.fa-duotone.fa-quote-right:after,.fad.fa-quote-right-alt:after,.fad.fa-quote-right:after{content:"\f10e\f10e"}.fa-duotone.fa-scroll-old:after,.fad.fa-scroll-old:after{content:"\f70f\f70f"}.fa-duotone.fa-guitars:after,.fad.fa-guitars:after{content:"\f8bf\f8bf"}.fa-duotone.fa-phone-xmark:after,.fad.fa-phone-xmark:after{content:"\e227\e227"}.fa-duotone.fa-hose:after,.fad.fa-hose:after{content:"\e419\e419"}.fa-duotone.fa-clock-six:after,.fad.fa-clock-six:after{content:"\e352\e352"}.fa-duotone.fa-shirt:after,.fa-duotone.fa-t-shirt:after,.fa-duotone.fa-tshirt:after,.fad.fa-shirt:after,.fad.fa-t-shirt:after,.fad.fa-tshirt:after{content:"\f553\f553"}.fa-duotone.fa-billboard:after,.fad.fa-billboard:after{content:"\e5cd\e5cd"}.fa-duotone.fa-square-r:after,.fad.fa-square-r:after{content:"\e27c\e27c"}.fa-duotone.fa-cubes:after,.fad.fa-cubes:after{content:"\f1b3\f1b3"}.fa-duotone.fa-envelope-open-dollar:after,.fad.fa-envelope-open-dollar:after{content:"\f657\f657"}.fa-duotone.fa-divide:after,.fad.fa-divide:after{content:"\f529\f529"}.fa-duotone.fa-sun-cloud:after,.fad.fa-sun-cloud:after{content:"\f763\f763"}.fa-duotone.fa-lamp-floor:after,.fad.fa-lamp-floor:after{content:"\e015\e015"}.fa-duotone.fa-square-7:after,.fad.fa-square-7:after{content:"\e25c\e25c"}.fa-duotone.fa-tenge-sign:after,.fa-duotone.fa-tenge:after,.fad.fa-tenge-sign:after,.fad.fa-tenge:after{content:"\f7d7\f7d7"}.fa-duotone.fa-headphones:after,.fad.fa-headphones:after{content:"\f025\f025"}.fa-duotone.fa-hands-holding:after,.fad.fa-hands-holding:after{content:"\f4c2\f4c2"}.fa-duotone.fa-campfire:after,.fad.fa-campfire:after{content:"\f6ba\f6ba"}.fa-duotone.fa-circle-ampersand:after,.fad.fa-circle-ampersand:after{content:"\e0f8\e0f8"}.fa-duotone.fa-snowflakes:after,.fad.fa-snowflakes:after{content:"\f7cf\f7cf"}.fa-duotone.fa-hands-clapping:after,.fad.fa-hands-clapping:after{content:"\e1a8\e1a8"}.fa-duotone.fa-republican:after,.fad.fa-republican:after{content:"\f75e\f75e"}.fa-duotone.fa-leaf-maple:after,.fad.fa-leaf-maple:after{content:"\f6f6\f6f6"}.fa-duotone.fa-arrow-left:after,.fad.fa-arrow-left:after{content:"\f060\f060"}.fa-duotone.fa-person-circle-xmark:after,.fad.fa-person-circle-xmark:after{content:"\e543\e543"}.fa-duotone.fa-ruler:after,.fad.fa-ruler:after{content:"\f545\f545"}.fa-duotone.fa-cup-straw-swoosh:after,.fad.fa-cup-straw-swoosh:after{content:"\e364\e364"}.fa-duotone.fa-temperature-hot:after,.fa-duotone.fa-temperature-sun:after,.fad.fa-temperature-hot:after,.fad.fa-temperature-sun:after{content:"\f76a\f76a"}.fa-duotone.fa-align-left:after,.fad.fa-align-left:after{content:"\f036\f036"}.fa-duotone.fa-dice-d6:after,.fad.fa-dice-d6:after{content:"\f6d1\f6d1"}.fa-duotone.fa-restroom:after,.fad.fa-restroom:after{content:"\f7bd\f7bd"}.fa-duotone.fa-high-definition:after,.fa-duotone.fa-rectangle-hd:after,.fad.fa-high-definition:after,.fad.fa-rectangle-hd:after{content:"\e1ae\e1ae"}.fa-duotone.fa-j:after,.fad.fa-j:after{content:"\4a\4a"}.fa-duotone.fa-galaxy:after,.fad.fa-galaxy:after{content:"\e008\e008"}.fa-duotone.fa-users-viewfinder:after,.fad.fa-users-viewfinder:after{content:"\e595\e595"}.fa-duotone.fa-file-video:after,.fad.fa-file-video:after{content:"\f1c8\f1c8"}.fa-duotone.fa-cherries:after,.fad.fa-cherries:after{content:"\e0ec\e0ec"}.fa-duotone.fa-external-link-alt:after,.fa-duotone.fa-up-right-from-square:after,.fad.fa-external-link-alt:after,.fad.fa-up-right-from-square:after{content:"\f35d\f35d"}.fa-duotone.fa-circle-sort:after,.fa-duotone.fa-sort-circle:after,.fad.fa-circle-sort:after,.fad.fa-sort-circle:after{content:"\e030\e030"}.fa-duotone.fa-table-cells:after,.fa-duotone.fa-th:after,.fad.fa-table-cells:after,.fad.fa-th:after{content:"\f00a\f00a"}.fa-duotone.fa-bag-shopping-minus:after,.fad.fa-bag-shopping-minus:after{content:"\e650\e650"}.fa-duotone.fa-file-pdf:after,.fad.fa-file-pdf:after{content:"\f1c1\f1c1"}.fa-duotone.fa-siren:after,.fad.fa-siren:after{content:"\e02d\e02d"}.fa-duotone.fa-arrow-up-to-dotted-line:after,.fad.fa-arrow-up-to-dotted-line:after{content:"\e0a1\e0a1"}.fa-duotone.fa-image-landscape:after,.fa-duotone.fa-landscape:after,.fad.fa-image-landscape:after,.fad.fa-landscape:after{content:"\e1b5\e1b5"}.fa-duotone.fa-tank-water:after,.fad.fa-tank-water:after{content:"\e452\e452"}.fa-duotone.fa-curling-stone:after,.fa-duotone.fa-curling:after,.fad.fa-curling-stone:after,.fad.fa-curling:after{content:"\f44a\f44a"}.fa-duotone.fa-gamepad-alt:after,.fa-duotone.fa-gamepad-modern:after,.fad.fa-gamepad-alt:after,.fad.fa-gamepad-modern:after{content:"\e5a2\e5a2"}.fa-duotone.fa-messages-question:after,.fad.fa-messages-question:after{content:"\e1e7\e1e7"}.fa-duotone.fa-bible:after,.fa-duotone.fa-book-bible:after,.fad.fa-bible:after,.fad.fa-book-bible:after{content:"\f647\f647"}.fa-duotone.fa-o:after,.fad.fa-o:after{content:"\4f\4f"}.fa-duotone.fa-medkit:after,.fa-duotone.fa-suitcase-medical:after,.fad.fa-medkit:after,.fad.fa-suitcase-medical:after{content:"\f0fa\f0fa"}.fa-duotone.fa-briefcase-arrow-right:after,.fad.fa-briefcase-arrow-right:after{content:"\e2f2\e2f2"}.fa-duotone.fa-expand-wide:after,.fad.fa-expand-wide:after{content:"\f320\f320"}.fa-duotone.fa-clock-eleven-thirty:after,.fad.fa-clock-eleven-thirty:after{content:"\e348\e348"}.fa-duotone.fa-rv:after,.fad.fa-rv:after{content:"\f7be\f7be"}.fa-duotone.fa-user-secret:after,.fad.fa-user-secret:after{content:"\f21b\f21b"}.fa-duotone.fa-otter:after,.fad.fa-otter:after{content:"\f700\f700"}.fa-duotone.fa-dreidel:after,.fad.fa-dreidel:after{content:"\f792\f792"}.fa-duotone.fa-female:after,.fa-duotone.fa-person-dress:after,.fad.fa-female:after,.fad.fa-person-dress:after{content:"\f182\f182"}.fa-duotone.fa-comment-dollar:after,.fad.fa-comment-dollar:after{content:"\f651\f651"}.fa-duotone.fa-briefcase-clock:after,.fa-duotone.fa-business-time:after,.fad.fa-briefcase-clock:after,.fad.fa-business-time:after{content:"\f64a\f64a"}.fa-duotone.fa-flower-tulip:after,.fad.fa-flower-tulip:after{content:"\f801\f801"}.fa-duotone.fa-people-pants-simple:after,.fad.fa-people-pants-simple:after{content:"\e21a\e21a"}.fa-duotone.fa-cloud-drizzle:after,.fad.fa-cloud-drizzle:after{content:"\f738\f738"}.fa-duotone.fa-table-cells-large:after,.fa-duotone.fa-th-large:after,.fad.fa-table-cells-large:after,.fad.fa-th-large:after{content:"\f009\f009"}.fa-duotone.fa-book-tanakh:after,.fa-duotone.fa-tanakh:after,.fad.fa-book-tanakh:after,.fad.fa-tanakh:after{content:"\f827\f827"}.fa-duotone.fa-solar-system:after,.fad.fa-solar-system:after{content:"\e02f\e02f"}.fa-duotone.fa-seal-question:after,.fad.fa-seal-question:after{content:"\e243\e243"}.fa-duotone.fa-phone-volume:after,.fa-duotone.fa-volume-control-phone:after,.fad.fa-phone-volume:after,.fad.fa-volume-control-phone:after{content:"\f2a0\f2a0"}.fa-duotone.fa-disc-drive:after,.fad.fa-disc-drive:after{content:"\f8b5\f8b5"}.fa-duotone.fa-hat-cowboy-side:after,.fad.fa-hat-cowboy-side:after{content:"\f8c1\f8c1"}.fa-duotone.fa-rows:after,.fa-duotone.fa-table-rows:after,.fad.fa-rows:after,.fad.fa-table-rows:after{content:"\e292\e292"}.fa-duotone.fa-location-exclamation:after,.fa-duotone.fa-map-marker-exclamation:after,.fad.fa-location-exclamation:after,.fad.fa-map-marker-exclamation:after{content:"\f608\f608"}.fa-duotone.fa-face-fearful:after,.fad.fa-face-fearful:after{content:"\e375\e375"}.fa-duotone.fa-clipboard-user:after,.fad.fa-clipboard-user:after{content:"\f7f3\f7f3"}.fa-duotone.fa-bus-school:after,.fad.fa-bus-school:after{content:"\f5dd\f5dd"}.fa-duotone.fa-film-slash:after,.fad.fa-film-slash:after{content:"\e179\e179"}.fa-duotone.fa-square-arrow-down-right:after,.fad.fa-square-arrow-down-right:after{content:"\e262\e262"}.fa-duotone.fa-book-sparkles:after,.fa-duotone.fa-book-spells:after,.fad.fa-book-sparkles:after,.fad.fa-book-spells:after{content:"\f6b8\f6b8"}.fa-duotone.fa-washer:after,.fa-duotone.fa-washing-machine:after,.fad.fa-washer:after,.fad.fa-washing-machine:after{content:"\f898\f898"}.fa-duotone.fa-child:after,.fad.fa-child:after{content:"\f1ae\f1ae"}.fa-duotone.fa-lira-sign:after,.fad.fa-lira-sign:after{content:"\f195\f195"}.fa-duotone.fa-user-visor:after,.fad.fa-user-visor:after{content:"\e04c\e04c"}.fa-duotone.fa-file-plus-minus:after,.fad.fa-file-plus-minus:after{content:"\e177\e177"}.fa-duotone.fa-chess-clock-alt:after,.fa-duotone.fa-chess-clock-flip:after,.fad.fa-chess-clock-alt:after,.fad.fa-chess-clock-flip:after{content:"\f43e\f43e"}.fa-duotone.fa-satellite:after,.fad.fa-satellite:after{content:"\f7bf\f7bf"}.fa-duotone.fa-truck-fire:after,.fad.fa-truck-fire:after{content:"\e65a\e65a"}.fa-duotone.fa-plane-lock:after,.fad.fa-plane-lock:after{content:"\e558\e558"}.fa-duotone.fa-steering-wheel:after,.fad.fa-steering-wheel:after{content:"\f622\f622"}.fa-duotone.fa-tag:after,.fad.fa-tag:after{content:"\f02b\f02b"}.fa-duotone.fa-stretcher:after,.fad.fa-stretcher:after{content:"\f825\f825"}.fa-duotone.fa-book-law:after,.fa-duotone.fa-book-section:after,.fad.fa-book-law:after,.fad.fa-book-section:after{content:"\e0c1\e0c1"}.fa-duotone.fa-inboxes:after,.fad.fa-inboxes:after{content:"\e1bb\e1bb"}.fa-duotone.fa-coffee-bean:after,.fad.fa-coffee-bean:after{content:"\e13e\e13e"}.fa-duotone.fa-circle-yen:after,.fad.fa-circle-yen:after{content:"\e5d0\e5d0"}.fa-duotone.fa-brackets-curly:after,.fad.fa-brackets-curly:after{content:"\f7ea\f7ea"}.fa-duotone.fa-ellipsis-stroke-vertical:after,.fa-duotone.fa-ellipsis-v-alt:after,.fad.fa-ellipsis-stroke-vertical:after,.fad.fa-ellipsis-v-alt:after{content:"\f39c\f39c"}.fa-duotone.fa-comment:after,.fad.fa-comment:after{content:"\f075\f075"}.fa-duotone.fa-square-1:after,.fad.fa-square-1:after{content:"\e256\e256"}.fa-duotone.fa-birthday-cake:after,.fa-duotone.fa-cake-candles:after,.fa-duotone.fa-cake:after,.fad.fa-birthday-cake:after,.fad.fa-cake-candles:after,.fad.fa-cake:after{content:"\f1fd\f1fd"}.fa-duotone.fa-head-side:after,.fad.fa-head-side:after{content:"\f6e9\f6e9"}.fa-duotone.fa-truck-ladder:after,.fad.fa-truck-ladder:after{content:"\e657\e657"}.fa-duotone.fa-envelope:after,.fad.fa-envelope:after{content:"\f0e0\f0e0"}.fa-duotone.fa-dolly-empty:after,.fad.fa-dolly-empty:after{content:"\f473\f473"}.fa-duotone.fa-face-tissue:after,.fad.fa-face-tissue:after{content:"\e39c\e39c"}.fa-duotone.fa-angle-double-up:after,.fa-duotone.fa-angles-up:after,.fad.fa-angle-double-up:after,.fad.fa-angles-up:after{content:"\f102\f102"}.fa-duotone.fa-bin-recycle:after,.fad.fa-bin-recycle:after{content:"\e5f7\e5f7"}.fa-duotone.fa-paperclip:after,.fad.fa-paperclip:after{content:"\f0c6\f0c6"}.fa-duotone.fa-chart-line-down:after,.fad.fa-chart-line-down:after{content:"\f64d\f64d"}.fa-duotone.fa-arrow-right-to-city:after,.fad.fa-arrow-right-to-city:after{content:"\e4b3\e4b3"}.fa-duotone.fa-lock-a:after,.fad.fa-lock-a:after{content:"\e422\e422"}.fa-duotone.fa-ribbon:after,.fad.fa-ribbon:after{content:"\f4d6\f4d6"}.fa-duotone.fa-lungs:after,.fad.fa-lungs:after{content:"\f604\f604"}.fa-duotone.fa-person-pinball:after,.fad.fa-person-pinball:after{content:"\e21d\e21d"}.fa-duotone.fa-arrow-up-9-1:after,.fa-duotone.fa-sort-numeric-up-alt:after,.fad.fa-arrow-up-9-1:after,.fad.fa-sort-numeric-up-alt:after{content:"\f887\f887"}.fa-duotone.fa-apple-core:after,.fad.fa-apple-core:after{content:"\e08f\e08f"}.fa-duotone.fa-circle-y:after,.fad.fa-circle-y:after{content:"\e12f\e12f"}.fa-duotone.fa-h6:after,.fad.fa-h6:after{content:"\e413\e413"}.fa-duotone.fa-litecoin-sign:after,.fad.fa-litecoin-sign:after{content:"\e1d3\e1d3"}.fa-duotone.fa-circle-small:after,.fad.fa-circle-small:after{content:"\e122\e122"}.fa-duotone.fa-border-none:after,.fad.fa-border-none:after{content:"\f850\f850"}.fa-duotone.fa-arrow-turn-down-left:after,.fad.fa-arrow-turn-down-left:after{content:"\e2e1\e2e1"}.fa-duotone.fa-circle-nodes:after,.fad.fa-circle-nodes:after{content:"\e4e2\e4e2"}.fa-duotone.fa-parachute-box:after,.fad.fa-parachute-box:after{content:"\f4cd\f4cd"}.fa-duotone.fa-reflect-horizontal:after,.fad.fa-reflect-horizontal:after{content:"\e664\e664"}.fa-duotone.fa-comment-alt-medical:after,.fa-duotone.fa-message-medical:after,.fad.fa-comment-alt-medical:after,.fad.fa-message-medical:after{content:"\f7f4\f7f4"}.fa-duotone.fa-rugby-ball:after,.fad.fa-rugby-ball:after{content:"\e3c6\e3c6"}.fa-duotone.fa-comment-music:after,.fad.fa-comment-music:after{content:"\f8b0\f8b0"}.fa-duotone.fa-indent:after,.fad.fa-indent:after{content:"\f03c\f03c"}.fa-duotone.fa-tree-alt:after,.fa-duotone.fa-tree-deciduous:after,.fad.fa-tree-alt:after,.fad.fa-tree-deciduous:after{content:"\f400\f400"}.fa-duotone.fa-puzzle-piece-alt:after,.fa-duotone.fa-puzzle-piece-simple:after,.fad.fa-puzzle-piece-alt:after,.fad.fa-puzzle-piece-simple:after{content:"\e231\e231"}.fa-duotone.fa-truck-field-un:after,.fad.fa-truck-field-un:after{content:"\e58e\e58e"}.fa-duotone.fa-nfc-trash:after,.fad.fa-nfc-trash:after{content:"\e1fd\e1fd"}.fa-duotone.fa-hourglass-empty:after,.fa-duotone.fa-hourglass:after,.fad.fa-hourglass-empty:after,.fad.fa-hourglass:after{content:"\f254\f254"}.fa-duotone.fa-mountain:after,.fad.fa-mountain:after{content:"\f6fc\f6fc"}.fa-duotone.fa-file-times:after,.fa-duotone.fa-file-xmark:after,.fad.fa-file-times:after,.fad.fa-file-xmark:after{content:"\f317\f317"}.fa-duotone.fa-home-heart:after,.fa-duotone.fa-house-heart:after,.fad.fa-home-heart:after,.fad.fa-house-heart:after{content:"\f4c9\f4c9"}.fa-duotone.fa-house-chimney-blank:after,.fad.fa-house-chimney-blank:after{content:"\e3b0\e3b0"}.fa-duotone.fa-meter-bolt:after,.fad.fa-meter-bolt:after{content:"\e1e9\e1e9"}.fa-duotone.fa-user-doctor:after,.fa-duotone.fa-user-md:after,.fad.fa-user-doctor:after,.fad.fa-user-md:after{content:"\f0f0\f0f0"}.fa-duotone.fa-slash-back:after,.fad.fa-slash-back:after{content:"\5c\5c"}.fa-duotone.fa-circle-info:after,.fa-duotone.fa-info-circle:after,.fad.fa-circle-info:after,.fad.fa-info-circle:after{content:"\f05a\f05a"}.fa-duotone.fa-fishing-rod:after,.fad.fa-fishing-rod:after{content:"\e3a8\e3a8"}.fa-duotone.fa-hammer-crash:after,.fad.fa-hammer-crash:after{content:"\e414\e414"}.fa-duotone.fa-message-heart:after,.fad.fa-message-heart:after{content:"\e5c9\e5c9"}.fa-duotone.fa-cloud-meatball:after,.fad.fa-cloud-meatball:after{content:"\f73b\f73b"}.fa-duotone.fa-camera-polaroid:after,.fad.fa-camera-polaroid:after{content:"\f8aa\f8aa"}.fa-duotone.fa-camera-alt:after,.fa-duotone.fa-camera:after,.fad.fa-camera-alt:after,.fad.fa-camera:after{content:"\f030\f030"}.fa-duotone.fa-square-virus:after,.fad.fa-square-virus:after{content:"\e578\e578"}.fa-duotone.fa-cart-arrow-up:after,.fad.fa-cart-arrow-up:after{content:"\e3ee\e3ee"}.fa-duotone.fa-meteor:after,.fad.fa-meteor:after{content:"\f753\f753"}.fa-duotone.fa-car-on:after,.fad.fa-car-on:after{content:"\e4dd\e4dd"}.fa-duotone.fa-sleigh:after,.fad.fa-sleigh:after{content:"\f7cc\f7cc"}.fa-duotone.fa-arrow-down-1-9:after,.fa-duotone.fa-sort-numeric-asc:after,.fa-duotone.fa-sort-numeric-down:after,.fad.fa-arrow-down-1-9:after,.fad.fa-sort-numeric-asc:after,.fad.fa-sort-numeric-down:after{content:"\f162\f162"}.fa-duotone.fa-buoy-mooring:after,.fad.fa-buoy-mooring:after{content:"\e5b6\e5b6"}.fa-duotone.fa-square-4:after,.fad.fa-square-4:after{content:"\e259\e259"}.fa-duotone.fa-hand-holding-droplet:after,.fa-duotone.fa-hand-holding-water:after,.fad.fa-hand-holding-droplet:after,.fad.fa-hand-holding-water:after{content:"\f4c1\f4c1"}.fa-duotone.fa-file-eps:after,.fad.fa-file-eps:after{content:"\e644\e644"}.fa-duotone.fa-tricycle-adult:after,.fad.fa-tricycle-adult:after{content:"\e5c4\e5c4"}.fa-duotone.fa-waveform:after,.fad.fa-waveform:after{content:"\f8f1\f8f1"}.fa-duotone.fa-water:after,.fad.fa-water:after{content:"\f773\f773"}.fa-duotone.fa-star-sharp-half-alt:after,.fa-duotone.fa-star-sharp-half-stroke:after,.fad.fa-star-sharp-half-alt:after,.fad.fa-star-sharp-half-stroke:after{content:"\e28d\e28d"}.fa-duotone.fa-nfc-signal:after,.fad.fa-nfc-signal:after{content:"\e1fb\e1fb"}.fa-duotone.fa-plane-prop:after,.fad.fa-plane-prop:after{content:"\e22b\e22b"}.fa-duotone.fa-calendar-check:after,.fad.fa-calendar-check:after{content:"\f274\f274"}.fa-duotone.fa-clock-desk:after,.fad.fa-clock-desk:after{content:"\e134\e134"}.fa-duotone.fa-calendar-clock:after,.fa-duotone.fa-calendar-time:after,.fad.fa-calendar-clock:after,.fad.fa-calendar-time:after{content:"\e0d2\e0d2"}.fa-duotone.fa-braille:after,.fad.fa-braille:after{content:"\f2a1\f2a1"}.fa-duotone.fa-prescription-bottle-alt:after,.fa-duotone.fa-prescription-bottle-medical:after,.fad.fa-prescription-bottle-alt:after,.fad.fa-prescription-bottle-medical:after{content:"\f486\f486"}.fa-duotone.fa-plate-utensils:after,.fad.fa-plate-utensils:after{content:"\e43b\e43b"}.fa-duotone.fa-family-pants:after,.fad.fa-family-pants:after{content:"\e302\e302"}.fa-duotone.fa-hose-reel:after,.fad.fa-hose-reel:after{content:"\e41a\e41a"}.fa-duotone.fa-house-window:after,.fad.fa-house-window:after{content:"\e3b3\e3b3"}.fa-duotone.fa-landmark:after,.fad.fa-landmark:after{content:"\f66f\f66f"}.fa-duotone.fa-truck:after,.fad.fa-truck:after{content:"\f0d1\f0d1"}.fa-duotone.fa-music-magnifying-glass:after,.fad.fa-music-magnifying-glass:after{content:"\e662\e662"}.fa-duotone.fa-crosshairs:after,.fad.fa-crosshairs:after{content:"\f05b\f05b"}.fa-duotone.fa-cloud-rainbow:after,.fad.fa-cloud-rainbow:after{content:"\f73e\f73e"}.fa-duotone.fa-person-cane:after,.fad.fa-person-cane:after{content:"\e53c\e53c"}.fa-duotone.fa-alien:after,.fad.fa-alien:after{content:"\f8f5\f8f5"}.fa-duotone.fa-tent:after,.fad.fa-tent:after{content:"\e57d\e57d"}.fa-duotone.fa-laptop-binary:after,.fad.fa-laptop-binary:after{content:"\e5e7\e5e7"}.fa-duotone.fa-vest-patches:after,.fad.fa-vest-patches:after{content:"\e086\e086"}.fa-duotone.fa-people-dress-simple:after,.fad.fa-people-dress-simple:after{content:"\e218\e218"}.fa-duotone.fa-check-double:after,.fad.fa-check-double:after{content:"\f560\f560"}.fa-duotone.fa-arrow-down-a-z:after,.fa-duotone.fa-sort-alpha-asc:after,.fa-duotone.fa-sort-alpha-down:after,.fad.fa-arrow-down-a-z:after,.fad.fa-sort-alpha-asc:after,.fad.fa-sort-alpha-down:after{content:"\f15d\f15d"}.fa-duotone.fa-bowling-ball-pin:after,.fad.fa-bowling-ball-pin:after{content:"\e0c3\e0c3"}.fa-duotone.fa-bell-school-slash:after,.fad.fa-bell-school-slash:after{content:"\f5d6\f5d6"}.fa-duotone.fa-plus-large:after,.fad.fa-plus-large:after{content:"\e59e\e59e"}.fa-duotone.fa-money-bill-wheat:after,.fad.fa-money-bill-wheat:after{content:"\e52a\e52a"}.fa-duotone.fa-camera-viewfinder:after,.fa-duotone.fa-screenshot:after,.fad.fa-camera-viewfinder:after,.fad.fa-screenshot:after{content:"\e0da\e0da"}.fa-duotone.fa-comment-alt-music:after,.fa-duotone.fa-message-music:after,.fad.fa-comment-alt-music:after,.fad.fa-message-music:after{content:"\f8af\f8af"}.fa-duotone.fa-car-building:after,.fad.fa-car-building:after{content:"\f859\f859"}.fa-duotone.fa-border-bottom-right:after,.fa-duotone.fa-border-style-alt:after,.fad.fa-border-bottom-right:after,.fad.fa-border-style-alt:after{content:"\f854\f854"}.fa-duotone.fa-octagon:after,.fad.fa-octagon:after{content:"\f306\f306"}.fa-duotone.fa-comment-arrow-up-right:after,.fad.fa-comment-arrow-up-right:after{content:"\e145\e145"}.fa-duotone.fa-octagon-divide:after,.fad.fa-octagon-divide:after{content:"\e203\e203"}.fa-duotone.fa-cookie:after,.fad.fa-cookie:after{content:"\f563\f563"}.fa-duotone.fa-arrow-left-rotate:after,.fa-duotone.fa-arrow-rotate-back:after,.fa-duotone.fa-arrow-rotate-backward:after,.fa-duotone.fa-arrow-rotate-left:after,.fa-duotone.fa-undo:after,.fad.fa-arrow-left-rotate:after,.fad.fa-arrow-rotate-back:after,.fad.fa-arrow-rotate-backward:after,.fad.fa-arrow-rotate-left:after,.fad.fa-undo:after{content:"\f0e2\f0e2"}.fa-duotone.fa-tv-music:after,.fad.fa-tv-music:after{content:"\f8e6\f8e6"}.fa-duotone.fa-hard-drive:after,.fa-duotone.fa-hdd:after,.fad.fa-hard-drive:after,.fad.fa-hdd:after{content:"\f0a0\f0a0"}.fa-duotone.fa-reel:after,.fad.fa-reel:after{content:"\e238\e238"}.fa-duotone.fa-face-grin-squint-tears:after,.fa-duotone.fa-grin-squint-tears:after,.fad.fa-face-grin-squint-tears:after,.fad.fa-grin-squint-tears:after{content:"\f586\f586"}.fa-duotone.fa-dumbbell:after,.fad.fa-dumbbell:after{content:"\f44b\f44b"}.fa-duotone.fa-list-alt:after,.fa-duotone.fa-rectangle-list:after,.fad.fa-list-alt:after,.fad.fa-rectangle-list:after{content:"\f022\f022"}.fa-duotone.fa-tarp-droplet:after,.fad.fa-tarp-droplet:after{content:"\e57c\e57c"}.fa-duotone.fa-alarm-exclamation:after,.fad.fa-alarm-exclamation:after{content:"\f843\f843"}.fa-duotone.fa-house-medical-circle-check:after,.fad.fa-house-medical-circle-check:after{content:"\e511\e511"}.fa-duotone.fa-traffic-cone:after,.fad.fa-traffic-cone:after{content:"\f636\f636"}.fa-duotone.fa-grate:after,.fad.fa-grate:after{content:"\e193\e193"}.fa-duotone.fa-arrow-down-right:after,.fad.fa-arrow-down-right:after{content:"\e093\e093"}.fa-duotone.fa-person-skiing-nordic:after,.fa-duotone.fa-skiing-nordic:after,.fad.fa-person-skiing-nordic:after,.fad.fa-skiing-nordic:after{content:"\f7ca\f7ca"}.fa-duotone.fa-calendar-plus:after,.fad.fa-calendar-plus:after{content:"\f271\f271"}.fa-duotone.fa-person-from-portal:after,.fa-duotone.fa-portal-exit:after,.fad.fa-person-from-portal:after,.fad.fa-portal-exit:after{content:"\e023\e023"}.fa-duotone.fa-plane-arrival:after,.fad.fa-plane-arrival:after{content:"\f5af\f5af"}.fa-duotone.fa-cowbell-circle-plus:after,.fa-duotone.fa-cowbell-more:after,.fad.fa-cowbell-circle-plus:after,.fad.fa-cowbell-more:after{content:"\f8b4\f8b4"}.fa-duotone.fa-arrow-alt-circle-left:after,.fa-duotone.fa-circle-left:after,.fad.fa-arrow-alt-circle-left:after,.fad.fa-circle-left:after{content:"\f359\f359"}.fa-duotone.fa-distribute-spacing-vertical:after,.fad.fa-distribute-spacing-vertical:after{content:"\e366\e366"}.fa-duotone.fa-signal-alt-2:after,.fa-duotone.fa-signal-bars-fair:after,.fad.fa-signal-alt-2:after,.fad.fa-signal-bars-fair:after{content:"\f692\f692"}.fa-duotone.fa-sportsball:after,.fad.fa-sportsball:after{content:"\e44b\e44b"}.fa-duotone.fa-game-console-handheld-crank:after,.fad.fa-game-console-handheld-crank:after{content:"\e5b9\e5b9"}.fa-duotone.fa-subway:after,.fa-duotone.fa-train-subway:after,.fad.fa-subway:after,.fad.fa-train-subway:after{content:"\f239\f239"}.fa-duotone.fa-chart-gantt:after,.fad.fa-chart-gantt:after{content:"\e0e4\e0e4"}.fa-duotone.fa-face-smile-upside-down:after,.fad.fa-face-smile-upside-down:after{content:"\e395\e395"}.fa-duotone.fa-ball-pile:after,.fad.fa-ball-pile:after{content:"\f77e\f77e"}.fa-duotone.fa-badge-dollar:after,.fad.fa-badge-dollar:after{content:"\f645\f645"}.fa-duotone.fa-money-bills-alt:after,.fa-duotone.fa-money-bills-simple:after,.fad.fa-money-bills-alt:after,.fad.fa-money-bills-simple:after{content:"\e1f4\e1f4"}.fa-duotone.fa-list-timeline:after,.fad.fa-list-timeline:after{content:"\e1d1\e1d1"}.fa-duotone.fa-indian-rupee-sign:after,.fa-duotone.fa-indian-rupee:after,.fa-duotone.fa-inr:after,.fad.fa-indian-rupee-sign:after,.fad.fa-indian-rupee:after,.fad.fa-inr:after{content:"\e1bc\e1bc"}.fa-duotone.fa-crop-alt:after,.fa-duotone.fa-crop-simple:after,.fad.fa-crop-alt:after,.fad.fa-crop-simple:after{content:"\f565\f565"}.fa-duotone.fa-money-bill-1:after,.fa-duotone.fa-money-bill-alt:after,.fad.fa-money-bill-1:after,.fad.fa-money-bill-alt:after{content:"\f3d1\f3d1"}.fa-duotone.fa-left-long:after,.fa-duotone.fa-long-arrow-alt-left:after,.fad.fa-left-long:after,.fad.fa-long-arrow-alt-left:after{content:"\f30a\f30a"}.fa-duotone.fa-keyboard-down:after,.fad.fa-keyboard-down:after{content:"\e1c2\e1c2"}.fa-duotone.fa-circle-up-right:after,.fad.fa-circle-up-right:after{content:"\e129\e129"}.fa-duotone.fa-cloud-bolt-moon:after,.fa-duotone.fa-thunderstorm-moon:after,.fad.fa-cloud-bolt-moon:after,.fad.fa-thunderstorm-moon:after{content:"\f76d\f76d"}.fa-duotone.fa-turn-left-up:after,.fad.fa-turn-left-up:after{content:"\e638\e638"}.fa-duotone.fa-dna:after,.fad.fa-dna:after{content:"\f471\f471"}.fa-duotone.fa-virus-slash:after,.fad.fa-virus-slash:after{content:"\e075\e075"}.fa-duotone.fa-bracket-round-right:after,.fad.fa-bracket-round-right:after{content:"\29\29"}.fa-duotone.fa-circle-sterling:after,.fad.fa-circle-sterling:after{content:"\e5cf\e5cf"}.fa-duotone.fa-circle-5:after,.fad.fa-circle-5:after{content:"\e0f2\e0f2"}.fa-duotone.fa-minus:after,.fa-duotone.fa-subtract:after,.fad.fa-minus:after,.fad.fa-subtract:after{content:"\f068\f068"}.fa-duotone.fa-fire-flame:after,.fa-duotone.fa-flame:after,.fad.fa-fire-flame:after,.fad.fa-flame:after{content:"\f6df\f6df"}.fa-duotone.fa-arrow-alt-to-right:after,.fa-duotone.fa-right-to-line:after,.fad.fa-arrow-alt-to-right:after,.fad.fa-right-to-line:after{content:"\f34c\f34c"}.fa-duotone.fa-gif:after,.fad.fa-gif:after{content:"\e190\e190"}.fa-duotone.fa-chess:after,.fad.fa-chess:after{content:"\f439\f439"}.fa-duotone.fa-trash-slash:after,.fad.fa-trash-slash:after{content:"\e2b3\e2b3"}.fa-duotone.fa-arrow-left-long:after,.fa-duotone.fa-long-arrow-left:after,.fad.fa-arrow-left-long:after,.fad.fa-long-arrow-left:after{content:"\f177\f177"}.fa-duotone.fa-plug-circle-check:after,.fad.fa-plug-circle-check:after{content:"\e55c\e55c"}.fa-duotone.fa-font-case:after,.fad.fa-font-case:after{content:"\f866\f866"}.fa-duotone.fa-street-view:after,.fad.fa-street-view:after{content:"\f21d\f21d"}.fa-duotone.fa-arrow-down-left:after,.fad.fa-arrow-down-left:after{content:"\e091\e091"}.fa-duotone.fa-franc-sign:after,.fad.fa-franc-sign:after{content:"\e18f\e18f"}.fa-duotone.fa-flask-poison:after,.fa-duotone.fa-flask-round-poison:after,.fad.fa-flask-poison:after,.fad.fa-flask-round-poison:after{content:"\f6e0\f6e0"}.fa-duotone.fa-volume-off:after,.fad.fa-volume-off:after{content:"\f026\f026"}.fa-duotone.fa-book-circle-arrow-right:after,.fad.fa-book-circle-arrow-right:after{content:"\e0bc\e0bc"}.fa-duotone.fa-chart-user:after,.fa-duotone.fa-user-chart:after,.fad.fa-chart-user:after,.fad.fa-user-chart:after{content:"\f6a3\f6a3"}.fa-duotone.fa-american-sign-language-interpreting:after,.fa-duotone.fa-asl-interpreting:after,.fa-duotone.fa-hands-american-sign-language-interpreting:after,.fa-duotone.fa-hands-asl-interpreting:after,.fad.fa-american-sign-language-interpreting:after,.fad.fa-asl-interpreting:after,.fad.fa-hands-american-sign-language-interpreting:after,.fad.fa-hands-asl-interpreting:after{content:"\f2a3\f2a3"}.fa-duotone.fa-presentation-screen:after,.fa-duotone.fa-presentation:after,.fad.fa-presentation-screen:after,.fad.fa-presentation:after{content:"\f685\f685"}.fa-duotone.fa-circle-bolt:after,.fad.fa-circle-bolt:after{content:"\e0fe\e0fe"}.fa-duotone.fa-face-smile-halo:after,.fad.fa-face-smile-halo:after{content:"\e38f\e38f"}.fa-duotone.fa-cart-circle-arrow-down:after,.fad.fa-cart-circle-arrow-down:after{content:"\e3ef\e3ef"}.fa-duotone.fa-house-person-arrive:after,.fa-duotone.fa-house-person-return:after,.fa-duotone.fa-house-return:after,.fad.fa-house-person-arrive:after,.fad.fa-house-person-return:after,.fad.fa-house-return:after{content:"\e011\e011"}.fa-duotone.fa-comment-alt-times:after,.fa-duotone.fa-message-times:after,.fa-duotone.fa-message-xmark:after,.fad.fa-comment-alt-times:after,.fad.fa-message-times:after,.fad.fa-message-xmark:after{content:"\f4ab\f4ab"}.fa-duotone.fa-file-award:after,.fa-duotone.fa-file-certificate:after,.fad.fa-file-award:after,.fad.fa-file-certificate:after{content:"\f5f3\f5f3"}.fa-duotone.fa-user-doctor-hair-long:after,.fad.fa-user-doctor-hair-long:after{content:"\e459\e459"}.fa-duotone.fa-camera-home:after,.fa-duotone.fa-camera-security:after,.fad.fa-camera-home:after,.fad.fa-camera-security:after{content:"\f8fe\f8fe"}.fa-duotone.fa-cog:after,.fa-duotone.fa-gear:after,.fad.fa-cog:after,.fad.fa-gear:after{content:"\f013\f013"}.fa-duotone.fa-droplet-slash:after,.fa-duotone.fa-tint-slash:after,.fad.fa-droplet-slash:after,.fad.fa-tint-slash:after{content:"\f5c7\f5c7"}.fa-duotone.fa-book-heart:after,.fad.fa-book-heart:after{content:"\f499\f499"}.fa-duotone.fa-mosque:after,.fad.fa-mosque:after{content:"\f678\f678"}.fa-duotone.fa-duck:after,.fad.fa-duck:after{content:"\f6d8\f6d8"}.fa-duotone.fa-mosquito:after,.fad.fa-mosquito:after{content:"\e52b\e52b"}.fa-duotone.fa-star-of-david:after,.fad.fa-star-of-david:after{content:"\f69a\f69a"}.fa-duotone.fa-flag-alt:after,.fa-duotone.fa-flag-swallowtail:after,.fad.fa-flag-alt:after,.fad.fa-flag-swallowtail:after{content:"\f74c\f74c"}.fa-duotone.fa-person-military-rifle:after,.fad.fa-person-military-rifle:after{content:"\e54b\e54b"}.fa-duotone.fa-car-garage:after,.fad.fa-car-garage:after{content:"\f5e2\f5e2"}.fa-duotone.fa-cart-shopping:after,.fa-duotone.fa-shopping-cart:after,.fad.fa-cart-shopping:after,.fad.fa-shopping-cart:after{content:"\f07a\f07a"}.fa-duotone.fa-book-font:after,.fad.fa-book-font:after{content:"\e0bf\e0bf"}.fa-duotone.fa-shield-plus:after,.fad.fa-shield-plus:after{content:"\e24a\e24a"}.fa-duotone.fa-vials:after,.fad.fa-vials:after{content:"\f493\f493"}.fa-duotone.fa-eye-dropper-full:after,.fad.fa-eye-dropper-full:after{content:"\e172\e172"}.fa-duotone.fa-distribute-spacing-horizontal:after,.fad.fa-distribute-spacing-horizontal:after{content:"\e365\e365"}.fa-duotone.fa-tablet-rugged:after,.fad.fa-tablet-rugged:after{content:"\f48f\f48f"}.fa-duotone.fa-temperature-frigid:after,.fa-duotone.fa-temperature-snow:after,.fad.fa-temperature-frigid:after,.fad.fa-temperature-snow:after{content:"\f768\f768"}.fa-duotone.fa-moped:after,.fad.fa-moped:after{content:"\e3b9\e3b9"}.fa-duotone.fa-face-smile-plus:after,.fa-duotone.fa-smile-plus:after,.fad.fa-face-smile-plus:after,.fad.fa-smile-plus:after{content:"\f5b9\f5b9"}.fa-duotone.fa-radio-alt:after,.fa-duotone.fa-radio-tuner:after,.fad.fa-radio-alt:after,.fad.fa-radio-tuner:after{content:"\f8d8\f8d8"}.fa-duotone.fa-face-swear:after,.fad.fa-face-swear:after{content:"\e399\e399"}.fa-duotone.fa-water-arrow-down:after,.fa-duotone.fa-water-lower:after,.fad.fa-water-arrow-down:after,.fad.fa-water-lower:after{content:"\f774\f774"}.fa-duotone.fa-scanner-touchscreen:after,.fad.fa-scanner-touchscreen:after{content:"\f48a\f48a"}.fa-duotone.fa-circle-7:after,.fad.fa-circle-7:after{content:"\e0f4\e0f4"}.fa-duotone.fa-plug-circle-plus:after,.fad.fa-plug-circle-plus:after{content:"\e55f\e55f"}.fa-duotone.fa-person-ski-jumping:after,.fa-duotone.fa-ski-jump:after,.fad.fa-person-ski-jumping:after,.fad.fa-ski-jump:after{content:"\f7c7\f7c7"}.fa-duotone.fa-place-of-worship:after,.fad.fa-place-of-worship:after{content:"\f67f\f67f"}.fa-duotone.fa-water-arrow-up:after,.fa-duotone.fa-water-rise:after,.fad.fa-water-arrow-up:after,.fad.fa-water-rise:after{content:"\f775\f775"}.fa-duotone.fa-waveform-lines:after,.fa-duotone.fa-waveform-path:after,.fad.fa-waveform-lines:after,.fad.fa-waveform-path:after{content:"\f8f2\f8f2"}.fa-duotone.fa-split:after,.fad.fa-split:after{content:"\e254\e254"}.fa-duotone.fa-film-canister:after,.fa-duotone.fa-film-cannister:after,.fad.fa-film-canister:after,.fad.fa-film-cannister:after{content:"\f8b7\f8b7"}.fa-duotone.fa-folder-times:after,.fa-duotone.fa-folder-xmark:after,.fad.fa-folder-times:after,.fad.fa-folder-xmark:after{content:"\f65f\f65f"}.fa-duotone.fa-toilet-paper-alt:after,.fa-duotone.fa-toilet-paper-blank:after,.fad.fa-toilet-paper-alt:after,.fad.fa-toilet-paper-blank:after{content:"\f71f\f71f"}.fa-duotone.fa-tablet-android-alt:after,.fa-duotone.fa-tablet-screen:after,.fad.fa-tablet-android-alt:after,.fad.fa-tablet-screen:after{content:"\f3fc\f3fc"}.fa-duotone.fa-hexagon-vertical-nft-slanted:after,.fad.fa-hexagon-vertical-nft-slanted:after{content:"\e506\e506"}.fa-duotone.fa-folder-music:after,.fad.fa-folder-music:after{content:"\e18d\e18d"}.fa-duotone.fa-desktop-medical:after,.fa-duotone.fa-display-medical:after,.fad.fa-desktop-medical:after,.fad.fa-display-medical:after{content:"\e166\e166"}.fa-duotone.fa-share-all:after,.fad.fa-share-all:after{content:"\f367\f367"}.fa-duotone.fa-peapod:after,.fad.fa-peapod:after{content:"\e31c\e31c"}.fa-duotone.fa-chess-clock:after,.fad.fa-chess-clock:after{content:"\f43d\f43d"}.fa-duotone.fa-axe:after,.fad.fa-axe:after{content:"\f6b2\f6b2"}.fa-duotone.fa-square-d:after,.fad.fa-square-d:after{content:"\e268\e268"}.fa-duotone.fa-grip-vertical:after,.fad.fa-grip-vertical:after{content:"\f58e\f58e"}.fa-duotone.fa-mobile-signal-out:after,.fad.fa-mobile-signal-out:after{content:"\e1f0\e1f0"}.fa-duotone.fa-arrow-turn-up:after,.fa-duotone.fa-level-up:after,.fad.fa-arrow-turn-up:after,.fad.fa-level-up:after{content:"\f148\f148"}.fa-duotone.fa-u:after,.fad.fa-u:after{content:"\55\55"}.fa-duotone.fa-arrow-up-from-dotted-line:after,.fad.fa-arrow-up-from-dotted-line:after{content:"\e09b\e09b"}.fa-duotone.fa-square-root-alt:after,.fa-duotone.fa-square-root-variable:after,.fad.fa-square-root-alt:after,.fad.fa-square-root-variable:after{content:"\f698\f698"}.fa-duotone.fa-light-switch-on:after,.fad.fa-light-switch-on:after{content:"\e019\e019"}.fa-duotone.fa-arrow-down-arrow-up:after,.fa-duotone.fa-sort-alt:after,.fad.fa-arrow-down-arrow-up:after,.fad.fa-sort-alt:after{content:"\f883\f883"}.fa-duotone.fa-raindrops:after,.fad.fa-raindrops:after{content:"\f75c\f75c"}.fa-duotone.fa-dash:after,.fa-duotone.fa-minus-large:after,.fad.fa-dash:after,.fad.fa-minus-large:after{content:"\e404\e404"}.fa-duotone.fa-clock-four:after,.fa-duotone.fa-clock:after,.fad.fa-clock-four:after,.fad.fa-clock:after{content:"\f017\f017"}.fa-duotone.fa-input-numeric:after,.fad.fa-input-numeric:after{content:"\e1bd\e1bd"}.fa-duotone.fa-truck-tow:after,.fad.fa-truck-tow:after{content:"\e2b8\e2b8"}.fa-duotone.fa-backward-step:after,.fa-duotone.fa-step-backward:after,.fad.fa-backward-step:after,.fad.fa-step-backward:after{content:"\f048\f048"}.fa-duotone.fa-pallet:after,.fad.fa-pallet:after{content:"\f482\f482"}.fa-duotone.fa-car-bolt:after,.fad.fa-car-bolt:after{content:"\e341\e341"}.fa-duotone.fa-arrows-maximize:after,.fa-duotone.fa-expand-arrows:after,.fad.fa-arrows-maximize:after,.fad.fa-expand-arrows:after{content:"\f31d\f31d"}.fa-duotone.fa-faucet:after,.fad.fa-faucet:after{content:"\e005\e005"}.fa-duotone.fa-cloud-sleet:after,.fad.fa-cloud-sleet:after{content:"\f741\f741"}.fa-duotone.fa-lamp-street:after,.fad.fa-lamp-street:after{content:"\e1c5\e1c5"}.fa-duotone.fa-list-radio:after,.fad.fa-list-radio:after{content:"\e1d0\e1d0"}.fa-duotone.fa-pen-nib-slash:after,.fad.fa-pen-nib-slash:after{content:"\e4a1\e4a1"}.fa-duotone.fa-baseball-bat-ball:after,.fad.fa-baseball-bat-ball:after{content:"\f432\f432"}.fa-duotone.fa-square-up-left:after,.fad.fa-square-up-left:after{content:"\e282\e282"}.fa-duotone.fa-overline:after,.fad.fa-overline:after{content:"\f876\f876"}.fa-duotone.fa-s:after,.fad.fa-s:after{content:"\53\53"}.fa-duotone.fa-timeline:after,.fad.fa-timeline:after{content:"\e29c\e29c"}.fa-duotone.fa-keyboard:after,.fad.fa-keyboard:after{content:"\f11c\f11c"}.fa-duotone.fa-arrows-from-dotted-line:after,.fad.fa-arrows-from-dotted-line:after{content:"\e0a3\e0a3"}.fa-duotone.fa-usb-drive:after,.fad.fa-usb-drive:after{content:"\f8e9\f8e9"}.fa-duotone.fa-ballot:after,.fad.fa-ballot:after{content:"\f732\f732"}.fa-duotone.fa-caret-down:after,.fad.fa-caret-down:after{content:"\f0d7\f0d7"}.fa-duotone.fa-location-dot-slash:after,.fa-duotone.fa-map-marker-alt-slash:after,.fad.fa-location-dot-slash:after,.fad.fa-map-marker-alt-slash:after{content:"\f605\f605"}.fa-duotone.fa-cards:after,.fad.fa-cards:after{content:"\e3ed\e3ed"}.fa-duotone.fa-clinic-medical:after,.fa-duotone.fa-house-chimney-medical:after,.fad.fa-clinic-medical:after,.fad.fa-house-chimney-medical:after{content:"\f7f2\f7f2"}.fa-duotone.fa-boxing-glove:after,.fa-duotone.fa-glove-boxing:after,.fad.fa-boxing-glove:after,.fad.fa-glove-boxing:after{content:"\f438\f438"}.fa-duotone.fa-temperature-3:after,.fa-duotone.fa-temperature-three-quarters:after,.fa-duotone.fa-thermometer-3:after,.fa-duotone.fa-thermometer-three-quarters:after,.fad.fa-temperature-3:after,.fad.fa-temperature-three-quarters:after,.fad.fa-thermometer-3:after,.fad.fa-thermometer-three-quarters:after{content:"\f2c8\f2c8"}.fa-duotone.fa-bell-school:after,.fad.fa-bell-school:after{content:"\f5d5\f5d5"}.fa-duotone.fa-mobile-android-alt:after,.fa-duotone.fa-mobile-screen:after,.fad.fa-mobile-android-alt:after,.fad.fa-mobile-screen:after{content:"\f3cf\f3cf"}.fa-duotone.fa-plane-up:after,.fad.fa-plane-up:after{content:"\e22d\e22d"}.fa-duotone.fa-folder-heart:after,.fad.fa-folder-heart:after{content:"\e189\e189"}.fa-duotone.fa-circle-location-arrow:after,.fa-duotone.fa-location-circle:after,.fad.fa-circle-location-arrow:after,.fad.fa-location-circle:after{content:"\f602\f602"}.fa-duotone.fa-face-head-bandage:after,.fad.fa-face-head-bandage:after{content:"\e37a\e37a"}.fa-duotone.fa-maki-roll:after,.fa-duotone.fa-makizushi:after,.fa-duotone.fa-sushi-roll:after,.fad.fa-maki-roll:after,.fad.fa-makizushi:after,.fad.fa-sushi-roll:after{content:"\e48b\e48b"}.fa-duotone.fa-car-bump:after,.fad.fa-car-bump:after{content:"\f5e0\f5e0"}.fa-duotone.fa-piggy-bank:after,.fad.fa-piggy-bank:after{content:"\f4d3\f4d3"}.fa-duotone.fa-racquet:after,.fad.fa-racquet:after{content:"\f45a\f45a"}.fa-duotone.fa-car-mirrors:after,.fad.fa-car-mirrors:after{content:"\e343\e343"}.fa-duotone.fa-industry-alt:after,.fa-duotone.fa-industry-windows:after,.fad.fa-industry-alt:after,.fad.fa-industry-windows:after{content:"\f3b3\f3b3"}.fa-duotone.fa-bolt-auto:after,.fad.fa-bolt-auto:after{content:"\e0b6\e0b6"}.fa-duotone.fa-battery-3:after,.fa-duotone.fa-battery-half:after,.fad.fa-battery-3:after,.fad.fa-battery-half:after{content:"\f242\f242"}.fa-duotone.fa-flux-capacitor:after,.fad.fa-flux-capacitor:after{content:"\f8ba\f8ba"}.fa-duotone.fa-mountain-city:after,.fad.fa-mountain-city:after{content:"\e52e\e52e"}.fa-duotone.fa-coins:after,.fad.fa-coins:after{content:"\f51e\f51e"}.fa-duotone.fa-honey-pot:after,.fad.fa-honey-pot:after{content:"\e418\e418"}.fa-duotone.fa-olive:after,.fad.fa-olive:after{content:"\e316\e316"}.fa-duotone.fa-khanda:after,.fad.fa-khanda:after{content:"\f66d\f66d"}.fa-duotone.fa-filter-list:after,.fad.fa-filter-list:after{content:"\e17c\e17c"}.fa-duotone.fa-outlet:after,.fad.fa-outlet:after{content:"\e01c\e01c"}.fa-duotone.fa-sliders-h:after,.fa-duotone.fa-sliders:after,.fad.fa-sliders-h:after,.fad.fa-sliders:after{content:"\f1de\f1de"}.fa-duotone.fa-cauldron:after,.fad.fa-cauldron:after{content:"\f6bf\f6bf"}.fa-duotone.fa-people:after,.fad.fa-people:after{content:"\e216\e216"}.fa-duotone.fa-folder-tree:after,.fad.fa-folder-tree:after{content:"\f802\f802"}.fa-duotone.fa-network-wired:after,.fad.fa-network-wired:after{content:"\f6ff\f6ff"}.fa-duotone.fa-croissant:after,.fad.fa-croissant:after{content:"\f7f6\f7f6"}.fa-duotone.fa-map-pin:after,.fad.fa-map-pin:after{content:"\f276\f276"}.fa-duotone.fa-hamsa:after,.fad.fa-hamsa:after{content:"\f665\f665"}.fa-duotone.fa-cent-sign:after,.fad.fa-cent-sign:after{content:"\e3f5\e3f5"}.fa-duotone.fa-swords-laser:after,.fad.fa-swords-laser:after{content:"\e03d\e03d"}.fa-duotone.fa-flask:after,.fad.fa-flask:after{content:"\f0c3\f0c3"}.fa-duotone.fa-person-pregnant:after,.fad.fa-person-pregnant:after{content:"\e31e\e31e"}.fa-duotone.fa-square-u:after,.fad.fa-square-u:after{content:"\e281\e281"}.fa-duotone.fa-wand-sparkles:after,.fad.fa-wand-sparkles:after{content:"\f72b\f72b"}.fa-duotone.fa-router:after,.fad.fa-router:after{content:"\f8da\f8da"}.fa-duotone.fa-ellipsis-v:after,.fa-duotone.fa-ellipsis-vertical:after,.fad.fa-ellipsis-v:after,.fad.fa-ellipsis-vertical:after{content:"\f142\f142"}.fa-duotone.fa-sword-laser-alt:after,.fad.fa-sword-laser-alt:after{content:"\e03c\e03c"}.fa-duotone.fa-ticket:after,.fad.fa-ticket:after{content:"\f145\f145"}.fa-duotone.fa-power-off:after,.fad.fa-power-off:after{content:"\f011\f011"}.fa-duotone.fa-coin:after,.fad.fa-coin:after{content:"\f85c\f85c"}.fa-duotone.fa-laptop-slash:after,.fad.fa-laptop-slash:after{content:"\e1c7\e1c7"}.fa-duotone.fa-long-arrow-alt-right:after,.fa-duotone.fa-right-long:after,.fad.fa-long-arrow-alt-right:after,.fad.fa-right-long:after{content:"\f30b\f30b"}.fa-duotone.fa-circle-b:after,.fad.fa-circle-b:after{content:"\e0fd\e0fd"}.fa-duotone.fa-person-dress-simple:after,.fad.fa-person-dress-simple:after{content:"\e21c\e21c"}.fa-duotone.fa-pipe-collar:after,.fad.fa-pipe-collar:after{content:"\e437\e437"}.fa-duotone.fa-lights-holiday:after,.fad.fa-lights-holiday:after{content:"\f7b2\f7b2"}.fa-duotone.fa-citrus:after,.fad.fa-citrus:after{content:"\e2f4\e2f4"}.fa-duotone.fa-flag-usa:after,.fad.fa-flag-usa:after{content:"\f74d\f74d"}.fa-duotone.fa-laptop-file:after,.fad.fa-laptop-file:after{content:"\e51d\e51d"}.fa-duotone.fa-teletype:after,.fa-duotone.fa-tty:after,.fad.fa-teletype:after,.fad.fa-tty:after{content:"\f1e4\f1e4"}.fa-duotone.fa-chart-tree-map:after,.fad.fa-chart-tree-map:after{content:"\e0ea\e0ea"}.fa-duotone.fa-diagram-next:after,.fad.fa-diagram-next:after{content:"\e476\e476"}.fa-duotone.fa-person-rifle:after,.fad.fa-person-rifle:after{content:"\e54e\e54e"}.fa-duotone.fa-clock-five-thirty:after,.fad.fa-clock-five-thirty:after{content:"\e34a\e34a"}.fa-duotone.fa-pipe-valve:after,.fad.fa-pipe-valve:after{content:"\e439\e439"}.fa-duotone.fa-arrow-up-from-arc:after,.fad.fa-arrow-up-from-arc:after{content:"\e4b4\e4b4"}.fa-duotone.fa-face-spiral-eyes:after,.fad.fa-face-spiral-eyes:after{content:"\e485\e485"}.fa-duotone.fa-compress-wide:after,.fad.fa-compress-wide:after{content:"\f326\f326"}.fa-duotone.fa-circle-phone-hangup:after,.fa-duotone.fa-phone-circle-down:after,.fad.fa-circle-phone-hangup:after,.fad.fa-phone-circle-down:after{content:"\e11d\e11d"}.fa-duotone.fa-gear-complex-code:after,.fad.fa-gear-complex-code:after{content:"\e5eb\e5eb"}.fa-duotone.fa-house-medical-circle-exclamation:after,.fad.fa-house-medical-circle-exclamation:after{content:"\e512\e512"}.fa-duotone.fa-badminton:after,.fad.fa-badminton:after{content:"\e33a\e33a"}.fa-duotone.fa-closed-captioning:after,.fad.fa-closed-captioning:after{content:"\f20a\f20a"}.fa-duotone.fa-hiking:after,.fa-duotone.fa-person-hiking:after,.fad.fa-hiking:after,.fad.fa-person-hiking:after{content:"\f6ec\f6ec"}.fa-duotone.fa-arrow-alt-from-left:after,.fa-duotone.fa-right-from-line:after,.fad.fa-arrow-alt-from-left:after,.fad.fa-right-from-line:after{content:"\f347\f347"}.fa-duotone.fa-venus-double:after,.fad.fa-venus-double:after{content:"\f226\f226"}.fa-duotone.fa-images:after,.fad.fa-images:after{content:"\f302\f302"}.fa-duotone.fa-calculator:after,.fad.fa-calculator:after{content:"\f1ec\f1ec"}.fa-duotone.fa-shuttlecock:after,.fad.fa-shuttlecock:after{content:"\f45b\f45b"}.fa-duotone.fa-user-hair:after,.fad.fa-user-hair:after{content:"\e45a\e45a"}.fa-duotone.fa-eye-evil:after,.fad.fa-eye-evil:after{content:"\f6db\f6db"}.fa-duotone.fa-people-pulling:after,.fad.fa-people-pulling:after{content:"\e535\e535"}.fa-duotone.fa-n:after,.fad.fa-n:after{content:"\4e\4e"}.fa-duotone.fa-swap:after,.fad.fa-swap:after{content:"\e609\e609"}.fa-duotone.fa-garage:after,.fad.fa-garage:after{content:"\e009\e009"}.fa-duotone.fa-cable-car:after,.fa-duotone.fa-tram:after,.fad.fa-cable-car:after,.fad.fa-tram:after{content:"\f7da\f7da"}.fa-duotone.fa-shovel-snow:after,.fad.fa-shovel-snow:after{content:"\f7c3\f7c3"}.fa-duotone.fa-cloud-rain:after,.fad.fa-cloud-rain:after{content:"\f73d\f73d"}.fa-duotone.fa-face-lying:after,.fad.fa-face-lying:after{content:"\e37e\e37e"}.fa-duotone.fa-sprinkler:after,.fad.fa-sprinkler:after{content:"\e035\e035"}.fa-duotone.fa-building-circle-xmark:after,.fad.fa-building-circle-xmark:after{content:"\e4d4\e4d4"}.fa-duotone.fa-person-sledding:after,.fa-duotone.fa-sledding:after,.fad.fa-person-sledding:after,.fad.fa-sledding:after{content:"\f7cb\f7cb"}.fa-duotone.fa-game-console-handheld:after,.fad.fa-game-console-handheld:after{content:"\f8bb\f8bb"}.fa-duotone.fa-ship:after,.fad.fa-ship:after{content:"\f21a\f21a"}.fa-duotone.fa-clock-six-thirty:after,.fad.fa-clock-six-thirty:after{content:"\e353\e353"}.fa-duotone.fa-battery-slash:after,.fad.fa-battery-slash:after{content:"\f377\f377"}.fa-duotone.fa-tugrik-sign:after,.fad.fa-tugrik-sign:after{content:"\e2ba\e2ba"}.fa-duotone.fa-arrows-down-to-line:after,.fad.fa-arrows-down-to-line:after{content:"\e4b8\e4b8"}.fa-duotone.fa-download:after,.fad.fa-download:after{content:"\f019\f019"}.fa-duotone.fa-angles-up-down:after,.fad.fa-angles-up-down:after{content:"\e60d\e60d"}.fa-duotone.fa-inventory:after,.fa-duotone.fa-shelves:after,.fad.fa-inventory:after,.fad.fa-shelves:after{content:"\f480\f480"}.fa-duotone.fa-cloud-snow:after,.fad.fa-cloud-snow:after{content:"\f742\f742"}.fa-duotone.fa-face-grin:after,.fa-duotone.fa-grin:after,.fad.fa-face-grin:after,.fad.fa-grin:after{content:"\f580\f580"}.fa-duotone.fa-backspace:after,.fa-duotone.fa-delete-left:after,.fad.fa-backspace:after,.fad.fa-delete-left:after{content:"\f55a\f55a"}.fa-duotone.fa-oven:after,.fad.fa-oven:after{content:"\e01d\e01d"}.fa-duotone.fa-cloud-binary:after,.fad.fa-cloud-binary:after{content:"\e601\e601"}.fa-duotone.fa-eye-dropper-empty:after,.fa-duotone.fa-eye-dropper:after,.fa-duotone.fa-eyedropper:after,.fad.fa-eye-dropper-empty:after,.fad.fa-eye-dropper:after,.fad.fa-eyedropper:after{content:"\f1fb\f1fb"}.fa-duotone.fa-comment-captions:after,.fad.fa-comment-captions:after{content:"\e146\e146"}.fa-duotone.fa-comments-question:after,.fad.fa-comments-question:after{content:"\e14e\e14e"}.fa-duotone.fa-scribble:after,.fad.fa-scribble:after{content:"\e23f\e23f"}.fa-duotone.fa-rotate-exclamation:after,.fad.fa-rotate-exclamation:after{content:"\e23c\e23c"}.fa-duotone.fa-file-circle-check:after,.fad.fa-file-circle-check:after{content:"\e5a0\e5a0"}.fa-duotone.fa-glass:after,.fad.fa-glass:after{content:"\f804\f804"}.fa-duotone.fa-loader:after,.fad.fa-loader:after{content:"\e1d4\e1d4"}.fa-duotone.fa-forward:after,.fad.fa-forward:after{content:"\f04e\f04e"}.fa-duotone.fa-user-pilot:after,.fad.fa-user-pilot:after{content:"\e2c0\e2c0"}.fa-duotone.fa-mobile-android:after,.fa-duotone.fa-mobile-phone:after,.fa-duotone.fa-mobile:after,.fad.fa-mobile-android:after,.fad.fa-mobile-phone:after,.fad.fa-mobile:after{content:"\f3ce\f3ce"}.fa-duotone.fa-code-pull-request-closed:after,.fad.fa-code-pull-request-closed:after{content:"\e3f9\e3f9"}.fa-duotone.fa-face-meh:after,.fa-duotone.fa-meh:after,.fad.fa-face-meh:after,.fad.fa-meh:after{content:"\f11a\f11a"}.fa-duotone.fa-align-center:after,.fad.fa-align-center:after{content:"\f037\f037"}.fa-duotone.fa-book-dead:after,.fa-duotone.fa-book-skull:after,.fad.fa-book-dead:after,.fad.fa-book-skull:after{content:"\f6b7\f6b7"}.fa-duotone.fa-drivers-license:after,.fa-duotone.fa-id-card:after,.fad.fa-drivers-license:after,.fad.fa-id-card:after{content:"\f2c2\f2c2"}.fa-duotone.fa-face-dotted:after,.fad.fa-face-dotted:after{content:"\e47f\e47f"}.fa-duotone.fa-face-worried:after,.fad.fa-face-worried:after{content:"\e3a3\e3a3"}.fa-duotone.fa-dedent:after,.fa-duotone.fa-outdent:after,.fad.fa-dedent:after,.fad.fa-outdent:after{content:"\f03b\f03b"}.fa-duotone.fa-court-sport:after,.fad.fa-court-sport:after{content:"\e643\e643"}.fa-duotone.fa-heart-circle-exclamation:after,.fad.fa-heart-circle-exclamation:after{content:"\e4fe\e4fe"}.fa-duotone.fa-home-alt:after,.fa-duotone.fa-home-lg-alt:after,.fa-duotone.fa-home:after,.fa-duotone.fa-house:after,.fad.fa-home-alt:after,.fad.fa-home-lg-alt:after,.fad.fa-home:after,.fad.fa-house:after{content:"\f015\f015"}.fa-duotone.fa-vector-circle:after,.fad.fa-vector-circle:after{content:"\e2c6\e2c6"}.fa-duotone.fa-car-circle-bolt:after,.fad.fa-car-circle-bolt:after{content:"\e342\e342"}.fa-duotone.fa-calendar-week:after,.fad.fa-calendar-week:after{content:"\f784\f784"}.fa-duotone.fa-flying-disc:after,.fad.fa-flying-disc:after{content:"\e3a9\e3a9"}.fa-duotone.fa-laptop-medical:after,.fad.fa-laptop-medical:after{content:"\f812\f812"}.fa-duotone.fa-square-down-right:after,.fad.fa-square-down-right:after{content:"\e26c\e26c"}.fa-duotone.fa-b:after,.fad.fa-b:after{content:"\42\42"}.fa-duotone.fa-seat-airline:after,.fad.fa-seat-airline:after{content:"\e244\e244"}.fa-duotone.fa-eclipse-alt:after,.fa-duotone.fa-moon-over-sun:after,.fad.fa-eclipse-alt:after,.fad.fa-moon-over-sun:after{content:"\f74a\f74a"}.fa-duotone.fa-pipe:after,.fad.fa-pipe:after{content:"\7c\7c"}.fa-duotone.fa-file-medical:after,.fad.fa-file-medical:after{content:"\f477\f477"}.fa-duotone.fa-potato:after,.fad.fa-potato:after{content:"\e440\e440"}.fa-duotone.fa-dice-one:after,.fad.fa-dice-one:after{content:"\f525\f525"}.fa-duotone.fa-circle-a:after,.fad.fa-circle-a:after{content:"\e0f7\e0f7"}.fa-duotone.fa-helmet-battle:after,.fad.fa-helmet-battle:after{content:"\f6eb\f6eb"}.fa-duotone.fa-butter:after,.fad.fa-butter:after{content:"\e3e4\e3e4"}.fa-duotone.fa-blanket-fire:after,.fad.fa-blanket-fire:after{content:"\e3da\e3da"}.fa-duotone.fa-kiwi-bird:after,.fad.fa-kiwi-bird:after{content:"\f535\f535"}.fa-duotone.fa-castle:after,.fad.fa-castle:after{content:"\e0de\e0de"}.fa-duotone.fa-golf-club:after,.fad.fa-golf-club:after{content:"\f451\f451"}.fa-duotone.fa-arrow-right-arrow-left:after,.fa-duotone.fa-exchange:after,.fad.fa-arrow-right-arrow-left:after,.fad.fa-exchange:after{content:"\f0ec\f0ec"}.fa-duotone.fa-redo-alt:after,.fa-duotone.fa-rotate-forward:after,.fa-duotone.fa-rotate-right:after,.fad.fa-redo-alt:after,.fad.fa-rotate-forward:after,.fad.fa-rotate-right:after{content:"\f2f9\f2f9"}.fa-duotone.fa-cutlery:after,.fa-duotone.fa-utensils:after,.fad.fa-cutlery:after,.fad.fa-utensils:after{content:"\f2e7\f2e7"}.fa-duotone.fa-arrow-up-wide-short:after,.fa-duotone.fa-sort-amount-up:after,.fad.fa-arrow-up-wide-short:after,.fad.fa-sort-amount-up:after{content:"\f161\f161"}.fa-duotone.fa-chart-pie-simple-circle-dollar:after,.fad.fa-chart-pie-simple-circle-dollar:after{content:"\e605\e605"}.fa-duotone.fa-balloons:after,.fad.fa-balloons:after{content:"\e2e4\e2e4"}.fa-duotone.fa-mill-sign:after,.fad.fa-mill-sign:after{content:"\e1ed\e1ed"}.fa-duotone.fa-bowl-rice:after,.fad.fa-bowl-rice:after{content:"\e2eb\e2eb"}.fa-duotone.fa-timeline-arrow:after,.fad.fa-timeline-arrow:after{content:"\e29d\e29d"}.fa-duotone.fa-skull:after,.fad.fa-skull:after{content:"\f54c\f54c"}.fa-duotone.fa-game-board-alt:after,.fa-duotone.fa-game-board-simple:after,.fad.fa-game-board-alt:after,.fad.fa-game-board-simple:after{content:"\f868\f868"}.fa-duotone.fa-circle-video:after,.fa-duotone.fa-video-circle:after,.fad.fa-circle-video:after,.fad.fa-video-circle:after{content:"\e12b\e12b"}.fa-duotone.fa-chart-scatter-bubble:after,.fad.fa-chart-scatter-bubble:after{content:"\e0e9\e0e9"}.fa-duotone.fa-house-turret:after,.fad.fa-house-turret:after{content:"\e1b4\e1b4"}.fa-duotone.fa-banana:after,.fad.fa-banana:after{content:"\e2e5\e2e5"}.fa-duotone.fa-hand-holding-skull:after,.fad.fa-hand-holding-skull:after{content:"\e1a4\e1a4"}.fa-duotone.fa-people-dress:after,.fad.fa-people-dress:after{content:"\e217\e217"}.fa-duotone.fa-couch-small:after,.fa-duotone.fa-loveseat:after,.fad.fa-couch-small:after,.fad.fa-loveseat:after{content:"\f4cc\f4cc"}.fa-duotone.fa-broadcast-tower:after,.fa-duotone.fa-tower-broadcast:after,.fad.fa-broadcast-tower:after,.fad.fa-tower-broadcast:after{content:"\f519\f519"}.fa-duotone.fa-truck-pickup:after,.fad.fa-truck-pickup:after{content:"\f63c\f63c"}.fa-duotone.fa-block-quote:after,.fad.fa-block-quote:after{content:"\e0b5\e0b5"}.fa-duotone.fa-long-arrow-alt-up:after,.fa-duotone.fa-up-long:after,.fad.fa-long-arrow-alt-up:after,.fad.fa-up-long:after{content:"\f30c\f30c"}.fa-duotone.fa-stop:after,.fad.fa-stop:after{content:"\f04d\f04d"}.fa-duotone.fa-code-merge:after,.fad.fa-code-merge:after{content:"\f387\f387"}.fa-duotone.fa-money-check-dollar-pen:after,.fa-duotone.fa-money-check-edit-alt:after,.fad.fa-money-check-dollar-pen:after,.fad.fa-money-check-edit-alt:after{content:"\f873\f873"}.fa-duotone.fa-arrow-alt-from-bottom:after,.fa-duotone.fa-up-from-line:after,.fad.fa-arrow-alt-from-bottom:after,.fad.fa-up-from-line:after{content:"\f346\f346"}.fa-duotone.fa-upload:after,.fad.fa-upload:after{content:"\f093\f093"}.fa-duotone.fa-hurricane:after,.fad.fa-hurricane:after{content:"\f751\f751"}.fa-duotone.fa-grid-round-2-plus:after,.fad.fa-grid-round-2-plus:after{content:"\e5dc\e5dc"}.fa-duotone.fa-people-pants:after,.fad.fa-people-pants:after{content:"\e219\e219"}.fa-duotone.fa-mound:after,.fad.fa-mound:after{content:"\e52d\e52d"}.fa-duotone.fa-windsock:after,.fad.fa-windsock:after{content:"\f777\f777"}.fa-duotone.fa-circle-half:after,.fad.fa-circle-half:after{content:"\e110\e110"}.fa-duotone.fa-brake-warning:after,.fad.fa-brake-warning:after{content:"\e0c7\e0c7"}.fa-duotone.fa-toilet-portable:after,.fad.fa-toilet-portable:after{content:"\e583\e583"}.fa-duotone.fa-compact-disc:after,.fad.fa-compact-disc:after{content:"\f51f\f51f"}.fa-duotone.fa-file-arrow-down:after,.fa-duotone.fa-file-download:after,.fad.fa-file-arrow-down:after,.fad.fa-file-download:after{content:"\f56d\f56d"}.fa-duotone.fa-sax-hot:after,.fa-duotone.fa-saxophone-fire:after,.fad.fa-sax-hot:after,.fad.fa-saxophone-fire:after{content:"\f8db\f8db"}.fa-duotone.fa-camera-web-slash:after,.fa-duotone.fa-webcam-slash:after,.fad.fa-camera-web-slash:after,.fad.fa-webcam-slash:after{content:"\f833\f833"}.fa-duotone.fa-folder-medical:after,.fad.fa-folder-medical:after{content:"\e18c\e18c"}.fa-duotone.fa-folder-cog:after,.fa-duotone.fa-folder-gear:after,.fad.fa-folder-cog:after,.fad.fa-folder-gear:after{content:"\e187\e187"}.fa-duotone.fa-hand-wave:after,.fad.fa-hand-wave:after{content:"\e1a7\e1a7"}.fa-duotone.fa-arrow-up-arrow-down:after,.fa-duotone.fa-sort-up-down:after,.fad.fa-arrow-up-arrow-down:after,.fad.fa-sort-up-down:after{content:"\e099\e099"}.fa-duotone.fa-caravan:after,.fad.fa-caravan:after{content:"\f8ff\f8ff"}.fa-duotone.fa-shield-cat:after,.fad.fa-shield-cat:after{content:"\e572\e572"}.fa-duotone.fa-comment-alt-slash:after,.fa-duotone.fa-message-slash:after,.fad.fa-comment-alt-slash:after,.fad.fa-message-slash:after{content:"\f4a9\f4a9"}.fa-duotone.fa-bolt:after,.fa-duotone.fa-zap:after,.fad.fa-bolt:after,.fad.fa-zap:after{content:"\f0e7\f0e7"}.fa-duotone.fa-trash-can-check:after,.fad.fa-trash-can-check:after{content:"\e2a9\e2a9"}.fa-duotone.fa-glass-water:after,.fad.fa-glass-water:after{content:"\e4f4\e4f4"}.fa-duotone.fa-oil-well:after,.fad.fa-oil-well:after{content:"\e532\e532"}.fa-duotone.fa-person-simple:after,.fad.fa-person-simple:after{content:"\e220\e220"}.fa-duotone.fa-arrow-turn-left-up:after,.fad.fa-arrow-turn-left-up:after{content:"\e634\e634"}.fa-duotone.fa-vault:after,.fad.fa-vault:after{content:"\e2c5\e2c5"}.fa-duotone.fa-mars:after,.fad.fa-mars:after{content:"\f222\f222"}.fa-duotone.fa-toilet:after,.fad.fa-toilet:after{content:"\f7d8\f7d8"}.fa-duotone.fa-plane-circle-xmark:after,.fad.fa-plane-circle-xmark:after{content:"\e557\e557"}.fa-duotone.fa-cny:after,.fa-duotone.fa-jpy:after,.fa-duotone.fa-rmb:after,.fa-duotone.fa-yen-sign:after,.fa-duotone.fa-yen:after,.fad.fa-cny:after,.fad.fa-jpy:after,.fad.fa-rmb:after,.fad.fa-yen-sign:after,.fad.fa-yen:after{content:"\f157\f157"}.fa-duotone.fa-gear-code:after,.fad.fa-gear-code:after{content:"\e5e8\e5e8"}.fa-duotone.fa-notes:after,.fad.fa-notes:after{content:"\e202\e202"}.fa-duotone.fa-rouble:after,.fa-duotone.fa-rub:after,.fa-duotone.fa-ruble-sign:after,.fa-duotone.fa-ruble:after,.fad.fa-rouble:after,.fad.fa-rub:after,.fad.fa-ruble-sign:after,.fad.fa-ruble:after{content:"\f158\f158"}.fa-duotone.fa-trash-arrow-turn-left:after,.fa-duotone.fa-trash-undo:after,.fad.fa-trash-arrow-turn-left:after,.fad.fa-trash-undo:after{content:"\f895\f895"}.fa-duotone.fa-champagne-glass:after,.fa-duotone.fa-glass-champagne:after,.fad.fa-champagne-glass:after,.fad.fa-glass-champagne:after{content:"\f79e\f79e"}.fa-duotone.fa-objects-align-center-horizontal:after,.fad.fa-objects-align-center-horizontal:after{content:"\e3bc\e3bc"}.fa-duotone.fa-sun:after,.fad.fa-sun:after{content:"\f185\f185"}.fa-duotone.fa-trash-alt-slash:after,.fa-duotone.fa-trash-can-slash:after,.fad.fa-trash-alt-slash:after,.fad.fa-trash-can-slash:after{content:"\e2ad\e2ad"}.fa-duotone.fa-screen-users:after,.fa-duotone.fa-users-class:after,.fad.fa-screen-users:after,.fad.fa-users-class:after{content:"\f63d\f63d"}.fa-duotone.fa-guitar:after,.fad.fa-guitar:after{content:"\f7a6\f7a6"}.fa-duotone.fa-arrow-square-left:after,.fa-duotone.fa-square-arrow-left:after,.fad.fa-arrow-square-left:after,.fad.fa-square-arrow-left:after{content:"\f33a\f33a"}.fa-duotone.fa-square-8:after,.fad.fa-square-8:after{content:"\e25d\e25d"}.fa-duotone.fa-face-smile-hearts:after,.fad.fa-face-smile-hearts:after{content:"\e390\e390"}.fa-duotone.fa-brackets-square:after,.fa-duotone.fa-brackets:after,.fad.fa-brackets-square:after,.fad.fa-brackets:after{content:"\f7e9\f7e9"}.fa-duotone.fa-laptop-arrow-down:after,.fad.fa-laptop-arrow-down:after{content:"\e1c6\e1c6"}.fa-duotone.fa-hockey-stick-puck:after,.fad.fa-hockey-stick-puck:after{content:"\e3ae\e3ae"}.fa-duotone.fa-house-tree:after,.fad.fa-house-tree:after{content:"\e1b3\e1b3"}.fa-duotone.fa-signal-2:after,.fa-duotone.fa-signal-fair:after,.fad.fa-signal-2:after,.fad.fa-signal-fair:after{content:"\f68d\f68d"}.fa-duotone.fa-face-laugh-wink:after,.fa-duotone.fa-laugh-wink:after,.fad.fa-face-laugh-wink:after,.fad.fa-laugh-wink:after{content:"\f59c\f59c"}.fa-duotone.fa-circle-dollar:after,.fa-duotone.fa-dollar-circle:after,.fa-duotone.fa-usd-circle:after,.fad.fa-circle-dollar:after,.fad.fa-dollar-circle:after,.fad.fa-usd-circle:after{content:"\f2e8\f2e8"}.fa-duotone.fa-horse-head:after,.fad.fa-horse-head:after{content:"\f7ab\f7ab"}.fa-duotone.fa-arrows-repeat:after,.fa-duotone.fa-repeat-alt:after,.fad.fa-arrows-repeat:after,.fad.fa-repeat-alt:after{content:"\f364\f364"}.fa-duotone.fa-bore-hole:after,.fad.fa-bore-hole:after{content:"\e4c3\e4c3"}.fa-duotone.fa-industry:after,.fad.fa-industry:after{content:"\f275\f275"}.fa-duotone.fa-image-polaroid:after,.fad.fa-image-polaroid:after{content:"\f8c4\f8c4"}.fa-duotone.fa-wave-triangle:after,.fad.fa-wave-triangle:after{content:"\f89a\f89a"}.fa-duotone.fa-turn-left-down:after,.fad.fa-turn-left-down:after{content:"\e637\e637"}.fa-duotone.fa-person-running-fast:after,.fad.fa-person-running-fast:after{content:"\e5ff\e5ff"}.fa-duotone.fa-arrow-alt-circle-down:after,.fa-duotone.fa-circle-down:after,.fad.fa-arrow-alt-circle-down:after,.fad.fa-circle-down:after{content:"\f358\f358"}.fa-duotone.fa-grill:after,.fad.fa-grill:after{content:"\e5a3\e5a3"}.fa-duotone.fa-arrows-turn-to-dots:after,.fad.fa-arrows-turn-to-dots:after{content:"\e4c1\e4c1"}.fa-duotone.fa-analytics:after,.fa-duotone.fa-chart-mixed:after,.fad.fa-analytics:after,.fad.fa-chart-mixed:after{content:"\f643\f643"}.fa-duotone.fa-florin-sign:after,.fad.fa-florin-sign:after{content:"\e184\e184"}.fa-duotone.fa-arrow-down-short-wide:after,.fa-duotone.fa-sort-amount-desc:after,.fa-duotone.fa-sort-amount-down-alt:after,.fad.fa-arrow-down-short-wide:after,.fad.fa-sort-amount-desc:after,.fad.fa-sort-amount-down-alt:after{content:"\f884\f884"}.fa-duotone.fa-less-than:after,.fad.fa-less-than:after{content:"\3c\3c"}.fa-duotone.fa-desktop-code:after,.fa-duotone.fa-display-code:after,.fad.fa-desktop-code:after,.fad.fa-display-code:after{content:"\e165\e165"}.fa-duotone.fa-face-drooling:after,.fad.fa-face-drooling:after{content:"\e372\e372"}.fa-duotone.fa-oil-temp:after,.fa-duotone.fa-oil-temperature:after,.fad.fa-oil-temp:after,.fad.fa-oil-temperature:after{content:"\f614\f614"}.fa-duotone.fa-question-square:after,.fa-duotone.fa-square-question:after,.fad.fa-question-square:after,.fad.fa-square-question:after{content:"\f2fd\f2fd"}.fa-duotone.fa-air-conditioner:after,.fad.fa-air-conditioner:after{content:"\f8f4\f8f4"}.fa-duotone.fa-angle-down:after,.fad.fa-angle-down:after{content:"\f107\f107"}.fa-duotone.fa-mountains:after,.fad.fa-mountains:after{content:"\f6fd\f6fd"}.fa-duotone.fa-omega:after,.fad.fa-omega:after{content:"\f67a\f67a"}.fa-duotone.fa-car-tunnel:after,.fad.fa-car-tunnel:after{content:"\e4de\e4de"}.fa-duotone.fa-person-dolly-empty:after,.fad.fa-person-dolly-empty:after{content:"\f4d1\f4d1"}.fa-duotone.fa-pan-food:after,.fad.fa-pan-food:after{content:"\e42b\e42b"}.fa-duotone.fa-head-side-cough:after,.fad.fa-head-side-cough:after{content:"\e061\e061"}.fa-duotone.fa-grip-lines:after,.fad.fa-grip-lines:after{content:"\f7a4\f7a4"}.fa-duotone.fa-thumbs-down:after,.fad.fa-thumbs-down:after{content:"\f165\f165"}.fa-duotone.fa-user-lock:after,.fad.fa-user-lock:after{content:"\f502\f502"}.fa-duotone.fa-arrow-right-long:after,.fa-duotone.fa-long-arrow-right:after,.fad.fa-arrow-right-long:after,.fad.fa-long-arrow-right:after{content:"\f178\f178"}.fa-duotone.fa-tickets-airline:after,.fa-duotone.fa-tickets-perforated-plane:after,.fa-duotone.fa-tickets-plane:after,.fad.fa-tickets-airline:after,.fad.fa-tickets-perforated-plane:after,.fad.fa-tickets-plane:after{content:"\e29b\e29b"}.fa-duotone.fa-tent-double-peak:after,.fad.fa-tent-double-peak:after{content:"\e627\e627"}.fa-duotone.fa-anchor-circle-xmark:after,.fad.fa-anchor-circle-xmark:after{content:"\e4ac\e4ac"}.fa-duotone.fa-ellipsis-h:after,.fa-duotone.fa-ellipsis:after,.fad.fa-ellipsis-h:after,.fad.fa-ellipsis:after{content:"\f141\f141"}.fa-duotone.fa-nfc-slash:after,.fad.fa-nfc-slash:after{content:"\e1fc\e1fc"}.fa-duotone.fa-chess-pawn:after,.fad.fa-chess-pawn:after{content:"\f443\f443"}.fa-duotone.fa-first-aid:after,.fa-duotone.fa-kit-medical:after,.fad.fa-first-aid:after,.fad.fa-kit-medical:after{content:"\f479\f479"}.fa-duotone.fa-grid-2-plus:after,.fad.fa-grid-2-plus:after{content:"\e197\e197"}.fa-duotone.fa-bells:after,.fad.fa-bells:after{content:"\f77f\f77f"}.fa-duotone.fa-person-through-window:after,.fad.fa-person-through-window:after{content:"\e5a9\e5a9"}.fa-duotone.fa-toolbox:after,.fad.fa-toolbox:after{content:"\f552\f552"}.fa-duotone.fa-envelope-badge:after,.fa-duotone.fa-envelope-dot:after,.fad.fa-envelope-badge:after,.fad.fa-envelope-dot:after{content:"\e16f\e16f"}.fa-duotone.fa-magnifying-glass-waveform:after,.fad.fa-magnifying-glass-waveform:after{content:"\e661\e661"}.fa-duotone.fa-hands-holding-circle:after,.fad.fa-hands-holding-circle:after{content:"\e4fb\e4fb"}.fa-duotone.fa-bug:after,.fad.fa-bug:after{content:"\f188\f188"}.fa-duotone.fa-bowl-chopsticks:after,.fad.fa-bowl-chopsticks:after{content:"\e2e9\e2e9"}.fa-duotone.fa-credit-card-alt:after,.fa-duotone.fa-credit-card:after,.fad.fa-credit-card-alt:after,.fad.fa-credit-card:after{content:"\f09d\f09d"}.fa-duotone.fa-circle-s:after,.fad.fa-circle-s:after{content:"\e121\e121"}.fa-duotone.fa-box-ballot:after,.fad.fa-box-ballot:after{content:"\f735\f735"}.fa-duotone.fa-automobile:after,.fa-duotone.fa-car:after,.fad.fa-automobile:after,.fad.fa-car:after{content:"\f1b9\f1b9"}.fa-duotone.fa-hand-holding-hand:after,.fad.fa-hand-holding-hand:after{content:"\e4f7\e4f7"}.fa-duotone.fa-user-tie-hair:after,.fad.fa-user-tie-hair:after{content:"\e45f\e45f"}.fa-duotone.fa-podium-star:after,.fad.fa-podium-star:after{content:"\f758\f758"}.fa-duotone.fa-business-front:after,.fa-duotone.fa-party-back:after,.fa-duotone.fa-trian-balbot:after,.fa-duotone.fa-user-hair-mullet:after,.fad.fa-business-front:after,.fad.fa-party-back:after,.fad.fa-trian-balbot:after,.fad.fa-user-hair-mullet:after{content:"\e45c\e45c"}.fa-duotone.fa-microphone-stand:after,.fad.fa-microphone-stand:after{content:"\f8cb\f8cb"}.fa-duotone.fa-book-open-reader:after,.fa-duotone.fa-book-reader:after,.fad.fa-book-open-reader:after,.fad.fa-book-reader:after{content:"\f5da\f5da"}.fa-duotone.fa-family-dress:after,.fad.fa-family-dress:after{content:"\e301\e301"}.fa-duotone.fa-circle-x:after,.fad.fa-circle-x:after{content:"\e12e\e12e"}.fa-duotone.fa-cabin:after,.fad.fa-cabin:after{content:"\e46d\e46d"}.fa-duotone.fa-mountain-sun:after,.fad.fa-mountain-sun:after{content:"\e52f\e52f"}.fa-duotone.fa-chart-simple-horizontal:after,.fad.fa-chart-simple-horizontal:after{content:"\e474\e474"}.fa-duotone.fa-arrows-left-right-to-line:after,.fad.fa-arrows-left-right-to-line:after{content:"\e4ba\e4ba"}.fa-duotone.fa-hand-back-point-left:after,.fad.fa-hand-back-point-left:after{content:"\e19f\e19f"}.fa-duotone.fa-comment-alt-dots:after,.fa-duotone.fa-message-dots:after,.fa-duotone.fa-messaging:after,.fad.fa-comment-alt-dots:after,.fad.fa-message-dots:after,.fad.fa-messaging:after{content:"\f4a3\f4a3"}.fa-duotone.fa-file-heart:after,.fad.fa-file-heart:after{content:"\e176\e176"}.fa-duotone.fa-beer-foam:after,.fa-duotone.fa-beer-mug:after,.fad.fa-beer-foam:after,.fad.fa-beer-mug:after{content:"\e0b3\e0b3"}.fa-duotone.fa-dice-d20:after,.fad.fa-dice-d20:after{content:"\f6cf\f6cf"}.fa-duotone.fa-drone:after,.fad.fa-drone:after{content:"\f85f\f85f"}.fa-duotone.fa-truck-droplet:after,.fad.fa-truck-droplet:after{content:"\e58c\e58c"}.fa-duotone.fa-file-circle-xmark:after,.fad.fa-file-circle-xmark:after{content:"\e5a1\e5a1"}.fa-duotone.fa-temperature-arrow-up:after,.fa-duotone.fa-temperature-up:after,.fad.fa-temperature-arrow-up:after,.fad.fa-temperature-up:after{content:"\e040\e040"}.fa-duotone.fa-medal:after,.fad.fa-medal:after{content:"\f5a2\f5a2"}.fa-duotone.fa-person-fairy:after,.fad.fa-person-fairy:after{content:"\e608\e608"}.fa-duotone.fa-bed:after,.fad.fa-bed:after{content:"\f236\f236"}.fa-duotone.fa-book-copy:after,.fad.fa-book-copy:after{content:"\e0be\e0be"}.fa-duotone.fa-h-square:after,.fa-duotone.fa-square-h:after,.fad.fa-h-square:after,.fad.fa-square-h:after{content:"\f0fd\f0fd"}.fa-duotone.fa-square-c:after,.fad.fa-square-c:after{content:"\e266\e266"}.fa-duotone.fa-clock-two:after,.fad.fa-clock-two:after{content:"\e35a\e35a"}.fa-duotone.fa-square-ellipsis-vertical:after,.fad.fa-square-ellipsis-vertical:after{content:"\e26f\e26f"}.fa-duotone.fa-calendar-users:after,.fad.fa-calendar-users:after{content:"\e5e2\e5e2"}.fa-duotone.fa-podcast:after,.fad.fa-podcast:after{content:"\f2ce\f2ce"}.fa-duotone.fa-bee:after,.fad.fa-bee:after{content:"\e0b2\e0b2"}.fa-duotone.fa-temperature-4:after,.fa-duotone.fa-temperature-full:after,.fa-duotone.fa-thermometer-4:after,.fa-duotone.fa-thermometer-full:after,.fad.fa-temperature-4:after,.fad.fa-temperature-full:after,.fad.fa-thermometer-4:after,.fad.fa-thermometer-full:after{content:"\f2c7\f2c7"}.fa-duotone.fa-bell:after,.fad.fa-bell:after{content:"\f0f3\f0f3"}.fa-duotone.fa-candy-bar:after,.fa-duotone.fa-chocolate-bar:after,.fad.fa-candy-bar:after,.fad.fa-chocolate-bar:after{content:"\e3e8\e3e8"}.fa-duotone.fa-xmark-large:after,.fad.fa-xmark-large:after{content:"\e59b\e59b"}.fa-duotone.fa-pinata:after,.fad.fa-pinata:after{content:"\e3c3\e3c3"}.fa-duotone.fa-file-ppt:after,.fad.fa-file-ppt:after{content:"\e64a\e64a"}.fa-duotone.fa-arrows-from-line:after,.fad.fa-arrows-from-line:after{content:"\e0a4\e0a4"}.fa-duotone.fa-superscript:after,.fad.fa-superscript:after{content:"\f12b\f12b"}.fa-duotone.fa-bowl-spoon:after,.fad.fa-bowl-spoon:after{content:"\e3e0\e3e0"}.fa-duotone.fa-hexagon-check:after,.fad.fa-hexagon-check:after{content:"\e416\e416"}.fa-duotone.fa-plug-circle-xmark:after,.fad.fa-plug-circle-xmark:after{content:"\e560\e560"}.fa-duotone.fa-star-of-life:after,.fad.fa-star-of-life:after{content:"\f621\f621"}.fa-duotone.fa-phone-slash:after,.fad.fa-phone-slash:after{content:"\f3dd\f3dd"}.fa-duotone.fa-traffic-light-stop:after,.fad.fa-traffic-light-stop:after{content:"\f63a\f63a"}.fa-duotone.fa-paint-roller:after,.fad.fa-paint-roller:after{content:"\f5aa\f5aa"}.fa-duotone.fa-accent-grave:after,.fad.fa-accent-grave:after{content:"\60\60"}.fa-duotone.fa-hands-helping:after,.fa-duotone.fa-handshake-angle:after,.fad.fa-hands-helping:after,.fad.fa-handshake-angle:after{content:"\f4c4\f4c4"}.fa-duotone.fa-circle-0:after,.fad.fa-circle-0:after{content:"\e0ed\e0ed"}.fa-duotone.fa-dial-med-low:after,.fad.fa-dial-med-low:after{content:"\e160\e160"}.fa-duotone.fa-location-dot:after,.fa-duotone.fa-map-marker-alt:after,.fad.fa-location-dot:after,.fad.fa-map-marker-alt:after{content:"\f3c5\f3c5"}.fa-duotone.fa-crab:after,.fad.fa-crab:after{content:"\e3ff\e3ff"}.fa-duotone.fa-box-full:after,.fa-duotone.fa-box-open-full:after,.fad.fa-box-full:after,.fad.fa-box-open-full:after{content:"\f49c\f49c"}.fa-duotone.fa-file:after,.fad.fa-file:after{content:"\f15b\f15b"}.fa-duotone.fa-greater-than:after,.fad.fa-greater-than:after{content:"\3e\3e"}.fa-duotone.fa-quotes:after,.fad.fa-quotes:after{content:"\e234\e234"}.fa-duotone.fa-pretzel:after,.fad.fa-pretzel:after{content:"\e441\e441"}.fa-duotone.fa-t-rex:after,.fad.fa-t-rex:after{content:"\e629\e629"}.fa-duotone.fa-person-swimming:after,.fa-duotone.fa-swimmer:after,.fad.fa-person-swimming:after,.fad.fa-swimmer:after{content:"\f5c4\f5c4"}.fa-duotone.fa-arrow-down:after,.fad.fa-arrow-down:after{content:"\f063\f063"}.fa-duotone.fa-user-robot-xmarks:after,.fad.fa-user-robot-xmarks:after{content:"\e4a7\e4a7"}.fa-duotone.fa-comment-alt-quote:after,.fa-duotone.fa-message-quote:after,.fad.fa-comment-alt-quote:after,.fad.fa-message-quote:after{content:"\e1e4\e1e4"}.fa-duotone.fa-candy-corn:after,.fad.fa-candy-corn:after{content:"\f6bd\f6bd"}.fa-duotone.fa-folder-magnifying-glass:after,.fa-duotone.fa-folder-search:after,.fad.fa-folder-magnifying-glass:after,.fad.fa-folder-search:after{content:"\e18b\e18b"}.fa-duotone.fa-notebook:after,.fad.fa-notebook:after{content:"\e201\e201"}.fa-duotone.fa-droplet:after,.fa-duotone.fa-tint:after,.fad.fa-droplet:after,.fad.fa-tint:after{content:"\f043\f043"}.fa-duotone.fa-bullseye-pointer:after,.fad.fa-bullseye-pointer:after{content:"\f649\f649"}.fa-duotone.fa-eraser:after,.fad.fa-eraser:after{content:"\f12d\f12d"}.fa-duotone.fa-hexagon-image:after,.fad.fa-hexagon-image:after{content:"\e504\e504"}.fa-duotone.fa-earth-america:after,.fa-duotone.fa-earth-americas:after,.fa-duotone.fa-earth:after,.fa-duotone.fa-globe-americas:after,.fad.fa-earth-america:after,.fad.fa-earth-americas:after,.fad.fa-earth:after,.fad.fa-globe-americas:after{content:"\f57d\f57d"}.fa-duotone.fa-file-svg:after,.fad.fa-file-svg:after{content:"\e64b\e64b"}.fa-duotone.fa-crate-apple:after,.fad.fa-crate-apple:after{content:"\f6b1\f6b1"}.fa-duotone.fa-apple-crate:after,.fad.fa-apple-crate:after{content:"\f6b1\f6b1"}.fa-duotone.fa-person-burst:after,.fad.fa-person-burst:after{content:"\e53b\e53b"}.fa-duotone.fa-game-board:after,.fad.fa-game-board:after{content:"\f867\f867"}.fa-duotone.fa-hat-chef:after,.fad.fa-hat-chef:after{content:"\f86b\f86b"}.fa-duotone.fa-hand-back-point-right:after,.fad.fa-hand-back-point-right:after{content:"\e1a1\e1a1"}.fa-duotone.fa-dove:after,.fad.fa-dove:after{content:"\f4ba\f4ba"}.fa-duotone.fa-snowflake-droplets:after,.fad.fa-snowflake-droplets:after{content:"\e5c1\e5c1"}.fa-duotone.fa-battery-0:after,.fa-duotone.fa-battery-empty:after,.fad.fa-battery-0:after,.fad.fa-battery-empty:after{content:"\f244\f244"}.fa-duotone.fa-grid-4:after,.fad.fa-grid-4:after{content:"\e198\e198"}.fa-duotone.fa-socks:after,.fad.fa-socks:after{content:"\f696\f696"}.fa-duotone.fa-face-sunglasses:after,.fad.fa-face-sunglasses:after{content:"\e398\e398"}.fa-duotone.fa-inbox:after,.fad.fa-inbox:after{content:"\f01c\f01c"}.fa-duotone.fa-square-0:after,.fad.fa-square-0:after{content:"\e255\e255"}.fa-duotone.fa-section:after,.fad.fa-section:after{content:"\e447\e447"}.fa-duotone.fa-box-up:after,.fa-duotone.fa-square-this-way-up:after,.fad.fa-box-up:after,.fad.fa-square-this-way-up:after{content:"\f49f\f49f"}.fa-duotone.fa-gauge-high:after,.fa-duotone.fa-tachometer-alt-fast:after,.fa-duotone.fa-tachometer-alt:after,.fad.fa-gauge-high:after,.fad.fa-tachometer-alt-fast:after,.fad.fa-tachometer-alt:after{content:"\f625\f625"}.fa-duotone.fa-square-ampersand:after,.fad.fa-square-ampersand:after{content:"\e260\e260"}.fa-duotone.fa-envelope-open-text:after,.fad.fa-envelope-open-text:after{content:"\f658\f658"}.fa-duotone.fa-lamp-desk:after,.fad.fa-lamp-desk:after{content:"\e014\e014"}.fa-duotone.fa-hospital-alt:after,.fa-duotone.fa-hospital-wide:after,.fa-duotone.fa-hospital:after,.fad.fa-hospital-alt:after,.fad.fa-hospital-wide:after,.fad.fa-hospital:after{content:"\f0f8\f0f8"}.fa-duotone.fa-poll-people:after,.fad.fa-poll-people:after{content:"\f759\f759"}.fa-duotone.fa-glass-whiskey-rocks:after,.fa-duotone.fa-whiskey-glass-ice:after,.fad.fa-glass-whiskey-rocks:after,.fad.fa-whiskey-glass-ice:after{content:"\f7a1\f7a1"}.fa-duotone.fa-wine-bottle:after,.fad.fa-wine-bottle:after{content:"\f72f\f72f"}.fa-duotone.fa-chess-rook:after,.fad.fa-chess-rook:after{content:"\f447\f447"}.fa-duotone.fa-user-bounty-hunter:after,.fad.fa-user-bounty-hunter:after{content:"\e2bf\e2bf"}.fa-duotone.fa-bars-staggered:after,.fa-duotone.fa-reorder:after,.fa-duotone.fa-stream:after,.fad.fa-bars-staggered:after,.fad.fa-reorder:after,.fad.fa-stream:after{content:"\f550\f550"}.fa-duotone.fa-diagram-sankey:after,.fad.fa-diagram-sankey:after{content:"\e158\e158"}.fa-duotone.fa-cloud-hail-mixed:after,.fad.fa-cloud-hail-mixed:after{content:"\f73a\f73a"}.fa-duotone.fa-circle-up-left:after,.fad.fa-circle-up-left:after{content:"\e128\e128"}.fa-duotone.fa-dharmachakra:after,.fad.fa-dharmachakra:after{content:"\f655\f655"}.fa-duotone.fa-objects-align-left:after,.fad.fa-objects-align-left:after{content:"\e3be\e3be"}.fa-duotone.fa-oil-can-drip:after,.fad.fa-oil-can-drip:after{content:"\e205\e205"}.fa-duotone.fa-face-smiling-hands:after,.fad.fa-face-smiling-hands:after{content:"\e396\e396"}.fa-duotone.fa-broccoli:after,.fad.fa-broccoli:after{content:"\e3e2\e3e2"}.fa-duotone.fa-route-interstate:after,.fad.fa-route-interstate:after{content:"\f61b\f61b"}.fa-duotone.fa-ear-muffs:after,.fad.fa-ear-muffs:after{content:"\f795\f795"}.fa-duotone.fa-hotdog:after,.fad.fa-hotdog:after{content:"\f80f\f80f"}.fa-duotone.fa-transporter-empty:after,.fad.fa-transporter-empty:after{content:"\e046\e046"}.fa-duotone.fa-blind:after,.fa-duotone.fa-person-walking-with-cane:after,.fad.fa-blind:after,.fad.fa-person-walking-with-cane:after{content:"\f29d\f29d"}.fa-duotone.fa-angle-90:after,.fad.fa-angle-90:after{content:"\e08d\e08d"}.fa-duotone.fa-rectangle-terminal:after,.fad.fa-rectangle-terminal:after{content:"\e236\e236"}.fa-duotone.fa-kite:after,.fad.fa-kite:after{content:"\f6f4\f6f4"}.fa-duotone.fa-drum:after,.fad.fa-drum:after{content:"\f569\f569"}.fa-duotone.fa-scrubber:after,.fad.fa-scrubber:after{content:"\f2f8\f2f8"}.fa-duotone.fa-ice-cream:after,.fad.fa-ice-cream:after{content:"\f810\f810"}.fa-duotone.fa-heart-circle-bolt:after,.fad.fa-heart-circle-bolt:after{content:"\e4fc\e4fc"}.fa-duotone.fa-fish-bones:after,.fad.fa-fish-bones:after{content:"\e304\e304"}.fa-duotone.fa-deer-rudolph:after,.fad.fa-deer-rudolph:after{content:"\f78f\f78f"}.fa-duotone.fa-fax:after,.fad.fa-fax:after{content:"\f1ac\f1ac"}.fa-duotone.fa-paragraph:after,.fad.fa-paragraph:after{content:"\f1dd\f1dd"}.fa-duotone.fa-head-side-heart:after,.fad.fa-head-side-heart:after{content:"\e1aa\e1aa"}.fa-duotone.fa-square-e:after,.fad.fa-square-e:after{content:"\e26d\e26d"}.fa-duotone.fa-meter-fire:after,.fad.fa-meter-fire:after{content:"\e1eb\e1eb"}.fa-duotone.fa-cloud-hail:after,.fad.fa-cloud-hail:after{content:"\f739\f739"}.fa-duotone.fa-check-to-slot:after,.fa-duotone.fa-vote-yea:after,.fad.fa-check-to-slot:after,.fad.fa-vote-yea:after{content:"\f772\f772"}.fa-duotone.fa-money-from-bracket:after,.fad.fa-money-from-bracket:after{content:"\e312\e312"}.fa-duotone.fa-star-half:after,.fad.fa-star-half:after{content:"\f089\f089"}.fa-duotone.fa-car-bus:after,.fad.fa-car-bus:after{content:"\f85a\f85a"}.fa-duotone.fa-speaker:after,.fad.fa-speaker:after{content:"\f8df\f8df"}.fa-duotone.fa-timer:after,.fad.fa-timer:after{content:"\e29e\e29e"}.fa-duotone.fa-boxes-alt:after,.fa-duotone.fa-boxes-stacked:after,.fa-duotone.fa-boxes:after,.fad.fa-boxes-alt:after,.fad.fa-boxes-stacked:after,.fad.fa-boxes:after{content:"\f468\f468"}.fa-duotone.fa-landmark-magnifying-glass:after,.fad.fa-landmark-magnifying-glass:after{content:"\e622\e622"}.fa-duotone.fa-grill-hot:after,.fad.fa-grill-hot:after{content:"\e5a5\e5a5"}.fa-duotone.fa-ballot-check:after,.fad.fa-ballot-check:after{content:"\f733\f733"}.fa-duotone.fa-chain:after,.fa-duotone.fa-link:after,.fad.fa-chain:after,.fad.fa-link:after{content:"\f0c1\f0c1"}.fa-duotone.fa-assistive-listening-systems:after,.fa-duotone.fa-ear-listen:after,.fad.fa-assistive-listening-systems:after,.fad.fa-ear-listen:after{content:"\f2a2\f2a2"}.fa-duotone.fa-file-minus:after,.fad.fa-file-minus:after{content:"\f318\f318"}.fa-duotone.fa-tree-city:after,.fad.fa-tree-city:after{content:"\e587\e587"}.fa-duotone.fa-play:after,.fad.fa-play:after{content:"\f04b\f04b"}.fa-duotone.fa-font:after,.fad.fa-font:after{content:"\f031\f031"}.fa-duotone.fa-coffee-togo:after,.fa-duotone.fa-cup-togo:after,.fad.fa-coffee-togo:after,.fad.fa-cup-togo:after{content:"\f6c5\f6c5"}.fa-duotone.fa-square-down-left:after,.fad.fa-square-down-left:after{content:"\e26b\e26b"}.fa-duotone.fa-burger-lettuce:after,.fad.fa-burger-lettuce:after{content:"\e3e3\e3e3"}.fa-duotone.fa-rupiah-sign:after,.fad.fa-rupiah-sign:after{content:"\e23d\e23d"}.fa-duotone.fa-magnifying-glass:after,.fa-duotone.fa-search:after,.fad.fa-magnifying-glass:after,.fad.fa-search:after{content:"\f002\f002"}.fa-duotone.fa-ping-pong-paddle-ball:after,.fa-duotone.fa-table-tennis-paddle-ball:after,.fa-duotone.fa-table-tennis:after,.fad.fa-ping-pong-paddle-ball:after,.fad.fa-table-tennis-paddle-ball:after,.fad.fa-table-tennis:after{content:"\f45d\f45d"}.fa-duotone.fa-diagnoses:after,.fa-duotone.fa-person-dots-from-line:after,.fad.fa-diagnoses:after,.fad.fa-person-dots-from-line:after{content:"\f470\f470"}.fa-duotone.fa-chevron-double-down:after,.fa-duotone.fa-chevrons-down:after,.fad.fa-chevron-double-down:after,.fad.fa-chevrons-down:after{content:"\f322\f322"}.fa-duotone.fa-trash-can-arrow-up:after,.fa-duotone.fa-trash-restore-alt:after,.fad.fa-trash-can-arrow-up:after,.fad.fa-trash-restore-alt:after{content:"\f82a\f82a"}.fa-duotone.fa-signal-3:after,.fa-duotone.fa-signal-good:after,.fad.fa-signal-3:after,.fad.fa-signal-good:after{content:"\f68e\f68e"}.fa-duotone.fa-location-question:after,.fa-duotone.fa-map-marker-question:after,.fad.fa-location-question:after,.fad.fa-map-marker-question:after{content:"\f60b\f60b"}.fa-duotone.fa-floppy-disk-circle-xmark:after,.fa-duotone.fa-floppy-disk-times:after,.fa-duotone.fa-save-circle-xmark:after,.fa-duotone.fa-save-times:after,.fad.fa-floppy-disk-circle-xmark:after,.fad.fa-floppy-disk-times:after,.fad.fa-save-circle-xmark:after,.fad.fa-save-times:after{content:"\e181\e181"}.fa-duotone.fa-naira-sign:after,.fad.fa-naira-sign:after{content:"\e1f6\e1f6"}.fa-duotone.fa-peach:after,.fad.fa-peach:after{content:"\e20b\e20b"}.fa-duotone.fa-taxi-bus:after,.fad.fa-taxi-bus:after{content:"\e298\e298"}.fa-duotone.fa-bracket-curly-left:after,.fa-duotone.fa-bracket-curly:after,.fad.fa-bracket-curly-left:after,.fad.fa-bracket-curly:after{content:"\7b\7b"}.fa-duotone.fa-lobster:after,.fad.fa-lobster:after{content:"\e421\e421"}.fa-duotone.fa-cart-flatbed-empty:after,.fa-duotone.fa-dolly-flatbed-empty:after,.fad.fa-cart-flatbed-empty:after,.fad.fa-dolly-flatbed-empty:after{content:"\f476\f476"}.fa-duotone.fa-colon:after,.fad.fa-colon:after{content:"\3a\3a"}.fa-duotone.fa-cart-arrow-down:after,.fad.fa-cart-arrow-down:after{content:"\f218\f218"}.fa-duotone.fa-wand:after,.fad.fa-wand:after{content:"\f72a\f72a"}.fa-duotone.fa-walkie-talkie:after,.fad.fa-walkie-talkie:after{content:"\f8ef\f8ef"}.fa-duotone.fa-file-edit:after,.fa-duotone.fa-file-pen:after,.fad.fa-file-edit:after,.fad.fa-file-pen:after{content:"\f31c\f31c"}.fa-duotone.fa-receipt:after,.fad.fa-receipt:after{content:"\f543\f543"}.fa-duotone.fa-table-picnic:after,.fad.fa-table-picnic:after{content:"\e32d\e32d"}.fa-duotone.fa-pen-square:after,.fa-duotone.fa-pencil-square:after,.fa-duotone.fa-square-pen:after,.fad.fa-pen-square:after,.fad.fa-pencil-square:after,.fad.fa-square-pen:after{content:"\f14b\f14b"}.fa-duotone.fa-circle-microphone-lines:after,.fa-duotone.fa-microphone-circle-alt:after,.fad.fa-circle-microphone-lines:after,.fad.fa-microphone-circle-alt:after{content:"\e117\e117"}.fa-duotone.fa-desktop-slash:after,.fa-duotone.fa-display-slash:after,.fad.fa-desktop-slash:after,.fad.fa-display-slash:after{content:"\e2fa\e2fa"}.fa-duotone.fa-suitcase-rolling:after,.fad.fa-suitcase-rolling:after{content:"\f5c1\f5c1"}.fa-duotone.fa-person-circle-exclamation:after,.fad.fa-person-circle-exclamation:after{content:"\e53f\e53f"}.fa-duotone.fa-transporter-2:after,.fad.fa-transporter-2:after{content:"\e044\e044"}.fa-duotone.fa-hand-receiving:after,.fa-duotone.fa-hands-holding-diamond:after,.fad.fa-hand-receiving:after,.fad.fa-hands-holding-diamond:after{content:"\f47c\f47c"}.fa-duotone.fa-money-bill-simple-wave:after,.fad.fa-money-bill-simple-wave:after{content:"\e1f2\e1f2"}.fa-duotone.fa-chevron-down:after,.fad.fa-chevron-down:after{content:"\f078\f078"}.fa-duotone.fa-battery-5:after,.fa-duotone.fa-battery-full:after,.fa-duotone.fa-battery:after,.fad.fa-battery-5:after,.fad.fa-battery-full:after,.fad.fa-battery:after{content:"\f240\f240"}.fa-duotone.fa-bell-plus:after,.fad.fa-bell-plus:after{content:"\f849\f849"}.fa-duotone.fa-book-arrow-right:after,.fad.fa-book-arrow-right:after{content:"\e0b9\e0b9"}.fa-duotone.fa-hospitals:after,.fad.fa-hospitals:after{content:"\f80e\f80e"}.fa-duotone.fa-club:after,.fad.fa-club:after{content:"\f327\f327"}.fa-duotone.fa-skull-crossbones:after,.fad.fa-skull-crossbones:after{content:"\f714\f714"}.fa-duotone.fa-dewpoint:after,.fa-duotone.fa-droplet-degree:after,.fad.fa-dewpoint:after,.fad.fa-droplet-degree:after{content:"\f748\f748"}.fa-duotone.fa-code-compare:after,.fad.fa-code-compare:after{content:"\e13a\e13a"}.fa-duotone.fa-list-dots:after,.fa-duotone.fa-list-ul:after,.fad.fa-list-dots:after,.fad.fa-list-ul:after{content:"\f0ca\f0ca"}.fa-duotone.fa-hand-holding-magic:after,.fad.fa-hand-holding-magic:after{content:"\f6e5\f6e5"}.fa-duotone.fa-watermelon-slice:after,.fad.fa-watermelon-slice:after{content:"\e337\e337"}.fa-duotone.fa-circle-ellipsis:after,.fad.fa-circle-ellipsis:after{content:"\e10a\e10a"}.fa-duotone.fa-school-lock:after,.fad.fa-school-lock:after{content:"\e56f\e56f"}.fa-duotone.fa-tower-cell:after,.fad.fa-tower-cell:after{content:"\e585\e585"}.fa-duotone.fa-sd-cards:after,.fad.fa-sd-cards:after{content:"\e240\e240"}.fa-duotone.fa-jug-bottle:after,.fad.fa-jug-bottle:after{content:"\e5fb\e5fb"}.fa-duotone.fa-down-long:after,.fa-duotone.fa-long-arrow-alt-down:after,.fad.fa-down-long:after,.fad.fa-long-arrow-alt-down:after{content:"\f309\f309"}.fa-duotone.fa-envelopes:after,.fad.fa-envelopes:after{content:"\e170\e170"}.fa-duotone.fa-phone-office:after,.fad.fa-phone-office:after{content:"\f67d\f67d"}.fa-duotone.fa-ranking-star:after,.fad.fa-ranking-star:after{content:"\e561\e561"}.fa-duotone.fa-chess-king:after,.fad.fa-chess-king:after{content:"\f43f\f43f"}.fa-duotone.fa-nfc-pen:after,.fad.fa-nfc-pen:after{content:"\e1fa\e1fa"}.fa-duotone.fa-person-harassing:after,.fad.fa-person-harassing:after{content:"\e549\e549"}.fa-duotone.fa-magnifying-glass-play:after,.fad.fa-magnifying-glass-play:after{content:"\e660\e660"}.fa-duotone.fa-hat-winter:after,.fad.fa-hat-winter:after{content:"\f7a8\f7a8"}.fa-duotone.fa-brazilian-real-sign:after,.fad.fa-brazilian-real-sign:after{content:"\e46c\e46c"}.fa-duotone.fa-landmark-alt:after,.fa-duotone.fa-landmark-dome:after,.fad.fa-landmark-alt:after,.fad.fa-landmark-dome:after{content:"\f752\f752"}.fa-duotone.fa-bone-break:after,.fad.fa-bone-break:after{content:"\f5d8\f5d8"}.fa-duotone.fa-arrow-up:after,.fad.fa-arrow-up:after{content:"\f062\f062"}.fa-duotone.fa-down-from-dotted-line:after,.fad.fa-down-from-dotted-line:after{content:"\e407\e407"}.fa-duotone.fa-television:after,.fa-duotone.fa-tv-alt:after,.fa-duotone.fa-tv:after,.fad.fa-television:after,.fad.fa-tv-alt:after,.fad.fa-tv:after{content:"\f26c\f26c"}.fa-duotone.fa-border-left:after,.fad.fa-border-left:after{content:"\f84f\f84f"}.fa-duotone.fa-circle-divide:after,.fad.fa-circle-divide:after{content:"\e106\e106"}.fa-duotone.fa-shrimp:after,.fad.fa-shrimp:after{content:"\e448\e448"}.fa-duotone.fa-list-check:after,.fa-duotone.fa-tasks:after,.fad.fa-list-check:after,.fad.fa-tasks:after{content:"\f0ae\f0ae"}.fa-duotone.fa-diagram-subtask:after,.fad.fa-diagram-subtask:after{content:"\e479\e479"}.fa-duotone.fa-jug-detergent:after,.fad.fa-jug-detergent:after{content:"\e519\e519"}.fa-duotone.fa-circle-user:after,.fa-duotone.fa-user-circle:after,.fad.fa-circle-user:after,.fad.fa-user-circle:after{content:"\f2bd\f2bd"}.fa-duotone.fa-square-y:after,.fad.fa-square-y:after{content:"\e287\e287"}.fa-duotone.fa-user-doctor-hair:after,.fad.fa-user-doctor-hair:after{content:"\e458\e458"}.fa-duotone.fa-planet-ringed:after,.fad.fa-planet-ringed:after{content:"\e020\e020"}.fa-duotone.fa-mushroom:after,.fad.fa-mushroom:after{content:"\e425\e425"}.fa-duotone.fa-user-shield:after,.fad.fa-user-shield:after{content:"\f505\f505"}.fa-duotone.fa-megaphone:after,.fad.fa-megaphone:after{content:"\f675\f675"}.fa-duotone.fa-wreath-laurel:after,.fad.fa-wreath-laurel:after{content:"\e5d2\e5d2"}.fa-duotone.fa-circle-exclamation-check:after,.fad.fa-circle-exclamation-check:after{content:"\e10d\e10d"}.fa-duotone.fa-wind:after,.fad.fa-wind:after{content:"\f72e\f72e"}.fa-duotone.fa-box-dollar:after,.fa-duotone.fa-box-usd:after,.fad.fa-box-dollar:after,.fad.fa-box-usd:after{content:"\f4a0\f4a0"}.fa-duotone.fa-car-burst:after,.fa-duotone.fa-car-crash:after,.fad.fa-car-burst:after,.fad.fa-car-crash:after{content:"\f5e1\f5e1"}.fa-duotone.fa-y:after,.fad.fa-y:after{content:"\59\59"}.fa-duotone.fa-user-headset:after,.fad.fa-user-headset:after{content:"\f82d\f82d"}.fa-duotone.fa-arrows-retweet:after,.fa-duotone.fa-retweet-alt:after,.fad.fa-arrows-retweet:after,.fad.fa-retweet-alt:after{content:"\f361\f361"}.fa-duotone.fa-person-snowboarding:after,.fa-duotone.fa-snowboarding:after,.fad.fa-person-snowboarding:after,.fad.fa-snowboarding:after{content:"\f7ce\f7ce"}.fa-duotone.fa-chevron-square-right:after,.fa-duotone.fa-square-chevron-right:after,.fad.fa-chevron-square-right:after,.fad.fa-square-chevron-right:after{content:"\f32b\f32b"}.fa-duotone.fa-lacrosse-stick-ball:after,.fad.fa-lacrosse-stick-ball:after{content:"\e3b6\e3b6"}.fa-duotone.fa-shipping-fast:after,.fa-duotone.fa-truck-fast:after,.fad.fa-shipping-fast:after,.fad.fa-truck-fast:after{content:"\f48b\f48b"}.fa-duotone.fa-user-magnifying-glass:after,.fad.fa-user-magnifying-glass:after{content:"\e5c5\e5c5"}.fa-duotone.fa-star-sharp:after,.fad.fa-star-sharp:after{content:"\e28b\e28b"}.fa-duotone.fa-comment-heart:after,.fad.fa-comment-heart:after{content:"\e5c8\e5c8"}.fa-duotone.fa-circle-1:after,.fad.fa-circle-1:after{content:"\e0ee\e0ee"}.fa-duotone.fa-circle-star:after,.fa-duotone.fa-star-circle:after,.fad.fa-circle-star:after,.fad.fa-star-circle:after{content:"\e123\e123"}.fa-duotone.fa-fish:after,.fad.fa-fish:after{content:"\f578\f578"}.fa-duotone.fa-cloud-fog:after,.fa-duotone.fa-fog:after,.fad.fa-cloud-fog:after,.fad.fa-fog:after{content:"\f74e\f74e"}.fa-duotone.fa-waffle:after,.fad.fa-waffle:after{content:"\e466\e466"}.fa-duotone.fa-music-alt:after,.fa-duotone.fa-music-note:after,.fad.fa-music-alt:after,.fad.fa-music-note:after{content:"\f8cf\f8cf"}.fa-duotone.fa-hexagon-exclamation:after,.fad.fa-hexagon-exclamation:after{content:"\e417\e417"}.fa-duotone.fa-cart-shopping-fast:after,.fad.fa-cart-shopping-fast:after{content:"\e0dc\e0dc"}.fa-duotone.fa-object-union:after,.fad.fa-object-union:after{content:"\e49f\e49f"}.fa-duotone.fa-user-graduate:after,.fad.fa-user-graduate:after{content:"\f501\f501"}.fa-duotone.fa-starfighter:after,.fad.fa-starfighter:after{content:"\e037\e037"}.fa-duotone.fa-adjust:after,.fa-duotone.fa-circle-half-stroke:after,.fad.fa-adjust:after,.fad.fa-circle-half-stroke:after{content:"\f042\f042"}.fa-duotone.fa-arrow-right-long-to-line:after,.fad.fa-arrow-right-long-to-line:after{content:"\e3d5\e3d5"}.fa-duotone.fa-arrow-square-down:after,.fa-duotone.fa-square-arrow-down:after,.fad.fa-arrow-square-down:after,.fad.fa-square-arrow-down:after{content:"\f339\f339"}.fa-duotone.fa-diamond-half-stroke:after,.fad.fa-diamond-half-stroke:after{content:"\e5b8\e5b8"}.fa-duotone.fa-clapperboard:after,.fad.fa-clapperboard:after{content:"\e131\e131"}.fa-duotone.fa-chevron-square-left:after,.fa-duotone.fa-square-chevron-left:after,.fad.fa-chevron-square-left:after,.fad.fa-square-chevron-left:after{content:"\f32a\f32a"}.fa-duotone.fa-phone-intercom:after,.fad.fa-phone-intercom:after{content:"\e434\e434"}.fa-duotone.fa-chain-horizontal:after,.fa-duotone.fa-link-horizontal:after,.fad.fa-chain-horizontal:after,.fad.fa-link-horizontal:after{content:"\e1cb\e1cb"}.fa-duotone.fa-mango:after,.fad.fa-mango:after{content:"\e30f\e30f"}.fa-duotone.fa-music-alt-slash:after,.fa-duotone.fa-music-note-slash:after,.fad.fa-music-alt-slash:after,.fad.fa-music-note-slash:after{content:"\f8d0\f8d0"}.fa-duotone.fa-circle-radiation:after,.fa-duotone.fa-radiation-alt:after,.fad.fa-circle-radiation:after,.fad.fa-radiation-alt:after{content:"\f7ba\f7ba"}.fa-duotone.fa-face-tongue-sweat:after,.fad.fa-face-tongue-sweat:after{content:"\e39e\e39e"}.fa-duotone.fa-globe-stand:after,.fad.fa-globe-stand:after{content:"\f5f6\f5f6"}.fa-duotone.fa-baseball-ball:after,.fa-duotone.fa-baseball:after,.fad.fa-baseball-ball:after,.fad.fa-baseball:after{content:"\f433\f433"}.fa-duotone.fa-circle-p:after,.fad.fa-circle-p:after{content:"\e11a\e11a"}.fa-duotone.fa-award-simple:after,.fad.fa-award-simple:after{content:"\e0ab\e0ab"}.fa-duotone.fa-jet-fighter-up:after,.fad.fa-jet-fighter-up:after{content:"\e518\e518"}.fa-duotone.fa-diagram-project:after,.fa-duotone.fa-project-diagram:after,.fad.fa-diagram-project:after,.fad.fa-project-diagram:after{content:"\f542\f542"}.fa-duotone.fa-pedestal:after,.fad.fa-pedestal:after{content:"\e20d\e20d"}.fa-duotone.fa-chart-pyramid:after,.fad.fa-chart-pyramid:after{content:"\e0e6\e0e6"}.fa-duotone.fa-sidebar:after,.fad.fa-sidebar:after{content:"\e24e\e24e"}.fa-duotone.fa-frosty-head:after,.fa-duotone.fa-snowman-head:after,.fad.fa-frosty-head:after,.fad.fa-snowman-head:after{content:"\f79b\f79b"}.fa-duotone.fa-copy:after,.fad.fa-copy:after{content:"\f0c5\f0c5"}.fa-duotone.fa-burger-glass:after,.fad.fa-burger-glass:after{content:"\e0ce\e0ce"}.fa-duotone.fa-volume-mute:after,.fa-duotone.fa-volume-times:after,.fa-duotone.fa-volume-xmark:after,.fad.fa-volume-mute:after,.fad.fa-volume-times:after,.fad.fa-volume-xmark:after{content:"\f6a9\f6a9"}.fa-duotone.fa-hand-sparkles:after,.fad.fa-hand-sparkles:after{content:"\e05d\e05d"}.fa-duotone.fa-bars-filter:after,.fad.fa-bars-filter:after{content:"\e0ad\e0ad"}.fa-duotone.fa-paintbrush-pencil:after,.fad.fa-paintbrush-pencil:after{content:"\e206\e206"}.fa-duotone.fa-party-bell:after,.fad.fa-party-bell:after{content:"\e31a\e31a"}.fa-duotone.fa-user-vneck-hair:after,.fad.fa-user-vneck-hair:after{content:"\e462\e462"}.fa-duotone.fa-jack-o-lantern:after,.fad.fa-jack-o-lantern:after{content:"\f30e\f30e"}.fa-duotone.fa-grip-horizontal:after,.fa-duotone.fa-grip:after,.fad.fa-grip-horizontal:after,.fad.fa-grip:after{content:"\f58d\f58d"}.fa-duotone.fa-share-from-square:after,.fa-duotone.fa-share-square:after,.fad.fa-share-from-square:after,.fad.fa-share-square:after{content:"\f14d\f14d"}.fa-duotone.fa-keynote:after,.fad.fa-keynote:after{content:"\f66c\f66c"}.fa-duotone.fa-child-combatant:after,.fa-duotone.fa-child-rifle:after,.fad.fa-child-combatant:after,.fad.fa-child-rifle:after{content:"\e4e0\e4e0"}.fa-duotone.fa-gun:after,.fad.fa-gun:after{content:"\e19b\e19b"}.fa-duotone.fa-phone-square:after,.fa-duotone.fa-square-phone:after,.fad.fa-phone-square:after,.fad.fa-square-phone:after{content:"\f098\f098"}.fa-duotone.fa-hat-beach:after,.fad.fa-hat-beach:after{content:"\e606\e606"}.fa-duotone.fa-add:after,.fa-duotone.fa-plus:after,.fad.fa-add:after,.fad.fa-plus:after{content:"\2b\2b"}.fa-duotone.fa-expand:after,.fad.fa-expand:after{content:"\f065\f065"}.fa-duotone.fa-computer:after,.fad.fa-computer:after{content:"\e4e5\e4e5"}.fa-duotone.fa-fort:after,.fad.fa-fort:after{content:"\e486\e486"}.fa-duotone.fa-cloud-check:after,.fad.fa-cloud-check:after{content:"\e35c\e35c"}.fa-duotone.fa-close:after,.fa-duotone.fa-multiply:after,.fa-duotone.fa-remove:after,.fa-duotone.fa-times:after,.fa-duotone.fa-xmark:after,.fad.fa-close:after,.fad.fa-multiply:after,.fad.fa-remove:after,.fad.fa-times:after,.fad.fa-xmark:after{content:"\f00d\f00d"}.fa-duotone.fa-face-smirking:after,.fad.fa-face-smirking:after{content:"\e397\e397"}.fa-duotone.fa-arrows-up-down-left-right:after,.fa-duotone.fa-arrows:after,.fad.fa-arrows-up-down-left-right:after,.fad.fa-arrows:after{content:"\f047\f047"}.fa-duotone.fa-chalkboard-teacher:after,.fa-duotone.fa-chalkboard-user:after,.fad.fa-chalkboard-teacher:after,.fad.fa-chalkboard-user:after{content:"\f51c\f51c"}.fa-duotone.fa-rhombus:after,.fad.fa-rhombus:after{content:"\e23b\e23b"}.fa-duotone.fa-claw-marks:after,.fad.fa-claw-marks:after{content:"\f6c2\f6c2"}.fa-duotone.fa-peso-sign:after,.fad.fa-peso-sign:after{content:"\e222\e222"}.fa-duotone.fa-face-smile-tongue:after,.fad.fa-face-smile-tongue:after{content:"\e394\e394"}.fa-duotone.fa-cart-circle-xmark:after,.fad.fa-cart-circle-xmark:after{content:"\e3f4\e3f4"}.fa-duotone.fa-building-shield:after,.fad.fa-building-shield:after{content:"\e4d8\e4d8"}.fa-duotone.fa-circle-phone-flip:after,.fa-duotone.fa-phone-circle-alt:after,.fad.fa-circle-phone-flip:after,.fad.fa-phone-circle-alt:after{content:"\e11c\e11c"}.fa-duotone.fa-baby:after,.fad.fa-baby:after{content:"\f77c\f77c"}.fa-duotone.fa-users-line:after,.fad.fa-users-line:after{content:"\e592\e592"}.fa-duotone.fa-quote-left-alt:after,.fa-duotone.fa-quote-left:after,.fad.fa-quote-left-alt:after,.fad.fa-quote-left:after{content:"\f10d\f10d"}.fa-duotone.fa-tractor:after,.fad.fa-tractor:after{content:"\f722\f722"}.fa-duotone.fa-key-skeleton:after,.fad.fa-key-skeleton:after{content:"\f6f3\f6f3"}.fa-duotone.fa-trash-arrow-up:after,.fa-duotone.fa-trash-restore:after,.fad.fa-trash-arrow-up:after,.fad.fa-trash-restore:after{content:"\f829\f829"}.fa-duotone.fa-arrow-down-up-lock:after,.fad.fa-arrow-down-up-lock:after{content:"\e4b0\e4b0"}.fa-duotone.fa-arrow-down-to-bracket:after,.fad.fa-arrow-down-to-bracket:after{content:"\e094\e094"}.fa-duotone.fa-lines-leaning:after,.fad.fa-lines-leaning:after{content:"\e51e\e51e"}.fa-duotone.fa-square-q:after,.fad.fa-square-q:after{content:"\e27b\e27b"}.fa-duotone.fa-ruler-combined:after,.fad.fa-ruler-combined:after{content:"\f546\f546"}.fa-duotone.fa-icons-alt:after,.fa-duotone.fa-symbols:after,.fad.fa-icons-alt:after,.fad.fa-symbols:after{content:"\f86e\f86e"}.fa-duotone.fa-copyright:after,.fad.fa-copyright:after{content:"\f1f9\f1f9"}.fa-duotone.fa-flask-gear:after,.fad.fa-flask-gear:after{content:"\e5f1\e5f1"}.fa-duotone.fa-highlighter-line:after,.fad.fa-highlighter-line:after{content:"\e1af\e1af"}.fa-duotone.fa-bracket-left:after,.fa-duotone.fa-bracket-square:after,.fa-duotone.fa-bracket:after,.fad.fa-bracket-left:after,.fad.fa-bracket-square:after,.fad.fa-bracket:after{content:"\5b\5b"}.fa-duotone.fa-island-tree-palm:after,.fa-duotone.fa-island-tropical:after,.fad.fa-island-tree-palm:after,.fad.fa-island-tropical:after{content:"\f811\f811"}.fa-duotone.fa-arrow-from-left:after,.fa-duotone.fa-arrow-right-from-line:after,.fad.fa-arrow-from-left:after,.fad.fa-arrow-right-from-line:after{content:"\f343\f343"}.fa-duotone.fa-h2:after,.fad.fa-h2:after{content:"\f314\f314"}.fa-duotone.fa-equals:after,.fad.fa-equals:after{content:"\3d\3d"}.fa-duotone.fa-cake-slice:after,.fa-duotone.fa-shortcake:after,.fad.fa-cake-slice:after,.fad.fa-shortcake:after{content:"\e3e5\e3e5"}.fa-duotone.fa-building-magnifying-glass:after,.fad.fa-building-magnifying-glass:after{content:"\e61c\e61c"}.fa-duotone.fa-peanut:after,.fad.fa-peanut:after{content:"\e430\e430"}.fa-duotone.fa-wrench-simple:after,.fad.fa-wrench-simple:after{content:"\e2d1\e2d1"}.fa-duotone.fa-blender:after,.fad.fa-blender:after{content:"\f517\f517"}.fa-duotone.fa-teeth:after,.fad.fa-teeth:after{content:"\f62e\f62e"}.fa-duotone.fa-tally-2:after,.fad.fa-tally-2:after{content:"\e295\e295"}.fa-duotone.fa-ils:after,.fa-duotone.fa-shekel-sign:after,.fa-duotone.fa-shekel:after,.fa-duotone.fa-sheqel-sign:after,.fa-duotone.fa-sheqel:after,.fad.fa-ils:after,.fad.fa-shekel-sign:after,.fad.fa-shekel:after,.fad.fa-sheqel-sign:after,.fad.fa-sheqel:after{content:"\f20b\f20b"}.fa-duotone.fa-cars:after,.fad.fa-cars:after{content:"\f85b\f85b"}.fa-duotone.fa-axe-battle:after,.fad.fa-axe-battle:after{content:"\f6b3\f6b3"}.fa-duotone.fa-user-hair-long:after,.fad.fa-user-hair-long:after{content:"\e45b\e45b"}.fa-duotone.fa-map:after,.fad.fa-map:after{content:"\f279\f279"}.fa-duotone.fa-arrow-left-from-arc:after,.fad.fa-arrow-left-from-arc:after{content:"\e615\e615"}.fa-duotone.fa-file-circle-info:after,.fad.fa-file-circle-info:after{content:"\e493\e493"}.fa-duotone.fa-face-disappointed:after,.fad.fa-face-disappointed:after{content:"\e36f\e36f"}.fa-duotone.fa-lasso-sparkles:after,.fad.fa-lasso-sparkles:after{content:"\e1c9\e1c9"}.fa-duotone.fa-clock-eleven:after,.fad.fa-clock-eleven:after{content:"\e347\e347"}.fa-duotone.fa-rocket:after,.fad.fa-rocket:after{content:"\f135\f135"}.fa-duotone.fa-siren-on:after,.fad.fa-siren-on:after{content:"\e02e\e02e"}.fa-duotone.fa-clock-ten:after,.fad.fa-clock-ten:after{content:"\e354\e354"}.fa-duotone.fa-candle-holder:after,.fad.fa-candle-holder:after{content:"\f6bc\f6bc"}.fa-duotone.fa-video-arrow-down-left:after,.fad.fa-video-arrow-down-left:after{content:"\e2c8\e2c8"}.fa-duotone.fa-photo-film:after,.fa-duotone.fa-photo-video:after,.fad.fa-photo-film:after,.fad.fa-photo-video:after{content:"\f87c\f87c"}.fa-duotone.fa-floppy-disk-circle-arrow-right:after,.fa-duotone.fa-save-circle-arrow-right:after,.fad.fa-floppy-disk-circle-arrow-right:after,.fad.fa-save-circle-arrow-right:after{content:"\e180\e180"}.fa-duotone.fa-folder-minus:after,.fad.fa-folder-minus:after{content:"\f65d\f65d"}.fa-duotone.fa-planet-moon:after,.fad.fa-planet-moon:after{content:"\e01f\e01f"}.fa-duotone.fa-face-eyes-xmarks:after,.fad.fa-face-eyes-xmarks:after{content:"\e374\e374"}.fa-duotone.fa-chart-scatter:after,.fad.fa-chart-scatter:after{content:"\f7ee\f7ee"}.fa-duotone.fa-display-arrow-down:after,.fad.fa-display-arrow-down:after{content:"\e164\e164"}.fa-duotone.fa-store:after,.fad.fa-store:after{content:"\f54e\f54e"}.fa-duotone.fa-arrow-trend-up:after,.fad.fa-arrow-trend-up:after{content:"\e098\e098"}.fa-duotone.fa-plug-circle-minus:after,.fad.fa-plug-circle-minus:after{content:"\e55e\e55e"}.fa-duotone.fa-olive-branch:after,.fad.fa-olive-branch:after{content:"\e317\e317"}.fa-duotone.fa-angle:after,.fad.fa-angle:after{content:"\e08c\e08c"}.fa-duotone.fa-vacuum-robot:after,.fad.fa-vacuum-robot:after{content:"\e04e\e04e"}.fa-duotone.fa-sign-hanging:after,.fa-duotone.fa-sign:after,.fad.fa-sign-hanging:after,.fad.fa-sign:after{content:"\f4d9\f4d9"}.fa-duotone.fa-square-divide:after,.fad.fa-square-divide:after{content:"\e26a\e26a"}.fa-duotone.fa-folder-check:after,.fad.fa-folder-check:after{content:"\e64e\e64e"}.fa-duotone.fa-signal-stream-slash:after,.fad.fa-signal-stream-slash:after{content:"\e250\e250"}.fa-duotone.fa-bezier-curve:after,.fad.fa-bezier-curve:after{content:"\f55b\f55b"}.fa-duotone.fa-eye-dropper-half:after,.fad.fa-eye-dropper-half:after{content:"\e173\e173"}.fa-duotone.fa-store-lock:after,.fad.fa-store-lock:after{content:"\e4a6\e4a6"}.fa-duotone.fa-bell-slash:after,.fad.fa-bell-slash:after{content:"\f1f6\f1f6"}.fa-duotone.fa-cloud-bolt-sun:after,.fa-duotone.fa-thunderstorm-sun:after,.fad.fa-cloud-bolt-sun:after,.fad.fa-thunderstorm-sun:after{content:"\f76e\f76e"}.fa-duotone.fa-camera-slash:after,.fad.fa-camera-slash:after{content:"\e0d9\e0d9"}.fa-duotone.fa-comment-quote:after,.fad.fa-comment-quote:after{content:"\e14c\e14c"}.fa-duotone.fa-tablet-android:after,.fa-duotone.fa-tablet:after,.fad.fa-tablet-android:after,.fad.fa-tablet:after{content:"\f3fb\f3fb"}.fa-duotone.fa-school-flag:after,.fad.fa-school-flag:after{content:"\e56e\e56e"}.fa-duotone.fa-message-code:after,.fad.fa-message-code:after{content:"\e1df\e1df"}.fa-duotone.fa-glass-half-empty:after,.fa-duotone.fa-glass-half-full:after,.fa-duotone.fa-glass-half:after,.fad.fa-glass-half-empty:after,.fad.fa-glass-half-full:after,.fad.fa-glass-half:after{content:"\e192\e192"}.fa-duotone.fa-fill:after,.fad.fa-fill:after{content:"\f575\f575"}.fa-duotone.fa-comment-alt-minus:after,.fa-duotone.fa-message-minus:after,.fad.fa-comment-alt-minus:after,.fad.fa-message-minus:after{content:"\f4a7\f4a7"}.fa-duotone.fa-angle-up:after,.fad.fa-angle-up:after{content:"\f106\f106"}.fa-duotone.fa-dinosaur:after,.fad.fa-dinosaur:after{content:"\e5fe\e5fe"}.fa-duotone.fa-drumstick-bite:after,.fad.fa-drumstick-bite:after{content:"\f6d7\f6d7"}.fa-duotone.fa-chain-horizontal-slash:after,.fa-duotone.fa-link-horizontal-slash:after,.fad.fa-chain-horizontal-slash:after,.fad.fa-link-horizontal-slash:after{content:"\e1cc\e1cc"}.fa-duotone.fa-holly-berry:after,.fad.fa-holly-berry:after{content:"\f7aa\f7aa"}.fa-duotone.fa-nose:after,.fad.fa-nose:after{content:"\e5bd\e5bd"}.fa-duotone.fa-arrow-left-to-arc:after,.fad.fa-arrow-left-to-arc:after{content:"\e616\e616"}.fa-duotone.fa-chevron-left:after,.fad.fa-chevron-left:after{content:"\f053\f053"}.fa-duotone.fa-bacteria:after,.fad.fa-bacteria:after{content:"\e059\e059"}.fa-duotone.fa-clouds:after,.fad.fa-clouds:after{content:"\f744\f744"}.fa-duotone.fa-money-bill-simple:after,.fad.fa-money-bill-simple:after{content:"\e1f1\e1f1"}.fa-duotone.fa-hand-lizard:after,.fad.fa-hand-lizard:after{content:"\f258\f258"}.fa-duotone.fa-table-pivot:after,.fad.fa-table-pivot:after{content:"\e291\e291"}.fa-duotone.fa-filter-slash:after,.fad.fa-filter-slash:after{content:"\e17d\e17d"}.fa-duotone.fa-trash-can-arrow-turn-left:after,.fa-duotone.fa-trash-can-undo:after,.fa-duotone.fa-trash-undo-alt:after,.fad.fa-trash-can-arrow-turn-left:after,.fad.fa-trash-can-undo:after,.fad.fa-trash-undo-alt:after{content:"\f896\f896"}.fa-duotone.fa-notdef:after,.fad.fa-notdef:after{content:"\e1fe\e1fe"}.fa-duotone.fa-disease:after,.fad.fa-disease:after{content:"\f7fa\f7fa"}.fa-duotone.fa-person-to-door:after,.fad.fa-person-to-door:after{content:"\e433\e433"}.fa-duotone.fa-turntable:after,.fad.fa-turntable:after{content:"\f8e4\f8e4"}.fa-duotone.fa-briefcase-medical:after,.fad.fa-briefcase-medical:after{content:"\f469\f469"}.fa-duotone.fa-genderless:after,.fad.fa-genderless:after{content:"\f22d\f22d"}.fa-duotone.fa-chevron-right:after,.fad.fa-chevron-right:after{content:"\f054\f054"}.fa-duotone.fa-signal-1:after,.fa-duotone.fa-signal-weak:after,.fad.fa-signal-1:after,.fad.fa-signal-weak:after{content:"\f68c\f68c"}.fa-duotone.fa-clock-five:after,.fad.fa-clock-five:after{content:"\e349\e349"}.fa-duotone.fa-retweet:after,.fad.fa-retweet:after{content:"\f079\f079"}.fa-duotone.fa-car-alt:after,.fa-duotone.fa-car-rear:after,.fad.fa-car-alt:after,.fad.fa-car-rear:after{content:"\f5de\f5de"}.fa-duotone.fa-pump-soap:after,.fad.fa-pump-soap:after{content:"\e06b\e06b"}.fa-duotone.fa-computer-classic:after,.fad.fa-computer-classic:after{content:"\f8b1\f8b1"}.fa-duotone.fa-frame:after,.fad.fa-frame:after{content:"\e495\e495"}.fa-duotone.fa-video-slash:after,.fad.fa-video-slash:after{content:"\f4e2\f4e2"}.fa-duotone.fa-battery-2:after,.fa-duotone.fa-battery-quarter:after,.fad.fa-battery-2:after,.fad.fa-battery-quarter:after{content:"\f243\f243"}.fa-duotone.fa-ellipsis-h-alt:after,.fa-duotone.fa-ellipsis-stroke:after,.fad.fa-ellipsis-h-alt:after,.fad.fa-ellipsis-stroke:after{content:"\f39b\f39b"}.fa-duotone.fa-radio:after,.fad.fa-radio:after{content:"\f8d7\f8d7"}.fa-duotone.fa-baby-carriage:after,.fa-duotone.fa-carriage-baby:after,.fad.fa-baby-carriage:after,.fad.fa-carriage-baby:after{content:"\f77d\f77d"}.fa-duotone.fa-face-expressionless:after,.fad.fa-face-expressionless:after{content:"\e373\e373"}.fa-duotone.fa-down-to-dotted-line:after,.fad.fa-down-to-dotted-line:after{content:"\e408\e408"}.fa-duotone.fa-cloud-music:after,.fad.fa-cloud-music:after{content:"\f8ae\f8ae"}.fa-duotone.fa-traffic-light:after,.fad.fa-traffic-light:after{content:"\f637\f637"}.fa-duotone.fa-cloud-minus:after,.fad.fa-cloud-minus:after{content:"\e35d\e35d"}.fa-duotone.fa-thermometer:after,.fad.fa-thermometer:after{content:"\f491\f491"}.fa-duotone.fa-shield-minus:after,.fad.fa-shield-minus:after{content:"\e249\e249"}.fa-duotone.fa-vr-cardboard:after,.fad.fa-vr-cardboard:after{content:"\f729\f729"}.fa-duotone.fa-car-tilt:after,.fad.fa-car-tilt:after{content:"\f5e5\f5e5"}.fa-duotone.fa-gauge-circle-minus:after,.fad.fa-gauge-circle-minus:after{content:"\e497\e497"}.fa-duotone.fa-brightness-low:after,.fad.fa-brightness-low:after{content:"\e0ca\e0ca"}.fa-duotone.fa-hand-middle-finger:after,.fad.fa-hand-middle-finger:after{content:"\f806\f806"}.fa-duotone.fa-percent:after,.fa-duotone.fa-percentage:after,.fad.fa-percent:after,.fad.fa-percentage:after{content:"\25\25"}.fa-duotone.fa-truck-moving:after,.fad.fa-truck-moving:after{content:"\f4df\f4df"}.fa-duotone.fa-glass-water-droplet:after,.fad.fa-glass-water-droplet:after{content:"\e4f5\e4f5"}.fa-duotone.fa-conveyor-belt:after,.fad.fa-conveyor-belt:after{content:"\f46e\f46e"}.fa-duotone.fa-location-check:after,.fa-duotone.fa-map-marker-check:after,.fad.fa-location-check:after,.fad.fa-map-marker-check:after{content:"\f606\f606"}.fa-duotone.fa-coin-vertical:after,.fad.fa-coin-vertical:after{content:"\e3fd\e3fd"}.fa-duotone.fa-display:after,.fad.fa-display:after{content:"\e163\e163"}.fa-duotone.fa-person-sign:after,.fad.fa-person-sign:after{content:"\f757\f757"}.fa-duotone.fa-face-smile:after,.fa-duotone.fa-smile:after,.fad.fa-face-smile:after,.fad.fa-smile:after{content:"\f118\f118"}.fa-duotone.fa-phone-hangup:after,.fad.fa-phone-hangup:after{content:"\e225\e225"}.fa-duotone.fa-signature-slash:after,.fad.fa-signature-slash:after{content:"\e3cb\e3cb"}.fa-duotone.fa-thumb-tack:after,.fa-duotone.fa-thumbtack:after,.fad.fa-thumb-tack:after,.fad.fa-thumbtack:after{content:"\f08d\f08d"}.fa-duotone.fa-wheat-slash:after,.fad.fa-wheat-slash:after{content:"\e339\e339"}.fa-duotone.fa-trophy:after,.fad.fa-trophy:after{content:"\f091\f091"}.fa-duotone.fa-clouds-sun:after,.fad.fa-clouds-sun:after{content:"\f746\f746"}.fa-duotone.fa-person-praying:after,.fa-duotone.fa-pray:after,.fad.fa-person-praying:after,.fad.fa-pray:after{content:"\f683\f683"}.fa-duotone.fa-hammer:after,.fad.fa-hammer:after{content:"\f6e3\f6e3"}.fa-duotone.fa-face-vomit:after,.fad.fa-face-vomit:after{content:"\e3a0\e3a0"}.fa-duotone.fa-speakers:after,.fad.fa-speakers:after{content:"\f8e0\f8e0"}.fa-duotone.fa-teletype-answer:after,.fa-duotone.fa-tty-answer:after,.fad.fa-teletype-answer:after,.fad.fa-tty-answer:after{content:"\e2b9\e2b9"}.fa-duotone.fa-mug-tea-saucer:after,.fad.fa-mug-tea-saucer:after{content:"\e1f5\e1f5"}.fa-duotone.fa-diagram-lean-canvas:after,.fad.fa-diagram-lean-canvas:after{content:"\e156\e156"}.fa-duotone.fa-alt:after,.fad.fa-alt:after{content:"\e08a\e08a"}.fa-duotone.fa-dial-med-high:after,.fa-duotone.fa-dial:after,.fad.fa-dial-med-high:after,.fad.fa-dial:after{content:"\e15b\e15b"}.fa-duotone.fa-hand-peace:after,.fad.fa-hand-peace:after{content:"\f25b\f25b"}.fa-duotone.fa-circle-trash:after,.fa-duotone.fa-trash-circle:after,.fad.fa-circle-trash:after,.fad.fa-trash-circle:after{content:"\e126\e126"}.fa-duotone.fa-rotate:after,.fa-duotone.fa-sync-alt:after,.fad.fa-rotate:after,.fad.fa-sync-alt:after{content:"\f2f1\f2f1"}.fa-duotone.fa-circle-quarters:after,.fad.fa-circle-quarters:after{content:"\e3f8\e3f8"}.fa-duotone.fa-spinner:after,.fad.fa-spinner:after{content:"\f110\f110"}.fa-duotone.fa-tower-control:after,.fad.fa-tower-control:after{content:"\e2a2\e2a2"}.fa-duotone.fa-arrow-up-triangle-square:after,.fa-duotone.fa-sort-shapes-up:after,.fad.fa-arrow-up-triangle-square:after,.fad.fa-sort-shapes-up:after{content:"\f88a\f88a"}.fa-duotone.fa-whale:after,.fad.fa-whale:after{content:"\f72c\f72c"}.fa-duotone.fa-robot:after,.fad.fa-robot:after{content:"\f544\f544"}.fa-duotone.fa-peace:after,.fad.fa-peace:after{content:"\f67c\f67c"}.fa-duotone.fa-party-horn:after,.fad.fa-party-horn:after{content:"\e31b\e31b"}.fa-duotone.fa-cogs:after,.fa-duotone.fa-gears:after,.fad.fa-cogs:after,.fad.fa-gears:after{content:"\f085\f085"}.fa-duotone.fa-sun-alt:after,.fa-duotone.fa-sun-bright:after,.fad.fa-sun-alt:after,.fad.fa-sun-bright:after{content:"\e28f\e28f"}.fa-duotone.fa-warehouse:after,.fad.fa-warehouse:after{content:"\f494\f494"}.fa-duotone.fa-conveyor-belt-arm:after,.fad.fa-conveyor-belt-arm:after{content:"\e5f8\e5f8"}.fa-duotone.fa-lock-keyhole-open:after,.fa-duotone.fa-lock-open-alt:after,.fad.fa-lock-keyhole-open:after,.fad.fa-lock-open-alt:after{content:"\f3c2\f3c2"}.fa-duotone.fa-box-fragile:after,.fa-duotone.fa-square-fragile:after,.fa-duotone.fa-square-wine-glass-crack:after,.fad.fa-box-fragile:after,.fad.fa-square-fragile:after,.fad.fa-square-wine-glass-crack:after{content:"\f49b\f49b"}.fa-duotone.fa-arrow-up-right-dots:after,.fad.fa-arrow-up-right-dots:after{content:"\e4b7\e4b7"}.fa-duotone.fa-square-n:after,.fad.fa-square-n:after{content:"\e277\e277"}.fa-duotone.fa-splotch:after,.fad.fa-splotch:after{content:"\f5bc\f5bc"}.fa-duotone.fa-face-grin-hearts:after,.fa-duotone.fa-grin-hearts:after,.fad.fa-face-grin-hearts:after,.fad.fa-grin-hearts:after{content:"\f584\f584"}.fa-duotone.fa-meter:after,.fad.fa-meter:after{content:"\e1e8\e1e8"}.fa-duotone.fa-mandolin:after,.fad.fa-mandolin:after{content:"\f6f9\f6f9"}.fa-duotone.fa-dice-four:after,.fad.fa-dice-four:after{content:"\f524\f524"}.fa-duotone.fa-sim-card:after,.fad.fa-sim-card:after{content:"\f7c4\f7c4"}.fa-duotone.fa-transgender-alt:after,.fa-duotone.fa-transgender:after,.fad.fa-transgender-alt:after,.fad.fa-transgender:after{content:"\f225\f225"}.fa-duotone.fa-mercury:after,.fad.fa-mercury:after{content:"\f223\f223"}.fa-duotone.fa-up-from-bracket:after,.fad.fa-up-from-bracket:after{content:"\e590\e590"}.fa-duotone.fa-knife-kitchen:after,.fad.fa-knife-kitchen:after{content:"\f6f5\f6f5"}.fa-duotone.fa-border-right:after,.fad.fa-border-right:after{content:"\f852\f852"}.fa-duotone.fa-arrow-turn-down:after,.fa-duotone.fa-level-down:after,.fad.fa-arrow-turn-down:after,.fad.fa-level-down:after{content:"\f149\f149"}.fa-duotone.fa-spade:after,.fad.fa-spade:after{content:"\f2f4\f2f4"}.fa-duotone.fa-card-spade:after,.fad.fa-card-spade:after{content:"\e3ec\e3ec"}.fa-duotone.fa-line-columns:after,.fad.fa-line-columns:after{content:"\f870\f870"}.fa-duotone.fa-arrow-right-to-line:after,.fa-duotone.fa-arrow-to-right:after,.fad.fa-arrow-right-to-line:after,.fad.fa-arrow-to-right:after{content:"\f340\f340"}.fa-duotone.fa-person-falling-burst:after,.fad.fa-person-falling-burst:after{content:"\e547\e547"}.fa-duotone.fa-flag-pennant:after,.fa-duotone.fa-pennant:after,.fad.fa-flag-pennant:after,.fad.fa-pennant:after{content:"\f456\f456"}.fa-duotone.fa-conveyor-belt-empty:after,.fad.fa-conveyor-belt-empty:after{content:"\e150\e150"}.fa-duotone.fa-user-group-simple:after,.fad.fa-user-group-simple:after{content:"\e603\e603"}.fa-duotone.fa-award:after,.fad.fa-award:after{content:"\f559\f559"}.fa-duotone.fa-ticket-alt:after,.fa-duotone.fa-ticket-simple:after,.fad.fa-ticket-alt:after,.fad.fa-ticket-simple:after{content:"\f3ff\f3ff"}.fa-duotone.fa-building:after,.fad.fa-building:after{content:"\f1ad\f1ad"}.fa-duotone.fa-angle-double-left:after,.fa-duotone.fa-angles-left:after,.fad.fa-angle-double-left:after,.fad.fa-angles-left:after{content:"\f100\f100"}.fa-duotone.fa-camcorder:after,.fa-duotone.fa-video-handheld:after,.fad.fa-camcorder:after,.fad.fa-video-handheld:after{content:"\f8a8\f8a8"}.fa-duotone.fa-pancakes:after,.fad.fa-pancakes:after{content:"\e42d\e42d"}.fa-duotone.fa-album-circle-user:after,.fad.fa-album-circle-user:after{content:"\e48d\e48d"}.fa-duotone.fa-subtitles-slash:after,.fad.fa-subtitles-slash:after{content:"\e610\e610"}.fa-duotone.fa-qrcode:after,.fad.fa-qrcode:after{content:"\f029\f029"}.fa-duotone.fa-dice-d10:after,.fad.fa-dice-d10:after{content:"\f6cd\f6cd"}.fa-duotone.fa-fireplace:after,.fad.fa-fireplace:after{content:"\f79a\f79a"}.fa-duotone.fa-browser:after,.fad.fa-browser:after{content:"\f37e\f37e"}.fa-duotone.fa-pen-paintbrush:after,.fa-duotone.fa-pencil-paintbrush:after,.fad.fa-pen-paintbrush:after,.fad.fa-pencil-paintbrush:after{content:"\f618\f618"}.fa-duotone.fa-fish-cooked:after,.fad.fa-fish-cooked:after{content:"\f7fe\f7fe"}.fa-duotone.fa-chair-office:after,.fad.fa-chair-office:after{content:"\f6c1\f6c1"}.fa-duotone.fa-magnifying-glass-music:after,.fad.fa-magnifying-glass-music:after{content:"\e65f\e65f"}.fa-duotone.fa-nesting-dolls:after,.fad.fa-nesting-dolls:after{content:"\e3ba\e3ba"}.fa-duotone.fa-clock-rotate-left:after,.fa-duotone.fa-history:after,.fad.fa-clock-rotate-left:after,.fad.fa-history:after{content:"\f1da\f1da"}.fa-duotone.fa-trumpet:after,.fad.fa-trumpet:after{content:"\f8e3\f8e3"}.fa-duotone.fa-face-grin-beam-sweat:after,.fa-duotone.fa-grin-beam-sweat:after,.fad.fa-face-grin-beam-sweat:after,.fad.fa-grin-beam-sweat:after{content:"\f583\f583"}.fa-duotone.fa-fire-smoke:after,.fad.fa-fire-smoke:after{content:"\f74b\f74b"}.fa-duotone.fa-phone-missed:after,.fad.fa-phone-missed:after{content:"\e226\e226"}.fa-duotone.fa-arrow-right-from-file:after,.fa-duotone.fa-file-export:after,.fad.fa-arrow-right-from-file:after,.fad.fa-file-export:after{content:"\f56e\f56e"}.fa-duotone.fa-shield-blank:after,.fa-duotone.fa-shield:after,.fad.fa-shield-blank:after,.fad.fa-shield:after{content:"\f132\f132"}.fa-duotone.fa-arrow-up-short-wide:after,.fa-duotone.fa-sort-amount-up-alt:after,.fad.fa-arrow-up-short-wide:after,.fad.fa-sort-amount-up-alt:after{content:"\f885\f885"}.fa-duotone.fa-arrows-repeat-1:after,.fa-duotone.fa-repeat-1-alt:after,.fad.fa-arrows-repeat-1:after,.fad.fa-repeat-1-alt:after{content:"\f366\f366"}.fa-duotone.fa-gun-slash:after,.fad.fa-gun-slash:after{content:"\e19c\e19c"}.fa-duotone.fa-avocado:after,.fad.fa-avocado:after{content:"\e0aa\e0aa"}.fa-duotone.fa-binary:after,.fad.fa-binary:after{content:"\e33b\e33b"}.fa-duotone.fa-glasses-alt:after,.fa-duotone.fa-glasses-round:after,.fad.fa-glasses-alt:after,.fad.fa-glasses-round:after{content:"\f5f5\f5f5"}.fa-duotone.fa-phone-plus:after,.fad.fa-phone-plus:after{content:"\f4d2\f4d2"}.fa-duotone.fa-ditto:after,.fad.fa-ditto:after{content:"\22\22"}.fa-duotone.fa-person-seat:after,.fad.fa-person-seat:after{content:"\e21e\e21e"}.fa-duotone.fa-house-medical:after,.fad.fa-house-medical:after{content:"\e3b2\e3b2"}.fa-duotone.fa-golf-ball-tee:after,.fa-duotone.fa-golf-ball:after,.fad.fa-golf-ball-tee:after,.fad.fa-golf-ball:after{content:"\f450\f450"}.fa-duotone.fa-chevron-circle-left:after,.fa-duotone.fa-circle-chevron-left:after,.fad.fa-chevron-circle-left:after,.fad.fa-circle-chevron-left:after{content:"\f137\f137"}.fa-duotone.fa-house-chimney-window:after,.fad.fa-house-chimney-window:after{content:"\e00d\e00d"}.fa-duotone.fa-scythe:after,.fad.fa-scythe:after{content:"\f710\f710"}.fa-duotone.fa-pen-nib:after,.fad.fa-pen-nib:after{content:"\f5ad\f5ad"}.fa-duotone.fa-ban-parking:after,.fa-duotone.fa-parking-circle-slash:after,.fad.fa-ban-parking:after,.fad.fa-parking-circle-slash:after{content:"\f616\f616"}.fa-duotone.fa-tent-arrow-turn-left:after,.fad.fa-tent-arrow-turn-left:after{content:"\e580\e580"}.fa-duotone.fa-face-diagonal-mouth:after,.fad.fa-face-diagonal-mouth:after{content:"\e47e\e47e"}.fa-duotone.fa-diagram-cells:after,.fad.fa-diagram-cells:after{content:"\e475\e475"}.fa-duotone.fa-cricket-bat-ball:after,.fa-duotone.fa-cricket:after,.fad.fa-cricket-bat-ball:after,.fad.fa-cricket:after{content:"\f449\f449"}.fa-duotone.fa-tents:after,.fad.fa-tents:after{content:"\e582\e582"}.fa-duotone.fa-magic:after,.fa-duotone.fa-wand-magic:after,.fad.fa-magic:after,.fad.fa-wand-magic:after{content:"\f0d0\f0d0"}.fa-duotone.fa-dog:after,.fad.fa-dog:after{content:"\f6d3\f6d3"}.fa-duotone.fa-pen-line:after,.fad.fa-pen-line:after{content:"\e212\e212"}.fa-duotone.fa-atom-alt:after,.fa-duotone.fa-atom-simple:after,.fad.fa-atom-alt:after,.fad.fa-atom-simple:after{content:"\f5d3\f5d3"}.fa-duotone.fa-ampersand:after,.fad.fa-ampersand:after{content:"\26\26"}.fa-duotone.fa-carrot:after,.fad.fa-carrot:after{content:"\f787\f787"}.fa-duotone.fa-arrow-from-bottom:after,.fa-duotone.fa-arrow-up-from-line:after,.fad.fa-arrow-from-bottom:after,.fad.fa-arrow-up-from-line:after{content:"\f342\f342"}.fa-duotone.fa-moon:after,.fad.fa-moon:after{content:"\f186\f186"}.fa-duotone.fa-pen-slash:after,.fad.fa-pen-slash:after{content:"\e213\e213"}.fa-duotone.fa-wine-glass-alt:after,.fa-duotone.fa-wine-glass-empty:after,.fad.fa-wine-glass-alt:after,.fad.fa-wine-glass-empty:after{content:"\f5ce\f5ce"}.fa-duotone.fa-square-star:after,.fad.fa-square-star:after{content:"\e27f\e27f"}.fa-duotone.fa-cheese:after,.fad.fa-cheese:after{content:"\f7ef\f7ef"}.fa-duotone.fa-send-backward:after,.fad.fa-send-backward:after{content:"\f87f\f87f"}.fa-duotone.fa-yin-yang:after,.fad.fa-yin-yang:after{content:"\f6ad\f6ad"}.fa-duotone.fa-music:after,.fad.fa-music:after{content:"\f001\f001"}.fa-duotone.fa-compass-slash:after,.fad.fa-compass-slash:after{content:"\f5e9\f5e9"}.fa-duotone.fa-clock-one:after,.fad.fa-clock-one:after{content:"\e34e\e34e"}.fa-duotone.fa-file-music:after,.fad.fa-file-music:after{content:"\f8b6\f8b6"}.fa-duotone.fa-code-commit:after,.fad.fa-code-commit:after{content:"\f386\f386"}.fa-duotone.fa-temperature-low:after,.fad.fa-temperature-low:after{content:"\f76b\f76b"}.fa-duotone.fa-biking:after,.fa-duotone.fa-person-biking:after,.fad.fa-biking:after,.fad.fa-person-biking:after{content:"\f84a\f84a"}.fa-duotone.fa-display-chart-up-circle-currency:after,.fad.fa-display-chart-up-circle-currency:after{content:"\e5e5\e5e5"}.fa-duotone.fa-skeleton:after,.fad.fa-skeleton:after{content:"\f620\f620"}.fa-duotone.fa-circle-g:after,.fad.fa-circle-g:after{content:"\e10f\e10f"}.fa-duotone.fa-circle-arrow-up-left:after,.fad.fa-circle-arrow-up-left:after{content:"\e0fb\e0fb"}.fa-duotone.fa-coin-blank:after,.fad.fa-coin-blank:after{content:"\e3fb\e3fb"}.fa-duotone.fa-broom:after,.fad.fa-broom:after{content:"\f51a\f51a"}.fa-duotone.fa-vacuum:after,.fad.fa-vacuum:after{content:"\e04d\e04d"}.fa-duotone.fa-shield-heart:after,.fad.fa-shield-heart:after{content:"\e574\e574"}.fa-duotone.fa-card-heart:after,.fad.fa-card-heart:after{content:"\e3eb\e3eb"}.fa-duotone.fa-lightbulb-cfl-on:after,.fad.fa-lightbulb-cfl-on:after{content:"\e5a7\e5a7"}.fa-duotone.fa-melon:after,.fad.fa-melon:after{content:"\e310\e310"}.fa-duotone.fa-gopuram:after,.fad.fa-gopuram:after{content:"\f664\f664"}.fa-duotone.fa-earth-oceania:after,.fa-duotone.fa-globe-oceania:after,.fad.fa-earth-oceania:after,.fad.fa-globe-oceania:after{content:"\e47b\e47b"}.fa-duotone.fa-container-storage:after,.fad.fa-container-storage:after{content:"\f4b7\f4b7"}.fa-duotone.fa-face-pouting:after,.fad.fa-face-pouting:after{content:"\e387\e387"}.fa-duotone.fa-square-xmark:after,.fa-duotone.fa-times-square:after,.fa-duotone.fa-xmark-square:after,.fad.fa-square-xmark:after,.fad.fa-times-square:after,.fad.fa-xmark-square:after{content:"\f2d3\f2d3"}.fa-duotone.fa-exploding-head:after,.fa-duotone.fa-face-explode:after,.fad.fa-exploding-head:after,.fad.fa-face-explode:after{content:"\e2fe\e2fe"}.fa-duotone.fa-hashtag:after,.fad.fa-hashtag:after{content:"\23\23"}.fa-duotone.fa-expand-alt:after,.fa-duotone.fa-up-right-and-down-left-from-center:after,.fad.fa-expand-alt:after,.fad.fa-up-right-and-down-left-from-center:after{content:"\f424\f424"}.fa-duotone.fa-oil-can:after,.fad.fa-oil-can:after{content:"\f613\f613"}.fa-duotone.fa-t:after,.fad.fa-t:after{content:"\54\54"}.fa-duotone.fa-transformer-bolt:after,.fad.fa-transformer-bolt:after{content:"\e2a4\e2a4"}.fa-duotone.fa-hippo:after,.fad.fa-hippo:after{content:"\f6ed\f6ed"}.fa-duotone.fa-chart-column:after,.fad.fa-chart-column:after{content:"\e0e3\e0e3"}.fa-duotone.fa-cassette-vhs:after,.fa-duotone.fa-vhs:after,.fad.fa-cassette-vhs:after,.fad.fa-vhs:after{content:"\f8ec\f8ec"}.fa-duotone.fa-infinity:after,.fad.fa-infinity:after{content:"\f534\f534"}.fa-duotone.fa-vial-circle-check:after,.fad.fa-vial-circle-check:after{content:"\e596\e596"}.fa-duotone.fa-chimney:after,.fad.fa-chimney:after{content:"\f78b\f78b"}.fa-duotone.fa-object-intersect:after,.fad.fa-object-intersect:after{content:"\e49d\e49d"}.fa-duotone.fa-person-arrow-down-to-line:after,.fad.fa-person-arrow-down-to-line:after{content:"\e538\e538"}.fa-duotone.fa-voicemail:after,.fad.fa-voicemail:after{content:"\f897\f897"}.fa-duotone.fa-block-brick:after,.fa-duotone.fa-wall-brick:after,.fad.fa-block-brick:after,.fad.fa-wall-brick:after{content:"\e3db\e3db"}.fa-duotone.fa-fan:after,.fad.fa-fan:after{content:"\f863\f863"}.fa-duotone.fa-bags-shopping:after,.fad.fa-bags-shopping:after{content:"\f847\f847"}.fa-duotone.fa-paragraph-left:after,.fa-duotone.fa-paragraph-rtl:after,.fad.fa-paragraph-left:after,.fad.fa-paragraph-rtl:after{content:"\f878\f878"}.fa-duotone.fa-person-walking-luggage:after,.fad.fa-person-walking-luggage:after{content:"\e554\e554"}.fa-duotone.fa-caravan-alt:after,.fa-duotone.fa-caravan-simple:after,.fad.fa-caravan-alt:after,.fad.fa-caravan-simple:after{content:"\e000\e000"}.fa-duotone.fa-turtle:after,.fad.fa-turtle:after{content:"\f726\f726"}.fa-duotone.fa-pencil-mechanical:after,.fad.fa-pencil-mechanical:after{content:"\e5ca\e5ca"}.fa-duotone.fa-arrows-alt-v:after,.fa-duotone.fa-up-down:after,.fad.fa-arrows-alt-v:after,.fad.fa-up-down:after{content:"\f338\f338"}.fa-duotone.fa-cloud-moon-rain:after,.fad.fa-cloud-moon-rain:after{content:"\f73c\f73c"}.fa-duotone.fa-booth-curtain:after,.fad.fa-booth-curtain:after{content:"\f734\f734"}.fa-duotone.fa-calendar:after,.fad.fa-calendar:after{content:"\f133\f133"}.fa-duotone.fa-box-heart:after,.fad.fa-box-heart:after{content:"\f49d\f49d"}.fa-duotone.fa-trailer:after,.fad.fa-trailer:after{content:"\e041\e041"}.fa-duotone.fa-user-doctor-message:after,.fa-duotone.fa-user-md-chat:after,.fad.fa-user-doctor-message:after,.fad.fa-user-md-chat:after{content:"\f82e\f82e"}.fa-duotone.fa-bahai:after,.fa-duotone.fa-haykal:after,.fad.fa-bahai:after,.fad.fa-haykal:after{content:"\f666\f666"}.fa-duotone.fa-lighthouse:after,.fad.fa-lighthouse:after{content:"\e612\e612"}.fa-duotone.fa-amp-guitar:after,.fad.fa-amp-guitar:after{content:"\f8a1\f8a1"}.fa-duotone.fa-sd-card:after,.fad.fa-sd-card:after{content:"\f7c2\f7c2"}.fa-duotone.fa-volume-slash:after,.fad.fa-volume-slash:after{content:"\f2e2\f2e2"}.fa-duotone.fa-border-bottom:after,.fad.fa-border-bottom:after{content:"\f84d\f84d"}.fa-duotone.fa-wifi-1:after,.fa-duotone.fa-wifi-weak:after,.fad.fa-wifi-1:after,.fad.fa-wifi-weak:after{content:"\f6aa\f6aa"}.fa-duotone.fa-dragon:after,.fad.fa-dragon:after{content:"\f6d5\f6d5"}.fa-duotone.fa-shoe-prints:after,.fad.fa-shoe-prints:after{content:"\f54b\f54b"}.fa-duotone.fa-circle-plus:after,.fa-duotone.fa-plus-circle:after,.fad.fa-circle-plus:after,.fad.fa-plus-circle:after{content:"\f055\f055"}.fa-duotone.fa-face-grin-tongue-wink:after,.fa-duotone.fa-grin-tongue-wink:after,.fad.fa-face-grin-tongue-wink:after,.fad.fa-grin-tongue-wink:after{content:"\f58b\f58b"}.fa-duotone.fa-hand-holding:after,.fad.fa-hand-holding:after{content:"\f4bd\f4bd"}.fa-duotone.fa-plug-circle-exclamation:after,.fad.fa-plug-circle-exclamation:after{content:"\e55d\e55d"}.fa-duotone.fa-chain-broken:after,.fa-duotone.fa-chain-slash:after,.fa-duotone.fa-link-slash:after,.fa-duotone.fa-unlink:after,.fad.fa-chain-broken:after,.fad.fa-chain-slash:after,.fad.fa-link-slash:after,.fad.fa-unlink:after{content:"\f127\f127"}.fa-duotone.fa-clone:after,.fad.fa-clone:after{content:"\f24d\f24d"}.fa-duotone.fa-person-walking-arrow-loop-left:after,.fad.fa-person-walking-arrow-loop-left:after{content:"\e551\e551"}.fa-duotone.fa-arrow-up-z-a:after,.fa-duotone.fa-sort-alpha-up-alt:after,.fad.fa-arrow-up-z-a:after,.fad.fa-sort-alpha-up-alt:after{content:"\f882\f882"}.fa-duotone.fa-fire-alt:after,.fa-duotone.fa-fire-flame-curved:after,.fad.fa-fire-alt:after,.fad.fa-fire-flame-curved:after{content:"\f7e4\f7e4"}.fa-duotone.fa-tornado:after,.fad.fa-tornado:after{content:"\f76f\f76f"}.fa-duotone.fa-file-circle-plus:after,.fad.fa-file-circle-plus:after{content:"\e494\e494"}.fa-duotone.fa-delete-right:after,.fad.fa-delete-right:after{content:"\e154\e154"}.fa-duotone.fa-book-quran:after,.fa-duotone.fa-quran:after,.fad.fa-book-quran:after,.fad.fa-quran:after{content:"\f687\f687"}.fa-duotone.fa-circle-quarter:after,.fad.fa-circle-quarter:after{content:"\e11f\e11f"}.fa-duotone.fa-anchor:after,.fad.fa-anchor:after{content:"\f13d\f13d"}.fa-duotone.fa-border-all:after,.fad.fa-border-all:after{content:"\f84c\f84c"}.fa-duotone.fa-function:after,.fad.fa-function:after{content:"\f661\f661"}.fa-duotone.fa-angry:after,.fa-duotone.fa-face-angry:after,.fad.fa-angry:after,.fad.fa-face-angry:after{content:"\f556\f556"}.fa-duotone.fa-people-simple:after,.fad.fa-people-simple:after{content:"\e21b\e21b"}.fa-duotone.fa-cookie-bite:after,.fad.fa-cookie-bite:after{content:"\f564\f564"}.fa-duotone.fa-arrow-trend-down:after,.fad.fa-arrow-trend-down:after{content:"\e097\e097"}.fa-duotone.fa-feed:after,.fa-duotone.fa-rss:after,.fad.fa-feed:after,.fad.fa-rss:after{content:"\f09e\f09e"}.fa-duotone.fa-face-monocle:after,.fad.fa-face-monocle:after{content:"\e380\e380"}.fa-duotone.fa-draw-polygon:after,.fad.fa-draw-polygon:after{content:"\f5ee\f5ee"}.fa-duotone.fa-balance-scale:after,.fa-duotone.fa-scale-balanced:after,.fad.fa-balance-scale:after,.fad.fa-scale-balanced:after{content:"\f24e\f24e"}.fa-duotone.fa-calendar-lines:after,.fa-duotone.fa-calendar-note:after,.fad.fa-calendar-lines:after,.fad.fa-calendar-note:after{content:"\e0d5\e0d5"}.fa-duotone.fa-arrow-down-big-small:after,.fa-duotone.fa-sort-size-down:after,.fad.fa-arrow-down-big-small:after,.fad.fa-sort-size-down:after{content:"\f88c\f88c"}.fa-duotone.fa-gauge-simple-high:after,.fa-duotone.fa-tachometer-fast:after,.fa-duotone.fa-tachometer:after,.fad.fa-gauge-simple-high:after,.fad.fa-tachometer-fast:after,.fad.fa-tachometer:after{content:"\f62a\f62a"}.fa-duotone.fa-do-not-enter:after,.fad.fa-do-not-enter:after{content:"\f5ec\f5ec"}.fa-duotone.fa-shower:after,.fad.fa-shower:after{content:"\f2cc\f2cc"}.fa-duotone.fa-dice-d8:after,.fad.fa-dice-d8:after{content:"\f6d2\f6d2"}.fa-duotone.fa-desktop-alt:after,.fa-duotone.fa-desktop:after,.fad.fa-desktop-alt:after,.fad.fa-desktop:after{content:"\f390\f390"}.fa-duotone.fa-m:after,.fad.fa-m:after{content:"\4d\4d"}.fa-duotone.fa-spinner-scale:after,.fad.fa-spinner-scale:after{content:"\e62a\e62a"}.fa-duotone.fa-grip-dots-vertical:after,.fad.fa-grip-dots-vertical:after{content:"\e411\e411"}.fa-duotone.fa-face-viewfinder:after,.fad.fa-face-viewfinder:after{content:"\e2ff\e2ff"}.fa-duotone.fa-creemee:after,.fa-duotone.fa-soft-serve:after,.fad.fa-creemee:after,.fad.fa-soft-serve:after{content:"\e400\e400"}.fa-duotone.fa-h5:after,.fad.fa-h5:after{content:"\e412\e412"}.fa-duotone.fa-hand-back-point-down:after,.fad.fa-hand-back-point-down:after{content:"\e19e\e19e"}.fa-duotone.fa-table-list:after,.fa-duotone.fa-th-list:after,.fad.fa-table-list:after,.fad.fa-th-list:after{content:"\f00b\f00b"}.fa-duotone.fa-basket-shopping-minus:after,.fad.fa-basket-shopping-minus:after{content:"\e652\e652"}.fa-duotone.fa-comment-sms:after,.fa-duotone.fa-sms:after,.fad.fa-comment-sms:after,.fad.fa-sms:after{content:"\f7cd\f7cd"}.fa-duotone.fa-rectangle-landscape:after,.fa-duotone.fa-rectangle:after,.fad.fa-rectangle-landscape:after,.fad.fa-rectangle:after{content:"\f2fa\f2fa"}.fa-duotone.fa-clipboard-list-check:after,.fad.fa-clipboard-list-check:after{content:"\f737\f737"}.fa-duotone.fa-turkey:after,.fad.fa-turkey:after{content:"\f725\f725"}.fa-duotone.fa-book:after,.fad.fa-book:after{content:"\f02d\f02d"}.fa-duotone.fa-user-plus:after,.fad.fa-user-plus:after{content:"\f234\f234"}.fa-duotone.fa-ice-skate:after,.fad.fa-ice-skate:after{content:"\f7ac\f7ac"}.fa-duotone.fa-check:after,.fad.fa-check:after{content:"\f00c\f00c"}.fa-duotone.fa-battery-4:after,.fa-duotone.fa-battery-three-quarters:after,.fad.fa-battery-4:after,.fad.fa-battery-three-quarters:after{content:"\f241\f241"}.fa-duotone.fa-tomato:after,.fad.fa-tomato:after{content:"\e330\e330"}.fa-duotone.fa-sword-laser:after,.fad.fa-sword-laser:after{content:"\e03b\e03b"}.fa-duotone.fa-house-circle-check:after,.fad.fa-house-circle-check:after{content:"\e509\e509"}.fa-duotone.fa-buildings:after,.fad.fa-buildings:after{content:"\e0cc\e0cc"}.fa-duotone.fa-angle-left:after,.fad.fa-angle-left:after{content:"\f104\f104"}.fa-duotone.fa-cart-flatbed-boxes:after,.fa-duotone.fa-dolly-flatbed-alt:after,.fad.fa-cart-flatbed-boxes:after,.fad.fa-dolly-flatbed-alt:after{content:"\f475\f475"}.fa-duotone.fa-diagram-successor:after,.fad.fa-diagram-successor:after{content:"\e47a\e47a"}.fa-duotone.fa-truck-arrow-right:after,.fad.fa-truck-arrow-right:after{content:"\e58b\e58b"}.fa-duotone.fa-square-w:after,.fad.fa-square-w:after{content:"\e285\e285"}.fa-duotone.fa-arrows-split-up-and-left:after,.fad.fa-arrows-split-up-and-left:after{content:"\e4bc\e4bc"}.fa-duotone.fa-lamp:after,.fad.fa-lamp:after{content:"\f4ca\f4ca"}.fa-duotone.fa-airplay:after,.fad.fa-airplay:after{content:"\e089\e089"}.fa-duotone.fa-fist-raised:after,.fa-duotone.fa-hand-fist:after,.fad.fa-fist-raised:after,.fad.fa-hand-fist:after{content:"\f6de\f6de"}.fa-duotone.fa-shield-quartered:after,.fad.fa-shield-quartered:after{content:"\e575\e575"}.fa-duotone.fa-slash-forward:after,.fad.fa-slash-forward:after{content:"\2f\2f"}.fa-duotone.fa-location-pen:after,.fa-duotone.fa-map-marker-edit:after,.fad.fa-location-pen:after,.fad.fa-map-marker-edit:after{content:"\f607\f607"}.fa-duotone.fa-cloud-moon:after,.fad.fa-cloud-moon:after{content:"\f6c3\f6c3"}.fa-duotone.fa-pot-food:after,.fad.fa-pot-food:after{content:"\e43f\e43f"}.fa-duotone.fa-briefcase:after,.fad.fa-briefcase:after{content:"\f0b1\f0b1"}.fa-duotone.fa-person-falling:after,.fad.fa-person-falling:after{content:"\e546\e546"}.fa-duotone.fa-image-portrait:after,.fa-duotone.fa-portrait:after,.fad.fa-image-portrait:after,.fad.fa-portrait:after{content:"\f3e0\f3e0"}.fa-duotone.fa-user-tag:after,.fad.fa-user-tag:after{content:"\f507\f507"}.fa-duotone.fa-rug:after,.fad.fa-rug:after{content:"\e569\e569"}.fa-duotone.fa-print-slash:after,.fad.fa-print-slash:after{content:"\f686\f686"}.fa-duotone.fa-earth-europe:after,.fa-duotone.fa-globe-europe:after,.fad.fa-earth-europe:after,.fad.fa-globe-europe:after{content:"\f7a2\f7a2"}.fa-duotone.fa-cart-flatbed-suitcase:after,.fa-duotone.fa-luggage-cart:after,.fad.fa-cart-flatbed-suitcase:after,.fad.fa-luggage-cart:after{content:"\f59d\f59d"}.fa-duotone.fa-hand-back-point-ribbon:after,.fad.fa-hand-back-point-ribbon:after{content:"\e1a0\e1a0"}.fa-duotone.fa-rectangle-times:after,.fa-duotone.fa-rectangle-xmark:after,.fa-duotone.fa-times-rectangle:after,.fa-duotone.fa-window-close:after,.fad.fa-rectangle-times:after,.fad.fa-rectangle-xmark:after,.fad.fa-times-rectangle:after,.fad.fa-window-close:after{content:"\f410\f410"}.fa-duotone.fa-tire-rugged:after,.fad.fa-tire-rugged:after{content:"\f634\f634"}.fa-duotone.fa-lightbulb-dollar:after,.fad.fa-lightbulb-dollar:after{content:"\f670\f670"}.fa-duotone.fa-cowbell:after,.fad.fa-cowbell:after{content:"\f8b3\f8b3"}.fa-duotone.fa-baht-sign:after,.fad.fa-baht-sign:after{content:"\e0ac\e0ac"}.fa-duotone.fa-corner:after,.fad.fa-corner:after{content:"\e3fe\e3fe"}.fa-duotone.fa-chevron-double-right:after,.fa-duotone.fa-chevrons-right:after,.fad.fa-chevron-double-right:after,.fad.fa-chevrons-right:after{content:"\f324\f324"}.fa-duotone.fa-book-open:after,.fad.fa-book-open:after{content:"\f518\f518"}.fa-duotone.fa-book-journal-whills:after,.fa-duotone.fa-journal-whills:after,.fad.fa-book-journal-whills:after,.fad.fa-journal-whills:after{content:"\f66a\f66a"}.fa-duotone.fa-inhaler:after,.fad.fa-inhaler:after{content:"\f5f9\f5f9"}.fa-duotone.fa-handcuffs:after,.fad.fa-handcuffs:after{content:"\e4f8\e4f8"}.fa-duotone.fa-snake:after,.fad.fa-snake:after{content:"\f716\f716"}.fa-duotone.fa-exclamation-triangle:after,.fa-duotone.fa-triangle-exclamation:after,.fa-duotone.fa-warning:after,.fad.fa-exclamation-triangle:after,.fad.fa-triangle-exclamation:after,.fad.fa-warning:after{content:"\f071\f071"}.fa-duotone.fa-note-medical:after,.fad.fa-note-medical:after{content:"\e200\e200"}.fa-duotone.fa-database:after,.fad.fa-database:after{content:"\f1c0\f1c0"}.fa-duotone.fa-down-left:after,.fad.fa-down-left:after{content:"\e16a\e16a"}.fa-duotone.fa-mail-forward:after,.fa-duotone.fa-share:after,.fad.fa-mail-forward:after,.fad.fa-share:after{content:"\f064\f064"}.fa-duotone.fa-face-thinking:after,.fad.fa-face-thinking:after{content:"\e39b\e39b"}.fa-duotone.fa-turn-down-right:after,.fad.fa-turn-down-right:after{content:"\e455\e455"}.fa-duotone.fa-bottle-droplet:after,.fad.fa-bottle-droplet:after{content:"\e4c4\e4c4"}.fa-duotone.fa-mask-face:after,.fad.fa-mask-face:after{content:"\e1d7\e1d7"}.fa-duotone.fa-hill-rockslide:after,.fad.fa-hill-rockslide:after{content:"\e508\e508"}.fa-duotone.fa-scanner-keyboard:after,.fad.fa-scanner-keyboard:after{content:"\f489\f489"}.fa-duotone.fa-circle-o:after,.fad.fa-circle-o:after{content:"\e119\e119"}.fa-duotone.fa-grid-horizontal:after,.fad.fa-grid-horizontal:after{content:"\e307\e307"}.fa-duotone.fa-comment-alt-dollar:after,.fa-duotone.fa-message-dollar:after,.fad.fa-comment-alt-dollar:after,.fad.fa-message-dollar:after{content:"\f650\f650"}.fa-duotone.fa-exchange-alt:after,.fa-duotone.fa-right-left:after,.fad.fa-exchange-alt:after,.fad.fa-right-left:after{content:"\f362\f362"}.fa-duotone.fa-columns-3:after,.fad.fa-columns-3:after{content:"\e361\e361"}.fa-duotone.fa-paper-plane:after,.fad.fa-paper-plane:after{content:"\f1d8\f1d8"}.fa-duotone.fa-road-circle-exclamation:after,.fad.fa-road-circle-exclamation:after{content:"\e565\e565"}.fa-duotone.fa-dungeon:after,.fad.fa-dungeon:after{content:"\f6d9\f6d9"}.fa-duotone.fa-hand-holding-box:after,.fad.fa-hand-holding-box:after{content:"\f47b\f47b"}.fa-duotone.fa-input-text:after,.fad.fa-input-text:after{content:"\e1bf\e1bf"}.fa-duotone.fa-window-alt:after,.fa-duotone.fa-window-flip:after,.fad.fa-window-alt:after,.fad.fa-window-flip:after{content:"\f40f\f40f"}.fa-duotone.fa-align-right:after,.fad.fa-align-right:after{content:"\f038\f038"}.fa-duotone.fa-scanner-gun:after,.fa-duotone.fa-scanner:after,.fad.fa-scanner-gun:after,.fad.fa-scanner:after{content:"\f488\f488"}.fa-duotone.fa-tire:after,.fad.fa-tire:after{content:"\f631\f631"}.fa-duotone.fa-engine:after,.fad.fa-engine:after{content:"\e16e\e16e"}.fa-duotone.fa-money-bill-1-wave:after,.fa-duotone.fa-money-bill-wave-alt:after,.fad.fa-money-bill-1-wave:after,.fad.fa-money-bill-wave-alt:after{content:"\f53b\f53b"}.fa-duotone.fa-life-ring:after,.fad.fa-life-ring:after{content:"\f1cd\f1cd"}.fa-duotone.fa-hands:after,.fa-duotone.fa-sign-language:after,.fa-duotone.fa-signing:after,.fad.fa-hands:after,.fad.fa-sign-language:after,.fad.fa-signing:after{content:"\f2a7\f2a7"}.fa-duotone.fa-caret-circle-right:after,.fa-duotone.fa-circle-caret-right:after,.fad.fa-caret-circle-right:after,.fad.fa-circle-caret-right:after{content:"\f330\f330"}.fa-duotone.fa-turn-left:after,.fad.fa-turn-left:after{content:"\e636\e636"}.fa-duotone.fa-wheat:after,.fad.fa-wheat:after{content:"\f72d\f72d"}.fa-duotone.fa-file-spreadsheet:after,.fad.fa-file-spreadsheet:after{content:"\f65b\f65b"}.fa-duotone.fa-audio-description-slash:after,.fad.fa-audio-description-slash:after{content:"\e0a8\e0a8"}.fa-duotone.fa-bell-ring:after,.fad.fa-bell-ring:after{content:"\e62c\e62c"}.fa-duotone.fa-calendar-day:after,.fad.fa-calendar-day:after{content:"\f783\f783"}.fa-duotone.fa-ladder-water:after,.fa-duotone.fa-swimming-pool:after,.fa-duotone.fa-water-ladder:after,.fad.fa-ladder-water:after,.fad.fa-swimming-pool:after,.fad.fa-water-ladder:after{content:"\f5c5\f5c5"}.fa-duotone.fa-arrows-up-down:after,.fa-duotone.fa-arrows-v:after,.fad.fa-arrows-up-down:after,.fad.fa-arrows-v:after{content:"\f07d\f07d"}.fa-duotone.fa-chess-pawn-alt:after,.fa-duotone.fa-chess-pawn-piece:after,.fad.fa-chess-pawn-alt:after,.fad.fa-chess-pawn-piece:after{content:"\f444\f444"}.fa-duotone.fa-face-grimace:after,.fa-duotone.fa-grimace:after,.fad.fa-face-grimace:after,.fad.fa-grimace:after{content:"\f57f\f57f"}.fa-duotone.fa-wheelchair-alt:after,.fa-duotone.fa-wheelchair-move:after,.fad.fa-wheelchair-alt:after,.fad.fa-wheelchair-move:after{content:"\e2ce\e2ce"}.fa-duotone.fa-level-down-alt:after,.fa-duotone.fa-turn-down:after,.fad.fa-level-down-alt:after,.fad.fa-turn-down:after{content:"\f3be\f3be"}.fa-duotone.fa-square-s:after,.fad.fa-square-s:after{content:"\e27d\e27d"}.fa-duotone.fa-barcode-alt:after,.fa-duotone.fa-rectangle-barcode:after,.fad.fa-barcode-alt:after,.fad.fa-rectangle-barcode:after{content:"\f463\f463"}.fa-duotone.fa-person-walking-arrow-right:after,.fad.fa-person-walking-arrow-right:after{content:"\e552\e552"}.fa-duotone.fa-envelope-square:after,.fa-duotone.fa-square-envelope:after,.fad.fa-envelope-square:after,.fad.fa-square-envelope:after{content:"\f199\f199"}.fa-duotone.fa-dice:after,.fad.fa-dice:after{content:"\f522\f522"}.fa-duotone.fa-unicorn:after,.fad.fa-unicorn:after{content:"\f727\f727"}.fa-duotone.fa-bowling-ball:after,.fad.fa-bowling-ball:after{content:"\f436\f436"}.fa-duotone.fa-pompebled:after,.fad.fa-pompebled:after{content:"\e43d\e43d"}.fa-duotone.fa-brain:after,.fad.fa-brain:after{content:"\f5dc\f5dc"}.fa-duotone.fa-watch-smart:after,.fad.fa-watch-smart:after{content:"\e2cc\e2cc"}.fa-duotone.fa-book-user:after,.fad.fa-book-user:after{content:"\f7e7\f7e7"}.fa-duotone.fa-sensor-cloud:after,.fa-duotone.fa-sensor-smoke:after,.fad.fa-sensor-cloud:after,.fad.fa-sensor-smoke:after{content:"\e02c\e02c"}.fa-duotone.fa-clapperboard-play:after,.fad.fa-clapperboard-play:after{content:"\e132\e132"}.fa-duotone.fa-band-aid:after,.fa-duotone.fa-bandage:after,.fad.fa-band-aid:after,.fad.fa-bandage:after{content:"\f462\f462"}.fa-duotone.fa-calendar-minus:after,.fad.fa-calendar-minus:after{content:"\f272\f272"}.fa-duotone.fa-circle-xmark:after,.fa-duotone.fa-times-circle:after,.fa-duotone.fa-xmark-circle:after,.fad.fa-circle-xmark:after,.fad.fa-times-circle:after,.fad.fa-xmark-circle:after{content:"\f057\f057"}.fa-duotone.fa-circle-4:after,.fad.fa-circle-4:after{content:"\e0f1\e0f1"}.fa-duotone.fa-gifts:after,.fad.fa-gifts:after{content:"\f79c\f79c"}.fa-duotone.fa-album-collection:after,.fad.fa-album-collection:after{content:"\f8a0\f8a0"}.fa-duotone.fa-hotel:after,.fad.fa-hotel:after{content:"\f594\f594"}.fa-duotone.fa-earth-asia:after,.fa-duotone.fa-globe-asia:after,.fad.fa-earth-asia:after,.fad.fa-globe-asia:after{content:"\f57e\f57e"}.fa-duotone.fa-id-card-alt:after,.fa-duotone.fa-id-card-clip:after,.fad.fa-id-card-alt:after,.fad.fa-id-card-clip:after{content:"\f47f\f47f"}.fa-duotone.fa-magnifying-glass-plus:after,.fa-duotone.fa-search-plus:after,.fad.fa-magnifying-glass-plus:after,.fad.fa-search-plus:after{content:"\f00e\f00e"}.fa-duotone.fa-thumbs-up:after,.fad.fa-thumbs-up:after{content:"\f164\f164"}.fa-duotone.fa-cloud-showers:after,.fad.fa-cloud-showers:after{content:"\f73f\f73f"}.fa-duotone.fa-user-clock:after,.fad.fa-user-clock:after{content:"\f4fd\f4fd"}.fa-duotone.fa-onion:after,.fad.fa-onion:after{content:"\e427\e427"}.fa-duotone.fa-clock-twelve-thirty:after,.fad.fa-clock-twelve-thirty:after{content:"\e359\e359"}.fa-duotone.fa-arrow-down-to-dotted-line:after,.fad.fa-arrow-down-to-dotted-line:after{content:"\e095\e095"}.fa-duotone.fa-allergies:after,.fa-duotone.fa-hand-dots:after,.fad.fa-allergies:after,.fad.fa-hand-dots:after{content:"\f461\f461"}.fa-duotone.fa-file-invoice:after,.fad.fa-file-invoice:after{content:"\f570\f570"}.fa-duotone.fa-window-minimize:after,.fad.fa-window-minimize:after{content:"\f2d1\f2d1"}.fa-duotone.fa-rectangle-wide:after,.fad.fa-rectangle-wide:after{content:"\f2fc\f2fc"}.fa-duotone.fa-comment-arrow-up:after,.fad.fa-comment-arrow-up:after{content:"\e144\e144"}.fa-duotone.fa-garlic:after,.fad.fa-garlic:after{content:"\e40e\e40e"}.fa-duotone.fa-coffee:after,.fa-duotone.fa-mug-saucer:after,.fad.fa-coffee:after,.fad.fa-mug-saucer:after{content:"\f0f4\f0f4"}.fa-duotone.fa-brush:after,.fad.fa-brush:after{content:"\f55d\f55d"}.fa-duotone.fa-tree-decorated:after,.fad.fa-tree-decorated:after{content:"\f7dc\f7dc"}.fa-duotone.fa-mask:after,.fad.fa-mask:after{content:"\f6fa\f6fa"}.fa-duotone.fa-calendar-heart:after,.fad.fa-calendar-heart:after{content:"\e0d3\e0d3"}.fa-duotone.fa-magnifying-glass-minus:after,.fa-duotone.fa-search-minus:after,.fad.fa-magnifying-glass-minus:after,.fad.fa-search-minus:after{content:"\f010\f010"}.fa-duotone.fa-flower:after,.fad.fa-flower:after{content:"\f7ff\f7ff"}.fa-duotone.fa-arrow-down-from-arc:after,.fad.fa-arrow-down-from-arc:after{content:"\e614\e614"}.fa-duotone.fa-right-left-large:after,.fad.fa-right-left-large:after{content:"\e5e1\e5e1"}.fa-duotone.fa-ruler-vertical:after,.fad.fa-ruler-vertical:after{content:"\f548\f548"}.fa-duotone.fa-circles-overlap:after,.fad.fa-circles-overlap:after{content:"\e600\e600"}.fa-duotone.fa-user-alt:after,.fa-duotone.fa-user-large:after,.fad.fa-user-alt:after,.fad.fa-user-large:after{content:"\f406\f406"}.fa-duotone.fa-starship-freighter:after,.fad.fa-starship-freighter:after{content:"\e03a\e03a"}.fa-duotone.fa-train-tram:after,.fad.fa-train-tram:after{content:"\e5b4\e5b4"}.fa-duotone.fa-bridge-suspension:after,.fad.fa-bridge-suspension:after{content:"\e4cd\e4cd"}.fa-duotone.fa-trash-check:after,.fad.fa-trash-check:after{content:"\e2af\e2af"}.fa-duotone.fa-user-nurse:after,.fad.fa-user-nurse:after{content:"\f82f\f82f"}.fa-duotone.fa-boombox:after,.fad.fa-boombox:after{content:"\f8a5\f8a5"}.fa-duotone.fa-syringe:after,.fad.fa-syringe:after{content:"\f48e\f48e"}.fa-duotone.fa-cloud-sun:after,.fad.fa-cloud-sun:after{content:"\f6c4\f6c4"}.fa-duotone.fa-shield-exclamation:after,.fad.fa-shield-exclamation:after{content:"\e247\e247"}.fa-duotone.fa-stopwatch-20:after,.fad.fa-stopwatch-20:after{content:"\e06f\e06f"}.fa-duotone.fa-square-full:after,.fad.fa-square-full:after{content:"\f45c\f45c"}.fa-duotone.fa-grip-dots:after,.fad.fa-grip-dots:after{content:"\e410\e410"}.fa-duotone.fa-comment-exclamation:after,.fad.fa-comment-exclamation:after{content:"\f4af\f4af"}.fa-duotone.fa-pen-swirl:after,.fad.fa-pen-swirl:after{content:"\e214\e214"}.fa-duotone.fa-falafel:after,.fad.fa-falafel:after{content:"\e40a\e40a"}.fa-duotone.fa-circle-2:after,.fad.fa-circle-2:after{content:"\e0ef\e0ef"}.fa-duotone.fa-magnet:after,.fad.fa-magnet:after{content:"\f076\f076"}.fa-duotone.fa-jar:after,.fad.fa-jar:after{content:"\e516\e516"}.fa-duotone.fa-gramophone:after,.fad.fa-gramophone:after{content:"\f8bd\f8bd"}.fa-duotone.fa-dice-d12:after,.fad.fa-dice-d12:after{content:"\f6ce\f6ce"}.fa-duotone.fa-note-sticky:after,.fa-duotone.fa-sticky-note:after,.fad.fa-note-sticky:after,.fad.fa-sticky-note:after{content:"\f249\f249"}.fa-duotone.fa-arrow-alt-down:after,.fa-duotone.fa-down:after,.fad.fa-arrow-alt-down:after,.fad.fa-down:after{content:"\f354\f354"}.fa-duotone.fa-100:after,.fa-duotone.fa-hundred-points:after,.fad.fa-100:after,.fad.fa-hundred-points:after{content:"\e41c\e41c"}.fa-duotone.fa-paperclip-vertical:after,.fad.fa-paperclip-vertical:after{content:"\e3c2\e3c2"}.fa-duotone.fa-wind-circle-exclamation:after,.fa-duotone.fa-wind-warning:after,.fad.fa-wind-circle-exclamation:after,.fad.fa-wind-warning:after{content:"\f776\f776"}.fa-duotone.fa-location-pin-slash:after,.fa-duotone.fa-map-marker-slash:after,.fad.fa-location-pin-slash:after,.fad.fa-map-marker-slash:after{content:"\f60c\f60c"}.fa-duotone.fa-face-sad-sweat:after,.fad.fa-face-sad-sweat:after{content:"\e38a\e38a"}.fa-duotone.fa-bug-slash:after,.fad.fa-bug-slash:after{content:"\e490\e490"}.fa-duotone.fa-cupcake:after,.fad.fa-cupcake:after{content:"\e402\e402"}.fa-duotone.fa-light-switch-off:after,.fad.fa-light-switch-off:after{content:"\e018\e018"}.fa-duotone.fa-toggle-large-off:after,.fad.fa-toggle-large-off:after{content:"\e5b0\e5b0"}.fa-duotone.fa-pen-fancy-slash:after,.fad.fa-pen-fancy-slash:after{content:"\e210\e210"}.fa-duotone.fa-truck-container:after,.fad.fa-truck-container:after{content:"\f4dc\f4dc"}.fa-duotone.fa-boot:after,.fad.fa-boot:after{content:"\f782\f782"}.fa-duotone.fa-arrow-up-from-water-pump:after,.fad.fa-arrow-up-from-water-pump:after{content:"\e4b6\e4b6"}.fa-duotone.fa-file-check:after,.fad.fa-file-check:after{content:"\f316\f316"}.fa-duotone.fa-bone:after,.fad.fa-bone:after{content:"\f5d7\f5d7"}.fa-duotone.fa-cards-blank:after,.fad.fa-cards-blank:after{content:"\e4df\e4df"}.fa-duotone.fa-circle-3:after,.fad.fa-circle-3:after{content:"\e0f0\e0f0"}.fa-duotone.fa-bench-tree:after,.fad.fa-bench-tree:after{content:"\e2e7\e2e7"}.fa-duotone.fa-keyboard-brightness-low:after,.fad.fa-keyboard-brightness-low:after{content:"\e1c1\e1c1"}.fa-duotone.fa-ski-boot-ski:after,.fad.fa-ski-boot-ski:after{content:"\e3cd\e3cd"}.fa-duotone.fa-brain-circuit:after,.fad.fa-brain-circuit:after{content:"\e0c6\e0c6"}.fa-duotone.fa-user-injured:after,.fad.fa-user-injured:after{content:"\f728\f728"}.fa-duotone.fa-block-brick-fire:after,.fa-duotone.fa-firewall:after,.fad.fa-block-brick-fire:after,.fad.fa-firewall:after{content:"\e3dc\e3dc"}.fa-duotone.fa-face-sad-tear:after,.fa-duotone.fa-sad-tear:after,.fad.fa-face-sad-tear:after,.fad.fa-sad-tear:after{content:"\f5b4\f5b4"}.fa-duotone.fa-plane:after,.fad.fa-plane:after{content:"\f072\f072"}.fa-duotone.fa-tent-arrows-down:after,.fad.fa-tent-arrows-down:after{content:"\e581\e581"}.fa-duotone.fa-exclamation:after,.fad.fa-exclamation:after{content:"\21\21"}.fa-duotone.fa-arrows-spin:after,.fad.fa-arrows-spin:after{content:"\e4bb\e4bb"}.fa-duotone.fa-face-smile-relaxed:after,.fad.fa-face-smile-relaxed:after{content:"\e392\e392"}.fa-duotone.fa-comment-times:after,.fa-duotone.fa-comment-xmark:after,.fad.fa-comment-times:after,.fad.fa-comment-xmark:after{content:"\f4b5\f4b5"}.fa-duotone.fa-print:after,.fad.fa-print:after{content:"\f02f\f02f"}.fa-duotone.fa-try:after,.fa-duotone.fa-turkish-lira-sign:after,.fa-duotone.fa-turkish-lira:after,.fad.fa-try:after,.fad.fa-turkish-lira-sign:after,.fad.fa-turkish-lira:after{content:"\e2bb\e2bb"}.fa-duotone.fa-face-nose-steam:after,.fad.fa-face-nose-steam:after{content:"\e382\e382"}.fa-duotone.fa-circle-waveform-lines:after,.fa-duotone.fa-waveform-circle:after,.fad.fa-circle-waveform-lines:after,.fad.fa-waveform-circle:after{content:"\e12d\e12d"}.fa-duotone.fa-dollar-sign:after,.fa-duotone.fa-dollar:after,.fa-duotone.fa-usd:after,.fad.fa-dollar-sign:after,.fad.fa-dollar:after,.fad.fa-usd:after{content:"\24\24"}.fa-duotone.fa-ferris-wheel:after,.fad.fa-ferris-wheel:after{content:"\e174\e174"}.fa-duotone.fa-computer-speaker:after,.fad.fa-computer-speaker:after{content:"\f8b2\f8b2"}.fa-duotone.fa-skull-cow:after,.fad.fa-skull-cow:after{content:"\f8de\f8de"}.fa-duotone.fa-x:after,.fad.fa-x:after{content:"\58\58"}.fa-duotone.fa-magnifying-glass-dollar:after,.fa-duotone.fa-search-dollar:after,.fad.fa-magnifying-glass-dollar:after,.fad.fa-search-dollar:after{content:"\f688\f688"}.fa-duotone.fa-users-cog:after,.fa-duotone.fa-users-gear:after,.fad.fa-users-cog:after,.fad.fa-users-gear:after{content:"\f509\f509"}.fa-duotone.fa-person-military-pointing:after,.fad.fa-person-military-pointing:after{content:"\e54a\e54a"}.fa-duotone.fa-bank:after,.fa-duotone.fa-building-columns:after,.fa-duotone.fa-institution:after,.fa-duotone.fa-museum:after,.fa-duotone.fa-university:after,.fad.fa-bank:after,.fad.fa-building-columns:after,.fad.fa-institution:after,.fad.fa-museum:after,.fad.fa-university:after{content:"\f19c\f19c"}.fa-duotone.fa-circle-t:after,.fad.fa-circle-t:after{content:"\e124\e124"}.fa-duotone.fa-sack:after,.fad.fa-sack:after{content:"\f81c\f81c"}.fa-duotone.fa-grid-2:after,.fad.fa-grid-2:after{content:"\e196\e196"}.fa-duotone.fa-camera-cctv:after,.fa-duotone.fa-cctv:after,.fad.fa-camera-cctv:after,.fad.fa-cctv:after{content:"\f8ac\f8ac"}.fa-duotone.fa-umbrella:after,.fad.fa-umbrella:after{content:"\f0e9\f0e9"}.fa-duotone.fa-trowel:after,.fad.fa-trowel:after{content:"\e589\e589"}.fa-duotone.fa-horizontal-rule:after,.fad.fa-horizontal-rule:after{content:"\f86c\f86c"}.fa-duotone.fa-bed-alt:after,.fa-duotone.fa-bed-front:after,.fad.fa-bed-alt:after,.fad.fa-bed-front:after{content:"\f8f7\f8f7"}.fa-duotone.fa-d:after,.fad.fa-d:after{content:"\44\44"}.fa-duotone.fa-stapler:after,.fad.fa-stapler:after{content:"\e5af\e5af"}.fa-duotone.fa-masks-theater:after,.fa-duotone.fa-theater-masks:after,.fad.fa-masks-theater:after,.fad.fa-theater-masks:after{content:"\f630\f630"}.fa-duotone.fa-file-gif:after,.fad.fa-file-gif:after{content:"\e645\e645"}.fa-duotone.fa-kip-sign:after,.fad.fa-kip-sign:after{content:"\e1c4\e1c4"}.fa-duotone.fa-face-woozy:after,.fad.fa-face-woozy:after{content:"\e3a2\e3a2"}.fa-duotone.fa-cloud-question:after,.fad.fa-cloud-question:after{content:"\e492\e492"}.fa-duotone.fa-pineapple:after,.fad.fa-pineapple:after{content:"\e31f\e31f"}.fa-duotone.fa-hand-point-left:after,.fad.fa-hand-point-left:after{content:"\f0a5\f0a5"}.fa-duotone.fa-gallery-thumbnails:after,.fad.fa-gallery-thumbnails:after{content:"\e3aa\e3aa"}.fa-duotone.fa-circle-j:after,.fad.fa-circle-j:after{content:"\e112\e112"}.fa-duotone.fa-eyes:after,.fad.fa-eyes:after{content:"\e367\e367"}.fa-duotone.fa-handshake-alt:after,.fa-duotone.fa-handshake-simple:after,.fad.fa-handshake-alt:after,.fad.fa-handshake-simple:after{content:"\f4c6\f4c6"}.fa-duotone.fa-file-caret-up:after,.fa-duotone.fa-page-caret-up:after,.fad.fa-file-caret-up:after,.fad.fa-page-caret-up:after{content:"\e42a\e42a"}.fa-duotone.fa-fighter-jet:after,.fa-duotone.fa-jet-fighter:after,.fad.fa-fighter-jet:after,.fad.fa-jet-fighter:after{content:"\f0fb\f0fb"}.fa-duotone.fa-comet:after,.fad.fa-comet:after{content:"\e003\e003"}.fa-duotone.fa-share-alt-square:after,.fa-duotone.fa-square-share-nodes:after,.fad.fa-share-alt-square:after,.fad.fa-square-share-nodes:after{content:"\f1e1\f1e1"}.fa-duotone.fa-reflect-vertical:after,.fad.fa-reflect-vertical:after{content:"\e665\e665"}.fa-duotone.fa-shield-keyhole:after,.fad.fa-shield-keyhole:after{content:"\e248\e248"}.fa-duotone.fa-file-mp4:after,.fad.fa-file-mp4:after{content:"\e649\e649"}.fa-duotone.fa-barcode:after,.fad.fa-barcode:after{content:"\f02a\f02a"}.fa-duotone.fa-bulldozer:after,.fad.fa-bulldozer:after{content:"\e655\e655"}.fa-duotone.fa-plus-minus:after,.fad.fa-plus-minus:after{content:"\e43c\e43c"}.fa-duotone.fa-sliders-v-square:after,.fa-duotone.fa-square-sliders-vertical:after,.fad.fa-sliders-v-square:after,.fad.fa-square-sliders-vertical:after{content:"\f3f2\f3f2"}.fa-duotone.fa-video-camera:after,.fa-duotone.fa-video:after,.fad.fa-video-camera:after,.fad.fa-video:after{content:"\f03d\f03d"}.fa-duotone.fa-comment-middle-alt:after,.fa-duotone.fa-message-middle:after,.fad.fa-comment-middle-alt:after,.fad.fa-message-middle:after{content:"\e1e1\e1e1"}.fa-duotone.fa-graduation-cap:after,.fa-duotone.fa-mortar-board:after,.fad.fa-graduation-cap:after,.fad.fa-mortar-board:after{content:"\f19d\f19d"}.fa-duotone.fa-hand-holding-medical:after,.fad.fa-hand-holding-medical:after{content:"\e05c\e05c"}.fa-duotone.fa-person-circle-check:after,.fad.fa-person-circle-check:after{content:"\e53e\e53e"}.fa-duotone.fa-square-z:after,.fad.fa-square-z:after{content:"\e288\e288"}.fa-duotone.fa-comment-alt-text:after,.fa-duotone.fa-message-text:after,.fad.fa-comment-alt-text:after,.fad.fa-message-text:after{content:"\e1e6\e1e6"}.fa-duotone.fa-level-up-alt:after,.fa-duotone.fa-turn-up:after,.fad.fa-level-up-alt:after,.fad.fa-turn-up:after{content:"\f3bf\f3bf"}:host,:root{--fa-font-light:normal 300 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:300;font-display:block;src:url(../webfonts/fa-light-300.woff2) format("woff2"),url(../webfonts/fa-light-300.ttf) format("truetype")}.fa-light,.fal{font-weight:300}:host,:root{--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}.fa-regular,.far{font-weight:400}:host,:root{--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900}:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-thin:normal 100 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:100;font-display:block;src:url(../webfonts/fa-thin-100.woff2) format("woff2"),url(../webfonts/fa-thin-100.ttf) format("truetype")}.fa-thin,.fat{font-weight:100}@font-face{font-family:"Font Awesome 5 Brands";font-display:block;font-weight:400;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Pro";font-display:block;font-weight:900;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Pro";font-display:block;font-weight:400;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Pro";font-display:block;font-weight:300;src:url(../webfonts/fa-light-300.woff2) format("woff2"),url(../webfonts/fa-light-300.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Duotone";font-display:block;font-weight:900;src:url(../webfonts/fa-duotone-900.woff2) format("woff2"),url(../webfonts/fa-duotone-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-v4compatibility.woff2) format("woff2"),url(../webfonts/fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a} \ No newline at end of file diff --git a/wp-content/themes/abiz/assets/css/animate.css b/wp-content/themes/abiz/assets/css/animate.css new file mode 100644 index 0000000..db06371 --- /dev/null +++ b/wp-content/themes/abiz/assets/css/animate.css @@ -0,0 +1,3138 @@ +/*! + * animate.css -http://daneden.me/animate + * Version - 3.5.1 + * Licensed under the MIT license - http://opensource.org/licenses/MIT + * + * Copyright (c) 2016 Daniel Eden + */ + +.animated { + -webkit-animation-duration: 1s; + animation-duration: 1s; + -webkit-animation-fill-mode: both; + animation-fill-mode: both +} + +.animated.infinite { + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite +} + +.animated.hinge { + -webkit-animation-duration: 2s; + animation-duration: 2s +} + +.animated.flipOutX, +.animated.flipOutY, +.animated.bounceIn, +.animated.bounceOut { + -webkit-animation-duration: .75s; + animation-duration: .75s +} + +@-webkit-keyframes bounce { + from, + 20%, + 53%, + 80%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0) + } + 40%, + 43% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + -webkit-transform: translate3d(0, -30px, 0); + transform: translate3d(0, -30px, 0) + } + 70% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + -webkit-transform: translate3d(0, -15px, 0); + transform: translate3d(0, -15px, 0) + } + 90% { + -webkit-transform: translate3d(0, -4px, 0); + transform: translate3d(0, -4px, 0) + } +} + +@keyframes bounce { + from, + 20%, + 53%, + 80%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0) + } + 40%, + 43% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + -webkit-transform: translate3d(0, -30px, 0); + transform: translate3d(0, -30px, 0) + } + 70% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + -webkit-transform: translate3d(0, -15px, 0); + transform: translate3d(0, -15px, 0) + } + 90% { + -webkit-transform: translate3d(0, -4px, 0); + transform: translate3d(0, -4px, 0) + } +} + +.bounce { + -webkit-animation-name: bounce; + animation-name: bounce; + -webkit-transform-origin: center bottom; + transform-origin: center bottom +} + +@-webkit-keyframes flash { + from, + 50%, + to { + opacity: 1 + } + 25%, + 75% { + opacity: 0 + } +} + +@keyframes flash { + from, + 50%, + to { + opacity: 1 + } + 25%, + 75% { + opacity: 0 + } +} + +.flash { + -webkit-animation-name: flash; + animation-name: flash +} + +@-webkit-keyframes pulse { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1) + } + 50% { + -webkit-transform: scale3d(1.05, 1.05, 1.05); + transform: scale3d(1.05, 1.05, 1.05) + } + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1) + } +} + +@keyframes pulse { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1) + } + 50% { + -webkit-transform: scale3d(1.05, 1.05, 1.05); + transform: scale3d(1.05, 1.05, 1.05) + } + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1) + } +} + +.pulse { + -webkit-animation-name: pulse; + animation-name: pulse +} + +@-webkit-keyframes rubberBand { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1) + } + 30% { + -webkit-transform: scale3d(1.25, 0.75, 1); + transform: scale3d(1.25, 0.75, 1) + } + 40% { + -webkit-transform: scale3d(0.75, 1.25, 1); + transform: scale3d(0.75, 1.25, 1) + } + 50% { + -webkit-transform: scale3d(1.15, 0.85, 1); + transform: scale3d(1.15, 0.85, 1) + } + 65% { + -webkit-transform: scale3d(.95, 1.05, 1); + transform: scale3d(.95, 1.05, 1) + } + 75% { + -webkit-transform: scale3d(1.05, .95, 1); + transform: scale3d(1.05, .95, 1) + } + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1) + } +} + +@keyframes rubberBand { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1) + } + 30% { + -webkit-transform: scale3d(1.25, 0.75, 1); + transform: scale3d(1.25, 0.75, 1) + } + 40% { + -webkit-transform: scale3d(0.75, 1.25, 1); + transform: scale3d(0.75, 1.25, 1) + } + 50% { + -webkit-transform: scale3d(1.15, 0.85, 1); + transform: scale3d(1.15, 0.85, 1) + } + 65% { + -webkit-transform: scale3d(.95, 1.05, 1); + transform: scale3d(.95, 1.05, 1) + } + 75% { + -webkit-transform: scale3d(1.05, .95, 1); + transform: scale3d(1.05, .95, 1) + } + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1) + } +} + +.rubberBand { + -webkit-animation-name: rubberBand; + animation-name: rubberBand +} + +@-webkit-keyframes shake { + from, + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0) + } + 10%, + 30%, + 50%, + 70%, + 90% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0) + } + 20%, + 40%, + 60%, + 80% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0) + } +} + +@keyframes shake { + from, + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0) + } + 10%, + 30%, + 50%, + 70%, + 90% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0) + } + 20%, + 40%, + 60%, + 80% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0) + } +} + +.shake { + -webkit-animation-name: shake; + animation-name: shake +} + +@-webkit-keyframes headShake { + 0% { + -webkit-transform: translateX(0); + transform: translateX(0) + } + 6.5% { + -webkit-transform: translateX(-6px) rotateY(-9deg); + transform: translateX(-6px) rotateY(-9deg) + } + 18.5% { + -webkit-transform: translateX(5px) rotateY(7deg); + transform: translateX(5px) rotateY(7deg) + } + 31.5% { + -webkit-transform: translateX(-3px) rotateY(-5deg); + transform: translateX(-3px) rotateY(-5deg) + } + 43.5% { + -webkit-transform: translateX(2px) rotateY(3deg); + transform: translateX(2px) rotateY(3deg) + } + 50% { + -webkit-transform: translateX(0); + transform: translateX(0) + } +} + +@keyframes headShake { + 0% { + -webkit-transform: translateX(0); + transform: translateX(0) + } + 6.5% { + -webkit-transform: translateX(-6px) rotateY(-9deg); + transform: translateX(-6px) rotateY(-9deg) + } + 18.5% { + -webkit-transform: translateX(5px) rotateY(7deg); + transform: translateX(5px) rotateY(7deg) + } + 31.5% { + -webkit-transform: translateX(-3px) rotateY(-5deg); + transform: translateX(-3px) rotateY(-5deg) + } + 43.5% { + -webkit-transform: translateX(2px) rotateY(3deg); + transform: translateX(2px) rotateY(3deg) + } + 50% { + -webkit-transform: translateX(0); + transform: translateX(0) + } +} + +.headShake { + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + -webkit-animation-name: headShake; + animation-name: headShake +} + +@-webkit-keyframes swing { + 20% { + -webkit-transform: rotate3d(0, 0, 1, 15deg); + transform: rotate3d(0, 0, 1, 15deg) + } + 40% { + -webkit-transform: rotate3d(0, 0, 1, -10deg); + transform: rotate3d(0, 0, 1, -10deg) + } + 60% { + -webkit-transform: rotate3d(0, 0, 1, 5deg); + transform: rotate3d(0, 0, 1, 5deg) + } + 80% { + -webkit-transform: rotate3d(0, 0, 1, -5deg); + transform: rotate3d(0, 0, 1, -5deg) + } + to { + -webkit-transform: rotate3d(0, 0, 1, 0deg); + transform: rotate3d(0, 0, 1, 0deg) + } +} + +@keyframes swing { + 20% { + -webkit-transform: rotate3d(0, 0, 1, 15deg); + transform: rotate3d(0, 0, 1, 15deg) + } + 40% { + -webkit-transform: rotate3d(0, 0, 1, -10deg); + transform: rotate3d(0, 0, 1, -10deg) + } + 60% { + -webkit-transform: rotate3d(0, 0, 1, 5deg); + transform: rotate3d(0, 0, 1, 5deg) + } + 80% { + -webkit-transform: rotate3d(0, 0, 1, -5deg); + transform: rotate3d(0, 0, 1, -5deg) + } + to { + -webkit-transform: rotate3d(0, 0, 1, 0deg); + transform: rotate3d(0, 0, 1, 0deg) + } +} + +.swing { + -webkit-transform-origin: top center; + transform-origin: top center; + -webkit-animation-name: swing; + animation-name: swing +} + +@-webkit-keyframes tada { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1) + } + 10%, + 20% { + -webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg); + transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg) + } + 30%, + 50%, + 70%, + 90% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg) + } + 40%, + 60%, + 80% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg) + } + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1) + } +} + +@keyframes tada { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1) + } + 10%, + 20% { + -webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg); + transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg) + } + 30%, + 50%, + 70%, + 90% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg) + } + 40%, + 60%, + 80% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg) + } + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1) + } +} + +.tada { + -webkit-animation-name: tada; + animation-name: tada +} + +@-webkit-keyframes wobble { + from { + -webkit-transform: none; + transform: none + } + 15% { + -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg) + } + 30% { + -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg) + } + 45% { + -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg) + } + 60% { + -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg) + } + 75% { + -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg) + } + to { + -webkit-transform: none; + transform: none + } +} + +@keyframes wobble { + from { + -webkit-transform: none; + transform: none + } + 15% { + -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg) + } + 30% { + -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg) + } + 45% { + -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg) + } + 60% { + -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg) + } + 75% { + -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg) + } + to { + -webkit-transform: none; + transform: none + } +} + +.wobble { + -webkit-animation-name: wobble; + animation-name: wobble +} + +@-webkit-keyframes jello { + from, + 11.1%, + to { + -webkit-transform: none; + transform: none + } + 22.2% { + -webkit-transform: skewX(-12.5deg) skewY(-12.5deg); + transform: skewX(-12.5deg) skewY(-12.5deg) + } + 33.3% { + -webkit-transform: skewX(6.25deg) skewY(6.25deg); + transform: skewX(6.25deg) skewY(6.25deg) + } + 44.4% { + -webkit-transform: skewX(-3.125deg) skewY(-3.125deg); + transform: skewX(-3.125deg) skewY(-3.125deg) + } + 55.5% { + -webkit-transform: skewX(1.5625deg) skewY(1.5625deg); + transform: skewX(1.5625deg) skewY(1.5625deg) + } + 66.6% { + -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg); + transform: skewX(-0.78125deg) skewY(-0.78125deg) + } + 77.7% { + -webkit-transform: skewX(0.390625deg) skewY(0.390625deg); + transform: skewX(0.390625deg) skewY(0.390625deg) + } + 88.8% { + -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg); + transform: skewX(-0.1953125deg) skewY(-0.1953125deg) + } +} + +@keyframes jello { + from, + 11.1%, + to { + -webkit-transform: none; + transform: none + } + 22.2% { + -webkit-transform: skewX(-12.5deg) skewY(-12.5deg); + transform: skewX(-12.5deg) skewY(-12.5deg) + } + 33.3% { + -webkit-transform: skewX(6.25deg) skewY(6.25deg); + transform: skewX(6.25deg) skewY(6.25deg) + } + 44.4% { + -webkit-transform: skewX(-3.125deg) skewY(-3.125deg); + transform: skewX(-3.125deg) skewY(-3.125deg) + } + 55.5% { + -webkit-transform: skewX(1.5625deg) skewY(1.5625deg); + transform: skewX(1.5625deg) skewY(1.5625deg) + } + 66.6% { + -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg); + transform: skewX(-0.78125deg) skewY(-0.78125deg) + } + 77.7% { + -webkit-transform: skewX(0.390625deg) skewY(0.390625deg); + transform: skewX(0.390625deg) skewY(0.390625deg) + } + 88.8% { + -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg); + transform: skewX(-0.1953125deg) skewY(-0.1953125deg) + } +} + +.jello { + -webkit-animation-name: jello; + animation-name: jello; + -webkit-transform-origin: center; + transform-origin: center +} + +@-webkit-keyframes bounceIn { + from, + 20%, + 40%, + 60%, + 80%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000) + } + 0% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3) + } + 20% { + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1) + } + 40% { + -webkit-transform: scale3d(.9, .9, .9); + transform: scale3d(.9, .9, .9) + } + 60% { + opacity: 1; + -webkit-transform: scale3d(1.03, 1.03, 1.03); + transform: scale3d(1.03, 1.03, 1.03) + } + 80% { + -webkit-transform: scale3d(.97, .97, .97); + transform: scale3d(.97, .97, .97) + } + to { + opacity: 1; + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1) + } +} + +@keyframes bounceIn { + from, + 20%, + 40%, + 60%, + 80%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000) + } + 0% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3) + } + 20% { + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1) + } + 40% { + -webkit-transform: scale3d(.9, .9, .9); + transform: scale3d(.9, .9, .9) + } + 60% { + opacity: 1; + -webkit-transform: scale3d(1.03, 1.03, 1.03); + transform: scale3d(1.03, 1.03, 1.03) + } + 80% { + -webkit-transform: scale3d(.97, .97, .97); + transform: scale3d(.97, .97, .97) + } + to { + opacity: 1; + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1) + } +} + +.bounceIn { + -webkit-animation-name: bounceIn; + animation-name: bounceIn +} + +@-webkit-keyframes bounceInDown { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000) + } + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -3000px, 0); + transform: translate3d(0, -3000px, 0) + } + 60% { + opacity: 1; + -webkit-transform: translate3d(0, 25px, 0); + transform: translate3d(0, 25px, 0) + } + 75% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0) + } + 90% { + -webkit-transform: translate3d(0, 5px, 0); + transform: translate3d(0, 5px, 0) + } + to { + -webkit-transform: none; + transform: none + } +} + +@keyframes bounceInDown { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000) + } + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -3000px, 0); + transform: translate3d(0, -3000px, 0) + } + 60% { + opacity: 1; + -webkit-transform: translate3d(0, 25px, 0); + transform: translate3d(0, 25px, 0) + } + 75% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0) + } + 90% { + -webkit-transform: translate3d(0, 5px, 0); + transform: translate3d(0, 5px, 0) + } + to { + -webkit-transform: none; + transform: none + } +} + +.bounceInDown { + -webkit-animation-name: bounceInDown; + animation-name: bounceInDown +} + +@-webkit-keyframes bounceInLeft { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000) + } + 0% { + opacity: 0; + -webkit-transform: translate3d(-3000px, 0, 0); + transform: translate3d(-3000px, 0, 0) + } + 60% { + opacity: 1; + -webkit-transform: translate3d(25px, 0, 0); + transform: translate3d(25px, 0, 0) + } + 75% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0) + } + 90% { + -webkit-transform: translate3d(5px, 0, 0); + transform: translate3d(5px, 0, 0) + } + to { + -webkit-transform: none; + transform: none + } +} + +@keyframes bounceInLeft { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000) + } + 0% { + opacity: 0; + -webkit-transform: translate3d(-3000px, 0, 0); + transform: translate3d(-3000px, 0, 0) + } + 60% { + opacity: 1; + -webkit-transform: translate3d(25px, 0, 0); + transform: translate3d(25px, 0, 0) + } + 75% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0) + } + 90% { + -webkit-transform: translate3d(5px, 0, 0); + transform: translate3d(5px, 0, 0) + } + to { + -webkit-transform: none; + transform: none + } +} + +.bounceInLeft { + -webkit-animation-name: bounceInLeft; + animation-name: bounceInLeft +} + +@-webkit-keyframes bounceInRight { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000) + } + from { + opacity: 0; + -webkit-transform: translate3d(3000px, 0, 0); + transform: translate3d(3000px, 0, 0) + } + 60% { + opacity: 1; + -webkit-transform: translate3d(-25px, 0, 0); + transform: translate3d(-25px, 0, 0) + } + 75% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0) + } + 90% { + -webkit-transform: translate3d(-5px, 0, 0); + transform: translate3d(-5px, 0, 0) + } + to { + -webkit-transform: none; + transform: none + } +} + +@keyframes bounceInRight { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000) + } + from { + opacity: 0; + -webkit-transform: translate3d(3000px, 0, 0); + transform: translate3d(3000px, 0, 0) + } + 60% { + opacity: 1; + -webkit-transform: translate3d(-25px, 0, 0); + transform: translate3d(-25px, 0, 0) + } + 75% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0) + } + 90% { + -webkit-transform: translate3d(-5px, 0, 0); + transform: translate3d(-5px, 0, 0) + } + to { + -webkit-transform: none; + transform: none + } +} + +.bounceInRight { + -webkit-animation-name: bounceInRight; + animation-name: bounceInRight +} + +@-webkit-keyframes bounceInUp { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000) + } + from { + opacity: 0; + -webkit-transform: translate3d(0, 3000px, 0); + transform: translate3d(0, 3000px, 0) + } + 60% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0) + } + 75% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0) + } + 90% { + -webkit-transform: translate3d(0, -5px, 0); + transform: translate3d(0, -5px, 0) + } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0) + } +} + +@keyframes bounceInUp { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000) + } + from { + opacity: 0; + -webkit-transform: translate3d(0, 3000px, 0); + transform: translate3d(0, 3000px, 0) + } + 60% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0) + } + 75% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0) + } + 90% { + -webkit-transform: translate3d(0, -5px, 0); + transform: translate3d(0, -5px, 0) + } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0) + } +} + +.bounceInUp { + -webkit-animation-name: bounceInUp; + animation-name: bounceInUp +} + +@-webkit-keyframes bounceOut { + 20% { + -webkit-transform: scale3d(.9, .9, .9); + transform: scale3d(.9, .9, .9) + } + 50%, + 55% { + opacity: 1; + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1) + } + to { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3) + } +} + +@keyframes bounceOut { + 20% { + -webkit-transform: scale3d(.9, .9, .9); + transform: scale3d(.9, .9, .9) + } + 50%, + 55% { + opacity: 1; + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1) + } + to { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3) + } +} + +.bounceOut { + -webkit-animation-name: bounceOut; + animation-name: bounceOut +} + +@-webkit-keyframes bounceOutDown { + 20% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0) + } + 40%, + 45% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0) + } + to { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0) + } +} + +@keyframes bounceOutDown { + 20% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0) + } + 40%, + 45% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0) + } + to { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0) + } +} + +.bounceOutDown { + -webkit-animation-name: bounceOutDown; + animation-name: bounceOutDown +} + +@-webkit-keyframes bounceOutLeft { + 20% { + opacity: 1; + -webkit-transform: translate3d(20px, 0, 0); + transform: translate3d(20px, 0, 0) + } + to { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0) + } +} + +@keyframes bounceOutLeft { + 20% { + opacity: 1; + -webkit-transform: translate3d(20px, 0, 0); + transform: translate3d(20px, 0, 0) + } + to { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0) + } +} + +.bounceOutLeft { + -webkit-animation-name: bounceOutLeft; + animation-name: bounceOutLeft +} + +@-webkit-keyframes bounceOutRight { + 20% { + opacity: 1; + -webkit-transform: translate3d(-20px, 0, 0); + transform: translate3d(-20px, 0, 0) + } + to { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0) + } +} + +@keyframes bounceOutRight { + 20% { + opacity: 1; + -webkit-transform: translate3d(-20px, 0, 0); + transform: translate3d(-20px, 0, 0) + } + to { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0) + } +} + +.bounceOutRight { + -webkit-animation-name: bounceOutRight; + animation-name: bounceOutRight +} + +@-webkit-keyframes bounceOutUp { + 20% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0) + } + 40%, + 45% { + opacity: 1; + -webkit-transform: translate3d(0, 20px, 0); + transform: translate3d(0, 20px, 0) + } + to { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0) + } +} + +@keyframes bounceOutUp { + 20% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0) + } + 40%, + 45% { + opacity: 1; + -webkit-transform: translate3d(0, 20px, 0); + transform: translate3d(0, 20px, 0) + } + to { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0) + } +} + +.bounceOutUp { + -webkit-animation-name: bounceOutUp; + animation-name: bounceOutUp +} + +@-webkit-keyframes fadeIn { + from { + opacity: 0 + } + to { + opacity: 1 + } +} + +@keyframes fadeIn { + from { + opacity: 0 + } + to { + opacity: 1 + } +} + +.fadeIn { + -webkit-animation-name: fadeIn; + animation-name: fadeIn +} + +@-webkit-keyframes fadeInDown { + from { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0) + } + to { + opacity: 1; + -webkit-transform: none; + transform: none + } +} + +@keyframes fadeInDown { + from { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0) + } + to { + opacity: 1; + -webkit-transform: none; + transform: none + } +} + +.fadeInDown { + -webkit-animation-name: fadeInDown; + animation-name: fadeInDown +} + +@-webkit-keyframes fadeInDownBig { + from { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0) + } + to { + opacity: 1; + -webkit-transform: none; + transform: none + } +} + +@keyframes fadeInDownBig { + from { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0) + } + to { + opacity: 1; + -webkit-transform: none; + transform: none + } +} + +.fadeInDownBig { + -webkit-animation-name: fadeInDownBig; + animation-name: fadeInDownBig +} + +@-webkit-keyframes fadeInLeft { + from { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0) + } + to { + opacity: 1; + -webkit-transform: none; + transform: none + } +} + +@keyframes fadeInLeft { + from { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0) + } + to { + opacity: 1; + -webkit-transform: none; + transform: none + } +} + +.fadeInLeft { + -webkit-animation-name: fadeInLeft; + animation-name: fadeInLeft +} + +@-webkit-keyframes fadeInLeftBig { + from { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0) + } + to { + opacity: 1; + -webkit-transform: none; + transform: none + } +} + +@keyframes fadeInLeftBig { + from { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0) + } + to { + opacity: 1; + -webkit-transform: none; + transform: none + } +} + +.fadeInLeftBig { + -webkit-animation-name: fadeInLeftBig; + animation-name: fadeInLeftBig +} + +@-webkit-keyframes fadeInRight { + from { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0) + } + to { + opacity: 1; + -webkit-transform: none; + transform: none + } +} + +@keyframes fadeInRight { + from { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0) + } + to { + opacity: 1; + -webkit-transform: none; + transform: none + } +} + +.fadeInRight { + -webkit-animation-name: fadeInRight; + animation-name: fadeInRight +} + +@-webkit-keyframes fadeInRightBig { + from { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0) + } + to { + opacity: 1; + -webkit-transform: none; + transform: none + } +} + +@keyframes fadeInRightBig { + from { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0) + } + to { + opacity: 1; + -webkit-transform: none; + transform: none + } +} + +.fadeInRightBig { + -webkit-animation-name: fadeInRightBig; + animation-name: fadeInRightBig +} + +@-webkit-keyframes fadeInUp { + from { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0) + } + to { + opacity: 1; + -webkit-transform: none; + transform: none + } +} + +@keyframes fadeInUp { + from { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0) + } + to { + opacity: 1; + -webkit-transform: none; + transform: none + } +} + +.fadeInUp { + -webkit-animation-name: fadeInUp; + animation-name: fadeInUp +} + +@-webkit-keyframes fadeInUpBig { + from { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0) + } + to { + opacity: 1; + -webkit-transform: none; + transform: none + } +} + +@keyframes fadeInUpBig { + from { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0) + } + to { + opacity: 1; + -webkit-transform: none; + transform: none + } +} + +.fadeInUpBig { + -webkit-animation-name: fadeInUpBig; + animation-name: fadeInUpBig +} + +@-webkit-keyframes fadeOut { + from { + opacity: 1 + } + to { + opacity: 0 + } +} + +@keyframes fadeOut { + from { + opacity: 1 + } + to { + opacity: 0 + } +} + +.fadeOut { + -webkit-animation-name: fadeOut; + animation-name: fadeOut +} + +@-webkit-keyframes fadeOutDown { + from { + opacity: 1 + } + to { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0) + } +} + +@keyframes fadeOutDown { + from { + opacity: 1 + } + to { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0) + } +} + +.fadeOutDown { + -webkit-animation-name: fadeOutDown; + animation-name: fadeOutDown +} + +@-webkit-keyframes fadeOutDownBig { + from { + opacity: 1 + } + to { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0) + } +} + +@keyframes fadeOutDownBig { + from { + opacity: 1 + } + to { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0) + } +} + +.fadeOutDownBig { + -webkit-animation-name: fadeOutDownBig; + animation-name: fadeOutDownBig +} + +@-webkit-keyframes fadeOutLeft { + from { + opacity: 1 + } + to { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0) + } +} + +@keyframes fadeOutLeft { + from { + opacity: 1 + } + to { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0) + } +} + +.fadeOutLeft { + -webkit-animation-name: fadeOutLeft; + animation-name: fadeOutLeft +} + +@-webkit-keyframes fadeOutLeftBig { + from { + opacity: 1 + } + to { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0) + } +} + +@keyframes fadeOutLeftBig { + from { + opacity: 1 + } + to { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0) + } +} + +.fadeOutLeftBig { + -webkit-animation-name: fadeOutLeftBig; + animation-name: fadeOutLeftBig +} + +@-webkit-keyframes fadeOutRight { + from { + opacity: 1 + } + to { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0) + } +} + +@keyframes fadeOutRight { + from { + opacity: 1 + } + to { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0) + } +} + +.fadeOutRight { + -webkit-animation-name: fadeOutRight; + animation-name: fadeOutRight +} + +@-webkit-keyframes fadeOutRightBig { + from { + opacity: 1 + } + to { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0) + } +} + +@keyframes fadeOutRightBig { + from { + opacity: 1 + } + to { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0) + } +} + +.fadeOutRightBig { + -webkit-animation-name: fadeOutRightBig; + animation-name: fadeOutRightBig +} + +@-webkit-keyframes fadeOutUp { + from { + opacity: 1 + } + to { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0) + } +} + +@keyframes fadeOutUp { + from { + opacity: 1 + } + to { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0) + } +} + +.fadeOutUp { + -webkit-animation-name: fadeOutUp; + animation-name: fadeOutUp +} + +@-webkit-keyframes fadeOutUpBig { + from { + opacity: 1 + } + to { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0) + } +} + +@keyframes fadeOutUpBig { + from { + opacity: 1 + } + to { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0) + } +} + +.fadeOutUpBig { + -webkit-animation-name: fadeOutUpBig; + animation-name: fadeOutUpBig +} + +@-webkit-keyframes flip { + from { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg); + transform: perspective(400px) rotate3d(0, 1, 0, -360deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out + } + 40% { + -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); + transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out + } + 50% { + -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); + transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in + } + 80% { + -webkit-transform: perspective(400px) scale3d(.95, .95, .95); + transform: perspective(400px) scale3d(.95, .95, .95); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in + } + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in + } +} + +@keyframes flip { + from { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg); + transform: perspective(400px) rotate3d(0, 1, 0, -360deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out + } + 40% { + -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); + transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out + } + 50% { + -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); + transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in + } + 80% { + -webkit-transform: perspective(400px) scale3d(.95, .95, .95); + transform: perspective(400px) scale3d(.95, .95, .95); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in + } + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in + } +} + +.animated.flip { + -webkit-backface-visibility: visible; + backface-visibility: visible; + -webkit-animation-name: flip; + animation-name: flip +} + +@-webkit-keyframes flipInX { + from { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0 + } + 40% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in + } + 60% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + opacity: 1 + } + 80% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + transform: perspective(400px) rotate3d(1, 0, 0, -5deg) + } + to { + -webkit-transform: perspective(400px); + transform: perspective(400px) + } +} + +@keyframes flipInX { + from { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0 + } + 40% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in + } + 60% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + opacity: 1 + } + 80% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + transform: perspective(400px) rotate3d(1, 0, 0, -5deg) + } + to { + -webkit-transform: perspective(400px); + transform: perspective(400px) + } +} + +.flipInX { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipInX; + animation-name: flipInX +} + +@-webkit-keyframes flipInY { + from { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0 + } + 40% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in + } + 60% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + opacity: 1 + } + 80% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + transform: perspective(400px) rotate3d(0, 1, 0, -5deg) + } + to { + -webkit-transform: perspective(400px); + transform: perspective(400px) + } +} + +@keyframes flipInY { + from { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0 + } + 40% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in + } + 60% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + opacity: 1 + } + 80% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + transform: perspective(400px) rotate3d(0, 1, 0, -5deg) + } + to { + -webkit-transform: perspective(400px); + transform: perspective(400px) + } +} + +.flipInY { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipInY; + animation-name: flipInY +} + +@-webkit-keyframes flipOutX { + from { + -webkit-transform: perspective(400px); + transform: perspective(400px) + } + 30% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + opacity: 1 + } + to { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + opacity: 0 + } +} + +@keyframes flipOutX { + from { + -webkit-transform: perspective(400px); + transform: perspective(400px) + } + 30% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + opacity: 1 + } + to { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + opacity: 0 + } +} + +.flipOutX { + -webkit-animation-name: flipOutX; + animation-name: flipOutX; + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important +} + +@-webkit-keyframes flipOutY { + from { + -webkit-transform: perspective(400px); + transform: perspective(400px) + } + 30% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + opacity: 1 + } + to { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + opacity: 0 + } +} + +@keyframes flipOutY { + from { + -webkit-transform: perspective(400px); + transform: perspective(400px) + } + 30% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + opacity: 1 + } + to { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + opacity: 0 + } +} + +.flipOutY { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipOutY; + animation-name: flipOutY +} + +@-webkit-keyframes lightSpeedIn { + from { + -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg); + transform: translate3d(100%, 0, 0) skewX(-30deg); + opacity: 0 + } + 60% { + -webkit-transform: skewX(20deg); + transform: skewX(20deg); + opacity: 1 + } + 80% { + -webkit-transform: skewX(-5deg); + transform: skewX(-5deg); + opacity: 1 + } + to { + -webkit-transform: none; + transform: none; + opacity: 1 + } +} + +@keyframes lightSpeedIn { + from { + -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg); + transform: translate3d(100%, 0, 0) skewX(-30deg); + opacity: 0 + } + 60% { + -webkit-transform: skewX(20deg); + transform: skewX(20deg); + opacity: 1 + } + 80% { + -webkit-transform: skewX(-5deg); + transform: skewX(-5deg); + opacity: 1 + } + to { + -webkit-transform: none; + transform: none; + opacity: 1 + } +} + +.lightSpeedIn { + -webkit-animation-name: lightSpeedIn; + animation-name: lightSpeedIn; + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out +} + +@-webkit-keyframes lightSpeedOut { + from { + opacity: 1 + } + to { + -webkit-transform: translate3d(100%, 0, 0) skewX(30deg); + transform: translate3d(100%, 0, 0) skewX(30deg); + opacity: 0 + } +} + +@keyframes lightSpeedOut { + from { + opacity: 1 + } + to { + -webkit-transform: translate3d(100%, 0, 0) skewX(30deg); + transform: translate3d(100%, 0, 0) skewX(30deg); + opacity: 0 + } +} + +.lightSpeedOut { + -webkit-animation-name: lightSpeedOut; + animation-name: lightSpeedOut; + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in +} + +@-webkit-keyframes rotateIn { + from { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, -200deg); + transform: rotate3d(0, 0, 1, -200deg); + opacity: 0 + } + to { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: none; + transform: none; + opacity: 1 + } +} + +@keyframes rotateIn { + from { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, -200deg); + transform: rotate3d(0, 0, 1, -200deg); + opacity: 0 + } + to { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: none; + transform: none; + opacity: 1 + } +} + +.rotateIn { + -webkit-animation-name: rotateIn; + animation-name: rotateIn +} + +@-webkit-keyframes rotateInDownLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0 + } + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: none; + transform: none; + opacity: 1 + } +} + +@keyframes rotateInDownLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0 + } + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: none; + transform: none; + opacity: 1 + } +} + +.rotateInDownLeft { + -webkit-animation-name: rotateInDownLeft; + animation-name: rotateInDownLeft +} + +@-webkit-keyframes rotateInDownRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0 + } + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: none; + transform: none; + opacity: 1 + } +} + +@keyframes rotateInDownRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0 + } + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: none; + transform: none; + opacity: 1 + } +} + +.rotateInDownRight { + -webkit-animation-name: rotateInDownRight; + animation-name: rotateInDownRight +} + +@-webkit-keyframes rotateInUpLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0 + } + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: none; + transform: none; + opacity: 1 + } +} + +@keyframes rotateInUpLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0 + } + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: none; + transform: none; + opacity: 1 + } +} + +.rotateInUpLeft { + -webkit-animation-name: rotateInUpLeft; + animation-name: rotateInUpLeft +} + +@-webkit-keyframes rotateInUpRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -90deg); + transform: rotate3d(0, 0, 1, -90deg); + opacity: 0 + } + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: none; + transform: none; + opacity: 1 + } +} + +@keyframes rotateInUpRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -90deg); + transform: rotate3d(0, 0, 1, -90deg); + opacity: 0 + } + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: none; + transform: none; + opacity: 1 + } +} + +.rotateInUpRight { + -webkit-animation-name: rotateInUpRight; + animation-name: rotateInUpRight +} + +@-webkit-keyframes rotateOut { + from { + -webkit-transform-origin: center; + transform-origin: center; + opacity: 1 + } + to { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, 200deg); + transform: rotate3d(0, 0, 1, 200deg); + opacity: 0 + } +} + +@keyframes rotateOut { + from { + -webkit-transform-origin: center; + transform-origin: center; + opacity: 1 + } + to { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, 200deg); + transform: rotate3d(0, 0, 1, 200deg); + opacity: 0 + } +} + +.rotateOut { + -webkit-animation-name: rotateOut; + animation-name: rotateOut +} + +@-webkit-keyframes rotateOutDownLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1 + } + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0 + } +} + +@keyframes rotateOutDownLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1 + } + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0 + } +} + +.rotateOutDownLeft { + -webkit-animation-name: rotateOutDownLeft; + animation-name: rotateOutDownLeft +} + +@-webkit-keyframes rotateOutDownRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1 + } + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0 + } +} + +@keyframes rotateOutDownRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1 + } + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0 + } +} + +.rotateOutDownRight { + -webkit-animation-name: rotateOutDownRight; + animation-name: rotateOutDownRight +} + +@-webkit-keyframes rotateOutUpLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1 + } + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0 + } +} + +@keyframes rotateOutUpLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1 + } + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0 + } +} + +.rotateOutUpLeft { + -webkit-animation-name: rotateOutUpLeft; + animation-name: rotateOutUpLeft +} + +@-webkit-keyframes rotateOutUpRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1 + } + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 90deg); + transform: rotate3d(0, 0, 1, 90deg); + opacity: 0 + } +} + +@keyframes rotateOutUpRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1 + } + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 90deg); + transform: rotate3d(0, 0, 1, 90deg); + opacity: 0 + } +} + +.rotateOutUpRight { + -webkit-animation-name: rotateOutUpRight; + animation-name: rotateOutUpRight +} + +@-webkit-keyframes hinge { + 0% { + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out + } + 20%, + 60% { + -webkit-transform: rotate3d(0, 0, 1, 80deg); + transform: rotate3d(0, 0, 1, 80deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out + } + 40%, + 80% { + -webkit-transform: rotate3d(0, 0, 1, 60deg); + transform: rotate3d(0, 0, 1, 60deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + opacity: 1 + } + to { + -webkit-transform: translate3d(0, 700px, 0); + transform: translate3d(0, 700px, 0); + opacity: 0 + } +} + +@keyframes hinge { + 0% { + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out + } + 20%, + 60% { + -webkit-transform: rotate3d(0, 0, 1, 80deg); + transform: rotate3d(0, 0, 1, 80deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out + } + 40%, + 80% { + -webkit-transform: rotate3d(0, 0, 1, 60deg); + transform: rotate3d(0, 0, 1, 60deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + opacity: 1 + } + to { + -webkit-transform: translate3d(0, 700px, 0); + transform: translate3d(0, 700px, 0); + opacity: 0 + } +} + +.hinge { + -webkit-animation-name: hinge; + animation-name: hinge +} + +@-webkit-keyframes rollIn { + from { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg) + } + to { + opacity: 1; + -webkit-transform: none; + transform: none + } +} + +@keyframes rollIn { + from { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg) + } + to { + opacity: 1; + -webkit-transform: none; + transform: none + } +} + +.rollIn { + -webkit-animation-name: rollIn; + animation-name: rollIn +} + +@-webkit-keyframes rollOut { + from { + opacity: 1 + } + to { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg) + } +} + +@keyframes rollOut { + from { + opacity: 1 + } + to { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg) + } +} + +.rollOut { + -webkit-animation-name: rollOut; + animation-name: rollOut +} + +@-webkit-keyframes zoomIn { + from { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3) + } + 50% { + opacity: 1 + } +} + +@keyframes zoomIn { + from { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3) + } + 50% { + opacity: 1 + } +} + +.zoomIn { + -webkit-animation-name: zoomIn; + animation-name: zoomIn +} + +@-webkit-keyframes zoomInDown { + from { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190) + } + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1) + } +} + +@keyframes zoomInDown { + from { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190) + } + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1) + } +} + +.zoomInDown { + -webkit-animation-name: zoomInDown; + animation-name: zoomInDown +} + +@-webkit-keyframes zoomInLeft { + from { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); + transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190) + } + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1) + } +} + +@keyframes zoomInLeft { + from { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); + transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190) + } + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1) + } +} + +.zoomInLeft { + -webkit-animation-name: zoomInLeft; + animation-name: zoomInLeft +} + +@-webkit-keyframes zoomInRight { + from { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); + transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190) + } + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1) + } +} + +@keyframes zoomInRight { + from { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); + transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190) + } + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1) + } +} + +.zoomInRight { + -webkit-animation-name: zoomInRight; + animation-name: zoomInRight +} + +@-webkit-keyframes zoomInUp { + from { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190) + } + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1) + } +} + +@keyframes zoomInUp { + from { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190) + } + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1) + } +} + +.zoomInUp { + -webkit-animation-name: zoomInUp; + animation-name: zoomInUp +} + +@-webkit-keyframes zoomOut { + from { + opacity: 1 + } + 50% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3) + } + to { + opacity: 0 + } +} + +@keyframes zoomOut { + from { + opacity: 1 + } + 50% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3) + } + to { + opacity: 0 + } +} + +.zoomOut { + -webkit-animation-name: zoomOut; + animation-name: zoomOut +} + +@-webkit-keyframes zoomOutDown { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190) + } + to { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1) + } +} + +@keyframes zoomOutDown { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190) + } + to { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1) + } +} + +.zoomOutDown { + -webkit-animation-name: zoomOutDown; + animation-name: zoomOutDown +} + +@-webkit-keyframes zoomOutLeft { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0) + } + to { + opacity: 0; + -webkit-transform: scale(.1) translate3d(-2000px, 0, 0); + transform: scale(.1) translate3d(-2000px, 0, 0); + -webkit-transform-origin: left center; + transform-origin: left center + } +} + +@keyframes zoomOutLeft { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0) + } + to { + opacity: 0; + -webkit-transform: scale(.1) translate3d(-2000px, 0, 0); + transform: scale(.1) translate3d(-2000px, 0, 0); + -webkit-transform-origin: left center; + transform-origin: left center + } +} + +.zoomOutLeft { + -webkit-animation-name: zoomOutLeft; + animation-name: zoomOutLeft +} + +@-webkit-keyframes zoomOutRight { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0) + } + to { + opacity: 0; + -webkit-transform: scale(.1) translate3d(2000px, 0, 0); + transform: scale(.1) translate3d(2000px, 0, 0); + -webkit-transform-origin: right center; + transform-origin: right center + } +} + +@keyframes zoomOutRight { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0) + } + to { + opacity: 0; + -webkit-transform: scale(.1) translate3d(2000px, 0, 0); + transform: scale(.1) translate3d(2000px, 0, 0); + -webkit-transform-origin: right center; + transform-origin: right center + } +} + +.zoomOutRight { + -webkit-animation-name: zoomOutRight; + animation-name: zoomOutRight +} + +@-webkit-keyframes zoomOutUp { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190) + } + to { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1) + } +} + +@keyframes zoomOutUp { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190) + } + to { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1) + } +} + +.zoomOutUp { + -webkit-animation-name: zoomOutUp; + animation-name: zoomOutUp +} + +@-webkit-keyframes slideInDown { + from { + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + visibility: visible + } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0) + } +} + +@keyframes slideInDown { + from { + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + visibility: visible + } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0) + } +} + +.slideInDown { + -webkit-animation-name: slideInDown; + animation-name: slideInDown +} + +@-webkit-keyframes slideInLeft { + from { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + visibility: visible + } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0) + } +} + +@keyframes slideInLeft { + from { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + visibility: visible + } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0) + } +} + +.slideInLeft { + -webkit-animation-name: slideInLeft; + animation-name: slideInLeft +} + +@-webkit-keyframes slideInRight { + from { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + visibility: visible + } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0) + } +} + +@keyframes slideInRight { + from { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + visibility: visible + } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0) + } +} + +.slideInRight { + -webkit-animation-name: slideInRight; + animation-name: slideInRight +} + +@-webkit-keyframes slideInUp { + from { + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + visibility: visible + } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0) + } +} + +@keyframes slideInUp { + from { + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + visibility: visible + } + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0) + } +} + +.slideInUp { + -webkit-animation-name: slideInUp; + animation-name: slideInUp +} + +@-webkit-keyframes slideOutDown { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0) + } + to { + visibility: hidden; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0) + } +} + +@keyframes slideOutDown { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0) + } + to { + visibility: hidden; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0) + } +} + +.slideOutDown { + -webkit-animation-name: slideOutDown; + animation-name: slideOutDown +} + +@-webkit-keyframes slideOutLeft { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0) + } + to { + visibility: hidden; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0) + } +} + +@keyframes slideOutLeft { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0) + } + to { + visibility: hidden; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0) + } +} + +.slideOutLeft { + -webkit-animation-name: slideOutLeft; + animation-name: slideOutLeft +} + +@-webkit-keyframes slideOutRight { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0) + } + to { + visibility: hidden; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0) + } +} + +@keyframes slideOutRight { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0) + } + to { + visibility: hidden; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0) + } +} + +.slideOutRight { + -webkit-animation-name: slideOutRight; + animation-name: slideOutRight +} + +@-webkit-keyframes slideOutUp { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0) + } + to { + visibility: hidden; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0) + } +} + +@keyframes slideOutUp { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0) + } + to { + visibility: hidden; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0) + } +} + +.slideOutUp { + -webkit-animation-name: slideOutUp; + animation-name: slideOutUp +} \ No newline at end of file diff --git a/wp-content/themes/abiz/assets/css/animate.min.css b/wp-content/themes/abiz/assets/css/animate.min.css new file mode 100644 index 0000000..0941f4e --- /dev/null +++ b/wp-content/themes/abiz/assets/css/animate.min.css @@ -0,0 +1,7 @@ +/*! + * animate.css -http://daneden.me/animate + * Version - 3.5.1 + * Licensed under the MIT license - http://opensource.org/licenses/MIT + * + * Copyright (c) 2016 Daniel Eden + */.animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animated.hinge{-webkit-animation-duration:2s;animation-duration:2s}.animated.flipOutX,.animated.flipOutY,.animated.bounceIn,.animated.bounceOut{-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes bounce{from,20%,53%,80%,to{-webkit-animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(0.755,0.050,0.855,0.060);animation-timing-function:cubic-bezier(0.755,0.050,0.855,0.060);-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-animation-timing-function:cubic-bezier(0.755,0.050,0.855,0.060);animation-timing-function:cubic-bezier(0.755,0.050,0.855,0.060);-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}@keyframes bounce{from,20%,53%,80%,to{-webkit-animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(0.755,0.050,0.855,0.060);animation-timing-function:cubic-bezier(0.755,0.050,0.855,0.060);-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}70%{-webkit-animation-timing-function:cubic-bezier(0.755,0.050,0.855,0.060);animation-timing-function:cubic-bezier(0.755,0.050,0.855,0.060);-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}.bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{from,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{from,50%,to{opacity:1}25%,75%{opacity:0}}.flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{from{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes pulse{from{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.pulse{-webkit-animation-name:pulse;animation-name:pulse}@-webkit-keyframes rubberBand{from{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}30%{-webkit-transform:scale3d(1.25,0.75,1);transform:scale3d(1.25,0.75,1)}40%{-webkit-transform:scale3d(0.75,1.25,1);transform:scale3d(0.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,0.85,1);transform:scale3d(1.15,0.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes rubberBand{from{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}30%{-webkit-transform:scale3d(1.25,0.75,1);transform:scale3d(1.25,0.75,1)}40%{-webkit-transform:scale3d(0.75,1.25,1);transform:scale3d(0.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,0.85,1);transform:scale3d(1.15,0.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shake{from,to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes shake{from,to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.shake{-webkit-animation-name:shake;animation-name:shake}@-webkit-keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}.headShake{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-name:headShake;animation-name:headShake}@-webkit-keyframes swing{20%{-webkit-transform:rotate3d(0,0,1,15deg);transform:rotate3d(0,0,1,15deg)}40%{-webkit-transform:rotate3d(0,0,1,-10deg);transform:rotate3d(0,0,1,-10deg)}60%{-webkit-transform:rotate3d(0,0,1,5deg);transform:rotate3d(0,0,1,5deg)}80%{-webkit-transform:rotate3d(0,0,1,-5deg);transform:rotate3d(0,0,1,-5deg)}to{-webkit-transform:rotate3d(0,0,1,0deg);transform:rotate3d(0,0,1,0deg)}}@keyframes swing{20%{-webkit-transform:rotate3d(0,0,1,15deg);transform:rotate3d(0,0,1,15deg)}40%{-webkit-transform:rotate3d(0,0,1,-10deg);transform:rotate3d(0,0,1,-10deg)}60%{-webkit-transform:rotate3d(0,0,1,5deg);transform:rotate3d(0,0,1,5deg)}80%{-webkit-transform:rotate3d(0,0,1,-5deg);transform:rotate3d(0,0,1,-5deg)}to{-webkit-transform:rotate3d(0,0,1,0deg);transform:rotate3d(0,0,1,0deg)}}.swing{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{from{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg);transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg)}to{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes tada{from{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg);transform:scale3d(.9,.9,.9) rotate3d(0,0,1,-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg);transform:scale3d(1.1,1.1,1.1) rotate3d(0,0,1,-3deg)}to{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{from{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}to{-webkit-transform:none;transform:none}}@keyframes wobble{from{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg);transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg);transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg);transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg);transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg);transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}to{-webkit-transform:none;transform:none}}.wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes jello{from,11.1%,to{-webkit-transform:none;transform:none}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-0.78125deg) skewY(-0.78125deg);transform:skewX(-0.78125deg) skewY(-0.78125deg)}77.7%{-webkit-transform:skewX(0.390625deg) skewY(0.390625deg);transform:skewX(0.390625deg) skewY(0.390625deg)}88.8%{-webkit-transform:skewX(-0.1953125deg) skewY(-0.1953125deg);transform:skewX(-0.1953125deg) skewY(-0.1953125deg)}}@keyframes jello{from,11.1%,to{-webkit-transform:none;transform:none}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-0.78125deg) skewY(-0.78125deg);transform:skewX(-0.78125deg) skewY(-0.78125deg)}77.7%{-webkit-transform:skewX(0.390625deg) skewY(0.390625deg);transform:skewX(0.390625deg) skewY(0.390625deg)}88.8%{-webkit-transform:skewX(-0.1953125deg) skewY(-0.1953125deg);transform:skewX(-0.1953125deg) skewY(-0.1953125deg)}}.jello{-webkit-animation-name:jello;animation-name:jello;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes bounceIn{from,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes bounceIn{from,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}.bounceIn{-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes bounceInDown{from,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes bounceInDown{from,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}.bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{from,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes bounceInLeft{from,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}.bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{from,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000)}from{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes bounceInRight{from,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000)}from{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}.bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{from,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000)}from{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes bounceInUp{from,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000);animation-timing-function:cubic-bezier(0.215,0.610,0.355,1.000)}from{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}.bounceOut{-webkit-animation-name:bounceOut;animation-name:bounceOut}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{from{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDownBig{from{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{from{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeft{from{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{from{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeftBig{from{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{from{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRight{from{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{from{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRightBig{from{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{from{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUp{from{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{from{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUpBig{from{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeOut{from{opacity:1}to{opacity:0}}@keyframes fadeOut{from{opacity:1}to{opacity:0}}.fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes fadeOutDownBig{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes fadeOutLeft{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes fadeOutLeftBig{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes fadeOutRight{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes fadeOutRightBig{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes fadeOutUp{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes fadeOutUpBig{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes flip{from{-webkit-transform:perspective(400px) rotate3d(0,1,0,-360deg);transform:perspective(400px) rotate3d(0,1,0,-360deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{from{-webkit-transform:perspective(400px) rotate3d(0,1,0,-360deg);transform:perspective(400px) rotate3d(0,1,0,-360deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);transform:perspective(400px) translate3d(0,0,150px) rotate3d(0,1,0,-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animated.flip{-webkit-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{from{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{from{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInX{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{from{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-20deg);transform:perspective(400px) rotate3d(0,1,0,-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0,1,0,10deg);transform:perspective(400px) rotate3d(0,1,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-5deg);transform:perspective(400px) rotate3d(0,1,0,-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{from{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-20deg);transform:perspective(400px) rotate3d(0,1,0,-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0,1,0,10deg);transform:perspective(400px) rotate3d(0,1,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-5deg);transform:perspective(400px) rotate3d(0,1,0,-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{from{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}@keyframes flipOutX{from{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}.flipOutX{-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{from{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-15deg);transform:perspective(400px) rotate3d(0,1,0,-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);opacity:0}}@keyframes flipOutY{from{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-15deg);transform:perspective(400px) rotate3d(0,1,0,-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);opacity:0}}.flipOutY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY}@-webkit-keyframes lightSpeedIn{from{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}to{-webkit-transform:none;transform:none;opacity:1}}@keyframes lightSpeedIn{from{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg);opacity:1}to{-webkit-transform:none;transform:none;opacity:1}}.lightSpeedIn{-webkit-animation-name:lightSpeedIn;animation-name:lightSpeedIn;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOut{from{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}@keyframes lightSpeedOut{from{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}.lightSpeedOut{-webkit-animation-name:lightSpeedOut;animation-name:lightSpeedOut;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{from{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,-200deg);transform:rotate3d(0,0,1,-200deg);opacity:0}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateIn{from{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,-200deg);transform:rotate3d(0,0,1,-200deg);opacity:0}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:none;transform:none;opacity:1}}.rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn}@-webkit-keyframes rotateInDownLeft{from{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInDownLeft{from{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft}@-webkit-keyframes rotateInDownRight{from{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInDownRight{from{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight}@-webkit-keyframes rotateInUpLeft{from{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInUpLeft{from{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft}@-webkit-keyframes rotateInUpRight{from{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-90deg);transform:rotate3d(0,0,1,-90deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInUpRight{from{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-90deg);transform:rotate3d(0,0,1,-90deg);opacity:0}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight}@-webkit-keyframes rotateOut{from{-webkit-transform-origin:center;transform-origin:center;opacity:1}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,200deg);transform:rotate3d(0,0,1,200deg);opacity:0}}@keyframes rotateOut{from{-webkit-transform-origin:center;transform-origin:center;opacity:1}to{-webkit-transform-origin:center;transform-origin:center;-webkit-transform:rotate3d(0,0,1,200deg);transform:rotate3d(0,0,1,200deg);opacity:0}}.rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut}@-webkit-keyframes rotateOutDownLeft{from{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}}@keyframes rotateOutDownLeft{from{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,45deg);transform:rotate3d(0,0,1,45deg);opacity:0}}.rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft}@-webkit-keyframes rotateOutDownRight{from{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}@keyframes rotateOutDownRight{from{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}.rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight}@-webkit-keyframes rotateOutUpLeft{from{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}@keyframes rotateOutUpLeft{from{-webkit-transform-origin:left bottom;transform-origin:left bottom;opacity:1}to{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate3d(0,0,1,-45deg);transform:rotate3d(0,0,1,-45deg);opacity:0}}.rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft}@-webkit-keyframes rotateOutUpRight{from{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,90deg);transform:rotate3d(0,0,1,90deg);opacity:0}}@keyframes rotateOutUpRight{from{-webkit-transform-origin:right bottom;transform-origin:right bottom;opacity:1}to{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate3d(0,0,1,90deg);transform:rotate3d(0,0,1,90deg);opacity:0}}.rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight}@-webkit-keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate3d(0,0,1,80deg);transform:rotate3d(0,0,1,80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate3d(0,0,1,60deg);transform:rotate3d(0,0,1,60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}@keyframes hinge{0%{-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate3d(0,0,1,80deg);transform:rotate3d(0,0,1,80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate3d(0,0,1,60deg);transform:rotate3d(0,0,1,60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}.hinge{-webkit-animation-name:hinge;animation-name:hinge}@-webkit-keyframes rollIn{from{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg);transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes rollIn{from{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg);transform:translate3d(-100%,0,0) rotate3d(0,0,1,-120deg)}to{opacity:1;-webkit-transform:none;transform:none}}.rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg);transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg)}}@keyframes rollOut{from{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg);transform:translate3d(100%,0,0) rotate3d(0,0,1,120deg)}}.rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{from{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{from{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{from{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190);animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,0.885,0.320,1);animation-timing-function:cubic-bezier(0.175,0.885,0.320,1)}}@keyframes zoomInDown{from{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190);animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,0.885,0.320,1);animation-timing-function:cubic-bezier(0.175,0.885,0.320,1)}}.zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{from{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190);animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,0.885,0.320,1);animation-timing-function:cubic-bezier(0.175,0.885,0.320,1)}}@keyframes zoomInLeft{from{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190);animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,0.885,0.320,1);animation-timing-function:cubic-bezier(0.175,0.885,0.320,1)}}.zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{from{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190);animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,0.885,0.320,1);animation-timing-function:cubic-bezier(0.175,0.885,0.320,1)}}@keyframes zoomInRight{from{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190);animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(0.175,0.885,0.320,1);animation-timing-function:cubic-bezier(0.175,0.885,0.320,1)}}.zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{from{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190);animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,0.885,0.320,1);animation-timing-function:cubic-bezier(0.175,0.885,0.320,1)}}@keyframes zoomInUp{from{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190);animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.175,0.885,0.320,1);animation-timing-function:cubic-bezier(0.175,0.885,0.320,1)}}.zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{from{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}@keyframes zoomOut{from{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}.zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190);animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,0.885,0.320,1);animation-timing-function:cubic-bezier(0.175,0.885,0.320,1)}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190);animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,0.885,0.320,1);animation-timing-function:cubic-bezier(0.175,0.885,0.320,1)}}.zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}.zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}.zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190);animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,0.885,0.320,1);animation-timing-function:cubic-bezier(0.175,0.885,0.320,1)}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190);animation-timing-function:cubic-bezier(0.550,0.055,0.675,0.190)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(0.175,0.885,0.320,1);animation-timing-function:cubic-bezier(0.175,0.885,0.320,1)}}.zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp}@-webkit-keyframes slideInDown{from{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes slideInDown{from{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.slideInDown{-webkit-animation-name:slideInDown;animation-name:slideInDown}@-webkit-keyframes slideInLeft{from{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes slideInLeft{from{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.slideInLeft{-webkit-animation-name:slideInLeft;animation-name:slideInLeft}@-webkit-keyframes slideInRight{from{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes slideInRight{from{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.slideInRight{-webkit-animation-name:slideInRight;animation-name:slideInRight}@-webkit-keyframes slideInUp{from{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes slideInUp{from{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.slideInUp{-webkit-animation-name:slideInUp;animation-name:slideInUp}@-webkit-keyframes slideOutDown{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes slideOutDown{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.slideOutDown{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}@-webkit-keyframes slideOutLeft{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes slideOutLeft{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.slideOutLeft{-webkit-animation-name:slideOutLeft;animation-name:slideOutLeft}@-webkit-keyframes slideOutRight{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes slideOutRight{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.slideOutRight{-webkit-animation-name:slideOutRight;animation-name:slideOutRight}@-webkit-keyframes slideOutUp{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes slideOutUp{from{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp} \ No newline at end of file diff --git a/wp-content/themes/abiz/assets/css/bootstrap.css b/wp-content/themes/abiz/assets/css/bootstrap.css new file mode 100644 index 0000000..2046c92 --- /dev/null +++ b/wp-content/themes/abiz/assets/css/bootstrap.css @@ -0,0 +1,9975 @@ +/*! + * Bootstrap v5.0.0-alpha1 (https://getbootstrap.com/) + * Copyright 2011-2020 The Bootstrap Authors + * Copyright 2011-2020 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ + +*, +::after, +::before { + box-sizing: border-box +} + +body { + margin: 0; + font-family: var(--bs-font-sans-serif); + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: var(--bs-secondary); + background-color: #ffffff; + -webkit-text-size-adjust: 100%; + -webkit-tap-highlight-color: transparent +} + +[tabindex="-1"]:focus:not(:focus-visible) { + outline: 0 !important +} + +hr { + margin: 1rem 0; + color: inherit; + background-color: currentColor; + border: 0; + opacity: .25 +} + +hr:not([size]) { + height: 1px +} + +.h1, +.h2, +.h3, +.h4, +.h5, +.h6, +h1, +h2, +h3, +h4, +h5, +h6 { + margin-top: 0; + margin-bottom: 0.625rem; + font-weight: 700; + line-height: 1.2 +} + +.h1, +h1 { + font-size: calc(1.375rem + 1.8vw) +} + +@media (min-width:1200px) { + .h1, + h1 { + font-size: 2.8125rem + } +} + +.h2, +h2 { + font-size: calc(1.325rem + 1.5vw) +} + +@media (min-width:1200px) { + .h2, + h2 { + font-size: 2.5rem + } +} + +.h3, +h3 { + font-size: calc(1.3rem + .7vw) +} + +@media (min-width:1200px) { + .h3, + h3 { + font-size: 1.875rem + } +} + +.h4, +h4 { + font-size: calc(1.275rem + .3vw) +} + +@media (min-width:1200px) { + .h4, + h4 { + font-size: 1.5rem + } +} + +.h5, +h5 { + font-size: 1.25rem +} + +.h6, +h6 { + font-size: 1rem +} + +p { + margin-top: 0; + margin-bottom: 1rem +} + +abbr[data-original-title], +abbr[title] { + text-decoration: underline; + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; + cursor: help; + -webkit-text-decoration-skip-ink: none; + text-decoration-skip-ink: none +} + +address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit +} + +ol, +ul { + padding-left: 2rem +} + +dl, +ol, +ul { + margin-top: 0; + margin-bottom: 1rem +} + +ol ol, +ol ul, +ul ol, +ul ul { + margin-bottom: 0 +} + +dt { + font-weight: 700 +} + +dd { + margin-bottom: .5rem; + margin-left: 0 +} + +blockquote { + margin: 0 0 1rem +} + +b, +strong { + font-weight: bolder +} + +.small, +small { + font-size: .875em +} + +.mark, +mark { + padding: .2em; + background-color: #fcf8e3 +} + +sub, +sup { + position: relative; + font-size: .75em; + line-height: 0; + vertical-align: baseline +} + +sub { + bottom: -.25em +} + +sup { + top: -.5em +} + +a { + color: var(--bs-primary); + ; + text-decoration: underline +} + +a:hover { + color: #024dbc +} + +a:not([href]):not([class]), +a:not([href]):not([class]):hover { + color: inherit; + text-decoration: none +} + +code, +kbd, +pre, +samp { + font-family: var(--bs-font-monospace); + font-size: 1em +} + +pre { + display: block; + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; + font-size: .875em; + -ms-overflow-style: scrollbar +} + +pre code { + font-size: inherit; + color: inherit; + word-break: normal +} + +code { + font-size: .875em; + color: #d63384; + word-wrap: break-word +} + +a>code { + color: inherit +} + +kbd { + padding: .2rem .4rem; + font-size: .875em; + color: #fff; + background-color: #212529; + border-radius: .2rem +} + +kbd kbd { + padding: 0; + font-size: 1em; + font-weight: 700 +} + +figure { + margin: 0 0 1rem +} + +img, +svg { + vertical-align: middle +} + +table { + caption-side: bottom; + border-collapse: collapse +} + +caption { + padding-top: .5rem; + padding-bottom: .5rem; + color: #6c757d; + text-align: left +} + +th { + text-align: inherit; + text-align: -webkit-match-parent +} + +tbody, +td, +tfoot, +th, +thead, +tr { + border-color: inherit; + border-style: solid; + border-width: 0 +} + +label { + display: inline-block +} + +button { + border-radius: 0 +} + +button:focus { + outline: 1px dotted; + outline: 5px auto -webkit-focus-ring-color +} + +button, +input, +optgroup, +select, +textarea { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit +} + +button, +input { + overflow: visible +} + +button, +select { + text-transform: none +} + +[role=button] { + cursor: pointer +} + +select { + word-wrap: normal +} + +[list]::-webkit-calendar-picker-indicator { + display: none +} + +[type=button], +[type=reset], +[type=submit], +button { + -webkit-appearance: button +} + +[type=button]:not(:disabled), +[type=reset]:not(:disabled), +[type=submit]:not(:disabled), +button:not(:disabled) { + cursor: pointer +} + +::-moz-focus-inner { + padding: 0; + border-style: none +} + +textarea { + resize: vertical +} + +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0 +} + +legend { + float: left; + width: 100%; + padding: 0; + margin-bottom: .5rem; + font-size: calc(1.275rem + .3vw); + line-height: inherit; + white-space: normal +} + +@media (min-width:1200px) { + legend { + font-size: 1.5rem + } +} + +legend+* { + clear: left +} + +::-webkit-datetime-edit-day-field, +::-webkit-datetime-edit-fields-wrapper, +::-webkit-datetime-edit-hour-field, +::-webkit-datetime-edit-minute, +::-webkit-datetime-edit-month-field, +::-webkit-datetime-edit-text, +::-webkit-datetime-edit-year-field { + padding: 0 +} + +::-webkit-inner-spin-button { + height: auto +} + +[type=search] { + outline-offset: -2px; + -webkit-appearance: textfield +} + +::-webkit-search-decoration { + -webkit-appearance: none +} + +::-webkit-color-swatch-wrapper { + padding: 0 +} + +::-webkit-file-upload-button { + font: inherit; + -webkit-appearance: button +} + +output { + display: inline-block +} + +iframe { + border: 0 +} + +summary { + display: list-item; + cursor: pointer +} + +progress { + vertical-align: baseline +} + +[hidden] { + display: none !important +} + +.lead { + font-size: 1.25rem; + font-weight: 300 +} + +.display-1 { + font-size: calc(1.625rem + 4.5vw); + font-weight: 300; + line-height: 1.2 +} + +@media (min-width:1200px) { + .display-1 { + font-size: 5rem + } +} + +.display-2 { + font-size: calc(1.575rem + 3.9vw); + font-weight: 300; + line-height: 1.2 +} + +@media (min-width:1200px) { + .display-2 { + font-size: 4.5rem + } +} + +.display-3 { + font-size: calc(1.525rem + 3.3vw); + font-weight: 300; + line-height: 1.2 +} + +@media (min-width:1200px) { + .display-3 { + font-size: 4rem + } +} + +.display-4 { + font-size: calc(1.475rem + 2.7vw); + font-weight: 300; + line-height: 1.2 +} + +@media (min-width:1200px) { + .display-4 { + font-size: 3.5rem + } +} + +.display-5 { + font-size: calc(1.425rem + 2.1vw); + font-weight: 300; + line-height: 1.2 +} + +@media (min-width:1200px) { + .display-5 { + font-size: 3rem + } +} + +.display-6 { + font-size: calc(1.375rem + 1.5vw); + font-weight: 300; + line-height: 1.2 +} + +@media (min-width:1200px) { + .display-6 { + font-size: 2.5rem + } +} + +.list-unstyled { + padding-left: 0; + list-style: none +} + +.list-inline { + padding-left: 0; + list-style: none +} + +.list-inline-item { + display: inline-block +} + +.list-inline-item:not(:last-child) { + margin-right: .5rem +} + +.initialism { + font-size: .875em; + text-transform: uppercase +} + +.blockquote { + margin-bottom: 1rem; + font-size: 1.25rem +} + +.blockquote>:last-child { + margin-bottom: 0 +} + +.blockquote-footer { + margin-top: -1rem; + margin-bottom: 1rem; + font-size: .875em; + color: #6c757d +} + +.blockquote-footer::before { + content: "\2014\00A0" +} + +.img-fluid { + max-width: 100%; + height: auto +} + +.img-thumbnail { + padding: .25rem; + background-color: #fff; + border: 1px solid #dee2e6; + border-radius: .25rem; + max-width: 100%; + height: auto +} + +.figure { + display: inline-block +} + +.figure-img { + margin-bottom: .5rem; + line-height: 1 +} + +.figure-caption { + font-size: .875em; + color: #6c757d +} + +.container, +.container-fluid, +.container-lg, +.container-md, +.container-sm, +.container-xl, +.container-xxl { + width: 100%; + padding-right: 1rem; + padding-left: 1rem; + margin-right: auto; + margin-left: auto +} + +@media (min-width:576px) { + .container, + .container-sm { + max-width: 540px + } +} + +@media (min-width:768px) { + .container, + .container-md, + .container-sm { + max-width: 720px + } +} + +@media (min-width:992px) { + .container, + .container-lg, + .container-md, + .container-sm { + max-width: 960px + } +} + +@media (min-width:1200px) { + .container, + .container-lg, + .container-md, + .container-sm, + .container-xl { + max-width: 1140px + } +} + +@media (min-width:1400px) { + .container, + .container-lg, + .container-md, + .container-sm, + .container-xl, + .container-xxl { + max-width: 1320px + } +} + +.row { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + display: flex; + flex: 1 0 100%; + flex-wrap: wrap; + margin-top: calc(var(--bs-gutter-y) * -1); + margin-right: calc(var(--bs-gutter-x)/ -2); + margin-left: calc(var(--bs-gutter-x)/ -2) +} + +.row>* { + flex-shrink: 0; + width: 100%; + max-width: 100%; + padding-right: calc(var(--bs-gutter-x)/ 2); + padding-left: calc(var(--bs-gutter-x)/ 2); + margin-top: var(--bs-gutter-y) +} + +.col { + flex: 1 0 0% +} + +.row-cols-auto>* { + flex: 0 0 auto; + width: auto +} + +.row-cols-1>* { + flex: 0 0 auto; + width: 100% +} + +.row-cols-2>* { + flex: 0 0 auto; + width: 50% +} + +.row-cols-3>* { + flex: 0 0 auto; + width: 33.333333% +} + +.row-cols-4>* { + flex: 0 0 auto; + width: 25% +} + +.row-cols-5>* { + flex: 0 0 auto; + width: 20% +} + +.row-cols-6>* { + flex: 0 0 auto; + width: 16.666667% +} + +.col-auto { + flex: 0 0 auto; + width: auto +} + +.col-1 { + flex: 0 0 auto; + width: 8.333333% +} + +.col-2 { + flex: 0 0 auto; + width: 16.666667% +} + +.col-3 { + flex: 0 0 auto; + width: 25% +} + +.col-4 { + flex: 0 0 auto; + width: 33.333333% +} + +.col-5 { + flex: 0 0 auto; + width: 41.666667% +} + +.col-6 { + flex: 0 0 auto; + width: 50% +} + +.col-7 { + flex: 0 0 auto; + width: 58.333333% +} + +.col-8 { + flex: 0 0 auto; + width: 66.666667% +} + +.col-9 { + flex: 0 0 auto; + width: 75% +} + +.col-10 { + flex: 0 0 auto; + width: 83.333333% +} + +.col-11 { + flex: 0 0 auto; + width: 91.666667% +} + +.col-12 { + flex: 0 0 auto; + width: 100% +} + +.offset-1 { + margin-left: 8.333333% +} + +.offset-2 { + margin-left: 16.666667% +} + +.offset-3 { + margin-left: 25% +} + +.offset-4 { + margin-left: 33.333333% +} + +.offset-5 { + margin-left: 41.666667% +} + +.offset-6 { + margin-left: 50% +} + +.offset-7 { + margin-left: 58.333333% +} + +.offset-8 { + margin-left: 66.666667% +} + +.offset-9 { + margin-left: 75% +} + +.offset-10 { + margin-left: 83.333333% +} + +.offset-11 { + margin-left: 91.666667% +} + +.g-0, +.gx-0 { + --bs-gutter-x: 0 +} + +.g-0, +.gy-0 { + --bs-gutter-y: 0 +} + +.g-1, +.gx-1 { + --bs-gutter-x: 0.25rem +} + +.g-1, +.gy-1 { + --bs-gutter-y: 0.25rem +} + +.g-2, +.gx-2 { + --bs-gutter-x: 0.5rem +} + +.g-2, +.gy-2 { + --bs-gutter-y: 0.5rem +} + +.g-3, +.gx-3 { + --bs-gutter-x: 1rem +} + +.g-3, +.gy-3 { + --bs-gutter-y: 1rem +} + +.g-4, +.gx-4 { + --bs-gutter-x: 1.5rem +} + +.g-4, +.gy-4 { + --bs-gutter-y: 1.5rem +} + +.g-5, +.gx-5 { + --bs-gutter-x: 3rem +} + +.g-5, +.gy-5 { + --bs-gutter-y: 3rem +} + +@media (min-width:576px) { + .col-sm { + flex: 1 0 0% + } + .row-cols-sm-auto>* { + flex: 0 0 auto; + width: auto + } + .row-cols-sm-1>* { + flex: 0 0 auto; + width: 100% + } + .row-cols-sm-2>* { + flex: 0 0 auto; + width: 50% + } + .row-cols-sm-3>* { + flex: 0 0 auto; + width: 33.333333% + } + .row-cols-sm-4>* { + flex: 0 0 auto; + width: 25% + } + .row-cols-sm-5>* { + flex: 0 0 auto; + width: 20% + } + .row-cols-sm-6>* { + flex: 0 0 auto; + width: 16.666667% + } + .col-sm-auto { + flex: 0 0 auto; + width: auto + } + .col-sm-1 { + flex: 0 0 auto; + width: 8.333333% + } + .col-sm-2 { + flex: 0 0 auto; + width: 16.666667% + } + .col-sm-3 { + flex: 0 0 auto; + width: 25% + } + .col-sm-4 { + flex: 0 0 auto; + width: 33.333333% + } + .col-sm-5 { + flex: 0 0 auto; + width: 41.666667% + } + .col-sm-6 { + flex: 0 0 auto; + width: 50% + } + .col-sm-7 { + flex: 0 0 auto; + width: 58.333333% + } + .col-sm-8 { + flex: 0 0 auto; + width: 66.666667% + } + .col-sm-9 { + flex: 0 0 auto; + width: 75% + } + .col-sm-10 { + flex: 0 0 auto; + width: 83.333333% + } + .col-sm-11 { + flex: 0 0 auto; + width: 91.666667% + } + .col-sm-12 { + flex: 0 0 auto; + width: 100% + } + .offset-sm-0 { + margin-left: 0 + } + .offset-sm-1 { + margin-left: 8.333333% + } + .offset-sm-2 { + margin-left: 16.666667% + } + .offset-sm-3 { + margin-left: 25% + } + .offset-sm-4 { + margin-left: 33.333333% + } + .offset-sm-5 { + margin-left: 41.666667% + } + .offset-sm-6 { + margin-left: 50% + } + .offset-sm-7 { + margin-left: 58.333333% + } + .offset-sm-8 { + margin-left: 66.666667% + } + .offset-sm-9 { + margin-left: 75% + } + .offset-sm-10 { + margin-left: 83.333333% + } + .offset-sm-11 { + margin-left: 91.666667% + } + .g-sm-0, + .gx-sm-0 { + --bs-gutter-x: 0 + } + .g-sm-0, + .gy-sm-0 { + --bs-gutter-y: 0 + } + .g-sm-1, + .gx-sm-1 { + --bs-gutter-x: 0.25rem + } + .g-sm-1, + .gy-sm-1 { + --bs-gutter-y: 0.25rem + } + .g-sm-2, + .gx-sm-2 { + --bs-gutter-x: 0.5rem + } + .g-sm-2, + .gy-sm-2 { + --bs-gutter-y: 0.5rem + } + .g-sm-3, + .gx-sm-3 { + --bs-gutter-x: 1rem + } + .g-sm-3, + .gy-sm-3 { + --bs-gutter-y: 1rem + } + .g-sm-4, + .gx-sm-4 { + --bs-gutter-x: 1.5rem + } + .g-sm-4, + .gy-sm-4 { + --bs-gutter-y: 1.5rem + } + .g-sm-5, + .gx-sm-5 { + --bs-gutter-x: 3rem + } + .g-sm-5, + .gy-sm-5 { + --bs-gutter-y: 3rem + } +} + +@media (min-width:768px) { + .col-md { + flex: 1 0 0% + } + .row-cols-md-auto>* { + flex: 0 0 auto; + width: auto + } + .row-cols-md-1>* { + flex: 0 0 auto; + width: 100% + } + .row-cols-md-2>* { + flex: 0 0 auto; + width: 50% + } + .row-cols-md-3>* { + flex: 0 0 auto; + width: 33.333333% + } + .row-cols-md-4>* { + flex: 0 0 auto; + width: 25% + } + .row-cols-md-5>* { + flex: 0 0 auto; + width: 20% + } + .row-cols-md-6>* { + flex: 0 0 auto; + width: 16.666667% + } + .col-md-auto { + flex: 0 0 auto; + width: auto + } + .col-md-1 { + flex: 0 0 auto; + width: 8.333333% + } + .col-md-2 { + flex: 0 0 auto; + width: 16.666667% + } + .col-md-3 { + flex: 0 0 auto; + width: 25% + } + .col-md-4 { + flex: 0 0 auto; + width: 33.333333% + } + .col-md-5 { + flex: 0 0 auto; + width: 41.666667% + } + .col-md-6 { + flex: 0 0 auto; + width: 50% + } + .col-md-7 { + flex: 0 0 auto; + width: 58.333333% + } + .col-md-8 { + flex: 0 0 auto; + width: 66.666667% + } + .col-md-9 { + flex: 0 0 auto; + width: 75% + } + .col-md-10 { + flex: 0 0 auto; + width: 83.333333% + } + .col-md-11 { + flex: 0 0 auto; + width: 91.666667% + } + .col-md-12 { + flex: 0 0 auto; + width: 100% + } + .offset-md-0 { + margin-left: 0 + } + .offset-md-1 { + margin-left: 8.333333% + } + .offset-md-2 { + margin-left: 16.666667% + } + .offset-md-3 { + margin-left: 25% + } + .offset-md-4 { + margin-left: 33.333333% + } + .offset-md-5 { + margin-left: 41.666667% + } + .offset-md-6 { + margin-left: 50% + } + .offset-md-7 { + margin-left: 58.333333% + } + .offset-md-8 { + margin-left: 66.666667% + } + .offset-md-9 { + margin-left: 75% + } + .offset-md-10 { + margin-left: 83.333333% + } + .offset-md-11 { + margin-left: 91.666667% + } + .g-md-0, + .gx-md-0 { + --bs-gutter-x: 0 + } + .g-md-0, + .gy-md-0 { + --bs-gutter-y: 0 + } + .g-md-1, + .gx-md-1 { + --bs-gutter-x: 0.25rem + } + .g-md-1, + .gy-md-1 { + --bs-gutter-y: 0.25rem + } + .g-md-2, + .gx-md-2 { + --bs-gutter-x: 0.5rem + } + .g-md-2, + .gy-md-2 { + --bs-gutter-y: 0.5rem + } + .g-md-3, + .gx-md-3 { + --bs-gutter-x: 1rem + } + .g-md-3, + .gy-md-3 { + --bs-gutter-y: 1rem + } + .g-md-4, + .gx-md-4 { + --bs-gutter-x: 1.5rem + } + .g-md-4, + .gy-md-4 { + --bs-gutter-y: 1.5rem + } + .g-md-5, + .gx-md-5 { + --bs-gutter-x: 3rem + } + .g-md-5, + .gy-md-5 { + --bs-gutter-y: 3rem + } +} + +@media (min-width:992px) { + .col-lg { + flex: 1 0 0% + } + .row-cols-lg-auto>* { + flex: 0 0 auto; + width: auto + } + .row-cols-lg-1>* { + flex: 0 0 auto; + width: 100% + } + .row-cols-lg-2>* { + flex: 0 0 auto; + width: 50% + } + .row-cols-lg-3>* { + flex: 0 0 auto; + width: 33.333333% + } + .row-cols-lg-4>* { + flex: 0 0 auto; + width: 25% + } + .row-cols-lg-5>* { + flex: 0 0 auto; + width: 20% + } + .row-cols-lg-6>* { + flex: 0 0 auto; + width: 16.666667% + } + .col-lg-auto { + flex: 0 0 auto; + width: auto + } + .col-lg-1 { + flex: 0 0 auto; + width: 8.333333% + } + .col-lg-2 { + flex: 0 0 auto; + width: 16.666667% + } + .col-lg-3 { + flex: 0 0 auto; + width: 25% + } + .col-lg-4 { + flex: 0 0 auto; + width: 33.333333% + } + .col-lg-5 { + flex: 0 0 auto; + width: 41.666667% + } + .col-lg-6 { + flex: 0 0 auto; + width: 50% + } + .col-lg-7 { + flex: 0 0 auto; + width: 58.333333% + } + .col-lg-8 { + flex: 0 0 auto; + width: 66.666667% + } + .col-lg-9 { + flex: 0 0 auto; + width: 75% + } + .col-lg-10 { + flex: 0 0 auto; + width: 83.333333% + } + .col-lg-11 { + flex: 0 0 auto; + width: 91.666667% + } + .col-lg-12 { + flex: 0 0 auto; + width: 100% + } + .offset-lg-0 { + margin-left: 0 + } + .offset-lg-1 { + margin-left: 8.333333% + } + .offset-lg-2 { + margin-left: 16.666667% + } + .offset-lg-3 { + margin-left: 25% + } + .offset-lg-4 { + margin-left: 33.333333% + } + .offset-lg-5 { + margin-left: 41.666667% + } + .offset-lg-6 { + margin-left: 50% + } + .offset-lg-7 { + margin-left: 58.333333% + } + .offset-lg-8 { + margin-left: 66.666667% + } + .offset-lg-9 { + margin-left: 75% + } + .offset-lg-10 { + margin-left: 83.333333% + } + .offset-lg-11 { + margin-left: 91.666667% + } + .g-lg-0, + .gx-lg-0 { + --bs-gutter-x: 0 + } + .g-lg-0, + .gy-lg-0 { + --bs-gutter-y: 0 + } + .g-lg-1, + .gx-lg-1 { + --bs-gutter-x: 0.25rem + } + .g-lg-1, + .gy-lg-1 { + --bs-gutter-y: 0.25rem + } + .g-lg-2, + .gx-lg-2 { + --bs-gutter-x: 0.5rem + } + .g-lg-2, + .gy-lg-2 { + --bs-gutter-y: 0.5rem + } + .g-lg-3, + .gx-lg-3 { + --bs-gutter-x: 1rem + } + .g-lg-3, + .gy-lg-3 { + --bs-gutter-y: 1rem + } + .g-lg-4, + .gx-lg-4 { + --bs-gutter-x: 1.5rem + } + .g-lg-4, + .gy-lg-4 { + --bs-gutter-y: 1.5rem + } + .g-lg-5, + .gx-lg-5 { + --bs-gutter-x: 3rem + } + .g-lg-5, + .gy-lg-5 { + --bs-gutter-y: 3rem + } +} + +@media (min-width:1200px) { + .col-xl { + flex: 1 0 0% + } + .row-cols-xl-auto>* { + flex: 0 0 auto; + width: auto + } + .row-cols-xl-1>* { + flex: 0 0 auto; + width: 100% + } + .row-cols-xl-2>* { + flex: 0 0 auto; + width: 50% + } + .row-cols-xl-3>* { + flex: 0 0 auto; + width: 33.333333% + } + .row-cols-xl-4>* { + flex: 0 0 auto; + width: 25% + } + .row-cols-xl-5>* { + flex: 0 0 auto; + width: 20% + } + .row-cols-xl-6>* { + flex: 0 0 auto; + width: 16.666667% + } + .col-xl-auto { + flex: 0 0 auto; + width: auto + } + .col-xl-1 { + flex: 0 0 auto; + width: 8.333333% + } + .col-xl-2 { + flex: 0 0 auto; + width: 16.666667% + } + .col-xl-3 { + flex: 0 0 auto; + width: 25% + } + .col-xl-4 { + flex: 0 0 auto; + width: 33.333333% + } + .col-xl-5 { + flex: 0 0 auto; + width: 41.666667% + } + .col-xl-6 { + flex: 0 0 auto; + width: 50% + } + .col-xl-7 { + flex: 0 0 auto; + width: 58.333333% + } + .col-xl-8 { + flex: 0 0 auto; + width: 66.666667% + } + .col-xl-9 { + flex: 0 0 auto; + width: 75% + } + .col-xl-10 { + flex: 0 0 auto; + width: 83.333333% + } + .col-xl-11 { + flex: 0 0 auto; + width: 91.666667% + } + .col-xl-12 { + flex: 0 0 auto; + width: 100% + } + .offset-xl-0 { + margin-left: 0 + } + .offset-xl-1 { + margin-left: 8.333333% + } + .offset-xl-2 { + margin-left: 16.666667% + } + .offset-xl-3 { + margin-left: 25% + } + .offset-xl-4 { + margin-left: 33.333333% + } + .offset-xl-5 { + margin-left: 41.666667% + } + .offset-xl-6 { + margin-left: 50% + } + .offset-xl-7 { + margin-left: 58.333333% + } + .offset-xl-8 { + margin-left: 66.666667% + } + .offset-xl-9 { + margin-left: 75% + } + .offset-xl-10 { + margin-left: 83.333333% + } + .offset-xl-11 { + margin-left: 91.666667% + } + .g-xl-0, + .gx-xl-0 { + --bs-gutter-x: 0 + } + .g-xl-0, + .gy-xl-0 { + --bs-gutter-y: 0 + } + .g-xl-1, + .gx-xl-1 { + --bs-gutter-x: 0.25rem + } + .g-xl-1, + .gy-xl-1 { + --bs-gutter-y: 0.25rem + } + .g-xl-2, + .gx-xl-2 { + --bs-gutter-x: 0.5rem + } + .g-xl-2, + .gy-xl-2 { + --bs-gutter-y: 0.5rem + } + .g-xl-3, + .gx-xl-3 { + --bs-gutter-x: 1rem + } + .g-xl-3, + .gy-xl-3 { + --bs-gutter-y: 1rem + } + .g-xl-4, + .gx-xl-4 { + --bs-gutter-x: 1.5rem + } + .g-xl-4, + .gy-xl-4 { + --bs-gutter-y: 1.5rem + } + .g-xl-5, + .gx-xl-5 { + --bs-gutter-x: 3rem + } + .g-xl-5, + .gy-xl-5 { + --bs-gutter-y: 3rem + } +} + +@media (min-width:1400px) { + .col-xxl { + flex: 1 0 0% + } + .row-cols-xxl-auto>* { + flex: 0 0 auto; + width: auto + } + .row-cols-xxl-1>* { + flex: 0 0 auto; + width: 100% + } + .row-cols-xxl-2>* { + flex: 0 0 auto; + width: 50% + } + .row-cols-xxl-3>* { + flex: 0 0 auto; + width: 33.333333% + } + .row-cols-xxl-4>* { + flex: 0 0 auto; + width: 25% + } + .row-cols-xxl-5>* { + flex: 0 0 auto; + width: 20% + } + .row-cols-xxl-6>* { + flex: 0 0 auto; + width: 16.666667% + } + .col-xxl-auto { + flex: 0 0 auto; + width: auto + } + .col-xxl-1 { + flex: 0 0 auto; + width: 8.333333% + } + .col-xxl-2 { + flex: 0 0 auto; + width: 16.666667% + } + .col-xxl-3 { + flex: 0 0 auto; + width: 25% + } + .col-xxl-4 { + flex: 0 0 auto; + width: 33.333333% + } + .col-xxl-5 { + flex: 0 0 auto; + width: 41.666667% + } + .col-xxl-6 { + flex: 0 0 auto; + width: 50% + } + .col-xxl-7 { + flex: 0 0 auto; + width: 58.333333% + } + .col-xxl-8 { + flex: 0 0 auto; + width: 66.666667% + } + .col-xxl-9 { + flex: 0 0 auto; + width: 75% + } + .col-xxl-10 { + flex: 0 0 auto; + width: 83.333333% + } + .col-xxl-11 { + flex: 0 0 auto; + width: 91.666667% + } + .col-xxl-12 { + flex: 0 0 auto; + width: 100% + } + .offset-xxl-0 { + margin-left: 0 + } + .offset-xxl-1 { + margin-left: 8.333333% + } + .offset-xxl-2 { + margin-left: 16.666667% + } + .offset-xxl-3 { + margin-left: 25% + } + .offset-xxl-4 { + margin-left: 33.333333% + } + .offset-xxl-5 { + margin-left: 41.666667% + } + .offset-xxl-6 { + margin-left: 50% + } + .offset-xxl-7 { + margin-left: 58.333333% + } + .offset-xxl-8 { + margin-left: 66.666667% + } + .offset-xxl-9 { + margin-left: 75% + } + .offset-xxl-10 { + margin-left: 83.333333% + } + .offset-xxl-11 { + margin-left: 91.666667% + } + .g-xxl-0, + .gx-xxl-0 { + --bs-gutter-x: 0 + } + .g-xxl-0, + .gy-xxl-0 { + --bs-gutter-y: 0 + } + .g-xxl-1, + .gx-xxl-1 { + --bs-gutter-x: 0.25rem + } + .g-xxl-1, + .gy-xxl-1 { + --bs-gutter-y: 0.25rem + } + .g-xxl-2, + .gx-xxl-2 { + --bs-gutter-x: 0.5rem + } + .g-xxl-2, + .gy-xxl-2 { + --bs-gutter-y: 0.5rem + } + .g-xxl-3, + .gx-xxl-3 { + --bs-gutter-x: 1rem + } + .g-xxl-3, + .gy-xxl-3 { + --bs-gutter-y: 1rem + } + .g-xxl-4, + .gx-xxl-4 { + --bs-gutter-x: 1.5rem + } + .g-xxl-4, + .gy-xxl-4 { + --bs-gutter-y: 1.5rem + } + .g-xxl-5, + .gx-xxl-5 { + --bs-gutter-x: 3rem + } + .g-xxl-5, + .gy-xxl-5 { + --bs-gutter-y: 3rem + } +} + +.table { + --bs-table-bg: transparent; + --bs-table-accent-bg: transparent; + --bs-table-striped-color: #212529; + --bs-table-striped-bg: rgba(0, 0, 0, 0.05); + --bs-table-active-color: #212529; + --bs-table-active-bg: rgba(0, 0, 0, 0.1); + --bs-table-hover-color: #212529; + --bs-table-hover-bg: rgba(0, 0, 0, 0.075); + width: 100%; + margin-bottom: 1rem; + color: #212529; + vertical-align: top; + border-color: #dee2e6 +} + +.table>:not(caption)>*>* { + padding: .5rem .5rem; + background-color: var(--bs-table-bg); + background-image: linear-gradient(var(--bs-table-accent-bg), var(--bs-table-accent-bg)); + border-bottom-width: 1px +} + +.table>tbody { + vertical-align: inherit +} + +.table>thead { + vertical-align: bottom +} + +.table>:not(:last-child)>:last-child>* { + border-bottom-color: currentColor +} + +.caption-top { + caption-side: top +} + +.table-sm>:not(caption)>*>* { + padding: .25rem .25rem +} + +.table-bordered>:not(caption)>* { + border-width: 1px 0 +} + +.table-bordered>:not(caption)>*>* { + border-width: 0 1px +} + +.table-borderless>:not(caption)>*>* { + border-bottom-width: 0 +} + +.table-striped>tbody>tr:nth-of-type(odd) { + --bs-table-accent-bg: var(--bs-table-striped-bg); + color: var(--bs-table-striped-color) +} + +.table-active { + --bs-table-accent-bg: var(--bs-table-active-bg); + color: var(--bs-table-active-color) +} + +.table-hover>tbody>tr:hover { + --bs-table-accent-bg: var(--bs-table-hover-bg); + color: var(--bs-table-hover-color) +} + +.table-primary { + --bs-table-bg: #bbd6fe; + --bs-table-striped-bg: #b3cdf3; + --bs-table-striped-color: #212529; + --bs-table-active-bg: #acc4e9; + --bs-table-active-color: #212529; + --bs-table-hover-bg: #afc9ee; + --bs-table-hover-color: #212529; + color: #212529; + border-color: #acc4e9 +} + +.table-secondary { + --bs-table-bg: #d6d8db; + --bs-table-striped-bg: #cdcfd2; + --bs-table-striped-color: #212529; + --bs-table-active-bg: #c4c6c9; + --bs-table-active-color: #212529; + --bs-table-hover-bg: #c8cbce; + --bs-table-hover-color: #212529; + color: #212529; + border-color: #c4c6c9 +} + +.table-success { + --bs-table-bg: #c3e6cb; + --bs-table-striped-bg: #bbdcc3; + --bs-table-striped-color: #212529; + --bs-table-active-bg: #b3d3bb; + --bs-table-active-color: #212529; + --bs-table-hover-bg: #b7d8bf; + --bs-table-hover-color: #212529; + color: #212529; + border-color: #b3d3bb +} + +.table-info { + --bs-table-bg: #bee5eb; + --bs-table-striped-bg: #b6dbe1; + --bs-table-striped-color: #212529; + --bs-table-active-bg: #aed2d8; + --bs-table-active-color: #212529; + --bs-table-hover-bg: #b2d7dc; + --bs-table-hover-color: #212529; + color: #212529; + border-color: #aed2d8 +} + +.table-warning { + --bs-table-bg: #ffeeba; + --bs-table-striped-bg: #f4e4b3; + --bs-table-striped-color: #212529; + --bs-table-active-bg: #e9daac; + --bs-table-active-color: #212529; + --bs-table-hover-bg: #eedfaf; + --bs-table-hover-color: #212529; + color: #212529; + border-color: #e9daac +} + +.table-danger { + --bs-table-bg: #f5c6cb; + --bs-table-striped-bg: #eabec3; + --bs-table-striped-color: #212529; + --bs-table-active-bg: #e0b6bb; + --bs-table-active-color: #212529; + --bs-table-hover-bg: #e5babf; + --bs-table-hover-color: #212529; + color: #212529; + border-color: #e0b6bb +} + +.table-light { + --bs-table-bg: #f8f9fa; + --bs-table-striped-bg: #edeef0; + --bs-table-striped-color: #212529; + --bs-table-active-bg: #e3e4e5; + --bs-table-active-color: #212529; + --bs-table-hover-bg: #e8e9ea; + --bs-table-hover-color: #212529; + color: #212529; + border-color: #e3e4e5 +} + +.table-dark { + --bs-table-bg: #343a40; + --bs-table-striped-bg: #3e444a; + --bs-table-striped-color: #fff; + --bs-table-active-bg: #484e53; + --bs-table-active-color: #fff; + --bs-table-hover-bg: #43494e; + --bs-table-hover-color: #fff; + color: #fff; + border-color: #484e53 +} + +.table-responsive { + overflow-x: auto; + -webkit-overflow-scrolling: touch +} + +@media (max-width:575.98px) { + .table-responsive-sm { + overflow-x: auto; + -webkit-overflow-scrolling: touch + } +} + +@media (max-width:767.98px) { + .table-responsive-md { + overflow-x: auto; + -webkit-overflow-scrolling: touch + } +} + +@media (max-width:991.98px) { + .table-responsive-lg { + overflow-x: auto; + -webkit-overflow-scrolling: touch + } +} + +@media (max-width:1199.98px) { + .table-responsive-xl { + overflow-x: auto; + -webkit-overflow-scrolling: touch + } +} + +@media (max-width:1399.98px) { + .table-responsive-xxl { + overflow-x: auto; + -webkit-overflow-scrolling: touch + } +} + +.form-label { + margin-bottom: .5rem +} + +.col-form-label { + padding-top: calc(.375rem + 1px); + padding-bottom: calc(.375rem + 1px); + margin-bottom: 0; + font-size: inherit; + line-height: 1.5 +} + +.col-form-label-lg { + padding-top: calc(.5rem + 1px); + padding-bottom: calc(.5rem + 1px); + font-size: 1.25rem +} + +.col-form-label-sm { + padding-top: calc(.25rem + 1px); + padding-bottom: calc(.25rem + 1px); + font-size: .875rem +} + +.form-text { + margin-top: .25rem; + font-size: .875em; + color: #6c757d +} + +.form-control { + display: block; + width: 100%; + min-height: calc(1.5em + .75rem + 2px); + padding: .375rem .75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #ced4da; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border-radius: .25rem; + transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out +} + +@media (prefers-reduced-motion:reduce) { + .form-control { + transition: none + } +} + +.form-control:focus { + color: #495057; + background-color: #fff; + border-color: #8bbafe; + outline: 0; + box-shadow: 0 0 0 .2rem rgba(13, 110, 253, .25) +} + +.form-control::-webkit-input-placeholder { + color: #6c757d; + opacity: 1 +} + +.form-control::-moz-placeholder { + color: #6c757d; + opacity: 1 +} + +.form-control::-ms-input-placeholder { + color: #6c757d; + opacity: 1 +} + +.form-control::placeholder { + color: #6c757d; + opacity: 1 +} + +.form-control:disabled, +.form-control[readonly] { + background-color: #e9ecef; + opacity: 1 +} + +.form-control-plaintext { + display: block; + width: 100%; + padding: .375rem 0; + margin-bottom: 0; + line-height: 1.5; + color: #212529; + background-color: transparent; + border: solid transparent; + border-width: 1px 0 +} + +.form-control-plaintext.form-control-lg, +.form-control-plaintext.form-control-sm { + padding-right: 0; + padding-left: 0 +} + +.form-control-sm { + min-height: calc(1.5em + .5rem + 2px); + padding: .25rem .5rem; + font-size: .875rem; + border-radius: .2rem +} + +.form-control-lg { + min-height: calc(1.5em + 1rem + 2px); + padding: .5rem 1rem; + font-size: 1.25rem; + border-radius: .3rem +} + +.form-control-color { + max-width: 3rem; + padding: .375rem +} + +.form-control-color::-moz-color-swatch { + border-radius: .25rem +} + +.form-control-color::-webkit-color-swatch { + border-radius: .25rem +} + +.form-select { + display: block; + width: 100%; + height: calc(1.5em + .75rem + 2px); + padding: .375rem 1.75rem .375rem .75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + vertical-align: middle; + background-color: #fff; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right .75rem center; + background-size: 16px 12px; + border: 1px solid #ced4da; + border-radius: .25rem; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none +} + +.form-select:focus { + border-color: #8bbafe; + outline: 0; + box-shadow: 0 0 0 .2rem rgba(13, 110, 253, .25) +} + +.form-select:focus::-ms-value { + color: #495057; + background-color: #fff +} + +.form-select[multiple], +.form-select[size]:not([size="1"]) { + height: auto; + padding-right: .75rem; + background-image: none +} + +.form-select:disabled { + color: #6c757d; + background-color: #e9ecef +} + +.form-select:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 #495057 +} + +.form-select-sm { + height: calc(1.5em + .5rem + 2px); + padding-top: .25rem; + padding-bottom: .25rem; + padding-left: .5rem; + font-size: .875rem +} + +.form-select-lg { + height: calc(1.5em + 1rem + 2px); + padding-top: .5rem; + padding-bottom: .5rem; + padding-left: 1rem; + font-size: 1.25rem +} + +.form-check { + display: block; + min-height: 1.5rem; + padding-left: 1.75em; + margin-bottom: .125rem +} + +.form-check .form-check-input { + float: left; + margin-left: -1.75em +} + +.form-check-input { + width: 1.25em; + height: 1.25em; + margin-top: .125em; + vertical-align: top; + background-color: #fff; + background-repeat: no-repeat; + background-position: center; + background-size: contain; + border: 1px solid rgba(0, 0, 0, .25); + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + -webkit-print-color-adjust: exact; + color-adjust: exact; + transition: background-color .15s ease-in-out, background-position .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out +} + +@media (prefers-reduced-motion:reduce) { + .form-check-input { + transition: none + } +} + +.form-check-input[type=checkbox] { + border-radius: .25em +} + +.form-check-input[type=radio] { + border-radius: 50% +} + +.form-check-input:active { + -webkit-filter: brightness(90%); + filter: brightness(90%) +} + +.form-check-input:focus { + border-color: #8bbafe; + outline: 0; + box-shadow: 0 0 0 .2rem rgba(13, 110, 253, .25) +} + +.form-check-input:checked { + background-color: var(--bs-primary); + ; + border-color: var(--bs-primary); +} + +.form-check-input:checked[type=checkbox] { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e") +} + +.form-check-input:checked[type=radio] { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e") +} + +.form-check-input[type=checkbox]:indeterminate { + background-color: var(--bs-primary); + ; + border-color: var(--bs-primary); + ; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e") +} + +.form-check-input:disabled { + pointer-events: none; + -webkit-filter: none; + filter: none; + opacity: .5 +} + +.form-check-input:disabled~.form-check-label, +.form-check-input[disabled]~.form-check-label { + opacity: .5 +} + +.form-switch { + padding-left: 2.5em +} + +.form-switch .form-check-input { + width: 2em; + margin-left: -2.5em; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e"); + background-position: left center; + border-radius: 2em +} + +.form-switch .form-check-input:focus { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%238bbafe'/%3e%3c/svg%3e") +} + +.form-switch .form-check-input:checked { + background-position: right center; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e") +} + +.form-check-inline { + display: inline-block; + margin-right: 1rem +} + +.btn-check { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none +} + +.form-file { + --bs-form-file-height: calc(1.5em + 0.75rem + 2px); + position: relative +} + +.form-file-input { + position: relative; + z-index: 2; + width: 100%; + height: var(--bs-form-file-height); + margin: 0; + opacity: 0 +} + +.form-file-input:focus-within~.form-file-label { + border-color: #8bbafe; + box-shadow: 0 0 0 .2rem rgba(13, 110, 253, .25) +} + +.form-file-input:disabled~.form-file-label .form-file-text, +.form-file-input[disabled]~.form-file-label .form-file-text { + background-color: #e9ecef +} + +.form-file-label { + position: absolute; + top: 0; + right: 0; + left: 0; + z-index: 1; + display: flex; + height: var(--bs-form-file-height); + border-color: #ced4da; + border-radius: .25rem +} + +.form-file-text { + display: block; + flex-grow: 1; + padding: .375rem .75rem; + overflow: hidden; + font-weight: 400; + line-height: 1.5; + color: #495057; + text-overflow: ellipsis; + white-space: nowrap; + background-color: #fff; + border-color: inherit; + border-style: solid; + border-width: 1px; + border-top-left-radius: inherit; + border-bottom-left-radius: inherit +} + +.form-file-button { + display: block; + flex-shrink: 0; + padding: .375rem .75rem; + margin-left: -1px; + line-height: 1.5; + color: #495057; + background-color: #e9ecef; + border-color: inherit; + border-style: solid; + border-width: 1px; + border-top-right-radius: inherit; + border-bottom-right-radius: inherit +} + +.form-file-sm { + --bs-form-file-height: calc(1.5em + 0.5rem + 2px); + font-size: .875rem +} + +.form-file-sm .form-file-button, +.form-file-sm .form-file-text { + padding: .25rem .5rem +} + +.form-file-lg { + --bs-form-file-height: calc(1.5em + 1rem + 2px); + font-size: 1.25rem +} + +.form-file-lg .form-file-button, +.form-file-lg .form-file-text { + padding: .5rem 1rem +} + +.form-range { + width: 100%; + height: 1.4rem; + padding: 0; + background-color: transparent; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none +} + +.form-range:focus { + outline: 0 +} + +.form-range:focus::-webkit-slider-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 .2rem rgba(13, 110, 253, .25) +} + +.form-range:focus::-moz-range-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 .2rem rgba(13, 110, 253, .25) +} + +.form-range:focus::-ms-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 .2rem rgba(13, 110, 253, .25) +} + +.form-range::-moz-focus-outer { + border: 0 +} + +.form-range::-webkit-slider-thumb { + width: 1rem; + height: 1rem; + margin-top: -.25rem; + background-color: var(--bs-primary); + ; + border: 0; + border-radius: 1rem; + -webkit-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out; + transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out; + -webkit-appearance: none; + appearance: none +} + +@media (prefers-reduced-motion:reduce) { + .form-range::-webkit-slider-thumb { + -webkit-transition: none; + transition: none + } +} + +.form-range::-webkit-slider-thumb:active { + background-color: #bed8fe +} + +.form-range::-webkit-slider-runnable-track { + width: 100%; + height: .5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem +} + +.form-range::-moz-range-thumb { + width: 1rem; + height: 1rem; + background-color: var(--bs-primary); + ; + border: 0; + border-radius: 1rem; + -moz-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out; + transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out; + -moz-appearance: none; + appearance: none +} + +@media (prefers-reduced-motion:reduce) { + .form-range::-moz-range-thumb { + -moz-transition: none; + transition: none + } +} + +.form-range::-moz-range-thumb:active { + background-color: #bed8fe +} + +.form-range::-moz-range-track { + width: 100%; + height: .5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem +} + +.form-range::-ms-thumb { + width: 1rem; + height: 1rem; + margin-top: 0; + margin-right: .2rem; + margin-left: .2rem; + background-color: var(--bs-primary); + ; + border: 0; + border-radius: 1rem; + -ms-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out; + transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out; + appearance: none +} + +@media (prefers-reduced-motion:reduce) { + .form-range::-ms-thumb { + -ms-transition: none; + transition: none + } +} + +.form-range::-ms-thumb:active { + background-color: #bed8fe +} + +.form-range::-ms-track { + width: 100%; + height: .5rem; + color: transparent; + cursor: pointer; + background-color: transparent; + border-color: transparent; + border-width: .5rem +} + +.form-range::-ms-fill-lower { + background-color: #dee2e6; + border-radius: 1rem +} + +.form-range::-ms-fill-upper { + margin-right: 15px; + background-color: #dee2e6; + border-radius: 1rem +} + +.form-range:disabled { + pointer-events: none +} + +.form-range:disabled::-webkit-slider-thumb { + background-color: #adb5bd +} + +.form-range:disabled::-moz-range-thumb { + background-color: #adb5bd +} + +.form-range:disabled::-ms-thumb { + background-color: #adb5bd +} + +.input-group { + position: relative; + display: flex; + flex-wrap: wrap; + align-items: stretch; + width: 100% +} + +.input-group>.form-control, +.input-group>.form-file, +.input-group>.form-select { + position: relative; + flex: 1 1 auto; + width: 1%; + min-width: 0 +} + +.input-group>.form-control:focus, +.input-group>.form-file .form-file-input:focus~.form-file-label, +.input-group>.form-select:focus { + z-index: 3 +} + +.input-group>.form-file>.form-file-input:focus { + z-index: 4 +} + +.input-group>.form-file:not(:last-child)>.form-file-label { + border-top-right-radius: 0; + border-bottom-right-radius: 0 +} + +.input-group>.form-file:not(:first-child)>.form-file-label { + border-top-left-radius: 0; + border-bottom-left-radius: 0 +} + +.input-group .btn { + position: relative; + z-index: 2 +} + +.input-group .btn:focus { + z-index: 3 +} + +.input-group-text { + display: flex; + align-items: center; + padding: .375rem .75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + text-align: center; + white-space: nowrap; + background-color: #e9ecef; + border: 1px solid #ced4da; + border-radius: .25rem +} + +.input-group-lg>.form-control { + min-height: calc(1.5em + 1rem + 2px) +} + +.input-group-lg>.form-select { + height: calc(1.5em + 1rem + 2px) +} + +.input-group-lg>.btn, +.input-group-lg>.form-control, +.input-group-lg>.form-select, +.input-group-lg>.input-group-text { + padding: .5rem 1rem; + font-size: 1.25rem; + border-radius: .3rem +} + +.input-group-sm>.form-control { + min-height: calc(1.5em + .5rem + 2px) +} + +.input-group-sm>.form-select { + height: calc(1.5em + .5rem + 2px) +} + +.input-group-sm>.btn, +.input-group-sm>.form-control, +.input-group-sm>.form-select, +.input-group-sm>.input-group-text { + padding: .25rem .5rem; + font-size: .875rem; + border-radius: .2rem +} + +.input-group-lg>.form-select, +.input-group-sm>.form-select { + padding-right: 1.75rem +} + +.input-group>.dropdown-toggle:nth-last-child(n+3), +.input-group>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu) { + border-top-right-radius: 0; + border-bottom-right-radius: 0 +} + +.input-group>:not(:first-child):not(.dropdown-menu) { + margin-left: -1px; + border-top-left-radius: 0; + border-bottom-left-radius: 0 +} + +.valid-feedback { + display: none; + width: 100%; + margin-top: .25rem; + font-size: .875em; + color: #28a745 +} + +.valid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: .25rem .5rem; + margin-top: .1rem; + font-size: .875rem; + color: #fff; + background-color: rgba(40, 167, 69, .9); + border-radius: .25rem +} + +.is-valid~.valid-feedback, +.is-valid~.valid-tooltip, +.was-validated :valid~.valid-feedback, +.was-validated :valid~.valid-tooltip { + display: block +} + +.form-control.is-valid, +.was-validated .form-control:valid { + border-color: #28a745; + padding-right: calc(1.5em + .75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(.375em + .1875rem) center; + background-size: calc(.75em + .375rem) calc(.75em + .375rem) +} + +.form-control.is-valid:focus, +.was-validated .form-control:valid:focus { + border-color: #28a745; + box-shadow: 0 0 0 .2rem rgba(40, 167, 69, .25) +} + +.was-validated textarea.form-control:valid, +textarea.form-control.is-valid { + padding-right: calc(1.5em + .75rem); + background-position: top calc(.375em + .1875rem) right calc(.375em + .1875rem) +} + +.form-select.is-valid, +.was-validated .form-select:valid { + border-color: #28a745; + padding-right: calc(.75em + 2.3125rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); + background-position: right .75rem center, center right 1.75rem; + background-size: 16px 12px, calc(.75em + .375rem) calc(.75em + .375rem) +} + +.form-select.is-valid:focus, +.was-validated .form-select:valid:focus { + border-color: #28a745; + box-shadow: 0 0 0 .2rem rgba(40, 167, 69, .25) +} + +.form-check-input.is-valid, +.was-validated .form-check-input:valid { + border-color: #28a745 +} + +.form-check-input.is-valid:checked, +.was-validated .form-check-input:valid:checked { + background-color: #28a745 +} + +.form-check-input.is-valid:focus, +.was-validated .form-check-input:valid:focus { + box-shadow: 0 0 0 .2rem rgba(40, 167, 69, .25) +} + +.form-check-input.is-valid~.form-check-label, +.was-validated .form-check-input:valid~.form-check-label { + color: #28a745 +} + +.form-check-inline .form-check-input~.valid-feedback { + margin-left: .5em +} + +.form-file-input.is-valid~.form-file-label, +.was-validated .form-file-input:valid~.form-file-label { + border-color: #28a745 +} + +.form-file-input.is-valid:focus~.form-file-label, +.was-validated .form-file-input:valid:focus~.form-file-label { + border-color: #28a745; + box-shadow: 0 0 0 .2rem rgba(40, 167, 69, .25) +} + +.invalid-feedback { + display: none; + width: 100%; + margin-top: .25rem; + font-size: .875em; + color: #dc3545 +} + +.invalid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: .25rem .5rem; + margin-top: .1rem; + font-size: .875rem; + color: #fff; + background-color: rgba(220, 53, 69, .9); + border-radius: .25rem +} + +.is-invalid~.invalid-feedback, +.is-invalid~.invalid-tooltip, +.was-validated :invalid~.invalid-feedback, +.was-validated :invalid~.invalid-tooltip { + display: block +} + +.form-control.is-invalid, +.was-validated .form-control:invalid { + border-color: #dc3545; + padding-right: calc(1.5em + .75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(.375em + .1875rem) center; + background-size: calc(.75em + .375rem) calc(.75em + .375rem) +} + +.form-control.is-invalid:focus, +.was-validated .form-control:invalid:focus { + border-color: #dc3545; + box-shadow: 0 0 0 .2rem rgba(220, 53, 69, .25) +} + +.was-validated textarea.form-control:invalid, +textarea.form-control.is-invalid { + padding-right: calc(1.5em + .75rem); + background-position: top calc(.375em + .1875rem) right calc(.375em + .1875rem) +} + +.form-select.is-invalid, +.was-validated .form-select:invalid { + border-color: #dc3545; + padding-right: calc(.75em + 2.3125rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"), url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"); + background-position: right .75rem center, center right 1.75rem; + background-size: 16px 12px, calc(.75em + .375rem) calc(.75em + .375rem) +} + +.form-select.is-invalid:focus, +.was-validated .form-select:invalid:focus { + border-color: #dc3545; + box-shadow: 0 0 0 .2rem rgba(220, 53, 69, .25) +} + +.form-check-input.is-invalid, +.was-validated .form-check-input:invalid { + border-color: #dc3545 +} + +.form-check-input.is-invalid:checked, +.was-validated .form-check-input:invalid:checked { + background-color: #dc3545 +} + +.form-check-input.is-invalid:focus, +.was-validated .form-check-input:invalid:focus { + box-shadow: 0 0 0 .2rem rgba(220, 53, 69, .25) +} + +.form-check-input.is-invalid~.form-check-label, +.was-validated .form-check-input:invalid~.form-check-label { + color: #dc3545 +} + +.form-check-inline .form-check-input~.invalid-feedback { + margin-left: .5em +} + +.form-file-input.is-invalid~.form-file-label, +.was-validated .form-file-input:invalid~.form-file-label { + border-color: #dc3545 +} + +.form-file-input.is-invalid:focus~.form-file-label, +.was-validated .form-file-input:invalid:focus~.form-file-label { + border-color: #dc3545; + box-shadow: 0 0 0 .2rem rgba(220, 53, 69, .25) +} + +.btn, +.more-link { + display: inline-block; + font-weight: 600; + line-height: 1.35; + color: #212529; + text-align: center; + text-decoration: none; + vertical-align: middle; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-color: transparent; + border: 2px solid transparent; + padding: 0.688rem 1.375rem; + letter-spacing: 0.01rem; + font-size: 1.125rem; + border-radius: 6.25rem; + transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out +} + +@media (prefers-reduced-motion:reduce) { + .btn { + transition: none + } +} + +.btn:hover { + color: #212529 +} + +.btn-check:focus+.btn, +.btn:focus { + outline: 0; + box-shadow: 0 0 0 .2rem rgba(13, 110, 253, .25) +} + +.btn.disabled, +.btn:disabled, +fieldset:disabled .btn { + pointer-events: none; + opacity: .65 +} + +.btn-primary { + color: #fff; + background-color: var(--bs-primary); + ; + border-color: var(--bs-primary); +} + +.btn-primary:hover { + color: #fff; + background-color: var(--bs-primary); + border-color: var(--bs-primary) +} + +.btn-check:focus+.btn-primary, +.btn-primary:focus { + color: #fff; + background-color: var(--bs-primary); + border-color: var(--bs-primary); + box-shadow: 0 0 0 .2rem rgba(49, 132, 253, .5) +} + +.btn-check:active+.btn-primary, +.btn-check:checked+.btn-primary, +.btn-primary.active, +.btn-primary:active, +.show>.btn-primary.dropdown-toggle { + color: #fff; + background-color: var(--bs-primary); + border-color: #0252c9 +} + +.btn-check:active+.btn-primary:focus, +.btn-check:checked+.btn-primary:focus, +.btn-primary.active:focus, +.btn-primary:active:focus, +.show>.btn-primary.dropdown-toggle:focus { + box-shadow: 0 0 0 .2rem rgba(49, 132, 253, .5) +} + +.btn-primary.disabled, +.btn-primary:disabled { + color: #fff; + background-color: var(--bs-primary); + ; + border-color: var(--bs-primary); +} + +.btn-secondary { + color: #fff; + background-color: var(--bs-secondary); + border-color: var(--bs-secondary) +} + +.btn-secondary:hover { + color: #fff; + background-color: var(--bs-secondary); + border-color: var(--bs-secondary) +} + +.btn-check:focus+.btn-secondary, +.btn-secondary:focus { + color: #fff; + background-color: var(--bs-secondary); + border-color: var(--bs-secondary); + box-shadow: 0 0 0 .2rem var(--bs-primary-shadow) +} + +.btn-check:active+.btn-secondary, +.btn-check:checked+.btn-secondary, +.btn-secondary.active, +.btn-secondary:active, +.show>.btn-secondary.dropdown-toggle { + color: #fff; + background-color: var(--bs-secondary); + border-color: var(--bs-secondary) +} + +.btn-check:active+.btn-secondary:focus, +.btn-check:checked+.btn-secondary:focus, +.btn-secondary.active:focus, +.btn-secondary:active:focus, +.show>.btn-secondary.dropdown-toggle:focus { + box-shadow: 0 0 0 .2rem var(--bs-primary-shadow) +} + +.btn-secondary.disabled, +.btn-secondary:disabled { + color: #fff; + background-color: #6c757d; + border-color: #6c757d +} + +.btn-success { + color: #fff; + background-color: #28a745; + border-color: #28a745 +} + +.btn-success:hover { + color: #fff; + background-color: #218838; + border-color: #1e7e34 +} + +.btn-check:focus+.btn-success, +.btn-success:focus { + color: #fff; + background-color: #218838; + border-color: #1e7e34; + box-shadow: 0 0 0 .2rem rgba(72, 180, 97, .5) +} + +.btn-check:active+.btn-success, +.btn-check:checked+.btn-success, +.btn-success.active, +.btn-success:active, +.show>.btn-success.dropdown-toggle { + color: #fff; + background-color: #1e7e34; + border-color: #1c7430 +} + +.btn-check:active+.btn-success:focus, +.btn-check:checked+.btn-success:focus, +.btn-success.active:focus, +.btn-success:active:focus, +.show>.btn-success.dropdown-toggle:focus { + box-shadow: 0 0 0 .2rem rgba(72, 180, 97, .5) +} + +.btn-success.disabled, +.btn-success:disabled { + color: #fff; + background-color: #28a745; + border-color: #28a745 +} + +.btn-info { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8 +} + +.btn-info:hover { + color: #fff; + background-color: #138496; + border-color: #117a8b +} + +.btn-check:focus+.btn-info, +.btn-info:focus { + color: #fff; + background-color: #138496; + border-color: #117a8b; + box-shadow: 0 0 0 .2rem rgba(58, 176, 195, .5) +} + +.btn-check:active+.btn-info, +.btn-check:checked+.btn-info, +.btn-info.active, +.btn-info:active, +.show>.btn-info.dropdown-toggle { + color: #fff; + background-color: #117a8b; + border-color: #10707f +} + +.btn-check:active+.btn-info:focus, +.btn-check:checked+.btn-info:focus, +.btn-info.active:focus, +.btn-info:active:focus, +.show>.btn-info.dropdown-toggle:focus { + box-shadow: 0 0 0 .2rem rgba(58, 176, 195, .5) +} + +.btn-info.disabled, +.btn-info:disabled { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8 +} + +.btn-warning { + color: #212529; + background-color: #ffc107; + border-color: #ffc107 +} + +.btn-warning:hover { + color: #212529; + background-color: #e0a800; + border-color: #d39e00 +} + +.btn-check:focus+.btn-warning, +.btn-warning:focus { + color: #212529; + background-color: #e0a800; + border-color: #d39e00; + box-shadow: 0 0 0 .2rem rgba(222, 170, 12, .5) +} + +.btn-check:active+.btn-warning, +.btn-check:checked+.btn-warning, +.btn-warning.active, +.btn-warning:active, +.show>.btn-warning.dropdown-toggle { + color: #212529; + background-color: #d39e00; + border-color: #c69500 +} + +.btn-check:active+.btn-warning:focus, +.btn-check:checked+.btn-warning:focus, +.btn-warning.active:focus, +.btn-warning:active:focus, +.show>.btn-warning.dropdown-toggle:focus { + box-shadow: 0 0 0 .2rem rgba(222, 170, 12, .5) +} + +.btn-warning.disabled, +.btn-warning:disabled { + color: #212529; + background-color: #ffc107; + border-color: #ffc107 +} + +.btn-danger { + color: #fff; + background-color: #dc3545; + border-color: #dc3545 +} + +.btn-danger:hover { + color: #fff; + background-color: #c82333; + border-color: #bd2130 +} + +.btn-check:focus+.btn-danger, +.btn-danger:focus { + color: #fff; + background-color: #c82333; + border-color: #bd2130; + box-shadow: 0 0 0 .2rem rgba(225, 83, 97, .5) +} + +.btn-check:active+.btn-danger, +.btn-check:checked+.btn-danger, +.btn-danger.active, +.btn-danger:active, +.show>.btn-danger.dropdown-toggle { + color: #fff; + background-color: #bd2130; + border-color: #b21f2d +} + +.btn-check:active+.btn-danger:focus, +.btn-check:checked+.btn-danger:focus, +.btn-danger.active:focus, +.btn-danger:active:focus, +.show>.btn-danger.dropdown-toggle:focus { + box-shadow: 0 0 0 .2rem rgba(225, 83, 97, .5) +} + +.btn-danger.disabled, +.btn-danger:disabled { + color: #fff; + background-color: #dc3545; + border-color: #dc3545 +} + +.btn-light { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa +} + +.btn-light:hover { + color: #212529; + background-color: #e2e6ea; + border-color: #dae0e5 +} + +.btn-check:focus+.btn-light, +.btn-light:focus { + color: #212529; + background-color: #e2e6ea; + border-color: #dae0e5; + box-shadow: 0 0 0 .2rem rgba(216, 217, 219, .5) +} + +.btn-check:active+.btn-light, +.btn-check:checked+.btn-light, +.btn-light.active, +.btn-light:active, +.show>.btn-light.dropdown-toggle { + color: #212529; + background-color: #dae0e5; + border-color: #d3d9df +} + +.btn-check:active+.btn-light:focus, +.btn-check:checked+.btn-light:focus, +.btn-light.active:focus, +.btn-light:active:focus, +.show>.btn-light.dropdown-toggle:focus { + box-shadow: 0 0 0 .2rem rgba(216, 217, 219, .5) +} + +.btn-light.disabled, +.btn-light:disabled { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa +} + +.btn-dark { + color: #fff; + background-color: #343a40; + border-color: #343a40 +} + +.btn-dark:hover { + color: #fff; + background-color: #23272b; + border-color: #1d2124 +} + +.btn-check:focus+.btn-dark, +.btn-dark:focus { + color: #fff; + background-color: #23272b; + border-color: #1d2124; + box-shadow: 0 0 0 .2rem rgba(82, 88, 93, .5) +} + +.btn-check:active+.btn-dark, +.btn-check:checked+.btn-dark, +.btn-dark.active, +.btn-dark:active, +.show>.btn-dark.dropdown-toggle { + color: #fff; + background-color: #1d2124; + border-color: #171a1d +} + +.btn-check:active+.btn-dark:focus, +.btn-check:checked+.btn-dark:focus, +.btn-dark.active:focus, +.btn-dark:active:focus, +.show>.btn-dark.dropdown-toggle:focus { + box-shadow: 0 0 0 .2rem rgba(82, 88, 93, .5) +} + +.btn-dark.disabled, +.btn-dark:disabled { + color: #fff; + background-color: #343a40; + border-color: #343a40 +} + +.btn-outline-primary { + color: var(--bs-primary); + ; + border-color: var(--bs-primary); +} + +.btn-outline-primary:hover { + color: #fff; + background-color: var(--bs-primary); + ; + border-color: var(--bs-primary); +} + +.btn-check:focus+.btn-outline-primary, +.btn-outline-primary:focus { + box-shadow: 0 0 0 .2rem rgba(13, 110, 253, .5) +} + +.btn-check:active+.btn-outline-primary, +.btn-check:checked+.btn-outline-primary, +.btn-outline-primary.active, +.btn-outline-primary.dropdown-toggle.show, +.btn-outline-primary:active { + color: #fff; + background-color: var(--bs-primary); + ; + border-color: var(--bs-primary); +} + +.btn-check:active+.btn-outline-primary:focus, +.btn-check:checked+.btn-outline-primary:focus, +.btn-outline-primary.active:focus, +.btn-outline-primary.dropdown-toggle.show:focus, +.btn-outline-primary:active:focus { + box-shadow: 0 0 0 .2rem rgba(13, 110, 253, .5) +} + +.btn-outline-primary.disabled, +.btn-outline-primary:disabled { + color: var(--bs-primary); + ; + background-color: transparent +} + +.btn-outline-secondary { + color: #6c757d; + border-color: #6c757d +} + +.btn-outline-secondary:hover { + color: #fff; + background-color: #6c757d; + border-color: #6c757d +} + +.btn-check:focus+.btn-outline-secondary, +.btn-outline-secondary:focus { + box-shadow: 0 0 0 .2rem rgba(108, 117, 125, .5) +} + +.btn-check:active+.btn-outline-secondary, +.btn-check:checked+.btn-outline-secondary, +.btn-outline-secondary.active, +.btn-outline-secondary.dropdown-toggle.show, +.btn-outline-secondary:active { + color: #fff; + background-color: #6c757d; + border-color: #6c757d +} + +.btn-check:active+.btn-outline-secondary:focus, +.btn-check:checked+.btn-outline-secondary:focus, +.btn-outline-secondary.active:focus, +.btn-outline-secondary.dropdown-toggle.show:focus, +.btn-outline-secondary:active:focus { + box-shadow: 0 0 0 .2rem rgba(108, 117, 125, .5) +} + +.btn-outline-secondary.disabled, +.btn-outline-secondary:disabled { + color: #6c757d; + background-color: transparent +} + +.btn-outline-success { + color: #28a745; + border-color: #28a745 +} + +.btn-outline-success:hover { + color: #fff; + background-color: #28a745; + border-color: #28a745 +} + +.btn-check:focus+.btn-outline-success, +.btn-outline-success:focus { + box-shadow: 0 0 0 .2rem rgba(40, 167, 69, .5) +} + +.btn-check:active+.btn-outline-success, +.btn-check:checked+.btn-outline-success, +.btn-outline-success.active, +.btn-outline-success.dropdown-toggle.show, +.btn-outline-success:active { + color: #fff; + background-color: #28a745; + border-color: #28a745 +} + +.btn-check:active+.btn-outline-success:focus, +.btn-check:checked+.btn-outline-success:focus, +.btn-outline-success.active:focus, +.btn-outline-success.dropdown-toggle.show:focus, +.btn-outline-success:active:focus { + box-shadow: 0 0 0 .2rem rgba(40, 167, 69, .5) +} + +.btn-outline-success.disabled, +.btn-outline-success:disabled { + color: #28a745; + background-color: transparent +} + +.btn-outline-info { + color: #17a2b8; + border-color: #17a2b8 +} + +.btn-outline-info:hover { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8 +} + +.btn-check:focus+.btn-outline-info, +.btn-outline-info:focus { + box-shadow: 0 0 0 .2rem rgba(23, 162, 184, .5) +} + +.btn-check:active+.btn-outline-info, +.btn-check:checked+.btn-outline-info, +.btn-outline-info.active, +.btn-outline-info.dropdown-toggle.show, +.btn-outline-info:active { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8 +} + +.btn-check:active+.btn-outline-info:focus, +.btn-check:checked+.btn-outline-info:focus, +.btn-outline-info.active:focus, +.btn-outline-info.dropdown-toggle.show:focus, +.btn-outline-info:active:focus { + box-shadow: 0 0 0 .2rem rgba(23, 162, 184, .5) +} + +.btn-outline-info.disabled, +.btn-outline-info:disabled { + color: #17a2b8; + background-color: transparent +} + +.btn-outline-warning { + color: #ffc107; + border-color: #ffc107 +} + +.btn-outline-warning:hover { + color: #212529; + background-color: #ffc107; + border-color: #ffc107 +} + +.btn-check:focus+.btn-outline-warning, +.btn-outline-warning:focus { + box-shadow: 0 0 0 .2rem rgba(255, 193, 7, .5) +} + +.btn-check:active+.btn-outline-warning, +.btn-check:checked+.btn-outline-warning, +.btn-outline-warning.active, +.btn-outline-warning.dropdown-toggle.show, +.btn-outline-warning:active { + color: #212529; + background-color: #ffc107; + border-color: #ffc107 +} + +.btn-check:active+.btn-outline-warning:focus, +.btn-check:checked+.btn-outline-warning:focus, +.btn-outline-warning.active:focus, +.btn-outline-warning.dropdown-toggle.show:focus, +.btn-outline-warning:active:focus { + box-shadow: 0 0 0 .2rem rgba(255, 193, 7, .5) +} + +.btn-outline-warning.disabled, +.btn-outline-warning:disabled { + color: #ffc107; + background-color: transparent +} + +.btn-outline-danger { + color: #dc3545; + border-color: #dc3545 +} + +.btn-outline-danger:hover { + color: #fff; + background-color: #dc3545; + border-color: #dc3545 +} + +.btn-check:focus+.btn-outline-danger, +.btn-outline-danger:focus { + box-shadow: 0 0 0 .2rem rgba(220, 53, 69, .5) +} + +.btn-check:active+.btn-outline-danger, +.btn-check:checked+.btn-outline-danger, +.btn-outline-danger.active, +.btn-outline-danger.dropdown-toggle.show, +.btn-outline-danger:active { + color: #fff; + background-color: #dc3545; + border-color: #dc3545 +} + +.btn-check:active+.btn-outline-danger:focus, +.btn-check:checked+.btn-outline-danger:focus, +.btn-outline-danger.active:focus, +.btn-outline-danger.dropdown-toggle.show:focus, +.btn-outline-danger:active:focus { + box-shadow: 0 0 0 .2rem rgba(220, 53, 69, .5) +} + +.btn-outline-danger.disabled, +.btn-outline-danger:disabled { + color: #dc3545; + background-color: transparent +} + +.btn-outline-light { + color: #f8f9fa; + border-color: #f8f9fa +} + +.btn-outline-light:hover { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa +} + +.btn-check:focus+.btn-outline-light, +.btn-outline-light:focus { + box-shadow: 0 0 0 .2rem rgba(248, 249, 250, .5) +} + +.btn-check:active+.btn-outline-light, +.btn-check:checked+.btn-outline-light, +.btn-outline-light.active, +.btn-outline-light.dropdown-toggle.show, +.btn-outline-light:active { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa +} + +.btn-check:active+.btn-outline-light:focus, +.btn-check:checked+.btn-outline-light:focus, +.btn-outline-light.active:focus, +.btn-outline-light.dropdown-toggle.show:focus, +.btn-outline-light:active:focus { + box-shadow: 0 0 0 .2rem rgba(248, 249, 250, .5) +} + +.btn-outline-light.disabled, +.btn-outline-light:disabled { + color: #f8f9fa; + background-color: transparent +} + +.btn-outline-dark { + color: #343a40; + border-color: #343a40 +} + +.btn-outline-dark:hover { + color: #fff; + background-color: #343a40; + border-color: #343a40 +} + +.btn-check:focus+.btn-outline-dark, +.btn-outline-dark:focus { + box-shadow: 0 0 0 .2rem rgba(52, 58, 64, .5) +} + +.btn-check:active+.btn-outline-dark, +.btn-check:checked+.btn-outline-dark, +.btn-outline-dark.active, +.btn-outline-dark.dropdown-toggle.show, +.btn-outline-dark:active { + color: #fff; + background-color: #343a40; + border-color: #343a40 +} + +.btn-check:active+.btn-outline-dark:focus, +.btn-check:checked+.btn-outline-dark:focus, +.btn-outline-dark.active:focus, +.btn-outline-dark.dropdown-toggle.show:focus, +.btn-outline-dark:active:focus { + box-shadow: 0 0 0 .2rem rgba(52, 58, 64, .5) +} + +.btn-outline-dark.disabled, +.btn-outline-dark:disabled { + color: #343a40; + background-color: transparent +} + +.btn-link { + font-weight: 600; + color: var(--bs-primary); + ; + text-decoration: underline +} + +.btn-link:hover, +.btn-link:focus { + color: var(--bs-primary) +} + +.btn-link.disabled, +.btn-link:disabled { + color: #6c757d +} + +.btn-group-lg>.btn, +.btn-lg { + padding: .5rem 1rem; + font-size: 1.25rem; + border-radius: .3rem +} + +.btn-group-sm>.btn, +.btn-sm { + padding: .25rem .5rem; + font-size: .875rem; + border-radius: .2rem +} + +.btn-block { + display: block; + width: 100% +} + +.btn-block+.btn-block { + margin-top: .5rem +} + +.fade { + transition: opacity .15s linear +} + +@media (prefers-reduced-motion:reduce) { + .fade { + transition: none + } +} + +.fade:not(.show) { + opacity: 0 +} + +.collapse:not(.show) { + display: none +} + +.collapsing { + height: 0; + overflow: hidden; + transition: height .35s ease +} + +@media (prefers-reduced-motion:reduce) { + .collapsing { + transition: none + } +} + +.dropdown, +.dropleft, +.dropright, +.dropup { + position: relative +} + +.dropdown-toggle { + white-space: nowrap +} + +.dropdown-toggle::after { + display: inline-block; + margin-left: .255em; + vertical-align: .255em; + content: ""; + border-top: .3em solid; + border-right: .3em solid transparent; + border-bottom: 0; + border-left: .3em solid transparent +} + +.dropdown-toggle:empty::after { + margin-left: 0 +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + min-width: 10rem; + padding: .5rem 0; + margin: .125rem 0 0; + font-size: 1rem; + color: #212529; + text-align: left; + list-style: none; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, .15); + border-radius: .25rem +} + +.dropdown-menu-left { + right: auto; + left: 0 +} + +.dropdown-menu-right { + right: 0; + left: auto +} + +@media (min-width:576px) { + .dropdown-menu-sm-left { + right: auto; + left: 0 + } + .dropdown-menu-sm-right { + right: 0; + left: auto + } +} + +@media (min-width:768px) { + .dropdown-menu-md-left { + right: auto; + left: 0 + } + .dropdown-menu-md-right { + right: 0; + left: auto + } +} + +@media (min-width:992px) { + .dropdown-menu-lg-left { + right: auto; + left: 0 + } + .dropdown-menu-lg-right { + right: 0; + left: auto + } +} + +@media (min-width:1200px) { + .dropdown-menu-xl-left { + right: auto; + left: 0 + } + .dropdown-menu-xl-right { + right: 0; + left: auto + } +} + +@media (min-width:1400px) { + .dropdown-menu-xxl-left { + right: auto; + left: 0 + } + .dropdown-menu-xxl-right { + right: 0; + left: auto + } +} + +.dropup .dropdown-menu { + top: auto; + bottom: 100%; + margin-top: 0; + margin-bottom: .125rem +} + +.dropup .dropdown-toggle::after { + display: inline-block; + margin-left: .255em; + vertical-align: .255em; + content: ""; + border-top: 0; + border-right: .3em solid transparent; + border-bottom: .3em solid; + border-left: .3em solid transparent +} + +.dropup .dropdown-toggle:empty::after { + margin-left: 0 +} + +.dropright .dropdown-menu { + top: 0; + right: auto; + left: 100%; + margin-top: 0; + margin-left: .125rem +} + +.dropright .dropdown-toggle::after { + display: inline-block; + margin-left: .255em; + vertical-align: .255em; + content: ""; + border-top: .3em solid transparent; + border-right: 0; + border-bottom: .3em solid transparent; + border-left: .3em solid +} + +.dropright .dropdown-toggle:empty::after { + margin-left: 0 +} + +.dropright .dropdown-toggle::after { + vertical-align: 0 +} + +.dropleft .dropdown-menu { + top: 0; + right: 100%; + left: auto; + margin-top: 0; + margin-right: .125rem +} + +.dropleft .dropdown-toggle::after { + display: inline-block; + margin-left: .255em; + vertical-align: .255em; + content: "" +} + +.dropleft .dropdown-toggle::after { + display: none +} + +.dropleft .dropdown-toggle::before { + display: inline-block; + margin-right: .255em; + vertical-align: .255em; + content: ""; + border-top: .3em solid transparent; + border-right: .3em solid; + border-bottom: .3em solid transparent +} + +.dropleft .dropdown-toggle:empty::after { + margin-left: 0 +} + +.dropleft .dropdown-toggle::before { + vertical-align: 0 +} + +.dropdown-menu[x-placement^=bottom], +.dropdown-menu[x-placement^=left], +.dropdown-menu[x-placement^=right], +.dropdown-menu[x-placement^=top] { + right: auto; + bottom: auto +} + +.dropdown-divider { + height: 0; + margin: .5rem 0; + overflow: hidden; + border-top: 1px solid #e9ecef +} + +.dropdown-item { + display: block; + width: 100%; + padding: .25rem 1rem; + clear: both; + font-weight: 400; + color: #212529; + text-align: inherit; + text-decoration: none; + white-space: nowrap; + background-color: transparent; + border: 0 +} + +.dropdown-item:focus, +.dropdown-item:hover { + color: #16181b; + background-color: #f8f9fa +} + +.dropdown-item.active, +.dropdown-item:active { + color: #fff; + text-decoration: none; + background-color: var(--bs-primary); +} + +.dropdown-item.disabled, +.dropdown-item:disabled { + color: #6c757d; + pointer-events: none; + background-color: transparent +} + +.dropdown-menu.show { + display: block +} + +.dropdown-header { + display: block; + padding: .5rem 1rem; + margin-bottom: 0; + font-size: .875rem; + color: #6c757d; + white-space: nowrap +} + +.dropdown-item-text { + display: block; + padding: .25rem 1rem; + color: #212529 +} + +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-flex; + vertical-align: middle +} + +.btn-group-vertical>.btn, +.btn-group>.btn { + position: relative; + flex: 1 1 auto +} + +.btn-group-vertical>.btn-check:checked+.btn, +.btn-group-vertical>.btn-check:focus+.btn, +.btn-group-vertical>.btn.active, +.btn-group-vertical>.btn:active, +.btn-group-vertical>.btn:focus, +.btn-group-vertical>.btn:hover, +.btn-group>.btn-check:checked+.btn, +.btn-group>.btn-check:focus+.btn, +.btn-group>.btn.active, +.btn-group>.btn:active, +.btn-group>.btn:focus, +.btn-group>.btn:hover { + z-index: 1 +} + +.btn-toolbar { + display: flex; + flex-wrap: wrap; + justify-content: flex-start +} + +.btn-toolbar .input-group { + width: auto +} + +.btn-group>.btn-group:not(:first-child), +.btn-group>.btn:not(:first-child) { + margin-left: -1px +} + +.btn-group>.btn-group:not(:last-child)>.btn, +.btn-group>.btn:not(:last-child):not(.dropdown-toggle) { + border-top-right-radius: 0; + border-bottom-right-radius: 0 +} + +.btn-group>.btn-group:not(:first-child)>.btn, +.btn-group>.btn:nth-child(n+3), +.btn-group>:not(.btn-check)+.btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0 +} + +.dropdown-toggle-split { + padding-right: .5625rem; + padding-left: .5625rem +} + +.dropdown-toggle-split::after, +.dropright .dropdown-toggle-split::after, +.dropup .dropdown-toggle-split::after { + margin-left: 0 +} + +.dropleft .dropdown-toggle-split::before { + margin-right: 0 +} + +.btn-group-sm>.btn+.dropdown-toggle-split, +.btn-sm+.dropdown-toggle-split { + padding-right: .375rem; + padding-left: .375rem +} + +.btn-group-lg>.btn+.dropdown-toggle-split, +.btn-lg+.dropdown-toggle-split { + padding-right: .75rem; + padding-left: .75rem +} + +.btn-group-vertical { + flex-direction: column; + align-items: flex-start; + justify-content: center +} + +.btn-group-vertical>.btn, +.btn-group-vertical>.btn-group { + width: 100% +} + +.btn-group-vertical>.btn-group:not(:first-child), +.btn-group-vertical>.btn:not(:first-child) { + margin-top: -1px +} + +.btn-group-vertical>.btn-group:not(:last-child)>.btn, +.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle) { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0 +} + +.btn-group-vertical>.btn-group:not(:first-child)>.btn, +.btn-group-vertical>.btn:not(:first-child) { + border-top-left-radius: 0; + border-top-right-radius: 0 +} + +.nav { + display: flex; + flex-wrap: wrap; + padding-left: 0; + margin-bottom: 0; + list-style: none +} + +.nav-link { + display: block; + padding: .5rem 1rem; + text-decoration: none; + transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out +} + +@media (prefers-reduced-motion:reduce) { + .nav-link { + transition: none + } +} + +.nav-link.disabled { + color: #6c757d; + pointer-events: none; + cursor: default +} + +.nav-tabs { + border-bottom: 1px solid #dee2e6 +} + +.nav-tabs .nav-link { + margin-bottom: -1px; + border: 1px solid transparent; + border-top-left-radius: .25rem; + border-top-right-radius: .25rem +} + +.nav-tabs .nav-link:focus, +.nav-tabs .nav-link:hover { + border-color: #e9ecef #e9ecef #dee2e6 +} + +.nav-tabs .nav-link.disabled { + color: #6c757d; + background-color: transparent; + border-color: transparent +} + +.nav-tabs .nav-item.show .nav-link, +.nav-tabs .nav-link.active { + color: #495057; + background-color: #fff; + border-color: #dee2e6 #dee2e6 #fff +} + +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-left-radius: 0; + border-top-right-radius: 0 +} + +.nav-pills .nav-link { + border-radius: .25rem +} + +.nav-pills .nav-link.active, +.nav-pills .show>.nav-link { + color: #fff; + background-color: var(--bs-primary); +} + +.nav-fill .nav-item, +.nav-fill>.nav-link { + flex: 1 1 auto; + text-align: center +} + +.nav-justified .nav-item, +.nav-justified>.nav-link { + flex-basis: 0; + flex-grow: 1; + text-align: center +} + +.tab-content>.tab-pane { + display: none +} + +.tab-content>.active { + display: block +} + +.navbar { + position: relative; + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; + padding-top: .5rem; + padding-bottom: .5rem +} + +.navbar>.container, +.navbar>.container-fluid, +.navbar>.container-lg, +.navbar>.container-md, +.navbar>.container-sm, +.navbar>.container-xl, +.navbar>.container-xxl { + display: flex; + flex-wrap: inherit; + align-items: center; + justify-content: space-between +} + +.navbar-brand { + padding-top: .3125rem; + padding-bottom: .3125rem; + margin-right: 1rem; + font-size: 1.25rem; + text-decoration: none; + white-space: nowrap +} + +.navbar-nav { + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + list-style: none +} + +.navbar-nav .nav-link { + padding-right: 0; + padding-left: 0 +} + +.navbar-nav .dropdown-menu { + position: static +} + +.navbar-text { + padding-top: .5rem; + padding-bottom: .5rem +} + +.navbar-collapse { + align-items: center; + width: 100% +} + +.navbar-toggler { + padding: .25rem .75rem; + font-size: 1.25rem; + line-height: 1; + background-color: transparent; + border: 1px solid transparent; + border-radius: .25rem; + transition: box-shadow .15s ease-in-out +} + +@media (prefers-reduced-motion:reduce) { + .navbar-toggler { + transition: none + } +} + +.navbar-toggler:hover { + text-decoration: none +} + +.navbar-toggler:focus { + text-decoration: none; + outline: 0; + box-shadow: 0 0 0 .2rem +} + +.navbar-toggler-icon { + display: inline-block; + width: 1.5em; + height: 1.5em; + vertical-align: middle; + background-repeat: no-repeat; + background-position: center; + background-size: 100% +} + +@media (min-width:576px) { + .navbar-expand-sm { + flex-wrap: nowrap; + justify-content: flex-start + } + .navbar-expand-sm .navbar-nav { + flex-direction: row + } + .navbar-expand-sm .navbar-nav .dropdown-menu { + position: absolute + } + .navbar-expand-sm .navbar-nav .nav-link { + padding-right: .5rem; + padding-left: .5rem + } + .navbar-expand-sm .navbar-collapse { + display: flex !important + } + .navbar-expand-sm .navbar-toggler { + display: none + } +} + +@media (min-width:768px) { + .navbar-expand-md { + flex-wrap: nowrap; + justify-content: flex-start + } + .navbar-expand-md .navbar-nav { + flex-direction: row + } + .navbar-expand-md .navbar-nav .dropdown-menu { + position: absolute + } + .navbar-expand-md .navbar-nav .nav-link { + padding-right: .5rem; + padding-left: .5rem + } + .navbar-expand-md .navbar-collapse { + display: flex !important + } + .navbar-expand-md .navbar-toggler { + display: none + } +} + +@media (min-width:992px) { + .navbar-expand-lg { + flex-wrap: nowrap; + justify-content: flex-start + } + .navbar-expand-lg .navbar-nav { + flex-direction: row + } + .navbar-expand-lg .navbar-nav .dropdown-menu { + position: absolute + } + .navbar-expand-lg .navbar-nav .nav-link { + padding-right: .5rem; + padding-left: .5rem + } + .navbar-expand-lg .navbar-collapse { + display: flex !important + } + .navbar-expand-lg .navbar-toggler { + display: none + } +} + +@media (min-width:1200px) { + .navbar-expand-xl { + flex-wrap: nowrap; + justify-content: flex-start + } + .navbar-expand-xl .navbar-nav { + flex-direction: row + } + .navbar-expand-xl .navbar-nav .dropdown-menu { + position: absolute + } + .navbar-expand-xl .navbar-nav .nav-link { + padding-right: .5rem; + padding-left: .5rem + } + .navbar-expand-xl .navbar-collapse { + display: flex !important + } + .navbar-expand-xl .navbar-toggler { + display: none + } +} + +@media (min-width:1400px) { + .navbar-expand-xxl { + flex-wrap: nowrap; + justify-content: flex-start + } + .navbar-expand-xxl .navbar-nav { + flex-direction: row + } + .navbar-expand-xxl .navbar-nav .dropdown-menu { + position: absolute + } + .navbar-expand-xxl .navbar-nav .nav-link { + padding-right: .5rem; + padding-left: .5rem + } + .navbar-expand-xxl .navbar-collapse { + display: flex !important + } + .navbar-expand-xxl .navbar-toggler { + display: none + } +} + +.navbar-expand { + flex-wrap: nowrap; + justify-content: flex-start +} + +.navbar-expand .navbar-nav { + flex-direction: row +} + +.navbar-expand .navbar-nav .dropdown-menu { + position: absolute +} + +.navbar-expand .navbar-nav .nav-link { + padding-right: .5rem; + padding-left: .5rem +} + +.navbar-expand .navbar-collapse { + display: flex !important +} + +.navbar-expand .navbar-toggler { + display: none +} + +.navbar-light .navbar-brand { + color: rgba(0, 0, 0, .9) +} + +.navbar-light .navbar-brand:focus, +.navbar-light .navbar-brand:hover { + color: rgba(0, 0, 0, .9) +} + +.navbar-light .navbar-nav .nav-link { + color: rgba(0, 0, 0, .55) +} + +.navbar-light .navbar-nav .nav-link:focus, +.navbar-light .navbar-nav .nav-link:hover { + color: rgba(0, 0, 0, .7) +} + +.navbar-light .navbar-nav .nav-link.disabled { + color: rgba(0, 0, 0, .3) +} + +.navbar-light .navbar-nav .nav-link.active, +.navbar-light .navbar-nav .show>.nav-link { + color: rgba(0, 0, 0, .9) +} + +.navbar-light .navbar-toggler { + color: rgba(0, 0, 0, .55); + border-color: rgba(0, 0, 0, .1) +} + +.navbar-light .navbar-toggler-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") +} + +.navbar-light .navbar-text { + color: rgba(0, 0, 0, .55) +} + +.navbar-light .navbar-text a, +.navbar-light .navbar-text a:focus, +.navbar-light .navbar-text a:hover { + color: rgba(0, 0, 0, .9) +} + +.navbar-dark .navbar-brand { + color: #fff +} + +.navbar-dark .navbar-brand:focus, +.navbar-dark .navbar-brand:hover { + color: #fff +} + +.navbar-dark .navbar-nav .nav-link { + color: rgba(255, 255, 255, .55) +} + +.navbar-dark .navbar-nav .nav-link:focus, +.navbar-dark .navbar-nav .nav-link:hover { + color: rgba(255, 255, 255, .75) +} + +.navbar-dark .navbar-nav .nav-link.disabled { + color: rgba(255, 255, 255, .25) +} + +.navbar-dark .navbar-nav .nav-link.active, +.navbar-dark .navbar-nav .show>.nav-link { + color: #fff +} + +.navbar-dark .navbar-toggler { + color: rgba(255, 255, 255, .55); + border-color: rgba(255, 255, 255, .1) +} + +.navbar-dark .navbar-toggler-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") +} + +.navbar-dark .navbar-text { + color: rgba(255, 255, 255, .55) +} + +.navbar-dark .navbar-text a, +.navbar-dark .navbar-text a:focus, +.navbar-dark .navbar-text a:hover { + color: #fff +} + +.card { + position: relative; + display: flex; + flex-direction: column; + min-width: 0; + word-wrap: break-word; + background-color: #fff; + background-clip: border-box; + border: 1px solid rgba(0, 0, 0, .125); + border-radius: .25rem +} + +.card>hr { + margin-right: 0; + margin-left: 0 +} + +.card>.list-group { + border-top: inherit; + border-bottom: inherit +} + +.card>.list-group:first-child { + border-top-width: 0; + border-top-left-radius: calc(.25rem - 1px); + border-top-right-radius: calc(.25rem - 1px) +} + +.card>.list-group:last-child { + border-bottom-width: 0; + border-bottom-right-radius: calc(.25rem - 1px); + border-bottom-left-radius: calc(.25rem - 1px) +} + +.card>.card-header+.list-group, +.card>.list-group+.card-footer { + border-top: 0 +} + +.card-body { + flex: 1 1 auto; + padding: 1rem 1rem +} + +.card-title { + margin-bottom: .5rem +} + +.card-subtitle { + margin-top: -.25rem; + margin-bottom: 0 +} + +.card-text:last-child { + margin-bottom: 0 +} + +.card-link:hover { + text-decoration: none +} + +.card-link+.card-link { + margin-left: 1rem +} + +.card-header { + padding: .5rem 1rem; + margin-bottom: 0; + background-color: rgba(0, 0, 0, .03); + border-bottom: 1px solid rgba(0, 0, 0, .125) +} + +.card-header:first-child { + border-radius: calc(.25rem - 1px) calc(.25rem - 1px) 0 0 +} + +.card-footer { + padding: .5rem 1rem; + background-color: rgba(0, 0, 0, .03); + border-top: 1px solid rgba(0, 0, 0, .125) +} + +.card-footer:last-child { + border-radius: 0 0 calc(.25rem - 1px) calc(.25rem - 1px) +} + +.card-header-tabs { + margin-right: -.5rem; + margin-bottom: -.5rem; + margin-left: -.5rem; + border-bottom: 0 +} + +.card-header-pills { + margin-right: -.5rem; + margin-left: -.5rem +} + +.card-img-overlay { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: 1rem; + border-radius: calc(.25rem - 1px) +} + +.card-img, +.card-img-bottom, +.card-img-top { + width: 100% +} + +.card-img, +.card-img-top { + border-top-left-radius: calc(.25rem - 1px); + border-top-right-radius: calc(.25rem - 1px) +} + +.card-img, +.card-img-bottom { + border-bottom-right-radius: calc(.25rem - 1px); + border-bottom-left-radius: calc(.25rem - 1px) +} + +.card-group>.card { + margin-bottom: .75rem +} + +@media (min-width:576px) { + .card-group { + display: flex; + flex-flow: row wrap + } + .card-group>.card { + flex: 1 0 0%; + margin-bottom: 0 + } + .card-group>.card+.card { + margin-left: 0; + border-left: 0 + } + .card-group>.card:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0 + } + .card-group>.card:not(:last-child) .card-header, + .card-group>.card:not(:last-child) .card-img-top { + border-top-right-radius: 0 + } + .card-group>.card:not(:last-child) .card-footer, + .card-group>.card:not(:last-child) .card-img-bottom { + border-bottom-right-radius: 0 + } + .card-group>.card:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0 + } + .card-group>.card:not(:first-child) .card-header, + .card-group>.card:not(:first-child) .card-img-top { + border-top-left-radius: 0 + } + .card-group>.card:not(:first-child) .card-footer, + .card-group>.card:not(:first-child) .card-img-bottom { + border-bottom-left-radius: 0 + } +} + +.accordion .card { + overflow: hidden +} + +.accordion .card:not(:last-of-type) { + border-bottom: 0; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0 +} + +.accordion .card:not(:first-of-type) { + border-top-left-radius: 0; + border-top-right-radius: 0 +} + +.accordion .card>.card-header { + border-radius: 0; + margin-bottom: -1px +} + +.breadcrumb { + display: flex; + flex-wrap: wrap; + padding: .5rem 1rem; + margin-bottom: 1rem; + list-style: none; + background-color: #e9ecef; + border-radius: .25rem +} + +.breadcrumb-item { + display: flex +} + +.breadcrumb-item+.breadcrumb-item { + padding-left: .5rem +} + +.breadcrumb-item+.breadcrumb-item::before { + display: inline-block; + padding-right: .5rem; + color: #6c757d; + content: "/" +} + +.breadcrumb-item.active { + color: #6c757d +} + +.pagination { + display: flex; + padding-left: 0; + list-style: none +} + +.page-link { + position: relative; + display: block; + color: var(--bs-primary); + ; + text-decoration: none; + background-color: #fff; + border: 1px solid #dee2e6 +} + +.page-link:hover { + z-index: 2; + color: #024dbc; + background-color: #e9ecef; + border-color: #dee2e6 +} + +.page-link:focus { + z-index: 3; + outline: 0; + box-shadow: 0 0 0 .2rem rgba(13, 110, 253, .25) +} + +.page-item:not(:first-child) .page-link { + margin-left: -1px +} + +.page-item.active .page-link { + z-index: 3; + color: #fff; + background-color: var(--bs-primary); + ; + border-color: var(--bs-primary); +} + +.page-item.disabled .page-link { + color: #6c757d; + pointer-events: none; + background-color: #fff; + border-color: #dee2e6 +} + +.page-link { + padding: .375rem .75rem +} + +.page-item:first-child .page-link { + border-top-left-radius: .25rem; + border-bottom-left-radius: .25rem +} + +.page-item:last-child .page-link { + border-top-right-radius: .25rem; + border-bottom-right-radius: .25rem +} + +.pagination-lg .page-link { + padding: .75rem 1.5rem; + font-size: 1.25rem +} + +.pagination-lg .page-item:first-child .page-link { + border-top-left-radius: .3rem; + border-bottom-left-radius: .3rem +} + +.pagination-lg .page-item:last-child .page-link { + border-top-right-radius: .3rem; + border-bottom-right-radius: .3rem +} + +.pagination-sm .page-link { + padding: .25rem .5rem; + font-size: .875rem +} + +.pagination-sm .page-item:first-child .page-link { + border-top-left-radius: .2rem; + border-bottom-left-radius: .2rem +} + +.pagination-sm .page-item:last-child .page-link { + border-top-right-radius: .2rem; + border-bottom-right-radius: .2rem +} + +.badge { + display: inline-block; + padding: .25em .5em; + font-size: .75em; + font-weight: 700; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: .25rem +} + +.badge:empty { + display: none +} + +.btn .badge { + position: relative; + top: -1px +} + +.alert { + position: relative; + padding: 1rem 1rem; + margin-bottom: 1rem; + border: 1px solid transparent; + border-radius: .25rem +} + +.alert-heading { + color: inherit +} + +.alert-link { + font-weight: 700 +} + +.alert-dismissible { + padding-right: 3.5rem +} + +.alert-dismissible .close { + position: absolute; + top: 0; + right: 0; + padding: 1rem 1rem; + color: inherit +} + +.alert-primary { + color: #073984; + background-color: #cfe2ff; + border-color: #bbd6fe +} + +.alert-primary .alert-link { + color: #042454 +} + +.alert-secondary { + color: #383d41; + background-color: #e2e3e5; + border-color: #d6d8db +} + +.alert-secondary .alert-link { + color: #202326 +} + +.alert-success { + color: #155724; + background-color: #d4edda; + border-color: #c3e6cb +} + +.alert-success .alert-link { + color: #0b2e13 +} + +.alert-info { + color: #0c5460; + background-color: #d1ecf1; + border-color: #bee5eb +} + +.alert-info .alert-link { + color: #062c33 +} + +.alert-warning { + color: #856404; + background-color: #fff3cd; + border-color: #ffeeba +} + +.alert-warning .alert-link { + color: #533f03 +} + +.alert-danger { + color: #721c24; + background-color: #f8d7da; + border-color: #f5c6cb +} + +.alert-danger .alert-link { + color: #491217 +} + +.alert-light { + color: #818182; + background-color: #fefefe; + border-color: #fdfdfe +} + +.alert-light .alert-link { + color: #686868 +} + +.alert-dark { + color: #1b1e21; + background-color: #d6d8d9; + border-color: #c6c8ca +} + +.alert-dark .alert-link { + color: #040505 +} + +@-webkit-keyframes progress-bar-stripes { + 0% { + background-position-x: 1rem + } +} + +@keyframes progress-bar-stripes { + 0% { + background-position-x: 1rem + } +} + +.progress { + display: flex; + height: 1rem; + overflow: hidden; + font-size: .75rem; + background-color: #e9ecef; + border-radius: .25rem +} + +.progress-bar { + display: flex; + flex-direction: column; + justify-content: center; + overflow: hidden; + color: #fff; + text-align: center; + white-space: nowrap; + background-color: var(--bs-primary); + ; + transition: width .6s ease +} + +@media (prefers-reduced-motion:reduce) { + .progress-bar { + transition: none + } +} + +.progress-bar-striped { + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-size: 1rem 1rem +} + +.progress-bar-animated { + -webkit-animation: progress-bar-stripes 1s linear infinite; + animation: progress-bar-stripes 1s linear infinite +} + +@media (prefers-reduced-motion:reduce) { + .progress-bar-animated { + -webkit-animation: none; + animation: none + } +} + +.list-group { + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + border-radius: .25rem +} + +.list-group-item-action { + width: 100%; + color: #495057; + text-align: inherit +} + +.list-group-item-action:focus, +.list-group-item-action:hover { + z-index: 1; + color: #495057; + text-decoration: none; + background-color: #f8f9fa +} + +.list-group-item-action:active { + color: #212529; + background-color: #e9ecef +} + +.list-group-item { + position: relative; + display: block; + padding: .5rem 1rem; + text-decoration: none; + background-color: #fff; + border: 1px solid rgba(0, 0, 0, .125) +} + +.list-group-item:first-child { + border-top-left-radius: inherit; + border-top-right-radius: inherit +} + +.list-group-item:last-child { + border-bottom-right-radius: inherit; + border-bottom-left-radius: inherit +} + +.list-group-item.disabled, +.list-group-item:disabled { + color: #6c757d; + pointer-events: none; + background-color: #fff +} + +.list-group-item.active { + z-index: 2; + color: #fff; + background-color: var(--bs-primary); + ; + border-color: var(--bs-primary); +} + +.list-group-item+.list-group-item { + border-top-width: 0 +} + +.list-group-item+.list-group-item.active { + margin-top: -1px; + border-top-width: 1px +} + +.list-group-horizontal { + flex-direction: row +} + +.list-group-horizontal>.list-group-item:first-child { + border-bottom-left-radius: .25rem; + border-top-right-radius: 0 +} + +.list-group-horizontal>.list-group-item:last-child { + border-top-right-radius: .25rem; + border-bottom-left-radius: 0 +} + +.list-group-horizontal>.list-group-item.active { + margin-top: 0 +} + +.list-group-horizontal>.list-group-item+.list-group-item { + border-top-width: 1px; + border-left-width: 0 +} + +.list-group-horizontal>.list-group-item+.list-group-item.active { + margin-left: -1px; + border-left-width: 1px +} + +@media (min-width:576px) { + .list-group-horizontal-sm { + flex-direction: row + } + .list-group-horizontal-sm>.list-group-item:first-child { + border-bottom-left-radius: .25rem; + border-top-right-radius: 0 + } + .list-group-horizontal-sm>.list-group-item:last-child { + border-top-right-radius: .25rem; + border-bottom-left-radius: 0 + } + .list-group-horizontal-sm>.list-group-item.active { + margin-top: 0 + } + .list-group-horizontal-sm>.list-group-item+.list-group-item { + border-top-width: 1px; + border-left-width: 0 + } + .list-group-horizontal-sm>.list-group-item+.list-group-item.active { + margin-left: -1px; + border-left-width: 1px + } +} + +@media (min-width:768px) { + .list-group-horizontal-md { + flex-direction: row + } + .list-group-horizontal-md>.list-group-item:first-child { + border-bottom-left-radius: .25rem; + border-top-right-radius: 0 + } + .list-group-horizontal-md>.list-group-item:last-child { + border-top-right-radius: .25rem; + border-bottom-left-radius: 0 + } + .list-group-horizontal-md>.list-group-item.active { + margin-top: 0 + } + .list-group-horizontal-md>.list-group-item+.list-group-item { + border-top-width: 1px; + border-left-width: 0 + } + .list-group-horizontal-md>.list-group-item+.list-group-item.active { + margin-left: -1px; + border-left-width: 1px + } +} + +@media (min-width:992px) { + .list-group-horizontal-lg { + flex-direction: row + } + .list-group-horizontal-lg>.list-group-item:first-child { + border-bottom-left-radius: .25rem; + border-top-right-radius: 0 + } + .list-group-horizontal-lg>.list-group-item:last-child { + border-top-right-radius: .25rem; + border-bottom-left-radius: 0 + } + .list-group-horizontal-lg>.list-group-item.active { + margin-top: 0 + } + .list-group-horizontal-lg>.list-group-item+.list-group-item { + border-top-width: 1px; + border-left-width: 0 + } + .list-group-horizontal-lg>.list-group-item+.list-group-item.active { + margin-left: -1px; + border-left-width: 1px + } +} + +@media (min-width:1200px) { + .list-group-horizontal-xl { + flex-direction: row + } + .list-group-horizontal-xl>.list-group-item:first-child { + border-bottom-left-radius: .25rem; + border-top-right-radius: 0 + } + .list-group-horizontal-xl>.list-group-item:last-child { + border-top-right-radius: .25rem; + border-bottom-left-radius: 0 + } + .list-group-horizontal-xl>.list-group-item.active { + margin-top: 0 + } + .list-group-horizontal-xl>.list-group-item+.list-group-item { + border-top-width: 1px; + border-left-width: 0 + } + .list-group-horizontal-xl>.list-group-item+.list-group-item.active { + margin-left: -1px; + border-left-width: 1px + } +} + +@media (min-width:1400px) { + .list-group-horizontal-xxl { + flex-direction: row + } + .list-group-horizontal-xxl>.list-group-item:first-child { + border-bottom-left-radius: .25rem; + border-top-right-radius: 0 + } + .list-group-horizontal-xxl>.list-group-item:last-child { + border-top-right-radius: .25rem; + border-bottom-left-radius: 0 + } + .list-group-horizontal-xxl>.list-group-item.active { + margin-top: 0 + } + .list-group-horizontal-xxl>.list-group-item+.list-group-item { + border-top-width: 1px; + border-left-width: 0 + } + .list-group-horizontal-xxl>.list-group-item+.list-group-item.active { + margin-left: -1px; + border-left-width: 1px + } +} + +.list-group-flush { + border-radius: 0 +} + +.list-group-flush>.list-group-item { + border-width: 0 0 1px +} + +.list-group-flush>.list-group-item:last-child { + border-bottom-width: 0 +} + +.list-group-item-primary { + color: #073984; + background-color: #bbd6fe +} + +.list-group-item-primary.list-group-item-action:focus, +.list-group-item-primary.list-group-item-action:hover { + color: #073984; + background-color: #a2c7fe +} + +.list-group-item-primary.list-group-item-action.active { + color: #fff; + background-color: #073984; + border-color: #073984 +} + +.list-group-item-secondary { + color: #383d41; + background-color: #d6d8db +} + +.list-group-item-secondary.list-group-item-action:focus, +.list-group-item-secondary.list-group-item-action:hover { + color: #383d41; + background-color: #c8cbcf +} + +.list-group-item-secondary.list-group-item-action.active { + color: #fff; + background-color: #383d41; + border-color: #383d41 +} + +.list-group-item-success { + color: #155724; + background-color: #c3e6cb +} + +.list-group-item-success.list-group-item-action:focus, +.list-group-item-success.list-group-item-action:hover { + color: #155724; + background-color: #b1dfbb +} + +.list-group-item-success.list-group-item-action.active { + color: #fff; + background-color: #155724; + border-color: #155724 +} + +.list-group-item-info { + color: #0c5460; + background-color: #bee5eb +} + +.list-group-item-info.list-group-item-action:focus, +.list-group-item-info.list-group-item-action:hover { + color: #0c5460; + background-color: #abdde5 +} + +.list-group-item-info.list-group-item-action.active { + color: #fff; + background-color: #0c5460; + border-color: #0c5460 +} + +.list-group-item-warning { + color: #856404; + background-color: #ffeeba +} + +.list-group-item-warning.list-group-item-action:focus, +.list-group-item-warning.list-group-item-action:hover { + color: #856404; + background-color: #ffe8a1 +} + +.list-group-item-warning.list-group-item-action.active { + color: #fff; + background-color: #856404; + border-color: #856404 +} + +.list-group-item-danger { + color: #721c24; + background-color: #f5c6cb +} + +.list-group-item-danger.list-group-item-action:focus, +.list-group-item-danger.list-group-item-action:hover { + color: #721c24; + background-color: #f1b0b7 +} + +.list-group-item-danger.list-group-item-action.active { + color: #fff; + background-color: #721c24; + border-color: #721c24 +} + +.list-group-item-light { + color: #818182; + background-color: #fdfdfe +} + +.list-group-item-light.list-group-item-action:focus, +.list-group-item-light.list-group-item-action:hover { + color: #818182; + background-color: #ececf6 +} + +.list-group-item-light.list-group-item-action.active { + color: #fff; + background-color: #818182; + border-color: #818182 +} + +.list-group-item-dark { + color: #1b1e21; + background-color: #c6c8ca +} + +.list-group-item-dark.list-group-item-action:focus, +.list-group-item-dark.list-group-item-action:hover { + color: #1b1e21; + background-color: #b9bbbe +} + +.list-group-item-dark.list-group-item-action.active { + color: #fff; + background-color: #1b1e21; + border-color: #1b1e21 +} + +.close { + font-size: calc(1.275rem + .3vw); + font-weight: 700; + line-height: 1; + color: #000; + text-shadow: 0 1px 0 #fff; + opacity: .5 +} + +@media (min-width:1200px) { + .close { + font-size: 1.5rem + } +} + +.close:hover { + color: #000; + text-decoration: none +} + +.close:focus, +.close:hover { + opacity: .75 +} + +.close.disabled, +.close:disabled { + pointer-events: none +} + +button.close { + padding: 0; + background-color: transparent; + border: 0 +} + +.toast { + max-width: 350px; + overflow: hidden; + font-size: .875rem; + background-color: rgba(255, 255, 255, .85); + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, .1); + box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15); + -webkit-backdrop-filter: blur(10px); + backdrop-filter: blur(10px); + opacity: 0; + border-radius: .25rem +} + +.toast:not(:last-child) { + margin-bottom: .75rem +} + +.toast.showing { + opacity: 1 +} + +.toast.show { + display: block; + opacity: 1 +} + +.toast.hide { + display: none +} + +.toast-header { + display: flex; + align-items: center; + padding: .25rem .75rem; + color: #6c757d; + background-color: rgba(255, 255, 255, .85); + background-clip: padding-box; + border-bottom: 1px solid rgba(0, 0, 0, .05) +} + +.toast-body { + padding: .75rem +} + +.modal-open { + overflow: hidden +} + +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto +} + +.modal { + position: fixed; + top: 0; + left: 0; + z-index: 1050; + display: none; + width: 100%; + height: 100%; + overflow: hidden; + outline: 0 +} + +.modal-dialog { + position: relative; + width: auto; + margin: .5rem; + pointer-events: none +} + +.modal.fade .modal-dialog { + transition: transform .3s ease-out; + transform: translate(0, -50px) +} + +@media (prefers-reduced-motion:reduce) { + .modal.fade .modal-dialog { + transition: none + } +} + +.modal.show .modal-dialog { + transform: none +} + +.modal.modal-static .modal-dialog { + transform: scale(1.02) +} + +.modal-dialog-scrollable { + max-height: calc(100% - 1rem) +} + +.modal-dialog-scrollable .modal-content { + overflow: hidden +} + +.modal-dialog-scrollable .modal-body { + overflow-y: auto +} + +.modal-dialog-centered { + display: flex; + align-items: center; + min-height: calc(100% - 1rem) +} + +.modal-content { + position: relative; + display: flex; + flex-direction: column; + width: 100%; + pointer-events: auto; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, .2); + border-radius: .3rem; + outline: 0 +} + +.modal-backdrop { + position: fixed; + top: 0; + left: 0; + z-index: 1040; + width: 100vw; + height: 100vh; + background-color: #000 +} + +.modal-backdrop.fade { + opacity: 0 +} + +.modal-backdrop.show { + opacity: .5 +} + +.modal-header { + display: flex; + flex-shrink: 0; + align-items: flex-start; + justify-content: space-between; + padding: 1rem 1rem; + border-bottom: 1px solid #dee2e6; + border-top-left-radius: calc(.3rem - 1px); + border-top-right-radius: calc(.3rem - 1px) +} + +.modal-header .close { + padding: 1rem 1rem; + margin: -1rem -1rem -1rem auto +} + +.modal-title { + margin-bottom: 0; + line-height: 1.5 +} + +.modal-body { + position: relative; + flex: 1 1 auto; + padding: 1rem +} + +.modal-footer { + display: flex; + flex-wrap: wrap; + flex-shrink: 0; + align-items: center; + justify-content: flex-end; + padding: .75rem; + border-top: 1px solid #dee2e6; + border-bottom-right-radius: calc(.3rem - 1px); + border-bottom-left-radius: calc(.3rem - 1px) +} + +.modal-footer>* { + margin: .25rem +} + +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll +} + +@media (min-width:576px) { + .modal-dialog { + max-width: 500px; + margin: 1.75rem auto + } + .modal-dialog-scrollable { + max-height: calc(100% - 3.5rem) + } + .modal-dialog-centered { + min-height: calc(100% - 3.5rem) + } + .modal-sm { + max-width: 300px + } +} + +@media (min-width:992px) { + .modal-lg, + .modal-xl { + max-width: 800px + } +} + +@media (min-width:1200px) { + .modal-xl { + max-width: 1140px + } +} + +.modal-fullscreen { + width: 100vw; + max-width: none; + height: 100%; + margin: 0 +} + +.modal-fullscreen .modal-content { + height: 100%; + border: 0; + border-radius: 0 +} + +.modal-fullscreen .modal-header { + border-radius: 0 +} + +.modal-fullscreen .modal-body { + overflow-y: auto +} + +.modal-fullscreen .modal-footer { + border-radius: 0 +} + +@media (max-width:575.98px) { + .modal-fullscreen-sm-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0 + } + .modal-fullscreen-sm-down .modal-content { + height: 100%; + border: 0; + border-radius: 0 + } + .modal-fullscreen-sm-down .modal-header { + border-radius: 0 + } + .modal-fullscreen-sm-down .modal-body { + overflow-y: auto + } + .modal-fullscreen-sm-down .modal-footer { + border-radius: 0 + } +} + +@media (max-width:767.98px) { + .modal-fullscreen-md-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0 + } + .modal-fullscreen-md-down .modal-content { + height: 100%; + border: 0; + border-radius: 0 + } + .modal-fullscreen-md-down .modal-header { + border-radius: 0 + } + .modal-fullscreen-md-down .modal-body { + overflow-y: auto + } + .modal-fullscreen-md-down .modal-footer { + border-radius: 0 + } +} + +@media (max-width:991.98px) { + .modal-fullscreen-lg-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0 + } + .modal-fullscreen-lg-down .modal-content { + height: 100%; + border: 0; + border-radius: 0 + } + .modal-fullscreen-lg-down .modal-header { + border-radius: 0 + } + .modal-fullscreen-lg-down .modal-body { + overflow-y: auto + } + .modal-fullscreen-lg-down .modal-footer { + border-radius: 0 + } +} + +@media (max-width:1199.98px) { + .modal-fullscreen-xl-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0 + } + .modal-fullscreen-xl-down .modal-content { + height: 100%; + border: 0; + border-radius: 0 + } + .modal-fullscreen-xl-down .modal-header { + border-radius: 0 + } + .modal-fullscreen-xl-down .modal-body { + overflow-y: auto + } + .modal-fullscreen-xl-down .modal-footer { + border-radius: 0 + } +} + +@media (max-width:1399.98px) { + .modal-fullscreen-xxl-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0 + } + .modal-fullscreen-xxl-down .modal-content { + height: 100%; + border: 0; + border-radius: 0 + } + .modal-fullscreen-xxl-down .modal-header { + border-radius: 0 + } + .modal-fullscreen-xxl-down .modal-body { + overflow-y: auto + } + .modal-fullscreen-xxl-down .modal-footer { + border-radius: 0 + } +} + +.tooltip { + position: absolute; + z-index: 1070; + display: block; + margin: 0; + font-family: var(--bs-font-sans-serif); + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: .875rem; + word-wrap: break-word; + opacity: 0 +} + +.tooltip.show { + opacity: .9 +} + +.tooltip .tooltip-arrow { + position: absolute; + display: block; + width: .8rem; + height: .4rem +} + +.tooltip .tooltip-arrow::before { + position: absolute; + content: ""; + border-color: transparent; + border-style: solid +} + +.bs-tooltip-auto[x-placement^=top], +.bs-tooltip-top { + padding: .4rem 0 +} + +.bs-tooltip-auto[x-placement^=top] .tooltip-arrow, +.bs-tooltip-top .tooltip-arrow { + bottom: 0 +} + +.bs-tooltip-auto[x-placement^=top] .tooltip-arrow::before, +.bs-tooltip-top .tooltip-arrow::before { + top: 0; + border-width: .4rem .4rem 0; + border-top-color: #000 +} + +.bs-tooltip-auto[x-placement^=right], +.bs-tooltip-right { + padding: 0 .4rem +} + +.bs-tooltip-auto[x-placement^=right] .tooltip-arrow, +.bs-tooltip-right .tooltip-arrow { + left: 0; + width: .4rem; + height: .8rem +} + +.bs-tooltip-auto[x-placement^=right] .tooltip-arrow::before, +.bs-tooltip-right .tooltip-arrow::before { + right: 0; + border-width: .4rem .4rem .4rem 0; + border-right-color: #000 +} + +.bs-tooltip-auto[x-placement^=bottom], +.bs-tooltip-bottom { + padding: .4rem 0 +} + +.bs-tooltip-auto[x-placement^=bottom] .tooltip-arrow, +.bs-tooltip-bottom .tooltip-arrow { + top: 0 +} + +.bs-tooltip-auto[x-placement^=bottom] .tooltip-arrow::before, +.bs-tooltip-bottom .tooltip-arrow::before { + bottom: 0; + border-width: 0 .4rem .4rem; + border-bottom-color: #000 +} + +.bs-tooltip-auto[x-placement^=left], +.bs-tooltip-left { + padding: 0 .4rem +} + +.bs-tooltip-auto[x-placement^=left] .tooltip-arrow, +.bs-tooltip-left .tooltip-arrow { + right: 0; + width: .4rem; + height: .8rem +} + +.bs-tooltip-auto[x-placement^=left] .tooltip-arrow::before, +.bs-tooltip-left .tooltip-arrow::before { + left: 0; + border-width: .4rem 0 .4rem .4rem; + border-left-color: #000 +} + +.tooltip-inner { + max-width: 200px; + padding: .25rem .5rem; + color: #fff; + text-align: center; + background-color: #000; + border-radius: .25rem +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: block; + max-width: 276px; + font-family: var(--bs-font-sans-serif); + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: .875rem; + word-wrap: break-word; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, .2); + border-radius: .3rem +} + +.popover .popover-arrow { + position: absolute; + display: block; + width: 1rem; + height: .5rem; + margin: 0 .3rem +} + +.popover .popover-arrow::after, +.popover .popover-arrow::before { + position: absolute; + display: block; + content: ""; + border-color: transparent; + border-style: solid +} + +.bs-popover-auto[x-placement^=top], +.bs-popover-top { + margin-bottom: .5rem +} + +.bs-popover-auto[x-placement^=top]>.popover-arrow, +.bs-popover-top>.popover-arrow { + bottom: calc(-.5rem - 1px) +} + +.bs-popover-auto[x-placement^=top]>.popover-arrow::before, +.bs-popover-top>.popover-arrow::before { + bottom: 0; + border-width: .5rem .5rem 0; + border-top-color: rgba(0, 0, 0, .25) +} + +.bs-popover-auto[x-placement^=top]>.popover-arrow::after, +.bs-popover-top>.popover-arrow::after { + bottom: 1px; + border-width: .5rem .5rem 0; + border-top-color: #fff +} + +.bs-popover-auto[x-placement^=right], +.bs-popover-right { + margin-left: .5rem +} + +.bs-popover-auto[x-placement^=right]>.popover-arrow, +.bs-popover-right>.popover-arrow { + left: calc(-.5rem - 1px); + width: .5rem; + height: 1rem; + margin: .3rem 0 +} + +.bs-popover-auto[x-placement^=right]>.popover-arrow::before, +.bs-popover-right>.popover-arrow::before { + left: 0; + border-width: .5rem .5rem .5rem 0; + border-right-color: rgba(0, 0, 0, .25) +} + +.bs-popover-auto[x-placement^=right]>.popover-arrow::after, +.bs-popover-right>.popover-arrow::after { + left: 1px; + border-width: .5rem .5rem .5rem 0; + border-right-color: #fff +} + +.bs-popover-auto[x-placement^=bottom], +.bs-popover-bottom { + margin-top: .5rem +} + +.bs-popover-auto[x-placement^=bottom]>.popover-arrow, +.bs-popover-bottom>.popover-arrow { + top: calc(-.5rem - 1px) +} + +.bs-popover-auto[x-placement^=bottom]>.popover-arrow::before, +.bs-popover-bottom>.popover-arrow::before { + top: 0; + border-width: 0 .5rem .5rem .5rem; + border-bottom-color: rgba(0, 0, 0, .25) +} + +.bs-popover-auto[x-placement^=bottom]>.popover-arrow::after, +.bs-popover-bottom>.popover-arrow::after { + top: 1px; + border-width: 0 .5rem .5rem .5rem; + border-bottom-color: #fff +} + +.bs-popover-auto[x-placement^=bottom] .popover-header::before, +.bs-popover-bottom .popover-header::before { + position: absolute; + top: 0; + left: 50%; + display: block; + width: 1rem; + margin-left: -.5rem; + content: ""; + border-bottom: 1px solid #f7f7f7 +} + +.bs-popover-auto[x-placement^=left], +.bs-popover-left { + margin-right: .5rem +} + +.bs-popover-auto[x-placement^=left]>.popover-arrow, +.bs-popover-left>.popover-arrow { + right: calc(-.5rem - 1px); + width: .5rem; + height: 1rem; + margin: .3rem 0 +} + +.bs-popover-auto[x-placement^=left]>.popover-arrow::before, +.bs-popover-left>.popover-arrow::before { + right: 0; + border-width: .5rem 0 .5rem .5rem; + border-left-color: rgba(0, 0, 0, .25) +} + +.bs-popover-auto[x-placement^=left]>.popover-arrow::after, +.bs-popover-left>.popover-arrow::after { + right: 1px; + border-width: .5rem 0 .5rem .5rem; + border-left-color: #fff +} + +.popover-header { + padding: .5rem 1rem; + margin-bottom: 0; + font-size: 1rem; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-top-left-radius: calc(.3rem - 1px); + border-top-right-radius: calc(.3rem - 1px) +} + +.popover-header:empty { + display: none +} + +.popover-body { + padding: 1rem 1rem; + color: #212529 +} + +.carousel { + position: relative +} + +.carousel.pointer-event { + touch-action: pan-y +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden +} + +.carousel-inner::after { + display: block; + clear: both; + content: "" +} + +.carousel-item { + position: relative; + display: none; + float: left; + width: 100%; + margin-right: -100%; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + transition: transform .6s ease-in-out +} + +@media (prefers-reduced-motion:reduce) { + .carousel-item { + transition: none + } +} + +.carousel-item-next, +.carousel-item-prev, +.carousel-item.active { + display: block +} + +.active.carousel-item-right, +.carousel-item-next:not(.carousel-item-left) { + transform: translateX(100%) +} + +.active.carousel-item-left, +.carousel-item-prev:not(.carousel-item-right) { + transform: translateX(-100%) +} + +.carousel-fade .carousel-item { + opacity: 0; + transition-property: opacity; + transform: none +} + +.carousel-fade .carousel-item-next.carousel-item-left, +.carousel-fade .carousel-item-prev.carousel-item-right, +.carousel-fade .carousel-item.active { + z-index: 1; + opacity: 1 +} + +.carousel-fade .active.carousel-item-left, +.carousel-fade .active.carousel-item-right { + z-index: 0; + opacity: 0; + transition: opacity 0s .6s +} + +@media (prefers-reduced-motion:reduce) { + .carousel-fade .active.carousel-item-left, + .carousel-fade .active.carousel-item-right { + transition: none + } +} + +.carousel-control-next, +.carousel-control-prev { + position: absolute; + top: 0; + bottom: 0; + z-index: 1; + display: flex; + align-items: center; + justify-content: center; + width: 15%; + color: #fff; + text-align: center; + opacity: .5; + transition: opacity .15s ease +} + +@media (prefers-reduced-motion:reduce) { + .carousel-control-next, + .carousel-control-prev { + transition: none + } +} + +.carousel-control-next:focus, +.carousel-control-next:hover, +.carousel-control-prev:focus, +.carousel-control-prev:hover { + color: #fff; + text-decoration: none; + outline: 0; + opacity: .9 +} + +.carousel-control-prev { + left: 0 +} + +.carousel-control-next { + right: 0 +} + +.carousel-control-next-icon, +.carousel-control-prev-icon { + display: inline-block; + width: 20px; + height: 20px; + background-repeat: no-repeat; + background-position: 50%; + background-size: 100% 100% +} + +.carousel-control-prev-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e") +} + +.carousel-control-next-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e") +} + +.carousel-indicators { + position: absolute; + right: 0; + bottom: 0; + left: 0; + z-index: 2; + display: flex; + justify-content: center; + padding-left: 0; + margin-right: 15%; + margin-left: 15%; + list-style: none +} + +.carousel-indicators li { + box-sizing: content-box; + flex: 0 1 auto; + width: 30px; + height: 3px; + margin-right: 3px; + margin-left: 3px; + text-indent: -999px; + cursor: pointer; + background-color: #fff; + background-clip: padding-box; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + opacity: .5; + transition: opacity .6s ease +} + +@media (prefers-reduced-motion:reduce) { + .carousel-indicators li { + transition: none + } +} + +.carousel-indicators .active { + opacity: 1 +} + +.carousel-caption { + position: absolute; + right: 15%; + bottom: 1.25rem; + left: 15%; + padding-top: 1.25rem; + padding-bottom: 1.25rem; + color: #fff; + text-align: center +} + +@-webkit-keyframes spinner-border { + to { + transform: rotate(360deg) + } +} + +@keyframes spinner-border { + to { + transform: rotate(360deg) + } +} + +.spinner-border { + display: inline-block; + width: 2rem; + height: 2rem; + vertical-align: text-bottom; + border: .25em solid currentColor; + border-right-color: transparent; + border-radius: 50%; + -webkit-animation: spinner-border .75s linear infinite; + animation: spinner-border .75s linear infinite +} + +.spinner-border-sm { + width: 1rem; + height: 1rem; + border-width: .2em +} + +@-webkit-keyframes spinner-grow { + 0% { + transform: scale(0) + } + 50% { + opacity: 1; + transform: none + } +} + +@keyframes spinner-grow { + 0% { + transform: scale(0) + } + 50% { + opacity: 1; + transform: none + } +} + +.spinner-grow { + display: inline-block; + width: 2rem; + height: 2rem; + vertical-align: text-bottom; + background-color: currentColor; + border-radius: 50%; + opacity: 0; + -webkit-animation: spinner-grow .75s linear infinite; + animation: spinner-grow .75s linear infinite +} + +.spinner-grow-sm { + width: 1rem; + height: 1rem +} + +.clearfix::after { + display: block; + clear: both; + content: "" +} + +.link-primary { + color: var(--bs-primary); +} + +.link-primary:focus, +.link-primary:hover { + color: #024dbc +} + +.link-secondary { + color: #6c757d +} + +.link-secondary:focus, +.link-secondary:hover { + color: #494f54 +} + +.link-success { + color: #28a745 +} + +.link-success:focus, +.link-success:hover { + color: #19692c +} + +.link-info { + color: #17a2b8 +} + +.link-info:focus, +.link-info:hover { + color: #0f6674 +} + +.link-warning { + color: #ffc107 +} + +.link-warning:focus, +.link-warning:hover { + color: #ba8b00 +} + +.link-danger { + color: #dc3545 +} + +.link-danger:focus, +.link-danger:hover { + color: #a71d2a +} + +.link-light { + color: #f8f9fa +} + +.link-light:focus, +.link-light:hover { + color: #cbd3da +} + +.link-dark { + color: #343a40 +} + +.link-dark:focus, +.link-dark:hover { + color: #121416 +} + +.embed-responsive { + position: relative; + width: 100% +} + +.embed-responsive::before { + display: block; + content: "" +} + +.embed-responsive .embed-responsive-item, +.embed-responsive embed, +.embed-responsive iframe, +.embed-responsive object, +.embed-responsive video { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100% +} + +.embed-responsive-21by9::before { + padding-top: 42.857143% +} + +.embed-responsive-16by9::before { + padding-top: 56.25% +} + +.embed-responsive-4by3::before { + padding-top: 75% +} + +.embed-responsive-1by1::before { + padding-top: 100% +} + +.fixed-top { + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 1030 +} + +.fixed-bottom { + position: fixed; + right: 0; + bottom: 0; + left: 0; + z-index: 1030 +} + +.sticky-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020 +} + +@media (min-width:576px) { + .sticky-sm-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020 + } +} + +@media (min-width:768px) { + .sticky-md-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020 + } +} + +@media (min-width:992px) { + .sticky-lg-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020 + } +} + +@media (min-width:1200px) { + .sticky-xl-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020 + } +} + +@media (min-width:1400px) { + .sticky-xxl-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020 + } +} + +.sr-only, +.sr-only-focusable:not(:focus) { + position: absolute !important; + width: 1px !important; + height: 1px !important; + padding: 0 !important; + margin: -1px !important; + overflow: hidden !important; + clip: rect(0, 0, 0, 0) !important; + white-space: nowrap !important; + border: 0 !important +} + +.stretched-link::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1; + content: "" +} + +.text-truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap +} + +.align-baseline { + vertical-align: baseline !important +} + +.align-top { + vertical-align: top !important +} + +.align-middle { + vertical-align: middle !important +} + +.align-bottom { + vertical-align: bottom !important +} + +.align-text-bottom { + vertical-align: text-bottom !important +} + +.align-text-top { + vertical-align: text-top !important +} + +.float-left { + float: left !important +} + +.float-right { + float: right !important +} + +.float-none { + float: none !important +} + +.overflow-auto { + overflow: auto !important +} + +.overflow-hidden { + overflow: hidden !important +} + +.d-none { + display: none !important +} + +.d-inline { + display: inline !important +} + +.d-inline-block { + display: inline-block !important +} + +.d-block { + display: block !important +} + +.d-table { + display: table !important +} + +.d-table-row { + display: table-row !important +} + +.d-table-cell { + display: table-cell !important +} + +.d-flex { + display: flex !important +} + +.d-inline-flex { + display: inline-flex !important +} + +.shadow { + box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15) !important +} + +.shadow-sm { + box-shadow: 0 .125rem .25rem rgba(0, 0, 0, .075) !important +} + +.shadow-lg { + box-shadow: 0 1rem 3rem rgba(0, 0, 0, .175) !important +} + +.shadow-none { + box-shadow: none !important +} + +.position-static { + position: static !important +} + +.position-relative { + position: relative !important +} + +.position-absolute { + position: absolute !important +} + +.position-fixed { + position: fixed !important +} + +.position-sticky { + position: -webkit-sticky !important; + position: sticky !important +} + +.border { + border: 1px solid #dee2e6 !important +} + +.border-0 { + border: 0 !important +} + +.border-top { + border-top: 1px solid #dee2e6 !important +} + +.border-top-0 { + border-top: 0 !important +} + +.border-right { + border-right: 1px solid #dee2e6 !important +} + +.border-right-0 { + border-right: 0 !important +} + +.border-bottom { + border-bottom: 1px solid #dee2e6 !important +} + +.border-bottom-0 { + border-bottom: 0 !important +} + +.border-left { + border-left: 1px solid #dee2e6 !important +} + +.border-left-0 { + border-left: 0 !important +} + +.border-primary { + border-color: var(--bs-primary); + !important +} + +.border-secondary { + border-color: #6c757d !important +} + +.border-success { + border-color: #28a745 !important +} + +.border-info { + border-color: #17a2b8 !important +} + +.border-warning { + border-color: #ffc107 !important +} + +.border-danger { + border-color: #dc3545 !important +} + +.border-light { + border-color: #f8f9fa !important +} + +.border-dark { + border-color: #343a40 !important +} + +.border-white { + border-color: #fff !important +} + +.w-25 { + width: 25% !important +} + +.w-50 { + width: 50% !important +} + +.w-75 { + width: 75% !important +} + +.w-100 { + width: 100% !important +} + +.w-auto { + width: auto !important +} + +.mw-100 { + max-width: 100% !important +} + +.vw-100 { + width: 100vw !important +} + +.min-vw-100 { + min-width: 100vw !important +} + +.h-25 { + height: 25% !important +} + +.h-50 { + height: 50% !important +} + +.h-75 { + height: 75% !important +} + +.h-100 { + height: 100% !important +} + +.h-auto { + height: auto !important +} + +.mh-100 { + max-height: 100% !important +} + +.vh-100 { + height: 100vh !important +} + +.min-vh-100 { + min-height: 100vh !important +} + +.flex-fill { + flex: 1 1 auto !important +} + +.flex-row { + flex-direction: row !important +} + +.flex-column { + flex-direction: column !important +} + +.flex-row-reverse { + flex-direction: row-reverse !important +} + +.flex-column-reverse { + flex-direction: column-reverse !important +} + +.flex-grow-0 { + flex-grow: 0 !important +} + +.flex-grow-1 { + flex-grow: 1 !important +} + +.flex-shrink-0 { + flex-shrink: 0 !important +} + +.flex-shrink-1 { + flex-shrink: 1 !important +} + +.flex-wrap { + flex-wrap: wrap !important +} + +.flex-nowrap { + flex-wrap: nowrap !important +} + +.flex-wrap-reverse { + flex-wrap: wrap-reverse !important +} + +.justify-content-start { + justify-content: flex-start !important +} + +.justify-content-end { + justify-content: flex-end !important +} + +.justify-content-center { + justify-content: center !important +} + +.justify-content-between { + justify-content: space-between !important +} + +.justify-content-around { + justify-content: space-around !important +} + +.justify-content-evenly { + justify-content: space-evenly !important +} + +.align-items-start { + align-items: flex-start !important +} + +.align-items-end { + align-items: flex-end !important +} + +.align-items-center { + align-items: center !important +} + +.align-items-baseline { + align-items: baseline !important +} + +.align-items-stretch { + align-items: stretch !important +} + +.align-content-start { + align-content: flex-start !important +} + +.align-content-end { + align-content: flex-end !important +} + +.align-content-center { + align-content: center !important +} + +.align-content-between { + align-content: space-between !important +} + +.align-content-around { + align-content: space-around !important +} + +.align-content-stretch { + align-content: stretch !important +} + +.align-self-auto { + align-self: auto !important +} + +.align-self-start { + align-self: flex-start !important +} + +.align-self-end { + align-self: flex-end !important +} + +.align-self-center { + align-self: center !important +} + +.align-self-baseline { + align-self: baseline !important +} + +.align-self-stretch { + align-self: stretch !important +} + +.order-first { + order: -1 !important +} + +.order-0 { + order: 0 !important +} + +.order-1 { + order: 1 !important +} + +.order-2 { + order: 2 !important +} + +.order-3 { + order: 3 !important +} + +.order-4 { + order: 4 !important +} + +.order-5 { + order: 5 !important +} + +.order-last { + order: 6 !important +} + +.m-0 { + margin: 0 !important +} + +.m-1 { + margin: .25rem !important +} + +.m-2 { + margin: .5rem !important +} + +.m-3 { + margin: 1rem !important +} + +.m-4 { + margin: 1.5rem !important +} + +.m-5 { + margin: 3rem !important +} + +.m-auto { + margin: auto !important +} + +.mx-0 { + margin-right: 0 !important; + margin-left: 0 !important +} + +.mx-1 { + margin-right: .25rem !important; + margin-left: .25rem !important +} + +.mx-2 { + margin-right: .5rem !important; + margin-left: .5rem !important +} + +.mx-3 { + margin-right: 1rem !important; + margin-left: 1rem !important +} + +.mx-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important +} + +.mx-5 { + margin-right: 3rem !important; + margin-left: 3rem !important +} + +.mx-auto { + margin-right: auto !important; + margin-left: auto !important +} + +.my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important +} + +.my-1 { + margin-top: .25rem !important; + margin-bottom: .25rem !important +} + +.my-2 { + margin-top: .5rem !important; + margin-bottom: .5rem !important +} + +.my-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important +} + +.my-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important +} + +.my-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important +} + +.my-auto { + margin-top: auto !important; + margin-bottom: auto !important +} + +.mt-0 { + margin-top: 0 !important +} + +.mt-1 { + margin-top: .25rem !important +} + +.mt-2 { + margin-top: .5rem !important +} + +.mt-3 { + margin-top: 1rem !important +} + +.mt-4 { + margin-top: 1.5rem !important +} + +.mt-5 { + margin-top: 3rem !important +} + +.mt-auto { + margin-top: auto !important +} + +.mr-0 { + margin-right: 0 !important +} + +.mr-1 { + margin-right: .25rem !important +} + +.mr-2 { + margin-right: .5rem !important +} + +.mr-3 { + margin-right: 1rem !important +} + +.mr-4 { + margin-right: 1.5rem !important +} + +.mr-5 { + margin-right: 3rem !important +} + +.mr-auto { + margin-right: auto !important +} + +.mb-0 { + margin-bottom: 0 !important +} + +.mb-1 { + margin-bottom: .25rem !important +} + +.mb-2 { + margin-bottom: .5rem !important +} + +.mb-3 { + margin-bottom: 1rem !important +} + +.mb-4 { + margin-bottom: 1.5rem !important +} + +.mb-5 { + margin-bottom: 3rem !important +} + +.mb-auto { + margin-bottom: auto !important +} + +.ml-0 { + margin-left: 0 !important +} + +.ml-1 { + margin-left: .25rem !important +} + +.ml-2 { + margin-left: .5rem !important +} + +.ml-3 { + margin-left: 1rem !important +} + +.ml-4 { + margin-left: 1.5rem !important +} + +.ml-5 { + margin-left: 3rem !important +} + +.ml-auto { + margin-left: auto !important +} + +.p-0 { + padding: 0 !important +} + +.p-1 { + padding: .25rem !important +} + +.p-2 { + padding: .5rem !important +} + +.p-3 { + padding: 1rem !important +} + +.p-4 { + padding: 1.5rem !important +} + +.p-5 { + padding: 3rem !important +} + +.px-0 { + padding-right: 0 !important; + padding-left: 0 !important +} + +.px-1 { + padding-right: .25rem !important; + padding-left: .25rem !important +} + +.px-2 { + padding-right: .5rem !important; + padding-left: .5rem !important +} + +.px-3 { + padding-right: 1rem !important; + padding-left: 1rem !important +} + +.px-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important +} + +.px-5 { + padding-right: 3rem !important; + padding-left: 3rem !important +} + +.py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important +} + +.py-1 { + padding-top: .25rem !important; + padding-bottom: .25rem !important +} + +.py-2 { + padding-top: .5rem !important; + padding-bottom: .5rem !important +} + +.py-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important +} + +.py-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important +} + +.py-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important +} + +.pt-0 { + padding-top: 0 !important +} + +.pt-1 { + padding-top: .25rem !important +} + +.pt-2 { + padding-top: .5rem !important +} + +.pt-3 { + padding-top: 1rem !important +} + +.pt-4 { + padding-top: 1.5rem !important +} + +.pt-5 { + padding-top: 3rem !important +} + +.pr-0 { + padding-right: 0 !important +} + +.pr-1 { + padding-right: .25rem !important +} + +.pr-2 { + padding-right: .5rem !important +} + +.pr-3 { + padding-right: 1rem !important +} + +.pr-4 { + padding-right: 1.5rem !important +} + +.pr-5 { + padding-right: 3rem !important +} + +.pb-0 { + padding-bottom: 0 !important +} + +.pb-1 { + padding-bottom: .25rem !important +} + +.pb-2 { + padding-bottom: .5rem !important +} + +.pb-3 { + padding-bottom: 1rem !important +} + +.pb-4 { + padding-bottom: 1.5rem !important +} + +.pb-5 { + padding-bottom: 3rem !important +} + +.pl-0 { + padding-left: 0 !important +} + +.pl-1 { + padding-left: .25rem !important +} + +.pl-2 { + padding-left: .5rem !important +} + +.pl-3 { + padding-left: 1rem !important +} + +.pl-4 { + padding-left: 1.5rem !important +} + +.pl-5 { + padding-left: 3rem !important +} + +.font-weight-light { + font-weight: 300 !important +} + +.font-weight-lighter { + font-weight: lighter !important +} + +.font-weight-normal { + font-weight: 500 !important +} + +.font-weight-bold { + font-weight: 700 !important +} + +.font-weight-bolder { + font-weight: bolder !important +} + +.text-lowercase { + text-transform: lowercase !important +} + +.text-uppercase { + text-transform: uppercase !important +} + +.text-capitalize { + text-transform: capitalize !important +} + +.text-left { + text-align: left !important +} + +.text-right { + text-align: right !important +} + +.text-center { + text-align: center !important +} + +.text-primary { + color: var(--bs-primary) +} + +.text-secondary { + color: var(--bs-secondary) +} + +.text-success { + color: #28a745 !important +} + +.text-info { + color: #17a2b8 !important +} + +.text-warning { + color: #ffc107 !important +} + +.text-danger { + color: #dc3545 !important +} + +.text-light { + color: #f8f9fa !important +} + +.text-dark { + color: #343a40 !important +} + +.text-white { + color: #fff !important +} + +.text-body { + color: #212529 !important +} + +.text-muted { + color: #6c757d !important +} + +.text-black-50 { + color: rgba(0, 0, 0, .5) !important +} + +.text-white-50 { + color: rgba(255, 255, 255, .5) !important +} + +.text-reset { + color: inherit !important +} + +.lh-1 { + line-height: 1 !important +} + +.lh-sm { + line-height: 1.25 !important +} + +.lh-base { + line-height: 1.5 !important +} + +.lh-lg { + line-height: 2 !important +} + +.bg-primary { + background-color: var(--bs-primary) +} + +.bg-secondary { + background-color: var(--bs-secondary) +} + +.bg-success { + background-color: #28a745 !important +} + +.bg-info { + background-color: #17a2b8 !important +} + +.bg-warning { + background-color: #ffc107 !important +} + +.bg-danger { + background-color: #dc3545 !important +} + +.bg-light { + background-color: #f8f9fa !important +} + +.bg-dark { + background-color: #343a40 !important +} + +.bg-body { + background-color: #fff !important +} + +.bg-white { + background-color: #fff !important +} + +.bg-transparent { + background-color: transparent !important +} + +.bg-gradient { + background-image: var(--bs-gradient) !important +} + +.text-wrap { + white-space: normal !important +} + +.text-nowrap { + white-space: nowrap !important +} + +.text-decoration-none { + text-decoration: none !important +} + +.text-decoration-underline { + text-decoration: underline !important +} + +.text-decoration-line-through { + text-decoration: line-through !important +} + +.font-italic { + font-style: italic !important +} + +.font-normal { + font-style: normal !important +} + +.text-break { + word-wrap: break-word !important; + word-break: break-word !important +} + +.font-monospace { + font-family: var(--bs-font-monospace) !important +} + +.user-select-all { + -webkit-user-select: all !important; + -moz-user-select: all !important; + -ms-user-select: all !important; + user-select: all !important +} + +.user-select-auto { + -webkit-user-select: auto !important; + -moz-user-select: auto !important; + -ms-user-select: auto !important; + user-select: auto !important +} + +.user-select-none { + -webkit-user-select: none !important; + -moz-user-select: none !important; + -ms-user-select: none !important; + user-select: none !important +} + +.pe-none { + pointer-events: none !important +} + +.pe-auto { + pointer-events: auto !important +} + +.rounded { + border-radius: .25rem !important +} + +.rounded-sm { + border-radius: .2rem !important +} + +.rounded-lg { + border-radius: .3rem !important +} + +.rounded-circle { + border-radius: 50% !important +} + +.rounded-pill { + border-radius: 50rem !important +} + +.rounded-0 { + border-radius: 0 !important +} + +.rounded-top { + border-top-left-radius: .25rem !important; + border-top-right-radius: .25rem !important +} + +.rounded-right { + border-top-right-radius: .25rem !important; + border-bottom-right-radius: .25rem !important +} + +.rounded-bottom { + border-bottom-right-radius: .25rem !important; + border-bottom-left-radius: .25rem !important +} + +.rounded-left { + border-bottom-left-radius: .25rem !important; + border-top-left-radius: .25rem !important +} + +.visible { + visibility: visible !important +} + +.invisible { + visibility: hidden !important +} + +@media (min-width:576px) { + .float-sm-left { + float: left !important + } + .float-sm-right { + float: right !important + } + .float-sm-none { + float: none !important + } + .d-sm-none { + display: none !important + } + .d-sm-inline { + display: inline !important + } + .d-sm-inline-block { + display: inline-block !important + } + .d-sm-block { + display: block !important + } + .d-sm-table { + display: table !important + } + .d-sm-table-row { + display: table-row !important + } + .d-sm-table-cell { + display: table-cell !important + } + .d-sm-flex { + display: flex !important + } + .d-sm-inline-flex { + display: inline-flex !important + } + .flex-sm-fill { + flex: 1 1 auto !important + } + .flex-sm-row { + flex-direction: row !important + } + .flex-sm-column { + flex-direction: column !important + } + .flex-sm-row-reverse { + flex-direction: row-reverse !important + } + .flex-sm-column-reverse { + flex-direction: column-reverse !important + } + .flex-sm-grow-0 { + flex-grow: 0 !important + } + .flex-sm-grow-1 { + flex-grow: 1 !important + } + .flex-sm-shrink-0 { + flex-shrink: 0 !important + } + .flex-sm-shrink-1 { + flex-shrink: 1 !important + } + .flex-sm-wrap { + flex-wrap: wrap !important + } + .flex-sm-nowrap { + flex-wrap: nowrap !important + } + .flex-sm-wrap-reverse { + flex-wrap: wrap-reverse !important + } + .justify-content-sm-start { + justify-content: flex-start !important + } + .justify-content-sm-end { + justify-content: flex-end !important + } + .justify-content-sm-center { + justify-content: center !important + } + .justify-content-sm-between { + justify-content: space-between !important + } + .justify-content-sm-around { + justify-content: space-around !important + } + .justify-content-sm-evenly { + justify-content: space-evenly !important + } + .align-items-sm-start { + align-items: flex-start !important + } + .align-items-sm-end { + align-items: flex-end !important + } + .align-items-sm-center { + align-items: center !important + } + .align-items-sm-baseline { + align-items: baseline !important + } + .align-items-sm-stretch { + align-items: stretch !important + } + .align-content-sm-start { + align-content: flex-start !important + } + .align-content-sm-end { + align-content: flex-end !important + } + .align-content-sm-center { + align-content: center !important + } + .align-content-sm-between { + align-content: space-between !important + } + .align-content-sm-around { + align-content: space-around !important + } + .align-content-sm-stretch { + align-content: stretch !important + } + .align-self-sm-auto { + align-self: auto !important + } + .align-self-sm-start { + align-self: flex-start !important + } + .align-self-sm-end { + align-self: flex-end !important + } + .align-self-sm-center { + align-self: center !important + } + .align-self-sm-baseline { + align-self: baseline !important + } + .align-self-sm-stretch { + align-self: stretch !important + } + .order-sm-first { + order: -1 !important + } + .order-sm-0 { + order: 0 !important + } + .order-sm-1 { + order: 1 !important + } + .order-sm-2 { + order: 2 !important + } + .order-sm-3 { + order: 3 !important + } + .order-sm-4 { + order: 4 !important + } + .order-sm-5 { + order: 5 !important + } + .order-sm-last { + order: 6 !important + } + .m-sm-0 { + margin: 0 !important + } + .m-sm-1 { + margin: .25rem !important + } + .m-sm-2 { + margin: .5rem !important + } + .m-sm-3 { + margin: 1rem !important + } + .m-sm-4 { + margin: 1.5rem !important + } + .m-sm-5 { + margin: 3rem !important + } + .m-sm-auto { + margin: auto !important + } + .mx-sm-0 { + margin-right: 0 !important; + margin-left: 0 !important + } + .mx-sm-1 { + margin-right: .25rem !important; + margin-left: .25rem !important + } + .mx-sm-2 { + margin-right: .5rem !important; + margin-left: .5rem !important + } + .mx-sm-3 { + margin-right: 1rem !important; + margin-left: 1rem !important + } + .mx-sm-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important + } + .mx-sm-5 { + margin-right: 3rem !important; + margin-left: 3rem !important + } + .mx-sm-auto { + margin-right: auto !important; + margin-left: auto !important + } + .my-sm-0 { + margin-top: 0 !important; + margin-bottom: 0 !important + } + .my-sm-1 { + margin-top: .25rem !important; + margin-bottom: .25rem !important + } + .my-sm-2 { + margin-top: .5rem !important; + margin-bottom: .5rem !important + } + .my-sm-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important + } + .my-sm-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important + } + .my-sm-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important + } + .my-sm-auto { + margin-top: auto !important; + margin-bottom: auto !important + } + .mt-sm-0 { + margin-top: 0 !important + } + .mt-sm-1 { + margin-top: .25rem !important + } + .mt-sm-2 { + margin-top: .5rem !important + } + .mt-sm-3 { + margin-top: 1rem !important + } + .mt-sm-4 { + margin-top: 1.5rem !important + } + .mt-sm-5 { + margin-top: 3rem !important + } + .mt-sm-auto { + margin-top: auto !important + } + .mr-sm-0 { + margin-right: 0 !important + } + .mr-sm-1 { + margin-right: .25rem !important + } + .mr-sm-2 { + margin-right: .5rem !important + } + .mr-sm-3 { + margin-right: 1rem !important + } + .mr-sm-4 { + margin-right: 1.5rem !important + } + .mr-sm-5 { + margin-right: 3rem !important + } + .mr-sm-auto { + margin-right: auto !important + } + .mb-sm-0 { + margin-bottom: 0 !important + } + .mb-sm-1 { + margin-bottom: .25rem !important + } + .mb-sm-2 { + margin-bottom: .5rem !important + } + .mb-sm-3 { + margin-bottom: 1rem !important + } + .mb-sm-4 { + margin-bottom: 1.5rem !important + } + .mb-sm-5 { + margin-bottom: 3rem !important + } + .mb-sm-auto { + margin-bottom: auto !important + } + .ml-sm-0 { + margin-left: 0 !important + } + .ml-sm-1 { + margin-left: .25rem !important + } + .ml-sm-2 { + margin-left: .5rem !important + } + .ml-sm-3 { + margin-left: 1rem !important + } + .ml-sm-4 { + margin-left: 1.5rem !important + } + .ml-sm-5 { + margin-left: 3rem !important + } + .ml-sm-auto { + margin-left: auto !important + } + .p-sm-0 { + padding: 0 !important + } + .p-sm-1 { + padding: .25rem !important + } + .p-sm-2 { + padding: .5rem !important + } + .p-sm-3 { + padding: 1rem !important + } + .p-sm-4 { + padding: 1.5rem !important + } + .p-sm-5 { + padding: 3rem !important + } + .px-sm-0 { + padding-right: 0 !important; + padding-left: 0 !important + } + .px-sm-1 { + padding-right: .25rem !important; + padding-left: .25rem !important + } + .px-sm-2 { + padding-right: .5rem !important; + padding-left: .5rem !important + } + .px-sm-3 { + padding-right: 1rem !important; + padding-left: 1rem !important + } + .px-sm-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important + } + .px-sm-5 { + padding-right: 3rem !important; + padding-left: 3rem !important + } + .py-sm-0 { + padding-top: 0 !important; + padding-bottom: 0 !important + } + .py-sm-1 { + padding-top: .25rem !important; + padding-bottom: .25rem !important + } + .py-sm-2 { + padding-top: .5rem !important; + padding-bottom: .5rem !important + } + .py-sm-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important + } + .py-sm-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important + } + .py-sm-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important + } + .pt-sm-0 { + padding-top: 0 !important + } + .pt-sm-1 { + padding-top: .25rem !important + } + .pt-sm-2 { + padding-top: .5rem !important + } + .pt-sm-3 { + padding-top: 1rem !important + } + .pt-sm-4 { + padding-top: 1.5rem !important + } + .pt-sm-5 { + padding-top: 3rem !important + } + .pr-sm-0 { + padding-right: 0 !important + } + .pr-sm-1 { + padding-right: .25rem !important + } + .pr-sm-2 { + padding-right: .5rem !important + } + .pr-sm-3 { + padding-right: 1rem !important + } + .pr-sm-4 { + padding-right: 1.5rem !important + } + .pr-sm-5 { + padding-right: 3rem !important + } + .pb-sm-0 { + padding-bottom: 0 !important + } + .pb-sm-1 { + padding-bottom: .25rem !important + } + .pb-sm-2 { + padding-bottom: .5rem !important + } + .pb-sm-3 { + padding-bottom: 1rem !important + } + .pb-sm-4 { + padding-bottom: 1.5rem !important + } + .pb-sm-5 { + padding-bottom: 3rem !important + } + .pl-sm-0 { + padding-left: 0 !important + } + .pl-sm-1 { + padding-left: .25rem !important + } + .pl-sm-2 { + padding-left: .5rem !important + } + .pl-sm-3 { + padding-left: 1rem !important + } + .pl-sm-4 { + padding-left: 1.5rem !important + } + .pl-sm-5 { + padding-left: 3rem !important + } + .text-sm-left { + text-align: left !important + } + .text-sm-right { + text-align: right !important + } + .text-sm-center { + text-align: center !important + } +} + +@media (min-width:768px) { + .float-md-left { + float: left !important + } + .float-md-right { + float: right !important + } + .float-md-none { + float: none !important + } + .d-md-none { + display: none !important + } + .d-md-inline { + display: inline !important + } + .d-md-inline-block { + display: inline-block !important + } + .d-md-block { + display: block !important + } + .d-md-table { + display: table !important + } + .d-md-table-row { + display: table-row !important + } + .d-md-table-cell { + display: table-cell !important + } + .d-md-flex { + display: flex !important + } + .d-md-inline-flex { + display: inline-flex !important + } + .flex-md-fill { + flex: 1 1 auto !important + } + .flex-md-row { + flex-direction: row !important + } + .flex-md-column { + flex-direction: column !important + } + .flex-md-row-reverse { + flex-direction: row-reverse !important + } + .flex-md-column-reverse { + flex-direction: column-reverse !important + } + .flex-md-grow-0 { + flex-grow: 0 !important + } + .flex-md-grow-1 { + flex-grow: 1 !important + } + .flex-md-shrink-0 { + flex-shrink: 0 !important + } + .flex-md-shrink-1 { + flex-shrink: 1 !important + } + .flex-md-wrap { + flex-wrap: wrap !important + } + .flex-md-nowrap { + flex-wrap: nowrap !important + } + .flex-md-wrap-reverse { + flex-wrap: wrap-reverse !important + } + .justify-content-md-start { + justify-content: flex-start !important + } + .justify-content-md-end { + justify-content: flex-end !important + } + .justify-content-md-center { + justify-content: center !important + } + .justify-content-md-between { + justify-content: space-between !important + } + .justify-content-md-around { + justify-content: space-around !important + } + .justify-content-md-evenly { + justify-content: space-evenly !important + } + .align-items-md-start { + align-items: flex-start !important + } + .align-items-md-end { + align-items: flex-end !important + } + .align-items-md-center { + align-items: center !important + } + .align-items-md-baseline { + align-items: baseline !important + } + .align-items-md-stretch { + align-items: stretch !important + } + .align-content-md-start { + align-content: flex-start !important + } + .align-content-md-end { + align-content: flex-end !important + } + .align-content-md-center { + align-content: center !important + } + .align-content-md-between { + align-content: space-between !important + } + .align-content-md-around { + align-content: space-around !important + } + .align-content-md-stretch { + align-content: stretch !important + } + .align-self-md-auto { + align-self: auto !important + } + .align-self-md-start { + align-self: flex-start !important + } + .align-self-md-end { + align-self: flex-end !important + } + .align-self-md-center { + align-self: center !important + } + .align-self-md-baseline { + align-self: baseline !important + } + .align-self-md-stretch { + align-self: stretch !important + } + .order-md-first { + order: -1 !important + } + .order-md-0 { + order: 0 !important + } + .order-md-1 { + order: 1 !important + } + .order-md-2 { + order: 2 !important + } + .order-md-3 { + order: 3 !important + } + .order-md-4 { + order: 4 !important + } + .order-md-5 { + order: 5 !important + } + .order-md-last { + order: 6 !important + } + .m-md-0 { + margin: 0 !important + } + .m-md-1 { + margin: .25rem !important + } + .m-md-2 { + margin: .5rem !important + } + .m-md-3 { + margin: 1rem !important + } + .m-md-4 { + margin: 1.5rem !important + } + .m-md-5 { + margin: 3rem !important + } + .m-md-auto { + margin: auto !important + } + .mx-md-0 { + margin-right: 0 !important; + margin-left: 0 !important + } + .mx-md-1 { + margin-right: .25rem !important; + margin-left: .25rem !important + } + .mx-md-2 { + margin-right: .5rem !important; + margin-left: .5rem !important + } + .mx-md-3 { + margin-right: 1rem !important; + margin-left: 1rem !important + } + .mx-md-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important + } + .mx-md-5 { + margin-right: 3rem !important; + margin-left: 3rem !important + } + .mx-md-auto { + margin-right: auto !important; + margin-left: auto !important + } + .my-md-0 { + margin-top: 0 !important; + margin-bottom: 0 !important + } + .my-md-1 { + margin-top: .25rem !important; + margin-bottom: .25rem !important + } + .my-md-2 { + margin-top: .5rem !important; + margin-bottom: .5rem !important + } + .my-md-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important + } + .my-md-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important + } + .my-md-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important + } + .my-md-auto { + margin-top: auto !important; + margin-bottom: auto !important + } + .mt-md-0 { + margin-top: 0 !important + } + .mt-md-1 { + margin-top: .25rem !important + } + .mt-md-2 { + margin-top: .5rem !important + } + .mt-md-3 { + margin-top: 1rem !important + } + .mt-md-4 { + margin-top: 1.5rem !important + } + .mt-md-5 { + margin-top: 3rem !important + } + .mt-md-auto { + margin-top: auto !important + } + .mr-md-0 { + margin-right: 0 !important + } + .mr-md-1 { + margin-right: .25rem !important + } + .mr-md-2 { + margin-right: .5rem !important + } + .mr-md-3 { + margin-right: 1rem !important + } + .mr-md-4 { + margin-right: 1.5rem !important + } + .mr-md-5 { + margin-right: 3rem !important + } + .mr-md-auto { + margin-right: auto !important + } + .mb-md-0 { + margin-bottom: 0 !important + } + .mb-md-1 { + margin-bottom: .25rem !important + } + .mb-md-2 { + margin-bottom: .5rem !important + } + .mb-md-3 { + margin-bottom: 1rem !important + } + .mb-md-4 { + margin-bottom: 1.5rem !important + } + .mb-md-5 { + margin-bottom: 3rem !important + } + .mb-md-auto { + margin-bottom: auto !important + } + .ml-md-0 { + margin-left: 0 !important + } + .ml-md-1 { + margin-left: .25rem !important + } + .ml-md-2 { + margin-left: .5rem !important + } + .ml-md-3 { + margin-left: 1rem !important + } + .ml-md-4 { + margin-left: 1.5rem !important + } + .ml-md-5 { + margin-left: 3rem !important + } + .ml-md-auto { + margin-left: auto !important + } + .p-md-0 { + padding: 0 !important + } + .p-md-1 { + padding: .25rem !important + } + .p-md-2 { + padding: .5rem !important + } + .p-md-3 { + padding: 1rem !important + } + .p-md-4 { + padding: 1.5rem !important + } + .p-md-5 { + padding: 3rem !important + } + .px-md-0 { + padding-right: 0 !important; + padding-left: 0 !important + } + .px-md-1 { + padding-right: .25rem !important; + padding-left: .25rem !important + } + .px-md-2 { + padding-right: .5rem !important; + padding-left: .5rem !important + } + .px-md-3 { + padding-right: 1rem !important; + padding-left: 1rem !important + } + .px-md-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important + } + .px-md-5 { + padding-right: 3rem !important; + padding-left: 3rem !important + } + .py-md-0 { + padding-top: 0 !important; + padding-bottom: 0 !important + } + .py-md-1 { + padding-top: .25rem !important; + padding-bottom: .25rem !important + } + .py-md-2 { + padding-top: .5rem !important; + padding-bottom: .5rem !important + } + .py-md-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important + } + .py-md-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important + } + .py-md-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important + } + .pt-md-0 { + padding-top: 0 !important + } + .pt-md-1 { + padding-top: .25rem !important + } + .pt-md-2 { + padding-top: .5rem !important + } + .pt-md-3 { + padding-top: 1rem !important + } + .pt-md-4 { + padding-top: 1.5rem !important + } + .pt-md-5 { + padding-top: 3rem !important + } + .pr-md-0 { + padding-right: 0 !important + } + .pr-md-1 { + padding-right: .25rem !important + } + .pr-md-2 { + padding-right: .5rem !important + } + .pr-md-3 { + padding-right: 1rem !important + } + .pr-md-4 { + padding-right: 1.5rem !important + } + .pr-md-5 { + padding-right: 3rem !important + } + .pb-md-0 { + padding-bottom: 0 !important + } + .pb-md-1 { + padding-bottom: .25rem !important + } + .pb-md-2 { + padding-bottom: .5rem !important + } + .pb-md-3 { + padding-bottom: 1rem !important + } + .pb-md-4 { + padding-bottom: 1.5rem !important + } + .pb-md-5 { + padding-bottom: 3rem !important + } + .pl-md-0 { + padding-left: 0 !important + } + .pl-md-1 { + padding-left: .25rem !important + } + .pl-md-2 { + padding-left: .5rem !important + } + .pl-md-3 { + padding-left: 1rem !important + } + .pl-md-4 { + padding-left: 1.5rem !important + } + .pl-md-5 { + padding-left: 3rem !important + } + .text-md-left { + text-align: left !important + } + .text-md-right { + text-align: right !important + } + .text-md-center { + text-align: center !important + } +} + +@media (min-width:992px) { + .float-lg-left { + float: left !important + } + .float-lg-right { + float: right !important + } + .float-lg-none { + float: none !important + } + .d-lg-none { + display: none !important + } + .d-lg-inline { + display: inline !important + } + .d-lg-inline-block { + display: inline-block !important + } + .d-lg-block { + display: block !important + } + .d-lg-table { + display: table !important + } + .d-lg-table-row { + display: table-row !important + } + .d-lg-table-cell { + display: table-cell !important + } + .d-lg-flex { + display: flex !important + } + .d-lg-inline-flex { + display: inline-flex !important + } + .flex-lg-fill { + flex: 1 1 auto !important + } + .flex-lg-row { + flex-direction: row !important + } + .flex-lg-column { + flex-direction: column !important + } + .flex-lg-row-reverse { + flex-direction: row-reverse !important + } + .flex-lg-column-reverse { + flex-direction: column-reverse !important + } + .flex-lg-grow-0 { + flex-grow: 0 !important + } + .flex-lg-grow-1 { + flex-grow: 1 !important + } + .flex-lg-shrink-0 { + flex-shrink: 0 !important + } + .flex-lg-shrink-1 { + flex-shrink: 1 !important + } + .flex-lg-wrap { + flex-wrap: wrap !important + } + .flex-lg-nowrap { + flex-wrap: nowrap !important + } + .flex-lg-wrap-reverse { + flex-wrap: wrap-reverse !important + } + .justify-content-lg-start { + justify-content: flex-start !important + } + .justify-content-lg-end { + justify-content: flex-end !important + } + .justify-content-lg-center { + justify-content: center !important + } + .justify-content-lg-between { + justify-content: space-between !important + } + .justify-content-lg-around { + justify-content: space-around !important + } + .justify-content-lg-evenly { + justify-content: space-evenly !important + } + .align-items-lg-start { + align-items: flex-start !important + } + .align-items-lg-end { + align-items: flex-end !important + } + .align-items-lg-center { + align-items: center !important + } + .align-items-lg-baseline { + align-items: baseline !important + } + .align-items-lg-stretch { + align-items: stretch !important + } + .align-content-lg-start { + align-content: flex-start !important + } + .align-content-lg-end { + align-content: flex-end !important + } + .align-content-lg-center { + align-content: center !important + } + .align-content-lg-between { + align-content: space-between !important + } + .align-content-lg-around { + align-content: space-around !important + } + .align-content-lg-stretch { + align-content: stretch !important + } + .align-self-lg-auto { + align-self: auto !important + } + .align-self-lg-start { + align-self: flex-start !important + } + .align-self-lg-end { + align-self: flex-end !important + } + .align-self-lg-center { + align-self: center !important + } + .align-self-lg-baseline { + align-self: baseline !important + } + .align-self-lg-stretch { + align-self: stretch !important + } + .order-lg-first { + order: -1 !important + } + .order-lg-0 { + order: 0 !important + } + .order-lg-1 { + order: 1 !important + } + .order-lg-2 { + order: 2 !important + } + .order-lg-3 { + order: 3 !important + } + .order-lg-4 { + order: 4 !important + } + .order-lg-5 { + order: 5 !important + } + .order-lg-last { + order: 6 !important + } + .m-lg-0 { + margin: 0 !important + } + .m-lg-1 { + margin: .25rem !important + } + .m-lg-2 { + margin: .5rem !important + } + .m-lg-3 { + margin: 1rem !important + } + .m-lg-4 { + margin: 1.5rem !important + } + .m-lg-5 { + margin: 3rem !important + } + .m-lg-auto { + margin: auto !important + } + .mx-lg-0 { + margin-right: 0 !important; + margin-left: 0 !important + } + .mx-lg-1 { + margin-right: .25rem !important; + margin-left: .25rem !important + } + .mx-lg-2 { + margin-right: .5rem !important; + margin-left: .5rem !important + } + .mx-lg-3 { + margin-right: 1rem !important; + margin-left: 1rem !important + } + .mx-lg-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important + } + .mx-lg-5 { + margin-right: 3rem !important; + margin-left: 3rem !important + } + .mx-lg-auto { + margin-right: auto !important; + margin-left: auto !important + } + .my-lg-0 { + margin-top: 0 !important; + margin-bottom: 0 !important + } + .my-lg-1 { + margin-top: .25rem !important; + margin-bottom: .25rem !important + } + .my-lg-2 { + margin-top: .5rem !important; + margin-bottom: .5rem !important + } + .my-lg-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important + } + .my-lg-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important + } + .my-lg-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important + } + .my-lg-auto { + margin-top: auto !important; + margin-bottom: auto !important + } + .mt-lg-0 { + margin-top: 0 !important + } + .mt-lg-1 { + margin-top: .25rem !important + } + .mt-lg-2 { + margin-top: .5rem !important + } + .mt-lg-3 { + margin-top: 1rem !important + } + .mt-lg-4 { + margin-top: 1.5rem !important + } + .mt-lg-5 { + margin-top: 3rem !important + } + .mt-lg-auto { + margin-top: auto !important + } + .mr-lg-0 { + margin-right: 0 !important + } + .mr-lg-1 { + margin-right: .25rem !important + } + .mr-lg-2 { + margin-right: .5rem !important + } + .mr-lg-3 { + margin-right: 1rem !important + } + .mr-lg-4 { + margin-right: 1.5rem !important + } + .mr-lg-5 { + margin-right: 3rem !important + } + .mr-lg-auto { + margin-right: auto !important + } + .mb-lg-0 { + margin-bottom: 0 !important + } + .mb-lg-1 { + margin-bottom: .25rem !important + } + .mb-lg-2 { + margin-bottom: .5rem !important + } + .mb-lg-3 { + margin-bottom: 1rem !important + } + .mb-lg-4 { + margin-bottom: 1.5rem !important + } + .mb-lg-5 { + margin-bottom: 3rem !important + } + .mb-lg-auto { + margin-bottom: auto !important + } + .ml-lg-0 { + margin-left: 0 !important + } + .ml-lg-1 { + margin-left: .25rem !important + } + .ml-lg-2 { + margin-left: .5rem !important + } + .ml-lg-3 { + margin-left: 1rem !important + } + .ml-lg-4 { + margin-left: 1.5rem !important + } + .ml-lg-5 { + margin-left: 3rem !important + } + .ml-lg-auto { + margin-left: auto !important + } + .p-lg-0 { + padding: 0 !important + } + .p-lg-1 { + padding: .25rem !important + } + .p-lg-2 { + padding: .5rem !important + } + .p-lg-3 { + padding: 1rem !important + } + .p-lg-4 { + padding: 1.5rem !important + } + .p-lg-5 { + padding: 3rem !important + } + .px-lg-0 { + padding-right: 0 !important; + padding-left: 0 !important + } + .px-lg-1 { + padding-right: .25rem !important; + padding-left: .25rem !important + } + .px-lg-2 { + padding-right: .5rem !important; + padding-left: .5rem !important + } + .px-lg-3 { + padding-right: 1rem !important; + padding-left: 1rem !important + } + .px-lg-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important + } + .px-lg-5 { + padding-right: 3rem !important; + padding-left: 3rem !important + } + .py-lg-0 { + padding-top: 0 !important; + padding-bottom: 0 !important + } + .py-lg-1 { + padding-top: .25rem !important; + padding-bottom: .25rem !important + } + .py-lg-2 { + padding-top: .5rem !important; + padding-bottom: .5rem !important + } + .py-lg-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important + } + .py-lg-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important + } + .py-lg-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important + } + .pt-lg-0 { + padding-top: 0 !important + } + .pt-lg-1 { + padding-top: .25rem !important + } + .pt-lg-2 { + padding-top: .5rem !important + } + .pt-lg-3 { + padding-top: 1rem !important + } + .pt-lg-4 { + padding-top: 1.5rem !important + } + .pt-lg-5 { + padding-top: 3rem !important + } + .pr-lg-0 { + padding-right: 0 !important + } + .pr-lg-1 { + padding-right: .25rem !important + } + .pr-lg-2 { + padding-right: .5rem !important + } + .pr-lg-3 { + padding-right: 1rem !important + } + .pr-lg-4 { + padding-right: 1.5rem !important + } + .pr-lg-5 { + padding-right: 3rem !important + } + .pb-lg-0 { + padding-bottom: 0 !important + } + .pb-lg-1 { + padding-bottom: .25rem !important + } + .pb-lg-2 { + padding-bottom: .5rem !important + } + .pb-lg-3 { + padding-bottom: 1rem !important + } + .pb-lg-4 { + padding-bottom: 1.5rem !important + } + .pb-lg-5 { + padding-bottom: 3rem !important + } + .pl-lg-0 { + padding-left: 0 !important + } + .pl-lg-1 { + padding-left: .25rem !important + } + .pl-lg-2 { + padding-left: .5rem !important + } + .pl-lg-3 { + padding-left: 1rem !important + } + .pl-lg-4 { + padding-left: 1.5rem !important + } + .pl-lg-5 { + padding-left: 3rem !important + } + .text-lg-left { + text-align: left !important + } + .text-lg-right { + text-align: right !important + } + .text-lg-center { + text-align: center !important + } +} + +@media (min-width:1200px) { + .float-xl-left { + float: left !important + } + .float-xl-right { + float: right !important + } + .float-xl-none { + float: none !important + } + .d-xl-none { + display: none !important + } + .d-xl-inline { + display: inline !important + } + .d-xl-inline-block { + display: inline-block !important + } + .d-xl-block { + display: block !important + } + .d-xl-table { + display: table !important + } + .d-xl-table-row { + display: table-row !important + } + .d-xl-table-cell { + display: table-cell !important + } + .d-xl-flex { + display: flex !important + } + .d-xl-inline-flex { + display: inline-flex !important + } + .flex-xl-fill { + flex: 1 1 auto !important + } + .flex-xl-row { + flex-direction: row !important + } + .flex-xl-column { + flex-direction: column !important + } + .flex-xl-row-reverse { + flex-direction: row-reverse !important + } + .flex-xl-column-reverse { + flex-direction: column-reverse !important + } + .flex-xl-grow-0 { + flex-grow: 0 !important + } + .flex-xl-grow-1 { + flex-grow: 1 !important + } + .flex-xl-shrink-0 { + flex-shrink: 0 !important + } + .flex-xl-shrink-1 { + flex-shrink: 1 !important + } + .flex-xl-wrap { + flex-wrap: wrap !important + } + .flex-xl-nowrap { + flex-wrap: nowrap !important + } + .flex-xl-wrap-reverse { + flex-wrap: wrap-reverse !important + } + .justify-content-xl-start { + justify-content: flex-start !important + } + .justify-content-xl-end { + justify-content: flex-end !important + } + .justify-content-xl-center { + justify-content: center !important + } + .justify-content-xl-between { + justify-content: space-between !important + } + .justify-content-xl-around { + justify-content: space-around !important + } + .justify-content-xl-evenly { + justify-content: space-evenly !important + } + .align-items-xl-start { + align-items: flex-start !important + } + .align-items-xl-end { + align-items: flex-end !important + } + .align-items-xl-center { + align-items: center !important + } + .align-items-xl-baseline { + align-items: baseline !important + } + .align-items-xl-stretch { + align-items: stretch !important + } + .align-content-xl-start { + align-content: flex-start !important + } + .align-content-xl-end { + align-content: flex-end !important + } + .align-content-xl-center { + align-content: center !important + } + .align-content-xl-between { + align-content: space-between !important + } + .align-content-xl-around { + align-content: space-around !important + } + .align-content-xl-stretch { + align-content: stretch !important + } + .align-self-xl-auto { + align-self: auto !important + } + .align-self-xl-start { + align-self: flex-start !important + } + .align-self-xl-end { + align-self: flex-end !important + } + .align-self-xl-center { + align-self: center !important + } + .align-self-xl-baseline { + align-self: baseline !important + } + .align-self-xl-stretch { + align-self: stretch !important + } + .order-xl-first { + order: -1 !important + } + .order-xl-0 { + order: 0 !important + } + .order-xl-1 { + order: 1 !important + } + .order-xl-2 { + order: 2 !important + } + .order-xl-3 { + order: 3 !important + } + .order-xl-4 { + order: 4 !important + } + .order-xl-5 { + order: 5 !important + } + .order-xl-last { + order: 6 !important + } + .m-xl-0 { + margin: 0 !important + } + .m-xl-1 { + margin: .25rem !important + } + .m-xl-2 { + margin: .5rem !important + } + .m-xl-3 { + margin: 1rem !important + } + .m-xl-4 { + margin: 1.5rem !important + } + .m-xl-5 { + margin: 3rem !important + } + .m-xl-auto { + margin: auto !important + } + .mx-xl-0 { + margin-right: 0 !important; + margin-left: 0 !important + } + .mx-xl-1 { + margin-right: .25rem !important; + margin-left: .25rem !important + } + .mx-xl-2 { + margin-right: .5rem !important; + margin-left: .5rem !important + } + .mx-xl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important + } + .mx-xl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important + } + .mx-xl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important + } + .mx-xl-auto { + margin-right: auto !important; + margin-left: auto !important + } + .my-xl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important + } + .my-xl-1 { + margin-top: .25rem !important; + margin-bottom: .25rem !important + } + .my-xl-2 { + margin-top: .5rem !important; + margin-bottom: .5rem !important + } + .my-xl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important + } + .my-xl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important + } + .my-xl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important + } + .my-xl-auto { + margin-top: auto !important; + margin-bottom: auto !important + } + .mt-xl-0 { + margin-top: 0 !important + } + .mt-xl-1 { + margin-top: .25rem !important + } + .mt-xl-2 { + margin-top: .5rem !important + } + .mt-xl-3 { + margin-top: 1rem !important + } + .mt-xl-4 { + margin-top: 1.5rem !important + } + .mt-xl-5 { + margin-top: 3rem !important + } + .mt-xl-auto { + margin-top: auto !important + } + .mr-xl-0 { + margin-right: 0 !important + } + .mr-xl-1 { + margin-right: .25rem !important + } + .mr-xl-2 { + margin-right: .5rem !important + } + .mr-xl-3 { + margin-right: 1rem !important + } + .mr-xl-4 { + margin-right: 1.5rem !important + } + .mr-xl-5 { + margin-right: 3rem !important + } + .mr-xl-auto { + margin-right: auto !important + } + .mb-xl-0 { + margin-bottom: 0 !important + } + .mb-xl-1 { + margin-bottom: .25rem !important + } + .mb-xl-2 { + margin-bottom: .5rem !important + } + .mb-xl-3 { + margin-bottom: 1rem !important + } + .mb-xl-4 { + margin-bottom: 1.5rem !important + } + .mb-xl-5 { + margin-bottom: 3rem !important + } + .mb-xl-auto { + margin-bottom: auto !important + } + .ml-xl-0 { + margin-left: 0 !important + } + .ml-xl-1 { + margin-left: .25rem !important + } + .ml-xl-2 { + margin-left: .5rem !important + } + .ml-xl-3 { + margin-left: 1rem !important + } + .ml-xl-4 { + margin-left: 1.5rem !important + } + .ml-xl-5 { + margin-left: 3rem !important + } + .ml-xl-auto { + margin-left: auto !important + } + .p-xl-0 { + padding: 0 !important + } + .p-xl-1 { + padding: .25rem !important + } + .p-xl-2 { + padding: .5rem !important + } + .p-xl-3 { + padding: 1rem !important + } + .p-xl-4 { + padding: 1.5rem !important + } + .p-xl-5 { + padding: 3rem !important + } + .px-xl-0 { + padding-right: 0 !important; + padding-left: 0 !important + } + .px-xl-1 { + padding-right: .25rem !important; + padding-left: .25rem !important + } + .px-xl-2 { + padding-right: .5rem !important; + padding-left: .5rem !important + } + .px-xl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important + } + .px-xl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important + } + .px-xl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important + } + .py-xl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important + } + .py-xl-1 { + padding-top: .25rem !important; + padding-bottom: .25rem !important + } + .py-xl-2 { + padding-top: .5rem !important; + padding-bottom: .5rem !important + } + .py-xl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important + } + .py-xl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important + } + .py-xl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important + } + .pt-xl-0 { + padding-top: 0 !important + } + .pt-xl-1 { + padding-top: .25rem !important + } + .pt-xl-2 { + padding-top: .5rem !important + } + .pt-xl-3 { + padding-top: 1rem !important + } + .pt-xl-4 { + padding-top: 1.5rem !important + } + .pt-xl-5 { + padding-top: 3rem !important + } + .pr-xl-0 { + padding-right: 0 !important + } + .pr-xl-1 { + padding-right: .25rem !important + } + .pr-xl-2 { + padding-right: .5rem !important + } + .pr-xl-3 { + padding-right: 1rem !important + } + .pr-xl-4 { + padding-right: 1.5rem !important + } + .pr-xl-5 { + padding-right: 3rem !important + } + .pb-xl-0 { + padding-bottom: 0 !important + } + .pb-xl-1 { + padding-bottom: .25rem !important + } + .pb-xl-2 { + padding-bottom: .5rem !important + } + .pb-xl-3 { + padding-bottom: 1rem !important + } + .pb-xl-4 { + padding-bottom: 1.5rem !important + } + .pb-xl-5 { + padding-bottom: 3rem !important + } + .pl-xl-0 { + padding-left: 0 !important + } + .pl-xl-1 { + padding-left: .25rem !important + } + .pl-xl-2 { + padding-left: .5rem !important + } + .pl-xl-3 { + padding-left: 1rem !important + } + .pl-xl-4 { + padding-left: 1.5rem !important + } + .pl-xl-5 { + padding-left: 3rem !important + } + .text-xl-left { + text-align: left !important + } + .text-xl-right { + text-align: right !important + } + .text-xl-center { + text-align: center !important + } +} + +@media (min-width:1400px) { + .float-xxl-left { + float: left !important + } + .float-xxl-right { + float: right !important + } + .float-xxl-none { + float: none !important + } + .d-xxl-none { + display: none !important + } + .d-xxl-inline { + display: inline !important + } + .d-xxl-inline-block { + display: inline-block !important + } + .d-xxl-block { + display: block !important + } + .d-xxl-table { + display: table !important + } + .d-xxl-table-row { + display: table-row !important + } + .d-xxl-table-cell { + display: table-cell !important + } + .d-xxl-flex { + display: flex !important + } + .d-xxl-inline-flex { + display: inline-flex !important + } + .flex-xxl-fill { + flex: 1 1 auto !important + } + .flex-xxl-row { + flex-direction: row !important + } + .flex-xxl-column { + flex-direction: column !important + } + .flex-xxl-row-reverse { + flex-direction: row-reverse !important + } + .flex-xxl-column-reverse { + flex-direction: column-reverse !important + } + .flex-xxl-grow-0 { + flex-grow: 0 !important + } + .flex-xxl-grow-1 { + flex-grow: 1 !important + } + .flex-xxl-shrink-0 { + flex-shrink: 0 !important + } + .flex-xxl-shrink-1 { + flex-shrink: 1 !important + } + .flex-xxl-wrap { + flex-wrap: wrap !important + } + .flex-xxl-nowrap { + flex-wrap: nowrap !important + } + .flex-xxl-wrap-reverse { + flex-wrap: wrap-reverse !important + } + .justify-content-xxl-start { + justify-content: flex-start !important + } + .justify-content-xxl-end { + justify-content: flex-end !important + } + .justify-content-xxl-center { + justify-content: center !important + } + .justify-content-xxl-between { + justify-content: space-between !important + } + .justify-content-xxl-around { + justify-content: space-around !important + } + .justify-content-xxl-evenly { + justify-content: space-evenly !important + } + .align-items-xxl-start { + align-items: flex-start !important + } + .align-items-xxl-end { + align-items: flex-end !important + } + .align-items-xxl-center { + align-items: center !important + } + .align-items-xxl-baseline { + align-items: baseline !important + } + .align-items-xxl-stretch { + align-items: stretch !important + } + .align-content-xxl-start { + align-content: flex-start !important + } + .align-content-xxl-end { + align-content: flex-end !important + } + .align-content-xxl-center { + align-content: center !important + } + .align-content-xxl-between { + align-content: space-between !important + } + .align-content-xxl-around { + align-content: space-around !important + } + .align-content-xxl-stretch { + align-content: stretch !important + } + .align-self-xxl-auto { + align-self: auto !important + } + .align-self-xxl-start { + align-self: flex-start !important + } + .align-self-xxl-end { + align-self: flex-end !important + } + .align-self-xxl-center { + align-self: center !important + } + .align-self-xxl-baseline { + align-self: baseline !important + } + .align-self-xxl-stretch { + align-self: stretch !important + } + .order-xxl-first { + order: -1 !important + } + .order-xxl-0 { + order: 0 !important + } + .order-xxl-1 { + order: 1 !important + } + .order-xxl-2 { + order: 2 !important + } + .order-xxl-3 { + order: 3 !important + } + .order-xxl-4 { + order: 4 !important + } + .order-xxl-5 { + order: 5 !important + } + .order-xxl-last { + order: 6 !important + } + .m-xxl-0 { + margin: 0 !important + } + .m-xxl-1 { + margin: .25rem !important + } + .m-xxl-2 { + margin: .5rem !important + } + .m-xxl-3 { + margin: 1rem !important + } + .m-xxl-4 { + margin: 1.5rem !important + } + .m-xxl-5 { + margin: 3rem !important + } + .m-xxl-auto { + margin: auto !important + } + .mx-xxl-0 { + margin-right: 0 !important; + margin-left: 0 !important + } + .mx-xxl-1 { + margin-right: .25rem !important; + margin-left: .25rem !important + } + .mx-xxl-2 { + margin-right: .5rem !important; + margin-left: .5rem !important + } + .mx-xxl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important + } + .mx-xxl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important + } + .mx-xxl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important + } + .mx-xxl-auto { + margin-right: auto !important; + margin-left: auto !important + } + .my-xxl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important + } + .my-xxl-1 { + margin-top: .25rem !important; + margin-bottom: .25rem !important + } + .my-xxl-2 { + margin-top: .5rem !important; + margin-bottom: .5rem !important + } + .my-xxl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important + } + .my-xxl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important + } + .my-xxl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important + } + .my-xxl-auto { + margin-top: auto !important; + margin-bottom: auto !important + } + .mt-xxl-0 { + margin-top: 0 !important + } + .mt-xxl-1 { + margin-top: .25rem !important + } + .mt-xxl-2 { + margin-top: .5rem !important + } + .mt-xxl-3 { + margin-top: 1rem !important + } + .mt-xxl-4 { + margin-top: 1.5rem !important + } + .mt-xxl-5 { + margin-top: 3rem !important + } + .mt-xxl-auto { + margin-top: auto !important + } + .mr-xxl-0 { + margin-right: 0 !important + } + .mr-xxl-1 { + margin-right: .25rem !important + } + .mr-xxl-2 { + margin-right: .5rem !important + } + .mr-xxl-3 { + margin-right: 1rem !important + } + .mr-xxl-4 { + margin-right: 1.5rem !important + } + .mr-xxl-5 { + margin-right: 3rem !important + } + .mr-xxl-auto { + margin-right: auto !important + } + .mb-xxl-0 { + margin-bottom: 0 !important + } + .mb-xxl-1 { + margin-bottom: .25rem !important + } + .mb-xxl-2 { + margin-bottom: .5rem !important + } + .mb-xxl-3 { + margin-bottom: 1rem !important + } + .mb-xxl-4 { + margin-bottom: 1.5rem !important + } + .mb-xxl-5 { + margin-bottom: 3rem !important + } + .mb-xxl-auto { + margin-bottom: auto !important + } + .ml-xxl-0 { + margin-left: 0 !important + } + .ml-xxl-1 { + margin-left: .25rem !important + } + .ml-xxl-2 { + margin-left: .5rem !important + } + .ml-xxl-3 { + margin-left: 1rem !important + } + .ml-xxl-4 { + margin-left: 1.5rem !important + } + .ml-xxl-5 { + margin-left: 3rem !important + } + .ml-xxl-auto { + margin-left: auto !important + } + .p-xxl-0 { + padding: 0 !important + } + .p-xxl-1 { + padding: .25rem !important + } + .p-xxl-2 { + padding: .5rem !important + } + .p-xxl-3 { + padding: 1rem !important + } + .p-xxl-4 { + padding: 1.5rem !important + } + .p-xxl-5 { + padding: 3rem !important + } + .px-xxl-0 { + padding-right: 0 !important; + padding-left: 0 !important + } + .px-xxl-1 { + padding-right: .25rem !important; + padding-left: .25rem !important + } + .px-xxl-2 { + padding-right: .5rem !important; + padding-left: .5rem !important + } + .px-xxl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important + } + .px-xxl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important + } + .px-xxl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important + } + .py-xxl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important + } + .py-xxl-1 { + padding-top: .25rem !important; + padding-bottom: .25rem !important + } + .py-xxl-2 { + padding-top: .5rem !important; + padding-bottom: .5rem !important + } + .py-xxl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important + } + .py-xxl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important + } + .py-xxl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important + } + .pt-xxl-0 { + padding-top: 0 !important + } + .pt-xxl-1 { + padding-top: .25rem !important + } + .pt-xxl-2 { + padding-top: .5rem !important + } + .pt-xxl-3 { + padding-top: 1rem !important + } + .pt-xxl-4 { + padding-top: 1.5rem !important + } + .pt-xxl-5 { + padding-top: 3rem !important + } + .pr-xxl-0 { + padding-right: 0 !important + } + .pr-xxl-1 { + padding-right: .25rem !important + } + .pr-xxl-2 { + padding-right: .5rem !important + } + .pr-xxl-3 { + padding-right: 1rem !important + } + .pr-xxl-4 { + padding-right: 1.5rem !important + } + .pr-xxl-5 { + padding-right: 3rem !important + } + .pb-xxl-0 { + padding-bottom: 0 !important + } + .pb-xxl-1 { + padding-bottom: .25rem !important + } + .pb-xxl-2 { + padding-bottom: .5rem !important + } + .pb-xxl-3 { + padding-bottom: 1rem !important + } + .pb-xxl-4 { + padding-bottom: 1.5rem !important + } + .pb-xxl-5 { + padding-bottom: 3rem !important + } + .pl-xxl-0 { + padding-left: 0 !important + } + .pl-xxl-1 { + padding-left: .25rem !important + } + .pl-xxl-2 { + padding-left: .5rem !important + } + .pl-xxl-3 { + padding-left: 1rem !important + } + .pl-xxl-4 { + padding-left: 1.5rem !important + } + .pl-xxl-5 { + padding-left: 3rem !important + } + .text-xxl-left { + text-align: left !important + } + .text-xxl-right { + text-align: right !important + } + .text-xxl-center { + text-align: center !important + } +} + +@media print { + .d-print-none { + display: none !important + } + .d-print-inline { + display: inline !important + } + .d-print-inline-block { + display: inline-block !important + } + .d-print-block { + display: block !important + } + .d-print-table { + display: table !important + } + .d-print-table-row { + display: table-row !important + } + .d-print-table-cell { + display: table-cell !important + } + .d-print-flex { + display: flex !important + } + .d-print-inline-flex { + display: inline-flex !important + } +} \ No newline at end of file diff --git a/wp-content/themes/abiz/assets/css/bootstrap.min.css b/wp-content/themes/abiz/assets/css/bootstrap.min.css new file mode 100644 index 0000000..7c1729b --- /dev/null +++ b/wp-content/themes/abiz/assets/css/bootstrap.min.css @@ -0,0 +1,6 @@ +/*! + * Bootstrap v5.0.0-alpha1 (https://getbootstrap.com/) + * Copyright 2011-2020 The Bootstrap Authors + * Copyright 2011-2020 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */*,::after,::before{box-sizing:border-box}body{margin:0;font-family:var(--bs-font-sans-serif);font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-secondary);background-color:#ffffff;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:0.625rem;font-weight:700;line-height:1.2}.h1,h1{font-size:calc(1.375rem + 1.8vw)}@media (min-width:1200px){.h1,h1{font-size:2.8125rem}}.h2,h2{font-size:calc(1.325rem + 1.5vw)}@media (min-width:1200px){.h2,h2{font-size:2.5rem}}.h3,h3{font-size:calc(1.3rem + .7vw)}@media (min-width:1200px){.h3,h3{font-size:1.875rem}}.h4,h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){.h4,h4{font-size:1.5rem}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:.875em}.mark,mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:var(--bs-primary);;text-decoration:underline}a:hover{color:#024dbc}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em;-ms-overflow-style:scrollbar}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit;white-space:normal}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:#6c757d}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{width:100%;padding-right:1rem;padding-left:1rem;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex:1 0 100%;flex-wrap:wrap;margin-top:calc(var(--bs-gutter-y) * -1);margin-right:calc(var(--bs-gutter-x)/ -2);margin-left:calc(var(--bs-gutter-x)/ -2)}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x)/ 2);padding-left:calc(var(--bs-gutter-x)/ 2);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.333333%}.col-2{flex:0 0 auto;width:16.666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.333333%}.col-5{flex:0 0 auto;width:41.666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.333333%}.col-8{flex:0 0 auto;width:66.666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.333333%}.col-11{flex:0 0 auto;width:91.666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.333333%}.col-sm-2{flex:0 0 auto;width:16.666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.333333%}.col-sm-5{flex:0 0 auto;width:41.666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.333333%}.col-sm-8{flex:0 0 auto;width:66.666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.333333%}.col-sm-11{flex:0 0 auto;width:91.666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.333333%}.col-md-2{flex:0 0 auto;width:16.666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.333333%}.col-md-5{flex:0 0 auto;width:41.666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.333333%}.col-md-8{flex:0 0 auto;width:66.666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.333333%}.col-md-11{flex:0 0 auto;width:91.666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.333333%}.col-lg-2{flex:0 0 auto;width:16.666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.333333%}.col-lg-5{flex:0 0 auto;width:41.666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.333333%}.col-lg-8{flex:0 0 auto;width:66.666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.333333%}.col-lg-11{flex:0 0 auto;width:91.666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.333333%}.col-xl-2{flex:0 0 auto;width:16.666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.333333%}.col-xl-5{flex:0 0 auto;width:41.666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.333333%}.col-xl-8{flex:0 0 auto;width:66.666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.333333%}.col-xl-11{flex:0 0 auto;width:91.666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.333333%}.col-xxl-2{flex:0 0 auto;width:16.666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.333333%}.col-xxl-5{flex:0 0 auto;width:41.666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.333333%}.col-xxl-8{flex:0 0 auto;width:66.666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.333333%}.col-xxl-11{flex:0 0 auto;width:91.666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.333333%}.offset-xxl-2{margin-left:16.666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.333333%}.offset-xxl-5{margin-left:41.666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.333333%}.offset-xxl-8{margin-left:66.666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.333333%}.offset-xxl-11{margin-left:91.666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.table{--bs-table-bg:transparent;--bs-table-accent-bg:transparent;--bs-table-striped-color:#212529;--bs-table-striped-bg:rgba(0, 0, 0, 0.05);--bs-table-active-color:#212529;--bs-table-active-bg:rgba(0, 0, 0, 0.1);--bs-table-hover-color:#212529;--bs-table-hover-bg:rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;color:#212529;vertical-align:top;border-color:#dee2e6}.table>:not(caption)>*>*{padding:.5rem .5rem;background-color:var(--bs-table-bg);background-image:linear-gradient(var(--bs-table-accent-bg),var(--bs-table-accent-bg));border-bottom-width:1px}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table>:not(:last-child)>:last-child>*{border-bottom-color:currentColor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-striped>tbody>tr:nth-of-type(odd){--bs-table-accent-bg:var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-active{--bs-table-accent-bg:var(--bs-table-active-bg);color:var(--bs-table-active-color)}.table-hover>tbody>tr:hover{--bs-table-accent-bg:var(--bs-table-hover-bg);color:var(--bs-table-hover-color)}.table-primary{--bs-table-bg:#bbd6fe;--bs-table-striped-bg:#b3cdf3;--bs-table-striped-color:#212529;--bs-table-active-bg:#acc4e9;--bs-table-active-color:#212529;--bs-table-hover-bg:#afc9ee;--bs-table-hover-color:#212529;color:#212529;border-color:#acc4e9}.table-secondary{--bs-table-bg:#d6d8db;--bs-table-striped-bg:#cdcfd2;--bs-table-striped-color:#212529;--bs-table-active-bg:#c4c6c9;--bs-table-active-color:#212529;--bs-table-hover-bg:#c8cbce;--bs-table-hover-color:#212529;color:#212529;border-color:#c4c6c9}.table-success{--bs-table-bg:#c3e6cb;--bs-table-striped-bg:#bbdcc3;--bs-table-striped-color:#212529;--bs-table-active-bg:#b3d3bb;--bs-table-active-color:#212529;--bs-table-hover-bg:#b7d8bf;--bs-table-hover-color:#212529;color:#212529;border-color:#b3d3bb}.table-info{--bs-table-bg:#bee5eb;--bs-table-striped-bg:#b6dbe1;--bs-table-striped-color:#212529;--bs-table-active-bg:#aed2d8;--bs-table-active-color:#212529;--bs-table-hover-bg:#b2d7dc;--bs-table-hover-color:#212529;color:#212529;border-color:#aed2d8}.table-warning{--bs-table-bg:#ffeeba;--bs-table-striped-bg:#f4e4b3;--bs-table-striped-color:#212529;--bs-table-active-bg:#e9daac;--bs-table-active-color:#212529;--bs-table-hover-bg:#eedfaf;--bs-table-hover-color:#212529;color:#212529;border-color:#e9daac}.table-danger{--bs-table-bg:#f5c6cb;--bs-table-striped-bg:#eabec3;--bs-table-striped-color:#212529;--bs-table-active-bg:#e0b6bb;--bs-table-active-color:#212529;--bs-table-hover-bg:#e5babf;--bs-table-hover-color:#212529;color:#212529;border-color:#e0b6bb}.table-light{--bs-table-bg:#f8f9fa;--bs-table-striped-bg:#edeef0;--bs-table-striped-color:#212529;--bs-table-active-bg:#e3e4e5;--bs-table-active-color:#212529;--bs-table-hover-bg:#e8e9ea;--bs-table-hover-color:#212529;color:#212529;border-color:#e3e4e5}.table-dark{--bs-table-bg:#343a40;--bs-table-striped-bg:#3e444a;--bs-table-striped-color:#fff;--bs-table-active-bg:#484e53;--bs-table-active-color:#fff;--bs-table-hover-bg:#43494e;--bs-table-hover-color:#fff;color:#fff;border-color:#484e53}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:#6c757d}.form-control{display:block;width:100%;min-height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control:focus{color:#495057;background-color:#fff;border-color:#8bbafe;outline:0;box-shadow:0 0 0 .2rem rgba(13,110,253,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.form-control-lg{min-height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.form-control-color{max-width:3rem;padding:.375rem}.form-control-color::-moz-color-swatch{border-radius:.25rem}.form-control-color::-webkit-color-swatch{border-radius:.25rem}.form-select{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background-color:#fff;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-select:focus{border-color:#8bbafe;outline:0;box-shadow:0 0 0 .2rem rgba(13,110,253,.25)}.form-select:focus::-ms-value{color:#495057;background-color:#fff}.form-select[multiple],.form-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.form-select:disabled{color:#6c757d;background-color:#e9ecef}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.form-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.form-check{display:block;min-height:1.5rem;padding-left:1.75em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.75em}.form-check-input{width:1.25em;height:1.25em;margin-top:.125em;vertical-align:top;background-color:#fff;background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid rgba(0,0,0,.25);-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact;transition:background-color .15s ease-in-out,background-position .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-check-input{transition:none}}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{-webkit-filter:brightness(90%);filter:brightness(90%)}.form-check-input:focus{border-color:#8bbafe;outline:0;box-shadow:0 0 0 .2rem rgba(13,110,253,.25)}.form-check-input:checked{background-color:var(--bs-primary);;border-color:var(--bs-primary);}.form-check-input:checked[type=checkbox]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:var(--bs-primary);;border-color:var(--bs-primary);;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;-webkit-filter:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{width:2em;margin-left:-2.5em;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");background-position:left center;border-radius:2em}.form-switch .form-check-input:focus{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%238bbafe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.form-file{--bs-form-file-height:calc(1.5em + 0.75rem + 2px);position:relative}.form-file-input{position:relative;z-index:2;width:100%;height:var(--bs-form-file-height);margin:0;opacity:0}.form-file-input:focus-within~.form-file-label{border-color:#8bbafe;box-shadow:0 0 0 .2rem rgba(13,110,253,.25)}.form-file-input:disabled~.form-file-label .form-file-text,.form-file-input[disabled]~.form-file-label .form-file-text{background-color:#e9ecef}.form-file-label{position:absolute;top:0;right:0;left:0;z-index:1;display:flex;height:var(--bs-form-file-height);border-color:#ced4da;border-radius:.25rem}.form-file-text{display:block;flex-grow:1;padding:.375rem .75rem;overflow:hidden;font-weight:400;line-height:1.5;color:#495057;text-overflow:ellipsis;white-space:nowrap;background-color:#fff;border-color:inherit;border-style:solid;border-width:1px;border-top-left-radius:inherit;border-bottom-left-radius:inherit}.form-file-button{display:block;flex-shrink:0;padding:.375rem .75rem;margin-left:-1px;line-height:1.5;color:#495057;background-color:#e9ecef;border-color:inherit;border-style:solid;border-width:1px;border-top-right-radius:inherit;border-bottom-right-radius:inherit}.form-file-sm{--bs-form-file-height:calc(1.5em + 0.5rem + 2px);font-size:.875rem}.form-file-sm .form-file-button,.form-file-sm .form-file-text{padding:.25rem .5rem}.form-file-lg{--bs-form-file-height:calc(1.5em + 1rem + 2px);font-size:1.25rem}.form-file-lg .form-file-button,.form-file-lg .form-file-text{padding:.5rem 1rem}.form-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(13,110,253,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(13,110,253,.25)}.form-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(13,110,253,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:var(--bs-primary);;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#bed8fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:var(--bs-primary);;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#bed8fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:var(--bs-primary);;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-ms-thumb{-ms-transition:none;transition:none}}.form-range::-ms-thumb:active{background-color:#bed8fe}.form-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.form-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.form-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.form-range:disabled::-moz-range-thumb{background-color:#adb5bd}.form-range:disabled::-ms-thumb{background-color:#adb5bd}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-file,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-file .form-file-input:focus~.form-file-label,.input-group>.form-select:focus{z-index:3}.input-group>.form-file>.form-file-input:focus{z-index:4}.input-group>.form-file:not(:last-child)>.form-file-label{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.form-file:not(:first-child)>.form-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:3}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-lg>.form-control{min-height:calc(1.5em + 1rem + 2px)}.input-group-lg>.form-select{height:calc(1.5em + 1rem + 2px)}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.input-group-sm>.form-control{min-height:calc(1.5em + .5rem + 2px)}.input-group-sm>.form-select{height:calc(1.5em + .5rem + 2px)}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:1.75rem}.input-group>.dropdown-toggle:nth-last-child(n+3),.input-group>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-position:right .75rem center,center right 1.75rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:#28a745}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:#28a745}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.form-file-input.is-valid~.form-file-label,.was-validated .form-file-input:valid~.form-file-label{border-color:#28a745}.form-file-input.is-valid:focus~.form-file-label,.was-validated .form-file-input:valid:focus~.form-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-position:right .75rem center,center right 1.75rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:#dc3545}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:#dc3545}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.form-file-input.is-invalid~.form-file-label,.was-validated .form-file-input:invalid~.form-file-label{border-color:#dc3545}.form-file-input.is-invalid:focus~.form-file-label,.was-validated .form-file-input:invalid:focus~.form-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.btn,.more-link{display:inline-block;font-weight:600;line-height:1.35;color:#212529;text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:2px solid transparent;padding:0.688rem 1.375rem;letter-spacing:0.01rem;font-size:1.125rem;border-radius:6.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529}.btn-check:focus+.btn,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(13,110,253,.25)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{pointer-events:none;opacity:.65}.btn-primary{color:#fff;background-color:var(--bs-primary);;border-color:var(--bs-primary);}.btn-primary:hover{color:#fff;background-color:var(--bs-primary);border-color:var(--bs-primary)}.btn-check:focus+.btn-primary,.btn-primary:focus{color:#fff;background-color:var(--bs-primary);border-color:var(--bs-primary);box-shadow:0 0 0 .2rem rgba(49,132,253,.5)}.btn-check:active+.btn-primary,.btn-check:checked+.btn-primary,.btn-primary.active,.btn-primary:active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:var(--bs-primary);border-color:#0252c9}.btn-check:active+.btn-primary:focus,.btn-check:checked+.btn-primary:focus,.btn-primary.active:focus,.btn-primary:active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(49,132,253,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:var(--bs-primary);;border-color:var(--bs-primary);}.btn-secondary{color:#fff;background-color:var(--bs-secondary);border-color:var(--bs-secondary)}.btn-secondary:hover{color:#fff;background-color:var(--bs-secondary);border-color:var(--bs-secondary)}.btn-check:focus+.btn-secondary,.btn-secondary:focus{color:#fff;background-color:var(--bs-secondary);border-color:var(--bs-secondary);box-shadow:0 0 0 .2rem var(--bs-primary-shadow)}.btn-check:active+.btn-secondary,.btn-check:checked+.btn-secondary,.btn-secondary.active,.btn-secondary:active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:var(--bs-secondary);border-color:var(--bs-secondary)}.btn-check:active+.btn-secondary:focus,.btn-check:checked+.btn-secondary:focus,.btn-secondary.active:focus,.btn-secondary:active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem var(--bs-primary-shadow)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-check:focus+.btn-success,.btn-success:focus{color:#fff;background-color:#218838;border-color:#1e7e34;box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-check:active+.btn-success,.btn-check:checked+.btn-success,.btn-success.active,.btn-success:active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-check:active+.btn-success:focus,.btn-check:checked+.btn-success:focus,.btn-success.active:focus,.btn-success:active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-check:focus+.btn-info,.btn-info:focus{color:#fff;background-color:#138496;border-color:#117a8b;box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-check:active+.btn-info,.btn-check:checked+.btn-info,.btn-info.active,.btn-info:active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-check:active+.btn-info:focus,.btn-check:checked+.btn-info:focus,.btn-info.active:focus,.btn-info:active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-check:focus+.btn-warning,.btn-warning:focus{color:#212529;background-color:#e0a800;border-color:#d39e00;box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-check:active+.btn-warning,.btn-check:checked+.btn-warning,.btn-warning.active,.btn-warning:active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-check:active+.btn-warning:focus,.btn-check:checked+.btn-warning:focus,.btn-warning.active:focus,.btn-warning:active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-check:focus+.btn-danger,.btn-danger:focus{color:#fff;background-color:#c82333;border-color:#bd2130;box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-check:active+.btn-danger,.btn-check:checked+.btn-danger,.btn-danger.active,.btn-danger:active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-check:active+.btn-danger:focus,.btn-check:checked+.btn-danger:focus,.btn-danger.active:focus,.btn-danger:active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-check:focus+.btn-light,.btn-light:focus{color:#212529;background-color:#e2e6ea;border-color:#dae0e5;box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-check:active+.btn-light,.btn-check:checked+.btn-light,.btn-light.active,.btn-light:active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-check:active+.btn-light:focus,.btn-check:checked+.btn-light:focus,.btn-light.active:focus,.btn-light:active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-check:focus+.btn-dark,.btn-dark:focus{color:#fff;background-color:#23272b;border-color:#1d2124;box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-check:active+.btn-dark,.btn-check:checked+.btn-dark,.btn-dark.active,.btn-dark:active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-check:active+.btn-dark:focus,.btn-check:checked+.btn-dark:focus,.btn-dark.active:focus,.btn-dark:active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-primary{color:var(--bs-primary);;border-color:var(--bs-primary);}.btn-outline-primary:hover{color:#fff;background-color:var(--bs-primary);;border-color:var(--bs-primary);}.btn-check:focus+.btn-outline-primary,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(13,110,253,.5)}.btn-check:active+.btn-outline-primary,.btn-check:checked+.btn-outline-primary,.btn-outline-primary.active,.btn-outline-primary.dropdown-toggle.show,.btn-outline-primary:active{color:#fff;background-color:var(--bs-primary);;border-color:var(--bs-primary);}.btn-check:active+.btn-outline-primary:focus,.btn-check:checked+.btn-outline-primary:focus,.btn-outline-primary.active:focus,.btn-outline-primary.dropdown-toggle.show:focus,.btn-outline-primary:active:focus{box-shadow:0 0 0 .2rem rgba(13,110,253,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:var(--bs-primary);;background-color:transparent}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:focus+.btn-outline-secondary,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-check:active+.btn-outline-secondary,.btn-check:checked+.btn-outline-secondary,.btn-outline-secondary.active,.btn-outline-secondary.dropdown-toggle.show,.btn-outline-secondary:active{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:active+.btn-outline-secondary:focus,.btn-check:checked+.btn-outline-secondary:focus,.btn-outline-secondary.active:focus,.btn-outline-secondary.dropdown-toggle.show:focus,.btn-outline-secondary:active:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-check:focus+.btn-outline-success,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-check:active+.btn-outline-success,.btn-check:checked+.btn-outline-success,.btn-outline-success.active,.btn-outline-success.dropdown-toggle.show,.btn-outline-success:active{color:#fff;background-color:#28a745;border-color:#28a745}.btn-check:active+.btn-outline-success:focus,.btn-check:checked+.btn-outline-success:focus,.btn-outline-success.active:focus,.btn-outline-success.dropdown-toggle.show:focus,.btn-outline-success:active:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-check:focus+.btn-outline-info,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-check:active+.btn-outline-info,.btn-check:checked+.btn-outline-info,.btn-outline-info.active,.btn-outline-info.dropdown-toggle.show,.btn-outline-info:active{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-check:active+.btn-outline-info:focus,.btn-check:checked+.btn-outline-info:focus,.btn-outline-info.active:focus,.btn-outline-info.dropdown-toggle.show:focus,.btn-outline-info:active:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-check:focus+.btn-outline-warning,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-check:active+.btn-outline-warning,.btn-check:checked+.btn-outline-warning,.btn-outline-warning.active,.btn-outline-warning.dropdown-toggle.show,.btn-outline-warning:active{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-check:active+.btn-outline-warning:focus,.btn-check:checked+.btn-outline-warning:focus,.btn-outline-warning.active:focus,.btn-outline-warning.dropdown-toggle.show:focus,.btn-outline-warning:active:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:focus+.btn-outline-danger,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-check:active+.btn-outline-danger,.btn-check:checked+.btn-outline-danger,.btn-outline-danger.active,.btn-outline-danger.dropdown-toggle.show,.btn-outline-danger:active{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:active+.btn-outline-danger:focus,.btn-check:checked+.btn-outline-danger:focus,.btn-outline-danger.active:focus,.btn-outline-danger.dropdown-toggle.show:focus,.btn-outline-danger:active:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:focus+.btn-outline-light,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-check:active+.btn-outline-light,.btn-check:checked+.btn-outline-light,.btn-outline-light.active,.btn-outline-light.dropdown-toggle.show,.btn-outline-light:active{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:active+.btn-outline-light:focus,.btn-check:checked+.btn-outline-light:focus,.btn-outline-light.active:focus,.btn-outline-light.dropdown-toggle.show:focus,.btn-outline-light:active:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-check:focus+.btn-outline-dark,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-check:active+.btn-outline-dark,.btn-check:checked+.btn-outline-dark,.btn-outline-dark.active,.btn-outline-dark.dropdown-toggle.show,.btn-outline-dark:active{color:#fff;background-color:#343a40;border-color:#343a40}.btn-check:active+.btn-outline-dark:focus,.btn-check:checked+.btn-outline-dark:focus,.btn-outline-dark.active:focus,.btn-outline-dark.dropdown-toggle.show:focus,.btn-outline-dark:active:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-link{font-weight:600;color:var(--bs-primary);;text-decoration:underline}.btn-link:hover,.btn-link:focus{color:var(--bs-primary)}.btn-link.disabled,.btn-link:disabled{color:#6c757d}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}@media (min-width:1400px){.dropdown-menu-xxl-left{right:auto;left:0}.dropdown-menu-xxl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1rem;clear:both;font-weight:400;color:#212529;text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:var(--bs-primary);}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-link{margin-bottom:-1px;border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:var(--bs-primary);}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;text-decoration:none;white-space:nowrap}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{align-items:center;width:100%}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem;transition:box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 .2rem}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-repeat:no-repeat;background-position:center;background-size:100%}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm .navbar-collapse{display:flex!important}.navbar-expand-sm .navbar-toggler{display:none}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md .navbar-collapse{display:flex!important}.navbar-expand-md .navbar-toggler{display:none}}@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg .navbar-collapse{display:flex!important}.navbar-expand-lg .navbar-toggler{display:none}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl .navbar-collapse{display:flex!important}.navbar-expand-xl .navbar-toggler{display:none}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xxl .navbar-collapse{display:flex!important}.navbar-expand-xxl .navbar-toggler{display:none}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand .navbar-collapse{display:flex!important}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.55)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.55);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.55)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.55)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.55);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.55)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:1rem 1rem}.card-title{margin-bottom:.5rem}.card-subtitle{margin-top:-.25rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1rem}.card-header{padding:.5rem 1rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{padding:.5rem 1rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.5rem;margin-bottom:-.5rem;margin-left:-.5rem;border-bottom:0}.card-header-pills{margin-right:-.5rem;margin-left:-.5rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem;border-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-group>.card{margin-bottom:.75rem}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.accordion .card{overflow:hidden}.accordion .card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion .card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion .card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:flex;flex-wrap:wrap;padding:.5rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item{display:flex}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;color:var(--bs-primary);;text-decoration:none;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#024dbc;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(13,110,253,.25)}.page-item:not(:first-child) .page-link{margin-left:-1px}.page-item.active .page-link{z-index:3;color:#fff;background-color:var(--bs-primary);;border-color:var(--bs-primary);}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;background-color:#fff;border-color:#dee2e6}.page-link{padding:.375rem .75rem}.page-item:first-child .page-link{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .5em;font-size:.75em;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{position:relative;padding:1rem 1rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:3.5rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:1rem 1rem;color:inherit}.alert-primary{color:#073984;background-color:#cfe2ff;border-color:#bbd6fe}.alert-primary .alert-link{color:#042454}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{0%{background-position-x:1rem}}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress{display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:var(--bs-primary);;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.5rem 1rem;text-decoration:none;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:var(--bs-primary);;border-color:var(--bs-primary);}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#073984;background-color:#bbd6fe}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#073984;background-color:#a2c7fe}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#073984;border-color:#073984}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{font-size:calc(1.275rem + .3vw);font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}@media (min-width:1200px){.close{font-size:1.5rem}}.close:hover{color:#000;text-decoration:none}.close:focus,.close:hover{opacity:.75}.close.disabled,.close:disabled{pointer-events:none}button.close{padding:0;background-color:transparent;border:0}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .5rem 1rem rgba(0,0,0,.15);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:flex;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;flex-shrink:0;align-items:flex-start;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;flex-shrink:0;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}.modal-fullscreen .modal-footer{border-radius:0}@media (max-width:575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}.modal-fullscreen-sm-down .modal-footer{border-radius:0}}@media (max-width:767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}.modal-fullscreen-md-down .modal-footer{border-radius:0}}@media (max-width:991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}.modal-fullscreen-lg-down .modal-footer{border-radius:0}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}.modal-fullscreen-xl-down .modal-footer{border-radius:0}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}.modal-fullscreen-xxl-down .modal-footer{border-radius:0}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .tooltip-arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .tooltip-arrow::before,.bs-tooltip-top .tooltip-arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .tooltip-arrow,.bs-tooltip-right .tooltip-arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .tooltip-arrow::before,.bs-tooltip-right .tooltip-arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .tooltip-arrow::before,.bs-tooltip-bottom .tooltip-arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .tooltip-arrow,.bs-tooltip-left .tooltip-arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .tooltip-arrow::before,.bs-tooltip-left .tooltip-arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .popover-arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .popover-arrow::after,.popover .popover-arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.popover-arrow::after,.bs-popover-top>.popover-arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.popover-arrow,.bs-popover-right>.popover-arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.popover-arrow::before,.bs-popover-right>.popover-arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.popover-arrow::after,.bs-popover-right>.popover-arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.popover-arrow,.bs-popover-left>.popover-arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.popover-arrow::before,.bs-popover-left>.popover-arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.popover-arrow::after,.bs-popover-left>.popover-arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem 1rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:1rem 1rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{transform:rotate(360deg)}}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.clearfix::after{display:block;clear:both;content:""}.link-primary{color:var(--bs-primary);}.link-primary:focus,.link-primary:hover{color:#024dbc}.link-secondary{color:#6c757d}.link-secondary:focus,.link-secondary:hover{color:#494f54}.link-success{color:#28a745}.link-success:focus,.link-success:hover{color:#19692c}.link-info{color:#17a2b8}.link-info:focus,.link-info:hover{color:#0f6674}.link-warning{color:#ffc107}.link-warning:focus,.link-warning:hover{color:#ba8b00}.link-danger{color:#dc3545}.link-danger:focus,.link-danger:hover{color:#a71d2a}.link-light{color:#f8f9fa}.link-light:focus,.link-light:hover{color:#cbd3da}.link-dark{color:#343a40}.link-dark:focus,.link-dark:hover{color:#121416}.embed-responsive{position:relative;width:100%}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;width:100%;height:100%}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only,.sr-only-focusable:not(:focus){position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.border{border:1px solid #dee2e6!important}.border-0{border:0!important}.border-top{border-top:1px solid #dee2e6!important}.border-top-0{border-top:0!important}.border-right{border-right:1px solid #dee2e6!important}.border-right-0{border-right:0!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-bottom-0{border-bottom:0!important}.border-left{border-left:1px solid #dee2e6!important}.border-left-0{border-left:0!important}.border-primary{border-color:var(--bs-primary);!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.mr-0{margin-right:0!important}.mr-1{margin-right:.25rem!important}.mr-2{margin-right:.5rem!important}.mr-3{margin-right:1rem!important}.mr-4{margin-right:1.5rem!important}.mr-5{margin-right:3rem!important}.mr-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ml-0{margin-left:0!important}.ml-1{margin-left:.25rem!important}.ml-2{margin-left:.5rem!important}.ml-3{margin-left:1rem!important}.ml-4{margin-left:1.5rem!important}.ml-5{margin-left:3rem!important}.ml-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pr-0{padding-right:0!important}.pr-1{padding-right:.25rem!important}.pr-2{padding-right:.5rem!important}.pr-3{padding-right:1rem!important}.pr-4{padding-right:1.5rem!important}.pr-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.pl-0{padding-left:0!important}.pl-1{padding-left:.25rem!important}.pl-2{padding-left:.5rem!important}.pl-3{padding-left:1rem!important}.pl-4{padding-left:1.5rem!important}.pl-5{padding-left:3rem!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:500!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}.text-primary{color:var(--bs-primary)}.text-secondary{color:var(--bs-secondary)}.text-success{color:#28a745!important}.text-info{color:#17a2b8!important}.text-warning{color:#ffc107!important}.text-danger{color:#dc3545!important}.text-light{color:#f8f9fa!important}.text-dark{color:#343a40!important}.text-white{color:#fff!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-reset{color:inherit!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.bg-primary{background-color:var(--bs-primary)}.bg-secondary{background-color:var(--bs-secondary)}.bg-success{background-color:#28a745!important}.bg-info{background-color:#17a2b8!important}.bg-warning{background-color:#ffc107!important}.bg-danger{background-color:#dc3545!important}.bg-light{background-color:#f8f9fa!important}.bg-dark{background-color:#343a40!important}.bg-body{background-color:#fff!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.bg-gradient{background-image:var(--bs-gradient)!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.font-italic{font-style:italic!important}.font-normal{font-style:normal!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;-ms-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:.25rem!important}.rounded-sm{border-radius:.2rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-bottom-left-radius:.25rem!important;border-top-left-radius:.25rem!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.mr-sm-0{margin-right:0!important}.mr-sm-1{margin-right:.25rem!important}.mr-sm-2{margin-right:.5rem!important}.mr-sm-3{margin-right:1rem!important}.mr-sm-4{margin-right:1.5rem!important}.mr-sm-5{margin-right:3rem!important}.mr-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ml-sm-0{margin-left:0!important}.ml-sm-1{margin-left:.25rem!important}.ml-sm-2{margin-left:.5rem!important}.ml-sm-3{margin-left:1rem!important}.ml-sm-4{margin-left:1.5rem!important}.ml-sm-5{margin-left:3rem!important}.ml-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pr-sm-0{padding-right:0!important}.pr-sm-1{padding-right:.25rem!important}.pr-sm-2{padding-right:.5rem!important}.pr-sm-3{padding-right:1rem!important}.pr-sm-4{padding-right:1.5rem!important}.pr-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.pl-sm-0{padding-left:0!important}.pl-sm-1{padding-left:.25rem!important}.pl-sm-2{padding-left:.5rem!important}.pl-sm-3{padding-left:1rem!important}.pl-sm-4{padding-left:1.5rem!important}.pl-sm-5{padding-left:3rem!important}.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.mr-md-0{margin-right:0!important}.mr-md-1{margin-right:.25rem!important}.mr-md-2{margin-right:.5rem!important}.mr-md-3{margin-right:1rem!important}.mr-md-4{margin-right:1.5rem!important}.mr-md-5{margin-right:3rem!important}.mr-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ml-md-0{margin-left:0!important}.ml-md-1{margin-left:.25rem!important}.ml-md-2{margin-left:.5rem!important}.ml-md-3{margin-left:1rem!important}.ml-md-4{margin-left:1.5rem!important}.ml-md-5{margin-left:3rem!important}.ml-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pr-md-0{padding-right:0!important}.pr-md-1{padding-right:.25rem!important}.pr-md-2{padding-right:.5rem!important}.pr-md-3{padding-right:1rem!important}.pr-md-4{padding-right:1.5rem!important}.pr-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.pl-md-0{padding-left:0!important}.pl-md-1{padding-left:.25rem!important}.pl-md-2{padding-left:.5rem!important}.pl-md-3{padding-left:1rem!important}.pl-md-4{padding-left:1.5rem!important}.pl-md-5{padding-left:3rem!important}.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.mr-lg-0{margin-right:0!important}.mr-lg-1{margin-right:.25rem!important}.mr-lg-2{margin-right:.5rem!important}.mr-lg-3{margin-right:1rem!important}.mr-lg-4{margin-right:1.5rem!important}.mr-lg-5{margin-right:3rem!important}.mr-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ml-lg-0{margin-left:0!important}.ml-lg-1{margin-left:.25rem!important}.ml-lg-2{margin-left:.5rem!important}.ml-lg-3{margin-left:1rem!important}.ml-lg-4{margin-left:1.5rem!important}.ml-lg-5{margin-left:3rem!important}.ml-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pr-lg-0{padding-right:0!important}.pr-lg-1{padding-right:.25rem!important}.pr-lg-2{padding-right:.5rem!important}.pr-lg-3{padding-right:1rem!important}.pr-lg-4{padding-right:1.5rem!important}.pr-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.pl-lg-0{padding-left:0!important}.pl-lg-1{padding-left:.25rem!important}.pl-lg-2{padding-left:.5rem!important}.pl-lg-3{padding-left:1rem!important}.pl-lg-4{padding-left:1.5rem!important}.pl-lg-5{padding-left:3rem!important}.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.mr-xl-0{margin-right:0!important}.mr-xl-1{margin-right:.25rem!important}.mr-xl-2{margin-right:.5rem!important}.mr-xl-3{margin-right:1rem!important}.mr-xl-4{margin-right:1.5rem!important}.mr-xl-5{margin-right:3rem!important}.mr-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ml-xl-0{margin-left:0!important}.ml-xl-1{margin-left:.25rem!important}.ml-xl-2{margin-left:.5rem!important}.ml-xl-3{margin-left:1rem!important}.ml-xl-4{margin-left:1.5rem!important}.ml-xl-5{margin-left:3rem!important}.ml-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pr-xl-0{padding-right:0!important}.pr-xl-1{padding-right:.25rem!important}.pr-xl-2{padding-right:.5rem!important}.pr-xl-3{padding-right:1rem!important}.pr-xl-4{padding-right:1.5rem!important}.pr-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.pl-xl-0{padding-left:0!important}.pl-xl-1{padding-left:.25rem!important}.pl-xl-2{padding-left:.5rem!important}.pl-xl-3{padding-left:1rem!important}.pl-xl-4{padding-left:1.5rem!important}.pl-xl-5{padding-left:3rem!important}.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width:1400px){.float-xxl-left{float:left!important}.float-xxl-right{float:right!important}.float-xxl-none{float:none!important}.d-xxl-none{display:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.mr-xxl-0{margin-right:0!important}.mr-xxl-1{margin-right:.25rem!important}.mr-xxl-2{margin-right:.5rem!important}.mr-xxl-3{margin-right:1rem!important}.mr-xxl-4{margin-right:1.5rem!important}.mr-xxl-5{margin-right:3rem!important}.mr-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ml-xxl-0{margin-left:0!important}.ml-xxl-1{margin-left:.25rem!important}.ml-xxl-2{margin-left:.5rem!important}.ml-xxl-3{margin-left:1rem!important}.ml-xxl-4{margin-left:1.5rem!important}.ml-xxl-5{margin-left:3rem!important}.ml-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pr-xxl-0{padding-right:0!important}.pr-xxl-1{padding-right:.25rem!important}.pr-xxl-2{padding-right:.5rem!important}.pr-xxl-3{padding-right:1rem!important}.pr-xxl-4{padding-right:1.5rem!important}.pr-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.pl-xxl-0{padding-left:0!important}.pl-xxl-1{padding-left:.25rem!important}.pl-xxl-2{padding-left:.5rem!important}.pl-xxl-3{padding-left:1rem!important}.pl-xxl-4{padding-left:1.5rem!important}.pl-xxl-5{padding-left:3rem!important}.text-xxl-left{text-align:left!important}.text-xxl-right{text-align:right!important}.text-xxl-center{text-align:center!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}} \ No newline at end of file diff --git a/wp-content/themes/abiz/assets/css/main.css b/wp-content/themes/abiz/assets/css/main.css new file mode 100644 index 0000000..096a0d8 --- /dev/null +++ b/wp-content/themes/abiz/assets/css/main.css @@ -0,0 +1,9399 @@ +@charset "UTF-8"; +:root { + --bs-black:#000000; + --bs-blue:#0d6efd; + --bs-indigo:#6610f2; + --bs-purple:#6f42c1; + --bs-pink:#d63384; + --bs-red:#dc221c; + --bs-orange:#fd7e14; + --bs-orange-dark:#ee4a34; + --bs-orange-dark-light:#fae4df; + --bs-yellow:#ffcc00; + --bs-green:#28a745; + --bs-teal:#20c997; + --bs-cyan:#17a2b8; + --bs-white:#ffffff; + --bs-gray:#dedede; + --bs-gray-light: #f7f7f7; + --bs-gray-dark:#343a40; + --bs-primary:#e11c09; + --bs-primary-dark:#a6460f; + --bs-primary-light: #ff3e551f; + --bs-primary-shadow:rgb(0 123 255 / 0.5); + --bs-secondary:#0d0b1a; + --bs-secondary-dark: #000000; + --bs-gray-500: #f2f2f2; + --bs-gray-500-thumb: #c2c2c2; + --bs-success:#28a745; + --bs-info:#17a2b8; + --bs-warning:#ffc107; + --bs-danger:#dc3545; + --bs-light:#f8f9fa; + --bs-dark:#343a40; + --bs-font-sans-serif:"Source Sans Pro",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"; + --bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace; + --bs-font-awesome: "FontAwesome"; + --bs-gradient:linear-gradient(180deg,rgba(255,255,255,0.15),rgba(255,255,255,0)); + --bs-gradient-image:linear-gradient(180deg,rgba(255,255,255,0.15),rgba(255,255,255,0)); + --bs-shadow: 2px 5px 20px rgba(0, 0, 0, .2); + --bs-radius: 0.1875rem; + --bs-theme-radius: 6.25rem; + --bs-transition: all .35s cubic-bezier(.645,.045,.355,1); + --bs-transition-slow: all .55s cubic-bezier(.645,.045,.355,1); + --bs-transition-very-slow: all .75s cubic-bezier(.645,.045,.355,1); +} + +.bg-primary-light { + background-color: var(--bs-primary-light); +} + +/* --- Selection Colors --- */ + +::-webkit-selection { + background-color: var(--bs-primary); + color: var(--bs-white); +} + +::selection { + background-color: var(--bs-primary); + color: var(--bs-white); +} + +/* ---//--- */ + +/* --- Scrollbar Colors --- */ + +::-webkit-scrollbar { + width: 0.625rem; + background-color: var(--bs-gray-500); + } + +::-webkit-scrollbar-thumb { + background-color: var(--bs-gray-500-thumb); + border-radius: 0.625rem; +} + +::-webkit-scrollbar-corner { + background-color: var(--bs-gray-500); +} + +/* ---//--- */ +.navigation-wrapper { + width: 100%; +} + +.overlay-enabled { + overflow: hidden; +} + +.main-header { + position: relative; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + background: var(--bs-white); + -webkit-transition: min-height 0.3s ease; + transition: min-height 0.3s ease; + width: 100%; + z-index: 3; +} + +@media only screen and (min-width: 783px) { + body.admin-bar .main-header .is-sticky-menu { + top: 32px; + } +} + +@media only screen and (max-width: 782px) and (min-width: 601px) { + body.admin-bar .main-header .is-sticky-menu { + top: 46px; + } +} + +h4.site-title::first-letter { + color: var(--bs-primary); +} + +.logo a, .mobile-logo a, .site-title { + display: block; + font-size: 30px; + font-weight: 700; + line-height: 1.2; + white-space: normal; + width: 100%; + max-width: max-content; + height: auto; + text-decoration: none !important; +} + +.logo a, .mobile-logo a { + margin: auto 0; +} + +a.site-title { + margin: auto 0 0; +} + +.site-first-letter, +.site-last-letter { + color: var(--bs-primary); + font-weight: bolder; +} + +.logo a:focus { + outline-width: 1px; + outline-style: dotted; +} + +.site-description { + width: 100%; + display: block; + font-size: 0.656rem; + font-weight: 500; + line-height: 1.2; + white-space: normal; + margin: 0; + margin-top: 0.35rem; +} + +.navbar-brand { + padding: 0; +} + +.logo img { + width: 100%; + float: none; + margin: 0; +} + +.main-navigation { + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + flex-wrap: wrap; + min-height: 101px; +} + +.navbar-area { + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + -ms-flex-positive: 1; + flex-grow: 1; + -ms-flex-pack: end; + justify-content: space-between; + -ms-flex-item-align: stretch; + align-self: stretch; + width: 100%; + height: 100%; +} + +.main-navbar { + text-align: right; + position: relative; +} + +.not-included { + color: red; + display: block; + font-size: 0.7em; + line-height: 1; + padding: 0 0 5px 0; + margin-top: 1px; +} + +.main-mobile-build .not-included { + margin-top: -6px; +} + +.main-navbar .main-menu > li > a > .not-included { + position: absolute; + left: 0; + right: 0; + margin: 0 auto; + text-align: center; + max-width: 100%; + z-index: 1; + bottom: -5px; +} + +.main-header .widget_nav_menu li > a > .not-included, +.main-footer .widget_nav_menu li > a > .not-included, +.main-footer .main-menu > li > a > .not-included { + display: contents; + line-height: 0; + width: 100%; +} + +.main-footer .main-menu > li > a > .badge, +.main-navbar .main-menu > li > a > .badge { + position: absolute; + top: 1.25rem; + right: 0; +} + +.badge { + position: relative; +} + +.main-navbar ul.main-menu { + display: inline-block; +} + +ul.main-menu { + list-style: none; + margin: 0px; + padding: 0px; + display: block; +} + +ul.main-menu li { + list-style: none; +} + +.main-menu > li > a, +.dropdown-menu li a { + position: relative; + display: block; + font-size: 1.125rem; + font-weight: 600; + letter-spacing: 0.3px; + text-align: inherit; + text-decoration: none; + z-index: 0; +} + +.main-mobile-menu .main-menu > li > a, +.main-mobile-menu .dropdown-menu li a { + line-height: 2.8125rem; +} + +.main-navbar:not(.breadcrumb-menu) .main-menu > li > a { + line-height: 6.25rem; +} + +.main-mobile-menu .main-menu > li > a, +.main-mobile-menu .dropdown-menu li a { + font-size: 18px; +} + +.main-menu > li a img { + width: auto; + height: 15px; + display: inline-block; + vertical-align: initial; + margin: auto; + margin-right: 5px; + transform: translateY(1px); +} + +.main-footer .main-menu > li > a { + padding: 0px 5px; +} + +.widget-left .main-menu > li:first-child > a, +.widget-right .main-menu > li:first-child > a { + padding-left: 0 +} + +.widget-left .main-menu > li:last-child > a, +.widget-right .main-menu > li:last-child > a { + padding-right: 0; +} + +.main-footer .main-menu > li > a, +.main-navbar .main-menu > li > a { + display: inline-flex; +} + + +.main-navbar .main-menu > li.menu-item > a:after { + content: ""; + position: absolute; + bottom: 0; + left: 0; + width: 0%; + height: 5px; + background-color: var(--bs-primary); + opacity: 0; + -webkit-transition: all 0.3s linear 0s; + transition: all 0.3s linear 0s; +} + +.main-navbar .main-menu > li.menu-item > a:hover:after, +.main-navbar .main-menu > li.menu-item > a:focus:after, +.main-navbar .main-menu > .menu-item.active > a:after { + opacity: 1; + width: 100%; +} + +.main-navbar .main-menu > li.menu-item > a { + padding: 0 .85rem; +} + +.main-menu > li > a { + white-space: normal; + border: 0; + border-radius: 0; +} + +/* Desktop Menu Start */ +.main-footer .main-menu > li, +.main-navbar .main-menu > li { + display: inline-block; + margin: 0 -1px; + position: relative; +} +/* Dropdown Menu Border Start */ + +.textwidget .about-addresss a { + color: var(--bs-white); +} + +.main-footer .widget_nav_menu ul.menu .sub-menu li.menu-item a, +.main-header .widget_nav_menu ul.menu .sub-menu li.menu-item a, +.main-header .widget_nav_menu ul.menu .sub-menu li.menu-item a { + margin: 0; + display: block; + width: 100%; +} + +.main-header .widget_nav_menu ul.menu > li > a { + line-height: 45px; +} + +.main-header .widget_nav_menu .sub-menu, +.main-navbar .dropdown-menu { + position: absolute; + z-index: 99; + width: 220px; + background: var(--bs-white); + padding: 5px; + margin: 0; + border: 0; + border-radius: 0; + -moz-box-shadow: 0 -8px 16px rgba(0, 0, 0, 0.075); + box-shadow: 0 -8px 16px rgba(0, 0, 0, 0.075); + font-size: 1rem; + text-align: left; + display: block; + opacity: 0; + visibility: hidden; + -webkit-transform: scaleY(0); + transform: scaleY(0); + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transition: all 0.3s ease-in-out 0s; + transition: all 0.3s ease-in-out 0s; +} + +.main-navbar .dropdown-menu { + border-bottom-width: 4px; + border-style: solid; + border-color: var(--bs-primary); +} + +.main-footer .widget_nav_menu .sub-menu, +.main-footer .main-menu .dropdown-menu { + position: absolute; + top: auto; + right: auto; + bottom: 50px; + left: auto; + border: 0; + padding: 5px; + border-radius: 0; + text-align: left; + margin: 0 auto; + background: var(--bs-white); + min-width: 12.5rem; + opacity: 0; + visibility: hidden; + transform: translateY(10px); + -webkit-box-shadow: 0 0.5rem 1.875rem rgba(0, 0, 0, 0.15); + box-shadow: 0 0.5rem 1.875rem rgba(0, 0, 0, 0.15); + transition: all .25s; +} + +.main-header .widget_nav_menu .menu > .menu-item > .sub-menu:before, +.main-footer .widget_nav_menu .menu .menu-item .sub-menu:before, +.main-footer .main-menu .menu-item .dropdown-menu:before { + content: ''; + position: absolute; + top: auto; + right: auto; + bottom: -10px; + left: 20px; + width: 0; + height: 0; + border-left: 10px solid transparent; + border-right: 10px solid transparent; +} + +.main-header .widget_nav_menu .menu > .menu-item > .sub-menu:before { + top: -10px; + border-bottom: 10px solid var(--bs-white); +} + +.main-footer .widget_nav_menu .menu .menu-item .sub-menu:before, +.main-footer .main-menu .menu-item .dropdown-menu:before { + border-top: 10px solid var(--bs-white); +} + +.main-footer .main-menu .dropdown-menu, +.main-footer .widget_nav_menu .sub-menu { + bottom: 100%; +} + +.main-header .widget_nav_menu .sub-menu, +.main-navbar .dropdown-menu { + top: 100%; +} + +.main-footer .widget_nav_menu .menu-item:hover > .sub-menu, +.main-footer .widget_nav_menu .menu-item.focus > .sub-menu, +.main-header .widget_nav_menu .menu-item:hover > .sub-menu, +.main-header .widget_nav_menu .menu-item.focus > .sub-menu, +.main-footer .main-menu .menu-item:hover > .dropdown-menu, +.main-footer .main-menu .menu-item.focus > .dropdown-menu, +.main-navbar .main-menu .menu-item:hover > .dropdown-menu, +.main-navbar .main-menu .menu-item.focus > .dropdown-menu { + opacity: 1; + visibility: visible; + pointer-events: auto; + -webkit-transform: scaleY(1); + transform: scaleY(1); +} + +.main-footer .main-menu .dropdown-menu li .dropdown-menu, +.main-footer .widget_nav_menu .sub-menu li .sub-menu { + bottom: 100%; + transform: translateY(12px); +} + +.main-header .widget_nav_menu .sub-menu li .sub-menu, +.main-navbar .dropdown-menu li .dropdown-menu { + top: -4px; + transform: translateY(-12px); +} + +.main-footer .widget_nav_menu .sub-menu li .sub-menu, +.main-footer .main-menu .dropdown-menu li .dropdown-menu, +.main-header .widget_nav_menu .sub-menu li .sub-menu, +.main-navbar .dropdown-menu li .dropdown-menu { + display: block; + opacity: 0; + visibility: hidden; +} + +.main-footer .widget_nav_menu .sub-menu li .sub-menu, +.main-footer .main-menu .dropdown-menu li .dropdown-menu { + margin-bottom: 1.25rem; +} + +.main-header .widget_nav_menu .sub-menu li .sub-menu, +.main-navbar .dropdown-menu li .dropdown-menu { + left: 100%; + margin-top: 0; + margin-left: 10px; +} + +.main-footer .main-menu > .menu-item:last-child > .dropdown-menu li .dropdown-menu, +.main-footer .widget_nav_menu .menu > .menu-item:last-child > .sub-menu li .sub-menu { + bottom: 100%; +} + +.main-header .widget_nav_menu .menu > .menu-item:last-child > .sub-menu li .sub-menu, +.main-navbar .main-menu > .menu-item:last-child > .dropdown-menu li .dropdown-menu { + left: auto; + right: 100%; + margin-right: 10px; +} + +.main-header .widget_nav_menu .menu > .menu-item:last-child > .sub-menu li .sub-menu li .sub-menu li .sub-menu li .sub-menu li .sub-menu, +.main-navbar .main-menu > .menu-item:last-child > .dropdown-menu li .dropdown-menu li .dropdown-menu li .dropdown-menu li .dropdown-menu li .dropdown-menu { + right: auto; + left: 100%; +} + +.main-header .widget_nav_menu .sub-menu li .sub-menu li .sub-menu, +.main-navbar .dropdown-menu li .dropdown-menu li .dropdown-menu { + left: auto; + right: 100%; + margin-right: 10px; +} + +.main-header .widget_nav_menu .sub-menu li .sub-menu li .sub-menu li .sub-menu li .sub-menu li .sub-menu li .sub-menu, +.main-navbar .dropdown-menu li .dropdown-menu li .dropdown-menu li .dropdown-menu li .dropdown-menu li .dropdown-menu li .dropdown-menu { + right: auto; + left: 100%; +} + +.main-header .widget_nav_menu .sub-menu li .sub-menu li .sub-menu li .sub-menu li .sub-menu li .sub-menu li .sub-menu li .sub-menu li .sub-menu, +.main-navbar .dropdown-menu li .dropdown-menu li .dropdown-menu li .dropdown-menu li .dropdown-menu li .dropdown-menu li .dropdown-menu li .dropdown-menu li .dropdown-menu { + right: auto; + left: 100%; +} + +.main-footer .main-menu .main-navbar .dropdown-menu > li, +.main-footer .widget_nav_menu .sub-menu > li, +.main-header .widget_nav_menu .sub-menu > li, +.main-navbar .dropdown-menu > li { + padding: 0; + position: relative; + height: auto; +} + +.main-footer .main-menu .dropdown-menu li a, +.main-footer .widget_nav_menu .sub-menu li a, +.main-header .widget_nav_menu .sub-menu li a, +.main-navbar .dropdown-menu li a { + border-bottom: 1px solid var(--bs-gray-light); + color: var(--bs-secondary-dark); + font-weight: 600; + line-height: 24px; + padding: 8px 18px 8px 18px; + text-transform: none; + white-space: normal; +} + +.main-footer .main-menu .dropdown-menu li:last-child a, +.main-footer .widget_nav_menu .sub-menu li:last-child a, +.main-header .widget_nav_menu .sub-menu li:last-child a, +.main-navbar .dropdown-menu li:last-child a { + border-bottom: 0; + border-radius: 0 3px 3px; +} + +.main-footer .main-menu .dropdown-menu li:hover > a, +.main-footer .main-menu .dropdown-menu li.focus > a, +.main-footer .widget_nav_menu .sub-menu li:hover > a, +.main-footer .widget_nav_menu .sub-menu li.focus > a, +.main-header .widget_nav_menu .sub-menu li:hover > a, +.main-header .widget_nav_menu .sub-menu li.focus > a, +.main-navbar .dropdown-menu li:hover > a, +.main-navbar .dropdown-menu li.focus > a { + background-color: var(--bs-gray-light); +} + +.main-footer .main-menu .dropdown-menu li:last-child, +.main-footer .widget_nav_menu .sub-menu li:last-child, +.main-header .widget_nav_menu .sub-menu li:last-child, +.main-navbar .dropdown-menu li:last-child { + border-bottom-color: transparent; +} + +.main-footer .main-menu .dropdown-menu .menu-item-has-children > a:after, +.main-footer .widget_nav_menu .sub-menu .menu-item-has-children > a:after, +.main-header .widget_nav_menu .sub-menu .menu-item-has-children > a:after, +.main-navbar .dropdown-menu .menu-item-has-children > a:after { + font-family: var(--bs-font-awesome); + font-weight: 900; + content: "\f054"; + position: absolute; + top: 50%; + right: 20px; + font-size: 10px; + opacity: 0.7; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); +} + +.main-navbar .main-menu > li.dropdown > a:before { + content: "\f067"; + font-family: var(--bs-font-awesome); + font-weight: 900; + position: absolute; + top: 53%; + right: 0px; + font-size: 12px; + opacity: 0.7; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + color: var(--bs-secondary); +} + +.main-footer .main-menu .dropdown-menu .menu-item-has-children:hover > a:after, +.main-footer .main-menu .dropdown-menu .menu-item-has-children.focus > a:after, +.main-footer .widget_nav_menu .sub-menu .menu-item-has-children:hover > a:after, +.main-footer .widget_nav_menu .sub-menu .menu-item-has-children.focus > a:after, +.main-header .widget_nav_menu .sub-menu .menu-item-has-children:hover > a:after, +.main-header .widget_nav_menu .sub-menu .menu-item-has-children.focus > a:after, +.main-navbar .dropdown-menu .menu-item-has-children:hover > a:after, +.main-navbar .dropdown-menu .menu-item-has-children.focus > a:after { + opacity: 1; + right: 15px; +} + +.header .widget_nav_menu .sub-menu { + border-top-color: var(--bs-primary); +} + +/* Desktop Menu End */ + +/* Sticky Menu */ +.breadcrumb-sticky-menu, +.is-sticky-menu { + position: fixed; + top: -1px; + left: 0; + right: 0; + width: 100%; + background: var(--bs-white); + z-index: 999; + -webkit-box-shadow: 0 10px 15px rgba(0, 0, 0, 0.05); + -ms-box-shadow: 0 10px 15px rgba(0, 0, 0, 0.05); + -o-box-shadow: 0 10px 15px rgba(0, 0, 0, 0.05); + box-shadow: 0 10px 15px rgba(0, 0, 0, 0.05); + -webkit-animation: 1s ease-in-out 0s normal none 1 running fadeInDown; + animation: 1s ease-in-out 0s normal none 1 running fadeInDown; +} + +.breadcrumb-sticky-menu .breadcrumb-button { + border-bottom: 1px solid rgb(108 117 125 / 0.6); +} + +.is-sticky-menu .sticky-navbar-brand { + display: block; + visibility: visible; +} + +a.sticky-navbar-brand, +.is-sticky-menu .sticky-navbar-brand + .navbar-brand { + display: none; + visibility: hidden; +} + +@-webkit-keyframes fadeInDown { + from { + opacity:0;-webkit-transform:translate3d(0,-100%,0); + transform:translate3d(0,-100%,0) + } + to { + opacity:1; + -webkit-transform:none; + transform:none; + } +} +@keyframes fadeInDown { + from { + opacity:0;-webkit-transform:translate3d(0,-100%,0); + transform:translate3d(0,-100%,0) + } + to { + opacity:1; + -webkit-transform:none; + transform:none; + } +} +.fadeInDown { + -webkit-animation-name:fadeInDown; + animation-name:fadeInDown; +} + +/* Mbile Menu Start */ + +@media (max-width: 991px) { + div.main-mobile-nav { + display: block; + } +} + +.main-mobile-nav { + width: 100%; + display: none; + background: var(--bs-white); + border-bottom: 1px solid rgb(108 117 125 / 0.6); +} + +.main-mobile-menu { + display: -ms-flexbox; + display: flex; + align-items: center; + justify-content: space-between; + padding: 1.219em 0px; + min-height: 97px; +} + +.main-mobile-menu ul.main-menu { + height: 100%; + max-height: 22.5rem; + overflow-x: hidden; + overflow-y: overlay; + -ms-touch-action: overlay; + -webkit-overflow-scrolling: touch; + touch-action: auto; +} + +.main-mobile-menu ul, +.main-mobile-menu ul li { + padding: 0; + list-style: none; + position: relative; + border: 0; +} + +.main-mobile-menu ul.main-menu > li:first-child { + border-top: 1px solid #e0e0e0; +} + +.main-mobile-menu ul.main-menu > li { + border-bottom: 1px solid #e0e0e0; +} + +.main-mobile-menu ul li { + margin: 0; +} + +.main-mobile-menu .header-wrap-right li { + margin-right: 10px; +} + +.main-mobile-wrapper { + width: 100%; + height: 100%; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1; + visibility: hidden; + opacity: 0; + transition: var(--bs-transition); + -webkit-transition: all 600ms cubic-bezier(.6,.1,.68,.53) 400ms; + -o-transition: all 600ms cubic-bezier(.6,.1,.68,.53) 400ms; + transition: all 600ms cubic-bezier(.6,.1,.68,.53) 400ms; +} + +.header-menu-active .main-mobile-wrapper { + opacity: 1; + visibility: visible; +} + +.main-mobile-menu ul.main-menu .dropdown-menu { + display: none; +} + +.main-mobile-build { + position: absolute; + top: -200%; + left: 0; + right: 0; + z-index: 0; + width: 100%; + max-width: 500px; + height: auto; + padding: 0; + margin: auto; + text-align: left; + background: var(--bs-white); + box-shadow: 0 0 20px rgba(0, 0, 0, 0.4); + -webkit-transition: top 600ms cubic-bezier(.6,.1,.68,.53) 0ms; + -o-transition: top 600ms cubic-bezier(.6,.1,.68,.53) 0ms; + transition: top 600ms cubic-bezier(.6,.1,.68,.53) 0ms; +} + +.mobile-menu-scroll { + padding: 0; + margin: 0px; + height: 100%; + overflow-x: hidden; + overflow-y: auto; +} + +.header-menu-active .main-mobile-wrapper { + -webkit-transition: all 600ms cubic-bezier(.22,.61,.24,1) 0ms; + -o-transition: all 600ms cubic-bezier(.22,.61,.24,1) 0ms; + transition: all 600ms cubic-bezier(.22,.61,.24,1) 0ms; +} + +.header-menu-active .main-mobile-build { + top: 100%; + z-index: 1; +} + +.menu-collapse-wrap { + display: flex; + align-items: center; + flex-wrap: wrap; + justify-content: flex-end; +} + +.main-mobile-build .login-btn { + margin-top: 16px; +} + +.main-mobile-menu ul.main-menu li.menu-item-has-children { + display: flex; + justify-content: flex-start; + flex-wrap: wrap; +} + +.main-mobile-menu ul.main-menu > li a { + width: 100%; + padding: 0; + color: var(--bs-secondary); + padding-left: 15px; +} + +.main-mobile-menu ul.main-menu li.menu-item-has-children ul.dropdown-menu li > a { + padding-left: 25px; + width: 100%; +} + +.main-mobile-menu ul.main-menu .menu-item-has-children > a { + flex: 1; +} + +.main-footer span.mobile-collapsed { + display: none; +} + +span.mobile-collapsed { + max-width: 60px; +} + +.main-mobile-menu ul.main-menu .dropdown-menu li:not(:last-child) { + border-bottom: 1px solid #e0e0e0; +} + +.mobile-collapsed > button { + cursor: pointer; + flex-basis: 10%; + font-size: 18px; + text-align: center; + line-height: 46px; + padding: 0 1.17em; + color: var(--bs-secondary); + background-color: var(--bs-primary-light); + border: 0; + border-radius: 0; + border-left: 1px solid #e0e0e0; + display: flex; + align-items: center; + justify-content: center; + height: 100%; +} + +.mobile-collapsed > button:hover, +.mobile-collapsed > button:focus { + background-color: var(--bs-primary); +} + +.mobile-collapsed > button:hover, +.mobile-collapsed > button:focus, +.mobile-collapsed > button:hover:before, +.mobile-collapsed > button:focus:before { + color: var(--bs-white); +} + +.mobile-collapsed > button:before { + -webkit-transform: rotate(0deg); + -ms-transform: rotate(0deg); + transform: rotate(0deg); + display: block; +} + +.main-mobile-menu ul.main-menu .menu-item-has-children.current > .mobile-collapsed > button:before { + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); +} + +.main-mobile-menu ul.main-menu .dropdown-menu { + margin: 0; + float: none; + clear: both; + background: none; + border-top: 1px solid #e0e0e0; + width: 100%; + padding: 0; + border-radius: 0; + box-shadow: none; +} + +.main-mobile-menu ul.main-menu .menu-item a { + display: inline-block; +} + +.main-mobile-menu ul.main-menu li > a { + text-transform: none; + font-weight: 600; + letter-spacing: 0.5px; +} + +.main-mobile-menu ul.main-menu .menu-item-has-children.current > a { + margin: 0; +} + +/* Hamburger menu icon on the main-navigations */ + +.main-mobile-nav .menu-right-list { + padding-left: 1rem; + padding-right: 1rem; +} + +.main-mobile-nav .menu-right-list li { + min-height:auto; +} + +.main-mobile-nav .menu-right-list li .btn { + line-height: 0.85; +} + +.main-mobile-nav .menu-right-list li .btn .bticn { + width: 30px; + height: 30px; + line-height: 30px; +} + +span.tgl-lbl { + line-height: .75; + display: block; +} + +.hamburger-menu { + width: 40px; + height: 40px; + vertical-align: middle; + border-radius: 0; + overflow: hidden; +} + +.menu-collapsed { + width: inherit; + height: inherit; + display: block; + padding: .55em .47em .7em; + position: relative; + z-index: 1; + border: 2px solid var(--bs-primary-light); + background-color: var(--bs-primary); +} + +.menu-collapsed:hover, +.menu-collapsed:focus { + background-color: var(--bs-white); + border-color: var(--bs-primary); +} + +.menu-collapsed:hover div, +.menu-collapsed:focus div { + background-color: var(--bs-primary); +} + +.hamburger-menu div { + height: 3px; + width: 100%; + margin: 0 0 5px; + background: var(--bs-white); +} + +.hamburger-menu div:first-child { + margin-top: 0px; +} + +.hamburger-menu div:last-child { + margin-bottom: 0; +} + +.hamburger-menu .meat, +.hamburger-menu .bottom-bun, +.hamburger-menu > button:hover div, +.hamburger-menu > button:focus div { + width: 100%; +} + +.hamburger-menu > button:hover .top-bun, +.hamburger-menu > button:focus .top-bun { + -webkit-animation: burger-hover 0.8s infinite ease-in-out alternate; + animation: burger-hover 0.8s infinite ease-in-out alternate; +} + +.hamburger-menu > button:hover .meat, +.hamburger-menu > button:focus .meat { + -webkit-animation: burger-hover 0.8s infinite ease-in-out alternate forwards 150ms; + animation: burger-hover 0.8s infinite ease-in-out alternate forwards 150ms; +} + +.hamburger-menu > button:hover .bottom-bun, +.hamburger-menu > button:focus .bottom-bun { + -webkit-animation: burger-hover 0.8s infinite ease-in-out alternate forwards 300ms; + animation: burger-hover 0.8s infinite ease-in-out alternate forwards 300ms; +} + +@-webkit-keyframes burger-hover { + 0% { + width: 100%; + } + 50% { + width: 50%; + } + 100% { + width: 100%; + } +} + +@keyframes burger-hover { + 0% { + width: 100%; + } + 50% { + width: 50%; + } + 100% { + width: 100%; + } +} + +/* Above Header On Mobile Start */ + +.header-above-btn { + position: relative; + width: 28px; + height: 43px; + overflow: hidden; + text-align: center; + z-index: 0; + border: 2px solid var(--bs-primary-light); + margin-left: 5px; +} + +.header-above-collapse { + display: inline-block; + position: absolute; + top: -3px; + left: 0px; + padding: 0; + width: 35px; + height: 50px; + border: none; + color: var(--bs-white); + background-color: var(--bs-primary); + z-index: 1; +} + +button.header-above-collapse:focus { + background-color: var(--bs-primary); +} + +.header-above-collapse span { + top: 40%; +} + +.header-above-collapse span, +.header-above-collapse span:before, +.header-above-collapse span:after { + position: absolute; + width: 7px; + height: 7px; + line-height: 7px; + text-align: center; + background: var(--bs-white); + left: 35%; + margin-left: -3px; + border-radius: 50%; +} + +.header-above-collapse span:before, +.header-above-collapse span:after { + content: '' +} + +.header-above-collapse span:before { + bottom: 100%; + margin-bottom: 4px +} + +.header-above-collapse span:after { + top: 100%; + margin-top: 4px +} + +.header-above-wrapper { + width: 100%; + height: 100%; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: -1; + visibility: hidden; + opacity: 0; + transition: var(--bs-transition); + -webkit-transition: all 600ms cubic-bezier(.6,.1,.68,.53) 400ms; + -o-transition: all 600ms cubic-bezier(.6,.1,.68,.53) 400ms; + transition: all 600ms cubic-bezier(.6,.1,.68,.53) 400ms; +} + +.header-above-wrapper.is-active { + opacity: 1; + visibility: visible; +} + +.header-above-bar { + position: absolute; + text-align: center; + top: -250%; + right: 0; + left: 0; + margin: 0 auto; + display: block; + height: auto; + width: 95%; + padding: 15px 0; + border-radius: 0; + background-color: var(--bs-white); + border-top: 4px solid var(--bs-primary); + z-index: -1; + -webkit-box-shadow: 0 15px 40px rgba(0,0,0,.15); + box-shadow: 0 15px 40px rgba(0, 0, 0, 0.15); + -webkit-transition: top 400ms cubic-bezier(.6,.1,.68,.53) 0ms; + -o-transition: top 400ms cubic-bezier(.6,.1,.68,.53) 0ms; + transition: top 400ms cubic-bezier(.6,.1,.68,.53) 0ms; +} + +.header-above-wrapper.is-active .header-above-bar { + top: 100%; +} + +.header-above-bar .widget-left, .header-above-bar .widget-right, +.header-above-bar .header-widget .widget { + width: 100%; +} + +.header-above-bar .header-widget .widget { + margin-bottom: 10px; +} + +.header-above-bar #header-top-right .widget:last-child { + margin-bottom: 0px; +} + +.header-above-bar #header-top-right .widget.widget-social-widget:first-child:before { + background: none; +} + +.header-above-bar .header-widget .widget .contact-area { + padding-left: 0; +} + +.header-above-bar .text-heading { + color: var(--bs-secondary); +} + +.widget-social-widget li a { + color: var(--bs-white); + background-color: var(--bs-primary); +} + +/* Menu Right Start */ + +.main-mobile-build-right ul, +.main-menu-right > ul { + margin: 0; + padding: 0; + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + height: 100%; +} + +.main-menu-right > ul { + padding-left: 1.75rem; +} + +.main-mobile-build-right > ul > ul > li, .main-mobile-build-right > ul > li, +.main-menu-right > ul > ul > li, .main-menu-right > ul > li { + display: inline-block; + margin-right: 15px; + position: relative; + color: initial; + list-style: none; +} + +.main-menu-right > ul > ul > li:last-child, +.main-menu-right > ul > li:last-child { + margin-right: 0; +} + +.main-menu-right > ul > li { + display: flex; + align-items: center; + min-height: 6.25rem; +} + +/*=============== 05. Search =============*/ + +.header-search-popup { + position: absolute; + top: 100%; + right: 25%; + width: 100%; + min-width: 315px; + z-index: 0; + background-color: var(--bs-white); + overflow: hidden; + border-radius: 10rem; + visibility: hidden; + opacity: 0; + transform: translateY(-20%); + border: 1px solid var(--bs-gray-light); + box-shadow: 0px 2px 16px -3px rgb(0 0 0 / 0.15); + -webkit-backface-visibility: hidden; + transition: all 0.5s ease-in-out; +} + +.header-search-flex { + display: flex; + align-items: center; + justify-content: center; + max-width: 300px; + position: relative; + padding-right: 45px; + min-height: 52px; + margin: auto; +} + +.header-search-popup form { + width: 100%; + margin: auto; + position: relative; + z-index: 1; + opacity: 0; + visibility: hidden; + display: none; + -webkit-transition: all 0.9s ease-in-out 1.4s; + transition: all 0.9s ease-in-out 1.4s; +} + +.header-search-popup form .header-search-field { + padding-right: 40px; + color: inherit; + font-weight: 500; + font-size: 1rem; + line-height: 24px; + outline: none; + box-shadow: none; + border-radius: 100px; + height: 40px; + min-height: 40px; +} + +.header-search-popup form .header-search-field:hover, +.header-search-popup form .header-search-field:focus { + border-color: var(--bs-primary); +} + +.header-search-popup input[type="search"].header-search-field::-moz-placeholder { + /*color: var(--bs-white);*/ + font-weight: 500 +} +.header-search-popup input[type="search"].header-search-field:-moz-placeholder { + /*color: var(--bs-white);*/ + font-weight: 500 +} +.header-search-popup input[type="search"].header-search-field:-ms-input-placeholder { + /*color: var(--bs-white);*/ + font-weight: 500 +} +.header-search-popup input[type="search"].header-search-field::-webkit-input-placeholder { + /*color: var(--bs-white);*/ + font-weight: 500 +} + +.header-search-popup .search-submit { + position: absolute; + top: 0; + bottom: 0; + right: 0; + line-height: 1; + margin: 4px 4px 4px 0; + width: 32px; + height: 32px; + padding: 0; + font-size: .8rem; + text-align: center; + color: var(--bs-white); + background-color: var(--bs-primary); + border-radius: 100px; + border: none; + opacity: 0; +} + +.header-search-popup .search-form:hover .search-submit, +.header-search-popup .header-search-field:focus + .search-submit, +.header-search-popup .search-submit:focus { + opacity: 1; +} + +.header-search-popup .header-search-close { + width: 38px; + height: 38px; + top: 0; + bottom: 0; + left: auto; + right: 0; + margin: auto 0; + border-radius: 100%; + -webkit-transition: all 0.9s ease-in-out 1.5s; + transition: all 0.9s ease-in-out 1.5s; + opacity: 0; + visibility: hidden; + display: none; +} + +.header-search-active .header-search-popup { + transform: translateY(0); +} + +.header-search-active .header-search-popup, +.header-search-active .header-search-close, +.header-search-active .header-search-popup form { + opacity: 1; + visibility: visible; +} + +.header-search-active .header-search-close, +.header-search-active .header-search-popup form { + display: block; +} + +.mobile-menu-right .header-search-popup .header-search-close { + width: 60px; + height: 60px; + right: 6%; + top: 25%; +} + +@media only screen and (max-width:991px) { + .header-search-popup form { + width: 90%; + } +} + +.close-style { + position: absolute; + top: 0; + right: -45px; + margin: 0 auto; + display: block; + width: 45px; + height: 44px; + border-radius: 0; + border-color: var(--bs-primary); + border-style: solid; + background: var(--bs-white); + z-index: 9; +} + +.close-style:before, .close-style:after { + content: ''; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + margin: auto; + width: 25px; + height: 4px; + background: var(--bs-secondary); + -webkit-transform-origin: 50% 50%; + -ms-transform-origin: 50% 50%; + transform-origin: 50% 50%; +} + +.close-style:hover:before, .close-style:hover:after, +.close-style:focus:before, .close-style:focus:after { + background: var(--bs-primary); +} + +.close-style:before { + -webkit-transform: rotate(-45deg); + -ms-transform: rotate(-45deg); + transform: rotate(-45deg); +} + +.close-style:after { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); +} + +.close-style:hover:before, .close-style:hover:after, +.close-style:focus:before, .close-style:focus:after { + -webkit-transform: none; + -ms-transform: none; + transform: none; +} + +.menu-collapsed:focus, +.close-style:focus { + outline-color: var(--bs-white); +} + +.main-header .header-search-toggle, +.header-cart, +.header-account-wrapper a { + color: var(--bs-white); + background: var(--bs-primary); + display: inline-block; + width: 40px; + height: 40px; + text-align: center; + cursor: pointer; + line-height: 2.25; + padding: 0; + border-radius: 6.25rem; + border: 1px solid transparent; +} + +.header-account-wrapper a:hover, +.header-account-wrapper a:focus { + background: var(--bs-secondary); + color: var(--bs-white); +} + +.mobile-menu-right .header-search-toggle { + font-size: 1.25rem; + line-height: 2; + border-radius: 3px; + color: var(--bs-white); + background-color: var(--bs-primary); +} + +@media (min-width: 601px) { + .admin-bar .main-mobile-nav:not(.is-sticky-menu) .header-close-menu { + top: 0%; + } + .admin-bar .main-mobile-nav:not(.is-sticky-menu) .main-mobile-build { + padding-top: 0; + } +} + +/* ---//--- */ + + +.header-search-popup .header-search-close, +.more-link:after, .more-link, +.widget .cat-item:hover a + span, +.widget_title:after, +.navbar-brand, img.navbar-brand, +.is-sticky-menu img.navbar-brand, +.active-two .main-navbar .main-menu > li > a, +.main-navbar .dropdown-menu > li, +.main-navbar .dropdown-menu li a, +.main-navbar .dropdown-menu .menu-item-has-children > a:after, +.main-footer .dropdown-menu > li, +.main-footer .dropdown-menu li a, +.main-footer .main-menu .dropdown-menu .menu-item-has-children > a:after, +.sub-menu .menu-item-has-children > a:after, +.mobile-collapsed > button, +.mobile-collapsed > button:before, +.main-mobile-build li > a, +.hamburger-menu div, +.hamburger-menu .meat, +.hamburger-menu .bottom-bun, +.header-sidebar-toggle span, +.header-sidebar-toggle span:before, +.header-sidebar-toggle span:after, +.header-search-active .header-search-popup form, +.header-search-popup form, +.close-style:before, .close-style:after, +.header-search-popup span:before, .header-search-popup span:after, +.edd_checkout a, .button, +button, input, input[type="button"], +input[type="reset"], input[type="submit"] { + -webkit-transition: var(--bs-transition); + transition: var(--bs-transition); +} + +.bg-gray{ + background-color: var(--bs-gray-500); +} +/*-------------------------------------------------------------- +# Basic Typography Structure +--------------------------------------------------------------*/ + +*:not(table *) { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + word-break: break-word; +} + +body { + overflow-x: hidden; + +} + +body:not(.admin-bar) { + position: relative; +} + +a { + color: var(--bs-primary); + text-decoration: none; + outline: none; +} + +a:not(.comments-count) { + text-decoration: underline; +} + +a:hover, +a:active, +a:focus { + color: var(--bs-primary); + text-decoration: none; +} + +a:hover, +a:active, +button:focus { + box-shadow: none; +} + +button[type=submit]:focus, button:focus, input[type="button"]:focus, input[type="reset"]:focus, input[type="submit"]:focus, a:focus { + outline-width: 1px; + outline-offset: -3px; + outline-style: dotted; + text-decoration: none; +} + +a, area, button, input, label, select, summary, textarea { + -ms-touch-action: manipulation; + touch-action: manipulation; + -webkit-transition: var(--bs-transition); + transition: var(--bs-transition); +} + +button, input, optgroup, select, textarea { + margin: 0; +} + +button, input { + overflow: visible; +} + +img { + max-width: 100%; + height: auto; + vertical-align: middle; + border: 0; + display: block; +} + +em, cite, q { + color: var(--bs-primary); + font-style: italic; + font-weight: bold; +} + +code, kbd, tt, var, samp, pre { + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; + background: var(--bs-secondary); + color: var(--bs-white); + padding: 1px 0.3125rem; + border-radius: 0px; + font-size: 88%; +} + +pre { + display: block; + margin: 0 0 0.625rem; + font-size: 0.8125rem; + word-break: break-all; + word-wrap: break-word; + border: 1px solid var(--bs-gray-light); + border-radius: 0px; + overflow: auto; +} + +.table>thead { + vertical-align: bottom; +} + +.table th, .table td { + padding: 1.5rem; + vertical-align: top; +} + +table.table th, table.table td { + padding-top: .95rem; + padding-bottom: .95rem; +} + +table.table.btn-table td { + vertical-align: middle; +} + +.table-striped>tbody>tr:nth-of-type(odd) { + --bs-table-accent-bg: var(--bs-white); + color: var(--bs-secondary); +} + +figure { + margin: 0; +} + +address, +table, +pre { + width: 100%; +} + +small { + font-size: 80%; +} + +fieldset { + border: 1px solid var(--bs-gray-light); + margin: 1.5rem 0.125rem; + padding: 0.625rem 1.5625rem 1.25rem; + border-radius: 0; +} + +iframe { + max-width: 100%; + /* height: auto; */ +} + +button, +input[type="button"], +input[type="reset"], +input[type="submit"] { + border-radius: 0; +} + +button[type="submit"], +input[type="button"], +input[type="reset"], +input[type="submit"] { + display: inline-block; + font-weight: 600; + line-height: 1.5; + background-color: var(--bs-primary); + text-align: center; + text-decoration: none; + vertical-align: middle; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + color: var(--bs-white); + position: relative; + z-index: 0; + overflow: hidden; + border: 2px solid transparent; + padding: 0.688rem 1.375rem; + letter-spacing: 0.05rem; + font-size: 1rem; + border-radius: 6.25rem; + transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out; +} + +/*.comment-metadata .edit-link a, .comment-body .reply a, +.scrolling-btn, .more-link, +.bs-tab-filter a, form button, +.bs-post-pagination div.nav a, +.btn:not(.btn-link):not(.btn-play):not(.btn-video) { + position: relative; + overflow: hidden; + z-index: 0; + border-radius: 5px; + text-decoration: none; + transition: 0.5s all ease; +}*/ + +button:hover, +input[type="button"]:hover, +input[type="reset"]:hover, +input[type="submit"]:hover, +button:focus, +input[type="button"]:focus, +input[type="reset"]:focus, +input[type="submit"]:focus { + outline: 1px dotted; + outline-offset: -2px; +} + +input[type="text"]:not(.adminbar-input), +input[type="email"], +input[type="url"], +input[type="password"], +input[type="search"], +input[type="number"], +input[type="tel"], +input[type="range"], +input[type="date"], +input[type="month"], +input[type="week"], +input[type="time"], +input[type="datetime"], +input[type="datetime-local"], +input[type="color"], +textarea, +.form-control { + border-radius: 0; + display: block; + line-height: 1.5; + font-size: 0.97rem; + font-weight: 500; + padding: 0.65rem 1.25rem; + vertical-align: middle; + width: 100%; + min-height: 50px; + background-color: var(--bs-white); + border: 1px solid var(--bs-gray-light); + outline: none; + letter-spacing: 0.5px; + box-shadow: none; + -webkit-transition: var(--bs-transition); + transition: var(--bs-transition); +} + +input[type="text"]:focus, input[type="email"]:focus, +input[type="url"]:focus, input[type="password"]:focus, +input[type="search"]:focus, input[type="number"]:focus, +input[type="tel"]:focus, input[type="range"]:focus, +input[type="date"]:focus, input[type="month"]:focus, +input[type="week"]:focus, input[type="time"]:focus, +input[type="datetime"]:focus, input[type="datetime-local"]:focus, +input[type="color"]:focus, textarea:focus, select:focus, +input[type="text"]:hover, input[type="email"]:hover, +input[type="url"]:hover, input[type="password"]:hover, +input[type="search"]:hover, input[type="number"]:hover, +input[type="tel"]:hover, input[type="range"]:hover, +input[type="date"]:hover, input[type="month"]:hover, +input[type="week"]:hover, input[type="time"]:hover, +input[type="datetime"]:hover, input[type="datetime-local"]:hover, +input[type="color"]:hover, textarea:hover, select:hover { + background-color: var(--bs-white); + border-color: var(--bs-primary); + outline: none; +} + +[type=search] { + -webkit-appearance: textfield; + outline-offset: -2px; +} + +select { + border: 1px solid var(--bs-gray); + border-radius: 0; + display: block; + font-size: 92%; + font-weight: 500; + padding: 0.375rem 0.75rem; + min-height: 50px; + position: relative; + text-decoration: none; + white-space: nowrap; + width: 100%; + box-shadow: none; + overflow: auto !important; + outline: 0; + background-color: var(--bs-white); +} + +textarea { + height: 8.125rem; + overflow: auto; + resize: vertical; +} + +input[type=checkbox], input[type=radio], +form[id*=give-form] #give-gateway-radio-list>li input[type=radio], +form[id*=give-form] #give-gateway-radio-list>li input[type=checkbox], +div.wpforms-container-full .wpforms-form input[type=radio], +div.wpforms-container-full .wpforms-form input[type=checkbox] { + position: relative; + border: 2px solid var(--bs-secondary-dark); + background-color: var(--bs-white); + color: var(--bs-primary); + clear: none; + cursor: pointer; + display: inline-block; + line-height: 0; + height: 16px; + margin: 0; + outline: 0; + padding: 0; + text-align: center; + vertical-align: middle; + width: 16px !important; + max-width: 16px; + border-radius: 3px; + -moz-appearance: none !important; + -webkit-appearance: none !important; + transition: .05s border-color ease-in-out; +} + +input[type=radio] { + border-radius: 50%; + margin-right: 0.25rem; + line-height: 0.75rem; +} + +input[type=checkbox]:hover:before, +input[type=radio]:hover:before, +input[type=checkbox]:checked:before, +input[type=radio]:checked:before { + display: inline-block; + vertical-align: middle; + speak: none; + line-height: 1.1; + -webkit-transition: var(--bs-transition); + transition: var(--bs-transition); +} + +input[type=radio]:checked:before { + content: "⬤"; + text-indent: -9999px; + border-radius: 6.25rem; + font-size: 1.5rem; + width: 0.46rem; + height: 0.46rem; + margin: 0.152rem 0.152rem 0.25rem 0.175rem; + line-height: 1.25rem; + background: var(--bs-primary); +} + +input[type=checkbox]:checked, +input[type=checkbox]:hover, +input[type=radio]:checked, +input[type=radio]:hover { + background-color: var(--bs-primary); + border-color: var(--bs-primary); +} + +input[type=checkbox]:checked:before { + content: ''; + position: absolute; + left: 1px; + top: 0.32rem; + background-color: var(--bs-white); + width: 2px; + height: 2px; + box-shadow: 2px 0 0 white, 4px 0 0 white, 4px -2px 0 white, 4px -4px 0 white, 4px -6px 0 white, 4px -8px 0 white; + -webkit-transform: rotate(45deg); + transform: rotate(45deg); +} + +/*---//---*/ + +/* --- Primary Colors --- */ + +button[type=submit]:hover, button[type=button]:hover, +input[type="submit"]:hover, input[type="button"]:hover, +input[type="reset"]:hover, +button[type=submit]:focus, button[type=button]:focus, +input[type="submit"]:focus, input[type="button"]:focus, +input[type="reset"]:focus { + color: var(--bs-white); + background-color: var(--bs-secondary); +} + +/* ---//--- */ +.read-link { + font-weight: 600; + text-decoration: none; + position: relative; + -webkit-transition: all .3s linear 0ms; + transition: all .3s linear 0ms; +} + +.read-link:hover, .read-link:focus { + color: var(--bs-secondary); +} + +.bg-primary-light { + background-color: var(--bs-primary-light); +} + +.h-full { + height: 100%; +} + +.minus-mt-6 { + margin-top: -6rem; +} + +.st-my-default { + margin: 6.75rem 0; +} +.st-mt-default { + margin-top: 6.75rem; +} +.st-mb-default { + margin-bottom: 6.75rem; +} +.st-mt-minus { + margin-top: -85px; +} + +.st-py-default { + padding: 6.75rem 0; +} +.st-pt-default { + padding-top: 6.75rem; +} +.st-pb-default { + padding-bottom: 6.75rem; +} +.st-pt-plus { + padding-top: 10.5rem; +} + +.btn-rounded { + border-radius: 10em; +} + +.btn-white { + background-color: var(--bs-white); + color: var(--bs-secondary-dark); +} + +.btn-white:hover, +.btn-white:focus { + background-color: var(--bs-primary); +} + +.btn-border-white { + color: var(--bs-white); + border-color: var(--bs-white); +} + +.btn-border-white:hover, .btn-border-white:focus { + color: var(--bs-primary); +} + +.btn.btn-like-icon { + padding-right: 3.75rem; +} + +.btn.btn-secondary.btn-like-icon { + border: 0; + background-color: var(--bs-secondary); +} + +.theme-slider .btn.btn-secondary.btn-like-icon { + background-color: rgba(0, 0, 0, .6); +} + +.btn-like-icon .bticn { + position: absolute; + top: 5px; + right: 5px; + margin: 0 auto; + width: 35px; + height: 35px; + display: inline-block; + border-radius: 100%; + line-height: 35px; + -webkit-transition: var(--bs-transition); + transition: var(--bs-transition); +} + +.btn:hover .bticn, +.btn:focus .bticn { + transform: rotate(360deg); + color: var(--bs-white); + background-color: var(--bs-primary); +} + +.btn .bticn { + color: var(--bs-primary); + background-color: var(--bs-white); +} + +.btn-border-white .bticn { + color: var(--bs-secondary-dark); +} + +.btn-white .bticn { + background-color: var(--bs-primary); + color: var(--bs-white); +} + +.btn-like-icon .bticn span { + margin-left: 1px; +} + +.btn.st-load-btn { + font-size: 0.9375rem; +} +.st-load-item { + display: none; +} +.st-load-spinner { + position: relative; + cursor: pointer; + width: 1.125rem; + height: 1.125rem; + display: inline-block; + vertical-align: middle; +} +.st-load-spinner:before, .st-load-spinner:after { + position: absolute; + display: block; + content: ""; + width: 0.5625rem; + height: 0.5625rem; + left: 0; + top: -0.3125rem; + right: 0; + bottom: 0; + margin: auto; + border-width: 2px; + border-style: solid; + border-color: transparent; + border-bottom-color: var(--bs-white); + border-right-color: var(--bs-white); + border-radius: 0 0 1px 0; + transform: translate(0%, 0%) rotate(45deg); + -webkit-transition: var(--bs-transition); + transition: var(--bs-transition); +} +.loadspinner .st-load-spinner:before { + border-radius: 50%; + animation: 0.8s spin 0.4s linear forwards infinite; +} +.loadspinner .st-load-spinner:after { + width: 1.125rem; + height: 1.125rem; + border-radius: 50%; + animation: 0.8s spinReverse 0.4s linear forwards infinite; +} + +/* Top Animation Effects */ + +/* Round Rotation Circle Effect */ + +@-webkit-keyframes slideTop{49%{-webkit-transform:translateY(100%);transform:translateY(100%)}50%{opacity:0;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);-webkit-transform:translateY(-100%);transform:translateY(-100%)}51%{opacity:1;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}} +@keyframes slideTop{49%{-webkit-transform:translateY(100%);transform:translateY(100%)}50%{opacity:0;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);-webkit-transform:translateY(-100%);transform:translateY(-100%)}51%{opacity:1;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}} + +/* ---//--- */ + +/* Round Rotation Circle Effect */ + +@keyframes spin{from{transform:rotate(0deg) scale(1)}to{transform:rotate(360deg)}} +@keyframes spinReverse{from{transform:rotate(0deg) scale(1)}to{transform:rotate(-360deg)}} + +/* ---//--- */ + +/* Boounce Effect */ + +@keyframes bounce_one{0%{transform:translateY(-0.625rem)}50%{transform:translateY(0.625rem)}to{transform:translateY(-0.625rem)}} +@keyframes bounce_two{0%{transform:scale(1,1) translateY(0)}10%{transform:scale(1.1,.9) translateY(0)}30%{transform:scale(.9,1.1) translateY(-1.375rem)}50%{transform:scale(1,1) translateY(0)}57%{transform:scale(1,1) translateY(-0.1875rem)}64%{transform:scale(1,1) translateY(0)}100%{transform:scale(1,1) translateY(0)}} +@keyframes bounce_three{from{transform:translateY(0)}to{transform:translateY(-0.9375rem)}} + +/* ---//--- */ + +/* WaveIn Effect for use Call Icon */ + +@keyframes waveIn{from{opacity:0;transform:scale(.3) translate(-20px,10px)}50%{transform:translate(0,0);opacity:1}} + +/* ---//--- */ + +/* Buzz Effect for use Contact Widget */ + +@keyframes buzz-out{10%{-webkit-transform:translateX(0.1875rem) rotate(2deg);transform:translateX(0.1875rem) rotate(2deg)}20%{-webkit-transform:translateX(-0.1875rem) rotate(-2deg);transform:translateX(-0.1875rem) rotate(-2deg)}30%{-webkit-transform:translateX(0.1875rem) rotate(2deg);transform:translateX(0.1875rem) rotate(2deg)}40%{-webkit-transform:translateX(-0.1875rem) rotate(-2deg);transform:translateX(-0.1875rem) rotate(-2deg)}50%{-webkit-transform:translateX(0.125rem) rotate(1deg);transform:translateX(0.125rem) rotate(1deg)}60%{-webkit-transform:translateX(-0.125rem) rotate(-1deg);transform:translateX(-0.125rem) rotate(-1deg)}70%{-webkit-transform:translateX(0.125rem) rotate(1deg);transform:translateX(0.125rem) rotate(1deg)}80%{-webkit-transform:translateX(-0.125rem) rotate(-1deg);transform:translateX(-0.125rem) rotate(-1deg)}90%{-webkit-transform:translateX(1px) rotate(0);transform:translateX(1px) rotate(0)}100%{-webkit-transform:translateX(-1px) rotate(0);transform:translateX(-1px) rotate(0)}} + +/* ---//--- */ + +/* Ripple Effect for use Play Button */ + +@-webkit-keyframes ripple {0%{transform:scale(1)}75%{transform:scale(1.5);opacity:0.3}to{transform:scale(1.75);opacity:0}} +@keyframes ripple {0%{transform:scale(1)}75%{transform:scale(1.5);opacity:0.3}to{transform:scale(1.75);opacity:0}} + +/* Shape Effect */ + +@-webkit-keyframes animationFramesOne{0%{transform:translate(0) rotate(0deg)}20%{transform:translate(73px,-1px) rotate(36deg)}40%{transform:translate(141px,72px) rotate(72deg)}60%{transform:translate(83px,122px) rotate(108deg)}80%{transform:translate(-40px,72px) rotate(144deg)}to{transform:translate(0) rotate(0deg)}} +@keyframes animationFramesOne{0%{transform:translate(0) rotate(0deg)}20%{transform:translate(73px,-1px) rotate(36deg)}40%{transform:translate(141px,72px) rotate(72deg)}60%{transform:translate(83px,122px) rotate(108deg)}80%{transform:translate(-40px,72px) rotate(144deg)}to{transform:translate(0) rotate(0deg)}} +@-webkit-keyframes animationFramesTwo{0%{transform:translate(0) rotate(0deg)}20%{transform:translate(-73px,1px) rotate(-36deg)}40%{transform:translate(-141px,-72px) rotate(-72deg)}60%{transform:translate(-83px,-122px) rotate(-108deg)}80%{transform:translate(40px,-72px) rotate(-144deg)}to{transform:translate(0) rotate(0deg)}} +@keyframes animationFramesTwo{0%{transform:translate(0) rotate(0deg)}20%{transform:translate(-73px,1px) rotate(-36deg)}40%{transform:translate(-141px,-72px) rotate(-72deg)}60%{transform:translate(-83px,-122px) rotate(-108deg)}80%{transform:translate(40px,-72px) rotate(-144deg)}to{transform:translate(0) rotate(0deg)}} +@-webkit-keyframes rotate3d{0%{transform:rotateY(0deg)}to{transform:rotateY(1turn)}} +@keyframes rotate3d{0%{transform:rotateY(0deg)}to{transform:rotateY(1turn)}} +@keyframes moveleftbounce{0%{transform:translateX(0px)}50%{transform:translateX(20px)}100%{transform:translateX(0px)}} + +/*===== // =====*/ + +/*===== 02. Preloader Start =====*/ + +.preloader { + position: fixed; + top: 0; + left: 0; + display: -webkit-box; + display: flex; + -webkit-box-align: center; + align-items: center; + -webkit-box-pack: center; + justify-content: center; + width: 100%; + height: 100%; + z-index: 9999999; + background-color: var(--bs-primary); + overflow: hidden; +} + +/*===== // =====*/ + +/*===== 03. Above Header =====*/ + +.above-header { + border-bottom: 1px solid rgb(108 117 125 / 0.6); +} + +.above-header { + position: relative; + background: var(--bs-secondary); + color:#fff; +} + +.header-widget { + height: 100%; +} + + +.above-header .widget-left a:hover, +.above-header .widget-left a:focus { + color: var(--bs-white); +} + +.widget_social_widget li a { + border-radius: 0; + background: var(--bs-white); +} +.text-heading { + color: var(--bs-white); + text-align: initial; + overflow: hidden; + position: relative; +} +.text-heading strong { + text-decoration: underline; +} +.text-sliding { + display: inline; + margin-left: 2px; +} +.text-sliding span { + white-space: nowrap; +} + +/*===== // =====*/ + +/*===== 04. Navigation Start =====*/ + +.logo { + color: var(--bs-white); +} + +.logo img { + max-width: 13.125rem; +} + +body.homepage-1 .main-navigation { + background-color: var(--bs-secondary); + border-bottom: 1px solid rgb(108 117 125 / 0.6); +} + +.homepage-3 .main-navigation, +.homepage-3 .main-navigation .main-menu-right > ul > li { + min-height: 78px; +} + +.homepage-3 .main-navigation.is-sticky-menu { + background: none; + -webkit-box-shadow: none; + -ms-box-shadow: none; + -o-box-shadow: none; + box-shadow: none; +} + +.homepage-3 .navbar-area { + -ms-flex-pack: space-between; + justify-content: space-between; + background-color: var(--bs-secondary); + border: 1px solid rgb(108 117 125 / 0.6); + border-radius: 6.25rem; + padding: 0 0.9rem; +} + +.homepage-3 .main-navbar .main-menu > li > a { + line-height: 2.25rem; +} + +.homepage-3 .main-navbar .main-menu > li > a > .badge { + top: -0.9rem; +} + +.homepage-3 .main-navbar .main-btn-home { + display: inline-block; +} + +.homepage-3 .main-navbar .main-btn-home a { + border-radius: 6.25rem; + color: var(--bs-white); + background-color: var(--bs-primary); + width: 50px; + height: 50px; + line-height: 50px; + text-align: center; + display: inline-block; +} + +.main-navigation .contact-area { + color: var(--bs-white); +} + +.main-navbar .main-menu > li.menu-item:not(.focus):not(.active):not(:hover) > a:not(:focus):not(:hover) { + color: var(--bs-secondary); +} + +.is-sticky-menu .main-navbar .main-menu > li.menu-item:not(.focus):not(.active):not(:hover) > a:not(:focus):not(:hover) { + color: var(--bs-secondary); +} + + +.main-navbar .main-menu > li:hover > a, +.main-navbar .main-menu > li.focus > a, +.main-navbar .main-menu .menu-item.active > a { + color: var(--bs-primary); +} + +.header-transparent .main-header .header-search-toggle, +.header-transparent .header-cart { + font-size: 1rem; +} + +.homepage-1 .main-header .header-search-toggle, +.homepage-1 .header-cart { + color: var(--bs-white); + background-color: var(--bs-primary); +} + +.homepage-2 .navbar-area { + justify-content: space-between; + -ms-flex-pack: space-between; + background-color: rgb(0 0 0 / 0.4); + padding-left: 0.95rem; +} + +.main-nav-info .menu-right-list { + padding: 0; + justify-content: flex-end; + -ms-flex-pack: end; +} + +.main-info-list { + padding-right: 0.938rem; +} + +.main-info-list .widget:not(:first-child) { + margin-left: 1.875rem; +} + +.main-info-list .widget:first-child { + padding-right: 1rem; +} + +.main-navigation-info .menu-right-list, .main-navigation-info .logo { + min-height: 110px; +} + +.main-navigation-info .logo { + display: flex; + justify-content: center; + flex-direction: column; +} + +.main-navigation-info .logo a.site-title { + margin: 0; +} + +.homepage-2 .main-navbar .main-menu > li > a, +.homepage-4 .main-navbar .main-menu > li > a { + line-height: 5rem; +} + +.homepage-5 .main-navbar .main-menu > li > a { + line-height: 4rem; +} + +.homepage-2 .main-mobile-menu, +.homepage-2 .main-navigation, +.homepage-2 .main-menu-right > ul > li, +.homepage-4 .main-mobile-menu, +.homepage-4 .main-navigation, +.homepage-4 .main-menu-right > ul > li { + min-height: 5rem; +} + +.homepage-2 .main-navigation, +.homepage-2 .main-menu-right > ul > li { + border-bottom: 0; +} + +.homepage-2 .main-navigation, +.homepage-2 .is-sticky-menu .navbar-area { + background: var(--bs-secondary-dark); +} + +.homepage-2 .menu-social-list ul li { + margin-top: 0; +} + +.homepage-2 .menu-social-list .widget ul li { + margin-right: -3px; + margin-top: 0; +} + +.homepage-2 .menu-social-list .widget.widget_social_widget ul { + margin-top: 0; +} + +.homepage-2 .navbar-area .main-menu-right > ul > li { + border-left: 1px solid rgb(108 117 125 / 0.6); + margin: 0; +} + +.homepage-2 .menu-social-list ul li:not(:last-child) { + border-right: 1px solid rgb(108 117 125 / 0.6); +} + +.homepage-2 .main-header .header-search-toggle, +.homepage-2 .header-cart, +.homepage-2 .menu-social-list ul li a { + width: 70px; + min-height: 80px; + text-align: center; + border-radius: 0; + background: none !important; +} + +.homepage-2 .main-navbar .main-menu > li > a > .badge { + top: 0.5rem; +} + +.homepage-3 .header-cart { + background: none !important; +} + +.navbar-area .btn-primary { + white-space: nowrap; +} + + +.homepage-4.header-transparent .navbar-area, +.homepage-4.header-transparent .main-header .th-ovelay, +.homepage-5.header-transparent .navbar-area { + background-color: rgb(0 0 0 / 0.4); +} + +.homepage-4.header-transparent .main-header .th-ovelay { + padding: 0 0.95rem; +} +.homepage-4 .navbar-area, +.homepage-5 .navbar-area{ + justify-content: space-between; + -ms-flex-pack: space-between; + padding-left: 0.95rem; +} +.homepage-4 .main-header .header-search-toggle, + .homepage-4 .header-cart{ + background-color: var(--bs-primary); +} + +.homepage-4 li.cart-wrapper:after { + content: ""; + position: absolute; + top: 0; + bottom: 0; + right: 0; + height: auto; + margin: auto; + border-right: 1px solid rgb(108 117 125 / 0.4); +} + +body.homepage-4 .main-navigation-info .th-ovelay { + border-bottom: 1px solid rgb(108 117 125 / 0.4); +} + + +.homepage-4 .navbar-area .widget_social_widget li a { + color: var(--bs-primary); + background-color: var(--bs-secondary-dark); +} + +.homepage-4 .navbar-area .widget_social_widget li:last-child { + margin-right: 15px; +} + +.homepage-4 .main-header .search-button, +.homepage-4 .cart-wrapper{ + width: 50px; +} + +.homepage-4 .main-info-list .widget:first-child { + border-right: 1px solid rgb(108 117 125 / 0.4); +} + +.homepage-5 .main-navbar .main-btn-home { + display: inline-block; + margin-left: -15px; +} + + +.homepage-5 .main-navbar .main-btn-home a { + border-radius: 0; + color: var(--bs-white); + background-color: var(--bs-primary); + width: 60px; + height: 67px; + line-height: 60px; + text-align: center; + display: inline-block; + font-size: 30px; +} + +.homepage-5.header-transparent .navbar-area { + transform: skewX(-10deg); +} + +.homepage-5 li.menu-social-list:after { + content: ""; + position: absolute; + top: 0; + bottom: 0; + right: 0; + height: auto; + margin: auto; + border-right: 1px solid rgb(108 117 125 / 0.6); +} + +.homepage-5 .main-mobile-menu, .homepage-5 .main-navigation, .homepage-5 .main-menu-right > ul > li { + min-height: 4rem; +} + +.homepage-5 .navbar-area .menu-right-list, +.homepage-5 li.menu-social-list .widget_social_widget { + margin-right:15px; +} + +.homepage-5 .widget_social_widget li a { + transform: skewX(-10deg); + position: relative; + z-index: 0; + background: #252524; + border-radius: 5px; +} +.homepage-5 .widget_social_widget li a i { + position: absolute; + left: -4px; + width: 120%; + height: 100%; + transform: skewX(10deg); + border-radius: 0; +} +.homepage-5 a.btn,.homepage-5 .more-link { + border-radius: 5px; + transform: skewX(-10deg) !important; + margin-right: 4px; +} +.homepage-5 a.btn span.text { + display: inline-block; + transform: skewX(10deg) !important; +} +.homepage-5 .btn-like-icon .bticn, +.homepage-5 .main-header .contact-icon, +.homepage-5 .widget_social_widget li a i, +.homepage-5 .main-header .contact-area .contact-icon i { + border-radius: 5px; +} + +.homepage-5 .main-header .contact-icon{ + transform: skewX(-10deg) !important; +} + +.homepage-5 .menu-right-list button.header-cart, .homepage-5 .main-header .header-search-toggle { + background-color: #252524; + border-radius: 5px; + transform: skewX(-10deg); +} + +.homepage-5 .menu-right-list button.header-cart:hover, +.homepage-5 .menu-right-list button.header-cart:focus, +.homepage-5 .main-header .header-search-toggle:hover, +.homepage-5 .main-header .header-search-toggle:focus { + background: var(--bs-primary); +} + +.homepage-5 .menu-right-list li.cart-wrapper .cart-icon-wrap span { + left: 23px; + top: -2px; + transform: skewX(-10deg); + border-radius: 5px; +} + +/*===== // =====*/ + +/*=============== 04. Cart =============*/ + +.cart-icon-wrap { + position: relative; +} + +.menu-right-list button.header-cart { + background-color: var(--bs-primary); + padding: 0 6px; +} + +.menu-right-list li.cart-wrapper, .menu-right-list li.search-button { + position: relative; +} + +.menu-right-list li.cart-wrapper .cart-icon-wrap span { + position: absolute; + top: 0; + right: -10px; + width: 20px; + height: 20px; + line-height: 20px; + border-radius: var(--bs-theme-radius); + text-align: center; + font-size: 0.75rem; + color: var(--bs-white); + background-color: var(--bs-primary); +} + +.homepage-1 .menu-right-list li.cart-wrapper .cart-icon-wrap span { + top: -10px; + left: 0; + color: var(--bs-white); + background-color: var(--bs-secondary-dark); +} + +.homepage-2 .menu-right-list li.cart-wrapper .cart-icon-wrap span { + top: 20px; + left: 18px; +} + +.shopping-cart { + position: absolute; + top: 96%; + right: -28px; + z-index: 9999999; + width: 280px; + background: var(--bs-white); + border-radius: 0; + padding: 20px; + transform: scale(1, 0); + -webkit-transform: scale(1, 0); + -webkit-transform-origin: top; + transform-origin: top; + -webkit-animation-fill-mode: forwards; + animation-fill-mode: forwards; + visibility: hidden; + opacity: 0; + -webkit-transition: all 0.3s ease-out; + transition: all 0.3s ease-out; + -webkit-box-shadow: 0px 3px 15px 0px rgba(0, 0, 0, 0.1); + box-shadow: 0px 3px 15px 0px rgba(0, 0, 0, 0.1); +} + +.menu-right-list li.cart-wrapper:hover .shopping-cart, +.menu-right-list li.cart-wrapper:focus-within .shopping-cart { + visibility: visible; + opacity: 1; + -webkit-transform: scale(1, 1); + transform: scale(1, 1); +} + +.shopping-cart-header .badge { + border-radius: var(--bs-theme-radius); + background-color: var(--bs-primary); + color: var(--bs-white); + font-weight: 400; + margin-left: -6px; + vertical-align: super; + border: 2px solid var(--bs-white); +} + +.shopping-cart { + text-align: left; +} + +.shopping-cart-header { + border-bottom: 1px solid #E8E8E8; + padding-bottom: 15px; + color: var(--bs-secondary); +} + +.shopping-cart-total { + float: right; + font-size: 1.125rem; + font-weight: 600; +} + +.shopping-cart .shopping-cart-items { + padding: 0; + padding-top: 15px; + list-style: none; +} + +.shopping-cart .shopping-cart-items a.remove { + transform: translateY(5px); +} + +.shopping-cart .shopping-cart-items li { + margin-bottom: 10px; + margin-top: 0; + padding: 0; + width: 100%; +} + +.shopping-cart .shopping-cart-items .item-img { + float: left; + margin-right: 12px; + width: 50px; + height: 50px; + border-radius: var(--bs-theme-radius); + text-align: center; + border: 1px solid var(--bs-gray-light); + box-shadow: 0 0 12px -3px rgb(0 0 0 / 0.25); +} + +.shopping-cart .shopping-cart-items .item-img img { + width: 100%; + vertical-align: baseline; + border-radius: var(--bs-theme-radius); + float: none; +} + +.shopping-cart .shopping-cart-items .item-name { + display: block; + font-weight: 600; + font-size: 1rem; +} + +.shopping-cart .shopping-cart-items .item-price { + margin-right: 0; + color: var(--bs-secondary-dark); +} + +.shopping-cart .shopping-cart-items .item-quantity { + color: var(--bs-red); +} + +.cart-icon { + color: #515783; + margin-right: 7px; + float: left; +} + +.shopping-cart .btn { + width: 100%; +} + +.shopping-cart .bticn { + width: 40px; + height: 40px; + line-height: 40px; + top: 3px; + right: 3px; +} + +/*===== // =====*/ + +/*===== 05. Slider =====*/ + +.slider-section { + position: relative; + overflow: hidden; + width: 100%; + padding: 0; + color: var(--bs-white); + background-color: var(--bs-secondary); + z-index: 0; +} + +.home-slider, +.home-slider .owl-item img { + width: 100%; + height: 100%; +} + + +.slider-section.image-move .owl-item .item { + overflow: hidden; +} + +.slider-section.image-move .owl-item .item>img { + display: block; + width: 100%; + height: 100%; + -webkit-transform-style: flat; + transform-style: flat; + -webkit-transition: all 20s; + transition: all 20s; + transition-timing-function: linear; +} + +.slider-section.image-move .owl-item:nth-child(even) .item>img { + -webkit-transform: scale(1.4); + transform: scale(1.4); + -webkit-transform-origin: bottom right; + transform-origin: bottom right; +} + +.slider-section.image-move .owl-item:nth-child(odd) .item>img { + -webkit-transform: scale(1.1); + transform: scale(1.1); + -webkit-transform-origin: bottom left; + transform-origin: bottom left; +} + +.slider-section.image-move .owl-item.active:nth-child(even) .item>img { + -webkit-transform: scale(1.1); + transform: scale(1.1); +} + +.slider-section.image-move .owl-item.active:nth-child(odd) .item>img { + -webkit-transform: scale(1.4); + transform: scale(1.4); +} + +.main-slider { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + width: 100%; + height: 100%; + z-index: 0; + background: rgba(0, 0, 0, 0.5); +} + +.main-table { + overflow: hidden; + display: table; + width: 100%; + height: 100%; +} + +.main-table-cell { + display: table-cell; + vertical-align: middle; +} + +.main-slider div.main-content { + position: relative; + max-width: 45rem; + width: 100%; + margin-top: 4rem; + margin-bottom: 8rem; +} + +.main-slider .text-left { + margin-right: auto; +} + +.main-slider .text-center { + margin: auto; +} + +.main-slider .text-right { + margin-left: auto; +} + +.main-content h4 { + margin-bottom: 1rem; + display: inline-block; + position: relative; + font-size: 20px; + font-weight: 500; + border: 1px solid rgba(255, 255, 255, 0.2); + padding: 6px 10px; + color: var(--bs-white); + background-color: rgba(255, 255, 255, 0.2); +} + +.main-content h4 span { + background-color: var(--bs-primary); + color: var(--bs-white); + padding: 0px 6px; + text-align: center; + margin-right: 5px; +} +.main-content:not(.text-right) h4 {} + +.main-content.text-right h4 {} + +.main-content h1 { + font-size: 4.5rem; + margin-bottom: 1rem; +} + + +.main-content h1 .primary{ + color: var(--bs-primary); +} + +.main-content p { + font-weight: 400; + font-size: 1.125rem; + margin-bottom: 1.75rem; +} + +.main-content .btn:not(.btn-play) { + margin-right: 1.12rem; +} + +.btn.btn-play { + text-decoration: none; + color: var(--bs-white); + vertical-align: middle; + box-shadow: none; +} + +.btn.btn-play span.btn { + vertical-align: baseline; + text-align: center; + width: 2.375rem; + height: 2.375rem; + padding: 0; + position: relative; + z-index: 0; + line-height: 2.375rem; +} + +.btn.btn-play span.btn:after, +.btn.btn-play span.btn:before { + content: ""; + display: block; + position: absolute; + top: 0; + right: 0; + z-index: -1; + bottom: 0; + left: 0; + border-radius: 50%; + border: 1px solid var(--bs-white); +} + +.btn.btn-play span.btn:before { + -webkit-animation: ripple 2s linear infinite; + animation: ripple 2s linear infinite; +} + +.btn.btn-play span.btn:after { + -webkit-animation: ripple 2s linear 1s infinite; + animation: ripple 2s linear 1s infinite; +} + +.btn.btn-play i { + margin-left: 0.25rem; +} + +.owl-carousel { + position: relative; + z-index: 0; +} + +.home-slider .owl-nav { + margin: 0; +} + +.home-slider div.owl-nav button[class*=owl-] { + position: absolute; + top: 0; + bottom: 0; + margin: auto 0; + font-size: 36px; + opacity: 1; +} + +.home-slider div.owl-nav button[class*=owl-]:after { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: var(--bs-secondary); + border-radius: 50px; + -webkit-transition: var(--bs-transition); + transition: var(--bs-transition); + z-index: 0; +} + +.home-slider .owl-nav .owl-prev { + right: auto; + left: 1.5rem; +} + +.home-slider .owl-nav .owl-next { + left: auto; + right: 1.5rem; +} + +.owl-theme div.owl-nav [class*=owl-] { + width: 60px; + height: 60px; + line-height: 60px; + display: inline-block; + cursor: pointer; + text-align: center; + color: var(--bs-white); + background: none; + outline: none; + -webkit-transition: var(--bs-transition); + transition: var(--bs-transition); +} + +.owl-theme:not(.home-slider) .owl-nav { + width: 100%; + margin: 1.5625rem auto 0 auto; +} + +.owl-theme .owl-nav button[class*=owl-]:hover { + width: 61px; + color: var(--bs-white); +} + +.owl-theme .owl-nav button[class*=owl-]:hover:after { + background-color: var(--bs-primary); +} + +.owl-theme .owl-nav button[class*=owl-] i { + color: var(--bs-white); + position: relative; + z-index: 1; +} + +.owl-theme .owl-nav .owl-prev i { + margin-left: 0; +} + +.owl-theme .owl-nav .owl-next i { + margin-right: -0.125rem; +} + +.owl-dot-1 .home-slider .owl-dots { + list-style: none; + margin: 0; + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + gap: 10px; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + position: absolute; + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + right: 5.5%; + padding: 20px 0; +} + +.owl-dot-1 .home-slider .owl-dots button { + border-radius: 50px; + width: 30px; + height: 30px; + border: unset; + background-color: var(--bs-primary); + color: #fff; +} + +.owl-dot-1 .home-slider .owl-dots:before,.home-slider .owl-dots:after { + content: ""; + position: absolute; + width: 2px; + height: 77px; + left: 50%; + margin-left: -1px; +} + +.owl-dot-1 .home-slider .owl-dots:before { + background: -webkitGradient(linear, left top, left bottom, from(#fff), to(rgba(1, 15, 52, .7))); + background: linear-gradient(0deg, #fff, #010f34b3); + bottom: 100%; +} + +.owl-dot-1 .home-slider .owl-dots:after { + background: -webkitGradient(linear, left bottom, left top, from(#fff), to(rgba(1, 15, 52, .7))); + background: linear-gradient(180deg, #fff, #010f34b3); + top: 100%; +} + +.owl-dot-1 .home-slider .owl-dot.active, +.owl-dot-1 .home-slider .owl-dot:hover, +.owl-dot-1 .home-slider .owl-dot.focus { + background: var(--bs-white); + color: var(--bs-secondary); + outline: none; +} + + +.owl-dot-2 .owl-dots button span{ + display: none !important; +} + +.owl-dot-2 .owl-dots button{ + position: relative; + display: inline-block; + width: 15px; + height: 15px; + border: 3px solid #fff; + background: var(--bs-secondary); + border-radius: 50%; + background: transparent; + cursor: pointer; + margin: 0px 6px; + box-shadow: 0px 0px 0px 3px var(--bs-secondary); + transition: all 500ms ease; +} + +.owl-dot-2 .owl-dots button:hover, +.owl-dot-2 .owl-dots button:focus, +.owl-dot-2 .owl-dots button.active{ + background: var(--bs-primary); + outline: none; +} + +.homepage-3 .main-slider div.main-content { + margin-top: 0; + margin-bottom: 0; +} + +.homepage-3 .home-slider div.owl-nav button[class*=owl-] { + transform: translateY(0); +} + + +.owl-nav-2 .home-slider div.owl-nav button[class*=owl-]:after { + content: ""; + position: absolute; + inset: 0; + mask-image: url(../images/btn-circle.svg); + mask-size: 100% 100%; + background-color: var(--bs-white); + border-radius: unset; +} + +.owl-nav-2 .home-slider div.owl-nav button .icon { + height: 19px; + width: 55px; + display: inline-block; + background: var(--bs-white); + mask-image: url(../images/btn-arrow-icon.svg); + mask-size: cover; + position: absolute; + right: -12px; + top: calc(50% - 9.5px); + transition: 0.4s; +} + +.owl-nav-2 .owl-theme div.owl-nav [class*=owl-] { + width: 80px; + height: 80px; +} +.owl-nav-2 .owl-theme div.owl-nav .owl-next{ + transform: rotate(-180deg); +} + +.owl-nav-2 .home-slider div.owl-nav button:hover .icon { + right: 0; +} +/*===== // =====*/ + + +/*===== 07. Heading Section =====*/ + +.heading-design-1 .theme-main-heading .title { + color: var(--bs-primary); + position: relative; + font-size: 17px; + line-height: 1; + display: inline-block; + font-weight: 600; + z-index: 2; + padding: 10px 14px; + border-radius: 5px; + border: 4px solid; + margin-bottom: 15px; + animation-name: bounce_two; + animation-timing-function: ease; + animation-duration: 2s; + animation-iteration-count: infinite; + transform-origin: bottom; +} + +@keyframes bounce_two { + 0% { + transform: scale(1, 1) translateY(0) + } + + 10% { + transform: scale(1.1, .9) translateY(0) + } + + 30% { + transform: scale(.9, 1.1) translateY(-1.375rem) + } + + 50% { + transform: scale(1, 1) translateY(0) + } + + 57% { + transform: scale(1, 1) translateY(-0.1875rem) + } + + 64% { + transform: scale(1, 1) translateY(0) + } + + 100% { + transform: scale(1, 1) translateY(0) + } +} + +.heading-design-1 .theme-main-heading .title:before { + background: var(--bs-primary); + content: ""; + width: 30px; + height: 100%; + position: absolute; + left: 0; + top: 0; + opacity: 0.3; +} + +.heading-design-1 .theme-main-heading h2 { + position: relative; + z-index: 0; +} + +.heading-design-1 .theme-main-heading h2 span { + -webkit-text-fill-color: var(--bs-primary-light); + -webkit-text-stroke-width: 1px; + font-weight: 800; +} + + +.heading-design-1 .theme-main-heading.theme-white-heading h2 span { + -webkit-text-fill-color: var(--bs-primary); + color: var(--bs-white); +} + + +.heading-design-1 .theme-main-heading p { + margin-bottom: 0; + font-weight: 500; +} + + +.theme-white-heading, +.theme-white-heading .title { + color: var(--bs-white); +} + +.heading-design-1 .theme-white-heading .title:before { + background: var(--bs-white); +} + +.color-primary { + color: var(--bs-primary); +} + + +.heading-design-2 .theme-main-heading .title { + border: none; + border-radius: 4px; + color: var(--bs-primary); + background-color: transparent; + background-image: linear-gradient(180deg, var(--bs-primary-light) 0%, var(--bs-primary-light) 100%); + padding: 5px 20px 5px 20px; + margin-bottom: 1rem; + display: inline-flex; + gap: 10px; + align-items: center; + font-size: 18px; + font-weight: 600; + line-height: 1.2; + animation-name: bounce_two; + animation-timing-function: ease; + animation-duration: 2s; + animation-iteration-count: infinite; + transform-origin: bottom; +} + +.heading-design-2 .theme-main-heading .title .htdot { + height: 8px; + width: 8px; + border-radius: 50px; + display: inline-block; + background: var(--bs-primary); +} + +.heading-design-2 .theme-main-heading .subtitle { + position: relative; +} + +/*===== // =====*/ + +/*===== Info Section =====*/ +.info-section { + margin-bottom: 1.25rem; + position: relative; +} +.info-section .info-box-inner { + box-shadow: 0px 9px 75px rgba(8, 20, 44, 0.09); +} +.info-section .info-image-box{ + position: relative; + overflow: hidden; +} +.info-section .info-box-inner img { + width: 100%; + transition: all .4s ease; +} +.info-section .content-box { + position: relative; + padding: 38px 30px 32px; + background-color: var(--bs-white); +} + +.info-section .info-box-icon { + position: absolute; + top: -60px; + left: 30px; + z-index: 1; + width: 80px; + height: 80px; + text-align: center; + line-height: 80px; + background-color: var(--bs-white); + box-shadow: 0 0px 15px rgba(0,0,0,.1); + border-radius: 50%; + margin-bottom: 0; + transition: all .3s ease; + color: var(--bs-primary); +} +.info-section .info-box-icon i { + font-size: 40px; + transition: all .3s ease; + line-height: 80px; +} +.info-section .info-box-title { + margin-top: 0; + margin-bottom: 10px; + position: relative; + z-index: 1; +} +.info-section .info-box-title a { + color: var(--bs-secondary); + text-decoration: none; +} +.info-section .info-content { + margin-bottom: 22px; +} +.info-section .content-box:before{ + content: ""; + position: absolute; + top: -30px; + left: 0; + width: 100%; + height: 70px; + background-color: var(--bs-white); + transform: skewY(-9deg); +} +.info-section .content-box:after{ + content: ""; + position: absolute; + top: -38px; + left: 0; + width: 100%; + border: 5px solid var(--bs-gray); + transform: skewY(-9deg); + transition: all .3s ease; +} + +.info-section .col-lg-6 .content-box:before { + content: ""; + position: absolute; + top: -55px; + left: 0; + width: 100%; + height: 80px; + background-color: var(--bs-white); + transform: skewY(-4deg); +} + +.info-section .col-lg-6 .content-box:after { + content: ""; + position: absolute; + top: -62px; + left: 0; + width: 100%; + border: 5px solid var(--bs-gray); + transform: skewY(-4deg); + ransition: all .3s ease; +} +.info-section .info-box-inner:hover .content-box:after{ + border-color: var(--bs-primary); + +} +.info-section .info-box-inner:hover .info-box-icon{ + background-color: var(--bs-primary); + transform: translateY(-10px); + color: var(--bs-white); + transition: all .4s ease; +} +.info-section .info-box-inner:hover .info-image-box img { + -webkit-transform: scale(1.1); + transform: scale(1.1); +} +.info-section .info-box-inner:hover .info-box-title a { + color: var(--bs-primary); +} + +/*===== /Info section-2 End/ =====*/ + + +/*========================================= +Service Section +=========================================*/ +.service-section{ + position: relative; +} +.service-section .service-inner-box { + position: relative; + box-shadow: 0 0px 15px rgba(0,0,0,.1); + background-color: var(--bs-white); + padding: 10px 10px 25px; +} +.service-section .service-image-box { + position: relative; + text-align: center; + overflow: hidden; +} +.service-section .service-image-box .img-fluid { + width: 100%; + transition: all .4s ease; +} +.service-section .service-icon{ + position: absolute; + top: 50%; + left: 0; + right: 0; + margin: 0 auto; + transform: translateY(-38px); + width: 78px; + height: 78px; + background-color: var(--bs-primary); + line-height: 80px; + text-align: center; + border-radius: 50%; +} +.service-section .service-icon i{ + color: var(--bs-white); + font-size: 38px; + line-height: 78px; + display: inline-block; + transition: all .3s ease; +} +.service-section .content-box { + position: relative; + text-align: center; + padding: 40px 16px 0; +} +.service-section .content-box .service-title { + padding: 8px 12px; + position: absolute; + top: -23px; + left: 50%; + width: max-content; + background-color: #fff; + margin-bottom: 0; + transform: translateX(-50%); + box-shadow: 0 0px 15px rgba(0,0,0,.1); +} + +.service-section .content-box .service-title a { + color: var(--bs-secondary); + font-weight: 600; + text-decoration: none; +} + +.service-section .service-excerpt { + margin-bottom: 1rem; +} + +.service-section a.read-link { + font-size: 0px; + transition: all linear .3s; + display: flex; + justify-content: center; + align-items: center; + border-bottom: none; + margin-top: 25px; + text-decoration: none; +} + +.service-section .read-link i { + font-size: 20px; + margin-left: 0; + transition: all linear .3s; + width: 50px; + height: 50px; + color: var(--bs-white); + background: var(--bs-primary); + border-radius: 50px; + text-align: center; + line-height: 2.5; +} + +.service-section .service-inner-box:hover .read-link{ + font-size: 16px; +} + +.service-section .service-inner-box:hover .read-link i { + width: 30px; + height: 30px; + line-height: 30px; + margin-left: 5px; +} + +.service-section .service-inner-box:hover .service-img img { + -webkit-transform: scale(1.1); + transform: scale(1.1); +} +.service-section .service-inner-box:hover .service-icon i { + transform: scale(-1) rotate(180deg); +} +/*===== / Service Section-1 End / =====*/ + +/*========================================= +Features Section-2 Start +=========================================*/ +.abiz-features-section-2{ + background: url(../../assets/images/features.jpg) no-repeat fixed center center / cover rgb(0 0 0 / 0.7); + background-blend-mode: multiply; +} +.abiz-features-section-2 .feature-single-item { + border: 1px solid rgba(255, 255, 255, 0.3); + padding: 20px; + padding-top: 0; + border-radius: 8px; + text-align: center; + cursor: pointer; + position: relative; + margin-bottom: 15px; +} + +.abiz-features-section-2 .feature-icon-box { + width: 70px; + height: 70px; + line-height: 70px; + text-align: center; + border-radius: 50%; + -webkit-transition: 1s; + transition: 1s; + margin: 0 auto; + background: -webkit-gradient(linear, left top, left bottom, color-stop(-210.71%, var(--bs-primary)), to(var(--bs-white))); + background: linear-gradient(180deg, var(--bs-primary) -210.71%, var(--bs-white) 100%); + margin-top: -30px; + -webkit-transition: 1s; + transition: 1s; +} + +.abiz-features-section-2 .feature-icon-box img { + height: 70px; + width: 70px; + border-radius: 100%; +} + +.abiz-features-section-2 .feature-icon-box i { + font-size: 2rem; + line-height: 2.2; +} + +.abiz-features-section-2 .feature-single-item h5 { + color: var(--bs-primary); + margin-top: 15px; +} + +.abiz-features-section-2 .feature-single-item h5 a { + text-decoration: none; +} + +.abiz-features-section-2 .feature-single-item p { + color: var(--bs-white); +} +.abiz-features-section-2 .feature-single-item:hover .feature-icon-box { + background: var(--bs-primary); + -webkit-transform: rotateY(360deg); + transform: rotateY(360deg); + color: var(--bs-white); +} +.abiz-features-section-2 .shape-top { + position: absolute; + top: 50%; + right: 50%; + opacity: 0; + visibility: hidden; + -webkit-transition: all 0.3s ease-in-out; + transition: all 0.6s ease-in-out; +} +.abiz-features-section-2 .shape-bottom { + position: absolute; + bottom: 50%; + left: 50%; + opacity: 0; + visibility: hidden; + -webkit-transition: all 0.3s ease-in-out; + transition: all 0.6s ease-in-out; +} +.abiz-features-section-2 .feature-single-item:hover .shape-top{ + top: -1px; + right: -1px; + opacity: 1; + visibility: visible; +} + +.abiz-features-section-2 .feature-single-item:hover .shape-bottom{ + position: absolute; + bottom: -1px; + left: -1px; + opacity: 1; + visibility: visible; +} + +.abiz-features-section-2 .button-icon{ + display:none; +} + +/*===== /Features Section-2 End / =====*/ + +/*===== 14. Blog Post =====*/ + +.post-section { + position: relative; + overflow: hidden; +} + +.blog-carousel .owl-stage { + margin: 15px 0; +} + +.post-grid { + background: none; + box-shadow: none; + clear: both; +} + +.post-grid .author-name > a:not(:hover):not(:focus) { + color: var(--bs-secondary); +} + +.post-grid:not(.post-single):hover .author-name > a:not(:hover):not(:focus), +.post-grid:not(.post-single):focus-within .author-name > a:not(:hover):not(:focus) { + color: var(--bs-white); +} + +span.post-underline { + display: block; + border-width: 0; + border-bottom-width: 3px; + border-style: dotted; + border-color: var(--bs-gray-500-thumb); + height: 4px; + position: relative; + background: none; + margin-bottom: 1.65rem; +} + +.post-grid .post-title { + padding-bottom: 1.55rem; + margin-bottom: 2rem; +} + +.post-job .post-title { + padding-bottom: 0; + margin-bottom: 0.5rem; + border-bottom: 0; +} + +span.post-underline:after, +.post-items:not(.latest_posts):not(.post-job) .post-title:after { + content: ""; + position: absolute; + bottom: -10px; + left: 0; + width: 100%; + border-width: inherit; + border-bottom-width: inherit; + border-style: inherit; + border-color: inherit; +} + +.post-title a { + text-decoration: none; +} + +.post-title a:not(:hover):not(:focus) { + color: var(--bs-secondary); +} + +.post-items p { + font-weight: 500; +} + +.post-items p { + display: block; + word-break: break-word; + position: relative; + margin-bottom: 1.25rem; +} + +.post-items p > img { + border-radius: 10px; + width: 95%; + margin: auto; +} + +.post-items p + blockquote { + margin-top: 1.7rem; +} + +.post-image { + width: 100%; + position: relative; + overflow: hidden; + z-index: 0; +} + +.post-image-absolute { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + border-radius: 10px; + overflow: hidden; + opacity: 0; + visibility: hidden; + z-index: 0; + -webkit-transition: var(--bs-transition); + transition: var(--bs-transition); +} + +.post-image-absolute:after { + content: ""; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: var(--bs-secondary-dark); + opacity: 0.7; + z-index: 0; +} + +.post-image-absolute .featured-image, +.post-image-absolute .featured-image a { + width: 100%; + height: 100%; +} + +.featured-image a.post-hover { + position: relative; + z-index: 0; + display: block; + overflow: hidden; +} + +.post-image-absolute .featured-image img { + height: 100%; + object-fit: cover; + object-position: center; +} + +.post-image .post-meta { + position: absolute; + top: 30px; + right: 30px; + left: 30px; + margin: 0 auto; + text-align: right; + z-index: 0; +} + +.post-content { + position: relative; + width: 100%; + padding: 40px 20px 30px; + border-radius: inherit; + z-index: 0; + -webkit-transition: var(--bs-transition); + transition: var(--bs-transition); +} + +.post-grid .post-content { + background-color: var(--bs-white); + box-shadow: 0px 0px 20px 0px rgba(33, 68, 98, 0.19); +} + +.post-grid .post-image + .post-content { + width: 90%; + margin: auto; + margin-top: -2.5rem; +} + +.post-items:not(.post-single) .post-content:before { + position: absolute; + content: ''; + left: 0; + right: 0; + bottom: 0; + top: 0; + background-color: var(--bs-secondary); + opacity: 0; + -webkit-transition: .5s; + transition: .5s; + -webkit-transform: perspective(400px) rotateX(-90deg); + transform: perspective(400px) rotateX(-90deg); + -webkit-transform-origin: top; + transform-origin: top; + border-radius: inherit; + z-index: -1; +} + +.post-items:not(.latest_posts):hover .post-content:before, +.post-items:not(.latest_posts):focus-within .post-content:before { + -webkit-transform: perspective(400px) rotateX(0deg); + transform: perspective(400px) rotateX(0deg); + opacity: 1; +} + +.post-items .post-image-absolute + .post-content:before { + display: none; +} + +.post-grid .post-image { + border-radius: inherit; +} + +a.more-link { + background-color: var(--bs-primary); + color: var(--bs-white); + text-decoration: none; + padding-right: 3.75rem; + position: relative; +} + +a.more-link:after { + content: "\f061"; + font-family: var(--bs-font-awesome); + position: absolute; + top: 0; + right: 6px; + bottom: 0; + margin: auto 0; + width: 36px; + height: 36px; + line-height: 36px; + font-size: 1.125rem; + text-align: center; + background-color: var(--bs-white); + color: var(--bs-primary); + border-radius: 100%; + -webkit-transition: var(--bs-transition); + transition: var(--bs-transition); + z-index: 0; +} + +a.more-link:hover:after, +a.more-link:focus:after { + transform: rotate(360deg); + color: var(--bs-primary); + background-color: var(--bs-secondary); +} + +a.more-link:hover, +a.more-link:focus { + color: var(--bs-white); + background-color: var(--bs-primary); +} + +.blog-post-content .post-meta.list-item li { + display: inline-block; +} + +.blog-post-content .post-meta.list-item li:not(:last-child) { + margin-right: 10px; +} + +.post-meta { + margin-bottom: 1rem; +} + +.post-meta > div:not(.post-line) { + width: 100%; + align-items: flex-start; +} + +.post-grid .post-meta > div:not(.post-line) { + justify-content: flex-start; + position: relative; +} + +.post-grid .post-meta > div:not(.post-line) > span:not(:first-child) { + position: relative; + padding-left: 6px; + margin-left: 2px; +} + +.post-grid .post-meta > div:not(.post-line) > span:not(:first-child):after { + content: "/"; + position: absolute; + top: 0; + left: 0; + color: var(--bs-secondary); + -webkit-transition: var(--bs-transition); + transition: var(--bs-transition); +} + +.post-grid:hover .post-meta > div:not(.post-line) > span:not(:first-child):after, +.post-grid:focus-within .post-meta > div:not(.post-line) > span:not(:first-child):after { + color: var(--bs-white); +} + +.post-meta a { + text-decoration: none; + color: inherit; +} + +.post-meta .post-date a { + line-height: 1.1; + font-weight: 600; +} + +.post-items:not(.post-grid) .post-meta .post-date a { + display: flex; + align-items: center; + justify-content: flex-start; +} + +.post-items:not(.post-grid):not(:hover):not(:focus-within) .post-meta .post-date a:not(:hover):not(:focus) { + color: var(--bs-secondary); +} + +.post-items:not(.post-grid) .post-meta .post-date span { + font-size: 3.125rem; + line-height: 0.65; + display: inline-block; + font-weight: bold; + margin-right: 0.625rem; +} + +.author-name > a { + display: flex; + flex-wrap: wrap; + align-items: center; +} + +.author-name .author-image { + width: 50px; + height: 50px; + border-radius: 100%; + display: inline-block; + background-size: cover; + background-repeat: no-repeat; + background-position: center center; + border: 1px solid #fefefe; +} + +.widget_rss .rss-date:not(.icon) { + position: relative; + padding-left: 16px; +} + +.widget_rss .rss-date:not(.icon):before { + content: ''; + width: 6px; + height: 6px; + background-color: var(--bs-primary); + position: absolute; + left: 0; + top: 0; + bottom: 0; + margin: auto 0; + border-radius: 50%; +} + +.count-link { + position: absolute; + right: -16px; + top: -35px; + width: 50px; + height: 50px; + font-size: 0.75rem; + font-weight: 600; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + border-radius: 8px; + background-color: var(--bs-white); + box-shadow: 0px 0px 7.52px 0.48px rgba(33, 33, 33, 0.23); + -webkit-transition: var(--bs-transition); + transition: var(--bs-transition); +} + +.count-link i { + margin-bottom: 3px; +} + +.count-link a, +.count-link i { + line-height: 1; + color: var(--bs-secondary-dark); + -webkit-transition: var(--bs-transition); + transition: var(--bs-transition); +} + +.post-meta ul { + padding: 0; + list-style: none; + margin: 0; +} + +.post-meta ul li a:not(:nth-child(2)) { + margin-left: 6px; +} + +.post-meta ul li a:first-child { + display: none; +} + +.post-line a { + color: var(--bs-white); + text-decoration: inherit; +} + +.post-line { + color: var(--bs-white); + background-color: var(--bs-primary); + font-size: 1rem; + font-weight: 600; + padding: 6px 15px; + border-radius: 6.25rem; + display: inline-block; + line-height: 1.15; + position: absolute; + top: -15px; + left: auto; +} + +.post-grid:not(:hover):not(:focus-within) .post-line { + background-color: var(--bs-secondary); +} + +.post-line a:hover, +.post-line a:focus { + color: var(--bs-white); +} + +.post-line > span:not(:last-child) { + margin-right: 10px; +} + +.post-line > span i { + margin-right: 2px; +} + +.post-items .widget_social_widget { + text-align: center; + margin: 1.5rem 0; +} + +.post-items .widget_social_widget .widget-title, +.post-items .widget_social_widget ul { + display: inline-block; + margin: 0; + vertical-align: middle; +} + +.post-items .widget_social_widget .widget-title { + margin-right: 15px; +} + +.post-items .widget_social_widget li a { + color: var(--bs-white); + background-color: var(--bs-secondary); +} + +.post-items .widget_social_widget li a:hover, +.post-items .widget_social_widget li a:focus { + color: var(--bs-white); + background-color: var(--bs-primary); +} + +.post-items:hover .post-image-absolute, +.post-items:focus-within .post-image-absolute { + opacity: 1; + visibility: visible; +} + +.post-items:not(.latest_posts):not(.post-single):hover p, +.post-items:not(.latest_posts):not(.post-single):hover .post-title a:not(:hover):not(:focus), +.post-items:not(.latest_posts):not(.post-single):hover .post-date a:not(:hover):not(:focus), +.post-items:not(.latest_posts):not(.post-single):focus-within p, +.post-items:not(.latest_posts):not(.post-single):focus-within .post-title a:not(:hover):not(:focus), +.post-items:not(.latest_posts):not(.post-single):focus-within .post-date a:not(:hover):not(:focus) { + color: var(--bs-white); +} + +.post-items:hover span.post-underline, +.post-items:focus-within span.post-underline, +.post-items:not(.latest_posts):not(.post-job):not(.post-single):hover .post-title, +.post-items:not(.latest_posts):not(.post-job):not(.post-single):focus-within .post-title { + border-color: var(--bs-white); +} + +.post-items:not(.post-single):hover .count-link a, +.post-items:not(.post-single):hover .count-link i, +.post-items:not(.post-single):focus-within .count-link a, +.post-items:not(.post-single):focus-within .count-link i { + color: var(--bs-white); +} + +.post-items:not(.post-single):hover .count-link, +.post-items:not(.post-single):focus-within .count-link { + background-color: var(--bs-primary); + color: var(--bs-white); +} + +.post-single .post-title { + border-color: var(--bs-gray); + font-size: 2rem; +} + +.post-items blockquote { + width: 82.563%; + margin: auto; + text-align: center; +} + +.post-items .widget { + width: 60%; + margin: auto; +} + +/*===== // =====*/ + +/*========================================= +Footer Section +=========================================*/ + +.main-footer { + position: relative; + color: var(--bs-white); + background-repeat: no-repeat; + background-position: center top; + background-size: cover; + padding-top: 50px; +} + +.main-footer .gallery-item { + border: 1px solid #202052; +} + +.main-footer .gallery-item figcaption:before { + font-size: 0.5rem; +} + +.footer-main { + padding-top: 50px; +} + +.footer-main .col { + border-top: 1px solid rgba(255, 255, 255, .2); + padding: 50px; +} + +.footer-main .col:not(:last-child) { + border-right: 1px solid rgba(255, 255, 255, .2); +} + +.footer-copyright .row { + border-top: 1px solid rgba(255, 255, 255, .2); +} + +.footer-main .contact-area { + align-items: baseline; +} + +.footer-main .contact-area:not(:last-child) { + margin-bottom: .75rem; +} + +.footer-main .contact-icon { + width: 16px; + height: auto; + font-size: 100%; + margin-right: 10px; +} + +.footer-main .contact-info .text { + line-height: 1.5; +} + +.footer-main .st-grid-dl dt:not(#sunday), +.footer-main .st-grid-dl dd:not(:last-child) { + border-bottom: 1px solid rgb(171 171 171 / 0.20); +} + +.footer-main .st-grid-dl dt#sunday, +.footer-main .st-grid-dl dd#closed { + color: var(--bs-primary); +} + +.footer-copyright { + color: #fff; + font-size: 16px; + line-height: 12px; +} + +.footer-copyright .widget-left img { + margin-bottom: 15px; + max-width: 180px; + margin-top: 10px; +} + + +.footer-copyright .copyright-text { + font-size: 1.17rem; + line-height: initial; +} + +.copyright-text a { + color: var(--bs-primary); +} + +.copyright-text a:not(:hover):not(:focus) { + text-decoration: none; +} + +.footer-copyright .widget_text .textwidget .logo { + margin-bottom: 0; +} + +.footer-copyright .widget-left { + min-height: 60px; + position: relative; +} + +.footer-copyright .col-lg-12 .widget-left .contact-icon-duplicate { + display: none; +} + +.footer-copyright .copyright-text, +.footer-copyright .menu { + margin-top: 1rem; +} + +.footer-copyright .menu li { + display: inline-block; + position: relative; +} + +.footer-copyright .menu li a { + color: var(--bs-white); + position: relative; + z-index: 0; + display: inline-block; + outline: none; +} + +.footer-copyright .menu li a:hover, +.footer-copyright .menu li a:focus{ + color: var(--bs-primary); +} + +.footer-copyright .menu li a:before{ + content: "\f324"; + font-family: var(--bs-font-awesome); + font-weight: 800; + position: absolute; + top: 9px; + bottom: 0; + left: -5px; + margin: auto 0; + color: var(--bs-primary); + transition: all .2s ease-in-out; +} + + +@media (min-width: 992px) { + .footer-copyright .col-lg-12 .widget-left { + padding-right: 60px; + } + .footer-copyright .col-lg-12 .widget-left .contact-icon-duplicate { + right: -50px; + display: flex; + } +} +.footer-copyright .col-lg-12 .widget-left { + justify-content: center; +} + +.footer-copyright .col-lg-12 .widget-left .widget.widget-contact { + position: relative; + z-index: 0; +} + +.footer-copyright .col-lg-12 .copyright-text { + padding: 20px 0; +} + +.footer-copyright .contact-area .contact-icon { + font-size: 1.563rem; + width: 44px; + height: 44px; + border-radius: 100%; + background-color: var(--bs-primary); + color: var(--bs-white); +} + +.footer-copyright .contact-area .contact-icon-duplicate { + font-size: 4rem; + color: var(--bs-primary); + position: absolute; + top: 0; + right: 15px; + bottom: 0; + margin: auto 0; + display: flex; + align-items: center; + -webkit-transform: scaleX(-1); + transform: scaleX(-1); + opacity: 0.15; +} + +.footer-copyright .contact-area .contact-icon:after, +.footer-copyright .contact-area .contact-icon:before { + content: ""; + display: block; + position: absolute; + top: 0; + right: 0; + z-index: -1; + bottom: 0; + left: 0; + border-radius: 50%; + background-color: var(--bs-primary); + opacity: 0.3; +} + +.footer-copyright .contact-area .contact-icon:before { + -webkit-animation: ripple 2s linear infinite; + animation: ripple 2s linear infinite; +} + +.footer-copyright .contact-area .contact-icon:after { + -webkit-animation: ripple 2s linear 1s infinite; + animation: ripple 2s linear 1s infinite; +} + +.footer-copyright .contact-area .title { + font-size: 1.563rem; + font-weight: 600; + color: var(--bs-white); +} + +.footer-copyright .contact-area .text { + font-size: 2.188rem; + font-weight: bold; +} + +.footer-copyright .contact-area a:not(:hover):not(:focus) { + color: var(--bs-white); +} + + + .footer-top .widget-contact { + display: flex; + align-items: center; + background-color: #FFFFFF0D; + justify-content: center; + border-style: solid; + border-width: 0px 0px 3px 0px; + border-color: var(--bs-white); + transition: background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s; + padding: 24px 15px 21px 15px; +} + .footer-top .widget-contact:hover { + border-color: var(--bs-primary); +} + +.footer-top .widget-contact .contact-icon { + margin-right: 25px; +} + +.footer-top .widget-contact .title { + font-weight: 600; + font-size: 20px; +} + +.footer-top .widget-contact .text, .footer-top .widget-contact .text a { + font-size: 18px; + color: #fff; +} + +.footer-top .widget-contact:hover .contact-icon:after{ + opacity: 1; + transform: scale(1.15); +} + +.footer-top-2 { + padding: 28px 0; + border-top: 2px solid var(--bs-secondary); + border-bottom: 2px solid var(--bs-secondary); + display: block; + position: relative; +} + +.footer-top-2 .footer-top-item { + display: flex; + align-items: center; + justify-content: space-between; +} + +.footer-top-2 .footer-top-item .footer-top-title { + font-weight: 700; + font-size: 20px; + line-height: 44px; + text-transform: uppercase; + color: var(--bs-primary); +} + +.footer-top-2 .footer-top-item .footer-item-link { + display: flex; + align-items: center; + gap: 25px; +} +.footer-top-2 .footer-top-item .footer-icon-wrap{ + position: relative; + display: flex; + align-items: center; + justify-content: center; + max-width: 70px; +} + +.footer-top-2 .footer-top-item .footer-icon-wrap .icon-1 { + font-size: 32px; + color: var(--bs-primary); + position: relative; + z-index: 1; + transition: all 0.4s ease; +} + +.footer-top-2 .footer-top-item .footer-icon-wrap .icon-2 { + position: absolute; + font-size: 70px; + color: var(--bs-white); + transition: all 0.4s ease; +} +.footer-top-2 .footer-top-item .footer-item-link a { + font-weight: 600; + font-size: 34px; + font-size: 28px; + line-height: 44px; + color: var(--bs-white); + transition: all 0.4s ease; + -webkit-transition: all 0.4s ease; +} +.footer-top-item:after { + content: ""; + position: absolute; + width: 2px; + height: 100%; + background: var(--bs-secondary); + top: 50%; + left: 50%; + transform: translate(-50%, -50%); +} + +.footer-main .about-addresss i { + margin-right: 10px; +} + + +.footer-main .wp-block-calendar thead tr th { + background-color: var(--bs-primary); +} + +.footer-main .wp-block-calendar td, .footer-main .wp-block-calendar th { + color: var(--bs-white); +} + +/*===== Footer Section End =====*/ + +/*=============== Contact-Area Start =============*/ + +.contact-area { + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; +} + +.contact-icon { + display: flex; + align-items: center; + background: var(--bs-primary); + justify-content: center; + -ms-flex-negative: 0; + flex-shrink: 0; + position: relative; + z-index: 1; + font-size: 30px; + width: 55px; + height: 55px; + line-height: 55px; + margin-right: 30px; + border-radius: 50px; + color: var(--bs-white); + -webkit-transition: var(--bs-transition); + transition: var(--bs-transition); +} +.contact-icon:after { + pointer-events: none; + position: absolute; + width: 100%; + height: 100%; + border-radius: 50%; + content: ''; + box-sizing: content-box; + box-shadow: 0 0 0 3px #fff; + top: 0; + left: 0; + opacity: 0; + transition: 300ms; +} +.contact-area .contact-icon i, +.contact-area .contact-icon img { + color: inherit; + display: inline-block; + vertical-align: baseline; + -webkit-transform: translateZ(0); + transform: translateZ(0); + box-shadow: 0 0 1px rgba(0, 0, 0, 0); + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -moz-osx-font-smoothing: grayscale; +} + +.contact-area:hover .contact-icon i, +.contact-area:hover .contact-icon img, +.contact-area:focus-within .contact-icon i, +.contact-area:focus-within .contact-icon img { + /*-webkit-animation: buzz-out 1.25s linear infinite;; + animation: buzz-out 1.25s linear infinite;;*/ +} + +.contact-info { + display: inline-block; + text-align: left; + color: inherit; +} + +.contact-info .text { + margin-bottom: 0; + line-height: normal; + font-weight: 500; +} + +.contact-info .title { + font-weight: 500; + font-size: 1.325rem; + line-height: 1.4; + margin-bottom: 1px; +} + +.contact-info .btn-link { + text-decoration: none; + box-shadow: none; + padding: 0; + font-weight: 700; +} + +.contact-info .btn-link:not(:hover):not(:focus) { + color: var(--bs-secondary); +} + +.contact-btn { + display: inline-block; + overflow: hidden; + margin-top: 2rem; +} + +.contact-btn .read-link:after { + content: "\f061"; + height: 0.9375rem; + width: 0.9375rem; + border-radius: 1.25rem; + background-color: var(--bs-secondary); + color: var(--bs-white); + font-size: 0.625rem; +} + +.contact-btn .read-link:hover, +.contact-btn .read-link:focus { + color: var(--bs-primary); +} + +.contact-btn .read-link:hover:after, +.contact-btn .read-link:focus:after { + background-color: var(--bs-primary); + color: var(--bs-white); +} + +/* ------------ Contact Area End --------- */ + + +/*========================================= +Page Scroller +=========================================*/ +.scrollingUp { + position: fixed; + bottom: 55px; + right: 30px; + background: 0 0; + color: var(--bs-primary); + width: 46px; + height: 46px; + line-height: 46px; + text-align: center; + transition: .9s; + border-radius: 100%; + font-size: 30px; + border: none; + z-index: 5; + overflow: visible; + visibility: hidden; + opacity: 0; + box-shadow: inset 0 0 0 2px var(--bs-primary-light) !important; +} + +button.scrollingUp:hover, +button.scrollingUp:focus { + outline: none; + color: var(--bs-primary); + background: 0 0; +} + +.scrollingUp.is-active { + visibility: visible; + opacity: 1; +} + +.scrollingUp i { + transform: translateY(-2px); +} + +.scrollingUp svg { + position: absolute; + top: 0; + left: 0; + width: 46px; + height: 46px; + transform: rotate(-90deg); +} + +.scrollingUp circle { + stroke-width: 2; + fill: none; + stroke: var(--bs-primary); + stroke-dasharray: 262px; + box-sizing: border-box; + transition: all 200ms linear!important; +} +/*===== // =====*/ + + +/*===== 21. Breadcrumb =====*/ + +.breadcrumb-area { + width: 100%; + position: relative; + z-index: 2; + height: auto; + display: block; + min-height: 260px; + background-size: 100%; + background-color: var(--bs-secondary); +} + +.breadcrumb-area:after { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + background: linear-gradient(90deg, var(--bs-primary) 23%, rgba(10, 19, 79, .807) 55%, rgba(10, 19, 79, .555) 60%, rgba(10, 19, 79, .421)); + opacity: 0.75; + transition: var(--bs-transition); + z-index: -1; +} + +.breadcrumb-content { + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + width: 100%; + height: 100%; + padding: 30px; + min-height: 260px; + color: var(--bs-white); +} + +.breadcrumb-heading { + -ms-flex-direction: column; + flex-direction: column; + -ms-flex-align: start; + align-items: flex-start; + -ms-flex-pack: center; + justify-content: center; + padding: 0; + width: 100%; + max-width: 50%; +} + +.breadcrumb-list { + flex-shrink: 0; + list-style: none; + width: 100%; + max-width: 50%; + padding: 0; + margin: 0; +} + +.breadcrumb-list li { + display: inline-block; + word-break: break-word; + font-weight: 600; + font-size: 1.125rem; +} + +.breadcrumb-list li a { + color: var(--bs-white); + text-decoration: none; +} + +.breadcrumb-list li:not(:first-child) { + margin-left: 0.35rem; +} + +.breadcrumb-list li i { + vertical-align: baseline; + width: 2.25rem; + height: 2.25rem; + line-height: 2.25rem; + font-size: 1rem; + background-color: var(--bs-white); + color: var(--bs-primary); + border-radius: 6.25rem; + text-align: center; + -webkit-transition: var(--bs-transition); + transition: var(--bs-transition); +} + +.breadcrumb-content .breadcrumb-list li a:hover i, +.breadcrumb-content .breadcrumb-list li a:focus i { + color: var(--bs-white); + background: var(--bs-secondary); + transform: rotate(360deg); +} + +.breadcrumb-center .breadcrumb-content { + -ms-flex-direction: column; + flex-direction: column; + justify-content: center; + margin: auto; +} + +.breadcrumb-center .breadcrumb-content { + padding: 30px 0 0; +} + +.breadcrumb-center .breadcrumb-heading { + text-align: center; + margin-bottom: 0.75rem; +} + +.breadcrumb-list { + text-align: center; + max-width: max-content; + display: inline-block; + padding: 0.438rem 0.834rem 0.438rem 0.5rem; + border-radius: 6.25rem; + background-color: var(--bs-primary); +} + +.breadcrumb-left .breadcrumb-content { + justify-content: space-between; +} + +.breadcrumb-right .breadcrumb-content { + flex-direction: row-reverse; + justify-content: space-between; +} + +.breadcrumb-right .breadcrumb-list, +.breadcrumb-left .breadcrumb-heading { + text-align: left; +} + +.breadcrumb-left .breadcrumb-list, +.breadcrumb-right .breadcrumb-heading { + text-align: right; +} + +/*===== // =====*/ + +/*===== 26. Pagination =====*/ + +.navigation.pagination, .woocommerce nav.woocommerce-pagination ul { + display: inline-flex; + margin: 0; + padding: 10px; + background-color: #fff; + border-radius: 40px; + box-shadow: 0 5px 25px 0 rgba(0, 0, 0, 0.5); +} + +nav.woocommerce-pagination ul, .pagination .nav-links { + display: inline-flex; +} + +.pagination .page-numbers:not(.dots), .woocommerce nav.woocommerce-pagination ul.page-numbers li .page-numbers { + font-weight: 600; + border-width: 2px; + border-style: solid; + border-color: transparent; + color: var(--bs-white); + background-color: var(--bs-secondary); + display: flow-root; + font-size: 16px; + line-height: 1.2; + min-width: 40px; + text-align: center; + padding: 0.532rem 0.35rem; + -webkit-transition: var(--bs-transition-slow); + transition: var(--bs-transition-slow); + vertical-align: baseline; + white-space: nowrap; + position: relative; + text-decoration: none; + border-radius: 6.25rem; + cursor: pointer; +} + +.pagination .page-numbers:not(.dots):after, +.woocommerce nav.woocommerce-pagination ul.page-numbers li .page-numbers:after { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + width: 92%; + height: 92%; + margin: auto; + border: 3px solid var(--bs-white); + border-radius: 6.25rem; +} + +.pagination .page-numbers.dots { + display: inline-block; + line-height: 16px; + font-size: 50px; + margin-right: 10px; +} + +.pagination .nav-links a:hover, +.pagination .nav-links a:focus, +.pagination .nav-links .page-numbers.current, +.woocommerce nav.woocommerce-pagination ul li a.page-numbers:focus, .woocommerce nav.woocommerce-pagination ul li a.page-numbers:hover, .woocommerce nav.woocommerce-pagination ul li span.page-numbers.current { + color: var(--bs-white); + background-color: var(--bs-primary); +} + +.woocommerce nav.woocommerce-pagination ul, .woocommerce nav.woocommerce-pagination ul li { + border: none; +} + + +.pagination .page-numbers:not(.dots):not(:last-child), +.woocommerce nav.woocommerce-pagination ul.page-numbers li:not(:last-child) .page-numbers { + margin-right: 7px; +} + +.pagination .page-numbers.next:hover, +.pagination .page-numbers.next:focus, +.pagination .page-numbers.prev:hover, +.pagination .page-numbers.prev:focus, +.woocommerce nav.woocommerce-pagination ul li a.next.page-numbers:focus, +.woocommerce nav.woocommerce-pagination ul li a.next.page-numbers:hover { + transform: rotate(360deg); +} + +.fx-post-pagination div.nav { + display: inline-flex; + align-items: center; +} + +.fx-post-pagination div.nav>span { + display: inline-block; + margin: 0 10px; + line-height: 40px; + padding: 0 10px; + font-weight: 700; +} + +.fx-post-pagination div.nav a { + display: inline-block; + color: var(--bs-white); + padding: 5px 25px; + font-weight: 600; + letter-spacing: 0.185px; + position: relative; + z-index: 0; + border-radius: 6.25rem; + background-color: var(--bs-primary); + vertical-align: middle; + display: inline-block; + padding: 0 20px; + line-height: 40px; + -webkit-transition: all 300ms ease; + -o-transition: all 300ms ease; + transition: all 300ms ease; +} + +/*===== // =====*/ + +/*===== 29. Author-Area =====*/ + +.author-details { + display: -ms-flexbox; + display: flex; + -ms-flex-direction: column; + flex-direction: column; + -ms-flex-align: center; + align-items: center; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + padding: 1.875rem; + border-radius: 10px; + overflow: hidden; + color: var(--bs-white); + background-color: var(--bs-secondary); +} + +.author-details .section-header { + width: 100%; + display: block; + margin-bottom: 1.5rem; +} + +.comments-title h3, +.comment-reply-title, +.author-details .section-header h3 { + line-height: 1; + font-size: 2rem; + padding-bottom: 1.25rem; + margin-bottom: 2.35rem; + border-width: 0; + border-bottom-width: 3px; + border-style: dotted; + border-color: var(--bs-gray-500-thumb); + position: relative; +} + +.comments-title h3:before, +.comment-reply-title:before, +.author-details .section-header h3:before { + content: ""; + position: absolute; + bottom: -10px; + left: 0; + width: 100%; + border-width: inherit; + border-bottom-width: inherit; + border-style: inherit; + border-color: inherit; +} + +.author-details .media { + width: 100%; + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; +} + +.author-details .media .auth-mata { + -ms-flex-item-align: start; + align-self: flex-start; + -ms-flex-negative: 1; + flex-shrink: 1; + -ms-flex-positive: 0; + flex-grow: 0; + margin-right: 1.25rem; + margin-top: 0; +} + +.author-details .media .auth-mata img { + width: 110px; + border-radius: 100%; + border: 1px solid rgb(222 222 222 / 0.10); +} + +.author-details .media .media-body { + flex: 1; +} + +.author-details h4, .author-details .author-widget { + display: inline-block; +} + +.author-details .widget_social_widget li a { + background-color: var(--bs-white); + color: var(--bs-primary); +} + +.author-details .media .media-body h5 { + letter-spacing: 0.25px; + vertical-align: baseline; +} + +.author-details .media .media-body h5 a:not(:hover):not(:focus) { + color: var(--bs-white); +} + +.author-details .media .media-body h5 span { + font-size: 1rem; +} + +.author-details .media .media-body h5 span, +.author-details .media .media-body p { + font-weight: 500; +} + +.author-details .media .media-body h5 span i { + font-size: 80%; + margin-right: 3px; +} + +.author-details a { + text-decoration: none; +} + +.author-details p { + display: block; + clear: both; +} + +.author-details .btn { + color: var(--bs-secondary); + font-weight: 700; + padding: 0.75rem 1.135rem; + font-size: 0.95rem; + letter-spacing: 0; +} + +.author-details .btn:hover, +.author-details .btn:focus { + border-color: var(--bs-white); +} + +/*===== // =====*/ + +/*===== 30. Comments-Area =====*/ + +.comment-form-rating { + display: block; + clear: both; + margin-top: 45px; +} + +.comments-area {} + +.comments-title, +.comments-title { + margin-bottom: 1.25rem; + text-align: left; +} + +.comment-list { + padding: 0; + list-style: none; + margin-bottom: 1.75rem; +} + +.comments-area li { + list-style: none; + position: relative; + padding-left: 110px; +} + +.comments-area .comment-body { + padding: 30px; + min-height: 120px; + overflow-wrap: break-word; + border-radius: 7px; + z-index: 0; + box-shadow: 0px 0px 15px 3px rgba(33, 33, 33, 0.15); +} + +.comments-area .children .comment-body { + box-shadow: none; + background-color: var(--bs-primary-light); +} + +.comments-area li:not(:last-child) .comment-body { + margin-bottom: 1.75rem; +} + +.comments-area .comment-meta { + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -ms-flex-align: baseline; + align-items: baseline; + font-weight: 600; +} + +.comments-area .comment-meta a:not(:hover):not(:focus) { + text-decoration: none; + color: var(--bs-secondary); +} + +.comments-area .comment-meta time { + font-weight: 500; +} + +.comments-area .comment-meta .comment-author img { + position: absolute; + z-index: 0; + left: 0px; + top: 0; + bottom: 0; + width: 90px; + border-radius: 100%; +} + +.comment-author b { + font-weight: 700; +} + +.comment-meta .comment-metadata { + margin-left: 5px; +} + +.comment-content { + position: relative; + z-index: 0; + padding: 0.5rem 0 0.85rem; +} + +.comment-content p { + margin: 0; + font-weight: 500; +} + +.comment-metadata .edit-link { + margin-left: 10px; +} + +.comment-metadata .edit-link, +.comment-body .reply { + font-weight: 600; + display: inline-block; +} + +.comment-metadata .edit-link a, +.comment-body .reply a { + display: inline-flex; + font-weight: 700; +} + +.comment-metadata .edit-link a:not(:hover):not(:focus), +.comment-body .reply a:not(:hover):not(:focus) { + color: var(--bs-secondary); +} + +.comment-body .reply { + text-align: left; +} + +.comment-list .children { + position: relative; + padding: 0; + margin: 0; + margin-top: 30px; + margin-left: 4.5rem; + z-index: 0; +} + +#cancel-comment-reply-link { + color: var(--bs-primary); + text-decoration: underline; +} + +#cancel-comment-reply-link:hover, +#cancel-comment-reply-link:focus { + text-decoration: none; +} + +/*===== // =====*/ + +/*===== 31. Form Part for Comment =====*/ + +.comment-respond { + margin-top: 2.5rem; +} + +.comments-title h5, +.comment-reply-title { + text-align: left; + color: var(--bs-secondary); +} + +.comment-form { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; + align-items: center; +} + +.comment-form > p:not(.comment-notes):not(.comment-form-comment):not(.comment-form-cookies-consent):not(.form-submit) { + flex: 1 1 40%; +} + +.comment-form > p:nth-child(2n+1):not(.comment-notes):not(.comment-form-comment):not(.comment-form-cookies-consent):not(.form-submit) { + margin-right: 1.25rem; +} + +.comment-form p.comment-form-url:not(.comment-notes):not(.comment-form-comment):not(.comment-form-cookies-consent):not(.form-submit) { + margin-right: 0; +} + +.comment-form label { + font-weight: 600; + font-size: 1rem; + margin-bottom: 5px; +} + +.comment-form .comment-form-cookies-consent label { + margin-bottom: 0; + vertical-align: middle; + margin-left: 6px; +} + +.comment-form .required { + color: var(--bs-red); +} + +.comment-form-comment { + max-width: 100%; + flex-basis: 100%; +} + +.comment-form p.comment-notes { + font-weight: 600; +} + +.comment-form > p:not(:last-child) { + margin-bottom: 1rem; +} + +.comment-form input, +.comment-form input[type="text"]:not(.adminbar-input), +.comment-form textarea, +.comment-form select { + box-shadow: 0 0 15px 3px rgb(0 0 0 / 0.1); +} + +.comment-form-cookies-consent, .form-submit { + width: 100%; +} + +/*===== // =====*/ + +/*===== / Abiz About section Start / =====*/ + +.about-section .about-section-image { + position: relative; + top: 3px; +} +.about-section .about-image-inner { + position: relative; + display: table; +} +.about-section .about-image-inner img { + max-width: 100%; + height: auto; +} + +.about-section .about-image-inner .about-image-two { + position: absolute; + top: 30px; + width:170px; + height:220px; + right: 30px; + border: 10px solid var(--bs-white); + z-index: 1; + animation: zumpBottom 2s linear infinite; +} +@keyframes zumpBottom { + 0% { + -webkit-transform: translateZ(0); + transform: translateZ(0); + } + 50% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } + 100% { + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +.about-section .about-experience { + position: absolute; + left: 0px; + bottom: 40px; + padding: 16px 32px; + text-align: center; + background-color: var(--bs-primary); + z-index: 1; +} + +.about-section .about-exp-year { + margin-bottom: 3px; + font-weight: 700; + font-size: 45px; + line-height: 1.22; + color: var(--bs-white); + letter-spacing: -0.03em; + text-transform: capitalize; +} +.about-section .about-exp-title { + margin: 0; + font-weight: 600; + font-size: 16px; + line-height: 1.375; + color: var(--bs-white); + letter-spacing: -0.03em; + text-transform: capitalize; +} +.about-section .about-ply-button { + position: absolute; + top: 230px; + right: 100px; + z-index: 1; +} +.about-section .about-video-btn { + position: relative; + display: flex; + align-items: center; + font-size:1.5rem; + justify-content: center; + width: 55px; + height: 55px; + background:var(--bs-primary); + color: var(--bs-white); + border-radius: 50%; + border: 1px solid var(--bs-primary); + transition: all 500ms ease; +} +.about-section .about-video-btn span { + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + content: ""; + border: 1px solid var(--bs-primary); + border-radius: 50%; + z-index: -1; + transition: all 500ms ease; + -webkit-animation: pulse-animate 4s linear infinite; + animation: pulse-animate 4s linear infinite; +} +.about-section .about-video-btn span:nth-child(2) { + -webkit-animation-delay: 1s; + animation-delay: 1s; +} +.about-section .about-video-btn span:nth-child(3) { + -webkit-animation-delay: 2s; + animation-delay: 2s; +} +.about-section .about-video-btn span:nth-child(4) { + -webkit-animation-delay: 3s; + animation-delay: 3s; +} +@keyframes pulse-animate { + 0% { + -webkit-transform: scale(1); + transform: scale(1); + } + 100% { + -webkit-transform: scale(2.5); + transform: scale(2.5); + opacity: 0; + } +} +.about-section .about-image-inner:before{ + content: ""; + width: calc(100% - 70px); + height: calc(100% - 66px); + position: absolute; + left: -47px; + bottom: -48px; + z-index: -1; + animation: zump 2s linear infinite; + background-image:url(../images/doted-shap-bg.png); +} + +@keyframes zump { + 0% { + -webkit-transform: translateZ(0); + transform: translateZ(0); + } + 50% { + -webkit-transform: translate3d(0, -15px, 0); + transform: translate3d(0, -15px, 0); + } + 100% { + -webkit-transform: translateZ(0); + transform: translateZ(0); + } +} +.about-section .about-image-inner:after{ + content: ""; + width: 100%; + height: 100%; + background-color: var(--bs-primary); + position: absolute; + left: 0; + top: 0; + transform: rotate(4.3deg); + z-index: -1; + animation: rotateShape 3s linear infinite; +} +@keyframes rotateShape { + 50% { + transform: rotate(-4.3deg); + } + 100% { + transform: rotate(4.3deg); + } +} + +.about-section .about-content .about-info{ + margin-bottom: 22px; + display: flex; + align-items: center; + gap: 20px; +} +.about-section .about-content .about-info-icon { + display: inline-flex; + align-items: center; + justify-content: center; + flex-shrink: 0; + width: 74px; + height: 74px; + font-size: 40px; + color: var(--bs-primary); + background-color: var(--bs-black); + transition: all 500ms ease; + border-radius: 50px; +} +.about-section .about-content .about-info-text { + margin: 0; + font-weight: 600; + font-size: 16px; + color: var(--bs-primary); + line-height: 1.62; + text-transform: capitalize; +} +.about-section .about-content .about-desc-text-p { + margin-bottom: 27px; + text-transform: capitalize; +} + +.about-section .about-content .about-content-list { + margin-bottom: 40px; + display: flex; + align-items: center; + gap: 12px 30px; + flex-wrap: wrap; +} + +.about-section .about-content .about-content-list li { + display: flex; + gap: 11px; + font-weight: 600; + font-size: 16px; + color: var(--easilon-black, #2B2B5E); + line-height: 1.75; + text-transform: capitalize; +} +.about-section .about-content .about-list-icon { + font-size: 18px; + color: var(--bs-primary); +} + +@media only screen and (max-width: 992px){ + .about-section .about-content { + position: relative; + top: 3rem; + } +} + @media only screen and (max-width: 600px){ + .about-section .about-experience { + bottom: 10px; + padding: 10px 20px; + } + + .about-section .about-ply-button { + top: 144px; + right: 50px; + } + + .about-section .about-exp-year { + font-size: 25px; + line-height: 1; + } + + .about-section .about-exp-title { + font-weight: 500; + font-size: 14px; + line-height: 1; + } + + .about-section .about-image-inner .about-image-two { + top: 0; + width: 150px; + height: 200px; + object-fit: cover; + right: 30px; + border: 5px solid var(--bs-white); + } + + .about-section .about-video-btn { + font-size: 1rem; + justify-content: center; + width: 45px; + height: 45px; + } +} + +/*===== / End About Section / =====*/ + +/*===== / Start Marquee Section / =====*/ +.abiz-marquee-section { + position: relative; + display: block; + background-color: var(--bs-secondary); + padding: 1rem 0 1rem; + z-index: 1; + overflow: hidden; +} + +.abiz-marquee-section .marquee-inner{ + position: relative; + display: block; +} + +.abiz-marquee-section .marquee-wrapper{ + width: 100000px; + transform: translateX(0px); +} +@keyframes marqueeAnimation-9925992 { + 100% { + transform: translateX(-3126.59px); + } +} +.abiz-marquee-section .marquee-inner-content .marquee-list { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + align-items: center; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; + white-space: nowrap; + min-width: 100%; +} + +.abiz-marquee-section .marquee-inner-content .marquee-title { + position: relative; + display: inline-flex; +} + +.abiz-marquee-section .marquee-inner-content .marquee-title a { + position: relative; + display: flex; + align-items: center; + justify-content: center; + text-align: center; + font-size: 20px; + letter-spacing: -0.8px; + text-transform: capitalize; + font-weight: 500; + line-height: 20px; + color: var(--bs-white); + -webkit-transition: all 500ms ease; + transition: all 500ms ease; + padding: 0 22px; + text-decoration: none; +} + +.abiz-marquee-section .marquee-inner-content .marquee-title i{ + color: var(--bs-white); + position: relative; + font-size: 16px; + margin-right: 15px; +} + +.abiz-marquee-section .marquee-inner-content .marquee-title .marqueee-color-txt { + position: relative; + margin-right: 5px; + color: var(--bs-primary); + -webkit-transition: all 500ms ease; + transition: all 500ms ease; +} + +/*===== / End Marquee Section / =====*/ + +/*===== / Blog section-1 start / =====*/ + +.blog-section .blog-item-current { + position: relative; + padding: 14px; + border: 1px solid var(--bs-gray); + padding-bottom: 0; + box-shadow: 0 10px 60px rgba(0, 0, 0, .07); + transition: all .3s ease; +} +.blog-section .blog-header { + position: relative; +} + +.blog-post-content { + padding: 20px; +} + +.blog-post-content .post-meta.list-item { + list-style-type: none; + padding-left: 0; +} + +.blog-post-content .post-meta.list-item li i { + background: var(--bs-primary); + height: 1.7rem; + width: 1.7rem; + line-height: 1.7rem; + border-radius: 100%; + text-align: center; + color: var(--bs-white); + font-size: 0.8rem; +} + +.blog-section .blog-thumb { + position: relative; + overflow: hidden; + margin-bottom: 0; +} +.blog-section .post-thumb.blog-img:first-child { + position: absolute; + left: 0; + top: 0; + right: 0; + bottom: 0; + z-index: 1; + transform: translatex(50%) scalex(2); + opacity: 0; + filter: blur(10px); +} + +.blog-section .blog-item-current:hover .post-thumb.blog-img:first-child{ + transform: translatex(0) scalex(1); + opacity: 1; + filter: blur(0); +} +.blog-section .post-thumb.blog-img { + position: relative; + width: 100%; + display: block; + transition: all .5s ease; +} + + + +.blog-section img.attachment-post-thumbnail.size-post-thumbnail.wp-post-image { + -webkit-transform: scale(1); + -moz-transform: scale(1); + -ms-transform: scale(1); + transform: scale(1); + transition: all .4s ease-in-out; +} + +.blog-inner .blog-thumb+.post-category { + position: absolute; + left: 20px; + bottom: 0; + background: var(--bs-primary); + color: var(--bs-white); + z-index: 1; + display: block; + align-items: center; + justify-content: center; + padding: 10px; + text-align: center; + line-height: 1; + text-align: left; +} + +.blog-inner .post-category { + position: absolute; + left: 20px; + bottom: 0; + background: var(--bs-primary); + color: var(--bs-white); + z-index: 1; + display: block; + align-items: center; + justify-content: center; + padding: 10px; + text-align: center; + line-height: 1; + text-align: left; +} + +.blog-inner .post-category.not-thumb { + position: relative; + display: inline-block; +} + +.blog-section .post-category a, +.blog-section .post-category i { + color: var(--bs-white); + text-decoration: none; +} + +.blog-section .post-category i, +.post-meta i { + margin-right: 6px; +} + +.post-meta i { + color: var(--bs-primary); +} +/*===== / Blog section-End 1 / =====*/ + +/*===== / Blog section-2 / =====*/ + +.blog-section .blog-wrapper .blog-inner-2 { + position: relative; + overflow: hidden; + padding: 30px; + padding-bottom: 38px; + margin: 30px 0; + z-index: 1; + border-radius: 15px; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + -ms-border-radius: 15px; + -o-border-radius: 15px; +} +.blog-section .blog-inner-2:before, +.blog-section .blog-inner-2::after { + position: absolute; + left: 0; + right: 0; + top: 0; + height: calc(100% - 8px); + content: ""; + z-index: -1; + border-radius: 15px; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + -webkit-transition: all 0.25s cubic-bezier(0.645, 0.045, 0.355, 1); + -o-transition: all 0.25s cubic-bezier(0.645, 0.045, 0.355, 1); + transition: all 0.25s cubic-bezier(0.645, 0.045, 0.355, 1); +} + +.blog-section .blog-inner-2:before { + transform-origin: right center; + -webkit-transform-origin: right center; + -webkit-transform: scale(0, 1); + -khtml-transform: scale(0, 1); + -moz-transform: scale(0, 1); + -ms-transform: scale(0, 1); + -o-transform: scale(0, 1); + transform: scale(0, 1); + -webkit-transition: transform 0.3s cubic-bezier(0.37, 0.31, 0.2, 0.85); + -khtml-transition: transform 0.3s cubic-bezier(0.37, 0.31, 0.2, 0.85); + -moz-transition: transform 0.3s cubic-bezier(0.37, 0.31, 0.2, 0.85); + -ms-transition: transform 0.3s cubic-bezier(0.37, 0.31, 0.2, 0.85); + -o-transition: transform 0.3s cubic-bezier(0.37, 0.31, 0.2, 0.85); + transition: transform 0.3s cubic-bezier(0.37, 0.31, 0.2, 0.85); + z-index: -1; + background: var(--bs-secondary); +} +.blog-section .blog-inner-2::after { + width: calc(100% - 20px); + z-index: -3; + margin: 0 auto; + background-color: var(--bs-primary); + background-image: linear-gradient(1deg, var(--bs-primary)) 0%, var(--bs-primary-light) 100%); +} + +.blog-section .blog-inner-2 .blog-item-bg { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: var(--bs-white); + z-index: -2; + border-radius: 15px; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + box-shadow: 0px 0px 18px 0px rgba(13, 0, 34, 0.04); + height: calc(100% - 8px); +} + +.blog-inner-2 .blog-meta { + display: flex; + align-items: center; + margin-bottom: 20px; + justify-content: flex-start; +} +.blog-inner-2 .blog-img-thumb { + width: 43px; + height: 43px; + border-radius: 50%; + -webkit-border-radius: 50%; + -moz-border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + margin-right: 14px; + position: relative; +} +.blog-inner-2 .blog-meta .info { + line-height: 22px; + -webkit-transition: 0.3s; + -o-transition: 0.3s; + transition: 0.3s; + color: var(--bs-secondary); +} +.blog-inner-2 .blog-meta .info a{ + font-weight: 700; + color: var(--bs-secondary-dark); +} +.blog-inner-2 .blog-tags { + margin-bottom: 20px; +} + +.blog-inner-2 .blog-tags a { + color: var(--bs-white); + display: inline-block; + padding: 6px 13px; + border-radius: 30px; + -webkit-border-radius: 30px; + -moz-border-radius: 30px; + line-height: 1; + font-weight: 700; + position: relative; + z-index: 1; + overflow: hidden; +} +.blog-inner-2 .blog-tags li{ + list-style:none; +} + +.blog-inner-2 .blog-tags li a::before, +.blog-inner-2 .blog-tags li a::after { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + content: ""; + -webkit-transition: 0.3s; + -o-transition: 0.3s; + transition: 0.3s; + z-index: -1; +} + +.blog-inner-2 .blog-tags li a::before{ + background-color: var(--bs-primary); + background-image: linear-gradient(1deg, var(--bs-primary)) 0%, var(--bs-primary-light) 100%); +} +.blog-inner-2 .blog-tags li a::after{ + background: var(--bs-white); + opacity: 0; +} + +.blog-inner-2 .post-title { + font-size: 22px; + line-height: 30px; +} +.blog-inner-2 .post-title a{ + color: var(--bs-secondary); +} +.blog-inner-2 .blog-link { + font-weight: 700; + color: var(--bs-secondary); + margin-top: 20px; + display: inline-block; +} +.blog-inner-2 .blog-link i{ + -webkit-transform: translateX(6px); + -ms-transform: translateX(6px); + transform: translateX(6px); + -webkit-transition: 0.3s; + -o-transition: 0.3s; + transition: 0.3s; +} + +.blog-inner-2:hover { + color: var(--bs-white); +} +.blog-inner-2:hover:before{ + transform-origin: left center; + -webkit-transform-origin: left center; + -webkit-transform: scale(1, 1); + -khtml-transform: scale(1, 1); + -moz-transform: scale(1, 1); + -ms-transform: scale(1, 1); + -o-transform: scale(1, 1); + transform: scale(1, 1); +} +.blog-inner-2:hover .blog-meta .info { + color: var(--bs-gray-light); +} +.blog-inner-2:hover .blog-tags a { + color: var(--bs-secondary); +} +.blog-inner-2:hover .post-title a, +.blog-inner-2:hover .blog-link { + color: var(--bs-white); +} + +.blog-inner-2:hover .blog-tags li a::before { + opacity: 0; +} +.blog-inner-2:hover .blog-tags li a::after { + opacity: 1; +} +.blog-inner-2:hover .blog-meta .info a{ + color: var(--bs-primary); +} +.blog-inner-2 .post-title a:hover, +.blog-inner-2 .blog-link:hover{ + color:var(--bs-primary) !important; +} +.blog-inner-2:hover::after { + top: 8px; + -webkit-transition-delay: .16s; + transition-delay: .16s; +} + +/*===== / Blog Section-2 End / =====*/ + +/*===== / Blog Section-3 Start / =====*/ +.blog-inner-3 .blog-single { + position: relative; + display: block; + margin-bottom: 30px; +} + +.blog-inner-3 .blog-inner-img { + position: relative; + display: block; + overflow: hidden; + z-index: 1; +} +.blog-inner-3 .blog-inner-img:before{ + background-color: var(--bs-white); + position: absolute; + height: 0; + width: 100%; + left: 0; + top: 0; + opacity: 0; + -moz-transition: all 400ms ease-out 0s; + -webkit-transition: all 400ms ease-out 0s; + -ms-transition: all 400ms ease-out 0s; + -o-transition: all 400ms ease-out 0s; + transition: all 400ms ease-out 0s; + content: ""; + z-index: 1; +} + +.blog-inner-3 .blog-inner-img .blog-user-box { + position: absolute; + bottom: 35px; + left: 30px; + display: flex; + align-items: flex-end; + z-index: 2; +} + +.blog-inner-3 .blog-inner-img img { + width: 100%; + transition: .5s ease; + transform: scale(1); + height: auto; + max-width: 100%; + border: none; + border-radius: 0; + box-shadow: none; +} +.blog-inner-3 .blog-single:hover .blog-inner-img img{ + transform: scale(1.05); +} +.blog-inner-3 .blog-single:hover .blog-inner-img:before{ + height: 100%; + opacity: .05; +} +.blog-inner-3 .blog-single:hover .blog-inner-img:after{ + height: 0; + opacity: .5; +} + +.blog-inner-3 .blog-inner-img .blog-user-img { + position: relative; + display: block; + width: 50px; + height: 50px; + border-radius: 50%; + z-index: 2; +} + +.blog-inner-3 .blog-inner-img .blog-user-img img { + border: 1px solid var(--bs-black); + border-radius: 50% !important; +} + +.blog-inner-3 .blog-inner-img .blog-user-author { + position: relative; + display: block; + background-color: var(--bs-white); + padding-left: 47px; + padding-right: 10px; + padding-top: 8px; + padding-bottom: 8px; + border-radius: 15px; + margin-left: -40px; +} +.blog-inner-3 .blog-inner-img .blog-user-box a { + position: relative; + display: contents; +} +.blog-inner-3 .blog-inner-img .blog-user-author p { + font-size: 14px; + color: var(--bs-black); + font-weight: 600; + text-transform: uppercase; + letter-spacing: -0.56px; + line-height: 14px; +} +.blog-inner-3 .blog-inner-img:after { + position: absolute; + content: ""; + background-color: var(--bs-white); + height: 100%; + width: 100%; + left: 0; + top: 0; + bottom: 0; + opacity: 0; + z-index: 1; + -moz-transition: all 600ms ease-out 0s; + -webkit-transition: all 600ms ease-out 0s; + -ms-transition: all 600ms ease-out 0s; + -o-transition: all 600ms ease-out 0s; + transition: all 600ms ease-out 0s; +} + +.blog-inner-3 .blog-single .blog-content { + position: relative; + display: block; + background-color: var(--bs-white); + border: 1px solid var(--bs-gray); + border-top: 0; + padding: 23px 29px 21px; + z-index: 1; +} +.blog-inner-3 .blog-single .blog-content:before { + content: ""; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: var(--bs-black); + transform: scaleY(0.0) rotateX(0deg); + -webkit-transition: all 0.2s linear; + -o-transition: all 0.2s linear; + transition: all 0.2s linear; + z-index: -1; +} +.blog-inner-3 .blog-single:hover .blog-content:before{ + transform: scaleY(1.0) rotateX(0deg); + -webkit-transition: all 0.4s linear; + -o-transition: all 0.4s linear; + transition: all 0.4s linear; +} + +.blog-inner-3 .blog-single .blog-content .blog-meta-info { + position: relative; + display: flex; + align-items: center; + flex-wrap: wrap; + justify-content:space-between; + list-style:none; + padding: 0; +} + +.blog-inner-3 .blog-single .blog-content .blog-meta-info li a{ + position: relative; + display: flex; + align-items: center; + font-size: 16px; + color: var(--bs-secondary); + letter-spacing: -0.64px; + -webkit-transition: all 500ms ease; + transition: all 500ms ease; +} + +.blog-inner-3 .blog-single:hover .blog-content .blog-meta-info li a, +.blog-inner-3 .blog-single:hover .blog-content .post-title a, +.blog-inner-3 .blog-single:hover .blog-content p{ + color: var(--bs-white); +} +.blog-inner-3 .blog-single .blog-content .blog-meta-info li i{ + position: relative; + display: inline-block; + font-size: 17px; + color: var(--bs-primary); + padding-right: 15px; + -webkit-transition: all 500ms ease; + transition: all 500ms ease; +} +.blog-inner-3 .blog-single .blog-content .post-title { + font-size: 24px; + font-weight: 700; + line-height: 34px; + letter-spacing: -0.96px; + border-bottom: 2px solid var(--bs-gray); + padding-bottom: 17px; + margin-bottom: 10px; + margin-top: 15px; + position: relative; + display: block; + -webkit-transition: all 500ms ease; + transition: all 500ms ease; +} + +.blog-inner-3 .blog-single .blog-content .post-title:before{ + content: ""; + position: absolute; + bottom: -12px; + right: 0; + border-top: 12px solid transparent; + border-left: 12px solid var(--bs-gray); + border-bottom: 12px solid transparent; + -webkit-transition: all 500ms ease; + transition: all 500ms ease; +} +.blog-inner-3 .blog-single .blog-content .post-title a{ + color: var(--bs-black); + -webkit-transition: all 500ms ease; + transition: all 500ms ease; +} + + + +/*===== / Blog Section-3 End / =====*/ + + +/*===== / Contact Form 7 start / =====*/ +.ct-contact-form .wpcf7 form { + display: flex; + flex-wrap: wrap; + justify-content: center; + margin-bottom: -3%; +} + +.contact-wrap.ct-contact-form { + margin-top: 2rem; +} + +.ct-contact-form .wpcf7 form p { + flex: 100%; + margin-bottom: 3%; +} + +.ct-contact-form .wpcf7 form p:nth-child(5), +.ct-contact-form .wpcf7 form p:nth-child(3) { + margin-left: 3%; +} + +.ct-contact-form .wpcf7 form p:nth-child(5), +.ct-contact-form .wpcf7 form p:nth-child(2), +.ct-contact-form .wpcf7 form p:nth-child(3), +.ct-contact-form .wpcf7 form p:nth-child(4) { + flex: 0 0 48.5%; +} + +.ct-contact-form .wpcf7 form .wpcf7-response-output { + position: relative; + bottom: 2.5rem; +} + +@media (max-width: 35.938em) { + .ct-contact-form .wpcf7 form { + margin-bottom: -2rem; + } + .ct-contact-form .wpcf7 form p { + margin-bottom: 2rem; + } + .ct-contact-form .wpcf7 form p:nth-child(5), + .ct-contact-form .wpcf7 form p:nth-child(3) { + margin-left: 0; + } + .ct-contact-form .wpcf7 form p:nth-child(5), + .ct-contact-form .wpcf7 form p:nth-child(2), + .ct-contact-form .wpcf7 form p:nth-child(3), + .ct-contact-form .wpcf7 form p:nth-child(4) { + flex: 0 0 100%; + } +} + +.ct-contact-form .wpcf7 form input[type="text"], +.ct-contact-form .wpcf7 form input[type="email"], +.ct-contact-form .wpcf7 form input[type="url"], +.ct-contact-form .wpcf7 form input[type="password"], +.ct-contact-form .wpcf7 form input[type="search"], +.ct-contact-form .wpcf7 form input[type="number"], +.ct-contact-form .wpcf7 form input[type="tel"], +.ct-contact-form .wpcf7 form input[type="range"], +.ct-contact-form .wpcf7 form input[type="date"], +.ct-contact-form .wpcf7 form input[type="month"], +.ct-contact-form .wpcf7 form input[type="week"], +.ct-contact-form .wpcf7 form input[type="time"], +.ct-contact-form .wpcf7 form input[type="datetime"], +.ct-contact-form .wpcf7 form input[type="datetime-local"], +.ct-contact-form .wpcf7 form input[type="color"], +.ct-contact-form .wpcf7 form textarea { + background: var(--bs-white); + border-color: transparent; + border-radius: 0; + box-shadow: 0 1rem 3rem 0 rgba(0, 0, 0, 0.07); +} + +/*===== / Contact Form 7 End / =====*/ + +/*===== / product section / =====*/ +.product-section ul.products { + margin: 0 0 1em; + padding: 0; + list-style: none outside; + clear: both; +} +.product-section ul.products::before { + content: " "; + display: table; +} +.product-section li.product-list { + width: 22.05%; + float: left; + margin: 0 3.8% 2.992em 0; + padding: 0; + position: relative; + margin-left: 0; +} +.products li.first { + clear: both; +} +.product-list .product-main { + margin-bottom: 0; + position: relative; +} +.product-main a{ + display: inline-block; + text-decoration: none; +} +.product-main .product-fimg a img{ + margin: 0; +} +.product-main a img{ + width: 100%; + height: auto; + display: block; + box-shadow: none; +} +.product-main .product-action { + position: absolute; + bottom: 6px; + left: 0; + width: 100%; + padding: 20px; + text-align: center; + transform: translateY(100%); + opacity: 0; + transition: var(--bs-transition-slow); +} +.product-action .button.add_to_cart_button { + background-color: var(--bs-primary); + color: var(--bs-white); + font-weight: 600; + border-radius: 100px; + overflow: hidden; +} +.product-single h3 { + font-size: 25px; + padding: 0; + margin-bottom: 8px; + margin: 0; +} +.product-single .price { + font-size: 18px; + line-height: 1.2; + color: var(--bs-secondary); + display: block; + font-weight: 400; + margin-bottom: 0.5em; +} +.product-single .price del { + color: inherit; + opacity: .5; + display: inline-block; +} +.product-single .price del span { + color: var(--bs-gray); + text-decoration-line: line-through; +} +.product-single .price ins { + background: 0 0; + font-weight: 700; + display: inline-block; +} +.product-content ins .amount { + color: var(--bs-primary); + text-decoration: underline; +} +.products li.last { + margin-right: 0; +} +.product-single:hover .product-action{ + opacity: 1; + transform: translateY(0); +} +.product-main .product-single .sale-ribbon { + position: absolute; + top: 15px; + left: 15px; + margin: 0; + font-size: 13px; + font-weight: 600; + text-align: center; + padding: 3px 12px; + text-transform: uppercase; + color: var(--bs-white); + background: var(--bs-primary) none repeat scroll 0 0; + box-shadow: 0 0 12px rgb(255 255 255 / 0.35); + z-index: 1; +} +.product-main .button { + display: inline-block; + margin-top: 1em; +} + +/* service bg animation */ +.service-section .bg-shape1 { + position: absolute; + top: 0; + right: 0; + overflow: hidden; +} +.service-section .bg-shape1 svg { + animation: bounce 10s linear infinite; + width: 600px; +} + +/* ------------------------*/ +/*********** Primary button */ +.btn.btn-primary { + display: inline-block; + position: relative; + z-index: 1; + overflow: hidden; + text-decoration: none; + color: var(--bs-white); + border: 0.15em solid var(--bs-primary); + border-radius: 0; + transition: 4s; + background:var(--bs-primary) +} +.btn{ + position: relative; + overflow: hidden; +} + +.btn-style-one .btn.btn-primary { + transition: 0s; +} + +.btn-style-one .btn:before, .btn-style-one .btn:after { + content: ""; + position: absolute; + height: 100%; + top: 0; + width: 0%; + background-color: var(--bs-white); + z-index: -1; + -webkit-transition: all 0.4s ease-out; + transition: all 0.4s ease-out; +} + +.btn-style-one .btn:before { + left: 0; + border-radius: 0 20px 20px 0; +} + +.btn-style-one .btn:after { + right: 0; + border-radius: 20px 0 0 20px; +} + +.btn-style-one .btn:hover, +.btn-style-one .btn:focus { + color: var(--bs-secondary); + box-shadow: none; +} + +.btn-style-one .btn.btn-white:hover, +.btn-style-one .btn.btn-white:focus { + color: var(--bs-white); +} + +.btn-style-one .btn:hover::before, .btn-style-one .btn:hover:after, +.btn-style-one .btn:focus::before, .btn-style-one .btn:focus:after { + width: 100%; + border-radius: 0; +} + +.btn-style-one .btn.btn-like-icon { + padding-right: 2.75rem; +} + +/* ------------------------*/ + +/* Common Widget Style */ +.main-navigation-area .contact-info .text { + font-size: 1.5rem; + font-weight: 700; +} + +.main-navigation-area .contact-info .title { + font-size: 1rem; + font-weight: 500; +} + +.widget-left, .widget-right { + display: inline-flex; + align-items: center; +} + +.widget-right li a { + margin-left: auto; +} + +.widget-left li a { + margin-right: auto; +} + +.widget-left .widget:nth-child(2n+3), +.widget-left .widget:first-child{ + padding-left: 0px; +} + +.widget-right .widget:nth-child(n+2) { + padding: 0 1.75rem; +} + +.widget-right .widget.widget_social_widget { + padding-right: 0; +} + +.widget.widget-text-slide { + width: 100%; +} + +/*---//---*/ + +/* Header Widget */ + +.main-header p:not(.site-description) { + margin: 0; +} + +.main-header .contact-area { + min-height: 45px; +} + +.main-header .contact-icon { + font-size: 1rem; + width: 30px; + height: 30px; + border-radius: 100%; + margin-right: 10px; + color: var(--bs-white); + overflow: hidden; + -webkit-transition: 0.6s; + transition: 0.6s; +} + +.above-header .widget-left, +.above-header .widget-right { + display: -ms-flexbox; + display: flex; + -webkit-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + height: 100%; + min-height: 50px; +} + +.header-widget:not(.header-carousel) .widget:not(.widget_media_video) { + display: inline-block; + margin: 0; +} + +.header-widget:not(.header-item):not(.header-carousel) .widget:not(.widget_media_video) { + line-height: 50px; +} + +.main-header .widget:not(.widget_social_widget) li { + display: inline-block; + padding: 0; +} + +.main-header .widget:not(.widget_nav_menu):not(.widget_social_widget) li { + margin: 0 10px 5px 0; +} + +.main-header .widget.widget_nav_menu li { + margin: 0 10px 0 0; +} + +.main-header .widget:not(.widget_social_widget) li:last-child, .tagcloud a:last-child { + margin: 0; +} + +.header-widget ul li, .header-widget ul li a, +.main-header .widget span { + font-weight: 500; +} + +.main-header .contact-area, .main-header .contact-area a:not(:hover):not(:focus) { + color: var(--bs-white); +} + +.header-widget ul li span, .header-widget a, +.contact-info a { + text-decoration: none; + position: relative; + text-shadow: -0.15px -0.15px 0 transparent, 0.15px 0.15px transparent; + -webkit-transition: .3s ease-in-out; + transition: .3s ease-in-out; +} + +.header-widget ul li span, .header-widget a { + display: inline-block; +} + +.header-widget .widget:not(.widget_social_widget) li a { + width: max-content; +} + +.header-widget .widget:not(.widget_social_widget):not(.widget-contact) i, +.header-widget .widget:not(.widget_social_widget):not(.widget-contact):not(.widget_media_gallery):not(.widget_media_gallery) img { + font-size: 15px; + display: inline-block; +} + +.header-widget .widget:not(.widget_social_widget):not(.widget-contact):not(.widget_media_gallery):not(.widget_media_gallery) img { + height: 1.25rem; +} + +.main-header .widget li:last-child, .header-widget-info li:last-child { + margin-right: 0; +} + +.header-widget .fa-phone + span { + font-weight: 700; +} + +.breadcrumb-widget .widget .widget-title, +.footer-copyright .widget:not(.widget-info):not(.widget-none) .widget-title, +.main-header .widget:not(.widget-info):not(.widget-none) .widget-title { + display: none; +} + +.widget .gallery { + display: flow-root; + margin-top: -2.5%; +} + +.footer .gallery-popup-icon, +.sidebar .gallery-popup-icon { + top: 0; + right: 0; + bottom: 0; + left: 0; + margin: auto; + display: flex; + justify-content: center; + align-items: center; +} + +.header-widget .gallery .gallery-item a { + display: block; +} + +.header-widget .widget img { + width: 50px; +} + +.header-widget .gallery { + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; +} + +.header-widget .gallery .gallery-item { + -ms-flex: 1; + flex: 1; + margin: 0 6px 0 0; + padding: 0; +} + +.header-widget .widget_media_video { + display: block; + width: 100%; +} + +.header-widget .widget_media_video .wp-video .mejs-container { + width: 100% !important; + max-height: 170px; +} + +.header-widget .widget_media_video .wp-video-shortcode video, .header-widget .widget_media_video video.wp-video-shortcode { + max-height: 170px; +} + +.header-widget .widget-menu-top li a i { + display: block; + text-align: center; + font-size: 32px; + margin-bottom: 5px; +} + +/* ---//--- */ + +/* Basic Css for widget */ + +.widget.widget_rss h5 { + margin-bottom: 0; +} + +.widget.widget_rss h5 a { + display: inline-block; +} + +.widget li { + list-style: none; + position: relative; +} + +.widget li a { + position: relative; + z-index: 0; + display: inline-block; + text-decoration: none; + font-weight: 600; +} +.widget li a:before, +.widget li a:after { + font-family: var(--bs-font-awesome); + font-weight: 900; + position: absolute; +} + +.footer-main .widget_nav_menu li a:before, +.footer-main .widget:not(.widget_nav_menu):not(.widget_recent_comments):not(.widget-info):not(.widget_social_widget):not(.widget_calender):not(.widget_tag) li a:before { + right: 0; +} + +.footer-main .widget:not(.widget_text):not(.widget_meta):not(.widget_recent_comments):not(.widget-info):not(.widget_social_widget):not(.widget_calender):not(.widget_tag) li a:not(.wp-block-social-link-anchor):before { + content: "\f061"; + left:-20px; + -webkit-transition: var(--bs-transition); + transition: var(--bs-transition); +} + +.footer-main .widget:not(.widget_text):not(.widget_meta):not(.widget_recent_comments):not(.widget-info):not(.widget_social_widget):not(.widget_calender):not(.widget_tag) li a:not(.wp-block-social-link-anchor):after { + content: "\f061"; + right: 1rem; + opacity: 0; + -webkit-transition: var(--bs-transition-slow); + transition: var(--bs-transition-slow); +} + +.footer-main .widget:not(.widget_text):not(.widget_meta):not(.widget_recent_comments):not(.widget-info):not(.widget_social_widget):not(.widget_calender):not(.widget_tag) li a:hover:before, +.footer-main .widget:not(.widget_text):not(.widget_meta):not(.widget_recent_comments):not(.widget-info):not(.widget_social_widget):not(.widget_calender):not(.widget_tag) li a:focus:before { + opacity: 0; + right: 1rem; +} + +.footer-main .widget:not(.widget_text):not(.widget_meta):not(.widget_recent_comments):not(.widget-info):not(.widget_social_widget):not(.widget_calender):not(.widget_tag) li a:hover:after, +.footer-main .widget:not(.widget_text):not(.widget_meta):not(.widget_recent_comments):not(.widget-info):not(.widget_social_widget):not(.widget_calender):not(.widget_tag) li a:focus:after { + opacity: 1; + right: 10px; + color: var(--bs-primary); +} + +.footer-main .widget li a { + color: var(--bs-white); +} + +.footer-main .widget li a:focus, +.footer-main .widget li a:hover, +.footer-main .widget li a:focus:before, +.footer-main .widget li a:hover:before { + color: var(--bs-primary); +} + +/* ---//--- */ + +/* Search Form Start */ + +.widget .search-form label, +.mail-form, +.search-form { + width: 100%; +} + +.widget .woocommerce-product-search, +.mail-form>div, +.search-form { + display: block; + position: relative; + overflow: hidden; + border-radius: 0.3125rem; + z-index: 0; +} + +.widget .woocommerce-product-search button, +.widget .search-form .search-submit { + color: var(--bs-white); + font-weight: 600; + padding: 0 0.5rem; + border-radius: 10rem; + margin: auto; + right: 8px; +} + +.widget .search-form .search-submit { + width: 36px; + height: 36px; +} + +.widget .woocommerce-product-search button { + height: 41px; + padding: 0 18px; +} + +.sidebar .widget.widget_product_search .search-field { + padding-right: 6.25rem; +} + +.widget .woocommerce-product-search button:focus, +.widget .woocommerce-product-search button:hover, +.widget .woocommerce-product-search button, +.widget .search-form .search-submit:focus, +.widget .search-form .search-submit:hover { + color: var(--bs-white); +} + +.search-submit i { + font-size: inherit; + line-height: 2.15; +} + +.widget form .search-field { + padding-right: 5.35rem; +} + +.widget form .search-field:not(:hover), +.widget form .search-field:not(:focus) { + border-color: transparent; +} + +.widget form .search-field, +.widget .mail-form .form-control { + padding-left: 1.25rem; + min-height: 50px; + border-radius: 0.3125rem; + padding-top: 0.81rem; + padding-bottom: 0.81rem; +} + +.sidebar .widget form .search-field { + color: var(--bs-white); + background-color: var(--bs-primary); +} + +.widget .mail-form .form-control { + padding-right: 3.8rem; +} + +.widget form { + overflow: hidden; +} + +.widget .woocommerce-product-search, +.widget .search-form, +.widget form .search-field { + border-radius: 10rem; +} + +.footer-main .mail-form .submit, +.search-form .search-submit, +.widget .woocommerce-product-search button { + position: absolute; + top: 0; + right: 0; + bottom: 0; + border: none; + outline: none; + box-shadow: none; + line-height: 2; + z-index: 0; +} + +.footer-main .mail-form .submit, +.search-form .btn.search-submit:not(:hover):not(:focus), +.search-form .search-submit:not(:hover):not(:focus), +.widget .woocommerce-product-search button { + color: var(--bs-white); + background-color: var(--bs-primary); +} + +.sidebar .widget .woocommerce-product-search button, +.sidebar .widget .search-form button.search-submit { + right: 36px; + background-color: var(--bs-secondary); +} + +.sidebar .widget .search-field::-webkit-input-placeholder { + color: var(--bs-white); +} +.sidebar .widget .search-field::placeholder { + color: var(--bs-white); +} + +.footer-main .mail-form .submit { + padding: 0 .85rem; + border-radius: 0 0.3125rem 0.3125rem 0; + font-size: 1.5625rem; + border: 1px solid transparent; +} + +.footer-main .mail-form .submit:hover, +.footer-main .mail-form .submit:focus { + border-color: var(--bs-white); +} + +.widget .btn:not(.btn-link):not(.btn-play):not(.btn-video):before { + border-radius: 0 30px 30px 0; +} + +/* ---//--- */ + +/* Subscribe Form Start */ + +.sidebar .widget_subscribe { + text-align: center; + font-weight: 500; +} + +.sidebar .widget_subscribe form button { + display: block; + width: 100%; + color: #ffffff; + margin-top: 1.25rem; +} + +.sidebar .widget_subscribe form input[type="email"] { + border-radius: 10rem; + padding-left: 1.25rem; + padding-right: 1.25rem; +} + +.sidebar .widget_subscribe form input[type="email"]:not(:hover):not(:focus) { + border-color: transparent; + background-color: var(--bs-gray-light); +} + +/*---//---*/ + + +/* Manual Links Start & Calendar Start */ + +.widget > ul, .widget div > ul, .tagcloud { + list-style: none; + margin: 0; + padding: 0; + position: relative; + z-index: 0; +} + +.calendar_wrap { + position: relative; + padding: 1.875rem; + background-color: var(--bs-primary-light); + border: 1px solid var(--bs-gray); +} + +.main-footer .calendar_wrap { + padding: 1rem; + color: var(--bs-secondary); +} + +.sidebar .calendar_wrap { + padding: 10px; + padding-bottom: 30px; + background: none; + border: none; +} + +.calendar_wrap table { + width: 100%; + background: none; + border: none; + margin: 0; + caption-side: top; +} + +.calendar_wrap table caption { + font-weight: 700; + color: var(--bs-secondary); + position: relative; + padding-right: 8.75rem; + text-align: right; +} + +.calendar_wrap table th, .calendar_wrap table td { + text-align: center; + line-height: 45px; + border: 0; + padding: 0; + text-align: center; + border-radius: 0; +} + +.calendar_wrap table th { + color: var(--bs-secondary); + background: none; + font-weight: 700; +} + +.calendar_wrap table td { + font-weight: 500; + position: relative; +} + +.calendar_wrap table tfoot { + background-color: var(--bs-gray-light); +} + +.sidebar .wp-block-calendar { + padding: 20px; +} +.wp-block-calendar table{ + caption-side: top; +} + + +.wp-calendar-nav { + font-weight: 600; + padding: 1.15rem 1.4rem; + background-color: var(--bs-primary); + display: flex; + align-items: center; + justify-content: space-between; +} + +.main-footer .wp-calendar-nav { + right: .75rem; +} + + +.wp-block-calendar caption { + text-align: center; + color: var(--bs-white); + background: var(--bs-primary); + font-weight: 600; +} + +.wp-block-calendar td#today { + color: var(--bs-white); + background-color: var(--bs-primary); +} + +.wp-calendar-nav a { + width: 60px; + height: 26px; + line-height: 26px; + display: inline-block; + text-align: center; + color: var(--bs-white); + background-color: var(--bs-primary); + text-decoration: none; + border-radius: 10rem; + transition: var(--bs-transition); +} + +.wp-calendar-nav a:hover, +.wp-calendar-nav a:focus { + color: var(--bs-white); + background-color: var(--bs-primary); +} + +/* --/-- */ + + +/* Widget Meta */ + +.header-widget .widget_meta a { + font-size: 12px; +} + +.header-widget .widget.widget_meta li a:before { + line-height: 1.2; + font-size: 13px; +} + +.sidebar .widget_meta ul li a { + line-height: 45px; + color: var(--bs-secondary); +} + +.widget_meta ul li a { + padding-right: 0; + padding-left: 25px; +} + +.widget_meta ul li a:before { + left: 0; + color: var(--bs-primary); +} + +.widget_meta ul li:nth-child(1) a:before { + content: "\f007"; +} +.widget_meta ul li:nth-child(2) a:before { + content: "\f08b"; +} +.widget_meta ul li:nth-child(3) a:before { + content: "\f086"; +} +.widget_meta ul li:nth-child(4) a:before { + content: "\f27a"; +} +.widget_meta ul li:nth-child(5) a:before { + content: "\f19a"; +} + +.footer-main .widget li a:hover:before, +.footer-main .widget li a:focus:before, +.widget_meta li a:hover:before, +.widget_meta li a:focus:before { + -webkit-animation: iconRightCaret 600ms ease; + animation: iconRightCaret 600ms ease; + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; +} + +/* Icon Right Caret */ +@-webkit-keyframes iconRightCaret { + 0% { + -ms-transform: translateX(-1px); + -webkit-transform: translateX(-1px); + transform: translateX(-1px); + } + + 50% { + -ms-transform: translateX(2px); + -webkit-transform: translateX(2px); + transform: translateX(2px); + } + + 100% { + -ms-transform: translateX(-1px); + -webkit-transform: translateX(-1px); + transform: translateX(-1px); + } +} +@keyframes iconRightCaret { + 0% { + -ms-transform: translateX(-1px); + -webkit-transform: translateX(-1px); + transform: translateX(-1px); + } + + 50% { + -ms-transform: translateX(2px); + -webkit-transform: translateX(2px); + transform: translateX(2px); + } + + 100% { + -ms-transform: translateX(-1px); + -webkit-transform: translateX(-1px); + transform: translateX(-1px); + } +} + +/* ---//--- */ + +/* Widget Tag & Widget Text & Widget Social */ + +.tagcloud a { + margin-bottom: 10px; + margin-right: 6px; +} + +.tagcloud a { + font-size: 1rem !important; + display: inline-block; + line-height: 1.9; + padding: 0 0.875rem; + padding-right: 1.92rem; + font-weight: 500; + position: relative; + text-decoration: none; + color: var(--bs-white); + background-color: var(--bs-secondary); + border-radius: 6.25rem; +} + +.tagcloud a:after { + content: "#"; + position: absolute; + top: 0; + right: 4px; + bottom: 0; + width: 22px; + height: 22px; + line-height: 22px; + font-size: 0.75rem; + font-weight: 900; + text-align: center; + border-radius: 100%; + margin: auto; + background-color: var(--bs-primary); + -webkit-transition: var(--bs-transition-slow); + transition: var(--bs-transition-slow); +} + +.tagcloud a:hover, +.tagcloud a:focus { + color: var(--bs-white); + background-color: var(--bs-primary); +} + +.tagcloud a:hover:after, +.tagcloud a:focus:after { + color: var(--bs-primary); + background-color: var(--bs-white); + -webkit-transform: rotate(360deg); + transform: rotate(360deg); +} + +.widget-text p:last-child { + margin: 0; +} + +.widget_social_widget li a { + width: 30px; + height: 30px; + text-align: center; + line-height: 38px; + border-radius: 100%; + overflow: hidden; + display: inline-flex; + text-decoration: none; + -webkit-transition: 0.6s; + transition: 0.6s; +} + +.widget_social_widget li a i { + vertical-align: middle; +} + +.widget_social_widget li:not(:last-child) { + margin-right: 5px; +} + +.widget.widget_social_widget ul { + margin-top: -0.75rem; +} + +.widget.widget_social_widget ul li { + margin-top: 0.75rem; +} + +.main-header .contact-area:hover .contact-icon i, +.main-header .contact-area:focus-within .contact-icon i, +.main-header .contact-area:hover .contact-icon img, +.main-header .contact-area:focus-within .contact-icon img { + -webkit-animation: slideTop .8s; + animation: slideTop .8s; +} + +.widget_social_widget li a:hover i, +.widget_social_widget li a:focus i { + -webkit-animation: slideTop .8s; + animation: slideTop .8s; + color: var(--bs-white); + background-color: var(--bs-primary); +} + +.homepage-2 .main-header .widget_social_widget li a i { + color: var(--bs-white); + width: 100%; + height: 100%; +} + +.homepage-2 .main-header .widget_social_widget li a:hover i, +.homepage-2 .main-header .widget_social_widget li a:focus i { + color: var(--bs-primary); + background: none; +} + +.main-header .contact-area:hover .contact-icon i, +.main-header .contact-area:focus-within .contact-icon i { + color: var(--bs-primary); + background-color: var(--bs-white); + border-radius: 100%; +} + +.widget_social_widget li a i, +.main-header .contact-area .contact-icon i { + width: 30px; + height: 30px; + display: inline-flex; + align-items: center; + justify-content: center; + border-radius: 0; +} + +.homepage-3 .main-header .widget_social_widget li a, +.homepage-3 .main-header .contact-area .contact-icon, +.homepage-3 .main-header .widget_social_widget li a i, +.homepage-3 .main-header .contact-area .contact-icon i { + background-color: var(--bs-secondary); +} + +.homepage-3 .main-header .widget_social_widget li a:hover i, +.homepage-3 .main-header .widget_social_widget li a:focus i, +.homepage-3 .main-header .contact-area:hover .contact-icon i, +.homepage-3 .main-header .contact-area:focus-within .contact-icon i { + color: var(--bs-white); + background-color: var(--bs-primary); +} + +.sidebar .widget_social_widget li a { + color: var(--bs-primary); + background-color: var(--bs-white); + box-shadow: 0 5px 10px rgb(0 0 0 / 0.09); +} + +.widget_social_widget ul li:last-child { + margin-right: 0px; +} + +.main-footer .widget_social_widget li a, +.sidebar .widget_social_widget li a, +.widget_social_widget li { + display: inline-block; +} + +.main-footer .widget_social_widget li a { + color: var(--bs-secondary); +} + +.main-footer .widget_social_widget li a { + background-color: var(--bs-white); +} + +.main-footer .widget_social_widget li a:hover, +.main-footer .widget_social_widget li a:focus { + color: var(--bs-white); + background-color: var(--bs-primary); +} + +.homepage-1 .main-header .widget_social_widget li a { + color: var(--bs-primary); + background-color: var(--bs-secondary-dark); +} + +.widget_special_social a { + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; + color: var(--bs-white); + background-color: var(--bs-primary); + padding: 13px 20px; + text-decoration: none; + position: relative; + z-index: 0; +} + +.widget_special_social a:after { + content: ""; + position: absolute; + top: 0; + right: 0; + width: 100%; + height: 100%; + background-color: inherit; + z-index: -1; + transition: var(--bs-transition); +} + +.widget_special_social a:hover:after, +.widget_special_social a:focus:after { + background-color: rgb(1 1 47 / 0.1); +} + +.widget_special_social p { + font-weight: 600; + line-height: 1.17; + letter-spacing: 0.15px; + margin: 0; +} + +.widget_special_social span { + margin: 0; + font-size: 14px; + font-weight: 500; + display: block; +} + +.widget_special_social i { + font-size: 30px; +} + +.widget_special_social a.twitter { + background-color: #03a9f4; +} + +.widget_special_social a.facebook { + background-color: #3a559f; +} + +.widget_special_social a.instagram { + background-color: #d62976; +} + +/* ---//--- */ + + +/* Widget Title Set */ + +.main-footer div.widget.widget-none .widget-title { + margin-bottom: 1rem; + line-height: 1.5; +} + + +.main-footer .widget .widget-title::first-letter { + color: var(--bs-primary); +} + +.main-footer .widget .widget-title { + color: var(--bs-white); + padding-bottom: 10px; + position: relative; +} + + +.widget_seperator { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + gap: 5px; + margin-bottom: 34px; +} + +.widget_seperator span { + height: 5px; + width: 80px; + border-radius: 5px; +} + +.widget_seperator span:nth-child(2) { + width: 15px; +} + +.widget_seperator span:nth-child(3) { + width: 6px; +} + + +.textwidget .logo { + margin-bottom: 1rem; +} + +/* ---//--- */ + +/*--------------------------------------- + Post Widget +-----------------------------------------*/ + +.widget_latest_posts .post-items { + flex-direction: row; + -webkit-align-items: center; + align-items: center; + text-align: left; + border: none; + background: none; + box-shadow: none; +} + +.widget_latest_posts .post-items:not(:last-child) { + padding-bottom: 20px; + margin-bottom: 20px; + border-bottom: 1px solid var(--bs-gray); +} + +.widget_latest_posts .post-image { + margin-right: 15px; + flex-basis: 28.44%; + overflow: visible; + -webkit-box-shadow: none; + box-shadow: none; +} + +.widget_latest_posts .featured-image .post-hover { + display: block; + border-radius: 10px; + overflow: hidden; +} + +.widget_latest_posts .featured-image, +.widget_latest_posts .featured-image > a { + width: 80px; + height: 80px; +} + +.widget_latest_posts .post-image img { + height: 100%; + object-fit: cover; +} + +.widget_latest_posts .post-image .post-hover:before { + font-size: 10px; + max-width: 25px; + max-height: 25px; +} + +.widget_latest_posts .post-content { + flex: 1; + padding: 0; +} + +.widget_latest_posts .post-title { + font-size: 1rem; + margin-bottom: 5px; + padding-bottom: 0; + border-bottom: 0; +} + +.widget_latest_posts .post-meta:not(.post-img-meta):not(.post-tags) { + font-size: 13px; + padding: 0; + padding-top: 5px; + margin-top: 5px; + justify-content: flex-start; +} + +.widget_latest_posts .post-meta time:not(.icon):before { + display: none; +} + +.widget_latest_posts .post-meta time:not(.icon) { + padding-left: 0; +} + +.widget_latest_posts .post-meta .post-date { + line-height: 1.2; + -webkit-transition: var(--bs-transition); + transition: var(--bs-transition); +} + +.widget_latest_posts .post-meta .post-date i { + margin-right: 6px; +} + +.widget_latest_posts .post-items:hover .post-date, +.widget_latest_posts .post-items:focus-within .post-date, +.widget_latest_posts .post-items:hover .post-title a, +.widget_latest_posts .post-items:focus-within .post-title a { + color: var(--bs-primary); +} + +.widget_latest_posts .post-image .post-meta { + top: -5px; + left: -2px; + right: unset; +} + +.widget_latest_posts .post-image .count-link { + top: -5px; + left: 2px; + right: unset; + font-size: 14px; + font-weight: 700; + width: 30px; + height: 30px; + color: var(--bs-white); + border: 2px solid var(--bs-white); + background-color: var(--bs-primary); + box-shadow: none; +} + +.widget_latest_posts .post-image .count-link a { + color: inherit; +} + +/* ---//--- */ + + +/*--------------------------------------- + Widget Sidebar Start + + .sidebar .tagcloud, +-----------------------------------------*/ + +.sidebar .widget_nav_menu .menu, .sidebar > .widget.widget_social_widget > ul, .sidebar .tagcloud, .sidebar .widget_social, .sidebar .widget .gallery, .sidebar .widget > ul, .sidebar .widget form, .sidebar .widget-content, .sidebar .rc-post, .sidebar .widget div > ul, .sidebar .widget .wp-block-tag-cloud { + padding: 1.8rem; +} + + +.sidebar .widget figure.wp-block-gallery { + padding: 1rem; +} + +.wp-block-image { + overflow:hidden; +} + +.wp-block-gallery .wp-block-image img { + -webkit-transition: var(--bs-transition); + transition: var(--bs-transition); +} + +.wp-block-gallery .wp-block-image img { + width: 100%; + transition: all .4s ease; +} + +.wp-block-gallery .wp-block-image:hover img { + -webkit-transform: scale(1.1); + transform: scale(1.1); +} + +.sidebar .widget { + margin-bottom: 30px; + overflow: hidden; + position: relative; + border-style: solid; + border-width: 1px; + border-color: var(--bs-gray); + background-color: var(--bs-white); +} + + +.wp-block-tag-cloud a { + display: inline-block; + position: relative; + letter-spacing: .15px; + padding: 10px 20px; + font-weight: 600; + font-size: 14px !important; + border: none; + margin-top: 20px; + color: var(--bs-white); + background-color: var(--bs-primary); + border-radius: 0; + text-transform: capitalize; + text-decoration: none; + z-index: 0; + border-radius: 5px; +} + +.wp-block-tag-cloud a:hover, +.wp-block-tag-cloud a:focus { + background-color: var(--bs-secondary); +} + +.footer-section .wp-block-tag-cloud a:hover, +.footer-section .wp-block-tag-cloud a:focus { + color: var(--bs-primary); + background-color: var(--bs-white); +} +/*******************/ +.sidebar .widget-title, +.sidebar .widget .wp-block-heading { + position: relative; + margin-bottom: 0; + padding: 25px 18px; + font-size: 1.25rem; + line-height: 1.2; + color: #fff; + overflow: hidden; + background-color: var(--bs-secondary); + background: url(../images/pattern1.png) repeat-x center / contain , var(--bs-secondary); + -webkit-animation: animatedBackground 2s linear infinite; + animation: animatedBackground 2s linear infinite; +} + +.sidebar .widget-title:before, +.sidebar .widget .wp-block-heading:before { + content: ''; + position: absolute; + width: 100px; + height: 100px; + background: var(--bs-primary); + border-radius: 100%; + z-index: 1; + opacity: 0.6; + top: -47px; + right: -40px; + -webkit-transition: all .4s cubic-bezier(.645,.045,.355,1); + transition: all .4s cubic-bezier(.645,.045,.355,1); +} + +.sidebar .widget-title:after, +.sidebar .widget .wp-block-heading:after { + content: ''; + position: absolute; + width: 70px; + height: 70px; + background: var(--bs-primary); + border-radius: 100%; + opacity: 0.9; + top: -33px; + right: -26px; + transition-delay: 0.15s; + -webkit-transition: all .4s cubic-bezier(.645,.045,.355,1); + transition: all .4s cubic-bezier(.645,.045,.355,1); +} + + +@keyframes animatedBackground { + 0% { + background-position: 0 0; + } + 100% { + background-position: 20px 0; + } +} +@-webkit-keyframes animatedBackground { + 0% { + background-position: 0 0; + } + 100% { + background-position: 20px 0; + } +} +/***************/ + + +.widget_media_video iframe { + width: 100%; + height: 100%; +} + +.widget.widget_media_image:before { + content: ""; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: var(--bs-secondary-dark); + opacity: 0.5; +} + +.main-footer .widget:last-child, +.sidebar .widget:last-child { + margin-bottom: 0; +} + +.sidebar .widget_social_widget ul { + padding: 0 15px; +} + +.sidebar .widget ul li.menu-item-has-children { + padding-bottom: 0; +} + +.sidebar .widget_recent_comments li { + padding: 15px; + word-break: break-word; +} + +.widget_special_social a:not(:last-child), +.sidebar .widget.woocommerce ul > li:not(:last-child), +.sidebar .widget.widget_nav_menu ul li:not(:last-child) a, +.sidebar .widget.widget_pages ul li:not(:last-child) a, +.sidebar .widget.widget_meta ul li:not(:last-child), +.sidebar .widget.widget_archive ul > li:not(:last-child), +.sidebar .widget.widget_categories ul > li:not(:last-child) { + margin-bottom: 0rem; + border-bottom: 1px solid var(--bs-gray); +} + +.woocommerce.widget_top_rated_products ul.product_list_widget li { + margin-top: 10px; + padding-bottom: 12px; +} + +.woocommerce.widget_top_rated_products ul.product_list_widget li:first-child { + margin-top: 0; +} + +.woocommerce.widget_top_rated_products ul.product_list_widget li:last-child { + padding-bottom: 0; +} + +.sidebar .widget.widget_nav_menu ul li a, +.sidebar .widget.widget_pages ul li a { + display: block; +} + +.sidebar .widget.widget_shopping_cart .widget_shopping_cart_content, +.sidebar .widget.widget_nav_menu .menu-all-pages-container { + padding: 1.875rem; +} + +.sidebar .widget_layered_nav ul li a, +.sidebar .widget_pages ul li a, +.sidebar .widget.widget_nav_menu ul li a { + line-height: 45px; +} + +.sidebar .widget_layered_nav ul li a, +.sidebar .widget_pages ul li a, +.sidebar .widget_recent_comments a, +.sidebar .widget_recent_entries li a, +.sidebar .widget.widget_nav_menu ul li a { + color: var(--bs-secondary); +} + +.sidebar .widget_custom_html .contact-area { + margin-bottom: 18px; +} + +.sidebar .widget_custom_html .contact-area:last-child { + margin-bottom: 0; +} + +.sidebar .widget_custom_html .contact-info, +.sidebar .widget_custom_html .contact-info a { + color: var(--bs-white); +} + +.sidebar .widget_top_rated_products .star-rating { + position: absolute; + bottom: 4px; + right: 0; + font-size: 14px; +} + +.sidebar .widget_layered_nav ul li a:hover, +.sidebar .widget_layered_nav ul li a:focus, +.sidebar .widget_pages ul li a:hover, +.sidebar .widget_pages ul li a:focus, +.sidebar .widget_recent_comments a:hover, +.sidebar .widget_recent_comments a:focus, +.sidebar .widget_meta ul li a:hover, +.sidebar .widget_meta ul li a:focus, +.sidebar .widget_recent_entries ul li a:hover, +.sidebar .widget_recent_entries ul li a:focus, +.sidebar .widget.widget_nav_menu ul li a:hover, +.sidebar .widget.widget_nav_menu ul li a:focus { + color: var(--bs-primary); +} + +.sidebar .widget.widget_product_categories ul > li:not(.cat-parent), +.sidebar .widget.widget_archive ul > li, +.sidebar .widget.widget_categories ul > li, +.sidebar .widget ul > li { + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; + border-radius: 0; + font-weight: 600; + color: var(--bs-secondary); + z-index: 1; + padding: 10px 0.7rem 10px 1rem; +} + + +.sidebar .widget:not(.widget_meta):not(.widget_shopping_cart) ul > li:after { + content: "\f101"; + font-family: var(--bs-font-awesome); + font-weight: 600; + font-size: 14px; + position: absolute; + top: 1px; + left: 0; + bottom: 0; + color: var(--bs-secondary); + display: flex; + align-items: center; + margin: auto 0; + -webkit-transition: var(--bs-transition-slow); + transition: var(--bs-transition-slow); + z-index: -1; +} + +.sidebar .widget:not(.widget_meta) ul > li:hover:after, +.sidebar .widget:not(.widget_meta) ul > li:focus-within:after { + left: 82%; + color: var(--bs-primary); +} + +.sidebar .widget ul > li.wc-block-grid__product:after {display:none !important} + +.sidebar .widget.woocommerce.widget_shopping_cart .cart_list li.mini_cart_item { + padding-left: 0; + border-bottom: none; + margin-bottom: 20px; +} + +.sidebar .widget ul > li:not(:last-child){ + border-bottom: 1px solid var(--bs-gray); +} +.sidebar .widget.widget_product_categories ul > li:not(.cat-parent) > a:not(:hover):not(:focus), +.sidebar .widget.widget_archive ul > li > a:not(:hover):not(:focus), +.sidebar .widget.widget_categories ul > li > a:not(:hover):not(:focus), +.sidebar .widget ul > li > a:not(:hover):not(:focus){ + color: var(--bs-secondary); +} + +.sidebar .widget.widget_product_categories ul > li.cat-parent > a { + margin-bottom: 0; + width: 80%; +} + +.sidebar .widget.widget_product_categories ul > li.cat-parent > span { + width: 35px; + height: 35px; + line-height: 35px; + text-align: center; + display: inline-block; + border-radius: 100px; + margin-left: 0; + vertical-align: middle; + font-weight: 600; + margin-top: -5px; +} + +.sidebar .widget.widget_product_categories ul > li a, +.sidebar .widget.widget_archive ul > li, +.sidebar .widget.widget_categories ul > li { + padding: 10px 0.7rem 10px 1.25rem; + -webkit-transition: var(--bs-transition-slow); + transition: var(--bs-transition-slow); +} + +.sidebar .widget.widget_archive ul > li ul, +.sidebar .widget.widget_categories ul > li ul { + position: absolute; + top: 100%; + left: 0; + width: 100%; + background-color: var(--bs-primary-light); + border: 1px solid #cccccc; + padding: 15px; + border-radius: 10px; + opacity: 0; + visibility: hidden; + z-index: 1; + -webkit-transform: translateY(-15px); + -ms-transform: translateY(-15px); + transform: translateY(-15px); + -webkit-transition: all 500ms ease; + -o-transition: all 500ms ease; + transition: all 500ms ease; +} + +.sidebar .widget.widget_archive ul li:hover > ul, +.sidebar .widget.widget_archive ul li:focus-within > ul, +.sidebar .widget.widget_categories ul li:hover > ul, +.sidebar .widget.widget_categories ul li:focus-within > ul { + visibility: visible; + opacity: 1; + -webkit-transform: scale(1) translateY(0px); + -ms-transform: scale(1) translateY(0px); + transform: scale(1) translateY(0px); +} + +.sidebar .widget.widget_archive ul > li:after, +.sidebar .widget.widget_categories ul > li:after { + content: "\f101"; + font-family: var(--bs-font-awesome); + font-weight: 600; + font-size: 14px; + position: absolute; + top: 1px; + left: 0; + bottom: 0; + transform: rotate(90deg); + color: var(--bs-secondary); + display: flex; + align-items: center; + margin: auto 0; + -webkit-transition: var(--bs-transition-slow); + transition: var(--bs-transition-slow); + z-index: -1; +} + +.sidebar .widget.widget_archive ul > li:hover, +.sidebar .widget.widget_categories ul > li:hover, +.sidebar .widget.widget_archive ul > li:focus-within, +.sidebar .widget.widget_categories ul > li:focus-within { + padding: 10px 0.7rem 10px 0.7rem; + color: var(--bs-primary); +} + +.sidebar .widget.widget_archive ul > li:hover a, +.sidebar .widget.widget_categories ul > li:hover a, +.sidebar .widget.widget_archive ul > li:focus-within a, +.sidebar .widget.widget_categories ul > li:focus-within a { + color: var(--bs-primary) !important; +} + +.sidebar .widget.widget_archive ul > li:hover:after, +.sidebar .widget.widget_categories ul > li:hover:after, +.sidebar .widget.widget_archive ul > li:focus-within:after, +.sidebar .widget.widget_categories ul > li:focus-within:after { + left: 82%; + color: var(--bs-primary); + transform: rotate(0deg); +} + +.widget_product_categories ul.children { + padding-left: 20px; +} + +.widget_top_rated_products li img, +.sidebar .widget.widget_product_categories ul > li span { + width: 35px; + height: 35px; + line-height: 35px; + border-radius: 100%; + text-align: center; + color: var(--bs-white); + background-color: var(--bs-primary); +} + +.widget_top_rated_products li img { + padding: 3px; + float: right; +} + +.widget_top_rated_products li a { + display: flow-root; + line-height: 3.2; + color: var(--bs-white); + background-color: var(--bs-secondary); + border-radius: 10rem; +} + +.widget_top_rated_products li a span { + padding: 1rem 0.87rem 1rem 1.25rem; +} + +.widget_top_rated_products .woocommerce-Price-amount.amount { + display: inline-block; + padding: 10px 20px; + border-radius: 0 0 10rem 10rem; + margin-left: 1.5rem; +} + +.widget_top_rated_products .woocommerce-Price-amount.amount { + background-color: var(--bs-primary); + color: var(--bs-white); +} + +.widget_top_rated_products del .woocommerce-Price-amount.amount { + background-color: var(--bs-gray); + color: var(--bs-white); +} + +.widget.widget_products li:not(:last-child) { + padding-bottom: 1.25rem; + border-bottom: 1px solid var(--bs-gray); +} + +.widget.widget_products ul li { + background-color: var(--bs-secondary); + border-radius: 0.625rem; + overflow: hidden; + padding: 15px; + color: var(--bs-white); +} + +.widget_top_rated_products ul.product_list_widget li img { + margin-top: 9px; + margin-right: 10px; +} + +.widget_products img { + border-radius: 0.625rem; +} + +.widget_products .product-title { + display: block; + margin: 0.5rem 0 0.1rem; + font-weight: 600; + letter-spacing: 0.25px; +} + +.woocommerce.widget_products ul.product_list_widget li { + margin-top: 10px; +} + +.woocommerce.widget_products ul.product_list_widget li:first-child { + margin-top: 0; +} + +.woocommerce-Price-amount.amount { + font-weight: 600; +} + +del .amount { + color: var(--bs-gray-500-thumb); + text-decoration: line-through; +} + +ins .amount { + color: var(--bs-primary); + text-decoration: underline; +} + +.widget.widget_price_filter .price_slider_wrapper { + display: block; + padding-top: 6px; +} + +.woocommerce .widget_price_filter .ui-slider span.ui-slider-handle, +.woocommerce .widget_price_filter .ui-slider div.ui-slider-range { + background-color: var(--bs-primary); +} + +.wp-block-calendar thead th { + background: var(--bs-primary); + color: var(--bs-white); +} + +.calendar_wrap table tbody #today, +.calendar_wrap table tbody a:hover, +.calendar_wrap table tbody a:focus { + color: var(--bs-white); + background-color: var(--bs-primary); + border-radius: 0; +} + +.sidebar .calendar_wrap table tbody a { + display: block; + border-radius: 0; + color: #ffffff; +} + +.calendar_wrap table td a { + white-space: nowrap; +} + +.sidebar .widget select { + margin: 15px auto 0; +} + +.sidebar .widget select:not(:hover), +.sidebar .widget select:not(:focus) { + border-color: transparent; +} + +.sidebar [class*='widget-']:not(.widget-info):not(.widget_social_widget) li a:before { + color: inherit; +} + +.sidebar .widget-contact { + color: var(--bs-white); + background-color: var(--bs-primary); + padding: 30px; +} + +.sidebar .widget-contact .widget-title:first-letter { + color: var(--bs-white); +} + +.sidebar .widget.widget-contact .widget-title { + border-bottom: none; + margin: 0; +} + +.sidebar .widget-contact .contact-icon { + width: 35px; + height: 35px; + line-height: 2.25; + text-align: center; + background-color: var(--bs-white); + border-radius: 50%; +} + +.sidebar .widget-contact .contact-area { + margin-bottom: 1rem; +} + +.sidebar .widget-contact a:hover, +.sidebar .widget-contact a:focus { + color: var(--bs-white) +} + +.sidebar .widget.widget_text { + color: var(--bs-white); + background-color: var(--bs-secondary); +} + +.sidebar .textwidget { + padding: 1.875rem; + text-align: center; + font-weight: 500; +} + +.sidebar .textwidget p:last-child { + margin-bottom: 0; +} + +.sidebar .textwidget strong { + font-size: 1.125rem; +} + +.widget_text .textwidget img { + display: inline-block; +} + +.sidebar .widget_text .widget.widget_social_widget { + padding: 0; + margin-bottom: 1rem; + background: none; +} + +.footer-section .widget_text .textwidget p { + text-align: justify; +} + +/* ---//--- */ + + +/* Footer Widget*/ + +.footer-main .widget { + margin-bottom: 2.3rem; +} + +.footer-main .widget_text .widget { + margin-bottom: 1.5rem; +} + +.footer-main .widget_text .logo + p { + margin-bottom: 2rem; +} + +.footer-main .widget_text .widget *:not(:hover):not(:focus) { + color: var(--bs-white); +} + +.main-footer .widget_latest_posts .featured-image .post-hover, +.main-footer .widget_media_image img { + border: 1px solid #202052; +} + +.footer-copyright .widget { + display: inline-block; + max-width: 100%; +} + +.main-footer .widget ul ul { + padding-left: 15px; +} + +.footer-main .widget:not(.widget-info):not(.widget_social_widget):not(.widget_calender):not(.widget_tag) li:not(:last-child) a:not(.wp-block-social-link-anchor) { + margin-bottom: 0; + border-bottom: 1px solid rgb(171 171 171 / 0.20); +} + +.footer-main .widget:not(.widget-info):not(.widget_social_widget):not(.widget_calender):not(.widget_tag) li a:not(.wp-block-social-link-anchor) { + display: block; + line-height: 40px; + left:20px; +} + +.footer-copyright .widget:not(.widget-info):not(.widget_social_widget) li:not(:first-child) a { + padding-left: 22px; + border-left: 1px solid var(--bs-primary); +} + +.header-widget .widget_media_gallery img, +.sidebar .widget_media_gallery img { + margin: auto; +} + +.sidebar .widget_media_gallery .gallery-item, +.footer .widget_media_gallery .gallery-item { + border-radius: 5px; + overflow: hidden; +} + +.footer:not(.footer-main .footer-center):not(.footer-main .footer-right) .widget_media_gallery img { + margin: auto 0; +} + +.footer-main .widget-text .logo + p { + margin-top: 25px; +} + +.footer-copyright .widget_media_gallery { + max-width: 150px; + min-height: 44px; +} + +.footer-copyright .widget ul { + margin-top: -0.75rem; +} + +.footer-copyright .widget li { + display: inline-block; + margin-top: 0.75rem; +} + +.footer-copyright .widget li:not(:last-child) { + margin-right: 1.25rem; +} + + +.footer-main .wp-block-embed iframe { + height: auto; +} + +/* ---//--- */ + +button.wp-block-search__button.wp-element-button { + width: 50%; + border-radius: 5px; +} + + +.footer-main button.wp-block-search__button.wp-element-button { + width: 100%; +} + +/*===== * Cart =====*/ + +.widget_shopping_cart_content .cart-header i, +.cart-wrapper .cart-icon-wrap i { + display: inline-block; + color: inherit; + vertical-align: middle; + font-size: 22px; +} + +.cart-icon-wrap, +.cart-wrapper { + position: relative; +} + +.cart-wrapper .cart-icon-wrap .cart-count span { + position: absolute; + top: 20px; + right: 0; + width: 20px; + height: 20px; + line-height: 2.05; + display: inline-block; + font-size: 10px; + color: var(--bs-white); + border-width: 1px; + border-style: solid; + border-radius: 50%; + text-align: center; + background-color: var(--bs-primary); +} + +.shopping-cart { + position: absolute; + top: 100%; + right: 0; + z-index: 1; + width: 250px; + padding: 12px; + color: var(--bs-primary); + background: var(--bs-white); + border-radius: 0 3px 3px; + border: 0; + border-top: 3px solid var(--bs-primary); + opacity: 0; + visibility: hidden; + -webkit-box-shadow: 0 15px 30px -5px rgba(0, 0, 0, 0.07); + box-shadow: 0 15px 30px -5px rgba(0, 0, 0, 0.07); + -webkit-transform: translate3d(0, -5px, 0); + transform: translate3d(0, -5px, 0); + -webkit-transition: var(--bs-transition); + transition: var(--bs-transition); +} + +.shopping-cart:after { + top: -8px; + left: 95%; + content: ""; + position: absolute; + width: 11px; + height: 11px; + border: 3px solid; + background-color: var(--bs-white); + border-right: none; + border-bottom: none; + -ms-transform: translateX(-50%) rotate(45deg); + transform: translateX(-50%) rotate(45deg); +} + +.shopping-cart:after { + right: 15%; +} + +.cart-icon-wrap:hover .shopping-cart, +.cart-icon-wrap:focus .shopping-cart { + opacity: 1; + visibility: visible; + -webkit-transform: translate3d(0, 2px, 0); + transform: translate3d(0, 2px, 0); +} + +.widget_shopping_cart_content .cart-header, +.shopping-cart .cart-header { + display: flex; + align-items: center; + justify-content: space-between; + color: var(--bs-primary); + border-bottom: 1px solid #E8E8E8; + padding-bottom: 15px; +} + +.shopping-cart .cart-badge { + color: var(--bs-white); + font-size: 10px; + margin: 0; + width: 16px; + height: 16px; + line-height: 1.6; + text-align: center; + vertical-align: super; + border-radius: 100px; + display: inline-block; + background-color: var(--bs-primary); +} + +.widget_shopping_cart_content ul.cart-items, +div.shopping-cart ul.cart-items { + padding: 0; + margin: 0; + padding-top: 20px; + padding-bottom: 20px; + list-style: none; + max-height: 100%; + overflow-x: hidden; + overflow-y: auto; +} + +.widget_shopping_cart ul.cart-items li, +div.shopping-cart ul.cart-items li { + display: inline-block; + width: 100%; + margin: 0 0 10px 0; + padding: 0; + font-size: 15px; + position: relative; +} + +.widget_shopping_cart ul.cart-items li a:not(.remove), +div.shopping-cart ul.cart-items li a:not(.remove) { + line-height: 10px; +} + +.shopping-cart .cart-items .item-img { + float: left; + margin-right: 12px; + width: 70px; + height: 70px; + border-radius: 50%; + text-align: center; + line-height: 4.5; + border-width: 1px; + border-style: solid; + border-color: var(--bs-primary); +} + +.shopping-cart .cart-items .item-img img { + width: 100%; + border-radius: 50%; + display: inline-block; + float: none; + margin: auto; +} + +.shopping-cart .cart-items .item-name { + font-size: 14px; + font-weight: 600; + display: block; + padding-top: 15px; +} + +.shopping-cart .cart-items .amount { + font-size: 12px; + font-weight: 600; + margin-right: 0; + color: #222; +} + +.shopping-cart .cart-items .quantity { + font-size: 12px; + font-weight: 600; + vertical-align: text-bottom; + color: var(--bs-primary); + justify-content: flex-start; +} + +.shopping-cart .btn { + display: block; + line-height: 24px; + font-size: 1.125rem; + letter-spacing: 0.35px; +} + +.widget_shopping_cart .btn i, +.shopping-cart .btn i { + font-size: 12px; + margin-left: 5px; + position: relative; + top: -1px; +} + +.widget_shopping_cart ul a.remove, +div.shopping-cart ul a.remove { + float: right; + margin-top: 0; + width: 20px; + height: 20px; + line-height: 20px; + text-align: center; + border-radius: 100%; + color: var(--bs-white) !important; + background-color: var(--bs-primary); + box-shadow: 0 0 10px rgb(0 0 0 / 0.15); +} + + +.sidebar .woocommerce.widget_shopping_cart .cart_list li a.remove { + position: relative; + margin-left: 10px; +} +/*===== // =====*/ + +.select2-container--default .select2-results__option[aria-selected=true], .select2-container--default .select2-results__option[data-selected=true] { + background-color: var(--bs-primary-light); +} + +.select2-container--default .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-results__option--highlighted[data-selected] { + background-color: var(--bs-primary); +} + +.abiz-content .container.woo-container { + padding: 0; +} + +.woo-container .row { + width: 100%; + flex-basis: 100%; +} + +.abiz-content .woocommerce div.product { + margin-bottom: 30px; +} + +.woocommerce form.woocommerce-ordering { + margin: 0 0 2em; +} + +.abiz-content .page-title { + margin-bottom: 1.25rem; +} + +/* Woo Product Style */ + +.woocommerce .woocommerce-ordering select.orderby { + background-color: var(--bs-white); + box-shadow: 0 0 10px rgb(0 0 0 / 0.1); + border-color: #ececec; + cursor: pointer; +} + +.woocommerce p.woocommerce-result-count { + margin: 0; + padding: 13px 16px; + background-color: var(--bs-primary); + color: var(--bs-white); +} + +.product-single { + background-color: #ffffff; + border: 1px solid rgb(238 238 238 / 85%); + box-shadow: 0px 10px 30px rgb(5 5 5 / 8%); + border-radius: 15px; + overflow: hidden; + transition: all 500ms ease 0s; +} + +.product-single:hover, +.product-single:focus-within { + box-shadow: 0px -10px 20px rgb(5 5 5 / 12%); +} + +.product-fimg { + position: relative; + overflow: hidden; +} + +.woocommerce ul.products li.product a { + display: inline-block; + color: inherit; +} + +.woocommerce ul.products li.product .product-fimg a img { + margin: 0; +} + +.product-single .product-content-wrap { + padding: 20px 30px; + background-color: #ffffff; +} + +.sale-ribbon { + position: absolute; + top: 12px; + left: 12px; + display: inline-block; + padding: 0 20px; + line-height: 30px; + background: var(--bs-primary); + font-weight: 600; + color: var(--bs-white); + border-radius: 20px; + letter-spacing: 0.5px; + text-transform: uppercase; +} + +.woocommerce ul.products li.product .product-single h3 { + font-size: 18px; + padding: 0; + margin-bottom: 8px; + color: var(--bs-secondary); +} + +.woocommerce ul.products li.product div.price { + font-size: 18px; + line-height: 1.2; +} + +.woocommerce ul.products li.product .product-action { + position: absolute; + bottom: 6px; + left: 0; + width: 100%; + padding: 20px; + text-align: center; + transform: translateY(100%); + opacity: 0; + transition: var(--bs-transition-slow); +} + +.woocommerce ul.products li.product .product-action .button { + margin: auto; +} + +.woocommerce ul.products li.product .product-single:hover .product-action, +.woocommerce ul.products li.product .product-single:focus-within .product-action { + opacity: 1; + transform: translateY(0); +} + +.woocommerce ul.products li.product .product-action .button.add_to_cart_button, +.woocommerce ul.products li.product .product-action .yith-wcwl-add-button, +.woocommerce ul.products li.product .product-action .compare { + background-color: var(--bs-primary); + color: var(--bs-white); +} + +.woocommerce ul.products li.product a.wc-forward { + margin-left: 12px; + font-weight: 600; + display: inline-block; + padding: 0 16px; + line-height: 35px; + border-radius: 100px; + background-color: var(--bs-secondary); + color: var(--bs-white); +} + +.product .product-single .price del span { + color: #b7b7b7; + text-decoration-line: line-through; +} + +.woocommerce-page.woocommerce-cart #content table.cart td.actions .coupon input.input-text[type="text"] { + min-height: 38px; +} + +.woocommerce #reviews #comments h3 { + font-size: 28px; + letter-spacing: 0.5px; + margin-bottom: 20px; +} + +.woocommerce div.product .woocommerce-tabs .panel h3 { + font-size: 30px; + margin-bottom: 10px; +} + +.related.products h3 { + text-transform: capitalize; +} + +.product .product-single ul.rate { + margin-top: 15px; + font-size: 16px; +} + +.product .product-single ul.rate li i.fa.fa-star:before { + margin-right: 5px; +} + +.product .product-single ul.rate { + transform: translateX(-100%); + margin-top: -40px; + font-size: 16px; + width: 100%; + text-align: left; + opacity: 0; + visibility: hidden; + -webkit-transition: .3s; + transition: .3s; +} + +.product .product-single ul.rate li { + background-color: rgb(17 17 17 / 0.7); + display: inline-block; + text-align: center; + color: var(--bs-white); + min-height: 40px; + line-height: 40px; + padding: 0 17px; + border-radius: 0 20px 0 0; +} + +.product .product-single:hover ul.rate, +.product .product-single:focus-within ul.rate { + opacity: 1; + visibility: visible; + transform: translateX(0); +} + +p.woocommerce-notice.woocommerce-notice--success { + margin-bottom: 15px; + padding: 15px; + border-top: 2px solid transparent; +} + +.woocommerce ul.order_details { + padding: 15px 15px 0; + background-color: var(--bs-white); + border: 1px solid #d3ced2; +} + +.woocommerce ul.order_details li { + margin-bottom: 15px; +} + +.woocommerce .woocommerce-order h2 { + font-size: 32px; + margin-bottom: 15px; +} + +.woocommerce section.woocommerce-customer-details address { + border-radius: 0; + border: 1px solid #d3ced2; + padding: 22px; +} + +p.woocommerce-notice.woocommerce-notice--success, +div.woocommerce-info, +p.woocommerce-info, +li.woocommerce-info { + border-color: var(--bs-primary); + background-color: var(--bs-white); + box-shadow: 0 6px 25px -5px rgb(0 0 0 / 0.12); +} + +p.woocommerce-notice.woocommerce-notice--success a, +div.woocommerce-info a, +p.woocommerce-info a, +li.woocommerce-info a, +p.woocommerce-notice.woocommerce-notice--success:before, +div.woocommerce-info:before, +p.woocommerce-info:before, +li.woocommerce-info:before { + color: var(--bs-primary); +} + +.product .product-single a.added_to_cart.wc-forward { + font-weight: 600; + letter-spacing: 0.5px; + display: block; +} + +.dark-product .product-single { + background-color: var(--bs-primary); +} + +.dark-product .product-single h2, +.dark-product .product-single .woocommerce-Price-amount.amount { + color: var(--bs-white); +} + +.woocommerce .dark-product div.product-single a.button, +.woocommerce div.product-single .dark-product a.button.product_type_simple.add_to_cart_button.ajax_add_to_cart { + color: var(--bs-primary); + background-color: var(--bs-white); +} + +.dark-product .product-single a.added_to_cart.wc-forward { + color: var(--bs-white); +} + +.single-product .product .product_title.entry-title { + letter-spacing: 0.65px; + font-size: 34px; + margin-bottom: 3px; +} + +.single-product .product p.price { + margin-bottom: 10px; +} + +.single-product .product .product_meta > span { + display: block; +} + +.single-product .product .single_add_to_cart_button { + margin-left: 10px; +} + +.woocommerce .col2-set div.col-2, .woocommerce-page .col2-set div.col-2, +.woocommerce .col2-set div.col-1, .woocommerce-page .col2-set div.col-1 { + width: 48%; + max-width: 100%; +} + +span.woocommerce-input-wrapper { + width: 100%; +} + +.select2-container--default span.select2-selection--single { + height: 34px; + border-radius: 0; + background-color: #fbfbfb; + border-color: #e9e9ea; +} + +.select2-container--default .select2-selection--single span.select2-selection__rendered { + line-height: 34px; +} + +.select2-container--default .select2-selection--single span.select2-selection__arrow { + height: 30px; +} + +.woocommerce form p.form-row { + margin: 0 0 10px; +} + +.woocommerce-checkout-review-order li { + position: relative; +} + +.woocommerce-checkout-review-order li label { + margin-bottom: 0; + vertical-align: middle; + line-height: 1.5; + display: inline-flex; + align-items: center; +} + +.woocommerce-checkout div#payment.woocommerce-checkout-payment { + background-color: var(--bs-white); + box-shadow: 0 3px 30px -6px rgb(0 0 0 / 0.15); +} + +#add_payment_method #payment div.payment_box, +.woocommerce-cart #payment div.payment_box, +body.woocommerce-checkout #payment div.payment_box { + background-color: var(--bs-primary-light); + border: 2px solid var(--bs-primary); +} + +#add_payment_method #payment div.payment_box::before, +.woocommerce-cart #payment div.payment_box::before, +body.woocommerce-checkout #payment div.payment_box::before { + border-color: var(--bs-primary); + border-right-color: transparent !important; + border-left-color: transparent !important; + border-top-color: transparent !important; + top: -0.95em; +} + +.woocommerce-checkout-review-order #payment ul.payment_methods label img { + height: 38px; + margin-left: 0.75em; +} + +.woocommerce-checkout #payment .payment_method_paypal a.about_paypal { + padding: 0 10px; + background-color: var(--bs-white); + line-height: 30px; + border-radius: 20px; + font-weight: 600; + box-shadow: 0 0 10px -2px rgb(0 0 0 / 0.2); +} + +.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper { + margin-bottom: 18px; +} + +.woocommerce form .form-row textarea.input-text { + padding: 7px; +} + +.woocommerce .quantity .qty { + padding: .25rem; + min-height: 34px; +} + +.woocommerce table.shop_table a.remove { + background-color: var(--bs-primary); + color: var(--bs-white) !important; +} + +.woocommerce form .form-row input.input-checkbox, +.woocommerce form .form-row input.input-checkbox#terms { + outline: none; + outline-offset: unset; + display: inline-block; +} + +.woocommerce #respond input#submit, +.woocommerce a.button, +.woocommerce button.button, +.woocommerce input.button, +.woocommerce #respond input#submit:hover, +.woocommerce a.button:hover, +.woocommerce button.button:hover, +.woocommerce input.button:hover, +.woocommerce #respond input#submit.alt, +.woocommerce a.button.alt, +.woocommerce button.button.alt, +.woocommerce input.button.alt, +.woocommerce #respond input#submit.alt:hover, +.woocommerce a.button.alt:hover, +.woocommerce button.button.alt:hover, +.woocommerce input.button.alt:hover, +.woocommerce ul.products li.product .product-action .yith-wcwl-add-button, +.woocommerce ul.products li.product .product-action .compare { + font-weight: 600; + color: var(--bs-white); + background-color: var(--bs-primary); + border-radius: 100px; + overflow: hidden; + font-size: 0.95rem; +} + + +.product-action .yith-wcwl-add-button{ + padding: 0.5em 1em; + margin-bottom: 10px; + margin-top: -5px; +} + +.woocommerce-page.woocommerce-cart #content table.cart td.actions .coupon input.input-text[type="text"] { + padding: 7px 6px 6px; + width: 100%; + max-width: 180px; +} + +.woocommerce #respond input#submit.disabled, +.woocommerce #respond input#submit:disabled, +.woocommerce #respond input#submit:disabled[disabled], +.woocommerce a.button.disabled, .woocommerce a.button:disabled, +.woocommerce a.button:disabled[disabled], +.woocommerce button.button.disabled, +.woocommerce button.button:disabled, +.woocommerce button.button:disabled[disabled], +.woocommerce input.button.disabled, +.woocommerce input.button:disabled, +.woocommerce input.button:disabled[disabled] { + color: var(--bs-white); +} + +@media only screen and (min-width:992px) { + .woocommerce-checkout #payment .payment_method_paypal a.about_paypal { + position: absolute; + right: 0; + } +} + +@media only screen and (max-width:991px) { + + .woocommerce ul.order_details li { + float: none; + border-right: 0; + padding-bottom: 10px; + border-bottom: 1px dashed #d3ced2; + } + + .woocommerce p.woocommerce-result-count { + display: block; + text-align: center; + width: 100%; + } + + .woocommerce .woocommerce-ordering { + display: block; + width: 100%; + margin-top: 0.5em; + } + + .woocommerce .col2-set div.col-2, .woocommerce-page .col2-set div.col-2, + .woocommerce .col2-set div.col-1, .woocommerce-page .col2-set div.col-1 { + width: 100%; + max-width: 100%; + } + +} + +.product .product-single .sale-ribbon { + position: absolute; + top: 15px; + left: 15px; + margin: 0; + font-size: 13px; + font-weight: 600; + text-align: center; + padding: 3px 12px; + text-transform: uppercase; + color: var(--bs-white); + background: var(--bs-primary) none repeat scroll 0 0; + box-shadow: 0 0 12px rgb(255 255 255 / 0.35); + z-index: 1; +} + +/* My Account Page Start */ + +.woocommerce-account .addresses .title .edit, +.woocommerce table.my_account_orders td.woocommerce-orders-table__cell-order-number a, +.woocommerce-account .woocommerce-MyAccount-content p a { + color: var(--bs-primary); +} + +.woocommerce-MyAccount-navigation ul { + background-color: var(--bs-primary-light); + border: 1px solid #e5e5e5; + padding: 0; + list-style: none; + margin: 0; +} + +.woocommerce-MyAccount-navigation ul li a { + display: block; + padding: 10px 20px; + line-height: 1.5; + border-width: 0; + border-style: solid; + border-left-width: 2px; + border-left-color: transparent; + border-bottom-width: 1px; + border-bottom-color: #e5e5e5; + color: #2c3145; + -webkit-transition: .3s all; + transition: .3s all; +} + +.woocommerce-MyAccount-navigation ul li.is-active a, +.woocommerce-MyAccount-navigation ul li a:hover, +.woocommerce-MyAccount-navigation ul li a:focus { + background-color: var(--bs-white); + border-left-color: var(--bs-primary); +} + +.woocommerce-account .woocommerce-MyAccount-content { + border: 1px solid #e5e5e5; + padding: 20px; + background-color: #fbfbfb; + min-height: 254px; +} + +.woocommerce .woocommerce-Addresses { + margin-top: 15px; +} + +.woocommerce .woocommerce-Addresses .woocommerce-Address { + border: 1px solid #e5e5e5; + padding: 15px; +} + +.woocommerce-account .addresses address { + margin-bottom: 0; +} + +.woocommerce-account .edit-account .woocommerce-form-row input.woocommerce-Input { + min-height: 38px; + padding: 8px 15px; +} + +.woocommerce-account .edit-account .woocommerce-form-row em { + margin-top: 5px; + display: block; +} + +.woocommerce-account .edit-account .woocommerce-form-row { + display: inline-block; +} + +.woocommerce-account .edit-account .woocommerce-Button { + margin-top: 10px; +} + +.woocommerce-Address-title { + position: relative; +} + +.woocommerce-Address-title a.edit { + position: absolute; + top: 0; + right: 0; +} + +@media only screen and (max-width:991px) { + .woocommerce .woocommerce-Addresses .woocommerce-Address { + width: 100% !important; + float: none !important; + } + .woocommerce .woocommerce-Addresses .woocommerce-Address:not(:last-child) { + margin-bottom: 15px; + } + + .work-process-section-2 { + background-image: none !important; + } + .faq-section .work-process-right { + margin-top: 4rem; + } +} + +/* My Account Page End */ + +.woocommerce span.onsale { + background-color: var(--bs-primary); + z-index: 2; +} + +.woocommerce form .form-row input.input-text { + min-height: 35px; + padding: 7px; +} + +.woocommerce table.shop_table th { + color: var(--bs-white); + background-color: var(--bs-primary); +} + +.woocommerce .blockUI.blockOverlay { + z-index: 1 !important; +} + +.woocommerce form .woocommerce-address-fields .form-row label { + display: inline-block; +} + +.wp-caption{} +.wp-caption-text{} +.gallery-caption{} +.bypostauthor{} +.alignright{} +.alignleft{} +.aligncenter{} + + + +.gallery-item { + flex: 0 0 20%; + max-width: 20%; + margin: 0; + width: 100%; + overflow: hidden; + position: relative; + z-index: 0; + background-color: #ececec; + padding: 0; + text-align: center; + float: left; +} +.gallery-item .gallery-icon img{ + -webkit-transition: var(--bs-transition); + transition: var(--bs-transition); + width:100%; +} +.gallery-item .gallery-caption{ + font-weight: 400; + position: absolute; + top: 0; + bottom: 0; + left: 0; + margin: auto; + padding: 58px 28px; + color: var(--bs-white); + text-align: center; + display: -webkit-box; + display: -moz-box; + display: -ms-flexbox; + display: -moz-flex; + display: -webkit-flex; + display: flex; + flex-direction: column; + -webkit-justify-content: center; + -moz-justify-content: center; + -ms-justify-content: center; + justify-content: center; + width: 100%; + height: 100%; + opacity: 0; + visibility: hidden; + -webkit-transition: all 0.3s; + transition: all 0.3s; + clear: left; + font-style: italic; + line-height: 1.5em; + text-align: center; +} +.gallery-item .gallery-caption:before{ + position: absolute; + top: 50%; + right: 30px; + bottom: 50%; + left: 30px; + /*border-top: 1px solid var(--bs-white); + border-bottom: 1px solid var(--bs-white);*/ + border: 2px solid #fff; + border-radius: 5px; + content: ''; + opacity: 0; + background-color: var(--bs-white); + -webkit-transition: all 0.4s; + transition: all 0.4s; + -webkit-transition-delay: 0.6s; + transition-delay: 0.6s; +} +.gallery-item .gallery-caption i { + font-size: 20px; + width: 44px; + height: 44px; + line-height: 2.3; + border-radius: 50%; + margin: 0 auto; + background-color: var(--bs-primary); + display: inline-block; + transition: .5s ease-in; + visibility: hidden; + opacity: 0; + transform: translateY(100px); +} +.gallery-item:hover .gallery-icon img{ + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); +} +.gallery-item:hover .gallery-caption{ + opacity: 1; + visibility: visible; + background: url(../images/bg/gallery-img-bg.png) repeat 0, 0 rgba(0,0,0,.6); +} +.gallery-item:hover .gallery-caption:before{ + background: rgba(255, 255, 255, 0); + top: 30px; + bottom: 30px; + opacity: 1; + -webkit-transition-delay: 0s; + transition-delay: 0s; +} +.gallery-item:hover i{ + visibility: visible; + opacity: 1; + transform: translateY(0px); +} + + + + + + +@-webkit-keyframes slideInUp { + from { + -webkit-transform: translate3d(0,100%,0); + transform: translate3d(0,100%,0); + visibility: visible + } + + to { + -webkit-transform: translate3d(0,0,0); + transform: translate3d(0,0,0) + } +} + +@keyframes slideInUp { + from { + -webkit-transform: translate3d(0,100%,0); + transform: translate3d(0,100%,0); + visibility: visible + } + + to { + -webkit-transform: translate3d(0,0,0); + transform: translate3d(0,0,0) + } +} + +.slideInUp { + -webkit-animation-name: slideInUp; + animation-name: slideInUp +} + +.card-404 { + position: relative; +} + +.card-404-content{ + margin-top:4rem; +} + +.error-img { + height: 80px; + position: relative; + fill: var(--bs-primary); +} + +.card-404 h2 { + position: absolute; + font-size: 19rem; + color: var(--bs-gray); + z-index: -1; + top: 0; + left: 0; + right: 0; + bottom: 0; +} + +.card-404 .card-404-btn { + margin-top: 95px; +} + +@media only screen and (max-width: 1200px) and (min-width: 993px) { + .card-404 h2 { + font-size: 17rem; + } +} +@media only screen and (max-width: 513px){ + .card-404 h2 { + font-size: 12rem; + } + .card-404 .card-404-btn { + margin-top: 40px; + } +} + +.wp-block-image figcaption { + text-align: center; +} + +.wp-block-post-author img { + border-radius: 100%; +} + +.sidebar .widget .wp-block-latest-comments { + padding: 1.8rem; +} + +.wp-block-site-title a { + text-decoration: none; +} + +.wp-block-image .alignleft figcaption { + text-align: left; +} + +.wp-block-image figcaption { + text-align: center; +} + +.wp-block-embed figcaption { + text-align: center; +} + +.wp-block-site-title.has-background { + padding: 1rem; +} + +.wp-block-site-tagline.has-background { + padding: 1rem; +} + +.wp-block-post-title a:hover, +.wp-block-post-title a:focus { + color: var(--bs-primary); +} + +.wp-block-categories li a { + color: var(--bs-secondary); +} + +.is-large.wc-block-cart .wc-block-cart__totals-title { + font-size: 2.5rem; +} + +table.wc-block-cart-items .wc-block-cart-items_row .wc-block-cart-itemquantity .wc-block-cart-item_remove-link { + text-decoration: none; +} + +.wp-block-file.has-background { + padding: 0.5rem; +} + +.sidebar .wp-block-latest-comments li a { + color: var(--bs-secondary); +} + +.sidebar .wp-block-latest-comments li a:hover, +.sidebar .wp-block-latest-comments li a:focus { + color: var(--bs-primary); +} + +.about-section .about-video-btn { + text-decoration: none; +} + +.woocommerce table.shop_table td a { + text-decoration: none; +} + +.footer-main .widget li a:focus { + outline: none; +} + +.sidebar .widget li a:focus { + outline: none; +} \ No newline at end of file diff --git a/wp-content/themes/abiz/assets/css/owl.carousel.css b/wp-content/themes/abiz/assets/css/owl.carousel.css new file mode 100644 index 0000000..9cb1206 --- /dev/null +++ b/wp-content/themes/abiz/assets/css/owl.carousel.css @@ -0,0 +1,591 @@ +/** owl.carousel.min.css +* Owl Carousel v2.3.4 +* Copyright 2013-2018 David Deutsch +* Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE +*/ + +.owl-carousel, +.owl-carousel .owl-item { + -webkit-tap-highlight-color: transparent; + position: relative +} + +.owl-carousel { + display: none; + width: 100%; + z-index: 1 +} + +.owl-carousel .owl-stage { + position: relative; + -ms-touch-action: pan-Y; + touch-action: manipulation; + -moz-backface-visibility: hidden +} + +.owl-carousel .owl-stage:after { + content: "."; + display: block; + clear: both; + visibility: hidden; + line-height: 0; + height: 0 +} + +.owl-carousel .owl-stage-outer { + position: relative; + overflow: hidden; + -webkit-transform: translate3d(0, 0, 0) +} + +.owl-carousel .owl-item, +.owl-carousel .owl-wrapper { + -webkit-backface-visibility: hidden; + -moz-backface-visibility: hidden; + -ms-backface-visibility: hidden; + -webkit-transform: translate3d(0, 0, 0); + -moz-transform: translate3d(0, 0, 0); + -ms-transform: translate3d(0, 0, 0) +} + +.owl-carousel .owl-item { + min-height: 1px; + float: left; + -webkit-backface-visibility: hidden; + -webkit-touch-callout: none +} + +.owl-carousel .owl-item img { + display: block; + width: 100% +} + +.owl-carousel .owl-dots.disabled, +.owl-carousel .owl-nav.disabled { + display: none +} + +.no-js .owl-carousel, +.owl-carousel.owl-loaded { + display: block +} + +.owl-carousel .owl-dot, +.owl-carousel .owl-nav .owl-next, +.owl-carousel .owl-nav .owl-prev { + cursor: pointer; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none +} + +.owl-carousel .owl-nav button.owl-next, +.owl-carousel .owl-nav button.owl-prev, +.owl-carousel button.owl-dot { + color: inherit; + border: none; + padding: 0 !important; + font: inherit +} + +.owl-carousel.owl-loading { + opacity: 0; + display: block +} + +.owl-carousel.owl-hidden { + opacity: 0 +} + +.owl-carousel.owl-refresh .owl-item { + visibility: hidden +} + +.owl-carousel.owl-drag .owl-item { + -ms-touch-action: pan-y; + touch-action: pan-y; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none +} + +.owl-carousel.owl-grab { + cursor: move; + cursor: grab +} + +.owl-carousel.owl-rtl { + direction: rtl +} + +.owl-carousel.owl-rtl .owl-item { + float: right +} + +.owl-carousel .animated { + animation-duration: 1s; + animation-fill-mode: both +} + +.owl-carousel .owl-animated-in { + z-index: 0 +} + +.owl-carousel .owl-animated-out { + z-index: 1 +} + +.owl-carousel .fadeOut { + animation-name: fadeOut +} + +@keyframes fadeOut { + 0% { + opacity: 1 + } + 100% { + opacity: 0 + } +} + +.owl-height { + transition: height .5s ease-in-out +} + +.owl-carousel .owl-item .owl-lazy { + opacity: 0; + transition: opacity .4s ease +} + +.owl-carousel .owl-item .owl-lazy:not([src]), +.owl-carousel .owl-item .owl-lazy[src^=""] { + max-height: 0 +} + +.owl-carousel .owl-item img.owl-lazy { + transform-style: preserve-3d +} + +.owl-carousel .owl-video-wrapper { + position: relative; + height: 100%; + background: #000 +} + +.owl-carousel .owl-video-play-icon { + position: absolute; + height: 80px; + width: 80px; + left: 50%; + top: 50%; + margin-left: -40px; + margin-top: -40px; + background: url(owl.video.play.png) no-repeat; + cursor: pointer; + z-index: 1; + -webkit-backface-visibility: hidden; + transition: transform .1s ease +} + +.owl-carousel .owl-video-play-icon:hover { + -ms-transform: scale(1.3, 1.3); + transform: scale(1.3, 1.3) +} + +.owl-carousel .owl-video-playing .owl-video-play-icon, +.owl-carousel .owl-video-playing .owl-video-tn { + display: none +} + +.owl-carousel .owl-video-tn { + opacity: 0; + height: 100%; + background-position: center center; + background-repeat: no-repeat; + background-size: contain; + transition: opacity .4s ease +} + +.owl-carousel .owl-video-frame { + position: relative; + z-index: 1; + height: 100%; + width: 100% +} + +/** owl.theme.default.min.css +* Owl Carousel v2.3.4 +* Copyright 2013-2018 David Deutsch +* Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE +*/ + +.owl-theme .owl-dots, +.owl-theme .owl-nav { + text-align: center; + -webkit-tap-highlight-color: transparent +} + +.owl-theme .owl-nav { + margin-top: 10px +} + +.owl-theme .owl-nav [class*=owl-] { + color: #FFF; + font-size: 14px; + margin: 5px; + padding: 4px 7px; + background: #D6D6D6; + display: inline-block; + cursor: pointer; + border-radius: 3px +} + +.owl-theme:not(.home-slider) .owl-nav [class*=owl-]:hover { + background: #869791; + color: #FFF; + text-decoration: none +} + +.owl-theme .owl-nav .disabled { + opacity: .5; + cursor: default +} + +.owl-theme .owl-nav.disabled+.owl-dots { + margin-top: 28px +} + +.owl-theme .owl-dots .owl-dot { + display: inline-block; + zoom: 1 +} + +.owl-theme .owl-dots .owl-dot span { + width: 10px; + height: 10px; + margin: 5px 7px; + background: #D6D6D6; + display: block; + -webkit-backface-visibility: visible; + transition: opacity .2s ease; + border-radius: 30px +} + +.owl-theme .owl-dots .owl-dot.active span, +.owl-theme .owl-dots .owl-dot:hover span { + background: #869791 +} + +/** owl.transitions.css +* Owl Carousel v2.3.4 +* Copyright 2013-2018 David Deutsch +* Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE +*/ + +.owl-origin { + -webkit-perspective: 1200px; + -webkit-perspective-origin-x: 50%; + -webkit-perspective-origin-y: 50%; + -moz-perspective: 1200px; + -moz-perspective-origin-x: 50%; + -moz-perspective-origin-y: 50%; + perspective: 1200px +} + +.owl-fade-out { + z-index: 10; + -webkit-animation: fadeOut .7s both ease; + -moz-animation: fadeOut .7s both ease; + animation: fadeOut .7s both ease +} + +.owl-fade-in { + -webkit-animation: fadeIn .7s both ease; + -moz-animation: fadeIn .7s both ease; + animation: fadeIn .7s both ease +} + +.owl-backSlide-out { + -webkit-animation: backSlideOut 1s both ease; + -moz-animation: backSlideOut 1s both ease; + animation: backSlideOut 1s both ease +} + +.owl-backSlide-in { + -webkit-animation: backSlideIn 1s both ease; + -moz-animation: backSlideIn 1s both ease; + animation: backSlideIn 1s both ease +} + +.owl-goDown-out { + -webkit-animation: scaleToFade .7s ease both; + -moz-animation: scaleToFade .7s ease both; + animation: scaleToFade .7s ease both +} + +.owl-goDown-in { + -webkit-animation: goDown .6s ease both; + -moz-animation: goDown .6s ease both; + animation: goDown .6s ease both +} + +.owl-fadeUp-in { + -webkit-animation: scaleUpFrom .5s ease both; + -moz-animation: scaleUpFrom .5s ease both; + animation: scaleUpFrom .5s ease both +} + +.owl-fadeUp-out { + -webkit-animation: scaleUpTo .5s ease both; + -moz-animation: scaleUpTo .5s ease both; + animation: scaleUpTo .5s ease both +} + +@-webkit-keyframes empty { + 0% { + opacity: 1 + } +} + +@-moz-keyframes empty { + 0% { + opacity: 1 + } +} + +@keyframes empty { + 0% { + opacity: 1 + } +} + +@-webkit-keyframes fadeIn { + 0% { + opacity: 0 + } + 100% { + opacity: 1 + } +} + +@-moz-keyframes fadeIn { + 0% { + opacity: 0 + } + 100% { + opacity: 1 + } +} + +@keyframes fadeIn { + 0% { + opacity: 0 + } + 100% { + opacity: 1 + } +} + +@-webkit-keyframes fadeOut { + 0% { + opacity: 1 + } + 100% { + opacity: 0 + } +} + +@-moz-keyframes fadeOut { + 0% { + opacity: 1 + } + 100% { + opacity: 0 + } +} + +@keyframes fadeOut { + 0% { + opacity: 1 + } + 100% { + opacity: 0 + } +} + +@-webkit-keyframes backSlideOut { + 25% { + opacity: .5; + -webkit-transform: translateZ(-500px) + } + 75% { + opacity: .5; + -webkit-transform: translateZ(-500px) translateX(-200%) + } + 100% { + opacity: .5; + -webkit-transform: translateZ(-500px) translateX(-200%) + } +} + +@-moz-keyframes backSlideOut { + 25% { + opacity: .5; + -moz-transform: translateZ(-500px) + } + 75% { + opacity: .5; + -moz-transform: translateZ(-500px) translateX(-200%) + } + 100% { + opacity: .5; + -moz-transform: translateZ(-500px) translateX(-200%) + } +} + +@keyframes backSlideOut { + 25% { + opacity: .5; + transform: translateZ(-500px) + } + 75% { + opacity: .5; + transform: translateZ(-500px) translateX(-200%) + } + 100% { + opacity: .5; + transform: translateZ(-500px) translateX(-200%) + } +} + +@-webkit-keyframes backSlideIn { + 0%, + 25% { + opacity: .5; + -webkit-transform: translateZ(-500px) translateX(200%) + } + 75% { + opacity: .5; + -webkit-transform: translateZ(-500px) + } + 100% { + opacity: 1; + -webkit-transform: translateZ(0) translateX(0) + } +} + +@-moz-keyframes backSlideIn { + 0%, + 25% { + opacity: .5; + -moz-transform: translateZ(-500px) translateX(200%) + } + 75% { + opacity: .5; + -moz-transform: translateZ(-500px) + } + 100% { + opacity: 1; + -moz-transform: translateZ(0) translateX(0) + } +} + +@keyframes backSlideIn { + 0%, + 25% { + opacity: .5; + transform: translateZ(-500px) translateX(200%) + } + 75% { + opacity: .5; + transform: translateZ(-500px) + } + 100% { + opacity: 1; + transform: translateZ(0) translateX(0) + } +} + +@-webkit-keyframes scaleToFade { + to { + opacity: 0; + -webkit-transform: scale(.8) + } +} + +@-moz-keyframes scaleToFade { + to { + opacity: 0; + -moz-transform: scale(.8) + } +} + +@keyframes scaleToFade { + to { + opacity: 0; + transform: scale(.8) + } +} + +@-webkit-keyframes goDown { + from { + -webkit-transform: translateY(-100%) + } +} + +@-moz-keyframes goDown { + from { + -moz-transform: translateY(-100%) + } +} + +@keyframes goDown { + from { + transform: translateY(-100%) + } +} + +@-webkit-keyframes scaleUpFrom { + from { + opacity: 0; + -webkit-transform: scale(1.5) + } +} + +@-moz-keyframes scaleUpFrom { + from { + opacity: 0; + -moz-transform: scale(1.5) + } +} + +@keyframes scaleUpFrom { + from { + opacity: 0; + transform: scale(1.5) + } +} + +@-webkit-keyframes scaleUpTo { + to { + opacity: 0; + -webkit-transform: scale(1.5) + } +} + +@-moz-keyframes scaleUpTo { + to { + opacity: 0; + -moz-transform: scale(1.5) + } +} + +@keyframes scaleUpTo { + to { + opacity: 0; + transform: scale(1.5) + } +} \ No newline at end of file diff --git a/wp-content/themes/abiz/assets/css/owl.carousel.min.css b/wp-content/themes/abiz/assets/css/owl.carousel.min.css new file mode 100644 index 0000000..dc24330 --- /dev/null +++ b/wp-content/themes/abiz/assets/css/owl.carousel.min.css @@ -0,0 +1,16 @@ +/** owl.carousel.min.css +* Owl Carousel v2.3.4 +* Copyright 2013-2018 David Deutsch +* Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE +*/ +.owl-carousel,.owl-carousel .owl-item{-webkit-tap-highlight-color:transparent;position:relative}.owl-carousel{display:none;width:100%;z-index:1}.owl-carousel .owl-stage{position:relative;-ms-touch-action:pan-Y;touch-action:manipulation;-moz-backface-visibility:hidden}.owl-carousel .owl-stage:after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}.owl-carousel .owl-stage-outer{position:relative;overflow:hidden;-webkit-transform:translate3d(0,0,0)}.owl-carousel .owl-item,.owl-carousel .owl-wrapper{-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0)}.owl-carousel .owl-item{min-height:1px;float:left;-webkit-backface-visibility:hidden;-webkit-touch-callout:none}.owl-carousel .owl-item img{display:block;width:100%}.owl-carousel .owl-dots.disabled,.owl-carousel .owl-nav.disabled{display:none}.no-js .owl-carousel,.owl-carousel.owl-loaded{display:block}.owl-carousel .owl-dot,.owl-carousel .owl-nav .owl-next,.owl-carousel .owl-nav .owl-prev{cursor:pointer;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel .owl-nav button.owl-next,.owl-carousel .owl-nav button.owl-prev,.owl-carousel button.owl-dot{color:inherit;border:none;padding:0!important;font:inherit}.owl-carousel.owl-loading{opacity:0;display:block}.owl-carousel.owl-hidden{opacity:0}.owl-carousel.owl-refresh .owl-item{visibility:hidden}.owl-carousel.owl-drag .owl-item{-ms-touch-action:pan-y;touch-action:pan-y;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel.owl-grab{cursor:move;cursor:grab}.owl-carousel.owl-rtl{direction:rtl}.owl-carousel.owl-rtl .owl-item{float:right}.owl-carousel .animated{animation-duration:1s;animation-fill-mode:both}.owl-carousel .owl-animated-in{z-index:0}.owl-carousel .owl-animated-out{z-index:1}.owl-carousel .fadeOut{animation-name:fadeOut}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.owl-height{transition:height .5s ease-in-out}.owl-carousel .owl-item .owl-lazy{opacity:0;transition:opacity .4s ease}.owl-carousel .owl-item .owl-lazy:not([src]),.owl-carousel .owl-item .owl-lazy[src^=""]{max-height:0}.owl-carousel .owl-item img.owl-lazy{transform-style:preserve-3d}.owl-carousel .owl-video-wrapper{position:relative;height:100%;background:#000}.owl-carousel .owl-video-play-icon{position:absolute;height:80px;width:80px;left:50%;top:50%;margin-left:-40px;margin-top:-40px;background:url(owl.video.play.png) no-repeat;cursor:pointer;z-index:1;-webkit-backface-visibility:hidden;transition:transform .1s ease}.owl-carousel .owl-video-play-icon:hover{-ms-transform:scale(1.3,1.3);transform:scale(1.3,1.3)}.owl-carousel .owl-video-playing .owl-video-play-icon,.owl-carousel .owl-video-playing .owl-video-tn{display:none}.owl-carousel .owl-video-tn{opacity:0;height:100%;background-position:center center;background-repeat:no-repeat;background-size:contain;transition:opacity .4s ease}.owl-carousel .owl-video-frame{position:relative;z-index:1;height:100%;width:100%} +/** owl.theme.default.min.css +* Owl Carousel v2.3.4 +* Copyright 2013-2018 David Deutsch +* Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE +*/.owl-theme .owl-dots,.owl-theme .owl-nav{text-align:center;-webkit-tap-highlight-color:transparent}.owl-theme .owl-nav{margin-top:10px}.owl-theme .owl-nav [class*=owl-]{color:#FFF;font-size:14px;margin:5px;padding:4px 7px;background:#D6D6D6;display:inline-block;cursor:pointer;border-radius:3px}.owl-theme:not(.home-slider) .owl-nav [class*=owl-]:hover{background:#869791;color:#FFF;text-decoration:none}.owl-theme .owl-nav .disabled{opacity:.5;cursor:default}.owl-theme .owl-nav.disabled+.owl-dots{margin-top:28px}.owl-theme .owl-dots .owl-dot{display:inline-block;zoom:1}.owl-theme .owl-dots .owl-dot span{width:10px;height:10px;margin:5px 7px;background:#D6D6D6;display:block;-webkit-backface-visibility:visible;transition:opacity .2s ease;border-radius:30px}.owl-theme .owl-dots .owl-dot.active span,.owl-theme .owl-dots .owl-dot:hover span{background:#869791} +/** owl.transitions.css +* Owl Carousel v2.3.4 +* Copyright 2013-2018 David Deutsch +* Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE +*/.owl-origin{-webkit-perspective:1200px;-webkit-perspective-origin-x:50%;-webkit-perspective-origin-y:50%;-moz-perspective:1200px;-moz-perspective-origin-x:50%;-moz-perspective-origin-y:50%;perspective:1200px}.owl-fade-out{z-index:10;-webkit-animation:fadeOut .7s both ease;-moz-animation:fadeOut .7s both ease;animation:fadeOut .7s both ease}.owl-fade-in{-webkit-animation:fadeIn .7s both ease;-moz-animation:fadeIn .7s both ease;animation:fadeIn .7s both ease}.owl-backSlide-out{-webkit-animation:backSlideOut 1s both ease;-moz-animation:backSlideOut 1s both ease;animation:backSlideOut 1s both ease}.owl-backSlide-in{-webkit-animation:backSlideIn 1s both ease;-moz-animation:backSlideIn 1s both ease;animation:backSlideIn 1s both ease}.owl-goDown-out{-webkit-animation:scaleToFade .7s ease both;-moz-animation:scaleToFade .7s ease both;animation:scaleToFade .7s ease both}.owl-goDown-in{-webkit-animation:goDown .6s ease both;-moz-animation:goDown .6s ease both;animation:goDown .6s ease both}.owl-fadeUp-in{-webkit-animation:scaleUpFrom .5s ease both;-moz-animation:scaleUpFrom .5s ease both;animation:scaleUpFrom .5s ease both}.owl-fadeUp-out{-webkit-animation:scaleUpTo .5s ease both;-moz-animation:scaleUpTo .5s ease both;animation:scaleUpTo .5s ease both}@-webkit-keyframes empty{0%{opacity:1}}@-moz-keyframes empty{0%{opacity:1}}@keyframes empty{0%{opacity:1}}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@-moz-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@-moz-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@-webkit-keyframes backSlideOut{25%{opacity:.5;-webkit-transform:translateZ(-500px)}75%{opacity:.5;-webkit-transform:translateZ(-500px) translateX(-200%)}100%{opacity:.5;-webkit-transform:translateZ(-500px) translateX(-200%)}}@-moz-keyframes backSlideOut{25%{opacity:.5;-moz-transform:translateZ(-500px)}75%{opacity:.5;-moz-transform:translateZ(-500px) translateX(-200%)}100%{opacity:.5;-moz-transform:translateZ(-500px) translateX(-200%)}}@keyframes backSlideOut{25%{opacity:.5;transform:translateZ(-500px)}75%{opacity:.5;transform:translateZ(-500px) translateX(-200%)}100%{opacity:.5;transform:translateZ(-500px) translateX(-200%)}}@-webkit-keyframes backSlideIn{0%,25%{opacity:.5;-webkit-transform:translateZ(-500px) translateX(200%)}75%{opacity:.5;-webkit-transform:translateZ(-500px)}100%{opacity:1;-webkit-transform:translateZ(0) translateX(0)}}@-moz-keyframes backSlideIn{0%,25%{opacity:.5;-moz-transform:translateZ(-500px) translateX(200%)}75%{opacity:.5;-moz-transform:translateZ(-500px)}100%{opacity:1;-moz-transform:translateZ(0) translateX(0)}}@keyframes backSlideIn{0%,25%{opacity:.5;transform:translateZ(-500px) translateX(200%)}75%{opacity:.5;transform:translateZ(-500px)}100%{opacity:1;transform:translateZ(0) translateX(0)}}@-webkit-keyframes scaleToFade{to{opacity:0;-webkit-transform:scale(.8)}}@-moz-keyframes scaleToFade{to{opacity:0;-moz-transform:scale(.8)}}@keyframes scaleToFade{to{opacity:0;transform:scale(.8)}}@-webkit-keyframes goDown{from{-webkit-transform:translateY(-100%)}}@-moz-keyframes goDown{from{-moz-transform:translateY(-100%)}}@keyframes goDown{from{transform:translateY(-100%)}}@-webkit-keyframes scaleUpFrom{from{opacity:0;-webkit-transform:scale(1.5)}}@-moz-keyframes scaleUpFrom{from{opacity:0;-moz-transform:scale(1.5)}}@keyframes scaleUpFrom{from{opacity:0;transform:scale(1.5)}}@-webkit-keyframes scaleUpTo{to{opacity:0;-webkit-transform:scale(1.5)}}@-moz-keyframes scaleUpTo{to{opacity:0;-moz-transform:scale(1.5)}}@keyframes scaleUpTo{to{opacity:0;transform:scale(1.5)}} \ No newline at end of file diff --git a/wp-content/themes/abiz/assets/css/responsive.css b/wp-content/themes/abiz/assets/css/responsive.css new file mode 100644 index 0000000..c5807ab --- /dev/null +++ b/wp-content/themes/abiz/assets/css/responsive.css @@ -0,0 +1,701 @@ +/* @media Responsive Start */ + +@media (min-width: 1400px) { + .container, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl { + max-width: 1500px; + } + .home-slider .owl-nav .owl-prev { + left: 1.67rem; + } + .home-slider .owl-nav .owl-next { + right: 1.67rem; + } + + .owl-nav-2 .home-slider .owl-nav .owl-prev { + left: 2.67rem; + } + .owl-nav-2 .home-slider .owl-nav .owl-next { + right: 2.67rem; + } + .home-slider, .home-slider .owl-item img { + max-height: 768px; + min-height: 768px; + object-fit: cover; + } +} + +@media (min-width: 1200px) { + /* .container, .container-lg, .container-md, .container-sm, .container-xl { */ + /* max-width: 2000px; */ + /* } */ +} +@media only screen and (max-width: 1199px) and (min-width: 992px) { + .work-process-section .process-inner-box:before, + .work-process-section .work-process-tab .w-process-img { + width: 360px; + height: 360px; + } + .wp-block-search__inside-wrapper { + flex-direction: column; + gap: 10px; + align-items: flex-end; + } + .service-section-2 .service-inner-box, + .service-section-2 .overlay-content { + padding: 40px 20px; + } + .service-section-2 .service-count { + right: -8px; + font-size: 80px; + line-height: 80px; + } + .service-section-2 .overlay-content .service-count { + right: 10px; + } + .abiz-features-section .feature-single-item { + padding: 20px 20px 6px 10px; + } + .abiz-features-section .feature-icon-box i { + font-size: 50px; + } + .newsletter-section .newsletter-form .form-control { + max-width: 290px; + } +} + +@media only screen and (max-width: 1045px) and (min-width: 992px) { + .main-slider div.main-content { + padding: 0 55px; + } + .testimonial-slide .testimonial-inner { + padding: 70px 18px 45px; + } +} + +@media (min-width: 992px) { + /* .container, .container-lg, .container-md, .container-sm { */ + /* max-width: 2000px; */ + /* } */ + .header-widget:not(.header-carousel) .widget:not(.widget_media_video):not(:last-child):before { + position: absolute; + right: 0; + top: -3px; + content: ""; + min-height: 51px; + width: 1px; + background: #ffffff29; + } + .widget-right .widget, + .widget-left .widget { + padding: 0 1.2rem; + position: relative; + } + .slider-section + .info-section { + margin-top: -3.55rem; + } + .above-header .contact-corn { + background: var(--bs-white); + color: var(--bs-primary); + border-radius: inherit; + } + + .header-transparent .main-header { + position: absolute; + top: 0; + right: 0; + left: 0; + width: 100%; + border-top: 0; + margin: 0 auto; + z-index: 99; + } + .header-transparent .main-header, + .header-transparent .main-navigation:not(.is-sticky-menu) { + background: none; + } + body.admin-bar.header-transparent .main-header { + top: 32px; + } + .footer-copyright .contact-area .contact-icon-duplicate { + right: 50px; + } + .abiz-call-action-section .cta-image img { + position: absolute; + right: 30px; + top: -88px; + /* animation: tada 2s infinite; */ + /* -webkit-animation: tada 2s infinite; */ + /* -webkit-transition: all ease 0.35s; */ + /* -moz-transition: all ease 0.35s; */ + /* transition: all ease 0.35s; */ + } +} + +@media (min-width: 1350px) { + .header-transparent .main-slider div.main-content { + margin-top: 17rem; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .above-header:before { + width: 40%; + } + .above-header:after { + left: 40%; + transform: rotate(19deg); + } + .pricing-inner-box .pricing-list { + padding: 20px 15px 43px; + } + + .pricing-inner-box .pricing-price { + padding: 0 20px 9px; + } + .service-section .bg-shape1 svg { + width: 400px; + } + .header-transparent .above-header .widget-left { + padding-left: 45px; + } + .header-transparent .above-header .widget-left { + background: linear-gradient( 116deg, transparent 30%, currentColor 30%, currentColor 70%, transparent 70% ) 50% / 209% 100% no-repeat; + } + .above-header .contact-icon { + font-size: 0.95rem; + width: 30px; + height: 30px; + margin-right: 7px; + } + .main-header p:not(.site-description) { + font-size: 0.875rem; + } + .main-header h6.title { + font-size: 0.938rem; + } + .footer-copyright .widget-left { + padding-left: 62px; + } + .footer-copyright .contact-area .title { + font-size: 1.2rem; + } + .footer-copyright .contact-area .text { + font-size: 1.5rem; + } + .footer-copyright .contact-area .contact-icon-duplicate { + font-size: 3rem; + } + .main-menu-right > ul { + padding-left: 0.5rem; + } + .main-menu-right > ul > li { + margin-right: 0.625rem; + } + .main-navigation-area .main-menu-right > ul li:last-child { + padding-left: 0.625rem; + } + .main-navigation-area .contact-icon { + margin-right: 0.5rem; + width: 35px; + height: 35px; + font-size: 1.875rem; + } + .main-navigation-area .contact-info .title { + font-size: 0.75rem; + } + .main-navigation-area .contact-info .text { + font-size: 1.25rem; + } + .main-navbar .main-menu > li.menu-item > a { + padding: 0 0.4375rem; + } + .main-navbar .main-menu > li.dropdown > a { + padding-right: 15px; + } + .main-content h4 { + font-size: 1rem; + padding: 0.35rem 1.35rem; + margin-bottom: .5rem; + } + .main-content h4 i { + font-size: 0.8rem; + margin-right: 0.2rem; + } + .main-content h1 { + font-size: 2.125rem; + margin-bottom: .5rem; + } + .main-content p { + margin-bottom: 1rem; + } + .home-slider.owl-theme .owl-dots { + bottom: 5.5rem; + } + .homepage-2 .main-header .header-search-toggle, + .homepage-2 .header-cart, .homepage-2 .menu-social-list ul li a, + .footer .main-menu > li > a, .main-navbar .main-menu > li > a { + font-size: 0.9375rem; + } + .main-header .widget_nav_menu .sub-menu li .sub-menu, + .main-navbar .dropdown-menu li .dropdown-menu { + right: 100%; + left: auto; + margin-left: 0; + margin-right: 10px; + } + .abiz-call-action-section .call-icon { + margin-right: 20px; + font-size: 23px; + width: 50px; + height: 50px; + line-height: 50px; + } + .abiz-call-action-section .call-body a { + font-size: 25px; + line-height: 48px; + } +} + +@media (max-width: 991px) { + .widget-right .widget, + .widget-left .widget { + padding: 0 0.62rem; + } + .main-header .contact-icon { + background: var(--bs-white); + color: var(--bs-primary); + } + .above-header .widget-left, + .above-header .widget-right { + justify-content: center; + } + .main-slider div.main-content { + margin-bottom: 0; + margin-top: 0; + } + .main-content h4 { + font-size: 1.125rem; + } + .main-content h4 i { + font-size: 0.85rem; + margin-right: 0.2rem; + } + .main-content h1 { + font-size: 1.75rem; + } + .main-content p { + font-size: 0.975rem; + margin-bottom: 1.6rem; + } + .comment-list .children { + margin-left: 0; + } + .home-slider.owl-theme .owl-dots, + .home-slider.owl-theme .owl-nav.disabled+.owl-dots { + bottom: 3.75rem; + } + .abiz-call-action-section .cta-image img { + position: relative; + bottom: -60px; + } + .service-section .bg-shape1, + .circle-shape1, + .hanger-line > .col-lg-3::before, .hanger-line > .col-lg-3::after, .hanger-line::before{ + display:none; + } + .countdown-section .count-wrap> div { + margin-bottom: 3rem; + } + .abiz-timeline li:not(.timeline-inverted) { + padding: 0; + } + .abiz-timeline li > .timeline-badge { + position: relative; + top: auto; + transform: none; + right: auto; + display: inline-block; + } + .abiz-timeline .timeline-sep-title { + font-size: 80px; + position: relative; + margin-left: 0px !important; + text-align: center; + margin-bottom: 20px !important; + width: 100%; + height: 100%; + left: auto; + right: auto; + bottom: auto; + margin: 0; + padding-left: 70px; + margin-top: 15px; + top: auto; + transform: inherit; + } + .abiz-timeline .timeline-sep-title span { + margin-bottom: 15px; + } + .abiz-timeline .timeline-panel { + width: 100%; + margin-left: 0; + float: none; + } + .abiz-timeline .timeline-title { + font-size: 28px; + line-height: 30px; + } + .abiz-timeline .timeline-sep-title:before{ + display:none; + } + .abiz-timeline li.timeline-inverted { + padding-left: 0; + padding-right: inherit; + } + .abiz-timeline li.timeline-inverted > .timeline-sep-title { + margin-right: 0; + margin-left: 0; + padding-left: 0; + text-align: center; + right: auto; + } + .abiz-timeline li.timeline-inverted > .timeline-panel { + margin-right: 0; + } + .abiz-timeline .timeline-panel:after, + .abiz-timeline li.timeline-inverted .timeline-panel:after { + border-left-width: 0; + border-right-width: 14px; + left: -14px; + right: auto; + } + .footer-main .col { + padding: 0 calc(var(--bs-gutter-x) / 2); + border-top: none; + border-right:none !important; + } + .footer-copyright{ + padding-top:50px; + } + .abiz-app-section .app-media.right, + .abiz-app-section .app-media.left { + display:none; + } +} + +@media (min-width: 480px) and (max-width: 768px) { + +} + +@media (min-width: 601px) and (max-width: 991px) { + +} + +@media (min-width: 768px) and (max-width: 991px) { + .newsletter-section .newsletter-form { + justify-content: center; + } + .work-process-section .process-inner-box:before, + .work-process-section .work-process-tab .w-process-img{ + width: 260px; + height: 260px; + } +} + +@media (max-width: 768px) { + .process-wrapper .col-md-6:nth-child(2) .arrow-shape { + display: none; + } + .abiz-cta-2-item { + flex-direction: column; + text-align: center; + } + .abiz-cta-2-text { + margin-right: 0; + } + .job-feature-item { + display: flex; + } + .job-feature-item >div { + flex-basis: 150px; + } + .info-section { + margin-top: -1.55rem; + } + .contact-main-section { + padding: 60px 15px 9px 15px; + } + .contact-info-box { + padding: 40px 10px 40px 10px; + } +} + +@media (max-width: 767px) { + + .process-wrapper .arrow-shape { + display: none; + } + [class*="lg-shape"] { + display: none; + } + .header-above-bar .widget-left, + .header-above-bar .widget-right, + .header-above-bar .header-widget .widget { + display: block; + padding: 0; + } + .header-above-bar { + width: 100%; + } + .header-above-bar [class*='widget-'] .widget:not(:first-child) { + margin-top: 1rem; + } + .main-content h4, + .main-content h1, + .main-content p { + margin-bottom: 0.625rem; + } + .breadcrumb-area .breadcrumb-content, + .breadcrumb-area .breadcrumb-content *:not(a):not(i):not(li):not(ol) { + width: 100%; + max-width: 100%; + flex-wrap: wrap; + flex-direction: column; + justify-content: center; + align-items: center; + text-align: center; + } + .author-details { + padding: 38px 42px; + } + .author-details .media { + flex-wrap: wrap; + } + .author-details .media .auth-mata { + margin: 0; + margin-bottom: 1.5rem; + } + .author-details .media .media-body { + flex: auto; + } + .post-items .widget, + .post-items blockquote { + width: 100%; + } + .comments-area li { + padding-left: 0; + } + .comments-area .comment-meta .comment-author img { + left: 20px; + top: 20px; + } + .comments-area .comment-body { + padding-left: 130px; + } + .info-section { + margin-top: 0; + } + + .abiz-call-action-section .call-icon { + margin-right: 10px; + font-size: 20px; + width: 45px; + height: 45px; + line-height: 45px; + } + .abiz-call-action-section .call-body a { + font-size: 20px; + line-height: 45px; + } + .work-process-section .process-inner-box:before, + .work-process-section .work-process-tab .w-process-img{ + display:none; + } +} + + +@media (max-width: 600px) { + .main-mobile-nav .menu-right-list .button-area { + display:none; + } + .main-mobile-nav .menu-right-list { + padding-left: 0; + padding-right: 0; + } + .contact-section .col-lg-8, + .contact-section .col-lg-4 { + width: 100%; + } + .home-slider, .home-slider .owl-item img { + min-height: 300px; + object-fit: cover; + } + .abiz-cta-2-wrap { + padding: 60px 50px; + } + .abiz-cta-2-item { + padding: 100px 10px; + } + .gallery-item { + flex: 0 0 50%; + max-width: 50%; + } + .about-detail-wrap { + padding: 4px; + } + .job-feature-item { + flex-wrap: wrap; + } + .job-feature-item div { + flex: 1 1 100%; + text-align: center; + } + .feature-like a { + border-right: none; + } +} + + +@media (max-width: 599px){ + .main-mobile-build .header-close-menu { + position: relative; + margin: 5px 5px 5px auto; + left: 0; + } +} +@media (max-width: 540px) { + .main-mobile-menu .main-menu-right > ul > li { + margin-right: 10px; + } + .container, .container-lg, .container-md, .container-sm { + padding-right: 30px; + padding-left: 30px; + } + .main-content p { + max-width: 275px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + .main-slider .text-center p { + margin-left: auto; + margin-right: auto; + } + .main-slider .text-right p { + margin-left: auto; + } + .main-content .btn:not(.btn-play) { + margin-right: 0; + } + .comment-list .children { + margin-left: .5rem; + } + .comment-list .children .comment-body { + padding: 16px; + } +} + +@media (max-width: 504px) { + .comments-area .comment-body { + border-radius: 10px; + } + + .abiz-call-action-section .call-content { + text-align: center; + } + + .abiz-call-action-section .call-wrap, .abiz-call-action-section .call-details1, .abiz-call-action-section .call-details2 { + flex-flow: column; + align-items: center; + } + + .abiz-call-action-section .call-details2 { + margin-left: 0; + } +} + +@media (min-width: 437px) and (max-width: 700px) { + .home-slider.owl-theme .owl-dots, + .home-slider.owl-theme .owl-nav.disabled+.owl-dots { + bottom: 1.75rem; + } +} + +@media (max-width: 436px) { + .comments-area .comment-meta .comment-author img { + position: unset; + margin-right: 0.5rem; + display: inline-block; + } + .comments-area .comment-body { + padding: 25px 22px; + } + .comment-meta .comment-metadata { + margin: 0; + white-space: nowrap; + } + .comment-metadata .edit-link { + margin-left: 0; + } + .comment-meta .comment-metadata time { + font-size: 14px; + } + .home-slider.owl-theme .owl-dots, + .home-slider.owl-theme .owl-nav.disabled+.owl-dots { + bottom: 1rem; + } +} + +@media (max-width: 424px) { + .btn, .more-link { + line-height: 0.85rem; + padding: 0.75rem 1rem; + line-height: 0.95rem; + } + .acc-btn { + padding: 15px 60px 15px 26px; + line-height: 20px; + } + .acc-btn:after { + right: 9px; + } + .btn.btn-like-icon { + padding-right: 2.25rem; + } + a.more-link:after, + .btn-like-icon .bticn { + width: 28px; + height: 28px; + line-height: 29px; + font-size: 0.85rem; + } + a.more-link { + padding: 0.75rem 1rem; + line-height: 0.95rem; + padding-right: 2.25rem; + } +} + + +@media (max-width: 362px) { + .home-slider.owl-theme .owl-dots, + .home-slider.owl-theme .owl-nav.disabled+.owl-dots { + bottom: 0.6rem; + } + .woocommerce-page table.cart td.actions .coupon .input-text+.button { + width: 100% !important; + float: left !important; + margin-top: 10px; + } +} + +@media (max-width: 330px) { + .main-mobile-menu .header-wrap-right li { + margin-right: 6px; + } + .mobile-logo .logo { + max-width: 168px; + } +} + +/* @media Responsive End */ diff --git a/wp-content/themes/abiz/assets/images/bg/breadcrumbg.jpg b/wp-content/themes/abiz/assets/images/bg/breadcrumbg.jpg new file mode 100644 index 0000000..91acf6d Binary files /dev/null and b/wp-content/themes/abiz/assets/images/bg/breadcrumbg.jpg differ diff --git a/wp-content/themes/abiz/assets/images/btn-arrow-icon.svg b/wp-content/themes/abiz/assets/images/btn-arrow-icon.svg new file mode 100644 index 0000000..fed79e0 --- /dev/null +++ b/wp-content/themes/abiz/assets/images/btn-arrow-icon.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/wp-content/themes/abiz/assets/images/btn-circle.svg b/wp-content/themes/abiz/assets/images/btn-circle.svg new file mode 100644 index 0000000..815a772 --- /dev/null +++ b/wp-content/themes/abiz/assets/images/btn-circle.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/wp-content/themes/abiz/assets/images/pattern1.png b/wp-content/themes/abiz/assets/images/pattern1.png new file mode 100644 index 0000000..d4a205c Binary files /dev/null and b/wp-content/themes/abiz/assets/images/pattern1.png differ diff --git a/wp-content/themes/abiz/assets/js/bootstrap.js b/wp-content/themes/abiz/assets/js/bootstrap.js new file mode 100644 index 0000000..af047c4 --- /dev/null +++ b/wp-content/themes/abiz/assets/js/bootstrap.js @@ -0,0 +1,1987 @@ +/*! + * Bootstrap v5.0.0-alpha1 (https://getbootstrap.com/) + * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +! function(t, e) { + "object" == typeof exports && "undefined" != typeof module ? module.exports = e(require("popper.js")) : "function" == typeof define && define.amd ? define(["popper.js"], e) : (t = t || self).bootstrap = e(t.Popper) +}(this, (function(t) { + "use strict"; + + function e(t, e) { + for (var n = 0; n < e.length; n++) { + var i = e[n]; + i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(t, i.key, i) + } + } + + function n(t, n, i) { + return n && e(t.prototype, n), i && e(t, i), t + } + + function i(t, e, n) { + return e in t ? Object.defineProperty(t, e, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : t[e] = n, t + } + + function o(t, e) { + var n = Object.keys(t); + if (Object.getOwnPropertySymbols) { + var i = Object.getOwnPropertySymbols(t); + e && (i = i.filter((function(e) { + return Object.getOwnPropertyDescriptor(t, e).enumerable + }))), n.push.apply(n, i) + } + return n + } + + function s(t) { + for (var e = 1; e < arguments.length; e++) { + var n = null != arguments[e] ? arguments[e] : {}; + e % 2 ? o(Object(n), !0).forEach((function(e) { + i(t, e, n[e]) + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : o(Object(n)).forEach((function(e) { + Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e)) + })) + } + return t + } + t = t && Object.prototype.hasOwnProperty.call(t, "default") ? t.default : t; + var r, a, l, c, u = function(t) { + do { + t += Math.floor(1e6 * Math.random()) + } while (document.getElementById(t)); + return t + }, + h = function(t) { + var e = t.getAttribute("data-target"); + if (!e || "#" === e) { + var n = t.getAttribute("href"); + e = n && "#" !== n ? n.trim() : null + } + return e + }, + f = function(t) { + var e = h(t); + return e && document.querySelector(e) ? e : null + }, + d = function(t) { + var e = h(t); + return e ? document.querySelector(e) : null + }, + g = function(t) { + if (!t) return 0; + var e = window.getComputedStyle(t), + n = e.transitionDuration, + i = e.transitionDelay, + o = parseFloat(n), + s = parseFloat(i); + return o || s ? (n = n.split(",")[0], i = i.split(",")[0], 1e3 * (parseFloat(n) + parseFloat(i))) : 0 + }, + p = function(t) { + t.dispatchEvent(new Event("transitionend")) + }, + m = function(t) { + return (t[0] || t).nodeType + }, + _ = function(t, e) { + var n = !1, + i = e + 5; + t.addEventListener("transitionend", (function e() { + n = !0, t.removeEventListener("transitionend", e) + })), setTimeout((function() { + n || p(t) + }), i) + }, + v = function(t, e, n) { + Object.keys(n).forEach((function(i) { + var o, s = n[i], + r = e[i], + a = r && m(r) ? "element" : null == (o = r) ? "" + o : {}.toString.call(o).match(/\s([a-z]+)/i)[1].toLowerCase(); + if (!new RegExp(s).test(a)) throw new Error(t.toUpperCase() + ': Option "' + i + '" provided type "' + a + '" but expected type "' + s + '".') + })) + }, + b = function(t) { + if (!t) return !1; + if (t.style && t.parentNode && t.parentNode.style) { + var e = getComputedStyle(t), + n = getComputedStyle(t.parentNode); + return "none" !== e.display && "none" !== n.display && "hidden" !== e.visibility + } + return !1 + }, + y = function() { + return function() {} + }, + w = function(t) { + return t.offsetHeight + }, + E = function() { + var t = window.jQuery; + return t && !document.body.hasAttribute("data-no-jquery") ? t : null + }, + k = (r = {}, a = 1, { + set: function(t, e, n) { + void 0 === t.key && (t.key = { + key: e, + id: a + }, a++), r[t.key.id] = n + }, + get: function(t, e) { + if (!t || void 0 === t.key) return null; + var n = t.key; + return n.key === e ? r[n.id] : null + }, + delete: function(t, e) { + if (void 0 !== t.key) { + var n = t.key; + n.key === e && (delete r[n.id], delete t.key) + } + } + }), + T = function(t, e, n) { + k.set(t, e, n) + }, + L = function(t, e) { + return k.get(t, e) + }, + C = function(t, e) { + k.delete(t, e) + }, + A = Element.prototype.querySelectorAll, + S = Element.prototype.querySelector, + O = (l = new CustomEvent("Bootstrap", { + cancelable: !0 + }), (c = document.createElement("div")).addEventListener("Bootstrap", (function() { + return null + })), l.preventDefault(), c.dispatchEvent(l), l.defaultPrevented), + D = /:scope\b/; + (function() { + var t = document.createElement("div"); + try { + t.querySelectorAll(":scope *") + } catch (t) { + return !1 + } + return !0 + })() || (A = function(t) { + if (!D.test(t)) return this.querySelectorAll(t); + var e = Boolean(this.id); + e || (this.id = u("scope")); + var n = null; + try { + t = t.replace(D, "#" + this.id), n = this.querySelectorAll(t) + } finally { + e || this.removeAttribute("id") + } + return n + }, S = function(t) { + if (!D.test(t)) return this.querySelector(t); + var e = A.call(this, t); + return void 0 !== e[0] ? e[0] : null + }); + var I = E(), + N = /[^.]*(?=\..*)\.|.*/, + j = /\..*/, + P = /::\d+$/, + x = {}, + R = 1, + H = { + mouseenter: "mouseover", + mouseleave: "mouseout" + }, + B = ["click", "dblclick", "mouseup", "mousedown", "contextmenu", "mousewheel", "DOMMouseScroll", "mouseover", "mouseout", "mousemove", "selectstart", "selectend", "keydown", "keypress", "keyup", "orientationchange", "touchstart", "touchmove", "touchend", "touchcancel", "pointerdown", "pointermove", "pointerup", "pointerleave", "pointercancel", "gesturestart", "gesturechange", "gestureend", "focus", "blur", "change", "reset", "select", "submit", "focusin", "focusout", "load", "unload", "beforeunload", "resize", "move", "DOMContentLoaded", "readystatechange", "error", "abort", "scroll"]; + + function M(t, e) { + return e && e + "::" + R++ || t.uidEvent || R++ + } + + function Q(t) { + var e = M(t); + return t.uidEvent = e, x[e] = x[e] || {}, x[e] + } + + function U(t, e, n) { + void 0 === n && (n = null); + for (var i = Object.keys(t), o = 0, s = i.length; o < s; o++) { + var r = t[i[o]]; + if (r.originalHandler === e && r.delegationSelector === n) return r + } + return null + } + + function F(t, e, n) { + var i = "string" == typeof e, + o = i ? n : e, + s = t.replace(j, ""), + r = H[s]; + return r && (s = r), B.indexOf(s) > -1 || (s = t), [i, o, s] + } + + function W(t, e, n, i, o) { + if ("string" == typeof e && t) { + n || (n = i, i = null); + var s = F(e, n, i), + r = s[0], + a = s[1], + l = s[2], + c = Q(t), + u = c[l] || (c[l] = {}), + h = U(u, a, r ? n : null); + if (h) h.oneOff = h.oneOff && o; + else { + var f = M(a, e.replace(N, "")), + d = r ? function(t, e, n) { + return function i(o) { + for (var s = t.querySelectorAll(e), r = o.target; r && r !== this; r = r.parentNode) + for (var a = s.length; a--;) + if (s[a] === r) return i.oneOff && q.off(t, o.type, n), n.apply(r, [o]); + return null + } + }(t, n, i) : function(t, e) { + return function n(i) { + return n.oneOff && q.off(t, i.type, e), e.apply(t, [i]) + } + }(t, n); + d.delegationSelector = r ? n : null, d.originalHandler = a, d.oneOff = o, d.uidEvent = f, u[f] = d, t.addEventListener(l, d, r) + } + } + } + + function V(t, e, n, i, o) { + var s = U(e[n], i, o); + s && (t.removeEventListener(n, s, Boolean(o)), delete e[n][s.uidEvent]) + } + var q = { + on: function(t, e, n, i) { + W(t, e, n, i, !1) + }, + one: function(t, e, n, i) { + W(t, e, n, i, !0) + }, + off: function(t, e, n, i) { + if ("string" == typeof e && t) { + var o = F(e, n, i), + s = o[0], + r = o[1], + a = o[2], + l = a !== e, + c = Q(t), + u = "." === e.charAt(0); + if (void 0 === r) { + u && Object.keys(c).forEach((function(n) { + ! function(t, e, n, i) { + var o = e[n] || {}; + Object.keys(o).forEach((function(s) { + if (s.indexOf(i) > -1) { + var r = o[s]; + V(t, e, n, r.originalHandler, r.delegationSelector) + } + })) + }(t, c, n, e.slice(1)) + })); + var h = c[a] || {}; + Object.keys(h).forEach((function(n) { + var i = n.replace(P, ""); + if (!l || e.indexOf(i) > -1) { + var o = h[n]; + V(t, c, a, o.originalHandler, o.delegationSelector) + } + })) + } else { + if (!c || !c[a]) return; + V(t, c, a, r, s ? n : null) + } + } + }, + trigger: function(t, e, n) { + if ("string" != typeof e || !t) return null; + var i, o = e.replace(j, ""), + s = e !== o, + r = B.indexOf(o) > -1, + a = !0, + l = !0, + c = !1, + u = null; + return s && I && (i = I.Event(e, n), I(t).trigger(i), a = !i.isPropagationStopped(), l = !i.isImmediatePropagationStopped(), c = i.isDefaultPrevented()), r ? (u = document.createEvent("HTMLEvents")).initEvent(o, a, !0) : u = new CustomEvent(e, { + bubbles: a, + cancelable: !0 + }), void 0 !== n && Object.keys(n).forEach((function(t) { + Object.defineProperty(u, t, { + get: function() { + return n[t] + } + }) + })), c && (u.preventDefault(), O || Object.defineProperty(u, "defaultPrevented", { + get: function() { + return !0 + } + })), l && t.dispatchEvent(u), u.defaultPrevented && void 0 !== i && i.preventDefault(), u + } + }, + z = "alert", + K = function() { + function t(t) { + this._element = t, this._element && T(t, "bs.alert", this) + } + var e = t.prototype; + return e.close = function(t) { + var e = this._element; + t && (e = this._getRootElement(t)); + var n = this._triggerCloseEvent(e); + null === n || n.defaultPrevented || this._removeElement(e) + }, e.dispose = function() { + C(this._element, "bs.alert"), this._element = null + }, e._getRootElement = function(t) { + return d(t) || t.closest(".alert") + }, e._triggerCloseEvent = function(t) { + return q.trigger(t, "close.bs.alert") + }, e._removeElement = function(t) { + var e = this; + if (t.classList.remove("show"), t.classList.contains("fade")) { + var n = g(t); + q.one(t, "transitionend", (function() { + return e._destroyElement(t) + })), _(t, n) + } else this._destroyElement(t) + }, e._destroyElement = function(t) { + t.parentNode && t.parentNode.removeChild(t), q.trigger(t, "closed.bs.alert") + }, t.jQueryInterface = function(e) { + return this.each((function() { + var n = L(this, "bs.alert"); + n || (n = new t(this)), "close" === e && n[e](this) + })) + }, t.handleDismiss = function(t) { + return function(e) { + e && e.preventDefault(), t.close(this) + } + }, t.getInstance = function(t) { + return L(t, "bs.alert") + }, n(t, null, [{ + key: "VERSION", + get: function() { + return "5.0.0-alpha1" + } + }]), t + }(); + q.on(document, "click.bs.alert.data-api", '[data-dismiss="alert"]', K.handleDismiss(new K)); + var X = E(); + if (X) { + var Y = X.fn[z]; + X.fn[z] = K.jQueryInterface, X.fn[z].Constructor = K, X.fn[z].noConflict = function() { + return X.fn[z] = Y, K.jQueryInterface + } + } + var $ = function() { + function t(t) { + this._element = t, T(t, "bs.button", this) + } + var e = t.prototype; + return e.toggle = function() { + this._element.setAttribute("aria-pressed", this._element.classList.toggle("active")) + }, e.dispose = function() { + C(this._element, "bs.button"), this._element = null + }, t.jQueryInterface = function(e) { + return this.each((function() { + var n = L(this, "bs.button"); + n || (n = new t(this)), "toggle" === e && n[e]() + })) + }, t.getInstance = function(t) { + return L(t, "bs.button") + }, n(t, null, [{ + key: "VERSION", + get: function() { + return "5.0.0-alpha1" + } + }]), t + }(); + q.on(document, "click.bs.button.data-api", '[data-toggle="button"]', (function(t) { + t.preventDefault(); + var e = t.target.closest('[data-toggle="button"]'), + n = L(e, "bs.button"); + n || (n = new $(e)), n.toggle() + })); + var G = E(); + if (G) { + var Z = G.fn.button; + G.fn.button = $.jQueryInterface, G.fn.button.Constructor = $, G.fn.button.noConflict = function() { + return G.fn.button = Z, $.jQueryInterface + } + } + + function J(t) { + return "true" === t || "false" !== t && (t === Number(t).toString() ? Number(t) : "" === t || "null" === t ? null : t) + } + + function tt(t) { + return t.replace(/[A-Z]/g, (function(t) { + return "-" + t.toLowerCase() + })) + } + var et = { + setDataAttribute: function(t, e, n) { + t.setAttribute("data-" + tt(e), n) + }, + removeDataAttribute: function(t, e) { + t.removeAttribute("data-" + tt(e)) + }, + getDataAttributes: function(t) { + if (!t) return {}; + var e = s({}, t.dataset); + return Object.keys(e).forEach((function(t) { + e[t] = J(e[t]) + })), e + }, + getDataAttribute: function(t, e) { + return J(t.getAttribute("data-" + tt(e))) + }, + offset: function(t) { + var e = t.getBoundingClientRect(); + return { + top: e.top + document.body.scrollTop, + left: e.left + document.body.scrollLeft + } + }, + position: function(t) { + return { + top: t.offsetTop, + left: t.offsetLeft + } + }, + toggleClass: function(t, e) { + t && (t.classList.contains(e) ? t.classList.remove(e) : t.classList.add(e)) + } + }, + nt = { + matches: function(t, e) { + return t.matches(e) + }, + find: function(t, e) { + var n; + return void 0 === e && (e = document.documentElement), (n = []).concat.apply(n, A.call(e, t)) + }, + findOne: function(t, e) { + return void 0 === e && (e = document.documentElement), S.call(e, t) + }, + children: function(t, e) { + var n, i = (n = []).concat.apply(n, t.children); + return i.filter((function(t) { + return t.matches(e) + })) + }, + parents: function(t, e) { + for (var n = [], i = t.parentNode; i && i.nodeType === Node.ELEMENT_NODE && 3 !== i.nodeType;) this.matches(i, e) && n.push(i), i = i.parentNode; + return n + }, + prev: function(t, e) { + for (var n = t.previousElementSibling; n;) { + if (n.matches(e)) return [n]; + n = n.previousElementSibling + } + return [] + }, + next: function(t, e) { + for (var n = t.nextElementSibling; n;) { + if (this.matches(n, e)) return [n]; + n = n.nextElementSibling + } + return [] + } + }, + it = "carousel", + ot = ".bs.carousel", + st = { + interval: 5e3, + keyboard: !0, + slide: !1, + pause: "hover", + wrap: !0, + touch: !0 + }, + rt = { + interval: "(number|boolean)", + keyboard: "boolean", + slide: "(boolean|string)", + pause: "(string|boolean)", + wrap: "boolean", + touch: "boolean" + }, + at = { + TOUCH: "touch", + PEN: "pen" + }, + lt = function() { + function t(t, e) { + this._items = null, this._interval = null, this._activeElement = null, this._isPaused = !1, this._isSliding = !1, this.touchTimeout = null, this.touchStartX = 0, this.touchDeltaX = 0, this._config = this._getConfig(e), this._element = t, this._indicatorsElement = nt.findOne(".carousel-indicators", this._element), this._touchSupported = "ontouchstart" in document.documentElement || navigator.maxTouchPoints > 0, this._pointerEvent = Boolean(window.PointerEvent), this._addEventListeners(), T(t, "bs.carousel", this) + } + var e = t.prototype; + return e.next = function() { + this._isSliding || this._slide("next") + }, e.nextWhenVisible = function() { + !document.hidden && b(this._element) && this.next() + }, e.prev = function() { + this._isSliding || this._slide("prev") + }, e.pause = function(t) { + t || (this._isPaused = !0), nt.findOne(".carousel-item-next, .carousel-item-prev", this._element) && (p(this._element), this.cycle(!0)), clearInterval(this._interval), this._interval = null + }, e.cycle = function(t) { + t || (this._isPaused = !1), this._interval && (clearInterval(this._interval), this._interval = null), this._config && this._config.interval && !this._isPaused && (this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval)) + }, e.to = function(t) { + var e = this; + this._activeElement = nt.findOne(".active.carousel-item", this._element); + var n = this._getItemIndex(this._activeElement); + if (!(t > this._items.length - 1 || t < 0)) + if (this._isSliding) q.one(this._element, "slid.bs.carousel", (function() { + return e.to(t) + })); + else { + if (n === t) return this.pause(), void this.cycle(); + var i = t > n ? "next" : "prev"; + this._slide(i, this._items[t]) + } + }, e.dispose = function() { + q.off(this._element, ot), C(this._element, "bs.carousel"), this._items = null, this._config = null, this._element = null, this._interval = null, this._isPaused = null, this._isSliding = null, this._activeElement = null, this._indicatorsElement = null + }, e._getConfig = function(t) { + return t = s(s({}, st), t), v(it, t, rt), t + }, e._handleSwipe = function() { + var t = Math.abs(this.touchDeltaX); + if (!(t <= 40)) { + var e = t / this.touchDeltaX; + this.touchDeltaX = 0, e > 0 && this.prev(), e < 0 && this.next() + } + }, e._addEventListeners = function() { + var t = this; + this._config.keyboard && q.on(this._element, "keydown.bs.carousel", (function(e) { + return t._keydown(e) + })), "hover" === this._config.pause && (q.on(this._element, "mouseenter.bs.carousel", (function(e) { + return t.pause(e) + })), q.on(this._element, "mouseleave.bs.carousel", (function(e) { + return t.cycle(e) + }))), this._config.touch && this._touchSupported && this._addTouchEventListeners() + }, e._addTouchEventListeners = function() { + var t = this, + e = function(e) { + t._pointerEvent && at[e.pointerType.toUpperCase()] ? t.touchStartX = e.clientX : t._pointerEvent || (t.touchStartX = e.touches[0].clientX) + }, + n = function(e) { + t._pointerEvent && at[e.pointerType.toUpperCase()] && (t.touchDeltaX = e.clientX - t.touchStartX), t._handleSwipe(), "hover" === t._config.pause && (t.pause(), t.touchTimeout && clearTimeout(t.touchTimeout), t.touchTimeout = setTimeout((function(e) { + return t.cycle(e) + }), 500 + t._config.interval)) + }; + nt.find(".carousel-item img", this._element).forEach((function(t) { + q.on(t, "dragstart.bs.carousel", (function(t) { + return t.preventDefault() + })) + })), this._pointerEvent ? (q.on(this._element, "pointerdown.bs.carousel", (function(t) { + return e(t) + })), q.on(this._element, "pointerup.bs.carousel", (function(t) { + return n(t) + })), this._element.classList.add("pointer-event")) : (q.on(this._element, "touchstart.bs.carousel", (function(t) { + return e(t) + })), q.on(this._element, "touchmove.bs.carousel", (function(e) { + return function(e) { + e.touches && e.touches.length > 1 ? t.touchDeltaX = 0 : t.touchDeltaX = e.touches[0].clientX - t.touchStartX + }(e) + })), q.on(this._element, "touchend.bs.carousel", (function(t) { + return n(t) + }))) + }, e._keydown = function(t) { + if (!/input|textarea/i.test(t.target.tagName)) switch (t.key) { + case "ArrowLeft": + t.preventDefault(), this.prev(); + break; + case "ArrowRight": + t.preventDefault(), this.next() + } + }, e._getItemIndex = function(t) { + return this._items = t && t.parentNode ? nt.find(".carousel-item", t.parentNode) : [], this._items.indexOf(t) + }, e._getItemByDirection = function(t, e) { + var n = "next" === t, + i = "prev" === t, + o = this._getItemIndex(e), + s = this._items.length - 1; + if ((i && 0 === o || n && o === s) && !this._config.wrap) return e; + var r = (o + ("prev" === t ? -1 : 1)) % this._items.length; + return -1 === r ? this._items[this._items.length - 1] : this._items[r] + }, e._triggerSlideEvent = function(t, e) { + var n = this._getItemIndex(t), + i = this._getItemIndex(nt.findOne(".active.carousel-item", this._element)); + return q.trigger(this._element, "slide.bs.carousel", { + relatedTarget: t, + direction: e, + from: i, + to: n + }) + }, e._setActiveIndicatorElement = function(t) { + if (this._indicatorsElement) { + for (var e = nt.find(".active", this._indicatorsElement), n = 0; n < e.length; n++) e[n].classList.remove("active"); + var i = this._indicatorsElement.children[this._getItemIndex(t)]; + i && i.classList.add("active") + } + }, e._slide = function(t, e) { + var n, i, o, s = this, + r = nt.findOne(".active.carousel-item", this._element), + a = this._getItemIndex(r), + l = e || r && this._getItemByDirection(t, r), + c = this._getItemIndex(l), + u = Boolean(this._interval); + if ("next" === t ? (n = "carousel-item-left", i = "carousel-item-next", o = "left") : (n = "carousel-item-right", i = "carousel-item-prev", o = "right"), l && l.classList.contains("active")) this._isSliding = !1; + else if (!this._triggerSlideEvent(l, o).defaultPrevented && r && l) { + if (this._isSliding = !0, u && this.pause(), this._setActiveIndicatorElement(l), this._element.classList.contains("slide")) { + l.classList.add(i), w(l), r.classList.add(n), l.classList.add(n); + var h = parseInt(l.getAttribute("data-interval"), 10); + h ? (this._config.defaultInterval = this._config.defaultInterval || this._config.interval, this._config.interval = h) : this._config.interval = this._config.defaultInterval || this._config.interval; + var f = g(r); + q.one(r, "transitionend", (function() { + l.classList.remove(n, i), l.classList.add("active"), r.classList.remove("active", i, n), s._isSliding = !1, setTimeout((function() { + q.trigger(s._element, "slid.bs.carousel", { + relatedTarget: l, + direction: o, + from: a, + to: c + }) + }), 0) + })), _(r, f) + } else r.classList.remove("active"), l.classList.add("active"), this._isSliding = !1, q.trigger(this._element, "slid.bs.carousel", { + relatedTarget: l, + direction: o, + from: a, + to: c + }); + u && this.cycle() + } + }, t.carouselInterface = function(e, n) { + var i = L(e, "bs.carousel"), + o = s(s({}, st), et.getDataAttributes(e)); + "object" == typeof n && (o = s(s({}, o), n)); + var r = "string" == typeof n ? n : o.slide; + if (i || (i = new t(e, o)), "number" == typeof n) i.to(n); + else if ("string" == typeof r) { + if (void 0 === i[r]) throw new TypeError('No method named "' + r + '"'); + i[r]() + } else o.interval && o.ride && (i.pause(), i.cycle()) + }, t.jQueryInterface = function(e) { + return this.each((function() { + t.carouselInterface(this, e) + })) + }, t.dataApiClickHandler = function(e) { + var n = d(this); + if (n && n.classList.contains("carousel")) { + var i = s(s({}, et.getDataAttributes(n)), et.getDataAttributes(this)), + o = this.getAttribute("data-slide-to"); + o && (i.interval = !1), t.carouselInterface(n, i), o && L(n, "bs.carousel").to(o), e.preventDefault() + } + }, t.getInstance = function(t) { + return L(t, "bs.carousel") + }, n(t, null, [{ + key: "VERSION", + get: function() { + return "5.0.0-alpha1" + } + }, { + key: "Default", + get: function() { + return st + } + }]), t + }(); + q.on(document, "click.bs.carousel.data-api", "[data-slide], [data-slide-to]", lt.dataApiClickHandler), q.on(window, "load.bs.carousel.data-api", (function() { + for (var t = nt.find('[data-ride="carousel"]'), e = 0, n = t.length; e < n; e++) lt.carouselInterface(t[e], L(t[e], "bs.carousel")) + })); + var ct = E(); + if (ct) { + var ut = ct.fn[it]; + ct.fn[it] = lt.jQueryInterface, ct.fn[it].Constructor = lt, ct.fn[it].noConflict = function() { + return ct.fn[it] = ut, lt.jQueryInterface + } + } + var ht = "collapse", + ft = { + toggle: !0, + parent: "" + }, + dt = { + toggle: "boolean", + parent: "(string|element)" + }, + gt = function() { + function t(t, e) { + this._isTransitioning = !1, this._element = t, this._config = this._getConfig(e), this._triggerArray = nt.find('[data-toggle="collapse"][href="#' + t.id + '"],[data-toggle="collapse"][data-target="#' + t.id + '"]'); + for (var n = nt.find('[data-toggle="collapse"]'), i = 0, o = n.length; i < o; i++) { + var s = n[i], + r = f(s), + a = nt.find(r).filter((function(e) { + return e === t + })); + null !== r && a.length && (this._selector = r, this._triggerArray.push(s)) + } + this._parent = this._config.parent ? this._getParent() : null, this._config.parent || this._addAriaAndCollapsedClass(this._element, this._triggerArray), this._config.toggle && this.toggle(), T(t, "bs.collapse", this) + } + var e = t.prototype; + return e.toggle = function() { + this._element.classList.contains("show") ? this.hide() : this.show() + }, e.show = function() { + var e = this; + if (!this._isTransitioning && !this._element.classList.contains("show")) { + var n, i; + this._parent && 0 === (n = nt.find(".show, .collapsing", this._parent).filter((function(t) { + return "string" == typeof e._config.parent ? t.getAttribute("data-parent") === e._config.parent : t.classList.contains("collapse") + }))).length && (n = null); + var o = nt.findOne(this._selector); + if (n) { + var s = n.filter((function(t) { + return o !== t + })); + if ((i = s[0] ? L(s[0], "bs.collapse") : null) && i._isTransitioning) return + } + if (!q.trigger(this._element, "show.bs.collapse").defaultPrevented) { + n && n.forEach((function(e) { + o !== e && t.collapseInterface(e, "hide"), i || T(e, "bs.collapse", null) + })); + var r = this._getDimension(); + this._element.classList.remove("collapse"), this._element.classList.add("collapsing"), this._element.style[r] = 0, this._triggerArray.length && this._triggerArray.forEach((function(t) { + t.classList.remove("collapsed"), t.setAttribute("aria-expanded", !0) + })), this.setTransitioning(!0); + var a = "scroll" + (r[0].toUpperCase() + r.slice(1)), + l = g(this._element); + q.one(this._element, "transitionend", (function() { + e._element.classList.remove("collapsing"), e._element.classList.add("collapse", "show"), e._element.style[r] = "", e.setTransitioning(!1), q.trigger(e._element, "shown.bs.collapse") + })), _(this._element, l), this._element.style[r] = this._element[a] + "px" + } + } + }, e.hide = function() { + var t = this; + if (!this._isTransitioning && this._element.classList.contains("show") && !q.trigger(this._element, "hide.bs.collapse").defaultPrevented) { + var e = this._getDimension(); + this._element.style[e] = this._element.getBoundingClientRect()[e] + "px", w(this._element), this._element.classList.add("collapsing"), this._element.classList.remove("collapse", "show"); + var n = this._triggerArray.length; + if (n > 0) + for (var i = 0; i < n; i++) { + var o = this._triggerArray[i], + s = d(o); + s && !s.classList.contains("show") && (o.classList.add("collapsed"), o.setAttribute("aria-expanded", !1)) + } + this.setTransitioning(!0); + this._element.style[e] = ""; + var r = g(this._element); + q.one(this._element, "transitionend", (function() { + t.setTransitioning(!1), t._element.classList.remove("collapsing"), t._element.classList.add("collapse"), q.trigger(t._element, "hidden.bs.collapse") + })), _(this._element, r) + } + }, e.setTransitioning = function(t) { + this._isTransitioning = t + }, e.dispose = function() { + C(this._element, "bs.collapse"), this._config = null, this._parent = null, this._element = null, this._triggerArray = null, this._isTransitioning = null + }, e._getConfig = function(t) { + return (t = s(s({}, ft), t)).toggle = Boolean(t.toggle), v(ht, t, dt), t + }, e._getDimension = function() { + return this._element.classList.contains("width") ? "width" : "height" + }, e._getParent = function() { + var t = this, + e = this._config.parent; + m(e) ? void 0 === e.jquery && void 0 === e[0] || (e = e[0]) : e = nt.findOne(e); + var n = '[data-toggle="collapse"][data-parent="' + e + '"]'; + return nt.find(n, e).forEach((function(e) { + var n = d(e); + t._addAriaAndCollapsedClass(n, [e]) + })), e + }, e._addAriaAndCollapsedClass = function(t, e) { + if (t) { + var n = t.classList.contains("show"); + e.length && e.forEach((function(t) { + n ? t.classList.remove("collapsed") : t.classList.add("collapsed"), t.setAttribute("aria-expanded", n) + })) + } + }, t.collapseInterface = function(e, n) { + var i = L(e, "bs.collapse"), + o = s(s(s({}, ft), et.getDataAttributes(e)), "object" == typeof n && n ? n : {}); + if (!i && o.toggle && "string" == typeof n && /show|hide/.test(n) && (o.toggle = !1), i || (i = new t(e, o)), "string" == typeof n) { + if (void 0 === i[n]) throw new TypeError('No method named "' + n + '"'); + i[n]() + } + }, t.jQueryInterface = function(e) { + return this.each((function() { + t.collapseInterface(this, e) + })) + }, t.getInstance = function(t) { + return L(t, "bs.collapse") + }, n(t, null, [{ + key: "VERSION", + get: function() { + return "5.0.0-alpha1" + } + }, { + key: "Default", + get: function() { + return ft + } + }]), t + }(); + q.on(document, "click.bs.collapse.data-api", '[data-toggle="collapse"]', (function(t) { + "A" === t.target.tagName && t.preventDefault(); + var e = et.getDataAttributes(this), + n = f(this); + nt.find(n).forEach((function(t) { + var n, i = L(t, "bs.collapse"); + i ? (null === i._parent && "string" == typeof e.parent && (i._config.parent = e.parent, i._parent = i._getParent()), n = "toggle") : n = e, gt.collapseInterface(t, n) + })) + })); + var pt = E(); + if (pt) { + var mt = pt.fn[ht]; + pt.fn[ht] = gt.jQueryInterface, pt.fn[ht].Constructor = gt, pt.fn[ht].noConflict = function() { + return pt.fn[ht] = mt, gt.jQueryInterface + } + } + var _t = "dropdown", + vt = new RegExp("ArrowUp|ArrowDown|Escape"), + bt = { + offset: 0, + flip: !0, + boundary: "scrollParent", + reference: "toggle", + display: "dynamic", + popperConfig: null + }, + yt = { + offset: "(number|string|function)", + flip: "boolean", + boundary: "(string|element)", + reference: "(string|element)", + display: "string", + popperConfig: "(null|object)" + }, + wt = function() { + function e(t, e) { + this._element = t, this._popper = null, this._config = this._getConfig(e), this._menu = this._getMenuElement(), this._inNavbar = this._detectNavbar(), this._addEventListeners(), T(t, "bs.dropdown", this) + } + var i = e.prototype; + return i.toggle = function() { + if (!this._element.disabled && !this._element.classList.contains("disabled")) { + var t = this._element.classList.contains("show"); + e.clearMenus(), t || this.show() + } + }, i.show = function() { + if (!(this._element.disabled || this._element.classList.contains("disabled") || this._menu.classList.contains("show"))) { + var n = e.getParentFromElement(this._element), + i = { + relatedTarget: this._element + }; + if (!q.trigger(this._element, "show.bs.dropdown", i).defaultPrevented) { + if (!this._inNavbar) { + if (void 0 === t) throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org)"); + var o = this._element; + "parent" === this._config.reference ? o = n : m(this._config.reference) && (o = this._config.reference, void 0 !== this._config.reference.jquery && (o = this._config.reference[0])), "scrollParent" !== this._config.boundary && n.classList.add("position-static"), this._popper = new t(o, this._menu, this._getPopperConfig()) + } + var s; + if ("ontouchstart" in document.documentElement && !n.closest(".navbar-nav"))(s = []).concat.apply(s, document.body.children).forEach((function(t) { + return q.on(t, "mouseover", null, (function() {})) + })); + this._element.focus(), this._element.setAttribute("aria-expanded", !0), et.toggleClass(this._menu, "show"), et.toggleClass(this._element, "show"), q.trigger(n, "shown.bs.dropdown", i) + } + } + }, i.hide = function() { + if (!this._element.disabled && !this._element.classList.contains("disabled") && this._menu.classList.contains("show")) { + var t = e.getParentFromElement(this._element), + n = { + relatedTarget: this._element + }; + q.trigger(t, "hide.bs.dropdown", n).defaultPrevented || (this._popper && this._popper.destroy(), et.toggleClass(this._menu, "show"), et.toggleClass(this._element, "show"), q.trigger(t, "hidden.bs.dropdown", n)) + } + }, i.dispose = function() { + C(this._element, "bs.dropdown"), q.off(this._element, ".bs.dropdown"), this._element = null, this._menu = null, this._popper && (this._popper.destroy(), this._popper = null) + }, i.update = function() { + this._inNavbar = this._detectNavbar(), this._popper && this._popper.scheduleUpdate() + }, i._addEventListeners = function() { + var t = this; + q.on(this._element, "click.bs.dropdown", (function(e) { + e.preventDefault(), e.stopPropagation(), t.toggle() + })) + }, i._getConfig = function(t) { + return t = s(s(s({}, this.constructor.Default), et.getDataAttributes(this._element)), t), v(_t, t, this.constructor.DefaultType), t + }, i._getMenuElement = function() { + return nt.next(this._element, ".dropdown-menu")[0] + }, i._getPlacement = function() { + var t = this._element.parentNode, + e = "bottom-start"; + return t.classList.contains("dropup") ? (e = "top-start", this._menu.classList.contains("dropdown-menu-right") && (e = "top-end")) : t.classList.contains("dropright") ? e = "right-start" : t.classList.contains("dropleft") ? e = "left-start" : this._menu.classList.contains("dropdown-menu-right") && (e = "bottom-end"), e + }, i._detectNavbar = function() { + return Boolean(this._element.closest(".navbar")) + }, i._getOffset = function() { + var t = this, + e = {}; + return "function" == typeof this._config.offset ? e.fn = function(e) { + return e.offsets = s(s({}, e.offsets), t._config.offset(e.offsets, t._element) || {}), e + } : e.offset = this._config.offset, e + }, i._getPopperConfig = function() { + var t = { + placement: this._getPlacement(), + modifiers: { + offset: this._getOffset(), + flip: { + enabled: this._config.flip + }, + preventOverflow: { + boundariesElement: this._config.boundary + } + } + }; + return "static" === this._config.display && (t.modifiers.applyStyle = { + enabled: !1 + }), s(s({}, t), this._config.popperConfig) + }, e.dropdownInterface = function(t, n) { + var i = L(t, "bs.dropdown"); + if (i || (i = new e(t, "object" == typeof n ? n : null)), "string" == typeof n) { + if (void 0 === i[n]) throw new TypeError('No method named "' + n + '"'); + i[n]() + } + }, e.jQueryInterface = function(t) { + return this.each((function() { + e.dropdownInterface(this, t) + })) + }, e.clearMenus = function(t) { + if (!t || 2 !== t.button && ("keyup" !== t.type || "Tab" === t.key)) + for (var n = nt.find('[data-toggle="dropdown"]'), i = 0, o = n.length; i < o; i++) { + var s = e.getParentFromElement(n[i]), + r = L(n[i], "bs.dropdown"), + a = { + relatedTarget: n[i] + }; + if (t && "click" === t.type && (a.clickEvent = t), r) { + var l = r._menu; + if (n[i].classList.contains("show")) + if (!(t && ("click" === t.type && /input|textarea/i.test(t.target.tagName) || "keyup" === t.type && "Tab" === t.key) && l.contains(t.target))) + if (!q.trigger(s, "hide.bs.dropdown", a).defaultPrevented) { + var c; + if ("ontouchstart" in document.documentElement)(c = []).concat.apply(c, document.body.children).forEach((function(t) { + return q.off(t, "mouseover", null, (function() {})) + })); + n[i].setAttribute("aria-expanded", "false"), r._popper && r._popper.destroy(), l.classList.remove("show"), n[i].classList.remove("show"), q.trigger(s, "hidden.bs.dropdown", a) + } + } + } + }, e.getParentFromElement = function(t) { + return d(t) || t.parentNode + }, e.dataApiKeydownHandler = function(t) { + if (!(/input|textarea/i.test(t.target.tagName) ? "Space" === t.key || "Escape" !== t.key && ("ArrowDown" !== t.key && "ArrowUp" !== t.key || t.target.closest(".dropdown-menu")) : !vt.test(t.key)) && (t.preventDefault(), t.stopPropagation(), !this.disabled && !this.classList.contains("disabled"))) { + var n = e.getParentFromElement(this), + i = this.classList.contains("show"); + if ("Escape" === t.key) return (this.matches('[data-toggle="dropdown"]') ? this : nt.prev(this, '[data-toggle="dropdown"]')[0]).focus(), void e.clearMenus(); + if (i && "Space" !== t.key) { + var o = nt.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)", n).filter(b); + if (o.length) { + var s = o.indexOf(t.target); + "ArrowUp" === t.key && s > 0 && s--, "ArrowDown" === t.key && s < o.length - 1 && s++, o[s = -1 === s ? 0 : s].focus() + } + } else e.clearMenus() + } + }, e.getInstance = function(t) { + return L(t, "bs.dropdown") + }, n(e, null, [{ + key: "VERSION", + get: function() { + return "5.0.0-alpha1" + } + }, { + key: "Default", + get: function() { + return bt + } + }, { + key: "DefaultType", + get: function() { + return yt + } + }]), e + }(); + q.on(document, "keydown.bs.dropdown.data-api", '[data-toggle="dropdown"]', wt.dataApiKeydownHandler), q.on(document, "keydown.bs.dropdown.data-api", ".dropdown-menu", wt.dataApiKeydownHandler), q.on(document, "click.bs.dropdown.data-api", wt.clearMenus), q.on(document, "keyup.bs.dropdown.data-api", wt.clearMenus), q.on(document, "click.bs.dropdown.data-api", '[data-toggle="dropdown"]', (function(t) { + t.preventDefault(), t.stopPropagation(), wt.dropdownInterface(this, "toggle") + })), q.on(document, "click.bs.dropdown.data-api", ".dropdown form", (function(t) { + return t.stopPropagation() + })); + var Et = E(); + if (Et) { + var kt = Et.fn[_t]; + Et.fn[_t] = wt.jQueryInterface, Et.fn[_t].Constructor = wt, Et.fn[_t].noConflict = function() { + return Et.fn[_t] = kt, wt.jQueryInterface + } + } + var Tt = { + backdrop: !0, + keyboard: !0, + focus: !0, + show: !0 + }, + Lt = { + backdrop: "(boolean|string)", + keyboard: "boolean", + focus: "boolean", + show: "boolean" + }, + Ct = function() { + function t(t, e) { + this._config = this._getConfig(e), this._element = t, this._dialog = nt.findOne(".modal-dialog", t), this._backdrop = null, this._isShown = !1, this._isBodyOverflowing = !1, this._ignoreBackdropClick = !1, this._isTransitioning = !1, this._scrollbarWidth = 0, T(t, "bs.modal", this) + } + var e = t.prototype; + return e.toggle = function(t) { + return this._isShown ? this.hide() : this.show(t) + }, e.show = function(t) { + var e = this; + if (!this._isShown && !this._isTransitioning) { + this._element.classList.contains("fade") && (this._isTransitioning = !0); + var n = q.trigger(this._element, "show.bs.modal", { + relatedTarget: t + }); + this._isShown || n.defaultPrevented || (this._isShown = !0, this._checkScrollbar(), this._setScrollbar(), this._adjustDialog(), this._setEscapeEvent(), this._setResizeEvent(), q.on(this._element, "click.dismiss.bs.modal", '[data-dismiss="modal"]', (function(t) { + return e.hide(t) + })), q.on(this._dialog, "mousedown.dismiss.bs.modal", (function() { + q.one(e._element, "mouseup.dismiss.bs.modal", (function(t) { + t.target === e._element && (e._ignoreBackdropClick = !0) + })) + })), this._showBackdrop((function() { + return e._showElement(t) + }))) + } + }, e.hide = function(t) { + var e = this; + if ((t && t.preventDefault(), this._isShown && !this._isTransitioning) && !q.trigger(this._element, "hide.bs.modal").defaultPrevented) { + this._isShown = !1; + var n = this._element.classList.contains("fade"); + if (n && (this._isTransitioning = !0), this._setEscapeEvent(), this._setResizeEvent(), q.off(document, "focusin.bs.modal"), this._element.classList.remove("show"), q.off(this._element, "click.dismiss.bs.modal"), q.off(this._dialog, "mousedown.dismiss.bs.modal"), n) { + var i = g(this._element); + q.one(this._element, "transitionend", (function(t) { + return e._hideModal(t) + })), _(this._element, i) + } else this._hideModal() + } + }, e.dispose = function() { + [window, this._element, this._dialog].forEach((function(t) { + return q.off(t, ".bs.modal") + })), q.off(document, "focusin.bs.modal"), C(this._element, "bs.modal"), this._config = null, this._element = null, this._dialog = null, this._backdrop = null, this._isShown = null, this._isBodyOverflowing = null, this._ignoreBackdropClick = null, this._isTransitioning = null, this._scrollbarWidth = null + }, e.handleUpdate = function() { + this._adjustDialog() + }, e._getConfig = function(t) { + return t = s(s({}, Tt), t), v("modal", t, Lt), t + }, e._showElement = function(t) { + var e = this, + n = this._element.classList.contains("fade"), + i = nt.findOne(".modal-body", this._dialog); + this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE || document.body.appendChild(this._element), this._element.style.display = "block", this._element.removeAttribute("aria-hidden"), this._element.setAttribute("aria-modal", !0), this._element.setAttribute("role", "dialog"), this._element.scrollTop = 0, i && (i.scrollTop = 0), n && w(this._element), this._element.classList.add("show"), this._config.focus && this._enforceFocus(); + var o = function() { + e._config.focus && e._element.focus(), e._isTransitioning = !1, q.trigger(e._element, "shown.bs.modal", { + relatedTarget: t + }) + }; + if (n) { + var s = g(this._dialog); + q.one(this._dialog, "transitionend", o), _(this._dialog, s) + } else o() + }, e._enforceFocus = function() { + var t = this; + q.off(document, "focusin.bs.modal"), q.on(document, "focusin.bs.modal", (function(e) { + document === e.target || t._element === e.target || t._element.contains(e.target) || t._element.focus() + })) + }, e._setEscapeEvent = function() { + var t = this; + this._isShown ? q.on(this._element, "keydown.dismiss.bs.modal", (function(e) { + t._config.keyboard && "Escape" === e.key ? (e.preventDefault(), t.hide()) : t._config.keyboard || "Escape" !== e.key || t._triggerBackdropTransition() + })) : q.off(this._element, "keydown.dismiss.bs.modal") + }, e._setResizeEvent = function() { + var t = this; + this._isShown ? q.on(window, "resize.bs.modal", (function() { + return t._adjustDialog() + })) : q.off(window, "resize.bs.modal") + }, e._hideModal = function() { + var t = this; + this._element.style.display = "none", this._element.setAttribute("aria-hidden", !0), this._element.removeAttribute("aria-modal"), this._element.removeAttribute("role"), this._isTransitioning = !1, this._showBackdrop((function() { + document.body.classList.remove("modal-open"), t._resetAdjustments(), t._resetScrollbar(), q.trigger(t._element, "hidden.bs.modal") + })) + }, e._removeBackdrop = function() { + this._backdrop.parentNode.removeChild(this._backdrop), this._backdrop = null + }, e._showBackdrop = function(t) { + var e = this, + n = this._element.classList.contains("fade") ? "fade" : ""; + if (this._isShown && this._config.backdrop) { + if (this._backdrop = document.createElement("div"), this._backdrop.className = "modal-backdrop", n && this._backdrop.classList.add(n), document.body.appendChild(this._backdrop), q.on(this._element, "click.dismiss.bs.modal", (function(t) { + e._ignoreBackdropClick ? e._ignoreBackdropClick = !1 : t.target === t.currentTarget && e._triggerBackdropTransition() + })), n && w(this._backdrop), this._backdrop.classList.add("show"), !n) return void t(); + var i = g(this._backdrop); + q.one(this._backdrop, "transitionend", t), _(this._backdrop, i) + } else if (!this._isShown && this._backdrop) { + this._backdrop.classList.remove("show"); + var o = function() { + e._removeBackdrop(), t() + }; + if (this._element.classList.contains("fade")) { + var s = g(this._backdrop); + q.one(this._backdrop, "transitionend", o), _(this._backdrop, s) + } else o() + } else t() + }, e._triggerBackdropTransition = function() { + var t = this; + if ("static" === this._config.backdrop) { + if (q.trigger(this._element, "hidePrevented.bs.modal").defaultPrevented) return; + this._element.classList.add("modal-static"); + var e = g(this._element); + q.one(this._element, "transitionend", (function() { + t._element.classList.remove("modal-static") + })), _(this._element, e), this._element.focus() + } else this.hide() + }, e._adjustDialog = function() { + var t = this._element.scrollHeight > document.documentElement.clientHeight; + !this._isBodyOverflowing && t && (this._element.style.paddingLeft = this._scrollbarWidth + "px"), this._isBodyOverflowing && !t && (this._element.style.paddingRight = this._scrollbarWidth + "px") + }, e._resetAdjustments = function() { + this._element.style.paddingLeft = "", this._element.style.paddingRight = "" + }, e._checkScrollbar = function() { + var t = document.body.getBoundingClientRect(); + this._isBodyOverflowing = Math.round(t.left + t.right) < window.innerWidth, this._scrollbarWidth = this._getScrollbarWidth() + }, e._setScrollbar = function() { + var t = this; + if (this._isBodyOverflowing) { + nt.find(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top").forEach((function(e) { + var n = e.style.paddingRight, + i = window.getComputedStyle(e)["padding-right"]; + et.setDataAttribute(e, "padding-right", n), e.style.paddingRight = parseFloat(i) + t._scrollbarWidth + "px" + })), nt.find(".sticky-top").forEach((function(e) { + var n = e.style.marginRight, + i = window.getComputedStyle(e)["margin-right"]; + et.setDataAttribute(e, "margin-right", n), e.style.marginRight = parseFloat(i) - t._scrollbarWidth + "px" + })); + var e = document.body.style.paddingRight, + n = window.getComputedStyle(document.body)["padding-right"]; + et.setDataAttribute(document.body, "padding-right", e), document.body.style.paddingRight = parseFloat(n) + this._scrollbarWidth + "px" + } + document.body.classList.add("modal-open") + }, e._resetScrollbar = function() { + nt.find(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top").forEach((function(t) { + var e = et.getDataAttribute(t, "padding-right"); + void 0 !== e && (et.removeDataAttribute(t, "padding-right"), t.style.paddingRight = e) + })), nt.find(".sticky-top").forEach((function(t) { + var e = et.getDataAttribute(t, "margin-right"); + void 0 !== e && (et.removeDataAttribute(t, "margin-right"), t.style.marginRight = e) + })); + var t = et.getDataAttribute(document.body, "padding-right"); + void 0 === t ? document.body.style.paddingRight = "" : (et.removeDataAttribute(document.body, "padding-right"), document.body.style.paddingRight = t) + }, e._getScrollbarWidth = function() { + var t = document.createElement("div"); + t.className = "modal-scrollbar-measure", document.body.appendChild(t); + var e = t.getBoundingClientRect().width - t.clientWidth; + return document.body.removeChild(t), e + }, t.jQueryInterface = function(e, n) { + return this.each((function() { + var i = L(this, "bs.modal"), + o = s(s(s({}, Tt), et.getDataAttributes(this)), "object" == typeof e && e ? e : {}); + if (i || (i = new t(this, o)), "string" == typeof e) { + if (void 0 === i[e]) throw new TypeError('No method named "' + e + '"'); + i[e](n) + } else o.show && i.show(n) + })) + }, t.getInstance = function(t) { + return L(t, "bs.modal") + }, n(t, null, [{ + key: "VERSION", + get: function() { + return "5.0.0-alpha1" + } + }, { + key: "Default", + get: function() { + return Tt + } + }]), t + }(); + q.on(document, "click.bs.modal.data-api", '[data-toggle="modal"]', (function(t) { + var e = this, + n = d(this); + "A" !== this.tagName && "AREA" !== this.tagName || t.preventDefault(), q.one(n, "show.bs.modal", (function(t) { + t.defaultPrevented || q.one(n, "hidden.bs.modal", (function() { + b(e) && e.focus() + })) + })); + var i = L(n, "bs.modal"); + if (!i) { + var o = s(s({}, et.getDataAttributes(n)), et.getDataAttributes(this)); + i = new Ct(n, o) + } + i.show(this) + })); + var At = E(); + if (At) { + var St = At.fn.modal; + At.fn.modal = Ct.jQueryInterface, At.fn.modal.Constructor = Ct, At.fn.modal.noConflict = function() { + return At.fn.modal = St, Ct.jQueryInterface + } + } + var Ot = ["background", "cite", "href", "itemtype", "longdesc", "poster", "src", "xlink:href"], + Dt = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi, + It = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i, + Nt = { + "*": ["class", "dir", "id", "lang", "role", /^aria-[\w-]*$/i], + a: ["target", "href", "title", "rel"], + area: [], + b: [], + br: [], + col: [], + code: [], + div: [], + em: [], + hr: [], + h1: [], + h2: [], + h3: [], + h4: [], + h5: [], + h6: [], + i: [], + img: ["src", "srcset", "alt", "title", "width", "height"], + li: [], + ol: [], + p: [], + pre: [], + s: [], + small: [], + span: [], + sub: [], + sup: [], + strong: [], + u: [], + ul: [] + }; + + function jt(t, e, n) { + var i; + if (!t.length) return t; + if (n && "function" == typeof n) return n(t); + for (var o = (new window.DOMParser).parseFromString(t, "text/html"), s = Object.keys(e), r = (i = []).concat.apply(i, o.body.querySelectorAll("*")), a = function(t, n) { + var i, o = r[t], + a = o.nodeName.toLowerCase(); + if (-1 === s.indexOf(a)) return o.parentNode.removeChild(o), "continue"; + var l = (i = []).concat.apply(i, o.attributes), + c = [].concat(e["*"] || [], e[a] || []); + l.forEach((function(t) { + (function(t, e) { + var n = t.nodeName.toLowerCase(); + if (-1 !== e.indexOf(n)) return -1 === Ot.indexOf(n) || Boolean(t.nodeValue.match(Dt) || t.nodeValue.match(It)); + for (var i = e.filter((function(t) { + return t instanceof RegExp + })), o = 0, s = i.length; o < s; o++) + if (n.match(i[o])) return !0; + return !1 + })(t, c) || o.removeAttribute(t.nodeName) + })) + }, l = 0, c = r.length; l < c; l++) a(l); + return o.body.innerHTML + } + var Pt = "tooltip", + xt = new RegExp("(^|\\s)bs-tooltip\\S+", "g"), + Rt = ["sanitize", "whiteList", "sanitizeFn"], + Ht = { + animation: "boolean", + template: "string", + title: "(string|element|function)", + trigger: "string", + delay: "(number|object)", + html: "boolean", + selector: "(string|boolean)", + placement: "(string|function)", + offset: "(number|string|function)", + container: "(string|element|boolean)", + fallbackPlacement: "(string|array)", + boundary: "(string|element)", + sanitize: "boolean", + sanitizeFn: "(null|function)", + whiteList: "object", + popperConfig: "(null|object)" + }, + Bt = { + AUTO: "auto", + TOP: "top", + RIGHT: "right", + BOTTOM: "bottom", + LEFT: "left" + }, + Mt = { + animation: !0, + template: '', + trigger: "hover focus", + title: "", + delay: 0, + html: !1, + selector: !1, + placement: "top", + offset: 0, + container: !1, + fallbackPlacement: "flip", + boundary: "scrollParent", + sanitize: !0, + sanitizeFn: null, + whiteList: Nt, + popperConfig: null + }, + Qt = { + HIDE: "hide.bs.tooltip", + HIDDEN: "hidden.bs.tooltip", + SHOW: "show.bs.tooltip", + SHOWN: "shown.bs.tooltip", + INSERTED: "inserted.bs.tooltip", + CLICK: "click.bs.tooltip", + FOCUSIN: "focusin.bs.tooltip", + FOCUSOUT: "focusout.bs.tooltip", + MOUSEENTER: "mouseenter.bs.tooltip", + MOUSELEAVE: "mouseleave.bs.tooltip" + }, + Ut = function() { + function e(e, n) { + if (void 0 === t) throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org)"); + this._isEnabled = !0, this._timeout = 0, this._hoverState = "", this._activeTrigger = {}, this._popper = null, this.element = e, this.config = this._getConfig(n), this.tip = null, this._setListeners(), T(e, this.constructor.DATA_KEY, this) + } + var i = e.prototype; + return i.enable = function() { + this._isEnabled = !0 + }, i.disable = function() { + this._isEnabled = !1 + }, i.toggleEnabled = function() { + this._isEnabled = !this._isEnabled + }, i.toggle = function(t) { + if (this._isEnabled) + if (t) { + var e = this.constructor.DATA_KEY, + n = L(t.target, e); + n || (n = new this.constructor(t.target, this._getDelegateConfig()), T(t.target, e, n)), n._activeTrigger.click = !n._activeTrigger.click, n._isWithActiveTrigger() ? n._enter(null, n) : n._leave(null, n) + } else { + if (this.getTipElement().classList.contains("show")) return void this._leave(null, this); + this._enter(null, this) + } + }, i.dispose = function() { + clearTimeout(this._timeout), C(this.element, this.constructor.DATA_KEY), q.off(this.element, this.constructor.EVENT_KEY), q.off(this.element.closest(".modal"), "hide.bs.modal", this._hideModalHandler), this.tip && this.tip.parentNode.removeChild(this.tip), this._isEnabled = null, this._timeout = null, this._hoverState = null, this._activeTrigger = null, this._popper && this._popper.destroy(), this._popper = null, this.element = null, this.config = null, this.tip = null + }, i.show = function() { + var e = this; + if ("none" === this.element.style.display) throw new Error("Please use show on visible elements"); + if (this.isWithContent() && this._isEnabled) { + var n = q.trigger(this.element, this.constructor.Event.SHOW), + i = function t(e) { + if (!document.documentElement.attachShadow) return null; + if ("function" == typeof e.getRootNode) { + var n = e.getRootNode(); + return n instanceof ShadowRoot ? n : null + } + return e instanceof ShadowRoot ? e : e.parentNode ? t(e.parentNode) : null + }(this.element), + o = null === i ? this.element.ownerDocument.documentElement.contains(this.element) : i.contains(this.element); + if (n.defaultPrevented || !o) return; + var s = this.getTipElement(), + r = u(this.constructor.NAME); + s.setAttribute("id", r), this.element.setAttribute("aria-describedby", r), this.setContent(), this.config.animation && s.classList.add("fade"); + var a = "function" == typeof this.config.placement ? this.config.placement.call(this, s, this.element) : this.config.placement, + l = this._getAttachment(a); + this._addAttachmentClass(l); + var c, h = this._getContainer(); + if (T(s, this.constructor.DATA_KEY, this), this.element.ownerDocument.documentElement.contains(this.tip) || h.appendChild(s), q.trigger(this.element, this.constructor.Event.INSERTED), this._popper = new t(this.element, s, this._getPopperConfig(l)), s.classList.add("show"), "ontouchstart" in document.documentElement)(c = []).concat.apply(c, document.body.children).forEach((function(t) { + q.on(t, "mouseover", (function() {})) + })); + var f = function() { + e.config.animation && e._fixTransition(); + var t = e._hoverState; + e._hoverState = null, q.trigger(e.element, e.constructor.Event.SHOWN), "out" === t && e._leave(null, e) + }; + if (this.tip.classList.contains("fade")) { + var d = g(this.tip); + q.one(this.tip, "transitionend", f), _(this.tip, d) + } else f() + } + }, i.hide = function() { + var t = this, + e = this.getTipElement(), + n = function() { + "show" !== t._hoverState && e.parentNode && e.parentNode.removeChild(e), t._cleanTipClass(), t.element.removeAttribute("aria-describedby"), q.trigger(t.element, t.constructor.Event.HIDDEN), t._popper.destroy() + }; + if (!q.trigger(this.element, this.constructor.Event.HIDE).defaultPrevented) { + var i; + if (e.classList.remove("show"), "ontouchstart" in document.documentElement)(i = []).concat.apply(i, document.body.children).forEach((function(t) { + return q.off(t, "mouseover", y) + })); + if (this._activeTrigger.click = !1, this._activeTrigger.focus = !1, this._activeTrigger.hover = !1, this.tip.classList.contains("fade")) { + var o = g(e); + q.one(e, "transitionend", n), _(e, o) + } else n(); + this._hoverState = "" + } + }, i.update = function() { + null !== this._popper && this._popper.scheduleUpdate() + }, i.isWithContent = function() { + return Boolean(this.getTitle()) + }, i.getTipElement = function() { + if (this.tip) return this.tip; + var t = document.createElement("div"); + return t.innerHTML = this.config.template, this.tip = t.children[0], this.tip + }, i.setContent = function() { + var t = this.getTipElement(); + this.setElementContent(nt.findOne(".tooltip-inner", t), this.getTitle()), t.classList.remove("fade", "show") + }, i.setElementContent = function(t, e) { + if (null !== t) return "object" == typeof e && m(e) ? (e.jquery && (e = e[0]), void(this.config.html ? e.parentNode !== t && (t.innerHTML = "", t.appendChild(e)) : t.textContent = e.textContent)) : void(this.config.html ? (this.config.sanitize && (e = jt(e, this.config.whiteList, this.config.sanitizeFn)), t.innerHTML = e) : t.textContent = e) + }, i.getTitle = function() { + var t = this.element.getAttribute("data-original-title"); + return t || (t = "function" == typeof this.config.title ? this.config.title.call(this.element) : this.config.title), t + }, i._getPopperConfig = function(t) { + var e = this; + return s(s({}, { + placement: t, + modifiers: { + offset: this._getOffset(), + flip: { + behavior: this.config.fallbackPlacement + }, + arrow: { + element: "." + this.constructor.NAME + "-arrow" + }, + preventOverflow: { + boundariesElement: this.config.boundary + } + }, + onCreate: function(t) { + t.originalPlacement !== t.placement && e._handlePopperPlacementChange(t) + }, + onUpdate: function(t) { + return e._handlePopperPlacementChange(t) + } + }), this.config.popperConfig) + }, i._addAttachmentClass = function(t) { + this.getTipElement().classList.add("bs-tooltip-" + t) + }, i._getOffset = function() { + var t = this, + e = {}; + return "function" == typeof this.config.offset ? e.fn = function(e) { + return e.offsets = s(s({}, e.offsets), t.config.offset(e.offsets, t.element) || {}), e + } : e.offset = this.config.offset, e + }, i._getContainer = function() { + return !1 === this.config.container ? document.body : m(this.config.container) ? this.config.container : nt.findOne(this.config.container) + }, i._getAttachment = function(t) { + return Bt[t.toUpperCase()] + }, i._setListeners = function() { + var t = this; + this.config.trigger.split(" ").forEach((function(e) { + if ("click" === e) q.on(t.element, t.constructor.Event.CLICK, t.config.selector, (function(e) { + return t.toggle(e) + })); + else if ("manual" !== e) { + var n = "hover" === e ? t.constructor.Event.MOUSEENTER : t.constructor.Event.FOCUSIN, + i = "hover" === e ? t.constructor.Event.MOUSELEAVE : t.constructor.Event.FOCUSOUT; + q.on(t.element, n, t.config.selector, (function(e) { + return t._enter(e) + })), q.on(t.element, i, t.config.selector, (function(e) { + return t._leave(e) + })) + } + })), this._hideModalHandler = function() { + t.element && t.hide() + }, q.on(this.element.closest(".modal"), "hide.bs.modal", this._hideModalHandler), this.config.selector ? this.config = s(s({}, this.config), {}, { + trigger: "manual", + selector: "" + }) : this._fixTitle() + }, i._fixTitle = function() { + var t = typeof this.element.getAttribute("data-original-title"); + (this.element.getAttribute("title") || "string" !== t) && (this.element.setAttribute("data-original-title", this.element.getAttribute("title") || ""), this.element.setAttribute("title", "")) + }, i._enter = function(t, e) { + var n = this.constructor.DATA_KEY; + (e = e || L(t.target, n)) || (e = new this.constructor(t.target, this._getDelegateConfig()), T(t.target, n, e)), t && (e._activeTrigger["focusin" === t.type ? "focus" : "hover"] = !0), e.getTipElement().classList.contains("show") || "show" === e._hoverState ? e._hoverState = "show" : (clearTimeout(e._timeout), e._hoverState = "show", e.config.delay && e.config.delay.show ? e._timeout = setTimeout((function() { + "show" === e._hoverState && e.show() + }), e.config.delay.show) : e.show()) + }, i._leave = function(t, e) { + var n = this.constructor.DATA_KEY; + (e = e || L(t.target, n)) || (e = new this.constructor(t.target, this._getDelegateConfig()), T(t.target, n, e)), t && (e._activeTrigger["focusout" === t.type ? "focus" : "hover"] = !1), e._isWithActiveTrigger() || (clearTimeout(e._timeout), e._hoverState = "out", e.config.delay && e.config.delay.hide ? e._timeout = setTimeout((function() { + "out" === e._hoverState && e.hide() + }), e.config.delay.hide) : e.hide()) + }, i._isWithActiveTrigger = function() { + for (var t in this._activeTrigger) + if (this._activeTrigger[t]) return !0; + return !1 + }, i._getConfig = function(t) { + var e = et.getDataAttributes(this.element); + return Object.keys(e).forEach((function(t) { + -1 !== Rt.indexOf(t) && delete e[t] + })), t && "object" == typeof t.container && t.container.jquery && (t.container = t.container[0]), "number" == typeof(t = s(s(s({}, this.constructor.Default), e), "object" == typeof t && t ? t : {})).delay && (t.delay = { + show: t.delay, + hide: t.delay + }), "number" == typeof t.title && (t.title = t.title.toString()), "number" == typeof t.content && (t.content = t.content.toString()), v(Pt, t, this.constructor.DefaultType), t.sanitize && (t.template = jt(t.template, t.whiteList, t.sanitizeFn)), t + }, i._getDelegateConfig = function() { + var t = {}; + if (this.config) + for (var e in this.config) this.constructor.Default[e] !== this.config[e] && (t[e] = this.config[e]); + return t + }, i._cleanTipClass = function() { + var t = this.getTipElement(), + e = t.getAttribute("class").match(xt); + null !== e && e.length > 0 && e.map((function(t) { + return t.trim() + })).forEach((function(e) { + return t.classList.remove(e) + })) + }, i._handlePopperPlacementChange = function(t) { + var e = t.instance; + this.tip = e.popper, this._cleanTipClass(), this._addAttachmentClass(this._getAttachment(t.placement)) + }, i._fixTransition = function() { + var t = this.getTipElement(), + e = this.config.animation; + null === t.getAttribute("x-placement") && (t.classList.remove("fade"), this.config.animation = !1, this.hide(), this.show(), this.config.animation = e) + }, e.jQueryInterface = function(t) { + return this.each((function() { + var n = L(this, "bs.tooltip"), + i = "object" == typeof t && t; + if ((n || !/dispose|hide/.test(t)) && (n || (n = new e(this, i)), "string" == typeof t)) { + if (void 0 === n[t]) throw new TypeError('No method named "' + t + '"'); + n[t]() + } + })) + }, e.getInstance = function(t) { + return L(t, "bs.tooltip") + }, n(e, null, [{ + key: "VERSION", + get: function() { + return "5.0.0-alpha1" + } + }, { + key: "Default", + get: function() { + return Mt + } + }, { + key: "NAME", + get: function() { + return Pt + } + }, { + key: "DATA_KEY", + get: function() { + return "bs.tooltip" + } + }, { + key: "Event", + get: function() { + return Qt + } + }, { + key: "EVENT_KEY", + get: function() { + return ".bs.tooltip" + } + }, { + key: "DefaultType", + get: function() { + return Ht + } + }]), e + }(), + Ft = E(); + if (Ft) { + var Wt = Ft.fn[Pt]; + Ft.fn[Pt] = Ut.jQueryInterface, Ft.fn[Pt].Constructor = Ut, Ft.fn[Pt].noConflict = function() { + return Ft.fn[Pt] = Wt, Ut.jQueryInterface + } + } + var Vt = "popover", + qt = new RegExp("(^|\\s)bs-popover\\S+", "g"), + zt = s(s({}, Ut.Default), {}, { + placement: "right", + trigger: "click", + content: "", + template: '' + }), + Kt = s(s({}, Ut.DefaultType), {}, { + content: "(string|element|function)" + }), + Xt = { + HIDE: "hide.bs.popover", + HIDDEN: "hidden.bs.popover", + SHOW: "show.bs.popover", + SHOWN: "shown.bs.popover", + INSERTED: "inserted.bs.popover", + CLICK: "click.bs.popover", + FOCUSIN: "focusin.bs.popover", + FOCUSOUT: "focusout.bs.popover", + MOUSEENTER: "mouseenter.bs.popover", + MOUSELEAVE: "mouseleave.bs.popover" + }, + Yt = function(t) { + var e, i; + + function o() { + return t.apply(this, arguments) || this + } + i = t, (e = o).prototype = Object.create(i.prototype), e.prototype.constructor = e, e.__proto__ = i; + var s = o.prototype; + return s.isWithContent = function() { + return this.getTitle() || this._getContent() + }, s.setContent = function() { + var t = this.getTipElement(); + this.setElementContent(nt.findOne(".popover-header", t), this.getTitle()); + var e = this._getContent(); + "function" == typeof e && (e = e.call(this.element)), this.setElementContent(nt.findOne(".popover-body", t), e), t.classList.remove("fade", "show") + }, s._addAttachmentClass = function(t) { + this.getTipElement().classList.add("bs-popover-" + t) + }, s._getContent = function() { + return this.element.getAttribute("data-content") || this.config.content + }, s._cleanTipClass = function() { + var t = this.getTipElement(), + e = t.getAttribute("class").match(qt); + null !== e && e.length > 0 && e.map((function(t) { + return t.trim() + })).forEach((function(e) { + return t.classList.remove(e) + })) + }, o.jQueryInterface = function(t) { + return this.each((function() { + var e = L(this, "bs.popover"), + n = "object" == typeof t ? t : null; + if ((e || !/dispose|hide/.test(t)) && (e || (e = new o(this, n), T(this, "bs.popover", e)), "string" == typeof t)) { + if (void 0 === e[t]) throw new TypeError('No method named "' + t + '"'); + e[t]() + } + })) + }, o.getInstance = function(t) { + return L(t, "bs.popover") + }, n(o, null, [{ + key: "VERSION", + get: function() { + return "5.0.0-alpha1" + } + }, { + key: "Default", + get: function() { + return zt + } + }, { + key: "NAME", + get: function() { + return Vt + } + }, { + key: "DATA_KEY", + get: function() { + return "bs.popover" + } + }, { + key: "Event", + get: function() { + return Xt + } + }, { + key: "EVENT_KEY", + get: function() { + return ".bs.popover" + } + }, { + key: "DefaultType", + get: function() { + return Kt + } + }]), o + }(Ut), + $t = E(); + if ($t) { + var Gt = $t.fn[Vt]; + $t.fn[Vt] = Yt.jQueryInterface, $t.fn[Vt].Constructor = Yt, $t.fn[Vt].noConflict = function() { + return $t.fn[Vt] = Gt, Yt.jQueryInterface + } + } + var Zt = "scrollspy", + Jt = { + offset: 10, + method: "auto", + target: "" + }, + te = { + offset: "number", + method: "string", + target: "(string|element)" + }, + ee = function() { + function t(t, e) { + var n = this; + this._element = t, this._scrollElement = "BODY" === t.tagName ? window : t, this._config = this._getConfig(e), this._selector = this._config.target + " .nav-link," + this._config.target + " .list-group-item," + this._config.target + " .dropdown-item", this._offsets = [], this._targets = [], this._activeTarget = null, this._scrollHeight = 0, q.on(this._scrollElement, "scroll.bs.scrollspy", (function(t) { + return n._process(t) + })), this.refresh(), this._process(), T(t, "bs.scrollspy", this) + } + var e = t.prototype; + return e.refresh = function() { + var t = this, + e = this._scrollElement === this._scrollElement.window ? "offset" : "position", + n = "auto" === this._config.method ? e : this._config.method, + i = "position" === n ? this._getScrollTop() : 0; + this._offsets = [], this._targets = [], this._scrollHeight = this._getScrollHeight(), nt.find(this._selector).map((function(t) { + var e, o = f(t); + if (o && (e = nt.findOne(o)), e) { + var s = e.getBoundingClientRect(); + if (s.width || s.height) return [et[n](e).top + i, o] + } + return null + })).filter((function(t) { + return t + })).sort((function(t, e) { + return t[0] - e[0] + })).forEach((function(e) { + t._offsets.push(e[0]), t._targets.push(e[1]) + })) + }, e.dispose = function() { + C(this._element, "bs.scrollspy"), q.off(this._scrollElement, ".bs.scrollspy"), this._element = null, this._scrollElement = null, this._config = null, this._selector = null, this._offsets = null, this._targets = null, this._activeTarget = null, this._scrollHeight = null + }, e._getConfig = function(t) { + if ("string" != typeof(t = s(s({}, Jt), "object" == typeof t && t ? t : {})).target && m(t.target)) { + var e = t.target.id; + e || (e = u(Zt), t.target.id = e), t.target = "#" + e + } + return v(Zt, t, te), t + }, e._getScrollTop = function() { + return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop + }, e._getScrollHeight = function() { + return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight) + }, e._getOffsetHeight = function() { + return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height + }, e._process = function() { + var t = this._getScrollTop() + this._config.offset, + e = this._getScrollHeight(), + n = this._config.offset + e - this._getOffsetHeight(); + if (this._scrollHeight !== e && this.refresh(), t >= n) { + var i = this._targets[this._targets.length - 1]; + this._activeTarget !== i && this._activate(i) + } else { + if (this._activeTarget && t < this._offsets[0] && this._offsets[0] > 0) return this._activeTarget = null, void this._clear(); + for (var o = this._offsets.length; o--;) { + this._activeTarget !== this._targets[o] && t >= this._offsets[o] && (void 0 === this._offsets[o + 1] || t < this._offsets[o + 1]) && this._activate(this._targets[o]) + } + } + }, e._activate = function(t) { + this._activeTarget = t, this._clear(); + var e = this._selector.split(",").map((function(e) { + return e + '[data-target="' + t + '"],' + e + '[href="' + t + '"]' + })), + n = nt.findOne(e.join(",")); + n.classList.contains("dropdown-item") ? (nt.findOne(".dropdown-toggle", n.closest(".dropdown")).classList.add("active"), n.classList.add("active")) : (n.classList.add("active"), nt.parents(n, ".nav, .list-group").forEach((function(t) { + nt.prev(t, ".nav-link, .list-group-item").forEach((function(t) { + return t.classList.add("active") + })), nt.prev(t, ".nav-item").forEach((function(t) { + nt.children(t, ".nav-link").forEach((function(t) { + return t.classList.add("active") + })) + })) + }))), q.trigger(this._scrollElement, "activate.bs.scrollspy", { + relatedTarget: t + }) + }, e._clear = function() { + nt.find(this._selector).filter((function(t) { + return t.classList.contains("active") + })).forEach((function(t) { + return t.classList.remove("active") + })) + }, t.jQueryInterface = function(e) { + return this.each((function() { + var n = L(this, "bs.scrollspy"); + if (n || (n = new t(this, "object" == typeof e && e)), "string" == typeof e) { + if (void 0 === n[e]) throw new TypeError('No method named "' + e + '"'); + n[e]() + } + })) + }, t.getInstance = function(t) { + return L(t, "bs.scrollspy") + }, n(t, null, [{ + key: "VERSION", + get: function() { + return "5.0.0-alpha1" + } + }, { + key: "Default", + get: function() { + return Jt + } + }]), t + }(); + q.on(window, "load.bs.scrollspy.data-api", (function() { + nt.find('[data-spy="scroll"]').forEach((function(t) { + return new ee(t, et.getDataAttributes(t)) + })) + })); + var ne = E(); + if (ne) { + var ie = ne.fn[Zt]; + ne.fn[Zt] = ee.jQueryInterface, ne.fn[Zt].Constructor = ee, ne.fn[Zt].noConflict = function() { + return ne.fn[Zt] = ie, ee.jQueryInterface + } + } + var oe = function() { + function t(t) { + this._element = t, T(this._element, "bs.tab", this) + } + var e = t.prototype; + return e.show = function() { + var t = this; + if (!(this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && this._element.classList.contains("active") || this._element.classList.contains("disabled"))) { + var e, n = d(this._element), + i = this._element.closest(".nav, .list-group"); + if (i) { + var o = "UL" === i.nodeName || "OL" === i.nodeName ? ":scope > li > .active" : ".active"; + e = (e = nt.find(o, i))[e.length - 1] + } + var s = null; + if (e && (s = q.trigger(e, "hide.bs.tab", { + relatedTarget: this._element + })), !(q.trigger(this._element, "show.bs.tab", { + relatedTarget: e + }).defaultPrevented || null !== s && s.defaultPrevented)) { + this._activate(this._element, i); + var r = function() { + q.trigger(e, "hidden.bs.tab", { + relatedTarget: t._element + }), q.trigger(t._element, "shown.bs.tab", { + relatedTarget: e + }) + }; + n ? this._activate(n, n.parentNode, r) : r() + } + } + }, e.dispose = function() { + C(this._element, "bs.tab"), this._element = null + }, e._activate = function(t, e, n) { + var i = this, + o = (!e || "UL" !== e.nodeName && "OL" !== e.nodeName ? nt.children(e, ".active") : nt.find(":scope > li > .active", e))[0], + s = n && o && o.classList.contains("fade"), + r = function() { + return i._transitionComplete(t, o, n) + }; + if (o && s) { + var a = g(o); + o.classList.remove("show"), q.one(o, "transitionend", r), _(o, a) + } else r() + }, e._transitionComplete = function(t, e, n) { + if (e) { + e.classList.remove("active"); + var i = nt.findOne(":scope > .dropdown-menu .active", e.parentNode); + i && i.classList.remove("active"), "tab" === e.getAttribute("role") && e.setAttribute("aria-selected", !1) + }(t.classList.add("active"), "tab" === t.getAttribute("role") && t.setAttribute("aria-selected", !0), w(t), t.classList.contains("fade") && t.classList.add("show"), t.parentNode && t.parentNode.classList.contains("dropdown-menu")) && (t.closest(".dropdown") && nt.find(".dropdown-toggle").forEach((function(t) { + return t.classList.add("active") + })), t.setAttribute("aria-expanded", !0)); + n && n() + }, t.jQueryInterface = function(e) { + return this.each((function() { + var n = L(this, "bs.tab") || new t(this); + if ("string" == typeof e) { + if (void 0 === n[e]) throw new TypeError('No method named "' + e + '"'); + n[e]() + } + })) + }, t.getInstance = function(t) { + return L(t, "bs.tab") + }, n(t, null, [{ + key: "VERSION", + get: function() { + return "5.0.0-alpha1" + } + }]), t + }(); + q.on(document, "click.bs.tab.data-api", '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]', (function(t) { + t.preventDefault(), (L(this, "bs.tab") || new oe(this)).show() + })); + var se = E(); + if (se) { + var re = se.fn.tab; + se.fn.tab = oe.jQueryInterface, se.fn.tab.Constructor = oe, se.fn.tab.noConflict = function() { + return se.fn.tab = re, oe.jQueryInterface + } + } + var ae = { + animation: "boolean", + autohide: "boolean", + delay: "number" + }, + le = { + animation: !0, + autohide: !0, + delay: 500 + }, + ce = function() { + function t(t, e) { + this._element = t, this._config = this._getConfig(e), this._timeout = null, this._setListeners(), T(t, "bs.toast", this) + } + var e = t.prototype; + return e.show = function() { + var t = this; + if (!q.trigger(this._element, "show.bs.toast").defaultPrevented) { + this._config.animation && this._element.classList.add("fade"); + var e = function() { + t._element.classList.remove("showing"), t._element.classList.add("show"), q.trigger(t._element, "shown.bs.toast"), t._config.autohide && (t._timeout = setTimeout((function() { + t.hide() + }), t._config.delay)) + }; + if (this._element.classList.remove("hide"), w(this._element), this._element.classList.add("showing"), this._config.animation) { + var n = g(this._element); + q.one(this._element, "transitionend", e), _(this._element, n) + } else e() + } + }, e.hide = function() { + var t = this; + if (this._element.classList.contains("show") && !q.trigger(this._element, "hide.bs.toast").defaultPrevented) { + var e = function() { + t._element.classList.add("hide"), q.trigger(t._element, "hidden.bs.toast") + }; + if (this._element.classList.remove("show"), this._config.animation) { + var n = g(this._element); + q.one(this._element, "transitionend", e), _(this._element, n) + } else e() + } + }, e.dispose = function() { + clearTimeout(this._timeout), this._timeout = null, this._element.classList.contains("show") && this._element.classList.remove("show"), q.off(this._element, "click.dismiss.bs.toast"), C(this._element, "bs.toast"), this._element = null, this._config = null + }, e._getConfig = function(t) { + return t = s(s(s({}, le), et.getDataAttributes(this._element)), "object" == typeof t && t ? t : {}), v("toast", t, this.constructor.DefaultType), t + }, e._setListeners = function() { + var t = this; + q.on(this._element, "click.dismiss.bs.toast", '[data-dismiss="toast"]', (function() { + return t.hide() + })) + }, t.jQueryInterface = function(e) { + return this.each((function() { + var n = L(this, "bs.toast"); + if (n || (n = new t(this, "object" == typeof e && e)), "string" == typeof e) { + if (void 0 === n[e]) throw new TypeError('No method named "' + e + '"'); + n[e](this) + } + })) + }, t.getInstance = function(t) { + return L(t, "bs.toast") + }, n(t, null, [{ + key: "VERSION", + get: function() { + return "5.0.0-alpha1" + } + }, { + key: "DefaultType", + get: function() { + return ae + } + }, { + key: "Default", + get: function() { + return le + } + }]), t + }(), + ue = E(); + if (ue) { + var he = ue.fn.toast; + ue.fn.toast = ce.jQueryInterface, ue.fn.toast.Constructor = ce, ue.fn.toast.noConflict = function() { + return ue.fn.toast = he, ce.jQueryInterface + } + } + return { + Alert: K, + Button: $, + Carousel: lt, + Collapse: gt, + Dropdown: wt, + Modal: Ct, + Popover: Yt, + ScrollSpy: ee, + Tab: oe, + Toast: ce, + Tooltip: Ut + } +})); \ No newline at end of file diff --git a/wp-content/themes/abiz/assets/js/bootstrap.min.js b/wp-content/themes/abiz/assets/js/bootstrap.min.js new file mode 100644 index 0000000..7c2158a --- /dev/null +++ b/wp-content/themes/abiz/assets/js/bootstrap.min.js @@ -0,0 +1,5 @@ +/*! +* Bootstrap v5.0.0-alpha1 (https://getbootstrap.com/) +* Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) +* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) +*/!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("popper.js")):"function"==typeof define&&define.amd?define(["popper.js"],e):(t=t||self).bootstrap=e(t.Popper)}(this,(function(t){"use strict";function e(t,e){for(var n=0;n-1||(s=t),[i,o,s]}function W(t,e,n,i,o){if("string"==typeof e&&t){n||(n=i,i=null);var s=F(e,n,i),r=s[0],a=s[1],l=s[2],c=Q(t),u=c[l]||(c[l]={}),h=U(u,a,r?n:null);if(h)h.oneOff=h.oneOff&&o;else{var f=M(a,e.replace(N,"")),d=r?function(t,e,n){return function i(o){for(var s=t.querySelectorAll(e),r=o.target;r&&r!==this;r=r.parentNode)for(var a=s.length;a--;)if(s[a]===r)return i.oneOff&&q.off(t,o.type,n),n.apply(r,[o]);return null}}(t,n,i):function(t,e){return function n(i){return n.oneOff&&q.off(t,i.type,e),e.apply(t,[i])}}(t,n);d.delegationSelector=r?n:null,d.originalHandler=a,d.oneOff=o,d.uidEvent=f,u[f]=d,t.addEventListener(l,d,r)}}}function V(t,e,n,i,o){var s=U(e[n],i,o);s&&(t.removeEventListener(n,s,Boolean(o)),delete e[n][s.uidEvent])}var q={on:function(t,e,n,i){W(t,e,n,i,!1)},one:function(t,e,n,i){W(t,e,n,i,!0)},off:function(t,e,n,i){if("string"==typeof e&&t){var o=F(e,n,i),s=o[0],r=o[1],a=o[2],l=a!==e,c=Q(t),u="."===e.charAt(0);if(void 0===r){u&&Object.keys(c).forEach((function(n){!function(t,e,n,i){var o=e[n]||{};Object.keys(o).forEach((function(s){if(s.indexOf(i)>-1){var r=o[s];V(t,e,n,r.originalHandler,r.delegationSelector)}}))}(t,c,n,e.slice(1))}));var h=c[a]||{};Object.keys(h).forEach((function(n){var i=n.replace(P,"");if(!l||e.indexOf(i)>-1){var o=h[n];V(t,c,a,o.originalHandler,o.delegationSelector)}}))}else{if(!c||!c[a])return;V(t,c,a,r,s?n:null)}}},trigger:function(t,e,n){if("string"!=typeof e||!t)return null;var i,o=e.replace(j,""),s=e!==o,r=B.indexOf(o)>-1,a=!0,l=!0,c=!1,u=null;return s&&I&&(i=I.Event(e,n),I(t).trigger(i),a=!i.isPropagationStopped(),l=!i.isImmediatePropagationStopped(),c=i.isDefaultPrevented()),r?(u=document.createEvent("HTMLEvents")).initEvent(o,a,!0):u=new CustomEvent(e,{bubbles:a,cancelable:!0}),void 0!==n&&Object.keys(n).forEach((function(t){Object.defineProperty(u,t,{get:function(){return n[t]}})})),c&&(u.preventDefault(),O||Object.defineProperty(u,"defaultPrevented",{get:function(){return!0}})),l&&t.dispatchEvent(u),u.defaultPrevented&&void 0!==i&&i.preventDefault(),u}},z="alert",K=function(){function t(t){this._element=t,this._element&&T(t,"bs.alert",this)}var e=t.prototype;return e.close=function(t){var e=this._element;t&&(e=this._getRootElement(t));var n=this._triggerCloseEvent(e);null===n||n.defaultPrevented||this._removeElement(e)},e.dispose=function(){C(this._element,"bs.alert"),this._element=null},e._getRootElement=function(t){return d(t)||t.closest(".alert")},e._triggerCloseEvent=function(t){return q.trigger(t,"close.bs.alert")},e._removeElement=function(t){var e=this;if(t.classList.remove("show"),t.classList.contains("fade")){var n=g(t);q.one(t,"transitionend",(function(){return e._destroyElement(t)})),_(t,n)}else this._destroyElement(t)},e._destroyElement=function(t){t.parentNode&&t.parentNode.removeChild(t),q.trigger(t,"closed.bs.alert")},t.jQueryInterface=function(e){return this.each((function(){var n=L(this,"bs.alert");n||(n=new t(this)),"close"===e&&n[e](this)}))},t.handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},t.getInstance=function(t){return L(t,"bs.alert")},n(t,null,[{key:"VERSION",get:function(){return"5.0.0-alpha1"}}]),t}();q.on(document,"click.bs.alert.data-api",'[data-dismiss="alert"]',K.handleDismiss(new K));var X=E();if(X){var Y=X.fn[z];X.fn[z]=K.jQueryInterface,X.fn[z].Constructor=K,X.fn[z].noConflict=function(){return X.fn[z]=Y,K.jQueryInterface}}var $=function(){function t(t){this._element=t,T(t,"bs.button",this)}var e=t.prototype;return e.toggle=function(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))},e.dispose=function(){C(this._element,"bs.button"),this._element=null},t.jQueryInterface=function(e){return this.each((function(){var n=L(this,"bs.button");n||(n=new t(this)),"toggle"===e&&n[e]()}))},t.getInstance=function(t){return L(t,"bs.button")},n(t,null,[{key:"VERSION",get:function(){return"5.0.0-alpha1"}}]),t}();q.on(document,"click.bs.button.data-api",'[data-toggle="button"]',(function(t){t.preventDefault();var e=t.target.closest('[data-toggle="button"]'),n=L(e,"bs.button");n||(n=new $(e)),n.toggle()}));var G=E();if(G){var Z=G.fn.button;G.fn.button=$.jQueryInterface,G.fn.button.Constructor=$,G.fn.button.noConflict=function(){return G.fn.button=Z,$.jQueryInterface}}function J(t){return"true"===t||"false"!==t&&(t===Number(t).toString()?Number(t):""===t||"null"===t?null:t)}function tt(t){return t.replace(/[A-Z]/g,(function(t){return"-"+t.toLowerCase()}))}var et={setDataAttribute:function(t,e,n){t.setAttribute("data-"+tt(e),n)},removeDataAttribute:function(t,e){t.removeAttribute("data-"+tt(e))},getDataAttributes:function(t){if(!t)return{};var e=s({},t.dataset);return Object.keys(e).forEach((function(t){e[t]=J(e[t])})),e},getDataAttribute:function(t,e){return J(t.getAttribute("data-"+tt(e)))},offset:function(t){var e=t.getBoundingClientRect();return{top:e.top+document.body.scrollTop,left:e.left+document.body.scrollLeft}},position:function(t){return{top:t.offsetTop,left:t.offsetLeft}},toggleClass:function(t,e){t&&(t.classList.contains(e)?t.classList.remove(e):t.classList.add(e))}},nt={matches:function(t,e){return t.matches(e)},find:function(t,e){var n;return void 0===e&&(e=document.documentElement),(n=[]).concat.apply(n,A.call(e,t))},findOne:function(t,e){return void 0===e&&(e=document.documentElement),S.call(e,t)},children:function(t,e){var n,i=(n=[]).concat.apply(n,t.children);return i.filter((function(t){return t.matches(e)}))},parents:function(t,e){for(var n=[],i=t.parentNode;i&&i.nodeType===Node.ELEMENT_NODE&&3!==i.nodeType;)this.matches(i,e)&&n.push(i),i=i.parentNode;return n},prev:function(t,e){for(var n=t.previousElementSibling;n;){if(n.matches(e))return[n];n=n.previousElementSibling}return[]},next:function(t,e){for(var n=t.nextElementSibling;n;){if(this.matches(n,e))return[n];n=n.nextElementSibling}return[]}},it="carousel",ot=".bs.carousel",st={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},rt={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},at={TOUCH:"touch",PEN:"pen"},lt=function(){function t(t,e){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._element=t,this._indicatorsElement=nt.findOne(".carousel-indicators",this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent),this._addEventListeners(),T(t,"bs.carousel",this)}var e=t.prototype;return e.next=function(){this._isSliding||this._slide("next")},e.nextWhenVisible=function(){!document.hidden&&b(this._element)&&this.next()},e.prev=function(){this._isSliding||this._slide("prev")},e.pause=function(t){t||(this._isPaused=!0),nt.findOne(".carousel-item-next, .carousel-item-prev",this._element)&&(p(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},e.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},e.to=function(t){var e=this;this._activeElement=nt.findOne(".active.carousel-item",this._element);var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)q.one(this._element,"slid.bs.carousel",(function(){return e.to(t)}));else{if(n===t)return this.pause(),void this.cycle();var i=t>n?"next":"prev";this._slide(i,this._items[t])}},e.dispose=function(){q.off(this._element,ot),C(this._element,"bs.carousel"),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},e._getConfig=function(t){return t=s(s({},st),t),v(it,t,rt),t},e._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;this.touchDeltaX=0,e>0&&this.prev(),e<0&&this.next()}},e._addEventListeners=function(){var t=this;this._config.keyboard&&q.on(this._element,"keydown.bs.carousel",(function(e){return t._keydown(e)})),"hover"===this._config.pause&&(q.on(this._element,"mouseenter.bs.carousel",(function(e){return t.pause(e)})),q.on(this._element,"mouseleave.bs.carousel",(function(e){return t.cycle(e)}))),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()},e._addTouchEventListeners=function(){var t=this,e=function(e){t._pointerEvent&&at[e.pointerType.toUpperCase()]?t.touchStartX=e.clientX:t._pointerEvent||(t.touchStartX=e.touches[0].clientX)},n=function(e){t._pointerEvent&&at[e.pointerType.toUpperCase()]&&(t.touchDeltaX=e.clientX-t.touchStartX),t._handleSwipe(),"hover"===t._config.pause&&(t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout((function(e){return t.cycle(e)}),500+t._config.interval))};nt.find(".carousel-item img",this._element).forEach((function(t){q.on(t,"dragstart.bs.carousel",(function(t){return t.preventDefault()}))})),this._pointerEvent?(q.on(this._element,"pointerdown.bs.carousel",(function(t){return e(t)})),q.on(this._element,"pointerup.bs.carousel",(function(t){return n(t)})),this._element.classList.add("pointer-event")):(q.on(this._element,"touchstart.bs.carousel",(function(t){return e(t)})),q.on(this._element,"touchmove.bs.carousel",(function(e){return function(e){e.touches&&e.touches.length>1?t.touchDeltaX=0:t.touchDeltaX=e.touches[0].clientX-t.touchStartX}(e)})),q.on(this._element,"touchend.bs.carousel",(function(t){return n(t)})))},e._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.key){case"ArrowLeft":t.preventDefault(),this.prev();break;case"ArrowRight":t.preventDefault(),this.next()}},e._getItemIndex=function(t){return this._items=t&&t.parentNode?nt.find(".carousel-item",t.parentNode):[],this._items.indexOf(t)},e._getItemByDirection=function(t,e){var n="next"===t,i="prev"===t,o=this._getItemIndex(e),s=this._items.length-1;if((i&&0===o||n&&o===s)&&!this._config.wrap)return e;var r=(o+("prev"===t?-1:1))%this._items.length;return-1===r?this._items[this._items.length-1]:this._items[r]},e._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(nt.findOne(".active.carousel-item",this._element));return q.trigger(this._element,"slide.bs.carousel",{relatedTarget:t,direction:e,from:i,to:n})},e._setActiveIndicatorElement=function(t){if(this._indicatorsElement){for(var e=nt.find(".active",this._indicatorsElement),n=0;n0)for(var i=0;i0&&s--,"ArrowDown"===t.key&&sdocument.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},e._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},e._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=Math.round(t.left+t.right)
',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:Nt,popperConfig:null},Qt={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},Ut=function(){function e(e,n){if(void 0===t)throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=e,this.config=this._getConfig(n),this.tip=null,this._setListeners(),T(e,this.constructor.DATA_KEY,this)}var i=e.prototype;return i.enable=function(){this._isEnabled=!0},i.disable=function(){this._isEnabled=!1},i.toggleEnabled=function(){this._isEnabled=!this._isEnabled},i.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=L(t.target,e);n||(n=new this.constructor(t.target,this._getDelegateConfig()),T(t.target,e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(this.getTipElement().classList.contains("show"))return void this._leave(null,this);this._enter(null,this)}},i.dispose=function(){clearTimeout(this._timeout),C(this.element,this.constructor.DATA_KEY),q.off(this.element,this.constructor.EVENT_KEY),q.off(this.element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this.tip&&this.tip.parentNode.removeChild(this.tip),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},i.show=function(){var e=this;if("none"===this.element.style.display)throw new Error("Please use show on visible elements");if(this.isWithContent()&&this._isEnabled){var n=q.trigger(this.element,this.constructor.Event.SHOW),i=function t(e){if(!document.documentElement.attachShadow)return null;if("function"==typeof e.getRootNode){var n=e.getRootNode();return n instanceof ShadowRoot?n:null}return e instanceof ShadowRoot?e:e.parentNode?t(e.parentNode):null}(this.element),o=null===i?this.element.ownerDocument.documentElement.contains(this.element):i.contains(this.element);if(n.defaultPrevented||!o)return;var s=this.getTipElement(),r=u(this.constructor.NAME);s.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&s.classList.add("fade");var a="function"==typeof this.config.placement?this.config.placement.call(this,s,this.element):this.config.placement,l=this._getAttachment(a);this._addAttachmentClass(l);var c,h=this._getContainer();if(T(s,this.constructor.DATA_KEY,this),this.element.ownerDocument.documentElement.contains(this.tip)||h.appendChild(s),q.trigger(this.element,this.constructor.Event.INSERTED),this._popper=new t(this.element,s,this._getPopperConfig(l)),s.classList.add("show"),"ontouchstart"in document.documentElement)(c=[]).concat.apply(c,document.body.children).forEach((function(t){q.on(t,"mouseover",(function(){}))}));var f=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,q.trigger(e.element,e.constructor.Event.SHOWN),"out"===t&&e._leave(null,e)};if(this.tip.classList.contains("fade")){var d=g(this.tip);q.one(this.tip,"transitionend",f),_(this.tip,d)}else f()}},i.hide=function(){var t=this,e=this.getTipElement(),n=function(){"show"!==t._hoverState&&e.parentNode&&e.parentNode.removeChild(e),t._cleanTipClass(),t.element.removeAttribute("aria-describedby"),q.trigger(t.element,t.constructor.Event.HIDDEN),t._popper.destroy()};if(!q.trigger(this.element,this.constructor.Event.HIDE).defaultPrevented){var i;if(e.classList.remove("show"),"ontouchstart"in document.documentElement)(i=[]).concat.apply(i,document.body.children).forEach((function(t){return q.off(t,"mouseover",y)}));if(this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,this.tip.classList.contains("fade")){var o=g(e);q.one(e,"transitionend",n),_(e,o)}else n();this._hoverState=""}},i.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},i.isWithContent=function(){return Boolean(this.getTitle())},i.getTipElement=function(){if(this.tip)return this.tip;var t=document.createElement("div");return t.innerHTML=this.config.template,this.tip=t.children[0],this.tip},i.setContent=function(){var t=this.getTipElement();this.setElementContent(nt.findOne(".tooltip-inner",t),this.getTitle()),t.classList.remove("fade","show")},i.setElementContent=function(t,e){if(null!==t)return"object"==typeof e&&m(e)?(e.jquery&&(e=e[0]),void(this.config.html?e.parentNode!==t&&(t.innerHTML="",t.appendChild(e)):t.textContent=e.textContent)):void(this.config.html?(this.config.sanitize&&(e=jt(e,this.config.whiteList,this.config.sanitizeFn)),t.innerHTML=e):t.textContent=e)},i.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},i._getPopperConfig=function(t){var e=this;return s(s({},{placement:t,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:"."+this.constructor.NAME+"-arrow"},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}}),this.config.popperConfig)},i._addAttachmentClass=function(t){this.getTipElement().classList.add("bs-tooltip-"+t)},i._getOffset=function(){var t=this,e={};return"function"==typeof this.config.offset?e.fn=function(e){return e.offsets=s(s({},e.offsets),t.config.offset(e.offsets,t.element)||{}),e}:e.offset=this.config.offset,e},i._getContainer=function(){return!1===this.config.container?document.body:m(this.config.container)?this.config.container:nt.findOne(this.config.container)},i._getAttachment=function(t){return Bt[t.toUpperCase()]},i._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach((function(e){if("click"===e)q.on(t.element,t.constructor.Event.CLICK,t.config.selector,(function(e){return t.toggle(e)}));else if("manual"!==e){var n="hover"===e?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,i="hover"===e?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;q.on(t.element,n,t.config.selector,(function(e){return t._enter(e)})),q.on(t.element,i,t.config.selector,(function(e){return t._leave(e)}))}})),this._hideModalHandler=function(){t.element&&t.hide()},q.on(this.element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=s(s({},this.config),{},{trigger:"manual",selector:""}):this._fixTitle()},i._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},i._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||L(t.target,n))||(e=new this.constructor(t.target,this._getDelegateConfig()),T(t.target,n,e)),t&&(e._activeTrigger["focusin"===t.type?"focus":"hover"]=!0),e.getTipElement().classList.contains("show")||"show"===e._hoverState?e._hoverState="show":(clearTimeout(e._timeout),e._hoverState="show",e.config.delay&&e.config.delay.show?e._timeout=setTimeout((function(){"show"===e._hoverState&&e.show()}),e.config.delay.show):e.show())},i._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||L(t.target,n))||(e=new this.constructor(t.target,this._getDelegateConfig()),T(t.target,n,e)),t&&(e._activeTrigger["focusout"===t.type?"focus":"hover"]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState="out",e.config.delay&&e.config.delay.hide?e._timeout=setTimeout((function(){"out"===e._hoverState&&e.hide()}),e.config.delay.hide):e.hide())},i._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},i._getConfig=function(t){var e=et.getDataAttributes(this.element);return Object.keys(e).forEach((function(t){-1!==Rt.indexOf(t)&&delete e[t]})),t&&"object"==typeof t.container&&t.container.jquery&&(t.container=t.container[0]),"number"==typeof(t=s(s(s({},this.constructor.Default),e),"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),v(Pt,t,this.constructor.DefaultType),t.sanitize&&(t.template=jt(t.template,t.whiteList,t.sanitizeFn)),t},i._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},i._cleanTipClass=function(){var t=this.getTipElement(),e=t.getAttribute("class").match(xt);null!==e&&e.length>0&&e.map((function(t){return t.trim()})).forEach((function(e){return t.classList.remove(e)}))},i._handlePopperPlacementChange=function(t){var e=t.instance;this.tip=e.popper,this._cleanTipClass(),this._addAttachmentClass(this._getAttachment(t.placement))},i._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(t.classList.remove("fade"),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},e.jQueryInterface=function(t){return this.each((function(){var n=L(this,"bs.tooltip"),i="object"==typeof t&&t;if((n||!/dispose|hide/.test(t))&&(n||(n=new e(this,i)),"string"==typeof t)){if(void 0===n[t])throw new TypeError('No method named "'+t+'"');n[t]()}}))},e.getInstance=function(t){return L(t,"bs.tooltip")},n(e,null,[{key:"VERSION",get:function(){return"5.0.0-alpha1"}},{key:"Default",get:function(){return Mt}},{key:"NAME",get:function(){return Pt}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return Qt}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return Ht}}]),e}(),Ft=E();if(Ft){var Wt=Ft.fn[Pt];Ft.fn[Pt]=Ut.jQueryInterface,Ft.fn[Pt].Constructor=Ut,Ft.fn[Pt].noConflict=function(){return Ft.fn[Pt]=Wt,Ut.jQueryInterface}}var Vt="popover",qt=new RegExp("(^|\\s)bs-popover\\S+","g"),zt=s(s({},Ut.Default),{},{placement:"right",trigger:"click",content:"",template:''}),Kt=s(s({},Ut.DefaultType),{},{content:"(string|element|function)"}),Xt={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"},Yt=function(t){var e,i;function o(){return t.apply(this,arguments)||this}i=t,(e=o).prototype=Object.create(i.prototype),e.prototype.constructor=e,e.__proto__=i;var s=o.prototype;return s.isWithContent=function(){return this.getTitle()||this._getContent()},s.setContent=function(){var t=this.getTipElement();this.setElementContent(nt.findOne(".popover-header",t),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(nt.findOne(".popover-body",t),e),t.classList.remove("fade","show")},s._addAttachmentClass=function(t){this.getTipElement().classList.add("bs-popover-"+t)},s._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},s._cleanTipClass=function(){var t=this.getTipElement(),e=t.getAttribute("class").match(qt);null!==e&&e.length>0&&e.map((function(t){return t.trim()})).forEach((function(e){return t.classList.remove(e)}))},o.jQueryInterface=function(t){return this.each((function(){var e=L(this,"bs.popover"),n="object"==typeof t?t:null;if((e||!/dispose|hide/.test(t))&&(e||(e=new o(this,n),T(this,"bs.popover",e)),"string"==typeof t)){if(void 0===e[t])throw new TypeError('No method named "'+t+'"');e[t]()}}))},o.getInstance=function(t){return L(t,"bs.popover")},n(o,null,[{key:"VERSION",get:function(){return"5.0.0-alpha1"}},{key:"Default",get:function(){return zt}},{key:"NAME",get:function(){return Vt}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return Xt}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return Kt}}]),o}(Ut),$t=E();if($t){var Gt=$t.fn[Vt];$t.fn[Vt]=Yt.jQueryInterface,$t.fn[Vt].Constructor=Yt,$t.fn[Vt].noConflict=function(){return $t.fn[Vt]=Gt,Yt.jQueryInterface}}var Zt="scrollspy",Jt={offset:10,method:"auto",target:""},te={offset:"number",method:"string",target:"(string|element)"},ee=function(){function t(t,e){var n=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(e),this._selector=this._config.target+" .nav-link,"+this._config.target+" .list-group-item,"+this._config.target+" .dropdown-item",this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,q.on(this._scrollElement,"scroll.bs.scrollspy",(function(t){return n._process(t)})),this.refresh(),this._process(),T(t,"bs.scrollspy",this)}var e=t.prototype;return e.refresh=function(){var t=this,e=this._scrollElement===this._scrollElement.window?"offset":"position",n="auto"===this._config.method?e:this._config.method,i="position"===n?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),nt.find(this._selector).map((function(t){var e,o=f(t);if(o&&(e=nt.findOne(o)),e){var s=e.getBoundingClientRect();if(s.width||s.height)return[et[n](e).top+i,o]}return null})).filter((function(t){return t})).sort((function(t,e){return t[0]-e[0]})).forEach((function(e){t._offsets.push(e[0]),t._targets.push(e[1])}))},e.dispose=function(){C(this._element,"bs.scrollspy"),q.off(this._scrollElement,".bs.scrollspy"),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},e._getConfig=function(t){if("string"!=typeof(t=s(s({},Jt),"object"==typeof t&&t?t:{})).target&&m(t.target)){var e=t.target.id;e||(e=u(Zt),t.target.id=e),t.target="#"+e}return v(Zt,t,te),t},e._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},e._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},e._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},e._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t0)return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;){this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&(void 0===this._offsets[o+1]||t li > .active":".active";e=(e=nt.find(o,i))[e.length-1]}var s=null;if(e&&(s=q.trigger(e,"hide.bs.tab",{relatedTarget:this._element})),!(q.trigger(this._element,"show.bs.tab",{relatedTarget:e}).defaultPrevented||null!==s&&s.defaultPrevented)){this._activate(this._element,i);var r=function(){q.trigger(e,"hidden.bs.tab",{relatedTarget:t._element}),q.trigger(t._element,"shown.bs.tab",{relatedTarget:e})};n?this._activate(n,n.parentNode,r):r()}}},e.dispose=function(){C(this._element,"bs.tab"),this._element=null},e._activate=function(t,e,n){var i=this,o=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?nt.children(e,".active"):nt.find(":scope > li > .active",e))[0],s=n&&o&&o.classList.contains("fade"),r=function(){return i._transitionComplete(t,o,n)};if(o&&s){var a=g(o);o.classList.remove("show"),q.one(o,"transitionend",r),_(o,a)}else r()},e._transitionComplete=function(t,e,n){if(e){e.classList.remove("active");var i=nt.findOne(":scope > .dropdown-menu .active",e.parentNode);i&&i.classList.remove("active"),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}(t.classList.add("active"),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),w(t),t.classList.contains("fade")&&t.classList.add("show"),t.parentNode&&t.parentNode.classList.contains("dropdown-menu"))&&(t.closest(".dropdown")&&nt.find(".dropdown-toggle").forEach((function(t){return t.classList.add("active")})),t.setAttribute("aria-expanded",!0));n&&n()},t.jQueryInterface=function(e){return this.each((function(){var n=L(this,"bs.tab")||new t(this);if("string"==typeof e){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}}))},t.getInstance=function(t){return L(t,"bs.tab")},n(t,null,[{key:"VERSION",get:function(){return"5.0.0-alpha1"}}]),t}();q.on(document,"click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',(function(t){t.preventDefault(),(L(this,"bs.tab")||new oe(this)).show()}));var se=E();if(se){var re=se.fn.tab;se.fn.tab=oe.jQueryInterface,se.fn.tab.Constructor=oe,se.fn.tab.noConflict=function(){return se.fn.tab=re,oe.jQueryInterface}}var ae={animation:"boolean",autohide:"boolean",delay:"number"},le={animation:!0,autohide:!0,delay:500},ce=function(){function t(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners(),T(t,"bs.toast",this)}var e=t.prototype;return e.show=function(){var t=this;if(!q.trigger(this._element,"show.bs.toast").defaultPrevented){this._config.animation&&this._element.classList.add("fade");var e=function(){t._element.classList.remove("showing"),t._element.classList.add("show"),q.trigger(t._element,"shown.bs.toast"),t._config.autohide&&(t._timeout=setTimeout((function(){t.hide()}),t._config.delay))};if(this._element.classList.remove("hide"),w(this._element),this._element.classList.add("showing"),this._config.animation){var n=g(this._element);q.one(this._element,"transitionend",e),_(this._element,n)}else e()}},e.hide=function(){var t=this;if(this._element.classList.contains("show")&&!q.trigger(this._element,"hide.bs.toast").defaultPrevented){var e=function(){t._element.classList.add("hide"),q.trigger(t._element,"hidden.bs.toast")};if(this._element.classList.remove("show"),this._config.animation){var n=g(this._element);q.one(this._element,"transitionend",e),_(this._element,n)}else e()}},e.dispose=function(){clearTimeout(this._timeout),this._timeout=null,this._element.classList.contains("show")&&this._element.classList.remove("show"),q.off(this._element,"click.dismiss.bs.toast"),C(this._element,"bs.toast"),this._element=null,this._config=null},e._getConfig=function(t){return t=s(s(s({},le),et.getDataAttributes(this._element)),"object"==typeof t&&t?t:{}),v("toast",t,this.constructor.DefaultType),t},e._setListeners=function(){var t=this;q.on(this._element,"click.dismiss.bs.toast",'[data-dismiss="toast"]',(function(){return t.hide()}))},t.jQueryInterface=function(e){return this.each((function(){var n=L(this,"bs.toast");if(n||(n=new t(this,"object"==typeof e&&e)),"string"==typeof e){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e](this)}}))},t.getInstance=function(t){return L(t,"bs.toast")},n(t,null,[{key:"VERSION",get:function(){return"5.0.0-alpha1"}},{key:"DefaultType",get:function(){return ae}},{key:"Default",get:function(){return le}}]),t}(),ue=E();if(ue){var he=ue.fn.toast;ue.fn.toast=ce.jQueryInterface,ue.fn.toast.Constructor=ce,ue.fn.toast.noConflict=function(){return ue.fn.toast=he,ce.jQueryInterface}}return{Alert:K,Button:$,Carousel:lt,Collapse:gt,Dropdown:wt,Modal:Ct,Popover:Yt,ScrollSpy:ee,Tab:oe,Toast:ce,Tooltip:Ut}})); \ No newline at end of file diff --git a/wp-content/themes/abiz/assets/js/custom.js b/wp-content/themes/abiz/assets/js/custom.js new file mode 100644 index 0000000..1d66d20 --- /dev/null +++ b/wp-content/themes/abiz/assets/js/custom.js @@ -0,0 +1,251 @@ +(function($) { + 'use strict'; + + $(document).ready(function() { + + $(window).on('scroll', function() { + if ($(this).scrollTop() > 200) { + $('.scrollingUp').addClass('is-active'); + } else { + $('.scrollingUp').removeClass('is-active'); + } + }); + $(window).on('scroll', function() { + if ($(window).scrollTop() >= 250) { + $('.is-sticky-on').addClass('is-sticky-menu'); + } else { + $('.is-sticky-on').removeClass('is-sticky-menu'); + } + }); + + $(window).bind("scroll", function() { + if ($(".scrollingUp").length) { + let b = $("body").height(), + c = $(window).height(), + d = b - c, + e = $(window).scrollTop(), + f = 250 - e / d * 150; + $(".scrollingUp circle").css("stroke-dashoffset", f + "px") + } + }), $('.scrollingUp').click(function(b) { + return b.preventDefault(), $('html, body').animate({ + scrollTop: 0 + }, 320), !1 + }); + + // Sticky Header + $(window).on('scroll', function() { + if ($(window).scrollTop() >= 250) { + $('.is-sticky-on').addClass('is-sticky-menu'); + } else { + $('.is-sticky-on').removeClass('is-sticky-menu'); + } + }); + + // Home Slider + var $owlHome = $('.home-slider'); + $owlHome.owlCarousel({ + rtl: $("html").attr("dir") == 'rtl' ? true : false, + items: 1, + autoplay: true, + autoplayTimeout: 10000, + margin: 0, + loop: true, + dots: $(".slider-section").is(".owl-dot-1") ? true : false, + dotsData: true, + dotsEach: 5, + nav: true, + navText: $(".slider-section").is(".owl-nav-2") ? ['', ''] : ['', ''], + singleItem: true, + transitionStyle: "fade", + touchDrag: true, + mouseDrag: true, + onInitialized: function(event) { + var itemsCount = event.item.count; // Total number of items + var dotsContainer = $('.owl-dot-1 .owl-dots'); // Dots container + + // Clear current dots + dotsContainer.empty(); + + // Generate and append numbered dots + for (var i = 0; i < itemsCount; i++) { + dotsContainer.append(''); + } + + // Optionally highlight the active dot + dotsContainer.on('click', '.owl-dot', function() { + var index = $(this).index(); + $owlHome.trigger('to.owl.carousel', index); + }); + }, + responsive: { + 0: { + nav: false + }, + 768: { + nav: false + }, + 992: { + nav: true + } + } + }); + $owlHome.owlCarousel(); + $owlHome.on('translate.owl.carousel', function(event) { + var data_anim = $("[data-animation]"); + data_anim.each(function() { + var anim_name = $(this).data('animation'); + $(this).removeClass('animated ' + anim_name).css('opacity', '0'); + }); + }); + $("[data-delay]").each(function() { + var anim_del = $(this).data('delay'); + $(this).css('animation-delay', anim_del); + }); + $("[data-duration]").each(function() { + var anim_dur = $(this).data('duration'); + $(this).css('animation-duration', anim_dur); + }); + $owlHome.on('translated.owl.carousel', function() { + var data_anim = $owlHome.find('.owl-item.active').find("[data-animation]"); + data_anim.each(function() { + var anim_name = $(this).data('animation'); + $(this).addClass('animated ' + anim_name).css('opacity', '1'); + }); + }); + + var titles = document.querySelectorAll('.slider-section .main-content h4'); + + titles.forEach(function(e) { + var childNodes = [].slice.call(e.childNodes), + txtContent = childNodes.shift().textContent, + span; + e.childNodes[0].textContent = ''; + txtContent.split(' ').forEach(function(s, i) { + if (i > 0) { + e.insertBefore(document.createTextNode(" " + s), e.children[1]); + } else { + span = document.createElement('span'); + span.textContent = s; + e.insertBefore(span, e.firstChild); + } + }) + }); + + }); + + $(document).ready(function() { + function marquee() { + jQuery('.marquee').marquee({ + speed: 2000, + direction: 'left', + delayBeforeStart: 0, + duplicated: true, + pauseOnHover: true, + startVisible: true + }); + } + marquee(); + }); +}(jQuery)); + + +! function(e, t) { + "use strict"; + ({ + customID: "abizCoreScript", + $document: e(document), + $window: e(window), + $body: e("body"), + classes: { + overlayActive: "overlay-enabled", + collapsed: "collapsed", + mainHeaderMenuActive: "header-menu-active", + searchPopUpActive: "header-search-active" + }, + init: function() { + this.$document.on("ready", this.abizIsDocumentReady.bind(this)), + this.$document.on("ready", this.abizMobileMenuClone.bind(this)), + this.$window.on("ready", this.abizIsDocumentReady.bind(this)) + }, + abizIsDocumentReady: function() { + this.$document + .on("click." + this.customID, ".menu-collapsed", this.abizMenuCollapse.bind(this)) + .on("click." + this.customID, ".header-close-menu", this.abizMenuCollapse.bind(this)) + .on("click." + this.customID, this.abizMenuHideMobilePopup.bind(this)) + .on("click." + this.customID, ".mobile-collapsed", this.abizMobileSubmenuCollapse.bind(this)) + .on("click." + this.customID, ".header-close-menu", this.abizResetMobileMenuCollapse.bind(this)) + .on("abizMenuHideMobilePopup." + this.customID, this.abizResetMobileMenuCollapse.bind(this)) + .on("click." + this.customID, ".header-search-toggle", this.abizSearchPopUpToggle.bind(this)) + .on("click." + this.customID, ".header-search-close", this.abizSearchPopUpToggle.bind(this)), this.$window.on("load." + this.customID, this.abizMenuAccessibility.bind(this)) + }, + abizSearchPopUpToggle: function(t) { + var i = e(".header-search-toggle"), + n = e(".header-search-field"); + this.$body.toggleClass(this.classes.searchPopUpActive), this.$body.hasClass(this.classes.searchPopUpActive) ? n.focus() : i.focus(), this.abizSearchPopupAccessibility() + }, + abizSearchPopupAccessibility: function() { + var e, t, i, n = document.querySelector(".header-search-popup"); + let a = document.querySelector(".header-search-field"), + s = n.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'), + o = s[s.length - 1]; + if (!n) return !1; + for (t = 0, i = (e = n.getElementsByTagName("button")).length; t < i; t++) e[t].addEventListener("focus", c, !0), e[t].addEventListener("blur", c, !0); + + function c() { + for (var e = this; - 1 === e.className.indexOf("header-search-popup");) "input" === e.tagName.toLowerCase() && (-1 !== e.className.indexOf("focus") ? e.className = e.className.replace("focus", "") : e.className += " focus"), e = e.parentElement + } + document.addEventListener("keydown", function(e) { + ("Tab" === e.key || 9 === e.keyCode) && (e.shiftKey ? document.activeElement === a && (o.focus(), e.preventDefault()) : document.activeElement === o && (a.focus(), e.preventDefault())) + }) + }, + abizMobileMenuClone: function(t) { + e(".main-navbar:not(.breadcrumb-menu) .main-menu").clone().appendTo(".main-mobile-build") + }, + abizMenuAccessibility: function(t) { + e(".main-navbar, .widget_nav_menu").find("a").on("focus blur", function() { + e(this).parents("ul, li").toggleClass("focus") + }) + }, + abizMenuCollapse: function(t) { + var i = e(".menu-collapsed"); + this.$body.toggleClass(this.classes.mainHeaderMenuActive), this.$body.toggleClass(this.classes.overlayActive), i.toggleClass(this.classes.collapsed), this.$body.hasClass(this.classes.mainHeaderMenuActive) ? e(".header-close-menu").focus() : i.focus(), this.abizMainMenuAccessibility() + }, + abizMainMenuAccessibility: function() { + var e, t, i, n = document.querySelector(".main-mobile-build"); + let a = document.querySelector(".header-close-menu"), + s = n.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'), + o = s[s.length - 1]; + if (!n) return !1; + for (t = 0, i = (e = n.getElementsByTagName("a")).length; t < i; t++) e[t].addEventListener("focus", c, !0), e[t].addEventListener("blur", c, !0); + + function c() { + for (var e = this; - 1 === e.className.indexOf("main-mobile-build");) "li" === e.tagName.toLowerCase() && (-1 !== e.className.indexOf("focus") ? e.className = e.className.replace(" focus", "") : e.className += " focus"), e = e.parentElement + } + document.addEventListener("keydown", function(e) { + ("Tab" === e.key || 9 === e.keyCode) && (e.shiftKey ? document.activeElement === a && (o.focus(), e.preventDefault()) : document.activeElement === o && (a.focus(), e.preventDefault())) + }) + }, + abizMenuHideMobilePopup: function(t) { + var i = e(".menu-collapsed"), + n = e(".main-mobile-build"); + e(t.target).closest(i).length || e(t.target).closest(n).length || this.$body.hasClass(this.classes.mainHeaderMenuActive) && (this.$body.removeClass(this.classes.mainHeaderMenuActive), this.$body.removeClass(this.classes.overlayActive), i.removeClass(this.classes.collapsed), this.$document.trigger("abizMenuHideMobilePopup." + this.customID), t.stopPropagation()) + }, + abizMobileSubmenuCollapse: function(t) { + t.preventDefault(); + var i = e(t.currentTarget); + i.closest(".main-mobile-build .main-menu"), i.parents(".dropdown-menu").length; + this.isRTL, setTimeout(function() { + i.parent().toggleClass("current"), i.next().slideToggle() + }, 250) + }, + abizResetMobileMenuCollapse: function(t) { + e(".main-mobile-build .main-menu"); + var i = e(".main-mobile-build .menu-item"), + n = e(".main-mobile-build .dropdown-menu"); + setTimeout(function() { + i.removeClass("current"), n.hide() + }, 250) + } + }).init() +}(jQuery, window.abizCoreScript); \ No newline at end of file diff --git a/wp-content/themes/abiz/assets/js/jquery.marquee.js b/wp-content/themes/abiz/assets/js/jquery.marquee.js new file mode 100644 index 0000000..765dca8 --- /dev/null +++ b/wp-content/themes/abiz/assets/js/jquery.marquee.js @@ -0,0 +1,490 @@ +/** + * jQuery.marquee - scrolling text like old marquee element + * @author Aamir Afridi - aamirafridi(at)gmail(dot)com / http://aamirafridi.com/jquery/jquery-marquee-plugin + */ +; +(function($) { + $.fn.marquee = function(options) { + return this.each(function() { + // Extend the options if any provided + var o = $.extend({}, $.fn.marquee.defaults, options), + $this = $(this), + $marqueeWrapper, containerWidth, animationCss, verticalDir, elWidth, + loopCount = 3, + playState = 'animation-play-state', + css3AnimationIsSupported = false, + + // Private methods + _prefixedEvent = function(element, type, callback) { + var pfx = ["webkit", "moz", "MS", "o", ""]; + for (var p = 0; p < pfx.length; p++) { + if (!pfx[p]) type = type.toLowerCase(); + element.addEventListener(pfx[p] + type, callback, false); + } + }, + + _objToString = function(obj) { + var tabjson = []; + for (var p in obj) { + if (obj.hasOwnProperty(p)) { + tabjson.push(p + ':' + obj[p]); + } + } + tabjson.push(); + return '{' + tabjson.join(',') + '}'; + }, + + _startAnimationWithDelay = function() { + $this.timer = setTimeout(animate, o.delayBeforeStart); + }, + + // Public methods + methods = { + pause: function() { + if (css3AnimationIsSupported && o.allowCss3Support) { + $marqueeWrapper.css(playState, 'paused'); + } else { + // pause using pause plugin + if ($.fn.pause) { + $marqueeWrapper.pause(); + } + } + // save the status + $this.data('runningStatus', 'paused'); + // fire event + $this.trigger('paused'); + }, + + resume: function() { + // resume using css3 + if (css3AnimationIsSupported && o.allowCss3Support) { + $marqueeWrapper.css(playState, 'running'); + } else { + // resume using pause plugin + if ($.fn.resume) { + $marqueeWrapper.resume(); + } + } + // save the status + $this.data('runningStatus', 'resumed'); + // fire event + $this.trigger('resumed'); + }, + + toggle: function() { + methods[$this.data('runningStatus') === 'resumed' ? 'pause' : 'resume'](); + }, + + destroy: function() { + // Clear timer + clearTimeout($this.timer); + // Unbind all events + $this.find("*").addBack().off(); + // Just unwrap the elements that has been added using this plugin + $this.html($this.find('.js-marquee:first').html()); + } + }; + + // Check for methods + if (typeof options === 'string') { + if ($.isFunction(methods[options])) { + // Following two IF statements to support public methods + if (!$marqueeWrapper) { + $marqueeWrapper = $this.find('.js-marquee-wrapper'); + } + if ($this.data('css3AnimationIsSupported') === true) { + css3AnimationIsSupported = true; + } + methods[options](); + } + return; + } + + /* Check if element has data attributes. They have top priority + For details https://twitter.com/aamirafridi/status/403848044069679104 - Can't find a better solution :/ + jQuery 1.3.2 doesn't support $.data().KEY hence writting the following */ + var dataAttributes = {}, + attr; + $.each(o, function(key) { + // Check if element has this data attribute + attr = $this.attr('data-' + key); + if (typeof attr !== 'undefined') { + // Now check if value is boolean or not + switch (attr) { + case 'true': + attr = true; + break; + case 'false': + attr = false; + break; + } + o[key] = attr; + } + }); + + // Reintroduce speed as an option. It calculates duration as a factor of the container width + // measured in pixels per second. + if (o.speed) { + o.duration = parseInt($this.width(), 10) / o.speed * 1000; + } + + // Shortcut to see if direction is upward or downward + verticalDir = o.direction === 'up' || o.direction === 'down'; + + // no gap if not duplicated + o.gap = o.duplicated ? parseInt(o.gap) : 0; + + // wrap inner content into a div + $this.wrapInner('
'); + + // Make copy of the element + var $el = $this.find('.js-marquee').css({ + 'margin-right': o.gap, + 'float': 'left' + }); + + if (o.duplicated) { + $el.clone(true).appendTo($this); + } + + // wrap both inner elements into one div + $this.wrapInner('
'); + + // Save the reference of the wrapper + $marqueeWrapper = $this.find('.js-marquee-wrapper'); + + // If direction is up or down, get the height of main element + if (verticalDir) { + var containerHeight = $this.height(); + $marqueeWrapper.removeAttr('style'); + $this.height(containerHeight); + + // Change the CSS for js-marquee element + $this.find('.js-marquee').css({ + 'float': 'none', + 'margin-bottom': o.gap, + 'margin-right': 0 + }); + + // Remove bottom margin from 2nd element if duplicated + if (o.duplicated) { + $this.find('.js-marquee:last').css({ + 'margin-bottom': 0 + }); + } + + var elHeight = $this.find('.js-marquee:first').height() + o.gap; + + // adjust the animation duration according to the text length + if (o.startVisible && !o.duplicated) { + // Compute the complete animation duration and save it for later reference + // formula is to: (Height of the text node + height of the main container / Height of the main container) * duration; + o._completeDuration = ((parseInt(elHeight, 10) + parseInt(containerHeight, 10)) / parseInt(containerHeight, 10)) * o.duration; + + // formula is to: (Height of the text node / height of the main container) * duration + o.duration = (parseInt(elHeight, 10) / parseInt(containerHeight, 10)) * o.duration; + } else { + // formula is to: (Height of the text node + height of the main container / Height of the main container) * duration; + o.duration = ((parseInt(elHeight, 10) + parseInt(containerHeight, 10)) / parseInt(containerHeight, 10)) * o.duration; + } + + } else { + // Save the width of the each element so we can use it in animation + elWidth = $this.find('.js-marquee:first').width() + o.gap; + + // container width + containerWidth = $this.width(); + + // adjust the animation duration according to the text length + if (o.startVisible && !o.duplicated) { + // Compute the complete animation duration and save it for later reference + // formula is to: (Width of the text node + width of the main container / Width of the main container) * duration; + o._completeDuration = ((parseInt(elWidth, 10) + parseInt(containerWidth, 10)) / parseInt(containerWidth, 10)) * o.duration; + + // (Width of the text node / width of the main container) * duration + o.duration = (parseInt(elWidth, 10) / parseInt(containerWidth, 10)) * o.duration; + } else { + // formula is to: (Width of the text node + width of the main container / Width of the main container) * duration; + o.duration = ((parseInt(elWidth, 10) + parseInt(containerWidth, 10)) / parseInt(containerWidth, 10)) * o.duration; + } + } + + // if duplicated then reduce the duration + if (o.duplicated) { + o.duration = o.duration / 2; + } + + if (o.allowCss3Support) { + var elm = document.body || document.createElement('div'), + animationName = 'marqueeAnimation-' + Math.floor(Math.random() * 10000000), + domPrefixes = 'Webkit Moz O ms Khtml'.split(' '), + animationString = 'animation', + animationCss3Str = '', + keyframeString = ''; + + // Check css3 support + if (elm.style.animation !== undefined) { + keyframeString = '@keyframes ' + animationName + ' '; + css3AnimationIsSupported = true; + } + + if (css3AnimationIsSupported === false) { + for (var i = 0; i < domPrefixes.length; i++) { + if (elm.style[domPrefixes[i] + 'AnimationName'] !== undefined) { + var prefix = '-' + domPrefixes[i].toLowerCase() + '-'; + animationString = prefix + animationString; + playState = prefix + playState; + keyframeString = '@' + prefix + 'keyframes ' + animationName + ' '; + css3AnimationIsSupported = true; + break; + } + } + } + + if (css3AnimationIsSupported) { + animationCss3Str = animationName + ' ' + o.duration / 1000 + 's ' + o.delayBeforeStart / 1000 + 's infinite ' + o.css3easing; + $this.data('css3AnimationIsSupported', true); + } + } + + var _rePositionVertically = function() { + $marqueeWrapper.css('transform', 'translateY(' + (o.direction === 'up' ? containerHeight + 'px' : '-' + elHeight + 'px') + ')'); + }, + _rePositionHorizontally = function() { + $marqueeWrapper.css('transform', 'translateX(' + (o.direction === 'left' ? containerWidth + 'px' : '-' + elWidth + 'px') + ')'); + }; + + // if duplicated option is set to true than position the wrapper + if (o.duplicated) { + if (verticalDir) { + if (o.startVisible) { + $marqueeWrapper.css('transform', 'translateY(0)'); + } else { + $marqueeWrapper.css('transform', 'translateY(' + (o.direction === 'up' ? containerHeight + 'px' : '-' + ((elHeight * 2) - o.gap) + 'px') + ')'); + } + } else { + if (o.startVisible) { + $marqueeWrapper.css('transform', 'translateX(0)'); + } else { + $marqueeWrapper.css('transform', 'translateX(' + (o.direction === 'left' ? containerWidth + 'px' : '-' + ((elWidth * 2) - o.gap) + 'px') + ')'); + } + } + + // If the text starts out visible we can skip the two initial loops + if (!o.startVisible) { + loopCount = 1; + } + } else if (o.startVisible) { + // We only have two different loops if marquee is duplicated and starts visible + loopCount = 2; + } else { + if (verticalDir) { + _rePositionVertically(); + } else { + _rePositionHorizontally(); + } + } + + // Animate recursive method + var animate = function() { + if (o.duplicated) { + // When duplicated, the first loop will be scroll longer so double the duration + if (loopCount === 1) { + o._originalDuration = o.duration; + if (verticalDir) { + o.duration = o.direction === 'up' ? o.duration + (containerHeight / ((elHeight) / o.duration)) : o.duration * 2; + } else { + o.duration = o.direction === 'left' ? o.duration + (containerWidth / ((elWidth) / o.duration)) : o.duration * 2; + } + // Adjust the css3 animation as well + if (animationCss3Str) { + animationCss3Str = animationName + ' ' + o.duration / 1000 + 's ' + o.delayBeforeStart / 1000 + 's ' + o.css3easing; + } + loopCount++; + } + // On 2nd loop things back to normal, normal duration for the rest of animations + else if (loopCount === 2) { + o.duration = o._originalDuration; + // Adjust the css3 animation as well + if (animationCss3Str) { + animationName = animationName + '0'; + keyframeString = $.trim(keyframeString) + '0 '; + animationCss3Str = animationName + ' ' + o.duration / 1000 + 's 0s infinite ' + o.css3easing; + } + loopCount++; + } + } + + if (verticalDir) { + if (o.duplicated) { + + // Adjust the starting point of animation only when first loops finishes + if (loopCount > 2) { + $marqueeWrapper.css('transform', 'translateY(' + (o.direction === 'up' ? 0 : '-' + elHeight + 'px') + ')'); + } + + animationCss = { + 'transform': 'translateY(' + (o.direction === 'up' ? '-' + elHeight + 'px' : 0) + ')' + }; + } else if (o.startVisible) { + // This loop moves the marquee out of the container + if (loopCount === 2) { + // Adjust the css3 animation as well + if (animationCss3Str) { + animationCss3Str = animationName + ' ' + o.duration / 1000 + 's ' + o.delayBeforeStart / 1000 + 's ' + o.css3easing; + } + animationCss = { + 'transform': 'translateY(' + (o.direction === 'up' ? '-' + elHeight + 'px' : containerHeight + 'px') + ')' + }; + loopCount++; + } else if (loopCount === 3) { + // Set the duration for the animation that will run forever + o.duration = o._completeDuration; + // Adjust the css3 animation as well + if (animationCss3Str) { + animationName = animationName + '0'; + keyframeString = $.trim(keyframeString) + '0 '; + animationCss3Str = animationName + ' ' + o.duration / 1000 + 's 0s infinite ' + o.css3easing; + } + _rePositionVertically(); + } + } else { + _rePositionVertically(); + animationCss = { + 'transform': 'translateY(' + (o.direction === 'up' ? '-' + ($marqueeWrapper.height()) + 'px' : containerHeight + 'px') + ')' + }; + } + } else { + if (o.duplicated) { + + // Adjust the starting point of animation only when first loops finishes + if (loopCount > 2) { + $marqueeWrapper.css('transform', 'translateX(' + (o.direction === 'left' ? 0 : '-' + elWidth + 'px') + ')'); + } + + animationCss = { + 'transform': 'translateX(' + (o.direction === 'left' ? '-' + elWidth + 'px' : 0) + ')' + }; + + } else if (o.startVisible) { + // This loop moves the marquee out of the container + if (loopCount === 2) { + // Adjust the css3 animation as well + if (animationCss3Str) { + animationCss3Str = animationName + ' ' + o.duration / 1000 + 's ' + o.delayBeforeStart / 1000 + 's ' + o.css3easing; + } + animationCss = { + 'transform': 'translateX(' + (o.direction === 'left' ? '-' + elWidth + 'px' : containerWidth + 'px') + ')' + }; + loopCount++; + } else if (loopCount === 3) { + // Set the duration for the animation that will run forever + o.duration = o._completeDuration; + // Adjust the css3 animation as well + if (animationCss3Str) { + animationName = animationName + '0'; + keyframeString = $.trim(keyframeString) + '0 '; + animationCss3Str = animationName + ' ' + o.duration / 1000 + 's 0s infinite ' + o.css3easing; + } + _rePositionHorizontally(); + } + } else { + _rePositionHorizontally(); + animationCss = { + 'transform': 'translateX(' + (o.direction === 'left' ? '-' + elWidth + 'px' : containerWidth + 'px') + ')' + }; + } + } + + // fire event + $this.trigger('beforeStarting'); + + // If css3 support is available than do it with css3, otherwise use jQuery as fallback + if (css3AnimationIsSupported) { + // Add css3 animation to the element + $marqueeWrapper.css(animationString, animationCss3Str); + var keyframeCss = keyframeString + ' { 100% ' + _objToString(animationCss) + '}', + $styles = $marqueeWrapper.find('style'); + + // Now add the keyframe animation to the marquee element + if ($styles.length !== 0) { + // Bug fixed for jQuery 1.3.x - Instead of using .last(), use following + $styles.filter(":last").html(keyframeCss); + } else { + $('head').append(''); + } + + // Animation iteration event + _prefixedEvent($marqueeWrapper[0], "AnimationIteration", function() { + $this.trigger('finished'); + }); + // Animation stopped + _prefixedEvent($marqueeWrapper[0], "AnimationEnd", function() { + animate(); + $this.trigger('finished'); + }); + + } else { + // Start animating + $marqueeWrapper.animate(animationCss, o.duration, o.easing, function() { + // fire event + $this.trigger('finished'); + // animate again + if (o.pauseOnCycle) { + _startAnimationWithDelay(); + } else { + animate(); + } + }); + } + // save the status + $this.data('runningStatus', 'resumed'); + }; + + // bind pause and resume events + $this.on('pause', methods.pause); + $this.on('resume', methods.resume); + + if (o.pauseOnHover) { + $this.on('mouseenter', methods.pause); + $this.on('mouseleave', methods.resume); + } + + // If css3 animation is supported than call animate method at once + if (css3AnimationIsSupported && o.allowCss3Support) { + animate(); + } else { + // Starts the recursive method + _startAnimationWithDelay(); + } + + }); + }; // End of Plugin + // Public: plugin defaults options + $.fn.marquee.defaults = { + // If you wish to always animate using jQuery + allowCss3Support: true, + // works when allowCss3Support is set to true - for full list see http://www.w3.org/TR/2013/WD-css3-transitions-20131119/#transition-timing-function + css3easing: 'linear', + // requires jQuery easing plugin. Default is 'linear' + easing: 'linear', + // pause time before the next animation turn in milliseconds + delayBeforeStart: 1000, + // 'left', 'right', 'up' or 'down' + direction: 'left', + // true or false - should the marquee be duplicated to show an effect of continues flow + duplicated: false, + // duration in milliseconds of the marquee in milliseconds + duration: 5000, + // Speed allows you to set a relatively constant marquee speed regardless of the width of the containing element. Speed is measured in pixels per second. + speed: 0, + // gap in pixels between the tickers + gap: 20, + // on cycle pause the marquee + pauseOnCycle: false, + // on hover pause the marquee - using jQuery plugin https://github.com/tobia/Pause + pauseOnHover: false, + // the marquee is visible initially positioned next to the border towards it will be moving + startVisible: false + }; +})(jQuery); \ No newline at end of file diff --git a/wp-content/themes/abiz/assets/js/owl.carousel.js b/wp-content/themes/abiz/assets/js/owl.carousel.js new file mode 100644 index 0000000..5be403f --- /dev/null +++ b/wp-content/themes/abiz/assets/js/owl.carousel.js @@ -0,0 +1,1034 @@ +/** + * Owl Carousel v2.3.4 + * Copyright 2013-2018 David Deutsch + * Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE + */ +! function(a, b, c, d) { + function e(b, c) { + this.settings = null, this.options = a.extend({}, e.Defaults, c), this.$element = a(b), this._handlers = {}, this._plugins = {}, this._supress = {}, this._current = null, this._speed = null, this._coordinates = [], this._breakpoint = null, this._width = null, this._items = [], this._clones = [], this._mergers = [], this._widths = [], this._invalidated = {}, this._pipe = [], this._drag = { + time: null, + target: null, + pointer: null, + stage: { + start: null, + current: null + }, + direction: null + }, this._states = { + current: {}, + tags: { + initializing: ["busy"], + animating: ["busy"], + dragging: ["interacting"] + } + }, a.each(["onResize", "onThrottledResize"], a.proxy(function(b, c) { + this._handlers[c] = a.proxy(this[c], this) + }, this)), a.each(e.Plugins, a.proxy(function(a, b) { + this._plugins[a.charAt(0).toLowerCase() + a.slice(1)] = new b(this) + }, this)), a.each(e.Workers, a.proxy(function(b, c) { + this._pipe.push({ + filter: c.filter, + run: a.proxy(c.run, this) + }) + }, this)), this.setup(), this.initialize() + } + e.Defaults = { + items: 3, + loop: !1, + center: !1, + rewind: !1, + checkVisibility: !0, + mouseDrag: !0, + touchDrag: !0, + pullDrag: !0, + freeDrag: !1, + margin: 0, + stagePadding: 0, + merge: !1, + mergeFit: !0, + autoWidth: !1, + startPosition: 0, + rtl: !1, + smartSpeed: 250, + fluidSpeed: !1, + dragEndSpeed: !1, + responsive: {}, + responsiveRefreshRate: 200, + responsiveBaseElement: b, + fallbackEasing: "swing", + slideTransition: "", + info: !1, + nestedItemSelector: !1, + itemElement: "div", + stageElement: "div", + refreshClass: "owl-refresh", + loadedClass: "owl-loaded", + loadingClass: "owl-loading", + rtlClass: "owl-rtl", + responsiveClass: "owl-responsive", + dragClass: "owl-drag", + itemClass: "owl-item", + stageClass: "owl-stage", + stageOuterClass: "owl-stage-outer", + grabClass: "owl-grab" + }, e.Width = { + Default: "default", + Inner: "inner", + Outer: "outer" + }, e.Type = { + Event: "event", + State: "state" + }, e.Plugins = {}, e.Workers = [{ + filter: ["width", "settings"], + run: function() { + this._width = this.$element.width() + } + }, { + filter: ["width", "items", "settings"], + run: function(a) { + a.current = this._items && this._items[this.relative(this._current)] + } + }, { + filter: ["items", "settings"], + run: function() { + this.$stage.children(".cloned").remove() + } + }, { + filter: ["width", "items", "settings"], + run: function(a) { + var b = this.settings.margin || "", + c = !this.settings.autoWidth, + d = this.settings.rtl, + e = { + width: "auto", + "margin-left": d ? b : "", + "margin-right": d ? "" : b + }; + !c && this.$stage.children().css(e), a.css = e + } + }, { + filter: ["width", "items", "settings"], + run: function(a) { + var b = (this.width() / this.settings.items).toFixed(3) - this.settings.margin, + c = null, + d = this._items.length, + e = !this.settings.autoWidth, + f = []; + for (a.items = { + merge: !1, + width: b + }; d--;) c = this._mergers[d], c = this.settings.mergeFit && Math.min(c, this.settings.items) || c, a.items.merge = c > 1 || a.items.merge, f[d] = e ? b * c : this._items[d].width(); + this._widths = f + } + }, { + filter: ["items", "settings"], + run: function() { + var b = [], + c = this._items, + d = this.settings, + e = Math.max(2 * d.items, 4), + f = 2 * Math.ceil(c.length / 2), + g = d.loop && c.length ? d.rewind ? e : Math.max(e, f) : 0, + h = "", + i = ""; + for (g /= 2; g > 0;) b.push(this.normalize(b.length / 2, !0)), h += c[b[b.length - 1]][0].outerHTML, b.push(this.normalize(c.length - 1 - (b.length - 1) / 2, !0)), i = c[b[b.length - 1]][0].outerHTML + i, g -= 1; + this._clones = b, a(h).addClass("cloned").appendTo(this.$stage), a(i).addClass("cloned").prependTo(this.$stage) + } + }, { + filter: ["width", "items", "settings"], + run: function() { + for (var a = this.settings.rtl ? 1 : -1, b = this._clones.length + this._items.length, c = -1, d = 0, e = 0, f = []; ++c < b;) d = f[c - 1] || 0, e = this._widths[this.relative(c)] + this.settings.margin, f.push(d + e * a); + this._coordinates = f + } + }, { + filter: ["width", "items", "settings"], + run: function() { + var a = this.settings.stagePadding, + b = this._coordinates, + c = { + width: Math.ceil(Math.abs(b[b.length - 1])) + 2 * a, + "padding-left": a || "", + "padding-right": a || "" + }; + this.$stage.css(c) + } + }, { + filter: ["width", "items", "settings"], + run: function(a) { + var b = this._coordinates.length, + c = !this.settings.autoWidth, + d = this.$stage.children(); + if (c && a.items.merge) + for (; b--;) a.css.width = this._widths[this.relative(b)], d.eq(b).css(a.css); + else c && (a.css.width = a.items.width, d.css(a.css)) + } + }, { + filter: ["items"], + run: function() { + this._coordinates.length < 1 && this.$stage.removeAttr("style") + } + }, { + filter: ["width", "items", "settings"], + run: function(a) { + a.current = a.current ? this.$stage.children().index(a.current) : 0, a.current = Math.max(this.minimum(), Math.min(this.maximum(), a.current)), this.reset(a.current) + } + }, { + filter: ["position"], + run: function() { + this.animate(this.coordinates(this._current)) + } + }, { + filter: ["width", "position", "items", "settings"], + run: function() { + var a, b, c, d, e = this.settings.rtl ? 1 : -1, + f = 2 * this.settings.stagePadding, + g = this.coordinates(this.current()) + f, + h = g + this.width() * e, + i = []; + for (c = 0, d = this._coordinates.length; c < d; c++) a = this._coordinates[c - 1] || 0, b = Math.abs(this._coordinates[c]) + f * e, (this.op(a, "<=", g) && this.op(a, ">", h) || this.op(b, "<", g) && this.op(b, ">", h)) && i.push(c); + this.$stage.children(".active").removeClass("active"), this.$stage.children(":eq(" + i.join("), :eq(") + ")").addClass("active"), this.$stage.children(".center").removeClass("center"), this.settings.center && this.$stage.children().eq(this.current()).addClass("center") + } + }], e.prototype.initializeStage = function() { + this.$stage = this.$element.find("." + this.settings.stageClass), this.$stage.length || (this.$element.addClass(this.options.loadingClass), this.$stage = a("<" + this.settings.stageElement + ">", { + class: this.settings.stageClass + }).wrap(a("
", { + class: this.settings.stageOuterClass + })), this.$element.append(this.$stage.parent())) + }, e.prototype.initializeItems = function() { + var b = this.$element.find(".owl-item"); + if (b.length) return this._items = b.get().map(function(b) { + return a(b) + }), this._mergers = this._items.map(function() { + return 1 + }), void this.refresh(); + this.replace(this.$element.children().not(this.$stage.parent())), this.isVisible() ? this.refresh() : this.invalidate("width"), this.$element.removeClass(this.options.loadingClass).addClass(this.options.loadedClass) + }, e.prototype.initialize = function() { + if (this.enter("initializing"), this.trigger("initialize"), this.$element.toggleClass(this.settings.rtlClass, this.settings.rtl), this.settings.autoWidth && !this.is("pre-loading")) { + var a, b, c; + a = this.$element.find("img"), b = this.settings.nestedItemSelector ? "." + this.settings.nestedItemSelector : d, c = this.$element.children(b).width(), a.length && c <= 0 && this.preloadAutoWidthImages(a) + } + this.initializeStage(), this.initializeItems(), this.registerEventHandlers(), this.leave("initializing"), this.trigger("initialized") + }, e.prototype.isVisible = function() { + return !this.settings.checkVisibility || this.$element.is(":visible") + }, e.prototype.setup = function() { + var b = this.viewport(), + c = this.options.responsive, + d = -1, + e = null; + c ? (a.each(c, function(a) { + a <= b && a > d && (d = Number(a)) + }), e = a.extend({}, this.options, c[d]), "function" == typeof e.stagePadding && (e.stagePadding = e.stagePadding()), delete e.responsive, e.responsiveClass && this.$element.attr("class", this.$element.attr("class").replace(new RegExp("(" + this.options.responsiveClass + "-)\\S+\\s", "g"), "$1" + d))) : e = a.extend({}, this.options), this.trigger("change", { + property: { + name: "settings", + value: e + } + }), this._breakpoint = d, this.settings = e, this.invalidate("settings"), this.trigger("changed", { + property: { + name: "settings", + value: this.settings + } + }) + }, e.prototype.optionsLogic = function() { + this.settings.autoWidth && (this.settings.stagePadding = !1, this.settings.merge = !1) + }, e.prototype.prepare = function(b) { + var c = this.trigger("prepare", { + content: b + }); + return c.data || (c.data = a("<" + this.settings.itemElement + "/>").addClass(this.options.itemClass).append(b)), this.trigger("prepared", { + content: c.data + }), c.data + }, e.prototype.update = function() { + for (var b = 0, c = this._pipe.length, d = a.proxy(function(a) { + return this[a] + }, this._invalidated), e = {}; b < c;)(this._invalidated.all || a.grep(this._pipe[b].filter, d).length > 0) && this._pipe[b].run(e), b++; + this._invalidated = {}, !this.is("valid") && this.enter("valid") + }, e.prototype.width = function(a) { + switch (a = a || e.Width.Default) { + case e.Width.Inner: + case e.Width.Outer: + return this._width; + default: + return this._width - 2 * this.settings.stagePadding + this.settings.margin + } + }, e.prototype.refresh = function() { + this.enter("refreshing"), this.trigger("refresh"), this.setup(), this.optionsLogic(), this.$element.addClass(this.options.refreshClass), this.update(), this.$element.removeClass(this.options.refreshClass), this.leave("refreshing"), this.trigger("refreshed") + }, e.prototype.onThrottledResize = function() { + b.clearTimeout(this.resizeTimer), this.resizeTimer = b.setTimeout(this._handlers.onResize, this.settings.responsiveRefreshRate) + }, e.prototype.onResize = function() { + return !!this._items.length && (this._width !== this.$element.width() && (!!this.isVisible() && (this.enter("resizing"), this.trigger("resize").isDefaultPrevented() ? (this.leave("resizing"), !1) : (this.invalidate("width"), this.refresh(), this.leave("resizing"), void this.trigger("resized"))))) + }, e.prototype.registerEventHandlers = function() { + a.support.transition && this.$stage.on(a.support.transition.end + ".owl.core", a.proxy(this.onTransitionEnd, this)), !1 !== this.settings.responsive && this.on(b, "resize", this._handlers.onThrottledResize), this.settings.mouseDrag && (this.$element.addClass(this.options.dragClass), this.$stage.on("mousedown.owl.core", a.proxy(this.onDragStart, this)), this.$stage.on("dragstart.owl.core selectstart.owl.core", function() { + return !1 + })), this.settings.touchDrag && (this.$stage.on("touchstart.owl.core", a.proxy(this.onDragStart, this)), this.$stage.on("touchcancel.owl.core", a.proxy(this.onDragEnd, this))) + }, e.prototype.onDragStart = function(b) { + var d = null; + 3 !== b.which && (a.support.transform ? (d = this.$stage.css("transform").replace(/.*\(|\)| /g, "").split(","), d = { + x: d[16 === d.length ? 12 : 4], + y: d[16 === d.length ? 13 : 5] + }) : (d = this.$stage.position(), d = { + x: this.settings.rtl ? d.left + this.$stage.width() - this.width() + this.settings.margin : d.left, + y: d.top + }), this.is("animating") && (a.support.transform ? this.animate(d.x) : this.$stage.stop(), this.invalidate("position")), this.$element.toggleClass(this.options.grabClass, "mousedown" === b.type), this.speed(0), this._drag.time = (new Date).getTime(), this._drag.target = a(b.target), this._drag.stage.start = d, this._drag.stage.current = d, this._drag.pointer = this.pointer(b), a(c).on("mouseup.owl.core touchend.owl.core", a.proxy(this.onDragEnd, this)), a(c).one("mousemove.owl.core touchmove.owl.core", a.proxy(function(b) { + var d = this.difference(this._drag.pointer, this.pointer(b)); + a(c).on("mousemove.owl.core touchmove.owl.core", a.proxy(this.onDragMove, this)), Math.abs(d.x) < Math.abs(d.y) && this.is("valid") || (b.preventDefault(), this.enter("dragging"), this.trigger("drag")) + }, this))) + }, e.prototype.onDragMove = function(a) { + var b = null, + c = null, + d = null, + e = this.difference(this._drag.pointer, this.pointer(a)), + f = this.difference(this._drag.stage.start, e); + this.is("dragging") && (a.preventDefault(), this.settings.loop ? (b = this.coordinates(this.minimum()), c = this.coordinates(this.maximum() + 1) - b, f.x = ((f.x - b) % c + c) % c + b) : (b = this.settings.rtl ? this.coordinates(this.maximum()) : this.coordinates(this.minimum()), c = this.settings.rtl ? this.coordinates(this.minimum()) : this.coordinates(this.maximum()), d = this.settings.pullDrag ? -1 * e.x / 5 : 0, f.x = Math.max(Math.min(f.x, b + d), c + d)), this._drag.stage.current = f, this.animate(f.x)) + }, e.prototype.onDragEnd = function(b) { + var d = this.difference(this._drag.pointer, this.pointer(b)), + e = this._drag.stage.current, + f = d.x > 0 ^ this.settings.rtl ? "left" : "right"; + a(c).off(".owl.core"), this.$element.removeClass(this.options.grabClass), (0 !== d.x && this.is("dragging") || !this.is("valid")) && (this.speed(this.settings.dragEndSpeed || this.settings.smartSpeed), this.current(this.closest(e.x, 0 !== d.x ? f : this._drag.direction)), this.invalidate("position"), this.update(), this._drag.direction = f, (Math.abs(d.x) > 3 || (new Date).getTime() - this._drag.time > 300) && this._drag.target.one("click.owl.core", function() { + return !1 + })), this.is("dragging") && (this.leave("dragging"), this.trigger("dragged")) + }, e.prototype.closest = function(b, c) { + var e = -1, + f = 30, + g = this.width(), + h = this.coordinates(); + return this.settings.freeDrag || a.each(h, a.proxy(function(a, i) { + return "left" === c && b > i - f && b < i + f ? e = a : "right" === c && b > i - g - f && b < i - g + f ? e = a + 1 : this.op(b, "<", i) && this.op(b, ">", h[a + 1] !== d ? h[a + 1] : i - g) && (e = "left" === c ? a + 1 : a), -1 === e + }, this)), this.settings.loop || (this.op(b, ">", h[this.minimum()]) ? e = b = this.minimum() : this.op(b, "<", h[this.maximum()]) && (e = b = this.maximum())), e + }, e.prototype.animate = function(b) { + var c = this.speed() > 0; + this.is("animating") && this.onTransitionEnd(), c && (this.enter("animating"), this.trigger("translate")), a.support.transform3d && a.support.transition ? this.$stage.css({ + transform: "translate3d(" + b + "px,0px,0px)", + transition: this.speed() / 1e3 + "s" + (this.settings.slideTransition ? " " + this.settings.slideTransition : "") + }) : c ? this.$stage.animate({ + left: b + "px" + }, this.speed(), this.settings.fallbackEasing, a.proxy(this.onTransitionEnd, this)) : this.$stage.css({ + left: b + "px" + }) + }, e.prototype.is = function(a) { + return this._states.current[a] && this._states.current[a] > 0 + }, e.prototype.current = function(a) { + if (a === d) return this._current; + if (0 === this._items.length) return d; + if (a = this.normalize(a), this._current !== a) { + var b = this.trigger("change", { + property: { + name: "position", + value: a + } + }); + b.data !== d && (a = this.normalize(b.data)), this._current = a, this.invalidate("position"), this.trigger("changed", { + property: { + name: "position", + value: this._current + } + }) + } + return this._current + }, e.prototype.invalidate = function(b) { + return "string" === a.type(b) && (this._invalidated[b] = !0, this.is("valid") && this.leave("valid")), a.map(this._invalidated, function(a, b) { + return b + }) + }, e.prototype.reset = function(a) { + (a = this.normalize(a)) !== d && (this._speed = 0, this._current = a, this.suppress(["translate", "translated"]), this.animate(this.coordinates(a)), this.release(["translate", "translated"])) + }, e.prototype.normalize = function(a, b) { + var c = this._items.length, + e = b ? 0 : this._clones.length; + return !this.isNumeric(a) || c < 1 ? a = d : (a < 0 || a >= c + e) && (a = ((a - e / 2) % c + c) % c + e / 2), a + }, e.prototype.relative = function(a) { + return a -= this._clones.length / 2, this.normalize(a, !0) + }, e.prototype.maximum = function(a) { + var b, c, d, e = this.settings, + f = this._coordinates.length; + if (e.loop) f = this._clones.length / 2 + this._items.length - 1; + else if (e.autoWidth || e.merge) { + if (b = this._items.length) + for (c = this._items[--b].width(), d = this.$element.width(); b-- && !((c += this._items[b].width() + this.settings.margin) > d);); + f = b + 1 + } else f = e.center ? this._items.length - 1 : this._items.length - e.items; + return a && (f -= this._clones.length / 2), Math.max(f, 0) + }, e.prototype.minimum = function(a) { + return a ? 0 : this._clones.length / 2 + }, e.prototype.items = function(a) { + return a === d ? this._items.slice() : (a = this.normalize(a, !0), this._items[a]) + }, e.prototype.mergers = function(a) { + return a === d ? this._mergers.slice() : (a = this.normalize(a, !0), this._mergers[a]) + }, e.prototype.clones = function(b) { + var c = this._clones.length / 2, + e = c + this._items.length, + f = function(a) { + return a % 2 == 0 ? e + a / 2 : c - (a + 1) / 2 + }; + return b === d ? a.map(this._clones, function(a, b) { + return f(b) + }) : a.map(this._clones, function(a, c) { + return a === b ? f(c) : null + }) + }, e.prototype.speed = function(a) { + return a !== d && (this._speed = a), this._speed + }, e.prototype.coordinates = function(b) { + var c, e = 1, + f = b - 1; + return b === d ? a.map(this._coordinates, a.proxy(function(a, b) { + return this.coordinates(b) + }, this)) : (this.settings.center ? (this.settings.rtl && (e = -1, f = b + 1), c = this._coordinates[b], c += (this.width() - c + (this._coordinates[f] || 0)) / 2 * e) : c = this._coordinates[f] || 0, c = Math.ceil(c)) + }, e.prototype.duration = function(a, b, c) { + return 0 === c ? 0 : Math.min(Math.max(Math.abs(b - a), 1), 6) * Math.abs(c || this.settings.smartSpeed) + }, e.prototype.to = function(a, b) { + var c = this.current(), + d = null, + e = a - this.relative(c), + f = (e > 0) - (e < 0), + g = this._items.length, + h = this.minimum(), + i = this.maximum(); + this.settings.loop ? (!this.settings.rewind && Math.abs(e) > g / 2 && (e += -1 * f * g), a = c + e, (d = ((a - h) % g + g) % g + h) !== a && d - e <= i && d - e > 0 && (c = d - e, a = d, this.reset(c))) : this.settings.rewind ? (i += 1, a = (a % i + i) % i) : a = Math.max(h, Math.min(i, a)), this.speed(this.duration(c, a, b)), this.current(a), this.isVisible() && this.update() + }, e.prototype.next = function(a) { + a = a || !1, this.to(this.relative(this.current()) + 1, a) + }, e.prototype.prev = function(a) { + a = a || !1, this.to(this.relative(this.current()) - 1, a) + }, e.prototype.onTransitionEnd = function(a) { + if (a !== d && (a.stopPropagation(), (a.target || a.srcElement || a.originalTarget) !== this.$stage.get(0))) return !1; + this.leave("animating"), this.trigger("translated") + }, e.prototype.viewport = function() { + var d; + return this.options.responsiveBaseElement !== b ? d = a(this.options.responsiveBaseElement).width() : b.innerWidth ? d = b.innerWidth : c.documentElement && c.documentElement.clientWidth ? d = c.documentElement.clientWidth : console.warn("Can not detect viewport width."), d + }, e.prototype.replace = function(b) { + this.$stage.empty(), this._items = [], b && (b = b instanceof jQuery ? b : a(b)), this.settings.nestedItemSelector && (b = b.find("." + this.settings.nestedItemSelector)), b.filter(function() { + return 1 === this.nodeType + }).each(a.proxy(function(a, b) { + b = this.prepare(b), this.$stage.append(b), this._items.push(b), this._mergers.push(1 * b.find("[data-merge]").addBack("[data-merge]").attr("data-merge") || 1) + }, this)), this.reset(this.isNumeric(this.settings.startPosition) ? this.settings.startPosition : 0), this.invalidate("items") + }, e.prototype.add = function(b, c) { + var e = this.relative(this._current); + c = c === d ? this._items.length : this.normalize(c, !0), b = b instanceof jQuery ? b : a(b), this.trigger("add", { + content: b, + position: c + }), b = this.prepare(b), 0 === this._items.length || c === this._items.length ? (0 === this._items.length && this.$stage.append(b), 0 !== this._items.length && this._items[c - 1].after(b), this._items.push(b), this._mergers.push(1 * b.find("[data-merge]").addBack("[data-merge]").attr("data-merge") || 1)) : (this._items[c].before(b), this._items.splice(c, 0, b), this._mergers.splice(c, 0, 1 * b.find("[data-merge]").addBack("[data-merge]").attr("data-merge") || 1)), this._items[e] && this.reset(this._items[e].index()), this.invalidate("items"), this.trigger("added", { + content: b, + position: c + }) + }, e.prototype.remove = function(a) { + (a = this.normalize(a, !0)) !== d && (this.trigger("remove", { + content: this._items[a], + position: a + }), this._items[a].remove(), this._items.splice(a, 1), this._mergers.splice(a, 1), this.invalidate("items"), this.trigger("removed", { + content: null, + position: a + })) + }, e.prototype.preloadAutoWidthImages = function(b) { + b.each(a.proxy(function(b, c) { + this.enter("pre-loading"), c = a(c), a(new Image).one("load", a.proxy(function(a) { + c.attr("src", a.target.src), c.css("opacity", 1), this.leave("pre-loading"), !this.is("pre-loading") && !this.is("initializing") && this.refresh() + }, this)).attr("src", c.attr("src") || c.attr("data-src") || c.attr("data-src-retina")) + }, this)) + }, e.prototype.destroy = function() { + this.$element.off(".owl.core"), this.$stage.off(".owl.core"), a(c).off(".owl.core"), !1 !== this.settings.responsive && (b.clearTimeout(this.resizeTimer), this.off(b, "resize", this._handlers.onThrottledResize)); + for (var d in this._plugins) this._plugins[d].destroy(); + this.$stage.children(".cloned").remove(), this.$stage.unwrap(), this.$stage.children().contents().unwrap(), this.$stage.children().unwrap(), this.$stage.remove(), this.$element.removeClass(this.options.refreshClass).removeClass(this.options.loadingClass).removeClass(this.options.loadedClass).removeClass(this.options.rtlClass).removeClass(this.options.dragClass).removeClass(this.options.grabClass).attr("class", this.$element.attr("class").replace(new RegExp(this.options.responsiveClass + "-\\S+\\s", "g"), "")).removeData("owl.carousel") + }, e.prototype.op = function(a, b, c) { + var d = this.settings.rtl; + switch (b) { + case "<": + return d ? a > c : a < c; + case ">": + return d ? a < c : a > c; + case ">=": + return d ? a <= c : a >= c; + case "<=": + return d ? a >= c : a <= c + } + }, e.prototype.on = function(a, b, c, d) { + a.addEventListener ? a.addEventListener(b, c, d) : a.attachEvent && a.attachEvent("on" + b, c) + }, e.prototype.off = function(a, b, c, d) { + a.removeEventListener ? a.removeEventListener(b, c, d) : a.detachEvent && a.detachEvent("on" + b, c) + }, e.prototype.trigger = function(b, c, d, f, g) { + var h = { + item: { + count: this._items.length, + index: this.current() + } + }, + i = a.camelCase(a.grep(["on", b, d], function(a) { + return a + }).join("-").toLowerCase()), + j = a.Event([b, "owl", d || "carousel"].join(".").toLowerCase(), a.extend({ + relatedTarget: this + }, h, c)); + return this._supress[b] || (a.each(this._plugins, function(a, b) { + b.onTrigger && b.onTrigger(j) + }), this.register({ + type: e.Type.Event, + name: b + }), this.$element.trigger(j), this.settings && "function" == typeof this.settings[i] && this.settings[i].call(this, j)), j + }, e.prototype.enter = function(b) { + a.each([b].concat(this._states.tags[b] || []), a.proxy(function(a, b) { + this._states.current[b] === d && (this._states.current[b] = 0), this._states.current[b]++ + }, this)) + }, e.prototype.leave = function(b) { + a.each([b].concat(this._states.tags[b] || []), a.proxy(function(a, b) { + this._states.current[b]-- + }, this)) + }, e.prototype.register = function(b) { + if (b.type === e.Type.Event) { + if (a.event.special[b.name] || (a.event.special[b.name] = {}), !a.event.special[b.name].owl) { + var c = a.event.special[b.name]._default; + a.event.special[b.name]._default = function(a) { + return !c || !c.apply || a.namespace && -1 !== a.namespace.indexOf("owl") ? a.namespace && a.namespace.indexOf("owl") > -1 : c.apply(this, arguments) + }, a.event.special[b.name].owl = !0 + } + } else b.type === e.Type.State && (this._states.tags[b.name] ? this._states.tags[b.name] = this._states.tags[b.name].concat(b.tags) : this._states.tags[b.name] = b.tags, this._states.tags[b.name] = a.grep(this._states.tags[b.name], a.proxy(function(c, d) { + return a.inArray(c, this._states.tags[b.name]) === d + }, this))) + }, e.prototype.suppress = function(b) { + a.each(b, a.proxy(function(a, b) { + this._supress[b] = !0 + }, this)) + }, e.prototype.release = function(b) { + a.each(b, a.proxy(function(a, b) { + delete this._supress[b] + }, this)) + }, e.prototype.pointer = function(a) { + var c = { + x: null, + y: null + }; + return a = a.originalEvent || a || b.event, a = a.touches && a.touches.length ? a.touches[0] : a.changedTouches && a.changedTouches.length ? a.changedTouches[0] : a, a.pageX ? (c.x = a.pageX, c.y = a.pageY) : (c.x = a.clientX, c.y = a.clientY), c + }, e.prototype.isNumeric = function(a) { + return !isNaN(parseFloat(a)) + }, e.prototype.difference = function(a, b) { + return { + x: a.x - b.x, + y: a.y - b.y + } + }, a.fn.owlCarousel = function(b) { + var c = Array.prototype.slice.call(arguments, 1); + return this.each(function() { + var d = a(this), + f = d.data("owl.carousel"); + f || (f = new e(this, "object" == typeof b && b), d.data("owl.carousel", f), a.each(["next", "prev", "to", "destroy", "refresh", "replace", "add", "remove"], function(b, c) { + f.register({ + type: e.Type.Event, + name: c + }), f.$element.on(c + ".owl.carousel.core", a.proxy(function(a) { + a.namespace && a.relatedTarget !== this && (this.suppress([c]), f[c].apply(this, [].slice.call(arguments, 1)), this.release([c])) + }, f)) + })), "string" == typeof b && "_" !== b.charAt(0) && f[b].apply(f, c) + }) + }, a.fn.owlCarousel.Constructor = e +}(window.Zepto || window.jQuery, window, document), +function(a, b, c, d) { + var e = function(b) { + this._core = b, this._interval = null, this._visible = null, this._handlers = { + "initialized.owl.carousel": a.proxy(function(a) { + a.namespace && this._core.settings.autoRefresh && this.watch() + }, this) + }, this._core.options = a.extend({}, e.Defaults, this._core.options), this._core.$element.on(this._handlers) + }; + e.Defaults = { + autoRefresh: !0, + autoRefreshInterval: 500 + }, e.prototype.watch = function() { + this._interval || (this._visible = this._core.isVisible(), this._interval = b.setInterval(a.proxy(this.refresh, this), this._core.settings.autoRefreshInterval)) + }, e.prototype.refresh = function() { + this._core.isVisible() !== this._visible && (this._visible = !this._visible, this._core.$element.toggleClass("owl-hidden", !this._visible), this._visible && this._core.invalidate("width") && this._core.refresh()) + }, e.prototype.destroy = function() { + var a, c; + b.clearInterval(this._interval); + for (a in this._handlers) this._core.$element.off(a, this._handlers[a]); + for (c in Object.getOwnPropertyNames(this)) "function" != typeof this[c] && (this[c] = null) + }, a.fn.owlCarousel.Constructor.Plugins.AutoRefresh = e +}(window.Zepto || window.jQuery, window, document), +function(a, b, c, d) { + var e = function(b) { + this._core = b, this._loaded = [], this._handlers = { + "initialized.owl.carousel change.owl.carousel resized.owl.carousel": a.proxy(function(b) { + if (b.namespace && this._core.settings && this._core.settings.lazyLoad && (b.property && "position" == b.property.name || "initialized" == b.type)) { + var c = this._core.settings, + e = c.center && Math.ceil(c.items / 2) || c.items, + f = c.center && -1 * e || 0, + g = (b.property && b.property.value !== d ? b.property.value : this._core.current()) + f, + h = this._core.clones().length, + i = a.proxy(function(a, b) { + this.load(b) + }, this); + for (c.lazyLoadEager > 0 && (e += c.lazyLoadEager, c.loop && (g -= c.lazyLoadEager, e++)); f++ < e;) this.load(h / 2 + this._core.relative(g)), h && a.each(this._core.clones(this._core.relative(g)), i), g++ + } + }, this) + }, this._core.options = a.extend({}, e.Defaults, this._core.options), this._core.$element.on(this._handlers) + }; + e.Defaults = { + lazyLoad: !1, + lazyLoadEager: 0 + }, e.prototype.load = function(c) { + var d = this._core.$stage.children().eq(c), + e = d && d.find(".owl-lazy"); + !e || a.inArray(d.get(0), this._loaded) > -1 || (e.each(a.proxy(function(c, d) { + var e, f = a(d), + g = b.devicePixelRatio > 1 && f.attr("data-src-retina") || f.attr("data-src") || f.attr("data-srcset"); + this._core.trigger("load", { + element: f, + url: g + }, "lazy"), f.is("img") ? f.one("load.owl.lazy", a.proxy(function() { + f.css("opacity", 1), this._core.trigger("loaded", { + element: f, + url: g + }, "lazy") + }, this)).attr("src", g) : f.is("source") ? f.one("load.owl.lazy", a.proxy(function() { + this._core.trigger("loaded", { + element: f, + url: g + }, "lazy") + }, this)).attr("srcset", g) : (e = new Image, e.onload = a.proxy(function() { + f.css({ + "background-image": 'url("' + g + '")', + opacity: "1" + }), this._core.trigger("loaded", { + element: f, + url: g + }, "lazy") + }, this), e.src = g) + }, this)), this._loaded.push(d.get(0))) + }, e.prototype.destroy = function() { + var a, b; + for (a in this.handlers) this._core.$element.off(a, this.handlers[a]); + for (b in Object.getOwnPropertyNames(this)) "function" != typeof this[b] && (this[b] = null) + }, a.fn.owlCarousel.Constructor.Plugins.Lazy = e +}(window.Zepto || window.jQuery, window, document), +function(a, b, c, d) { + var e = function(c) { + this._core = c, this._previousHeight = null, this._handlers = { + "initialized.owl.carousel refreshed.owl.carousel": a.proxy(function(a) { + a.namespace && this._core.settings.autoHeight && this.update() + }, this), + "changed.owl.carousel": a.proxy(function(a) { + a.namespace && this._core.settings.autoHeight && "position" === a.property.name && this.update() + }, this), + "loaded.owl.lazy": a.proxy(function(a) { + a.namespace && this._core.settings.autoHeight && a.element.closest("." + this._core.settings.itemClass).index() === this._core.current() && this.update() + }, this) + }, this._core.options = a.extend({}, e.Defaults, this._core.options), this._core.$element.on(this._handlers), this._intervalId = null; + var d = this; + a(b).on("load", function() { + d._core.settings.autoHeight && d.update() + }), a(b).resize(function() { + d._core.settings.autoHeight && (null != d._intervalId && clearTimeout(d._intervalId), d._intervalId = setTimeout(function() { + d.update() + }, 250)) + }) + }; + e.Defaults = { + autoHeight: !1, + autoHeightClass: "owl-height" + }, e.prototype.update = function() { + var b = this._core._current, + c = b + this._core.settings.items, + d = this._core.settings.lazyLoad, + e = this._core.$stage.children().toArray().slice(b, c), + f = [], + g = 0; + a.each(e, function(b, c) { + f.push(a(c).height()) + }), g = Math.max.apply(null, f), g <= 1 && d && this._previousHeight && (g = this._previousHeight), this._previousHeight = g, this._core.$stage.parent().height(g).addClass(this._core.settings.autoHeightClass) + }, e.prototype.destroy = function() { + var a, b; + for (a in this._handlers) this._core.$element.off(a, this._handlers[a]); + for (b in Object.getOwnPropertyNames(this)) "function" != typeof this[b] && (this[b] = null) + }, a.fn.owlCarousel.Constructor.Plugins.AutoHeight = e +}(window.Zepto || window.jQuery, window, document), +function(a, b, c, d) { + var e = function(b) { + this._core = b, this._videos = {}, this._playing = null, this._handlers = { + "initialized.owl.carousel": a.proxy(function(a) { + a.namespace && this._core.register({ + type: "state", + name: "playing", + tags: ["interacting"] + }) + }, this), + "resize.owl.carousel": a.proxy(function(a) { + a.namespace && this._core.settings.video && this.isInFullScreen() && a.preventDefault() + }, this), + "refreshed.owl.carousel": a.proxy(function(a) { + a.namespace && this._core.is("resizing") && this._core.$stage.find(".cloned .owl-video-frame").remove() + }, this), + "changed.owl.carousel": a.proxy(function(a) { + a.namespace && "position" === a.property.name && this._playing && this.stop() + }, this), + "prepared.owl.carousel": a.proxy(function(b) { + if (b.namespace) { + var c = a(b.content).find(".owl-video"); + c.length && (c.css("display", "none"), this.fetch(c, a(b.content))) + } + }, this) + }, this._core.options = a.extend({}, e.Defaults, this._core.options), this._core.$element.on(this._handlers), this._core.$element.on("click.owl.video", ".owl-video-play-icon", a.proxy(function(a) { + this.play(a) + }, this)) + }; + e.Defaults = { + video: !1, + videoHeight: !1, + videoWidth: !1 + }, e.prototype.fetch = function(a, b) { + var c = function() { + return a.attr("data-vimeo-id") ? "vimeo" : a.attr("data-vzaar-id") ? "vzaar" : "youtube" + }(), + d = a.attr("data-vimeo-id") || a.attr("data-youtube-id") || a.attr("data-vzaar-id"), + e = a.attr("data-width") || this._core.settings.videoWidth, + f = a.attr("data-height") || this._core.settings.videoHeight, + g = a.attr("href"); + if (!g) throw new Error("Missing video URL."); + if (d = g.match(/(http:|https:|)\/\/(player.|www.|app.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com|be\-nocookie\.com)|vzaar\.com)\/(video\/|videos\/|embed\/|channels\/.+\/|groups\/.+\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/), d[3].indexOf("youtu") > -1) c = "youtube"; + else if (d[3].indexOf("vimeo") > -1) c = "vimeo"; + else { + if (!(d[3].indexOf("vzaar") > -1)) throw new Error("Video URL not supported."); + c = "vzaar" + } + d = d[6], this._videos[g] = { + type: c, + id: d, + width: e, + height: f + }, b.attr("data-video", g), this.thumbnail(a, this._videos[g]) + }, e.prototype.thumbnail = function(b, c) { + var d, e, f, g = c.width && c.height ? "width:" + c.width + "px;height:" + c.height + "px;" : "", + h = b.find("img"), + i = "src", + j = "", + k = this._core.settings, + l = function(c) { + e = '
', d = k.lazyLoad ? a("
", { + class: "owl-video-tn " + j, + srcType: c + }) : a("
", { + class: "owl-video-tn", + style: "opacity:1;background-image:url(" + c + ")" + }), b.after(d), b.after(e) + }; + if (b.wrap(a("
", { + class: "owl-video-wrapper", + style: g + })), this._core.settings.lazyLoad && (i = "data-src", j = "owl-lazy"), h.length) return l(h.attr(i)), h.remove(), !1; + "youtube" === c.type ? (f = "//img.youtube.com/vi/" + c.id + "/hqdefault.jpg", l(f)) : "vimeo" === c.type ? a.ajax({ + type: "GET", + url: "//vimeo.com/api/v2/video/" + c.id + ".json", + jsonp: "callback", + dataType: "jsonp", + success: function(a) { + f = a[0].thumbnail_large, l(f) + } + }) : "vzaar" === c.type && a.ajax({ + type: "GET", + url: "//vzaar.com/api/videos/" + c.id + ".json", + jsonp: "callback", + dataType: "jsonp", + success: function(a) { + f = a.framegrab_url, l(f) + } + }) + }, e.prototype.stop = function() { + this._core.trigger("stop", null, "video"), this._playing.find(".owl-video-frame").remove(), this._playing.removeClass("owl-video-playing"), this._playing = null, this._core.leave("playing"), this._core.trigger("stopped", null, "video") + }, e.prototype.play = function(b) { + var c, d = a(b.target), + e = d.closest("." + this._core.settings.itemClass), + f = this._videos[e.attr("data-video")], + g = f.width || "100%", + h = f.height || this._core.$stage.height(); + this._playing || (this._core.enter("playing"), this._core.trigger("play", null, "video"), e = this._core.items(this._core.relative(e.index())), this._core.reset(e.index()), c = a(''), c.attr("height", h), c.attr("width", g), "youtube" === f.type ? c.attr("src", "//www.youtube.com/embed/" + f.id + "?autoplay=1&rel=0&v=" + f.id) : "vimeo" === f.type ? c.attr("src", "//player.vimeo.com/video/" + f.id + "?autoplay=1") : "vzaar" === f.type && c.attr("src", "//view.vzaar.com/" + f.id + "/player?autoplay=true"), a(c).wrap('
').insertAfter(e.find(".owl-video")), this._playing = e.addClass("owl-video-playing")) + }, e.prototype.isInFullScreen = function() { + var b = c.fullscreenElement || c.mozFullScreenElement || c.webkitFullscreenElement; + return b && a(b).parent().hasClass("owl-video-frame") + }, e.prototype.destroy = function() { + var a, b; + this._core.$element.off("click.owl.video"); + for (a in this._handlers) this._core.$element.off(a, this._handlers[a]); + for (b in Object.getOwnPropertyNames(this)) "function" != typeof this[b] && (this[b] = null) + }, a.fn.owlCarousel.Constructor.Plugins.Video = e +}(window.Zepto || window.jQuery, window, document), +function(a, b, c, d) { + var e = function(b) { + this.core = b, this.core.options = a.extend({}, e.Defaults, this.core.options), this.swapping = !0, this.previous = d, this.next = d, this.handlers = { + "change.owl.carousel": a.proxy(function(a) { + a.namespace && "position" == a.property.name && (this.previous = this.core.current(), this.next = a.property.value) + }, this), + "drag.owl.carousel dragged.owl.carousel translated.owl.carousel": a.proxy(function(a) { + a.namespace && (this.swapping = "translated" == a.type) + }, this), + "translate.owl.carousel": a.proxy(function(a) { + a.namespace && this.swapping && (this.core.options.animateOut || this.core.options.animateIn) && this.swap() + }, this) + }, this.core.$element.on(this.handlers) + }; + e.Defaults = { + animateOut: !1, + animateIn: !1 + }, e.prototype.swap = function() { + if (1 === this.core.settings.items && a.support.animation && a.support.transition) { + this.core.speed(0); + var b, c = a.proxy(this.clear, this), + d = this.core.$stage.children().eq(this.previous), + e = this.core.$stage.children().eq(this.next), + f = this.core.settings.animateIn, + g = this.core.settings.animateOut; + this.core.current() !== this.previous && (g && (b = this.core.coordinates(this.previous) - this.core.coordinates(this.next), d.one(a.support.animation.end, c).css({ + left: b + "px" + }).addClass("animated owl-animated-out").addClass(g)), f && e.one(a.support.animation.end, c).addClass("animated owl-animated-in").addClass(f)) + } + }, e.prototype.clear = function(b) { + a(b.target).css({ + left: "" + }).removeClass("animated owl-animated-out owl-animated-in").removeClass(this.core.settings.animateIn).removeClass(this.core.settings.animateOut), this.core.onTransitionEnd() + }, e.prototype.destroy = function() { + var a, b; + for (a in this.handlers) this.core.$element.off(a, this.handlers[a]); + for (b in Object.getOwnPropertyNames(this)) "function" != typeof this[b] && (this[b] = null) + }, a.fn.owlCarousel.Constructor.Plugins.Animate = e +}(window.Zepto || window.jQuery, window, document), +function(a, b, c, d) { + var e = function(b) { + this._core = b, this._call = null, this._time = 0, this._timeout = 0, this._paused = !0, this._handlers = { + "changed.owl.carousel": a.proxy(function(a) { + a.namespace && "settings" === a.property.name ? this._core.settings.autoplay ? this.play() : this.stop() : a.namespace && "position" === a.property.name && this._paused && (this._time = 0) + }, this), + "initialized.owl.carousel": a.proxy(function(a) { + a.namespace && this._core.settings.autoplay && this.play() + }, this), + "play.owl.autoplay": a.proxy(function(a, b, c) { + a.namespace && this.play(b, c) + }, this), + "stop.owl.autoplay": a.proxy(function(a) { + a.namespace && this.stop() + }, this), + "mouseover.owl.autoplay": a.proxy(function() { + this._core.settings.autoplayHoverPause && this._core.is("rotating") && this.pause() + }, this), + "mouseleave.owl.autoplay": a.proxy(function() { + this._core.settings.autoplayHoverPause && this._core.is("rotating") && this.play() + }, this), + "touchstart.owl.core": a.proxy(function() { + this._core.settings.autoplayHoverPause && this._core.is("rotating") && this.pause() + }, this), + "touchend.owl.core": a.proxy(function() { + this._core.settings.autoplayHoverPause && this.play() + }, this) + }, this._core.$element.on(this._handlers), this._core.options = a.extend({}, e.Defaults, this._core.options) + }; + e.Defaults = { + autoplay: !1, + autoplayTimeout: 5e3, + autoplayHoverPause: !1, + autoplaySpeed: !1 + }, e.prototype._next = function(d) { + this._call = b.setTimeout(a.proxy(this._next, this, d), this._timeout * (Math.round(this.read() / this._timeout) + 1) - this.read()), this._core.is("interacting") || c.hidden || this._core.next(d || this._core.settings.autoplaySpeed) + }, e.prototype.read = function() { + return (new Date).getTime() - this._time + }, e.prototype.play = function(c, d) { + var e; + this._core.is("rotating") || this._core.enter("rotating"), c = c || this._core.settings.autoplayTimeout, e = Math.min(this._time % (this._timeout || c), c), this._paused ? (this._time = this.read(), this._paused = !1) : b.clearTimeout(this._call), this._time += this.read() % c - e, this._timeout = c, this._call = b.setTimeout(a.proxy(this._next, this, d), c - e) + }, e.prototype.stop = function() { + this._core.is("rotating") && (this._time = 0, this._paused = !0, b.clearTimeout(this._call), this._core.leave("rotating")) + }, e.prototype.pause = function() { + this._core.is("rotating") && !this._paused && (this._time = this.read(), this._paused = !0, b.clearTimeout(this._call)) + }, e.prototype.destroy = function() { + var a, b; + this.stop(); + for (a in this._handlers) this._core.$element.off(a, this._handlers[a]); + for (b in Object.getOwnPropertyNames(this)) "function" != typeof this[b] && (this[b] = null) + }, a.fn.owlCarousel.Constructor.Plugins.autoplay = e +}(window.Zepto || window.jQuery, window, document), +function(a, b, c, d) { + "use strict"; + var e = function(b) { + this._core = b, this._initialized = !1, this._pages = [], this._controls = {}, this._templates = [], this.$element = this._core.$element, this._overrides = { + next: this._core.next, + prev: this._core.prev, + to: this._core.to + }, this._handlers = { + "prepared.owl.carousel": a.proxy(function(b) { + b.namespace && this._core.settings.dotsData && this._templates.push('
' + a(b.content).find("[data-dot]").addBack("[data-dot]").attr("data-dot") + "
") + }, this), + "added.owl.carousel": a.proxy(function(a) { + a.namespace && this._core.settings.dotsData && this._templates.splice(a.position, 0, this._templates.pop()) + }, this), + "remove.owl.carousel": a.proxy(function(a) { + a.namespace && this._core.settings.dotsData && this._templates.splice(a.position, 1) + }, this), + "changed.owl.carousel": a.proxy(function(a) { + a.namespace && "position" == a.property.name && this.draw() + }, this), + "initialized.owl.carousel": a.proxy(function(a) { + a.namespace && !this._initialized && (this._core.trigger("initialize", null, "navigation"), this.initialize(), this.update(), this.draw(), this._initialized = !0, this._core.trigger("initialized", null, "navigation")) + }, this), + "refreshed.owl.carousel": a.proxy(function(a) { + a.namespace && this._initialized && (this._core.trigger("refresh", null, "navigation"), this.update(), this.draw(), this._core.trigger("refreshed", null, "navigation")) + }, this) + }, this._core.options = a.extend({}, e.Defaults, this._core.options), this.$element.on(this._handlers) + }; + e.Defaults = { + nav: !1, + navText: ['', ''], + navSpeed: !1, + navElement: 'button type="button" role="presentation"', + navContainer: !1, + navContainerClass: "owl-nav", + navClass: ["owl-prev", "owl-next"], + slideBy: 1, + dotClass: "owl-dot", + dotsClass: "owl-dots", + dots: !0, + dotsEach: !1, + dotsData: !1, + dotsSpeed: !1, + dotsContainer: !1 + }, e.prototype.initialize = function() { + var b, c = this._core.settings; + this._controls.$relative = (c.navContainer ? a(c.navContainer) : a("
").addClass(c.navContainerClass).appendTo(this.$element)).addClass("disabled"), this._controls.$previous = a("<" + c.navElement + ">").addClass(c.navClass[0]).html(c.navText[0]).prependTo(this._controls.$relative).on("click", a.proxy(function(a) { + this.prev(c.navSpeed) + }, this)), this._controls.$next = a("<" + c.navElement + ">").addClass(c.navClass[1]).html(c.navText[1]).appendTo(this._controls.$relative).on("click", a.proxy(function(a) { + this.next(c.navSpeed) + }, this)), c.dotsData || (this._templates = [a('' . esc_html_e('Home','abiz') . ' ' . ' / '; + + if (is_category()) + { + $thisCat = get_category(get_query_var('cat') , false); + if ($thisCat->parent != 0) echo get_category_parents($thisCat->parent, true, ' ' . ' '); + echo '
  • ' . esc_html__('Archive by category', 'abiz') . ' "' . esc_html(single_cat_title('', false)) . '"' . '
  • '; + + } + + elseif (is_search()) + { + echo '
  • ' . esc_html__('Search results for ', 'abiz') . ' "' . esc_html(get_search_query()) . '"' . '
  • '; + } + + elseif (is_day()) + { + echo '' . esc_html(get_the_time('Y')) . ' ' . ' / '; + echo '' . esc_html(get_the_time('F')) . ' ' . ' / '; + echo '
  • ' . esc_html(get_the_time('d')) . '
  • '; + } + + elseif (is_month()) + { + echo '' . esc_html(get_the_time('Y')) . '  / '; + echo '
  • ' . esc_html(get_the_time('F')) . '
  • '; + } + + elseif (is_year()) + { + echo '
  • ' . esc_html(get_the_time('Y')) . '
  • '; + } + + elseif (is_single() && !is_attachment()) + { + if (get_post_type() != 'post') + { + if (class_exists('WooCommerce')) + { + echo '   ' . '
  • ' . wp_kses_post(get_the_title()) . '
  • '; + } + else + { + $post_type = get_post_type_object(get_post_type()); + $slug = $post_type->rewrite; + echo '' . $post_type + ->labels->singular_name . ''; + echo '  / ' . '
  • ' . wp_kses_post(get_the_title()) . '
  • '; + } + } + else + { + $cat = get_the_category(); + $cat = $cat[0]; + $cats = get_category_parents($cat, true, '  / '); + $cats = preg_replace("#^(.+)\s\s$#", "$1", $cats); + echo $cats; + echo '
  • ' . esc_html(get_the_title()) . '
  • '; + } + + } + + elseif (!is_single() && !is_page() && get_post_type() != 'post' && !is_404()) + { + if (class_exists('WooCommerce')) + { + if (is_shop()) + { + $thisshop = woocommerce_page_title(); + } + } + else + { + $post_type = get_post_type_object(get_post_type()); + echo '
  • ' . $post_type + ->labels->singular_name . '
  • '; + } + } + + elseif (!is_single() && !is_page() && get_post_type() != 'post' && !is_404()) + { + $post_type = get_post_type_object(get_post_type()); + echo '
  • ' . $post_type + ->labels->singular_name . '
  • '; + } + + elseif (is_attachment()) + { + $parent = get_post($post->post_parent); + $cat = get_the_category($parent->ID); + if (!empty($cat)) + { + $cat = $cat[0]; + echo get_category_parents($cat, true, '  / '); + } + echo '' . $parent->post_title . ''; + echo '
  • ' . esc_html(get_the_title()) . '
  • '; + + } + + elseif (is_page() && !$post->post_parent) + { + echo '
  • ' . esc_html(get_the_title()) . '
  • '; + } + + elseif (is_page() && $post->post_parent) + { + $parent_id = $post->post_parent; + $breadcrumbs = array(); + while ($parent_id) + { + $page = get_page($parent_id); + $breadcrumbs[] = '' . esc_html(get_the_title($page->ID)) . '' . ' / '; + $parent_id = $page->post_parent; + } + + $breadcrumbs = array_reverse($breadcrumbs); + for ($i = 0;$i < count($breadcrumbs);$i++) + { + echo $breadcrumbs[$i]; + if ($i != count($breadcrumbs) - 1) echo ' / '; + } + echo '
  • ' . esc_html(get_the_title()) . '
  • '; + + } + elseif (is_tag()) + { + echo '
  • ' . esc_html__('Posts tagged ', 'abiz') . ' "' . esc_html(single_tag_title('', false)) . '"' . '
  • '; + } + + elseif (is_author()) + { + global $author; + $userdata = get_userdata($author); + echo '
  • ' . esc_html__('Articles posted by ', 'abiz') . '' . $userdata->display_name . '
  • '; + } + + elseif (is_404()) + { + echo '
  • ' . esc_html__('Error 404 ', 'abiz') . '
  • '; + } + + if (get_query_var('paged')) + { + if (is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author()) echo ''; + echo ' ( ' . esc_html__('Page', 'abiz') . '' . esc_html(get_query_var('paged')) . ' )'; + if (is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author()) echo ''; + } + + echo ''; +} + + +// Excerpt Length +function abiz_blog_excerpt_length( $length ) { + $blog_excerpt_length = get_theme_mod( 'blog_excerpt_length', abiz_get_default_option( 'blog_excerpt_length' )); + if( $blog_excerpt_length == 1000 ) { + return 9999; + } + return esc_html( $blog_excerpt_length ); +} +add_filter( 'excerpt_length', 'abiz_blog_excerpt_length', 999 ); + + +// Excerpt Text +function abiz_blog_excerpt_after_text( $more ) { + $blog_excerpt_after_text = get_theme_mod( 'blog_excerpt_after_text', abiz_get_default_option( 'blog_excerpt_after_text' )); + return $blog_excerpt_after_text; +} +add_filter( 'excerpt_more', 'abiz_blog_excerpt_after_text' ); + + +// Blog Excerpt Button +if ( ! function_exists( 'abiz_blog_excerpt_button' ) ) : +function abiz_blog_excerpt_button() { + $enable_blog_excerpt_btn = get_theme_mod( 'enable_blog_excerpt_btn', abiz_get_default_option( 'enable_blog_excerpt_btn' )); + $blog_excerpt_btn_label = get_theme_mod( 'blog_excerpt_btn_label', abiz_get_default_option( 'blog_excerpt_btn_label' )); + if ( $enable_blog_excerpt_btn == '1' ): + ?> + + esc_html__('fab fa-facebook', 'abiz') , + 'link' => esc_html__('#', 'abiz') , + 'id' => 'customizer_repeater_header_social_001', + ) , + array( + 'icon_value' => esc_html__('fab fa-x-twitter', 'abiz') , + 'link' => esc_html__('#', 'abiz') , + 'id' => 'customizer_repeater_header_social_003', + ) , + array( + 'icon_value' => esc_html__('fab fa-instagram', 'abiz') , + 'link' => esc_html__('#', 'abiz') , + 'id' => 'customizer_repeater_header_social_004', + ) , + array( + 'icon_value' => esc_html__('fab fa-tiktok', 'abiz') , + 'link' => esc_html__('#', 'abiz') , + 'id' => 'customizer_repeater_header_social_005', + ) , + ))); +} + + + +/* + * + * Footer Top Default +*/ +function abiz_footer_top_default() +{ + return apply_filters('abiz_footer_top_default', json_encode(array( + array( + 'icon_value' => 'fas fa-envelope', + 'title' => esc_html__('Email Us 24/7', 'abiz') , + 'subtitle' => esc_html__('info@example.com', 'abiz') , + 'link' => 'mailto:info@example.com', + 'id' => 'customizer_repeater_footer_top_001' + ) , + array( + 'icon_value' => 'fas fa-question', + 'title' => esc_html__('Have Questions?', 'abiz') , + 'subtitle' => esc_html__('Contact Us', 'abiz') , + 'id' => 'customizer_repeater_footer_top_002', + ) , + array( + 'icon_value' => 'fas fa-phone', + 'title' => esc_html__('Call Us 24/7', 'abiz') , + 'subtitle' => esc_html__('+123 456 7890', 'abiz') , + 'link' => 'tell:+123 456 7890', + 'id' => 'customizer_repeater_footer_top_003', + ) , + array( + 'icon_value' => 'far fa-clock', + 'title' => esc_html__('Opening Hours', 'abiz') , + 'subtitle' => esc_html__('Mon-Sat: 10- 6 Pm', 'abiz') , + 'id' => 'customizer_repeater_footer_top_004', + ) , + ))); +} + +/******************************************************************************* + * Get Started Notice + *******************************************************************************/ + +add_action( 'wp_ajax_abiz_dismissed_notice_handler', 'abiz_ajax_notice_handler' ); + +/** + * AJAX handler to store the state of dismissible notices. + */ +function abiz_ajax_notice_handler() { + if ( isset( $_POST['type'] ) ) { + // Pick up the notice "type" - passed via jQuery (the "data-notice" attribute on the notice) + $type = sanitize_text_field( wp_unslash( $_POST['type'] ) ); + // Store it in the options table + update_option( 'dismissed-' . $type, TRUE ); + } +} + +function abiz_deprecated_hook_admin_notice() { + // Check if it's been dismissed... + if ( ! get_option('dismissed-get_started', FALSE ) ) { + // Added the class "notice-get-started-class" so jQuery pick it up and pass via AJAX, + // and added "data-notice" attribute in order to track multiple / different notices + // multiple dismissible notice states ?> +
    +
    +
    + <?php esc_attr_e( 'Theme Screenshot', 'abiz' ); ?> +
    +
    +

    + '. wp_get_theme()->get('Name'). '' ); + ?> +

    + +

    Daddy Plus plugin for taking full advantage of all the features this theme has to offer.', 'abiz')) ?>

    + + + '. wp_get_theme()->get('Name'). '' ); + ?> + + + ', + '', + '' + ); + ?> +
    +
    +
    + sanitize_key( wp_unslash( 'daddy-plus' ) ), + 'fields' => array( + 'sections' => false, + ), + ) ); + + $skin = new WP_Ajax_Upgrader_Skin(); + $upgrader = new Plugin_Upgrader( $skin ); + $result = $upgrader->install( $api->download_link ); + } + + // Activate plugin. + if ( current_user_can( 'activate_plugin' ) ) { + $result = activate_plugin( 'daddy-plus/daddy-plus.php' ); + } +} \ No newline at end of file diff --git a/wp-content/themes/abiz/core/custom-header.php b/wp-content/themes/abiz/core/custom-header.php new file mode 100644 index 0000000..b41934e --- /dev/null +++ b/wp-content/themes/abiz/core/custom-header.php @@ -0,0 +1,38 @@ + $header_image, + 'default-text-color' => '000', + 'width' => 2000, + 'height' => 200, + 'flex-height' => true, + 'wp-head-callback' => 'abiz_header_style', + ))); +} +add_action('after_setup_theme', 'abiz_custom_header_setup'); + +if (!function_exists('abiz_header_style')): + function abiz_header_style() + { + $header_text_color = get_header_textcolor(); + +?> + + default ); +} + +// Select sanitization callback example. +function abiz_sanitize_select( $input, $setting ) { + + // Ensure input is a slug. + $input = sanitize_key( $input ); + + // Get list of choices from the control associated with the setting. + $choices = $setting->manager->get_control( $setting->id )->choices; + + // If the input is a valid key, return it; otherwise, return the default. + return ( array_key_exists( $input, $choices ) ? $input : $setting->default ); +} + +// URL sanitization +function abiz_sanitize_url( $url ) { + return esc_url_raw( $url ); +} + + +// Sanitization Text +function abiz_sanitize_text( $text ) { + return wp_filter_post_kses( $text ); +} + +// Sanitize Sortable control. +function abiz_sanitize_sortable( $val, $setting ) { + if ( is_string( $val ) || is_numeric( $val ) ) { + return array( + esc_attr( $val ), + ); + } + $sanitized_value = array(); + foreach ( $val as $item ) { + if ( isset( $setting->manager->get_control( $setting->id )->choices[ $item ] ) ) { + $sanitized_value[] = esc_attr( $item ); + } + } + return $sanitized_value; +} \ No newline at end of file diff --git a/wp-content/themes/abiz/core/customizer/abiz-default-options.php b/wp-content/themes/abiz/core/customizer/abiz-default-options.php new file mode 100644 index 0000000..9aba43b --- /dev/null +++ b/wp-content/themes/abiz/core/customizer/abiz-default-options.php @@ -0,0 +1,72 @@ + '150', + 'site_ttl_font_size' => '30', + 'site_desc_font_size' => '14', + 'enable_top_hdr' => '1', + 'enable_top_hdr' => '1', + 'enable_hdr_info1' => '1', + 'hdr_info1_icon' => 'fas fa-envelope', + 'hdr_info1_title' => __('info@example.com', 'abiz'), + 'hdr_info1_link' => '#', + 'enable_hdr_info2' => '1', + 'hdr_info2_icon' => 'fas fa-phone', + 'hdr_info2_title' => __('+123 456 7890', 'abiz'), + 'hdr_info2_link' => '#', + 'enable_hdr_info3' => '1', + 'hdr_info3_icon' => 'fas fa-location-arrow', + 'hdr_info3_title' => __('California, TX 70240', 'abiz'), + 'hdr_info3_link' => '#', + 'enable_social_icon' => '1', + 'hdr_social_icons' => abiz_get_social_icon_default(), + 'enable_cart' => '1', + 'enable_nav_search' => '1', + 'enable_account' => '1', + 'enable_hdr_btn' => '1', + 'hdr_btn_label' => __('Get in Touch', 'abiz'), + 'hdr_btn_link' => '#', + 'enable_hdr_sticky' => '1', + 'enable_scroller' => '1', + 'top_scroller_icon' => 'fas fa-angle-up', + 'enable_page_header' => '1', + 'page_header_img_opacity' => '0.75', + 'page_header_bg_color' => '#e11c09', + 'blog_archive_ordering' => array( + 'meta', + 'title', + 'content', + ), + 'enable_blog_excerpt' => '1', + 'blog_excerpt_length' => '40', + 'blog_excerpt_after_text' => '…', + 'enable_blog_excerpt_btn' => '1', + 'blog_excerpt_btn_label' => __('Read More', 'abiz'), + 'enable_top_footer' => '1', + 'footer_top_info' => abiz_footer_top_default(), + 'footer_copyright' => wp_kses_post(sprintf( __( 'Copyright © {current_year}. Created by %s. Powered by %s.', 'abiz' ), 'Themes Daddy', 'WordPress' )), + 'abiz_body_font_size' => '16', + ); + + + + $abiz_default_options = apply_filters( 'abiz_modify_default_options', $abiz_default_options ); + + if ( isset( $abiz_default_options[$option] ) ) { + return $abiz_default_options[$option]; + } + + return false; + } +endif; +?> diff --git a/wp-content/themes/abiz/core/customizer/abiz-general.php b/wp-content/themes/abiz/core/customizer/abiz-general.php new file mode 100644 index 0000000..6a6bea9 --- /dev/null +++ b/wp-content/themes/abiz/core/customizer/abiz-general.php @@ -0,0 +1,961 @@ +selective_refresh) ? 'postMessage' : 'refresh'; + + /*========================================= + Site Identity + =========================================*/ + $wp_customize->add_setting('logo_size', array( + 'default' => abiz_get_default_option( 'logo_size' ), + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_html', + 'transport' => 'postMessage', + )); + + $wp_customize->add_control('logo_size', array( + 'label' => __('Logo Size', 'abiz') , + 'section' => 'title_tagline', + 'type' => 'number', + )); + + // Site Title// + $wp_customize->add_setting('site_ttl_font_size', array( + 'default' => abiz_get_default_option( 'site_ttl_font_size' ), + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_html', + 'transport' => 'postMessage', + )); + + $wp_customize->add_control('site_ttl_font_size', array( + 'label' => __('Site Title Font Size', 'abiz') , + 'section' => 'title_tagline', + 'type' => 'number', + )); + + // Site Description Font Size// + $wp_customize->add_setting('site_desc_font_size', array( + 'default' => abiz_get_default_option( 'site_desc_font_size' ), + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_html', + 'transport' => 'postMessage', + )); + + $wp_customize->add_control('site_desc_font_size', array( + 'label' => __('Site Description Font Size', 'abiz') , + 'section' => 'title_tagline', + 'type' => 'number', + )); + + + /*========================================= + Top Header Section + =========================================*/ + /*========================================= + Setting + =========================================*/ + $wp_customize->add_setting('top_hdr_set', array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_text', + )); + + $wp_customize->add_control('top_hdr_set', array( + 'type' => 'hidden', + 'label' => __('Setting', 'abiz') , + 'section' => 'top_header', + 'priority' => 1, + )); + + // Enable / Disable + $wp_customize->add_setting('enable_top_hdr', array( + 'default' => abiz_get_default_option( 'enable_top_hdr' ), + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_checkbox', + )); + + $wp_customize->add_control(new Abiz_Customize_Toggle_Control($wp_customize, 'enable_top_hdr', array( + 'label' => __('Enable / Disable ?', 'abiz') , + 'section' => 'top_header', + 'priority' => 2, + + ))); + + /*========================================= + Info 1 + =========================================*/ + $wp_customize->add_setting('hdr_info1_head', array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_text', + )); + + $wp_customize->add_control('hdr_info1_head', array( + 'type' => 'hidden', + 'label' => __('Info 1', 'abiz') , + 'section' => 'top_header', + 'priority' => 2, + )); + + // hide/show + $wp_customize->add_setting('enable_hdr_info1', array( + 'default' => abiz_get_default_option( 'enable_hdr_info1' ), + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_checkbox', + )); + + $wp_customize->add_control(new Abiz_Customize_Toggle_Control($wp_customize, 'enable_hdr_info1', array( + 'label' => __('Enable / Disable ?', 'abiz') , + 'section' => 'top_header', + 'priority' => 2, + + ))); + + // icon // + $wp_customize->add_setting('hdr_info1_icon', array( + 'default' => abiz_get_default_option( 'hdr_info1_icon' ), + 'sanitize_callback' => 'sanitize_text_field', + 'capability' => 'edit_theme_options', + )); + + $wp_customize->add_control('hdr_info1_icon', array( + 'label' => __('Icon', 'abiz') , + 'section' => 'top_header', + 'type' => 'text', + 'priority' => 3, + )); + + // title // + $wp_customize->add_setting('hdr_info1_title', array( + 'default' => abiz_get_default_option( 'hdr_info1_title' ), + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_html', + 'transport' => $selective_refresh, + )); + + $wp_customize->add_control('hdr_info1_title', array( + 'label' => __('Title', 'abiz') , + 'section' => 'top_header', + 'type' => 'text', + 'priority' => 3, + )); + + // Link // + $wp_customize->add_setting('hdr_info1_link', array( + 'default' => abiz_get_default_option( 'hdr_info1_link' ), + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_url', + )); + + $wp_customize->add_control('hdr_info1_link', array( + 'label' => __('Link', 'abiz') , + 'section' => 'top_header', + 'type' => 'text', + 'priority' => 3, + )); + + /*========================================= + Info 2 + =========================================*/ + $wp_customize->add_setting('hdr_info2_head', array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_text', + )); + + $wp_customize->add_control('hdr_info2_head', array( + 'type' => 'hidden', + 'label' => __('Info 2', 'abiz') , + 'section' => 'top_header', + 'priority' => 4, + )); + + // hide/show + $wp_customize->add_setting('enable_hdr_info2', array( + 'default' => abiz_get_default_option( 'enable_hdr_info2' ), + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_checkbox', + )); + + $wp_customize->add_control(new Abiz_Customize_Toggle_Control($wp_customize, 'enable_hdr_info2', array( + 'label' => __('Enable / Disable ?', 'abiz') , + 'section' => 'top_header', + 'priority' => 5, + + ))); + + // icon // + $wp_customize->add_setting('hdr_info2_icon', array( + 'default' => abiz_get_default_option( 'hdr_info2_icon' ), + 'sanitize_callback' => 'sanitize_text_field', + 'capability' => 'edit_theme_options', + )); + + $wp_customize->add_control('hdr_info2_icon', array( + 'label' => __('Icon', 'abiz') , + 'section' => 'top_header', + 'type' => 'text', + 'priority' => 6, + )); + + // title // + $wp_customize->add_setting('hdr_info2_title', array( + 'default' => abiz_get_default_option( 'hdr_info2_title' ), + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_html', + 'transport' => $selective_refresh, + )); + + $wp_customize->add_control('hdr_info2_title', array( + 'label' => __('Title', 'abiz') , + 'section' => 'top_header', + 'type' => 'text', + 'priority' => 7, + )); + + // Link // + $wp_customize->add_setting('hdr_info2_link', array( + 'default' => abiz_get_default_option( 'hdr_info2_link' ), + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_url', + )); + + $wp_customize->add_control('hdr_info2_link', array( + 'label' => __('Link', 'abiz') , + 'section' => 'top_header', + 'type' => 'text', + 'priority' => 8, + )); + + /*========================================= + Info 3 + =========================================*/ + $wp_customize->add_setting('hdr_info3_head', array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_text', + )); + + $wp_customize->add_control('hdr_info3_head', array( + 'type' => 'hidden', + 'label' => __('Info 3', 'abiz') , + 'section' => 'top_header', + 'priority' => 9, + )); + + // hide/show + $wp_customize->add_setting('enable_hdr_info3', array( + 'default' => abiz_get_default_option( 'enable_hdr_info3' ), + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_checkbox', + )); + + $wp_customize->add_control(new Abiz_Customize_Toggle_Control($wp_customize, 'enable_hdr_info3', array( + 'label' => __('Enable / Disable ?', 'abiz') , + 'section' => 'top_header', + 'priority' => 10, + + ))); + + // icon // + $wp_customize->add_setting('hdr_info3_icon', array( + 'default' => abiz_get_default_option( 'hdr_info3_icon' ), + 'sanitize_callback' => 'sanitize_text_field', + 'capability' => 'edit_theme_options', + )); + + $wp_customize->add_control('hdr_info3_icon', array( + 'label' => __('Icon', 'abiz') , + 'section' => 'top_header', + 'type' => 'text', + 'priority' => 11, + )); + + + // title // + $wp_customize->add_setting('hdr_info3_title', array( + 'default' => abiz_get_default_option( 'hdr_info3_title' ), + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_html', + 'transport' => $selective_refresh, + )); + + $wp_customize->add_control('hdr_info3_title', array( + 'label' => __('Title', 'abiz') , + 'section' => 'top_header', + 'type' => 'text', + 'priority' => 12, + )); + + // Link // + $wp_customize->add_setting('hdr_info3_link', array( + 'default' => abiz_get_default_option( 'hdr_info3_link' ), + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_url', + )); + + $wp_customize->add_control('hdr_info3_link', array( + 'label' => __('Link', 'abiz') , + 'section' => 'top_header', + 'type' => 'text', + 'priority' => 13, + )); + + /*========================================= + Social + =========================================*/ + $wp_customize->add_setting('hdr_social_head', array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_text', + )); + + $wp_customize->add_control('hdr_social_head', array( + 'type' => 'hidden', + 'label' => __('Social Icon', 'abiz') , + 'section' => 'top_header', + 'priority' => 15, + )); + + $wp_customize->add_setting('enable_social_icon', array( + 'default' => abiz_get_default_option( 'enable_social_icon' ), + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_checkbox', + )); + + $wp_customize->add_control(new Abiz_Customize_Toggle_Control($wp_customize, 'enable_social_icon', array( + 'label' => __('Enable / Disable ?', 'abiz') , + 'section' => 'top_header', + 'priority' => 16, + + ))); + + /** + * Customizer Repeater + */ + $wp_customize->add_setting('hdr_social_icons', array( + 'default' => abiz_get_default_option( 'hdr_social_icons' ), + 'sanitize_callback' => 'abiz_repeater_sanitize', + )); + + $wp_customize->add_control(new ABIZ_Repeater($wp_customize, 'hdr_social_icons', array( + 'label' => esc_html__('Social Icons', 'abiz') , + 'priority' => 17, + 'section' => 'top_header', + 'customizer_repeater_icon_control' => true, + 'customizer_repeater_link_control' => true, + ))); + + // Upgrade + if (class_exists('Daddy_Plus_Customize_Upgrade_Control')) + { + $wp_customize->add_setting('abiz_social_icon_upgrade',array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'sanitize_text_field', + )); + + $wp_customize->add_control(new Daddy_Plus_Customize_Upgrade_Control($wp_customize, + 'abiz_social_icon_upgrade', + array( + 'label' => __( 'Social Icons', 'abiz' ), + 'section' => 'top_header', + 'priority' => 17, + ) + ) + ); + } + /*========================================= + Header Navigation + =========================================*/ + // Cart + $wp_customize->add_setting('hdr_nav_cart', array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_text', + )); + + $wp_customize->add_control('hdr_nav_cart', array( + 'type' => 'hidden', + 'label' => __('Cart', 'abiz') , + 'section' => 'header_nav', + 'priority' => 2, + )); + + // hide/show + $wp_customize->add_setting('enable_cart', array( + 'default' => abiz_get_default_option( 'enable_cart' ), + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_checkbox', + )); + + $wp_customize->add_control(new Abiz_Customize_Toggle_Control($wp_customize, 'enable_cart', array( + 'label' => __('Enable / Disable ?', 'abiz') , + 'section' => 'header_nav', + 'priority' => 2, + + ))); + + // Account + $wp_customize->add_setting('hdr_nav_account', array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_text', + )); + + $wp_customize->add_control('hdr_nav_account', array( + 'type' => 'hidden', + 'label' => __('Account', 'abiz') , + 'section' => 'header_nav', + 'priority' => 3, + )); + + // hide/show + $wp_customize->add_setting('enable_account', array( + 'default' => abiz_get_default_option( 'enable_account' ), + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_checkbox', + )); + + $wp_customize->add_control(new Abiz_Customize_Toggle_Control($wp_customize, 'enable_account', array( + 'label' => __('Enable / Disable ?', 'abiz') , + 'section' => 'header_nav', + 'priority' => 3, + + ))); + + // Search + $wp_customize->add_setting('hdr_nav_search_head', array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_text', + )); + + $wp_customize->add_control('hdr_nav_search_head', array( + 'type' => 'hidden', + 'label' => __('Search', 'abiz') , + 'section' => 'header_nav', + 'priority' => 3, + )); + + // hide/show + $wp_customize->add_setting('enable_nav_search', array( + 'default' => abiz_get_default_option( 'enable_nav_search' ), + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_checkbox', + )); + + $wp_customize->add_control(new Abiz_Customize_Toggle_Control($wp_customize, 'enable_nav_search', array( + 'label' => __('Enable / Disable ?', 'abiz') , + 'section' => 'header_nav', + 'priority' => 3, + + ))); + + // Header Button + $wp_customize->add_setting('abv_hdr_btn_head', array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_text', + )); + + $wp_customize->add_control('abv_hdr_btn_head', array( + 'type' => 'hidden', + 'label' => __('Button', 'abiz') , + 'section' => 'header_nav', + 'priority' => 18, + )); + + $wp_customize->add_setting('enable_hdr_btn', array( + 'default' => abiz_get_default_option( 'enable_hdr_btn' ), + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_checkbox', + )); + + $wp_customize->add_control(new Abiz_Customize_Toggle_Control($wp_customize, 'enable_hdr_btn', array( + 'label' => __('Enable / Disable ?', 'abiz') , + 'section' => 'header_nav', + 'priority' => 19, + + ))); + + // Button Label // + $wp_customize->add_setting('hdr_btn_label', array( + 'default' => abiz_get_default_option( 'hdr_btn_label' ), + 'sanitize_callback' => 'abiz_sanitize_html', + 'transport' => $selective_refresh, + 'capability' => 'edit_theme_options', + )); + + $wp_customize->add_control('hdr_btn_label', array( + 'label' => __('Label', 'abiz') , + 'section' => 'header_nav', + 'type' => 'text', + 'priority' => 21, + )); + + // Button URL // + $wp_customize->add_setting('hdr_btn_link', array( + 'default' => abiz_get_default_option( 'hdr_btn_link' ), + 'sanitize_callback' => 'abiz_sanitize_url', + 'capability' => 'edit_theme_options', + )); + + $wp_customize->add_control('hdr_btn_link', array( + 'label' => __('Link', 'abiz') , + 'section' => 'header_nav', + 'type' => 'text', + 'priority' => 22, + )); + + $wp_customize->add_setting('hdr_btn_target', array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_checkbox', + )); + + $wp_customize->add_control(new Abiz_Customize_Toggle_Control($wp_customize, 'hdr_btn_target', array( + 'label' => __('Open in New Tab ?', 'abiz') , + 'section' => 'header_nav', + 'priority' => 23, + + ))); + + /*========================================= + Sticky Header + =========================================*/ + // Heading + $wp_customize->add_setting('sticky_head', array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_text' + )); + + $wp_customize->add_control('sticky_head', array( + 'type' => 'hidden', + 'label' => __('Sticky Header', 'abiz') , + 'section' => 'header_nav', + 'priority' => 23, + )); + $wp_customize->add_setting('enable_hdr_sticky', array( + 'default' => abiz_get_default_option( 'enable_hdr_sticky' ), + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_checkbox', + )); + + $wp_customize->add_control(new Abiz_Customize_Toggle_Control($wp_customize, 'enable_hdr_sticky', array( + 'label' => __('Enable / Disable ?', 'abiz') , + 'section' => 'header_nav', + 'priority' => 24, + + ))); + + /*========================================= + Scroller + =========================================*/ + // Head + $wp_customize->add_setting('top_scroller_settings', array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_text' + )); + + $wp_customize->add_control('top_scroller_settings', array( + 'type' => 'hidden', + 'label' => __('Top Scroller Setting', 'abiz') , + 'section' => 'top_scroller' + )); + + $wp_customize->add_setting('enable_scroller', array( + 'default' => abiz_get_default_option( 'enable_scroller' ), + 'sanitize_callback' => 'abiz_sanitize_checkbox', + 'capability' => 'edit_theme_options', + )); + + $wp_customize->add_control(new Abiz_Customize_Toggle_Control($wp_customize, 'enable_scroller', array( + 'label' => __('Enable / Disable ?', 'abiz') , + 'section' => 'top_scroller' + + ))); + + // Scroller icon // + $wp_customize->add_setting('top_scroller_icon', array( + 'default' => abiz_get_default_option( 'top_scroller_icon' ), + 'sanitize_callback' => 'sanitize_text_field', + 'capability' => 'edit_theme_options', + )); + + $wp_customize->add_control('top_scroller_icon', array( + 'label' => __('Scroller Icon', 'abiz') , + 'section' => 'top_scroller', + 'type' => 'text' + )); + + /*========================================= + Page Header + =========================================*/ + // Heading + $wp_customize->add_setting('header_image_set', array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_text', + )); + + $wp_customize->add_control('header_image_set', array( + 'type' => 'hidden', + 'label' => __('Page Header', 'abiz') , + 'section' => 'header_image', + 'priority' => 1, + )); + + // Enable / Disable + $wp_customize->add_setting('enable_page_header', array( + 'default' => abiz_get_default_option( 'enable_page_header' ), + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_checkbox', + )); + + $wp_customize->add_control(new Abiz_Customize_Toggle_Control($wp_customize, 'enable_page_header', array( + 'label' => __('Enable / Disable ?', 'abiz') , + 'section' => 'header_image', + 'priority' => 2, + + ))); + + // Image Opacity // + $wp_customize->add_setting('page_header_img_opacity', array( + 'default' => abiz_get_default_option( 'page_header_img_opacity' ), + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_html', + 'priority' => 11, + )); + $wp_customize->add_control('page_header_img_opacity', array( + 'label' => __('Opacity', 'abiz') , + 'section' => 'header_image', + 'type' => 'number', + )); + + $wp_customize->add_setting('page_header_bg_color', array( + 'default' => abiz_get_default_option( 'page_header_bg_color' ), + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'sanitize_hex_color', + 'priority' => 12, + )); + + $wp_customize->add_control(new WP_Customize_Color_Control($wp_customize, 'page_header_bg_color', array( + 'label' => __('Overlay Color', 'abiz') , + 'section' => 'header_image', + ))); + + /*========================================= + Blog + =========================================*/ + // Head // + $wp_customize->add_setting('blog_general_head', array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_text', + 'priority' => 1, + )); + + $wp_customize->add_control('blog_general_head', array( + 'type' => 'hidden', + 'label' => __('Blog/Archive/Single', 'abiz') , + 'section' => 'blog_general', + )); + + $wp_customize->add_setting('blog_archive_ordering', array( + 'default' => abiz_get_default_option( 'blog_archive_ordering' ), + 'sanitize_callback' => 'abiz_sanitize_sortable', + 'priority' => 2, + )); + + $wp_customize->add_control(new Abiz_Control_Sortable($wp_customize, 'blog_archive_ordering', array( + 'label' => __('Drag & Drop post items to re-arrange the order and also hide and show items as per the need by clicking on the eye icon.', 'abiz') , + 'section' => 'blog_general', + 'choices' => array( + 'title' => __('Title', 'abiz') , + 'meta' => __('Meta', 'abiz') , + 'content' => __('Content', 'abiz') , + ) , + ))); + + // Enable / Disable + $wp_customize->add_setting('enable_blog_excerpt', array( + 'default' => abiz_get_default_option( 'enable_blog_excerpt' ), + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_checkbox', + 'priority' => 3, + )); + + $wp_customize->add_control(new Abiz_Customize_Toggle_Control($wp_customize, 'enable_blog_excerpt', array( + 'label' => __('Enable / Disable Blog Excerpt ?', 'abiz') , + 'section' => 'blog_general', + ))); + + // Excerpt Length + $wp_customize->add_setting('blog_excerpt_length', array( + 'default' => abiz_get_default_option( 'blog_excerpt_length' ), + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_html', + 'priority' => 3, + )); + + $wp_customize->add_control('blog_excerpt_length', array( + 'label' => __('Blog Excerpt Length', 'abiz') , + 'section' => 'blog_general', + 'type' => 'number', + )); + + // Excerpt Text // + $wp_customize->add_setting('blog_excerpt_after_text', array( + 'default' => abiz_get_default_option( 'blog_excerpt_after_text' ), + 'sanitize_callback' => 'abiz_sanitize_html', + 'capability' => 'edit_theme_options', + 'priority' => 3, + )); + + $wp_customize->add_control('blog_excerpt_after_text', array( + 'label' => __('Blog Excerpt Text', 'abiz') , + 'section' => 'blog_general', + 'type' => 'text' + )); + + // Enable / Disable + $wp_customize->add_setting('enable_blog_excerpt_btn', array( + 'default' => abiz_get_default_option( 'enable_blog_excerpt_btn' ), + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_checkbox', + 'priority' => 3, + )); + + $wp_customize->add_control(new Abiz_Customize_Toggle_Control($wp_customize, 'enable_blog_excerpt_btn', array( + 'label' => __('Enable / Disable Blog Excerpt Button ?', 'abiz') , + 'section' => 'blog_general', + ))); + + // Button Label // + $wp_customize->add_setting('blog_excerpt_btn_label', array( + 'default' => abiz_get_default_option( 'blog_excerpt_btn_label' ), + 'sanitize_callback' => 'abiz_sanitize_html', + 'capability' => 'edit_theme_options', + 'priority' => 5, + )); + + $wp_customize->add_control('blog_excerpt_btn_label', array( + 'label' => __('Blog Excerpt Button Label', 'abiz') , + 'section' => 'blog_general', + 'type' => 'text' + )); + + + + /*========================================= + Footer + =========================================*/ + /*========================================= + Footer Top + =========================================*/ + // Head // + $wp_customize->add_setting('footer_top_heading', array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_text', + 'priority' => 1, + )); + + $wp_customize->add_control('footer_top_heading', array( + 'type' => 'hidden', + 'label' => __('Footer Top', 'abiz') , + 'section' => 'footer_section', + )); + + // Enable / Disable + $wp_customize->add_setting('enable_top_footer', array( + 'default' => abiz_get_default_option( 'enable_top_footer' ), + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_checkbox', + 'priority' => 2, + )); + + $wp_customize->add_control(new Abiz_Customize_Toggle_Control($wp_customize, 'enable_top_footer', array( + 'label' => __('Enable / Disable ?', 'abiz') , + 'section' => 'footer_section', + + ))); + + // Footer Top Info + $wp_customize->add_setting('footer_top_info', array( + 'sanitize_callback' => 'abiz_repeater_sanitize', + 'transport' => $selective_refresh, + 'priority' => 8, + 'default' => abiz_get_default_option( 'footer_top_info' ), + )); + + $wp_customize->add_control(new Abiz_Repeater($wp_customize, 'footer_top_info', array( + 'label' => esc_html__('Contact', 'abiz') , + 'section' => 'footer_section', + 'add_field_label' => esc_html__('Add New Contact', 'abiz') , + 'item_name' => esc_html__('Contact', 'abiz') , + 'customizer_repeater_icon_control' => true, + 'customizer_repeater_title_control' => true, + 'customizer_repeater_subtitle_control' => true, + 'customizer_repeater_link_control' => true, + ))); + + // Upgrade + if (class_exists('Daddy_Plus_Customize_Upgrade_Control')) + { + $wp_customize->add_setting('abiz_footer_top_info_upgrade',array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'sanitize_text_field', + 'priority' => 8 + )); + + $wp_customize->add_control(new Daddy_Plus_Customize_Upgrade_Control($wp_customize, + 'abiz_footer_top_info_upgrade', + array( + 'label' => __( 'Info', 'abiz' ), + 'section' => 'footer_section' + ) + ) + ); + } + + /*========================================= + Footer Copyright + =========================================*/ + // Head + $wp_customize->add_setting('footer_copy_settings', array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_text', + 'priority' => 12, + )); + + $wp_customize->add_control('footer_copy_settings', array( + 'type' => 'hidden', + 'label' => __('Footer Copyright', 'abiz') , + 'section' => 'footer_section', + )); + + // Footer Copyright + $wp_customize->add_setting('footer_copyright', array( + 'default' => abiz_get_default_option( 'footer_copyright' ), + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'wp_kses_post', + 'priority' => 16, + )); + + $wp_customize->add_control('footer_copyright', array( + 'label' => __('Copyright', 'abiz') , + 'section' => 'footer_section', + 'type' => 'textarea', + 'transport' => $selective_refresh, + )); + + /*========================================= + Abiz Typography + =========================================*/ + // Head + $wp_customize->add_setting('abiz_body_font_family_settings', array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_text' + )); + + $wp_customize->add_control('abiz_body_font_family_settings', array( + 'type' => 'hidden', + 'label' => __('Body Typography Setting', 'abiz') , + 'section' => 'abiz_typography', + 'priority' => 1, + )); + + // Body Font Size // + $wp_customize->add_setting('abiz_body_font_size', array( + 'default' => abiz_get_default_option( 'abiz_body_font_size' ), + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_html', + 'transport' => 'postMessage', + )); + + $wp_customize->add_control('abiz_body_font_size', array( + 'label' => __('Font Size', 'abiz') , + 'section' => 'abiz_typography', + 'type' => 'number', + 'priority' => 1, + )); + + // Body Font weight // + $wp_customize->add_setting('abiz_body_font_weight', array( + 'capability' => 'edit_theme_options', + 'default' => 'inherit', + 'transport' => 'postMessage', + 'sanitize_callback' => 'abiz_sanitize_select', + )); + + $wp_customize->add_control(new WP_Customize_Control($wp_customize, 'abiz_body_font_weight', array( + 'label' => __('Weight', 'abiz') , + 'section' => 'abiz_typography', + 'type' => 'select', + 'priority' => 5, + 'choices' => array( + 'inherit' => __('Default', 'abiz') , + '100' => __('Thin: 100', 'abiz') , + '200' => __('Light: 200', 'abiz') , + '300' => __('Book: 300', 'abiz') , + '400' => __('Normal: 400', 'abiz') , + '500' => __('Medium: 500', 'abiz') , + '600' => __('Semibold: 600', 'abiz') , + '700' => __('Bold: 700', 'abiz') , + '800' => __('Extra Bold: 800', 'abiz') , + '900' => __('Black: 900', 'abiz') , + ) , + ))); + + // Body Font style // + $wp_customize->add_setting('abiz_body_font_style', array( + 'capability' => 'edit_theme_options', + 'default' => 'inherit', + 'transport' => 'postMessage', + 'sanitize_callback' => 'abiz_sanitize_select', + )); + + $wp_customize->add_control(new WP_Customize_Control($wp_customize, 'abiz_body_font_style', array( + 'label' => __('Font Style', 'abiz') , + 'section' => 'abiz_typography', + 'type' => 'select', + 'priority' => 6, + 'choices' => array( + 'inherit' => __('Inherit', 'abiz') , + 'normal' => __('Normal', 'abiz') , + 'italic' => __('Italic', 'abiz') , + 'oblique' => __('oblique', 'abiz') , + ) , + ))); + // Body Text Transform // + $wp_customize->add_setting('abiz_body_text_transform', array( + 'capability' => 'edit_theme_options', + 'default' => 'inherit', + 'transport' => 'postMessage', + 'sanitize_callback' => 'abiz_sanitize_select', + )); + + $wp_customize->add_control(new WP_Customize_Control($wp_customize, 'abiz_body_text_transform', array( + 'label' => __('Transform', 'abiz') , + 'section' => 'abiz_typography', + 'type' => 'select', + 'priority' => 7, + 'choices' => array( + 'inherit' => __('Default', 'abiz') , + 'uppercase' => __('Uppercase', 'abiz') , + 'lowercase' => __('Lowercase', 'abiz') , + 'capitalize' => __('Capitalize', 'abiz') , + ) , + ))); + + // Body Text Decoration // + $wp_customize->add_setting('abiz_body_txt_decoration', array( + 'capability' => 'edit_theme_options', + 'default' => 'inherit', + 'transport' => 'postMessage', + 'sanitize_callback' => 'abiz_sanitize_select', + )); + + $wp_customize->add_control(new WP_Customize_Control($wp_customize, 'abiz_body_txt_decoration', array( + 'label' => __('Text Decoration', 'abiz') , + 'section' => 'abiz_typography', + 'type' => 'select', + 'priority' => 8, + 'choices' => array( + 'inherit' => __('Inherit', 'abiz') , + 'underline' => __('Underline', 'abiz') , + 'overline' => __('Overline', 'abiz') , + 'line-through' => __('Line Through', 'abiz') , + 'none' => __('None', 'abiz') , + ) , + ))); +} +add_action('customize_register', 'abiz_general_customize'); \ No newline at end of file diff --git a/wp-content/themes/abiz/core/customizer/abiz-panels-and-sections.php b/wp-content/themes/abiz/core/customizer/abiz-panels-and-sections.php new file mode 100644 index 0000000..9cb64d7 --- /dev/null +++ b/wp-content/themes/abiz/core/customizer/abiz-panels-and-sections.php @@ -0,0 +1,71 @@ +add_section('abiz_upgrade_premium',array( + 'priority' => 1, + 'title' => __('Upgrade to Pro','abiz'), + )); + + // Section: Top Bar + $wp_customize->add_section('top_header',array( + 'priority' => 1, + 'title' => __('Top Bar Setting','abiz'), + 'panel' => 'abiz_general', + )); + + // Section: Menu Bar + $wp_customize->add_section('header_nav',array( + 'priority' => 1, + 'title' => __('Menu Bar Setting','abiz'), + 'panel' => 'abiz_general', + )); + + // Panel: General + $wp_customize->add_panel('abiz_general', array( + 'priority' => 31, + 'title' => esc_html__( 'General Options', 'abiz' ), + )); + + // Section: Page Header + $wp_customize->add_section('header_image', array( + 'title' => esc_html__( 'Page Header Setting', 'abiz' ), + 'priority' => 1, + 'panel' => 'abiz_general', + )); + + // Section: Top Scroller + $wp_customize->add_section('top_scroller', array( + 'title' => esc_html__( 'Top Scroller Setting', 'abiz' ), + 'priority' => 4, + 'panel' => 'abiz_general', + )); + + // Section: Blog + $wp_customize->add_section( 'blog_general',array( + 'priority' => 34, + 'capability' => 'edit_theme_options', + 'title' => __('Blog Setting', 'abiz'), + 'panel' => 'abiz_general', + )); + + // Section: Footer + $wp_customize->add_section('footer_section',array( + 'priority' => 34, + 'capability' => 'edit_theme_options', + 'title' => __('Footer Setting', 'abiz'), + 'panel' => 'abiz_general', + )); + + // Section: Typography + $wp_customize->add_section('abiz_typography',array( + 'priority' => 1, + 'title' => __('Body Typography Setting','abiz'), + 'panel' => 'abiz_general', + )); +} +add_action( 'customize_register', 'abiz_panel_section_register' ); \ No newline at end of file diff --git a/wp-content/themes/abiz/core/customizer/abiz-selective-refresh-and-partial.php b/wp-content/themes/abiz/core/customizer/abiz-selective-refresh-and-partial.php new file mode 100644 index 0000000..d2b779a --- /dev/null +++ b/wp-content/themes/abiz/core/customizer/abiz-selective-refresh-and-partial.php @@ -0,0 +1,70 @@ +selective_refresh->add_partial( 'hdr_info1_title', array( + 'selector' => '.above-header .info1 h6', + 'settings' => 'hdr_info1_title', + 'render_callback' => 'abiz_hdr_info1_title_render_callback', + ) ); + + // hdr_info2_title + $wp_customize->selective_refresh->add_partial( 'hdr_info2_title', array( + 'selector' => '.main-header .info2 h6', + 'settings' => 'hdr_info2_title', + 'render_callback' => 'abiz_hdr_info2_title_render_callback', + ) ); + + // hdr_info3_title + $wp_customize->selective_refresh->add_partial( 'hdr_info3_title', array( + 'selector' => '.main-header .info3 h6', + 'settings' => 'hdr_info3_title', + 'render_callback' => 'abiz_hdr_info3_title_render_callback', + ) ); + + // hdr_btn_label + $wp_customize->selective_refresh->add_partial( 'hdr_btn_label', array( + 'selector' => '.main-navigation .button-area a', + 'settings' => 'hdr_btn_label', + 'render_callback' => 'abiz_hdr_btn_label_render_callback', + ) ); + + // footer_top_info + $wp_customize->selective_refresh->add_partial( 'footer_top_info', array( + 'selector' => '.footer-top .row' + ) ); + + // footer_copyright + $wp_customize->selective_refresh->add_partial( 'footer_copyright', array( + 'selector' => '.footer-copyright .copyright-text', + 'settings' => 'footer_copyright', + 'render_callback' => 'abiz_footer_copyright_render_callback', + ) ); +} +add_action( 'customize_register', 'abiz_selective_refresh' ); + + + +// hdr_info1_title +function abiz_hdr_info1_title_render_callback() { + return get_theme_mod( 'hdr_info1_title' ); +} + +// hdr_info2_title +function abiz_hdr_info2_title_render_callback() { + return get_theme_mod( 'hdr_info2_title' ); +} + +// hdr_info3_title +function abiz_hdr_info3_title_render_callback() { + return get_theme_mod( 'hdr_info3_title' ); +} + +// hdr_btn_label +function abiz_hdr_btn_label_render_callback() { + return get_theme_mod( 'hdr_btn_label' ); +} + +// footer_copyright +function abiz_footer_copyright_render_callback() { + return get_theme_mod( 'footer_copyright' ); +} \ No newline at end of file diff --git a/wp-content/themes/abiz/core/customizer/assets/css/admin.css b/wp-content/themes/abiz/core/customizer/assets/css/admin.css new file mode 100644 index 0000000..129b7a6 --- /dev/null +++ b/wp-content/themes/abiz/core/customizer/assets/css/admin.css @@ -0,0 +1,42 @@ +.abiz-getting-started-notice { + padding: 20px 10px; + display: -webkit-flex; + display: -moz-flex; + display: -ms-flex; + display: -o-flex; + display: flex; + -ms-align-items: center; + align-items: center; +} + +.abiz-theme-screenshot img { + width: 100%; + max-width: 200px; + display: inline-block; + vertical-align: top; + border: 2px solid #ddd; + border-radius: 4px; +} + +.abiz-theme-notice-content { + width: 70%; + display: block; + vertical-align: top; + padding: 0 20px; +} + +h2.abiz-notice-h2 { + margin: 0 0 10px; + font-weight: 400; + line-height: 1.3; +} + +.abiz-push-down { + padding-top: 15px; + display: inline-block; + padding-left: 8px; +} + +.abiz-button-padding.updating-message::before { + margin-top: 12px; +} \ No newline at end of file diff --git a/wp-content/themes/abiz/core/customizer/assets/css/controls.css b/wp-content/themes/abiz/core/customizer/assets/css/controls.css new file mode 100644 index 0000000..826c747 --- /dev/null +++ b/wp-content/themes/abiz/core/customizer/assets/css/controls.css @@ -0,0 +1,209 @@ +.customize-control-abiz-sortable ul.ui-sortable li { + padding: 5px 10px; + border: 1px solid #333; + background: #fff; +} + +.customize-control-abiz-sortable ul.ui-sortable li .dashicons.dashicons-menu { + float: right; +} + +.customize-control-abiz-sortable ul.ui-sortable li .dashicons.visibility { + margin-right: 10px; +} + +.customize-control-abiz-sortable ul.ui-sortable li.invisible { + color: #aaa; + border: 1px dashed #aaa; +} + +.customize-control-abiz-sortable ul.ui-sortable li.invisible .dashicons.visibility { + color: #aaa; +} + +.customize-control-hidden { + display: block; + padding: 13px 12px; + color:#fff; + font-weight: 600; + letter-spacing: 1px; + line-height: 1; + margin: 0 -12px; + margin-bottom: 12px; + border-width: 1px 0; + border-style: solid; + border-color: #dddddd; + background-color: #13a1dc; +} + +.customize-control-hidden label { + margin-bottom: 0; + line-height: 1; + font-size: 15px; + cursor: default; +} + + +/* Control: Switch. */ +.customize-control-abiz-toggle { + position: relative; +} + +.customize-control-abiz-toggle label { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; +} + +.customize-control-abiz-toggle label .customize-control-title { + width: calc(100% - 55px); +} + +.customize-control-abiz-toggle label .description { + -webkit-box-ordinal-group: 100; + -ms-flex-order: 99; + order: 99; +} + +.customize-control-abiz-toggle .switch { + border: 1px solid #b4b9be; + display: inline-block; + width: 35px; + height: 12px; + border-radius: 8px; + background: #b4b9be; + vertical-align: middle; + position: relative; + top: 4px; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -webkit-transition: background 350ms ease; + transition: background 350ms ease; +} + +.customize-control-abiz-toggle .switch::after { + content: ""; + display: block; + width: 20px; + height: 20px; + border-radius: 50%; + position: absolute; + top: 50%; + left: -3px; + -webkit-transition: all 350ms cubic-bezier(0, 0.95, 0.38, 0.98), background 150ms ease; + transition: all 350ms cubic-bezier(0, 0.95, 0.38, 0.98), background 150ms ease; + background: #999; + border: 1px solid rgba(0, 0, 0, 0.1); + -webkit-transform: translate3d(0, -50%, 0); + transform: translate3d(0, -50%, 0); +} + +.customize-control-abiz-toggle .switch::before { + content: ""; + display: block; + width: 20px; + height: 20px; + border-radius: 50%; + position: absolute; + top: 50%; + left: -3px; + -webkit-transition: all 350ms cubic-bezier(0, 0.95, 0.38, 0.98), background 150ms ease; + transition: all 350ms cubic-bezier(0, 0.95, 0.38, 0.98), background 150ms ease; + background: rgba(0, 0, 0, 0.2); + -webkit-transform: translate3d(0, -50%, 0) scale(0); + transform: translate3d(0, -50%, 0) scale(0); +} + +.customize-control-abiz-toggle .switch:active::before { + -webkit-transform: translate3d(0, -50%, 0) scale(3); + transform: translate3d(0, -50%, 0) scale(3); +} + +.customize-control-abiz-toggle input:checked + .switch::before { + background: rgba(0, 115, 170, 0.075); + -webkit-transform: translate3d(100%, -50%, 0) scale(1); + transform: translate3d(100%, -50%, 0) scale(1); +} + +.customize-control-abiz-toggle input:checked + .switch::after { + background: #13a1dc; + -webkit-transform: translate3d(100%, -50%, 0); + transform: translate3d(100%, -50%, 0); +} + +.customize-control-abiz-toggle input:checked + .switch:active::before { + background: rgba(0, 115, 170, 0.075); + -webkit-transform: translate3d(100%, -50%, 0) scale(3); + transform: translate3d(100%, -50%, 0) scale(3); +} + +.customize-control-abiz-toggle input[type=checkbox] { + display: none; +} + +/* Upsale */ +.premium-info ul { + margin: 0; + padding: 0; +} + +.premium-info ul li { + margin-bottom: 10px; +} + +.premium-info ul li a, .up-to-pro { + font-family: 'Noto Sans', sans-serif; + font-weight: bold; + padding: 12px 10px; + display: block; + text-decoration: none; + color: #ffffff; + border-radius: 3px; + font-size: 14px; + letter-spacing: 1px; + overflow: hidden; + -webkit-transition: .3s; + transition: .3s; + background: #009efa; /* fallback for old browsers */ + background: -webkit-linear-gradient(to right, #233fe7, #009efa); /* Chrome 10-25, Safari 5.1-6 */ + background: linear-gradient(to right, #233fe7, #009efa);/* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */ + z-index: 2; +} +.premium-info ul li a:hover, .premium-info ul li a:focus, +.up-to-pro:hover, .up-to-pro:focus { + transform: translateY(-3px); + color: #fff; + box-shadow: 0 0.5rem 1.875rem rgba(0, 0, 0, 0.15); +} + +.up-to-pro { + padding: 9px 58px; + text-transform: capitalize; +} +.premium-info ul li a i{ + font-size: 15px; + margin-top: 1px; + margin-right: 7px; +} +.premium-info .upgrade-to-pro, .up-to-pro{ + background: #ff5d00; +} +li#accordion-section-abiz_upgrade_premium .accordion-section-title:after { + content: "\f174" !important; + color: #ffffff !important; +} +li#accordion-section-abiz_upgrade_premium .accordion-section-title, +li#accordion-section-abiz_upgrade_premium .accordion-section-title:hover, +li#accordion-section-abiz_upgrade_premium .accordion-section-title button:hover, +li#accordion-section-abiz_upgrade_premium .accordion-section-title button:focus { + color: #ffffff !important; + border-left: none; + background: #009efa; /* fallback for old browsers */ + background: -webkit-linear-gradient(to right, #233fe7, #009efa) !important; /* Chrome 10-25, Safari 5.1-6 */ + background: linear-gradient(to right, #233fe7, #009efa) !important;/* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */ +} \ No newline at end of file diff --git a/wp-content/themes/abiz/core/customizer/assets/js/admin-script.js b/wp-content/themes/abiz/core/customizer/assets/js/admin-script.js new file mode 100644 index 0000000..9764db2 --- /dev/null +++ b/wp-content/themes/abiz/core/customizer/assets/js/admin-script.js @@ -0,0 +1,26 @@ +( function( $ ){ + $( document ).ready( function(){ + $( '.abiz-btn-get-started' ).on( 'click', function( e ) { + e.preventDefault(); + $( this ).html( 'Processing.. Please wait' ).addClass( 'updating-message' ); + $.post( abiz_ajax_object.ajax_url, { 'action' : 'install_act_plugin' }, function( response ){ + location.href = 'customize.php'; + } ); + } ); + } ); + + $( document ).on( 'click', '.notice-get-started-class .notice-dismiss', function () { + // Read the "data-notice" information to track which notice + // is being dismissed and send it via AJAX + var type = $( this ).closest( '.notice-get-started-class' ).data( 'notice' ); + // Make an AJAX call + $.ajax( ajaxurl, + { + type: 'POST', + data: { + action: 'abiz_dismissed_notice_handler', + type: type, + } + } ); + } ); +}( jQuery ) ) diff --git a/wp-content/themes/abiz/core/customizer/assets/js/controls.js b/wp-content/themes/abiz/core/customizer/assets/js/controls.js new file mode 100644 index 0000000..3557d25 --- /dev/null +++ b/wp-content/themes/abiz/core/customizer/assets/js/controls.js @@ -0,0 +1,86 @@ +/** + * sortable + */ +wp.customize.controlConstructor['abiz-sortable'] = wp.customize.Control.extend({ + + ready: function() { + + 'use strict'; + + var control = this; + + // Set the sortable container. + control.sortableContainer = control.container.find( 'ul.sortable' ).first(); + + // Init sortable. + control.sortableContainer.sortable({ + + // Update value when we stop sorting. + stop: function() { + control.updateValue(); + } + }).disableSelection().find( 'li' ).each( function() { + + // Enable/disable options when we click on the eye of Thundera. + jQuery( this ).find( 'i.visibility' ).click( function() { + jQuery( this ).toggleClass( 'dashicons-visibility-faint' ).parents( 'li:eq(0)' ).toggleClass( 'invisible' ); + }); + }).click( function() { + + // Update value on click. + control.updateValue(); + }); + }, + + /** + * Updates the sorting list + */ + updateValue: function() { + + 'use strict'; + + var control = this, + newValue = []; + + this.sortableContainer.find( 'li' ).each( function() { + if ( ! jQuery( this ).is( '.invisible' ) ) { + newValue.push( jQuery( this ).data( 'value' ) ); + } + }); + + control.setting.set( newValue ); + } +}); + +/** + * Control: Toggle. + */ +wp.customize.controlConstructor['abiz-toggle'] = wp.customize.Control.extend( { + // When we're finished loading continue processing + ready: function () { + 'use strict'; + + var control = this; + + // Init the control. + if ( + !_.isUndefined( window.abizControlLoader ) && + _.isFunction( abizControlLoader ) + ) { + abizControlLoader( control ); + } else { + control.initAbizControl(); + } + }, + + initAbizControl: function () { + var control = this, + checkboxValue = control.setting._value; + + // Save the value + this.container.on( 'change', 'input', function () { + checkboxValue = jQuery( this ).is( ':checked' ) ? true : false; + control.setting.set( checkboxValue ); + } ); + } +} ); \ No newline at end of file diff --git a/wp-content/themes/abiz/core/customizer/assets/js/customizer-section.js b/wp-content/themes/abiz/core/customizer/assets/js/customizer-section.js new file mode 100644 index 0000000..dfbfb85 --- /dev/null +++ b/wp-content/themes/abiz/core/customizer/assets/js/customizer-section.js @@ -0,0 +1,38 @@ +function abizshomesettingsscroll(section_id) { + var scroll_section_id = "slider-section"; + + var $contents = jQuery('#customize-preview iframe').contents(); + + switch (section_id) { + case 'accordion-section-info_section_set': + scroll_section_id = "info-section"; + break; + + case 'accordion-section-service_section_set': + scroll_section_id = "service-section"; + break; + + case 'accordion-section-marquee_section_set': + scroll_section_id = "abiz-marquee-section"; + break; + + case 'accordion-section-features2_section_set': + scroll_section_id = "abiz-features-section-2"; + break; + + case 'accordion-section-blog_section_set': + scroll_section_id = "abiz-blog-section"; + break; + } + + if ($contents.find('#' + scroll_section_id).length > 0) { + $contents.find("html, body").animate({ + scrollTop: $contents.find("#" + scroll_section_id).offset().top + }, 1000); + } +} + +jQuery('body').on('click', '#sub-accordion-panel-abiz_frontpage_sections .control-subsection .accordion-section-title', function(event) { + var section_id = jQuery(this).parent('.control-subsection').attr('id'); + abizshomesettingsscroll(section_id); +}); \ No newline at end of file diff --git a/wp-content/themes/abiz/core/customizer/assets/js/customizer.js b/wp-content/themes/abiz/core/customizer/assets/js/customizer.js new file mode 100644 index 0000000..180707f --- /dev/null +++ b/wp-content/themes/abiz/core/customizer/assets/js/customizer.js @@ -0,0 +1,259 @@ +/** + * Contains handlers to make Theme Customizer preview reload changes asynchronously. + */ +(function($) { + // Site title and description. + wp.customize('blogname', function(value) { + value.bind(function(to) { + $('.site-title').text(to); + }); + }); + wp.customize('blogdescription', function(value) { + value.bind(function(to) { + $('.site-description').text(to); + }); + }); + + // Header text color. + wp.customize('header_textcolor', function(value) { + value.bind(function(to) { + if ('blank' === to) { + $('.site-title, .site-description').css({ + 'clip': 'rect(1px, 1px, 1px, 1px)', + 'position': 'absolute' + }); + } else { + $('.site-title, .site-description').css({ + 'clip': 'auto', + 'position': 'relative' + }); + $('.site-title, .site-description').css({ + 'color': to + }); + } + }); + }); + + $(document).ready(function($) { + $('input[data-input-type]').on('input change', function() { + var val = $(this).val(); + $(this).prev('.cs-range-value').html(val); + $(this).val(val); + }); + }) + + + // logo_size + wp.customize('logo_size', function(value) { + value.bind(function(logo_size) { + jQuery('.logo img, .mobile-logo img').css('max-width', logo_size + 'px'); + }); + }); + + // site_ttl_font_size + wp.customize('site_ttl_font_size', function(value) { + value.bind(function(site_ttl_font_size) { + jQuery('h4.site-title').css('font-size', site_ttl_font_size + 'px'); + }); + }); + + // site_desc_font_size + wp.customize('site_desc_font_size', function(value) { + value.bind(function(site_desc_font_size) { + jQuery('.site-description').css('font-size', site_desc_font_size + 'px'); + }); + }); + + + //hdr_info1_title + wp.customize( + 'hdr_info1_title', + function(value) { + value.bind( + function(newval) { + $('.above-header .info1 h6').text(newval); + } + ); + } + ); + + //hdr_info2_title + wp.customize( + 'hdr_info2_title', + function(value) { + value.bind( + function(newval) { + $('.main-header .info2 h6').text(newval); + } + ); + } + ); + + //hdr_info3_title + wp.customize( + 'hdr_info3_title', + function(value) { + value.bind( + function(newval) { + $('.main-header .info3 h6').text(newval); + } + ); + } + ); + + //hdr_btn_label + wp.customize( + 'hdr_btn_label', + function(value) { + value.bind( + function(newval) { + $('.main-navigation .button-area a').text(newval); + } + ); + } + ); + + //service_ttl + wp.customize( + 'service_ttl', + function(value) { + value.bind( + function(newval) { + $('.abiz-service-main .theme-main-heading .title').text(newval); + } + ); + } + ); + + //service_subttl + wp.customize( + 'service_subttl', + function(value) { + value.bind( + function(newval) { + $('.abiz-service-main .theme-main-heading h2').text(newval); + } + ); + } + ); + + //service_desc + wp.customize( + 'service_desc', + function(value) { + value.bind( + function(newval) { + $('.abiz-service-main .theme-main-heading p').text(newval); + } + ); + } + ); + + //features2_ttl + wp.customize( + 'features2_ttl', + function(value) { + value.bind( + function(newval) { + $('.abiz-features-section-2 .theme-main-heading .title').text(newval); + } + ); + } + ); + + //features2_subttl + wp.customize( + 'features2_subttl', + function(value) { + value.bind( + function(newval) { + $('.abiz-features-section-2 .theme-main-heading h2').text(newval); + } + ); + } + ); + + //features2_desc + wp.customize( + 'features2_desc', + function(value) { + value.bind( + function(newval) { + $('.abiz-features-section-2 .theme-main-heading p').text(newval); + } + ); + } + ); + + //blog_ttl + wp.customize( + 'blog_ttl', + function(value) { + value.bind( + function(newval) { + $('.abiz-blog-main .theme-main-heading .title').text(newval); + } + ); + } + ); + + //blog_subttl + wp.customize( + 'blog_subttl', + function(value) { + value.bind( + function(newval) { + $('.abiz-blog-main .theme-main-heading h2').text(newval); + } + ); + } + ); + + //blog_desc + wp.customize( + 'blog_desc', + function(value) { + value.bind( + function(newval) { + $('.abiz-blog-main .theme-main-heading p').text(newval); + } + ); + } + ); + + // font size + wp.customize('abiz_body_font_size', function(value) { + value.bind(function(abiz_body_font_size) { + jQuery('body').css('font-size', abiz_body_font_size + 'px'); + }); + }); + + // font weight + wp.customize('abiz_body_font_weight', function(value) { + value.bind(function(font_weight) { + jQuery('body').css('font-weight', font_weight); + }); + }); + + // font style + wp.customize('abiz_body_font_style', function(value) { + value.bind(function(font_style) { + jQuery('body').css('font-style', font_style); + }); + }); + + // Text Decoration + wp.customize('abiz_body_txt_decoration', function(value) { + value.bind(function(decoration) { + jQuery('body, a').css('text-decoration', decoration); + }); + }); + + // text tranform + wp.customize('abiz_body_text_transform', function(value) { + value.bind(function(text_tranform) { + jQuery('body').css('text-transform', text_tranform); + }); + }); + +})(jQuery); \ No newline at end of file diff --git a/wp-content/themes/abiz/core/customizer/custom-controls/customize-base-control.php b/wp-content/themes/abiz/core/customizer/custom-controls/customize-base-control.php new file mode 100644 index 0000000..accda77 --- /dev/null +++ b/wp-content/themes/abiz/core/customizer/custom-controls/customize-base-control.php @@ -0,0 +1,95 @@ +json['default'] = $this->setting->default; + if ( isset( $this->default ) ) { + $this->json['default'] = $this->default; + } + + $this->json['id'] = $this->id; + $this->json['link'] = $this->get_link(); + $this->json['value'] = maybe_unserialize( $this->value() ); + $this->json['choices'] = $this->choices; + $this->json['inputAttrs'] = ''; + + foreach ( $this->input_attrs as $attr => $value ) { + $this->json['inputAttrs'] .= $attr . '="' . esc_attr( $value ) . '" '; + } + $this->json['inputAttrs'] = maybe_serialize( $this->input_attrs() ); + + } + + /** + * Render content is still called, so be sure to override it with an empty function in your subclass as well. + */ + protected function render_content() { + } + + /** + * Renders the Underscore template for this control. + * + * @see WP_Customize_Control::print_template() + * @access protected + * @return void + */ + protected function content_template() { + } + + /** + * Returns an array of translation strings. + * + * @access protected + * @return array + */ + protected function l10n() { + return array(); + } + +} diff --git a/wp-content/themes/abiz/core/customizer/custom-controls/customize-category-control.php b/wp-content/themes/abiz/core/customizer/custom-controls/customize-category-control.php new file mode 100644 index 0000000..1328181 --- /dev/null +++ b/wp-content/themes/abiz/core/customizer/custom-controls/customize-category-control.php @@ -0,0 +1,42 @@ +cats = get_categories($options); + + parent::__construct( $manager, $id, $args ); + } + + /** + * Render the content of the category dropdown + * + * @return HTML + */ + public function render_content() + { + if(!empty($this->cats)) + { + ?> + + \ No newline at end of file diff --git a/wp-content/themes/abiz/core/customizer/custom-controls/customize-control-sortable.php b/wp-content/themes/abiz/core/customizer/custom-controls/customize-control-sortable.php new file mode 100644 index 0000000..197e029 --- /dev/null +++ b/wp-content/themes/abiz/core/customizer/custom-controls/customize-control-sortable.php @@ -0,0 +1,98 @@ +json['default'] = $this->setting->default; + if ( isset( $this->default ) ) { + $this->json['default'] = $this->default; + } + + $this->json['id'] = $this->id; + $this->json['link'] = $this->get_link(); + $this->json['value'] = maybe_unserialize( $this->value() ); + $this->json['choices'] = $this->choices; + $this->json['inputAttrs'] = ''; + + foreach ( $this->input_attrs as $attr => $value ) { + $this->json['inputAttrs'] .= $attr . '="' . esc_attr( $value ) . '" '; + } + $this->json['inputAttrs'] = maybe_serialize( $this->input_attrs() ); + + } + + /** + * An Underscore (JS) template for this control's content (but not its container). + * + * Class variables for this control class are available in the `data` JS object; + * export custom variables by overriding {@see WP_Customize_Control::to_json()}. + * + * @see WP_Customize_Control::print_template() + * + * @access protected + */ + protected function content_template() { + ?> + + + + + + + +
    +
      + + +
    • + +
    • + +
    • + +
    • +
    +
    + add_setting( + 'premium_info_buttons', + array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'abiz_sanitize_text', + ) + ); + + $wp_customize->add_control( new Abiz_WP_Button_Customize_Control( $wp_customize, 'premium_info_buttons', array( + 'section' => 'abiz_upgrade_premium', + )) +); +} +add_action( 'customize_register', 'abiz_upgrade_pro_options' ); \ No newline at end of file diff --git a/wp-content/themes/abiz/core/customizer/customizer-notice/abiz-customizer-notify-section.php b/wp-content/themes/abiz/core/customizer/customizer-notice/abiz-customizer-notify-section.php new file mode 100644 index 0000000..ac3bd76 --- /dev/null +++ b/wp-content/themes/abiz/core/customizer/customizer-notice/abiz-customizer-notify-section.php @@ -0,0 +1,298 @@ + is_plugin_active( $slug . '/' . $slug . '.php' ), + 'needs' => $needs, + ); + } + + return array( + 'status' => false, + 'needs' => 'install', + ); + } + + + public function create_action_link( $state, $slug ) { + switch ( $state ) { + case 'install': + return wp_nonce_url( + add_query_arg( + array( + 'action' => 'install-plugin', + 'plugin' => $slug, + ), + network_admin_url( 'update.php' ) + ), + 'install-plugin_' . $slug + ); + break; + case 'deactivate': + return add_query_arg( + array( + 'action' => 'deactivate', + 'plugin' => rawurlencode( $slug . '/' . $slug . '.php' ), + 'plugin_status' => 'all', + 'paged' => '1', + '_wpnonce' => wp_create_nonce( 'deactivate-plugin_' . $slug . '/' . $slug . '.php' ), + ), network_admin_url( 'plugins.php' ) + ); + break; + case 'activate': + return add_query_arg( + array( + 'action' => 'activate', + 'plugin' => rawurlencode( $slug . '/' . $slug . '.php' ), + 'plugin_status' => 'all', + 'paged' => '1', + '_wpnonce' => wp_create_nonce( 'activate-plugin_' . $slug . '/' . $slug . '.php' ), + ), network_admin_url( 'plugins.php' ) + ); + break; + }// End switch(). + } + + + public function call_plugin_api( $slug ) { + include_once( ABSPATH . 'wp-admin/includes/plugin-install.php' ); + $call_api = get_transient( 'abiz_cust_notify_plugin_info_' . $slug ); + if ( false === $call_api ) { + $call_api = plugins_api( + 'plugin_information', array( + 'slug' => $slug, + 'fields' => array( + 'downloaded' => false, + 'rating' => false, + 'description' => false, + 'short_description' => true, + 'donate_link' => false, + 'tags' => false, + 'sections' => false, + 'homepage' => false, + 'added' => false, + 'last_updated' => false, + 'compatibility' => false, + 'tested' => false, + 'requires' => false, + 'downloadlink' => false, + 'icons' => false, + ), + ) + ); + set_transient( 'abiz_cust_notify_plugin_info_' . $slug, $call_api, 30 * MINUTE_IN_SECONDS ); + } + + return $call_api; + } + + + public function json() { + $json = parent::json(); + global $abiz_customizer_notify_recommended_actions; + global $abiz_customizer_notify_recommended_plugins; + + global $install_button_label; + global $activate_button_label; + global $abiz_deactivate_button_label; + + $formatted_array = array(); + $abiz_customizer_notify_show_recommended_actions = get_option( 'abiz_customizer_notify_show' ); + foreach ( $abiz_customizer_notify_recommended_actions as $key => $abiz_lite_customizer_notify_recommended_action ) { + if ( $abiz_customizer_notify_show_recommended_actions[ $abiz_lite_customizer_notify_recommended_action['id'] ] === false ) { + continue; + } + if ( $abiz_lite_customizer_notify_recommended_action['check'] ) { + continue; + } + + $abiz_lite_customizer_notify_recommended_action['index'] = $key + 1; + + if ( isset( $abiz_lite_customizer_notify_recommended_action['plugin_slug'] ) ) { + $active = $this->check_active( $abiz_customizer_notify_recommended_action['plugin_slug'] ); + $abiz_lite_customizer_notify_recommended_action['url'] = $this->create_action_link( $active['needs'], $abiz_lite_customizer_notify_recommended_action['plugin_slug'] ); + if ( $active['needs'] !== 'install' && $active['status'] ) { + $abiz_lite_customizer_notify_recommended_action['class'] = 'active'; + } else { + $abiz_lite_customizer_notify_recommended_action['class'] = ''; + } + + switch ( $active['needs'] ) { + case 'install': + $abiz_lite_customizer_notify_recommended_action['button_class'] = 'install-now button'; + $abiz_lite_customizer_notify_recommended_action['button_label'] = $install_button_label; + break; + case 'activate': + $abiz_lite_customizer_notify_recommended_action['button_class'] = 'activate-now button button-primary'; + $abiz_lite_customizer_notify_recommended_action['button_label'] = $activate_button_label; + break; + case 'deactivate': + $abiz_lite_customizer_notify_recommended_action['button_class'] = 'deactivate-now button'; + $abiz_lite_customizer_notify_recommended_action['button_label'] = $abiz_deactivate_button_label; + break; + } + } + $formatted_array[] = $abiz_lite_customizer_notify_recommended_action; + }// End foreach(). + + $customize_plugins = array(); + + $abiz_lite_customizer_notify_show_recommended_plugins = get_option( 'abiz_customizer_notify_show_recommended_plugins' ); + + foreach ( $abiz_customizer_notify_recommended_plugins as $slug => $abiz_plugin_opt ) { + + if ( ! $abiz_plugin_opt['recommended'] ) { + continue; + } + + if ( isset( $abiz_lite_customizer_notify_show_recommended_plugins[ $slug ] ) && $abiz_lite_customizer_notify_show_recommended_plugins[ $slug ] ) { + continue; + } + + $active = $this->check_active( $slug ); + + if ( ! empty( $active['needs'] ) && ( $active['needs'] == 'deactivate' ) ) { + continue; + } + + $ti_customizer_notify_recommended_plugin['url'] = $this->create_action_link( $active['needs'], $slug ); + if ( $active['needs'] !== 'install' && $active['status'] ) { + $ti_customizer_notify_recommended_plugin['class'] = 'active'; + } else { + $ti_customizer_notify_recommended_plugin['class'] = ''; + } + + switch ( $active['needs'] ) { + case 'install': + $ti_customizer_notify_recommended_plugin['button_class'] = 'install-now button'; + $ti_customizer_notify_recommended_plugin['button_label'] = $install_button_label; + break; + case 'activate': + $ti_customizer_notify_recommended_plugin['button_class'] = 'activate-now button button-primary'; + $ti_customizer_notify_recommended_plugin['button_label'] = $activate_button_label; + break; + case 'deactivate': + $ti_customizer_notify_recommended_plugin['button_class'] = 'deactivate-now button'; + $ti_customizer_notify_recommended_plugin['button_label'] = $abiz_deactivate_button_label; + break; + } + $abiz_info = $this->call_plugin_api( $slug ); + $ti_customizer_notify_recommended_plugin['id'] = $slug; + $ti_customizer_notify_recommended_plugin['plugin_slug'] = $slug; + + if ( ! empty( $abiz_plugin_opt['description'] ) ) { + $ti_customizer_notify_recommended_plugin['description'] = $abiz_plugin_opt['description']; + } else { + $ti_customizer_notify_recommended_plugin['description'] = $abiz_info->short_description; + } + + $ti_customizer_notify_recommended_plugin['title'] = $abiz_info->name; + + $customize_plugins[] = $ti_customizer_notify_recommended_plugin; + + }// End foreach(). + + $json['recommended_actions'] = $formatted_array; + $json['recommended_plugins'] = $customize_plugins; + $json['total_actions'] = count( $abiz_customizer_notify_recommended_actions ); + $json['plugin_text'] = $this->plugin_text; + $json['dismiss_button'] = $this->dismiss_button; + return $json; + + } + + protected function render_template() { + ?> + <# if( data.recommended_actions.length > 0 || data.recommended_plugins.length > 0 ){ #> +
  • + +

    + + <# if( data.recommended_actions.length > 0 ){ #> + {{ data.title }} + <# }else{ #> + <# if( data.recommended_plugins.length > 0 ){ #> + {{ data.plugin_text }} + <# }#> + <# } #> + + <# if( data.recommended_actions.length > 0 ){ #> + + {{ data.recommended_actions[0].index }} + {{ data.total_actions }} + + <# } #> +

    +
    + <# if( data.recommended_actions.length > 0 ){ #> + <# for (action in data.recommended_actions) { #> +
    + <# if( !data.recommended_actions[action].check ){ #> +
    +

    {{ data.recommended_actions[action].title }}

    + +
    {{{ data.recommended_actions[action].description }}}
    + <# if( data.recommended_actions[action].plugin_slug ){ #> + + <# } #> + <# if( data.recommended_actions[action].help ){ #> +
    {{{ data.recommended_actions[action].help }}}
    + <# } #> +
    + <# } #> +
    + <# } #> + <# } #> + + <# if( data.recommended_plugins.length > 0 ){ #> + <# for (action in data.recommended_plugins) { #> + + <# } #> + <# } #> +
    +
  • + <# } #> + config = $config; + self::$instance->setup_config(); + self::$instance->setup_actions(); + } + } + + } + + + public function setup_config() { + + global $abiz_customizer_notify_recommended_plugins; + global $abiz_customizer_notify_recommended_actions; + + global $install_button_label; + global $activate_button_label; + global $abiz_deactivate_button_label; + + $this->recommended_actions = isset( $this->config['recommended_actions'] ) ? $this->config['recommended_actions'] : array(); + $this->recommended_plugins = isset( $this->config['recommended_plugins'] ) ? $this->config['recommended_plugins'] : array(); + + $this->recommended_actions_title = isset( $this->config['recommended_actions_title'] ) ? $this->config['recommended_actions_title'] : ''; + $this->recommended_plugins_title = isset( $this->config['recommended_plugins_title'] ) ? $this->config['recommended_plugins_title'] : ''; + $this->dismiss_button = isset( $this->config['dismiss_button'] ) ? $this->config['dismiss_button'] : ''; + + $abiz_customizer_notify_recommended_plugins = array(); + $abiz_customizer_notify_recommended_actions = array(); + + if ( isset( $this->recommended_plugins ) ) { + $abiz_customizer_notify_recommended_plugins = $this->recommended_plugins; + } + + if ( isset( $this->recommended_actions ) ) { + $abiz_customizer_notify_recommended_actions = $this->recommended_actions; + } + + $install_button_label = isset( $this->config['install_button_label'] ) ? $this->config['install_button_label'] : ''; + $activate_button_label = isset( $this->config['activate_button_label'] ) ? $this->config['activate_button_label'] : ''; + $abiz_deactivate_button_label = isset( $this->config['abiz_deactivate_button_label'] ) ? $this->config['abiz_deactivate_button_label'] : ''; + + } + + + public function setup_actions() { + + // Register the section. + add_action( 'customize_register', array( $this, 'abiz_plugin_notification_customize_register' ) ); + + // Enqueue scripts and styles. + add_action( 'customize_controls_enqueue_scripts', array( $this, 'abiz_customizer_notify_scripts_for_customizer' ), 0 ); + + /* ajax callback for dismissable recommended actions */ + add_action( 'wp_ajax_abiz_customizer_notify_dismiss_action', array( $this, 'abiz_customizer_notify_dismiss_recommended_action_callback' ) ); + + add_action( 'wp_ajax_abiz_customizer_notify_dismiss_recommended_plugins', array( $this, 'abiz_customizer_notify_dismiss_recommended_plugins_callback' ) ); + + } + + + public function abiz_customizer_notify_scripts_for_customizer() { + + wp_enqueue_style( 'abiz-customizer-notify-css', get_template_directory_uri() . '/core/customizer/customizer-notice/css/abiz-customizer-notify.css', array() ); + + wp_enqueue_style( 'plugin-install' ); + wp_enqueue_script( 'plugin-install' ); + wp_add_inline_script( 'plugin-install', 'var pagenow = "customizer";' ); + + wp_enqueue_script( 'updates' ); + + wp_enqueue_script( 'abiz-customizer-notify-js', get_template_directory_uri() . '/core/customizer/customizer-notice/js/abiz-customizer-notify.js', array( 'customize-controls' ) ); + wp_localize_script( + 'abiz-customizer-notify-js', + 'abizCustomizercompanionObject', + array( + 'ajaxurl' => admin_url( 'admin-ajax.php' ), + 'template_directory' => get_template_directory_uri(), + 'base_path' => admin_url(), + 'activating_string' => __( 'Activating', 'abiz' ), + ) + ); + + } + + + public function abiz_plugin_notification_customize_register( $wp_customize ) { + + require_once get_template_directory() . '/core/customizer/customizer-notice/abiz-customizer-notify-section.php'; + + $wp_customize->register_section_type( 'abiz_Customizer_Notify_Section' ); + + $wp_customize->add_section( + new abiz_Customizer_Notify_Section( + $wp_customize, + 'abiz-customizer-notify-section', + array( + 'title' => $this->recommended_actions_title, + 'plugin_text' => $this->recommended_plugins_title, + 'dismiss_button' => $this->dismiss_button, + 'priority' => 0, + ) + ) + ); + + } + + + public function abiz_customizer_notify_dismiss_recommended_action_callback() { + + global $abiz_customizer_notify_recommended_actions; + + $action_id = ( isset( $_GET['id'] ) ) ? $_GET['id'] : 0; + + echo esc_html($action_id); + + if ( ! empty( $action_id ) ) { + + if ( get_option( 'abiz_customizer_notify_show' ) ) { + + $abiz_customizer_notify_show_recommended_actions = get_option( 'abiz_customizer_notify_show' ); + switch ( $_GET['todo'] ) { + case 'add': + $abiz_customizer_notify_show_recommended_actions[ $action_id ] = true; + break; + case 'dismiss': + $abiz_customizer_notify_show_recommended_actions[ $action_id ] = false; + break; + } + update_option( 'abiz_customizer_notify_show', $abiz_customizer_notify_show_recommended_actions ); + + } else { + $abiz_customizer_notify_show_recommended_actions = array(); + if ( ! empty( $abiz_customizer_notify_recommended_actions ) ) { + foreach ( $abiz_customizer_notify_recommended_actions as $abiz_lite_customizer_notify_recommended_action ) { + if ( $abiz_lite_customizer_notify_recommended_action['id'] == $action_id ) { + $abiz_customizer_notify_show_recommended_actions[ $abiz_lite_customizer_notify_recommended_action['id'] ] = false; + } else { + $abiz_customizer_notify_show_recommended_actions[ $abiz_lite_customizer_notify_recommended_action['id'] ] = true; + } + } + update_option( 'abiz_customizer_notify_show', $abiz_customizer_notify_show_recommended_actions ); + } + } + } + die(); + } + + + public function abiz_customizer_notify_dismiss_recommended_plugins_callback() { + + $action_id = ( isset( $_GET['id'] ) ) ? $_GET['id'] : 0; + + echo esc_html($action_id); + + if ( ! empty( $action_id ) ) { + + $abiz_lite_customizer_notify_show_recommended_plugins = get_option( 'abiz_customizer_notify_show_recommended_plugins' ); + + switch ( $_GET['todo'] ) { + case 'add': + $abiz_lite_customizer_notify_show_recommended_plugins[ $action_id ] = false; + break; + case 'dismiss': + $abiz_lite_customizer_notify_show_recommended_plugins[ $action_id ] = true; + break; + } + update_option( 'abiz_customizer_notify_show_recommended_plugins', $abiz_lite_customizer_notify_show_recommended_plugins ); + } + die(); + } + +} diff --git a/wp-content/themes/abiz/core/customizer/customizer-notice/css/abiz-customizer-notify.css b/wp-content/themes/abiz/core/customizer/customizer-notice/css/abiz-customizer-notify.css new file mode 100644 index 0000000..012e755 --- /dev/null +++ b/wp-content/themes/abiz/core/customizer/customizer-notice/css/abiz-customizer-notify.css @@ -0,0 +1,139 @@ +.abiz-customizer-plugin-notify-actions-count { + display: inline-block; + z-index: 26; + margin: 1px 0 0 2px; + padding: 0 6px; + border-radius: 10px; + color: #fff; + background-color: #d54e21; + font-size: 9px; + font-weight: 600; + line-height: 17px; + vertical-align: top; +} + +div.abiz-theme-recomended-actions_container { + margin-bottom: 2em; + padding: 0 10px; +} + +.abiz-theme-recomended-actions_container p.succes { + margin: 1em 0; +} + +.abiz-epsilon-recommeded-actions p.title { + margin-bottom: 0; + color: #555d66; + font-size: 14px; + font-weight: 600; +} + +.abiz-epsilon-recommeded-actions div.description { + font-size: 12px; +} + +.abiz-epsilon-recommeded-actions .custom-action { + margin-top: 1em; + padding-top: 1em; + border-top: 1px solid #fafafa; +} + +.abiz-epsilon-recommeded-actions .custom-action p { + margin-top: 0; +} + +.abiz-theme-recomended-actions_container .abiz-recommeded-actions-container:not(:first-child) { + overflow: hidden; + height: 0; + opacity: 0; +} + +.abiz-theme-recomended-actions_container .abiz-recommeded-actions-container:first-child { + height: auto; + opacity: 1; +} + +.abiz-theme-recomended-actions_container .abiz-recommeded-actions-container { + -webkit-transition: opacity 2s; + /* Safari */ + transition: opacity 2s; +} + +.abiz-theme-recomended-actions_container .hide { + display: none; +} + +.abiz-customizer-plugin-notify-actions-count.complete { + background-color: #79ba49; +} + +.abiz-theme-recomended-actions_container #demo_content .button { + display: block; + margin-bottom: 1em; + text-align: center; +} + +.abiz-theme-recomended-actions_container .succes a { + display: inline-block; + width: 100%; + text-align: center; +} + +.abiz-theme-recomended-actions_container .succes a.social { + width: 49%; + margin-bottom: 1em; + padding-top: 4px; + line-height: 20px; +} + +.abiz-theme-recomended-actions_container .succes a.social span, +.abiz-theme-recomended-actions_container .succes span { + margin-right: 5px; +} + +.abiz-theme-recomended-actions_container .succes { + padding-top: 4px; + line-height: 20px; +} + +.abiz-customizer-notify-dismiss-button-recommended-plugin, +.abiz-customizer-notify-dismiss-recommended-action { + position: absolute; + top: 10px; + right: 10px; + border-radius: 50%; + color: #d54e21; + text-decoration: none; + cursor: pointer; +} + +.abiz-epsilon-recommeded-actions { + position: relative; +} + +.abiz-customizer-notify-dismiss-recommended-action, +.abiz-epsilon-recommeded-actions .abiz-customizer-notify-dismiss-button-recommended-plugin { + top: 0; + right: 0; +} + +.abiz-epsilon-recommeded-actions #temp_load { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + + -webkit-align-items: center; + align-items: center; + -webkit-box-align: center; + -ms-flex-align: center; +} + +.abiz-epsilon-recommeded-actions #temp_load img { + margin: 0 auto; +} diff --git a/wp-content/themes/abiz/core/customizer/customizer-notice/js/abiz-customizer-notify.js b/wp-content/themes/abiz/core/customizer/customizer-notice/js/abiz-customizer-notify.js new file mode 100644 index 0000000..0bb2ddc --- /dev/null +++ b/wp-content/themes/abiz/core/customizer/customizer-notice/js/abiz-customizer-notify.js @@ -0,0 +1,180 @@ +/** + * Customizer notification system + */ +(function (api) { + + api.sectionConstructor['abiz-customizer-notify-section'] = api.Section.extend( + { + + // No events for this type of section. + attachEvents: function () { + }, + + // Always make the section active. + isContextuallyActive: function () { + return true; + } + } + ); + +})( wp.customize ); + +jQuery( document ).ready( + function () { + + jQuery( '.abiz-customizer-notify-dismiss-recommended-action' ).click( + function () { + + var id = jQuery( this ).attr( 'id' ), + action = jQuery( this ).attr( 'data-action' ); + jQuery.ajax( + { + type: 'GET', + data: {action: 'abiz_customizer_notify_dismiss_action', id: id, todo: action}, + dataType: 'html', + url: abizCustomizercompanionObject.ajaxurl, + beforeSend: function () { + jQuery( '#' + id ).parent().append( '
    ' ); + }, + success: function (data) { + var container = jQuery( '#' + data ).parent().parent(); + var index = container.next().data( 'index' ); + var recommended_sction = jQuery( '#accordion-section-ti_customizer_notify_recomended_actions' ); + var actions_count = recommended_sction.find( '.abiz-customizer-plugin-notify-actions-count' ); + var section_title = recommended_sction.find( '.section-title' ); + jQuery( '.abiz-customizer-plugin-notify-actions-count .current-index' ).text( index ); + container.slideToggle().remove(); + if (jQuery( '.abiz-theme-recomended-actions_container > .epsilon-recommended-actions' ).length === 0) { + + actions_count.remove(); + + if (jQuery( '.abiz-theme-recomended-actions_container > .epsilon-recommended-plugins' ).length === 0) { + jQuery( '.control-section-ti-customizer-notify-recomended-actions' ).remove(); + } else { + section_title.text( section_title.data( 'plugin_text' ) ); + } + + } + }, + error: function (jqXHR, textStatus, errorThrown) { + console.log( jqXHR + ' :: ' + textStatus + ' :: ' + errorThrown ); + } + } + ); + } + ); + + jQuery( '.abiz-customizer-notify-dismiss-button-recommended-plugin' ).click( + function () { + var id = jQuery( this ).attr( 'id' ), + action = jQuery( this ).attr( 'data-action' ); + jQuery.ajax( + { + type: 'GET', + data: {action: 'abiz_customizer_notify_dismiss_recommended_plugins', id: id, todo: action}, + dataType: 'html', + url: abizCustomizercompanionObject.ajaxurl, + beforeSend: function () { + jQuery( '#' + id ).parent().append( '
    ' ); + }, + success: function (data) { + var container = jQuery( '#' + data ).parent().parent(); + var index = container.next().data( 'index' ); + jQuery( '.abiz-customizer-plugin-notify-actions-count .current-index' ).text( index ); + container.slideToggle().remove(); + + if (jQuery( '.abiz-theme-recomended-actions_container > .epsilon-recommended-plugins' ).length === 0) { + jQuery( '.control-section-ti-customizer-notify-recomended-section' ).remove(); + } + }, + error: function (jqXHR, textStatus, errorThrown) { + console.log( jqXHR + ' :: ' + textStatus + ' :: ' + errorThrown ); + } + } + ); + } + ); + + // Remove activate button and replace with activation in progress button. + jQuery( document ).on( + 'DOMNodeInserted','.activate-now', function () { + var activateButton = jQuery( '.activate-now' ); + if (activateButton.length) { + var url = jQuery( activateButton ).attr( 'href' ); + if (typeof url !== 'undefined') { + // Request plugin activation. + jQuery.ajax( + { + beforeSend: function () { + jQuery( activateButton ).replaceWith( '' + abizCustomizercompanionObject.activating_string + '...' ); + }, + async: true, + type: 'GET', + url: url, + success: function () { + // Reload the page. + location.reload(); + } + } + ); + } + } + } + ); + } +); + + + +/** + * Remove activate button and replace with activation in progress button. + * + * @package abiz + */ + + +jQuery( document ).ready( + function ($) { + $( 'body' ).on( + 'click', ' .abiz-install-plugin ', function () { + var slug = $( this ).attr( 'data-slug' ); + + wp.updates.installPlugin( + { + slug: slug + } + ); + return false; + } + ); + + $( '.activate-now' ).on( + 'click', function (e) { + + var activateButton = $( this ); + e.preventDefault(); + if ($( activateButton ).length) { + var url = $( activateButton ).attr( 'href' ); + + if (typeof url !== 'undefined') { + // Request plugin activation. + $.ajax( + { + beforeSend: function () { + $( activateButton ).replaceWith( ''+"activating"+'...' ); + }, + async: true, + type: 'GET', + url: url, + success: function () { + // Reload the page. + location.reload(); + } + } + ); + } + } + } + ); + } +); diff --git a/wp-content/themes/abiz/core/customizer/customizer-repeater/class/customizer-repeater-control.php b/wp-content/themes/abiz/core/customizer/customizer-repeater/class/customizer-repeater-control.php new file mode 100644 index 0000000..004ac48 --- /dev/null +++ b/wp-content/themes/abiz/core/customizer/customizer-repeater/class/customizer-repeater-control.php @@ -0,0 +1,849 @@ +add_field_label = esc_html__( 'Add new field', 'abiz' ); + if ( ! empty( $args['add_field_label'] ) ) { + $this->add_field_label = $args['add_field_label']; + } + + $this->boxtitle = esc_html__( 'Customizer Repeater', 'abiz' ); + if ( ! empty ( $args['item_name'] ) ) { + $this->boxtitle = $args['item_name']; + } elseif ( ! empty( $this->label ) ) { + $this->boxtitle = $this->label; + } + + if ( ! empty( $args['customizer_repeater_image_control'] ) ) { + $this->customizer_repeater_image_control = $args['customizer_repeater_image_control']; + } + + + if ( ! empty( $args['customizer_repeater_icon_control'] ) ) { + $this->customizer_repeater_icon_control = $args['customizer_repeater_icon_control']; + } + + if ( ! empty( $args['customizer_repeater_color_control'] ) ) { + $this->customizer_repeater_color_control = $args['customizer_repeater_color_control']; + } + + if ( ! empty( $args['customizer_repeater_title_control'] ) ) { + $this->customizer_repeater_title_control = $args['customizer_repeater_title_control']; + } + + + if ( ! empty( $args['customizer_repeater_subtitle_control'] ) ) { + $this->customizer_repeater_subtitle_control = $args['customizer_repeater_subtitle_control']; + } + + if ( ! empty( $args['customizer_repeater_subtitle2_control'] ) ) { + $this->customizer_repeater_subtitle2_control = $args['customizer_repeater_subtitle2_control']; + } + + if ( ! empty( $args['customizer_repeater_btn3_control'] ) ) { + $this->customizer_repeater_btn3_control = $args['customizer_repeater_btn3_control']; + } + + if ( ! empty( $args['customizer_repeater_text_control'] ) ) { + $this->customizer_repeater_text_control = $args['customizer_repeater_text_control']; + } + if ( ! empty( $args['customizer_repeater_text2_control'] ) ) { + $this->customizer_repeater_text2_control = $args['customizer_repeater_text2_control']; + } + if ( ! empty( $args['customizer_repeater_button2_control'] ) ) { + $this->customizer_repeater_button2_control = $args['customizer_repeater_button2_control']; + } + if ( ! empty( $args['customizer_repeater_link2_control'] ) ) { + $this->customizer_repeater_link2_control = $args['customizer_repeater_link2_control']; + } + + if ( ! empty( $args['customizer_repeater_link3_control'] ) ) { + $this->customizer_repeater_link3_control = $args['customizer_repeater_link3_control']; + } + + if ( ! empty( $args['customizer_repeater_designation_control'] ) ) { + $this->customizer_repeater_designation_control = $args['customizer_repeater_designation_control']; + } + + if ( ! empty( $args['customizer_repeater_button_text_control'] ) ) { + $this->customizer_repeater_button_text_control = $args['customizer_repeater_button_text_control']; + } + + if ( ! empty( $args['customizer_repeater_link_control'] ) ) { + $this->customizer_repeater_link_control = $args['customizer_repeater_link_control']; + } + + if ( ! empty( $args['customizer_repeater_checkbox_control'] ) ) { + $this->customizer_repeater_checkbox_control = $args['customizer_repeater_checkbox_control']; + } + + if ( ! empty( $args['customizer_repeater_video_url_control'] ) ) { + $this->customizer_repeater_video_url_control = $args['customizer_repeater_video_url_control']; + } + + if ( ! empty( $args['customizer_repeater_align_control'] ) ) { + $this->customizer_repeater_align_control = $args['customizer_repeater_align_control']; + } + + if ( ! empty( $args['customizer_repeater_shortcode_control'] ) ) { + $this->customizer_repeater_shortcode_control = $args['customizer_repeater_shortcode_control']; + } + + if ( ! empty( $args['customizer_repeater_repeater_control'] ) ) { + $this->customizer_repeater_repeater_control = $args['customizer_repeater_repeater_control']; + } + + + if ( ! empty( $id ) ) { + $this->id = $id; + } + + if ( file_exists( get_template_directory() . '/core/customizer/customizer-repeater/inc/icons.php' ) ) { + $this->customizer_icon_container = 'core/customizer/customizer-repeater/inc/icons'; + } + + $allowed_array1 = wp_kses_allowed_html( 'post' ); + $allowed_array2 = array( + 'input' => array( + 'type' => array(), + 'class' => array(), + 'placeholder' => array() + ) + ); + + $this->allowed_html = array_merge( $allowed_array1, $allowed_array2 ); + } + + /*Enqueue resources for the control*/ + public function enqueue() { + wp_enqueue_style( 'all-css', get_template_directory_uri() . '/assets/css/all.min.css', array(), 999 ); + + wp_enqueue_style( 'abiz_customizer-repeater-admin-stylesheet', get_template_directory_uri() . '/core/customizer/customizer-repeater/css/admin-style.css', array(), 999 ); + + wp_enqueue_style( 'wp-color-picker' ); + + wp_enqueue_script( 'abiz_customizer-repeater-script', get_template_directory_uri() . '/core/customizer/customizer-repeater/js/customizer_repeater.js', array('jquery', 'jquery-ui-draggable', 'wp-color-picker' ), 999, true ); + + wp_enqueue_script( 'abiz_customizer-repeater-fontawesome-iconpicker', get_template_directory_uri() . '/core/customizer/customizer-repeater/js/fontawesome-iconpicker.js', array( 'jquery' ), 999, true ); + + wp_enqueue_style( 'abiz_customizer-repeater-fontawesome-iconpicker-script', get_template_directory_uri() . '/core/customizer/customizer-repeater/css/fontawesome-iconpicker.min.css', array(), 999 ); + } + + public function render_content() { + + /*Get default options*/ + $this_default = json_decode( $this->setting->default ); + + /*Get values (json format)*/ + $values = $this->value(); + + /*Decode values*/ + $json = json_decode( $values ); + + if ( ! is_array( $json ) ) { + $json = array( $values ); + } ?> + + label ); ?> +
    + iterate_array( $this_default ); ?> + link() ); ?> + class="customizer-repeater-colector" + value=""/> + iterate_array(); ?> + link() ); ?> + class="customizer-repeater-colector"/> + iterate_array( $json ); ?> + link() ); ?> + class="customizer-repeater-colector" value="value() ); ?>"/> + +
    + + boxtitle; + + global $abiz_limit; + global $abiz_type_with_id; + echo sprintf(""); + foreach($array as $icon){ + if($it<4) + { + $abiz_limit="abiz_limit"; + $abiz_type_with_id=''; + } + else + { + $abiz_limit="abiz_overlimit"; + $abiz_type_with_id=$abiz_del_btn_id."_".$it; + } + + + ?> +
    +
    + boxtitle ) ?> +
    +
    + id)){ + $id = $icon->id; + } + if(!empty($icon->choice)){ + $choice = $icon->choice; + } + if(!empty($icon->image_url)){ + $image_url = $icon->image_url; + } + if(!empty($icon->icon_value)){ + $icon_value = $icon->icon_value; + } + if(!empty($icon->color)){ + $color = $icon->color; + } + if(!empty($icon->title)){ + $title = $icon->title; + } + + if(!empty($icon->align)){ + $align = $icon->align; + } + + if(!empty($icon->designation)){ + $designation = $icon->designation; + } + + if(!empty($icon->subtitle)){ + $subtitle = $icon->subtitle; + } + + if(!empty($icon->subtitle2)){ + $subtitle2 = $icon->subtitle2; + } + + if(!empty($icon->text)){ + $text = $icon->text; + } + if(!empty($icon->text2)){ + $text2 = $icon->text2; + } + + if(!empty($icon->button_second)){ + $button_second = $icon->button_second; + } + + if(!empty($icon->link2)){ + $link2 = $icon->link2; + } + + if(!empty($icon->btn3)){ + $btn3 = $icon->btn3; + } + + if(!empty($icon->link3)){ + $link3 = $icon->link3; + } + + if(!empty($icon->video_url)){ + $video_url = $icon->video_url; + } + + if(!empty($icon->button)){ + $button = $icon->button_text; + } + if(!empty($icon->link)){ + $link = $icon->link; + } + if(!empty($icon->shortcode)){ + $shortcode = $icon->shortcode; + } + + if(!empty($icon->social_repeater)){ + $repeater = $icon->social_repeater; + } + + if(!empty($icon->open_new_tab)){ + $open_new_tab = $icon->open_new_tab; + } + + + if($this->customizer_repeater_title_control==true){ + $this->input_control(array( + 'label' => apply_filters('abiz_repeater_input_labels_filter', esc_html__( 'Title','abiz' ), $this->id, 'customizer_repeater_title_control' ), + 'class' => 'customizer-repeater-title-control '."$abiz_limit".' '."$abiz_type_with_id".'', + 'type' => apply_filters('abiz_repeater_input_types_filter', '', $this->id, 'customizer_repeater_title_control' ), + ), $title); + } + + if($this->customizer_repeater_subtitle_control==true){ + $this->input_control(array( + 'label' => apply_filters('abiz_repeater_input_labels_filter', esc_html__( 'Subtitle','abiz' ), $this->id, 'customizer_repeater_subtitle_control' ), + 'class' => 'customizer-repeater-subtitle-control '."$abiz_limit".' '."$abiz_type_with_id".'', + 'type' => apply_filters('abiz_repeater_input_types_filter', '', $this->id, 'customizer_repeater_subtitle_control' ), + ), $subtitle); + } + + if($this->customizer_repeater_subtitle2_control==true){ + $this->input_control(array( + 'label' => apply_filters('abiz_repeater_input_labels_filter', esc_html__( 'Subtitle 2','abiz' ), $this->id, 'customizer_repeater_subtitle2_control' ), + 'class' => 'customizer-repeater-subtitle2-control '."$abiz_limit".' '."$abiz_type_with_id".'', + 'type' => apply_filters('abiz_repeater_input_types_filter', '', $this->id, 'customizer_repeater_subtitle2_control' ), + ), $subtitle2); + } + + if($this->customizer_repeater_text_control==true){ + $this->input_control(array( + 'label' => apply_filters('abiz_repeater_input_labels_filter', esc_html__( 'Description','abiz' ), $this->id, 'customizer_repeater_text_control' ), + 'class' => 'customizer-repeater-text-control '."$abiz_limit".' '."$abiz_type_with_id".'', + 'type' => apply_filters('abiz_repeater_input_types_filter', 'textarea', $this->id, 'customizer_repeater_text_control' ), + ), $text); + } + if($this->customizer_repeater_text2_control==true){ + $this->input_control(array( + 'label' => apply_filters('abiz_repeater_input_labels_filter', esc_html__( 'Button Label','abiz' ), $this->id, 'customizer_repeater_text2_control' ), + 'class' => 'customizer-repeater-text2-control '."$abiz_limit".'', + 'type' => apply_filters('abiz_repeater_input_types_filter', '', $this->id, 'customizer_repeater_text2_control' ), + ), $text2); + } + + if($this->customizer_repeater_link_control){ + $this->input_control(array( + 'label' => apply_filters('abiz_repeater_input_labels_filter', esc_html__( 'Link','abiz' ), $this->id, 'customizer_repeater_link_control' ), + 'class' => 'customizer-repeater-link-control '."$abiz_limit".' '."$abiz_type_with_id".'', + 'sanitize_callback' => 'esc_url_raw', + 'type' => apply_filters('abiz_repeater_input_types_filter', '', $this->id, 'customizer_repeater_link_control' ), + ), $link); + } + + + if($this->customizer_repeater_button2_control==true){ + $this->input_control(array( + 'label' => apply_filters('abiz_repeater_input_labels_filter', esc_html__( 'Button Label second','abiz' ), $this->id, 'customizer_repeater_button2_control' ), + 'class' => 'customizer-repeater-button2-control', + 'type' => apply_filters('abiz_repeater_input_types_filter', '', $this->id, 'customizer_repeater_button2_control' ), + ), $button_second); + } + + if($this->customizer_repeater_link2_control){ + $this->input_control(array( + 'label' => apply_filters('abiz_repeater_input_labels_filter', esc_html__( 'link','abiz' ), $this->id, 'customizer_repeater_link2_control' ), + 'class' => 'customizer-repeater-link2-control '."$abiz_limit".' '."$abiz_type_with_id".'', + //'sanitize_callback' => 'esc_url_raw', + 'type' => apply_filters('abiz_repeater_input_types_filter', '', $this->id, 'customizer_repeater_link2_control' ), + ), $link2); + } + if($this->customizer_repeater_button_text_control){ + $this->input_control(array( + 'label' => apply_filters('abiz_repeater_input_labels_filter', esc_html__('Button Text', + 'abiz'), $this->id, 'customizer_repeater_button_text_control'), + 'class' => 'customizer-repeater-button-text-control '."$abiz_limit".'', + 'type' => apply_filters('abiz_repeater_input_types_filter', '' , $this->id, + 'customizer_repeater_button_text_control'), + ), $button); + } + + + + + if($this->customizer_repeater_btn3_control==true){ + $this->input_control(array( + 'label' => apply_filters('abiz_repeater_input_labels_filter', esc_html__( 'Button Label Third','abiz' ), $this->id, 'customizer_repeater_btn3_control' ), + 'class' => 'customizer-repeater-btn3-control '."$abiz_limit".' '."$abiz_type_with_id".'', + 'type' => apply_filters('abiz_repeater_input_types_filter', '', $this->id, 'customizer_repeater_btn3_control' ), + ), $btn3); + } + + if($this->customizer_repeater_link3_control){ + $this->input_control(array( + 'label' => apply_filters('abiz_repeater_input_labels_filter', esc_html__( 'link','abiz' ), $this->id, 'customizer_repeater_link3_control' ), + 'class' => 'customizer-repeater-link3-control '."$abiz_limit".' '."$abiz_type_with_id".'', + //'sanitize_callback' => 'esc_url_raw', + 'type' => apply_filters('abiz_repeater_input_types_filter', '', $this->id, 'customizer_repeater_link3_control' ), + ), $link3); + } + + if($this->customizer_repeater_checkbox_control == true){ + $this->testimonila_check($open_new_tab); + + } + + if($this->customizer_repeater_video_url_control){ + $this->input_control(array( + 'label' => apply_filters('abiz_repeater_input_labels_filter', esc_html__('Video Url', + 'abiz'), $this->id, 'customizer_repeater_video_url_control'), + 'class' => 'customizer-repeater-video-url-control', + 'type' => apply_filters('abiz_customizer_repeater_video_url_control', 'textarea', $this->id, 'customizer_repeater_video_url_control' ), + ), $video_url); + } + + if($this->customizer_repeater_align_control == true){ + $this->align($align); + + } + + if($this->customizer_repeater_image_control == true && $this->customizer_repeater_icon_control == true) { + $this->icon_type_choice( $choice,$abiz_limit ); + } + if($this->customizer_repeater_image_control == true){ + $this->image_control($image_url, $choice, $abiz_limit, $it+1, $abiz_del_btn_id); + } + if($this->customizer_repeater_icon_control == true){ + $this->icon_picker_control($icon_value, $choice); + } + + + + + if($this->customizer_repeater_color_control == true){ + $this->input_control(array( + 'label' => apply_filters('abiz_repeater_input_labels_filter', esc_html__( 'Color','abiz' ), $this->id, 'customizer_repeater_color_control' ), + 'class' => 'customizer-repeater-color-control', + 'type' => apply_filters('abiz_repeater_input_types_filter', 'color', $this->id, 'customizer_repeater_color_control' ), + 'sanitize_callback' => 'sanitize_hex_color' + ), $color); + } + + + if($this->customizer_repeater_shortcode_control==true){ + $this->input_control(array( + 'label' => apply_filters('abiz_repeater_input_labels_filter', esc_html__( 'Shortcode','abiz' ), $this->id, 'customizer_repeater_shortcode_control' ), + 'class' => 'customizer-repeater-shortcode-control', + 'type' => apply_filters('abiz_repeater_input_types_filter', '', $this->id, 'customizer_repeater_shortcode_control' ), + ), $shortcode); + } + + if($this->customizer_repeater_designation_control==true){ + $this->input_control(array( + 'label' => apply_filters('abiz_repeater_input_labels_filter', esc_html__( 'Designation','abiz' ), $this->id, 'customizer_repeater_designation_control' ), + 'class' => 'customizer-repeater-designation-control', + 'type' => apply_filters('abiz_repeater_input_types_filter', 'textarea', $this->id, 'customizer_repeater_designation_control' ), + ), $designation); + } + + if($this->customizer_repeater_repeater_control==true){ + $this->repeater_control($repeater, $abiz_limit, $abiz_type_with_id); + } ?> + + + + +
    +
    + + +
    +
    + boxtitle ) ?> +
    +
    + customizer_repeater_image_control == true && $this->customizer_repeater_icon_control == true ) { + $this->icon_type_choice(); + } + if ( $this->customizer_repeater_image_control == true ) { + $this->image_control(); + } + if ( $this->customizer_repeater_icon_control == true ) { + $this->icon_picker_control(); + } + + + + if($this->customizer_repeater_color_control==true){ + $this->input_control(array( + 'label' => apply_filters('abiz_repeater_input_labels_filter', esc_html__( 'Color','abiz' ), $this->id, 'customizer_repeater_color_control' ), + 'class' => 'customizer-repeater-color-control', + 'type' => apply_filters('abiz_repeater_input_types_filter', 'color', $this->id, 'customizer_repeater_color_control' ), + 'sanitize_callback' => 'sanitize_hex_color' + ) ); + } + if ( $this->customizer_repeater_title_control == true ) { + $this->input_control( array( + 'label' => apply_filters('abiz_repeater_input_labels_filter', esc_html__( 'Title','abiz' ), $this->id, 'customizer_repeater_title_control' ), + 'class' => 'customizer-repeater-title-control', + 'type' => apply_filters('abiz_repeater_input_types_filter', '', $this->id, 'customizer_repeater_title_control' ), + ) ); + } + + if ( $this->customizer_repeater_subtitle_control == true ) { + $this->input_control( array( + 'label' => apply_filters('abiz_repeater_input_labels_filter', esc_html__( 'Subtitle','abiz' ), $this->id, 'customizer_repeater_subtitle_control' ), + 'class' => 'customizer-repeater-subtitle-control', + 'type' => apply_filters('abiz_repeater_input_types_filter', '', $this->id, 'customizer_repeater_subtitle_control' ), + ) ); + } + + if ( $this->customizer_repeater_subtitle2_control == true ) { + $this->input_control( array( + 'label' => apply_filters('abiz_repeater_input_labels_filter', esc_html__( 'Subtitle 2','abiz' ), $this->id, 'customizer_repeater_subtitle2_control' ), + 'class' => 'customizer-repeater-subtitle-control', + 'type' => apply_filters('abiz_repeater_input_types_filter', '', $this->id, 'customizer_repeater_subtitle2_control' ), + ) ); + } + + + if ( $this->customizer_repeater_text_control == true ) { + $this->input_control( array( + 'label' => apply_filters('abiz_repeater_input_labels_filter', esc_html__( 'Description','abiz' ), $this->id, 'customizer_repeater_text_control' ), + 'class' => 'customizer-repeater-text-control', + 'type' => apply_filters('abiz_repeater_input_types_filter', 'textarea', $this->id, 'customizer_repeater_text_control' ), + ) ); + } + if ( $this->customizer_repeater_text2_control == true ) { + $this->input_control( array( + 'label' => apply_filters('abiz_repeater_input_labels_filter', esc_html__( 'Button Label','abiz' ), $this->id, 'customizer_repeater_text2_control' ), + 'class' => 'customizer-repeater-text2-control', + 'type' => apply_filters('abiz_repeater_input_types_filter', '', $this->id, 'customizer_repeater_text2_control' ), + ) ); + } + + if ( $this->customizer_repeater_button2_control == true ) { + $this->input_control( array( + 'label' => apply_filters('abiz_repeater_input_labels_filter', esc_html__( 'Button Label Second','abiz' ), $this->id, 'customizer_repeater_button2_control' ), + 'class' => 'customizer-repeater-button2-control', + 'type' => apply_filters('abiz_repeater_input_types_filter', '', $this->id, 'customizer_repeater_button2_control' ), + ) ); + } + + if ( $this->customizer_repeater_link2_control == true ) { + $this->input_control( array( + 'label' => apply_filters('abiz_repeater_input_labels_filter', esc_html__( 'link','abiz' ), $this->id, 'customizer_repeater_link2_control' ), + 'class' => 'customizer-repeater-link2-control', + 'type' => apply_filters('abiz_repeater_input_types_filter', '', $this->id, 'customizer_repeater_link2_control' ), + ) ); + } + if($this->customizer_repeater_button_text_control){ + $this->input_control(array( + 'label' => apply_filters('abiz_repeater_input_labels_filter', esc_html__('Button Text', + 'abiz'), $this->id, 'customizer_repeater_button_text_control'), + 'class' => 'customizer-repeater-button-text-control', + 'type' => apply_filters('abiz_repeater_input_types_filter', '' , $this->id, + 'customizer_repeater_button_text_control'), + )); + } + + if ( $this->customizer_repeater_link_control == true ) { + $this->input_control( array( + 'label' => apply_filters('abiz_repeater_input_labels_filter', esc_html__( 'Link','abiz' ), $this->id, 'customizer_repeater_link_control' ), + 'class' => 'customizer-repeater-link-control', + 'type' => apply_filters('abiz_repeater_input_types_filter', '', $this->id, 'customizer_repeater_link_control' ), + ) ); + } + + if ( $this->customizer_repeater_btn3_control == true ) { + $this->input_control( array( + 'label' => apply_filters('abiz_repeater_input_labels_filter', esc_html__( 'Button Label 3','abiz' ), $this->id, 'customizer_repeater_btn3_control' ), + 'class' => 'customizer-repeater-btn3-control', + 'type' => apply_filters('abiz_repeater_input_types_filter', '', $this->id, 'customizer_repeater_btn3_control' ), + ) ); + } + + if ( $this->customizer_repeater_link3_control == true ) { + $this->input_control( array( + 'label' => apply_filters('abiz_repeater_input_labels_filter', esc_html__( 'link','abiz' ), $this->id, 'customizer_repeater_link3_control' ), + 'class' => 'customizer-repeater-link3-control', + 'type' => apply_filters('abiz_repeater_input_types_filter', '', $this->id, 'customizer_repeater_link3_control' ), + ) ); + } + + if($this->customizer_repeater_checkbox_control == true){ + $this->testimonila_check(); + + } + + if($this->customizer_repeater_video_url_control){ + $this->input_control(array( + 'label' => apply_filters('abiz_repeater_input_labels_filter', esc_html__('Video Url', + 'abiz'), $this->id, 'customizer_repeater_video_url_control'), + 'class' => 'customizer-repeater-video-url-control', + 'type' => apply_filters('abiz_customizer_repeater_video_url_control', 'textarea', $this->id, 'customizer_repeater_video_url_control' ), + )); + } + + if($this->customizer_repeater_align_control == true){ + $this->align($align); + + } + + + if ( $this->customizer_repeater_shortcode_control == true ) { + $this->input_control( array( + 'label' => apply_filters('abiz_repeater_input_labels_filter', esc_html__( 'Shortcode','abiz' ), $this->id, 'customizer_repeater_shortcode_control' ), + 'class' => 'customizer-repeater-shortcode-control', + 'type' => apply_filters('abiz_repeater_input_types_filter', '', $this->id, 'customizer_repeater_shortcode_control' ), + ) ); + } + + + if ( $this->customizer_repeater_designation_control == true ) { + $this->input_control( array( + 'label' => apply_filters('abiz_repeater_input_labels_filter', esc_html__( 'Designation','abiz' ), $this->id, 'customizer_repeater_designation_control' ), + 'class' => 'customizer-repeater-designation-control', + 'type' => apply_filters('abiz_repeater_input_types_filter', 'textarea', $this->id, 'customizer_repeater_designation_control' ), + ) ); + } + + if($this->customizer_repeater_repeater_control==true){ + $this->repeater_control(); + } ?> + + +
    +
    + + + + > + + + + + + + +
    + + + class="customizer-repeater-checkbox "> + +
    + + + +
    > + + + + " value=""> + " value="" /> +
    + + + + + + + + + + + + + + + +
    +
    +
    + + +
    + customizer_icon_container ); ?> + + + +
    + +
    + + +
    + +
    +
    + + +
    + customizer_icon_container ); ?> + + + +
    + + +
    + + div { + margin: 1em 0; +} + +.customizer-repeater-box-content-hidden .customize-control-title { + font-size: 13px; + line-height: 1.5; + font-weight: normal; + margin-bottom: 0; + margin-top: 1em; +} + +.customizer-repeater-box-content-hidden .customize-control-title:after { + content: ":"; +} + +.customizer-repeater-box-content-hidden span.description { + font-size: 12px; + font-style: normal; +} + +.customizer-repeater-general-control-repeater-container, .customizer-repeater-general-control-repeater_container { + border: 1px solid #e5e5e5; + border-top: none; + margin-bottom: 12px; + width: 100%; + float: left; + background: #fff; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .04); + box-shadow: 0 1px 1px rgba(0, 0, 0, .04); +} + +.customizer-repeater-box-content-hidden .wp-picker-container, .customizer-repeater-box-content-hidden .wp-picker-container .wp-color-result, .icp-container { + margin: 0; +} + +.customizer-repeater-box-content-hidden input:not(.icp, .wp-color-picker), +.customizer-repeater-box-content-hidden textarea, +.customizer-repeater-box-content-hidden .wp-picker-container { + margin-bottom: 1em !important; +} + +.social-repeater-general-control-remove-field { + cursor: pointer; + color: #a00; + background: none; + border: none; + padding: 0; + margin-top: 10px; +} + +.social-repeater-general-control-remove-field:hover { + color: red; +} + +.customizer-repeater-box-content-hidden .wp-picker-holder { + position: relative; + left: -10px; +} + +.customizer-repeater-box-content-hidden .wp-picker-input-wrap { + margin-left: 10px; +} + +.customizer-repeater-box-content-hidden .wp-picker-container .iris-picker { + border-left: none; + border-right: none; +} + +button.customizer-repeater-new-field { + float: right; +} + +button.customizer-repeater-new-field:before { + content: "\f132"; + display: inline-block; + position: relative; + left: -2px; + top: -1px; + font: 400 20px/1 dashicons; + vertical-align: middle; + -webkit-transition: all .2s; + transition: all .2s; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.customizer-repeater-box-content-hidden > div.customizer-repeater-social-repeater { + margin-top: 0; +} + +.customizer-repeater-general-control-repeater-container .customizer-repeater-icon-control { + width: 100%; + margin: 0; + padding: 0; +} + +#customizer-repeater-new-field { + width: 100%; +} + +.customize-control-widget_form .widget-control-save { + display: block !important; +} + +.customizer-repeater-box-content-hidden { + background-color: #fff; +} + +.customizer-repeater-image-control .customizer-repeater-custom-media-button { + margin-top: 5px; +} + +.customizer-icons { + display: inline-block; + padding: 0 10px 0 0; + vertical-align: middle; +} + +.social-repeater-remove-social-item { + display: inline-block; + vertical-align: top; + color: #a00; + border: none; + background: none; + cursor: pointer; + padding: 0; +} + +.social-repeater-remove-social-item:hover { + color: red; +} + +.customizer-repeater-social-repeater > .customizer-repeater-social-repeater-container:not(:first-child) { + margin-top: 25px; +} + +.icp-container { + margin-bottom: 10px; +} + +.button-secondary.social-repeater-add-social-item:before { + content: "\f132"; + display: inline-block; + position: relative; + left: -2px; + top: -1px; + font: 400 20px/1 dashicons; + vertical-align: middle; + -webkit-transition: all .2s; + transition: all .2s; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.button-secondary.social-repeater-add-social-item { + vertical-align: text-top; + float: right; +} + +.customizer-repeater-box-content-hidden textarea { + width: 100%; +} \ No newline at end of file diff --git a/wp-content/themes/abiz/core/customizer/customizer-repeater/css/fontawesome-iconpicker.css b/wp-content/themes/abiz/core/customizer/customizer-repeater/css/fontawesome-iconpicker.css new file mode 100644 index 0000000..d9f25cd --- /dev/null +++ b/wp-content/themes/abiz/core/customizer/customizer-repeater/css/fontawesome-iconpicker.css @@ -0,0 +1,156 @@ +.iconpicker .iconpicker-items, +.iconpicker .iconpicker-items:after, +.iconpicker-popover .popover-footer:after, +.iconpicker:after { + clear: both +} + +.iconpicker-popover.popover { + position: absolute; + padding: 1px; + text-align: left; + background: #e5e5e5; + z-index: 999; + display: none; + margin-left: -10px; + width: 254px +} + +.iconpicker, +.iconpicker-popover.popover.iconpicker-visible { + display: block +} + +.iconpicker-popover.popover .popover-title { + padding: 5px; + font-size: 5px; + line-height: 16px; + border-bottom: 1px solid #ebebeb; + background-color: #e5e5e5 +} + +.iconpicker-popover.popover .popover-title input[type=search].iconpicker-search { + margin: 0 0 2px +} + +.iconpicker-popover.popover .popover-title-text~input[type=search].iconpicker-search { + margin-top: 14px +} + +.iconpicker-popover.popover .popover-content { + padding: 0; + text-align: center +} + +.iconpicker-popover.popover>.arrow, +.iconpicker-popover.popover>.arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid +} + +.iconpicker *, +.icp-container { + position: relative +} + +.iconpicker-popover.popover>.arrow { + border-width: 11px +} + +.iconpicker-popover.popover>.arrow:after { + border-width: 10px; + content: "" +} + +.iconpicker-popover.popover.bottomLeft>.arrow { + border-top-width: 0; + border-bottom-color: #e5e5e5; + top: -11px +} + +.iconpicker-popover.popover.bottomLeft>.arrow:after { + content: " "; + top: 1px; + margin-left: -10px; + border-top-width: 0; + border-bottom-color: #e5e5e5 +} + +.iconpicker-popover.popover.bottomLeft>.arrow { + left: 14px; + margin-left: 0 +} + +.iconpicker, +.iconpicker .iconpicker-items { + position: relative; + margin: 0; + overflow: hidden +} + +.iconpicker { + text-align: left; + text-shadow: none; + line-height: 0 +} + +.iconpicker .iconpicker-items:after, +.iconpicker .iconpicker-items:before, +.iconpicker:after, +.iconpicker:before { + content: " "; + display: table +} + +.iconpicker * { + box-sizing: content-box +} + +.iconpicker .iconpicker-items { + float: none; + padding: 5px 0 0 5px; + background: #fff; + overflow-y: auto; + min-height: 55px; + max-height: 275px +} + +.iconpicker .iconpicker-items i { + float: left; + width: 32px; + height: 32px; + line-height: 32px; + margin: 0 7px 7px 0; + text-align: center; + cursor: pointer; + border-radius: 3px; + font-size: 18px; + color: #444; + box-shadow: 0 0 0 1px #ddd; + transition: transform .2s ease +} + +.iconpicker .iconpicker-items i:nth-child(6n) { + margin-right: 0 +} + +.iconpicker .iconpicker-items i:hover { + transform: scale(1.4); + color: #008ec2; + box-shadow: none +} + +.icp { + padding-left: 30px +} + +.icp-container .input-group-addon { + position: absolute; + top: 1px; + left: 5px; + padding: 3px +} \ No newline at end of file diff --git a/wp-content/themes/abiz/core/customizer/customizer-repeater/css/fontawesome-iconpicker.min.css b/wp-content/themes/abiz/core/customizer/customizer-repeater/css/fontawesome-iconpicker.min.css new file mode 100644 index 0000000..e4b8fff --- /dev/null +++ b/wp-content/themes/abiz/core/customizer/customizer-repeater/css/fontawesome-iconpicker.min.css @@ -0,0 +1 @@ +.iconpicker .iconpicker-items,.iconpicker .iconpicker-items:after,.iconpicker-popover .popover-footer:after,.iconpicker:after{clear:both}.iconpicker-popover.popover{position:absolute;padding:1px;text-align:left;background:#e5e5e5;z-index:999;display:none;margin-left:-10px;width:254px}.iconpicker,.iconpicker-popover.popover.iconpicker-visible{display:block}.iconpicker-popover.popover .popover-title{padding:5px;font-size:5px;line-height:16px;border-bottom:1px solid #ebebeb;background-color:#e5e5e5}.iconpicker-popover.popover .popover-title input[type=search].iconpicker-search{margin:0 0 2px}.iconpicker-popover.popover .popover-title-text~input[type=search].iconpicker-search{margin-top:14px}.iconpicker-popover.popover .popover-content{padding:0;text-align:center}.iconpicker-popover.popover>.arrow,.iconpicker-popover.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.iconpicker *,.icp-container{position:relative}.iconpicker-popover.popover>.arrow{border-width:11px}.iconpicker-popover.popover>.arrow:after{border-width:10px;content:""}.iconpicker-popover.popover.bottomLeft>.arrow{border-top-width:0;border-bottom-color:#e5e5e5;top:-11px}.iconpicker-popover.popover.bottomLeft>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#e5e5e5}.iconpicker-popover.popover.bottomLeft>.arrow{left:14px;margin-left:0}.iconpicker,.iconpicker .iconpicker-items{position:relative;margin:0;overflow:hidden}.iconpicker{text-align:left;text-shadow:none;line-height:0}.iconpicker .iconpicker-items:after,.iconpicker .iconpicker-items:before,.iconpicker:after,.iconpicker:before{content:" ";display:table}.iconpicker *{box-sizing:content-box}.iconpicker .iconpicker-items{float:none;padding:5px 0 0 5px;background:#fff;overflow-y:auto;min-height:55px;max-height:275px}.iconpicker .iconpicker-items i{float:left;width:32px;height:32px;line-height:32px;margin:0 7px 7px 0;text-align:center;cursor:pointer;border-radius:3px;font-size:18px;color:#444;box-shadow:0 0 0 1px #ddd;transition:transform .2s ease}.iconpicker .iconpicker-items i:nth-child(6n){margin-right:0}.iconpicker .iconpicker-items i:hover{transform:scale(1.4);color:#008ec2;box-shadow:none}.icp{padding-left:30px !important}.icp-container .input-group-addon{position:absolute;top:1px;left:5px;padding:3px} \ No newline at end of file diff --git a/wp-content/themes/abiz/core/customizer/customizer-repeater/inc/customizer.php b/wp-content/themes/abiz/core/customizer/customizer-repeater/inc/customizer.php new file mode 100644 index 0000000..59c032a --- /dev/null +++ b/wp-content/themes/abiz/core/customizer/customizer-repeater/inc/customizer.php @@ -0,0 +1,34 @@ + $box ){ + foreach ($box as $key => $value){ + + switch ( $key ) { + case 'icon_value': + $input_decoded[$boxk][$key] = wp_kses_post( force_balance_tags( $value ) ); + break; + + case 'link': + $input_decoded[$boxk][$key] = esc_url_raw( $value ); + break; + + default: + $input_decoded[$boxk][$key] = wp_kses_post( force_balance_tags( $value ) ); + } + + } + } + return json_encode($input_decoded); + } + return $input; +} diff --git a/wp-content/themes/abiz/core/customizer/customizer-repeater/inc/icons.php b/wp-content/themes/abiz/core/customizer/customizer-repeater/inc/icons.php new file mode 100644 index 0000000..832fbe9 --- /dev/null +++ b/wp-content/themes/abiz/core/customizer/customizer-repeater/inc/icons.php @@ -0,0 +1,87 @@ +
    +
    +
    + +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    \ No newline at end of file diff --git a/wp-content/themes/abiz/core/customizer/customizer-repeater/js/customizer_repeater.js b/wp-content/themes/abiz/core/customizer/customizer-repeater/js/customizer_repeater.js new file mode 100644 index 0000000..10acccd --- /dev/null +++ b/wp-content/themes/abiz/core/customizer/customizer-repeater/js/customizer_repeater.js @@ -0,0 +1,584 @@ +/* global jQuery */ +/* global wp */ +function abiz_media_upload(button_class) { + 'use strict'; + jQuery('body').on('click', button_class, function () { + var button_id = '#' + jQuery(this).attr('id'); + var display_field = jQuery(this).parent().children('input:text'); + var _custom_media = true; + + wp.media.editor.send.attachment = function (props, attachment) { + + if (_custom_media) { + if (typeof display_field !== 'undefined') { + switch (props.size) { + case 'full': + display_field.val(attachment.sizes.full.url); + display_field.trigger('change'); + break; + case 'medium': + display_field.val(attachment.sizes.medium.url); + display_field.trigger('change'); + break; + case 'thumbnail': + display_field.val(attachment.sizes.thumbnail.url); + display_field.trigger('change'); + break; + default: + display_field.val(attachment.url); + display_field.trigger('change'); + } + } + _custom_media = false; + } else { + return wp.media.editor.send.attachment(button_id, [props, attachment]); + } + }; + wp.media.editor.open(button_class); + window.send_to_editor = function (html) { + + }; + return false; + }); +} + +/******************************************** + *** Generate unique id *** + *********************************************/ +function abiz_customizer_repeater_uniqid(prefix, more_entropy) { + 'use strict'; + if (typeof prefix === 'undefined') { + prefix = ''; + } + + var retId; + var php_js; + var formatSeed = function (seed, reqWidth) { + seed = parseInt(seed, 10) + .toString(16); // to hex str + if (reqWidth < seed.length) { // so long we split + return seed.slice(seed.length - reqWidth); + } + if (reqWidth > seed.length) { // so short we pad + return new Array(1 + (reqWidth - seed.length)) + .join('0') + seed; + } + return seed; + }; + + // BEGIN REDUNDANT + if (!php_js) { + php_js = {}; + } + // END REDUNDANT + if (!php_js.uniqidSeed) { // init seed with big random int + php_js.uniqidSeed = Math.floor(Math.random() * 0x75bcd15); + } + php_js.uniqidSeed++; + + retId = prefix; // start with prefix, add current milliseconds hex string + retId += formatSeed(parseInt(new Date() + .getTime() / 1000, 10), 8); + retId += formatSeed(php_js.uniqidSeed, 5); // add seed hex string + if (more_entropy) { + // for more entropy we add a float lower to 10 + retId += (Math.random() * 10) + .toFixed(8) + .toString(); + } + + return retId; +} + + +/******************************************** + *** General Repeater *** + *********************************************/ +function abiz_customizer_repeater_refresh_social_icons(th) { + 'use strict'; + var icons_repeater_values = []; + th.find('.customizer-repeater-social-repeater-container').each(function () { + var icon = jQuery(this).find('.icp').val(); + var link = jQuery(this).find('.customizer-repeater-social-repeater-link').val(); + var id = jQuery(this).find('.customizer-repeater-social-repeater-id').val(); + + if (!id) { + id = 'customizer-repeater-social-repeater-' + abiz_customizer_repeater_uniqid(); + jQuery(this).find('.customizer-repeater-social-repeater-id').val(id); + } + + if (icon !== '' && link !== '') { + icons_repeater_values.push({ + 'icon': icon, + 'link': link, + 'id': id + }); + } + }); + + th.find('.social-repeater-socials-repeater-colector').val(JSON.stringify(icons_repeater_values)); + abiz_customizer_repeater_refresh_general_control_values(); +} + + +function abiz_customizer_repeater_refresh_general_control_values() { + 'use strict'; + jQuery('.customizer-repeater-general-control-repeater').each(function () { + var values = []; + var th = jQuery(this); + th.find('.customizer-repeater-general-control-repeater-container').each(function () { + + var icon_value = jQuery(this).find('.icp').val(); + var text = jQuery(this).find('.customizer-repeater-text-control').val(); + var link = jQuery(this).find('.customizer-repeater-link-control').val(); + var text2 = jQuery(this).find('.customizer-repeater-text2-control').val(); + var link2 = jQuery(this).find('.customizer-repeater-link2-control').val(); + var link3 = jQuery(this).find('.customizer-repeater-link3-control').val(); + var color = jQuery(this).find('input.customizer-repeater-color-control').val(); + var color2 = jQuery(this).find('input.customizer-repeater-color2-control').val(); + var image_url = jQuery(this).find('.custom-media-url').val(); + var choice = jQuery(this).find('.customizer-repeater-image-choice').val(); + var title = jQuery(this).find('.customizer-repeater-title-control').val(); + var subtitle = jQuery(this).find('.customizer-repeater-subtitle-control').val(); + var subtitle2 = jQuery(this).find('.customizer-repeater-subtitle2-control').val(); + var btn3 = jQuery(this).find('.customizer-repeater-btn3-control').val(); + var button_second = jQuery(this).find('.customizer-repeater-button2-control').val(); + var align = jQuery(this).find('.customizer-repeater-align').val(); + var open_new_tab = jQuery(this).find('.customizer-repeater-checkbox').attr("checked") ? 'yes' : 'no'; + var id = jQuery(this).find('.social-repeater-box-id').val(); + if (!id) { + id = 'social-repeater-' + abiz_customizer_repeater_uniqid(); + jQuery(this).find('.social-repeater-box-id').val(id); + } + var social_repeater = jQuery(this).find('.social-repeater-socials-repeater-colector').val(); + var shortcode = jQuery(this).find('.customizer-repeater-shortcode-control').val(); + + if (text !== '' || image_url !== '' || title !== '' || subtitle !== '' || subtitle2 !== '' || btn3 !== '' || icon_value !== '' || link !== '' || choice !== '' || social_repeater !== '' || shortcode !== '' || align !== '' || color !== '') { + values.push({ + 'icon_value': (choice === 'customizer_repeater_none' ? '' : icon_value), + 'color': color, + 'color2': color2, + 'text': abizescapeHtml(text), + 'link': link, + 'text2': abizescapeHtml(text2), + 'button_second': abizescapeHtml(button_second), + 'link2': link2, + 'link3': link3, + 'image_url': (choice === 'customizer_repeater_none' ? '' : image_url), + 'choice': choice, + 'title': abizescapeHtml(title), + 'subtitle': abizescapeHtml(subtitle), + 'subtitle2': abizescapeHtml(subtitle2), + 'btn3': abizescapeHtml(btn3), + 'align': abizescapeHtml(align), + 'open_new_tab' : open_new_tab, + 'social_repeater': abizescapeHtml(social_repeater), + 'id': id, + 'shortcode': abizescapeHtml(shortcode) + }); + } + + }); + th.find('.customizer-repeater-colector').val(JSON.stringify(values)); + th.find('.customizer-repeater-colector').trigger('change'); + }); +} + + +jQuery(document).ready(function () { + 'use strict'; + var abiz_theme_controls = jQuery('#customize-theme-controls'); + abiz_theme_controls.on('click', '.customizer-repeater-customize-control-title', function () { + jQuery(this).next().slideToggle('medium', function () { + if (jQuery(this).is(':visible')){ + jQuery(this).prev().addClass('repeater-expanded'); + jQuery(this).css('display', 'block'); + } else { + jQuery(this).prev().removeClass('repeater-expanded'); + } + }); + }); + + abiz_theme_controls.on('change', '.icp',function(){ + abiz_customizer_repeater_refresh_general_control_values(); + return false; + }); + + abiz_theme_controls.on('change','.customizer-repeater-align', function(){ + abiz_customizer_repeater_refresh_general_control_values(); + return false; + + }); + + abiz_theme_controls.on('change', '.customizer-repeater-image-choice', function () { + if (jQuery(this).val() === 'customizer_repeater_image') { + jQuery(this).parent().parent().find('.social-repeater-general-control-icon').hide(); + jQuery(this).parent().parent().find('.customizer-repeater-image-control').show(); + jQuery(this).parent().parent().find('.customizer-repeater-color-control').prev().prev().hide(); + jQuery(this).parent().parent().find('.customizer-repeater-color-control').hide(); + + } + if (jQuery(this).val() === 'customizer_repeater_icon') { + jQuery(this).parent().parent().find('.social-repeater-general-control-icon').show(); + jQuery(this).parent().parent().find('.customizer-repeater-image-control').hide(); + jQuery(this).parent().parent().find('.customizer-repeater-color-control').prev().prev().show(); + jQuery(this).parent().parent().find('.customizer-repeater-color-control').show(); + } + if (jQuery(this).val() === 'customizer_repeater_none') { + jQuery(this).parent().parent().find('.social-repeater-general-control-icon').hide(); + jQuery(this).parent().parent().find('.customizer-repeater-image-control').hide(); + jQuery(this).parent().parent().find('.customizer-repeater-color-control').prev().prev().hide(); + jQuery(this).parent().parent().find('.customizer-repeater-color-control').hide(); + } + + abiz_customizer_repeater_refresh_general_control_values(); + return false; + }); + abiz_media_upload('.customizer-repeater-custom-media-button'); + jQuery('.custom-media-url').on('change', function () { + abiz_customizer_repeater_refresh_general_control_values(); + return false; + }); + + var color_options = { + change: function(event, ui){ + abiz_customizer_repeater_refresh_general_control_values(); + } + }; + + /** + * This adds a new box to repeater + * + */ + abiz_theme_controls.on('click', '.customizer-repeater-new-field', function () { + // Usable For Free Theme Only + var parentid = jQuery(this).parent().attr("id"); + + if(parentid == 'customize-control-hdr_social_icons') + { + var numItems = jQuery("#customize-control-hdr_social_icons .customizer-repeater-general-control-repeater-container").length + if(numItems >= 4){ + jQuery( "#customize-control-abiz_social_icon_upgrade .flixita-upgrade-pro-message" ).show(); + return false; + } + } + + if(parentid == 'customize-control-footer_top_info') + { + var numItems = jQuery("#customize-control-footer_top_info .customizer-repeater-general-control-repeater-container").length + if(numItems >= 4){ + jQuery( "#customize-control-abiz_footer_top_info_upgrade .flixita-upgrade-pro-message" ).show(); + return false; + } + } + + if(parentid == 'customize-control-slider') + { + var numItems = jQuery("#customize-control-slider .customizer-repeater-general-control-repeater-container").length + if(numItems >= 3){ + jQuery( "#customize-control-abiz_slider_upgrade .flixita-upgrade-pro-message" ).show(); + return false; + } + } + + if(parentid == 'customize-control-info_data') + { + var numItems = jQuery("#customize-control-info_data .customizer-repeater-general-control-repeater-container").length + if(numItems >= 4){ + jQuery( "#customize-control-abiz_info_upgrade .flixita-upgrade-pro-message" ).show(); + return false; + } + } + + if(parentid == 'customize-control-service_data') + { + var numItems = jQuery("#customize-control-service_data .customizer-repeater-general-control-repeater-container").length + if(numItems >= 4){ + jQuery( "#customize-control-abiz_service_upgrade .flixita-upgrade-pro-message" ).show(); + return false; + } + } + + if(parentid == 'customize-control-features2_data') + { + var numItems = jQuery("#customize-control-features2_data .customizer-repeater-general-control-repeater-container").length + if(numItems >= 8){ + jQuery( "#customize-control-abiz_features_upgrade .flixita-upgrade-pro-message" ).show(); + return false; + } + } + + var th = jQuery(this).parent(); + var id = 'customizer-repeater-' + abiz_customizer_repeater_uniqid(); + + if (typeof th !== 'undefined') { + /* Clone the first box*/ + var field = th.find('.customizer-repeater-general-control-repeater-container:first').clone( true, true ); + + if (typeof field !== 'undefined') { + /*Set the default value for choice between image and icon to icon*/ + field.find('.customizer-repeater-image-choice').val('customizer_repeater_icon'); + + /*Show icon selector*/ + field.find('.social-repeater-general-control-icon').show(); + + /*Hide image selector*/ + if (field.find('.social-repeater-general-control-icon').length > 0) { + field.find('.customizer-repeater-image-control').hide(); + } + + /*Show delete box button because it's not the first box*/ + field.find('.social-repeater-general-control-remove-field').show(); + + /* Empty control for icon */ + field.find('.input-group-addon').find('.fa').attr('class', 'fa'); + + + /*Remove all repeater fields except first one*/ + + field.find('.customizer-repeater-social-repeater').find('.customizer-repeater-social-repeater-container').not(':first').remove(); + field.find('.customizer-repeater-social-repeater-link').val(''); + field.find('.social-repeater-socials-repeater-colector').val(''); + + /*Remove value from icon field*/ + field.find('.icp').val(''); + + /*Remove value from text field*/ + field.find('.customizer-repeater-text-control').val(''); + + /*Remove value from link field*/ + field.find('.customizer-repeater-link-control').val(''); + + /*Remove value from text field*/ + field.find('.customizer-repeater-text2-control').val(''); + + /*Remove value from button field*/ + field.find('.customizer-repeater-button2-control').val(''); + + /*Remove value from link field*/ + field.find('.customizer-repeater-link2-control').val(''); + + /*Remove value from link field*/ + field.find('.customizer-repeater-link3-control').val(''); + + /*Set the default value in slide align*/ + field.find('.customizer-repeater-align').val('left'); + + /*Set the default value in checkbox*/ + field.find('.customizer-repeater-checkbox').val(''); + + /*Set box id*/ + field.find('.social-repeater-box-id').val(id); + + /*Remove value from media field*/ + field.find('.custom-media-url').val(''); + + /*Remove value from title field*/ + field.find('.customizer-repeater-title-control').val(''); + + + /*Remove value from color field*/ + field.find('div.customizer-repeater-color-control .wp-picker-container').replaceWith(''); + field.find('input.customizer-repeater-color-control').wpColorPicker(color_options); + + + field.find('div.customizer-repeater-color2-control .wp-picker-container').replaceWith(''); + field.find('input.customizer-repeater-color2-control').wpColorPicker(color_options); + + // field.find('.customize-control-notifications-container').remove(); + + + /*Remove value from subtitle field*/ + field.find('.customizer-repeater-subtitle-control').val(''); + + /*Remove value from subtitle field*/ + field.find('.customizer-repeater-subtitle2-control').val(''); + + + /*Remove value from subtitle field*/ + field.find('.customizer-repeater-btn3-control').val(''); + + /*Remove value from shortcode field*/ + field.find('.customizer-repeater-shortcode-control').val(''); + + /*Append new box*/ + th.find('.customizer-repeater-general-control-repeater-container:first').parent().append(field); + + /*Refresh values*/ + abiz_customizer_repeater_refresh_general_control_values(); + } + + } + return false; + }); + + + abiz_theme_controls.on('click', '.social-repeater-general-control-remove-field', function () { + if (typeof jQuery(this).parent() !== 'undefined') { + jQuery(this).parent().hide(500, function(){ + var main_social_items = jQuery("#customize-control-hdr_social_icons .customizer-repeater-general-control-repeater-container").length + if(main_social_items <= 4){ + jQuery( "#customize-control-abiz_social_icon_upgrade .flixita-upgrade-pro-message" ).hide(); + } + + var main_footer_top_items = jQuery("#customize-control-footer_top_info .customizer-repeater-general-control-repeater-container").length + if(main_footer_top_items <= 4){ + jQuery( "#customize-control-abiz_footer_top_info_upgrade .flixita-upgrade-pro-message" ).hide(); + } + + var main_slider_items = jQuery("#customize-control-slider .customizer-repeater-general-control-repeater-container").length + if(main_slider_items <= 3){ + jQuery( "#customize-control-abiz_slider_upgrade .flixita-upgrade-pro-message" ).hide(); + } + + var main_info_items = jQuery("#customize-control-info_data .customizer-repeater-general-control-repeater-container").length + if(main_info_items <= 4){ + jQuery( "#customize-control-abiz_info_upgrade .flixita-upgrade-pro-message" ).hide(); + } + + var main_service_items = jQuery("#customize-control-service_data .customizer-repeater-general-control-repeater-container").length + if(main_service_items <= 4){ + jQuery( "#customize-control-abiz_service_upgrade .flixita-upgrade-pro-message" ).hide(); + } + + var main_features_items = jQuery("#customize-control-features2_data .customizer-repeater-general-control-repeater-container").length + if(main_features_items <= 8){ + jQuery( "#customize-control-abiz_features_upgrade .flixita-upgrade-pro-message" ).hide(); + } + + jQuery(this).parent().remove(); + abiz_customizer_repeater_refresh_general_control_values(); + + }); + } + return false; + }); + + + abiz_theme_controls.on('keyup', '.customizer-repeater-title-control', function () { + abiz_customizer_repeater_refresh_general_control_values(); + }); + + jQuery('input.customizer-repeater-color-control').wpColorPicker(color_options); + jQuery('input.customizer-repeater-color2-control').wpColorPicker(color_options); + + abiz_theme_controls.on('keyup', '.customizer-repeater-subtitle-control', function () { + abiz_customizer_repeater_refresh_general_control_values(); + }); + + abiz_theme_controls.on('keyup', '.customizer-repeater-subtitle2-control', function () { + abiz_customizer_repeater_refresh_general_control_values(); + }); + + + abiz_theme_controls.on('keyup', '.customizer-repeater-btn3-control', function () { + abiz_customizer_repeater_refresh_general_control_values(); + }); + + + abiz_theme_controls.on('keyup', '.customizer-repeater-shortcode-control', function () { + abiz_customizer_repeater_refresh_general_control_values(); + }); + + abiz_theme_controls.on('keyup', '.customizer-repeater-text-control', function () { + abiz_customizer_repeater_refresh_general_control_values(); + }); + + abiz_theme_controls.on('keyup', '.customizer-repeater-link-control', function () { + abiz_customizer_repeater_refresh_general_control_values(); + }); + + abiz_theme_controls.on('keyup', '.customizer-repeater-text2-control', function () { + abiz_customizer_repeater_refresh_general_control_values(); + }); + + abiz_theme_controls.on('keyup', '.customizer-repeater-button2-control', function () { + abiz_customizer_repeater_refresh_general_control_values(); + }); + + abiz_theme_controls.on('keyup', '.customizer-repeater-link2-control', function () { + abiz_customizer_repeater_refresh_general_control_values(); + }); + + abiz_theme_controls.on('keyup', '.customizer-repeater-link3-control', function () { + abiz_customizer_repeater_refresh_general_control_values(); + }); + + abiz_theme_controls.on('change','.customizer-repeater-checkbox', function(){ + + abiz_customizer_repeater_refresh_general_control_values(); + }); + + /*Drag and drop to change icons order*/ + + jQuery('.customizer-repeater-general-control-droppable').sortable({ + axis: 'y', + update: function () { + abiz_customizer_repeater_refresh_general_control_values(); + } + }); + + + /*----------------- Socials Repeater ---------------------*/ + abiz_theme_controls.on('click', '.social-repeater-add-social-item', function (event) { + event.preventDefault(); + var th = jQuery(this).parent(); + var id = 'customizer-repeater-social-repeater-' + abiz_customizer_repeater_uniqid(); + if (typeof th !== 'undefined') { + var field = th.find('.customizer-repeater-social-repeater-container:first').clone( true, true ); + if (typeof field !== 'undefined') { + field.find( '.icp' ).val(''); + field.find( '.input-group-addon' ).find('.fa').attr('class','fa'); + field.find('.social-repeater-remove-social-item').show(); + field.find('.customizer-repeater-social-repeater-link').val(''); + field.find('.customizer-repeater-social-repeater-id').val(id); + th.find('.customizer-repeater-social-repeater-container:first').parent().append(field); + } + } + return false; + }); + + abiz_theme_controls.on('click', '.social-repeater-remove-social-item', function (event) { + event.preventDefault(); + var th = jQuery(this).parent(); + var repeater = jQuery(this).parent().parent(); + th.remove(); + abiz_customizer_repeater_refresh_social_icons(repeater); + return false; + }); + + abiz_theme_controls.on('keyup', '.customizer-repeater-social-repeater-link', function (event) { + event.preventDefault(); + var repeater = jQuery(this).parent().parent(); + abiz_customizer_repeater_refresh_social_icons(repeater); + return false; + }); + + abiz_theme_controls.on('change', '.customizer-repeater-social-repeater-container .icp', function (event) { + event.preventDefault(); + var repeater = jQuery(this).parent().parent().parent(); + abiz_customizer_repeater_refresh_social_icons(repeater); + return false; + }); + +}); + +var abizentityMap = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + '\'': ''', + '/': '/' +}; + +function abizescapeHtml(string) { + 'use strict'; + //noinspection JSUnresolvedFunction + string = String(string).replace(new RegExp('\r?\n', 'g'), '
    '); + string = String(string).replace(/\\/g, '\'); + return String(string).replace(/[&<>"'\/]/g, function (s) { + return abizentityMap[s]; + }); + +} \ No newline at end of file diff --git a/wp-content/themes/abiz/core/customizer/customizer-repeater/js/fontawesome-iconpicker.js b/wp-content/themes/abiz/core/customizer/customizer-repeater/js/fontawesome-iconpicker.js new file mode 100644 index 0000000..7ccd10a --- /dev/null +++ b/wp-content/themes/abiz/core/customizer/customizer-repeater/js/fontawesome-iconpicker.js @@ -0,0 +1,67 @@ +(function ($) { + 'use strict'; + wp.abizcustomizerRepeater = { + + init: function () { + $('.iconpicker-items>i').on('click', function () { + var iconClass = $(this).attr('class'); + var classInput = $(this).parents('.iconpicker-popover').prev().find('.icp'); + classInput.val(iconClass); + classInput.attr('value', iconClass); + + var iconPreview = classInput.next('.input-group-addon'); + var iconElement = '<\/i>'); + iconPreview.empty(); + iconPreview.append(iconElement); + + var th = $(this).parent().parent().parent(); + classInput.trigger('change'); + abiz_customizer_repeater_refresh_social_icons(th); + return false; + }); + }, + search: function ($searchField) { + var itemsList = $searchField.parent().next().find('.iconpicker-items'); + var searchTerm = $searchField.val().toLowerCase(); + if (searchTerm.length > 0) { + itemsList.children().each(function () { + if ($(this).filter('[title*='.concat(searchTerm)).length > 0 || searchTerm.length < 1) { + $(this).show(); + } else { + $(this).hide(); + } + }); + } else { + itemsList.children().show(); + } + }, + iconPickerToggle: function ($input) { + var iconPicker = $input.parent().next(); + iconPicker.addClass('iconpicker-visible'); + } + }; + + $(document).ready(function () { + wp.abizcustomizerRepeater.init(); + + $('.iconpicker-search').on('keyup', function () { + wp.abizcustomizerRepeater.search($(this)); + }); + + $('.icp-auto').on('click', function () { + wp.abizcustomizerRepeater.iconPickerToggle($(this)); + }); + + $(document).mouseup( function (e) { + var container = $('.iconpicker-popover'); + + if (!container.is(e.target) + && container.has(e.target).length === 0) + { + container.removeClass('iconpicker-visible'); + } + }); + + }); + +})(jQuery); diff --git a/wp-content/themes/abiz/core/customizer/customizer-repeater/js/fontawesome-iconpicker.min.js b/wp-content/themes/abiz/core/customizer/customizer-repeater/js/fontawesome-iconpicker.min.js new file mode 100644 index 0000000..9187e17 --- /dev/null +++ b/wp-content/themes/abiz/core/customizer/customizer-repeater/js/fontawesome-iconpicker.min.js @@ -0,0 +1 @@ +!function(e){"use strict";wp.abizcustomizerRepeater={init:function(){e(".iconpicker-items>i").on("click",function(){var i=e(this).attr("class").slice(3),t=e(this).parents(".iconpicker-popover").prev().find(".icp");t.val(i),t.attr("value",i);var n=t.next(".input-group-addon"),c='');n.empty(),n.append(c);var r=e(this).parent().parent().parent();return t.trigger("change"),abiz_customizer_repeater_refresh_social_icons(r),!1})},search:function(i){var t=i.parent().next().find(".iconpicker-items"),n=i.val().toLowerCase();n.length>0?t.children().each(function(){e(this).filter("[title*=".concat(n)).length>0||n.length<1?e(this).show():e(this).hide()}):t.children().show()},iconPickerToggle:function(e){e.parent().next().addClass("iconpicker-visible")}},e(document).ready(function(){wp.abizcustomizerRepeater.init(),e(".iconpicker-search").on("keyup",function(){wp.abizcustomizerRepeater.search(e(this))}),e(".icp-auto").on("click",function(){wp.abizcustomizerRepeater.iconPickerToggle(e(this))}),e(document).mouseup(function(i){var t=e(".iconpicker-popover");t.is(i.target)||0!==t.has(i.target).length||t.removeClass("iconpicker-visible")})})}(jQuery); \ No newline at end of file diff --git a/wp-content/themes/abiz/core/customizer/customizer.php b/wp-content/themes/abiz/core/customizer/customizer.php new file mode 100644 index 0000000..feca953 --- /dev/null +++ b/wp-content/themes/abiz/core/customizer/customizer.php @@ -0,0 +1,104 @@ +get_setting('blogname')->transport = 'postMessage'; + $wp_customize->get_setting('blogdescription')->transport = 'postMessage'; + $wp_customize->get_setting('header_textcolor')->transport = 'postMessage'; + $wp_customize->get_setting('background_color')->transport = 'postMessage'; + $wp_customize->get_setting('custom_logo')->transport = 'refresh'; + + /** + * Register controls + */ + $wp_customize->register_control_type('Abiz_Control_Sortable'); + $wp_customize->register_control_type('Abiz_Customize_Toggle_Control'); + + // Control + require ABIZ_THEME_CONTROL_DIR . '/customize-base-control.php'; + require ABIZ_THEME_CONTROL_DIR . '/customize-control-sortable.php'; + require ABIZ_THEME_CONTROL_DIR . '/customize-category-control.php'; + require ABIZ_THEME_CONTROL_DIR . '/customize-toggle-control.php'; + + // Sainitization + require ABIZ_THEME_CORE_DIR . '/customizer/abiz-customize-sanitization.php'; +} +add_action('customize_register','abiz_customizer_register'); + + +function abiz_customizer_script() +{ + wp_enqueue_script('abiz-customizer-section', ABIZ_THEME_CORE_URI . '/customizer/assets/js/customizer-section.js', array( + "jquery" + ) , '', true); +} +add_action('customize_controls_enqueue_scripts','abiz_customizer_script'); + +// customizer settings. +function abiz_customizer_settings() +{ + /* + * Customizer Notifications + */ + require get_template_directory() . '/core/customizer/customizer-notice/abiz-customizer-notify.php'; + + $abiz_config_customizer = array( + 'recommended_plugins' => array( + 'daddy-plus' => array( + 'recommended' => true, + 'description' => sprintf( + /* translators: %s: plugin name */ + esc_html__( 'Recommended Plugin: If you want to show all the features and business sections of the FrontPage. please install and activate %s plugin', 'abiz' ), + 'Daddy Plus' + ), + ), + ), + 'recommended_actions' => array(), + 'recommended_actions_title' => esc_html__( 'Recommended Actions', 'abiz' ), + 'recommended_plugins_title' => esc_html__( 'Add More Features', 'abiz' ), + 'install_button_label' => esc_html__( 'Install and Activate', 'abiz' ), + 'activate_button_label' => esc_html__( 'Activate', 'abiz' ), + 'abiz_deactivate_button_label' => esc_html__( 'Deactivate', 'abiz' ), + ); + abiz_Customizer_Notify::init( apply_filters( 'abiz_customizer_notify_array', $abiz_config_customizer ) ); + + $settings = array( + 'panels-and-sections', + 'selective-refresh-and-partial', + 'general' + ); + + foreach ($settings as $setting) + { + $feature_file = get_theme_file_path('/core/customizer/abiz-' . $setting . '.php'); + require $feature_file; + } + + require ABIZ_THEME_CONTROL_DIR . '/customize-upgrade-control.php'; +} +add_action('after_setup_theme','abiz_customizer_settings'); + + +/** + * Binds JS handlers to make Theme Customizer preview reload changes asynchronously. + */ +function abiz_customize_preview_js() +{ + wp_enqueue_script('abiz-customizer-preview', ABIZ_THEME_CORE_URI . '/customizer/assets/js/customizer.js', array( + 'customize-preview' + ) , '20151215', true); +} +add_action('customize_preview_init','abiz_customize_preview_js'); + + +//recommended plugin section function. +function abiz_recommended_plugin_section( $manager ) { + // Register custom section types. + $manager->register_section_type( 'abiz_Customize_Recommended_Plugin_Section' ); +} \ No newline at end of file diff --git a/wp-content/themes/abiz/core/theme-menu/class-bootstrap-navwalker.php b/wp-content/themes/abiz/core/theme-menu/class-bootstrap-navwalker.php new file mode 100644 index 0000000..e154fd9 --- /dev/null +++ b/wp-content/themes/abiz/core/theme-menu/class-bootstrap-navwalker.php @@ -0,0 +1,342 @@ +\n"; + } + + /** + * @see Walker::start_el() + * @since 3.0.0 + * + * @param string $output Passed by reference. Used to append additional content. + * @param object $item Menu item data object. + * @param int $depth Depth of menu item. Used for padding. + * @param int $current_page Menu item ID. + * @param object $args + */ + public function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) { + $indent = ( $depth ) ? str_repeat( "\t", $depth ) : ''; + + /** + * Dividers, Headers or Disabled + * ============================= + * Determine whether the item is a Divider, Header, Disabled or regular + * menu item. To prevent errors we use the strcasecmp() function to so a + * comparison that is not case sensitive. The strcasecmp() function returns + * a 0 if the strings are equal. + */ + if ( strcasecmp( $item->attr_title, 'divider' ) == 0 && $depth === 1 ) { + $output .= $indent . ''; + $fb_output .= ''; + + if ( $container ) { + $fb_output .= ''; + } + + echo $fb_output; + } + } +} + +function abiz_bootstrap_page_menu_args( $args ) { + if ( ! isset( $args['show_home'] ) ) + $args['show_home'] = true; + return $args; +} +add_filter( 'wp_page_menu_args', 'abiz_bootstrap_page_menu_args' ); +function abiz_bootstrap_fallback_page_menu( $args = array() ) { + $defaults = array('sort_column' => 'menu_order, post_title', 'menu_class' => 'menu', 'echo' => true, 'link_before' => '', 'link_after' => ''); + $args = wp_parse_args( $args, $defaults ); + $args = apply_filters( 'wp_page_menu_args', $args ); + $menu = ''; + $list_args = $args; + // Show Home in the menu + if ( ! empty($args['show_home']) ) { + if ( true === $args['show_home'] || '1' === $args['show_home'] || 1 === $args['show_home'] ) + $text = 'Home'; + else + $text = $args['show_home']; + $class = ''; + if ( is_front_page() && !is_paged() ) + { + $class = 'class="nav-item menu-item active"'; + } + else + { + $class = 'class="nav-item menu-item "'; + } + $menu .= '
  • ' . $args['link_before'] . $text . $args['link_after'] . '
  • '; + // If the front page is a page, add it to the exclude list + if (get_option('show_on_front') == 'page') { + if ( !empty( $list_args['exclude'] ) ) { + $list_args['exclude'] .= ','; + } else { + $list_args['exclude'] = ''; + } + $list_args['exclude'] .= get_option('page_on_front'); + } + } + $list_args['echo'] = false; + $list_args['title_li'] = ''; + $list_args['walker'] = new abiz_bootstrap_walker_page_menu; + $menu .= str_replace( array( "\r", "\n", "\t" ), '', wp_list_pages($list_args) ); + if ( $menu ) + $menu = '
      ' . $menu . '
    '; + + $menu = $menu . "\n"; + $menu = apply_filters( 'wp_page_menu', $menu, $args ); + if ( $args['echo'] ) + echo $menu; + else + return $menu; +} +class abiz_bootstrap_walker_page_menu extends Walker_Page{ + function start_lvl( &$output, $depth = 0, $args = array() ) { + $indent = str_repeat("\t", $depth); + $output .= "\n$indent
    +
    + + + +
    + + + + + + + diff --git a/wp-content/themes/abiz/frontpage.php b/wp-content/themes/abiz/frontpage.php new file mode 100644 index 0000000..c5c6ec6 --- /dev/null +++ b/wp-content/themes/abiz/frontpage.php @@ -0,0 +1,15 @@ + \ No newline at end of file diff --git a/wp-content/themes/abiz/fullwidth-page.php b/wp-content/themes/abiz/fullwidth-page.php new file mode 100644 index 0000000..c1e41a6 --- /dev/null +++ b/wp-content/themes/abiz/fullwidth-page.php @@ -0,0 +1,26 @@ + +
    +
    +
    +
    + comment_status == 'open' ) { + comments_template( '', true ); // show comments + } + ?> +
    +
    +
    +
    + \ No newline at end of file diff --git a/wp-content/themes/abiz/functions.php b/wp-content/themes/abiz/functions.php new file mode 100644 index 0000000..973e9e6 --- /dev/null +++ b/wp-content/themes/abiz/functions.php @@ -0,0 +1,57 @@ + esc_html__( 'Primary Menu', 'abiz' ) + ) ); + add_theme_support( 'html5', array( + 'search-form', + 'comment-form', + 'comment-list', + 'gallery', + 'caption', + ) ); + add_theme_support( 'custom-background', apply_filters( 'abiz_custom_background_args', array( + 'default-color' => 'ffffff', + 'default-image' => '', + ) ) ); + add_theme_support( 'customize-selective-refresh-widgets' ); + add_theme_support('custom-logo'); + add_theme_support( 'woocommerce' ); + + // Root path/URI. + define( 'ABIZ_THEME_DIR', get_template_directory() ); + define( 'ABIZ_THEME_URI', get_template_directory_uri() ); + + // Root path/URI. + define( 'ABIZ_THEME_CORE_DIR', ABIZ_THEME_DIR . '/core'); + define( 'ABIZ_THEME_CORE_URI', ABIZ_THEME_URI . '/core'); + + // Control path/URI. + define( 'ABIZ_THEME_CONTROL_DIR', ABIZ_THEME_CORE_DIR . '/customizer/custom-controls'); + define( 'ABIZ_THEME_CONTROL_URI', ABIZ_THEME_CORE_DIR . '/customizer/custom-controls'); +} +endif; +add_action( 'after_setup_theme', 'abiz_setup' ); + +// Content Width +function abiz_content_width() { + $GLOBALS['content_width'] = apply_filters( 'abiz_content_width', 1200 ); +} +add_action( 'after_setup_theme', 'abiz_content_width', 0 ); + +// Main file +require_once get_template_directory() . '/core/core.php'; \ No newline at end of file diff --git a/wp-content/themes/abiz/header.php b/wp-content/themes/abiz/header.php new file mode 100644 index 0000000..ffe41d9 --- /dev/null +++ b/wp-content/themes/abiz/header.php @@ -0,0 +1,28 @@ + + +> + + + + + + + + + + > + + + +
    + \ No newline at end of file diff --git a/wp-content/themes/abiz/index.php b/wp-content/themes/abiz/index.php new file mode 100644 index 0000000..083551c --- /dev/null +++ b/wp-content/themes/abiz/index.php @@ -0,0 +1,48 @@ + +
    +
    +
    +
    +
    + +
    + +
    + +
    +
    +
    +
    + '', + 'next_text' => '' + ) ); + ?> +
    +
    +
    +
    + +
    +
    +
    + diff --git a/wp-content/themes/abiz/licence.txt b/wp-content/themes/abiz/licence.txt new file mode 100644 index 0000000..818433e --- /dev/null +++ b/wp-content/themes/abiz/licence.txt @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/wp-content/themes/abiz/page.php b/wp-content/themes/abiz/page.php new file mode 100644 index 0000000..9a830bb --- /dev/null +++ b/wp-content/themes/abiz/page.php @@ -0,0 +1,45 @@ + +
    +
    +
    + +
    + + +
    + + + +
    + + comment_status == 'open' ) { + comments_template( '', true ); // show comments + } + ?> +
    + +
    +
    +
    + \ No newline at end of file diff --git a/wp-content/themes/abiz/pagebuilder.php b/wp-content/themes/abiz/pagebuilder.php new file mode 100644 index 0000000..03b9132 --- /dev/null +++ b/wp-content/themes/abiz/pagebuilder.php @@ -0,0 +1,28 @@ + +
    +
    + +
    +
    + Themes and click the Add New button. +2. Click Upload and Choose File, then select the theme's .zip file. Click Install Now. +3. Click Activate to use your new theme right away. + +== License == + +Abiz WordPress Theme, Copyright (C) 2025, Themes Daddy +Abiz is distributed under the terms of the GNU GPL + +Animate - Copyright (c) 2015 Daniel Eden +Source: http://daneden.me/animate +Licensed: Under the MIT license - https://github.com/daneden/animate.css/blob/master/LICENSE + +Bootstrap v5.0.0 (http://getbootstrap.com) +Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + +Font Awesome 6.5.1 +Source: https://github.com/FortAwesome/Font-Awesome +License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + +Owl Carousel v2.3.4, (C) 2013 - 2018, David Deutsch +Source: https://github.com/OwlCarousel2/OwlCarousel2/ +License: [MIT](https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE) + +WOW - Copyright (C) 2016; Thomas Grainger +Source: https://wowjs.uk/ +License: [MIT](https://github.com/graingert/WOW/blob/master/LICENSE) + +Webfonts Loader +Source: https://github.com/WPTT/webfont-loader +License: MIT LICENSE (https://opensource.org/licenses/MIT) + +Repeater Control +Source: https://github.com/cristian-ungureanu/customizer-repeater +License: MIT LICENSE (https://github.com/cristian-ungureanu/customizer-repeater/blob/production/LICENSE) + +== Screenshots == +All Abiz images are licensed under [CC0] (https://creativecommons.org/publicdomain/zero/1.0/) + +Image for theme screenshot +License: Creative Commons Zero(https://pxhere.com/en/license) +Source: https://pxhere.com/en/photo/948768 , https://pxhere.com/en/photo/1695952 , https://pxhere.com/en/photo/1451441 , https://pxhere.com/en/photo/871986 , https://pxhere.com/en/photo/1452805 + +Image for page header +License: CC0 Public Domain(https://stocksnap.io/license) +Source: https://stocksnap.io/photo/macbook-laptop-LEJ7HJ5BEA + +== Changelog == + +@Version 1.0.35 +* Style Issue Fixed + +@Version 1.0.34 +* Sidebar Widget link Outline issue Fixed + +@Version 1.0.33 +* Footer Widget link Outline issue Fixed + +@Version 1.0.32 +* Tested With WordPress 6.9 + +@Version 1.0.31 +* WooCommerce Cart Page Text Decoration Issue Fixed + +@Version 1.0.30 +* About Section Video Button Text Decoration Issue Fixed + +@Version 1.0.29 +* Block Latest Comment Hover & Focus Color Changed + +@Version 1.0.28 +* Block Latest Comment Color Issue Fixed + +@Version 1.0.27 +* Tested With WordPress 6.8.3 + +@Version 1.0.26 +* Block File Style Issue Fixed + +@Version 1.0.25 +* Block Latest Post Title Font Size Changed + +@Version 1.0.24 +* WooCommerce Notice Issue Fixed + +@Version 1.0.23 +* Style Improvement + +@Version 1.0.22 +* WooCommerce Cart Page Remove Style Issue Fixed + +@Version 1.0.21 +* WooCommerce Cart Page Total Title Style Issue Fixed + +@Version 1.0.20 +* Block Style Improvement + +@Version 1.0.19 +* Block Post Title Style Issue Fixed + +@Version 1.0.18 +* Tested With WordPress 6.8.2 + +@Version 1.0.17 +* Block Site Tagline Style Issue Fixed + +@Version 1.0.16 +* Block Site Title Style Issue Fixed + +@Version 1.0.15 +* Block Video Caption Style Issue Fixed + +@Version 1.0.14 +* Block Image Caption Style Issue Fixed + +@Version 1.0.13 +* Block Image Align Issue Fixed + +@Version 1.0.12 +* Tested With WordPress 6.8.1 + +@Version 1.0.11 +* Top Header Padding Issue Fixed + +@Version 1.0.10 +* Footer Widget Title Style Issue Fixed + +@Version 1.0.9 +* Tested With WordPress 6.8 + +@Version 1.0.8 +* Block Site Title Style Issue Fixed + +@Version 1.0.7 +* Sidebar Latest Comment Widget Style Issue Fixed + +@Version 1.0.6 +* Block Author Style Issue Fixed + +@Version 1.0.5 +* Block Image Caption Style Issue Fixed + +@Version 1.0.4 +* Menu Issue Fixed + +@Version 1.0.3 +* Menu Issue Fixed + +@Version 1.0.2 +* Pro Details Panel Added +* Theme URI Added + +@Version 1.0.1 +* Initial release. \ No newline at end of file diff --git a/wp-content/themes/abiz/screenshot.png b/wp-content/themes/abiz/screenshot.png new file mode 100644 index 0000000..e5b3d41 Binary files /dev/null and b/wp-content/themes/abiz/screenshot.png differ diff --git a/wp-content/themes/abiz/search.php b/wp-content/themes/abiz/search.php new file mode 100644 index 0000000..5ea81bb --- /dev/null +++ b/wp-content/themes/abiz/search.php @@ -0,0 +1,47 @@ + +
    +
    +
    +
    +
    + +
    +
    +
    +
    + '', + 'next_text' => '', + ) + ); + ?> +
    +
    +
    +
    + +
    +
    +
    + \ No newline at end of file diff --git a/wp-content/themes/abiz/searchform.php b/wp-content/themes/abiz/searchform.php new file mode 100644 index 0000000..dc9fa49 --- /dev/null +++ b/wp-content/themes/abiz/searchform.php @@ -0,0 +1,12 @@ + + \ No newline at end of file diff --git a/wp-content/themes/abiz/sidebar-woocommerce.php b/wp-content/themes/abiz/sidebar-woocommerce.php new file mode 100644 index 0000000..5a121c3 --- /dev/null +++ b/wp-content/themes/abiz/sidebar-woocommerce.php @@ -0,0 +1,11 @@ + +
    + +
    + \ No newline at end of file diff --git a/wp-content/themes/abiz/sidebar.php b/wp-content/themes/abiz/sidebar.php new file mode 100644 index 0000000..dafafae --- /dev/null +++ b/wp-content/themes/abiz/sidebar.php @@ -0,0 +1,11 @@ + +
    + +
    + \ No newline at end of file diff --git a/wp-content/themes/abiz/single.php b/wp-content/themes/abiz/single.php new file mode 100644 index 0000000..1fb5ec6 --- /dev/null +++ b/wp-content/themes/abiz/single.php @@ -0,0 +1,28 @@ + +
    +
    +
    +
    +
    + + +
    + +
    + + + + +
    +
    + +
    +
    +
    + diff --git a/wp-content/themes/abiz/style.css b/wp-content/themes/abiz/style.css new file mode 100644 index 0000000..ca75006 --- /dev/null +++ b/wp-content/themes/abiz/style.css @@ -0,0 +1,27 @@ +/* +Theme Name: Abiz +Author: Themes Daddy +Author URI: https://themesdaddy.com/ +Theme URI: https://themesdaddy.com/themes/abiz-free/ +Description: Lightning Fast Speed & Responsive Theme. Abiz is a responsive and fully customizable theme to create any kind of websites. The advanced admin panel will enable you to customize it without any technical knowledge. This theme is lightweight, it will enable you to create almost any type of website such a blog, portfolio, acting and shooting industry, total trendy news, newspaper, mega magazine, fashion, dark themes, petcare, animals wildlife, wooden architecture, plumbing contractor, painting estate, interior design, rooms furniture, home decoration, green floral nature, construction, corporate, multiple agency, business promotion, dark variation, industries, Beauty & spa salons, photography, gym, fitness, health, medical, startups, business agencies, law firms, travel, NGO, charity, yoga, kids education, training institute, university portal, restaurant, meta shop, quick magazines, mutual fund, finance, accounting, consulting ,travel agency website. Theme is fully compatible with popular WordPress plugins like Elementor Page Builder, Slider, Carousal, Beaver Builder, Brizy, Visual Composer, Divi, SiteOrigin, Gutenberg, Block-Enabled, WooCommerce, WPML, Yoast SEO, Shortcode, Jetpack, Contact Form 7, Mailchimp for WordPress, bbPress, Demo Importer, WPForms and more. Your WordPress website will never be let down with this theme. View the demo of Abiz Pro https://demo.themesdaddy.com/abiz-pro/ +Tags: one-column, two-columns, right-sidebar, flexible-header, custom-background, custom-header, custom-menu, editor-style, featured-images, footer-widgets, post-formats, theme-options, threaded-comments, rtl-language-support, translation-ready, full-width-template, custom-logo, blog, e-commerce, portfolio +Version: 1.0.35 +Tested up to: 6.9 +Requires PHP: 5.4 +License URI: http://www.gnu.org/licenses/gpl-2.0.html +License: GNU General Public License v2 or later +Text Domain: abiz +Slug: abiz +*/ + +.btn, .btn.btn-primary { + border-radius: 50px; +} + +.abiz-marquee-section { + margin-top: 6.75rem; +} + +.main-footer { + background: var(--bs-secondary); +} \ No newline at end of file diff --git a/wp-content/themes/abiz/template-parts/author-details.php b/wp-content/themes/abiz/template-parts/author-details.php new file mode 100644 index 0000000..6b18cf0 --- /dev/null +++ b/wp-content/themes/abiz/template-parts/author-details.php @@ -0,0 +1,40 @@ + +
    +
    +
    + ID : false; + ?> +
    + +
    +
    +
    + + +

    + tag. %2$s: . + printf( wp_kses_post( __( 'You haven’t entered your Biographical Information yet. %1$sEdit your Profile%2$s now.', 'abiz' ) ), '
    ', '' ); + ?> +

    + +

    + + +
    +
    +
    +
    \ No newline at end of file diff --git a/wp-content/themes/abiz/template-parts/content-none.php b/wp-content/themes/abiz/template-parts/content-none.php new file mode 100644 index 0000000..9a828f0 --- /dev/null +++ b/wp-content/themes/abiz/template-parts/content-none.php @@ -0,0 +1,37 @@ + +
    > +
    + ' . wp_kses( + /* translators: 1: link to WP admin new post page. */ + __( 'Ready to publish your first post? Get started here.', 'abiz' ), + array( + 'a' => array( + 'href' => array(), + ), + ) + ) . '

    ', + esc_url( admin_url( 'post-new.php' ) ) + ); + + elseif ( is_search() ) : + ?> + +

    + +

    + +
    +
    \ No newline at end of file diff --git a/wp-content/themes/abiz/template-parts/content-page.php b/wp-content/themes/abiz/template-parts/content-page.php new file mode 100644 index 0000000..6c5d0ee --- /dev/null +++ b/wp-content/themes/abiz/template-parts/content-page.php @@ -0,0 +1,87 @@ + +
    > +
    +
    +
    + +
    +
    +
    +
    + + + +
    +
    +
    +
    +
    +
    + + + +
    +
    +
    +
    + + +
    +
    + + + + ', '' ); + + else: + + the_title( sprintf( '

    ', esc_url( get_permalink() ) ), '

    ' ); + + endif; + elseif ( 'content' === $blog_data_order ) : + if($enable_blog_excerpt == '1' && !is_single()): + the_excerpt(); + abiz_blog_excerpt_button(); + else: + the_content( + sprintf( + __( 'Read More', 'abiz' ), + ' '.esc_html(get_the_title()).'' + ) + ); + endif; + endif; + endforeach; + ?> +
    +
    +
    +
    \ No newline at end of file diff --git a/wp-content/themes/abiz/template-parts/content.php b/wp-content/themes/abiz/template-parts/content.php new file mode 100644 index 0000000..5f658dc --- /dev/null +++ b/wp-content/themes/abiz/template-parts/content.php @@ -0,0 +1,92 @@ + +
    > +
    +
    +
    + +
    +
    +
    +
    + + + +
    +
    +
    +
    +
    +
    + + + +
    +
    +
    +
    + + +
    +
    + + + + ', '' ); + + else: + + the_title( sprintf( '

    ', esc_url( get_permalink() ) ), '

    ' ); + + endif; + elseif ( 'content' === $blog_data_order ) : + if($enable_blog_excerpt == '1' && !is_single()): + the_excerpt(); + abiz_blog_excerpt_button(); + else: + the_content( + sprintf( + __( 'Read More', 'abiz' ), + ' '.esc_html(get_the_title()).'' + ) + ); + endif; + wp_link_pages( array( + 'before' => '', + ) ); + endif; + endforeach; + ?> +
    +
    +
    +
    \ No newline at end of file diff --git a/wp-content/themes/abiz/template-parts/footer-copyright.php b/wp-content/themes/abiz/template-parts/footer-copyright.php new file mode 100644 index 0000000..7ad9351 --- /dev/null +++ b/wp-content/themes/abiz/template-parts/footer-copyright.php @@ -0,0 +1,14 @@ + + \ No newline at end of file diff --git a/wp-content/themes/abiz/template-parts/footer-top.php b/wp-content/themes/abiz/template-parts/footer-top.php new file mode 100644 index 0000000..3b45c15 --- /dev/null +++ b/wp-content/themes/abiz/template-parts/footer-top.php @@ -0,0 +1,45 @@ + + + \ No newline at end of file diff --git a/wp-content/themes/abiz/template-parts/footer-widget.php b/wp-content/themes/abiz/template-parts/footer-widget.php new file mode 100644 index 0000000..6fcebb1 --- /dev/null +++ b/wp-content/themes/abiz/template-parts/footer-widget.php @@ -0,0 +1,34 @@ + + \ No newline at end of file diff --git a/wp-content/themes/abiz/template-parts/header-account.php b/wp-content/themes/abiz/template-parts/header-account.php new file mode 100644 index 0000000..0aceb5f --- /dev/null +++ b/wp-content/themes/abiz/template-parts/header-account.php @@ -0,0 +1,14 @@ + + + +
  • + class="btn btn-primary btn-like-icon"> +
  • + +
  • + +
    +
      + +
    +
    +
  • + +
  • + +
    +
    +
    + + +
    + +
    +
    +
  • + + +

    + +

    +
    + + +

    + + + \ No newline at end of file diff --git a/wp-content/themes/abiz/template-parts/site-info.php b/wp-content/themes/abiz/template-parts/site-info.php new file mode 100644 index 0000000..b5035a3 --- /dev/null +++ b/wp-content/themes/abiz/template-parts/site-info.php @@ -0,0 +1,10 @@ + + + 'primary_menu', + 'container' => '', + 'menu_class' => 'main-menu', + 'fallback_cb' => 'abiz_bootstrap_fallback_page_menu', + 'walker' => new abiz_bootstrap_navwalker() + ) + ); \ No newline at end of file diff --git a/wp-content/themes/abiz/theme-header.php b/wp-content/themes/abiz/theme-header.php new file mode 100644 index 0000000..8099b94 --- /dev/null +++ b/wp-content/themes/abiz/theme-header.php @@ -0,0 +1,69 @@ +
    + + +
    \ No newline at end of file diff --git a/wp-content/themes/abiz/woocommerce.php b/wp-content/themes/abiz/woocommerce.php new file mode 100644 index 0000000..e3b6ca3 --- /dev/null +++ b/wp-content/themes/abiz/woocommerce.php @@ -0,0 +1,19 @@ + +
    +
    +
    +
    + +
    + +
    +
    +
    + + diff --git a/wp-content/themes/abiz/woocommerce/cart/mini-cart.php b/wp-content/themes/abiz/woocommerce/cart/mini-cart.php new file mode 100644 index 0000000..91a9fb1 --- /dev/null +++ b/wp-content/themes/abiz/woocommerce/cart/mini-cart.php @@ -0,0 +1,275 @@ + + +cart->is_empty() ) : ?> +
    + + cart->cart_contents_count; + $cart_url = wc_get_cart_url(); + + if ( $count > 0 ) { + ?> + + + + + +
    + + cart->get_cart_subtotal(); ?> +
    +
    +
      + cart->get_cart() as $cart_item_key => $cart_item ) { + $_product = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key ); + $product_id = apply_filters( 'woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key ); + + if ( $_product && $_product->exists() && $cart_item['quantity'] > 0 && apply_filters( 'woocommerce_widget_cart_item_visible', true, $cart_item, $cart_item_key ) ) { + $product_name = apply_filters( 'woocommerce_cart_item_name', $_product->get_name(), $cart_item, $cart_item_key ); + $thumbnail = apply_filters( 'woocommerce_cart_item_thumbnail', $_product->get_image(), $cart_item, $cart_item_key ); + $product_price = apply_filters( 'woocommerce_cart_item_price', WC()->cart->get_product_price( $_product ), $cart_item, $cart_item_key ); + $product_permalink = apply_filters( 'woocommerce_cart_item_permalink', $_product->is_visible() ? $_product->get_permalink( $cart_item ) : '', $cart_item, $cart_item_key ); + ?> +
    • + ×', + esc_url( wc_get_cart_remove_url( $cart_item_key ) ), + esc_attr__( 'Remove this item', 'abiz' ), + esc_attr( $product_id ), + esc_attr( $cart_item_key ), + esc_attr( $_product->get_sku() ) + ), + $cart_item_key + ); + ?> + +
      + +
      + + + + + +
      + +
      + + + +
      + + + ' . sprintf( '%s × %s', $cart_item['quantity'], $product_price ) . '', $cart_item, $cart_item_key ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?> +
    • + +
    + + + + + + + + cart->cart_contents_count; + $cart_url = wc_get_cart_url(); + + if ( $count > 0 ) { ?> + + + + + + + + + + +

    + + + + + + + +
    + cart->is_empty() ) : ?> +
    + + cart->cart_contents_count; + $cart_url = wc_get_cart_url(); + + if ( $count > 0 ) { + ?> + + + + + +
    + + cart->get_cart_subtotal(); ?> +
    +
    +
      + cart->get_cart() as $cart_item_key => $cart_item ) { + $_product = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key ); + $product_id = apply_filters( 'woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key ); + + if ( $_product && $_product->exists() && $cart_item['quantity'] > 0 && apply_filters( 'woocommerce_widget_cart_item_visible', true, $cart_item, $cart_item_key ) ) { + $product_name = apply_filters( 'woocommerce_cart_item_name', $_product->get_name(), $cart_item, $cart_item_key ); + $thumbnail = apply_filters( 'woocommerce_cart_item_thumbnail', $_product->get_image(), $cart_item, $cart_item_key ); + $product_price = apply_filters( 'woocommerce_cart_item_price', WC()->cart->get_product_price( $_product ), $cart_item, $cart_item_key ); + $product_permalink = apply_filters( 'woocommerce_cart_item_permalink', $_product->is_visible() ? $_product->get_permalink( $cart_item ) : '', $cart_item, $cart_item_key ); + ?> +
    • + ×', + esc_url( wc_get_cart_remove_url( $cart_item_key ) ), + esc_attr__( 'Remove this item', 'abiz' ), + esc_attr( $product_id ), + esc_attr( $cart_item_key ), + esc_attr( $_product->get_sku() ) + ), + $cart_item_key + ); + ?> + +
      + +
      + + + + + +
      + +
      + + + +
      + + + ' . sprintf( '%s × %s', $cart_item['quantity'], $product_price ) . '', $cart_item, $cart_item_key ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?> +
    • + +
    + + + + + + + cart->cart_contents_count; + $cart_url = wc_get_cart_url(); + + if ( $count > 0 ) { + ?> + + + + + + + + + + + +

    + + + + +
    + is_visible() ) { + return; +} +?> +
  • > +
    +
    +
    + + + is_on_sale() ) : echo apply_filters( 'woocommerce_sale_flash', '
    ' . esc_html__( 'Sale', 'abiz' ) . '
    ', $post, $product ); endif; + ?> +
    + +
    +
    +
    +
    +

    +
    + get_price_html(); ?> +
    +
    +
    +
    +
    +
  • \ No newline at end of file diff --git a/wp-content/themes/arvina/core/core.php b/wp-content/themes/arvina/core/core.php new file mode 100644 index 0000000..59a0c3a --- /dev/null +++ b/wp-content/themes/arvina/core/core.php @@ -0,0 +1,44 @@ + $header_image, + 'default-text-color' => 'fff', + 'width' => 2000, + 'height' => 200, + 'flex-height' => true, + 'wp-head-callback' => 'abiz_header_style', + ))); +} +add_action('after_setup_theme', 'arvina_custom_header_setup'); + +require get_stylesheet_directory() . '/core/customizer/custom-controls/customize-upgrade-control.php'; + +/** + * Import Options From Parent Theme + * + */ +function arvina_parent_theme_options() { + $abiz_mods = get_option( 'theme_mods_abiz' ); + if ( ! empty( $abiz_mods ) ) { + foreach ( $abiz_mods as $abiz_mod_k => $abiz_mod_v ) { + set_theme_mod( $abiz_mod_k, $abiz_mod_v ); + } + } +} +add_action( 'after_switch_theme', 'arvina_parent_theme_options' ); \ No newline at end of file diff --git a/wp-content/themes/arvina/core/customizer/custom-controls/customize-upgrade-control.php b/wp-content/themes/arvina/core/customizer/custom-controls/customize-upgrade-control.php new file mode 100644 index 0000000..cd6fbcf --- /dev/null +++ b/wp-content/themes/arvina/core/customizer/custom-controls/customize-upgrade-control.php @@ -0,0 +1,40 @@ + +
    + +
    + add_setting( + 'premium_info_buttons', + array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'arvina_sanitize_text', + ) + ); + + $wp_customize->add_control( new Arvina_WP_Button_Customize_Control( $wp_customize, 'premium_info_buttons', array( + 'section' => 'abiz_upgrade_premium', + )) +); +} +add_action( 'customize_register', 'arvina_upgrade_pro_options', 999 ); \ No newline at end of file diff --git a/wp-content/themes/arvina/functions.php b/wp-content/themes/arvina/functions.php new file mode 100644 index 0000000..e87ca92 --- /dev/null +++ b/wp-content/themes/arvina/functions.php @@ -0,0 +1,11 @@ + + +> + + + + + + + + + + > + + + +
    + \ No newline at end of file diff --git a/wp-content/themes/arvina/readme.txt b/wp-content/themes/arvina/readme.txt new file mode 100644 index 0000000..63e5777 --- /dev/null +++ b/wp-content/themes/arvina/readme.txt @@ -0,0 +1,107 @@ +== Arvina == +Contributors: themesdaddy +Requires at least: 4.5 +Tested up to: 6.9 +Requires PHP: 5.4 +Stable tag: 1.0.12 +License: GNU General Public License v3 or later +License URI: http://www.gnu.org/licenses/gpl.html +Tags: one-column, two-columns, right-sidebar, flexible-header, custom-background, custom-header, custom-menu, editor-style, featured-images, footer-widgets, post-formats, theme-options, threaded-comments, rtl-language-support, translation-ready, full-width-template, custom-logo, blog, e-commerce, portfolio + +== Description == + +Lightning Fast Speed & Responsive Theme. Arvina is a responsive and fully customizable theme to create any kind of websites. The advanced admin panel will enable you to customize it without any technical knowledge. This theme is lightweight, it will enable you to create almost any type of website such a blog, portfolio, acting and shooting industry, total trendy news, newspaper, mega magazine, fashion, dark themes, petcare, animals wildlife, wooden architecture, plumbing contractor, painting estate, interior design, rooms furniture, home decoration, green floral nature, construction, corporate, multiple agency, business promotion, dark variation, industries, Beauty & spa salons, photography, gym, fitness, health, medical, startups, business agencies, law firms, travel, NGO, charity, yoga, kids education, training institute, university portal, restaurant, meta shop, quick magazines, mutual fund, finance, accounting, consulting ,travel agency website. Theme is fully compatible with popular WordPress plugins like Elementor Page Builder, Slider, Carousal, Beaver Builder, Brizy, Visual Composer, Divi, SiteOrigin, Gutenberg, Block-Enabled, WooCommerce, WPML, Yoast SEO, Shortcode, Jetpack, Contact Form 7, Mailchimp for WordPress, bbPress, Demo Importer, WPForms and more. Your WordPress website will never be let down with this theme. View the demo of Arvina Pro https://demo.themesdaddy.com/arvina-pro/ + +== Installation == + +1. In your admin panel, go to Appearance > Themes and click the Add New button. +2. Click Upload and Choose File, then select the theme's .zip file. Click Install Now. +3. Click Activate to use your new theme right away. + +== License == + +Arvina WordPress Theme, Copyright (C) 2025, Themes Daddy +Arvina is distributed under the terms of the GNU GPL + +Abiz WordPress Theme, Copyright (C) 2025, Themes Daddy. +Abiz WordPress Theme is distributed under the terms of the GNU GPL + +Animate - Copyright (c) 2015 Daniel Eden +Source: http://daneden.me/animate +Licensed: Under the MIT license - https://github.com/daneden/animate.css/blob/master/LICENSE + +Bootstrap v5.0.0 (http://getbootstrap.com) +Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + +Font Awesome 6.5.1 +Source: https://github.com/FortAwesome/Font-Awesome +License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + +Owl Carousel v2.3.4, (C) 2013 - 2018, David Deutsch +Source: https://github.com/OwlCarousel2/OwlCarousel2/ +License: [MIT](https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE) + +WOW - Copyright (C) 2016; Thomas Grainger +Source: https://wowjs.uk/ +License: [MIT](https://github.com/graingert/WOW/blob/master/LICENSE) + +Webfonts Loader +Source: https://github.com/WPTT/webfont-loader +License: MIT LICENSE (https://opensource.org/licenses/MIT) + +Repeater Control +Source: https://github.com/cristian-ungureanu/customizer-repeater +License: MIT LICENSE (https://github.com/cristian-ungureanu/customizer-repeater/blob/production/LICENSE) + +== Screenshots == +All Abiz images are licensed under [CC0] (https://creativecommons.org/publicdomain/zero/1.0/) + +Image for theme screenshot +License: Creative Commons Zero(https://pxhere.com/en/license) +Source: https://pxhere.com/en/photo/892122 + +Image for page header +License: CC0 Public Domain(https://stocksnap.io/license) +Source: https://stocksnap.io/photo/macbook-laptop-LEJ7HJ5BEA + +== Changelog == + +@Version 1.0.12 +* Sidebar Widget link Outline issue Fixed + +@Version 1.0.11 +* Footer Widget link Outline issue Fixed + +@Version 1.0.10 +* Tested With WordPress 6.9 + +@Version 1.0.9 +* WooCommerce Cart Page Text Decoration Issue Fixed + +@Version 1.0.8 +* About Section Video Button Text Decoration Issue Fixed + +@Version 1.0.7 +* Block Latest Comment Hover & Focus Color Changed + +@Version 1.0.6 +* Block Latest Comment Color Issue Fixed + +@Version 1.0.5 +* Tested With WordPress 6.8.3 + +@Version 1.0.4 +* Block File Style Issue Fixed + +@Version 1.0.3 +* Block Latest Post Title Font Size Changed + +@Version 1.0.2 +* WooCommerce Cart Page Total Title Style Issue Fixed + +@Version 1.0.1 +* Pro Details Panel Added +* Theme URI Added + +@Version 1.0 +* Initial release. \ No newline at end of file diff --git a/wp-content/themes/arvina/screenshot.png b/wp-content/themes/arvina/screenshot.png new file mode 100644 index 0000000..c9a52ae Binary files /dev/null and b/wp-content/themes/arvina/screenshot.png differ diff --git a/wp-content/themes/arvina/style.css b/wp-content/themes/arvina/style.css new file mode 100644 index 0000000..ab3e9c6 --- /dev/null +++ b/wp-content/themes/arvina/style.css @@ -0,0 +1,372 @@ +/* +Theme Name: Arvina +Author: Themes Daddy +Author URI: https://themesdaddy.com/ +Theme URI: https://themesdaddy.com/themes/arvina-free/ +Description: Lightning Fast Speed & Responsive Theme. Arvina is a responsive and fully customizable theme to create any kind of websites. The advanced admin panel will enable you to customize it without any technical knowledge. This theme is lightweight, it will enable you to create almost any type of website such a blog, portfolio, acting and shooting industry, total trendy news, newspaper, mega magazine, fashion, dark themes, petcare, animals wildlife, wooden architecture, plumbing contractor, painting estate, interior design, rooms furniture, home decoration, green floral nature, construction, corporate, multiple agency, business promotion, dark variation, industries, Beauty & spa salons, photography, gym, fitness, health, medical, startups, business agencies, law firms, travel, NGO, charity, yoga, kids education, training institute, university portal, restaurant, meta shop, quick magazines, mutual fund, finance, accounting, consulting ,travel agency website. Theme is fully compatible with popular WordPress plugins like Elementor Page Builder, Slider, Carousal, Beaver Builder, Brizy, Visual Composer, Divi, SiteOrigin, Gutenberg, Block-Enabled, WooCommerce, WPML, Yoast SEO, Shortcode, Jetpack, Contact Form 7, Mailchimp for WordPress, bbPress, Demo Importer, WPForms and more. Your WordPress website will never be let down with this theme. View the demo of Arvina Pro https://demo.themesdaddy.com/arvina-pro/ +Tags: one-column, two-columns, right-sidebar, flexible-header, custom-background, custom-header, custom-menu, editor-style, featured-images, footer-widgets, post-formats, theme-options, threaded-comments, rtl-language-support, translation-ready, full-width-template, custom-logo, blog, e-commerce, portfolio +Version: 1.0.12 +Tested up to: 6.9 +Requires PHP: 5.4 +License URI: http://www.gnu.org/licenses/gpl-2.0.html +License: GNU General Public License v2 or later +Text Domain: arvina +Slug: arvina +Template: abiz +*/ + + +:root { + --bs-primary: #007cfb; + --bs-primary-light: #007cfb38; + --bs-secondary:#0431b8; +} + +.arvina-theme .logo a:focus { + outline-color: var(--bs-white); +} + +.arvina-theme .above-header .header-widget a:hover, +.arvina-theme .above-header .header-widget a:focus { + color: var(--bs-white); +} + +.arvina-theme .main-mobile-nav { + background: var(--bs-secondary); +} + +.arvina-theme .main-content { + backdrop-filter: blur(13px); + border-radius: 10px; + padding: 30px 20px; + box-sizing: border-box; + border: 1px solid rgba(255, 255, 255, 0.3); + background: linear-gradient(105.91deg, rgba(255, 255, 255, 0.2) 5.12%, rgba(255, 255, 255, 0.075) 77.57%); +} + +.info-section-3 .info-box-inner { + position: relative; + padding: 15px 25px 30px 25px; + background: var(--bs-white); + box-shadow: 0px 9px 75px rgba(8, 20, 44, 0.09); + border-radius: 30px; + transition: var(--bs-transition); +} + +.info-section-3 .info-box-inner .count + { + position: absolute; + right: 20px; + left: unset; + bottom: unset; + opacity: .2; + font-weight: 800; + font-size: 50px; + line-height: 50px; + color: transparent; + -webkit-text-stroke: 1px var(--bs-primary); +} + +.info-section-3 .info-box-inner .info-box-icon { + position: absolute; + left: -15px; + top: -15px; + width: 100px; + height: 100px; + line-height: 75px; + font-size: 30px; + text-align: center; + color: var(--bs-white); + background: var(--bs-primary); + border-radius: 50px; + border: 10px solid var(--bs-white); + margin: 0; + transition: var(--bs-transition); + z-index:1; +} + +.info-section-3 .info-box-inner .content-box { + margin-top: 80px; + position: relative; + z-index: 1; +} + +.info-section-3 .info-box-inner .info-box-title a { + color: var(--bs-secondary); + text-decoration: none; +} + +.info-section-3 .info-content { + margin-top: 8px; + margin-bottom: 20px; +} + +.info-section-3 .info-box-inner .side-border-lines { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + width: 94%; + height: 94%; + border: 2px dashed var(--bs-primary); + margin: auto; + border-radius: 30px; + z-index: 0; +} + +.info-section-3 .info-box-inner:hover { + transform: translateY(-5px); + background: var(--bs-secondary); +} + +.info-section-3 .info-box-inner:hover .info-box-icon { + background: var(--bs-secondary); +} + +.info-section-3 .info-box-inner:hover .side-border-lines { + border-color: var(--bs-white); + opacity: 0.4; + transition: var(--bs-transition); +} + +.info-section-3 .info-box-inner:hover .info-content { + color: var(--bs-white); +} + +.info-section-3 .info-box-inner:hover .info-box-title a{ + color: var(--bs-white); +} + +.info-section-3 .info-box-inner .info-box-icon:after { + top: 8%; + left: 8%; + transform: translatex(-5%); + padding: 0; + z-index: 10; + border: 2px dashed #fff; + pointer-events: none; + position: absolute; + width: 100%; + height: 100%; + width: 80%; + height: 80%; + border-radius: 50%; + content: ''; + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + opacity: 0; +} + +.info-section-3 .info-box-inner:hover .info-box-icon:after { + -webkit-transition: box-shadow 0.2s; + -moz-transition: box-shadow 0.2s; + transition: box-shadow 0.2s; + webkit-animation: spinAround 9s linear infinite; + -moz-animation: spinAround 9s linear infinite; + animation: spinAround 9s linear infinite; + opacity: 1; +} + +@-webkit-keyframes spinAround { + from { + -webkit-transform: rotate(0deg) + } + to { + -webkit-transform: rotate(360deg); + } +} +@-moz-keyframes spinAround { + from { + -moz-transform: rotate(0deg) + } + to { + -moz-transform: rotate(360deg); + } +} +@keyframes spinAround { + from { + transform: rotate(0deg) + } + to { + transform: rotate(360deg); + } +} + +.service-section .service-inner-box-2 .feature-bg-shape{ + position: absolute; + top: 0; + width: 264px; + height: 273px; + -webkit-transition: all 300ms ease; + transition: all 300ms ease; + position: absolute; + width: 100%; + height: 100%; + top: 0; + inset-inline-end: 0; + background-position: top right; + background-repeat: no-repeat; +} + +.service-section .service-inner-box-2 { + position: relative; + box-shadow: 0 0px 15px rgba(0, 0, 0, .1); + background-color: var(--bs-white); +} + +.service-section .service-inner-box-2:hover .service-title a { + color: var(--bs-primary); +} + +.service-section .service-inner-box-2:hover .service-img img{ + transform: scale(1.2); +} + +.service-section .service-inner-box-2 .servive-wrap { + position: relative; +} + +.service-section .service-inner-box-2 .content-box { + padding: 50px 16px 30px; +} + +.service-section .service-inner-box-2 .service-icon { + top: 0; +} + +.service-section .service-inner-box-2 .service-title { + position: relative; + background: unset; + box-shadow: none; + top: 0; +} + +.service-section .service-inner-box-2 .read-link { + display: inline; + font-size: inherit; + color: var(--bs-secondary); + text-decoration: none; + background: linear-gradient(to right, currentcolor 0%, currentcolor 100%) 0 100% / 0 0.18rem no-repeat; +} + + +.service-section .service-inner-box-2 .read-link:hover, +.service-section .service-inner-box-2 .read-link:focus { + letter-spacing: 0.03rem; + background-size: 75% 2px; + color: var(--bs-primary); +} + +.service-section .service-inner-box-2 .read-link i { + font-size: inherit; + background: var(--bs-primary); + color: var(--bs-white); + border-radius: 50%; + height: 20px; + width: 20px; + line-height: 20px; + margin-left: 5px; + transition: all .3s ease; + rotate: -40deg; +} + +.service-section .service-inner-box-2 .read-link:hover i, +.service-section .service-inner-box-2 .read-link:focus i{ + background: var(--bs-secondary); + color: var(--bs-primary); + rotate: 0deg; +} + +@media (min-width: 992px) { + .arvina-theme .above-header .widget_social_widget li a:hover i, + .arvina-theme .above-header .widget_social_widget li a:focus i { + color: var(--bs-white); + background-color: var(--bs-secondary); + } + .arvina-theme .above-header { + border-bottom: none; + } + .arvina-theme .above-header:before { + content: ''; + position: absolute; + top: 0; + right: -50px; + width: 50%; + height: 100%; + background: var(--bs-primary); + transform: skewX(40deg); + border-radius: 20px 0 0 0; + border-left: 5px solid var(--bs-white); + } + .arvina-theme .main-navigation:not(.is-sticky-menu) { + position: relative; + } + .arvina-theme .main-navigation .logo:after { + content: ''; + position: absolute; + top: 0; + left: -100px; + width: 30%; + height: 100%; + background: var(--bs-primary); + border-radius: 0 0 20px 0; + transform: skewX(40deg); + border-right: 10px solid var(--bs-white); + z-index: -1; + box-shadow: 0px 9px 75px rgba(8, 20, 44, 0.09); + } + .arvina-theme h4.site-title::first-letter { + color: var(--bs-white); + } + .arvina-theme .slider-section .main-content h1 { + font-size: 4rem; + } + .slider-section + .info-section-3 { + margin-top: -3.55rem; + } +} + +@media (max-width: 991px) { + .info-section-3 { + margin-top: 2rem; + } +} + +.is-large.wc-block-cart .wc-block-cart__totals-title { + font-size: 2.5rem; +} + +.wp-block-latest-posts__list .wp-block-latest-posts__post-title { + font-size: 1.5rem; +} + +.wp-block-file.has-background { + padding: 0.5rem; +} + +.sidebar .wp-block-latest-comments li a { + color: var(--bs-secondary); +} + +.sidebar .wp-block-latest-comments li a:hover, +.sidebar .wp-block-latest-comments li a:focus { + color: var(--bs-primary); +} + +.about-section .about-video-btn { + text-decoration: none; +} + +.woocommerce table.shop_table td a { + text-decoration: none; +} + +.footer-main .widget li a:focus { + outline: none; +} + +.sidebar .widget li a:focus { + outline: none; +} \ No newline at end of file diff --git a/wp-content/themes/arvina/theme-header.php b/wp-content/themes/arvina/theme-header.php new file mode 100644 index 0000000..35b4039 --- /dev/null +++ b/wp-content/themes/arvina/theme-header.php @@ -0,0 +1,69 @@ +
    + + +
    \ No newline at end of file diff --git a/wp-content/themes/chromax/404.php b/wp-content/themes/chromax/404.php new file mode 100644 index 0000000..6c5f44d --- /dev/null +++ b/wp-content/themes/chromax/404.php @@ -0,0 +1,28 @@ + +
    +
    +
    +
    +
    + +

    + +

    + + + +
    +
    +
    +
    +
    + \ No newline at end of file diff --git a/wp-content/themes/chromax/archive.php b/wp-content/themes/chromax/archive.php new file mode 100644 index 0000000..823026e --- /dev/null +++ b/wp-content/themes/chromax/archive.php @@ -0,0 +1,44 @@ + +
    +
    +
    + +
    + +
    + + + +
    + +
    + '', + 'next_text' => '' + ) ); + + // If no content, include the "No posts found" template. + else: + get_template_part('template-parts/content','none'); + endif; ?> +
    + +
    +
    +
    + \ No newline at end of file diff --git a/wp-content/themes/chromax/assets/css/core.css b/wp-content/themes/chromax/assets/css/core.css new file mode 100644 index 0000000..baad904 --- /dev/null +++ b/wp-content/themes/chromax/assets/css/core.css @@ -0,0 +1,425 @@ +/* Text meant only for screen readers. */ +.screen-reader-text { + border: 0; + clip: rect(1px, 1px, 1px, 1px); + clip-path: inset(50%); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; + word-wrap: normal; +} + +.screen-reader-text:focus { + background-color: #f1f1f1; + border-radius: 3px; + box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6); + clip: auto; + clip-path: none; + color: #21759b; + display: block; + font-size: 14px; + font-size: 0.875rem; + font-weight: bold; + height: auto; + right: 5px; + line-height: normal; + padding: 15px 23px 14px; + text-decoration: none; + top: 5px; + width: auto; + z-index: 100000; + /* Above WP toolbar. */ +} + +#content { + background-color: #fff; +} + +#content[tabindex="-1"]:focus { + outline: 0; +} + +.hidden { + visibility: hidden; + width: 0px !important; + height: 0px !important; + margin: 0px !important; + padding: 0px !important; +} + +blockquote, +blockquote p { + color: var(--dt-secondary-color); + font-weight: 500; + letter-spacing: 0.5px; +} + +blockquote { + border-radius: 2rem; + padding: 4rem 8rem 4rem 4rem; + margin: 4rem 0 4rem; + position: relative; + background: rgba(189, 189, 189, 0.2); + border: 0.1rem solid rgba(189, 189, 189, 0.35); + z-index: 0; +} + +blockquote::after { + content: "\f10e"; + font-weight: 700; + font-size: 5.2rem; + color: rgba(189, 189, 189, 0.4); + line-height: 1; + font-family: "Font Awesome 6 Free"; + position: absolute; + right: 3.3rem; + top: 2.7rem; + z-index: -1; +} + +blockquote p { + color: var(--dt-secondary-color); + font-size: 2.4rem; + line-height: 1.3; + font-weight: 700; + margin-bottom: 1.5rem; +} + +blockquote cite { + font-size: 1.6rem; + font-weight: 700; + color: var(--dt-secondary-color); +} + +blockquote a:not(:hover, :focus) { + text-decoration: none; +} + +.single-post .react-order-list { + margin: 0; + list-style: none; + padding: 0; +} + +.single-post .react-order-list li { + list-style: none; + position: relative; + padding-left: 2.9rem; + line-height: 1.25; + font-size: 1.8rem; + font-weight: 600; + margin-bottom: 1.5rem; +} + +.single-post .react-order-list li:last-child { + margin-bottom: 0; +} + +.single-post .react-order-list li:before { + position: absolute; + content: "\f058"; + left: 0; + top: 50%; + transform: translate(0, -50%); + text-align: center; + font-family: 'Font Awesome 6 Free'; + color: var(--dt-main-color); + font-size: 2.2rem; + font-weight: 900; + line-height: 1; +} + +/* Gallery Css Here*/ + +.gallery .gallery-icon a { + display: block; + position: relative; + z-index: 1; +} + +.gallery .gallery-icon img { + width: 100%; + object-fit: cover; + -webkit-transition: 0.3s all ease; + transition: 0.3s all ease; +} + +.gallery .gallery-item:hover .gallery-icon img, +.gallery .gallery-item:focus-within .gallery-icon img { + opacity: 0.8; +} + +.gallery { + margin-top: -2.7%; +} + +.gallery .gallery-item { + background-color: var(--dt-secondary-color); + padding: 0; + margin-right: 2.7%; + margin-top: 2.7%; + text-align: center; + float: left; +} + +.gallery-columns-1 .gallery-item { + width: 100%; +} + +.gallery-columns-2 .gallery-item { + width: 45%; +} + +.gallery-columns-3 .gallery-item { + width: 31.3%; +} + +.gallery-columns-4 .gallery-item { + width: 20%; +} + +.gallery-columns-5 .gallery-item { + width: 17.7%; +} + +.gallery-columns-6 .gallery-item { + width: 13.6%; +} + +.gallery-columns-7 .gallery-item { + width: 12.25%; +} + +.gallery-columns-8 .gallery-item { + width: 10.5%; +} + +.gallery-columns-9 .gallery-item { + width: 9.11%; +} + +.gallery-columns-1 .gallery-item:nth-child(1n), +.gallery-columns-2 .gallery-item:nth-child(2n), +.gallery-columns-3 .gallery-item:nth-child(3n), +.gallery-columns-4 .gallery-item:nth-child(4n), +.gallery-columns-5 .gallery-item:nth-child(5n), +.gallery-columns-6 .gallery-item:nth-child(6n), +.gallery-columns-7 .gallery-item:nth-child(7n), +.gallery-columns-8 .gallery-item:nth-child(8n), +.gallery-columns-9 .gallery-item:nth-child(9n) { + margin-right: 0; +} + +.gallery dl a { + display: block; +} + +.gallery dl a img { + height: auto; + margin: 0 auto; +} + +.gallery br+br { + display: none; +} + +/* Widget Gallery */ + +.widget .gallery { + display: flow-root; + margin-top: -2.5%; +} + +.widget .gallery .gallery-icon a::after { + position: absolute; + top: 50%; + left: 50%; + content: "\f08e"; + font-family: 'fontAwesome'; + font-weight: 400; + width: 4rem; + height: 4rem; + line-height: 4rem; + font-size: 2rem; + opacity: 0; + color: #fff; + border-radius: 10rem; + -webkit-transform: translate(-50%, 0%); + transform: translate(-50%, 0%); + -webkit-transition: 0.3s all ease; + transition: 0.3s all ease; + z-index: 1; +} + +.widget .gallery .gallery-icon a:hover::after, +.widget .gallery .gallery-icon a:focus::after { + opacity: 1; + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); +} + +.widget .gallery-item:hover .gallery-icon img, +.widget .gallery-item:focus-within .gallery-icon img { + opacity: 0.2; +} + +/*Image Alignments and captions*/ + +img.alignnone { + margin: 0 auto; + max-width: 100%; +} + +#attachment_907 { + width: 100%; +} + +img.alignleft, +.wp-caption.alignleft { + margin-right: 30px; +} + +img.alignright, +.wp-caption.alignright { + margin-left: 30px; + float: right; + clear: both; + margin-bottom: 30px; +} + +img.wp-caption .alignnone { + display: block; + margin: 0 auto; + height: auto; + width: 100%; +} + +a img.alignright { + float: right; +} + +a img.alignnone { + margin: 5px 20px 20px 0; +} + +a img.alignleft { + float: left; +} + +a img.aligncenter { + margin-left: auto; + margin-right: auto; +} + +.aligncenter { + margin-top: .5em; + margin-bottom: .5em; +} + +.alignleft { + float: left; + margin: .5em 20px .5em 0; +} + +.alignright { + float: right; + margin: .5em 0 .5em 20px; +} + +.wp-caption .wp-caption-text, +.gallery-caption, +.entry-caption { + clear: left; + font-style: italic; + line-height: 1.5em; + margin: 0.75em 0; + text-align: center; +} + +.wp-caption.alignright { + margin: 5px 0 20px 20px; +} + +.wp-caption p.wp-caption-text { + font-size: 14px; + margin: 12px 0; + text-align: center; + font-weight: 400; + font-style: italic; + line-height: 1.5em; +} + +.wp-caption.alignleft { + margin: 5px 20px 20px 0; +} + +.wp-caption { + -moz-border-bottom-colors: none; + -moz-border-left-colors: none; + -moz-border-right-colors: none; + -moz-border-top-colors: none; + background-color: #f8f8f8; + border-color: #eee; + border-image: initial; + border-radius: 3px; + border-style: solid; + border-width: 1px; + margin-bottom: 20px; + max-width: 100%; + padding-left: 4px; + padding-right: 4px; + padding-top: 4px; + text-align: center; +} + +.wp-caption>img { + max-width: 100%; +} + +form.post-password-form label, +form.post-password-form input { + display: inline-block; +} +/*---//---*/ + +body .is-layout-flex { + display: flex; +} + +body .is-layout-flex { + flex-wrap: wrap; + align-items: center; +} + +:where(.is-layout-flex) { + gap: 0.5em; +} + +:where(.wp-block-columns.is-layout-flex) { + gap: 2em; +} + +:where(.wp-block-columns.is-layout-flex) { + gap: 2em; +} + +.wp-block-social-links.wp-container-1, +.wp-block-social-links.wp-container-2 { + justify-content: center; +} + +.wp-block-gallery.wp-block-gallery-6 { + --wp--style--unstable-gallery-gap: var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) ); + gap: var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) ); +} + +.widget .wp-block-gallery.has-nested-images figure.wp-block-image img { + min-height: 11.4rem; +} + +.dt_widget-area .widget .wp-block-social-links.is-style-default:not(.is-style-logos-only) li a:not(:hover, :focus) { + color: #fff; +} \ No newline at end of file diff --git a/wp-content/themes/chromax/assets/css/themes.css b/wp-content/themes/chromax/assets/css/themes.css new file mode 100644 index 0000000..b891916 --- /dev/null +++ b/wp-content/themes/chromax/assets/css/themes.css @@ -0,0 +1,11649 @@ +/*==================== Basic Style & Pseudo Classes & Elements ====================*/ +:root { + --wp--style--block-gap: 2.6rem; + --dt-main-rgb: 255, 93, 0; + --dt-main-color: rgba(var(--dt-main-rgb)); + --dt-secondary-color: #222222; + --dt-text-color: #494a4d; + --dt-gray-color: #fcfbff; + --dt-title-family: "Space Grotesk", sans-serif; + --dt-base-family: "Space Grotesk", sans-serif; + --dt-gradient: linear-gradient(180deg, rgba(255, 255, 255, .15), rgba(255, 255, 255, 0)); +} + +/* selection */ +::selection { + color: #fff; + background: var(--dt-main-color); +} + +/* width */ +::-webkit-scrollbar { + width: 8px; + height: 2px; +} + +/* Track */ +::-webkit-scrollbar-track { + background: #f1f1f1; +} + +/* Handle */ +::-webkit-scrollbar-thumb { + background: #888; +} + +/* Handle on hover */ +::-webkit-scrollbar-thumb:hover { + background: var(--dt-main-color); +} + +::-webkit-input-placeholder { + color: #463838; +} + +:-moz-placeholder { + color: #463838; +} + +::-moz-placeholder { + color: #463838; +} + +:-ms-input-placeholder { + color: #463838; +} + +::-webkit-input-placeholder { + color: #d1d1d1; + opacity: 1; + transition: opacity 0.3s; +} + +:-moz-placeholder { + color: #d1d1d1; + opacity: 1; + transition: opacity 0.3s; +} + +::-moz-placeholder { + color: #d1d1d1; + opacity: 1; + transition: opacity 0.3s; +} + +:-ms-input-placeholder { + color: #d1d1d1; + opacity: 1; + transition: opacity 0.3s; +} + +*:focus::-webkit-input-placeholder { + opacity: 0; +} + +*:focus:-moz-placeholder { + opacity: 0; +} + +*:focus::-moz-placeholder { + opacity: 0; +} + +*:focus:-ms-input-placeholder { + opacity: 0; +} + +/* ---//--- */ + +*, +*::after, +*::before { + box-sizing: inherit; + -webkit-font-smoothing: antialiased; + word-break: break-word; + word-wrap: break-word; +} + +*:not(table *) { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + word-break: break-word; +} + +@media (prefers-reduced-motion:no-preference) { + :root { + scroll-behavior: inherit; + } +} + +:root { + scroll-behavior: inherit; +} + +html { + font-size: 62.5%; + overflow-x: hidden; + box-sizing: border-box; +} + +@media (prefers-reduced-motion: reduce) { + html { + scroll-behavior: auto; + } +} + +@media (max-width: 75em) { + html { + font-size: 62.5%; + } +} + +@media only screen and (min-width: 62em) and (max-width: 77.313em) { + html { + font-size: 58.5936%; + } +} + +@media (max-width: 61.95em) { + html { + font-size: 53%; + } +} + +@media (max-width: 35.95em) { + html { + font-size: 55%; + } +} + +@media (min-width: 120.063em) { + html { + font-size: 75%; + } +} + +body { + margin: 0; + font-size: 1.6rem; + font-weight: 400; + line-height: 1.7; + font-family: var(--dt-base-family); + color: var(--dt-text-color); + letter-spacing: .01em; + background-color: #fff; + -webkit-text-size-adjust: 100%; + -webkit-tap-highlight-color: transparent; +} + +body:not(.admin-bar) { + position: relative; +} + +/* lenis */ + +html.lenis, +html.lenis body { + height: auto; +} + +.lenis.lenis-smooth { + scroll-behavior: auto !important; +} + +.lenis.lenis-smooth [data-lenis-prevent] { + overscroll-behavior: contain; +} + +.lenis.lenis-stopped { + overflow: hidden; +} + +.lenis.lenis-scrolling iframe { + pointer-events: none; +} + +a { + color: var(--dt-main-color); + text-decoration: underline; + text-underline-offset: 0.3rem; + outline: none; +} + +a:hover, +a:active, +a:focus { + color: var(--dt-main-color); + text-decoration-style: dotted; +} + +.clearfix:after, +.clearfix:before { + content: ""; + display: block; + clear: both; +} + +.dt-btn svg { + display: inline-block; + vertical-align: middle; +} + +.wp-block-search__button { + flex-shrink: 0; +} + +button[type=submit], +button, +input[type="button"], +input[type="reset"], +input[type="submit"], +.dt-btn, +.dt-load-more a, +.button:not(.add_to_cart_button) { + font-size: 1.6rem; + font-weight: 600; + padding: 1.2rem 2.2rem; + line-height: 1.438; + letter-spacing: .03rem; + border-width: 0.1rem; + border-style: solid; + border-color: transparent; + border-radius: 1rem; + overflow: hidden; + display: inline-block; + vertical-align: middle; + white-space: nowrap; + text-transform: initial; + font-family: inherit; + text-decoration: none; + position: relative; + z-index: 0; +} + +.dt-btn i { + margin-left: 0.4rem; +} + +button[type=button].mfp-close, +button[type=button].mfp-arrow { + background-color: transparent; +} + +.dt-load-more a:hover, +.dt-load-more a:focus, +a.dt-btn:hover, +a.dt-btn:focus, +.contact__body a:hover, +.contact__body a:focus { + text-decoration: none; +} + +button[type=submit], +input[type="button"], +input[type="reset"], +input[type="submit"], +.dt-load-more a, +.dt-btn-primary, +a.wp-block-button__link, +.wp-block-button__link { + color: #fff; + background-color: var(--dt-main-color); + border-color: var(--dt-main-color); +} + +.dt-btn-primary.dt-btn-border { + color: var(--dt-main-color); + background-color: transparent; + border-color: var(--dt-main-color); +} + +.dt-load-more a:hover, +.dt-load-more a:focus, +.dt-btn-primary.dt-btn-border:hover, +.dt-btn-primary.dt-btn-border:focus, +.dt-btn-primary:hover, +.dt-btn-primary:focus { + color: #fff; + background-color: rgba(var(--dt-main-rgb), 0.9); + border-color: rgba(var(--dt-main-rgb), 0.9); +} + +button[type=button].dt-btn-secondary, +button[type=submit].dt-btn-secondary, +.dt-btn-secondary { + color: #fff; + background-color: var(--dt-secondary-color); + border-color: var(--dt-secondary-color); +} + +.dt-btn-secondary.dt-btn-border { + color: var(--dt-secondary-color); + background-color: transparent; + border-color: var(--dt-secondary-color); +} + +.dt-btn-secondary.dt-btn-border:hover, +.dt-btn-secondary.dt-btn-border:focus, +.dt-btn-secondary:hover, +.dt-btn-secondary:focus { + color: #fff; + background-color: var(--dt-secondary-color); + border-color: var(--dt-secondary-color); +} + +.dt-btn-white { + color: var(--dt-secondary-color); + background-color: #fff; +} + +.dt-btn-white.dt-btn-border { + color: #fff; + background-color: transparent; + border-color: #fff; +} + +.dt-btn-white.dt-btn-border:hover, +.dt-btn-white.dt-btn-border:focus { + color: var(--dt-secondary-color); + background-color: #fff; + border-color: #fff; + box-shadow: 0 0 2rem rgba(0, 0, 0, 0.05); +} + +/* Button Effects One */ + +.btn--effect-one .dt-btn { + overflow: hidden; +} + +.btn--effect-one .dt-btn::before, +.btn--effect-one .dt-btn::after { + content: ""; + width: 50%; + height: 0%; + position: absolute; + background-color: #fff; + transition: 0.4s; + z-index: -1; +} + +.btn--effect-one .dt-btn::before, +.btn--effect-one .dt-btn::after { + background-color: var(--dt-secondary-color); +} + +.btn--effect-one .dt-btn::before { + top: 0%; + right: 0%; +} + +.btn--effect-one .dt-btn::after { + left: 0%; + bottom: 0%; +} + +.btn--effect-one .dt-btn:hover, +.btn--effect-one .dt-btn:focus { + color: #fff; +} + +.btn--effect-one .dt-btn:hover:before, +.btn--effect-one .dt-btn:hover:after, +.btn--effect-one .dt-btn:focus:before, +.btn--effect-one .dt-btn:focus:after { + width: 100%; + height: 100%; +} + +.btn--effect-one .dt-btn-secondary::before, +.btn--effect-one .dt-btn-secondary::after { + background-color: var(--dt-main-color); +} + +.btn--effect-one .dt-btn-white.dt-btn-border:hover, +.btn--effect-one .dt-btn-white.dt-btn-border:focus { + color: var(--dt-secondary-color); +} + +.btn--effect-one .dt-btn-white.dt-btn-border::before, +.btn--effect-one .dt-btn-white.dt-btn-border::after { + background-color: #fff; +} + +.btn--effect-one .dt-btn-white.dt-btn-border::after { + +} + +.btn--effect-one .dt-btn-white.dt-btn-border:hover::after, +.btn--effect-one .dt-btn-white.dt-btn-border:focus::after { + +} + +/* Play Buttons */ + +.dt-btn-play-one { + text-decoration: none; + display: inline-flex; + align-items: center; + color: var(--dt-secondary-color); +} + +.dt-btn-play-one i { + width: 5rem; + height: 5rem; + display: flex; + align-items: center; + justify-content: center; + position: relative; + background-color: var(--dt-main-color); + border-radius: 50%; + color: #fff; + font-size: 1.8rem; + margin-right: 1.2rem; + box-shadow: 0 2rem 3rem rgba(0, 0, 0, 0.1); +} + +.dt-btn-play-one i:after { + content: ""; + position: absolute; + z-index: 0; + left: 0; + top: 0; + display: block; + width: 100%; + height: 100%; + background-color: rgba(var(--dt-main-rgb), .4); + border-radius: 50%; + animation: pulse_border_1 1500ms ease-out infinite; + z-index: -1; + border-radius: inherit; +} + +.dt-btn-play-one span { + text-decoration: underline; +} + +.dt-btn-play-two { + display: inline-flex; + align-items: center; + font-weight: 500; + font-size: 18px; + text-decoration: none; +} + +.dt-btn-play-two i { + width: 72px; + height: 72px; + display: flex; + align-items: center; + justify-content: center; + background: var(--dt-main-color); + color: #fff; + border-radius: 50%; + font-size: 24px; + margin-right: 16px; + position: relative; +} + +.dt-btn-play-two i::after { + content: ""; + position: absolute; + left: 50%; + top: 50%; + width: 100%; + height: 100%; + border: 1px solid currentColor; + border-radius: 50%; + transform: translateX(-50%) translateY(-50%) translateZ(0) scale(1); + animation: pulse_border_2 1500ms ease-out infinite; +} + +button[type="submit"]:focus, +button:focus, +input[type="button"]:focus, +input[type="reset"]:focus, +input[type="submit"]:focus, +.dt-btn:focus { + outline-width: 0.1rem; + outline-offset: 0.3rem; + outline-style: dotted; +} + +a, +area, +button, +input, +label, +select, +summary, +textarea { + touch-action: manipulation; + transition: all .2s ease-in-out; +} + +button, +input, +optgroup, +select, +textarea { + margin: 0; +} + +button, +input { + overflow: visible; +} + +button, +select { + text-transform: none; +} + +img { + display: inline-block; + max-width: 100%; + height: auto; + vertical-align: middle; + border: 0; + transition-delay: .1s; + transition-timing-function: ease-in-out; + transition-duration: .7s; + transition-property: all; +} + +h1, +.h1, +h2, +.h2, +h3, +.h3, +h4, +.h4, +h5, +.h5, +h6, +.h6 { + margin: 0; + padding: 0; + font-weight: 800; + line-height: 1.25; + font-family: var(--dt-title-family); + color: var(--dt-secondary-color); + word-break: break-word; +} + +h1, +.h1 { + font-size: 5rem; +} + +h2, +.h2 { + font-size: 4rem; +} + +h3, +.h3 { + font-size: 2.8rem; +} + +h4, +.h4 { + font-size: 2.4rem; +} + +h5, +.h5 { + font-size: 2.2rem; +} + +h6, +.h6 { + font-size: 1.6rem; +} + +em, +cite, +q { + color: var(--dt-main-color); + font-style: italic; + font-weight: bold; +} + +code, +kbd, +tt, +var, +samp, +pre { + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; + background-color: var(--dt-secondary-color); + color: #fff; + padding: 0.1rem 0.5rem; + border-radius: 0; + font-size: 88%; +} + +pre { + display: block; + margin: 0 0 1rem; + font-size: 1.3rem; + word-break: break-all; + word-wrap: break-word; + border: 0.1rem solid #ccc; + border-radius: 0; + overflow: auto; +} + +table { + border: 0.1rem solid #e9e9e9; + background-color: #fcfcfc; + border-spacing: 0; + letter-spacing: 0.05rem; + margin: 0 0 2rem; + text-align: start; + table-layout: fixed; + border-collapse: collapse; +} + +table th { + border: 0.1rem solid rgba(0, 0, 0, 0.25); +} + +table td { + border: 0.1rem solid #e9e9ea; +} + +table th, +table td { + padding: 1.5rem; +} + +table th { + background: var(--dt-main-color); + color: #fff; +} + +p { + margin: 0 0 1.1rem; + word-break: break-word; +} + +.widget_media_image>.wp-block-image, +figure { + margin: 0; +} + +address, +table, +pre { + width: 100%; +} + +small { + font-size: 80%; +} + +sub, +sup { + font-size: 75%; + font-weight: 600; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.4rem; +} + +sup { + top: -0.8rem; +} + +fieldset { + border: 0.1rem solid #e9e9ea; + margin: 2.4rem 0.2rem; + padding: 1rem 2.5rem 2rem; + border-radius: 0; +} + +iframe { + max-width: 100%; +} + +button, +input[type="button"], +input[type="reset"], +input[type="submit"] { + cursor: pointer; + appearance: button; + -moz-appearance: button; + -webkit-appearance: button; +} + +button:focus, +input[type="button"]:focus, +input[type="reset"]:focus, +input[type="submit"]:focus { + outline: 0.1rem dotted; + outline-offset: -0.2rem; +} + +input[type="text"], +input[type="email"], +input[type="url"], +input[type="password"], +input[type="search"], +input[type="number"], +input[type="tel"], +input[type="range"], +input[type="date"], +input[type="month"], +input[type="week"], +input[type="time"], +input[type="datetime"], +input[type="datetime-local"], +input[type="color"], +textarea { + position: relative; + border-radius: 12px; + display: block; + line-height: 1.5; + font-size: 1.6rem; + font-weight: 500; + max-height: 4.9rem; + padding: 1.3rem 2.6rem; + vertical-align: middle; + width: 100%; + background-color: #f5f5f5; + border: 0.1rem solid rgba(189, 189, 189, 0.2); + outline: none; + letter-spacing: 0.05rem; + -webkit-box-shadow: none; + box-shadow: none; + transition: all .2s ease-in-out; +} + +input[type="text"]:focus, +input[type="email"]:focus, +input[type="url"]:focus, +input[type="password"]:focus, +input[type="search"]:focus, +input[type="number"]:focus, +input[type="tel"]:focus, +input[type="range"]:focus, +input[type="date"]:focus, +input[type="month"]:focus, +input[type="week"]:focus, +input[type="time"]:focus, +input[type="datetime"]:focus, +input[type="datetime-local"]:focus, +input[type="color"]:focus, +textarea:focus, +select:focus { + border-color: var(--dt-main-color); + background-color: #fff; +} + +button[type="submit"]:hover, +input[type="button"]:hover, +input[type="reset"]:hover, +input[type="submit"]:hover, +button[type="submit"]:focus, +input[type="button"]:focus, +input[type="reset"]:focus, +input[type="submit"]:focus { + color: #fff; + background-color: var(--dt-main-color); +} + +[type="search"] { + appearance: none; + -moz-appearance: none; + -webkit-appearance: none; + outline-offset: -0.2rem; +} + +select { + background-clip: padding-box; + border: 0.1rem solid rgba(189, 189, 189, 0.2); + border-radius: 12px; + display: block; + font-size: 92%; + font-weight: 400; + padding: 0.6rem 1.2rem; + position: relative; + text-decoration: none; + white-space: nowrap; + width: 100%; + -webkit-box-shadow: none; + box-shadow: none; + overflow: auto !important; + outline: 0; + background-image: linear-gradient(#242424, #242424), linear-gradient(#e9e9ea, #e9e9ea); + background-size: 0 0.1rem, 100% 0.1rem; + background-repeat: no-repeat; + background-position: center bottom, center calc(100% - -0.1rem); + background-color: #f6f6f6; + -moz-transition: background 0s ease-out; + -webkit-transition: background 0s ease-out; + -o-transition: background 0s ease-out; + transition: background 0s ease-out; +} + +textarea { + height: 13.2rem; + overflow: auto; + resize: vertical; + max-height: 100%; + border-radius: 12px; +} + +input[type="checkbox"], +input[type="radio"], +form[id*="give-form"] #give-gateway-radio-list>li input[type="radio"], +form[id*="give-form"] #give-gateway-radio-list>li input[type="checkbox"], +div.wpforms-container-full .wpforms-form input[type="radio"], +div.wpforms-container-full .wpforms-form input[type="checkbox"] { + border: 2px solid var(--dt-main-color); + background: #fff; + color: #555; + clear: none; + cursor: pointer; + display: inline-block; + line-height: 0; + height: 20px; + margin: -3px 3px 0 0; + outline: 0; + padding: 0; + text-align: center; + vertical-align: middle; + width: 20px !important; + max-width: 20px; + appearance: none !important; + -moz-appearance: none !important; + -webkit-appearance: none !important; + transition: 0.05s border-color ease-in-out; +} + +input[type="radio"] { + border-radius: 50%; + margin-right: 4px; + line-height: 12px; +} + +input[type="checkbox"]:checked:before, +input[type="radio"]:checked:before { + display: inline-block; + vertical-align: middle; + speak: none; + line-height: 1.1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + transition: all .2s ease-in-out; +} + +input[type="radio"]:checked:before { + content: "⬤"; + text-indent: -9999px; + border-radius: 50px; + font-size: 24px; + width: 8px; + height: 8px; + margin: 4px; + line-height: 20px; + background: var(--dt-main-color); +} + +input[type="checkbox"]:checked:before { + content: "✔"; + font-weight: 900; + color: var(--dt-main-color); +} + +/*---//---*/ + +/* Grid List Two Column Like Table List */ +.dt-grid-list dt { + padding: 0.8rem 0 0.8rem 0; + font-weight: 600; +} + +.dt-grid-list dd { + margin: 0; + padding: 0.8rem 0 0.8rem 0; +} + +@media (min-width: 34.375em) { + .dt-grid-list { + display: grid; + grid-template-columns: 1fr 1fr; + grid-template-rows: auto; + } + + .dt-grid-list dt { + grid-column-start: 1; + } + + .dt-grid-list dd { + grid-column-start: 2; + } + + .dt-grid-list dt+dd {} +} + +/* ---//--- */ + +.dt-d-none, +div.dt-d-none { + display: none; +} + +.dt-d-block, +div.dt-d-block { + display: block; +} + +.dt-d-inline, +div.dt-d-inline { + display: inline; +} + +.dt-d-inline-block, +div.dt-d-inline-block { + display: inline-block; +} + +.dt-container, +.dt-container-fluid { + width: 100%; + padding-right: 1.6rem; + padding-left: 1.6rem; + margin-right: auto; + margin-left: auto; +} + +@media (max-width: 35.95em) { + + .dt-container, + .dt-container-fluid { + padding-right: 2.4rem; + padding-left: 2.4rem; + } +} + +.dt-row { + --dt-gutter-x: 2.4rem; + --dt-gutter-y: 0; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + margin-top: calc(var(--dt-gutter-y) * -1); + margin-right: calc(var(--dt-gutter-x)/ -2); + margin-left: calc(var(--dt-gutter-x)/ -2); +} + +.dt-row>* { + flex-shrink: 0; + width: 100%; + max-width: 100%; + padding-right: calc(var(--dt-gutter-x)/ 2); + padding-left: calc(var(--dt-gutter-x)/ 2); + margin-top: var(--dt-gutter-y); +} + +.dt-g-0, +.dt-gx-0 { + --dt-gutter-x: 0rem; +} + +.dt-g-0, +.dt-gy-0 { + --dt-gutter-y: 0rem; +} + +.dt-g-1, +.dt-gx-1 { + --dt-gutter-x: 0.4rem; +} + +.dt-g-1, +.dt-gy-1 { + --dt-gutter-y: 0.4rem; +} + +.dt-g-2, +.dt-gx-2 { + --dt-gutter-x: 0.8rem; +} + +.dt-g-2, +.dt-gy-2 { + --dt-gutter-y: 0.8rem; +} + +.dt-g-3, +.dt-gx-3 { + --dt-gutter-x: 1.6rem; +} + +.dt-g-3, +.dt-gy-3 { + --dt-gutter-y: 1.6rem; +} + +.dt-g-4, +.dt-gx-4 { + --dt-gutter-x: 2.4rem; +} + +.dt-g-4, +.dt-gy-4 { + --dt-gutter-y: 2.4rem; +} + +.dt-g-5, +.dt-gx-5 { + --dt-gutter-x: 4.8rem; +} + +.dt-g-5, +.dt-gy-5 { + --dt-gutter-y: 4.8rem; +} + +.dt-col { + -ms-flex: 1 0 0%; + flex: 1 0 0%; +} + +.dt-col-1 { + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; +} + +.dt-col-2 { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; +} + +.dt-col-3 { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; +} + +.dt-col-4 { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; +} + +.dt-col-5 { + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; +} + +.dt-col-6 { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; +} + +.dt-col-7 { + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; +} + +.dt-col-8 { + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; +} + +.dt-col-9 { + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; +} + +.dt-col-10 { + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; +} + +.dt-col-11 { + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; +} + +.dt-col-12 { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; +} + +.dt-m-0 { + margin: 0; +} + +.dt-mt-auto { + margin-top: auto; +} + +.dt-mr-auto { + margin-right: auto; +} + +.dt-mb-auto { + margin-bottom: auto; +} + +.dt-ml-auto { + margin-left: auto; +} + +.dt-my-auto { + margin-top: auto; + margin-bottom: auto; +} + +.dt-mx-auto { + margin-left: auto; + margin-right: auto; +} + +.dt-mt-0 { + margin-top: 0; +} + +.dt-mt-1 { + margin-top: 0.4rem; +} + +.dt-mt-2 { + margin-top: 0.8rem; +} + +.dt-mt-3 { + margin-top: 1.6rem; +} + +.dt-mt-4 { + margin-top: 2.4rem; +} + +.dt-mt-5 { + margin-top: 3.2rem; +} + +.dt-mt-6 { + margin-top: 4.8rem; +} + +.dt-mr-0 { + margin-right: 0; +} + +.dt-mr-1 { + margin-right: 0.4rem; +} + +.dt-mr-2 { + margin-right: 0.8rem; +} + +.dt-mr-3 { + margin-right: 1.6rem; +} + +.dt-mr-4 { + margin-right: 2.4rem; +} + +.dt-mr-5 { + margin-right: 3.2rem; +} + +.dt-mr-6 { + margin-right: 4.8rem; +} + +.dt-mb-0 { + margin-bottom: 0; +} + +.dt-mb-1 { + margin-bottom: 0.4rem; +} + +.dt-mb-2 { + margin-bottom: 0.8rem; +} + +.dt-mb-3 { + margin-bottom: 1.6rem; +} + +.dt-mb-4 { + margin-bottom: 2.4rem; +} + +.dt-mb-5 { + margin-bottom: 3.2rem; +} + +.dt-mb-6 { + margin-bottom: 4.5rem; +} + +.dt-ml-0 { + margin-left: 0; +} + +.dt-ml-1 { + margin-left: 0.4rem; +} + +.dt-ml-2 { + margin-left: 0.8rem; +} + +.dt-ml-3 { + margin-left: 1.6rem; +} + +.dt-ml-4 { + margin-left: 2.4rem; +} + +.dt-ml-5 { + margin-left: 3.2rem; +} + +.dt-ml-6 { + margin-left: 4.8rem; +} + +.dt-my-0 { + margin-top: 0; + margin-bottom: 0; +} + +.dt-my-1 { + margin-top: 0.4rem; + margin-bottom: 0.4rem; +} + +.dt-my-2 { + margin-top: 0.8rem; + margin-bottom: 0.8rem; +} + +.dt-my-3 { + margin-top: 1.6rem; + margin-bottom: 1.6rem; +} + +.dt-my-4 { + margin-top: 2.4rem; + margin-bottom: 2.4rem; +} + +.dt-my-5 { + margin-top: 3.2rem; + margin-bottom: 3.2rem; +} + +.dt-my-6 { + margin-top: 4.8rem; + margin-bottom: 4.8rem; +} + +.dt-mx-0 { + margin-left: 0; + margin-right: 0; +} + +.dt-mx-1 { + margin-left: 0.4rem; + margin-right: 0.4rem; +} + +.dt-mx-2 { + margin-left: 0.8rem; + margin-right: 0.8rem; +} + +.dt-mx-3 { + margin-left: 1.6rem; + margin-right: 1.6rem; +} + +.dt-mx-4 { + margin-left: 2.4rem; + margin-right: 2.4rem; +} + +.dt-mx-5 { + margin-left: 3.2rem; + margin-right: 3.2rem; +} + +.dt-mx-6 { + margin-left: 4.8rem; + margin-right: 4.8rem; +} + +.dt-pt-0 { + padding-top: 0; +} + +.dt-pt-1 { + padding-top: 0.4rem; +} + +.dt-pt-2 { + padding-top: 0.8rem; +} + +.dt-pt-3 { + padding-top: 1.6rem; +} + +.dt-pt-4 { + padding-top: 2.4rem; +} + +.dt-pt-5 { + padding-top: 3.2rem; +} + +.dt-pt-6 { + padding-top: 4.8rem; +} + +.dt-pr-0 { + padding-right: 0; +} + +.dt-pr-1 { + padding-right: 0.4rem; +} + +.dt-pr-2 { + padding-right: 0.8rem; +} + +.dt-pr-3 { + padding-right: 1.6rem; +} + +.dt-pr-4 { + padding-right: 2.4rem; +} + +.dt-pr-5 { + padding-right: 3.2rem; +} + +.dt-pr-6 { + padding-right: 4.8rem; +} + +.dt-pb-0 { + padding-bottom: 0; +} + +.dt-pb-1 { + padding-bottom: 0.4rem; +} + +.dt-pb-2 { + padding-bottom: 0.8rem; +} + +.dt-pb-3 { + padding-bottom: 1.6rem; +} + +.dt-pb-4 { + padding-bottom: 2.4rem; +} + +.dt-pb-5 { + padding-bottom: 3.2rem; +} + +.dt-pb-6 { + padding-bottom: 4.8rem; +} + +.dt-pl-0 { + padding-left: 0; +} + +.dt-pl-1 { + padding-left: 0.4rem; +} + +.dt-pl-2 { + padding-left: 0.8rem; +} + +.dt-pl-3 { + padding-left: 1.6rem; +} + +.dt-pl-4 { + padding-left: 2.4rem; +} + +.dt-pl-5 { + padding-left: 3.2rem; +} + +.dt-pl-6 { + padding-left: 4.8rem; +} + +.dt-p-0 { + padding: 0; +} + +.dt-py-0 { + padding-top: 0; + padding-bottom: 0; +} + +.dt-py-1 { + padding-top: 0.4rem; + padding-bottom: 0.4rem; +} + +.dt-py-2 { + padding-top: 0.8rem; + padding-bottom: 0.8rem; +} + +.dt-py-3 { + padding-top: 1.6rem; + padding-bottom: 1.6rem; +} + +.dt-py-4 { + padding-top: 2.4rem; + padding-bottom: 2.4rem; +} + +.dt-py-5 { + padding-top: 3.2rem; + padding-bottom: 3.2rem; +} + +.dt-py-6 { + padding-top: 4.8rem; + padding-bottom: 4.8rem; +} + +.dt-px-0 { + padding-left: 0; + padding-right: 0; +} + +.dt-px-1 { + padding-left: 0.4rem; + padding-right: 0.4rem; +} + +.dt-px-2 { + padding-left: 0.8rem; + padding-right: 0.8rem; +} + +.dt-px-3 { + padding-left: 1.6rem; + padding-right: 1.6rem; +} + +.dt-px-4 { + padding-left: 2.4rem; + padding-right: 2.4rem; +} + +.dt-px-5 { + padding-left: 3.2rem; + padding-right: 3.2rem; +} + +.dt-px-6 { + padding-left: 4.8rem; + padding-right: 4.8rem; +} + +.dt-text-left { + text-align: start; +} + +.dt-text-right { + text-align: end; +} + +.dt-text-center { + text-align: center; +} + +.dt-flex-10 { + -ms-flex: 1 1 10%; + flex: 1 1 10%; +} + +.dt-flex-15 { + -ms-flex: 1 1 15%; + flex: 1 1 15%; +} + +.dt-flex-20 { + -ms-flex: 1 1 20%; + flex: 1 1 20%; +} + +.dt-flex-25 { + -ms-flex: 1 1 25%; + flex: 1 1 25%; +} + +.dt-flex-30 { + -ms-flex: 1 1 30%; + flex: 1 1 30%; +} + +.dt-flex-35 { + -ms-flex: 1 1 35%; + flex: 1 1 35%; +} + +.dt-flex-40 { + -ms-flex: 1 1 40%; + flex: 1 1 40%; +} + +.dt-flex-45 { + -ms-flex: 1 1 45%; + flex: 1 1 45%; +} + +.dt-flex-50 { + -ms-flex: 1 1 50%; + flex: 1 1 50%; +} + +.dt-flex-55 { + -ms-flex: 1 1 55%; + flex: 1 1 55%; +} + +.dt-flex-60 { + -ms-flex: 1 1 60%; + flex: 1 1 60%; +} + +.dt-flex-65 { + -ms-flex: 1 1 65%; + flex: 1 1 65%; +} + +.dt-flex-70 { + -ms-flex: 1 1 70%; + flex: 1 1 70%; +} + +.dt-flex-75 { + -ms-flex: 1 1 75%; + flex: 1 1 75%; +} + +.dt-flex-80 { + -ms-flex: 1 1 80%; + flex: 1 1 80%; +} + +.dt-flex-85 { + -ms-flex: 1 1 85%; + flex: 1 1 85%; +} + +.dt-flex-90 { + -ms-flex: 1 1 90%; + flex: 1 1 90%; +} + +.dt-flex-95 { + -ms-flex: 1 1 95%; + flex: 1 1 95%; +} + +.dt-flex-100 { + -ms-flex: 1 1 100%; + flex: 1 1 100%; +} + +.dt-flex-auto { + -ms-flex: 1 1 auto; + flex: 1 1 auto; +} + +.dt-float-right { + float: right; +} + +.dt-float-left { + float: left; +} + +.dt-float-none { + float: none; +} + +.dt-order-1 { + order: 1; +} + +.dt-order-2 { + order: 2; +} + +.dt-order-3 { + order: 3; +} + +.dt-order-4 { + order: 4; +} + +.dt-order-5 { + order: 5; +} + +.dt-order-6 { + order: 6; +} + +.dt-order-7 { + order: 7; +} + +.dt-order-8 { + order: 8; +} + +.dt-order-9 { + order: 9; +} + +.dt-order-10 { + order: 10; +} + +.dt-order-11 { + order: 11; +} + +.dt-order-12 { + order: 12; +} + +/* Masonry container */ +.dt-masonry { + width: 100%; + -webkit-column-gap: 2.4rem; + -moz-column-gap: 2.4rem; + column-gap: 2.4rem; + -moz-column-gap: 2.4rem; + -webkit-column-gap: 2.4rem; + column-gap: 2.4rem; +} + +.dt-masonry-4 { + -webkit-column-count: 4; + -moz-column-count: 4; + column-count: 4; +} + +.dt-masonry-3 { + -webkit-column-count: 3; + -moz-column-count: 3; + column-count: 3; +} + +.dt-masonry-2 { + -webkit-column-count: 2; + -moz-column-count: 2; + column-count: 2; +} + +@media (max-width: 47.95em) { + .dt-masonry[class*="dt-masonry-"] { + -moz-column-count: 1; + -webkit-column-count: 1; + column-count: 1; + } +} + +@media only screen and (min-width: 62em) and (max-width: 64em) { + .dt-masonry[class*="dt-masonry-"] { + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; + } +} + +@media only screen and (min-width: 48em) and (max-width: 61.95em) { + .dt-masonry[class*="dt-masonry-"] { + -moz-column-count: 2; + -webkit-column-count: 2; + column-count: 2; + } +} + +/* ---//--- */ + +/* Small Screen */ +@media (min-width: 36em) { + + .dt-container, + .dt-container-sm { + max-width: 76rem; + /*54rem*/ + } + + .dt-g-sm-0, + .dt-gx-sm-0 { + --dt-gutter-x: 0rem; + } + + .dt-g-sm-0, + .dt-gy-sm-0 { + --dt-gutter-y: 0rem; + } + + .dt-g-sm-1, + .dt-gx-sm-1 { + --dt-gutter-x: 0.4rem; + } + + .dt-g-sm-1, + .dt-gy-sm-1 { + --dt-gutter-y: 0.4rem; + } + + .dt-g-sm-2, + .dt-gx-sm-2 { + --dt-gutter-x: 0.8rem; + } + + .dt-g-sm-2, + .dt-gy-sm-2 { + --dt-gutter-y: 0.8rem; + } + + .dt-g-sm-3, + .dt-gx-sm-3 { + --dt-gutter-x: 1.6rem; + } + + .dt-g-sm-3, + .dt-gy-sm-3 { + --dt-gutter-y: 1.6rem; + } + + .dt-g-sm-4, + .dt-gx-sm-4 { + --dt-gutter-x: 2.4rem; + } + + .dt-g-sm-4, + .dt-gy-sm-4 { + --dt-gutter-y: 2.4rem; + } + + .dt-g-sm-5, + .dt-gx-sm-5 { + --dt-gutter-x: 4.8rem; + } + + .dt-g-sm-5, + .dt-gy-sm-5 { + --dt-gutter-y: 4.8rem; + } + + .dt-col-sm { + -ms-flex: 1 0 0%; + flex: 1 0 0%; + } + + .dt-col-sm-auto { + -ms-flex: 0 0 auto; + flex: 0 0 auto; + max-width: 100%; + width: auto; + } + + .dt-col-sm-1 { + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + + .dt-col-sm-2 { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + + .dt-col-sm-3 { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + + .dt-col-sm-4 { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + + .dt-col-sm-5 { + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + + .dt-col-sm-6 { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + + .dt-col-sm-7 { + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + + .dt-col-sm-8 { + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + + .dt-col-sm-9 { + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + + .dt-col-sm-10 { + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + + .dt-col-sm-11 { + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + + .dt-col-sm-12 { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + + .dt-d-sm-none, + div.dt-d-sm-none { + display: none; + } + + .dt-d-sm-block, + div.dt-d-sm-block { + display: block; + } + + .dt-d-sm-inline, + div.dt-d-sm-inline { + display: inline; + } + + .dt-d-sm-inline-block, + div.dt-d-sm-inline-block { + display: inline-block; + } + + .dt-text-sm-left { + text-align: start; + } + + .dt-text-sm-right { + text-align: end; + } + + .dt-text-sm-center { + text-align: center; + } + + .dt-mt-sm-auto { + margin-top: auto; + } + + .dt-mr-sm-auto { + margin-right: auto; + } + + .dt-mb-sm-auto { + margin-bottom: auto; + } + + .dt-ml-sm-auto { + margin-left: auto; + } + + .dt-my-sm-auto { + margin-top: auto; + margin-bottom: auto; + } + + .dt-mx-sm-auto { + margin-left: auto; + margin-right: auto; + } + + .dt-m-sm-0 { + margin: 0; + } + + .dt-mt-sm-0 { + margin-top: 0; + } + + .dt-mt-sm-1 { + margin-top: 0.4rem; + } + + .dt-mt-sm-2 { + margin-top: 0.8rem; + } + + .dt-mt-sm-3 { + margin-top: 1.6rem; + } + + .dt-mt-sm-4 { + margin-top: 2.4rem; + } + + .dt-mt-sm-5 { + margin-top: 3.2rem; + } + + .dt-mt-sm-6 { + margin-top: 4.8rem; + } + + .dt-mr-sm-0 { + margin-right: 0; + } + + .dt-mr-sm-1 { + margin-right: 0.4rem; + } + + .dt-mr-sm-2 { + margin-right: 0.8rem; + } + + .dt-mr-sm-3 { + margin-right: 1.6rem; + } + + .dt-mr-sm-4 { + margin-right: 2.4rem; + } + + .dt-mr-sm-5 { + margin-right: 3.2rem; + } + + .dt-mr-sm-6 { + margin-right: 4.8rem; + } + + .dt-mb-sm-0 { + margin-bottom: 0; + } + + .dt-mb-sm-1 { + margin-bottom: 0.4rem; + } + + .dt-mb-sm-2 { + margin-bottom: 0.8rem; + } + + .dt-mb-sm-3 { + margin-bottom: 1.6rem; + } + + .dt-mb-sm-4 { + margin-bottom: 2.4rem; + } + + .dt-mb-sm-5 { + margin-bottom: 3.2rem; + } + + .dt-mb-sm-6 { + margin-bottom: 4.8rem; + } + + .dt-ml-sm-0 { + margin-left: 0; + } + + .dt-ml-sm-1 { + margin-left: 0.4rem; + } + + .dt-ml-sm-2 { + margin-left: 0.8rem; + } + + .dt-ml-sm-3 { + margin-left: 1.6rem; + } + + .dt-ml-sm-4 { + margin-left: 2.4rem; + } + + .dt-ml-sm-5 { + margin-left: 3.2rem; + } + + .dt-ml-sm-6 { + margin-left: 4.8rem; + } + + .dt-my-sm-0 { + margin-top: 0; + margin-bottom: 0; + } + + .dt-my-sm-1 { + margin-top: 0.4rem; + margin-bottom: 0.4rem; + } + + .dt-my-sm-2 { + margin-top: 0.8rem; + margin-bottom: 0.8rem; + } + + .dt-my-sm-3 { + margin-top: 1.6rem; + margin-bottom: 1.6rem; + } + + .dt-my-sm-4 { + margin-top: 2.4rem; + margin-bottom: 2.4rem; + } + + .dt-my-sm-5 { + margin-top: 3.2rem; + margin-bottom: 3.2rem; + } + + .dt-my-sm-6 { + margin-top: 4.8rem; + margin-bottom: 4.8rem; + } + + .dt-mx-sm-0 { + margin-left: 0; + margin-right: 0; + } + + .dt-mx-sm-1 { + margin-left: 0.4rem; + margin-right: 0.4rem; + } + + .dt-mx-sm-2 { + margin-left: 0.8rem; + margin-right: 0.8rem; + } + + .dt-mx-sm-3 { + margin-left: 1.6rem; + margin-right: 1.6rem; + } + + .dt-mx-sm-4 { + margin-left: 2.4rem; + margin-right: 2.4rem; + } + + .dt-mx-sm-5 { + margin-left: 3.2rem; + margin-right: 3.2rem; + } + + .dt-mx-sm-6 { + margin-left: 4.8rem; + margin-right: 4.8rem; + } + + .dt-p-sm-0 { + padding: 0; + } + + .dt-pt-sm-0 { + padding-top: 0; + } + + .dt-pt-sm-1 { + padding-top: 0.4rem; + } + + .dt-pt-sm-2 { + padding-top: 0.8rem; + } + + .dt-pt-sm-3 { + padding-top: 1.6rem; + } + + .dt-pt-sm-4 { + padding-top: 2.4rem; + } + + .dt-pt-sm-5 { + padding-top: 3.2rem; + } + + .dt-pt-sm-6 { + padding-top: 4.8rem; + } + + .dt-pr-sm-0 { + padding-right: 0; + } + + .dt-pr-sm-1 { + padding-right: 0.4rem; + } + + .dt-pr-sm-2 { + padding-right: 0.8rem; + } + + .dt-pr-sm-3 { + padding-right: 1.6rem; + } + + .dt-pr-sm-4 { + padding-right: 2.4rem; + } + + .dt-pr-sm-5 { + padding-right: 3.2rem; + } + + .dt-pr-sm-6 { + padding-right: 4.8rem; + } + + .dt-pb-sm-0 { + padding-bottom: 0; + } + + .dt-pb-sm-1 { + padding-bottom: 0.4rem; + } + + .dt-pb-sm-2 { + padding-bottom: 0.8rem; + } + + .dt-pb-sm-3 { + padding-bottom: 1.6rem; + } + + .dt-pb-sm-4 { + padding-bottom: 2.4rem; + } + + .dt-pb-sm-5 { + padding-bottom: 3.2rem; + } + + .dt-pb-sm-6 { + padding-bottom: 4.8rem; + } + + .dt-pl-sm-0 { + padding-left: 0; + } + + .dt-pl-sm-1 { + padding-left: 0.4rem; + } + + .dt-pl-sm-2 { + padding-left: 0.8rem; + } + + .dt-pl-sm-3 { + padding-left: 1.6rem; + } + + .dt-pl-sm-4 { + padding-left: 2.4rem; + } + + .dt-pl-sm-5 { + padding-left: 3.2rem; + } + + .dt-pl-sm-6 { + padding-left: 4.8rem; + } + + .dt-py-sm-0 { + padding-top: 0; + padding-bottom: 0; + } + + .dt-py-sm-1 { + padding-top: 0.4rem; + padding-bottom: 0.4rem; + } + + .dt-py-sm-2 { + padding-top: 0.8rem; + padding-bottom: 0.8rem; + } + + .dt-py-sm-3 { + padding-top: 1.6rem; + padding-bottom: 1.6rem; + } + + .dt-py-sm-4 { + padding-top: 2.4rem; + padding-bottom: 2.4rem; + } + + .dt-py-sm-5 { + padding-top: 3.2rem; + padding-bottom: 3.2rem; + } + + .dt-py-sm-6 { + padding-top: 4.8rem; + padding-bottom: 4.8rem; + } + + .dt-px-sm-0 { + padding-left: 0; + padding-right: 0; + } + + .dt-px-sm-1 { + padding-left: 0.4rem; + padding-right: 0.4rem; + } + + .dt-px-sm-2 { + padding-left: 0.8rem; + padding-right: 0.8rem; + } + + .dt-px-sm-3 { + padding-left: 1.6rem; + padding-right: 1.6rem; + } + + .dt-px-sm-4 { + padding-left: 2.4rem; + padding-right: 2.4rem; + } + + .dt-px-sm-5 { + padding-left: 3.2rem; + padding-right: 3.2rem; + } + + .dt-px-sm-6 { + padding-left: 4.8rem; + padding-right: 4.8rem; + } + + .dt-float-sm-right { + float: right; + } + + .dt-float-sm-left { + float: left; + } + + .dt-float-sm-none { + float: none; + } + + .dt-order-sm-1 { + order: 1; + } + + .dt-order-sm-2 { + order: 2; + } + + .dt-order-sm-3 { + order: 3; + } + + .dt-order-sm-4 { + order: 4; + } + + .dt-order-sm-5 { + order: 5; + } + + .dt-order-sm-6 { + order: 6; + } + + .dt-order-sm-7 { + order: 7; + } + + .dt-order-sm-8 { + order: 8; + } + + .dt-order-sm-9 { + order: 9; + } + + .dt-order-sm-10 { + order: 10; + } + + .dt-order-sm-11 { + order: 11; + } + + .dt-order-sm-12 { + order: 12; + } +} + +/* ---//--- */ + +/* Medium Screen */ +@media (min-width: 48em) { + + .dt-container, + .dt-container-md, + .dt-container-sm { + max-width: 84.907rem; + /*72rem*/ + } + + .dt-g-md-0, + .dt-gx-md-0 { + --dt-gutter-x: 0rem; + } + + .dt-g-md-0, + .dt-gy-md-0 { + --dt-gutter-y: 0rem; + } + + .dt-g-md-1, + .dt-gx-md-1 { + --dt-gutter-x: 0.4rem; + } + + .dt-g-md-1, + .dt-gy-md-1 { + --dt-gutter-y: 0.4rem; + } + + .dt-g-md-2, + .dt-gx-md-2 { + --dt-gutter-x: 0.8rem; + } + + .dt-g-md-2, + .dt-gy-md-2 { + --dt-gutter-y: 0.8rem; + } + + .dt-g-md-3, + .dt-gx-md-3 { + --dt-gutter-x: 1.6rem; + } + + .dt-g-md-3, + .dt-gy-md-3 { + --dt-gutter-y: 1.6rem; + } + + .dt-g-md-4, + .dt-gx-md-4 { + --dt-gutter-x: 2.4rem; + } + + .dt-g-md-4, + .dt-gy-md-4 { + --dt-gutter-y: 2.4rem; + } + + .dt-g-md-5, + .dt-gx-md-5 { + --dt-gutter-x: 4.8rem; + } + + .dt-g-md-5, + .dt-gy-md-5 { + --dt-gutter-y: 4.8rem; + } + + .dt-col-md { + -ms-flex: 1 0 0%; + flex: 1 0 0%; + } + + .dt-col-md-auto { + -ms-flex: 0 0 auto; + flex: 0 0 auto; + max-width: 100%; + width: auto; + } + + .dt-col-md-1 { + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + + .dt-col-md-2 { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + + .dt-col-md-3 { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + + .dt-col-md-4 { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + + .dt-col-md-5 { + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + + .dt-col-md-6 { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + + .dt-col-md-7 { + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + + .dt-col-md-8 { + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + + .dt-col-md-9 { + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + + .dt-col-md-10 { + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + + .dt-col-md-11 { + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + + .dt-col-md-12 { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + + .dt-d-md-none, + div.dt-d-md-none { + display: none; + } + + .dt-d-md-block, + div.dt-d-md-block { + display: block; + } + + .dt-d-md-inline, + div.dt-d-md-inline { + display: inline; + } + + .dt-d-md-inline-block, + div.dt-d-md-inline-block { + display: inline-block; + } + + .dt-text-md-left { + text-align: start; + } + + .dt-text-md-right { + text-align: end; + } + + .dt-text-md-center { + text-align: center; + } + + .dt-mt-md-auto { + margin-top: auto; + } + + .dt-mr-md-auto { + margin-right: auto; + } + + .dt-mb-md-auto { + margin-bottom: auto; + } + + .dt-ml-md-auto { + margin-left: auto; + } + + .dt-my-md-auto { + margin-top: auto; + margin-bottom: auto; + } + + .dt-mx-md-auto { + margin-left: auto; + margin-right: auto; + } + + .dt-m-md-0 { + margin: 0; + } + + .dt-mt-md-0 { + margin-top: 0; + } + + .dt-mt-md-1 { + margin-top: 0.4rem; + } + + .dt-mt-md-2 { + margin-top: 0.8rem; + } + + .dt-mt-md-3 { + margin-top: 1.6rem; + } + + .dt-mt-md-4 { + margin-top: 2.4rem; + } + + .dt-mt-md-5 { + margin-top: 3.2rem; + } + + .dt-mt-md-6 { + margin-top: 4.8rem; + } + + .dt-mr-md-0 { + margin-right: 0; + } + + .dt-mr-md-1 { + margin-right: 0.4rem; + } + + .dt-mr-md-2 { + margin-right: 0.8rem; + } + + .dt-mr-md-3 { + margin-right: 1.6rem; + } + + .dt-mr-md-4 { + margin-right: 2.4rem; + } + + .dt-mr-md-5 { + margin-right: 3.2rem; + } + + .dt-mr-md-6 { + margin-right: 4.8rem; + } + + .dt-mb-md-0 { + margin-bottom: 0; + } + + .dt-mb-md-1 { + margin-bottom: 0.4rem; + } + + .dt-mb-md-2 { + margin-bottom: 0.8rem; + } + + .dt-mb-md-3 { + margin-bottom: 1.6rem; + } + + .dt-mb-md-4 { + margin-bottom: 2.4rem; + } + + .dt-mb-md-5 { + margin-bottom: 3.2rem; + } + + .dt-mb-md-6 { + margin-bottom: 4.8rem; + } + + .dt-ml-md-0 { + margin-left: 0; + } + + .dt-ml-md-1 { + margin-left: 0.4rem; + } + + .dt-ml-md-2 { + margin-left: 0.8rem; + } + + .dt-ml-md-3 { + margin-left: 1.6rem; + } + + .dt-ml-md-4 { + margin-left: 2.4rem; + } + + .dt-ml-md-5 { + margin-left: 3.2rem; + } + + .dt-ml-md-6 { + margin-left: 4.8rem; + } + + .dt-my-md-0 { + margin-top: 0; + margin-bottom: 0; + } + + .dt-my-md-1 { + margin-top: 0.4rem; + margin-bottom: 0.4rem; + } + + .dt-my-md-2 { + margin-top: 0.8rem; + margin-bottom: 0.8rem; + } + + .dt-my-md-3 { + margin-top: 1.6rem; + margin-bottom: 1.6rem; + } + + .dt-my-md-4 { + margin-top: 2.4rem; + margin-bottom: 2.4rem; + } + + .dt-my-md-5 { + margin-top: 3.2rem; + margin-bottom: 3.2rem; + } + + .dt-my-md-6 { + margin-top: 4.8rem; + margin-bottom: 4.8rem; + } + + .dt-mx-md-0 { + margin-left: 0; + margin-right: 0; + } + + .dt-mx-md-1 { + margin-left: 0.4rem; + margin-right: 0.4rem; + } + + .dt-mx-md-2 { + margin-left: 0.8rem; + margin-right: 0.8rem; + } + + .dt-mx-md-3 { + margin-left: 1.6rem; + margin-right: 1.6rem; + } + + .dt-mx-md-4 { + margin-left: 2.4rem; + margin-right: 2.4rem; + } + + .dt-mx-md-5 { + margin-left: 3.2rem; + margin-right: 3.2rem; + } + + .dt-mx-md-6 { + margin-left: 4.8rem; + margin-right: 4.8rem; + } + + .dt-p-md-0 { + padding: 0; + } + + .dt-pt-md-0 { + padding-top: 0; + } + + .dt-pt-md-1 { + padding-top: 0.4rem; + } + + .dt-pt-md-2 { + padding-top: 0.8rem; + } + + .dt-pt-md-3 { + padding-top: 1.6rem; + } + + .dt-pt-md-4 { + padding-top: 2.4rem; + } + + .dt-pt-md-5 { + padding-top: 3.2rem; + } + + .dt-pt-md-6 { + padding-top: 4.8rem; + } + + .dt-pr-md-0 { + padding-right: 0; + } + + .dt-pr-md-1 { + padding-right: 0.4rem; + } + + .dt-pr-md-2 { + padding-right: 0.8rem; + } + + .dt-pr-md-3 { + padding-right: 1.6rem; + } + + .dt-pr-md-4 { + padding-right: 2.4rem; + } + + .dt-pr-md-5 { + padding-right: 3.2rem; + } + + .dt-pr-md-6 { + padding-right: 4.8rem; + } + + .dt-pb-md-0 { + padding-bottom: 0; + } + + .dt-pb-md-1 { + padding-bottom: 0.4rem; + } + + .dt-pb-md-2 { + padding-bottom: 0.8rem; + } + + .dt-pb-md-3 { + padding-bottom: 1.6rem; + } + + .dt-pb-md-4 { + padding-bottom: 2.4rem; + } + + .dt-pb-md-5 { + padding-bottom: 3.2rem; + } + + .dt-pb-md-6 { + padding-bottom: 4.8rem; + } + + .dt-pl-md-0 { + padding-left: 0; + } + + .dt-pl-md-1 { + padding-left: 0.4rem; + } + + .dt-pl-md-2 { + padding-left: 0.8rem; + } + + .dt-pl-md-3 { + padding-left: 1.6rem; + } + + .dt-pl-md-4 { + padding-left: 2.4rem; + } + + .dt-pl-md-5 { + padding-left: 3.2rem; + } + + .dt-pl-md-6 { + padding-left: 4.8rem; + } + + .dt-py-md-0 { + padding-top: 0; + padding-bottom: 0; + } + + .dt-py-md-1 { + padding-top: 0.4rem; + padding-bottom: 0.4rem; + } + + .dt-py-md-2 { + padding-top: 0.8rem; + padding-bottom: 0.8rem; + } + + .dt-py-md-3 { + padding-top: 1.6rem; + padding-bottom: 1.6rem; + } + + .dt-py-md-4 { + padding-top: 2.4rem; + padding-bottom: 2.4rem; + } + + .dt-py-md-5 { + padding-top: 3.2rem; + padding-bottom: 3.2rem; + } + + .dt-py-md-6 { + padding-top: 4.8rem; + padding-bottom: 4.8rem; + } + + .dt-px-md-0 { + padding-left: 0; + padding-right: 0; + } + + .dt-px-md-1 { + padding-left: 0.4rem; + padding-right: 0.4rem; + } + + .dt-px-md-2 { + padding-left: 0.8rem; + padding-right: 0.8rem; + } + + .dt-px-md-3 { + padding-left: 1.6rem; + padding-right: 1.6rem; + } + + .dt-px-md-4 { + padding-left: 2.4rem; + padding-right: 2.4rem; + } + + .dt-px-md-5 { + padding-left: 3.2rem; + padding-right: 3.2rem; + } + + .dt-px-md-6 { + padding-left: 4.8rem; + padding-right: 4.8rem; + } + + .dt-float-md-right { + float: right; + } + + .dt-float-md-left { + float: left; + } + + .dt-float-md-none { + float: none; + } + + .dt-order-md-1 { + order: 1; + } + + .dt-order-md-2 { + order: 2; + } + + .dt-order-md-3 { + order: 3; + } + + .dt-order-md-4 { + order: 4; + } + + .dt-order-md-5 { + order: 5; + } + + .dt-order-md-6 { + order: 6; + } + + .dt-order-md-7 { + order: 7; + } + + .dt-order-md-8 { + order: 8; + } + + .dt-order-md-9 { + order: 9; + } + + .dt-order-md-10 { + order: 10; + } + + .dt-order-md-11 { + order: 11; + } + + .dt-order-md-12 { + order: 12; + } +} + +/* ---//--- */ + +/* Large Screen */ +@media (min-width: 62em) { + + .dt-container, + .dt-container-lg, + .dt-container-md, + .dt-container-sm { + max-width: 106.668rem; + /*96rem*/ + } + + .dt-g-lg-0, + .dt-gx-lg-0 { + --dt-gutter-x: 0rem; + } + + .dt-g-lg-0, + .dt-gy-lg-0 { + --dt-gutter-y: 0rem; + } + + .dt-g-lg-1, + .dt-gx-lg-1 { + --dt-gutter-x: 0.4rem; + } + + .dt-g-lg-1, + .dt-gy-lg-1 { + --dt-gutter-y: 0.4rem; + } + + .dt-g-lg-2, + .dt-gx-lg-2 { + --dt-gutter-x: 0.8rem; + } + + .dt-g-lg-2, + .dt-gy-lg-2 { + --dt-gutter-y: 0.8rem; + } + + .dt-g-lg-3, + .dt-gx-lg-3 { + --dt-gutter-x: 1.6rem; + } + + .dt-g-lg-3, + .dt-gy-lg-3 { + --dt-gutter-y: 1.6rem; + } + + .dt-g-lg-4, + .dt-gx-lg-4 { + --dt-gutter-x: 2.4rem; + } + + .dt-g-lg-4, + .dt-gy-lg-4 { + --dt-gutter-y: 2.4rem; + } + + .dt-g-lg-5, + .dt-gx-lg-5 { + --dt-gutter-x: 4.8rem; + } + + .dt-g-lg-5, + .dt-gy-lg-5 { + --dt-gutter-y: 4.8rem; + } + + .dt-col-lg { + -ms-flex: 1 0 0%; + flex: 1 0 0%; + } + + .dt-col-lg-auto { + -ms-flex: 0 0 auto; + flex: 0 0 auto; + max-width: 100%; + width: auto; + } + + .dt-col-lg-1 { + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + + .dt-col-lg-2 { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + + .dt-col-lg-3 { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + + .dt-col-lg-4 { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + + .dt-col-lg-5 { + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + + .dt-col-lg-6 { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + + .dt-col-lg-7 { + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + + .dt-col-lg-8 { + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + + .dt-col-lg-9 { + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + + .dt-col-lg-10 { + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + + .dt-col-lg-11 { + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + + .dt-col-lg-12 { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + + .dt-d-lg-none, + div.dt-d-lg-none { + display: none; + } + + .dt-d-lg-block, + div.dt-d-lg-block { + display: block; + } + + .dt-d-lg-inline, + div.dt-d-lg-inline { + display: inline; + } + + .dt-d-lg-inline-block, + div.dt-d-lg-inline-block { + display: inline-block; + } + + .dt-text-lg-left { + text-align: start; + } + + .dt-text-lg-right { + text-align: end; + } + + .dt-text-lg-center { + text-align: center; + } + + .dt-mt-lg-auto { + margin-top: auto; + } + + .dt-mr-lg-auto { + margin-right: auto; + } + + .dt-mb-lg-auto { + margin-bottom: auto; + } + + .dt-ml-lg-auto { + margin-left: auto; + } + + .dt-my-lg-auto { + margin-top: auto; + margin-bottom: auto; + } + + .dt-mx-lg-auto { + margin-left: auto; + margin-right: auto; + } + + .dt-m-lg-0 { + margin: 0; + } + + .dt-mt-lg-0 { + margin-top: 0; + } + + .dt-mt-lg-1 { + margin-top: 0.4rem; + } + + .dt-mt-lg-2 { + margin-top: 0.8rem; + } + + .dt-mt-lg-3 { + margin-top: 1.6rem; + } + + .dt-mt-lg-4 { + margin-top: 2.4rem; + } + + .dt-mt-lg-5 { + margin-top: 3.2rem; + } + + .dt-mt-lg-6 { + margin-top: 4.8rem; + } + + .dt-mr-lg-0 { + margin-right: 0; + } + + .dt-mr-lg-1 { + margin-right: 0.4rem; + } + + .dt-mr-lg-2 { + margin-right: 0.8rem; + } + + .dt-mr-lg-3 { + margin-right: 1.6rem; + } + + .dt-mr-lg-4 { + margin-right: 2.4rem; + } + + .dt-mr-lg-5 { + margin-right: 3.2rem; + } + + .dt-mr-lg-6 { + margin-right: 4.8rem; + } + + .dt-mb-lg-0 { + margin-bottom: 0; + } + + .dt-mb-lg-1 { + margin-bottom: 0.4rem; + } + + .dt-mb-lg-2 { + margin-bottom: 0.8rem; + } + + .dt-mb-lg-3 { + margin-bottom: 1.6rem; + } + + .dt-mb-lg-4 { + margin-bottom: 2.4rem; + } + + .dt-mb-lg-5 { + margin-bottom: 3.2rem; + } + + .dt-mb-lg-6 { + margin-bottom: 4.8rem; + } + + .dt-ml-lg-0 { + margin-left: 0; + } + + .dt-ml-lg-1 { + margin-left: 0.4rem; + } + + .dt-ml-lg-2 { + margin-left: 0.8rem; + } + + .dt-ml-lg-3 { + margin-left: 1.6rem; + } + + .dt-ml-lg-4 { + margin-left: 2.4rem; + } + + .dt-ml-lg-5 { + margin-left: 3.2rem; + } + + .dt-ml-lg-6 { + margin-left: 4.8rem; + } + + .dt-my-lg-0 { + margin-top: 0; + margin-bottom: 0; + } + + .dt-my-lg-1 { + margin-top: 0.4rem; + margin-bottom: 0.4rem; + } + + .dt-my-lg-2 { + margin-top: 0.8rem; + margin-bottom: 0.8rem; + } + + .dt-my-lg-3 { + margin-top: 1.6rem; + margin-bottom: 1.6rem; + } + + .dt-my-lg-4 { + margin-top: 2.4rem; + margin-bottom: 2.4rem; + } + + .dt-my-lg-5 { + margin-top: 3.2rem; + margin-bottom: 3.2rem; + } + + .dt-my-lg-6 { + margin-top: 4.8rem; + margin-bottom: 4.8rem; + } + + .dt-mx-lg-0 { + margin-left: 0; + margin-right: 0; + } + + .dt-mx-lg-1 { + margin-left: 0.4rem; + margin-right: 0.4rem; + } + + .dt-mx-lg-2 { + margin-left: 0.8rem; + margin-right: 0.8rem; + } + + .dt-mx-lg-3 { + margin-left: 1.6rem; + margin-right: 1.6rem; + } + + .dt-mx-lg-4 { + margin-left: 2.4rem; + margin-right: 2.4rem; + } + + .dt-mx-lg-5 { + margin-left: 3.2rem; + margin-right: 3.2rem; + } + + .dt-mx-lg-6 { + margin-left: 4.8rem; + margin-right: 4.8rem; + } + + .dt-p-lg-0 { + padding: 0; + } + + .dt-pt-lg-0 { + padding-top: 0; + } + + .dt-pt-lg-1 { + padding-top: 0.4rem; + } + + .dt-pt-lg-2 { + padding-top: 0.8rem; + } + + .dt-pt-lg-3 { + padding-top: 1.6rem; + } + + .dt-pt-lg-4 { + padding-top: 2.4rem; + } + + .dt-pt-lg-5 { + padding-top: 3.2rem; + } + + .dt-pt-lg-6 { + padding-top: 4.8rem; + } + + .dt-pr-lg-0 { + padding-right: 0; + } + + .dt-pr-lg-1 { + padding-right: 0.4rem; + } + + .dt-pr-lg-2 { + padding-right: 0.8rem; + } + + .dt-pr-lg-3 { + padding-right: 1.6rem; + } + + .dt-pr-lg-4 { + padding-right: 2.4rem; + } + + .dt-pr-lg-5 { + padding-right: 3.2rem; + } + + .dt-pr-lg-6 { + padding-right: 4.8rem; + } + + .dt-pb-lg-0 { + padding-bottom: 0; + } + + .dt-pb-lg-1 { + padding-bottom: 0.4rem; + } + + .dt-pb-lg-2 { + padding-bottom: 0.8rem; + } + + .dt-pb-lg-3 { + padding-bottom: 1.6rem; + } + + .dt-pb-lg-4 { + padding-bottom: 2.4rem; + } + + .dt-pb-lg-5 { + padding-bottom: 3.2rem; + } + + .dt-pb-lg-6 { + padding-bottom: 4.8rem; + } + + .dt-pl-lg-0 { + padding-left: 0; + } + + .dt-pl-lg-1 { + padding-left: 0.4rem; + } + + .dt-pl-lg-2 { + padding-left: 0.8rem; + } + + .dt-pl-lg-3 { + padding-left: 1.6rem; + } + + .dt-pl-lg-4 { + padding-left: 2.4rem; + } + + .dt-pl-lg-5 { + padding-left: 3.2rem; + } + + .dt-pl-lg-6 { + padding-left: 4.8rem; + } + + .dt-py-lg-0 { + padding-top: 0; + padding-bottom: 0; + } + + .dt-py-lg-1 { + padding-top: 0.4rem; + padding-bottom: 0.4rem; + } + + .dt-py-lg-2 { + padding-top: 0.8rem; + padding-bottom: 0.8rem; + } + + .dt-py-lg-3 { + padding-top: 1.6rem; + padding-bottom: 1.6rem; + } + + .dt-py-lg-4 { + padding-top: 2.4rem; + padding-bottom: 2.4rem; + } + + .dt-py-lg-5 { + padding-top: 3.2rem; + padding-bottom: 3.2rem; + } + + .dt-py-lg-6 { + padding-top: 4.8rem; + padding-bottom: 4.8rem; + } + + .dt-px-lg-0 { + padding-left: 0; + padding-right: 0; + } + + .dt-px-lg-1 { + padding-left: 0.4rem; + padding-right: 0.4rem; + } + + .dt-px-lg-2 { + padding-left: 0.8rem; + padding-right: 0.8rem; + } + + .dt-px-lg-3 { + padding-left: 1.6rem; + padding-right: 1.6rem; + } + + .dt-px-lg-4 { + padding-left: 2.4rem; + padding-right: 2.4rem; + } + + .dt-px-lg-5 { + padding-left: 3.2rem; + padding-right: 3.2rem; + } + + .dt-px-lg-6 { + padding-left: 4.8rem; + padding-right: 4.8rem; + } + + .dt-float-lg-right { + float: right; + } + + .dt-float-lg-left { + float: left; + } + + .dt-float-lg-none { + float: none; + } + + .dt-order-lg-1 { + order: 1; + } + + .dt-order-lg-2 { + order: 2; + } + + .dt-order-lg-3 { + order: 3; + } + + .dt-order-lg-4 { + order: 4; + } + + .dt-order-lg-5 { + order: 5; + } + + .dt-order-lg-6 { + order: 6; + } + + .dt-order-lg-7 { + order: 7; + } + + .dt-order-lg-8 { + order: 8; + } + + .dt-order-lg-9 { + order: 9; + } + + .dt-order-lg-10 { + order: 10; + } + + .dt-order-lg-11 { + order: 11; + } + + .dt-order-lg-12 { + order: 12; + } +} + +/* ---//--- */ + +/* Extra Large Screen */ +@media (min-width: 75em) { + + .dt-container, + .dt-container-lg, + .dt-container-md, + .dt-container-sm, + .dt-container-xl { + max-width: 127.2rem; + /*114rem*/ + } + + .dt-g-xl-0, + .dt-gx-xl-0 { + --dt-gutter-x: 0rem; + } + + .dt-g-xl-0, + .dt-gy-xl-0 { + --dt-gutter-y: 0rem; + } + + .dt-g-xl-1, + .dt-gx-xl-1 { + --dt-gutter-x: 0.4rem; + } + + .dt-g-xl-1, + .dt-gy-xl-1 { + --dt-gutter-y: 0.4rem; + } + + .dt-g-xl-2, + .dt-gx-xl-2 { + --dt-gutter-x: 0.8rem; + } + + .dt-g-xl-2, + .dt-gy-xl-2 { + --dt-gutter-y: 0.8rem; + } + + .dt-g-xl-3, + .dt-gx-xl-3 { + --dt-gutter-x: 1.6rem; + } + + .dt-g-xl-3, + .dt-gy-xl-3 { + --dt-gutter-y: 1.6rem; + } + + .dt-g-xl-4, + .dt-gx-xl-4 { + --dt-gutter-x: 2.4rem; + } + + .dt-g-xl-4, + .dt-gy-xl-4 { + --dt-gutter-y: 2.4rem; + } + + .dt-g-xl-5, + .dt-gx-xl-5 { + --dt-gutter-x: 4.8rem; + } + + .dt-g-xl-5, + .dt-gy-xl-5 { + --dt-gutter-y: 4.8rem; + } + + .dt-col-xl { + -ms-flex: 1 0 0%; + flex: 1 0 0%; + } + + .dt-col-xl-auto { + -ms-flex: 0 0 auto; + flex: 0 0 auto; + max-width: 100%; + width: auto; + } + + .dt-col-xl-1 { + -ms-flex: 0 0 8.333333%; + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + + .dt-col-xl-2 { + -ms-flex: 0 0 16.666667%; + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + + .dt-col-xl-3 { + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + } + + .dt-col-xl-4 { + -ms-flex: 0 0 33.333333%; + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + + .dt-col-xl-5 { + -ms-flex: 0 0 41.666667%; + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + + .dt-col-xl-6 { + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + } + + .dt-col-xl-7 { + -ms-flex: 0 0 58.333333%; + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + + .dt-col-xl-8 { + -ms-flex: 0 0 66.666667%; + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + + .dt-col-xl-9 { + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + } + + .dt-col-xl-10 { + -ms-flex: 0 0 83.333333%; + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + + .dt-col-xl-11 { + -ms-flex: 0 0 91.666667%; + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + + .dt-col-xl-12 { + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + } + + .dt-d-xl-none, + div.dt-d-xl-none { + display: none; + } + + .dt-d-xl-block, + div.dt-d-xl-block { + display: block; + } + + .dt-d-xl-inline, + div.dt-d-xl-inline { + display: inline; + } + + .dt-d-xl-inline-block, + div.dt-d-xl-inline-block { + display: inline-block; + } + + .dt-text-xl-left { + text-align: start; + } + + .dt-text-xl-right { + text-align: end; + } + + .dt-text-xl-center { + text-align: center; + } + + .dt-mt-xl-auto { + margin-top: auto; + } + + .dt-mr-xl-auto { + margin-right: auto; + } + + .dt-mb-xl-auto { + margin-bottom: auto; + } + + .dt-ml-xl-auto { + margin-left: auto; + } + + .dt-my-xl-auto { + margin-top: auto; + margin-bottom: auto; + } + + .dt-mx-xl-auto { + margin-left: auto; + margin-right: auto; + } + + .dt-m-xl-0 { + margin: 0; + } + + .dt-mt-xl-0 { + margin-top: 0; + } + + .dt-mt-xl-1 { + margin-top: 0.4rem; + } + + .dt-mt-xl-2 { + margin-top: 0.8rem; + } + + .dt-mt-xl-3 { + margin-top: 1.6rem; + } + + .dt-mt-xl-4 { + margin-top: 2.4rem; + } + + .dt-mt-xl-5 { + margin-top: 3.2rem; + } + + .dt-mt-xl-6 { + margin-top: 4.8rem; + } + + .dt-mr-xl-0 { + margin-right: 0; + } + + .dt-mr-xl-1 { + margin-right: 0.4rem; + } + + .dt-mr-xl-2 { + margin-right: 0.8rem; + } + + .dt-mr-xl-3 { + margin-right: 1.6rem; + } + + .dt-mr-xl-4 { + margin-right: 2.4rem; + } + + .dt-mr-xl-5 { + margin-right: 3.2rem; + } + + .dt-mr-xl-6 { + margin-right: 4.8rem; + } + + .dt-mb-xl-0 { + margin-bottom: 0; + } + + .dt-mb-xl-1 { + margin-bottom: 0.4rem; + } + + .dt-mb-xl-2 { + margin-bottom: 0.8rem; + } + + .dt-mb-xl-3 { + margin-bottom: 1.6rem; + } + + .dt-mb-xl-4 { + margin-bottom: 2.4rem; + } + + .dt-mb-xl-5 { + margin-bottom: 3.2rem; + } + + .dt-mb-xl-6 { + margin-bottom: 4.8rem; + } + + .dt-ml-xl-0 { + margin-left: 0; + } + + .dt-ml-xl-1 { + margin-left: 0.4rem; + } + + .dt-ml-xl-2 { + margin-left: 0.8rem; + } + + .dt-ml-xl-3 { + margin-left: 1.6rem; + } + + .dt-ml-xl-4 { + margin-left: 2.4rem; + } + + .dt-ml-xl-5 { + margin-left: 3.2rem; + } + + .dt-ml-xl-6 { + margin-left: 4.8rem; + } + + .dt-my-xl-0 { + margin-top: 0; + margin-bottom: 0; + } + + .dt-my-xl-1 { + margin-top: 0.4rem; + margin-bottom: 0.4rem; + } + + .dt-my-xl-2 { + margin-top: 0.8rem; + margin-bottom: 0.8rem; + } + + .dt-my-xl-3 { + margin-top: 1.6rem; + margin-bottom: 1.6rem; + } + + .dt-my-xl-4 { + margin-top: 2.4rem; + margin-bottom: 2.4rem; + } + + .dt-my-xl-5 { + margin-top: 3.2rem; + margin-bottom: 3.2rem; + } + + .dt-my-xl-6 { + margin-top: 4.8rem; + margin-bottom: 4.8rem; + } + + .dt-mx-xl-0 { + margin-left: 0; + margin-right: 0; + } + + .dt-mx-xl-1 { + margin-left: 0.4rem; + margin-right: 0.4rem; + } + + .dt-mx-xl-2 { + margin-left: 0.8rem; + margin-right: 0.8rem; + } + + .dt-mx-xl-3 { + margin-left: 1.6rem; + margin-right: 1.6rem; + } + + .dt-mx-xl-4 { + margin-left: 2.4rem; + margin-right: 2.4rem; + } + + .dt-mx-xl-5 { + margin-left: 3.2rem; + margin-right: 3.2rem; + } + + .dt-mx-xl-6 { + margin-left: 4.8rem; + margin-right: 4.8rem; + } + + .dt-p-xl-0 { + padding: 0; + } + + .dt-pt-xl-0 { + padding-top: 0; + } + + .dt-pt-xl-1 { + padding-top: 0.4rem; + } + + .dt-pt-xl-2 { + padding-top: 0.8rem; + } + + .dt-pt-xl-3 { + padding-top: 1.6rem; + } + + .dt-pt-xl-4 { + padding-top: 2.4rem; + } + + .dt-pt-xl-5 { + padding-top: 3.2rem; + } + + .dt-pt-xl-6 { + padding-top: 4.8rem; + } + + .dt-pr-xl-0 { + padding-right: 0; + } + + .dt-pr-xl-1 { + padding-right: 0.4rem; + } + + .dt-pr-xl-2 { + padding-right: 0.8rem; + } + + .dt-pr-xl-3 { + padding-right: 1.6rem; + } + + .dt-pr-xl-4 { + padding-right: 2.4rem; + } + + .dt-pr-xl-5 { + padding-right: 3.2rem; + } + + .dt-pr-xl-6 { + padding-right: 4.8rem; + } + + .dt-pb-xl-0 { + padding-bottom: 0; + } + + .dt-pb-xl-1 { + padding-bottom: 0.4rem; + } + + .dt-pb-xl-2 { + padding-bottom: 0.8rem; + } + + .dt-pb-xl-3 { + padding-bottom: 1.6rem; + } + + .dt-pb-xl-4 { + padding-bottom: 2.4rem; + } + + .dt-pb-xl-5 { + padding-bottom: 3.2rem; + } + + .dt-pb-xl-6 { + padding-bottom: 4.8rem; + } + + .dt-pl-xl-0 { + padding-left: 0; + } + + .dt-pl-xl-1 { + padding-left: 0.4rem; + } + + .dt-pl-xl-2 { + padding-left: 0.8rem; + } + + .dt-pl-xl-3 { + padding-left: 1.6rem; + } + + .dt-pl-xl-4 { + padding-left: 2.4rem; + } + + .dt-pl-xl-5 { + padding-left: 3.2rem; + } + + .dt-pl-xl-6 { + padding-left: 4.8rem; + } + + .dt-py-xl-0 { + padding-top: 0; + padding-bottom: 0; + } + + .dt-py-xl-1 { + padding-top: 0.4rem; + padding-bottom: 0.4rem; + } + + .dt-py-xl-2 { + padding-top: 0.8rem; + padding-bottom: 0.8rem; + } + + .dt-py-xl-3 { + padding-top: 1.6rem; + padding-bottom: 1.6rem; + } + + .dt-py-xl-4 { + padding-top: 2.4rem; + padding-bottom: 2.4rem; + } + + .dt-py-xl-5 { + padding-top: 3.2rem; + padding-bottom: 3.2rem; + } + + .dt-py-xl-6 { + padding-top: 4.8rem; + padding-bottom: 4.8rem; + } + + .dt-px-xl-0 { + padding-left: 0; + padding-right: 0; + } + + .dt-px-xl-1 { + padding-left: 0.4rem; + padding-right: 0.4rem; + } + + .dt-px-xl-2 { + padding-left: 0.8rem; + padding-right: 0.8rem; + } + + .dt-px-xl-3 { + padding-left: 1.6rem; + padding-right: 1.6rem; + } + + .dt-px-xl-4 { + padding-left: 2.4rem; + padding-right: 2.4rem; + } + + .dt-px-xl-5 { + padding-left: 3.2rem; + padding-right: 3.2rem; + } + + .dt-px-xl-6 { + padding-left: 4.8rem; + padding-right: 4.8rem; + } + + .dt-float-xl-right { + float: right; + } + + .dt-float-xl-left { + float: left; + } + + .dt-float-xl-none { + float: none; + } + + .dt-order-xl-1 { + order: 1; + } + + .dt-order-xl-2 { + order: 2; + } + + .dt-order-xl-3 { + order: 3; + } + + .dt-order-xl-4 { + order: 4; + } + + .dt-order-xl-5 { + order: 5; + } + + .dt-order-xl-6 { + order: 6; + } + + .dt-order-xl-7 { + order: 7; + } + + .dt-order-xl-8 { + order: 8; + } + + .dt-order-xl-9 { + order: 9; + } + + .dt-order-xl-10 { + order: 10; + } + + .dt-order-xl-11 { + order: 11; + } + + .dt-order-xl-12 { + order: 12; + } +} + +/* ---//--- */ + +/* Extra Big Screen */ +@media (min-width: 87.5em) { + + .dt-container, + .dt-container-lg, + .dt-container-md, + .dt-container-sm, + .dt-container-xl, + .dt-container-xxl { + max-width: 140rem; + } +} + +/* ---//--- */ + +/* Some Important Classes */ + +.font-normal { + font-weight: 400; +} + +.font-bold { + font-weight: bold; +} + +.font-bolder { + font-weight: bolder; +} + +.lead { + font-size: 1.8rem; + line-height: 1.8; +} + +/* Classes */ + +.dt_tabs .tabs { + padding: 0; + list-style: none; + display: flex; + flex-wrap: wrap; + justify-content: center; + text-align: center; + margin: 0 0 4rem; +} + +.dt_tabs .tabs .dt-btn-tab { + display: inline-block; + border: none; + font-weight: 500; + text-decoration: none; + color: var(--dt-secondary-color); +} + +.dt_tabs.tab_style1 .tabs { + align-items: center; + border: 0.2rem solid rgba(189, 189, 189, 0.35); + max-width: max-content; + margin: auto; + border-radius: 10rem; + background-color: #fff; + box-shadow: 0 0.9rem 1.8rem rgba(24, 16, 16, 0.05); + margin-bottom: 1.6rem; + overflow: hidden; +} + +.dt_tabs.tab_style1 .tabs .dt-btn-tab { + background: 0 0; + border-radius: 0; + padding: 1.7rem 4.8rem; + font-size: 2rem; +} + +.dt_tabs.tab_style1 .tabs .dt-btn-tab.active { + background-color: var(--dt-main-color); + border-color: var(--dt-main-color); + color: #fff; + -webkit-transition: all 0.25s ease-in-out; + transition: all 0.25s ease-in-out; +} + +.tab-content>.tab-pane { + display: none; +} + +.tab-content>.active { + display: block; +} + +.tab-content>.tab-pane>.dt-row { + animation: slide_up 2.5s ease-out; + justify-content: center; +} + +.fade:not(.show) { + opacity: 0; +} + +.fade { + transition: opacity 0.15s linear; +} + +.dt-my-default { + margin-top: 10rem; + margin-bottom: 10rem; +} + +.dt-mt-default { + margin-top: 10rem; +} + +.dt-mb-default { + margin-bottom: 10rem; +} + +.dt-py-default { + padding-top: 10rem; + padding-bottom: 10rem; +} + +.dt-pt-default { + padding-top: 10rem; +} + +.dt-pb-default { + padding-bottom: 10rem; +} + +.off--layer { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + cursor: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAACZSURBVHgBzZbbDYAgDEVbJ3BTRjCO4KZuUDXwY0TpO/bLKPccaSCARFQAYEbEFQKq8esD1VrAuS7mjf14ESEZfvCUsAd4SMQDPbIamfoHJUFzyzkAs4QDcpN8Ad0lPXCYpCMTSyb4W6W0LmUxpCzvlA0rAahlmqA4Y2kFO2vuNySdrkOWp+SVGSHpyApSu+CdF8gNAqpNYD8AOPsAu4AYqtUAAAAASUVORK5CYII="), pointer; + background-color: #000000; + opacity: 0.5; + z-index: 0; + transition: all .3s cubic-bezier(.785, .135, .15, .86); + -webkit-transition: all .3s cubic-bezier(.785, .135, .15, .86); +} + +.overlay--enabled { + overflow: hidden; +} + +.d-flex { + display: flex; +} + +.align-items-center { + align-items: center; +} + +.justify-content-center { + justify-content: center; +} + +.list_none { + list-style: none; + margin: 0 0 -2rem; + padding: 0; +} + +.list_none li { + margin-bottom: 2rem; +} + +.list_none li i { + font-size: 135%; + vertical-align: middle; +} + +.list_none li span { + display: inline-block; + vertical-align: top; +} + +.list_none li a { + text-decoration: none; +} + +.text-primary { + color: var(--dt-main-color); +} + +.text-white { + color: #fff; +} + +.text-secondary { + color: var(--dt-secondary-color); +} + +.bg-primary { + background-color: var(--dt-main-color); +} + +.bg-secondary { + background-color: var(--dt-secondary-color); +} + +.bg-gray { + background-color: rgba(14, 25, 30, 0.03); +} + +/* --- // --- */ + +/* Carousel Prev/Next */ + +.dt_owl_carousel.owl-carousel .owl-dots.disabled, +.dt_owl_carousel.owl-carousel .owl-nav.disabled { + display: none !important; +} + +.dt_owl_carousel:not(.slider) .owl-nav { + display: flex; + align-items: center; + justify-content: center; + margin-top: 2rem; +} + +@media (min-width: 62em) { + .dt_owl_carousel:not(.slider) .owl-nav { + margin-top: 3rem; + } +} + +.dt_owl_carousel:not(.slider) .owl-nav [class*=owl-] { + margin: 0; + width: 7rem; + height: 7rem; + font-size: 2rem; + outline: none; + background: var(--dt-secondary-color); + color: #fff; + display: flex; + align-items: center; + justify-content: center; + box-shadow: 0 0 3rem 0 rgba(0, 0, 0, 0.1); + -webkit-transition: all 500ms ease; + transition: all 500ms ease; + border-radius: 50%; +} + +.dt_owl_carousel:not(.slider) .owl-nav [class*=owl-]+[class*=owl-] { + margin-left: 1rem; +} + +.dt_owl_carousel:not(.slider) .owl-nav [class*=owl-]:hover { + background-color: var(--dt-main-color); + color: #fff; +} + +/* Carousel Dots */ + +.dt_owl_carousel.owl-carousel .owl-dots { + display: flex; + align-items: center; + justify-content: center; +} + +.dt_owl_carousel.owl-carousel .owl-dots .owl-dot { + outline: none; +} + +.dt_owl_carousel.owl-carousel .owl-dots .owl-dot { + margin: 0.4rem; +} + +.dt_owl_carousel.owl-carousel .owl-dots .owl-dot span { + width: 1.5rem; + height: 1.5rem; + display: block; + background-color: transparent; + border-radius: 50%; + border: 0.3rem solid var(--dt-secondary-color); + -webkit-transition: all 300ms ease; + transition: all 300ms ease; +} + +.dt_owl_carousel.owl-carousel .owl-dots .owl-dot:hover span, +.dt_owl_carousel.owl-carousel .owl-dots .owl-dot.active span { + border-color: var(--dt-main-color); + background-color: var(--dt-main-color); +} + +/* Preloader */ + +.dt_preloader { + cursor: default; + height: 100vh; + position: fixed; + left: 0; + top: 0; + bottom: 0; + right: 0; + width: 100%; + z-index: 9999999; +} + +.dt_preloader-close.site--close { + position: fixed; + z-index: 99; + background-color: var(--dt-main-color); +} + +.dt_preloader-close.site--close:before, +.dt_preloader-close.site--close:after { + background-color: #fff; +} + +.dt_preloader .dt_preloader-animation { + position: absolute; + top: 50%; + left: 50%; + width: 100%; + transform: translate(-50%, -50%); + z-index: 1000; +} + +.dt_preloader.loaded .dt_preloader-animation { + opacity: 0; + transition: 0.3s ease-out; +} + +.dt_preloader .dt_preloader-animation .dt_preloader-spinner { + animation: floating--rotate 1s infinite linear; + border-radius: 50%; + height: 14.4rem; + width: 14.4rem; + margin: 0 auto 4.5rem auto; + border: 0.3rem solid rgba(0, 0, 0, 0.2); + border-top-color: var(--dt-main-color); +} + +.dt_preloader .dt_preloader-animation .dt_preloader-text { + font: bold 5.5rem var(--dt-title-family); + text-align: center; + -webkit-user-select: none; + user-select: none; +} + +.dt_preloader .dt_preloader-animation .dt_preloader-text .splitted { + color: var(--dt-main-color); + position: relative; +} + +.dt_preloader .dt_preloader-animation .dt_preloader-text .splitted:nth-child(2):before { + -webkit-animation-delay: 0.2s; + animation-delay: 0.2s; +} + +.dt_preloader .dt_preloader-animation .dt_preloader-text .splitted:nth-child(3):before { + -webkit-animation-delay: 0.4s; + animation-delay: 0.4s; +} + +.dt_preloader .dt_preloader-animation .dt_preloader-text .splitted:nth-child(4):before { + -webkit-animation-delay: 0.6s; + animation-delay: 0.6s; +} + +.dt_preloader .dt_preloader-animation .dt_preloader-text .splitted:nth-child(5):before { + -webkit-animation-delay: 0.8s; + animation-delay: 0.8s; +} + +.dt_preloader .dt_preloader-animation .dt_preloader-text .splitted:nth-child(6):before { + -webkit-animation-delay: 1s; + animation-delay: 1s; +} + +.dt_preloader .dt_preloader-animation .dt_preloader-text .splitted:nth-child(7):before { + -webkit-animation-delay: 1.2s; + animation-delay: 1.2s; +} + +.dt_preloader .dt_preloader-animation .dt_preloader-text .splitted:nth-child(8):before { + -webkit-animation-delay: 1.4s; + animation-delay: 1.4s; +} + +.dt_preloader .dt_preloader-animation .dt_preloader-text .splitted::before { + animation: letters_loading 4s infinite; + color: var(--dt-secondary-color); + content: attr(data-char); + position: absolute; + top: -0.3rem; + left: 0; + opacity: 0; + -webkit-transform: rotateY(-90deg); + transform: rotateY(-90deg); +} + +.dt_preloader p { + font-size: 15px; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 8px; + text-align: center; + color: var(--dt-main-color); +} + +.dt_preloader .loader { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + font-size: 0; + z-index: 1; + pointer-events: none; +} + +.dt_preloader .loader .dt-row { + height: 100%; +} + +.dt_preloader .loader .loader-section { + padding: 0px; +} + +.dt_preloader .loader .loader-section .bg { + background-color: #fff; + height: 100%; + left: 0; + width: 100%; + transition: all 800ms cubic-bezier(0.77, 0, 0.175, 1); +} + +.dt_preloader.loaded .animation-preloader { + opacity: 0; + transition: 0.3s ease-out; +} + +.dt_preloader.loaded .loader-section .bg { + width: 0; + transition: 0.7s 0.3s allcubic-bezier(0.1, 0.1, 0.1, 1); +} + +@media (max-width: 767px) { + .dt_preloader .dt_preloader-animation .dt_preloader-spinner { + height: 12rem; + width: 12rem; + margin: 0 auto 1.5rem auto; + } + .dt_preloader .dt_preloader-animation .dt_preloader-text { + font-size: 4rem; + } +} + +/* ---//--- */ + + +/* @keyframes */ + +@keyframes letters_loading { + + 0%, + 75%, + 100% { + opacity: 0; + -webkit-transform: rotateY(-90deg); + transform: rotateY(-90deg); + } + + 25%, + 50% { + opacity: 1; + -webkit-transform: rotateY(0deg); + transform: rotateY(0deg); + } +} + +@keyframes pulse_border_1 { + 0% { + transform: scale(1); + opacity: .67 + } + + 100% { + transform: scale(2.2); + opacity: 0 + } +} + +@keyframes pulse_border_2 { + 0% { + transform: translateX(-50%) translateY(-50%) translateZ(0) scale(1); + opacity: 1; + } + 100% { + transform: translateX(-50%) translateY(-50%) translateZ(0) scale(1.5); + opacity: 0; + } +} + +@keyframes slide_up { + 0% { + opacity: 0; + transform: translateY(-3%) + } + + 50% { + opacity: 1; + transform: translateY(0) + } +} + +@keyframes hamburger { + 0% { + width: 100%; + } + + 50% { + width: 50%; + } + + 100% { + width: 100%; + } +} + +@keyframes rightCaret { + 0% { + -ms-transform: translateX(-1px); + -webkit-transform: translateX(-1px); + transform: translateX(-1px); + } + + 50% { + -ms-transform: translateX(2px); + -webkit-transform: translateX(2px); + transform: translateX(2px); + } + + 100% { + -ms-transform: translateX(-1px); + -webkit-transform: translateX(-1px); + transform: translateX(-1px); + } +} + +@keyframes ripple { + 70% { + box-shadow: 0 0 0 70px rgba(253, 167, 0, 0); + } + + 100% { + box-shadow: 0 0 0 0 rgba(253, 167, 0, 0); + } +} + +@keyframes floating--rotate { + to { + -webkit-transform: rotateZ(360deg); + transform: rotateZ(360deg); + } +} + +@keyframes foldAnimation { + 0% { + transform: rotateY(0deg); + } + 50% { + transform: rotateY(90deg); + } + 100% { + transform: rotateY(0deg); + } +} + +@keyframes topFromBottom { + 49% { + transform: translateY(-100%) + } + + 50% { + opacity: 0; + transform: translateY(100%) + } + + 51% { + opacity: 1 + } +} + +@keyframes count { + 50% { + opacity: 1; + -webkit-transform: translateY(-1.1rem); + transform: translateY(-1.1rem); + } + + 100% { + opacity: 1; + -webkit-transform: translateY(0.2rem); + transform: translateY(0.2rem); + } +} + +@keyframes dash { + 0% { + stroke-width: 0; + } + + 100% { + stroke-width: 200px; + } +} + +@keyframes updown { + 0% { + transform: rotateX(0deg) translateY(0px); + } + 50% { + transform: rotateX(0deg) translateY(-50px); + } + 100% { + transform: rotateX(0deg) translateY(0px); + } +} + +@keyframes text-spin { + 0% { + -webkit-transform: rotate(0); + transform: rotate(0); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} + +@keyframes scroll_top_effect { + 0% { + transform: translateY(2px) + } + + 100% { + transform: translateY(-2px) + } +} + +@keyframes animation-two { + 0% { + -webkit-transform: translateY(0px) translateX(0) rotate(0); + transform: translateY(0px) translateX(0) rotate(0); + } + 30% { + transform: translateY(15px) translateX(10px) rotate(5deg); + -webkit-transform-origin: center center; + transform-origin: center center; + } + 50% { + transform: translateY(15px) translateX(10px) rotate(15deg); + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + } + 80% { + transform: translateY(15px) translateX(10px) rotate(5deg); + -webkit-transform-origin: left top; + transform-origin: left top; + } + 100% { + -webkit-transform: translateY(0px) translateX(0) rotate(0); + transform: translateY(0px) translateX(0) rotate(0); + -webkit-transform-origin: center center; + transform-origin: center center; + } +} + +@keyframes rotate3d { + 0% { + transform: rotateY(0deg); + } + 100% { + transform: rotateY(360deg); + } +} + +@keyframes ribbonRotate { + 0%, + 100% { + -webkit-transform: rotate(0); + transform: rotate(0); + } + + 25%, + 75% { + -webkit-transform: rotate(15deg); + transform: rotate(15deg); + } + + 50% { + -webkit-transform: rotate(30deg); + transform: rotate(30deg); + } +} + +@keyframes animationFramesOne { + 0% { + transform: translate(0px,0px) rotate(0deg) ; + } + 20% { + transform: translate(73px,-1px) rotate(36deg) ; + } + 40% { + transform: translate(141px,72px) rotate(72deg) ; + } + 60% { + transform: translate(83px,122px) rotate(108deg) ; + } + 80% { + transform: translate(-40px,72px) rotate(144deg) ; + } + 100% { + transform: translate(0px,0px) rotate(0deg) ; + } +} + +@keyframes glowing { + 0% { + opacity: 0; + -webkit-transform: scale(0); + transform: scale(0); + -webkit-transition: all 500ms ease; + transition: all 500ms ease; + } + + 50% { + opacity: 0.7; + -webkit-transform: scale(1); + transform: scale(1); + -webkit-transition: all 500ms ease; + transition: all 500ms ease; + } + + 100% { + opacity: 0; + -webkit-transform: scale(0); + transform: scale(0); + -webkit-transition: all 500ms ease; + transition: all 500ms ease; + } +} + +@keyframes scroll-left { + 0% { + transform: translateX(0%); + } + + 100% { + transform: translateX(-100%); + } +} + +@keyframes arrowFifteen { + 0% { + transform: scale(1); + } + + 100% { + transform: scale(1.5); + } +} + +@keyframes circleFifteen { + 0% { + bottom: -55px; + left: -55px; + } + + 50% { + bottom: -35px; + left: -35px; + } + + 100% { + bottom: -55px; + left: -25px; + } +} + +@keyframes icon-bounce { + 0%, 100%, 20%, 50%, 80% { + -webkit-transform: translateY(0); + transform: translateY(0); + } + 40% { + -webkit-transform: translateY(-5px); + transform: translateY(-5px); + } + 60% { + -webkit-transform: translateY(-2px); + transform: translateY(-2px); + } +} + +@keyframes icon-bounce-2 { + 0%, 100%, 20%, 50%, 80% { + transform: translateY(0); + } + 40% { + transform: translateY(-10px); + } + 60% { + transform: translateY(-5px); + } +} + +@keyframes float_up_down { + 0% { + transform: translateY(0px); + transform: translateY(0px); + opacity: 1; + } + + 50% { + transform: translateY(30px); + transform: translateY(30px); + opacity: 1; + } + + 100% { + transform: translateY(0px); + transform: translateY(0px); + opacity: 1; + } +} + +/*===== Widget Commmon =====*/ + +.widget .widget-title { + position: relative; + font-size: 2.2rem; + line-height: 3.2rem; + margin-bottom: 1.6rem; +} + +.widget--left, +.widget--right, +.widget--center { + margin: 0; + width: 100%; + height: 100%; + min-height: 5rem; + display: inline-flex; + align-items: center; +} + +.widget--left { + justify-content: flex-start; +} + +.widget--center { + justify-content: center; +} + +.widget--right { + justify-content: flex-end; +} + +.widget--right li a { + margin-left: auto; +} + +.widget--left li a { + margin-right: auto; +} + +.widget--right .widget, +.widget--left .widget { + padding: 0 1.5rem; + position: relative; +} + +/*.widget--left .widget:nth-child(2n+3),*/ +.widget--left .widget:first-child { + padding-left: 0; +} + +.widget--right .widget:nth-child(n+2) { + padding: 0 1.5rem; +} + +.widget--right .widget:nth-child(2n+4), +.widget--right .widget:first-child { + padding-left: 0; +} + +.widget--right .widget:last-child:not(:first-child) { + padding-right: 0; +} + +.widget_recent_comments ol, +.widget>ul, +.widget div>ul { + list-style: none; + margin: 0; + padding: 0; +} + +.widget>*+ul, +.widget div>*+ul { + margin-top: 1.6rem; +} + +.wp-block-latest-posts > li:before, +.wp-block-latest-posts > li:after { + content: ""; + display: table; + clear: both; +} + +.widget li { + list-style: none; + position: relative; + z-index: 0; + transition: all .2s ease-in-out; +} + +.widget ul:not(.wp-block-social-links, .wp-block-latest-posts, .product_list_widget) li a { + position: relative; + z-index: 0; + display: inline-block; + outline: none; +} + +.widget:not(.widget_text):not(.widget_meta):not(.widget_recent_comments):not(.widget_payment):not(.widget_social):not(.widget_calender):not(.widget_tag_cloud) ul:not(.wp-block-social-links, .wp-block-latest-posts, .product_list_widget) li a:before { + content: "\f324"; + font-weight: 900; + position: absolute; + top: 0; + bottom: 0; + left: 0; + font-size: 80%; + line-height: 1.65; + margin: auto 0; + color: var(--dt-main-color); + transition: all .2s ease-in-out; +} + +.widget:not(.widget_text):not(.widget_meta):not(.widget_recent_comments):not(.widget_payment):not(.widget_social):not(.widget_calender):not(.widget_tag_cloud) ul:not(.wp-block-social-links, .wp-block-latest-posts, .product_list_widget) li a, +.widget:not(.widget_text):not(.widget_meta):not(.widget_recent_comments):not(.widget-info):not(.widget_payment):not(.widget_social):not(.widget_calender):not(.widget_tag_cloud) ul:not(.wp-block-social-links, .wp-block-latest-posts, .product_list_widget) li a { + padding-left: 2rem; +} + +.widget:not(.widget_payment):not(.widget_social) li a:not(:hover, :focus) { + text-decoration: none; + color: inherit; +} + +.widget:not(.widget_payment):not(.widget_social) ol li a:hover span, +.widget:not(.widget_payment):not(.widget_social) ol li a:focus span { + text-decoration: underline; +} + +.widget li a:before, +.widget li a:after { + font-family: "Font Awesome 6 Free"; + position: absolute; + transition: all .2s ease-in-out; +} + +.widget li a:hover, +.widget li a:focus { + color: var(--dt-main-color); +} + +ol.wp-block-latest-comments { + padding: 0; + list-style: none; + margin-bottom: 0; +} + +ol.wp-block-latest-comments li:last-child { + margin-bottom: 0; +} + +.wp-block-search .wp-block-search__button, +.wp-block-search .wp-block-search__input { + border-radius: 0; +} + +.wp-block-search .wp-block-search__button { + flex-shrink: 0; + padding: 0.125em 0.763em; +} + +.widget .wp-block-search__inside-wrapper { + border: none; + border-radius: 10px; + background-color: #fff; + box-shadow: 0 1px 3px 0 rgba(3, 4, 28, 0.1); +} + +.widget .wp-block-search__inside-wrapper .wp-block-search__input { + padding: 0.75rem 1.6rem; + border-radius: inherit; + border: none; + background-color: transparent; +} + +.widget .wp-block-search__inside-wrapper .wp-block-search__button { + border-radius: 10px; +} + +.company-presentation { + text-align: center; + border-radius: 2rem; + padding: 3rem; + color: #fff; + background-color: var(--dt-secondary-color); +} + +.company-presentation .icon { + position: relative; + font-size: 2.4rem; + width: 50px; + height: 50px; + line-height: 50px; + text-align: center; + margin: auto; + color: #fff; + background: var(--dt-main-color); + display: block; + border-radius: 100px; + margin-bottom: 30px; +} + +.company-presentation .icon::before { + position: absolute; + width: 64px; + height: 64px; + left: -7px; + top: -7px; + line-height: 64px; + text-align: center; + content: ""; + border: 1px solid #fff; + border-radius: 100px; +} + +.company-presentation .title { + font-size: 2.8rem; + font-weight: 700; + line-height: 1.2; + margin-bottom: 2rem; + color: inherit; +} + +.company-presentation .phone { + font-size: 2rem; + font-weight: 700; + text-align: center; + color: #fff; + display: block; + line-height: 1.2; + text-decoration: none; + margin-bottom: 2rem; +} + +.company-presentation .phone:hover, +.company-presentation .phone:focus { + text-decoration: underline; +} + +.company-presentation .action { + margin-top: 2rem; +} + +.btn--effect-one .company-presentation .dt-btn-white:after, +.btn--effect-one .company-presentation .dt-btn-white:before, +.company-presentation .dt-btn-white:hover, +.company-presentation .dt-btn-white:focus { + --dt-secondary-color: var(--dt-main-color); +} + + +/*===== Widget Social =====*/ + +.widget.widget_social { + position: relative; + z-index: 0; +} + +.widget_social ul { + display: -ms-inline-flexbox; + display: inline-flex; + flex-wrap: wrap; + list-style: none; + margin: 0; + padding: 0; +} + +.widget_social li { + position: relative; + display: -ms-inline-flexbox; + display: inline-flex; + align-self: center; + overflow: visible; + list-style: none; + margin: 0; + margin-left: 0.7rem; + overflow: visible; + list-style: none; +} + +body .widget_social li:first-child { + margin-left: 0; +} + +body .widget_social li { + margin-top: 0.7rem; +} + +body .widget_social ul { + margin-top: -0.7rem; +} + +.widget.widget_social li a { + width: 4rem; + height: 4rem; + text-align: center; + font-size: 1.6rem; + position: relative; + cursor: pointer; + border-radius: 50%; + display: inline-flex !important; + align-items: center; + justify-content: center; + background-color: transparent; + color: var(--dt-secondary-color); + text-decoration: none; + box-shadow: 0 1.4rem 4.7rem 0 rgba(13, 30, 53, 0.1); + transition: all .2s ease-in-out; +} + +.widget_social li a:focus, +.widget_social li a:hover { + color: #fff; +} + +.widget.widget_social li a:after { + content: ''; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: -1; + border-radius: 50%; + -webkit-transform: scaleX(0) rotateX(0deg); + transform: scaleX(0) rotateX(0deg); + background-color: #fff; + transition: all .2s ease-in-out; + box-shadow: 0 1.4rem 4.7rem 0 rgba(13, 30, 53, 0.1); +} + +.widget.widget_social li a:hover:after, +.widget.widget_social li a:focus:after { + background-color: var(--dt-main-color); + -webkit-transform: scaleX(1.0) rotateX(0deg); + transform: scaleX(1.0) rotateX(0deg); +} + +.widget.widget_social li a i:before { + display: inline-block; +} + +.widget.widget_social li a:hover i:before, +.widget.widget_social li a:focus i:before { + -webkit-animation: dt_rubberBand 0.9s ease-in-out alternate; + animation: dt_rubberBand 0.9s ease-in-out alternate; +} + +@keyframes dt_rubberBand { + 0% { + transform: scale3d(1, 1, 1); + } + 30% { + transform: scale3d(1.25, 0.75, 1); + } + 40% { + transform: scale3d(0.75, 1.25, 1); + } + 50% { + transform: scale3d(1.15, 0.85, 1); + } + 65% { + transform: scale3d(.95, 1.05, 1); + } + 75% { + transform: scale3d(1.05, .95, 1); + } + 100% { + transform: scale3d(1, 1, 1); + } +} + +.widget_payment ul, +.widget_payment li { + list-style: none; + padding: 0; + line-height: 0; +} + +.widget_payment li a { + line-height: 0; + font-size: 2.2rem; +} + +.widget_payment li:not(:last-child) a { + margin-right: 1rem; + border-right: 0.1rem solid rgba(68, 68, 68, 0.75); + padding-right: 1.5rem; +} + +.widget_payment li a i::before, +.widget_payment li a i { + line-height: 0.5; +} + +.widget_payment li, +.widget_social li { + display: inline-block; +} + +/*=============== Contact List Start =============*/ + +.widget.widget_contact { + margin-top: -1rem; +} + +.contact__list { + display: flex; + align-items: center; + margin-top: 1rem; +} + +.contact__list i { + -webkit-flex-shrink: 0; + -ms-flex-negative: 0; + flex-shrink: 0; + font-size: 2.2rem; + width: 2.2rem; + display: inline-flex; + align-items: center; + justify-content: center; + text-align: center; + margin-right: 1.5rem; + position: relative; + color: var(--dt-main-color); + -webkit-transform: translateY(0); + transform: translateY(0); + transition: all .2s ease-in-out; +} + +.contact__body { + white-space: nowrap; + text-decoration: none; + display: inline-block; + text-align: start; + color: inherit; +} + +.contact__body>* { + display: block; + line-height: normal; +} + +.item-inner .title a, +.nextprev-post .post-title a, +.dt_pagetitle .dt_pagetitle_content .dt_pagetitle_breadcrumb li a, +.dt_post_item .more-link, +.dt_post_item .title a, +.contact__body a { + color: inherit; + text-decoration: none; + background: linear-gradient(to right, currentcolor 0%, currentcolor 100%) 0 100% / 0 1px no-repeat; +} + +.nextprev-post .post-title a:hover, +.nextprev-post .post-title a:focus, +.dt_pagetitle .dt_pagetitle_content .dt_pagetitle_breadcrumb li a:hover, +.dt_pagetitle .dt_pagetitle_content .dt_pagetitle_breadcrumb li a:focus, +.dt_post_item .more-link:hover, +.dt_post_item .more-link:focus, +.dt_post_item .title a:hover, +.dt_post_item .title a:focus, +.item-inner .title a:hover, +.item-inner .title a:focus, +.contact__body a:hover, +.contact__body a:focus { + color: var(--dt-main-color); + background-size: 100% 1px; +} + +.contact__body .title { + line-height: 1.2; + margin-bottom: 0; +} + +.contact__body .description { + font-size: 1.6rem; + margin: 0; + word-break: break-word; + margin-top: 0.1rem; +} + +/* --/-- */ + + +/* Mailchimp */ + +.email-form-one, +.email-form-two, +.email-form-three, +.email-form-four, +.email-form-five, +.email-form-six { + position: relative; +} + +.mc4wp-form .form-group { + position: relative; + margin: 0; + width: 100%; +} + +.email-form-one .form-group { + padding-right: 4rem; +} + +.email-form-two .form-group { + padding-right: 6rem; +} + +.mc4wp-form .form-group input[type="text"], +.mc4wp-form .form-group input[type="email"] { + line-height: 4.3rem; + display: block; + font-size: 1.4rem; + height: 6rem; + width: 100%; + -webkit-box-shadow: inherit; + box-shadow: inherit; + border-radius: 0; + padding: 1rem 1.5rem 1rem 2rem; +} + +.email-form-one .form-group input[type="text"], +.email-form-one .form-group input[type="email"] { + border-radius: 5rem; + padding: 1rem 1.5rem 1rem 3rem; + z-index: 1; +} + +.email-form-three .form-group input[type="text"], +.email-form-three .form-group input[type="email"] { + min-height: 5.8rem; +} + +.mc4wp-form .form-group .submit-btn { + position: absolute; + top: 0; + right: 0; + width: 6rem; + height: 5rem; + border: none; + display: block; + font-weight: 700; + font-size: 1.5rem; + color: #fff; + line-height: 5rem; + transition: all .2s ease-in-out; + background-color: var(--dt-main-color); +} + +.mc4wp-form .form-group .submit-btn.dt-btn-white { + background-color: #fff; + color: var(--dt-main-color); +} + +.mc4wp-form .form-group .submit-btn.dt-btn-secondary { + background-color: var(--dt-secondary-color); + color: #fff; +} + +.email-form-one .form-group .submit-btn { + width: 7rem; + text-align: end; + padding: 0 1.8rem 0 0; + border-radius: 0 5rem 5rem 0; +} + +.email-form-two .form-group .submit-btn { + text-align: center; + padding: 0; + border-radius: 0; +} + +.email-form-three .form-group .submit-btn { + right: 1rem; + top: 50%; + width: 4rem; + height: 4rem; + line-height: 4rem; + padding: 0; + border-radius: 0; + transform: translateY(-50%); +} + +.form-group .submit-btn.fa { + font-family: 'Font Awesome 6 Free'; +} + +.form-group .submit-btn.fa:before { + display: inline-block; +} + +.form-group .submit-btn.fa:hover:before, +.form-group .submit-btn.fa:focus:before { + animation: topFromBottom .3s forwards; +} + +.mc4wp-form .email-form-four .form-group input[type="text"], +.mc4wp-form .email-form-four .form-group input[type="email"] { + width: 78%; + border-radius: 0.6rem; +} + +.mc4wp-form .email-form-four .form-group .submit-btn { + padding: 0; +} + +.mc4wp-form .email-form-six .form-group, +.mc4wp-form .email-form-five .form-group { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 1.6rem; +} + +.mc4wp-form .email-form-five .form-group input[type="text"], +.mc4wp-form .email-form-five .form-group input[type="email"] { + border-radius: 0.6rem; + flex: 1; +} + +.mc4wp-form .email-form-six .form-group .dt-btn, +.mc4wp-form .email-form-five .form-group .dt-btn { + flex: 0 0 auto; +} + +.mc4wp-form .form-group .dt-btn.dt-btn-secondary { + background-color: var(--dt-secondary-color); +} + +.mc4wp-form .email-form-six .form-group { + flex-wrap: wrap; +} + +.mc4wp-form .email-form-six .form-group input[type="text"], +.mc4wp-form .email-form-six .form-group input[type="email"] { + border-radius: 100rem; +} + +.mc4wp-form .email-form-six .form-group .dt-btn { + border-radius: 100rem; +} + +@media (min-width: 36em) { + .mc4wp-form .email-form-six .form-group { + flex-wrap: nowrap; + gap: 0; + } + + .mc4wp-form .email-form-six .form-group input[type="text"], + .mc4wp-form .email-form-six .form-group input[type="email"] { + border-radius: 100rem 0 0 100rem; + } + + .mc4wp-form .email-form-six .form-group .dt-btn { + margin-left: -5rem; + } +} + +/* --/-- */ + + +/** text-overlay-animation **/ + +.overlay-anim-black-bg, +.overlay-anim-primary-bg, +.overlay-anim-white-bg { + position: relative; + display: inline-block; + overflow: hidden; +} + +.overlay-anim-black-bg:after, +.overlay-anim-primary-bg:after, +.overlay-anim-white-bg:after { + content: ''; + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + -webkit-transition: 1s cubic-bezier(.858, .01, .068, .99); + transition: 1s cubic-bezier(.858, .01, .068, .99); + z-index: 1; + -webkit-transform: translateX(0); + transform: translateX(0); +} + +.overlay-anim-primary-bg:after { + background: var(--dt-main-color); +} + +.overlay-anim-black-bg:after { + background: var(--dt-secondary-color); +} + +.overlay-anim-white-bg:after { + background: #fff; +} + +.overlay-anim-black-bg.overlay-animation:after, +.overlay-anim-primary-bg.overlay-animation:after, +.overlay-anim-white-bg.overlay-animation:after { + -webkit-transform: translateX(110%); + transform: translateX(110%); +} + + +/*-------------------------------------------------------------- # Main CSS --------------------------------------------------------------*/ + +.dt_header { + position: relative; + z-index: 9; +} + +.dt_header-topbar { + font-size: 1.45rem; + overflow: hidden; +} + +@media (min-width: 75em) { + .dt_header-topbar { + font-size: 1.6rem; + } +} + +.dt_header .dt-col-2.dt-my-auto { + -ms-flex: 0 0 18%; + flex: 0 0 18%; + max-width: 18%; +} + +.dt_header .dt-col-2.dt-my-auto+.dt-col-10 { + -ms-flex: 0 0 82%; + flex: 0 0 82%; + max-width: 82%; +} + +.dt_header-widget .widget:not(:last-child):after { + position: absolute; + right: 0; + top: 50%; + content: ""; + height: 14px; + width: 1px; + background: rgba(189, 189, 189, 0.75); + transform: translateY(-50%); +} + +.dt_header-widget a:not(:hover, :focus) { + color: inherit; +} + +.dt_header .widget:not(.widget_social, .widget_nav_menu) li, +.widget_tag_cloud a, +.wp-block-tag-cloud a { + display: inline-block; + padding: 0; +} + +.dt_header .widget:not(.widget_nav_menu, .widget_social) li { + margin: 0 1rem 0.5rem 0; +} + +.dt_header .widget.widget_nav_menu .menu>li { + display: inline-block; + margin: 0 1rem 0 0; +} + +.dt_header .widget.widget_nav_menu .menu>li ul a { + display: block; +} + +.dt_header .widget.widget_nav_menu a img { + display: inline-block; + margin-right: 0.2rem; +} + +.dt_header .widget.widget_nav_menu a:not(:hover, :focus) { + color: var(--dt-secondary-color); +} + +.dt_header .widget.widget_nav_menu .menu>li.pll-parent-menu-item { + padding-left: 3.4rem; +} + +.dt_header .widget.widget_nav_menu .menu>li.pll-parent-menu-item:before { + content: ""; + width: 2.5rem; + height: 2.5rem; + position: absolute; + top: 0; + left: 0; + bottom: 0; + margin: auto; + background: var(--dt-main-color); + border-radius: 10rem; +} + +.dt_header .widget.widget_nav_menu .menu>li.pll-parent-menu-item:after { + content: ""; + width: 1.5rem; + height: 1.5rem; + position: absolute; + top: 0; + left: 0.5rem; + bottom: 0; + margin: auto; + background: #fff; + border-radius: 10rem; +} + +.dt_header .widget.widget_nav_menu .menu>li.pll-parent-menu-item a::after { + font-weight: 600; +} + +.dt_header .widget:not(.widget_social) li:last-child, +.widget_tag_cloud a:last-child, +.wp-block-tag-cloud a:last-child { + margin: 0; +} + +.dt_header-widget ul li span, +.dt_header-widget a { + display: inline-block; +} + +.dt_header-widget ul li span, +.dt_header-widget a, +.contact__body>* { + text-decoration: none; + position: relative; + transition: all .2s ease-in-out; +} + +.dt_header-widget a:hover span.title, +.dt_header-widget a:focus span.title { + color: var(--dt-main-color); +} + +.dt_header-widget .widget:not(.widget_social) li a { + width: max-content; +} + +.dt_header-widget .widget:not(.widget_social, .widget_contact) i, +.dt_header-widget .widget:not(.widget_social, .widget_contact, .widget-media-gallery, .widget_media_image) img { + display: inline-block; +} + +.dt_header-widget .widget:not(.widget_media_gallery, .widget_social, .widget_contact, .widget-media-gallery, .widget_media_image) img { + height: 2rem; + object-fit: cover; +} + +.dt_header .widget li:last-child { + margin-right: 0; +} + +.dt_header-widget .gallery .gallery-item a { + display: block; + height: 7rem; +} + +.dt_header-widget .widget img { + width: 5rem; +} + +.dt_header-widget .gallery { + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; +} + +.dt_header-widget .gallery .gallery-item { + -ms-flex: 1; + flex: 1; + margin: 0 0.6rem 0 0; + padding: 0; +} + +.dt_header-widget .widget_media_video { + display: block; + width: 100%; +} + +.dt_header-widget .widget_media_video .wp-video .mejs-container { + width: 100% !important; + max-height: 17rem; +} + +.dt_header-widget .widget_media_video .wp-video-shortcode video, +.dt_header-widget .widget_media_video video.wp-video-shortcode { + max-height: 17rem; +} + +.dt_header-widget .widget .title { + font-size: inherit; + color: inherit; + font-weight: 500; +} + +.dt_header-widget .widget_meta a { + font-size: 1.2rem; +} + +.project_info_box .widget.widget_social li a, +.dt_header-widget .widget.widget_social li a { + width: 2.6rem; + height: 2.6rem; + font-size: inherit; + color: inherit; +} + +.dt_mobilenav, +.dt_header-navwrapper, +.dt_navbar { + width: 100%; +} + +.dt_header-navwrapper { + position: relative; +} + +.dt_header-navwrapperinner { + display: flex; + flex-direction: column; + justify-content: center; + flex-wrap: wrap; +} + +.dt_header-navwrapperinner, +.dt_navbar-menu { + min-height: 9rem; +} + +.dt_header .dt_header-widget .contact__list { + margin-top: 0; +} + +.dt_header .dt_header-widget .widget.widget_contact { + margin-top: 0; +} + +.dt_header-widget .contact__list i { + width: auto; + margin-right: 1rem; +} + +/*=============== Desktop Menu =============*/ + +.site--logo img { + width: 100%; +} + +.site--logo a { + display: block; + font-size: 3rem; + font-weight: 700; + line-height: 1.2; + white-space: normal; + width: 100%; + max-width: max-content; + height: auto; + margin: auto 0; + z-index: 9; +} + +.site--logo a:not(:hover, :focus) { + color: inherit; + text-decoration: none; +} + +.site--logo a:focus { + outline: 0.1rem dotted; + outline-offset: 0.5rem; +} + +.site--logo .site-description { + font-size: 1.23rem; + margin-bottom: 0; + margin-top: 0.45rem; +} + +.is--sticky.on { + position: fixed; + right: 0; + left: 0; + top: 0; + z-index: 99999; + background-color: #fff; + -webkit-animation: fadeInDown 500ms linear 1; + animation: fadeInDown 500ms linear 1; + box-shadow: 0px 24px 64px 0px rgba(199, 206, 218, 0.25); +} + +.is--sticky.reverse.on { + -webkit-animation: fadeReverse 500ms linear 1; + animation: fadeReverse 500ms linear 1; +} + +@keyframes fadeReverse { + 0% { + opacity: 0; + -webkit-transform: translateY(-120%); + transform: translateY(-120%); + } + 100% { + opacity: 1; + -webkit-transform: translateY(0); + transform: translateY(0); + } +} + +.dt_navbar-wrapper.is--sticky.on { + padding: 0 0; +} + +.dt_navbar-menu { + display: flex; + align-items: center; + flex-grow: 1; + justify-content: flex-end; + align-self: stretch; + width: 100%; + height: 100%; +} + +.dt_navbar-nav { + text-align: end; + position: relative; +} + +.dt_navbar-mainmenu { + list-style: none; + margin: 0; + padding: 0; + display: block; +} + +.dt_navbar-nav .dt_navbar-mainmenu { + display: inline-block; +} + +.dt_navbar-mainmenu li { + list-style: none; + position: relative; +} + +.dt_navbar-nav .dt_navbar-mainmenu>li { + display: inline-block; + margin: 0 -0.3rem; +} + +.dt_navbar-mainmenu>li>a, +.dropdown-menu li a { + position: relative; + display: block; + z-index: 0; + font-family: var(--dt-base-family); + font-weight: 600; + line-height: 1.5; + white-space: normal; +} + +.dt_navbar-mainmenu .dropdown-menu li a { + color: var(--dt-secondary-color); +} + +.dt_navbar-mainmenu li>a { + text-decoration: none; + outline: none; + color: inherit; +} + +.dt_navbar-mainmenu li>a:focus { + text-decoration: underline; + text-underline-offset: 0.1rem; +} + +.dt_navbar-mainmenu>li>a { + white-space: normal; + border: 0; + border-radius: 0; +} + +.dt_navbar-nav .dt_navbar-mainmenu>li>a { + margin: 0 1.07rem; + display: inline-flex; +} + +.dt_navbar-nav .dt_navbar-mainmenu>li:first-child>a { + margin-left: 0; +} + +.dt_header .widget_nav_menu .menu-item-has-children>a, +.dt_footer .widget_nav_menu .menu-item-has-children>a, +.dt_footer .dt_navbar-mainmenu>.menu-item-has-children>a, +.dt_navbar-nav .dt_navbar-mainmenu>.menu-item-has-children>a { + padding-right: 2rem; +} + +.dt_header .widget_nav_menu .menu-item-has-children>a:after, +.dt_footer .widget_nav_menu .menu-item-has-children>a:after, +.dt_footer .dt_navbar-mainmenu .menu-item-has-children>a:after, +.dt_navbar-nav .dt_navbar-mainmenu .dropdown-menu .menu-item-has-children>a:after, +.dt_navbar-nav .dt_navbar-mainmenu .menu-item-has-children>a:after { + content: ''; + position: absolute; + top: 30%; + right: 0; + display: inline-block; + border-width: 0 2px 2px 0; + border-style: solid; + border-color: currentColor; + padding: 0.333rem; + opacity: 0.75; + transform: translate(0, -30%) rotate(45deg) skewX(0) skewY(0) scaleX(1) scaleY(1); + transition: all .5s cubic-bezier(0.4, 0, 0.2, 1); +} + +.dt_navbar-nav .dt_navbar-mainmenu .dropdown-menu .menu-item-has-children>a { + padding-right: 3rem; +} + +.dt_navbar-nav .dt_navbar-mainmenu .dropdown-menu .menu-item-has-children>a:after { + top: 50%; + right: 1.6rem; + transform: translate(0, -50%) rotate(-45deg) skewX(0) skewY(0) scaleX(1) scaleY(1); +} + +.menu-wrap .dropdown-menu li a sup, +.menu-wrap .dropdown-menu li a sub, +.dt_mobilenav .dt_navbar-mainmenu li.active>a, +.dt_mobilenav .dt_navbar-mainmenu li.focus>a, +.dt_mobilenav .dt_navbar-mainmenu li:hover>a, +.dt_navbar-nav .dt_navbar-mainmenu li.active>a, +.dt_navbar-nav .dt_navbar-mainmenu>li.focus>a, +.dt_navbar-nav .dt_navbar-mainmenu>li:hover>a { + color: var(--dt-main-color); +} + +/* Menu Active Style */ + +/* One */ + +.menu__active-one .dt_navbar-nav .dt_navbar-mainmenu>li>a::before { + position: absolute; + content: ''; + left: 0; + bottom: -2px; + height: 0.2rem; + width: 0; + background: var(--dt-main-color); + transition: all linear 0.3s; +} + +.menu__active-one .dt_navbar-nav .dt_navbar-mainmenu>li.active>a::before, +.menu__active-one .dt_navbar-nav .dt_navbar-mainmenu>li.focus>a::before, +.menu__active-one .dt_navbar-nav .dt_navbar-mainmenu>li:hover>a::before { + width: 80%; +} + +/* Two */ + +.menu__active-two .dt_navbar-nav .dt_navbar-mainmenu>li>a:before { + content: ""; + position: absolute; + bottom: 0; + left: 0; + width: 0%; + height: 0.2rem; + background-color: var(--dt-main-color); + opacity: 0; + transition: all .2s ease-in-out; +} + +.menu__active-two .dt_navbar-nav .dt_navbar-mainmenu>li.active>a:before, +.menu__active-two .dt_navbar-nav .dt_navbar-mainmenu>li.focus>a:before, +.menu__active-two .dt_navbar-nav .dt_navbar-mainmenu>li:hover>a:before { + opacity: 1; + width: 100%; +} + +/* Three */ + +.menu__active-three .dt_mobilenav-right>ul, +.menu__active-three .dt_navbar-right>ul { + padding-left: 1.8rem; +} + +.menu__active-three .dt_navbar-list-right>li:not(:last-child) { + margin-right: 2rem; +} + +.menu__active-three .dt_navbar-nav .dt_navbar-mainmenu>li>a { + margin: 0 0.62rem; + padding: 0 1.4rem; + line-height: 4rem; +} + +.menu__active-three .dt_navbar-nav .dt_navbar-mainmenu>li>a:before { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + margin: auto; + width: 100%; + height: 3.5rem; + border-radius: 0.6rem; + background-color: var(--dt-main-color); + z-index: -1; + opacity: 0; + transition: all .2s ease-in-out; +} + +.menu__active-three .dt_navbar-nav .dt_navbar-mainmenu>li.menu-item-has-children>a:before { + width: calc(100% + 0.8rem); +} + +.menu__active-three .dt_navbar-nav .dt_navbar-mainmenu>li.active>a:before, +.menu__active-three .dt_navbar-nav .dt_navbar-mainmenu>li.focus>a:before, +.menu__active-three .dt_navbar-nav .dt_navbar-mainmenu>li:hover>a:before { + opacity: 0.15; +} + +/* Four */ + +.menu__active-four .dt_navbar-nav .dt_navbar-mainmenu>li>a:before { + position: absolute; + bottom: -80%; + left: 50%; + color: transparent; + content: '•'; + text-shadow: 0 0 transparent; + font-size: 110%; + -webkit-transition: text-shadow 0.3s, color 0.3s; + transition: text-shadow 0.3s, color 0.3s; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); + pointer-events: none; +} + +.menu__active-four .dt_navbar-nav .dt_navbar-mainmenu>li.active>a:before, +.menu__active-four .dt_navbar-nav .dt_navbar-mainmenu>li.focus>a:before, +.menu__active-four .dt_navbar-nav .dt_navbar-mainmenu>li:hover>a:before { + color: var(--dt-main-color); + text-shadow: 1rem 0 var(--dt-main-color), -1rem 0 var(--dt-main-color); +} + +/* // */ + +.dt_footer_copyright .widget_nav_menu .sub-menu, +.dt_footer .dt_navbar-mainmenu .dropdown-menu, +.dt_navbar-cart-item .dt_navbar-shopcart, +.dt_header .widget_nav_menu .sub-menu, +.dt_navbar-nav .dt_navbar-mainmenu .dropdown-menu { + position: absolute; + text-align: start; + color: var(--dt-secondary-color); + background-color: #fff; + width: 26rem; + opacity: 0; + visibility: hidden; + transform: scaleY(0); + -webkit-transform: scaleY(0); + transform-origin: center top 0; + -webkit-transform-origin: center top 0; + transition: all 300ms ease; + border-radius: 0; + box-shadow: 0 3.6rem 3.5rem rgba(0, 0, 0, 0.08); +} + +.dt_navbar-cart-item .dt_navbar-shopcart, +.dt_header .widget_nav_menu .sub-menu, +.dt_navbar-nav .dt_navbar-mainmenu .dropdown-menu { + top: 100%; + padding: 1.5rem 1rem; + margin: 0; + list-style: none; + display: block; + z-index: 9; +} + +.dt_footer_copyright .widget_nav_menu .sub-menu, +.dt_footer .dt_navbar-mainmenu .dropdown-menu { + top: auto; + right: auto; + bottom: 100%; + left: auto; + margin: 0 auto; +} + +.dt_navbar-cart-item:hover .dt_navbar-shopcart, +.dt_navbar-cart-item:focus-within .dt_navbar-shopcart, +.dt_footer_copyright .widget_nav_menu .menu-item:hover>.sub-menu, +.dt_footer_copyright .widget_nav_menu .menu-item.focus>.sub-menu, +.dt_header .widget_nav_menu .menu-item:hover>.sub-menu, +.dt_header .widget_nav_menu .menu-item.focus>.sub-menu, +.dt_footer .dt_navbar-mainmenu .menu-item:hover>.dropdown-menu, +.dt_footer .dt_navbar-mainmenu .menu-item.focus>.dropdown-menu, +.dt_navbar-nav .dt_navbar-mainmenu .menu-item:hover>.dropdown-menu, +.dt_navbar-nav .dt_navbar-mainmenu .menu-item.focus>.dropdown-menu { + opacity: 1; + visibility: visible; + transform: scaleY(1); + -webkit-transform: scaleY(1); +} + +.dt_footer_copyright .widget_nav_menu .sub-menu li>a, +.dt_header .widget_nav_menu .sub-menu li>a, +.dt_footer .dt_navbar-mainmenu .dropdown-menu li>a, +.dt_navbar-nav .dt_navbar-mainmenu .dropdown-menu li>a { + font-size: 94%; + padding: 0.8rem 1.6rem; + position: relative; +} + +.dt_footer .dt_navbar-mainmenu .dropdown-menu li a:before, +.dt_navbar-nav .dt_navbar-mainmenu .dropdown-menu li a:before { + position: absolute; + content: ""; + top: 0; + left: 0; + right: 0; + width: 100%; + height: 0; + border-radius: 5px; + background-color: rgba(189, 189, 189, 0.2); + z-index: -1; + transition: all .2s ease-in-out; +} + +.dt_footer .dt_navbar-mainmenu .dropdown-menu li.active>a:before, +.dt_footer .dt_navbar-mainmenu .dropdown-menu li:hover>a:before, +.dt_footer .dt_navbar-mainmenu .dropdown-menu li.focus>a:before, +.dt_navbar-nav .dt_navbar-mainmenu .dropdown-menu li.active>a:before, +.dt_navbar-nav .dt_navbar-mainmenu .dropdown-menu li:hover>a:before, +.dt_navbar-nav .dt_navbar-mainmenu .dropdown-menu li.focus>a:before { + height: 100%; + transition: all .2s ease-in-out; +} + +.dt_footer .dt_navbar-mainmenu .menu-item .dropdown-menu .dropdown-menu, +.dt_navbar-nav .dt_navbar-mainmenu .menu-item .dropdown-menu .dropdown-menu { + top: 0; + left: 100%; + -webkit-transform: none; + transform: none; +} + +.dt_header .widget_nav_menu .sub-menu li .sub-menu li .sub-menu, +.dt_navbar-nav .dt_navbar-mainmenu .dropdown-menu li .dropdown-menu li .dropdown-menu { + left: auto; + right: 100%; +} + +.dt_header .widget_nav_menu .sub-menu li .sub-menu li .sub-menu li .sub-menu li .sub-menu li .sub-menu li .sub-menu, +.dt_navbar-nav .dt_navbar-mainmenu .dropdown-menu li .dropdown-menu li .dropdown-menu li .dropdown-menu li .dropdown-menu li .dropdown-menu li .dropdown-menu { + right: auto; + left: 100%; +} + +.dt_header .widget_nav_menu .sub-menu li .sub-menu li .sub-menu li .sub-menu li .sub-menu li .sub-menu li .sub-menu li .sub-menu li .sub-menu, +.dt_navbar-nav .dt_navbar-mainmenu .dropdown-menu li .dropdown-menu li .dropdown-menu li .dropdown-menu li .dropdown-menu li .dropdown-menu li .dropdown-menu li .dropdown-menu li .dropdown-menu { + right: auto; + left: 100%; +} + +/* --/-- */ + +/*=============== Mobile Menu =============*/ + +button.hamburger { + background-color: transparent; + outline-offset: 5px; + outline-color: transparent; +} + +button.hamburger:focus { + outline-color: var(--dt-secondary-color); +} + +.hamburger { + width: 2.8rem; + height: 2.6rem; + vertical-align: middle; + overflow: hidden; + display: block; + padding: 0; + border: none; + border-radius: 0; +} + +.hamburger span { + height: 2px; + width: 100%; + display: block; + margin: 0 0 6px; + background-color: var(--dt-secondary-color); + transition: all .2s ease-in-out; +} + +.hamburger span:nth-child(2) { + width: 75%; +} + +.hamburger span:first-child { + margin-top: 0; +} + +.hamburger span:last-child { + margin-bottom: 0; +} + +.hamburger:hover span, +.hamburger:focus span { + background-color: var(--dt-main-color); +} + +.hamburger:not(.active):hover span:first-child, +.hamburger:not(.active):focus span:first-child { + -webkit-animation: hamburger 0.8s infinite ease-in-out alternate; + animation: hamburger 0.8s infinite ease-in-out alternate; +} + +.hamburger:not(.active):hover span:nth-child(2), +.hamburger:not(.active):focus span:nth-child(2) { + -webkit-animation: hamburger 0.8s infinite ease-in-out alternate forwards 150ms; + animation: hamburger 0.8s infinite ease-in-out alternate forwards 150ms; +} + +.hamburger:not(.active):hover span:last-child, +.hamburger:not(.active):focus span:last-child { + -webkit-animation: hamburger 0.8s infinite ease-in-out alternate forwards 300ms; + animation: hamburger 0.8s infinite ease-in-out alternate forwards 300ms; +} + +.hamburger.active span { + position: absolute; + inset: 0; + margin: auto; + width: 100%; +} + +.hamburger.active span:first-child { + -webkit-transform: rotate(45deg); + transform: rotate(45deg); +} + +.hamburger.active span:nth-child(2) { + opacity: 0; + visibility: hidden; +} + +.hamburger.active span:last-child { + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); +} + +.dt_mobilenav-menu { + display: -webkit-box; + display: -moz-box; + display: -ms-flexbox; + display: -webkit-flex; + display: flex; + align-items: center; + justify-content: space-between; + padding: 1.6rem 0; +} + +.dt_mobilenav-menu ul, +.dt_mobilenav-menu ul li { + padding: 0; + list-style: none; + position: relative; + border: 0; +} + +.dt_mobilenav-logo { + text-align: start; +} + +.dt_mobilenav-toggles { + display: flex; + align-items: center; + flex-wrap: nowrap; + justify-content: flex-end; +} + +.dt_mobilenav-right .dt_navbar-list-right { + padding-left: 1rem; + padding-right: 1rem; +} + +.dt_mobilenav-topbar-toggle { + display: inline-block; + position: relative; + width: 3rem; + height: 3rem; + line-height: 3.3rem; + padding: 0; + cursor: pointer; + font-size: 1.6rem; + margin: 0.6rem 0; + border: 0.1rem solid rgba(189, 189, 189, 0.2); + border-radius: 100%; + overflow: hidden; + z-index: 0; +} + +button.dt_mobilenav-topbar-toggle { + color: var(--dt-secondary-color); + outline-offset: -0.4rem; + background-color: #fff; +} + +button.dt_mobilenav-topbar-toggle.active { + background-color: #fff; +} + +.dt_mobilenav-topbar-toggle i { + vertical-align: .15rem; + transition: all .2s ease-in-out; +} + +button.dt_mobilenav-topbar-toggle.active i { + color: var(--dt-main-color); +} + +.dt_mobilenav-topbar-toggle.active i { + -webkit-transform: rotate(180deg) translateY(0.2rem); + transform: rotate(180deg) translateY(0.2rem); +} + +.dt_mobilenav-mainmenu-content { + position: fixed; + top: 0; + left: 0; + bottom: 0; + right: 0; + display: none; + overflow: hidden; + z-index: 99999; +} + +.dt_mobilenav-mainmenu-content:after { + content: ""; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: inherit; + z-index: -1; + transition: all .2s ease-in-out; +} + +.dt_mobilenav-mainmenu-inner { + position: absolute; + top: 0; + left: 0; + width: 90%; + max-width: 50rem; + height: 100%; + padding-top: 6.8rem; + padding-bottom: 2rem; + opacity: 0; + visibility: hidden; + overflow: hidden; + text-align: start; + color: var(--dt-secondary-color); + background: #fff; + -webkit-transform: translateX(-150%); + transform: translateX(-150%); + transition: all .2s ease-in-out; + box-shadow: 0 1.5rem 4rem rgba(0, 0, 0, 0.1); +} + +@media (max-width: 25.875em) { + .dt_mobilenav-mainmenu-inner { + width: 100%; + } +} + +.dt_mobilenav-mainmenu--active .dt_mobilenav-mainmenu-inner { + transform: translateX(0); + opacity: 1; + visibility: visible; + transition: all .2s ease-in-out; +} + +.dt_mobilenav-mainmenu-inner .dt_navbar-mainmenu { + height: 100%; + overflow-x: hidden; + overflow-y: overlay; + -ms-touch-action: overlay; + touch-action: auto; +} + +.dt_mobilenav-mainmenu-inner>ul>li:first-child { + border-top: 0.1rem solid rgba(189, 189, 189, 0.2); +} + +.dt_mobilenav-mainmenu-inner>ul>li { + border-bottom: 0.1rem solid rgba(189, 189, 189, 0.2); +} + +/*.dt_mobilenav-mainmenu-inner > ul > li.current:before { + content: ""; + position: absolute; + top: 4.6rem; + left: 0; + width: 100%; + height: 0.1rem; + background-color: rgba(189, 189, 189, 0.2); +}*/ + +.dt_mobilenav-mainmenu-inner .dt_navbar-mainmenu>li a { + width: 100%; + padding: 0; + padding-left: 1.5rem; +} + +.dt_mobilenav-mainmenu-inner ul li.menu-item-has-children { + display: flex; + justify-content: flex-start; + flex-wrap: wrap; +} + +.dt_mobilenav-mainmenu-inner .dropdown-menu li:not(:last-child) { + border-bottom: 0.1rem solid rgba(189, 189, 189, 0.2); +} + +.dt_mobilenav-mainmenu-inner li.menu-item-has-children ul.dropdown-menu li>a { + padding-left: 2.5rem; + width: 100%; +} + +.dt_mobilenav-mainmenu-inner .menu-item-has-children>a { + flex: 1; +} + +.dt_mobilenav-mainmenu-inner .dropdown-menu { + margin: 0; + float: none; + clear: both; + display: none; + background: none; + border-top: 0.1rem solid rgba(189, 189, 189, 0.2); + width: 100%; + padding: 0; + border-radius: 0; + box-shadow: none; +} + +.dt_mobilenav-mainmenu-inner .menu-item a { + display: inline-block; + letter-spacing: 0.05rem; + line-height: 4.3rem; +} + +.dt_mobilenav-mainmenu-inner .menu-item-has-children.current>a { + margin: 0; + color: var(--sp-primary); +} + +.site--close { + padding: 0; + height: 5rem; + width: 5rem; + line-height: 5rem; + display: inline-block; + border-width: 0; + position: absolute; + top: 1.3rem; + right: 1.3rem; + background-color: transparent; + z-index: 1; +} + +.site--close:before, +.site--close:after { + transform: rotate(-45deg); + content: ""; + position: absolute; + top: 50%; + left: 50%; + margin-top: -0.1rem; + margin-left: -1.1rem; + display: block; + height: 2px; + width: 2.2rem; + background-color: var(--dt-secondary-color); + transition: all .2s ease-in-out; +} + +.site--close:after { + transform: rotate(-135deg); +} + +.site--close:hover:before, +.site--close:hover:after, +.site--close:focus:before, +.site--close:focus:after { + transform: rotate(0deg); +} + +.dt_mobilenav-dropdown-toggle { + width: 100%; + max-width: 4.4rem; + text-align: center; +} + +.dt_mobilenav-mainmenu-content .dt_mobilenav-dropdown-toggle button { + cursor: pointer; + flex-basis: 10%; + width: 100%; + text-align: center; + line-height: 4.4rem; + font-size: 1.8rem; + font-weight: 900; + padding: 0 0.72rem; + border: 0; + border-radius: 0; + color: var(--dt-secondary-color); + background: none; + border-left: 0.1rem solid rgba(189, 189, 189, 0.2); + display: flex; + align-items: center; + justify-content: center; + height: 100%; +} + +.dt_mobilenav-mainmenu-content .dt_mobilenav-dropdown-toggle button:before { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + display: block; + transition: all .2s ease-in-out; +} + +.dt_mobilenav-mainmenu-content .menu-item-has-children.current>.dt_mobilenav-dropdown-toggle>button:before { + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); +} + +.dt_footer .dt_mobilenav-dropdown-toggle { + display: none; +} + +@media (min-width: 62em) { + .dt_mobilenav-dropdown-toggle { + display: none; + } +} + +.dt_mobilenav-topbar { + display: flex; + flex-direction: column-reverse; + align-items: center; + justify-content: flex-start; + text-align: center; + background-color: var(--dt-main-color); +} + +.dt_mobilenav-topbar-content { + display: none; + width: 100%; + height: auto; + padding: 1.7rem 0 1.8rem; + text-align: start; + color: var(--dt-secondary-color); + background-color: #fff; + border-bottom: 0.1rem solid rgba(189, 189, 189, 0.2); +} + +.dt_mobilenav-topbar-content .dt_header-widget+.dt_header-widget { + display: none; +} + +.dt_mobilenav-topbar-content .dt_header-widget>.dt-container { + padding: 0; +} + +.dt_mobilenav-topbar-content .dt_header-widget .widget { + margin-bottom: 1.6rem; +} + +.dt_mobilenav-topbar-content .widget--right .widget:last-child { + margin-bottom: 0; +} + +.dt_mobilenav-topbar-content .widget--right .widget.widget_social:first-child:before { + background: none; +} + +.dt_mobilenav-topbar-content .dt_header-widget .widget .contact__list { + padding-left: 0; +} + +@media (max-width: 61.95em) { + + .dt_mobilenav-topbar-content .widget--left, + .dt_mobilenav-topbar-content .widget--right, + .dt_mobilenav-topbar-content .widget--center { + justify-content: center; + text-align: center; + } + + .dt_mobilenav-topbar-content .dt_header-widget .widget { + margin-bottom: 0; + } + + .dt_mobilenav-topbar-content .dt_header-widget .widget--right .widget:not(:last-child):after { + display: none; + } +} + +@media (max-width: 35.95em) { + + .dt_mobilenav-topbar-content .widget--left, + .dt_mobilenav-topbar-content .widget--right, + .dt_mobilenav-topbar-content .widget--center { + flex-wrap: wrap; + } + + .dt_mobilenav-topbar-content .dt_header-widget .widget .contact__list { + justify-content: center; + } + + .dt_mobilenav-topbar-content .widget--right .widget, + .dt_mobilenav-topbar-content .widget--left .widget { + width: 100%; + padding: 0; + } + + .dt_mobilenav-topbar-content .dt_header-widget .widget { + margin-bottom: 1.6rem; + } +} + +/* --/-- */ + +/*=============== Menu Right =============*/ + +@media (max-width: 44.938em) { + .dt_mobilenav-right { + padding-left: 1rem + } + + .dt_mobilenav-right .dt_navbar-info-contact { + display: none; + } +} + +@media (max-width: 33.938em) { + .dt_mobilenav-right .dt_navbar-button-item { + display: none; + } +} + +.widget_shopping_cart ul.product_list_widget, +.dt_navbar-shopcart ul, +.dt_mobilenav-right>ul, +.dt_navbar-right>ul { + list-style: none; + padding: 0; + margin: 0; +} + +.dt_mobilenav-right>ul, +.dt_navbar-right>ul { + padding-left: 1.2rem; + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + height: 100%; +} + +@media (min-width: 62em) and (max-width: 74.95em) { + .dt_mobilenav-right>ul, + .dt_navbar-right>ul { + padding-left: 1rem; + } + + .dt_navbar-nav .dt_navbar-mainmenu>li>a { + margin: 0 1rem; + } +} + +.dt_navbar-list-right>li:not(:last-child) { + margin-right: 1.5rem; +} + +.dt_mobilenav-right .dt_navbar-list-right>li:not(:last-child) { + margin-right: 1rem; +} + +/* Cart */ + +.dt_navbar-cart-item { + position: relative; + z-index: 0; +} + +.dt_navbar-cart-item .dt_navbar-shopcart { + width: 30.6rem; + padding: 2rem; + top: 140%; + right: 0; +} + +.widget_shopping_cart ul.product_list_widget { + overflow-y: auto; + -webkit-overflow-scrolling: touch; + max-height: 50rem; + max-height: 50vh; +} + +.woocommerce .widget_shopping_cart .cart_list li, +.woocommerce.widget_shopping_cart .cart_list li, +.widget_shopping_cart ul.product_list_widget li { + display: block; + list-style: none; + margin: 0; + padding: 1rem 0 0.5rem 8rem !important; + padding-right: 3rem; + min-height: 8rem; + position: relative; + overflow: hidden; + vertical-align: top; + line-height: 1.33; + border-bottom: none; +} + +.dt_navbar-list-right ul.product_list_widget li { + margin-right: 0; +} + +.woocommerce .widget_shopping_cart .cart_list li a.remove, +.woocommerce.widget_shopping_cart .cart_list li a.remove, +a.remove { + display: block; + width: 2.4rem; + height: 2.4rem; + font-size: 1.5rem !important; + line-height: 2.4rem !important; + border-radius: 100%; + color: #ccc !important; + font-weight: bold; + text-align: center; + text-decoration: none; + border: 0.1rem solid currentColor; +} + +.woocommerce .widget_shopping_cart .cart_list li a.remove:hover, +.woocommerce .widget_shopping_cart .cart_list li a.remove:focus, +.woocommerce.widget_shopping_cart .cart_list li a.remove:hover, +.woocommerce.widget_shopping_cart .cart_list li a.remove:focus, +a.remove:hover, +a.remove:focus { + color: var(--dt-secondary-color) !important; + background-color: transparent; +} + +.quantity { + opacity: 1; + display: inline-block; + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + margin-right: 1.6rem; + white-space: nowrap; + vertical-align: top; +} + +.woocommerce .widget_shopping_cart .cart_list li a.remove, +.woocommerce.widget_shopping_cart .cart_list li a.remove, +.widget_shopping_cart ul.product_list_widget li a.remove { + position: absolute; + right: 0; + left: auto; + top: auto; + z-index: 9; +} + +.widget_shopping_cart ul.product_list_widget li a:not(.remove) { + display: block; + margin-bottom: 0.5rem; + padding: 0; + overflow: hidden; + -o-text-overflow: ellipsis; + text-overflow: ellipsis; + line-height: 1.3; + text-decoration: none; + color: var(--dt-secondary-color); +} + +.woocommerce .widget_shopping_cart .cart_list li a:not(.remove), +.woocommerce.widget_shopping_cart .cart_list li a:not(.remove) { + position: unset; +} + +.widget_shopping_cart ul.product_list_widget li a:not(.remove):hover, +.widget_shopping_cart ul.product_list_widget li a:not(.remove):focus { + color: var(--dt-main-color); +} + +body.woocommerce .widget_shopping_cart ul.cart_list li img, +body.woocommerce .widget_shopping_cart ul.product_list_widget li img, +.widget_shopping_cart ul.product_list_widget li img { + top: 1rem; + position: absolute; + left: 0; + width: 6rem; + height: 6rem; + float: none; + margin-right: 0; + margin-left: 1rem; + margin-bottom: 0.5rem; + -o-object-fit: cover; + object-fit: cover; + -o-object-position: 50% 50%; + object-position: 50% 50%; +} + +.widget_shopping_cart ul.product_list_widget li .quantity { + display: block; + margin-top: 0.3rem; + font-size: .85em; + opacity: .6; +} + +span.amount { + white-space: nowrap; + color: var(--dt-secondary-color); + font-weight: bold; +} + +.woocommerce .widget_shopping_cart .cart_list li+li, +.woocommerce.widget_shopping_cart .cart_list li+li, +.widget_shopping_cart ul.product_list_widget li+li { + border-top: 0.1rem solid rgba(189, 189, 189, 0.2) !important; +} + +.widget_shopping_cart p.total { + text-align: center; + padding: 1rem 0 !important; + border-top: 0.1rem solid rgba(189, 189, 189, 0.2) !important; + border-bottom: 0.2rem solid rgba(189, 189, 189, 0.2); + margin-bottom: 0.8rem; +} + +.widget_shopping_cart .button:not(.add_to_cart_button) { + width: 100%; + margin: 0.8rem 0 0; + text-align: center; + text-decoration: none; +} + +.widget_shopping_cart .button:not(.checkout):not(.add_to_cart_button) { + border-color: var(--dt-secondary-color); + background-color: var(--dt-secondary-color); + color: #fff; +} + +.widget_shopping_cart .button.checkout { + border-color: var(--dt-main-color); + background-color: var(--dt-main-color); + color: #fff; +} + +.widget_shopping_cart_content .woocommerce-mini-cart__empty-message { + margin: 0; +} + +.dt_navbar-user-item .dt_user_btn, +.dt_navbar-cart-item .dt_navbar-cart-icon, +.dt_navbar-search-item button.dt_navbar-search-toggle { + width: 3.2rem; + height: 3.2rem; + line-height: 3.2rem; + position: relative; + font-size: 1.8rem; +} + +.dt_navbar-user-item .dt_user_btn, +.dt_navbar-cart-item .dt_navbar-cart-icon { + margin: 0; + color: var(--dt-secondary-color); + position: relative; + display: inline-block; + text-align: center; + transition: all .2s ease-in-out; +} + +.dt_navbar-user-item .dt_user_btn:hover, +.dt_navbar-user-item .dt_user_btn:focus, +.dt_navbar-cart-item:hover .dt_navbar-cart-icon, +.dt_navbar-cart-item:focus-within .dt_navbar-cart-icon { + color: var(--dt-main-color); +} + +.dt_navbar-cart-item .cart_count { + position: absolute; + top: -9px; + right: -3px; + width: 2.3rem; + height: 2.3rem; + margin: auto; + line-height: 2rem; + font-size: 1.2rem; + display: inline-block; + color: #fff; + background-color: var(--dt-main-color); + border: 0.2rem solid #fff; + border-radius: 50%; + opacity: 0; + transform: scale(.95); + transition: all 1500ms cubic-bezier(0.86, 0, 0.07, 1); +} + +.dt_navbar-cart-icon.active .cart_count, +.dt_navbar-cart-item:hover .cart_count, +.dt_navbar-cart-item:focus-within .cart_count { + animation: count 1500ms 500ms forwards; +} + +/* Search Popup */ + +button.dt_navbar-search-toggle { + border: 0; + padding: 0; + outline: none; + color: inherit; + background-color: transparent; +} + +button.dt_navbar-search-toggle:hover, +button.dt_navbar-search-toggle:focus { + color: var(--dt-main-color); +} + +.search--header { + position: fixed; + left: 0; + top: 0; + height: 100vh; + width: 100%; + z-index: 99999; + margin-top: -54rem; + -webkit-transform: translateY(-100%); + transform: translateY(-100%); + opacity: 0; + visibility: hidden; + backdrop-filter: blur(1rem); + background-color: rgba(0, 0, 0, 0.9); + -webkit-transition: all 1500ms cubic-bezier(0.86, 0, 0.07, 1); + transition: all 1500ms cubic-bezier(0.86, 0, 0.07, 1); + transition-timing-function: cubic-bezier(0.86, 0, 0.07, 1); +} + +.dt_header-search--active .search--header { + transform: translateY(0%); + margin-top: 0; + opacity: 1; + visibility: visible; +} + +.search--header:before { + content: ""; + position: absolute; + left: 0; + top: 100%; + width: 100%; + height: 56rem; + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAB4AAAAIuCAMAAABpUuXNAAAAllBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6C80qAAAAMnRSTlMA5gUIAgrp1Oz83gziGRAU2cckn8EfRrGlyzeSPHNaz7yLhSpntnpgQS6YgKtVUDJLbDJ0RIkAADycSURBVHja7N1bSmRBEEXRqEyj9NJ20+JHoWgp+ELQD+c/OcUX3hl4YK1JbCIzyagNRFqWQ4BgAkyoZdkCBBNgQi3LBiCYABNKgIFsAkwoAQayCTChBBjIJsCEEmAgmwATSoCBbAJMKAEGsgkwoQQYyFbbDSQSYCBbXR1tIJAAA9nq4UyBSSTAQLbq/YlTaAIJMJCtxtyfHEkwcQQYyFY9+vluq8CkEWAgW3XPebFTYNIIMJCtunscnO+8xCKMAAPZqt/MOt8ZgckiwEC26o8CX1ybgYkiwEC26ndjPPuRgygCDGSr/irw/lCBCSLAQLbqT2M+KDBBBBjIVv1l9Mt/BSaGAAPZqr+Nf5cKTAwBBrJV/yywU2hiCDCQrfqHMW/NwIQQYCBb9brAl8cKTAQBBrJVrxz8uT/2JxYJBBjIVrNX6u+pxQwkEGAgW81eq5sn64EJIMBAtpqzV2Y93rkG5vcTYHhl71620giCAAzXVE13OExgZAC5CoKoxAua93+5iIknQZkLM2z65P9WrNn8p4qmG2ETM3OHZMrDDOfi37T+4T0L/vMgwABCJ2ZfZ+BtjwI351veR+3JYDTuP8zePPTHo8GyHXnPjr85AgwgdGLvDgusz0sS0Yjft7c3Xl3dv85vhp20m3S73c7wZr67v1uNe+2ISbghAgwgdGJHCqzJPTNwfb7l28vx1WKbJboX697HJ+tm28Xd07LNINwEAQYQOrGcAvM8cE2+dTGYLeaZk1j1637f9h2WJJtv+r0LxuDaCDCA0IkdL3D36oI4nM63osl489Ixic3M5TFTseG+wVw8VhMBBhA6sZwCD2dciXUq76Nlf5ElsZq5MqaaZIv+MuJrroMAAwidWF6BX8ak4STet69nz8NEzVw1Zkn2POtFbKJPR4ABhE4sp8Cm01vCUJ3336/vpqnG5k5gap3LFQk+HQEGEDqx3ALb6zVZqOo9v4mquROZanr5eM2+/0QEGEDoxPILnCwmHBGqxEfL1TZVc7WYpdvVhCH4JAQYQOjEDn36M9I3ClxBq93fpWrm6jJNd32OnZ+CAAMInVhhgX9eUOAyPhptMlXXiFn285pTb9URYAChEysqcNzdTIhCsda3dRaruXf2matM3XTGEFwZAQYQuuIAJ2r334hCEX+7M7HD9tbLsMWd+xFfdkUEGEDopKQWcXfNYjSfb42mouasiipD8BNnsaohwABCJ1ZW4M6MJuRptdcdMWencAVM0rs2v7pXQYABhE6stMDDPjPwUb41WdhBf5snWOLnCa8kVUCAAYROrLzAP8bMwEd4P5pL7KwWlyNReWENXQEBBhA60dI+mE6fKMIX/mKdiTqzMxfYJF2zhi5FgAGETlTL+6BzTud+1ppsErFGXI7YbbgApQwBBhA6Ua0yA29vKcIBP9ipWEMuh+puwO/uxQgwgNAdBLigwJc8zPAP75/msVpz7jiLpw88z1CIAAMInei70gLb/IkZ+IOP+jeidh45Bc5WbQpcgAADCF3FADuTlwEF/s37cSZ2Nu6oeEiBixBgAKET/a08Dfrao8B73o9fYrUzcsfYDQUuQIABhE5UK8/AlzwP/MZH/UzUzipnBl5T4FwEGEDoDgJcWmBm4Mi31xX727zAnUcKnIcAAwid6IfSMiQUeN/fx1SsmP7ROMFx+siVHDkIMIDQiWrlGTjR/77AJf3VI5oUWLq8zZCDAAMInZS2gi30X/799aMvtJI6DZb0askW+hgCDCB0UtoI92kLPfh/H+s53l+trEaBNeFayqMI8C/27m0/iRiI4/jsZDbsh2OLylG0UgWpiOX9X85TL1xtScisF5P8v4+Qmx8z7GYBwDrilmAVnMyOw6pMz/aXA7RDsIzPvWJ/8VyAAAOAdcQtUfdCz8v8XJ73D1MK5Tfs6gJPtriV8l8IMABYR8zXzsBu9qnEIPhqcRB2LZzi6i30Pe6F/hcCDADWUVwf2gX+PC/vWz2+at9/xSrXJNjxt0V55x2CAAOAdcQJBea3x9K20L6/Pij6qyuwe1vo1v8CBBgArEsJcO1kVdhM5ofbUau/aoEAY+sfgAADgHUUnYZWEejwqqQC++F2Qor8ahPs6q9Fv3/9DAQYAKyj6DK0i0DTdTlPBjX93YAS8pueYLwOHIIAA4B1xJyUYEdvtqW8n9r0NzUF6psqNsE82dwUctxxEGAAsO5CgEMFnuzLWIs2N2en7q++wINdOSuHCAgwAFhH/KyYJgjvS1iL+mqn6G93BabJsYDTjoYAA4B1xJycYHbv3mffBD/8MqBAfbUiC/ztdfanHQ8BBgDriF8S0QSWx9yb0PR3daC/elEz8MDR403mp30FBBgArCNhzQwsnz9l/XGk5vYcMf/qRRWY5VzSu1+XIcAAYB2JqsBOVsd8o+CbuxmRIr8dF1jqNW7EeoIAA4B1JCKaLbST+/Uw08Wo98cVybXzr/yh4wLX9AYPYj1BgAHAOhLRzcC1jHa9LNfQTfUwJY6ur7yMWzQ/d+htGa9+hSHAAGAdyS+KKNRcz+4yrEIz3I6IY8dfuUwxBP/1INYeD2L9ggADgHUkv2lmYKbDIrv/Jv3NZhw5/0ocXYGf8OBLvv+5XwMBBgDrSNIK3EZv1j6vwazpnWty6v62dbGGluk8r5NOhAADgHXdBNjx9EM/o8HMV8uPE0mYfwM6CLBz724zOulkCDAAWEfyRHlNk4zP+dxL6avFqZaI+VcS8GXhJfQYH0b6AQEGAOtIuiqwO91l8jB001/fi8SMv5JCOwPzaIu/gSsEGACso1YZdGvo1SKLMDS93Shm/SzplDPwYZ7DOesgwABgHUl3Babpbml+CPbN7X4c8fiV6GgK7Phr/h/BCEGAAcA6ElWB22Rwmht/H8lX85kL91fUNFtoHuPbwAgwAFhH0qb7I5jd6qFveThr+usDS8T4q8eKBMs9rqREgAHAOJJOC+xktFkaHs6WmxGxfv6lnyQkPcBOHi2fchcQYACwjqKr4GLX0F/vjK6hvZ+fxuH+Btrb8r8KzGM8CY0AA4BtJPEFjhyCB4+LocVnsZrhq5VjVuSXnvVfCiyrT6UvoRFgALCNRLqegR1Pv9zae0jIL3cjYpc8/9IF8qLUAjPve+aOuEsIMABYR5QwlgUa7HhyejB2M6Wv5qdB+vqZgjoZglvXcXxn716b0wSiAAwfztldNiIIiqKiEm+J15j+/z/XWm3TW0RZUCjn+dhpZjJkhtezrMu05ovQHGDGWLVBLgWWfyDqjoMqPQnW/nQNIuv4C1fJYwaWH+BQ80VoDjBjrNqgmAJL8t47lRmClQpfW4B0ZDD+psh5EZpwUu+d0Bxgxli1QWEFpnZFhmCl/M4IBX1nMP4aNDjbInRr7Ffh+haDA8wYqzo4EoUUGJ1epwKncigrmriAGfsLNzIeguUH0e1U4hNOITjAjLGqA7g5wXh9grvjsOzboZU9XUPW/kIWuRWYsBeU/wNOQTjAjLGqg5MiNkNLRwoaxs0yN0LpwcIxzq95grNtxEJvVvKPN8XhADPGqi4lCiYFPkJoLYLynsqhrf4Kr+gv5tpfEDkVmGgUlvnjTZE4wIyxqruUBcwjwQLW00Y5E6x18KUFSCcG42+BQzBdLrDzpTJbzXPGAWaMVR0UXmAC6vVLuA6tlB2vAegsw/hrIqet0NjucIAZY6ySwKDA1yfYXYRWuaZgpf1NzwMk08e/xSf40jUmqu9rkTjAjLFqA4MC37AZS8y3oVWiKVg3o0kLgCjj49+yBFhia1v2febFuC3A6qjO39lijJVQWhRMA3xGSPOX0uzGUiocd4UgMlh/fmyB5U84XJbkqt7XVQE+Z7f5wbIsbjFjrByyVeHstgTL4SzRj2+w0nowO1DW/EKO8igwOYuanod1OcBKadVs2MkgjPqbeDo7msbxph89B4ntNyylucKMsYe6PgrmU7BwRtPEUtZDKSuZjggw6/gLBvLcCs37sC4EWCnLT8LddDzpjYbrdtd1W0eu2+2254fR6m2xjaMw8ZvcYMbY42SoglmCY/+RNz2l7dnBSclvyvxbshmY6C2pZUY+CbBSWjWSaLsftl0PT5f0t7+2EICy1Z2P9uNO6Dd1CVZlGGO1BHDHGVg6iO3Xjq209RBa+/29C0hUhvn3lot9cQR2NyXa3nYvnwRYa2UvZ2/zridAIJH8N0IUAh23PXqNl0lT61peQcbYY0GBIzDJf0Dqvm+SRyRYabs/cUHQr7CyAaaPmPTCOs5wfwdYaW3vXlYuAQgkmYoQQMjW4XUaJYrnYMbYnaVEoYAEE6L7Hgd3vuEpre3O3kVBRGVZfz7JYQT2FnU8D+uPACut/WjWO02+8kqOQ4gA2BqNOwPFi9GMsXuC+xdYEgpvtQ3vuANGaSuM31oAWKrxN2UGvuHLwJ0aLqH+HmClkvjdBRBE8iaOI4kEgDNcbAYNVcMLyRh7EIPXBRhEmFA4wy8d+y5jsFKqsXwZOiCQfoFlGH9Psm7EkmcEvRp+FemXACttBdsRAZLMDAG84X4WNHkOZozdB+RUYLr5WbDA7vssbBR9u9PaSjqTOf2RX8JSjL8nxjuhkab1i8bPACutgpc1ApI0Qggg55OOXbJjUxlj/6mUKBisQ6clmAjBOyz6g2ZxtzulLX85W7kCkIhKOv/mMAJLWNfv1fw/AqyscHvMr8wDgvAOL5HP26IZY4UzOCbCJMFnJGS3t42SQh4HK6X85XQy94QgotKOv0fCtMCIY6tuU9spwEoNtnMSKD/Qn+QNHImC3H38zId0MMYKZvjaePMEI3rz/Wxn53w8r1KqGW4WhxYJ/Du/5Zp/rx6B8cII3F7WbWb7HmDV7PcIkK4hr0WIcjiOGpxgxliRAAqegdMTTOR1R+POs3/MppUHpazmYDedzFuESFT2+TePx8CE47q9FelbgJVOtmuJdBt5BZKt0TjyOcGMseIA5DoDY6Z7HxE57mgxjeyGZfimGvVN0w83L/u598/6El4kHhRgMP02MLSjmo3AT0/ait48QUcFJJic9aLv8wEdjLGiQM4Fznjr+97F1mH/JX62G82MDT7+WMMf7GavI5c+/V3K2d/MBZZnBK81O43j6cnftgVSRjIVoWxP4qBuKwuMsXsxfWGPeYM/EKLTHb6NN88Du6H0DbOwUkpr5Q/C3fa1t24h0lkFHv/+IAwLjG6/XiPw09PEEWQmdQomdzUL+GtJjLEiQAphsAydIcGEQjjufPW67USh3VAn1ufUd00/eN7F49667SFcGIowhUF/iy5w+lNgeLNr1QndFIKMpU7BwhvNAj4gizGWP4ACEmx23ztGmJxWdzQZTzvRc3B8MKy/Ux/O/2A17GDZj7eL97XrSXEpvkSIZdx+ldtjYPQ29QpwAyXlIq3B3mqa8HYsxljeIJXINgSnkykRFkiy1R72Jl9eZnGnv4uWYRAEg0HwTbiMdv1NPHtZ7Htr1yEUAMf/T59DLPH6cy6L0LBK6jSo6WfKj7wEhdeLbZ6CGWNf2bvT5rRhIADDy+5KaDAYMPcVIFAKoZDw//9coaE3ly0ZbLHP90wmOOMXyZLsFmS0wMeFWT9/V1BtRbP34bL9aTl8X0WVUP3IJjAj0jWIWR8AW6/DwuC18Dx0cUduqfMQKsvp+OnOOhFCpCpBGY7wKiejDzr4M5DAR3F+BWJGdx/9w+4xMA7HT5MIrd9a5NylBFe3nbKsxsop/ckc6R/ksYJ4NEhcYLzO7cbMUz9CN8G89NdyDIzh69NsRTLNJaVAnUVIq1FTBsF5o/eMLpRLtWJx3OvVD3q98bhYK5UL2kiGxSPBjTjtBJOKhWLAazgzAYZkB2KpI559e5K7ia69kKJUqHOIg6GsxsoRvXdYpjnpdAevo/nL5mM5HPb3hsuP7ct88Trodr7Ux6WCjIbFgwBkJ8E3hZjiQczP8Nd+Eprw63O8GFiXXxUFlBJ1DnJ125DzKbPvs6i1eqcxHX1tv7cq1TD8XNoJB8yIFIRhtdJatX9stmjWChJhcW+2AXZf4CPL9B7lsL+Wk9BceY6tSKbbgiCgtKizEFvz7nN8yckvrcul4qTxeticGBx3VCD+fWFpDw+IVFhZtb8u3r4US2WJsLgrAMjeINgRxPz1F8DqxYTE7foT3EFMsw8YBJSm84+CZ7uJPArOKq31Pr5vo5dlFCo6ZvcyOlDB4eCBRnNckgaLe7EL8BFmtMG4l4fNR/+yCbDCYO3/2cWmuAXG4LZd35TQhQQHfXkUnEmH+vY6602/FXxe+ZiLSoKov118q0uDxb1AHJynAudz/Jv4KbD6RLDy/sXAujRCwP8C7Pzf8HyCubrtPs1689zQptTsLtpR9XNiOQlCDKPlqFuXDWfiLgCcJDhrDca9PC1+dlhg3Hh+JLQuT0PAvwKMMVAc6gzESLYkZYsu17uj90qIjMoGIQat5aIrb8ESdwCOCpytBOe6v7brsJTfk9C6PIgAfwcYj+6bYGL10fH6c84Xo5vTjwoxH6+YdYMr22nd+D6XJB4OYjtX4Kw0GG/Dme2v7WZgeJ/4fOMwX/rMuKcUWrA+JYZwtRjLRGUGaGPKncUwJCTlCiGFw/VEXkQp0gWuCszZKDB60F8Au/OwvN4MbHofzHgpwO4TrE4JCHj5reDzd51c0Eb3pi8VACTlEiFA9LVbkmGwSBEkwJkdBKMf/U04Ca2OOJwWfGVqcwS8GmD3HVYnEFQWRRkjPZI25cnonYAp3lEB6hYEELYHPRkGi9RAMmwZYfcdxptxxutr/1IGiHw9kVKX1yGg2wAj3UKdBNzuyBDpYYwpdb62ADDJOT3qFgjBatSUBIuUwOMKjOQO+tVfy0logmXT0zvGWwvwTIDTjvCZG3RrXZMCP4Q2te6m+iO/lNBNCeZoNynLNRZpgMT4HIyH7GAsnI/87vHfYr6XkF58LLDWnXf4489Hp+gqdQrQtiNPgu9Pm/FgU2UmRbbURQExRjtZjyXcy0KArRqMvvbX9s3A6quHu4FNcwl8PsDpJ1idghztenJ3vi+tx9OlAqY4LBLMh33fcj6WcA0gEwlGig33/O2v5SS04urau6OadH3DgBcCbC/ZjZpx2ZVTOe5I6+JgGQKSO+oyYlzNv8hFFo4BZCXBt4YYE+Jc5de6wBi9FfxiinMC/D/AGRgFE7TWJZmGvhNtSt2PQ35du5bgaCEzHcItsMIPKDAe+D78tT6RUhG2J17dLHR5WgE8FeAsjIKxNep59XFnly5PRitiiss+wVjZduVt0MIlAMjaIDgNnLvxr/VjYFIvPY8GZfv+zgBjBNhGkkFwuO3IDGX6dKG56IdI6VHnEUXzL7IgWrgD8AwJzmV/gS0nocNd0Zt7hS4MKoDnA5yBAuNsUJIZynRpM572FSOlSV2Awfu6LoNg4QocZG4eWvrr4CmwwurCm4VYptECjBFgawkKzNWdvCEpVabc3YZW+bUfBGP1Y+DPF1vxYADgeYPzWt/kBaZfRWgNPHlhj/kWAcYLsL3Y92ik/kDWYqXG6OauxUj3cSnBL1+0XGbhArjBWU0w57m/lk+BFUHU8GK6zHRmgP/gBwb4wuHQIxkdpUOb2rSPQPbsC8yztVxm4QI4wplMcL7za/8YmGDlwwZVM+n/39//A8zXpT4K5mAz8eI7T9aY0reNxdYjtxUmDrYduczCHoC3Cebc59f+MTBx9Jb7G4VpDgHpSoD5VikXGLnf8GTeP0N0obmrAFA8Dg7bU2cgRGsPz5oT9wYAfjbYh/rusW2BodLI+WSZ6bWB6eIImONJNcHE0dSbtW8ZocuNIQLd6vrFtE8wQbD5IovehSXnvchChJm9GP0esH2BV5NcF9iU5if+bP4dYE4g1QLj7LUmt2Z3tBm/zhjpFngTJwlG1e7W5DILK+AYZyDBHvXXPsCKoN/McYF1aYSA5wPMSWEMccfAld1EpqFd0eVv2xCcH1LroMDcmsu+M2EFAHxqMLNP9bWZhCY/Cmx6u+B0f5mIraWUYAyXbzIN7YTWvfXqSi4xMcsIY/CdvTvRSxwGAjA+TKYxPyqXHIJiUVkO2UXY93+5XfbeSmnSpnQC838EK/lIGpJRX56zKAGqYDnuSX7PUuBYwUOoq9BmkiBkPGlE8qCiSTDeyQ9VfNCHO/fJPr/uShVYqflyFvwuR1EfqILduCf99RngnFXoRZA1ML0tAmYHmG+BI+ysBjIwl6R172muUGVDH8osRGMnkVsKRWHwW9gRJrrQ+vopcAQPIe7YNJMtUubjRiRfKpkExyO5naEcc/tlH6PKgj4VnwRH074cfyYKgsqQFT/xvej+2hVY5c2B74MrsOm9E2Q/cETyp4oC424jW7FK0Def54in8ssiwQqHy4ksQ4tCoEpkq3h6L7++35GHAtM8tBqYwQgAcwLMqMHHRmY5rKEw3Vgkbcqpr28F92J19uPAPlyCCagW2XOP77X0F8jDInQErc9BDRLmeQp06skjkme+CxzRJd0IeV7ajHdE+fllkWCEefgHzok6QNXIhXV7rym/1m+Bcwv8ElCBD/NfwpwA8y9wJ+lJgQswzcc7QJv+siiwgmFIHy7BBpwB+XR99fWyCH2Aw9dQdoto/bzHjP6eDjBkqiXBKsztbzXTZpC0AS3jyyDBcQRtuQdLuIOjLqTAcDG8LEIr6AQySOjbzY4A3QLs63/Rb4IVzC/jSsgzMro/B1BpeEbus2DCrSx2CFdwQsAZhktDXlahKV5NAhgkdPNleHL9OR1gcFS+wdZDc/xj6T+APzofprnsADrXt+4GI6zD+6WBqBmcFGiC4QJ5KjDun9kPEqa7bAGidYDrOC/VZWSG+GtXCmzrsPyMoGrvL6JjgGMFb3ITpXADOUJMMFwi8lNgpIcx89Nr9eRT51R/0wGu5l/RZ4GJZHXSlm6Md0Ac+lvgMmiSA0iFG7AQToThklkGOO9FML4tZ4wHCa2ftzHhcZQOMJRzrgQjrPkvPLBgmq8tQBb1LXQAaZSE8I5HsAF2gmgwXDbyU+AIO8kz221BWn9ZI6F1gMsqU2B02ool1+bk07q3UsBj9ltoGTpCWId68YmoA9hin2C4eOk+FC2witdc31Xp5uMbobLpLyGBF5Uk+MgdwZ9kbpRD326mRD7iS8edYRKsYHfP9uutYAccMG4wXAMqXuD0JWrTPsuNuebmZQ7Z/U2DgAocYSwFPu1w+AZh2dkv5an4TbCCqfzyW9gCNywbDNeC/oclCvz2yvCUYj1IOmjfXwJvCg/XyqXA7wuZG2Uzs6cWlVx9JksVz4HH8pyFHeBA0ut5DmyR4NZqwOx7um58WRMp2/6C58dffYIVTuXM/iyHzXdtKpxfKqCqBiu428hFlMICkwD/IO0tEWD3AqNa95ucEmy6r0NAZTvEAhABiwK7vAiev8hWrKN0YzzFov2lwrwkOEqTs1eEHU4B/kHaW90UWH24LG/FZze01oMkBlRuAfaNMnjcivU04/SthwvdfJwDeqmvuwoSDB25iFLkYxdg4avANpNg2j0yuZ3B3I4fCJRC+/4CEfhXcIx2eBHM+DdgtTE3y1ax/pIX/gtMbbkGS+SSAIeGUrBMgRW0Pw0Y5EDr2dMQUDnMf/8GOLAEo5py+dbDhdb3SRvc80s++U4wqu2g/k+W4A5EYLwmGHG6qT0HptnfK5fl53SAWTRYZTmyDC3Lk//Qjf4OqUh9Wd0G/bHA7wPTEOIECXB4qFyBPxwg31rVOwnWpve1BaSc+psKMIsCo3WBI1me/Ms0X+7Atb/0A68ERymI7zIHFidJgANUMsBpiKMvjfp6oPXiHQHV9QQ4iihKOKz8s6AP/UXFI8CE6PXolRXnU9cFByCCYz1qWM7IYPh1oU0tQdCm+/nX/Md+tAX4GGAWCXZYnlyP5XcqB+bmv9M33OvLaRIcpWAY12+L2kiAg0QpZQcKovlyUsOUTJvmeKQAC/UXiKBKlU6CFd1xPIrs7PQgiUD9UXt+D3yuQkdJT56yyCQBDhKleXgtOX28OfMkWJvbxaoFqBz7mxlgzgmOUhR2WGxAr5Vu3I8UueS35DE9505wjCrpye++RRYJcJgoxceUrL3vd885VpjG4mlOoOz7mw4wpHEosMMbwlH9G9BrZbqbHaBDf8kG5PFSYPs58FYOABdZJMCBohQPW0YUtbbj5rkGC617yzckVD859DdH7W+C7Y/FUq2n2RWPzXrydYie+wuWyifY/ilP5XpCkUECHCqqIsE4TDZdYxqVM3r2Oo1Q8c5v9ZPg9vXej6TN89Zl+dm+vb4i7CnBSA/3V73QIbJJgENFaV4OkUdq7Tc32jQqZfTNyzSG/P5yOAb8G3t32pw2DARgeL0rCY8N5jDmxkC4rxD+/58rkLaTEJJYYCWSrOdTZzqTdlDiNytfKmdgjuywKer7kXYDYAryK0PNEMyvEPTaBV1j5xsuwOZiVzCnBEetzUjlWOaX6/13+dW6v2cqr4aGyraIJ4KFiN+8fOGx/Oa0uupWmWAwLuAaO99zATYXU1NgjhC2OjXfV9Jg4YvRZE3A6D/UeAP6lcpdaA7hsFa4o7PwO7r090R5gRH37okczg0uwAbLI8DEbyCe7Pvjcv4JFn65PllVEYlMCjCAwl3okEFrXLA7VUR5UoF8Tv8qWF8FN50hpiVXYOcDF2CDMZkZWKrBxChaD3f5jsHC94P2oheyrO+d0ya/Mg2WPziHBI1JqUAJFn5wJKC/7m6vkgVWtcpIS1dg5wMXYJNJHStIqsHEGCb7STMQ+ZRBCFHubtIGAqM30ITx95XKJ1MCvhTnamghmnvQr78nSgvMj8U70+B8xwXYbBIHC/kxGFl1MIu7jzf4XN9RZ7aqAMOs+dXlAqwfORUcIkyL8pJgUd6sgdErvKu/ur2FI9MiY1TAc/3ON1yADZdbgInfTDAmq9mmWRN3b0YL4fvl7m7YShAYksH9BVD5UA6IZoV4ZqFfW0SAD46/8JYGU3C2GThyu9DOFRdgw0mOwNIJJgSqHNL+vFu+o8Hn+I7GneEq4QBI7yHqfwPSowWW+LCRBrH9twT73ZSA9O2v0gLTzM3AzjsuwMZTnGBOhIxXp8+LuF0PxCvvO+JVbdzZpockRIZ0BY2bf+8cgmWeQ7YY2T0ECzFvMUavdNt9/rbBORR46N5B6bzlAmw82R58jd9EiBRVpi/Hp3hcCspl76sIn/+qHNTq7c12OUgiutTXkv7mOQTzDzB86dQsLrAobw4Pbj/Dbb9fYMyyxixc2L/J4UhwATafdBDua/BZWJ2+zBb9zngUvGb42rm95WA0j5+G6SoJOSGdWNTfPBN860Neb+29IckP+lOGD+QXfgz7xKNXYkElLszV7k4GLsAWUFrg6wiHYdTotdLjYhLv5s36qFSrBWe1UqlbH+86m8lilq6mlfBvfeX7q3uAVT6Vg1MlnQsrtymFKG0biPRK7/6e5FVg/h5Md9b+guXIcwG2gVwPpBN83eDLV+DVZLru9Qar1stFq7Ua9A7TRlLlb/8R+wZgxQVGOkxsvFRHiPa+mm3+1SC/Z0rOAxOs5xaurnMnF2ArMPkEy0f4OsSIjH38f3z/tdHw/OabYOJXCKvLsWfbQVp48YExU8bfv9TMwD33Yoa8iBP/DSHM2+AHxwLyz7DNgEujkyL0F5jCAnPE0xBs10alX9tWAOkvQ/qrpsAEq7or8OOEL4QXdJvtTrzpn2ziTrs5CjwhzPrRAccGTEGCZTJMGaEV/b2vwVJDcNuiG1aEX1+GgBm+ATSKr8QyyyWYcD8yKhH6Eef21juT4fJlME0q1SiMoqiSTAfPy8WkUw88gyZhcKyQY4Hlt6Ml8mvg4zfyKrDEB4w0HXbN+k3+c763WzEgI/sLLP8CY7h0M/D9hC+CUWeYrhohnjE8+f8nihqrdLEbBaYMwuDYQTYHZ/Sj0Kr+qi0wMd6K7Xg6tB9MGsAM7e+JkgK71wPfSfi1Zj8dNDgwRPqwv0+IyCBsDGZxvWbEGAyOJdgNqE2CEdGe7ed/FBaYEybHphGHkC8Jr3n8f/rXwPzmNQRfv5jB5geuKCN8r9uZHSoEjL68XRKBknODDTiPA44ttC6wjf2V+sTlC8zC57bpD04SYv4cAZncXyUzcNI3fWV/nhDeKE4bIUMi/h1CDBtpPPJ0/5jBsYbGBcYTsx+/8fPb0Jxouu0aPQSLYNMjpAsT7v39TP4FPnS0T4NehAjG/X0SIhHPhihs7Pt1T++fIHAswm7AX2+wldvPPzQEt+KR3geQLwi/O0zAgv6e5Fxgwt7c2HX9BUKUx4teFRlxCYRUaU30TjA4FpHOgfoEI6Kt46/6AnNiyT4242qSD4S3e+EM6cL47wCZZc6wvEQvYyNX9Vdc8hsiEpdEiNXWdqzxfj84VpHpgfoGo+35PWGKE0yNo84HkE/5tcka0fDTvxIPu5EtcJh29b9ESAvCG01WVSR+F6LqaqLvmRxw7CKRA9UJRixCgFUPwRzD3pO+B5BPCL+5jMCi/uY+A2O4LLkCZ+AH8XMVifi9CKvPsa6XnYNjGW0KjGc2n/994COnz90+gJi1Dy1EKR4wsOPtVxIJlizw0cbXbuRMeO1ZA5HLu95G0vOqN3BsI7EnqizCiEUZfy+Y6iEYk9k80PIAcovw5mkVkCw5/auqwCyadY1Z01/il54aDIlf0DWeGfJeX8shGBzrsF9PMP5j4qOPtLsd6YQQ18exIUOwqPXXDOgfe/oLkOsDOUKkZcmMJf0tYv5MQB/bK59hYpVlW8MPGxwLZUiwqgojYuHym/eJYLp5AMFVXDbgAbfCr20TQBvzK1fgDEvLoic9N0b1IPx2D5A4ZZFlCN7p9yssOBZit6HyBGNR+ytdYPkEI0Tp3NM9weIytFiaX8kEZyhwpa9fE3ThB08VIE4y+BcIqgvtnq8Ojo3YJ1BlgxGxwAEGUF1gziA5NrVOsDifswNmcX/znoGT2M3ANwm/m1KG/sokGNhet5eMgfOHvTttThsGAjC83pUWjw3Y3IQ73ARy/f8/VzBtU1pTbPCh2Pt8zHTaTjvkzcqWVFAqHN4ndnS/+clHGQzB8RvsalCLdcPYBLPtHN4IqEibj1KfgXd9mYFDMPdGoDTdRV/hIrwbtgwNoqjUFfgYOsLHqIIGON0CBwhwN56xaQtpAebZpgaKivf281+SfBOLcHAwqghmYH/eBNRECReYwJsbtQwNorjSSbDUN98EK1ys27ZxU/Bp9XkBxXz5Oc4QHP9ywpGJb+fmy35aukAP0VcovTTpABQQBWZggVWxA5x+gYME79aGPQtm2+l/EGA5+pvoKjThdmVQEUzA7TcEonQKjPjWNue5O4giU6YluOD5BVAZFFiTot24bdCmJLZWm1qQ36KdfpXwCBxe4K5czPAH5sNIIT1OhyM1eDHmdHUQxaYManDRp99sE7wYz3wzEmxbjfVCKaLiP/599EFweIFpdJAZ+Be2WgtAiiH+h6f5bMq5ciCEyHsVGumeBDeXKyf/BLNdGW5dQPpS+NO/H1+F1n8ieG9Lgc+Y+02gxOhQqmNKgUEIAWYPwaTDeYNxL98EBw9/Jx2XvpTg9o2zJHcj4UdDCnzC3H9XSAnSYWhhSIFBCAFg+BBMOgyhu1j2fc6twWxXe8uOAqQvBd39m+oitCboyvXAR2y1moCUqCsz8NyIAoMQAgwYge8psCakzuTlKZ/3sYL8NkEhnZXg9efURmCCrszAFjvzi/6mWeDa3oQCgxAC4Bsk+NoUjLXteOVkvjOY2TnlF5B+KfDpV1ckdyqlKwU+9XfvAf0f/vRwgpW3N+BIDhBCHH2DAutwhECLSWua6RjM7LcmQX5L3N8kZ2AXS1/gG/3FEI8UGOoG3M0AQogzIxp83xissLbdr/yMxmC2edp6rZV7+k1kQ7CsQn/h4Pajf2Ak9zQYvPGUrTxJgIX4YkSB79tYQUq5i81w5TCzlSpm22oMP2rqIr9levsqwSFY/7UK3c5/W1lewvuLkd1RYHRzP5YShBApUakUmHQ4RO29f740nHSP+alWeuttXSmkLyV7+yqlAmtS3UPVKqfQ/uJZakOwqn9W2MqPBFiICybMwHcnmAip8zpfOVZKczAzV/qfI1cp+kNZDr+6ItlzoXtmXZeXFeaXJtAljC92gb15nqdSSoCFuGTEEHx3gjUReaPlcOZXraS/kzNbzux5stDnv1+p3766kOR+YOquyhhgtvo7hXH6m9BrjLjI81xoCbAQ/zBhCH4kwYi10WTfmyY4CDOz5TdeliMPEUnG30tJ3g9M2545d/Vkha3L86/wIXE+NYTv/fz+vSXAQvzNjBkYie5vMCJ5u49xa1ap8uMRZrar09Wxvh1SSP/Asvc34Rv6R4eyrUKzM9xd9jfDAtMov1V/CbAQIYyYgR9JcDAH1zuDzby1mlYfaDAfOY3D/HVR0wopDJZ6/Tn5M7HUoF+uGZir81pi/Q3c+MQYtOoPQoi/faMEk76KEHW9NtjsW6vzJBwrxBxwpr3huNup/5p9Zfn5sVXoCP+JBLtWmQp87K8HkfObfIJJv+a1/1oCLESY71TgGw0Odie9jp9bs4pTtdi+nWFmttmqOn67tV++LVxEhRQOZfyNeSAHRTkXujk05sb41NnO2oXI+U0iwSZtBwYhRCgzHgXjIwkOEOGR2xm8bdbDXqPiBx22Oczp68fyVp5mp/aOOhoVIv0kj39TWIUOn4E780pJCmw7Yw10hgmL+nFBb+yzlQMJsBAZUQkmOH6DCREAdK35vn1drof9XrvxNK1UfN85832/Mp0+NWa91vN40h3sOnUAUEgk+Y1GJboK7W3KcSyl7X/SV39zK7C7zmXJQQIsxHWGzMBI0egbiDAoILpep7kbdF83n+P1/Plkvt+Pl5O37WDRrHn6/KvoSPqb1anQpC8o3FRKUGC21hf9zavA4B1sK3sSYCGyo9Kegs9udxhPLVQKtVuveyf1et0lVBB8FYPf4kZ9Jb+p3U4YQJpMC19gru5doBNMTcQCv7dtK3MSYCH+w6ACx2qwjoCOfqcy7h+AEuCUdyNpVB/tghfYdtY67f5ipM+IS/Dh21bWJMBC/Nd3TfCJjomOpL7mzMBquyr05Uh24zPt+TcQqcCoPrPf+yUBFuI2M97FOqL4kixvAG8rbX9BJVlgUoNDcTcEsz3rAkTNb/oFVnrIbGVLAizETQbNwEh3SSa+AZT5N7NVaFKLYbWgy9DMhwGouPOv+kPCBdbQyfxFLAmwEBGYNAUj5QeP5OyN7FahtaqtK4VchratlyZg5Pqq6/DCIz/uwCjrrV8SYCEiMKvASPeT/oYwaTuSvoS6OyvgDPyDvbvRShsIwjC8mZkse4zhH/krWtRq0VOq939zrbSnp7Qg2SS7meD3XAKKr7MMG3d5m+/6yx75DbA/8c8i1mPkRSwEGKAJIq1rMJ0myG/tXwgms5md3dORbH/VLTj/SjF1FDil7DnuZ+4IMEAxHzzBhP42VODUTJb2vIZg13lNDdfX3506jqFlOHVJRAgwQDHqAkwcESHAjQWYabi+OKMZ2Cbz+57UOv/u1BBg5uuBTeJBgAE8aNqHjhdheoPt52ir0P8lWLqv53MvpU1m21Q87jKtMcInX2vqRn0wEgIMUJzCAhOHRoTxt/EC8/bzmSxDu4vlnYjHdS5+qs7AlN9G/BgYAQbwo+4kOmSEiZDfIKfQ/sfQi9lZ3MnhOg95keNnKa/iDLyZIsAAH4ccUf22H9TXi6ohON3HZvgwb/0QbN3gsVtg/UqqqVJgpm/xHoKBAAN40zgE191gKk4Q4AgFTiXbTlv+fSSbTK/4dH+lsiqn0NSN92xgBBhAgVINDlZhIuRXwTI0p/uIF08Xbd7FchfLDUno8XeHKiRY7qJdSYkAAyggR1EJ8epLgv4eJXUXmCVfzVs8A89XuaHq8695I6eUDzDLS6xXGQEGUEGOoVIq1Bfzr5pNrAPH0N8+t/QY2trptnu6vyfauydUgakbaxMaAQZQQo6ikrzji/5qKzCn+zh7mV22cRfLXY4WTFQhv+agIAWWxReXxIAAA2hRX4H9I0zI7466Aqf/YBo+Dy5bV2A7f8gNcen5t8r7xr/ARI8dm0SAAAPoIcdRHd5PLj79rZ/XWFaowUy97VPLbqa0yXSblT9+DvFNvhOH0Pk6yiE0AgygiBxHuqC/0Qqc/oN5shq06ZNg119vjJQdfyu9c8p+Hdh8j3IIjQADqCLtaDD622CBU+6+jFozBFs7fuwZ4jfhfqNqPoRmuo6xCY0AAyijPsEiyG/TBeZhS4Zga/ujTyRcsr81vHFKHkL3Vn2bhIYAA2ijvMDorx8JUmDKrkYtuJXDJtPr3FDJ/tbyzqFyBZbJyAYvMAIMoI+I1ggL8hs2wVQ8wZPVWPs6tO2sN6Zsf00ZtRWY6WrgksAQYACVNDZYkF81y9Bplgovlpeah2Dr5vdZpfzGvwF07zoOTMAAH5W2BCO/5UndBd4h07sf6L2VwyWzr1Sgv1Tvb5TUVGDmT2OXhIUAA6gloibCgvyGn4H9Eyxms77QmWDnBq89Q/yL7/gb5/8dfr/A2WvoVXMEGEAxJQkW9Fdpgdnw1UzhObS1neXGGP7Nd/ytqKZVaBqOEGCAj8z/yWuor05eBfZJcH4/TnRNwdb1n666hsrlV4K8bUqcQjOHfiwSAgygmxRA4Qj6q6vAB5ax5O55nCiagt3l9Lq3N/76zb9aApxS7znsnjkCDKBeYwkWQX+VbWIxp/9h4rsHNdtY1o5XExHmms6f4xc4/YMWXxBggI9OCqm5vcjvG21fCD6S4HRxe+Oab7B1bn77ncvm19SojgJzdh/0PiwEGKAVpBjkVzWPn5fvFCzZp/VN0nCBbXKz/sSGPPobL8BS5hB6OEKAAeAnKapaelHfcCRsgpd922CCrevcfs/28us9/yqbgZm3NzYJBgEGaA3xQSUI8ntAS2bgNCMaPo461iWNcK4/+5YbYtYw//q82O+OwPmTS4JBgAFaRPz4xRf5PUznCMzpAcSTl6ebJhJsXWd2nRvhv1FrA8x/XQk9tkkoCDBAy0g57/8NRH5/sHenS4kDURiGO+ecNCmWsAoioMgiu+j939wg6tTgEE3TCdPp+Z6flhb+sOqt04t9LZJrgpmo9jJo6usex9JRVGrvaiTM7Mr687sMRuB4VtZBThBggMKRTCC/aRWpwCGTxMtNp3q9zWAdBZ3Bc10pcmr8TZqBzS8Dt6MgJwgwQEHJ95BeZxkl2DzCTFK5e22XrjIGa63L86e7ihI6qa8L4++7Sw9ihR9YdXO7ioQAAxSXJEJ+XWZaYDbeCxa6eZl0ynnfDI6i4KF9P+Uv+WVyYvx9Z30SmvgRAQaAtAlGfh0nhglm0wQzk4r3s9t+Nb8E6yhozCfLmihiZkfnX8sR+Eit8nqaHwEGKDz5E+JbCCYBNk/wEUt40930HnLZDtZaN+aP99NYhJmdHX/fiG2BiUaBDvKAAAN4QD4gv0Uhf6PsE0wUT3eTbUln22CtdbWznu3rLPR3ft2af1OPwPTNCNyaR0G2EGAAj8gB6lskFjOwQYKZ45vhqD1uBEFGEdY6qPa3h+G3zkTMrs+/WWwDM40yexUJAQbwEupbKOYzMBkk+KTBldpw9tgrlQNtNwrrg2qjs37aTeOz9WX61j/7O7O9DaxavSiwgQAD+A/5LRCLVegE4XnHLtb3u9fBuFSuXtjgtx8rN/rbyWJY48Tfxc3+JhTY5CrSoqyDSyDAAP8ZpLcgDAps0+AjJqrc3D2P1uN+qawjg1lYax1FutHvbDeL7qpOxB8KsP37SSwLTLXbKEgJAQb47yG+7hObZWjzBDOJVGrT5WLT7nUOFX4XJNNH1UZzvB2MuqtWTEqIk5BpgNUVyRemu8DquaSDZAgwAJyF7LrrggTzz8JkTCJcqd8M70eP7d64+bYxHB3p3z6/EJRLzfntYDN7WdXiUJQQJyNy8fhVZtvAFK8RYAC4HMLrHLEbgpOFP0RYiMN66657//o0GbRvt715p9ls9vvNg868t71dDyZPs113VaswiVJv3/9tfh1ef85kEVotH6IgQIABAHyRf4GTD2Z9ftZhIG5N98Nl991yuF+1anF4zKYSSfF5RK4PwNbnsKgyOfQSAQYA8IhJgk9TYR3i3/WUD0o+mHwEkaO3j76w2wam4YNGgAEAvHJRgIlTC1M49yOcChWlv5YzMMWTskaAAQC8InknmEMjbIB+4tDBPzlh+h8pZbpFgAEAfGOb4IxCzGaIijP+2i9CMy0aGgEGAPCLWBTYWOr0+tZfy0Voqa0RYAAA/1gl+PqIitdfpaweJmTpNjUCDADgGzmLHG0wHRTh8tFXNgEOqbKpagQYAMAzUqQCF3P+PZBTZgFmtZpHCDAAgHfkPHKtwXRQpMPPGRaYdiWNAAMAeEfOI7cSXOj+2p7DCjdVjQADAPgnqcCuNJjScfnVD7vLwGo/jhBgAAAPyXluFJg86K9SViMw0aKhEWAAAA+Js0Mw+dFfJacMR2CJHzEBAwB4ShJQepwtSq0Ib07bPcqgWluNAAMA+MmowPknmPzqr+UiNKtlRyPAAACekiRkhu2QESlGfg/klOG7hHzf0QgwAICfDAKcX4PJ1/7avgwcLkoaAQaAX+zc0W7aQBBGYXf3z7ICUyRI2oS2KU3VpJCb9v1frsEXkZCCsFmX2DPne4mjmVktjOoxweG89trtb8ESuqHF8zQRYACwqnuCy0MczqRR5be4wGG5YwIGALP0DgUOe9bH36IfKRsxfNokAgwAdumYMCQa3fxbfAaOV/d3mQADgGEjSPAo+1upcAn98e8kE2AAsEuDL/A4+1tyBW6ExeM0EWAAsGzIDR5rfY8UuMsSWjdf6kSAAcAyDTXBGnN/C67AjVgtVykRYACwTINM8LjzW34GjtX29kMiwABg2uASrNHnt/wMHLXcpUSAAcC4ITXYQn1fqLTA1XyVCTAAmCcNIcKSiel3T+UF3m4yAQYA8zSABBvqb2mAmwKvrzMBBgAH3rPBkqX6liyh42GBCTAAeKBTQoP8XqTAs1itN5kAA4ADUpsE09/LBLiZgX9lAgwAPlw2wpLR+pYXuLEvcCLAAOCCWuknvqb7267A8dQM/DknAgwATqit89Nrv74v1EOB9XNXJwIMAF6ove7x9dLfSoVL6EY1f64TAQYAN9RF6/Z6ym/rK/DJAv+oEwEGAEfUJ3/1LV1Cvwo3D9NMgAHAEbVDfv/vEjpWi2+TTIABwBsdR3pPUS9baM2e7jIBBgB39Dbye7kChz+bnAgwALijN9DfNtRPgYPWt9NEgAHAI70ivRd5Cn14CA7bx++ZAAOAT9ojv92ovMCNsLjfpESAAcAn8ls+Ap9b4Dj7vaoTAQYAr6hvRzq/wFcHYvy6qjMBBgC/qG/RCFxQ4O3DJBFgAPCO9PY8A7dI8PzpOicCjH/s29Fu0zAYhuFgO56VsVKpTbWpBYYobFSrGPd/c2icVVnVRA6Dg+e5iVffbxmg0d6KAE8vcIiPq65kAQbghfbOM4HHbODQP9znLMAAMGOBx4zg9HPbFQEGgOkBrilwbBb7dc4CDABvm+AQdoeuCDAAXJLqCtyeuI7NzcM6ZwEGgAuqA3wqhM3TuyLAADC1wFVX6DY2/a9vuWQBBoCZNvC4FZzS1+93OQswAEx7Bq5McEztbntVsgADwKQJXDuCY1o8r5YlCzAAzPcMPNQOE3xzvO1yFmAAOCv9jQSH/tNhWYoAA0B9gM9qB0K6eT5c5SLAADDpCl2f4MXm8DlnAQaAV6X5C/xHaK43t8tSsgADQN0EnlTgNrb9cXv/vmQBBoCBVLmBzzc4prj48fHpZQYLMABUFDjESQ2OKYX++GXd5ZIbAGBsgutncEgfdvvVXdcAAKdmC3BsX01w6B/3DQBQNYEnJziGJjYAwBsnuI0CDAC1AQ5xeoIbAGAgVW3gIQEGgP+hwA0AMPIKXZVgAQaAEVJ1gocEGADm3sAhjiDAADD3Bg5xJAEGgH9QYP+AAWBagVO4QIB/s1/HNgzDMAAEBYL7z5w2hQWLNg2puFvi8QCwo8AhwABwaIEHANBdYAEGgC0JDgEGgP4ALxBgANiS4BBgANhR4BBgADiowAMAuJdXYpEAA8BD+SrBAgwAvQleJ8AAUJfXokCAAaAsJ6JCgAGg7YLLBgDw/oIFGAD+HZrgAQC0FFiAAeBLOSPAAPClnBJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgxx4cCAAAAAAA+b82gqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsAcHAgAAAABA/q+NoKqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqoq7MGBAAAAAACQ/2sjqKqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqoKe3AgAAAAAADk/9oIqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqrSHhwSAAAAAAj6/9obBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOApAHyME4P+FtIAAAAASUVORK5CYII="); + background-repeat: no-repeat; + background-position: center; + background-size: cover; + margin-top: 0; +} + +.search--header .dt_search-close { + position: absolute; + left: 0; + right: 0; + top: 75%; + margin: 0 auto; + margin-top: -20rem; + border-radius: 50%; + text-align: center; + width: 7rem; + height: 7rem; + font-size: 3.2rem; + line-height: 7rem; + cursor: pointer; + border: none; + opacity: 0; + visibility: hidden; + padding: 0; + box-shadow: 0 0 1rem rgba(0, 0, 0, 0.5); + transition: all .2s ease-in-out; +} + +.search--header .dt_search-close i { + color: #fff; + background-color: var(--dt-main-color); + width: 100%; + height: 100%; + border-radius: inherit; + line-height: 7rem; + margin-top: 0.3rem; + transition: all .2s ease-in-out; +} + +.search--header .dt_search-close:hover i, +.search--header .dt_search-close:focus i { + background-color: #fff; + color: var(--dt-main-color); +} + +.dt_header-search--active .search--header .dt_search-close { + visibility: visible; + opacity: 1; + top: 50%; + transition-delay: 1500ms; +} + +.search--header .dt_search-form { + position: absolute; + max-width: 70rem; + top: 50%; + left: 1.5rem; + right: 1.5rem; + overflow: hidden; + margin: -3.5rem auto 0; + transform: scaleX(0); + transform-origin: center; + background-color: var(--dt-secondary-color); + -webkit-transition: all 300ms ease; + transition: all 300ms ease; +} + +.dt_header-search--active .search--header .dt_search-form { + -webkit-transform: scaleX(1); + transform: scaleX(1); + transition-delay: 1200ms; +} + +.search--header .dt_search-form input[type=text], +.search--header .dt_search-form input[type=search] { + position: relative; + display: block; + font-size: 1.8rem; + line-height: 5rem; + color: var(--dt-secondary-color); + height: 6rem; + min-height: 6rem; + width: 100%; + padding: 1rem 3rem; + font-weight: 500; + border-radius: 0; + text-transform: capitalize; + transition: all .2s ease-in-out; +} + +.search--header .dt_search-form input[type=submit], +.search--header .dt_search-form button { + position: absolute; + right: 0; + top: 50%; + width: 6rem; + height: 6.1rem; + background: transparent; + text-align: center; + font-size: 2rem; + padding: 0; + cursor: pointer; + border: none; + color: #fff; + background-color: var(--dt-main-color); + border-radius: 0; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + transition: all .2s ease-in-out; +} + +.search--header .dt_search-form input[type=submit]:focus, +.search--header .dt_search-form button:focus { + outline: 1px dotted; + outline-offset: -4px; +} + +.search--header .dt_search-form button i { + position: relative; + z-index: 1; +} + + +/* List Widget */ + +.dt_navbar-listwidget .contact__list { + display: inline-flex; +} + +.dt_navbar-listwidget .contact__list+.contact__list { + padding-left: 2.5rem; + margin-left: 2.5rem; + border-left: 0.1rem solid rgba(189, 189, 189, 0.5); +} + +@media (min-width: 62em) and (max-width: 74.95em) { + .dt_navbar-listwidget .contact__list+.contact__list { + padding-left: 1.5rem; + margin-left: 1.5rem; + } +} + +.dt_navbar-listwidget .contact__list i { + font-size: 4rem; + width: 4rem; + height: 4rem; + object-fit: cover; + margin-right: 1.2rem; +} + +.dt_navbar-listwidget .contact__body .title { + font-size: 1.8rem; +} + +.dt_navbar-listwidget .contact__list .description { + margin-top: 0.45rem; +} + + +/* Sidebar */ + +button.dt_navbar-sidebar-toggle { + width: 5.5rem; + height: 5.5rem; + cursor: pointer; + background: rgba(189, 189, 189, 0.2); + border: none; + padding: 8px 8px; + border-radius: 15px; +} + +button.dt_navbar-sidebar-toggle .lines { + width: 100%; + height: 19px; + position: relative; + display: flex; + flex-direction: column; + align-items: center; + overflow: hidden; + transition: all .2s ease-in-out; +} + +button.dt_navbar-sidebar-toggle .lines .lines-1, +button.dt_navbar-sidebar-toggle .lines .lines-2, +button.dt_navbar-sidebar-toggle .lines .lines-3 { + height: 2px; + overflow: hidden; + position: relative; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +button.dt_navbar-sidebar-toggle .lines .lines-1 { + width: 20px; + transform: translate3d(4px, 3px, 0); + margin: 0; +} + +button.dt_navbar-sidebar-toggle .lines .lines-2 { + width: 30px; + transform: translate3d(0, 8px, 0); + margin: 0; +} + +button.dt_navbar-sidebar-toggle .lines .lines-3 { + width: 20px; + transform: translate3d(4px, 13px, 0); + margin: 0; +} + +button.dt_navbar-sidebar-toggle .lines .lines-1:after, +button.dt_navbar-sidebar-toggle .lines .lines-1:before, +button.dt_navbar-sidebar-toggle .lines .lines-2:after, +button.dt_navbar-sidebar-toggle .lines .lines-2:before, +button.dt_navbar-sidebar-toggle .lines .lines-3:after, +button.dt_navbar-sidebar-toggle .lines .lines-3:before { + content: ' '; + position: absolute; + height: 2px; + top: 0; + left: 0; + bottom: 0; + right: 0; + background-color: var(--dt-secondary-color); + opacity: 1; + width: 100%; +} + +button.dt_navbar-sidebar-toggle .lines .lines-1:before, +button.dt_navbar-sidebar-toggle .lines .lines-2:before, +button.dt_navbar-sidebar-toggle .lines .lines-3:before { + transform: translate3d(-100%, 0, 0); +} + +button.dt_navbar-sidebar-toggle .lines .lines-1:after, +button.dt_navbar-sidebar-toggle .lines .lines-2:after, +button.dt_navbar-sidebar-toggle .lines .lines-3:after { + transform: translate3d(0, 0, 0); +} + +button.dt_navbar-sidebar-toggle:focus .lines .lines-1::before, +button.dt_navbar-sidebar-toggle:hover .lines .lines-1::before { + transform: translate3d(0, 0, 0); + opacity: 1; + transition: transform .8s cubic-bezier(.215, .61, .355, 1) 460ms, opacity .8s cubic-bezier(.215, .61, .355, 1) 460ms; +} + +button.dt_navbar-sidebar-toggle:focus .lines .lines-1::after, +button.dt_navbar-sidebar-toggle:hover .lines .lines-1::after { + transform: translate3d(36px, 0, 0); + opacity: 0; + transition: transform .6s cubic-bezier(.165, .84, .44, 1) 0s, opacity .6s cubic-bezier(.165, .84, .44, 1) 0s; +} + +button.dt_navbar-sidebar-toggle:focus .lines .lines-2::before, +button.dt_navbar-sidebar-toggle:hover .lines .lines-2::before { + transform: translate3d(0,0,0); + opacity: 1; + transition: transform .8s cubic-bezier(.215, .61, .355, 1) 620ms,opacity .8s cubic-bezier(.215, .61, .355, 1) 620ms +} + +button.dt_navbar-sidebar-toggle:focus .lines .lines-2::after, +button.dt_navbar-sidebar-toggle:hover .lines .lines-2::after { + transform: translate3d(36px,0,0); + opacity: 0; + transition: transform .6s cubic-bezier(.165, .84, .44, 1) 160ms,opacity .6s cubic-bezier(.165, .84, .44, 1) 160ms +} + +button.dt_navbar-sidebar-toggle:focus .lines .lines-3::before, +button.dt_navbar-sidebar-toggle:hover .lines .lines-3::before { + transform: translate3d(0,0,0); + opacity: 1; + transition: transform .8s cubic-bezier(.215, .61, .355, 1) 820ms,opacity .8s cubic-bezier(.215, .61, .355, 1) 820ms +} + +button.dt_navbar-sidebar-toggle:focus .lines .lines-3::after, +button.dt_navbar-sidebar-toggle:hover .lines .lines-3::after { + transform: translate3d(36px,0,0); + opacity: 0; + transition: transform .6s cubic-bezier(.165, .84, .44, 1) 360ms,opacity .6s cubic-bezier(.165, .84, .44, 1) 360ms +} + +/* Admin Bar */ + +@media (min-width: 48.95em) and (max-width: 61.95em) { + body.admin-bar .dt_mobilenav.is--sticky.on { + top: 32px; + } +} + +@media (min-width: 37.563em) and (max-width: 48.875em) { + body.admin-bar .dt_mobilenav.is--sticky.on { + top: 46px; + } +} + +body.admin-bar .dt_navbar-wrapper.is--sticky.on, +body.admin-bar .dt_navbar-sidebar-toggle+.dt_sidebar, +body.admin-bar .dt_mobilenav-mainmenu-content { + top: 46px; +} + +@media (min-width: 62em) { + body.admin-bar .dt_navbar-wrapper.is--sticky.on { + top: 32px; + } +} + +@media (min-width: 48.95em) { + + body.admin-bar .dt_navbar-sidebar-toggle+.dt_sidebar, + body.admin-bar .dt_mobilenav-mainmenu-content { + top: 32px; + } +} + +.dt_sidebar { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 9999999; + overflow: hidden; + display: flex; + justify-content: flex-end; + opacity: 0; + visibility: hidden; + background-color: rgba(0, 0, 0, 0.4); + backdrop-filter: blur(0.75rem); + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-transition: all .3s cubic-bezier(.785, .135, .15, .86); + transition: all .3s cubic-bezier(.785, .135, .15, .86); + transition-duration: 1s; +} + +.sidebar--active .dt_sidebar { + opacity: 1; + visibility: visible; +} + +.dt_sidebar .off--layer { + right: -100%; + left: unset; +} + +.sidebar--active .dt_sidebar .off--layer { + right: 0%; +} + +.dt_sidebar .dt_sidebar-wrapper { + position: relative; + width: 40rem; + height: 100%; + padding: 4rem 3rem; + color: var(--dt-secondary-color); + background: linear-gradient(100.88deg, #f5f5f5 0.6%, #FFF6EB 100%); + transform: translateX(100%); + -webkit-transition: all .3s cubic-bezier(.785, .135, .15, .86); + transition: all .3s cubic-bezier(.785, .135, .15, .86); +} + +.sidebar--active .dt_sidebar .dt_sidebar-wrapper { + transform: translateX(0%); +} + +.dt_sidebar .dt_sidebar-wrapper .dt_sidebar-close { + background-color: var(--dt-main-color); +} + +.dt_sidebar .dt_sidebar-wrapper .dt_sidebar-close:before, +.dt_sidebar .dt_sidebar-wrapper .dt_sidebar-close:after { + background-color: #fff; +} + +.dt_sidebar .dt_sidebar-wrapper .dt_sidebar-content { + position: relative; + top: 15rem; + width: 100%; + height: 100%; + padding: 1.8rem 0; + max-height: 90vh; + overflow-x: hidden; + overflow-y: auto; + opacity: 0; + visibility: hidden; + -webkit-transition: all .3s ease-in .3s; + transition: all .3s ease-in .3s; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} + +.sidebar--active .dt_sidebar-wrapper .dt_sidebar-content { + top: 0; + opacity: 1; + visibility: visible; + -webkit-transition: all 1s ease-out 1.2s; + transition: all 1s ease-out 1.2s; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} + +.dt_sidebar .dt_sidebar-wrapper .dt_sidebar-content .widget+.widget { + margin-top: 3rem; +} + +.dt_sidebar .dt_sidebar-wrapper .dt_sidebar-content .widget .textwidget { + text-align: center; +} + +.dt_sidebar .dt_sidebar-wrapper .dt_sidebar-content .widget .textwidget img { + border-radius: 2rem; +} + +.dt_sidebar .dt_sidebar-wrapper .dt_sidebar-content .widget .textwidget p { + margin-top: 1.6rem; +} + +.dt_sidebar .dt_sidebar-wrapper .dt_sidebar-content .widget .widget-title { + padding-left: 1.5rem; +} + +.dt_sidebar .dt_sidebar-wrapper .dt_sidebar-content .widget .widget-title:before { + content: ""; + width: 0.35rem; + position: absolute; + bottom: 0; + top: 50%; + left: 0; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + height: 66%; + background-color: var(--dt-main-color); +} + +.dt_navbar-info-contact .widget.widget_contact { + padding-left: 0.5rem; +} + +.dt_navbar-info-contact .contact__list i { + width: 4.5rem; + height: 4.5rem; + background: var(--dt-main-color); + color: #fff; + border-radius: 50%; + font-size: 2.2rem; + margin-right: 0.8rem; + position: relative; +} + +.dt_navbar-info-contact .contact__list i:after { + content: ""; + position: absolute; + top: -5px; + left: -5px; + right: -5px; + bottom: -5px; + border: 1px solid var(--dt-main-color); + border-radius: 50%; +} + +.dt_navbar-info-contact .contact__body .title { + font-size: 14px; + font-weight: 600; +} + +.dt_navbar-info-contact .contact__body .description { + font-weight: 800; + font-size: 1.8rem; +} + +/* Header--one */ + +.header--one { + color: var(--dt-secondary-color); +} + +.header--one .dt_header-topbar { + color: #fff; + background-color: var(--dt-secondary-color); + border-bottom: 1px solid rgba(189, 189, 189, 0.35); +} + +.header--one .dt_navbar-list-right>li.dt_navbar-info-contact:last-child { + padding-left: 1rem; + position: relative; +} + +.header--one .dt_navbar-menu { + justify-content: space-between; +} + +.header--one .dt_navbar-nav { + text-align: start; +} + +/* Header--two */ + +.header--two .dt_header-topbar { + border-bottom: 1px solid rgba(189, 189, 189, 0.35); +} + +.header--two .dt_navbar-menu { + justify-content: space-between; +} + +.header--two .dt_mobilenav .site--logo { + position: relative; + height: 100%; +} + +@media only screen and (min-width: 1300px) { + .header--two .dt-container { + max-width: 1776px; + } +} + +@media (max-width: 1199px) { + .header--two .dt-container { + max-width: 100%; + } +} + +.header--two .site--logo:before { + content: ""; + position: absolute; + top: 0; + left: 0; + width: 19%; + height: 100%; + min-height: 9rem; + z-index: -1; + background-color: var(--dt-main-color); + mask-image: url('data:image/svg+xml,'); + mask-position: right; + mask-repeat: no-repeat; +} + +@media only screen and (min-width: 1921px) { + .header--two .site--logo:before { + width: 25%; + height: 100%; + mask-size: 100%; + } +} + +@media (max-width: 1299px) { + .header--two .site--logo:before { + width: 25%; + } +} + +@media (max-width: 1199px) { + .header--two .site--logo:before { + width: 24%; + } +} + +@media (max-width: 991px) { + .header--two .site--logo:before { + width: 180%; + top: -15px; + left: -15px; + bottom: -15px; + height: auto; + min-height: auto; + mask-size: cover; + } +} + +@media (max-width: 767px) { + .header--two .site--logo:before { + width: 170%; + top: -15px; + left: -15px; + } +} + +@media (max-width: 575px) { + .header--two .site--logo:before { + width: 155%; + left: -21px; + } +} + +@media (max-width: 375px) { + .header--two .site--logo:before { + width: 155%; + } +} + +@media (max-width: 300px) { + .header--two .site--logo:before { + width: 160%; + } +} + +/* Header--three */ + +.header--three .dt_header-inner { + background-color: #000; +} + +.header--three .dt_header-inner .dt_mobilenav.on { + background: rgba(0, 0, 0, 0.8); + backdrop-filter: blur(1rem); +} + +.header--three .dt_header-inner .hamburger span { + background-color: #fff; +} + +.header--three .dt_header-inner .dt_navbar-user-item .dt_user_btn, +.header--three .dt_header-inner .dt_navbar-cart-item .dt_navbar-cart-icon, +.header--three .dt_header-inner .dt_navbar-search-item button.dt_navbar-search-toggle { + color: #fff; +} + +@media only screen and (min-width: 992px) { + .header--three .dt_header-inner { + position:absolute; + left: 0; + top: 5rem; + right: 0; + z-index: 1001; + width: 100%; + background-color: transparent; + transition: all 900ms ease; + } + .header--three .dt_header-inner .dt_header-topbar .dt-row > div { + display: flex; + align-items: center; + } + .header--three .dt_header-inner .dt_header-topbar .dt-row > div:first-child { + justify-content: flex-start; + } + .header--three .dt_header-inner .dt_header-topbar .dt-row > div:nth-child(2) { + justify-content: flex-end; + } + .header--three .dt_header-inner .dt_header-topbar .widget--right, + .header--three .dt_header-inner .dt_header-topbar .widget--left { + position: relative; + padding: 0.7rem 2rem; + width: auto; + min-height: 4rem; + } + .header--three .dt_header-inner .dt_header-topbar .widget--left { + margin-left: 6rem; + } + .header--three .dt_header-inner .dt_header-topbar .widget--right { + margin-right: 6rem; + } + .header--three .dt_header-inner .dt_header-topbar .widget--right:before, + .header--three .dt_header-inner .dt_header-topbar .widget--left:before { + position: absolute; + content:''; + left: 0; + top: 0; + right: 0; + bottom: 0; + border-radius: 1.2rem; + transform: skewX(15deg); + background-color: var(--dt-main-color); + background-image: linear-gradient(-90deg, var(--dt-main-color) 0%, rgba(var(--dt-main-rgb), 0.9) 100%); + } + .header--three .dt_header-inner .dt_navbar-wrapper .dt_navbar-info-contact .contact__body .title, + .header--three .dt_header-inner .dt_navbar-wrapper .dt_navbar-user-item .dt_user_btn:not(:hover, :focus), + .header--three .dt_header-inner .dt_navbar-wrapper .dt_navbar-cart-item .dt_navbar-cart-icon:not(:hover, :focus), + .header--three .dt_header-inner .dt_navbar-wrapper > .dt-container .dt-row, + .header--three .dt_header-inner .dt_header-topbar .dt_header-widget .widget.widget_social li a, + .header--three .dt_header-inner .dt_header-topbar .dt_header-widget a, + .header--three .dt_header-inner .dt_header-topbar .dt_header-widget, + .header--three .dt_header-inner .dt_header-topbar .dt_header-widget .contact__list i { + color: #fff; + } + .header--three .dt_header-inner .dt_header-topbar .dt_header-widget .widget.widget_social li a:after { + background-color: var(--dt-secondary-color); + } + .header--three .dt_header-inner .dt_navbar-wrapper > .dt-container .dt-row { + position: relative; + padding: 0 1.6rem; + z-index: 0; + } + .header--three .dt_header-inner .dt_navbar-wrapper:not(.on) > .dt-container .dt-row:before { + position: absolute; + content:''; + left: 0; + top: 0; + right: 0; + bottom: 0; + border-radius: 2rem; + transform: skewX(18deg); + background: rgba(0, 0, 0, 0.50); + border: 2px solid rgba(255, 255, 255, 0.20); + backdrop-filter: blur(1rem); + z-index: -1; + } + .header--three .dt_header-inner .dt_navbar-wrapper.on { + background: rgba(0, 0, 0, 0.8); + backdrop-filter: blur(1rem); + } + .header--three .dt-col-2.dt-my-auto { + -ms-flex: 0 0 17%; + flex: 0 0 17%; + max-width: 17%; + } + .header--three .dt-col-2.dt-my-auto+.dt-col-10 { + -ms-flex: 0 0 83%; + flex: 0 0 83%; + max-width: 83%; + } + .header--three .dt_header-inner .dt_navbar-wrapper .dt_navbar-menu { + justify-content: space-between; + } + .header--three .dt_header-inner .dt_navbar-wrapper button.dt_navbar-sidebar-toggle { + --dt-secondary-color: #fff + } + .header--three .dt_header-inner .dt_navbar-wrapper .dt_navbar-nav .dt_navbar-mainmenu>li { + margin-right: 0.2rem; + } + .header--three + #content .dt_slider { + border-radius: 0 0 4rem 4rem; + } + .header--three + #content .dt_slider .dt_owl_carousel, + .header--three + #content .dt_slider .dt_slider-item, + .header--three + #content .dt_slider .dt_slider-innercell, + .header--three + #content .dt_slider .dt_slider-item>img { + max-height: 91rem; + min-height: 91rem; + } + .header--three + #content .dt_slider .dt_slider-innercell { + padding-top: 18rem; + } +} + +/* Header--four */ + +.header--four .dt_header-inner { + background-color: #fff; +} + +@media only screen and (min-width: 992px) { + .header--four .dt_header-inner { + position: absolute; + left: 0; + top: 5rem; + right: 0; + z-index: 1001; + width: 100%; + background-color: transparent; + transition: all 900ms ease; + } + .header--four .dt_header-inner .dt_header-topbar .dt-row { + position: relative; + margin-left: 4rem; + margin-right: 4rem; + border-radius: 5rem; + background-color: #fff; + } + .header--four .dt_header-inner .dt_header-topbar .dt-row:after, + .header--four .dt_header-inner .dt_header-topbar .dt-row:before { + position: absolute; + content: ''; + z-index: -1; + } + .header--four .dt_header-inner .dt_header-topbar .dt-row:before { + background: url('../images/shape-1.png'); + left: -40px; + bottom: -9px; + width: 80px; + height: 34px; + } + .header--four .dt_header-inner .dt_header-topbar .dt-row:after { + background: url('../images/shape-2.png'); + right: -50px; + bottom: -9px; + width: 80px; + height: 46px; + } + .header--four .dt_header-inner .dt_header-topbar .dt-row > div { + display: flex; + align-items: center; + } + .header--four .dt_header-inner .dt_header-topbar .dt-row > div:first-child { + justify-content: flex-start; + } + .header--four .dt_header-inner .dt_header-topbar .dt-row > div:nth-child(2) { + justify-content: flex-end; + } + .header--four .dt_header-inner .dt_header-topbar .widget--right, + .header--four .dt_header-inner .dt_header-topbar .widget--left { + position: relative; + padding: 0.7rem 2rem; + width: auto; + border-radius: 5rem; + min-height: 4rem; + } + .header--four .dt_header-inner .dt_navbar-wrapper > .dt-container .dt-row { + position: relative; + padding: 0 1.6rem; + border-radius: 5rem; + background-color: #fff; + z-index: 0; + } + .header--four .dt-col-2.dt-my-auto { + -ms-flex: 0 0 17%; + flex: 0 0 17%; + max-width: 17%; + } + .header--four .dt-col-2.dt-my-auto+.dt-col-10 { + -ms-flex: 0 0 83%; + flex: 0 0 83%; + max-width: 83%; + } + .header--four .dt_header-inner .dt_navbar-wrapper .dt_navbar-menu { + justify-content: space-between; + } + .header--four .dt_header-inner .dt_navbar-wrapper .dt_navbar-nav .dt_navbar-mainmenu>li { + margin-right: 0.2rem; + } + .header--four + #content .dt_slider { + border-radius: 0 0 4rem 4rem; + } + .header--four + #content .dt_slider .dt_owl_carousel, + .header--four + #content .dt_slider .dt_slider-item, + .header--four + #content .dt_slider .dt_slider-innercell, + .header--four + #content .dt_slider .dt_slider-item>img { + max-height: 91rem; + min-height: 91rem; + } + .header--four + #content .dt_slider .dt_slider-innercell { + padding-top: 18rem; + } +} + +@media only screen and (min-width: 1200px) { + .header--four .dt_header-inner .dt_header-topbar .dt-row { + margin-left: 0; + margin-right: 0; + border-radius: 0; + background-color: transparent; + } + .header--four .dt_header-inner .dt_header-topbar .dt-row:after, + .header--four .dt_header-inner .dt_header-topbar .dt-row:before { + display: none; + } + .header--four .dt_header-inner .dt_header-topbar .widget--left { + margin-left: 6rem; + background-color: var(--dt-main-color); + border: 4px solid #fff; + } + .header--four .dt_header-inner .dt_header-topbar .widget--right { + margin-right: 6rem; + background-color: #fff; + border: 4px solid #fff; + outline: 1px solid rgba(189, 189, 189, 0.75); + outline-offset: -4px; + } + .header--four .dt_header-inner .dt_header-topbar .widget--right:after, + .header--four .dt_header-inner .dt_header-topbar .widget--right:before, + .header--four .dt_header-inner .dt_header-topbar .widget--left:after, + .header--four .dt_header-inner .dt_header-topbar .widget--left:before { + position: absolute; + content: ''; + z-index: -1; + } + .header--four .dt_header-inner .dt_header-topbar .widget--left:before { + background: url('../images/shape-1.png'); + left: -42px; + bottom: -5px; + width: 80px; + height: 34px; + } + .header--four .dt_header-inner .dt_header-topbar .widget--left:after { + background: url('../images/shape-2.png'); + right: -52px; + bottom: -5px; + width: 80px; + height: 46px; + } + .header--four .dt_header-inner .dt_header-topbar .widget--right:before { + background: url('../images/shape-1.png'); + left: -42px; + bottom: -5px; + width: 80px; + height: 34px; + } + .header--four .dt_header-inner .dt_header-topbar .widget--right:after { + background: url('../images/shape-2.png'); + right: -52px; + bottom: -5px; + width: 80px; + height: 46px; + } + .header--four .dt_header-inner .dt_header-topbar .dt_header-widget .widget--left .widget.widget_social li a, + .header--four .dt_header-inner .dt_header-topbar .dt_header-widget .widget--left a, + .header--four .dt_header-inner .dt_header-topbar .dt_header-widget .widget--left, + .header--four .dt_header-inner .dt_header-topbar .dt_header-widget .widget--left .contact__list i { + color: #fff; + } + .header--four .dt_header-inner .dt_header-topbar .dt_header-widget .widget--left .widget.widget_social li a:after { + background-color: var(--dt-secondary-color); + } +} + +/* Footer */ + +.dt_footer { + padding: 0 0; + position: relative; + z-index: 0; +} + +.dt_footer--one { + color: #ffffff; + overflow: hidden; + background-color: var(--dt-secondary-color); +} + +.dt_footer--one h1, +.dt_footer--one .h1, +.dt_footer--one h2, +.dt_footer--one .h2, +.dt_footer--one h3, +.dt_footer--one .h3, +.dt_footer--one h4, +.dt_footer--one .h4, +.dt_footer--one h5, +.dt_footer--one .h5, +.dt_footer--one h6, +.dt_footer--one .h6 { + color: inherit; +} + +.dt_footer .widget_social li a { + color: #fff; + background: rgba(189, 189, 189, 0.20); + border: 0.1rem solid rgba(189, 189, 189, 0.20); +} + +.dt_footer .widget .wp-block-image a { + display: inline-block; + vertical-align: middle; + font-size: 2.625rem; + font-weight: 500; +} + +.dt_footer .widget .wp-block-image a:not(:hover, :focus) { + text-decoration: none; +} + +/* Footer Top */ + +.dt_footer--one .dt_footer-top { + margin-top: -10rem; +} + +.dt_footer--one .dt_footer-top .widget { + position: relative; +} + +.dt_footer--one .dt_footer-top .widget:before { + position: absolute; + content: ''; + left: 1.5rem; + top: -1rem; + right: 1.5rem; + bottom: -10px; + background: #e7e7e7; + opacity: .3; + -webkit-transform: rotate(2deg); + transform: rotate(2deg); +} + +.dt_footer--one .dt_footer-top .widget .contact__list { + position: relative; + padding: 4rem 4rem 3.2rem; + min-height: 16rem; + color: var(--dt-secondary-color); + background-color: #fff; + box-shadow: 0 0 5rem 0 rgba(0, 0, 0, 0.1); +} + +.dt_footer--one .dt_footer-top .widget .contact__list i { + font-size: 6rem; + margin-right: 2.35rem; + width: 5.2rem; +} + +.dt_footer--one .dt_footer-top .widget .contact__list .title { + font-size: 2.2rem; +} + +.dt_footer--one .dt_footer-top .widget .contact__list .description { + margin-top: 0.8rem; + line-height: 1.4; +} + + +/* Footer CTA */ + +.dt_footer_cta { + position: relative; + z-index: 1; +} + +.dt_footer_cta::after { + position: absolute; + left: 0; + bottom: 0; + content: ""; + background: var(--dt-secondary-color); + width: 100%; + height: 50%; + z-index: -1; +} + +.dt_footer_cta-area { + background: linear-gradient(90deg, rgba(255, 255, 255, 1) 0%, rgba(223, 248, 255, 1) 100%); + padding: 50px 95px; + border-radius: 25px; + border: 2px solid var(--dt-main-color); +} + +@media (max-width: 480px) { + .dt_footer_cta-area { + padding: 30px 30px; + } +} + +.dt_footer_cta-left h5 { + font-size: 2rem; + margin-bottom: 10px; +} + +.dt_footer_cta-left h3 { + font-size: 44px; + line-height: 1.1; +} + +.dt_footer_cta-right { + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: end; + gap: 25px; +} + +.dt_footer_cta-right-tel { + display: flex; + align-items: center; + gap: 20px; +} + +.dt_footer_cta-right-tel-icon i { + position: relative; + z-index: 1; + width: 54px; + height: 54px; + border-radius: 50%; + background: var(--dt-main-color); + font-size: 24px; + display: flex; + align-items: center; + justify-content: center; + color: #fff; +} + +.dt_footer_cta-right-tel-info span { + display: block; + font-weight: 500; +} + +.dt_footer_cta-right-tel-info h6 { + font-size: 20px; + line-height: 28px; +} + +.dt_footer_cta-right-tel-info h6 a { + text-decoration: none; +} + +.dt_footer_cta-right-tel-info h6 a:focus, +.dt_footer_cta-right-tel-info h6 a:hover { + text-decoration: underline; +} + +@media (max-width: 991px) { + .dt_footer_cta-left { + margin-bottom: 10px; + } + + .dt_footer_cta-left h3 { + font-size: 30px; + line-height: 40px; + text-align: center; + } + .dt_footer_cta-right { + justify-content: center; + } +} + + +/* Footer Middle */ + +.dt_footer_middle { + position: relative; + padding-top: 7.5rem; + padding-bottom: 7.5rem; + margin-top: 0; +} + +.dt_footer_middle .widget .widget-title { + color: #fff; + position: relative; + padding-bottom: 1.6rem; + margin-bottom: 2.4rem; +} + +/*.dt_footer_middle .widget .widget-title:before { + content: ""; + width: 3.5rem; + height: 0.4rem; + position: absolute; + bottom: 0; + left: 0; + border-bottom: 0.4rem solid var(--dt-main-color); +}*/ + +.dt_footer_middle .widget .widget-title:before { + position: absolute; + content: ""; + width: 4rem; + background-color: var(--dt-main-color); + height: 0.2rem; + left: 0; + bottom: 0; + border-radius: 0.5rem; +} + +.dt_footer_middle .widget .widget-title:after { + content: ""; + position: absolute; + left: 4.5rem; + bottom: -0.1rem; + width: 0.6rem; + height: 0.3rem; + background-color: var(--dt-main-color); + border-radius: 100%; +} + +.dt_footer_middle .widget+.widget { + margin-top: 3rem; +} + +.dt_footer_middle .widget .contact__list+.contact__list { + margin-top: 2rem; +} + +.dt_footer_middle .widget .contact__list i { + width: 5.4rem; + height: 5.4rem; + font-size: 2.2rem; + border-radius: 50%; + background-color: rgba(189, 189, 189, 0.15); +} + +.dt_footer_middle .widget .contact__list .contact__body .title { + color: inherit; + font-weight: 500; + font-size: 1.6rem; + line-height: 1.45; +} + +.dt_footer_middle .widget .contact__list .contact__body .description { + font-weight: 600; + font-size: 1.8rem; + white-space: normal; + line-height: 1.45; +} + +.dt_footer_middle .widget ol li a, +.dt_footer_middle .widget:not(.widget_text):not(.widget_meta):not(.widget_recent_comments):not(.widget_payment):not(.widget_social):not(.widget_calender):not(.widget_tag_cloud) ul:not(.wp-block-social-links, .wp-block-latest-posts, .product_list_widget) li a { + display: block; + width: 100%; +} + +.dt_footer_middle .widget:not(.widget_text):not(.widget_meta):not(.widget_recent_comments):not(.widget_payment):not(.widget_social):not(.widget_calender):not(.widget_tag_cloud) ul:not(.wp-block-social-links, .wp-block-latest-posts, .product_list_widget) li:not(:last-child) a { + margin-bottom: 1rem; +} + +.dt_footer_middle .widget ol li a:hover, +.dt_footer_middle .widget ol li a:focus, +.dt_footer_middle .widget:not(.widget_text):not(.widget_meta):not(.widget_recent_comments):not(.widget_payment):not(.widget_social):not(.widget_calender):not(.widget_tag_cloud) ul:not(.wp-block-social-links, .wp-block-latest-posts, .product_list_widget) li a:hover, +.dt_footer_middle .widget:not(.widget_text):not(.widget_meta):not(.widget_recent_comments):not(.widget-info):not(.widget_payment):not(.widget_social):not(.widget_calender):not(.widget_tag_cloud) ul:not(.wp-block-social-links, .wp-block-latest-posts, .product_list_widget) li a:focus { + color: inherit; + opacity: 1; +} + +.dt_footer .dt_footer_middle .widget.widget_social:not(.widget_text):not(.widget_meta):not(.widget_recent_comments):not(.widget_payment):not(.widget_calender):not(.widget_tag_cloud) ul:not(.wp-block-social-links, .wp-block-latest-posts, .product_list_widget) li a { + margin: 0; + padding: 0; + width: 4rem; + height: 4rem; +} + +.dt_footer .dt_footer_middle .widget.widget_social:not(.widget_text):not(.widget_meta):not(.widget_recent_comments):not(.widget_payment):not(.widget_calender):not(.widget_tag_cloud) ul:not(.wp-block-social-links, .wp-block-latest-posts, .product_list_widget) li a::before { + display: none; +} + +.dt_footer_middle .wp-block-gallery.has-nested-images figure.wp-block-image img { + min-height: 9.7rem; +} + +.dt_footer .dt_footer_middle .dt_business_hour { + padding: 2rem 3rem 3.3rem; + background-image: linear-gradient(180deg, #0e1422 -4.46%, #212631 100%); + border-radius: 2rem; +} + +.dt_footer .dt_footer_middle .widget_nav_menu .menu { + display: grid; +} + +@media (min-width: 48em) { + .dt_footer .dt_footer_middle .widget_nav_menu .menu { + grid-template-columns: repeat(1, 1fr 1fr); + } +} + +.dt_footer .dt_footer_middle .mc4wp-form .form-group input[type="text"], +.dt_footer .dt_footer_middle .mc4wp-form .form-group input[type="email"] { + background-color: rgba(0, 0, 0, 0.4); + color: #ffffff; +} + +.dt_sidebar, +.dt_footer { + --wp--style--block-gap: 1.6rem; +} + + +/* Footer Copyright */ + +.dt_footer_copyright { + padding: 3.5rem 0; + border-top: 0.1rem solid rgba(189, 189, 189, 0.12); +} + +.dt_footer_copyright .widget li { + display: inline-block; + margin-left: 0.85rem; +} + +.dt_footer_copyright .widget li:first-child { + margin-left: 0; +} + +.dt_footer_copyright .widget li a { + position: relative; + z-index: 0; +} + +.dt_footer_copyright .widget.widget_payment li a { + font-size: 3rem; +} + +.dt_footer_copyright .widget:not(.widget_text):not(.widget_meta):not(.widget_recent_comments):not(.widget_payment):not(.widget_social):not(.widget_calender):not(.widget_tag_cloud) ul:not(.wp-block-social-links, .wp-block-latest-posts, .product_list_widget) li a:hover, +.dt_footer_copyright .widget:not(.widget_text):not(.widget_meta):not(.widget_recent_comments):not(.widget-info):not(.widget_payment):not(.widget_social):not(.widget_calender):not(.widget_tag_cloud) ul:not(.wp-block-social-links, .wp-block-latest-posts, .product_list_widget) li a:focus, +.dt_footer_copyright .widget:not(.widget_text):not(.widget_meta):not(.widget_recent_comments):not(.widget_payment):not(.widget_social):not(.widget_calender):not(.widget_tag_cloud) ul:not(.wp-block-social-links, .wp-block-latest-posts, .product_list_widget) li a { + padding-left: 2rem; +} + +.dt_footer_copyright .widget:not(.widget_text):not(.widget_meta):not(.widget_recent_comments):not(.widget_payment):not(.widget_social):not(.widget_calender):not(.widget_tag_cloud) ul:not(.wp-block-social-links, .wp-block-latest-posts, .product_list_widget) li a:before { + opacity: 0.75; +} + +.dt_footer--one .dt_footer_copyright .widget .wp-block-image a, +.dt_footer--one .dt_footer_copyright .widget li:not(.widget_payment):not(.widget_social) a, +.dt_footer--one .dt_footer_copyright .dt_footer_copyright-text a { + color: inherit; +} + +.dt_footer--one .dt_footer_copyright .dt_footer_copyright-text a:hover, +.dt_footer--one .dt_footer_copyright .dt_footer_copyright-text a:focus { + text-decoration-style: dotted; +} + +@media (min-width: 36em) { + .dt_footer_copyright>.dt-container>.dt-row>* { + margin-top: auto; + margin-bottom: auto; + } +} + +@media (max-width: 35.95em) { + .dt_footer_copyright>.dt-container>.dt-row>*:first-child { + margin-top: 0; + } +} + +/* Up Top */ + +button.dt_uptop { + position: fixed; + right: 3rem; + bottom: 3rem; + height: 4.5rem; + width: 4.5rem; + cursor: pointer; + display: block; + border-radius: 5rem; + padding: 0; + z-index: 10000; + opacity: 1; + visibility: hidden; + transform: translateY(10rem); + border: 0.2rem solid var(--dt-main-color); + transition: 1s ease; +} + +.dt_uptop.active { + opacity: 1; + visibility: visible; + -webkit-transform: translateY(0); + transform: translateY(0); +} + +@media (min-width: 48rem) { + .dt_uptop.active:hover { + transform: translateY(-0.8rem); + box-shadow: 0 0.3rem 1.6rem rgba(0, 0, 0, 0.25); + } +} + +.dt_uptop:before { + position: absolute; + z-index: -1; + content: ''; + top: 100%; + left: 5%; + height: 1rem; + width: 90%; + opacity: 1; + background: radial-gradient(ellipse at center, rgba(0, 0, 0, .25) 0, rgba(0, 0, 0, 0) 80%); +} + +.dt_uptop:after { + position: absolute; + font-family: 'Font Awesome 6 Free'; + content: '\f148'; + text-align: center; + line-height: 4.3rem; + font-size: 1.8rem; + color: var(--dt-main-color); + top: -1px; + left: -1px; + height: 4.5rem; + width: 4.5rem; + cursor: pointer; + display: block; + z-index: 1; + font-weight: 900; + box-shadow: none; + border-radius: 50% !important; + border-radius: 0.5rem; + animation: scroll_top_effect 1s ease infinite alternate; +} + +.dt_uptop svg { + color: var(--dt-main-color); + border-radius: 50%; + background: #fff; +} + +.dt_uptop svg path { + fill: none; + stroke: var(--dt-main-color); + stroke-width: 1rem; + transition: all .2s linear; +} + + +/* Post */ + +.dt_post_item { + position: relative; +} + +.dt_post_item .image { + border-radius: 3rem; + position: relative; + overflow: hidden; +} + +.dt_post_item .image img { + position: relative; + width: 100%; + display: block; + transition: all 500ms ease; +} + +.dt_post_item .image a img { + position: absolute; + left: 0px; + top: 0px; + right: 0px; + bottom: 0px; + transform: translatex(50%) scalex(2); + opacity: 0; + filter: blur(10px); + z-index: 1; +} + +.dt_post_item:focus-within .image a img, +.dt_post_item:hover .image a img { + transform: translatex(0) scalex(1); + opacity: 1; + filter: blur(0); +} + +.dt_post_item:focus-within .image > img, +.dt_post_item:hover .image > img { + transform: translatex(-50%) scalex(2); + opacity: 0; + filter: blur(10px); +} + +.dt_post_item .image + .inner { + border-top: none; + border-radius: 0 0 3rem 3rem; + margin-top: -3rem; + padding-top: 5.2rem; +} + +.dt_post_item .inner { + border-radius: 3rem; + background-color: #fff; + padding: 3.2rem 3rem 2.4rem; + transition: all .2s ease-in-out; + border: 2px solid rgba(189, 189, 189, 0.35); +} + +.dt_post_item:not(.single-post):hover .inner, +.dt_post_item:not(.single-post):focus-within .inner { + border-color: transparent; + box-shadow: 0 1.2rem 6rem 0 rgba(0, 0, 0, 0.1); +} + +.dt_post_item .inner .meta { + position: relative; + padding-bottom: 1.8rem; + margin-bottom: 1.8rem; +} + +.dt_post_item .inner .meta:after { + position: absolute; + content: ''; + left: -30px; + bottom: -6px; + width: 100%; + height: 12px; + background-image: url('../images/blog_arrows.png'); + background-position: right bottom; + opacity: 0.4; +} + +.dt_post_item .meta ul { + display: flex; + align-items: center; + flex-wrap: wrap; + list-style: none; + margin: -0.6rem 0 0 0; + padding: 0; + justify-content: flex-start; +} + +.dt_post_item .meta ul li { + margin-top: 0.6rem; + line-height: 1.2; +} + +.dt_post_item .meta ul li:not(:first-child) { + margin-left: 2.2rem; + text-align: end; +} + +.dt_post_item .meta ul li>div { + position: relative; +} + +.dt_post_item .meta .date { + display: inline-flex; + align-items: baseline; +} + +.dt_post_item .meta i { + font-size: 2rem; + color: var(--dt-main-color); + vertical-align: middle; + margin-right: 0.6rem; +} + +.dt_post_item .meta { + font-size: 1.5rem; + font-weight: 700; + color: var(--dt-secondary-color); +} + +.dt_post_item .meta span, +.dt_post_item .meta a { + display: inline-block; + vertical-align: middle; + color: inherit; +} + +.dt_post_item .meta a { + text-decoration: none; +} + +.dt_post_item .meta a:hover, +.dt_post_item .meta a:focus { + text-decoration: underline; +} + +.dt_post_item .meta .author img { + margin-right: 1.6rem; + width: 5rem; + height: 5rem; + border-radius: 10rem; + object-fit: cover; + border: 0.3rem solid rgba(189, 189, 189, 0.4); +} + +.dt_post_item .image+.inner .meta-up { + position: absolute; + top: 0; + left: 6rem; + margin-bottom: 0; + z-index: 1; +} + +.dt_post_item .image+.inner .meta-up > div { + outline: 5px solid #fff; + transform: translateY(3px); +} + +.dt_post_item .image+.inner .meta-up::before { + position: absolute; + content: ''; + left: -31px; + top: 0px; + width: 57px; + height: 35px; + --mask-image: url('data:image/svg+xml,'); + mask-image: url('data:image/svg+xml,'); + --webkit-size: 100%; + mask-size: 100%; + --mask-position: right top; + mask-position: right top; + --webit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + background-color: #fff; + z-index: -1; +} + +.dt_post_item .image+.inner .meta-up::after { + position: absolute; + content: ''; + right: -31px; + top: 0px; + width: 57px; + height: 35px; + --mask-image: url('data:image/svg+xml,'); + mask-image: url('data:image/svg+xml,'); + --webkit-size: 100%; + mask-size: 100%; + --webit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + background-color: #fff; + z-index: -1; +} + +.dt_post_item .meta-up { + margin-bottom: 1.8rem; +} + +.dt_post_item .meta-up > div { + position: relative; + color: #fff; + font-size: 1.5rem; + font-weight: 700; + background: var(--dt-main-color); + display: inline-block; + padding: 0.7rem 2rem 0.7rem; + line-height: 1.15; + letter-spacing: 0.2rem; + border-radius: 10rem; + z-index: 1; +} + +.dt_post_item .meta-up .date { + font-size: 2.8rem; +} + +.dt_post_item .meta-up .date span { + font-size: 1.5rem; +} + +.dt_post_item .title { + font-size: 2.4rem; + margin-bottom: 1.1rem; + transition: all .2s ease-in-out; +} + +.dt_post_item .more-link { + position: relative; + display: inline-block; + text-decoration: none; + line-height: 1.2; + color: var(--dt-secondary-color); + font-weight: 700; + text-transform: capitalize; +} + +.dt_post_item .more-link:after { + content: "\f178"; + font-family: "Font Awesome 6 Free"; + font-weight: 400; + display: inline-block; + margin-left: 0.8rem; +} + +.dt_post_item .more-link:hover, +.dt_post_item .more-link:focus { + color: var(--dt-main-color); + letter-spacing: 0.05rem; +} + + +/* Post Single */ + +.single-post { + margin-bottom: 6rem; +} + +.single-post .image { + margin-bottom: 3rem; +} + +.single-post .image img { + width: 100%; +} + +.single-post .wp-block-image img, +.single-post .image img { + border-radius: 2rem; +} + +.single-post .inner .title { + font-size: 3.6rem; +} + +.single-post .inner .meta { + margin-top: 2rem; + margin-bottom: 2.5rem; +} + +.single-post .inner .meta ul { + display: flex; + align-items: center; + flex-wrap: wrap; + gap: 20px; + margin: 0; + padding: 0; + list-style: none; +} + +.single-post .inner .meta li { + display: flex; + align-items: center; + font-weight: 600; + font-size: 16px; + color: var(--dt-secondary-color); + gap: 5px; +} + +.single-post .inner .meta li i { + font-size: 2rem; + margin-right: 5px; + color: var(--dt-main-color); +} + +.single-post .inner .meta li a:not(:hover, :focus) { + text-decoration: none; + color: inherit; +} + +.single-post .inner .meta li a:not(:last-child) { + margin-right: 3px; +} + +.single-post .meta_bottom { + margin-bottom: 0; + margin-top: 2.5rem; + display: flex; + align-items: center; + justify-content: space-between; + padding-top: 2.5rem; + padding-bottom: 2.5rem; + border: 0.1rem solid rgba(189, 189, 189, 0.35); + border-left: none; + border-right: none; +} + +.single-post .meta_bottom .title { + font-size: 1.8rem; + display: inline-block; + margin-right: 1.2rem; +} + +.single-post .meta_bottom .tags a { + font-size: 1.5rem; + border-radius: 5px; + margin-bottom: 0.3rem; + padding: 0.8rem 1.6rem; + font-weight: 500; + color: var(--dt-text-color); + display: inline-block; + text-decoration: none; + line-height: 1; + margin-right: 0.5rem; + background: rgba(14, 25, 30, 0.03); + border: 0.1rem solid rgba(189, 189, 189, 0.35); +} + +.single-post .meta_bottom .tags a:hover, +.single-post .meta_bottom .tags a:focus { + border-color: var(--dt-main-color); + background-color: var(--dt-main-color); + color: #fff; +} + +.single-post .meta_bottom .widget_social a { + width: 2rem; + height: auto; + color: var(--dt-text-color); + background-color: transparent; +} + +.single-post .meta_bottom .widget.widget_social li a:after { + display: none; +} + +.wp-block-heading { + margin-bottom: 1rem; +} + +.wp-block-cover .wp-block-cover-is-layout-flow { + text-align: center; +} + +.single-post p { + margin-bottom: 1.6rem; +} + +/* Author Details */ + +.author-details { + padding: 3rem; + background: rgba(var(--dt-main-rgb), 0.03); + border: 1px solid rgba(var(--dt-main-rgb), 0.2); + border-radius: 1rem; +} + +.author-details .media { + width: 100%; + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; +} + +.author-details .media .auth-mata { + -ms-flex-item-align: start; + align-self: flex-start; + -ms-flex-negative: 1; + flex-shrink: 1; + -ms-flex-positive: 0; + flex-grow: 0; + margin-right: 3rem; + margin-top: 0; +} + +.author-details .media .auth-mata img { + border-radius: 50%; + background-color: rgba(255, 255, 255); + box-shadow: 0 0 1rem 0 rgba(0, 0, 0, 0.08); + width: 10rem; + height: 10rem; +} + +.author-details .media .media-body { + flex: 1; +} + +.author-details .media .media-body h5 { + letter-spacing: 0.025rem; + vertical-align: baseline; +} + +.author-details .media .media-body h5 a:not(:hover, :focus) { + text-decoration: none; + color: var(--dt-secondary-color); +} + +.author-details .media .media-body h5+p { + margin-bottom: 0; + margin-top: 0.8rem; +} + +.nextprev-post-wrapper { + margin-top: 6rem; +} + +.nextprev-post { + position: relative; + border: solid 1px rgba(189, 189, 189, 0.35); + border-radius: 10px; + padding: 30px; +} + +.nextprev-post .nextprev-text { + display: block; + margin-bottom: 6px; +} + +.nextprev-post.next { + text-align: end; +} + +.nextprev-post .post-title { + font-size: 18px; + margin: 0; +} + +/* Comment & Form */ + +.comments-area { + margin-top: 6rem; + border-radius: 8px; + padding: 35px 40px 50px; + background: rgba(14, 25, 30, 0.03); + border: 0.1rem solid rgba(189, 189, 189, 0.35); +} + +.single-comments-title, +.comments-title { + margin-bottom: 3rem; + text-align: start; +} + +.comments-title h3 { + font-size: 3.4rem; +} + +.comment-list { + margin: 0 0 6rem; + padding: 0; + list-style: none; +} + +.comments-area li { + list-style: none; +} + +.comments-area .comment-body { + position: relative; + padding: 3rem; + min-height: 12rem; + word-wrap: break-word; + border-radius: 0; + z-index: 0; + margin-bottom: 4rem; +} + +@media (min-width: 48rem) { + .comments-area .comment-body { + padding: 3rem 3rem 3rem 16.5rem; + } +} + +.comments-area .comment-body:before { + content: ""; + position: absolute; + top: 0; + right: 0; + width: 100%; + height: 100%; + max-width: 100%; + z-index: -1; + border-radius: inherit; +} + +@media (min-width: 48rem) { + .comments-area .comment-body:before { + max-width: calc(100% - 120px); + } +} + +.comment-list .comment .comment-body:before { + background: rgba(189, 189, 189, 0.2); + border: 0.1rem solid rgba(189, 189, 189, 0.35); +} + +.comments-area .comment-meta .comment-awaiting-moderation { + display: block; + width: 100%; + clear: both; +} + +.comments-area .comment-meta .comment-author { + font-size: 1.6rem; +} + +.comments-area .comment-meta .comment-author .fn { + font-weight: 700; +} + +.comment-meta .comment-metadata>a, +.comments-area .comment-meta .comment-author a { + text-decoration: none; + color: var(--dt-secondary-color); +} + +.comment-meta .comment-metadata>a:hover, +.comment-meta .comment-metadata>a:focus, +.comments-area .comment-meta .comment-author a:hover, +.comments-area .comment-meta .comment-author a:focus { + color: var(--dt-main-color); +} + +.comments-area .comment-meta .comment-author img { + width: 6rem; + border-radius: 10rem; +} + +@media (min-width: 48rem) { + .comments-area .comment-meta .comment-author img { + position: absolute; + z-index: 0; + left: 0; + top: 0.6rem; + width: 9rem; + border-radius: 10rem; + } +} + +.comments-area .comment-meta .comment-author, +.comment-meta .comment-metadata { + line-height: 1.5; + font-size: 1.8rem; + display: inline-block; +} + +.comment-content { + position: relative; + z-index: 0; + padding: 1.6rem 0; + line-height: 1.5; +} + +.comment-content p { + margin-bottom: 0; +} + +.comment-body .reply a, +.comment-body .edit a { + font-weight: 600; + letter-spacing: 0.03rem; + background: var(--dt-main-color); + color: #fff; + padding: 0.2rem 1.2rem; +} + +.comment-body .reply a:not(:hover, :focus), +.comment-body .edit a:not(:hover, :focus) { + text-decoration: none; +} + +.comment-list .comment .children .comment-body:before { + border: 0.1rem solid rgba(189, 189, 189, 0.35); + background: #fff; +} + +.comment-reply-title { + font-size: 3.4rem; +} + +.comment-form { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; + align-items: center; + gap: 1.2rem; +} + +.comment-form>p>label { + display: block; + font-weight: 600; + margin-bottom: 3px; + color: var(--dt-secondary-color); +} + +.comment-form input[type="checkbox"]+label { + display: inline-block; +} + +.comment-form>p.comment-notes { + flex-basis: 100%; + width: 100%; +} + +.comment-form>p:not(.comment-notes):not(.comment-form-comment):not(.comment-form-cookies-consent):not(.form-submit) { + flex: auto; +} + +@media (max-width: 61.95em) { + + .comment-form>p:nth-child(2n+1):not(.comment-notes):not(.comment-form-comment):not(.comment-form-cookies-consent):not(.form-submit), + .comment-form>p:not(.comment-notes):not(.comment-form-comment):not(.comment-form-cookies-consent):not(.form-submit) { + max-width: 100%; + flex-basis: 100%; + } +} + +.comment-form-comment { + max-width: 100%; + flex-basis: 100%; +} + +.comment-form-cookies-consent, +.form-submit { + width: 100%; +} + +.comment-form-cookies-consent label { + vertical-align: middle; + margin-left: 0.3rem; +} + + +/* Pagination */ + +.woocommerce nav.woocommerce-pagination, +.pagination { + position: relative; + text-align: center; + z-index: 0; + width: 100%; + max-width: fit-content; + display: block; + margin: 0 auto; + margin-top: 4rem; +} + +.pagination h2 { + display: none; +} + +.woocommerce nav.woocommerce-pagination ul { + line-height: 4rem; + border: none; +} + +.woocommerce nav.woocommerce-pagination ul, +.pagination .nav-links { + display: inline-flex; + align-items: center; +} + +.woocommerce nav.woocommerce-pagination ul li { + border: none; +} + +.page-links .post-page-numbers, +.woocommerce nav.woocommerce-pagination ul li .page-numbers, +.pagination .page-numbers:not(.dots) { + border-width: 0.2rem; + border-style: solid; + border-color: transparent; + display: flow-root; + font-size: 1.6rem; + font-weight: 700; + line-height: 5rem; + min-width: 5.6rem; + text-align: center; + padding: 0.2rem 1.2rem; + vertical-align: baseline; + white-space: nowrap; + border-radius: 50%; + text-decoration: none; + color: var(--dt-secondary-color); + border: 0.1rem solid rgba(189, 189, 189, 0.4); + -webkit-transition: all 0.3s ease 0s; + transition: all 0.3s ease 0s; +} + +.woocommerce nav.woocommerce-pagination ul li .page-numbers i, +.pagination .page-numbers:not(.dots) i { + font-size: 1.4rem; +} + +.page-links .post-page-numbers { + display: inline-block; + text-decoration: none; + text-align: center; + border-width: 0.1rem; + border-color: var(--dt-main-color); +} + +.woocommerce nav.woocommerce-pagination ul li .page-numbers:not(.current):hover, +.pagination .page-numbers:not(.dots, .current):hover { + color: var(--dt-main-color); + background-color: transparent; +} + +.page-links .post-page-numbers:hover, +.page-links .post-page-numbers:focus, +.woocommerce nav.woocommerce-pagination ul li .page-numbers.current, +.pagination .page-numbers:not(.dots):hover, +.pagination .page-numbers:not(.dots):focus, +.pagination .nav-links .page-numbers.current { + color: #fff; + background-color: var(--dt-main-color); +} + +.page-links .post-page-numbers:not(:last-child), +.pagination .page-numbers.dots, +.woocommerce nav.woocommerce-pagination ul li:not(:last-child), +.pagination .page-numbers:not(.dots):not(:last-child) { + margin-right: 1rem; +} + + +/* Sidebar */ + +.dt_widget-area .widget { + max-width: 100%; + overflow: hidden; + position: relative; + padding: 2.5rem 3rem 2.5rem; + background-color: rgba(189, 189, 189, 0.2); + border-radius: 2rem; + transition: all .2s ease-in-out; +} + +.dt_widget-area .widget+.widget { + margin-top: 4rem; +} + +.dt_widget-area .widget .widget-title { + padding-bottom: 1.5rem; + margin-bottom: 3rem; + border-bottom: 1px solid rgba(189, 189, 189, 0.35); +} + +.dt_widget-area .widget .widget-title:before { + position: absolute; + content: ""; + left: 0; + right: 0; + bottom: 0; + height: 1px; + width: 70px; + background: var(--dt-main-color); +} + +.dt_widget-area .widget ul:not(.wp-block-social-links) li { + background-color: #fff; + box-shadow: 0 1px 3px 0 rgba(32, 33, 36, 0.08); + text-transform: capitalize; + padding: 13px 14px; + margin-top: 10px; + border-radius: 10px; + line-height: 1.35; +} + +.dt_widget-area .widget ul:not(.wp-block-social-links)>li:first-child { + margin-top: 0; +} + +.dt_widget-area .widget.widget_archive ul li a, +.dt_widget-area .widget.widget_categories ul li a, +.dt_widget-area .widget.widget_nav_menu ul li a { + position: relative; + padding-left: 2.5rem; + font-weight: 500; + display: inline-block; +} + +.dt_widget-area .widget:not(.widget_payment):not(.widget_social) li a:not(:hover, :focus) { + color: var(--dt-secondary-color); +} + +.dt_widget-area .widget.widget_archive ul li a::before, +.dt_widget-area .widget.widget_categories ul li a::before, +.dt_widget-area .widget.widget_nav_menu ul li a::before { + content: "\f061"; + position: absolute; + top: -0.16rem; + left: 0; + font-family: FontAwesome; + font-size: 1.8rem; + font-weight: normal; + color: var(--dt-main-color); + opacity: 0.4; + -webkit-transform: rotate(315deg); + transform: rotate(315deg); +} + +/* Meta */ + +.widget_meta ul li a { + padding-right: 0; + padding-left: 25px !important; +} + +.widget_meta ul li a:before { + left: 0; + font-family: FontAwesome; + color: var(--dt-main-color); +} + +.widget_meta ul li:nth-child(1) a:before { + content: "\f007"; +} + +.widget_meta ul li:nth-child(2) a:before { + content: "\f08b"; +} + +.widget_meta ul li:nth-child(3) a:before { + content: "\f086"; +} + +.widget_meta ul li:nth-child(4) a:before { + content: "\f27a"; +} + +.widget_meta ul li:nth-child(5) a:before { + content: "\f19a"; +} + +.widget_meta li a:hover:before, +.widget_meta li a:focus:before { + -webkit-animation: rightCaret 600ms ease infinite; + animation: rightCaret 600ms ease infinite; +} + +/* Recent Comments */ + +.widget_recent_comments li { + padding: 0; + word-break: break-word; +} + +/* Gallery */ + +.dt_gallery--one .wp-block-gallery figure.wp-block-image, +.dt_gallery--one .wp-block-gallery figure.wp-block-image a { + border-radius: 2rem; +} + +.dt_gallery--one .wp-block-gallery figure.wp-block-image a:before { + font-size: 5.5rem; +} + +.wp-block-gallery figure.wp-block-image { + background-color: var(--dt-secondary-color); +} + +.wp-block-gallery figure.wp-block-image, +.wp-block-gallery figure.wp-block-image a { + position: relative; + overflow: hidden; + border-radius: 1.6rem; + z-index: 0; +} + +.wp-block-gallery figure.wp-block-image, +.wp-block-gallery figure.wp-block-image * { + height: 100%; +} + +.wp-block-gallery figure.wp-block-image a { + display: inline-block; +} + +.wp-block-gallery figure.wp-block-image a:before { + content: "\f065"; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + font-family: 'Font Awesome 6 Free'; + font-weight: 900; + display: flex; + align-items: center; + justify-content: center; + font-size: 2.8rem; + color: #fff; + background-image: -moz-linear-gradient(90deg, #161C2D 0%, rgba(22, 28, 45, 0) 100%); + background-image: -webkit-linear-gradient(90deg, #161C2D 0%, rgba(22, 28, 45, 0) 100%); + background-image: -ms-linear-gradient(90deg, #161C2D 0%, rgba(22, 28, 45, 0) 100%); + transform: scale(1, 0); + transition: transform 500ms ease; + transform-origin: top center; + z-index: 0; +} + +.dt_gallery .wp-block-gallery figure.wp-block-image a:before { + font-size: 5rem; +} + +.wp-block-gallery figure.wp-block-image:hover a:before, +.wp-block-gallery figure.wp-block-image:focus-within a:before { + transform: scale(1, 1); +} + +.wp-block-gallery figure.wp-block-image:hover a img, +.wp-block-gallery figure.wp-block-image:focus-within a img { + opacity: 0.5; + -webkit-transform: scale(1.1); + transform: scale(1.1); +} + +/* Widget Tag */ + +.tagcloud, +.wp-block-tag-cloud { + margin-bottom: -1rem; +} + +.wp-block-tag-cloud a, +.widget_tag_cloud a { + font-size: 1.6rem !important; + display: inline-block; + line-height: 1.5; + padding: 0.6rem 1.6rem; + font-weight: 500; + position: relative; + text-decoration: none; + color: var(--dt-secondary-color); + background-color: #fff; + box-shadow: 0 1px 3px 0 rgba(32, 33, 36, 0.08); + margin-bottom: 1rem; + margin-right: 0.5rem; + border-radius: 8px; +} + +.wp-block-tag-cloud a:hover, +.wp-block-tag-cloud a:focus, +.widget_tag_cloud a:hover, +.widget_tag_cloud a:focus { + color: #fff; + background-color: var(--dt-main-color); + border-color: var(--dt-main-color); +} + +.wp-block-tag-cloud a:not(:hover, :focus), +.dt_footer .widget_calendar table th, +.dt_footer .widget_tag_cloud a:not(:hover, :focus) { + color: inherit; +} + +/* Footer Slug */ + +.dt-footer-slug { + position: relative; + text-align: center; + padding: 0.5rem 0; + text-transform: uppercase; + margin-bottom: 7rem; +} + +.dt-footer-slug h3 { + line-height: 1; + font-weight: 800; + font-size: 11.8rem; +} + +@media (max-width: 1200px) { + .dt-footer-slug h3 { + font-size: 8rem; + } +} + +@media (max-width: 991px) { + .dt-footer-slug h3 { + font-size: 5rem; + } +} + +@media (max-width: 680px) { + .dt-footer-slug h3 { + font-size: 4rem; + } +} + +.dt-footer-slug h3 a { + text-decoration: none; +} + + +/* Full Sidebar >> Widget Calendar */ + +.calendar_wrap, +.wp-block-calendar { + position: relative; + background-color: transparent; + overflow: hidden; + border-radius: 10px; + border-top: 0; +} + +.wp-block-calendar table, +.widget_calendar table { + width: 100%; + background-color: #fff; + border: none; + margin: 0; + caption-side: top; +} + +.wp-block-calendar table caption, +.widget_calendar table caption { + font-weight: 700; + color: #fff; + position: relative; + padding: 1.2rem 1.4rem; + text-align: center; + background-color: var(--dt-main-color); +} + +.wp-block-calendar table th, +.wp-block-calendar table td, +.widget_calendar table th, +.widget_calendar table td { + line-height: 4rem; + padding: 0; + text-align: center; +} + +.wp-block-calendar tbody td#today, +.wp-block-calendar table th, +.widget_calendar table th { + color: #fff; + background: var(--dt-main-color); + font-weight: 700; +} + +.wp-block-calendar table td, +.widget_calendar table td { + font-weight: 600; + position: relative; + border-style: solid; + border-width: 0.1rem; + color: var(--dt-secondary-color); + border-color: rgba(189, 189, 189, 0.35); +} + +.wp-block-calendar table tfoot, +.widget_calendar table tfoot { + background-color: rgba(14, 25, 30, 0.03); +} + +.wp-calendar-nav { + font-weight: 600; + padding: 1.15rem 1.4rem; + background-color: var(--dt-main-color); + display: flex; + align-items: center; + justify-content: space-between; +} + +.wp-calendar-nav a { + display: inline-block; + color: #fff; +} + +.wp-calendar-nav a:not(:hover, :focus) { + text-decoration: none; +} + + +/* Widget Search */ + +.widget_search .search-form { + display: flex; + align-items: center; + justify-content: flex-start; + gap: 1rem; +} + +.widget_search .search-form .search-submit { + flex-shrink: 0; +} + + +/* Service Help Block */ + +.dt_widget-area .widget .feature_single, +.dt_widget-area .widget .service_help_block { + margin: -3rem; + position: relative; + padding: 5rem 1.5rem; + color: #fff; + text-align: center; + z-index: 0; +} + +.dt_widget-area .widget .feature_single:after, +.dt_widget-area .widget .service_help_block:after { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: -1; + background: #000; + opacity: 0.8; +} + +.dt_widget-area .widget .feature_single .bgimage, +.dt_widget-area .widget .service_help_block .bgimage { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + z-index: -1; +} + +.dt_widget-area .widget .feature_single .bgimage img, +.dt_widget-area .widget .service_help_block .bgimage img { + width: 100%; + height: 100%; + object-fit: cover; +} + +.dt_widget-area .widget .service_help_block .icon { + width: 8.6rem; + height: 8.6rem; + line-height: 8.6rem; + border-radius: 50%; + color: var(--dt-main-color); + background: #fff; + margin: 0 auto 3rem; + font-size: 4rem; +} + +.dt_widget-area .widget .service_help_block .icon i, +.dt_widget-area .widget .service_help_block .icon img { + vertical-align: -0.5rem; +} + +.dt_widget-area .widget .service_help_block .title { + color: inherit; +} + +.dt_widget-area .widget .service_help_block .content { + margin-top: 3rem; +} + +.dt_widget-area .widget .service_help_block .content a { + color: #fff; + font-weight: 700; +} + +.dt_widget-area .widget .service_help_block .content a:not(:hover, :focus) { + text-decoration: none; +} + +.dt_widget-area .widget .feature_single .content { + text-align: start; + padding: 5rem 1.8rem 0; +} + +.dt_widget-area .widget .feature_single .content .icon { + font-size: 5.2rem; + margin-bottom: 0.7rem; + color: var(--dt-main-color); +} + +.dt_widget-area .widget .feature_single .content .title { + color: inherit; +} + +.dt_widget-area .widget .feature_single .content .desc { + margin-top: 1.5rem; +} + +.dt_widget-area .widget .feature_single .content .action { + margin-top: 2.4rem; +} + + +/* Page Title */ + +.dt_pagetitle { + position: relative; + overflow: hidden; + padding: 125px 20px 125px; + z-index: 0; +} + +.dt_pagetitle.dt-text-center { + padding: 110px 20px 25px; +} + +@media only screen and (min-width: 992px) { + .header--four + .dt_pagetitle, + .header--three + .dt_pagetitle { + padding-top: 26rem; + } + .header--one + .dt_pagetitle.dt-text-center { + padding-top: 110px; + } +} + +.dt_pagetitle .dt_pagetitle_bigtitle { + position: absolute; + left: 70px; + bottom: 45px; + z-index: 10; + color: transparent; + font-weight: 800; + font-size: 7rem; + line-height: 0.9; + text-transform: uppercase; + -webkit-text-stroke-width: 1px; + -webkit-text-stroke-color: rgba(255, 255, 255, 0.4); +} + +.header--one + .dt_pagetitle .dt_pagetitle_bgimage { + top: 0px; +} + +.dt_pagetitle .dt_pagetitle_bgimage { + position: absolute; + left: 20px; + top: 20px; + right: 20px; + bottom: 0px; + overflow: hidden; + border-radius: 50px; + background-size: cover; + background-attachment: fixed; + background-position: center center; + background-repeat: no-repeat; +} + +.dt_pagetitle .dt_pagetitle_bgimage::before { + position: absolute; + content: ''; + left: 0px; + top: 0px; + right: 0px; + bottom: 0px; + opacity: 0.70; + background-color: #00022A; +} + +@media only screen and (max-width: 1240px) { + .dt_pagetitle .dt_pagetitle_bigtitle { + display: none; + } + .dt_pagetitle .dt_pagetitle_bgimage { + left: 0px; + top: 0px; + right: 0px; + bottom: 0px; + border-radius: 0px; + } +} + +.dt_pagetitle:not(.dt-text-center) .dt_pagetitle_content { + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; + gap: 1.6rem; +} + +.dt_pagetitle.dt-text-right .dt_pagetitle_content { + flex-direction: row-reverse; +} + +.dt_pagetitle .dt_pagetitle_content .title>* { + position: relative; + display: inline-block; + color: #fff; + font-size: 8rem; + line-height: 1; + letter-spacing: 0.02em; + text-transform: capitalize; +} + +@media (max-width: 61.95em) { + .dt_pagetitle .dt_pagetitle_content .title>* { + font-size: 4rem; + line-height: 1.2; + } +} + +@media (max-width: 35.95em) { + .dt_pagetitle:not(.dt-text-center) .dt_pagetitle_content { + justify-content: center; + text-align: center; + } + + .dt_pagetitle:not(.dt-text-center) .dt_pagetitle_content .title { + flex-basis: 100%; + max-width: 100%; + } +} + +.dt_pagetitle .dt_pagetitle_content .dt_pagetitle_breadcrumb { + list-style: none; + margin: 0; + padding: 0; + display: inline-block; +} + +.dt_pagetitle.dt-text-center .dt_pagetitle_content .dt_pagetitle_breadcrumb { + margin: 8rem 0 0 0; +} + +.dt_pagetitle .dt_pagetitle_content .dt_pagetitle_breadcrumb li { + position: relative; + display: inline-block; + font-weight: 500; + color: #fff; + font-size: 18px; + line-height: 1.2; + margin-right: 15px; + padding-right: 15px; +} + +.dt_pagetitle .dt_pagetitle_content .dt_pagetitle_breadcrumb li:last-child { + padding-right: 0; + margin-right: 0; +} + +.dt_pagetitle .dt_pagetitle_content .dt_pagetitle_breadcrumb li:not(:last-child, .active):after { + position: absolute; + right: -6px; + top: 50%; + content: ":"; + color: #fff; + font-size: 90%; + font-weight: 600; + line-height: 1.2; + font-family: 'Font Awesome 6 Free'; + transform: translateY(-50%); +} + +.dt_pagetitle .dt_pagetitle_content .dt_pagetitle_breadcrumb li a:hover, +.dt_pagetitle .dt_pagetitle_content .dt_pagetitle_breadcrumb li a:focus, +.dt_pagetitle .dt_pagetitle_content .dt_pagetitle_breadcrumb li a { + color: #fff; +} + + +/* Slider */ + +.dt_slider { + position: relative; + overflow: hidden; + z-index: 0; +} + +.dt_slider { + width: 100%; + background-color: var(--dt-secondary-color); +} + +.dt_slider .dt_owl_carousel, +.dt_slider .dt_slider-item, +.dt_slider .dt_slider-innercell, +.dt_slider .dt_slider-item>img { + width: 100%; + height: 100%; + min-height: 48rem; + max-height: 48rem; + object-fit: cover; +} + +@media (min-width: 36em) { + + .dt_slider .dt_owl_carousel, + .dt_slider .dt_slider-item, + .dt_slider .dt_slider-innercell, + .dt_slider .dt_slider-item>img { + min-height: 54rem; + max-height: 54rem; + } +} + +@media (min-width: 62em) { + + .dt_slider .dt_owl_carousel, + .dt_slider .dt_slider-item, + .dt_slider .dt_slider-innercell, + .dt_slider .dt_slider-item>img { + max-height: 68rem; + min-height: 68rem; + } +} + +@media (min-width: 87.5em) { + + .dt_slider .dt_owl_carousel, + .dt_slider .dt_slider-item, + .dt_slider .dt_slider-innercell, + .dt_slider .dt_slider-item>img { + max-height: 79rem; + min-height: 79rem; + } +} + +.dt_slider .dt_slider-wrapper { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + overflow: hidden; + z-index: 0; + background-color: rgba(0, 0, 0, 0.6); +} + +.dt_slider .dt_slider-inner { + overflow: hidden; + display: table; + width: 100%; + height: 100%; +} + +.dt_slider .dt_slider-innercell { + display: table-cell; + vertical-align: middle; +} + +.dt_slider .dt_slider-content { + position: relative; + margin-bottom: 7.4rem; + width: 100%; + max-width: 92rem; + z-index: 0; +} + +.dt_slider .dt-text-left .dt_slider-content { + margin-right: auto; +} + +.dt_slider .dt-text-center .dt_slider-content { + margin: auto; + margin-bottom: 5.4rem; +} + +.dt_slider .dt-text-right .dt_slider-content { + margin-left: auto; +} + +.dt_slider .dt_slider-content .title { + font-size: 8rem; + line-height: 1.2; + margin-bottom: 2.2rem; +} + +.dt_slider .dt_slider-content .subtitle { + display: inline-block; + position: relative; + font-weight: 600; + margin-bottom: 3rem; +} + +.dt_slider .dt_slider-content .text { + font-size: 1.8rem; + margin-bottom: 2.6rem; +} + +.dt_slider .dt_slider-content .subtitle, +.dt_slider .dt_slider-content .title, +.dt_slider .dt_slider-content .text { + color: #fff; +} + +.dt_slider .dt-btn-play-one { + color: #fff; +} + +.dt_slider .dt-btn-play-one i { + background-color: #fff; + color: var(--dt-main-color); +} + +.dt_slider .dt-btn-play-one i:after { + background-color: rgba(255, 255, 255, .4); +} + +.dt_btn-group .dt-btn:not(:last-child) { + margin-right: 2.1rem; +} + +@media screen and (min-width: 62em) and (max-width: 87.438em) { + .dt_slider .dt_slider-content .title { + font-size: 6rem; + } +} + +@media (max-width: 61.95em) { + .dt_slider .dt_slider-content .title { + font-size: 3.2rem; + margin-bottom: 1.8rem; + } + .dt_slider .dt_slider-content .text { + margin-bottom: 1.8rem; + } + .dt_slider .dt_slider-content .dt-btn { + margin-bottom: 1rem; + } + .dt_btn-group .dt-btn:not(:last-child) { + margin-right: 1rem; + } +} + +@media (max-width: 35.95em) { + .dt_slider .dt_slider-content .title, + .dt_slider .dt_slider-content .text { + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + overflow: hidden; + text-overflow: ellipsis; + } +} + +.dt_slider .dt-text-right .first { + order: 1; +} + +.dt_slider .last { + text-align: start; +} + +.dt_slider .last .widget { + display: inline-block; + padding: 3rem 3rem 2rem; + background-color: #fff; +} + +@media (max-width: 61.95em) { + .dt_slider .last { + display: none; + } +} + +/* Slider Two */ + +.dt_slider--two .dt_slider-content .subtitle { + position: relative; + font-weight: 500; + font-size: 2.4rem; + display: inline-block; + margin-bottom: 2rem; + padding-left: 6.2rem; + color: #fff; + transition: 1.3s cubic-bezier(0.5, 0.5, 0, 1); + clip-path: polygon(0% 0%, 0% 0%, 0% 100%, 0% 100%); +} + +@media (max-width: 767px) { + .dt_slider--two .dt_slider-content .subtitle { + padding-left: 0; + } +} + +.dt_slider--two .dt_slider-content .subtitle::before { + position: absolute; + width: 35px; + height: 2px; + top: 50%; + transform: translateY(-50%); + left: 0; + content: ""; + background: #fff; + z-index: 3; +} + +@media (max-width: 767px) { + .dt_slider--two .dt_slider-content .subtitle::before { + display: none; + } +} + +.dt_slider--two .dt_slider-content .subtitle::after { + position: absolute; + width: 10px; + height: 10px; + top: 50%; + left: 35px; + border-radius: 50%; + content: ""; + transform: translateY(-50%); + background: #fff; +} + +@media (max-width: 767px) { + .dt_slider--two .dt_slider-content .subtitle::after { + display: none; + } +} + +@media (max-width: 575px) { + .dt_slider--two .dt_slider-content .subtitle { + font-size: 1.8rem; + } +} + +.dt_slider--two .active .dt_slider-content .subtitle { + transition-delay: 700ms; + clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%); +} + +.dt_slider--two .dt_slider-content .title { + font-size: 7.4rem; + transition: all 900ms ease; + transition: 1.3s cubic-bezier(0.5, 0.5, 0, 1); + clip-path: polygon(0% 0%, 0% 0%, 0% 100%, 0% 100%); +} + +.dt_slider--two .active .dt_slider-content .title { + transition-delay: 800ms; + clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%); +} + +.dt_slider--two .dt_slider-content .text { + overflow: hidden; + transition: 1.3s cubic-bezier(0.5, 0.5, 0, 1); + clip-path: polygon(0% 0%, 0% 0%, 0% 100%, 0% 100%); +} + +.dt_slider--two .active .dt_slider-content .text { + transition-delay: 1200ms; + clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%); +} + +.dt_slider--two .dt_slider-content .text p { + margin: 0; +} + +.dt_slider--two .dt_slider-content .dt_btn-group { + transition: 1.3s cubic-bezier(0.5, 0.5, 0, 1); + opacity: 0; + transform: translateY(30px); +} + +.dt_slider--two .active .dt_slider-content .dt_btn-group { + transition-delay: 1400ms; + opacity: 1; + transform: translateY(0); +} + +@media (max-width: 61.95em) { + .dt_slider--two .dt_slider-content .subtitle { + font-size: 1.6rem; + margin-bottom: 1.7rem; + } + .dt_slider--two .dt_slider-content .title { + font-size: 4rem; + } +} + +/* Carousel Nav */ + +.dt_slider .dt_owl_carousel.owl-carousel .owl-nav [class*=owl-] { + width: 5.6rem; + height: 5.6rem; + line-height: 1.2; + overflow: hidden; + font-size: 2rem; + position: absolute; + top: 50%; + border: none; + outline: none; + border-radius: 50%; + transform: translateY(-50%); +} + +.dt_slider .dt_owl_carousel.owl-carousel .owl-nav [class*=owl-] svg { + display: inline-block; + vertical-align: middle; +} + +.dt_slider .dt_owl_carousel.owl-carousel .owl-nav .owl-prev { + left: 3rem; + color: var(--dt-secondary-color); + background-color: #fff; +} + +.dt_slider .dt_owl_carousel.owl-carousel .owl-nav .owl-next { + right: 3rem; + color: #fff; + background-color: var(--dt-main-color); +} + +@media (max-width: 61.95em) { + .dt_slider .dt_owl_carousel.owl-carousel .owl-nav [class*=owl-] { + width: 4.2rem; + height: 4.2rem; + line-height: 4.2rem; + } + .dt_slider .dt_owl_carousel.owl-carousel .owl-nav .owl-prev { + left: 1rem; + } + .dt_slider .dt_owl_carousel.owl-carousel .owl-nav .owl-next { + right: 1rem; + } +} + +.dt_slider .dt_owl_carousel.owl-carousel .owl-nav [class*=owl-]:hover { + opacity: 0.95; +} + +/* Slider Dots */ + +.dt_slider .dt_owl_carousel.owl-carousel .owl-dots { + position: absolute; + bottom: 10rem; + left: 50%; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); +} + +.dt_slider .dt_owl_carousel.owl-carousel .owl-dots .owl-dot span { + border-color: #fff; +} + +.dt_slider .dt_owl_carousel.owl-carousel .owl-dots .owl-dot:hover span, +.dt_slider .dt_owl_carousel.owl-carousel .owl-dots .owl-dot.active span { + background: #fff; +} + +.dt_slider .dt_owl_carousel.owl-carousel.owl-theme .owl-nav button.disabled { + opacity: 0; + visibility: hidden; +} + + +/* Slider Kenburn */ + +.dt_slider--kenburn .dt_slider-item { + overflow: hidden; +} + +.dt_slider--kenburn .owl-item .dt_slider-item>img { + display: block; + width: 100%; + height: 100%; + -webkit-transform-style: flat; + transform-style: flat; + -webkit-transition: all 20s; + transition: all 20s; + transition-timing-function: linear; +} + +.dt_slider--kenburn .owl-item:nth-child(even) .dt_slider-item>img { + -webkit-transform: scale(1.4); + transform: scale(1.4); + -webkit-transform-origin: bottom right; + transform-origin: bottom right; +} + +.dt_slider--kenburn .owl-item:nth-child(odd) .dt_slider-item>img { + -webkit-transform: scale(1.1); + transform: scale(1.1); + -webkit-transform-origin: bottom left; + transform-origin: bottom left; +} + +.dt_slider--kenburn .owl-item.active:nth-child(even) .dt_slider-item>img { + -webkit-transform: scale(1.1); + transform: scale(1.1); +} + +.dt_slider--kenburn .owl-item.active:nth-child(odd) .dt_slider-item>img { + -webkit-transform: scale(1.4); + transform: scale(1.4); +} + +/* Heading */ + +.section-title-two .section-title-right { + position: relative; + margin-bottom: 0; + width: 75%; + margin-left: auto; +} + +@media (max-width: 1199px) { + .section-title-two .section-title-right { + width: 100%; + } +} + +.section-title-two .section-title-right .arrows { + position: absolute; + left: 120px; + top: -70px; + width: 164px; + height: 68px; + animation: icon-bounce 0.8s ease-out infinite; +} + +@media only screen and (max-width: 991px) { + .section-title-two .section-title-right .arrows { + display: none; + } +} + +.section-title-two .section-title-right .content { + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; +} + +@media (max-width: 991px) { + .section-title-two .section-title-right .content { + justify-content: start; + gap: 2.4rem; + } +} + +.section-title-two .section-title-right .content .talk { + position: relative; + font-size: 32px; + display: flex; + align-items: center; + gap: 25px; + font-weight: 700; + color: var(--dt-main-color); +} + +.section-title-two .section-title-right .content .talk img { + height: 32px; +} + +.section-title-two .section-title.dt-text-center .sub-title { + justify-content: center; +} + +.section-title-two .section-title .sub-title { + letter-spacing: 0.1em; + text-transform: uppercase; + font-size: 18px; + font-weight: 700; + color: var(--dt-main-color); + display: flex; + gap:15px; + align-items:center; + margin-bottom: 15px; +} + +.section-title-two .section-title .sub-title > span { + display: inline-block; +} + +.section-title-two .section-title .sub-title .anime-dots { + position: relative; +} + +@keyframes zoom-in-out { + 0% { transform: scale(0); opacity: 0; } + 20% { transform: scale(1.2); opacity: 1; } + 50% { transform: scale(1); opacity: 1; } + 80% { transform: scale(0.8); opacity: 1; } + 100% { transform: scale(1); opacity: 0; } +} + +.section-title-two .section-title .sub-title .anime-dots::before, +.section-title-two .section-title .sub-title .anime-dots::after { + content: ""; +} + +.section-title-two .section-title .sub-title .anime-dots::before, +.section-title-two .section-title .sub-title .anime-dots::after, +.section-title-two .section-title .sub-title .anime-dots span { + position: relative; + width: 10px; + height: 10px; + margin-right: 9px; + border-radius: 50px; + display: inline-block; + animation: zoom-in-out 3s infinite; + opacity: 0; + background-color: var(--dt-main-color); +} + +.section-title-two .section-title .sub-title .anime-dots::before { + animation-delay: 0s; +} + +.section-title-two .section-title .sub-title .anime-dots span { + animation-delay: 0.5s; +} + +.section-title-two .section-title .sub-title .anime-dots::after { + animation-delay: 1s; + margin-right: 0; +} + +.section-title-two .section-title .title { + font-weight: 800; + font-size: 60px; + line-height: 1.16; + margin-bottom: 0; +} + +.section-title-two .section-title.text-white .title { + color: inherit; +} + +.section-title-two .section-title .title i { + position: relative; + color: var(--dt-text-color); +} + +.section-title-two .section-title .title span { + position: relative; + color: var(--dt-main-color); +} + +.section-title-two .section-title .title strong { + position: relative; + font-weight: 700; + color: var(--dt-main-color); +} + +.section-title-two .section-title .desc { + margin-top: 18px; +} + +@media (max-width: 1199px) { + .section-title-two .section-title .title { + font-size: 36px; + } + .section-title-two .section-title .desc { + width: 100%; + } +} + +@media (max-width: 991px) { + .section-title-two .section-title .title { + font-size: 34px; + } + .section-title-two .section-title .desc { + width: 80%; + } +} + +@media (max-width: 767px) { + .section-title-two .section-title .title { + font-size: 32px; + } + .section-title-two .section-title .title br { + display: none; + } + .section-title-two .section-title .desc { + width: 100%; + } +} + +/* 404 */ + +.dt_not_found { + width: 100%; + height: 100vh; + overflow: hidden; + background-position: center; + background-size: cover; + background-repeat: no-repeat; +} + +.dt-not-found-content { + text-align: center; + padding-top: 135px; +} + +.dt-not-found-content h2 { + font-weight: 800; + font-size: 42rem; + letter-spacing: -0.02em; + background: linear-gradient(180deg, rgba(255, 255, 255, 0.4) 0%, rgba(255, 255, 255, 0) 85%); + background-clip: text; + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + margin-bottom: 0; + line-height: 1; +} + +@media only screen and (min-width: 576px) and (max-width: 767px), (max-width: 574.98px) { + .dt-not-found-content h2 { + font-size: 22rem; + } +} + +@media (max-width: 574.98px) { + .dt-not-found-content h2 { + font-size: 15rem; + } +} + +.dt-not-found-content h4 { + margin-top: -120px; + font-size: 8rem; + color: #fff; + letter-spacing: -0.03em; + margin-bottom: 40px; +} + +@media only screen and (min-width: 576px) and (max-width: 767px), (max-width: 574.98px) { + .dt-not-found-content h4 { + margin-top: -40px; + font-size: 4rem; + } +} + +.dt-not-found-copyright { + color: #fff; + text-align: center; + padding-top: 150px; + padding-bottom: 30px; +} + + +/* Information */ + +.dt_information, +.dt_information--one .item-inner { + position: relative; + z-index: 0; +} + +.dt_information--one .bg-shape-image { + position: absolute; + left: 0; + top: 0; + right: 0; + bottom: 0; + background-repeat: no-repeat; + z-index: -1; +} + +.dt_information--one .item-inner { + position: relative; + padding: 10px 10px; + border-radius: 30px; + border: 3px solid var(--dt-main-color); + background-color: #fff; + transition: all 0.3s ease 0s; +} + +.dt_information--one .item-inner:focus-within, +.dt_information--one .item-inner:hover { + background-color: var(--dt-secondary-color); +} + +.dt_information--one .item-inner .item-image { + position: relative; + overflow: hidden; + border-radius: 25px; +} + +.dt_information--one .item-inner .item-image img { + min-height: 25rem; + object-fit: cover; +} + +.dt_information--one .item-inner .item-image::before { + position: absolute; + content:''; + left: 0; + bottom: 0; + width: 78px; + height: 76px; + z-index: 1; + -webkit-mask-image: url('data:image/svg+xml,'); + mask-image: url('data:image/svg+xml,'); + --webkit-size: 100%; + mask-size: 100%; + background-color: #ffffff; + transition: all 0.3s ease 0s; +} + +.dt_information--one .item-inner:focus-within .item-image::before, +.dt_information--one .item-inner:hover .item-image::before { + background-color: var(--dt-secondary-color); +} + +.dt_information--one .item-inner .item-image::after { + content: ''; + position: absolute; + height: 110px; + bottom: 0; + left: 0; + right: 0; + background: linear-gradient(to top,var(--dt-main-color) 0%,transparent); + transition: all 0.3s ease 0s; +} + +.dt_information--one .item-inner .item-icon { + position: absolute; + left: 0; + bottom: 0; + width: 50px; + height: 50px; + z-index: 2; + font-size: 2.4rem; + padding: 6px 12px; + border-radius: 50px; + display: inline-block; + text-align: center; + color: #fff; + background-color: var(--dt-main-color); +} + +.dt_information--one .item-inner .item-content { + position: relative; + padding: 25px 10px 20px; +} + +.dt_information--one .item-inner .title { + position: relative; + font-weight: 700; + text-transform: capitalize; +} + +.dt_information--one .item-inner .title a { + position: relative; + text-decoration: none; + color: var(--dt-secondary-color); + transition: all 0.3s ease 0s; +} + +.dt_information--one .item-inner .text { + position: relative; + font-size: 16px; + line-height: 26px; + margin-top: 5px; + color: var(--dt-secondary-color); + transition: all 0.3s ease 0s; +} + +.dt_information--one .item-inner:focus-within .title a, +.dt_information--one .item-inner:hover .title a, +.dt_information--one .item-inner:focus-within .text, +.dt_information--one .item-inner:hover .text { + color: #fff; +} + +@media (min-width: 75em) { + .dt_information--one .dt-col-12:nth-child(2) .item-inner, + .dt_information--one .dt-col-12:nth-child(4) .item-inner { + margin-top: 50px; + } + + .dt_information--one .dt-col-12:nth-child(3) .item-inner { + margin-top: 100px; + } +} + +/* Information Two */ + +.dt_slider + .dt_information--two { + padding-top: 0; + padding-bottom: 0; +} + +.dt_slider + .dt_information--two .particles-js-area { + margin-top: 7.5rem; +} + +.dt_slider + .dt_information--two .dt-row { + position: relative; + margin-top: -7rem; + padding-bottom: 8rem; +} + +.dt_information--two .item-inner { + background-color: #fff; + padding: 28px 23px; + position: relative; + z-index: 1; + border-radius: 20px; + box-shadow: 0px 25px 70px rgba(8, 10, 55, 0.08); + transition: all 0.5s ease-in-out 0s; +} + +.dt_information--two .item-inner:before { + content: ""; + position: absolute; + top: 0; + left: 0; + opacity: 0.04; + width: 100%; + height: 100%; + z-index: -1; + background: url('../images/pattern-9.png') no-repeat 0 0; + background-size: cover; + animation: zoom-fade 5s infinite linear; + transition: all 0.5s ease-in-out 0s; +} + +.dt_information--two .item-inner:focus-within:before, +.dt_information--two .item-inner:hover:before { + opacity: 0.2; +} + +.dt_information--two .item-inner .item-image { + position: absolute; + left: 0; + bottom: 0; + border-radius: 20px; + width: 100%; + height: 100%; + overflow: hidden; + transform: scale(0); + z-index: -2; + background: var(--dt-secondary-color); + transition: all 0.5s ease-in-out 0s; +} + +.dt_information--two .item-inner .item-image::after { + content: ""; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + opacity: 1; + background: var(--dt-secondary-color); +} + +.dt_information--two .item-inner .item-image.is-image::after { + opacity: 0.75; +} + +.dt_information--two .item-inner:focus-within .item-image, +.dt_information--two .item-inner:hover .item-image { + transform: scale(1); +} + +.dt_information--two .item-inner .item-image img { + width: 100%; + height: 100%; + object-fit: cover; +} + +.dt_information--two .item-inner .item-icon { + display: inline-block; + height: 100px; + width: 100px; + line-height: 100px; + font-size: 45px; + text-align: center; + color: var(--dt-main-color); + background-color: #fff; + border-radius: 50%; + position: relative; + z-index: 1; + transition: all 0.35s ease-in-out; + margin-bottom: 25px; + outline: 1px solid rgba(189, 189, 189, 0.4); + box-shadow: 0px 20px 50px -10px rgba(0, 0, 0, 0.2); +} + +.dt_information--two .item-inner:focus-within .item-icon, +.dt_information--two .item-inner:hover .item-icon { + opacity: 1; + color: #fff; + outline-color: transparent; +} + +.dt_information--two .item-inner .item-icon::before { + position: absolute; + left: 0; + top: 0; + content: ""; + height: 100%; + width: 100%; + border-radius: 50%; + z-index: -1; + opacity: 0.1; + background-color: var(--dt-main-color); + transition: all 0.35s ease-in-out; +} + +.dt_information--two .item-inner:focus-within .item-icon::before, +.dt_information--two .item-inner:hover .item-icon::before { + opacity: 1; +} + +.dt_information--two .item-inner .item-icon::after { + position: absolute; + left: 50%; + top: 50%; + content: ""; + height: 16px; + width: 16px; + background-color: #fff; + z-index: 1; + border-radius: 50%; + animation: spinnerRotate 10s linear infinite; + margin-left: -8px; + margin-top: -8px; + border: 2px solid var(--dt-main-color); + transition: all 0.35s ease-in-out; +} + +.dt_information--two .item-inner .title, +.dt_information--two .item-inner .title a, +.dt_information--two .item-inner .text { + transition: all 0.5s ease-in-out; +} + +.dt_information--two .item-inner:focus-within .title, +.dt_information--two .item-inner:hover .title, +.dt_information--two .item-inner:focus-within .title a, +.dt_information--two .item-inner:hover .title a, +.dt_information--two .item-inner:focus-within .text, +.dt_information--two .item-inner:hover .text { + color: #fff; +} + +.dt_information--two .item-inner .text { + margin-top: 15px; + display: -webkit-box; + -webkit-line-clamp: 3; + overflow: hidden; + -webkit-box-orient: vertical; +} + +.dt_information--two .item-inner .dt-more { + display: inline-block; + width: 50px; + height: 50px; + border-radius: 100%; + font-size: 20px; + text-align: center; + line-height: 50px; + color: #fff; + background-color: var(--dt-main-color); + margin-top: 20px; +} + +.dt_information--two .item-inner .dt-more i { + display: inline-block; + transition: all 0.35s ease-in-out; +} + +.dt_information--two .item-inner .dt-more:focus i, +.dt_information--two .item-inner .dt-more:hover i { + transform: rotate(360deg); +} + + +/* About */ + +.dt_about { + position: relative; + z-index: 0; +} + +.dt_about--one { + overflow: hidden; + border-radius: 50px; + background-color: #e6e9f1; + margin: 0 20px; +} + +.dt_about--one .bg-shape-image { + position: absolute; + left: 0; + top: -22rem; + right: 0; + bottom: 0; + background-position: right top; + background-repeat: no-repeat; + z-index: -1; +} + +.dt_about--one .about-content { + position: relative; + padding-left: 140px; +} + +@media only screen and (max-width: 991px) { + .dt_about--one .about-content { + padding-left: 0; + margin-bottom: 30px; + } +} + +.dt_about--one .about-experiance { + position: absolute; + left: 0; + top: 0; + width: 100px; + height: 260px; + border-radius: 50px; + text-align: center; + padding: 40px 10px; + color: #fff; +} + +@media only screen and (max-width: 991px) { + .dt_about--one .about-experiance { + display: none; + } +} + +.dt_about--one .about-experiance strong { + position: relative; + display: block; + font-size: 48px; + line-height: 48px; +} + +.dt_about--one .about-experiance span { + position: relative; + font-size: 16px; + line-height: 28px; + transform: rotate(90deg); + display: block; + width: 135px; + text-align: start; + font-weight: 700; + transform-origin: 20% 72%; +} + +.dt_about--one .about-content .title { + position: relative; + font-size: 24px; + font-weight: 700; + line-height: 30px; + color: var(--dt-main-color); +} + +.dt_about--one .about-content .text { + position: relative; + font-size: 16px; + font-weight: 400; + line-height: 30px; + margin-top: 15px; +} + +.dt_about--one .about-image-outer { + position: relative; +} + +.dt_about--one .about-image-outer .about-image { + position: relative; + overflow: hidden; + border-radius: 40px; +} + +.dt_about--one .about-image-outer .about-image img { + position: relative; + width: 100%; + display: block; +} + +.dt_about--one .about-image-outer .about-image-two { + position: absolute; + right: -80px; + bottom: 0; + overflow: hidden; + border-radius: 26px; +} + +@media only screen and (max-width: 1300px) { + .dt_about--one .about-image-outer .about-image-two { + right: 0; + } +} + +@media only screen and (max-width: 1140px) { + .dt_about--one .about-image-outer .about-image-two { + display: none; + } +} + +.dt_about--one .about-authors { + position: relative; + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 20px; + margin-top: 35px; + margin-left: 30px; +} + +@media only screen and (max-width: 1140px) { + .dt_about--one .about-authors { + margin-left: 0; + } +} + +.dt_about--one .about-authors ul { + position: relative; + display: flex; + margin-left: 20px; + padding-left: 0; +} + +.dt_about--one .about-authors ul li { + position: relative; + width: 54px; + height: 54px; + margin-left: -20px; + border-radius: 50px; + display: inline-block; + border: 3px solid #fff; +} + +.dt_about--one .about-reviews { + position: relative; + font-weight: 800; + font-size: 30px; + line-height: 0.75em; + color: var(--dt-secondary-color); +} + +.dt_about--one .about-reviews span { + position: relative; + font-weight: 600; + font-size: 16px; +} + + +/* Why Choose Us */ + +.gsap-fixed-yes .item-pin { + margin-bottom: 24px; +} + +.gsap-fixed-yes .pin-spacer > * { + transition: unset !important; +} + +.dt_why_choose_us--one { + position: relative; + background-color: var(--dt-secondary-color); + background-size: cover; + background-repeat: no-repeat; + background-position: center center; + z-index: 0; +} + +.dt_why_choose_us--one::after { + content: ""; + position: absolute; + height: 100%; + width: 100%; + inset-block-start: 0; + inset-inline-start: 0; + background: rgba(8, 12, 36, 0.9); + z-index: -1; +} + +.dt_why_choose_us--one .why_choose_us-image-outer .why_choose_us-image { + position: relative; + overflow: hidden; + border-radius: 40px; +} + +.dt_why_choose_us--one .why_choose_us-image-outer .why_choose_us-image img { + width: 100%; + height: 100%; + object-fit: cover; +} + +.dt_why_choose_us--one .why_choose_us-content { + position: relative; + overflow: hidden; + display: flex; + flex-direction: column; + gap: 2.4rem; +} + +@media (min-width: 62em) { + .dt_why_choose_us--one .why_choose_us-content { + margin-left: 2rem; + } +} + +.dt_why_choose_us--one .why_choose_us-content .item-inner { + position: relative; + width: 100%; + display: flex; + align-items: flex-start; + flex-direction: row; + justify-content: flex-start; + gap: 0px; + background-color: #FFFFFFF7; + padding: 25px 25px 25px 30px; + border-radius: 10px; + border: 3px solid #E5EAFF; + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05); + transition: all 0.5s ease 0s; +} + +.dt_why_choose_us--one .why_choose_us-content .item-inner:focus-within, +.dt_why_choose_us--one .why_choose_us-content .item-inner:hover { + border-color: var(--dt-main-color); +} + +.dt_why_choose_us--one .why_choose_us-content .item-inner .item-icon { + flex-shrink: 0; + position: relative; + overflow: hidden; + display: flex; + align-items: center; + justify-content: center; + width: 65px; + height: 65px; + border-radius: 10px; + margin-right: 30px; + font-size: 40px; + color: var(--dt-main-color); + background-color: rgba(189, 189, 189, 0.2); + transition: all 1s; +} + +.dt_why_choose_us--one .why_choose_us-content .item-inner:focus-within .item-icon, +.dt_why_choose_us--one .why_choose_us-content .item-inner:hover .item-icon { + color: #fff; + background-color: var(--dt-main-color); +} + +.dt_why_choose_us--one .why_choose_us-content .item-inner .item-icon svg { + width: 40px; + height: 40px; + fill: currentColor; +} + +.dt_why_choose_us--one .why_choose_us-content .item-inner .item-icon i, +.dt_why_choose_us--one .why_choose_us-content .item-inner .item-icon svg { + transition: all 1s; +} + +.dt_why_choose_us--one .why_choose_us-content .item-inner:hover .item-icon i, +.dt_why_choose_us--one .why_choose_us-content .item-inner:focus-within .item-icon i, +.dt_why_choose_us--one .why_choose_us-content .item-inner:hover .item-icon svg, +.dt_why_choose_us--one .why_choose_us-content .item-inner:focus-within .item-icon svg { + animation: foldAnimation ease 0.5s; +} + +.dt_why_choose_us--one .why_choose_us-content .item-inner .title { + margin-bottom: 12px; +} + + +/* Animations */ + +.rotateAnimator { + position: absolute; + top: 0; + left: auto; + right: 0; + bottom: 0; + width: 10%; + height: 100%; + animation-name: move-by-circle-animation; + animation-duration: 50s; + animation-iteration-count: infinite; +} + +.rotateAnimator-2 { + position: absolute; + top: 0; + left: 0; + right: auto; + bottom: 0; + width: 15%; + height: 100%; + animation-name: move-by-circle-animation; + animation-duration: 60s; + animation-iteration-count: infinite; +} + +.bgGradient { + width: 650px; + height: 650px; + border-radius: 50%; + opacity: 1; + filter: blur(70px); + border: solid 1px #FFF; + position: absolute; + animation-name: blur-animation; + animation-duration: 20s; + animation-iteration-count: infinite; +} + +.purple { + top: 0; + left: -10%; + background-color: #cabaf1; + animation-name: purple-animation; + animation-duration: 20s; + animation-iteration-count: infinite; +} + +.green { + bottom: 0; + right: -10%; + background-color: #9dd7e8; + animation-name: green-animation; + animation-duration: 20s; + animation-iteration-count: infinite; +} + +@keyframes zoom-fade { + 0% { + transform: scale(0.9); + } + + 50% { + transform: scale(1); + } + + 100% { + transform: scale(0.9); + } +} + +@keyframes blur-animation { + 0% { + filter: blur(70px); + } + + 50% { + filter: blur(100px); + } + + 100% { + filter: blur(70px); + } +} + +@keyframes green-animation { + 0% { + bottom: 0; + right: 0% + } + + 50% { + bottom: 15%; + right: 15%; + } + + 100% { + bottom: 0; + right: 0% + } +} + +@keyframes purple-animation { + 0% { + top: 0; + left: 0; + } + + 50% { + top: 15%; + left: 15%; + } + + 100% { + top: 0; + left: 0; + } +} + +@keyframes move-by-circle-animation { + 0% { + transform: rotate(0deg); + width: 10% + } + + 50% { + width: 20% + } + + 100% { + transform: rotate(360deg); + width: 10% + } +} + +@keyframes spinnerRotate { + 0% { + transform: rotate(0deg) translateX(50px); + } + + 100% { + transform: rotate(360deg) translateX(50px); + } +} + + +/* Particles-js */ + +.particles-js-area { + position: absolute; + width: 100%; + height: 100%; + top: 0px; + left: 0px; + overflow: hidden; + z-index: -1; +} + + +/*-------------------------------------------------- +=>> Wide & Boxed Background Color / Gradient +--------------------------------------------------*/ + +@media (min-width: 100em) { + body.background-boxed { + max-width: 1500px; + margin: 0 auto; + position: relative; + box-shadow: 0 0.6rem 4rem rgba(0, 0, 0, 0.15); + } + + body.background-boxed .container-fluid { + max-width: 1470px; + padding-left: 1.5rem; + padding-right: 1.5rem; + } +} + +@media (min-width: 75em) and (max-width: 99.95em) { + body.background-boxed { + max-width: 1200px; + margin: 0 auto; + position: relative; + box-shadow: 0 0.6rem 4rem rgba(0, 0, 0, 0.25); + } +} + +@media (min-width: 62em) and (max-width: 74.95em) { + body.background-boxed { + width: 95%; + margin: 0 auto; + box-shadow: 0 0 1.6rem rgba(0, 0, 0, 0.2); + } +} + +@media (max-width: 61.95em) { + body.background-boxed { + width: 100%; + } +} \ No newline at end of file diff --git a/wp-content/themes/chromax/assets/css/woo-styles.css b/wp-content/themes/chromax/assets/css/woo-styles.css new file mode 100644 index 0000000..5e693a4 --- /dev/null +++ b/wp-content/themes/chromax/assets/css/woo-styles.css @@ -0,0 +1,2587 @@ +.loop-product-wrap { + padding: 0 15px; + position: relative; + overflow: hidden; +} +.woocommerce ul.products { + margin: 0 -15px; +} +.woocommerce ul.products.owl-carousel { + margin: 0; +} +.woocommerce ul.products li.product { + display: inline-block; + margin: 0px; + margin-bottom: 35px; +} +.woocommerce.single .woocommerce-product-gallery { + border: 2px solid #eee; +} +/* Woo Columns */ +.woocommerce ul.products.shop-col-6 li.product { + width: 16.666%; +} +.woocommerce ul.products.shop-col-5 li.product { + width: 20%; +} +.woocommerce ul.products.shop-col-4 li.product { + width: 25%; +} +.woocommerce ul.products.shop-col-3 li.product { + width: 33.3333%; +} +.woocommerce ul.products.shop-col-2 li.product { + width: 46%; +} +.woocommerce ul.products.columns-3 li.product, +.woocommerce-page ul.products.columns-3 li.product { + width: 33.33%; +} +/* Woo Top Meta */ +.woo-top-meta > form { + display: inline-block; +} +.woocommerce-product-gallery figure { + max-width: none; +} +.woocommerce div.product div.images .woocommerce-product-gallery__trigger { + z-index: 1; +} +.mini-cart-items i.icon-bag { + font-size: 16px; +} +.mini-cart-items a.cart-contents:focus, +.mini-cart-items a.cart-contents:hover { + color: inherit; +} +header .cart-contents, .mobile-header .cart-bar-toggle { + position: relative; +} +header .woo-icon-count, +.mobile-header .woo-icon-count { + color: #fff; + border-radius: 50%; + -ms-border-radius: 50%; + -moz-border-radius: 50%; + -o-border-radius: 50%; + -webkit-border-radius: 50%; + font-size: 9px; + height: 14px; + line-height: 14px; + position: absolute; + right: -10px; + text-align: center; + top: -10px; + width: 14px; +} +.cart-dropdown-menu { + left: auto; + margin: 0; + right: 0; + width: 210px; + padding: 20px 15px; +} +.cart-dropdown-menu > li > * { + display: inline-block; +} +.cart-dropdown-menu .product-remove { + background: #f6f6f6; + border-radius: 50%; + -ms-border-radius: 50%; + -moz-border-radius: 50%; + -o-border-radius: 50%; + -webkit-border-radius: 50%; + height: 27px; + line-height: 28px; + position: absolute; + right: 0; + text-align: center; + top: 50%; + transform: translateY(-50%); + -ms-transform: translateY(-50%); + -moz-transform: translateY(-50%); + -o-transform: translateY(-50%); + -webkit-transform: translateY(-50%); + width: 27px; +} +.cart-dropdown-menu .product-name > a { + overflow: hidden!important; + text-overflow: ellipsis; + display: inline-block; + width: 90%!important; + white-space: nowrap; + font-weight: 700; + color: #1c1c25; +} +.cart-dropdown-menu .product-name { + color: #333333; + font-size: 14px; + line-height: 20px; + width: auto; + max-width: 150px; + vertical-align: middle; +} +.cart-dropdown-menu img { + margin: 0 !important; +} +.cart-dropdown-menu > li .product-thumbnail { + margin-right: 10px; + max-width: 60px; +} +.cart-dropdown-menu > li { + line-height: 1; + position: relative; + margin-bottom: 15px; +} +.cart-dropdown-menu > li:last-child { + margin-bottom: 0; +} +.cart-dropdown-menu > li.mini-view-cart > a { + padding: 13px 30px; + margin-top: 5px; + font-size: 14px; + font-weight: 600; + color: #fff !important; + border-radius: 5px; + +} +.cart-dropdown-menu .product-name p { + margin-bottom: 5px; +} +.remove-item-overlay > img { + padding-top: 15px; +} +.mini-cart-dropdown .no-cart-items, +.mini-cart-dropdown .cart-update-pbm { + color: #333333; + line-height: 1; + margin-bottom: 0; + width: 100%; + font-size: 14px; +} +.remove-item-overlay { + left: 0; + position: absolute; + right: 0; + top: 0; + display: none; +} +.woocommerce ul.products.related-slider li.product, +.woocommerce-page ul.products.related-slider li.product { + width: 100%; + margin: 0; + padding: 0; +} +.woo-top-meta .woocommerce-result-count { + margin: 11px 0; +} +.woo-top-meta form { + display: inline-block; + margin-bottom: 25px !important; +} +.woo-top-meta select { + position: relative; + display: inline-block; + margin-left: 7px; + line-height: 24px; + padding: 8px 20px; + height: 50px; + width: 250px; + color: #000; + background-color: transparent; + cursor: pointer; + border: 1px solid #eaeaea; + border-radius: 3px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + -o-border-radius: 3px; + -ms-border-radius: 3px; + background-position: calc( 100% - 15px ) 50%; + background-size: auto; + background-repeat: no-repeat; + -webkit-appearance: none; + -moz-appearance: none; + -ms-appearance: none; + -o-appearance: none; +} +.woocommerce ul.products li.product { + margin-left: 0px; + margin-right: 0px; + padding-left: 15px; + padding-right: 15px; +} +.woocommerce ul.products li.product .loop-product-wrap { + padding: 20px; + border-radius: 10px; + box-shadow: 0px 20px 50px rgba(0, 0, 0, 0.05); +} +.woocommerce ul.products li.product .woocommerce-loop-product__title { + color: #222; + font-size: 16px; + font-weight: 700; + text-transform: capitalize; + line-height: 30px; + padding: 0.25em 0 8px 0; + border-bottom: 1px solid #eaeaea; + margin-bottom: 10px; +} +.woocommerce .product .woocommerce-Price-amount, +.woocommerce .product .price, +.woocommerce ul.products li.product .woocommerce-Price-amount, +.woocommerce ul.products li.product .price { + font-size: 15px; +} +.woocommerce ul.products li.product a.woocommerce-LoopProduct-link.woocommerce-loop-product__link { + margin-bottom: 2px; + display: block; +} +.woocommerce ul.products li.product .loop-product-wrap > .woocommerce-Price-amount, +.woocommerce ul.products li.product .price, +.woocommerce .product .loop-product-wrap > .woocommerce-Price-amount, +.woocommerce .product .price, +.woocommerce ul.products.owl-carousel .loop-product-wrap ins .woocommerce-Price-amount.amount { + color: #171422; + margin-bottom: 0; +} +.woocommerce .product del .amount { + font-size: 16px; +} +.woocommerce-account { + color: #000; +} +.woocommerce-account .woocommerce-MyAccount-navigation > ul { + margin: 0; + padding-left: 0; + border-radius: 4px; + list-style: none; +} +.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link { + border: 1px solid #eaeaea; + margin-bottom: 0; + border-bottom: 0; + font-weight: 600; +} +.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link:last-child { + border: 1px solid #eaeaea; +} +.woocommerce-account .woocommerce-MyAccount-navigation > ul li a { + padding: 18px 30px 19px; + display: block; + color: var(--dt-secondary-color); + line-height: 1; + text-decoration: none; +} +.woocommerce-account .woocommerce-MyAccount-navigation > ul li a:focus, +.woocommerce-account .woocommerce-MyAccount-navigation > ul li a:hover, +.woocommerce-account .woocommerce-MyAccount-navigation > ul li.is-active a { + color: #fff; +} +.woocommerce.single .product .woocommerce-Price-amount, +.woocommerce.single .product .price { + font-size: 41px; + line-height: 51px; + font-weight: 600; + text-align: start; +} +.woocommerce .product del, +.woocommerce ul.products li.product del { + padding-right: 10px; + color: #848484; + opacity: .6; +} +.woocommerce .product ins, +.woocommerce ul.products li.product ins, +.woocommerce.single .product ins { + text-decoration: none; + display: inline-block; + font-weight: 600; +} +.woocommerce .product .onsale, +.woocommerce ul.products li.product .onsale { + left: 15px; + top: 15px; + padding: 0; + color: #fff; + right: auto; + min-width: 45px; + height: 24px; + line-height: 24px; + display: block; + overflow: hidden; + min-height: auto; + font-weight: 500; + font-size: 12px; + letter-spacing: 0.2px; + border-radius: 5px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + -o-border-radius: 5px; + -ms-border-radius: 5px; + z-index: 1; +} +.woocommerce ul.products li.product .onsale { + left: 15px; + top: 22px; +} +.woocommerce ul.products li.product .woo-thumb-wrap { + position: relative; + margin-bottom: 12px; + overflow: hidden; +} +.woocommerce ul.products li.product .woo-thumb-wrap:before { + content: ""; + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + border-radius: 10px 10px 0 0; + background: var(--dt-main-color); + transition: all .3s ease; + -webkit-transition: all .3s ease; + -moz-transition: all .3s ease; + height: 0; + opacity: 0; +} +.woocommerce ul.products li.product:focus-within .woo-thumb-wrap:before, +.woocommerce ul.products li.product:hover .woo-thumb-wrap:before { + border-radius: 0; + transition: all .3s ease; + -webkit-transition: all .3s ease; + -moz-transition: all .3s ease; + opacity: 0.14; + height: 100%; +} +.woocommerce ul.products li.product .added_to_cart { + opacity: 0; + padding: 14px 32px 11px 32px; + font-weight: 700; + font-size: 14px; + text-transform: uppercase; + border-radius: 4px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + -o-border-radius: 4px; + -ms-border-radius: 4px; + position: absolute; + bottom: 100px; + right: 15px; + color: #fff; +} +.woocommerce ul.products li.product .woo-thumb-wrap .added_to_cart:focus, +.woocommerce ul.products li.product .woo-thumb-wrap .added_to_cart:hover { + background: #000; + color: #fff; +} +.woocommerce button.button, +.woocommerce .product .button:not(.add_to_cart_button), +.woocommerce.single .product .button:not(.add_to_cart_button), +.woocommerce #review_form #respond .form-submit input { + font-size: 16px; +} +.woocommerce .woocommerce-ordering { + margin: 0 0px 1em 10px; +} +.woocommerce .woocommerce-error .button:not(.add_to_cart_button), +.woocommerce .woocommerce-info .button:not(.add_to_cart_button), +.woocommerce .woocommerce-message .button:not(.add_to_cart_button), +.woocommerce-page .woocommerce-error .button:not(.add_to_cart_button), +.woocommerce-page .woocommerce-info .button:not(.add_to_cart_button), +.woocommerce-page .woocommerce-message .button:not(.add_to_cart_button) { + color: #fff; + font-weight: 600; +} +/* Single */ +.product_meta > span { + padding-right: 15px; + display: block; +} +.woocommerce .summary .product_meta>span { + display: block; + margin-bottom: 0; + font-size: 14px; + line-height: 36px; + font-weight: 700; +} +.woocommerce.single-product .summary .product_meta>span { + font-size: 16px; + line-height: 40px; +} +.woocommerce.single-product .product_meta>span span, .woocommerce.single-product .product_meta>span a { + font-size: 16px; +} +.woocommerce .summary .product_meta>span span, .woocommerce .summary .product_meta>span a { + font-weight: 400; + color: #797979; + font-size: 16px; +} +.woocommerce.single .product_meta .post-social { + margin-top: 20px; +} +.single-product .product_meta ul.social-icons > li > a { + border: 1px solid #e2e2e2; +} +.single.woocommerce .product .entry-summary .woocommerce-Price-amount, +.single.woocommerce .product .entry-summary .price { + margin-bottom: 20px; +} +.single.woocommerce .product .entry-summary .woocommerce-product-details__short-description { + margin-bottom: 27px; + margin-top: 13px; +} +.woocommerce div.product div.summary .product_meta { + color: #000; +} +.single-product .product_meta { + margin-bottom: 15px; + border-left: 0; + border-right: 0; + padding: 28px 30px; + box-shadow: 0px 20px 50px rgba(0, 0, 0, 0.1); + border-radius: 9px; +} +.woocommerce div.product form.cart { + margin-bottom: 40px; +} +.woocommerce div.product form.cart .variations select { + float: left; + border: 1px solid #eaeaea; + padding: 10px 10px 10px 5px; + max-width: 100%; + min-width: auto; + border-radius: 4px; + -webkit-appearance: auto; + -moz-appearance: auto; +} +.single.woocommerce div.product form.cart .variations select { + background-image: none; +} +.woocommerce div.product form.cart .variations td, +.woocommerce div.product form.cart .variations th { + text-transform: capitalize; + line-height: 53px; + margin: 0; + overflow: visible; + padding: 10px 0.5em 10px; + background-color: transparent; + float: left; +} +.woocommerce select, .page div.product form.cart .variations select { + height: 50px; + line-height: 50px; + border: 1px solid #eaeaea; + color: #797979; + width: 100%; +} +.woocommerce div.product form.cart .variations { + margin-bottom: 1.2em; +} +.single.woocommerce div.product form.cart .variations select, +.woocommerce .woo-top-meta select { + width: auto; +} +.woocommerce .woo-top-meta select { + height: 50px; + line-height: 18px; + border: 1px solid #eaeaea; + border-radius: 4px; + width: auto; +} +.woocommerce .woo-top-meta select.sortby { + width: 160px; + margin-left: 10px; +} +.woocommerce div.product form.cart .variations td select#pa_size { + margin-left: 8px; +} +.woocommerce div.product form.cart table td, .page div.product form.cart table td { + position: relative; +} +.woocommerce .woocommerce-product-gallery ol.flex-control-thumbs { + padding-top: 18px !important; +} +.woocommerce .woocommerce-tabs { + padding-top: 40px; +} +.woocommerce #content div.product .woocommerce-tabs ul.tabs, +.woocommerce div.product .woocommerce-tabs ul.tabs, +.woocommerce-page #content div.product .woocommerce-tabs ul.tabs, +.woocommerce-page div.product .woocommerce-tabs ul.tabs { + padding: 0; + margin: 0; + overflow: visible; +} +.woocommerce div.product .woocommerce-tabs ul.tabs::before { + border: none; +} +.woocommerce #content div.product .woocommerce-tabs ul.tabs li.active a, +.woocommerce div.product .woocommerce-tabs ul.tabs li.active a, +.woocommerce-page #content div.product .woocommerce-tabs ul.tabs li.active a, +.woocommerce-page div.product .woocommerce-tabs ul.tabs li.active a { + color: #fff; +} +.woocommerce #content div.product .woocommerce-tabs ul.tabs li, +.woocommerce div.product .woocommerce-tabs ul.tabs li, +.woocommerce-page #content div.product .woocommerce-tabs ul.tabs li, +.woocommerce-page div.product .woocommerce-tabs ul.tabs li { + text-align: center; + padding-left: 0; + padding-right: 0; + border: 0px; + margin: 0; + background: #f0f0f0; + border-radius: 0; + -webkit-border-radius: 0; + -moz-border-radius: 0; +} +.woocommerce div.product .woocommerce-tabs ul.tabs li { + margin-right: 5px; +} +.woocommerce div.product .woocommerce-tabs ul.tabs li a { + padding: 15px 32px; + font-size: 16px; + font-weight: 400; +} +.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover, +.woocommerce div.product .woocommerce-tabs ul.tabs li a:focus { + +} +.woocommerce #content div.product .woocommerce-tabs ul.tabs li.active:before, +.woocommerce div.product .woocommerce-tabs ul.tabs li.active:before, +.woocommerce-page #content div.product .woocommerce-tabs ul.tabs li.active:before, +.woocommerce-page div.product .woocommerce-tabs ul.tabs li.active:before { + box-shadow: none; + -moz-box-shadow: none; + -webkit-box-shadow: none; + -o-box-shadow: none; + -ms-box-shadow: none; +} +.woocommerce #content div.product .woocommerce-tabs ul.tabs li:after, +.woocommerce #content div.product .woocommerce-tabs ul.tabs li:before, +.woocommerce div.product .woocommerce-tabs ul.tabs li:after, +.woocommerce div.product .woocommerce-tabs ul.tabs li:before, +.woocommerce-page #content div.product .woocommerce-tabs ul.tabs li:after, +.woocommerce-page #content div.product .woocommerce-tabs ul.tabs li:before, +.woocommerce-page div.product .woocommerce-tabs ul.tabs li:after, +.woocommerce-page div.product .woocommerce-tabs ul.tabs li:before { + border: none; + width: 0; + height: 0; +} +.woocommerce div.product .woocommerce-tabs .panel { + margin: 0 0 4em; +} +.woocommerce #content div.product .woocommerce-tabs .panel, +.woocommerce div.product .woocommerce-tabs .panel, +.woocommerce-page #content div.product .woocommerce-tabs .panel, +.woocommerce-page div.product .woocommerce-tabs .panel { + padding: 30px 25px; + border: 1px solid #eaeaea; + margin-top: -1px; +} +.woocommerce-page div.product .woocommerce-tabs .panel > p:last-child { + margin-bottom: 0; +} +.woocommerce-page div.product .woocommerce-tabs .panel table.shop_attributes { + margin-bottom: 0; +} +.woocommerce table.shop_attributes td { + padding: 1px 20px; + text-align: start; + border: none; + border-left: solid 1px #eaeaea; + border-bottom: solid 1px #eaeaea; + border-right: solid 1px #eaeaea; +} +.woocommerce-page div.product .woocommerce-tabs #tab-description h2 { + display: none; +} +.woocommerce-tabs .panel h2 { + margin: 0 0 20px; + font-size: 22px; + line-height: 30px; + color: var(--dt-secondary-color); +} +.woocommerce .related.products h2, .up-sells.upsells.products h2 { + font-size: 26px; + line-height: 28px; + text-align: inherit; + padding-bottom: 20px; + color: var(--dt-secondary-color); +} +.woocommerce-tabs .panel h2, +.woocommerce .related.products h2, +.up-sells.upsells.products h2 { + position: relative; + text-transform: capitalize; +} +section.related.products > h2 { + color: var(--dt-secondary-color); +} +.woocommerce div.product form.cart .button:focus { + outline: unset; +} +.woocommerce ul.products li.product .star-rating { + display: block; + margin: 0 auto; + text-align: center; + margin-bottom: 10px; +} +.woocommerce .star-rating span { + color: #ffb919; +} +.woocommerce .woocommerce-tabs .woocommerce-Reviews-title { + margin-bottom: 30px; + display: none; +} +.woocommerce #reviews #comments ol.commentlist { + padding-left: 0; + border-bottom: 1px solid #eaeaea; + margin-bottom: 40px; + padding-bottom: 0px; +} +.woocommerce #reviews #comments ol.commentlist li img.avatar { + width: 70px; + border: none; + background: unset; +} +.woocommerce #reviews #comments ol.commentlist li .comment-text { + margin: 0 0 0 98px; + padding: 0; + border: none; +} +.woocommerce #reviews #comments ol.commentlist li .comment-text .woocommerce-review__author { + font-size: 16px; + color: var(--dt-secondary-color); +} +.woocommerce #reviews #comments ol.commentlist li .comment-text .woocommerce-review__published-date { + font-size: 13px; + font-weight: 600; +} +.woocommerce .comment-respond .comment-reply-title { + font-size: 22px; + color: var(--dt-secondary-color); + font-weight: 600; +} +.woocommerce .comment-respond form { + margin-top: 15px; +} +.woocommerce #review_form #respond .comment-form p.comment-notes { + margin-bottom: 22px; +} +.woocommerce #review_form .comment-form-author, +.woocommerce #review_form .comment-form-email { + width: 49.8%; + display: inline-block; +} +.woocommerce #review_form .comment-form-author input, +.woocommerce #review_form .comment-form-email input { + width: 100%; +} +.woocommerce #review_form #respond input { + border: none; + padding-left: 0; +} +.woocommerce #review_form #respond input, +.woocommerce #review_form #respond textarea { + padding: 10px; + border-radius: 4px; + border: 1px solid #eaeaea; +} +.woocommerce #review_form #respond textarea { + outline: 0; +} +.woocommerce-notices-wrapper { + margin-bottom: 30px; +} +.woocommerce-notices-wrapper:empty { + display: none; +} +.woocommerce-account .woocommerce-MyAccount-content .woocommerce-notices-wrapper { + margin-bottom: 0; +} +.post-type-archive.post-type-archive-product .woocommerce-notices-wrapper { + margin: 0; +} +.woocommerce-account .woocommerce-MyAccount-content { + color: #797979; +} +.woocommerce #review_form #respond .comment-form-comment { + margin-bottom: 25px; +} + +.woocommerce #review_form #respond p { + margin: 0 0 5px; +} +.woocommerce #review_form #respond .comment-form p.comment-notes { + margin-bottom: 22px; +} +.woocommerce #review_form #respond .comment-form-rating p.stars { + margin-bottom: 0; +} +.woocommerce #review_form #respond .comment-form-comment { + margin-bottom: 10px; +} +.woocommerce #review_form #respond .comment-form-cookies-consent { + margin-bottom: 20px; +} +.woocommerce-MyAccount-content h3, +form.woocommerce-EditAccountForm.edit-account legend, +.woocommerce-account h2 { + text-transform: capitalize; +} +.woocommerce-account .addresses .title .edit:focus, +.woocommerce-account .addresses .title .edit:hover { + color: var(--dt-secondary-color); +} +.woocommerce-account .addresses .title .edit { + line-height: 1; + transition: all 350ms ease 0s; + text-transform: capitalize; + letter-spacing: .2px; + margin-top: 14px; +} +.woocommerce-address-fields button.button, +form.woocommerce-EditAccountForm.edit-account button.button { + margin-top: 10px; +} +.woocommerce #review_form #respond label { + font-weight: 400; + color: #797979; + font-size: 16px; + margin-bottom: 0.8rem; +} +.woocommerce #review_form .comment-form-author, +.woocommerce #review_form .comment-form-email { + margin-bottom: 21px !important; + width: 100%; +} +form.woocommerce-EditAccountForm.edit-account fieldset { + margin-top: 20px; +} +input[type=number]::-webkit-inner-spin-button, +input[type=number]::-webkit-outer-spin-button { + opacity:1; +} +.woocommerce.single .quantity input, +.woocommerce-cart .quantity input { + line-height: 49px; + margin-right: 14px; + width: 100px; + border-radius: 4px; + padding: 1px 2px; +} +.woocommerce.single table.woocommerce-grouped-product-list.group_table .quantity input { + margin-right: 0; +} +.woocommerce.single table.woocommerce-grouped-product-list.group_table { + margin-bottom: 35px; +} +.woocommerce-cart .quantity input { + width: 80px !important; +} +.up-sells.upsells.products{ + margin-bottom: 50px; + margin-top: 50px; +} +.single-product.woocommerce div.product .product_title { + font-size: 28px; + line-height: 35px; + margin-bottom: 15px; + font-weight: bold; + color: #171422; +} +/* gallery */ +.woocommerce-product-gallery .flex-control-thumbs { + position: absolute; + bottom: 10px; + left: 10px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; +} +.woocommerce div.product div.images .flex-control-thumbs li img.flex-active { + -webkit-box-shadow: 0px 5px 21px 1px rgba(72,73,121,0.09); + -moz-box-shadow: 0px 5px 21px 1px rgba(72,73,121,0.09); + box-shadow: 0px 5px 21px 1px rgba(72,73,121,0.09); + border-color: transparent; + border: 1px solid #eaeaea; + background: #fff; +} +.woocommerce div.product div.images .flex-control-thumbs li img.flex-active, +.woocommerce div.product div.images .flex-control-thumbs li img:hover { + opacity: 1; +} +.woocommerce div.product div.images .flex-control-thumbs li { + width: 60px; + overflow: hidden; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + overflow: visible; + margin-bottom: 5px; +} +.woocommerce div.product div.images .flex-control-thumbs li:last-child { + margin-bottom: 0; +} +.woocommerce div.product .woocommerce-product-gallery--columns-4 .flex-control-thumbs li:nth-child(4n+1) { + clear: none; +} +.woocommerce .cart-collaterals .cross-sells ul.products li, .woocommerce-page .cart-collaterals .cross-sells ul.products li { + width: 44%; +} +.woocommerce div.product .woocommerce-variation.single_variation .woocommerce-variation-price { + margin-bottom: 25px; +} + +/* Woocommerce Grouped Products */ +.woocommerce-grouped-product-list .woocommerce-grouped-product-list-item { + margin-bottom: 0; + float: left; + width: 100%; + display: inline-table; +} +.woocommerce-grouped-product-list .woocommerce-grouped-product-list-item:last-child { + margin-bottom: 0; +} +.woocommerce-grouped-product-list .woocommerce-grouped-product-list-item > * { + margin-bottom: 10px; +} +.woocommerce .woocommerce-shipping-totals ul#shipping_method li { + margin-bottom: 0; +} +.woocommerce-grouped-product-list-item__label a { + font-weight: 600; + font-size: 16px; +} +.woocommerce-grouped-product-list-item__price p:last-child{ + margin-bottom: 0; +} +.woocommerce div.product form.cart .group_table td { + padding-left: 10px; +} +.woocommerce div.product form.cart .group_table td { + border: 1px solid rgba(51, 51, 51, 0.1); + margin: 0; +} +.single-product.woocommerce div.product form.cart .group_table td.woocommerce-grouped-product-list-item__label, .single-product.woocommerce div.product form.cart .group_table td.woocommerce-grouped-product-list-item__quantity, .single-product.woocommerce div.product form.cart .group_table td.woocommerce-grouped-product-list-item__price { + border-bottom: none; +} +.single-product.woocommerce div.product form.cart .woocommerce-grouped-product-list .woocommerce-grouped-product-list-item:last-child td { + border-bottom: 1px solid rgba(51, 51, 51, 0.1); +} +.woocommerce div.product form.cart .group_table td.woocommerce-grouped-product-list-item__label, +.woocommerce div.product form.cart .group_table td.woocommerce-grouped-product-list-item__price { + vertical-align: middle; +} +.woocommerce div.product form.cart .group_table td.woocommerce-grouped-product-list-item__price del span.woocommerce-Price-amount.amount { + color: #848484; +} +.woocommerce div.product form.cart .group_table td.woocommerce-grouped-product-list-item__price span.woocommerce-Price-amount.amount { + font-weight: 600; +} +.woocommerce div.product form.cart .group_table td.woocommerce-grouped-product-list-item__price del span.woocommerce-Price-amount.amount { + font-size: 16px; + font-weight: 700; +} +.woocommerce div.product form.cart .group_table td.woocommerce-grouped-product-list-item__label label { + margin-bottom: 0; +} +.woocommerce div.product form.cart .group_table td.woocommerce-grouped-product-list-item__price ins { + text-decoration: unset; +} +.single-product.woocommerce div.product form.cart .group_table td.woocommerce-grouped-product-list-item__label { + padding: 10px; + padding-right: 0; + padding-left: 0; + width: 180px; +} +.woocommerce div.product form.cart .group_table td.woocommerce-grouped-product-list-item__price { + padding-right: 12px; + width: 113px; +} +#add_payment_method table.cart img, .woocommerce-cart table.cart img, .woocommerce-checkout table.cart img { + width: 65px; + background: #f8f8f8; + margin-left: auto; + margin-right: auto; +} +/* Woocommerce Sidebar */ +.woocommerce .widget_price_filter .ui-slider-horizontal { + height: 2px; + margin-bottom: 32px; +} +.woocommerce .widget_price_filter .ui-slider .ui-slider-handle { + border: 0px; + border-radius: 50%; + -webkit-border-radius: 50%; + -moz-border-radius: 50%; + -ms-border-radius: 50%; + -o-border-radius: 50%; + box-shadow: 0 3px 8px rgba(0, 0, 0, 0.08), 0 4px 5px rgba(0, 0, 0, 0.02), 0 12px 10px rgba(0, 0, 0, 0.04), 0 2px 5px rgba(0, 0, 0, 0.05); + -webkit-box-shadow: 0 3px 8px rgba(0, 0, 0, 0.08), 0 4px 5px rgba(0, 0, 0, 0.02), 0 12px 10px rgba(0, 0, 0, 0.04), 0 2px 5px rgba(0, 0, 0, 0.05); + -moz-box-shadow: 0 3px 8px rgba(0, 0, 0, 0.08), 0 4px 5px rgba(0, 0, 0, 0.02), 0 12px 10px rgba(0, 0, 0, 0.04), 0 2px 5px rgba(0, 0, 0, 0.05); + -o-box-shadow: 0 3px 8px rgba(0, 0, 0, 0.08), 0 4px 5px rgba(0, 0, 0, 0.02), 0 12px 10px rgba(0, 0, 0, 0.04), 0 2px 5px rgba(0, 0, 0, 0.05); + width: 15px; + height: 15px; + top: -7px; + background: #333; +} +.widget_price_filter .price_label { + font-size: 15px; + font-weight: 500; + line-height: 34px; +} +.woocommerce ul.cart_list li, .woocommerce ul.product_list_widget li { + padding: 0 0 20px; + margin: 20px 0 0; + min-height: 65px; +} +.woocommerce ul.product_list_widget li { + border-bottom: 1px solid #eee; + position: relative; +} +.woocommerce ul.product_list_widget li:last-child { + border: none; +} +.woocommerce ul.product_list_widget li a { + font-weight: 500; + position: relative; +} +.woocommerce ul.cart_list li img, +.woocommerce ul.product_list_widget li img { + width: 80px; + float: left; + margin-right: 10px; + min-height: 60px; + margin-left: 0; +} +.product_list_widget .amount { + font-weight: 500; +} +.woocommerce #respond input#submit.loading::after, +.woocommerce a.button:not(.add_to_cart_button).loading::after, +.woocommerce button.button.loading::after, +.woocommerce input.button.loading::after { + top: 17px; + right: 12px; +} +/* Woocommerce Cart */ +.woocommerce table.shop_table { + margin-bottom: 0; +} +.woocommerce table.shop_table td { + text-align: start; +} +.woocommerce table.shop_table, +.woocommerce-page table.shop_table, +.woocommerce table.shop_table td, +.woocommerce-page table.shop_table td { + border-color: #eaeaea; + border-radius: 0; + -moz-border-radius: 0; + -webkit-border-radius: 0; + -o-border-radius: 0; + -ms-border-radius: 0; +} +.woocommerce table.shop_table th, +.woocommerce-page table.shop_table th { + color: var(--dt-secondary-color); + padding: 14px 12px; + background-color: #fff; +} +.woocommerce table.shop_table th.product-remove, +.woocommerce-page table.shop_table th.product-remove { + padding: 0; +} +.woocommerce table.shop_table tbody:first-child tr:first-child td { + font-weight: 600; +} +#add_payment_method .cart-collaterals .cart_totals tr td, +#add_payment_method .cart-collaterals .cart_totals tr th, +.woocommerce-cart .cart-collaterals .cart_totals tr td, +.woocommerce-cart .cart-collaterals .cart_totals tr th, +.woocommerce-checkout .cart-collaterals .cart_totals tr td, +.woocommerce-checkout .cart-collaterals .cart_totals tr th { + border-top: 1px solid #ebe9eb; + border-bottom: none; +} +.woocommerce .cart-collaterals .cart_totals .order-total td .woocommerce-Price-amount.amount, +.woocommerce-checkout .order-total strong > .woocommerce-Price-amount.amount { + color: #333; + font-weight: 600; +} +.woocommerce table.shop_table td.product-thumbnail, .woocommerce-page table.shop_table td.product-thumbnail { + padding: 15px; +} +.shop_table.cart td.product-name > a { + color: var(--dt-secondary-color); + text-decoration: none; +} +.shop_table.cart td.product-price .amount, .shop_table.cart td.product-subtotal .amount { + color: var(--dt-main-color); + font-size: 16px; + font-weight: 600; +} + +.woocommerce #content table.cart a.remove, +.woocommerce table.cart a.remove, +.woocommerce-page #content table.cart a.remove, +.woocommerce-page table.cart a.remove { + line-height: 26px; + width: 26px; + height: 26px; + float: right; + color: #fff !important; + font-weight: 300; + font-size: 19px; + background: var(--dt-secondary-color); +} +.woocommerce table.cart a.remove:focus, +.woocommerce table.cart a.remove:hover { + color: #fff!important; +} +.woocommerce #content table.cart a.remove:focus, +.woocommerce #content table.cart a.remove:hover, +.woocommerce table.cart a.remove:focus, +.woocommerce table.cart a.remove:hover, +.woocommerce-page #content table.cart a.remove:focus, +.woocommerce-page #content table.cart a.remove:hover, +.woocommerce-page table.cart a.remove:focus, +.woocommerce-page table.cart a.remove:hover { + background: red !important; +} +.woocommerce #content table.cart td.actions .coupon .input-text, +.woocommerce table.cart td.actions .coupon .input-text, +.woocommerce-page #content table.cart td.actions .coupon .input-text, +.woocommerce-page table.cart td.actions .coupon .input-text { + width: 40%; + -webkit-border-radius: 5px; + -ms-border-radius: 5px; + -moz-border-radius: 5px; + -o-border-radius: 5px; + border-radius: 5px; + border: 1px solid #e0e0e0; + padding: 20px 17px; + text-align: center; + line-height: 18px; + font-size: 14px; +} +.woocommerce #content table.cart td.actions .coupon, +.woocommerce table.cart td.actions .coupon, +.woocommerce-page #content table.cart td.actions .coupon, +.woocommerce-page table.cart td.actions .coupon { + width: 50%; +} +.woocommerce #content table.cart td.actions .coupon .button, +.woocommerce table.cart td.actions .coupon .button, +.woocommerce-page #content table.cart td.actions .coupon .button, +.woocommerce-page table.cart td.actions .coupon .button { + float: left; + font-size: 15px; +} +.woocommerce-cart table.cart td.actions .coupon .input-text { + margin: 0 15px 0 0; + padding: 17.5px 20px 16px; + border-radius: 4px; +} +.woocommerce table.cart td.actions .coupon .input-text::-webkit-input-placeholder { + text-transform: uppercase; + line-height: 18px; + font-size: 14px; +} +.woocommerce table.cart td.actions .coupon .input-text:-moz-placeholder { + text-transform: uppercase; + line-height: 18px; + font-size: 14px; +} +.woocommerce table.cart td.actions .coupon .input-text::-moz-placeholder { + text-transform: uppercase; + line-height: 18px; + font-size: 14px; +} +.woocommerce table.cart td.actions .coupon .input-text:-ms-input-placeholder { + text-transform: uppercase; + line-height: 18px; + font-size: 14px; +} +.woocommerce table.shop_table td.product-remove, +.woocommerce-page table.shop_table td.product-remove { + padding: 0 15px 0 0; +} +.woocommerce table.shop_table td.product-name { + font-weight: 600; +} +.woocommerce table.shop_table td.product-thumbnail { + padding: 0; +} +.woocommerce-shipping-calculator .shipping-calculator-form { + display: block !important; +} +.woocommerce form .form-row, +.woocommerce-page form .form-row { + margin-bottom: 15px; +} +.woocommerce-checkout form .form-row.form-row-first, +.woocommerce-checkout form .form-row.form-row-last { + width: 50%; +} +.woocommerce-checkout form .form-row.form-row-first { + padding-right: 15px; + float: left; +} +.woo-cart-collaterals-container, +.woo-cart-totals-container { + margin-top: 35px; +} +.shipping label { + display: inline; +} +.woocommerce table.shop_table_responsive tr td::before, +.woocommerce-page table.shop_table_responsive tr td::before { + content: none; +} +.woocommerce-page .price_slider_amount .button { + padding: 8px 30px 8px 30px; +} +.woocommerce .cart-collaterals .cart_totals h2, +.woocommerce-page .cart-collaterals .cross-sells h2, +.woocommerce-checkout .organiky-content-wrapper h2, +.woocommerce-checkout .organiky-content-wrapper h3 { + font-size: 24px; + line-height: 34px; + text-transform: capitalize; + margin-bottom: 15px; + color: var(--dt-secondary-color); +} + +/* Woocommerce Checkout */ + +.woocommerce form.checkout_coupon, +.woocommerce form.login, +.woocommerce form.register, +.woocommerce-page form.checkout_coupon, +.woocommerce-page form.login, +.woocommerce-page form.register { + background: #fff; + border-radius: 0; + -moz-border-radius: 0; + -webkit-border-radius: 0; + -o-border-radius: 0; + -ms-border-radius: 0; +} +.zozo-woocommerce-thank-you .order_info { + margin-top: 20px; + padding: 30px; + border: 1px solid #e1e1e1; +} +.woocommerce #order_review table.shop_table thead, +.woocommerce-page #order_review table.shop_table thead, +.woocommerce #order_review .order-total { + background-color: transparent; +} +.woocommerce-checkout-review-order table.shop_table td:last-child { + padding-right: 15px; +} +.woocommerce-checkout-review-order table.shop_table th, +.woocommerce-checkout-review-order .woocommerce table.shop_table td { + padding-left: 15px; +} +.woocommerce-checkout-review-order .shop_table.woocommerce-checkout-review-order-table .cart_item .product-name { + padding-left: 0; + color: inherit; +} +.woocommerce form .form-row label { + line-height: 1.5; + font-weight: 400; + text-transform: capitalize; + margin-bottom: 8px; + color: #797979; +} +.woocommerce.single form.cart>* { + width: auto; +} +form.checkout_coupon.woocommerce-form-coupon .form-row.form-row-first { + width: 100%; +} +form.checkout_coupon.woocommerce-form-coupon .form-row.form-row-last { + display: block; + width: auto; + float: left; +} +.woocommerce.single .woocommerce-variation-add-to-cart>* { + display: inline-block; + width: auto; +} +.woocommerce .woocommerce-form-login .woocommerce-form-login__rememberme { + width: 100%; +} +.woocommerce.single .woocommerce-variation-add-to-cart button.disabled:focus, +.woocommerce.single .woocommerce-variation-add-to-cart button.disabled:hover { + background: #000; +} +.woocommerce.single .woocommerce-variation-add-to-cart button.disabled { + color: #fff; +} +.woocommerce div.product form.cart .variations label { + color: #222; +} +.woocommerce #order_review .shop_table thead tr th, +.woocommerce #order_review .shop_table .cart_item td { + padding: 15px; + background: transparent; + font-weight: 600; + font-size: 16px; + text-align: start; + border-bottom: solid 1px #f1f1f1; +} +.woocommerce table.shop_table td, .woocommerce-page table.shop_table td, .woocommerce table.shop_table th { + border-bottom: none; +} +.woocommerce .shop_table.woocommerce-checkout-review-order-table { + border: none; +} +.woocommerce .shop_table.woocommerce-checkout-review-order-table .order-total th, .woocommerce .shop_table.woocommerce-checkout-review-order-table .order-total td { + border-bottom: solid 1px #eaeaea !important; +} +table.shop_table.woocommerce-checkout-review-order-table .product-total, table.shop_table.woocommerce-checkout-review-order-table .cart-subtotal td, table.shop_table.woocommerce-checkout-review-order-table .order-total td { + border-left: 0; +} +.woocommerce table.shop_table td, .woocommerce-page table.shop_table td, .woocommerce table.shop_table th { + border-bottom: none !important; +} +.woocommerce #order_review .shop_table tfoot tr.order-total td { + color: #fff; +} +#ship-to-different-address .checkbox { + display: inline-block; + font-weight: 500; +} +#ship-to-different-address { + width: 100%; +} +#ship-to-different-address .input-checkbox { + margin-right: 10px; +} +.woocommerce-shipping-calculator button:focus{ + outline: none; +} +.woocommerce table.shop_table td{ + padding: 15px 20px; +} +.woocommerce-cart-form table.shop_table td { + padding: 20px 12px; +} +tr.woocommerce-cart-form__cart-item td { + height: 100px; +} +.woocommerce-cart .toggle-search-form input.form-control { + border: 0; + padding: 0; +} +.select2-drop-active, +.select2-container .select2-choice { + border-color: transparent; + padding: 5px 10px; + box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.08), 0 2px 10px 0 rgba(0, 0, 0, 0.06); + -webkit-box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.08), 0 2px 10px 0 rgba(0, 0, 0, 0.06); + -moz-box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.08), 0 2px 10px 0 rgba(0, 0, 0, 0.06); + -ms-box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.08), 0 2px 10px 0 rgba(0, 0, 0, 0.06); + -o-box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.08), 0 2px 10px 0 rgba(0, 0, 0, 0.06); +} +span.select2-selection.select2-selection--single { + border: 1px solid #e1e1e1; + border-radius: 4px; + height: 40px; + line-height: 40px; +} +.select2-container--default .select2-selection--single .select2-selection__arrow, .select2-container--default .select2-selection--single .select2-selection__rendered { + height: 40px; + line-height: 40px; +} +.woocommerce form .form-row .input-checkbox { + position: relative; +} +.woocommerce-cart .toggle-search-form input.form-control { + border: 0; + padding: 0; +} +.payment_methods label { + font-weight: 600; + font-size: 13px; +} +.woocommerce-checkout form .form-row label.inline { + float: left; + line-height: 40px; + width: 100%; +} +.woocommerce-checkout .inline > input { + float: left; + margin-right: 5px; +} +.woocommerce #content .quantity, +.woocommerce .quantity, +.woocommerce-page #content .quantity, +.woocommerce-page .quantity { + width: 100%; +} +.woocommerce #order_review table.shop_table, +.woocommerce-page #order_review table.shop_table { + margin-right: 15px; + width: 100%; +} +.order-total > th { + line-height: 26px; +} +.woocommerce-cart-form table td, +.woocommerce-cart-form table th{ + border:0; +} +.woocommerce-privacy-policy-text p{ + margin-bottom: 20px; +} +.woocommerce-privacy-policy-text a:focus, +.woocommerce-privacy-policy-text a:hover { + color: var(--dt-secondary-color); +} +.woocommerce #order_review table.shop_table tfoot td, +.woocommerce #order_review table.shop_table tfoot th, +.woocommerce-page #order_review table.shop_table tfoot td, +.woocommerce-page #order_review table.shop_table tfoot th, +.woocommerce #order_review table.shop_table th, +.woocommerce-page #order_review table.shop_table th { + background: transparent; + font-size: 16px; +} +.woocommerce .widget_price_filter .ui-slider .ui-slider-range, +.woocommerce #order_review .shop_table thead tr th.product-name, +.woocommerce #order_review .shop_table thead tr th.product-total { + color: #fff; +} +.single-sidebar-container .woocommerce-checkout-payment { + width: 100%; + float: left; + margin: 30px 0 0; +} +.woocommerce #payment ul.payment_methods li input, +.woocommerce-page #payment ul.payment_methods li input { + display: inline-block; +} +.woocommerce-checkout #payment div.payment_box { + padding: 10px 31px; +} +.payment_box p { + color: #333; +} +.woocommerce #payment, +.woocommerce-page #payment { + background: none; +} +.payment_methods.methods { + border: 1px solid #e3e3e3; +} +.woocommerce #payment div.payment_box:after, +.woocommerce-page #payment div.payment_box:after, +.woocommerce #payment div.payment_box, +.woocommerce-page #payment div.payment_box { + box-shadow: none; + -moz-box-shadow: none; + -webkit-box-shadow: none; + -o-box-shadow: none; + -ms-box-shadow: none; + background: #f7f7f7; + border: none; + margin: 0; +} +#add_payment_method #payment div.payment_box::before, +.woocommerce-checkout #payment div.payment_box::before { + content: none; +} +.woocommerce #order_review .payment_methods.methods { + padding: 0; +} +.woocommerce-checkout #payment .form-row.place-order { + padding: 20px 0 0; +} +.checkout #payment { + margin-bottom: 75px; +} +.woocommerce #order_review .payment_methods.methods > li { + border-bottom: 1px solid #e1e1e1; + padding: 18px 20px; +} +.woocommerce #order_review .payment_methods.methods > li:last-child { + border-bottom: 0px; +} +.woocommerce #payment ul.payment_methods li img, +.woocommerce-page #payment ul.payment_methods li img { + margin-right: 5px; +} +.checkout_coupon .form-row-last { + text-align: end; +} +.woocommerce-checkout #payment .payment_method_paypal .about_paypal { + padding-left: 15px; +} +.woocommerce-billing-fields input { + border: 1px solid #eee; +} +.woocommerce .col2-set .col-1, .woocommerce-page .col2-set .col-1, +.woocommerce .col2-set .col-2, .woocommerce-page .col2-set .col-2 { + max-width: 48%; +} +.woocommerce-checkout-payment { + margin-top: 30px; +} +.woocommerce #payment #place_order, .woocommerce-page #payment #place_order { + float: right; +} +span.woocommerce-input-wrapper, +.woocommerce form .password-input { + width: 100%; +} +.woocommerce form .form-row .input-text, .woocommerce-page form .form-row .input-text { + border: 1px solid #e1e1e1; + padding: 0px 8px; + border-radius: 4px; + height: 45px; + line-height: 45px !important; +} +.woocommerce form .form-row textarea, .woocommerce-page form .form-row textarea { + height: 100px !important; + line-height: 100px !important; + padding: 8px 10px !important; +} +.woocommerce-error, .woocommerce-info, .woocommerce-message { + padding: 1em 2em 1em 3em !important; + margin-bottom: 35px; + background: #f8f8f8; + color: #797979; +} +.woocommerce-account .woocommerce-Message.woocommerce-Message--info:before, +.woocommerce-account.woocommerce-edit-address .woocommerce-MyAccount-content .woocommerce-notices-wrapper .woocommerce-message:before, +.woocommerce-form-coupon-toggle .woocommerce-info:before, +.woocommerce-cart .woocommerce-error::before { + position: absolute; + left: 26px; + top: 50%; + transform: translateY(-50%); + line-height: 1; + margin-top: 1px; +} +.woocommerce-account .woocommerce-Message.woocommerce-Message--info:before { + font-size: 15px; + margin-top: -1px; +} +.woocommerce-account .woocommerce-Message.woocommerce-Message--info, +.woocommerce-account.woocommerce-edit-address .woocommerce-MyAccount-content .woocommerce-notices-wrapper .woocommerce-message, +.woocommerce-form-coupon-toggle .woocommerce-info, +.woocommerce-cart .woocommerce-error { + color: #797979; +} +.woocommerce-account.woocommerce-downloads .woocommerce-Message.woocommerce-Message--info:before, +.woocommerce-form-coupon-toggle .woocommerce-info:before { + font-size: 14px; + margin-top: -1px; +} +.woocommerce-Message a.button:not(.add_to_cart_button), +.woocommerce-message a.button:not(.add_to_cart_button) { + padding: 10px 20px 10px !important; +} +.woocommerce-NoticeGroup.woocommerce-NoticeGroup-checkout { + padding-bottom: 35px; + padding-top: 5px; +} +.woocommerce-checkout-review-order .woocommerce-terms-and-conditions-wrapper{ + width: 100%; +} +.woocommerce-account .woocommerce-Message.woocommerce-Message--info .woocommerce-Button.button { + padding: 0 !important; + font-weight: 700; + text-transform: capitalize; + letter-spacing: 0; + float: right; + line-height: 29px; + font-size: 16px; + background: none !important; +} +.woocommerce-account .woocommerce-Message.woocommerce-Message--info .woocommerce-Button.button:focus, +.woocommerce-account .woocommerce-Message.woocommerce-Message--info .woocommerce-Button.button:hover { + color: var(--dt-secondary-color); +} +.select2-container--default .select2-selection--single .select2-selection__rendered, +.woocommerce-checkout .form-row input, +.woocommerce-shipping-calculator input{ + color: #797979; +} +.woocommerce #order_review .shop_table thead tr th.product-total, +.woocommerce #order_review .shop_table thead tr th.product-name { + font-weight: 600; + color: #333; +} +/* Woocommerce Order Received */ +.zozo-woocommerce-thank-you .order_info { + margin: 20px 0 18px; + padding: 20px 0px; + border: 1px solid #e1e1e1; +} +.zozo-woocommerce-thank-you .thank-you-title, +.zozo-woocommerce-thank-you h2, +.woo-order-customer-info h2, +.zozo-woocommerce-order-details h2 { + font-size: 32px; + line-height: 42px; +} +.zozo-woocommerce-thank-you .thank-you-title { + margin-bottom: 0; +} +.zozo-woocommerce-thank-you h3.thank-you-text { + margin-top: 5px; +} +.woocommerce .order_details li { + border-right: 1px solid #e1e1e1; + text-transform: capitalize; + margin: 0px 20px; +} +.woocommerce .order_details li > strong { + font-size: 16px; + font-weight: 300; +} +.woocommerce .order_details li.total, +.woocommerce-page .order_details li.total { + border-right: none; +} +.woocommerce .order_details li.method, +.woocommerce-page .order_details li.method { + margin-top: 18px; + width: 100%; +} +.woocommerce table.shop_table.order_details, +.woocommerce-page table.shop_table.order_details { + padding: 20px; +} +.woocommerce .zozo-woocommerce-order-details table.shop_table thead { + background: none; + height: auto; +} +.woocommerce .zozo-woocommerce-order-details table.shop_table tfoot td, +.woocommerce .zozo-woocommerce-order-details table.shop_table tfoot th, +.woocommerce-page .zozo-woocommerce-order-details table.shop_table tfoot td, +.woocommerce-page .zozo-woocommerce-order-details table.shop_table tfoot th, +.woocommerce .zozo-woocommerce-order-details table.shop_table thead th { + border: none; + font-weight: 300; + font-size: 16px; +} +#order_review_heading { + margin-top: 40px; +} +.woo-cart-totals-container tr th { + padding-left: 0; + font-size: 13px; + line-height: 26px; +} +.woo-cart-totals-container tr td { + text-align: end; + padding-right: 0; + color: #7f7f7f; +} +.woocommerce-account label.woocommerce-form__label.woocommerce-form__label-for-checkbox.inline { + margin: 12px; +} + +.woocommerce #content input.button, +.woocommerce button.button.alt, +.woocommerce #respond input#submit, +.woocommerce a.button:not(.add_to_cart_button), +.woocommerce button.button, +.woocommerce input.button, +.woocommerce-page #content input.button, +.woocommerce-page #respond input#submit, +.woocommerce-page a.button:not(.add_to_cart_button), +.woocommerce-page button.button, +.woocommerce-page input.button, +.woocommerce input.button.alt, +.woocommerce input.button.disabled, +.woocommerce input.button:disabled[disabled], +.cart_totals .wc-proceed-to-checkout a.checkout-button { + color: #fff; + text-align: center; + line-height: 1; + font-weight: 500; + height: auto; + position: relative; + z-index: 1; + overflow: hidden; + border-radius: 0.5rem; + -webkit-border-radius: 0.5rem; + font-size: 15px; + padding: 14.5px 30px; + text-transform: capitalize; + transition: all .3s; +} +.woocommerce .button:focus, +.woocommerce .button:hover { + color: #fff; + transition: all .3s; +} +.woocommerce .button:focus::before, +.woocommerce .button:hover::before { + -webkit-transform: scaleX(1); + transform: scaleX(1); +} +.woocommerce-notices-wrapper a.button:not(.add_to_cart_button).wc-forward { + font-size: 13px; + float: right; +} +.woocommerce button.button:disabled, +.woocommerce button.button:disabled[disabled] { + color: #fff; + padding: 18px 40px; + font-size: 15px; +} +.woocommerce button.button:disabled:focus, +.woocommerce button.button:disabled[disabled]:hover { + color: #fff; +} +.woocommerce #content input.button:focus, +.woocommerce #content input.button:hover, +.woocommerce a.button:not(.add_to_cart_button):focus, +.woocommerce a.button:not(.add_to_cart_button):hover, +.woocommerce button.button:focus, +.woocommerce button.button:hover, +.woocommerce input.button:focus, +.woocommerce input.button:hover, +.woocommerce-page #content input.button:focus, +.woocommerce-page #content input.button:hover, +.woocommerce-page a.button:not(.add_to_cart_button):focus, +.woocommerce-page a.button:not(.add_to_cart_button):hover, +.woocommerce-page button.button:focus, +.woocommerce-page button.button:hover, +.woocommerce-page input.button:focus, +.woocommerce-page input.button:hover, +.woocommerce input.button.alt:focus, +.woocommerce input.button.alt:hover, +.woocommerce input.button.disabled:focus, +.woocommerce input.button.disabled:hover, +.woocommerce input.button:disabled[disabled]:focus, +.woocommerce input.button:disabled[disabled]:hover, +.cart_totals .wc-proceed-to-checkout a.checkout-button:focus, +.cart_totals .wc-proceed-to-checkout a.checkout-button:hover, +.woocommerce button.button.alt:focus, +.woocommerce button.button.alt:hover { + color: #fff; + transition: all .3s; +} +.woocommerce #respond input#submit:focus, +.woocommerce #respond input#submit:hover, +.woocommerce-page #respond input#submit:focus, +.woocommerce-page #respond input#submit:hover { + color: #fff; +} +.cart_totals .wc-proceed-to-checkout a.checkout-button { + display: block; + margin-bottom: 0; + text-align: -webkit-auto; + float: left; +} +.cart-collaterals { + margin-top: 55px; +} + +/*Woocommerce Widgets*/ +.woocommerce .widget.zozo_social_widget .widget-title { + margin: 0; + padding-bottom: 25px; +} +.woocommerce .widget_product_search input { + background: #eeeeee; + border: none; + font-style: italic; + font-size: 15px; + line-height: 45px; + padding-left: 10px; + color: rgba(0, 0, 0, 0.6); + width: 100%; + padding-right: 112px; +} +.woocommerce .widget_product_search button { + position: absolute; + padding: 1px 12px; + line-height: 45px; + margin-left: 0; + top: 0; + right: 0; +} +.widget_product_search form.woocommerce-product-search { + position: relative; +} +.woocommerce .widget_product_search button:focus { + outline: none; + box-shadow: none; +} +.woocommerce .widget.widget_product_categories li { + padding: 11px 0; + border-bottom: 1px solid #f7f7f7; +} +.woocommerce .widget.widget_product_categories li a { + font-weight: 600; + margin-bottom: 10px; + color: #171422; + padding-left: 28px; + position: relative; +} +.woocommerce .widget.widget_product_categories li a::before { + position: absolute; + left: 0; + top: 50%; + transform: translateY(-50%); + -webkit-transform: translateY(-50%); + -moz-transform: translateY(-50%); + content: "\f022"; + font-family: FontAwesome; + font-weight: 600; +} +.widget.widget_product_tag_cloud .tagcloud:nth-child(2) { + padding-top: 10px; +} +.widget.widget_product_tag_cloud a.tag-cloud-link { + font-size: 13px !important; + color: #171422; + padding: 8px 12px; + display: inline-block; + text-decoration: none; + line-height: normal; + margin-bottom: 6px; + margin-right: 2px; + letter-spacing: 1px; + border: 1px solid #eaeaea; + -webkit-transition: all ease 0.35s; + -moz-transition: all ease 0.35s; + transition: all ease 0.35s; +} +.widget.widget_product_tag_cloud a.tag-cloud-link:focus, +.widget.widget_product_tag_cloud a.tag-cloud-link:hover { + color: #fff; +} +/*Popular Products*/ +.woocommerce ul.product_list_widget li a { + position: relative; + margin-bottom: 5px; + font-weight: 700; + color: #222; +} +.woocommerce ul.product_list_widget li .star-rating { + margin-bottom: 4px; +} +.woocommerce .widget.widget_products ins .woocommerce-Price-amount.amount { + font-weight: 600; + color: #222; + font-size: 16px; +} +/* Woocomerce elementor */ +.elementor-element .woocommerce-page.columns-2 ul.products li.product, .elementor-element .woocommerce.columns-2 ul.products li.product { + width: 50%; +} +.elementor-element .woocommerce-page.columns-3 ul.products li.product, .elementor-element .woocommerce.columns-3 ul.products li.product { + width: 33.33333%; +} +.elementor-element .woocommerce-page.columns-4 ul.products li.product, .elementor-element .woocommerce.columns-4 ul.products li.product { + width: 25%; +} +.elementor-element .woocommerce-page.columns-5 ul.products li.product, .elementor-element .woocommerce.columns-5 ul.products li.product { + width: 20%; +} +.elementor-element .woocommerce-page.columns-6 ul.products li.product, .elementor-element .woocommerce.columns-6 ul.products li.product { + width: 16.6666%; +} +.elementor-element .woocommerce ul.products li.product-category { + margin: 0; + padding: 0 15px; + margin-bottom: 30px; +} +/* category */ +.woocommerce ul.products li.product .woocommerce-loop-category__title { + text-align: center; + padding: 25px 10px; + position: absolute; + left: 30px; + right: 30px; + bottom: 30px; + background: #fff; + opacity: 0.92; + transition: all 0.5s ease 0s; + -webkit-transition: all 0.5s ease 0s; + -ms-transition: all 0.5s ease 0s; + -moz-transition: all 0.5s ease 0s; + -o-transition: all 0.5s ease 0s; + color: #333333; +} +li.product-category.product a h2:before, div.product-category.product a h2:before { + content: ""; + display: block; + border: 1px solid #fff; + position: absolute; + top: -6px; + left: -6px; + right: -6px; + bottom: -6px; +} +.product-category:focus-within img, +.product-category:hover img { + transform: scale(1.2); + transition: all 0.4s ease-in-out 0s; + -moz-transition: all 0.4s ease-in-out 0s; + -webkit-transition: all 0.4s ease-in-out 0s; + -o-transition: all 0.4s ease-in-out 0s; + -ms-transition: all 0.4s ease-in-out 0s; +} +.product-category img { + transform: scale(1); + margin-bottom: 0 !important; + transition: all 0.4s ease-in-out 0s; + -moz-transition: all 0.4s ease-in-out 0s; + -webkit-transition: all 0.4s ease-in-out 0s; + -o-transition: all 0.4s ease-in-out 0s; + -ms-transition: all 0.4s ease-in-out 0s; +} +.product-category { + position: relative; + overflow: hidden; +} +.elementor-element .woocommerce ul.products li.product-category a { + width: 100%; + height: 100%; + display: block; + overflow: hidden; + border-radius: 5px; +} +li.product-category.product img { + border-radius: 5px; +} +.elementor-element .woocommerce ul.products li.product { + margin-bottom: 30px; +} +.elementor-element .loop-product-wrap { + margin: 0; +} +.woocommerce ul.products.owl-carousel .loop-product-wrap { + padding: 0; + margin-bottom: 45px; + margin-top: 0px; +} +.woocommerce ul.products li.product, .woocommerce-page ul.products li.product { + width: 25%; +} +.woocommerce-page div.product .woocommerce-tabs .panel table th { + color: #232323; + border: none; + border-left: solid 1px #eaeaea; + border-bottom: solid 1px #eaeaea; + border-right: none; + +} +.woocommerce table.shop_attributes th { + text-transform: capitalize; + padding: 9px 15px; + text-align: start; + background-color: transparent; +} +.woocommerce-page div.product .woocommerce-tabs .panel td p, +.woocommerce-page div.product .woocommerce-tabs .panel th p { + margin-bottom: 0; +} + +/*-------------------------------------------------------------- +Woo Layouts Styles +--------------------------------------------------------------*/ +ul.nav.woo-nav > li { + padding: 0 6px; + vertical-align: middle; +} +a.mini-wishlist-item, +a.mini-cart-item { + position: relative; +} +.woo-thumb-wrap .product-icons-pack { + text-align: center; + width: auto; + transition: 0.5s all ease; + -webkit-transition: 0.5s all ease; + -moz-transition: 0.5s all ease; + position: absolute; + width: 100%; + bottom: -100%; +} +.loop-product-wrap:focus-within .woo-thumb-wrap .product-icons-pack, +.loop-product-wrap:hover .woo-thumb-wrap .product-icons-pack { + bottom: 0; +} +.woo-thumb-wrap .product-icons-pack > a { + font-size: 14px; + color: #fff; + opacity: 1; + font-weight: 600; + text-transform: uppercase; + transform: translateX(0px); + -webkit-transform: translateX(0px); + -moz-transform: translateX(0px); + display: block; + line-height: 45px; + border-radius: 0; + padding: 0 18px; +} +.woo-thumb-wrap .product-icons-pack > a span.ti-shopping-cart { + margin-left: 5px; +} +.woo-thumb-wrap .product-icons-pack > a:focus, +.woo-thumb-wrap .product-icons-pack > a:hover { + color: #fff; +} +.woo-thumb-wrap .product-icons-pack > a:nth-child(1) { + transition: all .3s ease-in-out 0s; +} +.woo-thumb-wrap .product-icons-pack > a:nth-child(2) { + transform: translateX(-20px); + transition: all .4s ease-in-out 0s; +} +.woo-thumb-wrap .product-icons-pack > a:nth-child(3) { + transform: translateX(-20px); + transition: all .5s ease-in-out 0s; +} +span.cosmobit-product-favoured { + position: absolute; + top: 5px; + right: 4px; + z-index: 1; + font-size: 10px; + height: 22px; + width: 22px; + background: red; + text-align: center; + line-height: 25px; + border-radius: 50%; + color: #fff; +} +.woocommerce ul.products li.product a.added:after { + content: "\f00c"; + font-family: FontAwesome; + font-size: 8px; + position: absolute; + top: -6px; + right: 0; + padding: 2px; + background: red; + height: 15px; + width: 15px; + line-height: 12px; + border-radius: 50%; + color: #fff; +} +.woocommerce ul.products li.product a.loading:after, +a.btn.cosmobit-woo-compare-ajax.loading:after { + content: "\f013"; + font-family: FontAwesome; + font-size: 13px; + position: absolute; + top: -20px; + right: 0; + left: 0; + line-height: 30px; + margin: 0 auto; + -webkit-animation: spin 2s linear infinite; + animation: spin 2s linear infinite; + color: #fff; + width: 30px; + height: 30px; + background: var(--dt-main-color); + border-radius: 50%; +} +.woo-thumb-wrap .product-icons-pack > a.loading:focus, +.woo-thumb-wrap .product-icons-pack > a.loading:hover { + color: #fff; +} +@keyframes spin { + from {transform:rotate(360deg);} + to {transform:rotate(0deg);} +} + +table.cosmobit-wishlist-table td { + padding: 4px; + vertical-align: middle; +} +a.cosmobit-wishlist-remove, a.cosmobit_ajax_add_to_cart { + position: relative; +} +a.cosmobit-wishlist-remove.loading, a.cosmobit_ajax_add_to_cart.loading { + color: #fff; +} +a.cosmobit-wishlist-remove.loading:after, +a.cosmobit_ajax_add_to_cart.loading:after, +a.remove-cart-item.loading:after, +a.remove-wishlist-item.loading:after { + position: absolute; + content: "\f021"; + font-family: FontAwesome; + left: 0; + right: 0; + background: #fff; + -webkit-animation: spin 2s linear infinite; + animation: spin 2s linear infinite; + color: #000; + margin: 0 auto; + text-align: center; +} +p.no-wishlist-items { + margin: 0; + display: block; +} +.loop-product-wrap a.cosmobit_ajax_add_to_cart.loading:after { + background: transparent; + right: 0; + left: auto; +} +.loop-product-wrap a.cosmobit_ajax_add_to_cart.loading { + color: #fff; +} +.cosmobit-wishlist-table a.added_to_cart.wc-forward { + display: none; +} +.cosmobit-product-short-view { + max-width: 800px; + background: #fff; + padding: 15px; + margin: 0 auto; + position: relative; + height: auto; + overflow: hidden; +} +.select2-container--default .select2-selection--single .select2-selection__arrow, .select2-container--default .select2-selection--single .select2-selection__rendered, +span.select2-selection.select2-selection--single { + height: 45px; + line-height: 44px; + border-radius: 4px; +} +.select2-container--default .select2-selection--single .select2-selection__rendered { + padding-left: 15px; +} +.select2-container--default .select2-selection--single .select2-selection__arrow b { + height: 10px; + width: 10px; + position: absolute; + top: 50%; + transform: translateX(-15px) translateY(-50%); + background-repeat: no-repeat; + background-position: 0; + margin-left: 0; + margin-top: 0; + border: none; +} +.select2-container--default .select2-search--dropdown .select2-search__field, +.select2-dropdown { + border: 1px solid #e1e1e1; +} +.woo-top-meta select { + border-radius: 4px; +} +.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea { + border-radius: 4px; + padding-left: 15px; + padding-right: 15px; +} +.woocommerce-page form.checkout_coupon p.form-row.form-row-first input#coupon_code { + height: 53px; + line-height: 53px; +} +.woocommerce form.checkout_coupon, .woocommerce form.login, .woocommerce form.register { + border: 1px solid #eaeaea; + border-radius: 4px; +} +/* RTL WOO */ +/*Cart*/ +.rtl .cart-dropdown-menu { + right: auto; + left: 0; +} +.rtl .cart-dropdown-menu>li .product-thumbnail { + margin-right: 0; + margin-left: 10px; +} +.rtl .cart-dropdown-menu .product-remove { + left: 0; + right: auto; +} +.rtl .mini-cart-items > a > i { + display: inline-block; +} +/*Shop*/ +.rtl .woo-top-meta select { + background-position: 16px center; +} +.rtl.woocommerce .product .woocommerce-Price-amount, +.rtl.woocommerce .product .price { + text-align: end; +} +.rtl.woocommerce .product del, +.rtl.woocommerce ul.products li.product del { + padding-left: 10px; + padding-right: 0; +} +.rtl.woocommerce ul.cart_list li img, +.rtl.woocommerce ul.product_list_widget li img { + float: right; + margin-left: 10px; + margin-right: 0; +} +.rtl.woocommerce div.product form.cart div.quantity { + float: inherit; + margin: 0 0 0 4px; +} +.rtl.woocommerce div.product form.cart .button { + float: inherit; +} + +@media only screen and (max-width: 1024px) { + /*Woocommerce Styles*/ + .woo-top-meta select { + width: 238px; + } +} +@media only screen and (max-width:1024px) and (min-width:992px) { + /* Woocommerce */ + .woocommerce-result-count { + width: 100%; + } + .woo-top-meta select { + margin-left: 0; + } +} +@media only screen and (min-width : 992px){ + .col-lg-6 .woocommerce-result-count { + width: 100%; + } + .col-lg-6 .woo-top-meta select { + margin-left: 0; + } + .woocommerce .col-lg-6 ul.products.shop-col-2 li.product { + width: 50%; + } + .woocommerce ul.products.shop-col-3 li.product { + width: 33.33%; + } + .woocommerce ul.products.shop-col-4 li.product { + width: 25%; + } + .woocommerce ul.products.shop-col-5 li.product { + width: 20%; + } + .woocommerce ul.products.shop-col-6 li.product { + width: 16.666%; + } +} +@media only screen and (max-width: 991px) { + .woocommerce ul.products.shop-col-4 li.product { + width: 33.333%; + } +} +@media only screen and (max-width: 768px) { + /*Woocommerce Styles*/ + .woocommerce ul.products li.product { + width: 50% !important; + clear: both; + } + .woocommerce ul.products[class*=shop-col-] li.product:nth-child(2n) { + clear: none !important; + } + .woocommerce ul.products li.product .woo-thumb-wrap img { + width: 100%; + } + .woocommerce table.shop_table_responsive tr td, + .woocommerce-page table.shop_table_responsive tr td { + text-align: start !important; + } + .woocommerce #content table.cart td.actions .coupon .button, + .woocommerce #content table.cart td.actions .coupon .input-text, + .woocommerce #content table.cart td.actions .coupon input, + .woocommerce table.cart td.actions .coupon .button, + .woocommerce table.cart td.actions .coupon .input-text, + .woocommerce table.cart td.actions .coupon input, + .woocommerce-page #content table.cart td.actions .coupon .button, + .woocommerce-page #content table.cart td.actions .coupon .input-text, + .woocommerce-page #content table.cart td.actions .coupon input, + .woocommerce-page table.cart td.actions .coupon .button, + .woocommerce-page table.cart td.actions .coupon .input-text, + .woocommerce-page table.cart td.actions .coupon input { + width: 100%; + } + .woocommerce #content table.cart td.actions .coupon, .woocommerce table.cart td.actions .coupon, .woocommerce-page #content table.cart td.actions .coupon, + .woocommerce-page table.cart td.actions .coupon { + width: 100%; + } + .woocommerce table.cart td.actions .coupon .input-text, .woocommerce table.cart td.actions .coupon input { + margin-bottom: 10px; + } + tr.woocommerce-cart-form__cart-item td { + height: auto; + } + .woocommerce table.shop_table td.product-remove, + .woocommerce-page table.shop_table td.product-remove { + padding: 20px 20px 20px 20px; + float: right; + } + .woocommerce-cart-form table.shop_table td { + padding: 20px 20px; + } + nav.woocommerce-MyAccount-navigation { + margin-bottom: 40px; + } + .woocommerce-account .woocommerce-MyAccount-content p:last-child { + margin-bottom: 0; + } +} + +@media only screen and (max-width: 767px) { + /*Woocommerce Styles*/ + .woo-top-meta select { + margin-left: 0; + } + .woocommerce .woo-top-meta select.sortby { + margin-left: 0; + } + .post-comments-wrapper ul.children { + padding-left: 10px; + } + .woocommerce-page div.product .woocommerce-tabs ul.tabs li, + .woocommerce div.product .woocommerce-tabs ul.tabs li a { + display: block; + } + .woocommerce-page div.product .woocommerce-tabs ul.tabs li { + margin-bottom: 5px; + } + .woocommerce .col2-set .col-1, + .woocommerce-page .col2-set .col-1, + .woocommerce .col2-set .col-2, + .woocommerce-page .col2-set .col-2 { + max-width: 100%; + } + .woocommerce-additional-fields { + margin-top: 30px; + } + .woocommerce ul.products li.product .woocommerce-loop-product__title{ + font-size: 16px !important; + line-height: 30px !important; + } +} + +@media only screen and (max-width: 640px) { + .woo-top-meta>* { + display: block; + overflow: hidden; + width: 100%; + } + .woocommerce ul.products { + width: auto; + } +} + +@media only screen and (max-width : 540px){ + .woocommerce ul.products li.product { + width: 100% !important; + clear: both; + } +} +@media only screen and (max-width : 479px){ + .woocommerce ul.products li.product, .woocommerce-page ul.products li.product { + padding: 0; + } +} +@media only screen and (max-width : 366px){ + .woocommerce.single table.woocommerce-grouped-product-list.group_table .quantity input { + width: 70px; + } + +} +@media only screen and (max-width : 360px){ + .woocommerce-account.woocommerce-downloads .woocommerce-Message.woocommerce-Message--info { + padding-right: 15px !important; + } + +} + +/* EXTRAAAAAAA */ + +.woocommerce-MyAccount-content h3, +form.woocommerce-EditAccountForm.edit-account legend { + color: var(--dt-secondary-color); + font-family: Quicksand; + font-weight: 700; + font-size: 28px; + line-height: 40px +} + +.woocommerce p.stars a, +.shop_table.cart td.product-name>a:focus, +.shop_table.cart td.product-name>a:hover, +.woocommerce table.shop_table tbody:first-child tr:first-child td, +.woocommerce-privacy-policy-text a { + color: var(--dt-main-color) +} + +.woocommerce .product .onsale, +.woocommerce div.product .woocommerce-tabs ul.tabs li.active, +.woocommerce div.product form.cart .button, +.wc-block-product-search .wc-block-product-search__button { + background-color: var(--dt-main-color) !important +} + +.woocommerce ul.products li.product .loop-product-wrap > .woocommerce-Price-amount, +.woocommerce ul.products li.product .price, +.woocommerce .product .loop-product-wrap > .woocommerce-Price-amount, +.woocommerce .product .price, +.woocommerce.single .product .loop-product-wrap > .woocommerce-Price-amount, +.woocommerce.single .product .price, +.woocommerce .product ins, +.woocommerce .product ins span.amount, +.woocommerce.single .product ins, +.woocommerce ul.products.owl-carousel .loop-product-wrap ins .woocommerce-Price-amount.amount, +.woocommerce .summary .product_meta>span span:focus-within, +.woocommerce .summary .product_meta>span span:hover, +.woocommerce .summary .product_meta>span a:focus, +.woocommerce .summary .product_meta>span a:hover { + color: var(--dt-main-color) +} + +.woocommerce div.product .product_title, +.woocommerce ul.products li.product .woocommerce-loop-product__title:focus-within, +.woocommerce ul.products li.product .woocommerce-loop-product__title:hover, +.loop-product-wrap > .woocommerce-Price-amount, +.woocommerce-account .woocommerce-Message.woocommerce-Message--info .woocommerce-Button.button, +.woocommerce-account .addresses .title .edit { + color: var(--dt-main-color) +} + +.dropdown-menu.cart-dropdown-menu .mini-view-cart a:focus, +.dropdown-menu.cart-dropdown-menu .mini-view-cart a:hover, +.cosmobit-sticky-cart .mini-view-cart a, +.dropdown-menu.wishlist-dropdown-menu .mini-view-wishlist a, +.cosmobit-sticky-wishlist .mini-view-wishlist a, +.woocommerce #review_form #respond .form-submit input:focus, +.woocommerce #review_form #respond .form-submit input:hover, +.woocommerce-account .woocommerce-MyAccount-navigation>ul li.is-active a, +.woocommerce-account .woocommerce-MyAccount-navigation>ul li a:focus, +.woocommerce-account .woocommerce-MyAccount-navigation>ul li a:hover { + background: var(--dt-main-color) +} + +.woocommerce .button, +.woocommerce #review_form #respond .form-submit input, +.dropdown-menu.cart-dropdown-menu .mini-view-cart a { + background: var(--dt-main-color) +} + +.dropdown-menu.cart-dropdown-menu .mini-view-cart a:focus, +.dropdown-menu.cart-dropdown-menu .mini-view-cart a:hover { + background: var(--dt-secondary-color); + border-bottom-color: var(--dt-main-color) +} + +.woocommerce-info, +.woocommerce-message { + border-top-color: var(--dt-main-color) +} + +.woocommerce-info::before, +.woocommerce-message::before { + color: var(--dt-main-color) +} + +.form-control:focus, +.woocommerce form .form-row input.input-text:focus, +.woocommerce form .form-row textarea:focus, +.woocommerce form .form-row .input-text:focus, +.woocommerce-page form .form-row .input-text:focus, +.select2-container--default.select2-container--open.select2-container--below .select2-selection--single { + border-color: var(--dt-main-color) !important +} + +.woo-top-meta select, +.select2-container--default .select2-selection--single .select2-selection__arrow b { + background-image: url('../images/icon-select.png') +} + +.woocommerce ul.products li.product .loop-product-wrap .woo-thumb-wrap .product-icons-pack>a, +.woocommerce #review_form #respond .form-submit input { + background-color: var(--dt-main-color) +} + +.woocommerce ul.products li.product .loop-product-wrap .woo-thumb-wrap .product-icons-pack>a:focus, +.woocommerce ul.products li.product .loop-product-wrap .woo-thumb-wrap .product-icons-pack>a:hover { + background-color: var(--dt-secondary-color) +} + +.woocommerce .widget.widget_product_categories li a:focus, +.woocommerce .widget.widget_product_categories li a:hover, +.woocommerce div.product form.cart .group_table td.woocommerce-grouped-product-list-item__price span.woocommerce-Price-amount.amount, +.woocommerce div.product .stock { + color: var(--dt-main-color) +} + +.woocommerce .widget.widget_product_categories li a::before { + color: var(--dt-main-color) +} + +.widget.widget_product_tag_cloud a.tag-cloud-link:focus, +.widget.widget_product_tag_cloud a.tag-cloud-link:hover { + background-color: var(--dt-main-color); + border-color: var(--dt-main-color) +} + +.woocommerce #content input.button, +.woocommerce button.button.alt, +.woocommerce #respond input#submit, +.woocommerce a.button:not(.add_to_cart_button), +.woocommerce button.button, +.woocommerce input.button, +.woocommerce-page #content input.button, +.woocommerce-page #respond input#submit, +.woocommerce-page a.button:not(.add_to_cart_button), +.woocommerce-page button.button, +.woocommerce-page input.button, +.woocommerce input.button.alt, +.woocommerce input.button.disabled, +.woocommerce input.button:disabled[disabled], +.cart_totals .wc-proceed-to-checkout a.checkout-button, +.woocommerce button.button:disabled, +.woocommerce button.button:disabled[disabled] { + background-color: var(--dt-main-color); + border-bottom-color: var(--dt-secondary-color) +} + +.woocommerce #content input.button:focus, +.woocommerce #content input.button:hover, +.woocommerce a.button:not(.add_to_cart_button):focus, +.woocommerce a.button:not(.add_to_cart_button):hover, +.woocommerce button.button:focus, +.woocommerce button.button:hover, +.woocommerce input.button:focus, +.woocommerce input.button:hover, +.woocommerce-page #content input.button:focus, +.woocommerce-page #content input.button:hover, +.woocommerce-page a.button:not(.add_to_cart_button):focus, +.woocommerce-page a.button:not(.add_to_cart_button):hover, +.woocommerce-page button.button:focus, +.woocommerce-page button.button:hover, +.woocommerce-page input.button:focus, +.woocommerce-page input.button:hover, +.woocommerce input.button.alt:focus, +.woocommerce input.button.alt:hover, +.woocommerce input.button.disabled:focus, +.woocommerce input.button.disabled:hover, +.woocommerce input.button:disabled[disabled]:focus, +.woocommerce input.button:disabled[disabled]:hover, +.cart_totals .wc-proceed-to-checkout a.checkout-button:focus, +.cart_totals .wc-proceed-to-checkout a.checkout-button:hover, +.woocommerce button.button.alt:focus, +.woocommerce button.button.alt:hover, +.woocommerce button.button:disabled:focus, +.woocommerce button.button:disabled:hover, +.woocommerce button.button:disabled[disabled]:focus, +.woocommerce button.button:disabled[disabled]:hover, +.woocommerce #review_form #respond .form-submit input:focus, +.woocommerce #review_form #respond .form-submit input:hover { + background-color: var(--dt-secondary-color) !important +} + +.woocommerce #review_form #respond input:focus, +.woocommerce #review_form #respond textarea:focus { + border-color: var(--dt-main-color) +} + +.woocommerce-account .woocommerce-MyAccount-content p a:focus, +.woocommerce-account .woocommerce-MyAccount-content p a:hover, +.woocommerce-LostPassword.lost_password a:focus, +.woocommerce-LostPassword.lost_password a:hover, +.woocommerce table.shop_table tbody:first-child tr:first-child td, +.woocommerce-checkout .woocommerce-checkout-review-order .cart-subtotal .woocommerce-Price-amount.amount { + color: var(--dt-main-color) +} + +.woo-icon-count { + background: var(--dt-main-color) +} + +.elementor-shortcode #wps-slider-section .wpsf-product-price { + color: var(--dt-main-color) !important +} + +#wps-slider-section .wps-product-section .wpsf-cart-button a:not(.sp-wqvpro-view-button):not(.sp-wqv-view-button) { + color: var(--dt-main-color); + border-color: var(--dt-main-color) +} + +.woocommerce ul.order_details { + padding: 0; +} + +.woocommerce .woocommerce-customer-details h2, +.woocommerce .woocommerce-order-details h2, +.woocommerce .woocommerce-order-downloads h2 { + margin-bottom: 1.8rem; +} + +.woocommerce .woocommerce-customer-details address { + padding: 15px 20px; +} + +.woocommerce table.my_account_orders .button { + padding: 14px 18px; + font-size: 1.4rem; +} + +.woocommerce-LostPassword { + margin-bottom: 0; +} + +.woocommerce-LostPassword a { + color: var(--dt-secondary-color); + text-decoration: none; +} + +#order_review_heading, +.woocommerce .woocommerce-billing-fields h3, +.woocommerce-page .woocommerce-billing-fields h3, +.woocommerce-page .woocommerce-additional-fields h3, +.woocommerce .woocommerce-additional-fields h3 { + margin-bottom: 15px; +} + +.woocommerce.single-product #content div.product form.cart div.quantity { + width: auto; +} + +/* Added these style on last */ + +.widget_shopping_cart ul.product_list_widget li { + font-size: 96%; +} + +.woocommerce-mini-cart-item .variation { + display: grid; + grid-template-columns: 1fr 2fr; + gap: 0.8rem; + font-size: 1.5rem; +} + +.woocommerce-mini-cart-item .variation dt, +.woocommerce-mini-cart-item .variation dd, +.woocommerce-mini-cart-item .variation p { + margin: 0; +} + +.woocommerce div.product form.cart+.yith-wcwl-add-to-wishlist { + margin-bottom: 12px; +} \ No newline at end of file diff --git a/wp-content/themes/chromax/assets/images/bg_one.png b/wp-content/themes/chromax/assets/images/bg_one.png new file mode 100644 index 0000000..e95804d Binary files /dev/null and b/wp-content/themes/chromax/assets/images/bg_one.png differ diff --git a/wp-content/themes/chromax/assets/images/bg_two.png b/wp-content/themes/chromax/assets/images/bg_two.png new file mode 100644 index 0000000..e62cbaa Binary files /dev/null and b/wp-content/themes/chromax/assets/images/bg_two.png differ diff --git a/wp-content/themes/chromax/assets/images/blog_arrows.png b/wp-content/themes/chromax/assets/images/blog_arrows.png new file mode 100644 index 0000000..205d2c2 Binary files /dev/null and b/wp-content/themes/chromax/assets/images/blog_arrows.png differ diff --git a/wp-content/themes/chromax/assets/images/error_bg.jpg b/wp-content/themes/chromax/assets/images/error_bg.jpg new file mode 100644 index 0000000..f02cb82 Binary files /dev/null and b/wp-content/themes/chromax/assets/images/error_bg.jpg differ diff --git a/wp-content/themes/chromax/assets/images/pagetitle.jpg b/wp-content/themes/chromax/assets/images/pagetitle.jpg new file mode 100644 index 0000000..a9acb41 Binary files /dev/null and b/wp-content/themes/chromax/assets/images/pagetitle.jpg differ diff --git a/wp-content/themes/chromax/assets/images/pattern-1.png b/wp-content/themes/chromax/assets/images/pattern-1.png new file mode 100644 index 0000000..b9870ee Binary files /dev/null and b/wp-content/themes/chromax/assets/images/pattern-1.png differ diff --git a/wp-content/themes/chromax/assets/images/pattern-9.png b/wp-content/themes/chromax/assets/images/pattern-9.png new file mode 100644 index 0000000..adb8c2e Binary files /dev/null and b/wp-content/themes/chromax/assets/images/pattern-9.png differ diff --git a/wp-content/themes/chromax/assets/images/shape-1.png b/wp-content/themes/chromax/assets/images/shape-1.png new file mode 100644 index 0000000..2b98ddf Binary files /dev/null and b/wp-content/themes/chromax/assets/images/shape-1.png differ diff --git a/wp-content/themes/chromax/assets/images/shape-2.png b/wp-content/themes/chromax/assets/images/shape-2.png new file mode 100644 index 0000000..4dd93e8 Binary files /dev/null and b/wp-content/themes/chromax/assets/images/shape-2.png differ diff --git a/wp-content/themes/chromax/assets/js/custom.js b/wp-content/themes/chromax/assets/js/custom.js new file mode 100644 index 0000000..fbf2c87 --- /dev/null +++ b/wp-content/themes/chromax/assets/js/custom.js @@ -0,0 +1,527 @@ +(function($) { + 'use strict'; + + // Function to hide preloader + var preloader = $('.dt_preloader'); + function initHidePreloader() { + $('body').addClass('overlay--enabled') + if (preloader.length) { + preloader.addClass('loaded'); + preloader.delay(600).fadeOut(); + $('body').removeClass('overlay--enabled'); + } + } + if (preloader.length) { + $('.dt_preloader-close').on('click', function() { + preloader.addClass('loaded'); + preloader.delay(600).fadeOut(); + $('body').removeClass('overlay--enabled'); + }); + } + + // Function to handle scrolling and update progress bar + function initUpdateProgressBar() { + var scroll = $(window).scrollTop(); + var height = $(document).height() - $(window).height(); + var progressPath = $('.dt_uptop path')[0]; + var pathLength = progressPath.getTotalLength(); + var progress = pathLength - (scroll * pathLength / height); + progressPath.style.strokeDashoffset = progress; + } + + // Function to initialize Owl Slider Main + function splitTitleWords($element) { + const text = $element.data('text'); + if (!text) return; + // Wrap the text in a temp div to allow HTML parsing + const tempDiv = $('
    ').html(text); + const contentNodes = tempDiv.contents(); + $element.html(''); + //const words = text.split(' '); + //$element.html(''); + // words.forEach((word) => { + // $element.append(`${word} `); + // }); + /*if ($('.dt_slider').hasClass('dt_slider--one')) { + words.forEach((word, index) => { + const delay = index * 0.1; + $element.append(`${word} `); + }); + }*/ + if ($('.dt_slider').hasClass('dt_slider--one')) { + let wordIndex = 0; + contentNodes.each(function () { + if (this.nodeType === 3) { + // Text node + const words = this.textContent.split(' '); + words.forEach((word) => { + const delay = wordIndex * 0.1; + $element.append(`${word} `); + wordIndex++; + }); + } else if (this.nodeType === 1) { + // Element node (e.g., span) + const $span = $(this); + const words = $span.text().split(' '); + words.forEach((word) => { + const delay = wordIndex * 0.1; + $element.append(`${word} `); + wordIndex++; + }); + } + }); + } else { + $element.html(text); + } + } + + + function prepareAllTitles() { + $('.dt_slider .title').each(function () { + splitTitleWords($(this)); + }); + } + + function animateCurrentSlideContent() { + const $activeSlide = $('.dt_slider .owl-item.active').not('.cloned'); + const $title = $activeSlide.find('.title'); + const $subtitle = $activeSlide.find('.subtitle'); + const $text = $activeSlide.find('.text'); + const $btnGroup = $activeSlide.find('.dt_btn-group'); + + // Skip if already animated + if ($activeSlide.hasClass('content-animated')) return; + + // Remove animations from all other slides + $('.dt_slider .owl-item').removeClass('content-animated'); + $('.dt_slider .title').removeClass('animate-title'); + $('.dt_slider .subtitle').removeClass('animate-subtitle'); + $('.dt_slider .text').removeClass('animate-text'); + $('.dt_slider .dt_btn-group').removeClass('animate-buttons'); + + // Add animation classes + $title.addClass('animate-title'); + $subtitle.addClass('animate-subtitle'); + $text.addClass('animate-text'); + $btnGroup.addClass('animate-buttons'); + + // Mark this slide as animated + $activeSlide.addClass('content-animated'); + } + + function initOwlCarousels() { + $(".dt_owl_carousel").each(function () { + const $carousel = $(this); + const options = typeof $carousel.data("owl-options") === "object" + ? $carousel.data("owl-options") + : JSON.parse($carousel.attr("data-owl-options")); + + $carousel.owlCarousel(options) + .on('initialized.owl.carousel', function () { + prepareAllTitles(); // Split title words to spans + if ($('.dt_slider').hasClass('dt_slider--one')) { + animateCurrentSlideContent(); // Animate first slide + } + }) + .on('translated.owl.carousel', function () { + if ($('.dt_slider').hasClass('dt_slider--one')) { + animateCurrentSlideContent(); // Animate after slide transition + } + }); + }); + } + + // Event handling for scrolling and updating progress bar + $(window).on('scroll', function() { + $('.dt_uptop').toggleClass('active', $(this).scrollTop() > 50); + initUpdateProgressBar(); + }); + + // Function to handle click event for scrolling to top + $('.dt_uptop').on('click', function(event) { + event.preventDefault(); + $('html, body').animate({ scrollTop: 0 }, 550); + }); + + if ($('.smoother-yes').length) { + const lenis = new Lenis({ + smoothWheel: true, + wheelMultiplier: 1.2, + duration: 1.5, + lerp: 0.1, + }); + function raf(time) { + lenis.raf(time); + requestAnimationFrame(raf); + } + requestAnimationFrame(raf); + + // Handle scroll animation for anchor links + document.querySelectorAll('a[href^="#"]').forEach((el) => { + el.addEventListener('click', (e) => { + e.preventDefault(); + const id = el.getAttribute('href')?.slice(1); + if (!id) return; + const target = document.getElementById(id); + if (target) { + target.scrollIntoView({ behavior: 'smooth' }); + } + }); + }); + + // Function to handle lenis prevent for dynamic select woo checkout + if($('body.woocommerce-checkout').length) { + const lenisPreventDynamic = () => { + document.querySelectorAll('.select2-results__options:not([data-lenis-prevent])').forEach((el) => { + el.setAttribute('data-lenis-prevent', ''); + }); + }; + const observer = new MutationObserver((mutationsList) => { + mutationsList.forEach((mutation) => { + mutation.addedNodes.forEach((node) => { + if (node.nodeType === 1 && node.matches('.select2-results__options')) { + lenisPreventDynamic(); + } else if (node.nodeType === 1 && node.querySelector('.select2-results__options')) { + lenisPreventDynamic(); + } + }); + }); + }); + observer.observe(document.body, { + childList: true, + subtree: true, + }); + lenisPreventDynamic(); + } + } + + // Title Animation + const bodyClass = document.body.classList; + const animationStyle = [...bodyClass].find(cls => cls.startsWith("use-animation-style-")); + + document.querySelectorAll(".text-animate").forEach(el => { + let split; + + switch (animationStyle) { + case "use-animation-style-1": + split = new SplitText(el, { + type: "chars, words" + }); + gsap.from(split.words, { + duration: 1, + delay: 0.5, + x: 20, + autoAlpha: 0, + stagger: 0.05, + scrollTrigger: { + trigger: el, + start: "top 85%" + } + }); + break; + + case "use-animation-style-2": + split = new SplitText(el, { + type: "chars, words" + }); + gsap.from(split.chars, { + duration: 2, + delay: 0.1, + x: 20, + autoAlpha: 0, + stagger: 0.03, + ease: "power2.out", + scrollTrigger: { + trigger: el, + start: "top 85%" + } + }); + break; + + case "use-animation-style-3": + if (el.animation) { + el.animation.progress(1).kill(); + el.split.revert(); + } + el.split = new SplitText(el, { + type: "lines,words,chars", + linesClass: "split-line" + }); + gsap.set(el, { + perspective: 400 + }); + gsap.set(el.split.chars, { + opacity: 0, + x: "50" + }); + el.animation = gsap.to(el.split.chars, { + scrollTrigger: { + trigger: el, + start: "top 90%" + }, + x: "0", + y: "0", + rotateX: "0", + opacity: 1, + duration: 1, + ease: "back.out(1.7)", + stagger: 0.02 + }); + break; + + case "use-animation-style-4": + const tl = gsap.timeline({ + scrollTrigger: { + trigger: el, + start: 'top 90%', + end: 'bottom 60%', + scrub: false, + markers: false, + toggleActions: 'play none none none' + } + }); + const itemSplitted = new SplitText(el, { + type: "words, lines" + }); + gsap.set(el, { + perspective: 400 + }); + itemSplitted.split({ + type: "lines" + }); + tl.from(itemSplitted.lines, { + duration: 1, + delay: 0.3, + opacity: 0, + rotationX: -80, + force3D: true, + transformOrigin: "top center -50", + stagger: 0.1 + }); + break; + } + }); + + // Function to initialize FancyBox for lightbox images + function initLightbox() { + if ($('.dt_lightbox_img').length) { + $('.dt_lightbox_img').fancybox({ + openEffect: 'fade', + closeEffect: 'fade', + helpers: { media: {} } + }); + } + $('.wp-block-image').each(function() { + $(this).find("a").attr('data-fancybox', 'gallery'); + }); + if ($('.wp-block-image a').length) { + $('[data-fancybox="gallery"]').fancybox({ + buttons: ["slideShow", "thumbs", "zoom", "fullScreen", "share", "close"], + loop: false, + protect: true + }); + } + } + + // Function to initialize scroll pin effect + function initScrollPinEffect() { + //gsap.registerPlugin(ScrollTrigger); + + document.querySelectorAll(".gsap-fixed-yes").forEach(container => { + const elements = container.querySelectorAll(":scope > *"); + + // Only kill triggers inside this container + ScrollTrigger.getAll().forEach(trigger => { + const el = trigger.trigger; + if (el && el.closest && el.closest(".gsap-fixed-yes") === container) { + trigger.kill(); + } + }); + + // Force container to have enough height + const totalHeight = Array.from(elements).reduce((acc, el) => acc + el.offsetHeight, 0); + container.style.minHeight = totalHeight + "px"; + + const startClass = Array.from(container.classList).find(c => c.startsWith("start-")); + const startOffset = startClass ? parseInt(startClass.split("-")[1]) : 40; + + elements.forEach((element, index) => { + ScrollTrigger.create({ + trigger: element, + start: `top-=${startOffset}`, + end: `bottom top+=${element.offsetHeight + startOffset}`, + endTrigger: container, + pin: true, + pinSpacing: false, + scrub: false, + id: `${container.id}-trigger-${index}`, + invalidateOnRefresh: true + }); + }); + }); + + // Important: Refresh after everything + ScrollTrigger.refresh(true); + } + + // Particles + const particleOptions = { + "particles": { + "number": { + "value": 100, + "density": { + "enable": true, + "value_area": 4000 + } + }, + "color": { + "value": "random" + }, + "shape": { + "type": "polygon", + "polygon": { + "nb_sides": 6 + }, + "image": { + "src": "img/github.svg", + "width": 100, + "height": 100 + } + }, + "opacity": { + "value": 1, + "random": true, + "anim": { + "enable": true, + "speed": 1, + "opacity_min": 0, + "sync": false + } + }, + "size": { + "value": 3, + "random": true, + "anim": { + "enable": false, + "speed": 4, + "size_min": 0.3, + "sync": false + } + }, + "move": { + "enable": true, + "speed": 1, + "direction": "none", + "random": true, + "straight": false, + "out_mode": "out", + "bounce": false, + "attract": { + "enable": false, + "rotateX": 600, + "rotateY": 600 + } + } + }, + "retina_detect": true + }; + + // Data Background + $("[data-background]").each(function () { + $(this).css("background-image", "url(" + $(this).attr("data-background") + ")"); + }); + + // Text animation for bounce effect + if ($('.bounce-text').length) { + $('.bounce-text').each(function () { + let $this = $(this); + let targetColor = $this.data('bounce-color') || '#000DFF'; + + // Split the text into characters + let mySplitText = new SplitText($this, { type: "chars" }); + let chars = mySplitText.chars; + + // Hide initially + gsap.set($this, { opacity: 0 }); + + // Animation Timeline (paused initially) + let tl = gsap.timeline({ repeat: -1, paused: true }); + + tl.to(chars, { + duration: 0.5, + scaleY: 0.6, + ease: "power3.out", + stagger: 0.04, + transformOrigin: 'center bottom' + }); + + tl.to(chars, { + yPercent: -20, + ease: "elastic", + stagger: 0.03, + duration: 0.8 + }, 0.5); + + tl.to(chars, { + scaleY: 1, + ease: "elastic.out(2.5, 0.2)", + stagger: 0.03, + duration: 1.5 + }, 0.5); + + tl.to(chars, { + yPercent: 0, + ease: "back", + stagger: 0.03, + duration: 0.8 + }, 0.7); + + tl.to(chars, { + color: 'targetColor', + duration: 1.4, + stagger: 0.05 + }); + + // ScrollTrigger to reveal and play animation + ScrollTrigger.create({ + trigger: $this[0], + start: 'bottom 100%-=50px', + once: true, + onEnter: function () { + gsap.to($this, { + opacity: 1, + duration: 1, + ease: 'power2.out', + onComplete: function () { + tl.play(); + } + }); + } + }); + }); + } + + // Function to initialize headline and preloader on window load + function initializeComponents() { + $(window).on('load', function() { + initHidePreloader(); + initUpdateProgressBar(); + initScrollPinEffect(); + }); + } + + $(document).ready(function () { + prepareAllTitles(); // Setup spans + initOwlCarousels(); // Init everything + initLightbox(); // Initialize lightbox + $('.particles-js-area').each(function(index) { + const id = 'particles-js-' + index; + $(this).attr('id', id); + particlesJS(id, particleOptions); + }); + }); + + // Initialize headline and preloader + initializeComponents(); + +})(jQuery); \ No newline at end of file diff --git a/wp-content/themes/chromax/assets/js/theme.js b/wp-content/themes/chromax/assets/js/theme.js new file mode 100644 index 0000000..5048945 --- /dev/null +++ b/wp-content/themes/chromax/assets/js/theme.js @@ -0,0 +1,434 @@ +! function($, b) { + "use strict"; + var a = { + eventID: "DtThemeJs", + document: $(document), + window: $(window), + body: $("body"), + classes: { + toggled: "active", isOverlay: "overlay--enabled", mobileMainMenuActive: "dt_mobilenav-mainmenu--active", headerSearchActive: "dt_header-search--active", headerSidebarActive: "sidebar--active" + }, + init: function() { + this.document.on("ready", this.documentReadyRender.bind(this)), + this.document.on("ready", this.menuFocusAccessibility.bind(this)), + this.document.on("ready", this.headerHeight.bind(this)), + this.document.on("ready", this.topbarMobile.bind(this)), + this.document.on("ready", this.mobileNavRight.bind(this)), + this.document.on("ready", this.fixDuplicateSearchIds.bind(this)), + this.window.on("ready", this.documentReadyRender.bind(this)) + }, + documentReadyRender: function() { + this.document.on("click." + this.eventID, ".dt_mobilenav-mainmenu-toggle", this.menuToggleHandler.bind(this)).on("click." + this.eventID, ".dt_header-closemenu", this.menuToggleHandler.bind(this)).on("click." + this.eventID, this.hideHeaderMobilePopup.bind(this)).on("click." + this.eventID, ".dt_mobilenav-dropdown-toggle", this.verticalMobileSubMenuLinkHandle.bind(this)).on("click." + this.eventID, ".dt_header-closemenu", this.resetVerticalMobileMenu.bind(this)).on("hideHeaderMobilePopup." + this.eventID, this.resetVerticalMobileMenu.bind(this)).on("click." + this.eventID, ".dt_navbar-search-toggle", this.searchPopupHandler.bind(this)).on("click." + this.eventID, ".dt_search-close", this.searchPopupHandler.bind(this)).on("click." + this.eventID, ".dt_navbar-sidebar-toggle", this.sidebarPopupHandler.bind(this)).on("click." + this.eventID, ".dt_sidebar-close", this.sidebarPopupHandler.bind(this)), this.window.on("scroll." + this.eventID, this.scrollToSticky.bind(this)).on("resize." + this.eventID, this.headerHeight.bind(this)) + }, + scrollToSticky: function(b) { + var $sticky = $(".is--sticky"); + var scrollTop = $(window).scrollTop(); + + // Preserve lastScrollTop outside the function so it remembers previous value + if (typeof this.lastScrollTop === "undefined") { + this.lastScrollTop = 0; + } + + if ($sticky.hasClass("reverse")) { + // Reverse scroll behavior + if (scrollTop < 200) { + $sticky.removeClass("on"); + } else if (scrollTop > this.lastScrollTop) { + // Scrolling down + $sticky.removeClass("on"); + } else { + // Scrolling up + $sticky.addClass("on"); + } + } else { + // Normal sticky behavior + if (scrollTop >= 220) { + $sticky.addClass("on"); + } else { + $sticky.removeClass("on"); + } + } + + this.lastScrollTop = scrollTop; + }, + headerHeight: function(d) { + var a = $(".dt_header-navwrapper"), + b = $(".dt_header-navwrapperinner"), + c = 0; + $("body").find("div").hasClass("is--sticky") && (b.each(function() { + var a = this.clientHeight; + a > c && (c = a) + }), a.css("min-height", c)) + }, + // New function to fix duplicate IDs + fixDuplicateSearchIds: function() { + // Fix desktop search IDs + var desktopSearch = document.querySelector('.dt_navbar .dt_search-form'); + var desktopSearchField = document.querySelector('.dt_navbar .dt_search-field'); + var desktopSearchLabel = document.querySelector('.dt_navbar .dt_search-form label'); + + if (desktopSearch && desktopSearchField && desktopSearchLabel) { + desktopSearchField.id = "dt_search-form-desktop"; + desktopSearchLabel.setAttribute('for', 'dt_search-form-desktop'); + } + + // Fix mobile search IDs + var mobileSearch = document.querySelector('.dt_mobilenav .dt_search-form'); + var mobileSearchField = document.querySelector('.dt_mobilenav .dt_search-field'); + var mobileSearchLabel = document.querySelector('.dt_mobilenav .dt_search-form label'); + + if (mobileSearch && mobileSearchField && mobileSearchLabel) { + mobileSearchField.id = "dt_search-form-mobile"; + mobileSearchLabel.setAttribute('for', 'dt_search-form-mobile'); + } + }, + topbarAccessibility: function() { + var b, a, d, c = document.querySelector(".dt_mobilenav-topbar"); + var f = document.querySelector(".dt_mobilenav-topbar-toggle"), + e = c.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'), + g = e[e.length - 1]; + if (!c) return !1; + for (a = 0, d = (b = c.getElementsByTagName("a")).length; a < d; a++) b[a].addEventListener("focus", h, !0), b[a].addEventListener("blur", h, !0); + + function h() { + for (var a = this; - 1 === a.className.indexOf("dt_mobilenav-topbar");) "*" === a.tagName.toLowerCase() && (-1 !== a.className.indexOf("focus") ? a.className = a.className.replace(" focus", "") : a.className += " focus"), a = a.parentElement + } + document.addEventListener("keydown", function(a) { + ("Tab" === a.key || 9 === a.keyCode) && f.classList.contains("active") && (a.shiftKey ? document.activeElement === f && (g.focus(), a.preventDefault()) : document.activeElement === g && (f.focus(), a.preventDefault())) + }) + }, + topbarMobile: function() { + var c = $(".dt_mobilenav-topbar-content"), + b = $(".dt_header-widget"), + a = $(".dt_mobilenav-topbar-toggle"); + !b.children().length > 0 ? a.hide() : (a.show(), a.on("click", function(b) { + c.slideToggle(), a.toggleClass("active"), b.preventDefault() + }), this.topbarAccessibility()) + }, + mobileNavRight: function() { + $(".dt_navbar-right .dt_navbar-cart-item").clone().prependTo(".dt_mobilenav-right .dt_navbar-list-right"); + }, + menuFocusAccessibility: function(a) { + $(".dt_navbar-nav, .widget_nav_menu").find("a").on("focus blur", function() { + $(this).parents("ul, li").toggleClass("focus") + }) + }, + menuToggleHandler: function(c) { + var b = $(".dt_mobilenav-mainmenu-content"), + a = $(".dt_mobilenav-mainmenu-toggle"); + this.body.toggleClass(this.classes.mobileMainMenuActive), this.body.toggleClass(this.classes.isOverlay), a.toggleClass(this.classes.toggled), b.fadeToggle(), this.body.hasClass(this.classes.mobileMainMenuActive) ? $(".dt_header-closemenu").focus() : a.focus(), this.menuAccessibility() + }, + hideHeaderMobilePopup: function(a) { + var b = $(".dt_mobilenav-mainmenu-toggle"), + c = $(".dt_mobilenav-mainmenu"); + !$(a.target).closest(b).length && !$(a.target).closest(c).length && this.body.hasClass(this.classes.mobileMainMenuActive) && (this.body.removeClass(this.classes.mobileMainMenuActive), this.body.removeClass(this.classes.isOverlay), b.removeClass(this.classes.toggled), $(".dt_mobilenav-mainmenu-content").fadeOut(), this.document.trigger("hideHeaderMobilePopup." + this.eventID), a.stopPropagation()) + }, + verticalMobileSubMenuLinkHandle: function(a) { + a.preventDefault(); + var b = $(a.currentTarget); + var self = this; + b.closest(".dt_mobilenav-mainmenu .dt_navbar-mainmenu"), b.parents(".dropdown-menu").length, this.isRTL, setTimeout(function() { + b.parent().toggleClass("current"), b.next().slideToggle(); + // Update focus trap when submenu opens/closes + self.updateMenuFocusTrap(); + }, 250) + }, + resetVerticalMobileMenu: function(a) { + $(".dt_mobilenav-mainmenu .dt_navbar-mainmenu"); + var b = $(".dt_mobilenav-mainmenu .menu-item"), + c = $(".dt_mobilenav-mainmenu .dropdown-menu"); + var self = this; + setTimeout(function() { + b.removeClass("current"), c.hide(); + // Update focus trap when submenus close + self.updateMenuFocusTrap(); + }, 250) + }, + // Updated and improved menu accessibility function + menuAccessibility: function() { + var self = this; + var mobileMenuContent = document.querySelector(".dt_mobilenav-mainmenu-content"); + var closeButton = document.querySelector(".dt_header-closemenu:not(.off--layer)"); + + if (!mobileMenuContent || !closeButton) return false; + + // Remove existing event listener to avoid duplicates + if (this.keydownHandler) { + document.removeEventListener("keydown", this.keydownHandler); + } + + // Create the keydown handler + this.keydownHandler = function(event) { + if (("Tab" === event.key || 9 === event.keyCode) && + document.body.classList.contains("dt_mobilenav-mainmenu--active")) { + self.handleMenuTabNavigation(event); + } + }; + + document.addEventListener("keydown", this.keydownHandler); + + // Set up focus handlers for menu items + this.setupMenuFocusHandlers(); + }, + + // New function to handle tab navigation in mobile menu + handleMenuTabNavigation: function(event) { + var focusableElements = this.getFocusableElements(); + if (focusableElements.length === 0) return; + + var firstElement = focusableElements[0]; + var lastElement = focusableElements[focusableElements.length - 1]; + + if (event.shiftKey) { + // Shift + Tab + if (document.activeElement === firstElement) { + lastElement.focus(); + event.preventDefault(); + } + } else { + // Tab + if (document.activeElement === lastElement) { + firstElement.focus(); + event.preventDefault(); + } + } + }, + + // New function to get currently focusable elements (including visible submenu items) + getFocusableElements: function() { + var mobileMenuContent = document.querySelector(".dt_mobilenav-mainmenu-content"); + if (!mobileMenuContent) return []; + + var selector = 'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'; + var allFocusableElements = mobileMenuContent.querySelectorAll(selector); + + // Filter out elements that are not visible (e.g., in closed submenus) + var visibleElements = []; + for (var i = 0; i < allFocusableElements.length; i++) { + var element = allFocusableElements[i]; + var isVisible = this.isElementVisible(element); + if (isVisible) { + visibleElements.push(element); + } + } + + return visibleElements; + }, + + // New function to check if an element is visible + isElementVisible: function(element) { + var style = window.getComputedStyle(element); + var rect = element.getBoundingClientRect(); + + // Check if element is hidden by CSS + if (style.display === 'none' || style.visibility === 'hidden' || style.opacity === '0') { + return false; + } + + // Check if element is in a closed submenu + var submenu = element.closest('.dropdown-menu'); + if (submenu) { + var parentLi = submenu.parentElement; + if (parentLi && !parentLi.classList.contains('current')) { + return false; + } + } + + return true; + }, + + // New function to update focus trap when submenus open/close + updateMenuFocusTrap: function() { + // Only update if mobile menu is active + if (document.body.classList.contains("dt_mobilenav-mainmenu--active")) { + // Small delay to ensure DOM is updated after submenu animation + setTimeout(function() { + // Focus trap will be handled by handleMenuTabNavigation function + // which dynamically gets focusable elements + }, 300); + } + }, + + // New function to set up focus handlers for menu items + setupMenuFocusHandlers: function() { + var mobileMenuContent = document.querySelector(".dt_mobilenav-mainmenu-content"); + if (!mobileMenuContent) return; + + var menuLinks = mobileMenuContent.getElementsByTagName("a"); + var menuButtons = mobileMenuContent.getElementsByTagName("button"); + + // Focus handler function + function focusHandler() { + var currentElement = this; + while (currentElement && currentElement.className.indexOf("dt_mobilenav-mainmenu-inner") === -1) { + if (currentElement.tagName.toLowerCase() === "li") { + if (currentElement.className.indexOf("focus") !== -1) { + currentElement.className = currentElement.className.replace(" focus", ""); + } else { + currentElement.className += " focus"; + } + } + currentElement = currentElement.parentElement; + } + } + + // Add focus handlers to links + for (var i = 0; i < menuLinks.length; i++) { + menuLinks[i].addEventListener("focus", focusHandler, true); + menuLinks[i].addEventListener("blur", focusHandler, true); + } + + // Add focus handlers to buttons + for (var j = 0; j < menuButtons.length; j++) { + menuButtons[j].addEventListener("focus", focusHandler, true); + menuButtons[j].addEventListener("blur", focusHandler, true); + } + }, + + searchPopupHandler: function(c) { + var clickedButton = c.currentTarget; + var searchContainer, searchField, searchToggle; + + // Determine if it's desktop or mobile search based on the clicked button's context + if ($(clickedButton).closest('.dt_navbar').length) { + // Desktop search + searchContainer = $('.dt_navbar .dt_search.search--header'); + searchField = $('.dt_navbar .dt_search-field'); + searchToggle = $('.dt_navbar .dt_navbar-search-toggle'); + } else { + // Mobile search + searchContainer = $('.dt_mobilenav .dt_search.search--header'); + searchField = $('.dt_mobilenav .dt_search-field'); + searchToggle = $('.dt_mobilenav .dt_navbar-search-toggle'); + } + + this.body.toggleClass(this.classes.headerSearchActive); + this.body.toggleClass(this.classes.isOverlay); + + if (this.body.hasClass(this.classes.headerSearchActive)) { + searchField.focus(); + } else { + searchToggle.focus(); + } + + // Call accessibility function with the specific search context + this.searchPopupAccessibility(clickedButton); + }, + + // Updated search popup accessibility function + searchPopupAccessibility: function(clickedButton) { + var searchContainer, searchField; + var self = this; + + // Determine context based on the clicked button + if ($(clickedButton).closest('.dt_navbar').length) { + // Desktop search + searchContainer = document.querySelector('.dt_navbar .search--header'); + searchField = document.querySelector('.dt_navbar .dt_search-field'); + } else { + // Mobile search + searchContainer = document.querySelector('.dt_mobilenav .search--header'); + searchField = document.querySelector('.dt_mobilenav .dt_search-field'); + } + + if (!searchContainer || !searchField) return false; + + // Remove existing search keydown handler if it exists + if (this.searchKeydownHandler) { + document.removeEventListener("keydown", this.searchKeydownHandler); + } + + // Get all focusable elements within the active search container + var focusableElements = searchContainer.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'); + + if (focusableElements.length === 0) return false; + + var firstElement = focusableElements[0]; + var lastElement = focusableElements[focusableElements.length - 1]; + + // Create new keydown handler + this.searchKeydownHandler = function(event) { + if (("Tab" === event.key || 9 === event.keyCode) && + document.body.classList.contains("dt_header-search--active")) { + + if (event.shiftKey) { + // Shift + Tab + if (document.activeElement === firstElement) { + lastElement.focus(); + event.preventDefault(); + } + } else { + // Tab + if (document.activeElement === lastElement) { + firstElement.focus(); + event.preventDefault(); + } + } + } + }; + + document.addEventListener("keydown", this.searchKeydownHandler); + + // Set up focus handlers for search elements + this.setupSearchFocusHandlers(searchContainer); + }, + + // New function to set up focus handlers for search elements + setupSearchFocusHandlers: function(searchContainer) { + if (!searchContainer) return; + + var searchButtons = searchContainer.getElementsByTagName("button"); + var searchInputs = searchContainer.getElementsByTagName("input"); + + // Focus handler function for search elements + function searchFocusHandler() { + var currentElement = this; + while (currentElement && currentElement.className.indexOf("search--header") === -1) { + if (currentElement.tagName.toLowerCase() === "input" || currentElement.tagName.toLowerCase() === "button") { + if (currentElement.className.indexOf("focus") !== -1) { + currentElement.className = currentElement.className.replace(" focus", ""); + } else { + currentElement.className += " focus"; + } + } + currentElement = currentElement.parentElement; + } + } + + // Add focus handlers to buttons + for (var i = 0; i < searchButtons.length; i++) { + searchButtons[i].addEventListener("focus", searchFocusHandler, true); + searchButtons[i].addEventListener("blur", searchFocusHandler, true); + } + + // Add focus handlers to inputs + for (var j = 0; j < searchInputs.length; j++) { + searchInputs[j].addEventListener("focus", searchFocusHandler, true); + searchInputs[j].addEventListener("blur", searchFocusHandler, true); + } + }, + + sidebarPopupHandler: function(d) { + var a = $(".dt_navbar-sidebar-toggle"), + b = $(".dt_sidebar"), + c = $(".dt_sidebar-close"); + this.body.toggleClass(this.classes.headerSidebarActive), this.body.toggleClass(this.classes.isOverlay), a.toggleClass(this.classes.toggled), this.body.hasClass(this.classes.headerSidebarActive) ? (c.focus()) : (a.focus()), this.sidebarPopupAccessibility() + }, + sidebarPopupAccessibility: function() { + var b, a, d, c = document.querySelector(".dt_sidebar"); + var f = document.querySelector(".dt_sidebar-close:not(.off--layer)"), + e = c.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'), + g = e[e.length - 1]; + if (!c) return !1; + for (a = 0, d = (b = c.getElementsByTagName("button")).length; a < d; a++) b[a].addEventListener("focus", h, !0), b[a].addEventListener("blur", h, !0); + + function h() { + for (var a = this; - 1 === a.className.indexOf("dt_sidebar-inner");) "input" === a.tagName.toLowerCase() && (-1 !== a.className.indexOf("focus") ? a.className = a.className.replace("focus", "") : a.className += " focus"), a = a.parentElement + } + document.addEventListener("keydown", function(a) { + ("Tab" === a.key || 9 === a.keyCode) && (a.shiftKey ? document.activeElement === f && (g.focus(), a.preventDefault()) : document.activeElement === g && (f.focus(), a.preventDefault())) + }) + } + }; + a.init() +}(jQuery, window.asConfig); diff --git a/wp-content/themes/chromax/assets/vendors/css/all.css b/wp-content/themes/chromax/assets/vendors/css/all.css new file mode 100644 index 0000000..3857cf8 --- /dev/null +++ b/wp-content/themes/chromax/assets/vendors/css/all.css @@ -0,0 +1,35305 @@ +/*! + * Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2023 Fonticons, Inc. + */ + +.fa { + font-family: var(--fa-style-family, "Font Awesome 6 Free"); + font-weight: var(--fa-style, 900) +} + +.fa, +.fa-brands, +.fa-classic, +.fa-duotone, +.fa-light, +.fa-regular, +.fa-sharp, +.fa-sharp-solid, +.fa-solid, +.fa-thin, +.fab, +.fad, +.fal, +.far, +.fas, +.fasl, +.fasr, +.fass, +.fast, +.fat { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + display: var(--fa-display, inline-block); + font-style: normal; + font-variant: normal; + line-height: 1; + text-rendering: auto +} + +.fa-classic, +.fa-light, +.fa-regular, +.fa-solid, +.fa-thin, +.fal, +.far, +.fas, +.fat { + font-family: "Font Awesome 6 Free" +} + +.fa-brands, +.fab { + font-family: "Font Awesome 6 Brands" +} + +.fa-classic.fa-duotone, +.fa-duotone, +.fad { + font-family: "Font Awesome 6 Duotone" +} + +.fa-sharp, +.fasl, +.fasr, +.fass, +.fast { + font-family: "Font Awesome 6 Sharp" +} + +.fa-sharp, +.fass { + font-weight: 900 +} + +.fa-1x { + font-size: 1em +} + +.fa-2x { + font-size: 2em +} + +.fa-3x { + font-size: 3em +} + +.fa-4x { + font-size: 4em +} + +.fa-5x { + font-size: 5em +} + +.fa-6x { + font-size: 6em +} + +.fa-7x { + font-size: 7em +} + +.fa-8x { + font-size: 8em +} + +.fa-9x { + font-size: 9em +} + +.fa-10x { + font-size: 10em +} + +.fa-2xs { + font-size: .625em; + line-height: .1em; + vertical-align: .225em +} + +.fa-xs { + font-size: .75em; + line-height: .08333em; + vertical-align: .125em +} + +.fa-sm { + font-size: .875em; + line-height: .07143em; + vertical-align: .05357em +} + +.fa-lg { + font-size: 1.25em; + line-height: .05em; + vertical-align: -.075em +} + +.fa-xl { + font-size: 1.5em; + line-height: .04167em; + vertical-align: -.125em +} + +.fa-2xl { + font-size: 2em; + line-height: .03125em; + vertical-align: -.1875em +} + +.fa-fw { + text-align: center; + width: 1.25em +} + +.fa-ul { + list-style-type: none; + margin-left: var(--fa-li-margin, 2.5em); + padding-left: 0 +} + +.fa-ul>li { + position: relative +} + +.fa-li { + left: calc(var(--fa-li-width, 2em)*-1); + position: absolute; + text-align: center; + width: var(--fa-li-width, 2em); + line-height: inherit +} + +.fa-border { + border-radius: var(--fa-border-radius, .1em); + border: var(--fa-border-width, .08em) var(--fa-border-style, solid) var(--fa-border-color, #eee); + padding: var(--fa-border-padding, .2em .25em .15em) +} + +.fa-pull-left { + float: left; + margin-right: var(--fa-pull-margin, .3em) +} + +.fa-pull-right { + float: right; + margin-left: var(--fa-pull-margin, .3em) +} + +.fa-beat { + -webkit-animation-name: fa-beat; + animation-name: fa-beat; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out); + animation-timing-function: var(--fa-animation-timing, ease-in-out) +} + +.fa-bounce { + -webkit-animation-name: fa-bounce; + animation-name: fa-bounce; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(.28, .84, .42, 1)); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(.28, .84, .42, 1)) +} + +.fa-fade { + -webkit-animation-name: fa-fade; + animation-name: fa-fade; + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(.4, 0, .6, 1)); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(.4, 0, .6, 1)) +} + +.fa-beat-fade, +.fa-fade { + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s) +} + +.fa-beat-fade { + -webkit-animation-name: fa-beat-fade; + animation-name: fa-beat-fade; + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(.4, 0, .6, 1)); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(.4, 0, .6, 1)) +} + +.fa-flip { + -webkit-animation-name: fa-flip; + animation-name: fa-flip; + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out); + animation-timing-function: var(--fa-animation-timing, ease-in-out) +} + +.fa-shake { + -webkit-animation-name: fa-shake; + animation-name: fa-shake; + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, linear); + animation-timing-function: var(--fa-animation-timing, linear) +} + +.fa-shake, +.fa-spin { + -webkit-animation-delay: var(--fa-animation-delay, 0s); + animation-delay: var(--fa-animation-delay, 0s); + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal) +} + +.fa-spin { + -webkit-animation-name: fa-spin; + animation-name: fa-spin; + -webkit-animation-duration: var(--fa-animation-duration, 2s); + animation-duration: var(--fa-animation-duration, 2s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, linear); + animation-timing-function: var(--fa-animation-timing, linear) +} + +.fa-spin-reverse { + --fa-animation-direction: reverse +} + +.fa-pulse, +.fa-spin-pulse { + -webkit-animation-name: fa-spin; + animation-name: fa-spin; + -webkit-animation-direction: var(--fa-animation-direction, normal); + animation-direction: var(--fa-animation-direction, normal); + -webkit-animation-duration: var(--fa-animation-duration, 1s); + animation-duration: var(--fa-animation-duration, 1s); + -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + -webkit-animation-timing-function: var(--fa-animation-timing, steps(8)); + animation-timing-function: var(--fa-animation-timing, steps(8)) +} + +@media (prefers-reduced-motion:reduce) { + .fa-beat, + .fa-beat-fade, + .fa-bounce, + .fa-fade, + .fa-flip, + .fa-pulse, + .fa-shake, + .fa-spin, + .fa-spin-pulse { + -webkit-animation-delay: -1ms; + animation-delay: -1ms; + -webkit-animation-duration: 1ms; + animation-duration: 1ms; + -webkit-animation-iteration-count: 1; + animation-iteration-count: 1; + -webkit-transition-delay: 0s; + transition-delay: 0s; + -webkit-transition-duration: 0s; + transition-duration: 0s + } +} + +@-webkit-keyframes fa-beat { + 0%, + 90% { + -webkit-transform: scale(1); + transform: scale(1) + } + 45% { + -webkit-transform: scale(var(--fa-beat-scale, 1.25)); + transform: scale(var(--fa-beat-scale, 1.25)) + } +} + +@keyframes fa-beat { + 0%, + 90% { + -webkit-transform: scale(1); + transform: scale(1) + } + 45% { + -webkit-transform: scale(var(--fa-beat-scale, 1.25)); + transform: scale(var(--fa-beat-scale, 1.25)) + } +} + +@-webkit-keyframes fa-bounce { + 0% { + -webkit-transform: scale(1) translateY(0); + transform: scale(1) translateY(0) + } + 10% { + -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, .9)) translateY(0); + transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, .9)) translateY(0) + } + 30% { + -webkit-transform: scale(var(--fa-bounce-jump-scale-x, .9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -.5em)); + transform: scale(var(--fa-bounce-jump-scale-x, .9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -.5em)) + } + 50% { + -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, .95)) translateY(0); + transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, .95)) translateY(0) + } + 57% { + -webkit-transform: scale(1) translateY(var(--fa-bounce-rebound, -.125em)); + transform: scale(1) translateY(var(--fa-bounce-rebound, -.125em)) + } + 64% { + -webkit-transform: scale(1) translateY(0); + transform: scale(1) translateY(0) + } + to { + -webkit-transform: scale(1) translateY(0); + transform: scale(1) translateY(0) + } +} + +@keyframes fa-bounce { + 0% { + -webkit-transform: scale(1) translateY(0); + transform: scale(1) translateY(0) + } + 10% { + -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, .9)) translateY(0); + transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, .9)) translateY(0) + } + 30% { + -webkit-transform: scale(var(--fa-bounce-jump-scale-x, .9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -.5em)); + transform: scale(var(--fa-bounce-jump-scale-x, .9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -.5em)) + } + 50% { + -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, .95)) translateY(0); + transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, .95)) translateY(0) + } + 57% { + -webkit-transform: scale(1) translateY(var(--fa-bounce-rebound, -.125em)); + transform: scale(1) translateY(var(--fa-bounce-rebound, -.125em)) + } + 64% { + -webkit-transform: scale(1) translateY(0); + transform: scale(1) translateY(0) + } + to { + -webkit-transform: scale(1) translateY(0); + transform: scale(1) translateY(0) + } +} + +@-webkit-keyframes fa-fade { + 50% { + opacity: var(--fa-fade-opacity, .4) + } +} + +@keyframes fa-fade { + 50% { + opacity: var(--fa-fade-opacity, .4) + } +} + +@-webkit-keyframes fa-beat-fade { + 0%, + to { + opacity: var(--fa-beat-fade-opacity, .4); + -webkit-transform: scale(1); + transform: scale(1) + } + 50% { + opacity: 1; + -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125)); + transform: scale(var(--fa-beat-fade-scale, 1.125)) + } +} + +@keyframes fa-beat-fade { + 0%, + to { + opacity: var(--fa-beat-fade-opacity, .4); + -webkit-transform: scale(1); + transform: scale(1) + } + 50% { + opacity: 1; + -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125)); + transform: scale(var(--fa-beat-fade-scale, 1.125)) + } +} + +@-webkit-keyframes fa-flip { + 50% { + -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); + transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)) + } +} + +@keyframes fa-flip { + 50% { + -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); + transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)) + } +} + +@-webkit-keyframes fa-shake { + 0% { + -webkit-transform: rotate(-15deg); + transform: rotate(-15deg) + } + 4% { + -webkit-transform: rotate(15deg); + transform: rotate(15deg) + } + 8%, + 24% { + -webkit-transform: rotate(-18deg); + transform: rotate(-18deg) + } + 12%, + 28% { + -webkit-transform: rotate(18deg); + transform: rotate(18deg) + } + 16% { + -webkit-transform: rotate(-22deg); + transform: rotate(-22deg) + } + 20% { + -webkit-transform: rotate(22deg); + transform: rotate(22deg) + } + 32% { + -webkit-transform: rotate(-12deg); + transform: rotate(-12deg) + } + 36% { + -webkit-transform: rotate(12deg); + transform: rotate(12deg) + } + 40%, + to { + -webkit-transform: rotate(0deg); + transform: rotate(0deg) + } +} + +@keyframes fa-shake { + 0% { + -webkit-transform: rotate(-15deg); + transform: rotate(-15deg) + } + 4% { + -webkit-transform: rotate(15deg); + transform: rotate(15deg) + } + 8%, + 24% { + -webkit-transform: rotate(-18deg); + transform: rotate(-18deg) + } + 12%, + 28% { + -webkit-transform: rotate(18deg); + transform: rotate(18deg) + } + 16% { + -webkit-transform: rotate(-22deg); + transform: rotate(-22deg) + } + 20% { + -webkit-transform: rotate(22deg); + transform: rotate(22deg) + } + 32% { + -webkit-transform: rotate(-12deg); + transform: rotate(-12deg) + } + 36% { + -webkit-transform: rotate(12deg); + transform: rotate(12deg) + } + 40%, + to { + -webkit-transform: rotate(0deg); + transform: rotate(0deg) + } +} + +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg) + } + to { + -webkit-transform: rotate(1turn); + transform: rotate(1turn) + } +} + +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg) + } + to { + -webkit-transform: rotate(1turn); + transform: rotate(1turn) + } +} + +.fa-rotate-90 { + -webkit-transform: rotate(90deg); + transform: rotate(90deg) +} + +.fa-rotate-180 { + -webkit-transform: rotate(180deg); + transform: rotate(180deg) +} + +.fa-rotate-270 { + -webkit-transform: rotate(270deg); + transform: rotate(270deg) +} + +.fa-flip-horizontal { + -webkit-transform: scaleX(-1); + transform: scaleX(-1) +} + +.fa-flip-vertical { + -webkit-transform: scaleY(-1); + transform: scaleY(-1) +} + +.fa-flip-both, +.fa-flip-horizontal.fa-flip-vertical { + -webkit-transform: scale(-1); + transform: scale(-1) +} + +.fa-rotate-by { + -webkit-transform: rotate(var(--fa-rotate-angle, none)); + transform: rotate(var(--fa-rotate-angle, none)) +} + +.fa-stack { + display: inline-block; + height: 2em; + line-height: 2em; + position: relative; + vertical-align: middle; + width: 2.5em +} + +.fa-stack-1x, +.fa-stack-2x { + left: 0; + position: absolute; + text-align: center; + width: 100%; + z-index: var(--fa-stack-z-index, auto) +} + +.fa-stack-1x { + line-height: inherit +} + +.fa-stack-2x { + font-size: 2em +} + +.fa-inverse { + color: var(--fa-inverse, #fff) +} + +.fa-0:before { + content: "\30" +} + +.fa-1:before { + content: "\31" +} + +.fa-2:before { + content: "\32" +} + +.fa-3:before { + content: "\33" +} + +.fa-4:before { + content: "\34" +} + +.fa-5:before { + content: "\35" +} + +.fa-6:before { + content: "\36" +} + +.fa-7:before { + content: "\37" +} + +.fa-8:before { + content: "\38" +} + +.fa-9:before { + content: "\39" +} + +.fa-fill-drip:before { + content: "\f576" +} + +.fa-arrows-to-circle:before { + content: "\e4bd" +} + +.fa-chevron-circle-right:before, +.fa-circle-chevron-right:before { + content: "\f138" +} + +.fa-wagon-covered:before { + content: "\f8ee" +} + +.fa-line-height:before { + content: "\f871" +} + +.fa-bagel:before { + content: "\e3d7" +} + +.fa-transporter-7:before { + content: "\e2a8" +} + +.fa-at:before { + content: "\40" +} + +.fa-rectangles-mixed:before { + content: "\e323" +} + +.fa-phone-arrow-up-right:before, +.fa-phone-arrow-up:before, +.fa-phone-outgoing:before { + content: "\e224" +} + +.fa-trash-alt:before, +.fa-trash-can:before { + content: "\f2ed" +} + +.fa-circle-l:before { + content: "\e114" +} + +.fa-head-side-goggles:before, +.fa-head-vr:before { + content: "\f6ea" +} + +.fa-text-height:before { + content: "\f034" +} + +.fa-user-times:before, +.fa-user-xmark:before { + content: "\f235" +} + +.fa-face-hand-yawn:before { + content: "\e379" +} + +.fa-gauge-simple-min:before, +.fa-tachometer-slowest:before { + content: "\f62d" +} + +.fa-stethoscope:before { + content: "\f0f1" +} + +.fa-coffin:before { + content: "\f6c6" +} + +.fa-comment-alt:before, +.fa-message:before { + content: "\f27a" +} + +.fa-bowl-salad:before, +.fa-salad:before { + content: "\f81e" +} + +.fa-info:before { + content: "\f129" +} + +.fa-robot-astromech:before { + content: "\e2d2" +} + +.fa-ring-diamond:before { + content: "\e5ab" +} + +.fa-fondue-pot:before { + content: "\e40d" +} + +.fa-theta:before { + content: "\f69e" +} + +.fa-face-hand-peeking:before { + content: "\e481" +} + +.fa-square-user:before { + content: "\e283" +} + +.fa-compress-alt:before, +.fa-down-left-and-up-right-to-center:before { + content: "\f422" +} + +.fa-explosion:before { + content: "\e4e9" +} + +.fa-file-alt:before, +.fa-file-lines:before, +.fa-file-text:before { + content: "\f15c" +} + +.fa-wave-square:before { + content: "\f83e" +} + +.fa-ring:before { + content: "\f70b" +} + +.fa-building-un:before { + content: "\e4d9" +} + +.fa-dice-three:before { + content: "\f527" +} + +.fa-tire-pressure-warning:before { + content: "\f633" +} + +.fa-wifi-2:before, +.fa-wifi-fair:before { + content: "\f6ab" +} + +.fa-calendar-alt:before, +.fa-calendar-days:before { + content: "\f073" +} + +.fa-mp3-player:before { + content: "\f8ce" +} + +.fa-anchor-circle-check:before { + content: "\e4aa" +} + +.fa-tally-4:before { + content: "\e297" +} + +.fa-rectangle-history:before { + content: "\e4a2" +} + +.fa-building-circle-arrow-right:before { + content: "\e4d1" +} + +.fa-volleyball-ball:before, +.fa-volleyball:before { + content: "\f45f" +} + +.fa-sun-haze:before { + content: "\f765" +} + +.fa-text-size:before { + content: "\f894" +} + +.fa-ufo:before { + content: "\e047" +} + +.fa-fork:before, +.fa-utensil-fork:before { + content: "\f2e3" +} + +.fa-arrows-up-to-line:before { + content: "\e4c2" +} + +.fa-mobile-signal:before { + content: "\e1ef" +} + +.fa-barcode-scan:before { + content: "\f465" +} + +.fa-sort-desc:before, +.fa-sort-down:before { + content: "\f0dd" +} + +.fa-folder-arrow-down:before, +.fa-folder-download:before { + content: "\e053" +} + +.fa-circle-minus:before, +.fa-minus-circle:before { + content: "\f056" +} + +.fa-face-icicles:before { + content: "\e37c" +} + +.fa-shovel:before { + content: "\f713" +} + +.fa-door-open:before { + content: "\f52b" +} + +.fa-films:before { + content: "\e17a" +} + +.fa-right-from-bracket:before, +.fa-sign-out-alt:before { + content: "\f2f5" +} + +.fa-face-glasses:before { + content: "\e377" +} + +.fa-nfc:before { + content: "\e1f7" +} + +.fa-atom:before { + content: "\f5d2" +} + +.fa-soap:before { + content: "\e06e" +} + +.fa-heart-music-camera-bolt:before, +.fa-icons:before { + content: "\f86d" +} + +.fa-microphone-alt-slash:before, +.fa-microphone-lines-slash:before { + content: "\f539" +} + +.fa-closed-captioning-slash:before { + content: "\e135" +} + +.fa-calculator-alt:before, +.fa-calculator-simple:before { + content: "\f64c" +} + +.fa-bridge-circle-check:before { + content: "\e4c9" +} + +.fa-sliders-up:before, +.fa-sliders-v:before { + content: "\f3f1" +} + +.fa-location-minus:before, +.fa-map-marker-minus:before { + content: "\f609" +} + +.fa-pump-medical:before { + content: "\e06a" +} + +.fa-fingerprint:before { + content: "\f577" +} + +.fa-ski-boot:before { + content: "\e3cc" +} + +.fa-rectangle-sd:before, +.fa-standard-definition:before { + content: "\e28a" +} + +.fa-h1:before { + content: "\f313" +} + +.fa-hand-point-right:before { + content: "\f0a4" +} + +.fa-magnifying-glass-location:before, +.fa-search-location:before { + content: "\f689" +} + +.fa-message-bot:before { + content: "\e3b8" +} + +.fa-forward-step:before, +.fa-step-forward:before { + content: "\f051" +} + +.fa-face-smile-beam:before, +.fa-smile-beam:before { + content: "\f5b8" +} + +.fa-light-ceiling:before { + content: "\e016" +} + +.fa-comment-alt-exclamation:before, +.fa-message-exclamation:before { + content: "\f4a5" +} + +.fa-bowl-scoop:before, +.fa-bowl-shaved-ice:before { + content: "\e3de" +} + +.fa-square-x:before { + content: "\e286" +} + +.fa-building-memo:before { + content: "\e61e" +} + +.fa-utility-pole-double:before { + content: "\e2c4" +} + +.fa-flag-checkered:before { + content: "\f11e" +} + +.fa-chevron-double-up:before, +.fa-chevrons-up:before { + content: "\f325" +} + +.fa-football-ball:before, +.fa-football:before { + content: "\f44e" +} + +.fa-user-vneck:before { + content: "\e461" +} + +.fa-school-circle-exclamation:before { + content: "\e56c" +} + +.fa-crop:before { + content: "\f125" +} + +.fa-angle-double-down:before, +.fa-angles-down:before { + content: "\f103" +} + +.fa-users-rectangle:before { + content: "\e594" +} + +.fa-people-roof:before { + content: "\e537" +} + +.fa-arrow-square-right:before, +.fa-square-arrow-right:before { + content: "\f33b" +} + +.fa-location-plus:before, +.fa-map-marker-plus:before { + content: "\f60a" +} + +.fa-lightbulb-exclamation-on:before { + content: "\e1ca" +} + +.fa-people-line:before { + content: "\e534" +} + +.fa-beer-mug-empty:before, +.fa-beer:before { + content: "\f0fc" +} + +.fa-crate-empty:before { + content: "\e151" +} + +.fa-diagram-predecessor:before { + content: "\e477" +} + +.fa-transporter:before { + content: "\e042" +} + +.fa-calendar-circle-user:before { + content: "\e471" +} + +.fa-arrow-up-long:before, +.fa-long-arrow-up:before { + content: "\f176" +} + +.fa-person-carry-box:before, +.fa-person-carry:before { + content: "\f4cf" +} + +.fa-burn:before, +.fa-fire-flame-simple:before { + content: "\f46a" +} + +.fa-male:before, +.fa-person:before { + content: "\f183" +} + +.fa-laptop:before { + content: "\f109" +} + +.fa-file-csv:before { + content: "\f6dd" +} + +.fa-menorah:before { + content: "\f676" +} + +.fa-union:before { + content: "\f6a2" +} + +.fa-chevron-double-left:before, +.fa-chevrons-left:before { + content: "\f323" +} + +.fa-circle-heart:before, +.fa-heart-circle:before { + content: "\f4c7" +} + +.fa-truck-plane:before { + content: "\e58f" +} + +.fa-record-vinyl:before { + content: "\f8d9" +} + +.fa-bring-forward:before { + content: "\f856" +} + +.fa-square-p:before { + content: "\e279" +} + +.fa-face-grin-stars:before, +.fa-grin-stars:before { + content: "\f587" +} + +.fa-sigma:before { + content: "\f68b" +} + +.fa-camera-movie:before { + content: "\f8a9" +} + +.fa-bong:before { + content: "\f55c" +} + +.fa-clarinet:before { + content: "\f8ad" +} + +.fa-truck-flatbed:before { + content: "\e2b6" +} + +.fa-pastafarianism:before, +.fa-spaghetti-monster-flying:before { + content: "\f67b" +} + +.fa-arrow-down-up-across-line:before { + content: "\e4af" +} + +.fa-arrows-rotate-reverse:before { + content: "\e630" +} + +.fa-leaf-heart:before { + content: "\f4cb" +} + +.fa-house-building:before { + content: "\e1b1" +} + +.fa-cheese-swiss:before { + content: "\f7f0" +} + +.fa-spoon:before, +.fa-utensil-spoon:before { + content: "\f2e5" +} + +.fa-jar-wheat:before { + content: "\e517" +} + +.fa-envelopes-bulk:before, +.fa-mail-bulk:before { + content: "\f674" +} + +.fa-file-circle-exclamation:before { + content: "\e4eb" +} + +.fa-bow-arrow:before { + content: "\f6b9" +} + +.fa-cart-xmark:before { + content: "\e0dd" +} + +.fa-hexagon-xmark:before, +.fa-times-hexagon:before, +.fa-xmark-hexagon:before { + content: "\f2ee" +} + +.fa-circle-h:before, +.fa-hospital-symbol:before { + content: "\f47e" +} + +.fa-merge:before { + content: "\e526" +} + +.fa-pager:before { + content: "\f815" +} + +.fa-cart-minus:before { + content: "\e0db" +} + +.fa-address-book:before, +.fa-contact-book:before { + content: "\f2b9" +} + +.fa-pan-frying:before { + content: "\e42c" +} + +.fa-grid-3:before, +.fa-grid:before { + content: "\e195" +} + +.fa-football-helmet:before { + content: "\f44f" +} + +.fa-hand-love:before { + content: "\e1a5" +} + +.fa-trees:before { + content: "\f724" +} + +.fa-strikethrough:before { + content: "\f0cc" +} + +.fa-page:before { + content: "\e428" +} + +.fa-k:before { + content: "\4b" +} + +.fa-diagram-previous:before { + content: "\e478" +} + +.fa-gauge-min:before, +.fa-tachometer-alt-slowest:before { + content: "\f628" +} + +.fa-folder-grid:before { + content: "\e188" +} + +.fa-eggplant:before { + content: "\e16c" +} + +.fa-excavator:before { + content: "\e656" +} + +.fa-ram:before { + content: "\f70a" +} + +.fa-landmark-flag:before { + content: "\e51c" +} + +.fa-lips:before { + content: "\f600" +} + +.fa-pencil-alt:before, +.fa-pencil:before { + content: "\f303" +} + +.fa-backward:before { + content: "\f04a" +} + +.fa-caret-right:before { + content: "\f0da" +} + +.fa-comments:before { + content: "\f086" +} + +.fa-file-clipboard:before, +.fa-paste:before { + content: "\f0ea" +} + +.fa-desktop-arrow-down:before { + content: "\e155" +} + +.fa-code-pull-request:before { + content: "\e13c" +} + +.fa-pumpkin:before { + content: "\f707" +} + +.fa-clipboard-list:before { + content: "\f46d" +} + +.fa-pen-field:before { + content: "\e211" +} + +.fa-blueberries:before { + content: "\e2e8" +} + +.fa-truck-loading:before, +.fa-truck-ramp-box:before { + content: "\f4de" +} + +.fa-note:before { + content: "\e1ff" +} + +.fa-arrow-down-to-square:before { + content: "\e096" +} + +.fa-user-check:before { + content: "\f4fc" +} + +.fa-cloud-xmark:before { + content: "\e35f" +} + +.fa-vial-virus:before { + content: "\e597" +} + +.fa-book-alt:before, +.fa-book-blank:before { + content: "\f5d9" +} + +.fa-golf-flag-hole:before { + content: "\e3ac" +} + +.fa-comment-alt-arrow-down:before, +.fa-message-arrow-down:before { + content: "\e1db" +} + +.fa-face-unamused:before { + content: "\e39f" +} + +.fa-sheet-plastic:before { + content: "\e571" +} + +.fa-circle-9:before { + content: "\e0f6" +} + +.fa-blog:before { + content: "\f781" +} + +.fa-user-ninja:before { + content: "\f504" +} + +.fa-pencil-slash:before { + content: "\e215" +} + +.fa-bowling-pins:before { + content: "\f437" +} + +.fa-person-arrow-up-from-line:before { + content: "\e539" +} + +.fa-down-right:before { + content: "\e16b" +} + +.fa-scroll-torah:before, +.fa-torah:before { + content: "\f6a0" +} + +.fa-webhook:before { + content: "\e5d5" +} + +.fa-blinds-open:before { + content: "\f8fc" +} + +.fa-fence:before { + content: "\e303" +} + +.fa-arrow-alt-up:before, +.fa-up:before { + content: "\f357" +} + +.fa-broom-ball:before, +.fa-quidditch-broom-ball:before, +.fa-quidditch:before { + content: "\f458" +} + +.fa-drumstick:before { + content: "\f6d6" +} + +.fa-square-v:before { + content: "\e284" +} + +.fa-face-awesome:before, +.fa-gave-dandy:before { + content: "\e409" +} + +.fa-dial-off:before { + content: "\e162" +} + +.fa-toggle-off:before { + content: "\f204" +} + +.fa-face-smile-horns:before { + content: "\e391" +} + +.fa-archive:before, +.fa-box-archive:before { + content: "\f187" +} + +.fa-grapes:before { + content: "\e306" +} + +.fa-person-drowning:before { + content: "\e545" +} + +.fa-dial-max:before { + content: "\e15e" +} + +.fa-circle-m:before { + content: "\e115" +} + +.fa-calendar-image:before { + content: "\e0d4" +} + +.fa-caret-circle-down:before, +.fa-circle-caret-down:before { + content: "\f32d" +} + +.fa-arrow-down-9-1:before, +.fa-sort-numeric-desc:before, +.fa-sort-numeric-down-alt:before { + content: "\f886" +} + +.fa-face-grin-tongue-squint:before, +.fa-grin-tongue-squint:before { + content: "\f58a" +} + +.fa-shish-kebab:before { + content: "\f821" +} + +.fa-spray-can:before { + content: "\f5bd" +} + +.fa-alarm-snooze:before { + content: "\f845" +} + +.fa-scarecrow:before { + content: "\f70d" +} + +.fa-truck-monster:before { + content: "\f63b" +} + +.fa-gift-card:before { + content: "\f663" +} + +.fa-w:before { + content: "\57" +} + +.fa-code-pull-request-draft:before { + content: "\e3fa" +} + +.fa-square-b:before { + content: "\e264" +} + +.fa-elephant:before { + content: "\f6da" +} + +.fa-earth-africa:before, +.fa-globe-africa:before { + content: "\f57c" +} + +.fa-rainbow:before { + content: "\f75b" +} + +.fa-circle-notch:before { + content: "\f1ce" +} + +.fa-tablet-alt:before, +.fa-tablet-screen-button:before { + content: "\f3fa" +} + +.fa-paw:before { + content: "\f1b0" +} + +.fa-message-question:before { + content: "\e1e3" +} + +.fa-cloud:before { + content: "\f0c2" +} + +.fa-trowel-bricks:before { + content: "\e58a" +} + +.fa-square-3:before { + content: "\e258" +} + +.fa-face-flushed:before, +.fa-flushed:before { + content: "\f579" +} + +.fa-hospital-user:before { + content: "\f80d" +} + +.fa-microwave:before { + content: "\e01b" +} + +.fa-chf-sign:before { + content: "\e602" +} + +.fa-tent-arrow-left-right:before { + content: "\e57f" +} + +.fa-cart-circle-arrow-up:before { + content: "\e3f0" +} + +.fa-trash-clock:before { + content: "\e2b0" +} + +.fa-gavel:before, +.fa-legal:before { + content: "\f0e3" +} + +.fa-sprinkler-ceiling:before { + content: "\e44c" +} + +.fa-browsers:before { + content: "\e0cb" +} + +.fa-trillium:before { + content: "\e588" +} + +.fa-music-slash:before { + content: "\f8d1" +} + +.fa-truck-ramp:before { + content: "\f4e0" +} + +.fa-binoculars:before { + content: "\f1e5" +} + +.fa-microphone-slash:before { + content: "\f131" +} + +.fa-box-tissue:before { + content: "\e05b" +} + +.fa-circle-c:before { + content: "\e101" +} + +.fa-star-christmas:before { + content: "\f7d4" +} + +.fa-chart-bullet:before { + content: "\e0e1" +} + +.fa-motorcycle:before { + content: "\f21c" +} + +.fa-tree-christmas:before { + content: "\f7db" +} + +.fa-tire-flat:before { + content: "\f632" +} + +.fa-sunglasses:before { + content: "\f892" +} + +.fa-badge:before { + content: "\f335" +} + +.fa-comment-alt-edit:before, +.fa-message-edit:before, +.fa-message-pen:before { + content: "\f4a4" +} + +.fa-bell-concierge:before, +.fa-concierge-bell:before { + content: "\f562" +} + +.fa-pen-ruler:before, +.fa-pencil-ruler:before { + content: "\f5ae" +} + +.fa-file-mp3:before { + content: "\e648" +} + +.fa-arrow-progress:before { + content: "\e5df" +} + +.fa-chess-rook-alt:before, +.fa-chess-rook-piece:before { + content: "\f448" +} + +.fa-square-root:before { + content: "\f697" +} + +.fa-album-collection-circle-plus:before { + content: "\e48e" +} + +.fa-people-arrows-left-right:before, +.fa-people-arrows:before { + content: "\e068" +} + +.fa-sign-post:before { + content: "\e624" +} + +.fa-face-angry-horns:before { + content: "\e368" +} + +.fa-mars-and-venus-burst:before { + content: "\e523" +} + +.fa-tombstone:before { + content: "\f720" +} + +.fa-caret-square-right:before, +.fa-square-caret-right:before { + content: "\f152" +} + +.fa-cut:before, +.fa-scissors:before { + content: "\f0c4" +} + +.fa-list-music:before { + content: "\f8c9" +} + +.fa-sun-plant-wilt:before { + content: "\e57a" +} + +.fa-toilets-portable:before { + content: "\e584" +} + +.fa-hockey-puck:before { + content: "\f453" +} + +.fa-mustache:before { + content: "\e5bc" +} + +.fa-hyphen:before { + content: "\2d" +} + +.fa-table:before { + content: "\f0ce" +} + +.fa-user-chef:before { + content: "\e3d2" +} + +.fa-comment-alt-image:before, +.fa-message-image:before { + content: "\e1e0" +} + +.fa-users-medical:before { + content: "\f830" +} + +.fa-sensor-alert:before, +.fa-sensor-triangle-exclamation:before { + content: "\e029" +} + +.fa-magnifying-glass-arrow-right:before { + content: "\e521" +} + +.fa-digital-tachograph:before, +.fa-tachograph-digital:before { + content: "\f566" +} + +.fa-face-mask:before { + content: "\e37f" +} + +.fa-pickleball:before { + content: "\e435" +} + +.fa-star-sharp-half:before { + content: "\e28c" +} + +.fa-users-slash:before { + content: "\e073" +} + +.fa-clover:before { + content: "\e139" +} + +.fa-meat:before { + content: "\f814" +} + +.fa-mail-reply:before, +.fa-reply:before { + content: "\f3e5" +} + +.fa-star-and-crescent:before { + content: "\f699" +} + +.fa-empty-set:before { + content: "\f656" +} + +.fa-house-fire:before { + content: "\e50c" +} + +.fa-minus-square:before, +.fa-square-minus:before { + content: "\f146" +} + +.fa-helicopter:before { + content: "\f533" +} + +.fa-bird:before { + content: "\e469" +} + +.fa-compass:before { + content: "\f14e" +} + +.fa-caret-square-down:before, +.fa-square-caret-down:before { + content: "\f150" +} + +.fa-heart-half-alt:before, +.fa-heart-half-stroke:before { + content: "\e1ac" +} + +.fa-file-circle-question:before { + content: "\e4ef" +} + +.fa-truck-utensils:before { + content: "\e628" +} + +.fa-laptop-code:before { + content: "\f5fc" +} + +.fa-joystick:before { + content: "\f8c5" +} + +.fa-grill-fire:before { + content: "\e5a4" +} + +.fa-rectangle-vertical-history:before { + content: "\e237" +} + +.fa-swatchbook:before { + content: "\f5c3" +} + +.fa-prescription-bottle:before { + content: "\f485" +} + +.fa-bars:before, +.fa-navicon:before { + content: "\f0c9" +} + +.fa-keyboard-left:before { + content: "\e1c3" +} + +.fa-people-group:before { + content: "\e533" +} + +.fa-hourglass-3:before, +.fa-hourglass-end:before { + content: "\f253" +} + +.fa-heart-broken:before, +.fa-heart-crack:before { + content: "\f7a9" +} + +.fa-face-beam-hand-over-mouth:before { + content: "\e47c" +} + +.fa-droplet-percent:before, +.fa-humidity:before { + content: "\f750" +} + +.fa-external-link-square-alt:before, +.fa-square-up-right:before { + content: "\f360" +} + +.fa-face-kiss-beam:before, +.fa-kiss-beam:before { + content: "\f597" +} + +.fa-corn:before { + content: "\f6c7" +} + +.fa-roller-coaster:before { + content: "\e324" +} + +.fa-photo-film-music:before { + content: "\e228" +} + +.fa-radar:before { + content: "\e024" +} + +.fa-sickle:before { + content: "\f822" +} + +.fa-film:before { + content: "\f008" +} + +.fa-coconut:before { + content: "\e2f6" +} + +.fa-ruler-horizontal:before { + content: "\f547" +} + +.fa-shield-cross:before { + content: "\f712" +} + +.fa-cassette-tape:before { + content: "\f8ab" +} + +.fa-square-terminal:before { + content: "\e32a" +} + +.fa-people-robbery:before { + content: "\e536" +} + +.fa-lightbulb:before { + content: "\f0eb" +} + +.fa-caret-left:before { + content: "\f0d9" +} + +.fa-comment-middle:before { + content: "\e149" +} + +.fa-trash-can-list:before { + content: "\e2ab" +} + +.fa-block:before { + content: "\e46a" +} + +.fa-circle-exclamation:before, +.fa-exclamation-circle:before { + content: "\f06a" +} + +.fa-school-circle-xmark:before { + content: "\e56d" +} + +.fa-arrow-right-from-bracket:before, +.fa-sign-out:before { + content: "\f08b" +} + +.fa-face-frown-slight:before { + content: "\e376" +} + +.fa-chevron-circle-down:before, +.fa-circle-chevron-down:before { + content: "\f13a" +} + +.fa-sidebar-flip:before { + content: "\e24f" +} + +.fa-unlock-alt:before, +.fa-unlock-keyhole:before { + content: "\f13e" +} + +.fa-temperature-list:before { + content: "\e299" +} + +.fa-cloud-showers-heavy:before { + content: "\f740" +} + +.fa-headphones-alt:before, +.fa-headphones-simple:before { + content: "\f58f" +} + +.fa-sitemap:before { + content: "\f0e8" +} + +.fa-pipe-section:before { + content: "\e438" +} + +.fa-space-station-moon-alt:before, +.fa-space-station-moon-construction:before { + content: "\e034" +} + +.fa-circle-dollar-to-slot:before, +.fa-donate:before { + content: "\f4b9" +} + +.fa-memory:before { + content: "\f538" +} + +.fa-face-sleeping:before { + content: "\e38d" +} + +.fa-road-spikes:before { + content: "\e568" +} + +.fa-fire-burner:before { + content: "\e4f1" +} + +.fa-squirrel:before { + content: "\f71a" +} + +.fa-arrow-to-top:before, +.fa-arrow-up-to-line:before { + content: "\f341" +} + +.fa-flag:before { + content: "\f024" +} + +.fa-face-cowboy-hat:before { + content: "\e36e" +} + +.fa-hanukiah:before { + content: "\f6e6" +} + +.fa-chart-scatter-3d:before { + content: "\e0e8" +} + +.fa-display-chart-up:before { + content: "\e5e3" +} + +.fa-square-code:before { + content: "\e267" +} + +.fa-feather:before { + content: "\f52d" +} + +.fa-volume-down:before, +.fa-volume-low:before { + content: "\f027" +} + +.fa-times-to-slot:before, +.fa-vote-nay:before, +.fa-xmark-to-slot:before { + content: "\f771" +} + +.fa-box-alt:before, +.fa-box-taped:before { + content: "\f49a" +} + +.fa-comment-slash:before { + content: "\f4b3" +} + +.fa-swords:before { + content: "\f71d" +} + +.fa-cloud-sun-rain:before { + content: "\f743" +} + +.fa-album:before { + content: "\f89f" +} + +.fa-circle-n:before { + content: "\e118" +} + +.fa-compress:before { + content: "\f066" +} + +.fa-wheat-alt:before, +.fa-wheat-awn:before { + content: "\e2cd" +} + +.fa-ankh:before { + content: "\f644" +} + +.fa-hands-holding-child:before { + content: "\e4fa" +} + +.fa-asterisk:before { + content: "\2a" +} + +.fa-key-skeleton-left-right:before { + content: "\e3b4" +} + +.fa-comment-lines:before { + content: "\f4b0" +} + +.fa-luchador-mask:before, +.fa-luchador:before, +.fa-mask-luchador:before { + content: "\f455" +} + +.fa-check-square:before, +.fa-square-check:before { + content: "\f14a" +} + +.fa-shredder:before { + content: "\f68a" +} + +.fa-book-open-alt:before, +.fa-book-open-cover:before { + content: "\e0c0" +} + +.fa-sandwich:before { + content: "\f81f" +} + +.fa-peseta-sign:before { + content: "\e221" +} + +.fa-parking-slash:before, +.fa-square-parking-slash:before { + content: "\f617" +} + +.fa-train-tunnel:before { + content: "\e454" +} + +.fa-header:before, +.fa-heading:before { + content: "\f1dc" +} + +.fa-ghost:before { + content: "\f6e2" +} + +.fa-face-anguished:before { + content: "\e369" +} + +.fa-hockey-sticks:before { + content: "\f454" +} + +.fa-abacus:before { + content: "\f640" +} + +.fa-film-alt:before, +.fa-film-simple:before { + content: "\f3a0" +} + +.fa-list-squares:before, +.fa-list:before { + content: "\f03a" +} + +.fa-tree-palm:before { + content: "\f82b" +} + +.fa-phone-square-alt:before, +.fa-square-phone-flip:before { + content: "\f87b" +} + +.fa-cart-plus:before { + content: "\f217" +} + +.fa-gamepad:before { + content: "\f11b" +} + +.fa-border-center-v:before { + content: "\f89d" +} + +.fa-circle-dot:before, +.fa-dot-circle:before { + content: "\f192" +} + +.fa-clipboard-medical:before { + content: "\e133" +} + +.fa-dizzy:before, +.fa-face-dizzy:before { + content: "\f567" +} + +.fa-egg:before { + content: "\f7fb" +} + +.fa-arrow-alt-to-top:before, +.fa-up-to-line:before { + content: "\f34d" +} + +.fa-house-medical-circle-xmark:before { + content: "\e513" +} + +.fa-watch-fitness:before { + content: "\f63e" +} + +.fa-clock-nine-thirty:before { + content: "\e34d" +} + +.fa-campground:before { + content: "\f6bb" +} + +.fa-folder-plus:before { + content: "\f65e" +} + +.fa-jug:before { + content: "\f8c6" +} + +.fa-futbol-ball:before, +.fa-futbol:before, +.fa-soccer-ball:before { + content: "\f1e3" +} + +.fa-snow-blowing:before { + content: "\f761" +} + +.fa-paint-brush:before, +.fa-paintbrush:before { + content: "\f1fc" +} + +.fa-lock:before { + content: "\f023" +} + +.fa-arrow-down-from-line:before, +.fa-arrow-from-top:before { + content: "\f345" +} + +.fa-gas-pump:before { + content: "\f52f" +} + +.fa-signal-alt-slash:before, +.fa-signal-bars-slash:before { + content: "\f694" +} + +.fa-monkey:before { + content: "\f6fb" +} + +.fa-pro:before, +.fa-rectangle-pro:before { + content: "\e235" +} + +.fa-house-night:before { + content: "\e010" +} + +.fa-hot-tub-person:before, +.fa-hot-tub:before { + content: "\f593" +} + +.fa-globe-pointer:before { + content: "\e60e" +} + +.fa-blanket:before { + content: "\f498" +} + +.fa-map-location:before, +.fa-map-marked:before { + content: "\f59f" +} + +.fa-house-flood-water:before { + content: "\e50e" +} + +.fa-comments-question-check:before { + content: "\e14f" +} + +.fa-tree:before { + content: "\f1bb" +} + +.fa-arrows-cross:before { + content: "\e0a2" +} + +.fa-backpack:before { + content: "\f5d4" +} + +.fa-square-small:before { + content: "\e27e" +} + +.fa-folder-arrow-up:before, +.fa-folder-upload:before { + content: "\e054" +} + +.fa-bridge-lock:before { + content: "\e4cc" +} + +.fa-crosshairs-simple:before { + content: "\e59f" +} + +.fa-sack-dollar:before { + content: "\f81d" +} + +.fa-edit:before, +.fa-pen-to-square:before { + content: "\f044" +} + +.fa-sliders-h-square:before, +.fa-square-sliders:before { + content: "\f3f0" +} + +.fa-car-side:before { + content: "\f5e4" +} + +.fa-comment-middle-top-alt:before, +.fa-message-middle-top:before { + content: "\e1e2" +} + +.fa-lightbulb-on:before { + content: "\f672" +} + +.fa-knife:before, +.fa-utensil-knife:before { + content: "\f2e4" +} + +.fa-share-alt:before, +.fa-share-nodes:before { + content: "\f1e0" +} + +.fa-display-chart-up-circle-dollar:before { + content: "\e5e6" +} + +.fa-wave-sine:before { + content: "\f899" +} + +.fa-heart-circle-minus:before { + content: "\e4ff" +} + +.fa-circle-w:before { + content: "\e12c" +} + +.fa-calendar-circle:before, +.fa-circle-calendar:before { + content: "\e102" +} + +.fa-hourglass-2:before, +.fa-hourglass-half:before { + content: "\f252" +} + +.fa-microscope:before { + content: "\f610" +} + +.fa-sunset:before { + content: "\f767" +} + +.fa-sink:before { + content: "\e06d" +} + +.fa-calendar-exclamation:before { + content: "\f334" +} + +.fa-truck-container-empty:before { + content: "\e2b5" +} + +.fa-hand-heart:before { + content: "\f4bc" +} + +.fa-bag-shopping:before, +.fa-shopping-bag:before { + content: "\f290" +} + +.fa-arrow-down-z-a:before, +.fa-sort-alpha-desc:before, +.fa-sort-alpha-down-alt:before { + content: "\f881" +} + +.fa-mitten:before { + content: "\f7b5" +} + +.fa-reply-clock:before, +.fa-reply-time:before { + content: "\e239" +} + +.fa-person-rays:before { + content: "\e54d" +} + +.fa-arrow-alt-right:before, +.fa-right:before { + content: "\f356" +} + +.fa-circle-f:before { + content: "\e10e" +} + +.fa-users:before { + content: "\f0c0" +} + +.fa-face-pleading:before { + content: "\e386" +} + +.fa-eye-slash:before { + content: "\f070" +} + +.fa-flask-vial:before { + content: "\e4f3" +} + +.fa-police-box:before { + content: "\e021" +} + +.fa-cucumber:before { + content: "\e401" +} + +.fa-head-side-brain:before { + content: "\f808" +} + +.fa-hand-paper:before, +.fa-hand:before { + content: "\f256" +} + +.fa-biking-mountain:before, +.fa-person-biking-mountain:before { + content: "\f84b" +} + +.fa-utensils-slash:before { + content: "\e464" +} + +.fa-print-magnifying-glass:before, +.fa-print-search:before { + content: "\f81a" +} + +.fa-turn-right:before { + content: "\e639" +} + +.fa-folder-bookmark:before { + content: "\e186" +} + +.fa-arrow-turn-left-down:before { + content: "\e633" +} + +.fa-om:before { + content: "\f679" +} + +.fa-pi:before { + content: "\f67e" +} + +.fa-flask-potion:before, +.fa-flask-round-potion:before { + content: "\f6e1" +} + +.fa-face-shush:before { + content: "\e38c" +} + +.fa-worm:before { + content: "\e599" +} + +.fa-house-circle-xmark:before { + content: "\e50b" +} + +.fa-plug:before { + content: "\f1e6" +} + +.fa-calendar-circle-exclamation:before { + content: "\e46e" +} + +.fa-square-i:before { + content: "\e272" +} + +.fa-chevron-up:before { + content: "\f077" +} + +.fa-face-saluting:before { + content: "\e484" +} + +.fa-gauge-simple-low:before, +.fa-tachometer-slow:before { + content: "\f62c" +} + +.fa-face-persevering:before { + content: "\e385" +} + +.fa-camera-circle:before, +.fa-circle-camera:before { + content: "\e103" +} + +.fa-hand-spock:before { + content: "\f259" +} + +.fa-spider-web:before { + content: "\f719" +} + +.fa-circle-microphone:before, +.fa-microphone-circle:before { + content: "\e116" +} + +.fa-book-arrow-up:before { + content: "\e0ba" +} + +.fa-popsicle:before { + content: "\e43e" +} + +.fa-command:before { + content: "\e142" +} + +.fa-blinds:before { + content: "\f8fb" +} + +.fa-stopwatch:before { + content: "\f2f2" +} + +.fa-saxophone:before { + content: "\f8dc" +} + +.fa-square-2:before { + content: "\e257" +} + +.fa-field-hockey-stick-ball:before, +.fa-field-hockey:before { + content: "\f44c" +} + +.fa-arrow-up-square-triangle:before, +.fa-sort-shapes-up-alt:before { + content: "\f88b" +} + +.fa-face-scream:before { + content: "\e38b" +} + +.fa-square-m:before { + content: "\e276" +} + +.fa-camera-web:before, +.fa-webcam:before { + content: "\f832" +} + +.fa-comment-arrow-down:before { + content: "\e143" +} + +.fa-lightbulb-cfl:before { + content: "\e5a6" +} + +.fa-window-frame-open:before { + content: "\e050" +} + +.fa-face-kiss:before, +.fa-kiss:before { + content: "\f596" +} + +.fa-bridge-circle-xmark:before { + content: "\e4cb" +} + +.fa-period:before { + content: "\2e" +} + +.fa-face-grin-tongue:before, +.fa-grin-tongue:before { + content: "\f589" +} + +.fa-up-to-dotted-line:before { + content: "\e457" +} + +.fa-thought-bubble:before { + content: "\e32e" +} + +.fa-skeleton-ribs:before { + content: "\e5cb" +} + +.fa-raygun:before { + content: "\e025" +} + +.fa-flute:before { + content: "\f8b9" +} + +.fa-acorn:before { + content: "\f6ae" +} + +.fa-video-arrow-up-right:before { + content: "\e2c9" +} + +.fa-grate-droplet:before { + content: "\e194" +} + +.fa-seal-exclamation:before { + content: "\e242" +} + +.fa-chess-bishop:before { + content: "\f43a" +} + +.fa-message-sms:before { + content: "\e1e5" +} + +.fa-coffee-beans:before { + content: "\e13f" +} + +.fa-hat-witch:before { + content: "\f6e7" +} + +.fa-face-grin-wink:before, +.fa-grin-wink:before { + content: "\f58c" +} + +.fa-clock-three-thirty:before { + content: "\e357" +} + +.fa-deaf:before, +.fa-deafness:before, +.fa-ear-deaf:before, +.fa-hard-of-hearing:before { + content: "\f2a4" +} + +.fa-alarm-clock:before { + content: "\f34e" +} + +.fa-eclipse:before { + content: "\f749" +} + +.fa-face-relieved:before { + content: "\e389" +} + +.fa-road-circle-check:before { + content: "\e564" +} + +.fa-dice-five:before { + content: "\f523" +} + +.fa-minus-octagon:before, +.fa-octagon-minus:before { + content: "\f308" +} + +.fa-rss-square:before, +.fa-square-rss:before { + content: "\f143" +} + +.fa-face-zany:before { + content: "\e3a4" +} + +.fa-tricycle:before { + content: "\e5c3" +} + +.fa-land-mine-on:before { + content: "\e51b" +} + +.fa-square-arrow-up-left:before { + content: "\e263" +} + +.fa-i-cursor:before { + content: "\f246" +} + +.fa-chart-mixed-up-circle-dollar:before { + content: "\e5d9" +} + +.fa-salt-shaker:before { + content: "\e446" +} + +.fa-stamp:before { + content: "\f5bf" +} + +.fa-file-plus:before { + content: "\f319" +} + +.fa-draw-square:before { + content: "\f5ef" +} + +.fa-toilet-paper-reverse-slash:before, +.fa-toilet-paper-under-slash:before { + content: "\e2a1" +} + +.fa-stairs:before { + content: "\e289" +} + +.fa-drone-alt:before, +.fa-drone-front:before { + content: "\f860" +} + +.fa-glass-empty:before { + content: "\e191" +} + +.fa-dial-high:before { + content: "\e15c" +} + +.fa-user-construction:before, +.fa-user-hard-hat:before, +.fa-user-helmet-safety:before { + content: "\f82c" +} + +.fa-i:before { + content: "\49" +} + +.fa-hryvnia-sign:before, +.fa-hryvnia:before { + content: "\f6f2" +} + +.fa-arrow-down-left-and-arrow-up-right-to-center:before { + content: "\e092" +} + +.fa-pills:before { + content: "\f484" +} + +.fa-face-grin-wide:before, +.fa-grin-alt:before { + content: "\f581" +} + +.fa-tooth:before { + content: "\f5c9" +} + +.fa-basketball-hoop:before { + content: "\f435" +} + +.fa-objects-align-bottom:before { + content: "\e3bb" +} + +.fa-v:before { + content: "\56" +} + +.fa-sparkles:before { + content: "\f890" +} + +.fa-squid:before { + content: "\e450" +} + +.fa-leafy-green:before { + content: "\e41d" +} + +.fa-circle-arrow-up-right:before { + content: "\e0fc" +} + +.fa-calendars:before { + content: "\e0d7" +} + +.fa-bangladeshi-taka-sign:before { + content: "\e2e6" +} + +.fa-bicycle:before { + content: "\f206" +} + +.fa-hammer-war:before { + content: "\f6e4" +} + +.fa-circle-d:before { + content: "\e104" +} + +.fa-spider-black-widow:before { + content: "\f718" +} + +.fa-rod-asclepius:before, +.fa-rod-snake:before, +.fa-staff-aesculapius:before, +.fa-staff-snake:before { + content: "\e579" +} + +.fa-pear:before { + content: "\e20c" +} + +.fa-head-side-cough-slash:before { + content: "\e062" +} + +.fa-file-mov:before { + content: "\e647" +} + +.fa-triangle:before { + content: "\f2ec" +} + +.fa-apartment:before { + content: "\e468" +} + +.fa-ambulance:before, +.fa-truck-medical:before { + content: "\f0f9" +} + +.fa-pepper:before { + content: "\e432" +} + +.fa-piano:before { + content: "\f8d4" +} + +.fa-gun-squirt:before { + content: "\e19d" +} + +.fa-wheat-awn-circle-exclamation:before { + content: "\e598" +} + +.fa-snowman:before { + content: "\f7d0" +} + +.fa-user-alien:before { + content: "\e04a" +} + +.fa-shield-check:before { + content: "\f2f7" +} + +.fa-mortar-pestle:before { + content: "\f5a7" +} + +.fa-road-barrier:before { + content: "\e562" +} + +.fa-chart-candlestick:before { + content: "\e0e2" +} + +.fa-briefcase-blank:before { + content: "\e0c8" +} + +.fa-school:before { + content: "\f549" +} + +.fa-igloo:before { + content: "\f7ae" +} + +.fa-bracket-round:before, +.fa-parenthesis:before { + content: "\28" +} + +.fa-joint:before { + content: "\f595" +} + +.fa-horse-saddle:before { + content: "\f8c3" +} + +.fa-mug-marshmallows:before { + content: "\f7b7" +} + +.fa-filters:before { + content: "\e17e" +} + +.fa-bell-on:before { + content: "\f8fa" +} + +.fa-angle-right:before { + content: "\f105" +} + +.fa-dial-med:before { + content: "\e15f" +} + +.fa-horse:before { + content: "\f6f0" +} + +.fa-q:before { + content: "\51" +} + +.fa-monitor-heart-rate:before, +.fa-monitor-waveform:before { + content: "\f611" +} + +.fa-link-simple:before { + content: "\e1cd" +} + +.fa-whistle:before { + content: "\f460" +} + +.fa-g:before { + content: "\47" +} + +.fa-fragile:before, +.fa-wine-glass-crack:before { + content: "\f4bb" +} + +.fa-slot-machine:before { + content: "\e3ce" +} + +.fa-notes-medical:before { + content: "\f481" +} + +.fa-car-wash:before { + content: "\f5e6" +} + +.fa-escalator:before { + content: "\e171" +} + +.fa-comment-image:before { + content: "\e148" +} + +.fa-temperature-2:before, +.fa-temperature-half:before, +.fa-thermometer-2:before, +.fa-thermometer-half:before { + content: "\f2c9" +} + +.fa-dong-sign:before { + content: "\e169" +} + +.fa-donut:before, +.fa-doughnut:before { + content: "\e406" +} + +.fa-capsules:before { + content: "\f46b" +} + +.fa-poo-bolt:before, +.fa-poo-storm:before { + content: "\f75a" +} + +.fa-tally-1:before { + content: "\e294" +} + +.fa-file-vector:before { + content: "\e64c" +} + +.fa-face-frown-open:before, +.fa-frown-open:before { + content: "\f57a" +} + +.fa-square-dashed:before { + content: "\e269" +} + +.fa-bag-shopping-plus:before { + content: "\e651" +} + +.fa-square-j:before { + content: "\e273" +} + +.fa-hand-point-up:before { + content: "\f0a6" +} + +.fa-money-bill:before { + content: "\f0d6" +} + +.fa-arrow-up-big-small:before, +.fa-sort-size-up:before { + content: "\f88e" +} + +.fa-barcode-read:before { + content: "\f464" +} + +.fa-baguette:before { + content: "\e3d8" +} + +.fa-bowl-soft-serve:before { + content: "\e46b" +} + +.fa-face-holding-back-tears:before { + content: "\e482" +} + +.fa-arrow-alt-square-up:before, +.fa-square-up:before { + content: "\f353" +} + +.fa-subway-tunnel:before, +.fa-train-subway-tunnel:before { + content: "\e2a3" +} + +.fa-exclamation-square:before, +.fa-square-exclamation:before { + content: "\f321" +} + +.fa-semicolon:before { + content: "\3b" +} + +.fa-bookmark:before { + content: "\f02e" +} + +.fa-fan-table:before { + content: "\e004" +} + +.fa-align-justify:before { + content: "\f039" +} + +.fa-battery-1:before, +.fa-battery-low:before { + content: "\e0b1" +} + +.fa-credit-card-front:before { + content: "\f38a" +} + +.fa-brain-arrow-curved-right:before, +.fa-mind-share:before { + content: "\f677" +} + +.fa-umbrella-beach:before { + content: "\f5ca" +} + +.fa-helmet-un:before { + content: "\e503" +} + +.fa-location-smile:before, +.fa-map-marker-smile:before { + content: "\f60d" +} + +.fa-arrow-left-to-line:before, +.fa-arrow-to-left:before { + content: "\f33e" +} + +.fa-bullseye:before { + content: "\f140" +} + +.fa-nigiri:before, +.fa-sushi:before { + content: "\e48a" +} + +.fa-comment-alt-captions:before, +.fa-message-captions:before { + content: "\e1de" +} + +.fa-trash-list:before { + content: "\e2b1" +} + +.fa-bacon:before { + content: "\f7e5" +} + +.fa-option:before { + content: "\e318" +} + +.fa-raccoon:before { + content: "\e613" +} + +.fa-hand-point-down:before { + content: "\f0a7" +} + +.fa-arrow-up-from-bracket:before { + content: "\e09a" +} + +.fa-head-side-gear:before { + content: "\e611" +} + +.fa-trash-plus:before { + content: "\e2b2" +} + +.fa-objects-align-top:before { + content: "\e3c0" +} + +.fa-folder-blank:before, +.fa-folder:before { + content: "\f07b" +} + +.fa-face-anxious-sweat:before { + content: "\e36a" +} + +.fa-credit-card-blank:before { + content: "\f389" +} + +.fa-file-medical-alt:before, +.fa-file-waveform:before { + content: "\f478" +} + +.fa-microchip-ai:before { + content: "\e1ec" +} + +.fa-mug:before { + content: "\f874" +} + +.fa-plane-up-slash:before { + content: "\e22e" +} + +.fa-radiation:before { + content: "\f7b9" +} + +.fa-pen-circle:before { + content: "\e20e" +} + +.fa-bag-seedling:before { + content: "\e5f2" +} + +.fa-chart-simple:before { + content: "\e473" +} + +.fa-crutches:before { + content: "\f7f8" +} + +.fa-circle-parking:before, +.fa-parking-circle:before { + content: "\f615" +} + +.fa-mars-stroke:before { + content: "\f229" +} + +.fa-leaf-oak:before { + content: "\f6f7" +} + +.fa-square-bolt:before { + content: "\e265" +} + +.fa-vial:before { + content: "\f492" +} + +.fa-dashboard:before, +.fa-gauge-med:before, +.fa-gauge:before, +.fa-tachometer-alt-average:before { + content: "\f624" +} + +.fa-magic-wand-sparkles:before, +.fa-wand-magic-sparkles:before { + content: "\e2ca" +} + +.fa-lambda:before { + content: "\f66e" +} + +.fa-e:before { + content: "\45" +} + +.fa-pizza:before { + content: "\f817" +} + +.fa-bowl-chopsticks-noodles:before { + content: "\e2ea" +} + +.fa-h3:before { + content: "\f315" +} + +.fa-pen-alt:before, +.fa-pen-clip:before { + content: "\f305" +} + +.fa-bridge-circle-exclamation:before { + content: "\e4ca" +} + +.fa-badge-percent:before { + content: "\f646" +} + +.fa-rotate-reverse:before { + content: "\e631" +} + +.fa-user:before { + content: "\f007" +} + +.fa-sensor:before { + content: "\e028" +} + +.fa-comma:before { + content: "\2c" +} + +.fa-school-circle-check:before { + content: "\e56b" +} + +.fa-toilet-paper-reverse:before, +.fa-toilet-paper-under:before { + content: "\e2a0" +} + +.fa-light-emergency:before { + content: "\e41f" +} + +.fa-arrow-down-to-arc:before { + content: "\e4ae" +} + +.fa-dumpster:before { + content: "\f793" +} + +.fa-shuttle-van:before, +.fa-van-shuttle:before { + content: "\f5b6" +} + +.fa-building-user:before { + content: "\e4da" +} + +.fa-light-switch:before { + content: "\e017" +} + +.fa-caret-square-left:before, +.fa-square-caret-left:before { + content: "\f191" +} + +.fa-highlighter:before { + content: "\f591" +} + +.fa-heart-rate:before, +.fa-wave-pulse:before { + content: "\f5f8" +} + +.fa-key:before { + content: "\f084" +} + +.fa-hat-santa:before { + content: "\f7a7" +} + +.fa-tamale:before { + content: "\e451" +} + +.fa-box-check:before { + content: "\f467" +} + +.fa-bullhorn:before { + content: "\f0a1" +} + +.fa-steak:before { + content: "\f824" +} + +.fa-location-crosshairs-slash:before, +.fa-location-slash:before { + content: "\f603" +} + +.fa-person-dolly:before { + content: "\f4d0" +} + +.fa-globe:before { + content: "\f0ac" +} + +.fa-synagogue:before { + content: "\f69b" +} + +.fa-file-chart-column:before, +.fa-file-chart-line:before { + content: "\f659" +} + +.fa-person-half-dress:before { + content: "\e548" +} + +.fa-folder-image:before { + content: "\e18a" +} + +.fa-calendar-edit:before, +.fa-calendar-pen:before { + content: "\f333" +} + +.fa-road-bridge:before { + content: "\e563" +} + +.fa-face-smile-tear:before { + content: "\e393" +} + +.fa-comment-alt-plus:before, +.fa-message-plus:before { + content: "\f4a8" +} + +.fa-location-arrow:before { + content: "\f124" +} + +.fa-c:before { + content: "\43" +} + +.fa-tablet-button:before { + content: "\f10a" +} + +.fa-person-dress-fairy:before { + content: "\e607" +} + +.fa-rectangle-history-circle-user:before { + content: "\e4a4" +} + +.fa-building-lock:before { + content: "\e4d6" +} + +.fa-chart-line-up:before { + content: "\e0e5" +} + +.fa-mailbox:before { + content: "\f813" +} + +.fa-sign-posts:before { + content: "\e625" +} + +.fa-truck-bolt:before { + content: "\e3d0" +} + +.fa-pizza-slice:before { + content: "\f818" +} + +.fa-money-bill-wave:before { + content: "\f53a" +} + +.fa-area-chart:before, +.fa-chart-area:before { + content: "\f1fe" +} + +.fa-house-flag:before { + content: "\e50d" +} + +.fa-circle-three-quarters-stroke:before { + content: "\e5d4" +} + +.fa-person-circle-minus:before { + content: "\e540" +} + +.fa-scalpel:before { + content: "\f61d" +} + +.fa-ban:before, +.fa-cancel:before { + content: "\f05e" +} + +.fa-bell-exclamation:before { + content: "\f848" +} + +.fa-bookmark-circle:before, +.fa-circle-bookmark:before { + content: "\e100" +} + +.fa-egg-fried:before { + content: "\f7fc" +} + +.fa-face-weary:before { + content: "\e3a1" +} + +.fa-uniform-martial-arts:before { + content: "\e3d1" +} + +.fa-camera-rotate:before { + content: "\e0d8" +} + +.fa-sun-dust:before { + content: "\f764" +} + +.fa-comment-text:before { + content: "\e14d" +} + +.fa-air-freshener:before, +.fa-spray-can-sparkles:before { + content: "\f5d0" +} + +.fa-signal-alt-4:before, +.fa-signal-alt:before, +.fa-signal-bars-strong:before, +.fa-signal-bars:before { + content: "\f690" +} + +.fa-diamond-exclamation:before { + content: "\e405" +} + +.fa-star:before { + content: "\f005" +} + +.fa-dial-min:before { + content: "\e161" +} + +.fa-repeat:before { + content: "\f363" +} + +.fa-cross:before { + content: "\f654" +} + +.fa-file-caret-down:before, +.fa-page-caret-down:before { + content: "\e429" +} + +.fa-box:before { + content: "\f466" +} + +.fa-venus-mars:before { + content: "\f228" +} + +.fa-clock-seven-thirty:before { + content: "\e351" +} + +.fa-arrow-pointer:before, +.fa-mouse-pointer:before { + content: "\f245" +} + +.fa-clock-four-thirty:before { + content: "\e34b" +} + +.fa-signal-alt-3:before, +.fa-signal-bars-good:before { + content: "\f693" +} + +.fa-cactus:before { + content: "\f8a7" +} + +.fa-lightbulb-gear:before { + content: "\e5fd" +} + +.fa-expand-arrows-alt:before, +.fa-maximize:before { + content: "\f31e" +} + +.fa-charging-station:before { + content: "\f5e7" +} + +.fa-shapes:before, +.fa-triangle-circle-square:before { + content: "\f61f" +} + +.fa-plane-tail:before { + content: "\e22c" +} + +.fa-gauge-simple-max:before, +.fa-tachometer-fastest:before { + content: "\f62b" +} + +.fa-circle-u:before { + content: "\e127" +} + +.fa-shield-slash:before { + content: "\e24b" +} + +.fa-phone-square-down:before, +.fa-square-phone-hangup:before { + content: "\e27a" +} + +.fa-arrow-up-left:before { + content: "\e09d" +} + +.fa-transporter-1:before { + content: "\e043" +} + +.fa-peanuts:before { + content: "\e431" +} + +.fa-random:before, +.fa-shuffle:before { + content: "\f074" +} + +.fa-person-running:before, +.fa-running:before { + content: "\f70c" +} + +.fa-mobile-retro:before { + content: "\e527" +} + +.fa-grip-lines-vertical:before { + content: "\f7a5" +} + +.fa-bin-bottles-recycle:before { + content: "\e5f6" +} + +.fa-arrow-up-from-square:before { + content: "\e09c" +} + +.fa-file-dashed-line:before, +.fa-page-break:before { + content: "\f877" +} + +.fa-bracket-curly-right:before { + content: "\7d" +} + +.fa-spider:before { + content: "\f717" +} + +.fa-clock-three:before { + content: "\e356" +} + +.fa-hands-bound:before { + content: "\e4f9" +} + +.fa-scalpel-line-dashed:before, +.fa-scalpel-path:before { + content: "\f61e" +} + +.fa-file-invoice-dollar:before { + content: "\f571" +} + +.fa-pipe-smoking:before { + content: "\e3c4" +} + +.fa-face-astonished:before { + content: "\e36b" +} + +.fa-window:before { + content: "\f40e" +} + +.fa-plane-circle-exclamation:before { + content: "\e556" +} + +.fa-ear:before { + content: "\f5f0" +} + +.fa-file-lock:before { + content: "\e3a6" +} + +.fa-diagram-venn:before { + content: "\e15a" +} + +.fa-x-ray:before { + content: "\f497" +} + +.fa-goal-net:before { + content: "\e3ab" +} + +.fa-coffin-cross:before { + content: "\e051" +} + +.fa-spell-check:before { + content: "\f891" +} + +.fa-location-xmark:before, +.fa-map-marker-times:before, +.fa-map-marker-xmark:before { + content: "\f60e" +} + +.fa-circle-quarter-stroke:before { + content: "\e5d3" +} + +.fa-lasso:before { + content: "\f8c8" +} + +.fa-slash:before { + content: "\f715" +} + +.fa-person-to-portal:before, +.fa-portal-enter:before { + content: "\e022" +} + +.fa-calendar-star:before { + content: "\f736" +} + +.fa-computer-mouse:before, +.fa-mouse:before { + content: "\f8cc" +} + +.fa-arrow-right-to-bracket:before, +.fa-sign-in:before { + content: "\f090" +} + +.fa-pegasus:before { + content: "\f703" +} + +.fa-files-medical:before { + content: "\f7fd" +} + +.fa-cannon:before { + content: "\e642" +} + +.fa-nfc-lock:before { + content: "\e1f8" +} + +.fa-person-ski-lift:before, +.fa-ski-lift:before { + content: "\f7c8" +} + +.fa-square-6:before { + content: "\e25b" +} + +.fa-shop-slash:before, +.fa-store-alt-slash:before { + content: "\e070" +} + +.fa-wind-turbine:before { + content: "\f89b" +} + +.fa-sliders-simple:before { + content: "\e253" +} + +.fa-grid-round:before { + content: "\e5da" +} + +.fa-badge-sheriff:before { + content: "\f8a2" +} + +.fa-server:before { + content: "\f233" +} + +.fa-virus-covid-slash:before { + content: "\e4a9" +} + +.fa-intersection:before { + content: "\f668" +} + +.fa-shop-lock:before { + content: "\e4a5" +} + +.fa-family:before { + content: "\e300" +} + +.fa-hourglass-1:before, +.fa-hourglass-start:before { + content: "\f251" +} + +.fa-user-hair-buns:before { + content: "\e3d3" +} + +.fa-blender-phone:before { + content: "\f6b6" +} + +.fa-hourglass-clock:before { + content: "\e41b" +} + +.fa-person-seat-reclined:before { + content: "\e21f" +} + +.fa-paper-plane-alt:before, +.fa-paper-plane-top:before, +.fa-send:before { + content: "\e20a" +} + +.fa-comment-alt-arrow-up:before, +.fa-message-arrow-up:before { + content: "\e1dc" +} + +.fa-lightbulb-exclamation:before { + content: "\f671" +} + +.fa-layer-group-minus:before, +.fa-layer-minus:before { + content: "\f5fe" +} + +.fa-chart-pie-simple-circle-currency:before { + content: "\e604" +} + +.fa-circle-e:before { + content: "\e109" +} + +.fa-building-wheat:before { + content: "\e4db" +} + +.fa-gauge-max:before, +.fa-tachometer-alt-fastest:before { + content: "\f626" +} + +.fa-person-breastfeeding:before { + content: "\e53a" +} + +.fa-apostrophe:before { + content: "\27" +} + +.fa-file-png:before { + content: "\e666" +} + +.fa-fire-hydrant:before { + content: "\e17f" +} + +.fa-right-to-bracket:before, +.fa-sign-in-alt:before { + content: "\f2f6" +} + +.fa-video-plus:before { + content: "\f4e1" +} + +.fa-arrow-alt-square-right:before, +.fa-square-right:before { + content: "\f352" +} + +.fa-comment-smile:before { + content: "\f4b4" +} + +.fa-venus:before { + content: "\f221" +} + +.fa-passport:before { + content: "\f5ab" +} + +.fa-inbox-arrow-down:before, +.fa-inbox-in:before { + content: "\f310" +} + +.fa-heart-pulse:before, +.fa-heartbeat:before { + content: "\f21e" +} + +.fa-circle-8:before { + content: "\e0f5" +} + +.fa-clouds-moon:before { + content: "\f745" +} + +.fa-clock-ten-thirty:before { + content: "\e355" +} + +.fa-people-carry-box:before, +.fa-people-carry:before { + content: "\f4ce" +} + +.fa-folder-user:before { + content: "\e18e" +} + +.fa-trash-can-xmark:before { + content: "\e2ae" +} + +.fa-temperature-high:before { + content: "\f769" +} + +.fa-microchip:before { + content: "\f2db" +} + +.fa-left-long-to-line:before { + content: "\e41e" +} + +.fa-crown:before { + content: "\f521" +} + +.fa-weight-hanging:before { + content: "\f5cd" +} + +.fa-xmarks-lines:before { + content: "\e59a" +} + +.fa-file-prescription:before { + content: "\f572" +} + +.fa-calendar-range:before { + content: "\e0d6" +} + +.fa-flower-daffodil:before { + content: "\f800" +} + +.fa-hand-back-point-up:before { + content: "\e1a2" +} + +.fa-weight-scale:before, +.fa-weight:before { + content: "\f496" +} + +.fa-arrow-up-to-arc:before { + content: "\e617" +} + +.fa-star-exclamation:before { + content: "\f2f3" +} + +.fa-books:before { + content: "\f5db" +} + +.fa-user-friends:before, +.fa-user-group:before { + content: "\f500" +} + +.fa-arrow-up-a-z:before, +.fa-sort-alpha-up:before { + content: "\f15e" +} + +.fa-layer-group-plus:before, +.fa-layer-plus:before { + content: "\f5ff" +} + +.fa-play-pause:before { + content: "\e22f" +} + +.fa-block-question:before { + content: "\e3dd" +} + +.fa-snooze:before, +.fa-zzz:before { + content: "\f880" +} + +.fa-scanner-image:before { + content: "\f8f3" +} + +.fa-tv-retro:before { + content: "\f401" +} + +.fa-square-t:before { + content: "\e280" +} + +.fa-barn-silo:before, +.fa-farm:before { + content: "\f864" +} + +.fa-chess-knight:before { + content: "\f441" +} + +.fa-bars-sort:before { + content: "\e0ae" +} + +.fa-palette-boxes:before, +.fa-pallet-alt:before, +.fa-pallet-boxes:before { + content: "\f483" +} + +.fa-face-laugh-squint:before, +.fa-laugh-squint:before { + content: "\f59b" +} + +.fa-code-simple:before { + content: "\e13d" +} + +.fa-bolt-slash:before { + content: "\e0b8" +} + +.fa-panel-fire:before { + content: "\e42f" +} + +.fa-binary-circle-check:before { + content: "\e33c" +} + +.fa-comment-minus:before { + content: "\f4b1" +} + +.fa-burrito:before { + content: "\f7ed" +} + +.fa-violin:before { + content: "\f8ed" +} + +.fa-objects-column:before { + content: "\e3c1" +} + +.fa-chevron-square-down:before, +.fa-square-chevron-down:before { + content: "\f329" +} + +.fa-comment-plus:before { + content: "\f4b2" +} + +.fa-triangle-instrument:before, +.fa-triangle-music:before { + content: "\f8e2" +} + +.fa-wheelchair:before { + content: "\f193" +} + +.fa-user-pilot-tie:before { + content: "\e2c1" +} + +.fa-piano-keyboard:before { + content: "\f8d5" +} + +.fa-bed-empty:before { + content: "\f8f9" +} + +.fa-arrow-circle-up:before, +.fa-circle-arrow-up:before { + content: "\f0aa" +} + +.fa-toggle-on:before { + content: "\f205" +} + +.fa-rectangle-portrait:before, +.fa-rectangle-vertical:before { + content: "\f2fb" +} + +.fa-person-walking:before, +.fa-walking:before { + content: "\f554" +} + +.fa-l:before { + content: "\4c" +} + +.fa-signal-stream:before { + content: "\f8dd" +} + +.fa-down-to-bracket:before { + content: "\e4e7" +} + +.fa-circle-z:before { + content: "\e130" +} + +.fa-stars:before { + content: "\f762" +} + +.fa-fire:before { + content: "\f06d" +} + +.fa-bed-pulse:before, +.fa-procedures:before { + content: "\f487" +} + +.fa-house-day:before { + content: "\e00e" +} + +.fa-shuttle-space:before, +.fa-space-shuttle:before { + content: "\f197" +} + +.fa-shirt-long-sleeve:before { + content: "\e3c7" +} + +.fa-chart-pie-alt:before, +.fa-chart-pie-simple:before { + content: "\f64e" +} + +.fa-face-laugh:before, +.fa-laugh:before { + content: "\f599" +} + +.fa-folder-open:before { + content: "\f07c" +} + +.fa-album-collection-circle-user:before { + content: "\e48f" +} + +.fa-candy:before { + content: "\e3e7" +} + +.fa-bowl-hot:before, +.fa-soup:before { + content: "\f823" +} + +.fa-flatbread:before { + content: "\e40b" +} + +.fa-heart-circle-plus:before { + content: "\e500" +} + +.fa-code-fork:before { + content: "\e13b" +} + +.fa-city:before { + content: "\f64f" +} + +.fa-signal-alt-1:before, +.fa-signal-bars-weak:before { + content: "\f691" +} + +.fa-microphone-alt:before, +.fa-microphone-lines:before { + content: "\f3c9" +} + +.fa-clock-twelve:before { + content: "\e358" +} + +.fa-pepper-hot:before { + content: "\f816" +} + +.fa-citrus-slice:before { + content: "\e2f5" +} + +.fa-sheep:before { + content: "\f711" +} + +.fa-unlock:before { + content: "\f09c" +} + +.fa-colon-sign:before { + content: "\e140" +} + +.fa-headset:before { + content: "\f590" +} + +.fa-badger-honey:before { + content: "\f6b4" +} + +.fa-h4:before { + content: "\f86a" +} + +.fa-store-slash:before { + content: "\e071" +} + +.fa-road-circle-xmark:before { + content: "\e566" +} + +.fa-signal-slash:before { + content: "\f695" +} + +.fa-user-minus:before { + content: "\f503" +} + +.fa-mars-stroke-up:before, +.fa-mars-stroke-v:before { + content: "\f22a" +} + +.fa-champagne-glasses:before, +.fa-glass-cheers:before { + content: "\f79f" +} + +.fa-taco:before { + content: "\f826" +} + +.fa-hexagon-plus:before, +.fa-plus-hexagon:before { + content: "\f300" +} + +.fa-clipboard:before { + content: "\f328" +} + +.fa-house-circle-exclamation:before { + content: "\e50a" +} + +.fa-file-arrow-up:before, +.fa-file-upload:before { + content: "\f574" +} + +.fa-wifi-3:before, +.fa-wifi-strong:before, +.fa-wifi:before { + content: "\f1eb" +} + +.fa-comments-alt:before, +.fa-messages:before { + content: "\f4b6" +} + +.fa-bath:before, +.fa-bathtub:before { + content: "\f2cd" +} + +.fa-umbrella-alt:before, +.fa-umbrella-simple:before { + content: "\e2bc" +} + +.fa-rectangle-history-circle-plus:before { + content: "\e4a3" +} + +.fa-underline:before { + content: "\f0cd" +} + +.fa-prescription-bottle-pill:before { + content: "\e5c0" +} + +.fa-user-edit:before, +.fa-user-pen:before { + content: "\f4ff" +} + +.fa-binary-slash:before { + content: "\e33e" +} + +.fa-square-o:before { + content: "\e278" +} + +.fa-signature:before { + content: "\f5b7" +} + +.fa-stroopwafel:before { + content: "\f551" +} + +.fa-bold:before { + content: "\f032" +} + +.fa-anchor-lock:before { + content: "\e4ad" +} + +.fa-building-ngo:before { + content: "\e4d7" +} + +.fa-transporter-3:before { + content: "\e045" +} + +.fa-engine-exclamation:before, +.fa-engine-warning:before { + content: "\f5f2" +} + +.fa-circle-down-right:before { + content: "\e108" +} + +.fa-square-k:before { + content: "\e274" +} + +.fa-manat-sign:before { + content: "\e1d5" +} + +.fa-money-check-edit:before, +.fa-money-check-pen:before { + content: "\f872" +} + +.fa-not-equal:before { + content: "\f53e" +} + +.fa-border-style:before, +.fa-border-top-left:before { + content: "\f853" +} + +.fa-map-location-dot:before, +.fa-map-marked-alt:before { + content: "\f5a0" +} + +.fa-tilde:before { + content: "\7e" +} + +.fa-jedi:before { + content: "\f669" +} + +.fa-poll:before, +.fa-square-poll-vertical:before { + content: "\f681" +} + +.fa-arrow-down-square-triangle:before, +.fa-sort-shapes-down-alt:before { + content: "\f889" +} + +.fa-mug-hot:before { + content: "\f7b6" +} + +.fa-dog-leashed:before { + content: "\f6d4" +} + +.fa-battery-car:before, +.fa-car-battery:before { + content: "\f5df" +} + +.fa-face-downcast-sweat:before { + content: "\e371" +} + +.fa-mailbox-flag-up:before { + content: "\e5bb" +} + +.fa-memo-circle-info:before { + content: "\e49a" +} + +.fa-gift:before { + content: "\f06b" +} + +.fa-dice-two:before { + content: "\f528" +} + +.fa-volume-medium:before, +.fa-volume:before { + content: "\f6a8" +} + +.fa-transporter-5:before { + content: "\e2a6" +} + +.fa-gauge-circle-bolt:before { + content: "\e496" +} + +.fa-coin-front:before { + content: "\e3fc" +} + +.fa-file-slash:before { + content: "\e3a7" +} + +.fa-message-arrow-up-right:before { + content: "\e1dd" +} + +.fa-treasure-chest:before { + content: "\f723" +} + +.fa-chess-queen:before { + content: "\f445" +} + +.fa-paint-brush-alt:before, +.fa-paint-brush-fine:before, +.fa-paintbrush-alt:before, +.fa-paintbrush-fine:before { + content: "\f5a9" +} + +.fa-glasses:before { + content: "\f530" +} + +.fa-hood-cloak:before { + content: "\f6ef" +} + +.fa-square-quote:before { + content: "\e329" +} + +.fa-up-left:before { + content: "\e2bd" +} + +.fa-bring-front:before { + content: "\f857" +} + +.fa-chess-board:before { + content: "\f43c" +} + +.fa-burger-cheese:before, +.fa-cheeseburger:before { + content: "\f7f1" +} + +.fa-building-circle-check:before { + content: "\e4d2" +} + +.fa-repeat-1:before { + content: "\f365" +} + +.fa-arrow-down-to-line:before, +.fa-arrow-to-bottom:before { + content: "\f33d" +} + +.fa-grid-5:before { + content: "\e199" +} + +.fa-swap-arrows:before { + content: "\e60a" +} + +.fa-right-long-to-line:before { + content: "\e444" +} + +.fa-person-chalkboard:before { + content: "\e53d" +} + +.fa-mars-stroke-h:before, +.fa-mars-stroke-right:before { + content: "\f22b" +} + +.fa-hand-back-fist:before, +.fa-hand-rock:before { + content: "\f255" +} + +.fa-grid-round-5:before { + content: "\e5de" +} + +.fa-tally-5:before, +.fa-tally:before { + content: "\f69c" +} + +.fa-caret-square-up:before, +.fa-square-caret-up:before { + content: "\f151" +} + +.fa-cloud-showers-water:before { + content: "\e4e4" +} + +.fa-bar-chart:before, +.fa-chart-bar:before { + content: "\f080" +} + +.fa-hands-bubbles:before, +.fa-hands-wash:before { + content: "\e05e" +} + +.fa-less-than-equal:before { + content: "\f537" +} + +.fa-train:before { + content: "\f238" +} + +.fa-up-from-dotted-line:before { + content: "\e456" +} + +.fa-eye-low-vision:before, +.fa-low-vision:before { + content: "\f2a8" +} + +.fa-traffic-light-go:before { + content: "\f638" +} + +.fa-face-exhaling:before { + content: "\e480" +} + +.fa-sensor-fire:before { + content: "\e02a" +} + +.fa-user-unlock:before { + content: "\e058" +} + +.fa-hexagon-divide:before { + content: "\e1ad" +} + +.fa-00:before { + content: "\e467" +} + +.fa-crow:before { + content: "\f520" +} + +.fa-betamax:before, +.fa-cassette-betamax:before { + content: "\f8a4" +} + +.fa-sailboat:before { + content: "\e445" +} + +.fa-window-restore:before { + content: "\f2d2" +} + +.fa-nfc-magnifying-glass:before { + content: "\e1f9" +} + +.fa-file-binary:before { + content: "\e175" +} + +.fa-circle-v:before { + content: "\e12a" +} + +.fa-plus-square:before, +.fa-square-plus:before { + content: "\f0fe" +} + +.fa-bowl-scoops:before { + content: "\e3df" +} + +.fa-mistletoe:before { + content: "\f7b4" +} + +.fa-custard:before { + content: "\e403" +} + +.fa-lacrosse-stick:before { + content: "\e3b5" +} + +.fa-hockey-mask:before { + content: "\f6ee" +} + +.fa-sunrise:before { + content: "\f766" +} + +.fa-subtitles:before { + content: "\e60f" +} + +.fa-panel-ews:before { + content: "\e42e" +} + +.fa-torii-gate:before { + content: "\f6a1" +} + +.fa-cloud-exclamation:before { + content: "\e491" +} + +.fa-comment-alt-lines:before, +.fa-message-lines:before { + content: "\f4a6" +} + +.fa-frog:before { + content: "\f52e" +} + +.fa-bucket:before { + content: "\e4cf" +} + +.fa-floppy-disk-pen:before { + content: "\e182" +} + +.fa-image:before { + content: "\f03e" +} + +.fa-window-frame:before { + content: "\e04f" +} + +.fa-microphone:before { + content: "\f130" +} + +.fa-cow:before { + content: "\f6c8" +} + +.fa-file-zip:before { + content: "\e5ee" +} + +.fa-square-ring:before { + content: "\e44f" +} + +.fa-arrow-alt-from-top:before, +.fa-down-from-line:before { + content: "\f349" +} + +.fa-caret-up:before { + content: "\f0d8" +} + +.fa-shield-times:before, +.fa-shield-xmark:before { + content: "\e24c" +} + +.fa-screwdriver:before { + content: "\f54a" +} + +.fa-circle-sort-down:before, +.fa-sort-circle-down:before { + content: "\e031" +} + +.fa-folder-closed:before { + content: "\e185" +} + +.fa-house-tsunami:before { + content: "\e515" +} + +.fa-square-nfi:before { + content: "\e576" +} + +.fa-forklift:before { + content: "\f47a" +} + +.fa-arrow-up-from-ground-water:before { + content: "\e4b5" +} + +.fa-bracket-square-right:before { + content: "\5d" +} + +.fa-glass-martini-alt:before, +.fa-martini-glass:before { + content: "\f57b" +} + +.fa-rotate-back:before, +.fa-rotate-backward:before, +.fa-rotate-left:before, +.fa-undo-alt:before { + content: "\f2ea" +} + +.fa-columns:before, +.fa-table-columns:before { + content: "\f0db" +} + +.fa-square-a:before { + content: "\e25f" +} + +.fa-tick:before { + content: "\e32f" +} + +.fa-lemon:before { + content: "\f094" +} + +.fa-head-side-mask:before { + content: "\e063" +} + +.fa-handshake:before { + content: "\f2b5" +} + +.fa-gem:before { + content: "\f3a5" +} + +.fa-dolly-box:before, +.fa-dolly:before { + content: "\f472" +} + +.fa-smoking:before { + content: "\f48d" +} + +.fa-compress-arrows-alt:before, +.fa-minimize:before { + content: "\f78c" +} + +.fa-refrigerator:before { + content: "\e026" +} + +.fa-monument:before { + content: "\f5a6" +} + +.fa-octagon-xmark:before, +.fa-times-octagon:before, +.fa-xmark-octagon:before { + content: "\f2f0" +} + +.fa-align-slash:before { + content: "\f846" +} + +.fa-snowplow:before { + content: "\f7d2" +} + +.fa-angle-double-right:before, +.fa-angles-right:before { + content: "\f101" +} + +.fa-truck-couch:before, +.fa-truck-ramp-couch:before { + content: "\f4dd" +} + +.fa-cannabis:before { + content: "\f55f" +} + +.fa-circle-play:before, +.fa-play-circle:before { + content: "\f144" +} + +.fa-arrow-up-right-and-arrow-down-left-from-center:before { + content: "\e0a0" +} + +.fa-location-arrow-up:before { + content: "\e63a" +} + +.fa-tablets:before { + content: "\f490" +} + +.fa-360-degrees:before { + content: "\e2dc" +} + +.fa-ethernet:before { + content: "\f796" +} + +.fa-eur:before, +.fa-euro-sign:before, +.fa-euro:before { + content: "\f153" +} + +.fa-chair:before { + content: "\f6c0" +} + +.fa-check-circle:before, +.fa-circle-check:before { + content: "\f058" +} + +.fa-square-dashed-circle-plus:before { + content: "\e5c2" +} + +.fa-hand-holding-circle-dollar:before { + content: "\e621" +} + +.fa-money-simple-from-bracket:before { + content: "\e313" +} + +.fa-bat:before { + content: "\f6b5" +} + +.fa-circle-stop:before, +.fa-stop-circle:before { + content: "\f28d" +} + +.fa-head-side-headphones:before { + content: "\f8c2" +} + +.fa-phone-rotary:before { + content: "\f8d3" +} + +.fa-compass-drafting:before, +.fa-drafting-compass:before { + content: "\f568" +} + +.fa-plate-wheat:before { + content: "\e55a" +} + +.fa-calendar-circle-minus:before { + content: "\e46f" +} + +.fa-chopsticks:before { + content: "\e3f7" +} + +.fa-car-mechanic:before, +.fa-car-wrench:before { + content: "\f5e3" +} + +.fa-icicles:before { + content: "\f7ad" +} + +.fa-person-shelter:before { + content: "\e54f" +} + +.fa-neuter:before { + content: "\f22c" +} + +.fa-id-badge:before { + content: "\f2c1" +} + +.fa-kazoo:before { + content: "\f8c7" +} + +.fa-marker:before { + content: "\f5a1" +} + +.fa-bin-bottles:before { + content: "\e5f5" +} + +.fa-face-laugh-beam:before, +.fa-laugh-beam:before { + content: "\f59a" +} + +.fa-square-arrow-down-left:before { + content: "\e261" +} + +.fa-battery-bolt:before { + content: "\f376" +} + +.fa-tree-large:before { + content: "\f7dd" +} + +.fa-helicopter-symbol:before { + content: "\e502" +} + +.fa-aperture:before { + content: "\e2df" +} + +.fa-universal-access:before { + content: "\f29a" +} + +.fa-gear-complex:before { + content: "\e5e9" +} + +.fa-file-magnifying-glass:before, +.fa-file-search:before { + content: "\f865" +} + +.fa-up-right:before { + content: "\e2be" +} + +.fa-chevron-circle-up:before, +.fa-circle-chevron-up:before { + content: "\f139" +} + +.fa-user-police:before { + content: "\e333" +} + +.fa-lari-sign:before { + content: "\e1c8" +} + +.fa-volcano:before { + content: "\f770" +} + +.fa-teddy-bear:before { + content: "\e3cf" +} + +.fa-stocking:before { + content: "\f7d5" +} + +.fa-person-walking-dashed-line-arrow-right:before { + content: "\e553" +} + +.fa-image-slash:before { + content: "\e1b7" +} + +.fa-mask-snorkel:before { + content: "\e3b7" +} + +.fa-smoke:before { + content: "\f760" +} + +.fa-gbp:before, +.fa-pound-sign:before, +.fa-sterling-sign:before { + content: "\f154" +} + +.fa-battery-exclamation:before { + content: "\e0b0" +} + +.fa-viruses:before { + content: "\e076" +} + +.fa-square-person-confined:before { + content: "\e577" +} + +.fa-user-tie:before { + content: "\f508" +} + +.fa-arrow-down-long:before, +.fa-long-arrow-down:before { + content: "\f175" +} + +.fa-tent-arrow-down-to-line:before { + content: "\e57e" +} + +.fa-certificate:before { + content: "\f0a3" +} + +.fa-crystal-ball:before { + content: "\e362" +} + +.fa-mail-reply-all:before, +.fa-reply-all:before { + content: "\f122" +} + +.fa-suitcase:before { + content: "\f0f2" +} + +.fa-person-skating:before, +.fa-skating:before { + content: "\f7c5" +} + +.fa-star-shooting:before { + content: "\e036" +} + +.fa-binary-lock:before { + content: "\e33d" +} + +.fa-filter-circle-dollar:before, +.fa-funnel-dollar:before { + content: "\f662" +} + +.fa-camera-retro:before { + content: "\f083" +} + +.fa-arrow-circle-down:before, +.fa-circle-arrow-down:before { + content: "\f0ab" +} + +.fa-comment-edit:before, +.fa-comment-pen:before { + content: "\f4ae" +} + +.fa-arrow-right-to-file:before, +.fa-file-import:before { + content: "\f56f" +} + +.fa-banjo:before { + content: "\f8a3" +} + +.fa-external-link-square:before, +.fa-square-arrow-up-right:before { + content: "\f14c" +} + +.fa-light-emergency-on:before { + content: "\e420" +} + +.fa-kerning:before { + content: "\f86f" +} + +.fa-box-open:before { + content: "\f49e" +} + +.fa-square-f:before { + content: "\e270" +} + +.fa-scroll:before { + content: "\f70e" +} + +.fa-spa:before { + content: "\f5bb" +} + +.fa-arrow-from-right:before, +.fa-arrow-left-from-line:before { + content: "\f344" +} + +.fa-strawberry:before { + content: "\e32b" +} + +.fa-location-pin-lock:before { + content: "\e51f" +} + +.fa-pause:before { + content: "\f04c" +} + +.fa-clock-eight-thirty:before { + content: "\e346" +} + +.fa-plane-alt:before, +.fa-plane-engines:before { + content: "\f3de" +} + +.fa-hill-avalanche:before { + content: "\e507" +} + +.fa-temperature-0:before, +.fa-temperature-empty:before, +.fa-thermometer-0:before, +.fa-thermometer-empty:before { + content: "\f2cb" +} + +.fa-bomb:before { + content: "\f1e2" +} + +.fa-gauge-low:before, +.fa-tachometer-alt-slow:before { + content: "\f627" +} + +.fa-registered:before { + content: "\f25d" +} + +.fa-trash-can-plus:before { + content: "\e2ac" +} + +.fa-address-card:before, +.fa-contact-card:before, +.fa-vcard:before { + content: "\f2bb" +} + +.fa-balance-scale-right:before, +.fa-scale-unbalanced-flip:before { + content: "\f516" +} + +.fa-globe-snow:before { + content: "\f7a3" +} + +.fa-subscript:before { + content: "\f12c" +} + +.fa-diamond-turn-right:before, +.fa-directions:before { + content: "\f5eb" +} + +.fa-integral:before { + content: "\f667" +} + +.fa-burst:before { + content: "\e4dc" +} + +.fa-house-laptop:before, +.fa-laptop-house:before { + content: "\e066" +} + +.fa-face-tired:before, +.fa-tired:before { + content: "\f5c8" +} + +.fa-money-bills:before { + content: "\e1f3" +} + +.fa-blinds-raised:before { + content: "\f8fd" +} + +.fa-smog:before { + content: "\f75f" +} + +.fa-ufo-beam:before { + content: "\e048" +} + +.fa-caret-circle-up:before, +.fa-circle-caret-up:before { + content: "\f331" +} + +.fa-user-vneck-hair-long:before { + content: "\e463" +} + +.fa-square-a-lock:before { + content: "\e44d" +} + +.fa-crutch:before { + content: "\f7f7" +} + +.fa-gas-pump-slash:before { + content: "\f5f4" +} + +.fa-cloud-arrow-up:before, +.fa-cloud-upload-alt:before, +.fa-cloud-upload:before { + content: "\f0ee" +} + +.fa-palette:before { + content: "\f53f" +} + +.fa-transporter-4:before { + content: "\e2a5" +} + +.fa-chart-mixed-up-circle-currency:before { + content: "\e5d8" +} + +.fa-objects-align-right:before { + content: "\e3bf" +} + +.fa-arrows-turn-right:before { + content: "\e4c0" +} + +.fa-vest:before { + content: "\e085" +} + +.fa-pig:before { + content: "\f706" +} + +.fa-inbox-full:before { + content: "\e1ba" +} + +.fa-circle-envelope:before, +.fa-envelope-circle:before { + content: "\e10c" +} + +.fa-construction:before, +.fa-triangle-person-digging:before { + content: "\f85d" +} + +.fa-ferry:before { + content: "\e4ea" +} + +.fa-bullseye-arrow:before { + content: "\f648" +} + +.fa-arrows-down-to-people:before { + content: "\e4b9" +} + +.fa-seedling:before, +.fa-sprout:before { + content: "\f4d8" +} + +.fa-clock-seven:before { + content: "\e350" +} + +.fa-arrows-alt-h:before, +.fa-left-right:before { + content: "\f337" +} + +.fa-boxes-packing:before { + content: "\e4c7" +} + +.fa-arrow-circle-left:before, +.fa-circle-arrow-left:before { + content: "\f0a8" +} + +.fa-flashlight:before { + content: "\f8b8" +} + +.fa-file-jpg:before { + content: "\e646" +} + +.fa-group-arrows-rotate:before { + content: "\e4f6" +} + +.fa-bowl-food:before { + content: "\e4c6" +} + +.fa-square-9:before { + content: "\e25e" +} + +.fa-candy-cane:before { + content: "\f786" +} + +.fa-arrow-down-wide-short:before, +.fa-sort-amount-asc:before, +.fa-sort-amount-down:before { + content: "\f160" +} + +.fa-dollar-square:before, +.fa-square-dollar:before, +.fa-usd-square:before { + content: "\f2e9" +} + +.fa-phone-arrow-right:before { + content: "\e5be" +} + +.fa-hand-holding-seedling:before { + content: "\f4bf" +} + +.fa-comment-alt-check:before, +.fa-message-check:before { + content: "\f4a2" +} + +.fa-cloud-bolt:before, +.fa-thunderstorm:before { + content: "\f76c" +} + +.fa-chart-line-up-down:before { + content: "\e5d7" +} + +.fa-remove-format:before, +.fa-text-slash:before { + content: "\f87d" +} + +.fa-watch:before { + content: "\f2e1" +} + +.fa-circle-down-left:before { + content: "\e107" +} + +.fa-text:before { + content: "\f893" +} + +.fa-projector:before { + content: "\f8d6" +} + +.fa-face-smile-wink:before, +.fa-smile-wink:before { + content: "\f4da" +} + +.fa-tombstone-alt:before, +.fa-tombstone-blank:before { + content: "\f721" +} + +.fa-chess-king-alt:before, +.fa-chess-king-piece:before { + content: "\f440" +} + +.fa-circle-6:before { + content: "\e0f3" +} + +.fa-waves-sine:before { + content: "\e65d" +} + +.fa-arrow-alt-left:before, +.fa-left:before { + content: "\f355" +} + +.fa-file-word:before { + content: "\f1c2" +} + +.fa-file-powerpoint:before { + content: "\f1c4" +} + +.fa-arrow-alt-square-down:before, +.fa-square-down:before { + content: "\f350" +} + +.fa-objects-align-center-vertical:before { + content: "\e3bd" +} + +.fa-arrows-h:before, +.fa-arrows-left-right:before { + content: "\f07e" +} + +.fa-house-lock:before { + content: "\e510" +} + +.fa-cloud-arrow-down:before, +.fa-cloud-download-alt:before, +.fa-cloud-download:before { + content: "\f0ed" +} + +.fa-wreath:before { + content: "\f7e2" +} + +.fa-children:before { + content: "\e4e1" +} + +.fa-meter-droplet:before { + content: "\e1ea" +} + +.fa-blackboard:before, +.fa-chalkboard:before { + content: "\f51b" +} + +.fa-user-alt-slash:before, +.fa-user-large-slash:before { + content: "\f4fa" +} + +.fa-signal-4:before, +.fa-signal-strong:before { + content: "\f68f" +} + +.fa-lollipop:before, +.fa-lollypop:before { + content: "\e424" +} + +.fa-list-tree:before { + content: "\e1d2" +} + +.fa-envelope-open:before { + content: "\f2b6" +} + +.fa-draw-circle:before { + content: "\f5ed" +} + +.fa-cat-space:before { + content: "\e001" +} + +.fa-handshake-alt-slash:before, +.fa-handshake-simple-slash:before { + content: "\e05f" +} + +.fa-rabbit-fast:before, +.fa-rabbit-running:before { + content: "\f709" +} + +.fa-memo-pad:before { + content: "\e1da" +} + +.fa-mattress-pillow:before { + content: "\e525" +} + +.fa-alarm-plus:before { + content: "\f844" +} + +.fa-alicorn:before { + content: "\f6b0" +} + +.fa-comment-question:before { + content: "\e14b" +} + +.fa-gingerbread-man:before { + content: "\f79d" +} + +.fa-guarani-sign:before { + content: "\e19a" +} + +.fa-burger-fries:before { + content: "\e0cd" +} + +.fa-mug-tea:before { + content: "\f875" +} + +.fa-border-top:before { + content: "\f855" +} + +.fa-arrows-rotate:before, +.fa-refresh:before, +.fa-sync:before { + content: "\f021" +} + +.fa-book-circle:before, +.fa-circle-book-open:before { + content: "\e0ff" +} + +.fa-arrows-to-dotted-line:before { + content: "\e0a6" +} + +.fa-fire-extinguisher:before { + content: "\f134" +} + +.fa-magnifying-glass-arrows-rotate:before { + content: "\e65e" +} + +.fa-garage-open:before { + content: "\e00b" +} + +.fa-shelves-empty:before { + content: "\e246" +} + +.fa-cruzeiro-sign:before { + content: "\e152" +} + +.fa-watch-apple:before { + content: "\e2cb" +} + +.fa-watch-calculator:before { + content: "\f8f0" +} + +.fa-list-dropdown:before { + content: "\e1cf" +} + +.fa-cabinet-filing:before { + content: "\f64b" +} + +.fa-burger-soda:before { + content: "\f858" +} + +.fa-arrow-square-up:before, +.fa-square-arrow-up:before { + content: "\f33c" +} + +.fa-greater-than-equal:before { + content: "\f532" +} + +.fa-pallet-box:before { + content: "\e208" +} + +.fa-face-confounded:before { + content: "\e36c" +} + +.fa-shield-alt:before, +.fa-shield-halved:before { + content: "\f3ed" +} + +.fa-truck-plow:before { + content: "\f7de" +} + +.fa-atlas:before, +.fa-book-atlas:before { + content: "\f558" +} + +.fa-virus:before { + content: "\e074" +} + +.fa-grid-round-2:before { + content: "\e5db" +} + +.fa-comment-middle-top:before { + content: "\e14a" +} + +.fa-wave:before { + content: "\e65b" +} + +.fa-envelope-circle-check:before { + content: "\e4e8" +} + +.fa-layer-group:before { + content: "\f5fd" +} + +.fa-restroom-simple:before { + content: "\e23a" +} + +.fa-arrows-to-dot:before { + content: "\e4be" +} + +.fa-border-outer:before { + content: "\f851" +} + +.fa-hashtag-lock:before { + content: "\e415" +} + +.fa-clock-two-thirty:before { + content: "\e35b" +} + +.fa-archway:before { + content: "\f557" +} + +.fa-heart-circle-check:before { + content: "\e4fd" +} + +.fa-house-chimney-crack:before, +.fa-house-damage:before { + content: "\f6f1" +} + +.fa-file-archive:before, +.fa-file-zipper:before { + content: "\f1c6" +} + +.fa-ticket-perforated:before { + content: "\e63e" +} + +.fa-heart-half:before { + content: "\e1ab" +} + +.fa-comment-check:before { + content: "\f4ac" +} + +.fa-square:before { + content: "\f0c8" +} + +.fa-memo:before { + content: "\e1d8" +} + +.fa-glass-martini:before, +.fa-martini-glass-empty:before { + content: "\f000" +} + +.fa-couch:before { + content: "\f4b8" +} + +.fa-cedi-sign:before { + content: "\e0df" +} + +.fa-italic:before { + content: "\f033" +} + +.fa-glass-citrus:before { + content: "\f869" +} + +.fa-calendar-lines-pen:before { + content: "\e472" +} + +.fa-church:before { + content: "\f51d" +} + +.fa-person-snowmobiling:before, +.fa-snowmobile:before { + content: "\f7d1" +} + +.fa-face-hushed:before { + content: "\e37b" +} + +.fa-comments-dollar:before { + content: "\f653" +} + +.fa-tickets-simple:before { + content: "\e659" +} + +.fa-pickaxe:before { + content: "\e5bf" +} + +.fa-link-simple-slash:before { + content: "\e1ce" +} + +.fa-democrat:before { + content: "\f747" +} + +.fa-face-confused:before { + content: "\e36d" +} + +.fa-pinball:before { + content: "\e229" +} + +.fa-z:before { + content: "\5a" +} + +.fa-person-skiing:before, +.fa-skiing:before { + content: "\f7c9" +} + +.fa-deer:before { + content: "\f78e" +} + +.fa-input-pipe:before { + content: "\e1be" +} + +.fa-road-lock:before { + content: "\e567" +} + +.fa-a:before { + content: "\41" +} + +.fa-bookmark-slash:before { + content: "\e0c2" +} + +.fa-temperature-arrow-down:before, +.fa-temperature-down:before { + content: "\e03f" +} + +.fa-mace:before { + content: "\f6f8" +} + +.fa-feather-alt:before, +.fa-feather-pointed:before { + content: "\f56b" +} + +.fa-sausage:before { + content: "\f820" +} + +.fa-trash-can-clock:before { + content: "\e2aa" +} + +.fa-p:before { + content: "\50" +} + +.fa-broom-wide:before { + content: "\e5d1" +} + +.fa-snowflake:before { + content: "\f2dc" +} + +.fa-stomach:before { + content: "\f623" +} + +.fa-newspaper:before { + content: "\f1ea" +} + +.fa-ad:before, +.fa-rectangle-ad:before { + content: "\f641" +} + +.fa-guitar-electric:before { + content: "\f8be" +} + +.fa-arrow-turn-down-right:before { + content: "\e3d6" +} + +.fa-moon-cloud:before { + content: "\f754" +} + +.fa-bread-slice-butter:before { + content: "\e3e1" +} + +.fa-arrow-circle-right:before, +.fa-circle-arrow-right:before { + content: "\f0a9" +} + +.fa-user-group-crown:before, +.fa-users-crown:before { + content: "\f6a5" +} + +.fa-circle-i:before { + content: "\e111" +} + +.fa-toilet-paper-check:before { + content: "\e5b2" +} + +.fa-filter-circle-xmark:before { + content: "\e17b" +} + +.fa-locust:before { + content: "\e520" +} + +.fa-sort:before, +.fa-unsorted:before { + content: "\f0dc" +} + +.fa-list-1-2:before, +.fa-list-numeric:before, +.fa-list-ol:before { + content: "\f0cb" +} + +.fa-chart-waterfall:before { + content: "\e0eb" +} + +.fa-sparkle:before { + content: "\e5d6" +} + +.fa-face-party:before { + content: "\e383" +} + +.fa-kidneys:before { + content: "\f5fb" +} + +.fa-wifi-exclamation:before { + content: "\e2cf" +} + +.fa-chart-network:before { + content: "\f78a" +} + +.fa-person-dress-burst:before { + content: "\e544" +} + +.fa-dice-d4:before { + content: "\f6d0" +} + +.fa-money-check-alt:before, +.fa-money-check-dollar:before { + content: "\f53d" +} + +.fa-vector-square:before { + content: "\f5cb" +} + +.fa-bread-slice:before { + content: "\f7ec" +} + +.fa-language:before { + content: "\f1ab" +} + +.fa-wheat-awn-slash:before { + content: "\e338" +} + +.fa-face-kiss-wink-heart:before, +.fa-kiss-wink-heart:before { + content: "\f598" +} + +.fa-dagger:before { + content: "\f6cb" +} + +.fa-podium:before { + content: "\f680" +} + +.fa-memo-circle-check:before { + content: "\e1d9" +} + +.fa-route-highway:before { + content: "\f61a" +} + +.fa-arrow-alt-to-bottom:before, +.fa-down-to-line:before { + content: "\f34a" +} + +.fa-filter:before { + content: "\f0b0" +} + +.fa-square-g:before { + content: "\e271" +} + +.fa-circle-phone:before, +.fa-phone-circle:before { + content: "\e11b" +} + +.fa-clipboard-prescription:before { + content: "\f5e8" +} + +.fa-user-nurse-hair:before { + content: "\e45d" +} + +.fa-question:before { + content: "\3f" +} + +.fa-file-signature:before { + content: "\f573" +} + +.fa-toggle-large-on:before { + content: "\e5b1" +} + +.fa-arrows-alt:before, +.fa-up-down-left-right:before { + content: "\f0b2" +} + +.fa-dryer-alt:before, +.fa-dryer-heat:before { + content: "\f862" +} + +.fa-house-chimney-user:before { + content: "\e065" +} + +.fa-hand-holding-heart:before { + content: "\f4be" +} + +.fa-arrow-up-small-big:before, +.fa-sort-size-up-alt:before { + content: "\f88f" +} + +.fa-train-track:before { + content: "\e453" +} + +.fa-puzzle-piece:before { + content: "\f12e" +} + +.fa-money-check:before { + content: "\f53c" +} + +.fa-star-half-alt:before, +.fa-star-half-stroke:before { + content: "\f5c0" +} + +.fa-file-exclamation:before { + content: "\f31a" +} + +.fa-code:before { + content: "\f121" +} + +.fa-glass-whiskey:before, +.fa-whiskey-glass:before { + content: "\f7a0" +} + +.fa-moon-stars:before { + content: "\f755" +} + +.fa-building-circle-exclamation:before { + content: "\e4d3" +} + +.fa-clothes-hanger:before { + content: "\e136" +} + +.fa-mobile-iphone:before, +.fa-mobile-notch:before { + content: "\e1ee" +} + +.fa-magnifying-glass-chart:before { + content: "\e522" +} + +.fa-arrow-up-right-from-square:before, +.fa-external-link:before { + content: "\f08e" +} + +.fa-cubes-stacked:before { + content: "\e4e6" +} + +.fa-images-user:before { + content: "\e1b9" +} + +.fa-krw:before, +.fa-won-sign:before, +.fa-won:before { + content: "\f159" +} + +.fa-image-polaroid-user:before { + content: "\e1b6" +} + +.fa-virus-covid:before { + content: "\e4a8" +} + +.fa-square-ellipsis:before { + content: "\e26e" +} + +.fa-pie:before { + content: "\f705" +} + +.fa-chess-knight-alt:before, +.fa-chess-knight-piece:before { + content: "\f442" +} + +.fa-austral-sign:before { + content: "\e0a9" +} + +.fa-cloud-plus:before { + content: "\e35e" +} + +.fa-f:before { + content: "\46" +} + +.fa-leaf:before { + content: "\f06c" +} + +.fa-bed-bunk:before { + content: "\f8f8" +} + +.fa-road:before { + content: "\f018" +} + +.fa-cab:before, +.fa-taxi:before { + content: "\f1ba" +} + +.fa-person-circle-plus:before { + content: "\e541" +} + +.fa-chart-pie:before, +.fa-pie-chart:before { + content: "\f200" +} + +.fa-bolt-lightning:before { + content: "\e0b7" +} + +.fa-clock-eight:before { + content: "\e345" +} + +.fa-sack-xmark:before { + content: "\e56a" +} + +.fa-file-xls:before { + content: "\e64d" +} + +.fa-file-excel:before { + content: "\f1c3" +} + +.fa-file-contract:before { + content: "\f56c" +} + +.fa-fish-fins:before { + content: "\e4f2" +} + +.fa-circle-q:before { + content: "\e11e" +} + +.fa-building-flag:before { + content: "\e4d5" +} + +.fa-face-grin-beam:before, +.fa-grin-beam:before { + content: "\f582" +} + +.fa-object-ungroup:before { + content: "\f248" +} + +.fa-face-disguise:before { + content: "\e370" +} + +.fa-circle-arrow-down-right:before { + content: "\e0fa" +} + +.fa-alien-8bit:before, +.fa-alien-monster:before { + content: "\f8f6" +} + +.fa-hand-point-ribbon:before { + content: "\e1a6" +} + +.fa-poop:before { + content: "\f619" +} + +.fa-object-exclude:before { + content: "\e49c" +} + +.fa-telescope:before { + content: "\e03e" +} + +.fa-location-pin:before, +.fa-map-marker:before { + content: "\f041" +} + +.fa-square-list:before { + content: "\e489" +} + +.fa-kaaba:before { + content: "\f66b" +} + +.fa-toilet-paper:before { + content: "\f71e" +} + +.fa-hard-hat:before, +.fa-hat-hard:before, +.fa-helmet-safety:before { + content: "\f807" +} + +.fa-comment-code:before { + content: "\e147" +} + +.fa-sim-cards:before { + content: "\e251" +} + +.fa-starship:before { + content: "\e039" +} + +.fa-eject:before { + content: "\f052" +} + +.fa-arrow-alt-circle-right:before, +.fa-circle-right:before { + content: "\f35a" +} + +.fa-plane-circle-check:before { + content: "\e555" +} + +.fa-seal:before { + content: "\e241" +} + +.fa-user-cowboy:before { + content: "\f8ea" +} + +.fa-hexagon-vertical-nft:before { + content: "\e505" +} + +.fa-face-rolling-eyes:before, +.fa-meh-rolling-eyes:before { + content: "\f5a5" +} + +.fa-bread-loaf:before { + content: "\f7eb" +} + +.fa-rings-wedding:before { + content: "\f81b" +} + +.fa-object-group:before { + content: "\f247" +} + +.fa-french-fries:before { + content: "\f803" +} + +.fa-chart-line:before, +.fa-line-chart:before { + content: "\f201" +} + +.fa-calendar-arrow-down:before, +.fa-calendar-download:before { + content: "\e0d0" +} + +.fa-send-back:before { + content: "\f87e" +} + +.fa-mask-ventilator:before { + content: "\e524" +} + +.fa-tickets:before { + content: "\e658" +} + +.fa-signature-lock:before { + content: "\e3ca" +} + +.fa-arrow-right:before { + content: "\f061" +} + +.fa-map-signs:before, +.fa-signs-post:before { + content: "\f277" +} + +.fa-octagon-plus:before, +.fa-plus-octagon:before { + content: "\f301" +} + +.fa-cash-register:before { + content: "\f788" +} + +.fa-person-circle-question:before { + content: "\e542" +} + +.fa-melon-slice:before { + content: "\e311" +} + +.fa-space-station-moon:before { + content: "\e033" +} + +.fa-comment-alt-smile:before, +.fa-message-smile:before { + content: "\f4aa" +} + +.fa-cup-straw:before { + content: "\e363" +} + +.fa-arrow-alt-from-right:before, +.fa-left-from-line:before { + content: "\f348" +} + +.fa-h:before { + content: "\48" +} + +.fa-basket-shopping-simple:before, +.fa-shopping-basket-alt:before { + content: "\e0af" +} + +.fa-hands-heart:before, +.fa-hands-holding-heart:before { + content: "\f4c3" +} + +.fa-clock-nine:before { + content: "\e34c" +} + +.fa-hammer-brush:before { + content: "\e620" +} + +.fa-tarp:before { + content: "\e57b" +} + +.fa-face-sleepy:before { + content: "\e38e" +} + +.fa-hand-horns:before { + content: "\e1a9" +} + +.fa-screwdriver-wrench:before, +.fa-tools:before { + content: "\f7d9" +} + +.fa-arrows-to-eye:before { + content: "\e4bf" +} + +.fa-circle-three-quarters:before { + content: "\e125" +} + +.fa-trophy-alt:before, +.fa-trophy-star:before { + content: "\f2eb" +} + +.fa-plug-circle-bolt:before { + content: "\e55b" +} + +.fa-face-thermometer:before { + content: "\e39a" +} + +.fa-grid-round-4:before { + content: "\e5dd" +} + +.fa-sign-posts-wrench:before { + content: "\e626" +} + +.fa-shirt-running:before { + content: "\e3c8" +} + +.fa-book-circle-arrow-up:before { + content: "\e0bd" +} + +.fa-face-nauseated:before { + content: "\e381" +} + +.fa-heart:before { + content: "\f004" +} + +.fa-file-chart-pie:before { + content: "\f65a" +} + +.fa-mars-and-venus:before { + content: "\f224" +} + +.fa-home-user:before, +.fa-house-user:before { + content: "\e1b0" +} + +.fa-circle-arrow-down-left:before { + content: "\e0f9" +} + +.fa-dumpster-fire:before { + content: "\f794" +} + +.fa-hexagon-minus:before, +.fa-minus-hexagon:before { + content: "\f307" +} + +.fa-arrow-alt-to-left:before, +.fa-left-to-line:before { + content: "\f34b" +} + +.fa-house-crack:before { + content: "\e3b1" +} + +.fa-paw-alt:before, +.fa-paw-simple:before { + content: "\f701" +} + +.fa-arrow-left-long-to-line:before { + content: "\e3d4" +} + +.fa-brackets-round:before, +.fa-parentheses:before { + content: "\e0c5" +} + +.fa-cocktail:before, +.fa-martini-glass-citrus:before { + content: "\f561" +} + +.fa-user-shakespeare:before { + content: "\e2c2" +} + +.fa-arrow-right-to-arc:before { + content: "\e4b2" +} + +.fa-face-surprise:before, +.fa-surprise:before { + content: "\f5c2" +} + +.fa-bottle-water:before { + content: "\e4c5" +} + +.fa-circle-pause:before, +.fa-pause-circle:before { + content: "\f28b" +} + +.fa-gauge-circle-plus:before { + content: "\e498" +} + +.fa-folders:before { + content: "\f660" +} + +.fa-angel:before { + content: "\f779" +} + +.fa-value-absolute:before { + content: "\f6a6" +} + +.fa-rabbit:before { + content: "\f708" +} + +.fa-toilet-paper-slash:before { + content: "\e072" +} + +.fa-circle-euro:before { + content: "\e5ce" +} + +.fa-apple-alt:before, +.fa-apple-whole:before { + content: "\f5d1" +} + +.fa-kitchen-set:before { + content: "\e51a" +} + +.fa-diamond-half:before { + content: "\e5b7" +} + +.fa-lock-alt:before, +.fa-lock-keyhole:before { + content: "\f30d" +} + +.fa-r:before { + content: "\52" +} + +.fa-temperature-1:before, +.fa-temperature-quarter:before, +.fa-thermometer-1:before, +.fa-thermometer-quarter:before { + content: "\f2ca" +} + +.fa-info-square:before, +.fa-square-info:before { + content: "\f30f" +} + +.fa-wifi-slash:before { + content: "\f6ac" +} + +.fa-toilet-paper-xmark:before { + content: "\e5b3" +} + +.fa-hands-holding-dollar:before, +.fa-hands-usd:before { + content: "\f4c5" +} + +.fa-cube:before { + content: "\f1b2" +} + +.fa-arrow-down-triangle-square:before, +.fa-sort-shapes-down:before { + content: "\f888" +} + +.fa-bitcoin-sign:before { + content: "\e0b4" +} + +.fa-shutters:before { + content: "\e449" +} + +.fa-shield-dog:before { + content: "\e573" +} + +.fa-solar-panel:before { + content: "\f5ba" +} + +.fa-lock-open:before { + content: "\f3c1" +} + +.fa-table-tree:before { + content: "\e293" +} + +.fa-house-chimney-heart:before { + content: "\e1b2" +} + +.fa-tally-3:before { + content: "\e296" +} + +.fa-elevator:before { + content: "\e16d" +} + +.fa-money-bill-transfer:before { + content: "\e528" +} + +.fa-money-bill-trend-up:before { + content: "\e529" +} + +.fa-house-flood-water-circle-arrow-right:before { + content: "\e50f" +} + +.fa-poll-h:before, +.fa-square-poll-horizontal:before { + content: "\f682" +} + +.fa-circle:before { + content: "\f111" +} + +.fa-cart-circle-exclamation:before { + content: "\e3f2" +} + +.fa-sword:before { + content: "\f71c" +} + +.fa-backward-fast:before, +.fa-fast-backward:before { + content: "\f049" +} + +.fa-recycle:before { + content: "\f1b8" +} + +.fa-user-astronaut:before { + content: "\f4fb" +} + +.fa-interrobang:before { + content: "\e5ba" +} + +.fa-plane-slash:before { + content: "\e069" +} + +.fa-circle-dashed:before { + content: "\e105" +} + +.fa-trademark:before { + content: "\f25c" +} + +.fa-basketball-ball:before, +.fa-basketball:before { + content: "\f434" +} + +.fa-fork-knife:before, +.fa-utensils-alt:before { + content: "\f2e6" +} + +.fa-satellite-dish:before { + content: "\f7c0" +} + +.fa-badge-check:before { + content: "\f336" +} + +.fa-arrow-alt-circle-up:before, +.fa-circle-up:before { + content: "\f35b" +} + +.fa-slider:before { + content: "\e252" +} + +.fa-mobile-alt:before, +.fa-mobile-screen-button:before { + content: "\f3cd" +} + +.fa-clock-one-thirty:before { + content: "\e34f" +} + +.fa-inbox-arrow-up:before, +.fa-inbox-out:before { + content: "\f311" +} + +.fa-cloud-slash:before { + content: "\e137" +} + +.fa-volume-high:before, +.fa-volume-up:before { + content: "\f028" +} + +.fa-users-rays:before { + content: "\e593" +} + +.fa-wallet:before { + content: "\f555" +} + +.fa-octagon-check:before { + content: "\e426" +} + +.fa-flatbread-stuffed:before { + content: "\e40c" +} + +.fa-clipboard-check:before { + content: "\f46c" +} + +.fa-cart-circle-plus:before { + content: "\e3f3" +} + +.fa-shipping-timed:before, +.fa-truck-clock:before { + content: "\f48c" +} + +.fa-pool-8-ball:before { + content: "\e3c5" +} + +.fa-file-audio:before { + content: "\f1c7" +} + +.fa-turn-down-left:before { + content: "\e331" +} + +.fa-lock-hashtag:before { + content: "\e423" +} + +.fa-chart-radar:before { + content: "\e0e7" +} + +.fa-staff:before { + content: "\f71b" +} + +.fa-burger:before, +.fa-hamburger:before { + content: "\f805" +} + +.fa-utility-pole:before { + content: "\e2c3" +} + +.fa-transporter-6:before { + content: "\e2a7" +} + +.fa-arrow-turn-left:before { + content: "\e632" +} + +.fa-wrench:before { + content: "\f0ad" +} + +.fa-bugs:before { + content: "\e4d0" +} + +.fa-vector-polygon:before { + content: "\e2c7" +} + +.fa-diagram-nested:before { + content: "\e157" +} + +.fa-rupee-sign:before, +.fa-rupee:before { + content: "\f156" +} + +.fa-file-image:before { + content: "\f1c5" +} + +.fa-circle-question:before, +.fa-question-circle:before { + content: "\f059" +} + +.fa-tickets-perforated:before { + content: "\e63f" +} + +.fa-image-user:before { + content: "\e1b8" +} + +.fa-buoy:before { + content: "\e5b5" +} + +.fa-plane-departure:before { + content: "\f5b0" +} + +.fa-handshake-slash:before { + content: "\e060" +} + +.fa-book-bookmark:before { + content: "\e0bb" +} + +.fa-border-center-h:before { + content: "\f89c" +} + +.fa-can-food:before { + content: "\e3e6" +} + +.fa-typewriter:before { + content: "\f8e7" +} + +.fa-arrow-right-from-arc:before { + content: "\e4b1" +} + +.fa-circle-k:before { + content: "\e113" +} + +.fa-face-hand-over-mouth:before { + content: "\e378" +} + +.fa-popcorn:before { + content: "\f819" +} + +.fa-house-flood:before, +.fa-house-water:before { + content: "\f74f" +} + +.fa-object-subtract:before { + content: "\e49e" +} + +.fa-code-branch:before { + content: "\f126" +} + +.fa-warehouse-alt:before, +.fa-warehouse-full:before { + content: "\f495" +} + +.fa-hat-cowboy:before { + content: "\f8c0" +} + +.fa-bridge:before { + content: "\e4c8" +} + +.fa-phone-alt:before, +.fa-phone-flip:before { + content: "\f879" +} + +.fa-arrow-down-from-dotted-line:before { + content: "\e090" +} + +.fa-file-doc:before { + content: "\e5ed" +} + +.fa-square-quarters:before { + content: "\e44e" +} + +.fa-truck-front:before { + content: "\e2b7" +} + +.fa-cat:before { + content: "\f6be" +} + +.fa-trash-xmark:before { + content: "\e2b4" +} + +.fa-caret-circle-left:before, +.fa-circle-caret-left:before { + content: "\f32e" +} + +.fa-files:before { + content: "\e178" +} + +.fa-anchor-circle-exclamation:before { + content: "\e4ab" +} + +.fa-face-clouds:before { + content: "\e47d" +} + +.fa-user-crown:before { + content: "\f6a4" +} + +.fa-basket-shopping-plus:before { + content: "\e653" +} + +.fa-truck-field:before { + content: "\e58d" +} + +.fa-route:before { + content: "\f4d7" +} + +.fa-cart-circle-check:before { + content: "\e3f1" +} + +.fa-clipboard-question:before { + content: "\e4e3" +} + +.fa-panorama:before { + content: "\e209" +} + +.fa-comment-medical:before { + content: "\f7f5" +} + +.fa-teeth-open:before { + content: "\f62f" +} + +.fa-user-tie-hair-long:before { + content: "\e460" +} + +.fa-file-circle-minus:before { + content: "\e4ed" +} + +.fa-head-side-medical:before { + content: "\f809" +} + +.fa-arrow-turn-right:before { + content: "\e635" +} + +.fa-tags:before { + content: "\f02c" +} + +.fa-wine-glass:before { + content: "\f4e3" +} + +.fa-fast-forward:before, +.fa-forward-fast:before { + content: "\f050" +} + +.fa-face-meh-blank:before, +.fa-meh-blank:before { + content: "\f5a4" +} + +.fa-user-robot:before { + content: "\e04b" +} + +.fa-parking:before, +.fa-square-parking:before { + content: "\f540" +} + +.fa-card-diamond:before { + content: "\e3ea" +} + +.fa-face-zipper:before { + content: "\e3a5" +} + +.fa-face-raised-eyebrow:before { + content: "\e388" +} + +.fa-house-signal:before { + content: "\e012" +} + +.fa-chevron-square-up:before, +.fa-square-chevron-up:before { + content: "\f32c" +} + +.fa-bars-progress:before, +.fa-tasks-alt:before { + content: "\f828" +} + +.fa-faucet-drip:before { + content: "\e006" +} + +.fa-arrows-to-line:before { + content: "\e0a7" +} + +.fa-dolphin:before { + content: "\e168" +} + +.fa-arrow-up-right:before { + content: "\e09f" +} + +.fa-circle-r:before { + content: "\e120" +} + +.fa-cart-flatbed:before, +.fa-dolly-flatbed:before { + content: "\f474" +} + +.fa-ban-smoking:before, +.fa-smoking-ban:before { + content: "\f54d" +} + +.fa-circle-sort-up:before, +.fa-sort-circle-up:before { + content: "\e032" +} + +.fa-terminal:before { + content: "\f120" +} + +.fa-mobile-button:before { + content: "\f10b" +} + +.fa-house-medical-flag:before { + content: "\e514" +} + +.fa-basket-shopping:before, +.fa-shopping-basket:before { + content: "\f291" +} + +.fa-tape:before { + content: "\f4db" +} + +.fa-chestnut:before { + content: "\e3f6" +} + +.fa-bus-alt:before, +.fa-bus-simple:before { + content: "\f55e" +} + +.fa-eye:before { + content: "\f06e" +} + +.fa-face-sad-cry:before, +.fa-sad-cry:before { + content: "\f5b3" +} + +.fa-heat:before { + content: "\e00c" +} + +.fa-ticket-airline:before, +.fa-ticket-perforated-plane:before, +.fa-ticket-plane:before { + content: "\e29a" +} + +.fa-boot-heeled:before { + content: "\e33f" +} + +.fa-arrows-minimize:before, +.fa-compress-arrows:before { + content: "\e0a5" +} + +.fa-audio-description:before { + content: "\f29e" +} + +.fa-person-military-to-person:before { + content: "\e54c" +} + +.fa-file-shield:before { + content: "\e4f0" +} + +.fa-hexagon:before { + content: "\f312" +} + +.fa-manhole:before { + content: "\e1d6" +} + +.fa-user-slash:before { + content: "\f506" +} + +.fa-pen:before { + content: "\f304" +} + +.fa-tower-observation:before { + content: "\e586" +} + +.fa-floppy-disks:before { + content: "\e183" +} + +.fa-toilet-paper-blank-under:before, +.fa-toilet-paper-reverse-alt:before { + content: "\e29f" +} + +.fa-file-code:before { + content: "\f1c9" +} + +.fa-signal-5:before, +.fa-signal-perfect:before, +.fa-signal:before { + content: "\f012" +} + +.fa-pump:before { + content: "\e442" +} + +.fa-bus:before { + content: "\f207" +} + +.fa-heart-circle-xmark:before { + content: "\e501" +} + +.fa-arrow-up-left-from-circle:before { + content: "\e09e" +} + +.fa-home-lg:before, +.fa-house-chimney:before { + content: "\e3af" +} + +.fa-window-maximize:before { + content: "\f2d0" +} + +.fa-dryer:before { + content: "\f861" +} + +.fa-face-frown:before, +.fa-frown:before { + content: "\f119" +} + +.fa-chess-bishop-alt:before, +.fa-chess-bishop-piece:before { + content: "\f43b" +} + +.fa-shirt-tank-top:before { + content: "\e3c9" +} + +.fa-diploma:before, +.fa-scroll-ribbon:before { + content: "\f5ea" +} + +.fa-screencast:before { + content: "\e23e" +} + +.fa-walker:before { + content: "\f831" +} + +.fa-prescription:before { + content: "\f5b1" +} + +.fa-shop:before, +.fa-store-alt:before { + content: "\f54f" +} + +.fa-floppy-disk:before, +.fa-save:before { + content: "\f0c7" +} + +.fa-vihara:before { + content: "\f6a7" +} + +.fa-face-kiss-closed-eyes:before { + content: "\e37d" +} + +.fa-balance-scale-left:before, +.fa-scale-unbalanced:before { + content: "\f515" +} + +.fa-file-user:before { + content: "\f65c" +} + +.fa-user-police-tie:before { + content: "\e334" +} + +.fa-face-tongue-money:before { + content: "\e39d" +} + +.fa-tennis-ball:before { + content: "\f45e" +} + +.fa-square-l:before { + content: "\e275" +} + +.fa-sort-asc:before, +.fa-sort-up:before { + content: "\f0de" +} + +.fa-calendar-arrow-up:before, +.fa-calendar-upload:before { + content: "\e0d1" +} + +.fa-comment-dots:before, +.fa-commenting:before { + content: "\f4ad" +} + +.fa-plant-wilt:before { + content: "\e5aa" +} + +.fa-scarf:before { + content: "\f7c1" +} + +.fa-album-circle-plus:before { + content: "\e48c" +} + +.fa-user-nurse-hair-long:before { + content: "\e45e" +} + +.fa-diamond:before { + content: "\f219" +} + +.fa-arrow-alt-square-left:before, +.fa-square-left:before { + content: "\f351" +} + +.fa-face-grin-squint:before, +.fa-grin-squint:before { + content: "\f585" +} + +.fa-circle-ellipsis-vertical:before { + content: "\e10b" +} + +.fa-hand-holding-dollar:before, +.fa-hand-holding-usd:before { + content: "\f4c0" +} + +.fa-grid-dividers:before { + content: "\e3ad" +} + +.fa-bacterium:before { + content: "\e05a" +} + +.fa-hand-pointer:before { + content: "\f25a" +} + +.fa-drum-steelpan:before { + content: "\f56a" +} + +.fa-hand-scissors:before { + content: "\f257" +} + +.fa-hands-praying:before, +.fa-praying-hands:before { + content: "\f684" +} + +.fa-face-pensive:before { + content: "\e384" +} + +.fa-user-music:before { + content: "\f8eb" +} + +.fa-arrow-right-rotate:before, +.fa-arrow-rotate-forward:before, +.fa-arrow-rotate-right:before, +.fa-redo:before { + content: "\f01e" +} + +.fa-comments-alt-dollar:before, +.fa-messages-dollar:before { + content: "\f652" +} + +.fa-sensor-on:before { + content: "\e02b" +} + +.fa-balloon:before { + content: "\e2e3" +} + +.fa-biohazard:before { + content: "\f780" +} + +.fa-chess-queen-alt:before, +.fa-chess-queen-piece:before { + content: "\f446" +} + +.fa-location-crosshairs:before, +.fa-location:before { + content: "\f601" +} + +.fa-mars-double:before { + content: "\f227" +} + +.fa-house-leave:before, +.fa-house-person-depart:before, +.fa-house-person-leave:before { + content: "\e00f" +} + +.fa-ruler-triangle:before { + content: "\f61c" +} + +.fa-card-club:before { + content: "\e3e9" +} + +.fa-child-dress:before { + content: "\e59c" +} + +.fa-users-between-lines:before { + content: "\e591" +} + +.fa-lungs-virus:before { + content: "\e067" +} + +.fa-spinner-third:before { + content: "\f3f4" +} + +.fa-face-grin-tears:before, +.fa-grin-tears:before { + content: "\f588" +} + +.fa-phone:before { + content: "\f095" +} + +.fa-computer-mouse-scrollwheel:before, +.fa-mouse-alt:before { + content: "\f8cd" +} + +.fa-calendar-times:before, +.fa-calendar-xmark:before { + content: "\f273" +} + +.fa-child-reaching:before { + content: "\e59d" +} + +.fa-table-layout:before { + content: "\e290" +} + +.fa-narwhal:before { + content: "\f6fe" +} + +.fa-ramp-loading:before { + content: "\f4d4" +} + +.fa-calendar-circle-plus:before { + content: "\e470" +} + +.fa-toothbrush:before { + content: "\f635" +} + +.fa-border-inner:before { + content: "\f84e" +} + +.fa-paw-claws:before { + content: "\f702" +} + +.fa-kiwi-fruit:before { + content: "\e30c" +} + +.fa-traffic-light-slow:before { + content: "\f639" +} + +.fa-rectangle-code:before { + content: "\e322" +} + +.fa-head-side-virus:before { + content: "\e064" +} + +.fa-keyboard-brightness:before { + content: "\e1c0" +} + +.fa-books-medical:before { + content: "\f7e8" +} + +.fa-lightbulb-slash:before { + content: "\f673" +} + +.fa-home-blank:before, +.fa-house-blank:before { + content: "\e487" +} + +.fa-square-5:before { + content: "\e25a" +} + +.fa-heart-square:before, +.fa-square-heart:before { + content: "\f4c8" +} + +.fa-puzzle:before { + content: "\e443" +} + +.fa-user-cog:before, +.fa-user-gear:before { + content: "\f4fe" +} + +.fa-pipe-circle-check:before { + content: "\e436" +} + +.fa-arrow-up-1-9:before, +.fa-sort-numeric-up:before { + content: "\f163" +} + +.fa-octagon-exclamation:before { + content: "\e204" +} + +.fa-dial-low:before { + content: "\e15d" +} + +.fa-door-closed:before { + content: "\f52a" +} + +.fa-laptop-mobile:before, +.fa-phone-laptop:before { + content: "\f87a" +} + +.fa-conveyor-belt-alt:before, +.fa-conveyor-belt-boxes:before { + content: "\f46f" +} + +.fa-shield-virus:before { + content: "\e06c" +} + +.fa-starfighter-alt-advanced:before, +.fa-starfighter-twin-ion-engine-advanced:before { + content: "\e28e" +} + +.fa-dice-six:before { + content: "\f526" +} + +.fa-starfighter-alt:before, +.fa-starfighter-twin-ion-engine:before { + content: "\e038" +} + +.fa-rocket-launch:before { + content: "\e027" +} + +.fa-mosquito-net:before { + content: "\e52c" +} + +.fa-vent-damper:before { + content: "\e465" +} + +.fa-bridge-water:before { + content: "\e4ce" +} + +.fa-ban-bug:before, +.fa-debug:before { + content: "\f7f9" +} + +.fa-person-booth:before { + content: "\f756" +} + +.fa-text-width:before { + content: "\f035" +} + +.fa-garage-car:before { + content: "\e00a" +} + +.fa-square-kanban:before { + content: "\e488" +} + +.fa-hat-wizard:before { + content: "\f6e8" +} + +.fa-chart-kanban:before { + content: "\e64f" +} + +.fa-pen-fancy:before { + content: "\f5ac" +} + +.fa-coffee-pot:before { + content: "\e002" +} + +.fa-mouse-field:before { + content: "\e5a8" +} + +.fa-digging:before, +.fa-person-digging:before { + content: "\f85e" +} + +.fa-shower-alt:before, +.fa-shower-down:before { + content: "\e24d" +} + +.fa-box-circle-check:before { + content: "\e0c4" +} + +.fa-brightness:before { + content: "\e0c9" +} + +.fa-car-side-bolt:before { + content: "\e344" +} + +.fa-file-xml:before { + content: "\e654" +} + +.fa-ornament:before { + content: "\f7b8" +} + +.fa-phone-arrow-down-left:before, +.fa-phone-arrow-down:before, +.fa-phone-incoming:before { + content: "\e223" +} + +.fa-cloud-word:before { + content: "\e138" +} + +.fa-hand-fingers-crossed:before { + content: "\e1a3" +} + +.fa-trash:before { + content: "\f1f8" +} + +.fa-gauge-simple-med:before, +.fa-gauge-simple:before, +.fa-tachometer-average:before { + content: "\f629" +} + +.fa-arrow-down-small-big:before, +.fa-sort-size-down-alt:before { + content: "\f88d" +} + +.fa-book-medical:before { + content: "\f7e6" +} + +.fa-face-melting:before { + content: "\e483" +} + +.fa-poo:before { + content: "\f2fe" +} + +.fa-pen-alt-slash:before, +.fa-pen-clip-slash:before { + content: "\e20f" +} + +.fa-quote-right-alt:before, +.fa-quote-right:before { + content: "\f10e" +} + +.fa-scroll-old:before { + content: "\f70f" +} + +.fa-guitars:before { + content: "\f8bf" +} + +.fa-phone-xmark:before { + content: "\e227" +} + +.fa-hose:before { + content: "\e419" +} + +.fa-clock-six:before { + content: "\e352" +} + +.fa-shirt:before, +.fa-t-shirt:before, +.fa-tshirt:before { + content: "\f553" +} + +.fa-billboard:before { + content: "\e5cd" +} + +.fa-square-r:before { + content: "\e27c" +} + +.fa-cubes:before { + content: "\f1b3" +} + +.fa-envelope-open-dollar:before { + content: "\f657" +} + +.fa-divide:before { + content: "\f529" +} + +.fa-sun-cloud:before { + content: "\f763" +} + +.fa-lamp-floor:before { + content: "\e015" +} + +.fa-square-7:before { + content: "\e25c" +} + +.fa-tenge-sign:before, +.fa-tenge:before { + content: "\f7d7" +} + +.fa-headphones:before { + content: "\f025" +} + +.fa-hands-holding:before { + content: "\f4c2" +} + +.fa-campfire:before { + content: "\f6ba" +} + +.fa-circle-ampersand:before { + content: "\e0f8" +} + +.fa-snowflakes:before { + content: "\f7cf" +} + +.fa-hands-clapping:before { + content: "\e1a8" +} + +.fa-republican:before { + content: "\f75e" +} + +.fa-leaf-maple:before { + content: "\f6f6" +} + +.fa-arrow-left:before { + content: "\f060" +} + +.fa-person-circle-xmark:before { + content: "\e543" +} + +.fa-ruler:before { + content: "\f545" +} + +.fa-cup-straw-swoosh:before { + content: "\e364" +} + +.fa-temperature-hot:before, +.fa-temperature-sun:before { + content: "\f76a" +} + +.fa-align-left:before { + content: "\f036" +} + +.fa-dice-d6:before { + content: "\f6d1" +} + +.fa-restroom:before { + content: "\f7bd" +} + +.fa-high-definition:before, +.fa-rectangle-hd:before { + content: "\e1ae" +} + +.fa-j:before { + content: "\4a" +} + +.fa-galaxy:before { + content: "\e008" +} + +.fa-users-viewfinder:before { + content: "\e595" +} + +.fa-file-video:before { + content: "\f1c8" +} + +.fa-cherries:before { + content: "\e0ec" +} + +.fa-external-link-alt:before, +.fa-up-right-from-square:before { + content: "\f35d" +} + +.fa-circle-sort:before, +.fa-sort-circle:before { + content: "\e030" +} + +.fa-table-cells:before, +.fa-th:before { + content: "\f00a" +} + +.fa-bag-shopping-minus:before { + content: "\e650" +} + +.fa-file-pdf:before { + content: "\f1c1" +} + +.fa-siren:before { + content: "\e02d" +} + +.fa-arrow-up-to-dotted-line:before { + content: "\e0a1" +} + +.fa-image-landscape:before, +.fa-landscape:before { + content: "\e1b5" +} + +.fa-tank-water:before { + content: "\e452" +} + +.fa-curling-stone:before, +.fa-curling:before { + content: "\f44a" +} + +.fa-gamepad-alt:before, +.fa-gamepad-modern:before { + content: "\e5a2" +} + +.fa-messages-question:before { + content: "\e1e7" +} + +.fa-bible:before, +.fa-book-bible:before { + content: "\f647" +} + +.fa-o:before { + content: "\4f" +} + +.fa-medkit:before, +.fa-suitcase-medical:before { + content: "\f0fa" +} + +.fa-briefcase-arrow-right:before { + content: "\e2f2" +} + +.fa-expand-wide:before { + content: "\f320" +} + +.fa-clock-eleven-thirty:before { + content: "\e348" +} + +.fa-rv:before { + content: "\f7be" +} + +.fa-user-secret:before { + content: "\f21b" +} + +.fa-otter:before { + content: "\f700" +} + +.fa-dreidel:before { + content: "\f792" +} + +.fa-female:before, +.fa-person-dress:before { + content: "\f182" +} + +.fa-comment-dollar:before { + content: "\f651" +} + +.fa-briefcase-clock:before, +.fa-business-time:before { + content: "\f64a" +} + +.fa-flower-tulip:before { + content: "\f801" +} + +.fa-people-pants-simple:before { + content: "\e21a" +} + +.fa-cloud-drizzle:before { + content: "\f738" +} + +.fa-table-cells-large:before, +.fa-th-large:before { + content: "\f009" +} + +.fa-book-tanakh:before, +.fa-tanakh:before { + content: "\f827" +} + +.fa-solar-system:before { + content: "\e02f" +} + +.fa-seal-question:before { + content: "\e243" +} + +.fa-phone-volume:before, +.fa-volume-control-phone:before { + content: "\f2a0" +} + +.fa-disc-drive:before { + content: "\f8b5" +} + +.fa-hat-cowboy-side:before { + content: "\f8c1" +} + +.fa-rows:before, +.fa-table-rows:before { + content: "\e292" +} + +.fa-location-exclamation:before, +.fa-map-marker-exclamation:before { + content: "\f608" +} + +.fa-face-fearful:before { + content: "\e375" +} + +.fa-clipboard-user:before { + content: "\f7f3" +} + +.fa-bus-school:before { + content: "\f5dd" +} + +.fa-film-slash:before { + content: "\e179" +} + +.fa-square-arrow-down-right:before { + content: "\e262" +} + +.fa-book-sparkles:before, +.fa-book-spells:before { + content: "\f6b8" +} + +.fa-washer:before, +.fa-washing-machine:before { + content: "\f898" +} + +.fa-child:before { + content: "\f1ae" +} + +.fa-lira-sign:before { + content: "\f195" +} + +.fa-user-visor:before { + content: "\e04c" +} + +.fa-file-plus-minus:before { + content: "\e177" +} + +.fa-chess-clock-alt:before, +.fa-chess-clock-flip:before { + content: "\f43e" +} + +.fa-satellite:before { + content: "\f7bf" +} + +.fa-truck-fire:before { + content: "\e65a" +} + +.fa-plane-lock:before { + content: "\e558" +} + +.fa-steering-wheel:before { + content: "\f622" +} + +.fa-tag:before { + content: "\f02b" +} + +.fa-stretcher:before { + content: "\f825" +} + +.fa-book-law:before, +.fa-book-section:before { + content: "\e0c1" +} + +.fa-inboxes:before { + content: "\e1bb" +} + +.fa-coffee-bean:before { + content: "\e13e" +} + +.fa-circle-yen:before { + content: "\e5d0" +} + +.fa-brackets-curly:before { + content: "\f7ea" +} + +.fa-ellipsis-stroke-vertical:before, +.fa-ellipsis-v-alt:before { + content: "\f39c" +} + +.fa-comment:before { + content: "\f075" +} + +.fa-square-1:before { + content: "\e256" +} + +.fa-birthday-cake:before, +.fa-cake-candles:before, +.fa-cake:before { + content: "\f1fd" +} + +.fa-head-side:before { + content: "\f6e9" +} + +.fa-truck-ladder:before { + content: "\e657" +} + +.fa-envelope:before { + content: "\f0e0" +} + +.fa-dolly-empty:before { + content: "\f473" +} + +.fa-face-tissue:before { + content: "\e39c" +} + +.fa-angle-double-up:before, +.fa-angles-up:before { + content: "\f102" +} + +.fa-bin-recycle:before { + content: "\e5f7" +} + +.fa-paperclip:before { + content: "\f0c6" +} + +.fa-chart-line-down:before { + content: "\f64d" +} + +.fa-arrow-right-to-city:before { + content: "\e4b3" +} + +.fa-lock-a:before { + content: "\e422" +} + +.fa-ribbon:before { + content: "\f4d6" +} + +.fa-lungs:before { + content: "\f604" +} + +.fa-person-pinball:before { + content: "\e21d" +} + +.fa-arrow-up-9-1:before, +.fa-sort-numeric-up-alt:before { + content: "\f887" +} + +.fa-apple-core:before { + content: "\e08f" +} + +.fa-circle-y:before { + content: "\e12f" +} + +.fa-h6:before { + content: "\e413" +} + +.fa-litecoin-sign:before { + content: "\e1d3" +} + +.fa-circle-small:before { + content: "\e122" +} + +.fa-border-none:before { + content: "\f850" +} + +.fa-arrow-turn-down-left:before { + content: "\e2e1" +} + +.fa-circle-nodes:before { + content: "\e4e2" +} + +.fa-parachute-box:before { + content: "\f4cd" +} + +.fa-reflect-horizontal:before { + content: "\e664" +} + +.fa-comment-alt-medical:before, +.fa-message-medical:before { + content: "\f7f4" +} + +.fa-rugby-ball:before { + content: "\e3c6" +} + +.fa-comment-music:before { + content: "\f8b0" +} + +.fa-indent:before { + content: "\f03c" +} + +.fa-tree-alt:before, +.fa-tree-deciduous:before { + content: "\f400" +} + +.fa-puzzle-piece-alt:before, +.fa-puzzle-piece-simple:before { + content: "\e231" +} + +.fa-truck-field-un:before { + content: "\e58e" +} + +.fa-nfc-trash:before { + content: "\e1fd" +} + +.fa-hourglass-empty:before, +.fa-hourglass:before { + content: "\f254" +} + +.fa-mountain:before { + content: "\f6fc" +} + +.fa-file-times:before, +.fa-file-xmark:before { + content: "\f317" +} + +.fa-home-heart:before, +.fa-house-heart:before { + content: "\f4c9" +} + +.fa-house-chimney-blank:before { + content: "\e3b0" +} + +.fa-meter-bolt:before { + content: "\e1e9" +} + +.fa-user-doctor:before, +.fa-user-md:before { + content: "\f0f0" +} + +.fa-slash-back:before { + content: "\5c" +} + +.fa-circle-info:before, +.fa-info-circle:before { + content: "\f05a" +} + +.fa-fishing-rod:before { + content: "\e3a8" +} + +.fa-hammer-crash:before { + content: "\e414" +} + +.fa-message-heart:before { + content: "\e5c9" +} + +.fa-cloud-meatball:before { + content: "\f73b" +} + +.fa-camera-polaroid:before { + content: "\f8aa" +} + +.fa-camera-alt:before, +.fa-camera:before { + content: "\f030" +} + +.fa-square-virus:before { + content: "\e578" +} + +.fa-cart-arrow-up:before { + content: "\e3ee" +} + +.fa-meteor:before { + content: "\f753" +} + +.fa-car-on:before { + content: "\e4dd" +} + +.fa-sleigh:before { + content: "\f7cc" +} + +.fa-arrow-down-1-9:before, +.fa-sort-numeric-asc:before, +.fa-sort-numeric-down:before { + content: "\f162" +} + +.fa-buoy-mooring:before { + content: "\e5b6" +} + +.fa-square-4:before { + content: "\e259" +} + +.fa-hand-holding-droplet:before, +.fa-hand-holding-water:before { + content: "\f4c1" +} + +.fa-file-eps:before { + content: "\e644" +} + +.fa-tricycle-adult:before { + content: "\e5c4" +} + +.fa-waveform:before { + content: "\f8f1" +} + +.fa-water:before { + content: "\f773" +} + +.fa-star-sharp-half-alt:before, +.fa-star-sharp-half-stroke:before { + content: "\e28d" +} + +.fa-nfc-signal:before { + content: "\e1fb" +} + +.fa-plane-prop:before { + content: "\e22b" +} + +.fa-calendar-check:before { + content: "\f274" +} + +.fa-clock-desk:before { + content: "\e134" +} + +.fa-calendar-clock:before, +.fa-calendar-time:before { + content: "\e0d2" +} + +.fa-braille:before { + content: "\f2a1" +} + +.fa-prescription-bottle-alt:before, +.fa-prescription-bottle-medical:before { + content: "\f486" +} + +.fa-plate-utensils:before { + content: "\e43b" +} + +.fa-family-pants:before { + content: "\e302" +} + +.fa-hose-reel:before { + content: "\e41a" +} + +.fa-house-window:before { + content: "\e3b3" +} + +.fa-landmark:before { + content: "\f66f" +} + +.fa-truck:before { + content: "\f0d1" +} + +.fa-music-magnifying-glass:before { + content: "\e662" +} + +.fa-crosshairs:before { + content: "\f05b" +} + +.fa-cloud-rainbow:before { + content: "\f73e" +} + +.fa-person-cane:before { + content: "\e53c" +} + +.fa-alien:before { + content: "\f8f5" +} + +.fa-tent:before { + content: "\e57d" +} + +.fa-laptop-binary:before { + content: "\e5e7" +} + +.fa-vest-patches:before { + content: "\e086" +} + +.fa-people-dress-simple:before { + content: "\e218" +} + +.fa-check-double:before { + content: "\f560" +} + +.fa-arrow-down-a-z:before, +.fa-sort-alpha-asc:before, +.fa-sort-alpha-down:before { + content: "\f15d" +} + +.fa-bowling-ball-pin:before { + content: "\e0c3" +} + +.fa-bell-school-slash:before { + content: "\f5d6" +} + +.fa-plus-large:before { + content: "\e59e" +} + +.fa-money-bill-wheat:before { + content: "\e52a" +} + +.fa-camera-viewfinder:before, +.fa-screenshot:before { + content: "\e0da" +} + +.fa-comment-alt-music:before, +.fa-message-music:before { + content: "\f8af" +} + +.fa-car-building:before { + content: "\f859" +} + +.fa-border-bottom-right:before, +.fa-border-style-alt:before { + content: "\f854" +} + +.fa-octagon:before { + content: "\f306" +} + +.fa-comment-arrow-up-right:before { + content: "\e145" +} + +.fa-octagon-divide:before { + content: "\e203" +} + +.fa-cookie:before { + content: "\f563" +} + +.fa-arrow-left-rotate:before, +.fa-arrow-rotate-back:before, +.fa-arrow-rotate-backward:before, +.fa-arrow-rotate-left:before, +.fa-undo:before { + content: "\f0e2" +} + +.fa-tv-music:before { + content: "\f8e6" +} + +.fa-hard-drive:before, +.fa-hdd:before { + content: "\f0a0" +} + +.fa-reel:before { + content: "\e238" +} + +.fa-face-grin-squint-tears:before, +.fa-grin-squint-tears:before { + content: "\f586" +} + +.fa-dumbbell:before { + content: "\f44b" +} + +.fa-list-alt:before, +.fa-rectangle-list:before { + content: "\f022" +} + +.fa-tarp-droplet:before { + content: "\e57c" +} + +.fa-alarm-exclamation:before { + content: "\f843" +} + +.fa-house-medical-circle-check:before { + content: "\e511" +} + +.fa-traffic-cone:before { + content: "\f636" +} + +.fa-grate:before { + content: "\e193" +} + +.fa-arrow-down-right:before { + content: "\e093" +} + +.fa-person-skiing-nordic:before, +.fa-skiing-nordic:before { + content: "\f7ca" +} + +.fa-calendar-plus:before { + content: "\f271" +} + +.fa-person-from-portal:before, +.fa-portal-exit:before { + content: "\e023" +} + +.fa-plane-arrival:before { + content: "\f5af" +} + +.fa-cowbell-circle-plus:before, +.fa-cowbell-more:before { + content: "\f8b4" +} + +.fa-arrow-alt-circle-left:before, +.fa-circle-left:before { + content: "\f359" +} + +.fa-distribute-spacing-vertical:before { + content: "\e366" +} + +.fa-signal-alt-2:before, +.fa-signal-bars-fair:before { + content: "\f692" +} + +.fa-sportsball:before { + content: "\e44b" +} + +.fa-game-console-handheld-crank:before { + content: "\e5b9" +} + +.fa-subway:before, +.fa-train-subway:before { + content: "\f239" +} + +.fa-chart-gantt:before { + content: "\e0e4" +} + +.fa-face-smile-upside-down:before { + content: "\e395" +} + +.fa-ball-pile:before { + content: "\f77e" +} + +.fa-badge-dollar:before { + content: "\f645" +} + +.fa-money-bills-alt:before, +.fa-money-bills-simple:before { + content: "\e1f4" +} + +.fa-list-timeline:before { + content: "\e1d1" +} + +.fa-indian-rupee-sign:before, +.fa-indian-rupee:before, +.fa-inr:before { + content: "\e1bc" +} + +.fa-crop-alt:before, +.fa-crop-simple:before { + content: "\f565" +} + +.fa-money-bill-1:before, +.fa-money-bill-alt:before { + content: "\f3d1" +} + +.fa-left-long:before, +.fa-long-arrow-alt-left:before { + content: "\f30a" +} + +.fa-keyboard-down:before { + content: "\e1c2" +} + +.fa-circle-up-right:before { + content: "\e129" +} + +.fa-cloud-bolt-moon:before, +.fa-thunderstorm-moon:before { + content: "\f76d" +} + +.fa-turn-left-up:before { + content: "\e638" +} + +.fa-dna:before { + content: "\f471" +} + +.fa-virus-slash:before { + content: "\e075" +} + +.fa-bracket-round-right:before { + content: "\29" +} + +.fa-circle-sterling:before { + content: "\e5cf" +} + +.fa-circle-5:before { + content: "\e0f2" +} + +.fa-minus:before, +.fa-subtract:before { + content: "\f068" +} + +.fa-fire-flame:before, +.fa-flame:before { + content: "\f6df" +} + +.fa-arrow-alt-to-right:before, +.fa-right-to-line:before { + content: "\f34c" +} + +.fa-gif:before { + content: "\e190" +} + +.fa-chess:before { + content: "\f439" +} + +.fa-trash-slash:before { + content: "\e2b3" +} + +.fa-arrow-left-long:before, +.fa-long-arrow-left:before { + content: "\f177" +} + +.fa-plug-circle-check:before { + content: "\e55c" +} + +.fa-font-case:before { + content: "\f866" +} + +.fa-street-view:before { + content: "\f21d" +} + +.fa-arrow-down-left:before { + content: "\e091" +} + +.fa-franc-sign:before { + content: "\e18f" +} + +.fa-flask-poison:before, +.fa-flask-round-poison:before { + content: "\f6e0" +} + +.fa-volume-off:before { + content: "\f026" +} + +.fa-book-circle-arrow-right:before { + content: "\e0bc" +} + +.fa-chart-user:before, +.fa-user-chart:before { + content: "\f6a3" +} + +.fa-american-sign-language-interpreting:before, +.fa-asl-interpreting:before, +.fa-hands-american-sign-language-interpreting:before, +.fa-hands-asl-interpreting:before { + content: "\f2a3" +} + +.fa-presentation-screen:before, +.fa-presentation:before { + content: "\f685" +} + +.fa-circle-bolt:before { + content: "\e0fe" +} + +.fa-face-smile-halo:before { + content: "\e38f" +} + +.fa-cart-circle-arrow-down:before { + content: "\e3ef" +} + +.fa-house-person-arrive:before, +.fa-house-person-return:before, +.fa-house-return:before { + content: "\e011" +} + +.fa-comment-alt-times:before, +.fa-message-times:before, +.fa-message-xmark:before { + content: "\f4ab" +} + +.fa-file-award:before, +.fa-file-certificate:before { + content: "\f5f3" +} + +.fa-user-doctor-hair-long:before { + content: "\e459" +} + +.fa-camera-home:before, +.fa-camera-security:before { + content: "\f8fe" +} + +.fa-cog:before, +.fa-gear:before { + content: "\f013" +} + +.fa-droplet-slash:before, +.fa-tint-slash:before { + content: "\f5c7" +} + +.fa-book-heart:before { + content: "\f499" +} + +.fa-mosque:before { + content: "\f678" +} + +.fa-duck:before { + content: "\f6d8" +} + +.fa-mosquito:before { + content: "\e52b" +} + +.fa-star-of-david:before { + content: "\f69a" +} + +.fa-flag-alt:before, +.fa-flag-swallowtail:before { + content: "\f74c" +} + +.fa-person-military-rifle:before { + content: "\e54b" +} + +.fa-car-garage:before { + content: "\f5e2" +} + +.fa-cart-shopping:before, +.fa-shopping-cart:before { + content: "\f07a" +} + +.fa-book-font:before { + content: "\e0bf" +} + +.fa-shield-plus:before { + content: "\e24a" +} + +.fa-vials:before { + content: "\f493" +} + +.fa-eye-dropper-full:before { + content: "\e172" +} + +.fa-distribute-spacing-horizontal:before { + content: "\e365" +} + +.fa-tablet-rugged:before { + content: "\f48f" +} + +.fa-temperature-frigid:before, +.fa-temperature-snow:before { + content: "\f768" +} + +.fa-moped:before { + content: "\e3b9" +} + +.fa-face-smile-plus:before, +.fa-smile-plus:before { + content: "\f5b9" +} + +.fa-radio-alt:before, +.fa-radio-tuner:before { + content: "\f8d8" +} + +.fa-face-swear:before { + content: "\e399" +} + +.fa-water-arrow-down:before, +.fa-water-lower:before { + content: "\f774" +} + +.fa-scanner-touchscreen:before { + content: "\f48a" +} + +.fa-circle-7:before { + content: "\e0f4" +} + +.fa-plug-circle-plus:before { + content: "\e55f" +} + +.fa-person-ski-jumping:before, +.fa-ski-jump:before { + content: "\f7c7" +} + +.fa-place-of-worship:before { + content: "\f67f" +} + +.fa-water-arrow-up:before, +.fa-water-rise:before { + content: "\f775" +} + +.fa-waveform-lines:before, +.fa-waveform-path:before { + content: "\f8f2" +} + +.fa-split:before { + content: "\e254" +} + +.fa-film-canister:before, +.fa-film-cannister:before { + content: "\f8b7" +} + +.fa-folder-times:before, +.fa-folder-xmark:before { + content: "\f65f" +} + +.fa-toilet-paper-alt:before, +.fa-toilet-paper-blank:before { + content: "\f71f" +} + +.fa-tablet-android-alt:before, +.fa-tablet-screen:before { + content: "\f3fc" +} + +.fa-hexagon-vertical-nft-slanted:before { + content: "\e506" +} + +.fa-folder-music:before { + content: "\e18d" +} + +.fa-desktop-medical:before, +.fa-display-medical:before { + content: "\e166" +} + +.fa-share-all:before { + content: "\f367" +} + +.fa-peapod:before { + content: "\e31c" +} + +.fa-chess-clock:before { + content: "\f43d" +} + +.fa-axe:before { + content: "\f6b2" +} + +.fa-square-d:before { + content: "\e268" +} + +.fa-grip-vertical:before { + content: "\f58e" +} + +.fa-mobile-signal-out:before { + content: "\e1f0" +} + +.fa-arrow-turn-up:before, +.fa-level-up:before { + content: "\f148" +} + +.fa-u:before { + content: "\55" +} + +.fa-arrow-up-from-dotted-line:before { + content: "\e09b" +} + +.fa-square-root-alt:before, +.fa-square-root-variable:before { + content: "\f698" +} + +.fa-light-switch-on:before { + content: "\e019" +} + +.fa-arrow-down-arrow-up:before, +.fa-sort-alt:before { + content: "\f883" +} + +.fa-raindrops:before { + content: "\f75c" +} + +.fa-dash:before, +.fa-minus-large:before { + content: "\e404" +} + +.fa-clock-four:before, +.fa-clock:before { + content: "\f017" +} + +.fa-input-numeric:before { + content: "\e1bd" +} + +.fa-truck-tow:before { + content: "\e2b8" +} + +.fa-backward-step:before, +.fa-step-backward:before { + content: "\f048" +} + +.fa-pallet:before { + content: "\f482" +} + +.fa-car-bolt:before { + content: "\e341" +} + +.fa-arrows-maximize:before, +.fa-expand-arrows:before { + content: "\f31d" +} + +.fa-faucet:before { + content: "\e005" +} + +.fa-cloud-sleet:before { + content: "\f741" +} + +.fa-lamp-street:before { + content: "\e1c5" +} + +.fa-list-radio:before { + content: "\e1d0" +} + +.fa-pen-nib-slash:before { + content: "\e4a1" +} + +.fa-baseball-bat-ball:before { + content: "\f432" +} + +.fa-square-up-left:before { + content: "\e282" +} + +.fa-overline:before { + content: "\f876" +} + +.fa-s:before { + content: "\53" +} + +.fa-timeline:before { + content: "\e29c" +} + +.fa-keyboard:before { + content: "\f11c" +} + +.fa-arrows-from-dotted-line:before { + content: "\e0a3" +} + +.fa-usb-drive:before { + content: "\f8e9" +} + +.fa-ballot:before { + content: "\f732" +} + +.fa-caret-down:before { + content: "\f0d7" +} + +.fa-location-dot-slash:before, +.fa-map-marker-alt-slash:before { + content: "\f605" +} + +.fa-cards:before { + content: "\e3ed" +} + +.fa-clinic-medical:before, +.fa-house-chimney-medical:before { + content: "\f7f2" +} + +.fa-boxing-glove:before, +.fa-glove-boxing:before { + content: "\f438" +} + +.fa-temperature-3:before, +.fa-temperature-three-quarters:before, +.fa-thermometer-3:before, +.fa-thermometer-three-quarters:before { + content: "\f2c8" +} + +.fa-bell-school:before { + content: "\f5d5" +} + +.fa-mobile-android-alt:before, +.fa-mobile-screen:before { + content: "\f3cf" +} + +.fa-plane-up:before { + content: "\e22d" +} + +.fa-folder-heart:before { + content: "\e189" +} + +.fa-circle-location-arrow:before, +.fa-location-circle:before { + content: "\f602" +} + +.fa-face-head-bandage:before { + content: "\e37a" +} + +.fa-maki-roll:before, +.fa-makizushi:before, +.fa-sushi-roll:before { + content: "\e48b" +} + +.fa-car-bump:before { + content: "\f5e0" +} + +.fa-piggy-bank:before { + content: "\f4d3" +} + +.fa-racquet:before { + content: "\f45a" +} + +.fa-car-mirrors:before { + content: "\e343" +} + +.fa-industry-alt:before, +.fa-industry-windows:before { + content: "\f3b3" +} + +.fa-bolt-auto:before { + content: "\e0b6" +} + +.fa-battery-3:before, +.fa-battery-half:before { + content: "\f242" +} + +.fa-flux-capacitor:before { + content: "\f8ba" +} + +.fa-mountain-city:before { + content: "\e52e" +} + +.fa-coins:before { + content: "\f51e" +} + +.fa-honey-pot:before { + content: "\e418" +} + +.fa-olive:before { + content: "\e316" +} + +.fa-khanda:before { + content: "\f66d" +} + +.fa-filter-list:before { + content: "\e17c" +} + +.fa-outlet:before { + content: "\e01c" +} + +.fa-sliders-h:before, +.fa-sliders:before { + content: "\f1de" +} + +.fa-cauldron:before { + content: "\f6bf" +} + +.fa-people:before { + content: "\e216" +} + +.fa-folder-tree:before { + content: "\f802" +} + +.fa-network-wired:before { + content: "\f6ff" +} + +.fa-croissant:before { + content: "\f7f6" +} + +.fa-map-pin:before { + content: "\f276" +} + +.fa-hamsa:before { + content: "\f665" +} + +.fa-cent-sign:before { + content: "\e3f5" +} + +.fa-swords-laser:before { + content: "\e03d" +} + +.fa-flask:before { + content: "\f0c3" +} + +.fa-person-pregnant:before { + content: "\e31e" +} + +.fa-square-u:before { + content: "\e281" +} + +.fa-wand-sparkles:before { + content: "\f72b" +} + +.fa-router:before { + content: "\f8da" +} + +.fa-ellipsis-v:before, +.fa-ellipsis-vertical:before { + content: "\f142" +} + +.fa-sword-laser-alt:before { + content: "\e03c" +} + +.fa-ticket:before { + content: "\f145" +} + +.fa-power-off:before { + content: "\f011" +} + +.fa-coin:before { + content: "\f85c" +} + +.fa-laptop-slash:before { + content: "\e1c7" +} + +.fa-long-arrow-alt-right:before, +.fa-right-long:before { + content: "\f30b" +} + +.fa-circle-b:before { + content: "\e0fd" +} + +.fa-person-dress-simple:before { + content: "\e21c" +} + +.fa-pipe-collar:before { + content: "\e437" +} + +.fa-lights-holiday:before { + content: "\f7b2" +} + +.fa-citrus:before { + content: "\e2f4" +} + +.fa-flag-usa:before { + content: "\f74d" +} + +.fa-laptop-file:before { + content: "\e51d" +} + +.fa-teletype:before, +.fa-tty:before { + content: "\f1e4" +} + +.fa-chart-tree-map:before { + content: "\e0ea" +} + +.fa-diagram-next:before { + content: "\e476" +} + +.fa-person-rifle:before { + content: "\e54e" +} + +.fa-clock-five-thirty:before { + content: "\e34a" +} + +.fa-pipe-valve:before { + content: "\e439" +} + +.fa-arrow-up-from-arc:before { + content: "\e4b4" +} + +.fa-face-spiral-eyes:before { + content: "\e485" +} + +.fa-compress-wide:before { + content: "\f326" +} + +.fa-circle-phone-hangup:before, +.fa-phone-circle-down:before { + content: "\e11d" +} + +.fa-gear-complex-code:before { + content: "\e5eb" +} + +.fa-house-medical-circle-exclamation:before { + content: "\e512" +} + +.fa-badminton:before { + content: "\e33a" +} + +.fa-closed-captioning:before { + content: "\f20a" +} + +.fa-hiking:before, +.fa-person-hiking:before { + content: "\f6ec" +} + +.fa-arrow-alt-from-left:before, +.fa-right-from-line:before { + content: "\f347" +} + +.fa-venus-double:before { + content: "\f226" +} + +.fa-images:before { + content: "\f302" +} + +.fa-calculator:before { + content: "\f1ec" +} + +.fa-shuttlecock:before { + content: "\f45b" +} + +.fa-user-hair:before { + content: "\e45a" +} + +.fa-eye-evil:before { + content: "\f6db" +} + +.fa-people-pulling:before { + content: "\e535" +} + +.fa-n:before { + content: "\4e" +} + +.fa-swap:before { + content: "\e609" +} + +.fa-garage:before { + content: "\e009" +} + +.fa-cable-car:before, +.fa-tram:before { + content: "\f7da" +} + +.fa-shovel-snow:before { + content: "\f7c3" +} + +.fa-cloud-rain:before { + content: "\f73d" +} + +.fa-face-lying:before { + content: "\e37e" +} + +.fa-sprinkler:before { + content: "\e035" +} + +.fa-building-circle-xmark:before { + content: "\e4d4" +} + +.fa-person-sledding:before, +.fa-sledding:before { + content: "\f7cb" +} + +.fa-game-console-handheld:before { + content: "\f8bb" +} + +.fa-ship:before { + content: "\f21a" +} + +.fa-clock-six-thirty:before { + content: "\e353" +} + +.fa-battery-slash:before { + content: "\f377" +} + +.fa-tugrik-sign:before { + content: "\e2ba" +} + +.fa-arrows-down-to-line:before { + content: "\e4b8" +} + +.fa-download:before { + content: "\f019" +} + +.fa-angles-up-down:before { + content: "\e60d" +} + +.fa-inventory:before, +.fa-shelves:before { + content: "\f480" +} + +.fa-cloud-snow:before { + content: "\f742" +} + +.fa-face-grin:before, +.fa-grin:before { + content: "\f580" +} + +.fa-backspace:before, +.fa-delete-left:before { + content: "\f55a" +} + +.fa-oven:before { + content: "\e01d" +} + +.fa-cloud-binary:before { + content: "\e601" +} + +.fa-eye-dropper-empty:before, +.fa-eye-dropper:before, +.fa-eyedropper:before { + content: "\f1fb" +} + +.fa-comment-captions:before { + content: "\e146" +} + +.fa-comments-question:before { + content: "\e14e" +} + +.fa-scribble:before { + content: "\e23f" +} + +.fa-rotate-exclamation:before { + content: "\e23c" +} + +.fa-file-circle-check:before { + content: "\e5a0" +} + +.fa-glass:before { + content: "\f804" +} + +.fa-loader:before { + content: "\e1d4" +} + +.fa-forward:before { + content: "\f04e" +} + +.fa-user-pilot:before { + content: "\e2c0" +} + +.fa-mobile-android:before, +.fa-mobile-phone:before, +.fa-mobile:before { + content: "\f3ce" +} + +.fa-code-pull-request-closed:before { + content: "\e3f9" +} + +.fa-face-meh:before, +.fa-meh:before { + content: "\f11a" +} + +.fa-align-center:before { + content: "\f037" +} + +.fa-book-dead:before, +.fa-book-skull:before { + content: "\f6b7" +} + +.fa-drivers-license:before, +.fa-id-card:before { + content: "\f2c2" +} + +.fa-face-dotted:before { + content: "\e47f" +} + +.fa-face-worried:before { + content: "\e3a3" +} + +.fa-dedent:before, +.fa-outdent:before { + content: "\f03b" +} + +.fa-court-sport:before { + content: "\e643" +} + +.fa-heart-circle-exclamation:before { + content: "\e4fe" +} + +.fa-home-alt:before, +.fa-home-lg-alt:before, +.fa-home:before, +.fa-house:before { + content: "\f015" +} + +.fa-vector-circle:before { + content: "\e2c6" +} + +.fa-car-circle-bolt:before { + content: "\e342" +} + +.fa-calendar-week:before { + content: "\f784" +} + +.fa-flying-disc:before { + content: "\e3a9" +} + +.fa-laptop-medical:before { + content: "\f812" +} + +.fa-square-down-right:before { + content: "\e26c" +} + +.fa-b:before { + content: "\42" +} + +.fa-seat-airline:before { + content: "\e244" +} + +.fa-eclipse-alt:before, +.fa-moon-over-sun:before { + content: "\f74a" +} + +.fa-pipe:before { + content: "\7c" +} + +.fa-file-medical:before { + content: "\f477" +} + +.fa-potato:before { + content: "\e440" +} + +.fa-dice-one:before { + content: "\f525" +} + +.fa-circle-a:before { + content: "\e0f7" +} + +.fa-helmet-battle:before { + content: "\f6eb" +} + +.fa-butter:before { + content: "\e3e4" +} + +.fa-blanket-fire:before { + content: "\e3da" +} + +.fa-kiwi-bird:before { + content: "\f535" +} + +.fa-castle:before { + content: "\e0de" +} + +.fa-golf-club:before { + content: "\f451" +} + +.fa-arrow-right-arrow-left:before, +.fa-exchange:before { + content: "\f0ec" +} + +.fa-redo-alt:before, +.fa-rotate-forward:before, +.fa-rotate-right:before { + content: "\f2f9" +} + +.fa-cutlery:before, +.fa-utensils:before { + content: "\f2e7" +} + +.fa-arrow-up-wide-short:before, +.fa-sort-amount-up:before { + content: "\f161" +} + +.fa-chart-pie-simple-circle-dollar:before { + content: "\e605" +} + +.fa-balloons:before { + content: "\e2e4" +} + +.fa-mill-sign:before { + content: "\e1ed" +} + +.fa-bowl-rice:before { + content: "\e2eb" +} + +.fa-timeline-arrow:before { + content: "\e29d" +} + +.fa-skull:before { + content: "\f54c" +} + +.fa-game-board-alt:before, +.fa-game-board-simple:before { + content: "\f868" +} + +.fa-circle-video:before, +.fa-video-circle:before { + content: "\e12b" +} + +.fa-chart-scatter-bubble:before { + content: "\e0e9" +} + +.fa-house-turret:before { + content: "\e1b4" +} + +.fa-banana:before { + content: "\e2e5" +} + +.fa-hand-holding-skull:before { + content: "\e1a4" +} + +.fa-people-dress:before { + content: "\e217" +} + +.fa-couch-small:before, +.fa-loveseat:before { + content: "\f4cc" +} + +.fa-broadcast-tower:before, +.fa-tower-broadcast:before { + content: "\f519" +} + +.fa-truck-pickup:before { + content: "\f63c" +} + +.fa-block-quote:before { + content: "\e0b5" +} + +.fa-long-arrow-alt-up:before, +.fa-up-long:before { + content: "\f30c" +} + +.fa-stop:before { + content: "\f04d" +} + +.fa-code-merge:before { + content: "\f387" +} + +.fa-money-check-dollar-pen:before, +.fa-money-check-edit-alt:before { + content: "\f873" +} + +.fa-arrow-alt-from-bottom:before, +.fa-up-from-line:before { + content: "\f346" +} + +.fa-upload:before { + content: "\f093" +} + +.fa-hurricane:before { + content: "\f751" +} + +.fa-grid-round-2-plus:before { + content: "\e5dc" +} + +.fa-people-pants:before { + content: "\e219" +} + +.fa-mound:before { + content: "\e52d" +} + +.fa-windsock:before { + content: "\f777" +} + +.fa-circle-half:before { + content: "\e110" +} + +.fa-brake-warning:before { + content: "\e0c7" +} + +.fa-toilet-portable:before { + content: "\e583" +} + +.fa-compact-disc:before { + content: "\f51f" +} + +.fa-file-arrow-down:before, +.fa-file-download:before { + content: "\f56d" +} + +.fa-sax-hot:before, +.fa-saxophone-fire:before { + content: "\f8db" +} + +.fa-camera-web-slash:before, +.fa-webcam-slash:before { + content: "\f833" +} + +.fa-folder-medical:before { + content: "\e18c" +} + +.fa-folder-cog:before, +.fa-folder-gear:before { + content: "\e187" +} + +.fa-hand-wave:before { + content: "\e1a7" +} + +.fa-arrow-up-arrow-down:before, +.fa-sort-up-down:before { + content: "\e099" +} + +.fa-caravan:before { + content: "\f8ff" +} + +.fa-shield-cat:before { + content: "\e572" +} + +.fa-comment-alt-slash:before, +.fa-message-slash:before { + content: "\f4a9" +} + +.fa-bolt:before, +.fa-zap:before { + content: "\f0e7" +} + +.fa-trash-can-check:before { + content: "\e2a9" +} + +.fa-glass-water:before { + content: "\e4f4" +} + +.fa-oil-well:before { + content: "\e532" +} + +.fa-person-simple:before { + content: "\e220" +} + +.fa-arrow-turn-left-up:before { + content: "\e634" +} + +.fa-vault:before { + content: "\e2c5" +} + +.fa-mars:before { + content: "\f222" +} + +.fa-toilet:before { + content: "\f7d8" +} + +.fa-plane-circle-xmark:before { + content: "\e557" +} + +.fa-cny:before, +.fa-jpy:before, +.fa-rmb:before, +.fa-yen-sign:before, +.fa-yen:before { + content: "\f157" +} + +.fa-gear-code:before { + content: "\e5e8" +} + +.fa-notes:before { + content: "\e202" +} + +.fa-rouble:before, +.fa-rub:before, +.fa-ruble-sign:before, +.fa-ruble:before { + content: "\f158" +} + +.fa-trash-arrow-turn-left:before, +.fa-trash-undo:before { + content: "\f895" +} + +.fa-champagne-glass:before, +.fa-glass-champagne:before { + content: "\f79e" +} + +.fa-objects-align-center-horizontal:before { + content: "\e3bc" +} + +.fa-sun:before { + content: "\f185" +} + +.fa-trash-alt-slash:before, +.fa-trash-can-slash:before { + content: "\e2ad" +} + +.fa-screen-users:before, +.fa-users-class:before { + content: "\f63d" +} + +.fa-guitar:before { + content: "\f7a6" +} + +.fa-arrow-square-left:before, +.fa-square-arrow-left:before { + content: "\f33a" +} + +.fa-square-8:before { + content: "\e25d" +} + +.fa-face-smile-hearts:before { + content: "\e390" +} + +.fa-brackets-square:before, +.fa-brackets:before { + content: "\f7e9" +} + +.fa-laptop-arrow-down:before { + content: "\e1c6" +} + +.fa-hockey-stick-puck:before { + content: "\e3ae" +} + +.fa-house-tree:before { + content: "\e1b3" +} + +.fa-signal-2:before, +.fa-signal-fair:before { + content: "\f68d" +} + +.fa-face-laugh-wink:before, +.fa-laugh-wink:before { + content: "\f59c" +} + +.fa-circle-dollar:before, +.fa-dollar-circle:before, +.fa-usd-circle:before { + content: "\f2e8" +} + +.fa-horse-head:before { + content: "\f7ab" +} + +.fa-arrows-repeat:before, +.fa-repeat-alt:before { + content: "\f364" +} + +.fa-bore-hole:before { + content: "\e4c3" +} + +.fa-industry:before { + content: "\f275" +} + +.fa-image-polaroid:before { + content: "\f8c4" +} + +.fa-wave-triangle:before { + content: "\f89a" +} + +.fa-turn-left-down:before { + content: "\e637" +} + +.fa-person-running-fast:before { + content: "\e5ff" +} + +.fa-arrow-alt-circle-down:before, +.fa-circle-down:before { + content: "\f358" +} + +.fa-grill:before { + content: "\e5a3" +} + +.fa-arrows-turn-to-dots:before { + content: "\e4c1" +} + +.fa-analytics:before, +.fa-chart-mixed:before { + content: "\f643" +} + +.fa-florin-sign:before { + content: "\e184" +} + +.fa-arrow-down-short-wide:before, +.fa-sort-amount-desc:before, +.fa-sort-amount-down-alt:before { + content: "\f884" +} + +.fa-less-than:before { + content: "\3c" +} + +.fa-desktop-code:before, +.fa-display-code:before { + content: "\e165" +} + +.fa-face-drooling:before { + content: "\e372" +} + +.fa-oil-temp:before, +.fa-oil-temperature:before { + content: "\f614" +} + +.fa-question-square:before, +.fa-square-question:before { + content: "\f2fd" +} + +.fa-air-conditioner:before { + content: "\f8f4" +} + +.fa-angle-down:before { + content: "\f107" +} + +.fa-mountains:before { + content: "\f6fd" +} + +.fa-omega:before { + content: "\f67a" +} + +.fa-car-tunnel:before { + content: "\e4de" +} + +.fa-person-dolly-empty:before { + content: "\f4d1" +} + +.fa-pan-food:before { + content: "\e42b" +} + +.fa-head-side-cough:before { + content: "\e061" +} + +.fa-grip-lines:before { + content: "\f7a4" +} + +.fa-thumbs-down:before { + content: "\f165" +} + +.fa-user-lock:before { + content: "\f502" +} + +.fa-arrow-right-long:before, +.fa-long-arrow-right:before { + content: "\f178" +} + +.fa-tickets-airline:before, +.fa-tickets-perforated-plane:before, +.fa-tickets-plane:before { + content: "\e29b" +} + +.fa-tent-double-peak:before { + content: "\e627" +} + +.fa-anchor-circle-xmark:before { + content: "\e4ac" +} + +.fa-ellipsis-h:before, +.fa-ellipsis:before { + content: "\f141" +} + +.fa-nfc-slash:before { + content: "\e1fc" +} + +.fa-chess-pawn:before { + content: "\f443" +} + +.fa-first-aid:before, +.fa-kit-medical:before { + content: "\f479" +} + +.fa-grid-2-plus:before { + content: "\e197" +} + +.fa-bells:before { + content: "\f77f" +} + +.fa-person-through-window:before { + content: "\e5a9" +} + +.fa-toolbox:before { + content: "\f552" +} + +.fa-envelope-badge:before, +.fa-envelope-dot:before { + content: "\e16f" +} + +.fa-magnifying-glass-waveform:before { + content: "\e661" +} + +.fa-hands-holding-circle:before { + content: "\e4fb" +} + +.fa-bug:before { + content: "\f188" +} + +.fa-bowl-chopsticks:before { + content: "\e2e9" +} + +.fa-credit-card-alt:before, +.fa-credit-card:before { + content: "\f09d" +} + +.fa-circle-s:before { + content: "\e121" +} + +.fa-box-ballot:before { + content: "\f735" +} + +.fa-automobile:before, +.fa-car:before { + content: "\f1b9" +} + +.fa-hand-holding-hand:before { + content: "\e4f7" +} + +.fa-user-tie-hair:before { + content: "\e45f" +} + +.fa-podium-star:before { + content: "\f758" +} + +.fa-business-front:before, +.fa-party-back:before, +.fa-trian-balbot:before, +.fa-user-hair-mullet:before { + content: "\e45c" +} + +.fa-microphone-stand:before { + content: "\f8cb" +} + +.fa-book-open-reader:before, +.fa-book-reader:before { + content: "\f5da" +} + +.fa-family-dress:before { + content: "\e301" +} + +.fa-circle-x:before { + content: "\e12e" +} + +.fa-cabin:before { + content: "\e46d" +} + +.fa-mountain-sun:before { + content: "\e52f" +} + +.fa-chart-simple-horizontal:before { + content: "\e474" +} + +.fa-arrows-left-right-to-line:before { + content: "\e4ba" +} + +.fa-hand-back-point-left:before { + content: "\e19f" +} + +.fa-comment-alt-dots:before, +.fa-message-dots:before, +.fa-messaging:before { + content: "\f4a3" +} + +.fa-file-heart:before { + content: "\e176" +} + +.fa-beer-foam:before, +.fa-beer-mug:before { + content: "\e0b3" +} + +.fa-dice-d20:before { + content: "\f6cf" +} + +.fa-drone:before { + content: "\f85f" +} + +.fa-truck-droplet:before { + content: "\e58c" +} + +.fa-file-circle-xmark:before { + content: "\e5a1" +} + +.fa-temperature-arrow-up:before, +.fa-temperature-up:before { + content: "\e040" +} + +.fa-medal:before { + content: "\f5a2" +} + +.fa-person-fairy:before { + content: "\e608" +} + +.fa-bed:before { + content: "\f236" +} + +.fa-book-copy:before { + content: "\e0be" +} + +.fa-h-square:before, +.fa-square-h:before { + content: "\f0fd" +} + +.fa-square-c:before { + content: "\e266" +} + +.fa-clock-two:before { + content: "\e35a" +} + +.fa-square-ellipsis-vertical:before { + content: "\e26f" +} + +.fa-calendar-users:before { + content: "\e5e2" +} + +.fa-podcast:before { + content: "\f2ce" +} + +.fa-bee:before { + content: "\e0b2" +} + +.fa-temperature-4:before, +.fa-temperature-full:before, +.fa-thermometer-4:before, +.fa-thermometer-full:before { + content: "\f2c7" +} + +.fa-bell:before { + content: "\f0f3" +} + +.fa-candy-bar:before, +.fa-chocolate-bar:before { + content: "\e3e8" +} + +.fa-xmark-large:before { + content: "\e59b" +} + +.fa-pinata:before { + content: "\e3c3" +} + +.fa-file-ppt:before { + content: "\e64a" +} + +.fa-arrows-from-line:before { + content: "\e0a4" +} + +.fa-superscript:before { + content: "\f12b" +} + +.fa-bowl-spoon:before { + content: "\e3e0" +} + +.fa-hexagon-check:before { + content: "\e416" +} + +.fa-plug-circle-xmark:before { + content: "\e560" +} + +.fa-star-of-life:before { + content: "\f621" +} + +.fa-phone-slash:before { + content: "\f3dd" +} + +.fa-traffic-light-stop:before { + content: "\f63a" +} + +.fa-paint-roller:before { + content: "\f5aa" +} + +.fa-accent-grave:before { + content: "\60" +} + +.fa-hands-helping:before, +.fa-handshake-angle:before { + content: "\f4c4" +} + +.fa-circle-0:before { + content: "\e0ed" +} + +.fa-dial-med-low:before { + content: "\e160" +} + +.fa-location-dot:before, +.fa-map-marker-alt:before { + content: "\f3c5" +} + +.fa-crab:before { + content: "\e3ff" +} + +.fa-box-full:before, +.fa-box-open-full:before { + content: "\f49c" +} + +.fa-file:before { + content: "\f15b" +} + +.fa-greater-than:before { + content: "\3e" +} + +.fa-quotes:before { + content: "\e234" +} + +.fa-pretzel:before { + content: "\e441" +} + +.fa-t-rex:before { + content: "\e629" +} + +.fa-person-swimming:before, +.fa-swimmer:before { + content: "\f5c4" +} + +.fa-arrow-down:before { + content: "\f063" +} + +.fa-user-robot-xmarks:before { + content: "\e4a7" +} + +.fa-comment-alt-quote:before, +.fa-message-quote:before { + content: "\e1e4" +} + +.fa-candy-corn:before { + content: "\f6bd" +} + +.fa-folder-magnifying-glass:before, +.fa-folder-search:before { + content: "\e18b" +} + +.fa-notebook:before { + content: "\e201" +} + +.fa-droplet:before, +.fa-tint:before { + content: "\f043" +} + +.fa-bullseye-pointer:before { + content: "\f649" +} + +.fa-eraser:before { + content: "\f12d" +} + +.fa-hexagon-image:before { + content: "\e504" +} + +.fa-earth-america:before, +.fa-earth-americas:before, +.fa-earth:before, +.fa-globe-americas:before { + content: "\f57d" +} + +.fa-file-svg:before { + content: "\e64b" +} + +.fa-crate-apple:before { + content: "\f6b1" +} + +.fa-apple-crate:before { + content: "\f6b1" +} + +.fa-person-burst:before { + content: "\e53b" +} + +.fa-game-board:before { + content: "\f867" +} + +.fa-hat-chef:before { + content: "\f86b" +} + +.fa-hand-back-point-right:before { + content: "\e1a1" +} + +.fa-dove:before { + content: "\f4ba" +} + +.fa-snowflake-droplets:before { + content: "\e5c1" +} + +.fa-battery-0:before, +.fa-battery-empty:before { + content: "\f244" +} + +.fa-grid-4:before { + content: "\e198" +} + +.fa-socks:before { + content: "\f696" +} + +.fa-face-sunglasses:before { + content: "\e398" +} + +.fa-inbox:before { + content: "\f01c" +} + +.fa-square-0:before { + content: "\e255" +} + +.fa-section:before { + content: "\e447" +} + +.fa-box-up:before, +.fa-square-this-way-up:before { + content: "\f49f" +} + +.fa-gauge-high:before, +.fa-tachometer-alt-fast:before, +.fa-tachometer-alt:before { + content: "\f625" +} + +.fa-square-ampersand:before { + content: "\e260" +} + +.fa-envelope-open-text:before { + content: "\f658" +} + +.fa-lamp-desk:before { + content: "\e014" +} + +.fa-hospital-alt:before, +.fa-hospital-wide:before, +.fa-hospital:before { + content: "\f0f8" +} + +.fa-poll-people:before { + content: "\f759" +} + +.fa-glass-whiskey-rocks:before, +.fa-whiskey-glass-ice:before { + content: "\f7a1" +} + +.fa-wine-bottle:before { + content: "\f72f" +} + +.fa-chess-rook:before { + content: "\f447" +} + +.fa-user-bounty-hunter:before { + content: "\e2bf" +} + +.fa-bars-staggered:before, +.fa-reorder:before, +.fa-stream:before { + content: "\f550" +} + +.fa-diagram-sankey:before { + content: "\e158" +} + +.fa-cloud-hail-mixed:before { + content: "\f73a" +} + +.fa-circle-up-left:before { + content: "\e128" +} + +.fa-dharmachakra:before { + content: "\f655" +} + +.fa-objects-align-left:before { + content: "\e3be" +} + +.fa-oil-can-drip:before { + content: "\e205" +} + +.fa-face-smiling-hands:before { + content: "\e396" +} + +.fa-broccoli:before { + content: "\e3e2" +} + +.fa-route-interstate:before { + content: "\f61b" +} + +.fa-ear-muffs:before { + content: "\f795" +} + +.fa-hotdog:before { + content: "\f80f" +} + +.fa-transporter-empty:before { + content: "\e046" +} + +.fa-blind:before, +.fa-person-walking-with-cane:before { + content: "\f29d" +} + +.fa-angle-90:before { + content: "\e08d" +} + +.fa-rectangle-terminal:before { + content: "\e236" +} + +.fa-kite:before { + content: "\f6f4" +} + +.fa-drum:before { + content: "\f569" +} + +.fa-scrubber:before { + content: "\f2f8" +} + +.fa-ice-cream:before { + content: "\f810" +} + +.fa-heart-circle-bolt:before { + content: "\e4fc" +} + +.fa-fish-bones:before { + content: "\e304" +} + +.fa-deer-rudolph:before { + content: "\f78f" +} + +.fa-fax:before { + content: "\f1ac" +} + +.fa-paragraph:before { + content: "\f1dd" +} + +.fa-head-side-heart:before { + content: "\e1aa" +} + +.fa-square-e:before { + content: "\e26d" +} + +.fa-meter-fire:before { + content: "\e1eb" +} + +.fa-cloud-hail:before { + content: "\f739" +} + +.fa-check-to-slot:before, +.fa-vote-yea:before { + content: "\f772" +} + +.fa-money-from-bracket:before { + content: "\e312" +} + +.fa-star-half:before { + content: "\f089" +} + +.fa-car-bus:before { + content: "\f85a" +} + +.fa-speaker:before { + content: "\f8df" +} + +.fa-timer:before { + content: "\e29e" +} + +.fa-boxes-alt:before, +.fa-boxes-stacked:before, +.fa-boxes:before { + content: "\f468" +} + +.fa-landmark-magnifying-glass:before { + content: "\e622" +} + +.fa-grill-hot:before { + content: "\e5a5" +} + +.fa-ballot-check:before { + content: "\f733" +} + +.fa-chain:before, +.fa-link:before { + content: "\f0c1" +} + +.fa-assistive-listening-systems:before, +.fa-ear-listen:before { + content: "\f2a2" +} + +.fa-file-minus:before { + content: "\f318" +} + +.fa-tree-city:before { + content: "\e587" +} + +.fa-play:before { + content: "\f04b" +} + +.fa-font:before { + content: "\f031" +} + +.fa-coffee-togo:before, +.fa-cup-togo:before { + content: "\f6c5" +} + +.fa-square-down-left:before { + content: "\e26b" +} + +.fa-burger-lettuce:before { + content: "\e3e3" +} + +.fa-rupiah-sign:before { + content: "\e23d" +} + +.fa-magnifying-glass:before, +.fa-search:before { + content: "\f002" +} + +.fa-ping-pong-paddle-ball:before, +.fa-table-tennis-paddle-ball:before, +.fa-table-tennis:before { + content: "\f45d" +} + +.fa-diagnoses:before, +.fa-person-dots-from-line:before { + content: "\f470" +} + +.fa-chevron-double-down:before, +.fa-chevrons-down:before { + content: "\f322" +} + +.fa-trash-can-arrow-up:before, +.fa-trash-restore-alt:before { + content: "\f82a" +} + +.fa-signal-3:before, +.fa-signal-good:before { + content: "\f68e" +} + +.fa-location-question:before, +.fa-map-marker-question:before { + content: "\f60b" +} + +.fa-floppy-disk-circle-xmark:before, +.fa-floppy-disk-times:before, +.fa-save-circle-xmark:before, +.fa-save-times:before { + content: "\e181" +} + +.fa-naira-sign:before { + content: "\e1f6" +} + +.fa-peach:before { + content: "\e20b" +} + +.fa-taxi-bus:before { + content: "\e298" +} + +.fa-bracket-curly-left:before, +.fa-bracket-curly:before { + content: "\7b" +} + +.fa-lobster:before { + content: "\e421" +} + +.fa-cart-flatbed-empty:before, +.fa-dolly-flatbed-empty:before { + content: "\f476" +} + +.fa-colon:before { + content: "\3a" +} + +.fa-cart-arrow-down:before { + content: "\f218" +} + +.fa-wand:before { + content: "\f72a" +} + +.fa-walkie-talkie:before { + content: "\f8ef" +} + +.fa-file-edit:before, +.fa-file-pen:before { + content: "\f31c" +} + +.fa-receipt:before { + content: "\f543" +} + +.fa-table-picnic:before { + content: "\e32d" +} + +.fa-pen-square:before, +.fa-pencil-square:before, +.fa-square-pen:before { + content: "\f14b" +} + +.fa-circle-microphone-lines:before, +.fa-microphone-circle-alt:before { + content: "\e117" +} + +.fa-desktop-slash:before, +.fa-display-slash:before { + content: "\e2fa" +} + +.fa-suitcase-rolling:before { + content: "\f5c1" +} + +.fa-person-circle-exclamation:before { + content: "\e53f" +} + +.fa-transporter-2:before { + content: "\e044" +} + +.fa-hand-receiving:before, +.fa-hands-holding-diamond:before { + content: "\f47c" +} + +.fa-money-bill-simple-wave:before { + content: "\e1f2" +} + +.fa-chevron-down:before { + content: "\f078" +} + +.fa-battery-5:before, +.fa-battery-full:before, +.fa-battery:before { + content: "\f240" +} + +.fa-bell-plus:before { + content: "\f849" +} + +.fa-book-arrow-right:before { + content: "\e0b9" +} + +.fa-hospitals:before { + content: "\f80e" +} + +.fa-club:before { + content: "\f327" +} + +.fa-skull-crossbones:before { + content: "\f714" +} + +.fa-dewpoint:before, +.fa-droplet-degree:before { + content: "\f748" +} + +.fa-code-compare:before { + content: "\e13a" +} + +.fa-list-dots:before, +.fa-list-ul:before { + content: "\f0ca" +} + +.fa-hand-holding-magic:before { + content: "\f6e5" +} + +.fa-watermelon-slice:before { + content: "\e337" +} + +.fa-circle-ellipsis:before { + content: "\e10a" +} + +.fa-school-lock:before { + content: "\e56f" +} + +.fa-tower-cell:before { + content: "\e585" +} + +.fa-sd-cards:before { + content: "\e240" +} + +.fa-jug-bottle:before { + content: "\e5fb" +} + +.fa-down-long:before, +.fa-long-arrow-alt-down:before { + content: "\f309" +} + +.fa-envelopes:before { + content: "\e170" +} + +.fa-phone-office:before { + content: "\f67d" +} + +.fa-ranking-star:before { + content: "\e561" +} + +.fa-chess-king:before { + content: "\f43f" +} + +.fa-nfc-pen:before { + content: "\e1fa" +} + +.fa-person-harassing:before { + content: "\e549" +} + +.fa-magnifying-glass-play:before { + content: "\e660" +} + +.fa-hat-winter:before { + content: "\f7a8" +} + +.fa-brazilian-real-sign:before { + content: "\e46c" +} + +.fa-landmark-alt:before, +.fa-landmark-dome:before { + content: "\f752" +} + +.fa-bone-break:before { + content: "\f5d8" +} + +.fa-arrow-up:before { + content: "\f062" +} + +.fa-down-from-dotted-line:before { + content: "\e407" +} + +.fa-television:before, +.fa-tv-alt:before, +.fa-tv:before { + content: "\f26c" +} + +.fa-border-left:before { + content: "\f84f" +} + +.fa-circle-divide:before { + content: "\e106" +} + +.fa-shrimp:before { + content: "\e448" +} + +.fa-list-check:before, +.fa-tasks:before { + content: "\f0ae" +} + +.fa-diagram-subtask:before { + content: "\e479" +} + +.fa-jug-detergent:before { + content: "\e519" +} + +.fa-circle-user:before, +.fa-user-circle:before { + content: "\f2bd" +} + +.fa-square-y:before { + content: "\e287" +} + +.fa-user-doctor-hair:before { + content: "\e458" +} + +.fa-planet-ringed:before { + content: "\e020" +} + +.fa-mushroom:before { + content: "\e425" +} + +.fa-user-shield:before { + content: "\f505" +} + +.fa-megaphone:before { + content: "\f675" +} + +.fa-wreath-laurel:before { + content: "\e5d2" +} + +.fa-circle-exclamation-check:before { + content: "\e10d" +} + +.fa-wind:before { + content: "\f72e" +} + +.fa-box-dollar:before, +.fa-box-usd:before { + content: "\f4a0" +} + +.fa-car-burst:before, +.fa-car-crash:before { + content: "\f5e1" +} + +.fa-y:before { + content: "\59" +} + +.fa-user-headset:before { + content: "\f82d" +} + +.fa-arrows-retweet:before, +.fa-retweet-alt:before { + content: "\f361" +} + +.fa-person-snowboarding:before, +.fa-snowboarding:before { + content: "\f7ce" +} + +.fa-chevron-square-right:before, +.fa-square-chevron-right:before { + content: "\f32b" +} + +.fa-lacrosse-stick-ball:before { + content: "\e3b6" +} + +.fa-shipping-fast:before, +.fa-truck-fast:before { + content: "\f48b" +} + +.fa-user-magnifying-glass:before { + content: "\e5c5" +} + +.fa-star-sharp:before { + content: "\e28b" +} + +.fa-comment-heart:before { + content: "\e5c8" +} + +.fa-circle-1:before { + content: "\e0ee" +} + +.fa-circle-star:before, +.fa-star-circle:before { + content: "\e123" +} + +.fa-fish:before { + content: "\f578" +} + +.fa-cloud-fog:before, +.fa-fog:before { + content: "\f74e" +} + +.fa-waffle:before { + content: "\e466" +} + +.fa-music-alt:before, +.fa-music-note:before { + content: "\f8cf" +} + +.fa-hexagon-exclamation:before { + content: "\e417" +} + +.fa-cart-shopping-fast:before { + content: "\e0dc" +} + +.fa-object-union:before { + content: "\e49f" +} + +.fa-user-graduate:before { + content: "\f501" +} + +.fa-starfighter:before { + content: "\e037" +} + +.fa-adjust:before, +.fa-circle-half-stroke:before { + content: "\f042" +} + +.fa-arrow-right-long-to-line:before { + content: "\e3d5" +} + +.fa-arrow-square-down:before, +.fa-square-arrow-down:before { + content: "\f339" +} + +.fa-diamond-half-stroke:before { + content: "\e5b8" +} + +.fa-clapperboard:before { + content: "\e131" +} + +.fa-chevron-square-left:before, +.fa-square-chevron-left:before { + content: "\f32a" +} + +.fa-phone-intercom:before { + content: "\e434" +} + +.fa-chain-horizontal:before, +.fa-link-horizontal:before { + content: "\e1cb" +} + +.fa-mango:before { + content: "\e30f" +} + +.fa-music-alt-slash:before, +.fa-music-note-slash:before { + content: "\f8d0" +} + +.fa-circle-radiation:before, +.fa-radiation-alt:before { + content: "\f7ba" +} + +.fa-face-tongue-sweat:before { + content: "\e39e" +} + +.fa-globe-stand:before { + content: "\f5f6" +} + +.fa-baseball-ball:before, +.fa-baseball:before { + content: "\f433" +} + +.fa-circle-p:before { + content: "\e11a" +} + +.fa-award-simple:before { + content: "\e0ab" +} + +.fa-jet-fighter-up:before { + content: "\e518" +} + +.fa-diagram-project:before, +.fa-project-diagram:before { + content: "\f542" +} + +.fa-pedestal:before { + content: "\e20d" +} + +.fa-chart-pyramid:before { + content: "\e0e6" +} + +.fa-sidebar:before { + content: "\e24e" +} + +.fa-frosty-head:before, +.fa-snowman-head:before { + content: "\f79b" +} + +.fa-copy:before { + content: "\f0c5" +} + +.fa-burger-glass:before { + content: "\e0ce" +} + +.fa-volume-mute:before, +.fa-volume-times:before, +.fa-volume-xmark:before { + content: "\f6a9" +} + +.fa-hand-sparkles:before { + content: "\e05d" +} + +.fa-bars-filter:before { + content: "\e0ad" +} + +.fa-paintbrush-pencil:before { + content: "\e206" +} + +.fa-party-bell:before { + content: "\e31a" +} + +.fa-user-vneck-hair:before { + content: "\e462" +} + +.fa-jack-o-lantern:before { + content: "\f30e" +} + +.fa-grip-horizontal:before, +.fa-grip:before { + content: "\f58d" +} + +.fa-share-from-square:before, +.fa-share-square:before { + content: "\f14d" +} + +.fa-keynote:before { + content: "\f66c" +} + +.fa-child-combatant:before, +.fa-child-rifle:before { + content: "\e4e0" +} + +.fa-gun:before { + content: "\e19b" +} + +.fa-phone-square:before, +.fa-square-phone:before { + content: "\f098" +} + +.fa-hat-beach:before { + content: "\e606" +} + +.fa-add:before, +.fa-plus:before { + content: "\2b" +} + +.fa-expand:before { + content: "\f065" +} + +.fa-computer:before { + content: "\e4e5" +} + +.fa-fort:before { + content: "\e486" +} + +.fa-cloud-check:before { + content: "\e35c" +} + +.fa-close:before, +.fa-multiply:before, +.fa-remove:before, +.fa-times:before, +.fa-xmark:before { + content: "\f00d" +} + +.fa-face-smirking:before { + content: "\e397" +} + +.fa-arrows-up-down-left-right:before, +.fa-arrows:before { + content: "\f047" +} + +.fa-chalkboard-teacher:before, +.fa-chalkboard-user:before { + content: "\f51c" +} + +.fa-rhombus:before { + content: "\e23b" +} + +.fa-claw-marks:before { + content: "\f6c2" +} + +.fa-peso-sign:before { + content: "\e222" +} + +.fa-face-smile-tongue:before { + content: "\e394" +} + +.fa-cart-circle-xmark:before { + content: "\e3f4" +} + +.fa-building-shield:before { + content: "\e4d8" +} + +.fa-circle-phone-flip:before, +.fa-phone-circle-alt:before { + content: "\e11c" +} + +.fa-baby:before { + content: "\f77c" +} + +.fa-users-line:before { + content: "\e592" +} + +.fa-quote-left-alt:before, +.fa-quote-left:before { + content: "\f10d" +} + +.fa-tractor:before { + content: "\f722" +} + +.fa-key-skeleton:before { + content: "\f6f3" +} + +.fa-trash-arrow-up:before, +.fa-trash-restore:before { + content: "\f829" +} + +.fa-arrow-down-up-lock:before { + content: "\e4b0" +} + +.fa-arrow-down-to-bracket:before { + content: "\e094" +} + +.fa-lines-leaning:before { + content: "\e51e" +} + +.fa-square-q:before { + content: "\e27b" +} + +.fa-ruler-combined:before { + content: "\f546" +} + +.fa-icons-alt:before, +.fa-symbols:before { + content: "\f86e" +} + +.fa-copyright:before { + content: "\f1f9" +} + +.fa-flask-gear:before { + content: "\e5f1" +} + +.fa-highlighter-line:before { + content: "\e1af" +} + +.fa-bracket-left:before, +.fa-bracket-square:before, +.fa-bracket:before { + content: "\5b" +} + +.fa-island-tree-palm:before, +.fa-island-tropical:before { + content: "\f811" +} + +.fa-arrow-from-left:before, +.fa-arrow-right-from-line:before { + content: "\f343" +} + +.fa-h2:before { + content: "\f314" +} + +.fa-equals:before { + content: "\3d" +} + +.fa-cake-slice:before, +.fa-shortcake:before { + content: "\e3e5" +} + +.fa-building-magnifying-glass:before { + content: "\e61c" +} + +.fa-peanut:before { + content: "\e430" +} + +.fa-wrench-simple:before { + content: "\e2d1" +} + +.fa-blender:before { + content: "\f517" +} + +.fa-teeth:before { + content: "\f62e" +} + +.fa-tally-2:before { + content: "\e295" +} + +.fa-ils:before, +.fa-shekel-sign:before, +.fa-shekel:before, +.fa-sheqel-sign:before, +.fa-sheqel:before { + content: "\f20b" +} + +.fa-cars:before { + content: "\f85b" +} + +.fa-axe-battle:before { + content: "\f6b3" +} + +.fa-user-hair-long:before { + content: "\e45b" +} + +.fa-map:before { + content: "\f279" +} + +.fa-arrow-left-from-arc:before { + content: "\e615" +} + +.fa-file-circle-info:before { + content: "\e493" +} + +.fa-face-disappointed:before { + content: "\e36f" +} + +.fa-lasso-sparkles:before { + content: "\e1c9" +} + +.fa-clock-eleven:before { + content: "\e347" +} + +.fa-rocket:before { + content: "\f135" +} + +.fa-siren-on:before { + content: "\e02e" +} + +.fa-clock-ten:before { + content: "\e354" +} + +.fa-candle-holder:before { + content: "\f6bc" +} + +.fa-video-arrow-down-left:before { + content: "\e2c8" +} + +.fa-photo-film:before, +.fa-photo-video:before { + content: "\f87c" +} + +.fa-floppy-disk-circle-arrow-right:before, +.fa-save-circle-arrow-right:before { + content: "\e180" +} + +.fa-folder-minus:before { + content: "\f65d" +} + +.fa-planet-moon:before { + content: "\e01f" +} + +.fa-face-eyes-xmarks:before { + content: "\e374" +} + +.fa-chart-scatter:before { + content: "\f7ee" +} + +.fa-display-arrow-down:before { + content: "\e164" +} + +.fa-store:before { + content: "\f54e" +} + +.fa-arrow-trend-up:before { + content: "\e098" +} + +.fa-plug-circle-minus:before { + content: "\e55e" +} + +.fa-olive-branch:before { + content: "\e317" +} + +.fa-angle:before { + content: "\e08c" +} + +.fa-vacuum-robot:before { + content: "\e04e" +} + +.fa-sign-hanging:before, +.fa-sign:before { + content: "\f4d9" +} + +.fa-square-divide:before { + content: "\e26a" +} + +.fa-folder-check:before { + content: "\e64e" +} + +.fa-signal-stream-slash:before { + content: "\e250" +} + +.fa-bezier-curve:before { + content: "\f55b" +} + +.fa-eye-dropper-half:before { + content: "\e173" +} + +.fa-store-lock:before { + content: "\e4a6" +} + +.fa-bell-slash:before { + content: "\f1f6" +} + +.fa-cloud-bolt-sun:before, +.fa-thunderstorm-sun:before { + content: "\f76e" +} + +.fa-camera-slash:before { + content: "\e0d9" +} + +.fa-comment-quote:before { + content: "\e14c" +} + +.fa-tablet-android:before, +.fa-tablet:before { + content: "\f3fb" +} + +.fa-school-flag:before { + content: "\e56e" +} + +.fa-message-code:before { + content: "\e1df" +} + +.fa-glass-half-empty:before, +.fa-glass-half-full:before, +.fa-glass-half:before { + content: "\e192" +} + +.fa-fill:before { + content: "\f575" +} + +.fa-comment-alt-minus:before, +.fa-message-minus:before { + content: "\f4a7" +} + +.fa-angle-up:before { + content: "\f106" +} + +.fa-dinosaur:before { + content: "\e5fe" +} + +.fa-drumstick-bite:before { + content: "\f6d7" +} + +.fa-chain-horizontal-slash:before, +.fa-link-horizontal-slash:before { + content: "\e1cc" +} + +.fa-holly-berry:before { + content: "\f7aa" +} + +.fa-nose:before { + content: "\e5bd" +} + +.fa-arrow-left-to-arc:before { + content: "\e616" +} + +.fa-chevron-left:before { + content: "\f053" +} + +.fa-bacteria:before { + content: "\e059" +} + +.fa-clouds:before { + content: "\f744" +} + +.fa-money-bill-simple:before { + content: "\e1f1" +} + +.fa-hand-lizard:before { + content: "\f258" +} + +.fa-table-pivot:before { + content: "\e291" +} + +.fa-filter-slash:before { + content: "\e17d" +} + +.fa-trash-can-arrow-turn-left:before, +.fa-trash-can-undo:before, +.fa-trash-undo-alt:before { + content: "\f896" +} + +.fa-notdef:before { + content: "\e1fe" +} + +.fa-disease:before { + content: "\f7fa" +} + +.fa-person-to-door:before { + content: "\e433" +} + +.fa-turntable:before { + content: "\f8e4" +} + +.fa-briefcase-medical:before { + content: "\f469" +} + +.fa-genderless:before { + content: "\f22d" +} + +.fa-chevron-right:before { + content: "\f054" +} + +.fa-signal-1:before, +.fa-signal-weak:before { + content: "\f68c" +} + +.fa-clock-five:before { + content: "\e349" +} + +.fa-retweet:before { + content: "\f079" +} + +.fa-car-alt:before, +.fa-car-rear:before { + content: "\f5de" +} + +.fa-pump-soap:before { + content: "\e06b" +} + +.fa-computer-classic:before { + content: "\f8b1" +} + +.fa-frame:before { + content: "\e495" +} + +.fa-video-slash:before { + content: "\f4e2" +} + +.fa-battery-2:before, +.fa-battery-quarter:before { + content: "\f243" +} + +.fa-ellipsis-h-alt:before, +.fa-ellipsis-stroke:before { + content: "\f39b" +} + +.fa-radio:before { + content: "\f8d7" +} + +.fa-baby-carriage:before, +.fa-carriage-baby:before { + content: "\f77d" +} + +.fa-face-expressionless:before { + content: "\e373" +} + +.fa-down-to-dotted-line:before { + content: "\e408" +} + +.fa-cloud-music:before { + content: "\f8ae" +} + +.fa-traffic-light:before { + content: "\f637" +} + +.fa-cloud-minus:before { + content: "\e35d" +} + +.fa-thermometer:before { + content: "\f491" +} + +.fa-shield-minus:before { + content: "\e249" +} + +.fa-vr-cardboard:before { + content: "\f729" +} + +.fa-car-tilt:before { + content: "\f5e5" +} + +.fa-gauge-circle-minus:before { + content: "\e497" +} + +.fa-brightness-low:before { + content: "\e0ca" +} + +.fa-hand-middle-finger:before { + content: "\f806" +} + +.fa-percent:before, +.fa-percentage:before { + content: "\25" +} + +.fa-truck-moving:before { + content: "\f4df" +} + +.fa-glass-water-droplet:before { + content: "\e4f5" +} + +.fa-conveyor-belt:before { + content: "\f46e" +} + +.fa-location-check:before, +.fa-map-marker-check:before { + content: "\f606" +} + +.fa-coin-vertical:before { + content: "\e3fd" +} + +.fa-display:before { + content: "\e163" +} + +.fa-person-sign:before { + content: "\f757" +} + +.fa-face-smile:before, +.fa-smile:before { + content: "\f118" +} + +.fa-phone-hangup:before { + content: "\e225" +} + +.fa-signature-slash:before { + content: "\e3cb" +} + +.fa-thumb-tack:before, +.fa-thumbtack:before { + content: "\f08d" +} + +.fa-wheat-slash:before { + content: "\e339" +} + +.fa-trophy:before { + content: "\f091" +} + +.fa-clouds-sun:before { + content: "\f746" +} + +.fa-person-praying:before, +.fa-pray:before { + content: "\f683" +} + +.fa-hammer:before { + content: "\f6e3" +} + +.fa-face-vomit:before { + content: "\e3a0" +} + +.fa-speakers:before { + content: "\f8e0" +} + +.fa-teletype-answer:before, +.fa-tty-answer:before { + content: "\e2b9" +} + +.fa-mug-tea-saucer:before { + content: "\e1f5" +} + +.fa-diagram-lean-canvas:before { + content: "\e156" +} + +.fa-alt:before { + content: "\e08a" +} + +.fa-dial-med-high:before, +.fa-dial:before { + content: "\e15b" +} + +.fa-hand-peace:before { + content: "\f25b" +} + +.fa-circle-trash:before, +.fa-trash-circle:before { + content: "\e126" +} + +.fa-rotate:before, +.fa-sync-alt:before { + content: "\f2f1" +} + +.fa-circle-quarters:before { + content: "\e3f8" +} + +.fa-spinner:before { + content: "\f110" +} + +.fa-tower-control:before { + content: "\e2a2" +} + +.fa-arrow-up-triangle-square:before, +.fa-sort-shapes-up:before { + content: "\f88a" +} + +.fa-whale:before { + content: "\f72c" +} + +.fa-robot:before { + content: "\f544" +} + +.fa-peace:before { + content: "\f67c" +} + +.fa-party-horn:before { + content: "\e31b" +} + +.fa-cogs:before, +.fa-gears:before { + content: "\f085" +} + +.fa-sun-alt:before, +.fa-sun-bright:before { + content: "\e28f" +} + +.fa-warehouse:before { + content: "\f494" +} + +.fa-conveyor-belt-arm:before { + content: "\e5f8" +} + +.fa-lock-keyhole-open:before, +.fa-lock-open-alt:before { + content: "\f3c2" +} + +.fa-box-fragile:before, +.fa-square-fragile:before, +.fa-square-wine-glass-crack:before { + content: "\f49b" +} + +.fa-arrow-up-right-dots:before { + content: "\e4b7" +} + +.fa-square-n:before { + content: "\e277" +} + +.fa-splotch:before { + content: "\f5bc" +} + +.fa-face-grin-hearts:before, +.fa-grin-hearts:before { + content: "\f584" +} + +.fa-meter:before { + content: "\e1e8" +} + +.fa-mandolin:before { + content: "\f6f9" +} + +.fa-dice-four:before { + content: "\f524" +} + +.fa-sim-card:before { + content: "\f7c4" +} + +.fa-transgender-alt:before, +.fa-transgender:before { + content: "\f225" +} + +.fa-mercury:before { + content: "\f223" +} + +.fa-up-from-bracket:before { + content: "\e590" +} + +.fa-knife-kitchen:before { + content: "\f6f5" +} + +.fa-border-right:before { + content: "\f852" +} + +.fa-arrow-turn-down:before, +.fa-level-down:before { + content: "\f149" +} + +.fa-spade:before { + content: "\f2f4" +} + +.fa-card-spade:before { + content: "\e3ec" +} + +.fa-line-columns:before { + content: "\f870" +} + +.fa-arrow-right-to-line:before, +.fa-arrow-to-right:before { + content: "\f340" +} + +.fa-person-falling-burst:before { + content: "\e547" +} + +.fa-flag-pennant:before, +.fa-pennant:before { + content: "\f456" +} + +.fa-conveyor-belt-empty:before { + content: "\e150" +} + +.fa-user-group-simple:before { + content: "\e603" +} + +.fa-award:before { + content: "\f559" +} + +.fa-ticket-alt:before, +.fa-ticket-simple:before { + content: "\f3ff" +} + +.fa-building:before { + content: "\f1ad" +} + +.fa-angle-double-left:before, +.fa-angles-left:before { + content: "\f100" +} + +.fa-camcorder:before, +.fa-video-handheld:before { + content: "\f8a8" +} + +.fa-pancakes:before { + content: "\e42d" +} + +.fa-album-circle-user:before { + content: "\e48d" +} + +.fa-subtitles-slash:before { + content: "\e610" +} + +.fa-qrcode:before { + content: "\f029" +} + +.fa-dice-d10:before { + content: "\f6cd" +} + +.fa-fireplace:before { + content: "\f79a" +} + +.fa-browser:before { + content: "\f37e" +} + +.fa-pen-paintbrush:before, +.fa-pencil-paintbrush:before { + content: "\f618" +} + +.fa-fish-cooked:before { + content: "\f7fe" +} + +.fa-chair-office:before { + content: "\f6c1" +} + +.fa-magnifying-glass-music:before { + content: "\e65f" +} + +.fa-nesting-dolls:before { + content: "\e3ba" +} + +.fa-clock-rotate-left:before, +.fa-history:before { + content: "\f1da" +} + +.fa-trumpet:before { + content: "\f8e3" +} + +.fa-face-grin-beam-sweat:before, +.fa-grin-beam-sweat:before { + content: "\f583" +} + +.fa-fire-smoke:before { + content: "\f74b" +} + +.fa-phone-missed:before { + content: "\e226" +} + +.fa-arrow-right-from-file:before, +.fa-file-export:before { + content: "\f56e" +} + +.fa-shield-blank:before, +.fa-shield:before { + content: "\f132" +} + +.fa-arrow-up-short-wide:before, +.fa-sort-amount-up-alt:before { + content: "\f885" +} + +.fa-arrows-repeat-1:before, +.fa-repeat-1-alt:before { + content: "\f366" +} + +.fa-gun-slash:before { + content: "\e19c" +} + +.fa-avocado:before { + content: "\e0aa" +} + +.fa-binary:before { + content: "\e33b" +} + +.fa-glasses-alt:before, +.fa-glasses-round:before { + content: "\f5f5" +} + +.fa-phone-plus:before { + content: "\f4d2" +} + +.fa-ditto:before { + content: "\22" +} + +.fa-person-seat:before { + content: "\e21e" +} + +.fa-house-medical:before { + content: "\e3b2" +} + +.fa-golf-ball-tee:before, +.fa-golf-ball:before { + content: "\f450" +} + +.fa-chevron-circle-left:before, +.fa-circle-chevron-left:before { + content: "\f137" +} + +.fa-house-chimney-window:before { + content: "\e00d" +} + +.fa-scythe:before { + content: "\f710" +} + +.fa-pen-nib:before { + content: "\f5ad" +} + +.fa-ban-parking:before, +.fa-parking-circle-slash:before { + content: "\f616" +} + +.fa-tent-arrow-turn-left:before { + content: "\e580" +} + +.fa-face-diagonal-mouth:before { + content: "\e47e" +} + +.fa-diagram-cells:before { + content: "\e475" +} + +.fa-cricket-bat-ball:before, +.fa-cricket:before { + content: "\f449" +} + +.fa-tents:before { + content: "\e582" +} + +.fa-magic:before, +.fa-wand-magic:before { + content: "\f0d0" +} + +.fa-dog:before { + content: "\f6d3" +} + +.fa-pen-line:before { + content: "\e212" +} + +.fa-atom-alt:before, +.fa-atom-simple:before { + content: "\f5d3" +} + +.fa-ampersand:before { + content: "\26" +} + +.fa-carrot:before { + content: "\f787" +} + +.fa-arrow-from-bottom:before, +.fa-arrow-up-from-line:before { + content: "\f342" +} + +.fa-moon:before { + content: "\f186" +} + +.fa-pen-slash:before { + content: "\e213" +} + +.fa-wine-glass-alt:before, +.fa-wine-glass-empty:before { + content: "\f5ce" +} + +.fa-square-star:before { + content: "\e27f" +} + +.fa-cheese:before { + content: "\f7ef" +} + +.fa-send-backward:before { + content: "\f87f" +} + +.fa-yin-yang:before { + content: "\f6ad" +} + +.fa-music:before { + content: "\f001" +} + +.fa-compass-slash:before { + content: "\f5e9" +} + +.fa-clock-one:before { + content: "\e34e" +} + +.fa-file-music:before { + content: "\f8b6" +} + +.fa-code-commit:before { + content: "\f386" +} + +.fa-temperature-low:before { + content: "\f76b" +} + +.fa-biking:before, +.fa-person-biking:before { + content: "\f84a" +} + +.fa-display-chart-up-circle-currency:before { + content: "\e5e5" +} + +.fa-skeleton:before { + content: "\f620" +} + +.fa-circle-g:before { + content: "\e10f" +} + +.fa-circle-arrow-up-left:before { + content: "\e0fb" +} + +.fa-coin-blank:before { + content: "\e3fb" +} + +.fa-broom:before { + content: "\f51a" +} + +.fa-vacuum:before { + content: "\e04d" +} + +.fa-shield-heart:before { + content: "\e574" +} + +.fa-card-heart:before { + content: "\e3eb" +} + +.fa-lightbulb-cfl-on:before { + content: "\e5a7" +} + +.fa-melon:before { + content: "\e310" +} + +.fa-gopuram:before { + content: "\f664" +} + +.fa-earth-oceania:before, +.fa-globe-oceania:before { + content: "\e47b" +} + +.fa-container-storage:before { + content: "\f4b7" +} + +.fa-face-pouting:before { + content: "\e387" +} + +.fa-square-xmark:before, +.fa-times-square:before, +.fa-xmark-square:before { + content: "\f2d3" +} + +.fa-exploding-head:before, +.fa-face-explode:before { + content: "\e2fe" +} + +.fa-hashtag:before { + content: "\23" +} + +.fa-expand-alt:before, +.fa-up-right-and-down-left-from-center:before { + content: "\f424" +} + +.fa-oil-can:before { + content: "\f613" +} + +.fa-t:before { + content: "\54" +} + +.fa-transformer-bolt:before { + content: "\e2a4" +} + +.fa-hippo:before { + content: "\f6ed" +} + +.fa-chart-column:before { + content: "\e0e3" +} + +.fa-cassette-vhs:before, +.fa-vhs:before { + content: "\f8ec" +} + +.fa-infinity:before { + content: "\f534" +} + +.fa-vial-circle-check:before { + content: "\e596" +} + +.fa-chimney:before { + content: "\f78b" +} + +.fa-object-intersect:before { + content: "\e49d" +} + +.fa-person-arrow-down-to-line:before { + content: "\e538" +} + +.fa-voicemail:before { + content: "\f897" +} + +.fa-block-brick:before, +.fa-wall-brick:before { + content: "\e3db" +} + +.fa-fan:before { + content: "\f863" +} + +.fa-bags-shopping:before { + content: "\f847" +} + +.fa-paragraph-left:before, +.fa-paragraph-rtl:before { + content: "\f878" +} + +.fa-person-walking-luggage:before { + content: "\e554" +} + +.fa-caravan-alt:before, +.fa-caravan-simple:before { + content: "\e000" +} + +.fa-turtle:before { + content: "\f726" +} + +.fa-pencil-mechanical:before { + content: "\e5ca" +} + +.fa-arrows-alt-v:before, +.fa-up-down:before { + content: "\f338" +} + +.fa-cloud-moon-rain:before { + content: "\f73c" +} + +.fa-booth-curtain:before { + content: "\f734" +} + +.fa-calendar:before { + content: "\f133" +} + +.fa-box-heart:before { + content: "\f49d" +} + +.fa-trailer:before { + content: "\e041" +} + +.fa-user-doctor-message:before, +.fa-user-md-chat:before { + content: "\f82e" +} + +.fa-bahai:before, +.fa-haykal:before { + content: "\f666" +} + +.fa-lighthouse:before { + content: "\e612" +} + +.fa-amp-guitar:before { + content: "\f8a1" +} + +.fa-sd-card:before { + content: "\f7c2" +} + +.fa-volume-slash:before { + content: "\f2e2" +} + +.fa-border-bottom:before { + content: "\f84d" +} + +.fa-wifi-1:before, +.fa-wifi-weak:before { + content: "\f6aa" +} + +.fa-dragon:before { + content: "\f6d5" +} + +.fa-shoe-prints:before { + content: "\f54b" +} + +.fa-circle-plus:before, +.fa-plus-circle:before { + content: "\f055" +} + +.fa-face-grin-tongue-wink:before, +.fa-grin-tongue-wink:before { + content: "\f58b" +} + +.fa-hand-holding:before { + content: "\f4bd" +} + +.fa-plug-circle-exclamation:before { + content: "\e55d" +} + +.fa-chain-broken:before, +.fa-chain-slash:before, +.fa-link-slash:before, +.fa-unlink:before { + content: "\f127" +} + +.fa-clone:before { + content: "\f24d" +} + +.fa-person-walking-arrow-loop-left:before { + content: "\e551" +} + +.fa-arrow-up-z-a:before, +.fa-sort-alpha-up-alt:before { + content: "\f882" +} + +.fa-fire-alt:before, +.fa-fire-flame-curved:before { + content: "\f7e4" +} + +.fa-tornado:before { + content: "\f76f" +} + +.fa-file-circle-plus:before { + content: "\e494" +} + +.fa-delete-right:before { + content: "\e154" +} + +.fa-book-quran:before, +.fa-quran:before { + content: "\f687" +} + +.fa-circle-quarter:before { + content: "\e11f" +} + +.fa-anchor:before { + content: "\f13d" +} + +.fa-border-all:before { + content: "\f84c" +} + +.fa-function:before { + content: "\f661" +} + +.fa-angry:before, +.fa-face-angry:before { + content: "\f556" +} + +.fa-people-simple:before { + content: "\e21b" +} + +.fa-cookie-bite:before { + content: "\f564" +} + +.fa-arrow-trend-down:before { + content: "\e097" +} + +.fa-feed:before, +.fa-rss:before { + content: "\f09e" +} + +.fa-face-monocle:before { + content: "\e380" +} + +.fa-draw-polygon:before { + content: "\f5ee" +} + +.fa-balance-scale:before, +.fa-scale-balanced:before { + content: "\f24e" +} + +.fa-calendar-lines:before, +.fa-calendar-note:before { + content: "\e0d5" +} + +.fa-arrow-down-big-small:before, +.fa-sort-size-down:before { + content: "\f88c" +} + +.fa-gauge-simple-high:before, +.fa-tachometer-fast:before, +.fa-tachometer:before { + content: "\f62a" +} + +.fa-do-not-enter:before { + content: "\f5ec" +} + +.fa-shower:before { + content: "\f2cc" +} + +.fa-dice-d8:before { + content: "\f6d2" +} + +.fa-desktop-alt:before, +.fa-desktop:before { + content: "\f390" +} + +.fa-m:before { + content: "\4d" +} + +.fa-spinner-scale:before { + content: "\e62a" +} + +.fa-grip-dots-vertical:before { + content: "\e411" +} + +.fa-face-viewfinder:before { + content: "\e2ff" +} + +.fa-creemee:before, +.fa-soft-serve:before { + content: "\e400" +} + +.fa-h5:before { + content: "\e412" +} + +.fa-hand-back-point-down:before { + content: "\e19e" +} + +.fa-table-list:before, +.fa-th-list:before { + content: "\f00b" +} + +.fa-basket-shopping-minus:before { + content: "\e652" +} + +.fa-comment-sms:before, +.fa-sms:before { + content: "\f7cd" +} + +.fa-rectangle-landscape:before, +.fa-rectangle:before { + content: "\f2fa" +} + +.fa-clipboard-list-check:before { + content: "\f737" +} + +.fa-turkey:before { + content: "\f725" +} + +.fa-book:before { + content: "\f02d" +} + +.fa-user-plus:before { + content: "\f234" +} + +.fa-ice-skate:before { + content: "\f7ac" +} + +.fa-check:before { + content: "\f00c" +} + +.fa-battery-4:before, +.fa-battery-three-quarters:before { + content: "\f241" +} + +.fa-tomato:before { + content: "\e330" +} + +.fa-sword-laser:before { + content: "\e03b" +} + +.fa-house-circle-check:before { + content: "\e509" +} + +.fa-buildings:before { + content: "\e0cc" +} + +.fa-angle-left:before { + content: "\f104" +} + +.fa-cart-flatbed-boxes:before, +.fa-dolly-flatbed-alt:before { + content: "\f475" +} + +.fa-diagram-successor:before { + content: "\e47a" +} + +.fa-truck-arrow-right:before { + content: "\e58b" +} + +.fa-square-w:before { + content: "\e285" +} + +.fa-arrows-split-up-and-left:before { + content: "\e4bc" +} + +.fa-lamp:before { + content: "\f4ca" +} + +.fa-airplay:before { + content: "\e089" +} + +.fa-fist-raised:before, +.fa-hand-fist:before { + content: "\f6de" +} + +.fa-shield-quartered:before { + content: "\e575" +} + +.fa-slash-forward:before { + content: "\2f" +} + +.fa-location-pen:before, +.fa-map-marker-edit:before { + content: "\f607" +} + +.fa-cloud-moon:before { + content: "\f6c3" +} + +.fa-pot-food:before { + content: "\e43f" +} + +.fa-briefcase:before { + content: "\f0b1" +} + +.fa-person-falling:before { + content: "\e546" +} + +.fa-image-portrait:before, +.fa-portrait:before { + content: "\f3e0" +} + +.fa-user-tag:before { + content: "\f507" +} + +.fa-rug:before { + content: "\e569" +} + +.fa-print-slash:before { + content: "\f686" +} + +.fa-earth-europe:before, +.fa-globe-europe:before { + content: "\f7a2" +} + +.fa-cart-flatbed-suitcase:before, +.fa-luggage-cart:before { + content: "\f59d" +} + +.fa-hand-back-point-ribbon:before { + content: "\e1a0" +} + +.fa-rectangle-times:before, +.fa-rectangle-xmark:before, +.fa-times-rectangle:before, +.fa-window-close:before { + content: "\f410" +} + +.fa-tire-rugged:before { + content: "\f634" +} + +.fa-lightbulb-dollar:before { + content: "\f670" +} + +.fa-cowbell:before { + content: "\f8b3" +} + +.fa-baht-sign:before { + content: "\e0ac" +} + +.fa-corner:before { + content: "\e3fe" +} + +.fa-chevron-double-right:before, +.fa-chevrons-right:before { + content: "\f324" +} + +.fa-book-open:before { + content: "\f518" +} + +.fa-book-journal-whills:before, +.fa-journal-whills:before { + content: "\f66a" +} + +.fa-inhaler:before { + content: "\f5f9" +} + +.fa-handcuffs:before { + content: "\e4f8" +} + +.fa-snake:before { + content: "\f716" +} + +.fa-exclamation-triangle:before, +.fa-triangle-exclamation:before, +.fa-warning:before { + content: "\f071" +} + +.fa-note-medical:before { + content: "\e200" +} + +.fa-database:before { + content: "\f1c0" +} + +.fa-down-left:before { + content: "\e16a" +} + +.fa-mail-forward:before, +.fa-share:before { + content: "\f064" +} + +.fa-face-thinking:before { + content: "\e39b" +} + +.fa-turn-down-right:before { + content: "\e455" +} + +.fa-bottle-droplet:before { + content: "\e4c4" +} + +.fa-mask-face:before { + content: "\e1d7" +} + +.fa-hill-rockslide:before { + content: "\e508" +} + +.fa-scanner-keyboard:before { + content: "\f489" +} + +.fa-circle-o:before { + content: "\e119" +} + +.fa-grid-horizontal:before { + content: "\e307" +} + +.fa-comment-alt-dollar:before, +.fa-message-dollar:before { + content: "\f650" +} + +.fa-exchange-alt:before, +.fa-right-left:before { + content: "\f362" +} + +.fa-columns-3:before { + content: "\e361" +} + +.fa-paper-plane:before { + content: "\f1d8" +} + +.fa-road-circle-exclamation:before { + content: "\e565" +} + +.fa-dungeon:before { + content: "\f6d9" +} + +.fa-hand-holding-box:before { + content: "\f47b" +} + +.fa-input-text:before { + content: "\e1bf" +} + +.fa-window-alt:before, +.fa-window-flip:before { + content: "\f40f" +} + +.fa-align-right:before { + content: "\f038" +} + +.fa-scanner-gun:before, +.fa-scanner:before { + content: "\f488" +} + +.fa-tire:before { + content: "\f631" +} + +.fa-engine:before { + content: "\e16e" +} + +.fa-money-bill-1-wave:before, +.fa-money-bill-wave-alt:before { + content: "\f53b" +} + +.fa-life-ring:before { + content: "\f1cd" +} + +.fa-hands:before, +.fa-sign-language:before, +.fa-signing:before { + content: "\f2a7" +} + +.fa-caret-circle-right:before, +.fa-circle-caret-right:before { + content: "\f330" +} + +.fa-turn-left:before { + content: "\e636" +} + +.fa-wheat:before { + content: "\f72d" +} + +.fa-file-spreadsheet:before { + content: "\f65b" +} + +.fa-audio-description-slash:before { + content: "\e0a8" +} + +.fa-bell-ring:before { + content: "\e62c" +} + +.fa-calendar-day:before { + content: "\f783" +} + +.fa-ladder-water:before, +.fa-swimming-pool:before, +.fa-water-ladder:before { + content: "\f5c5" +} + +.fa-arrows-up-down:before, +.fa-arrows-v:before { + content: "\f07d" +} + +.fa-chess-pawn-alt:before, +.fa-chess-pawn-piece:before { + content: "\f444" +} + +.fa-face-grimace:before, +.fa-grimace:before { + content: "\f57f" +} + +.fa-wheelchair-alt:before, +.fa-wheelchair-move:before { + content: "\e2ce" +} + +.fa-level-down-alt:before, +.fa-turn-down:before { + content: "\f3be" +} + +.fa-square-s:before { + content: "\e27d" +} + +.fa-barcode-alt:before, +.fa-rectangle-barcode:before { + content: "\f463" +} + +.fa-person-walking-arrow-right:before { + content: "\e552" +} + +.fa-envelope-square:before, +.fa-square-envelope:before { + content: "\f199" +} + +.fa-dice:before { + content: "\f522" +} + +.fa-unicorn:before { + content: "\f727" +} + +.fa-bowling-ball:before { + content: "\f436" +} + +.fa-pompebled:before { + content: "\e43d" +} + +.fa-brain:before { + content: "\f5dc" +} + +.fa-watch-smart:before { + content: "\e2cc" +} + +.fa-book-user:before { + content: "\f7e7" +} + +.fa-sensor-cloud:before, +.fa-sensor-smoke:before { + content: "\e02c" +} + +.fa-clapperboard-play:before { + content: "\e132" +} + +.fa-band-aid:before, +.fa-bandage:before { + content: "\f462" +} + +.fa-calendar-minus:before { + content: "\f272" +} + +.fa-circle-xmark:before, +.fa-times-circle:before, +.fa-xmark-circle:before { + content: "\f057" +} + +.fa-circle-4:before { + content: "\e0f1" +} + +.fa-gifts:before { + content: "\f79c" +} + +.fa-album-collection:before { + content: "\f8a0" +} + +.fa-hotel:before { + content: "\f594" +} + +.fa-earth-asia:before, +.fa-globe-asia:before { + content: "\f57e" +} + +.fa-id-card-alt:before, +.fa-id-card-clip:before { + content: "\f47f" +} + +.fa-magnifying-glass-plus:before, +.fa-search-plus:before { + content: "\f00e" +} + +.fa-thumbs-up:before { + content: "\f164" +} + +.fa-cloud-showers:before { + content: "\f73f" +} + +.fa-user-clock:before { + content: "\f4fd" +} + +.fa-onion:before { + content: "\e427" +} + +.fa-clock-twelve-thirty:before { + content: "\e359" +} + +.fa-arrow-down-to-dotted-line:before { + content: "\e095" +} + +.fa-allergies:before, +.fa-hand-dots:before { + content: "\f461" +} + +.fa-file-invoice:before { + content: "\f570" +} + +.fa-window-minimize:before { + content: "\f2d1" +} + +.fa-rectangle-wide:before { + content: "\f2fc" +} + +.fa-comment-arrow-up:before { + content: "\e144" +} + +.fa-garlic:before { + content: "\e40e" +} + +.fa-coffee:before, +.fa-mug-saucer:before { + content: "\f0f4" +} + +.fa-brush:before { + content: "\f55d" +} + +.fa-tree-decorated:before { + content: "\f7dc" +} + +.fa-mask:before { + content: "\f6fa" +} + +.fa-calendar-heart:before { + content: "\e0d3" +} + +.fa-magnifying-glass-minus:before, +.fa-search-minus:before { + content: "\f010" +} + +.fa-flower:before { + content: "\f7ff" +} + +.fa-arrow-down-from-arc:before { + content: "\e614" +} + +.fa-right-left-large:before { + content: "\e5e1" +} + +.fa-ruler-vertical:before { + content: "\f548" +} + +.fa-circles-overlap:before { + content: "\e600" +} + +.fa-user-alt:before, +.fa-user-large:before { + content: "\f406" +} + +.fa-starship-freighter:before { + content: "\e03a" +} + +.fa-train-tram:before { + content: "\e5b4" +} + +.fa-bridge-suspension:before { + content: "\e4cd" +} + +.fa-trash-check:before { + content: "\e2af" +} + +.fa-user-nurse:before { + content: "\f82f" +} + +.fa-boombox:before { + content: "\f8a5" +} + +.fa-syringe:before { + content: "\f48e" +} + +.fa-cloud-sun:before { + content: "\f6c4" +} + +.fa-shield-exclamation:before { + content: "\e247" +} + +.fa-stopwatch-20:before { + content: "\e06f" +} + +.fa-square-full:before { + content: "\f45c" +} + +.fa-grip-dots:before { + content: "\e410" +} + +.fa-comment-exclamation:before { + content: "\f4af" +} + +.fa-pen-swirl:before { + content: "\e214" +} + +.fa-falafel:before { + content: "\e40a" +} + +.fa-circle-2:before { + content: "\e0ef" +} + +.fa-magnet:before { + content: "\f076" +} + +.fa-jar:before { + content: "\e516" +} + +.fa-gramophone:before { + content: "\f8bd" +} + +.fa-dice-d12:before { + content: "\f6ce" +} + +.fa-note-sticky:before, +.fa-sticky-note:before { + content: "\f249" +} + +.fa-arrow-alt-down:before, +.fa-down:before { + content: "\f354" +} + +.fa-100:before, +.fa-hundred-points:before { + content: "\e41c" +} + +.fa-paperclip-vertical:before { + content: "\e3c2" +} + +.fa-wind-circle-exclamation:before, +.fa-wind-warning:before { + content: "\f776" +} + +.fa-location-pin-slash:before, +.fa-map-marker-slash:before { + content: "\f60c" +} + +.fa-face-sad-sweat:before { + content: "\e38a" +} + +.fa-bug-slash:before { + content: "\e490" +} + +.fa-cupcake:before { + content: "\e402" +} + +.fa-light-switch-off:before { + content: "\e018" +} + +.fa-toggle-large-off:before { + content: "\e5b0" +} + +.fa-pen-fancy-slash:before { + content: "\e210" +} + +.fa-truck-container:before { + content: "\f4dc" +} + +.fa-boot:before { + content: "\f782" +} + +.fa-arrow-up-from-water-pump:before { + content: "\e4b6" +} + +.fa-file-check:before { + content: "\f316" +} + +.fa-bone:before { + content: "\f5d7" +} + +.fa-cards-blank:before { + content: "\e4df" +} + +.fa-circle-3:before { + content: "\e0f0" +} + +.fa-bench-tree:before { + content: "\e2e7" +} + +.fa-keyboard-brightness-low:before { + content: "\e1c1" +} + +.fa-ski-boot-ski:before { + content: "\e3cd" +} + +.fa-brain-circuit:before { + content: "\e0c6" +} + +.fa-user-injured:before { + content: "\f728" +} + +.fa-block-brick-fire:before, +.fa-firewall:before { + content: "\e3dc" +} + +.fa-face-sad-tear:before, +.fa-sad-tear:before { + content: "\f5b4" +} + +.fa-plane:before { + content: "\f072" +} + +.fa-tent-arrows-down:before { + content: "\e581" +} + +.fa-exclamation:before { + content: "\21" +} + +.fa-arrows-spin:before { + content: "\e4bb" +} + +.fa-face-smile-relaxed:before { + content: "\e392" +} + +.fa-comment-times:before, +.fa-comment-xmark:before { + content: "\f4b5" +} + +.fa-print:before { + content: "\f02f" +} + +.fa-try:before, +.fa-turkish-lira-sign:before, +.fa-turkish-lira:before { + content: "\e2bb" +} + +.fa-face-nose-steam:before { + content: "\e382" +} + +.fa-circle-waveform-lines:before, +.fa-waveform-circle:before { + content: "\e12d" +} + +.fa-dollar-sign:before, +.fa-dollar:before, +.fa-usd:before { + content: "\24" +} + +.fa-ferris-wheel:before { + content: "\e174" +} + +.fa-computer-speaker:before { + content: "\f8b2" +} + +.fa-skull-cow:before { + content: "\f8de" +} + +.fa-x:before { + content: "\58" +} + +.fa-magnifying-glass-dollar:before, +.fa-search-dollar:before { + content: "\f688" +} + +.fa-users-cog:before, +.fa-users-gear:before { + content: "\f509" +} + +.fa-person-military-pointing:before { + content: "\e54a" +} + +.fa-bank:before, +.fa-building-columns:before, +.fa-institution:before, +.fa-museum:before, +.fa-university:before { + content: "\f19c" +} + +.fa-circle-t:before { + content: "\e124" +} + +.fa-sack:before { + content: "\f81c" +} + +.fa-grid-2:before { + content: "\e196" +} + +.fa-camera-cctv:before, +.fa-cctv:before { + content: "\f8ac" +} + +.fa-umbrella:before { + content: "\f0e9" +} + +.fa-trowel:before { + content: "\e589" +} + +.fa-horizontal-rule:before { + content: "\f86c" +} + +.fa-bed-alt:before, +.fa-bed-front:before { + content: "\f8f7" +} + +.fa-d:before { + content: "\44" +} + +.fa-stapler:before { + content: "\e5af" +} + +.fa-masks-theater:before, +.fa-theater-masks:before { + content: "\f630" +} + +.fa-file-gif:before { + content: "\e645" +} + +.fa-kip-sign:before { + content: "\e1c4" +} + +.fa-face-woozy:before { + content: "\e3a2" +} + +.fa-cloud-question:before { + content: "\e492" +} + +.fa-pineapple:before { + content: "\e31f" +} + +.fa-hand-point-left:before { + content: "\f0a5" +} + +.fa-gallery-thumbnails:before { + content: "\e3aa" +} + +.fa-circle-j:before { + content: "\e112" +} + +.fa-eyes:before { + content: "\e367" +} + +.fa-handshake-alt:before, +.fa-handshake-simple:before { + content: "\f4c6" +} + +.fa-file-caret-up:before, +.fa-page-caret-up:before { + content: "\e42a" +} + +.fa-fighter-jet:before, +.fa-jet-fighter:before { + content: "\f0fb" +} + +.fa-comet:before { + content: "\e003" +} + +.fa-share-alt-square:before, +.fa-square-share-nodes:before { + content: "\f1e1" +} + +.fa-reflect-vertical:before { + content: "\e665" +} + +.fa-shield-keyhole:before { + content: "\e248" +} + +.fa-file-mp4:before { + content: "\e649" +} + +.fa-barcode:before { + content: "\f02a" +} + +.fa-bulldozer:before { + content: "\e655" +} + +.fa-plus-minus:before { + content: "\e43c" +} + +.fa-sliders-v-square:before, +.fa-square-sliders-vertical:before { + content: "\f3f2" +} + +.fa-video-camera:before, +.fa-video:before { + content: "\f03d" +} + +.fa-comment-middle-alt:before, +.fa-message-middle:before { + content: "\e1e1" +} + +.fa-graduation-cap:before, +.fa-mortar-board:before { + content: "\f19d" +} + +.fa-hand-holding-medical:before { + content: "\e05c" +} + +.fa-person-circle-check:before { + content: "\e53e" +} + +.fa-square-z:before { + content: "\e288" +} + +.fa-comment-alt-text:before, +.fa-message-text:before { + content: "\e1e6" +} + +.fa-level-up-alt:before, +.fa-turn-up:before { + content: "\f3bf" +} + +.fa-sr-only, +.fa-sr-only-focusable:not(:focus), +.sr-only, +.sr-only-focusable:not(:focus) { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0 +} + +:host, +:root { + --fa-style-family-brands: "Font Awesome 6 Brands"; + --fa-font-brands: normal 400 1em/1 "Font Awesome 6 Brands" +} + +@font-face { + font-family: "Font Awesome 6 Brands"; + font-style: normal; + font-weight: 400; + font-display: block; + src: url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-brands-400.woff2) format("woff2"), url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-brands-400.ttf) format("truetype") +} + +.fa-brands, +.fab { + font-weight: 400 +} + +.fa-monero:before { + content: "\f3d0" +} + +.fa-hooli:before { + content: "\f427" +} + +.fa-yelp:before { + content: "\f1e9" +} + +.fa-cc-visa:before { + content: "\f1f0" +} + +.fa-lastfm:before { + content: "\f202" +} + +.fa-shopware:before { + content: "\f5b5" +} + +.fa-creative-commons-nc:before { + content: "\f4e8" +} + +.fa-aws:before { + content: "\f375" +} + +.fa-redhat:before { + content: "\f7bc" +} + +.fa-yoast:before { + content: "\f2b1" +} + +.fa-cloudflare:before { + content: "\e07d" +} + +.fa-ups:before { + content: "\f7e0" +} + +.fa-pixiv:before { + content: "\e640" +} + +.fa-wpexplorer:before { + content: "\f2de" +} + +.fa-dyalog:before { + content: "\f399" +} + +.fa-bity:before { + content: "\f37a" +} + +.fa-stackpath:before { + content: "\f842" +} + +.fa-buysellads:before { + content: "\f20d" +} + +.fa-first-order:before { + content: "\f2b0" +} + +.fa-modx:before { + content: "\f285" +} + +.fa-guilded:before { + content: "\e07e" +} + +.fa-vnv:before { + content: "\f40b" +} + +.fa-js-square:before, +.fa-square-js:before { + content: "\f3b9" +} + +.fa-microsoft:before { + content: "\f3ca" +} + +.fa-qq:before { + content: "\f1d6" +} + +.fa-orcid:before { + content: "\f8d2" +} + +.fa-java:before { + content: "\f4e4" +} + +.fa-invision:before { + content: "\f7b0" +} + +.fa-creative-commons-pd-alt:before { + content: "\f4ed" +} + +.fa-centercode:before { + content: "\f380" +} + +.fa-glide-g:before { + content: "\f2a6" +} + +.fa-drupal:before { + content: "\f1a9" +} + +.fa-hire-a-helper:before { + content: "\f3b0" +} + +.fa-creative-commons-by:before { + content: "\f4e7" +} + +.fa-unity:before { + content: "\e049" +} + +.fa-whmcs:before { + content: "\f40d" +} + +.fa-rocketchat:before { + content: "\f3e8" +} + +.fa-vk:before { + content: "\f189" +} + +.fa-untappd:before { + content: "\f405" +} + +.fa-mailchimp:before { + content: "\f59e" +} + +.fa-css3-alt:before { + content: "\f38b" +} + +.fa-reddit-square:before, +.fa-square-reddit:before { + content: "\f1a2" +} + +.fa-vimeo-v:before { + content: "\f27d" +} + +.fa-contao:before { + content: "\f26d" +} + +.fa-square-font-awesome:before { + content: "\e5ad" +} + +.fa-deskpro:before { + content: "\f38f" +} + +.fa-brave:before { + content: "\e63c" +} + +.fa-sistrix:before { + content: "\f3ee" +} + +.fa-instagram-square:before, +.fa-square-instagram:before { + content: "\e055" +} + +.fa-battle-net:before { + content: "\f835" +} + +.fa-the-red-yeti:before { + content: "\f69d" +} + +.fa-hacker-news-square:before, +.fa-square-hacker-news:before { + content: "\f3af" +} + +.fa-edge:before { + content: "\f282" +} + +.fa-threads:before { + content: "\e618" +} + +.fa-napster:before { + content: "\f3d2" +} + +.fa-snapchat-square:before, +.fa-square-snapchat:before { + content: "\f2ad" +} + +.fa-google-plus-g:before { + content: "\f0d5" +} + +.fa-artstation:before { + content: "\f77a" +} + +.fa-markdown:before { + content: "\f60f" +} + +.fa-sourcetree:before { + content: "\f7d3" +} + +.fa-google-plus:before { + content: "\f2b3" +} + +.fa-diaspora:before { + content: "\f791" +} + +.fa-foursquare:before { + content: "\f180" +} + +.fa-stack-overflow:before { + content: "\f16c" +} + +.fa-github-alt:before { + content: "\f113" +} + +.fa-phoenix-squadron:before { + content: "\f511" +} + +.fa-pagelines:before { + content: "\f18c" +} + +.fa-algolia:before { + content: "\f36c" +} + +.fa-red-river:before { + content: "\f3e3" +} + +.fa-creative-commons-sa:before { + content: "\f4ef" +} + +.fa-safari:before { + content: "\f267" +} + +.fa-google:before { + content: "\f1a0" +} + +.fa-font-awesome-alt:before, +.fa-square-font-awesome-stroke:before { + content: "\f35c" +} + +.fa-atlassian:before { + content: "\f77b" +} + +.fa-linkedin-in:before { + content: "\f0e1" +} + +.fa-digital-ocean:before { + content: "\f391" +} + +.fa-nimblr:before { + content: "\f5a8" +} + +.fa-chromecast:before { + content: "\f838" +} + +.fa-evernote:before { + content: "\f839" +} + +.fa-hacker-news:before { + content: "\f1d4" +} + +.fa-creative-commons-sampling:before { + content: "\f4f0" +} + +.fa-adversal:before { + content: "\f36a" +} + +.fa-creative-commons:before { + content: "\f25e" +} + +.fa-watchman-monitoring:before { + content: "\e087" +} + +.fa-fonticons:before { + content: "\f280" +} + +.fa-weixin:before { + content: "\f1d7" +} + +.fa-shirtsinbulk:before { + content: "\f214" +} + +.fa-codepen:before { + content: "\f1cb" +} + +.fa-git-alt:before { + content: "\f841" +} + +.fa-lyft:before { + content: "\f3c3" +} + +.fa-rev:before { + content: "\f5b2" +} + +.fa-windows:before { + content: "\f17a" +} + +.fa-wizards-of-the-coast:before { + content: "\f730" +} + +.fa-square-viadeo:before, +.fa-viadeo-square:before { + content: "\f2aa" +} + +.fa-meetup:before { + content: "\f2e0" +} + +.fa-centos:before { + content: "\f789" +} + +.fa-adn:before { + content: "\f170" +} + +.fa-cloudsmith:before { + content: "\f384" +} + +.fa-opensuse:before { + content: "\e62b" +} + +.fa-pied-piper-alt:before { + content: "\f1a8" +} + +.fa-dribbble-square:before, +.fa-square-dribbble:before { + content: "\f397" +} + +.fa-codiepie:before { + content: "\f284" +} + +.fa-node:before { + content: "\f419" +} + +.fa-mix:before { + content: "\f3cb" +} + +.fa-steam:before { + content: "\f1b6" +} + +.fa-cc-apple-pay:before { + content: "\f416" +} + +.fa-scribd:before { + content: "\f28a" +} + +.fa-debian:before { + content: "\e60b" +} + +.fa-openid:before { + content: "\f19b" +} + +.fa-instalod:before { + content: "\e081" +} + +.fa-expeditedssl:before { + content: "\f23e" +} + +.fa-sellcast:before { + content: "\f2da" +} + +.fa-square-twitter:before, +.fa-twitter-square:before { + content: "\f081" +} + +.fa-r-project:before { + content: "\f4f7" +} + +.fa-delicious:before { + content: "\f1a5" +} + +.fa-freebsd:before { + content: "\f3a4" +} + +.fa-vuejs:before { + content: "\f41f" +} + +.fa-accusoft:before { + content: "\f369" +} + +.fa-ioxhost:before { + content: "\f208" +} + +.fa-fonticons-fi:before { + content: "\f3a2" +} + +.fa-app-store:before { + content: "\f36f" +} + +.fa-cc-mastercard:before { + content: "\f1f1" +} + +.fa-itunes-note:before { + content: "\f3b5" +} + +.fa-golang:before { + content: "\e40f" +} + +.fa-kickstarter:before { + content: "\f3bb" +} + +.fa-grav:before { + content: "\f2d6" +} + +.fa-weibo:before { + content: "\f18a" +} + +.fa-uncharted:before { + content: "\e084" +} + +.fa-firstdraft:before { + content: "\f3a1" +} + +.fa-square-youtube:before, +.fa-youtube-square:before { + content: "\f431" +} + +.fa-wikipedia-w:before { + content: "\f266" +} + +.fa-rendact:before, +.fa-wpressr:before { + content: "\f3e4" +} + +.fa-angellist:before { + content: "\f209" +} + +.fa-galactic-republic:before { + content: "\f50c" +} + +.fa-nfc-directional:before { + content: "\e530" +} + +.fa-skype:before { + content: "\f17e" +} + +.fa-joget:before { + content: "\f3b7" +} + +.fa-fedora:before { + content: "\f798" +} + +.fa-stripe-s:before { + content: "\f42a" +} + +.fa-meta:before { + content: "\e49b" +} + +.fa-laravel:before { + content: "\f3bd" +} + +.fa-hotjar:before { + content: "\f3b1" +} + +.fa-bluetooth-b:before { + content: "\f294" +} + +.fa-square-letterboxd:before { + content: "\e62e" +} + +.fa-sticker-mule:before { + content: "\f3f7" +} + +.fa-creative-commons-zero:before { + content: "\f4f3" +} + +.fa-hips:before { + content: "\f452" +} + +.fa-behance:before { + content: "\f1b4" +} + +.fa-reddit:before { + content: "\f1a1" +} + +.fa-discord:before { + content: "\f392" +} + +.fa-chrome:before { + content: "\f268" +} + +.fa-app-store-ios:before { + content: "\f370" +} + +.fa-cc-discover:before { + content: "\f1f2" +} + +.fa-wpbeginner:before { + content: "\f297" +} + +.fa-confluence:before { + content: "\f78d" +} + +.fa-shoelace:before { + content: "\e60c" +} + +.fa-mdb:before { + content: "\f8ca" +} + +.fa-dochub:before { + content: "\f394" +} + +.fa-accessible-icon:before { + content: "\f368" +} + +.fa-ebay:before { + content: "\f4f4" +} + +.fa-amazon:before { + content: "\f270" +} + +.fa-unsplash:before { + content: "\e07c" +} + +.fa-yarn:before { + content: "\f7e3" +} + +.fa-square-steam:before, +.fa-steam-square:before { + content: "\f1b7" +} + +.fa-500px:before { + content: "\f26e" +} + +.fa-square-vimeo:before, +.fa-vimeo-square:before { + content: "\f194" +} + +.fa-asymmetrik:before { + content: "\f372" +} + +.fa-font-awesome-flag:before, +.fa-font-awesome-logo-full:before, +.fa-font-awesome:before { + content: "\f2b4" +} + +.fa-gratipay:before { + content: "\f184" +} + +.fa-apple:before { + content: "\f179" +} + +.fa-hive:before { + content: "\e07f" +} + +.fa-gitkraken:before { + content: "\f3a6" +} + +.fa-keybase:before { + content: "\f4f5" +} + +.fa-apple-pay:before { + content: "\f415" +} + +.fa-padlet:before { + content: "\e4a0" +} + +.fa-amazon-pay:before { + content: "\f42c" +} + +.fa-github-square:before, +.fa-square-github:before { + content: "\f092" +} + +.fa-stumbleupon:before { + content: "\f1a4" +} + +.fa-fedex:before { + content: "\f797" +} + +.fa-phoenix-framework:before { + content: "\f3dc" +} + +.fa-shopify:before { + content: "\e057" +} + +.fa-neos:before { + content: "\f612" +} + +.fa-square-threads:before { + content: "\e619" +} + +.fa-hackerrank:before { + content: "\f5f7" +} + +.fa-researchgate:before { + content: "\f4f8" +} + +.fa-swift:before { + content: "\f8e1" +} + +.fa-angular:before { + content: "\f420" +} + +.fa-speakap:before { + content: "\f3f3" +} + +.fa-angrycreative:before { + content: "\f36e" +} + +.fa-y-combinator:before { + content: "\f23b" +} + +.fa-empire:before { + content: "\f1d1" +} + +.fa-envira:before { + content: "\f299" +} + +.fa-google-scholar:before { + content: "\e63b" +} + +.fa-gitlab-square:before, +.fa-square-gitlab:before { + content: "\e5ae" +} + +.fa-studiovinari:before { + content: "\f3f8" +} + +.fa-pied-piper:before { + content: "\f2ae" +} + +.fa-wordpress:before { + content: "\f19a" +} + +.fa-product-hunt:before { + content: "\f288" +} + +.fa-firefox:before { + content: "\f269" +} + +.fa-linode:before { + content: "\f2b8" +} + +.fa-goodreads:before { + content: "\f3a8" +} + +.fa-odnoklassniki-square:before, +.fa-square-odnoklassniki:before { + content: "\f264" +} + +.fa-jsfiddle:before { + content: "\f1cc" +} + +.fa-sith:before { + content: "\f512" +} + +.fa-themeisle:before { + content: "\f2b2" +} + +.fa-page4:before { + content: "\f3d7" +} + +.fa-hashnode:before { + content: "\e499" +} + +.fa-react:before { + content: "\f41b" +} + +.fa-cc-paypal:before { + content: "\f1f4" +} + +.fa-squarespace:before { + content: "\f5be" +} + +.fa-cc-stripe:before { + content: "\f1f5" +} + +.fa-creative-commons-share:before { + content: "\f4f2" +} + +.fa-bitcoin:before { + content: "\f379" +} + +.fa-keycdn:before { + content: "\f3ba" +} + +.fa-opera:before { + content: "\f26a" +} + +.fa-itch-io:before { + content: "\f83a" +} + +.fa-umbraco:before { + content: "\f8e8" +} + +.fa-galactic-senate:before { + content: "\f50d" +} + +.fa-ubuntu:before { + content: "\f7df" +} + +.fa-draft2digital:before { + content: "\f396" +} + +.fa-stripe:before { + content: "\f429" +} + +.fa-houzz:before { + content: "\f27c" +} + +.fa-gg:before { + content: "\f260" +} + +.fa-dhl:before { + content: "\f790" +} + +.fa-pinterest-square:before, +.fa-square-pinterest:before { + content: "\f0d3" +} + +.fa-xing:before { + content: "\f168" +} + +.fa-blackberry:before { + content: "\f37b" +} + +.fa-creative-commons-pd:before { + content: "\f4ec" +} + +.fa-playstation:before { + content: "\f3df" +} + +.fa-quinscape:before { + content: "\f459" +} + +.fa-less:before { + content: "\f41d" +} + +.fa-blogger-b:before { + content: "\f37d" +} + +.fa-opencart:before { + content: "\f23d" +} + +.fa-vine:before { + content: "\f1ca" +} + +.fa-signal-messenger:before { + content: "\e663" +} + +.fa-paypal:before { + content: "\f1ed" +} + +.fa-gitlab:before { + content: "\f296" +} + +.fa-typo3:before { + content: "\f42b" +} + +.fa-reddit-alien:before { + content: "\f281" +} + +.fa-yahoo:before { + content: "\f19e" +} + +.fa-dailymotion:before { + content: "\e052" +} + +.fa-affiliatetheme:before { + content: "\f36b" +} + +.fa-pied-piper-pp:before { + content: "\f1a7" +} + +.fa-bootstrap:before { + content: "\f836" +} + +.fa-odnoklassniki:before { + content: "\f263" +} + +.fa-nfc-symbol:before { + content: "\e531" +} + +.fa-mintbit:before { + content: "\e62f" +} + +.fa-ethereum:before { + content: "\f42e" +} + +.fa-speaker-deck:before { + content: "\f83c" +} + +.fa-creative-commons-nc-eu:before { + content: "\f4e9" +} + +.fa-patreon:before { + content: "\f3d9" +} + +.fa-avianex:before { + content: "\f374" +} + +.fa-ello:before { + content: "\f5f1" +} + +.fa-gofore:before { + content: "\f3a7" +} + +.fa-bimobject:before { + content: "\f378" +} + +.fa-brave-reverse:before { + content: "\e63d" +} + +.fa-facebook-f:before { + content: "\f39e" +} + +.fa-google-plus-square:before, +.fa-square-google-plus:before { + content: "\f0d4" +} + +.fa-mandalorian:before { + content: "\f50f" +} + +.fa-first-order-alt:before { + content: "\f50a" +} + +.fa-osi:before { + content: "\f41a" +} + +.fa-google-wallet:before { + content: "\f1ee" +} + +.fa-d-and-d-beyond:before { + content: "\f6ca" +} + +.fa-periscope:before { + content: "\f3da" +} + +.fa-fulcrum:before { + content: "\f50b" +} + +.fa-cloudscale:before { + content: "\f383" +} + +.fa-forumbee:before { + content: "\f211" +} + +.fa-mizuni:before { + content: "\f3cc" +} + +.fa-schlix:before { + content: "\f3ea" +} + +.fa-square-xing:before, +.fa-xing-square:before { + content: "\f169" +} + +.fa-bandcamp:before { + content: "\f2d5" +} + +.fa-wpforms:before { + content: "\f298" +} + +.fa-cloudversify:before { + content: "\f385" +} + +.fa-usps:before { + content: "\f7e1" +} + +.fa-megaport:before { + content: "\f5a3" +} + +.fa-magento:before { + content: "\f3c4" +} + +.fa-spotify:before { + content: "\f1bc" +} + +.fa-optin-monster:before { + content: "\f23c" +} + +.fa-fly:before { + content: "\f417" +} + +.fa-aviato:before { + content: "\f421" +} + +.fa-itunes:before { + content: "\f3b4" +} + +.fa-cuttlefish:before { + content: "\f38c" +} + +.fa-blogger:before { + content: "\f37c" +} + +.fa-flickr:before { + content: "\f16e" +} + +.fa-viber:before { + content: "\f409" +} + +.fa-soundcloud:before { + content: "\f1be" +} + +.fa-digg:before { + content: "\f1a6" +} + +.fa-tencent-weibo:before { + content: "\f1d5" +} + +.fa-letterboxd:before { + content: "\e62d" +} + +.fa-symfony:before { + content: "\f83d" +} + +.fa-maxcdn:before { + content: "\f136" +} + +.fa-etsy:before { + content: "\f2d7" +} + +.fa-facebook-messenger:before { + content: "\f39f" +} + +.fa-audible:before { + content: "\f373" +} + +.fa-think-peaks:before { + content: "\f731" +} + +.fa-bilibili:before { + content: "\e3d9" +} + +.fa-erlang:before { + content: "\f39d" +} + +.fa-x-twitter:before { + content: "\e61b" +} + +.fa-cotton-bureau:before { + content: "\f89e" +} + +.fa-dashcube:before { + content: "\f210" +} + +.fa-42-group:before, +.fa-innosoft:before { + content: "\e080" +} + +.fa-stack-exchange:before { + content: "\f18d" +} + +.fa-elementor:before { + content: "\f430" +} + +.fa-pied-piper-square:before, +.fa-square-pied-piper:before { + content: "\e01e" +} + +.fa-creative-commons-nd:before { + content: "\f4eb" +} + +.fa-palfed:before { + content: "\f3d8" +} + +.fa-superpowers:before { + content: "\f2dd" +} + +.fa-resolving:before { + content: "\f3e7" +} + +.fa-xbox:before { + content: "\f412" +} + +.fa-searchengin:before { + content: "\f3eb" +} + +.fa-tiktok:before { + content: "\e07b" +} + +.fa-facebook-square:before, +.fa-square-facebook:before { + content: "\f082" +} + +.fa-renren:before { + content: "\f18b" +} + +.fa-linux:before { + content: "\f17c" +} + +.fa-glide:before { + content: "\f2a5" +} + +.fa-linkedin:before { + content: "\f08c" +} + +.fa-hubspot:before { + content: "\f3b2" +} + +.fa-deploydog:before { + content: "\f38e" +} + +.fa-twitch:before { + content: "\f1e8" +} + +.fa-ravelry:before { + content: "\f2d9" +} + +.fa-mixer:before { + content: "\e056" +} + +.fa-lastfm-square:before, +.fa-square-lastfm:before { + content: "\f203" +} + +.fa-vimeo:before { + content: "\f40a" +} + +.fa-mendeley:before { + content: "\f7b3" +} + +.fa-uniregistry:before { + content: "\f404" +} + +.fa-figma:before { + content: "\f799" +} + +.fa-creative-commons-remix:before { + content: "\f4ee" +} + +.fa-cc-amazon-pay:before { + content: "\f42d" +} + +.fa-dropbox:before { + content: "\f16b" +} + +.fa-instagram:before { + content: "\f16d" +} + +.fa-cmplid:before { + content: "\e360" +} + +.fa-upwork:before { + content: "\e641" +} + +.fa-facebook:before { + content: "\f09a" +} + +.fa-gripfire:before { + content: "\f3ac" +} + +.fa-jedi-order:before { + content: "\f50e" +} + +.fa-uikit:before { + content: "\f403" +} + +.fa-fort-awesome-alt:before { + content: "\f3a3" +} + +.fa-phabricator:before { + content: "\f3db" +} + +.fa-ussunnah:before { + content: "\f407" +} + +.fa-earlybirds:before { + content: "\f39a" +} + +.fa-trade-federation:before { + content: "\f513" +} + +.fa-autoprefixer:before { + content: "\f41c" +} + +.fa-whatsapp:before { + content: "\f232" +} + +.fa-slideshare:before { + content: "\f1e7" +} + +.fa-google-play:before { + content: "\f3ab" +} + +.fa-viadeo:before { + content: "\f2a9" +} + +.fa-line:before { + content: "\f3c0" +} + +.fa-google-drive:before { + content: "\f3aa" +} + +.fa-servicestack:before { + content: "\f3ec" +} + +.fa-simplybuilt:before { + content: "\f215" +} + +.fa-bitbucket:before { + content: "\f171" +} + +.fa-imdb:before { + content: "\f2d8" +} + +.fa-deezer:before { + content: "\e077" +} + +.fa-raspberry-pi:before { + content: "\f7bb" +} + +.fa-jira:before { + content: "\f7b1" +} + +.fa-docker:before { + content: "\f395" +} + +.fa-screenpal:before { + content: "\e570" +} + +.fa-bluetooth:before { + content: "\f293" +} + +.fa-gitter:before { + content: "\f426" +} + +.fa-d-and-d:before { + content: "\f38d" +} + +.fa-microblog:before { + content: "\e01a" +} + +.fa-cc-diners-club:before { + content: "\f24c" +} + +.fa-gg-circle:before { + content: "\f261" +} + +.fa-pied-piper-hat:before { + content: "\f4e5" +} + +.fa-kickstarter-k:before { + content: "\f3bc" +} + +.fa-yandex:before { + content: "\f413" +} + +.fa-readme:before { + content: "\f4d5" +} + +.fa-html5:before { + content: "\f13b" +} + +.fa-sellsy:before { + content: "\f213" +} + +.fa-sass:before { + content: "\f41e" +} + +.fa-wirsindhandwerk:before, +.fa-wsh:before { + content: "\e2d0" +} + +.fa-buromobelexperte:before { + content: "\f37f" +} + +.fa-salesforce:before { + content: "\f83b" +} + +.fa-octopus-deploy:before { + content: "\e082" +} + +.fa-medapps:before { + content: "\f3c6" +} + +.fa-ns8:before { + content: "\f3d5" +} + +.fa-pinterest-p:before { + content: "\f231" +} + +.fa-apper:before { + content: "\f371" +} + +.fa-fort-awesome:before { + content: "\f286" +} + +.fa-waze:before { + content: "\f83f" +} + +.fa-cc-jcb:before { + content: "\f24b" +} + +.fa-snapchat-ghost:before, +.fa-snapchat:before { + content: "\f2ab" +} + +.fa-fantasy-flight-games:before { + content: "\f6dc" +} + +.fa-rust:before { + content: "\e07a" +} + +.fa-wix:before { + content: "\f5cf" +} + +.fa-behance-square:before, +.fa-square-behance:before { + content: "\f1b5" +} + +.fa-supple:before { + content: "\f3f9" +} + +.fa-webflow:before { + content: "\e65c" +} + +.fa-rebel:before { + content: "\f1d0" +} + +.fa-css3:before { + content: "\f13c" +} + +.fa-staylinked:before { + content: "\f3f5" +} + +.fa-kaggle:before { + content: "\f5fa" +} + +.fa-space-awesome:before { + content: "\e5ac" +} + +.fa-deviantart:before { + content: "\f1bd" +} + +.fa-cpanel:before { + content: "\f388" +} + +.fa-goodreads-g:before { + content: "\f3a9" +} + +.fa-git-square:before, +.fa-square-git:before { + content: "\f1d2" +} + +.fa-square-tumblr:before, +.fa-tumblr-square:before { + content: "\f174" +} + +.fa-trello:before { + content: "\f181" +} + +.fa-creative-commons-nc-jp:before { + content: "\f4ea" +} + +.fa-get-pocket:before { + content: "\f265" +} + +.fa-perbyte:before { + content: "\e083" +} + +.fa-grunt:before { + content: "\f3ad" +} + +.fa-weebly:before { + content: "\f5cc" +} + +.fa-connectdevelop:before { + content: "\f20e" +} + +.fa-leanpub:before { + content: "\f212" +} + +.fa-black-tie:before { + content: "\f27e" +} + +.fa-themeco:before { + content: "\f5c6" +} + +.fa-python:before { + content: "\f3e2" +} + +.fa-android:before { + content: "\f17b" +} + +.fa-bots:before { + content: "\e340" +} + +.fa-free-code-camp:before { + content: "\f2c5" +} + +.fa-hornbill:before { + content: "\f592" +} + +.fa-js:before { + content: "\f3b8" +} + +.fa-ideal:before { + content: "\e013" +} + +.fa-git:before { + content: "\f1d3" +} + +.fa-dev:before { + content: "\f6cc" +} + +.fa-sketch:before { + content: "\f7c6" +} + +.fa-yandex-international:before { + content: "\f414" +} + +.fa-cc-amex:before { + content: "\f1f3" +} + +.fa-uber:before { + content: "\f402" +} + +.fa-github:before { + content: "\f09b" +} + +.fa-php:before { + content: "\f457" +} + +.fa-alipay:before { + content: "\f642" +} + +.fa-youtube:before { + content: "\f167" +} + +.fa-skyatlas:before { + content: "\f216" +} + +.fa-firefox-browser:before { + content: "\e007" +} + +.fa-replyd:before { + content: "\f3e6" +} + +.fa-suse:before { + content: "\f7d6" +} + +.fa-jenkins:before { + content: "\f3b6" +} + +.fa-twitter:before { + content: "\f099" +} + +.fa-rockrms:before { + content: "\f3e9" +} + +.fa-pinterest:before { + content: "\f0d2" +} + +.fa-buffer:before { + content: "\f837" +} + +.fa-npm:before { + content: "\f3d4" +} + +.fa-yammer:before { + content: "\f840" +} + +.fa-btc:before { + content: "\f15a" +} + +.fa-dribbble:before { + content: "\f17d" +} + +.fa-stumbleupon-circle:before { + content: "\f1a3" +} + +.fa-internet-explorer:before { + content: "\f26b" +} + +.fa-stubber:before { + content: "\e5c7" +} + +.fa-telegram-plane:before, +.fa-telegram:before { + content: "\f2c6" +} + +.fa-old-republic:before { + content: "\f510" +} + +.fa-odysee:before { + content: "\e5c6" +} + +.fa-square-whatsapp:before, +.fa-whatsapp-square:before { + content: "\f40c" +} + +.fa-node-js:before { + content: "\f3d3" +} + +.fa-edge-legacy:before { + content: "\e078" +} + +.fa-slack-hash:before, +.fa-slack:before { + content: "\f198" +} + +.fa-medrt:before { + content: "\f3c8" +} + +.fa-usb:before { + content: "\f287" +} + +.fa-tumblr:before { + content: "\f173" +} + +.fa-vaadin:before { + content: "\f408" +} + +.fa-quora:before { + content: "\f2c4" +} + +.fa-square-x-twitter:before { + content: "\e61a" +} + +.fa-reacteurope:before { + content: "\f75d" +} + +.fa-medium-m:before, +.fa-medium:before { + content: "\f23a" +} + +.fa-amilia:before { + content: "\f36d" +} + +.fa-mixcloud:before { + content: "\f289" +} + +.fa-flipboard:before { + content: "\f44d" +} + +.fa-viacoin:before { + content: "\f237" +} + +.fa-critical-role:before { + content: "\f6c9" +} + +.fa-sitrox:before { + content: "\e44a" +} + +.fa-discourse:before { + content: "\f393" +} + +.fa-joomla:before { + content: "\f1aa" +} + +.fa-mastodon:before { + content: "\f4f6" +} + +.fa-airbnb:before { + content: "\f834" +} + +.fa-wolf-pack-battalion:before { + content: "\f514" +} + +.fa-buy-n-large:before { + content: "\f8a6" +} + +.fa-gulp:before { + content: "\f3ae" +} + +.fa-creative-commons-sampling-plus:before { + content: "\f4f1" +} + +.fa-strava:before { + content: "\f428" +} + +.fa-ember:before { + content: "\f423" +} + +.fa-canadian-maple-leaf:before { + content: "\f785" +} + +.fa-teamspeak:before { + content: "\f4f9" +} + +.fa-pushed:before { + content: "\f3e1" +} + +.fa-wordpress-simple:before { + content: "\f411" +} + +.fa-nutritionix:before { + content: "\f3d6" +} + +.fa-wodu:before { + content: "\e088" +} + +.fa-google-pay:before { + content: "\e079" +} + +.fa-intercom:before { + content: "\f7af" +} + +.fa-zhihu:before { + content: "\f63f" +} + +.fa-korvue:before { + content: "\f42f" +} + +.fa-pix:before { + content: "\e43a" +} + +.fa-steam-symbol:before { + content: "\f3f6" +} + +:host, +:root { + --fa-style-family-duotone: "Font Awesome 6 Duotone"; + --fa-font-duotone: normal 900 1em/1 "Font Awesome 6 Duotone" +} + +@font-face { + font-family: "Font Awesome 6 Duotone"; + font-style: normal; + font-weight: 900; + font-display: block; + src: url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-duotone-900.woff2) format("woff2"), url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-duotone-900.ttf) format("truetype") +} + +.fa-duotone, +.fad { + position: relative; + font-weight: 900; + letter-spacing: normal +} + +.fa-duotone:before, +.fad:before { + position: absolute; + color: var(--fa-primary-color, inherit); + opacity: var(--fa-primary-opacity, 1) +} + +.fa-duotone:after, +.fad:after { + color: var(--fa-secondary-color, inherit) +} + +.fa-duotone.fa-swap-opacity:before, +.fa-duotone:after, +.fa-swap-opacity .fa-duotone:before, +.fa-swap-opacity .fad:before, +.fad.fa-swap-opacity:before, +.fad:after { + opacity: var(--fa-secondary-opacity, .4) +} + +.fa-duotone.fa-swap-opacity:after, +.fa-swap-opacity .fa-duotone:after, +.fa-swap-opacity .fad:after, +.fad.fa-swap-opacity:after { + opacity: var(--fa-primary-opacity, 1) +} + +.fa-duotone.fa-inverse, +.fad.fa-inverse { + color: var(--fa-inverse, #fff) +} + +.fa-duotone.fa-stack-1x, +.fa-duotone.fa-stack-2x, +.fad.fa-stack-1x, +.fad.fa-stack-2x { + position: absolute +} + +.fa-duotone.fa-0:after, +.fad.fa-0:after { + content: "\30\30" +} + +.fa-duotone.fa-1:after, +.fad.fa-1:after { + content: "\31\31" +} + +.fa-duotone.fa-2:after, +.fad.fa-2:after { + content: "\32\32" +} + +.fa-duotone.fa-3:after, +.fad.fa-3:after { + content: "\33\33" +} + +.fa-duotone.fa-4:after, +.fad.fa-4:after { + content: "\34\34" +} + +.fa-duotone.fa-5:after, +.fad.fa-5:after { + content: "\35\35" +} + +.fa-duotone.fa-6:after, +.fad.fa-6:after { + content: "\36\36" +} + +.fa-duotone.fa-7:after, +.fad.fa-7:after { + content: "\37\37" +} + +.fa-duotone.fa-8:after, +.fad.fa-8:after { + content: "\38\38" +} + +.fa-duotone.fa-9:after, +.fad.fa-9:after { + content: "\39\39" +} + +.fa-duotone.fa-fill-drip:after, +.fad.fa-fill-drip:after { + content: "\f576\f576" +} + +.fa-duotone.fa-arrows-to-circle:after, +.fad.fa-arrows-to-circle:after { + content: "\e4bd\e4bd" +} + +.fa-duotone.fa-chevron-circle-right:after, +.fa-duotone.fa-circle-chevron-right:after, +.fad.fa-chevron-circle-right:after, +.fad.fa-circle-chevron-right:after { + content: "\f138\f138" +} + +.fa-duotone.fa-wagon-covered:after, +.fad.fa-wagon-covered:after { + content: "\f8ee\f8ee" +} + +.fa-duotone.fa-line-height:after, +.fad.fa-line-height:after { + content: "\f871\f871" +} + +.fa-duotone.fa-bagel:after, +.fad.fa-bagel:after { + content: "\e3d7\e3d7" +} + +.fa-duotone.fa-transporter-7:after, +.fad.fa-transporter-7:after { + content: "\e2a8\e2a8" +} + +.fa-duotone.fa-at:after, +.fad.fa-at:after { + content: "\40\40" +} + +.fa-duotone.fa-rectangles-mixed:after, +.fad.fa-rectangles-mixed:after { + content: "\e323\e323" +} + +.fa-duotone.fa-phone-arrow-up-right:after, +.fa-duotone.fa-phone-arrow-up:after, +.fa-duotone.fa-phone-outgoing:after, +.fad.fa-phone-arrow-up-right:after, +.fad.fa-phone-arrow-up:after, +.fad.fa-phone-outgoing:after { + content: "\e224\e224" +} + +.fa-duotone.fa-trash-alt:after, +.fa-duotone.fa-trash-can:after, +.fad.fa-trash-alt:after, +.fad.fa-trash-can:after { + content: "\f2ed\f2ed" +} + +.fa-duotone.fa-circle-l:after, +.fad.fa-circle-l:after { + content: "\e114\e114" +} + +.fa-duotone.fa-head-side-goggles:after, +.fa-duotone.fa-head-vr:after, +.fad.fa-head-side-goggles:after, +.fad.fa-head-vr:after { + content: "\f6ea\f6ea" +} + +.fa-duotone.fa-text-height:after, +.fad.fa-text-height:after { + content: "\f034\f034" +} + +.fa-duotone.fa-user-times:after, +.fa-duotone.fa-user-xmark:after, +.fad.fa-user-times:after, +.fad.fa-user-xmark:after { + content: "\f235\f235" +} + +.fa-duotone.fa-face-hand-yawn:after, +.fad.fa-face-hand-yawn:after { + content: "\e379\e379" +} + +.fa-duotone.fa-gauge-simple-min:after, +.fa-duotone.fa-tachometer-slowest:after, +.fad.fa-gauge-simple-min:after, +.fad.fa-tachometer-slowest:after { + content: "\f62d\f62d" +} + +.fa-duotone.fa-stethoscope:after, +.fad.fa-stethoscope:after { + content: "\f0f1\f0f1" +} + +.fa-duotone.fa-coffin:after, +.fad.fa-coffin:after { + content: "\f6c6\f6c6" +} + +.fa-duotone.fa-comment-alt:after, +.fa-duotone.fa-message:after, +.fad.fa-comment-alt:after, +.fad.fa-message:after { + content: "\f27a\f27a" +} + +.fa-duotone.fa-bowl-salad:after, +.fa-duotone.fa-salad:after, +.fad.fa-bowl-salad:after, +.fad.fa-salad:after { + content: "\f81e\f81e" +} + +.fa-duotone.fa-info:after, +.fad.fa-info:after { + content: "\f129\f129" +} + +.fa-duotone.fa-robot-astromech:after, +.fad.fa-robot-astromech:after { + content: "\e2d2\e2d2" +} + +.fa-duotone.fa-ring-diamond:after, +.fad.fa-ring-diamond:after { + content: "\e5ab\e5ab" +} + +.fa-duotone.fa-fondue-pot:after, +.fad.fa-fondue-pot:after { + content: "\e40d\e40d" +} + +.fa-duotone.fa-theta:after, +.fad.fa-theta:after { + content: "\f69e\f69e" +} + +.fa-duotone.fa-face-hand-peeking:after, +.fad.fa-face-hand-peeking:after { + content: "\e481\e481" +} + +.fa-duotone.fa-square-user:after, +.fad.fa-square-user:after { + content: "\e283\e283" +} + +.fa-duotone.fa-compress-alt:after, +.fa-duotone.fa-down-left-and-up-right-to-center:after, +.fad.fa-compress-alt:after, +.fad.fa-down-left-and-up-right-to-center:after { + content: "\f422\f422" +} + +.fa-duotone.fa-explosion:after, +.fad.fa-explosion:after { + content: "\e4e9\e4e9" +} + +.fa-duotone.fa-file-alt:after, +.fa-duotone.fa-file-lines:after, +.fa-duotone.fa-file-text:after, +.fad.fa-file-alt:after, +.fad.fa-file-lines:after, +.fad.fa-file-text:after { + content: "\f15c\f15c" +} + +.fa-duotone.fa-wave-square:after, +.fad.fa-wave-square:after { + content: "\f83e\f83e" +} + +.fa-duotone.fa-ring:after, +.fad.fa-ring:after { + content: "\f70b\f70b" +} + +.fa-duotone.fa-building-un:after, +.fad.fa-building-un:after { + content: "\e4d9\e4d9" +} + +.fa-duotone.fa-dice-three:after, +.fad.fa-dice-three:after { + content: "\f527\f527" +} + +.fa-duotone.fa-tire-pressure-warning:after, +.fad.fa-tire-pressure-warning:after { + content: "\f633\f633" +} + +.fa-duotone.fa-wifi-2:after, +.fa-duotone.fa-wifi-fair:after, +.fad.fa-wifi-2:after, +.fad.fa-wifi-fair:after { + content: "\f6ab\f6ab" +} + +.fa-duotone.fa-calendar-alt:after, +.fa-duotone.fa-calendar-days:after, +.fad.fa-calendar-alt:after, +.fad.fa-calendar-days:after { + content: "\f073\f073" +} + +.fa-duotone.fa-mp3-player:after, +.fad.fa-mp3-player:after { + content: "\f8ce\f8ce" +} + +.fa-duotone.fa-anchor-circle-check:after, +.fad.fa-anchor-circle-check:after { + content: "\e4aa\e4aa" +} + +.fa-duotone.fa-tally-4:after, +.fad.fa-tally-4:after { + content: "\e297\e297" +} + +.fa-duotone.fa-rectangle-history:after, +.fad.fa-rectangle-history:after { + content: "\e4a2\e4a2" +} + +.fa-duotone.fa-building-circle-arrow-right:after, +.fad.fa-building-circle-arrow-right:after { + content: "\e4d1\e4d1" +} + +.fa-duotone.fa-volleyball-ball:after, +.fa-duotone.fa-volleyball:after, +.fad.fa-volleyball-ball:after, +.fad.fa-volleyball:after { + content: "\f45f\f45f" +} + +.fa-duotone.fa-sun-haze:after, +.fad.fa-sun-haze:after { + content: "\f765\f765" +} + +.fa-duotone.fa-text-size:after, +.fad.fa-text-size:after { + content: "\f894\f894" +} + +.fa-duotone.fa-ufo:after, +.fad.fa-ufo:after { + content: "\e047\e047" +} + +.fa-duotone.fa-fork:after, +.fa-duotone.fa-utensil-fork:after, +.fad.fa-fork:after, +.fad.fa-utensil-fork:after { + content: "\f2e3\f2e3" +} + +.fa-duotone.fa-arrows-up-to-line:after, +.fad.fa-arrows-up-to-line:after { + content: "\e4c2\e4c2" +} + +.fa-duotone.fa-mobile-signal:after, +.fad.fa-mobile-signal:after { + content: "\e1ef\e1ef" +} + +.fa-duotone.fa-barcode-scan:after, +.fad.fa-barcode-scan:after { + content: "\f465\f465" +} + +.fa-duotone.fa-sort-desc:after, +.fa-duotone.fa-sort-down:after, +.fad.fa-sort-desc:after, +.fad.fa-sort-down:after { + content: "\f0dd\f0dd" +} + +.fa-duotone.fa-folder-arrow-down:after, +.fa-duotone.fa-folder-download:after, +.fad.fa-folder-arrow-down:after, +.fad.fa-folder-download:after { + content: "\e053\e053" +} + +.fa-duotone.fa-circle-minus:after, +.fa-duotone.fa-minus-circle:after, +.fad.fa-circle-minus:after, +.fad.fa-minus-circle:after { + content: "\f056\f056" +} + +.fa-duotone.fa-face-icicles:after, +.fad.fa-face-icicles:after { + content: "\e37c\e37c" +} + +.fa-duotone.fa-shovel:after, +.fad.fa-shovel:after { + content: "\f713\f713" +} + +.fa-duotone.fa-door-open:after, +.fad.fa-door-open:after { + content: "\f52b\f52b" +} + +.fa-duotone.fa-films:after, +.fad.fa-films:after { + content: "\e17a\e17a" +} + +.fa-duotone.fa-right-from-bracket:after, +.fa-duotone.fa-sign-out-alt:after, +.fad.fa-right-from-bracket:after, +.fad.fa-sign-out-alt:after { + content: "\f2f5\f2f5" +} + +.fa-duotone.fa-face-glasses:after, +.fad.fa-face-glasses:after { + content: "\e377\e377" +} + +.fa-duotone.fa-nfc:after, +.fad.fa-nfc:after { + content: "\e1f7\e1f7" +} + +.fa-duotone.fa-atom:after, +.fad.fa-atom:after { + content: "\f5d2\f5d2" +} + +.fa-duotone.fa-soap:after, +.fad.fa-soap:after { + content: "\e06e\e06e" +} + +.fa-duotone.fa-heart-music-camera-bolt:after, +.fa-duotone.fa-icons:after, +.fad.fa-heart-music-camera-bolt:after, +.fad.fa-icons:after { + content: "\f86d\f86d" +} + +.fa-duotone.fa-microphone-alt-slash:after, +.fa-duotone.fa-microphone-lines-slash:after, +.fad.fa-microphone-alt-slash:after, +.fad.fa-microphone-lines-slash:after { + content: "\f539\f539" +} + +.fa-duotone.fa-closed-captioning-slash:after, +.fad.fa-closed-captioning-slash:after { + content: "\e135\e135" +} + +.fa-duotone.fa-calculator-alt:after, +.fa-duotone.fa-calculator-simple:after, +.fad.fa-calculator-alt:after, +.fad.fa-calculator-simple:after { + content: "\f64c\f64c" +} + +.fa-duotone.fa-bridge-circle-check:after, +.fad.fa-bridge-circle-check:after { + content: "\e4c9\e4c9" +} + +.fa-duotone.fa-sliders-up:after, +.fa-duotone.fa-sliders-v:after, +.fad.fa-sliders-up:after, +.fad.fa-sliders-v:after { + content: "\f3f1\f3f1" +} + +.fa-duotone.fa-location-minus:after, +.fa-duotone.fa-map-marker-minus:after, +.fad.fa-location-minus:after, +.fad.fa-map-marker-minus:after { + content: "\f609\f609" +} + +.fa-duotone.fa-pump-medical:after, +.fad.fa-pump-medical:after { + content: "\e06a\e06a" +} + +.fa-duotone.fa-fingerprint:after, +.fad.fa-fingerprint:after { + content: "\f577\f577" +} + +.fa-duotone.fa-ski-boot:after, +.fad.fa-ski-boot:after { + content: "\e3cc\e3cc" +} + +.fa-duotone.fa-rectangle-sd:after, +.fa-duotone.fa-standard-definition:after, +.fad.fa-rectangle-sd:after, +.fad.fa-standard-definition:after { + content: "\e28a\e28a" +} + +.fa-duotone.fa-h1:after, +.fad.fa-h1:after { + content: "\f313\f313" +} + +.fa-duotone.fa-hand-point-right:after, +.fad.fa-hand-point-right:after { + content: "\f0a4\f0a4" +} + +.fa-duotone.fa-magnifying-glass-location:after, +.fa-duotone.fa-search-location:after, +.fad.fa-magnifying-glass-location:after, +.fad.fa-search-location:after { + content: "\f689\f689" +} + +.fa-duotone.fa-message-bot:after, +.fad.fa-message-bot:after { + content: "\e3b8\e3b8" +} + +.fa-duotone.fa-forward-step:after, +.fa-duotone.fa-step-forward:after, +.fad.fa-forward-step:after, +.fad.fa-step-forward:after { + content: "\f051\f051" +} + +.fa-duotone.fa-face-smile-beam:after, +.fa-duotone.fa-smile-beam:after, +.fad.fa-face-smile-beam:after, +.fad.fa-smile-beam:after { + content: "\f5b8\f5b8" +} + +.fa-duotone.fa-light-ceiling:after, +.fad.fa-light-ceiling:after { + content: "\e016\e016" +} + +.fa-duotone.fa-comment-alt-exclamation:after, +.fa-duotone.fa-message-exclamation:after, +.fad.fa-comment-alt-exclamation:after, +.fad.fa-message-exclamation:after { + content: "\f4a5\f4a5" +} + +.fa-duotone.fa-bowl-scoop:after, +.fa-duotone.fa-bowl-shaved-ice:after, +.fad.fa-bowl-scoop:after, +.fad.fa-bowl-shaved-ice:after { + content: "\e3de\e3de" +} + +.fa-duotone.fa-square-x:after, +.fad.fa-square-x:after { + content: "\e286\e286" +} + +.fa-duotone.fa-building-memo:after, +.fad.fa-building-memo:after { + content: "\e61e\e61e" +} + +.fa-duotone.fa-utility-pole-double:after, +.fad.fa-utility-pole-double:after { + content: "\e2c4\e2c4" +} + +.fa-duotone.fa-flag-checkered:after, +.fad.fa-flag-checkered:after { + content: "\f11e\f11e" +} + +.fa-duotone.fa-chevron-double-up:after, +.fa-duotone.fa-chevrons-up:after, +.fad.fa-chevron-double-up:after, +.fad.fa-chevrons-up:after { + content: "\f325\f325" +} + +.fa-duotone.fa-football-ball:after, +.fa-duotone.fa-football:after, +.fad.fa-football-ball:after, +.fad.fa-football:after { + content: "\f44e\f44e" +} + +.fa-duotone.fa-user-vneck:after, +.fad.fa-user-vneck:after { + content: "\e461\e461" +} + +.fa-duotone.fa-school-circle-exclamation:after, +.fad.fa-school-circle-exclamation:after { + content: "\e56c\e56c" +} + +.fa-duotone.fa-crop:after, +.fad.fa-crop:after { + content: "\f125\f125" +} + +.fa-duotone.fa-angle-double-down:after, +.fa-duotone.fa-angles-down:after, +.fad.fa-angle-double-down:after, +.fad.fa-angles-down:after { + content: "\f103\f103" +} + +.fa-duotone.fa-users-rectangle:after, +.fad.fa-users-rectangle:after { + content: "\e594\e594" +} + +.fa-duotone.fa-people-roof:after, +.fad.fa-people-roof:after { + content: "\e537\e537" +} + +.fa-duotone.fa-arrow-square-right:after, +.fa-duotone.fa-square-arrow-right:after, +.fad.fa-arrow-square-right:after, +.fad.fa-square-arrow-right:after { + content: "\f33b\f33b" +} + +.fa-duotone.fa-location-plus:after, +.fa-duotone.fa-map-marker-plus:after, +.fad.fa-location-plus:after, +.fad.fa-map-marker-plus:after { + content: "\f60a\f60a" +} + +.fa-duotone.fa-lightbulb-exclamation-on:after, +.fad.fa-lightbulb-exclamation-on:after { + content: "\e1ca\e1ca" +} + +.fa-duotone.fa-people-line:after, +.fad.fa-people-line:after { + content: "\e534\e534" +} + +.fa-duotone.fa-beer-mug-empty:after, +.fa-duotone.fa-beer:after, +.fad.fa-beer-mug-empty:after, +.fad.fa-beer:after { + content: "\f0fc\f0fc" +} + +.fa-duotone.fa-crate-empty:after, +.fad.fa-crate-empty:after { + content: "\e151\e151" +} + +.fa-duotone.fa-diagram-predecessor:after, +.fad.fa-diagram-predecessor:after { + content: "\e477\e477" +} + +.fa-duotone.fa-transporter:after, +.fad.fa-transporter:after { + content: "\e042\e042" +} + +.fa-duotone.fa-calendar-circle-user:after, +.fad.fa-calendar-circle-user:after { + content: "\e471\e471" +} + +.fa-duotone.fa-arrow-up-long:after, +.fa-duotone.fa-long-arrow-up:after, +.fad.fa-arrow-up-long:after, +.fad.fa-long-arrow-up:after { + content: "\f176\f176" +} + +.fa-duotone.fa-person-carry-box:after, +.fa-duotone.fa-person-carry:after, +.fad.fa-person-carry-box:after, +.fad.fa-person-carry:after { + content: "\f4cf\f4cf" +} + +.fa-duotone.fa-burn:after, +.fa-duotone.fa-fire-flame-simple:after, +.fad.fa-burn:after, +.fad.fa-fire-flame-simple:after { + content: "\f46a\f46a" +} + +.fa-duotone.fa-male:after, +.fa-duotone.fa-person:after, +.fad.fa-male:after, +.fad.fa-person:after { + content: "\f183\f183" +} + +.fa-duotone.fa-laptop:after, +.fad.fa-laptop:after { + content: "\f109\f109" +} + +.fa-duotone.fa-file-csv:after, +.fad.fa-file-csv:after { + content: "\f6dd\f6dd" +} + +.fa-duotone.fa-menorah:after, +.fad.fa-menorah:after { + content: "\f676\f676" +} + +.fa-duotone.fa-union:after, +.fad.fa-union:after { + content: "\f6a2\f6a2" +} + +.fa-duotone.fa-chevron-double-left:after, +.fa-duotone.fa-chevrons-left:after, +.fad.fa-chevron-double-left:after, +.fad.fa-chevrons-left:after { + content: "\f323\f323" +} + +.fa-duotone.fa-circle-heart:after, +.fa-duotone.fa-heart-circle:after, +.fad.fa-circle-heart:after, +.fad.fa-heart-circle:after { + content: "\f4c7\f4c7" +} + +.fa-duotone.fa-truck-plane:after, +.fad.fa-truck-plane:after { + content: "\e58f\e58f" +} + +.fa-duotone.fa-record-vinyl:after, +.fad.fa-record-vinyl:after { + content: "\f8d9\f8d9" +} + +.fa-duotone.fa-bring-forward:after, +.fad.fa-bring-forward:after { + content: "\f856\f856" +} + +.fa-duotone.fa-square-p:after, +.fad.fa-square-p:after { + content: "\e279\e279" +} + +.fa-duotone.fa-face-grin-stars:after, +.fa-duotone.fa-grin-stars:after, +.fad.fa-face-grin-stars:after, +.fad.fa-grin-stars:after { + content: "\f587\f587" +} + +.fa-duotone.fa-sigma:after, +.fad.fa-sigma:after { + content: "\f68b\f68b" +} + +.fa-duotone.fa-camera-movie:after, +.fad.fa-camera-movie:after { + content: "\f8a9\f8a9" +} + +.fa-duotone.fa-bong:after, +.fad.fa-bong:after { + content: "\f55c\f55c" +} + +.fa-duotone.fa-clarinet:after, +.fad.fa-clarinet:after { + content: "\f8ad\f8ad" +} + +.fa-duotone.fa-truck-flatbed:after, +.fad.fa-truck-flatbed:after { + content: "\e2b6\e2b6" +} + +.fa-duotone.fa-pastafarianism:after, +.fa-duotone.fa-spaghetti-monster-flying:after, +.fad.fa-pastafarianism:after, +.fad.fa-spaghetti-monster-flying:after { + content: "\f67b\f67b" +} + +.fa-duotone.fa-arrow-down-up-across-line:after, +.fad.fa-arrow-down-up-across-line:after { + content: "\e4af\e4af" +} + +.fa-duotone.fa-arrows-rotate-reverse:after, +.fad.fa-arrows-rotate-reverse:after { + content: "\e630\e630" +} + +.fa-duotone.fa-leaf-heart:after, +.fad.fa-leaf-heart:after { + content: "\f4cb\f4cb" +} + +.fa-duotone.fa-house-building:after, +.fad.fa-house-building:after { + content: "\e1b1\e1b1" +} + +.fa-duotone.fa-cheese-swiss:after, +.fad.fa-cheese-swiss:after { + content: "\f7f0\f7f0" +} + +.fa-duotone.fa-spoon:after, +.fa-duotone.fa-utensil-spoon:after, +.fad.fa-spoon:after, +.fad.fa-utensil-spoon:after { + content: "\f2e5\f2e5" +} + +.fa-duotone.fa-jar-wheat:after, +.fad.fa-jar-wheat:after { + content: "\e517\e517" +} + +.fa-duotone.fa-envelopes-bulk:after, +.fa-duotone.fa-mail-bulk:after, +.fad.fa-envelopes-bulk:after, +.fad.fa-mail-bulk:after { + content: "\f674\f674" +} + +.fa-duotone.fa-file-circle-exclamation:after, +.fad.fa-file-circle-exclamation:after { + content: "\e4eb\e4eb" +} + +.fa-duotone.fa-bow-arrow:after, +.fad.fa-bow-arrow:after { + content: "\f6b9\f6b9" +} + +.fa-duotone.fa-cart-xmark:after, +.fad.fa-cart-xmark:after { + content: "\e0dd\e0dd" +} + +.fa-duotone.fa-hexagon-xmark:after, +.fa-duotone.fa-times-hexagon:after, +.fa-duotone.fa-xmark-hexagon:after, +.fad.fa-hexagon-xmark:after, +.fad.fa-times-hexagon:after, +.fad.fa-xmark-hexagon:after { + content: "\f2ee\f2ee" +} + +.fa-duotone.fa-circle-h:after, +.fa-duotone.fa-hospital-symbol:after, +.fad.fa-circle-h:after, +.fad.fa-hospital-symbol:after { + content: "\f47e\f47e" +} + +.fa-duotone.fa-merge:after, +.fad.fa-merge:after { + content: "\e526\e526" +} + +.fa-duotone.fa-pager:after, +.fad.fa-pager:after { + content: "\f815\f815" +} + +.fa-duotone.fa-cart-minus:after, +.fad.fa-cart-minus:after { + content: "\e0db\e0db" +} + +.fa-duotone.fa-address-book:after, +.fa-duotone.fa-contact-book:after, +.fad.fa-address-book:after, +.fad.fa-contact-book:after { + content: "\f2b9\f2b9" +} + +.fa-duotone.fa-pan-frying:after, +.fad.fa-pan-frying:after { + content: "\e42c\e42c" +} + +.fa-duotone.fa-grid-3:after, +.fa-duotone.fa-grid:after, +.fad.fa-grid-3:after, +.fad.fa-grid:after { + content: "\e195\e195" +} + +.fa-duotone.fa-football-helmet:after, +.fad.fa-football-helmet:after { + content: "\f44f\f44f" +} + +.fa-duotone.fa-hand-love:after, +.fad.fa-hand-love:after { + content: "\e1a5\e1a5" +} + +.fa-duotone.fa-trees:after, +.fad.fa-trees:after { + content: "\f724\f724" +} + +.fa-duotone.fa-strikethrough:after, +.fad.fa-strikethrough:after { + content: "\f0cc\f0cc" +} + +.fa-duotone.fa-page:after, +.fad.fa-page:after { + content: "\e428\e428" +} + +.fa-duotone.fa-k:after, +.fad.fa-k:after { + content: "\4b\4b" +} + +.fa-duotone.fa-diagram-previous:after, +.fad.fa-diagram-previous:after { + content: "\e478\e478" +} + +.fa-duotone.fa-gauge-min:after, +.fa-duotone.fa-tachometer-alt-slowest:after, +.fad.fa-gauge-min:after, +.fad.fa-tachometer-alt-slowest:after { + content: "\f628\f628" +} + +.fa-duotone.fa-folder-grid:after, +.fad.fa-folder-grid:after { + content: "\e188\e188" +} + +.fa-duotone.fa-eggplant:after, +.fad.fa-eggplant:after { + content: "\e16c\e16c" +} + +.fa-duotone.fa-excavator:after, +.fad.fa-excavator:after { + content: "\e656\e656" +} + +.fa-duotone.fa-ram:after, +.fad.fa-ram:after { + content: "\f70a\f70a" +} + +.fa-duotone.fa-landmark-flag:after, +.fad.fa-landmark-flag:after { + content: "\e51c\e51c" +} + +.fa-duotone.fa-lips:after, +.fad.fa-lips:after { + content: "\f600\f600" +} + +.fa-duotone.fa-pencil-alt:after, +.fa-duotone.fa-pencil:after, +.fad.fa-pencil-alt:after, +.fad.fa-pencil:after { + content: "\f303\f303" +} + +.fa-duotone.fa-backward:after, +.fad.fa-backward:after { + content: "\f04a\f04a" +} + +.fa-duotone.fa-caret-right:after, +.fad.fa-caret-right:after { + content: "\f0da\f0da" +} + +.fa-duotone.fa-comments:after, +.fad.fa-comments:after { + content: "\f086\f086" +} + +.fa-duotone.fa-file-clipboard:after, +.fa-duotone.fa-paste:after, +.fad.fa-file-clipboard:after, +.fad.fa-paste:after { + content: "\f0ea\f0ea" +} + +.fa-duotone.fa-desktop-arrow-down:after, +.fad.fa-desktop-arrow-down:after { + content: "\e155\e155" +} + +.fa-duotone.fa-code-pull-request:after, +.fad.fa-code-pull-request:after { + content: "\e13c\e13c" +} + +.fa-duotone.fa-pumpkin:after, +.fad.fa-pumpkin:after { + content: "\f707\f707" +} + +.fa-duotone.fa-clipboard-list:after, +.fad.fa-clipboard-list:after { + content: "\f46d\f46d" +} + +.fa-duotone.fa-pen-field:after, +.fad.fa-pen-field:after { + content: "\e211\e211" +} + +.fa-duotone.fa-blueberries:after, +.fad.fa-blueberries:after { + content: "\e2e8\e2e8" +} + +.fa-duotone.fa-truck-loading:after, +.fa-duotone.fa-truck-ramp-box:after, +.fad.fa-truck-loading:after, +.fad.fa-truck-ramp-box:after { + content: "\f4de\f4de" +} + +.fa-duotone.fa-note:after, +.fad.fa-note:after { + content: "\e1ff\e1ff" +} + +.fa-duotone.fa-arrow-down-to-square:after, +.fad.fa-arrow-down-to-square:after { + content: "\e096\e096" +} + +.fa-duotone.fa-user-check:after, +.fad.fa-user-check:after { + content: "\f4fc\f4fc" +} + +.fa-duotone.fa-cloud-xmark:after, +.fad.fa-cloud-xmark:after { + content: "\e35f\e35f" +} + +.fa-duotone.fa-vial-virus:after, +.fad.fa-vial-virus:after { + content: "\e597\e597" +} + +.fa-duotone.fa-book-alt:after, +.fa-duotone.fa-book-blank:after, +.fad.fa-book-alt:after, +.fad.fa-book-blank:after { + content: "\f5d9\f5d9" +} + +.fa-duotone.fa-golf-flag-hole:after, +.fad.fa-golf-flag-hole:after { + content: "\e3ac\e3ac" +} + +.fa-duotone.fa-comment-alt-arrow-down:after, +.fa-duotone.fa-message-arrow-down:after, +.fad.fa-comment-alt-arrow-down:after, +.fad.fa-message-arrow-down:after { + content: "\e1db\e1db" +} + +.fa-duotone.fa-face-unamused:after, +.fad.fa-face-unamused:after { + content: "\e39f\e39f" +} + +.fa-duotone.fa-sheet-plastic:after, +.fad.fa-sheet-plastic:after { + content: "\e571\e571" +} + +.fa-duotone.fa-circle-9:after, +.fad.fa-circle-9:after { + content: "\e0f6\e0f6" +} + +.fa-duotone.fa-blog:after, +.fad.fa-blog:after { + content: "\f781\f781" +} + +.fa-duotone.fa-user-ninja:after, +.fad.fa-user-ninja:after { + content: "\f504\f504" +} + +.fa-duotone.fa-pencil-slash:after, +.fad.fa-pencil-slash:after { + content: "\e215\e215" +} + +.fa-duotone.fa-bowling-pins:after, +.fad.fa-bowling-pins:after { + content: "\f437\f437" +} + +.fa-duotone.fa-person-arrow-up-from-line:after, +.fad.fa-person-arrow-up-from-line:after { + content: "\e539\e539" +} + +.fa-duotone.fa-down-right:after, +.fad.fa-down-right:after { + content: "\e16b\e16b" +} + +.fa-duotone.fa-scroll-torah:after, +.fa-duotone.fa-torah:after, +.fad.fa-scroll-torah:after, +.fad.fa-torah:after { + content: "\f6a0\f6a0" +} + +.fa-duotone.fa-webhook:after, +.fad.fa-webhook:after { + content: "\e5d5\e5d5" +} + +.fa-duotone.fa-blinds-open:after, +.fad.fa-blinds-open:after { + content: "\f8fc\f8fc" +} + +.fa-duotone.fa-fence:after, +.fad.fa-fence:after { + content: "\e303\e303" +} + +.fa-duotone.fa-arrow-alt-up:after, +.fa-duotone.fa-up:after, +.fad.fa-arrow-alt-up:after, +.fad.fa-up:after { + content: "\f357\f357" +} + +.fa-duotone.fa-broom-ball:after, +.fa-duotone.fa-quidditch-broom-ball:after, +.fa-duotone.fa-quidditch:after, +.fad.fa-broom-ball:after, +.fad.fa-quidditch-broom-ball:after, +.fad.fa-quidditch:after { + content: "\f458\f458" +} + +.fa-duotone.fa-drumstick:after, +.fad.fa-drumstick:after { + content: "\f6d6\f6d6" +} + +.fa-duotone.fa-square-v:after, +.fad.fa-square-v:after { + content: "\e284\e284" +} + +.fa-duotone.fa-face-awesome:after, +.fa-duotone.fa-gave-dandy:after, +.fad.fa-face-awesome:after, +.fad.fa-gave-dandy:after { + content: "\e409\e409" +} + +.fa-duotone.fa-dial-off:after, +.fad.fa-dial-off:after { + content: "\e162\e162" +} + +.fa-duotone.fa-toggle-off:after, +.fad.fa-toggle-off:after { + content: "\f204\f204" +} + +.fa-duotone.fa-face-smile-horns:after, +.fad.fa-face-smile-horns:after { + content: "\e391\e391" +} + +.fa-duotone.fa-archive:after, +.fa-duotone.fa-box-archive:after, +.fad.fa-archive:after, +.fad.fa-box-archive:after { + content: "\f187\f187" +} + +.fa-duotone.fa-grapes:after, +.fad.fa-grapes:after { + content: "\e306\e306" +} + +.fa-duotone.fa-person-drowning:after, +.fad.fa-person-drowning:after { + content: "\e545\e545" +} + +.fa-duotone.fa-dial-max:after, +.fad.fa-dial-max:after { + content: "\e15e\e15e" +} + +.fa-duotone.fa-circle-m:after, +.fad.fa-circle-m:after { + content: "\e115\e115" +} + +.fa-duotone.fa-calendar-image:after, +.fad.fa-calendar-image:after { + content: "\e0d4\e0d4" +} + +.fa-duotone.fa-caret-circle-down:after, +.fa-duotone.fa-circle-caret-down:after, +.fad.fa-caret-circle-down:after, +.fad.fa-circle-caret-down:after { + content: "\f32d\f32d" +} + +.fa-duotone.fa-arrow-down-9-1:after, +.fa-duotone.fa-sort-numeric-desc:after, +.fa-duotone.fa-sort-numeric-down-alt:after, +.fad.fa-arrow-down-9-1:after, +.fad.fa-sort-numeric-desc:after, +.fad.fa-sort-numeric-down-alt:after { + content: "\f886\f886" +} + +.fa-duotone.fa-face-grin-tongue-squint:after, +.fa-duotone.fa-grin-tongue-squint:after, +.fad.fa-face-grin-tongue-squint:after, +.fad.fa-grin-tongue-squint:after { + content: "\f58a\f58a" +} + +.fa-duotone.fa-shish-kebab:after, +.fad.fa-shish-kebab:after { + content: "\f821\f821" +} + +.fa-duotone.fa-spray-can:after, +.fad.fa-spray-can:after { + content: "\f5bd\f5bd" +} + +.fa-duotone.fa-alarm-snooze:after, +.fad.fa-alarm-snooze:after { + content: "\f845\f845" +} + +.fa-duotone.fa-scarecrow:after, +.fad.fa-scarecrow:after { + content: "\f70d\f70d" +} + +.fa-duotone.fa-truck-monster:after, +.fad.fa-truck-monster:after { + content: "\f63b\f63b" +} + +.fa-duotone.fa-gift-card:after, +.fad.fa-gift-card:after { + content: "\f663\f663" +} + +.fa-duotone.fa-w:after, +.fad.fa-w:after { + content: "\57\57" +} + +.fa-duotone.fa-code-pull-request-draft:after, +.fad.fa-code-pull-request-draft:after { + content: "\e3fa\e3fa" +} + +.fa-duotone.fa-square-b:after, +.fad.fa-square-b:after { + content: "\e264\e264" +} + +.fa-duotone.fa-elephant:after, +.fad.fa-elephant:after { + content: "\f6da\f6da" +} + +.fa-duotone.fa-earth-africa:after, +.fa-duotone.fa-globe-africa:after, +.fad.fa-earth-africa:after, +.fad.fa-globe-africa:after { + content: "\f57c\f57c" +} + +.fa-duotone.fa-rainbow:after, +.fad.fa-rainbow:after { + content: "\f75b\f75b" +} + +.fa-duotone.fa-circle-notch:after, +.fad.fa-circle-notch:after { + content: "\f1ce\f1ce" +} + +.fa-duotone.fa-tablet-alt:after, +.fa-duotone.fa-tablet-screen-button:after, +.fad.fa-tablet-alt:after, +.fad.fa-tablet-screen-button:after { + content: "\f3fa\f3fa" +} + +.fa-duotone.fa-paw:after, +.fad.fa-paw:after { + content: "\f1b0\f1b0" +} + +.fa-duotone.fa-message-question:after, +.fad.fa-message-question:after { + content: "\e1e3\e1e3" +} + +.fa-duotone.fa-cloud:after, +.fad.fa-cloud:after { + content: "\f0c2\f0c2" +} + +.fa-duotone.fa-trowel-bricks:after, +.fad.fa-trowel-bricks:after { + content: "\e58a\e58a" +} + +.fa-duotone.fa-square-3:after, +.fad.fa-square-3:after { + content: "\e258\e258" +} + +.fa-duotone.fa-face-flushed:after, +.fa-duotone.fa-flushed:after, +.fad.fa-face-flushed:after, +.fad.fa-flushed:after { + content: "\f579\f579" +} + +.fa-duotone.fa-hospital-user:after, +.fad.fa-hospital-user:after { + content: "\f80d\f80d" +} + +.fa-duotone.fa-microwave:after, +.fad.fa-microwave:after { + content: "\e01b\e01b" +} + +.fa-duotone.fa-chf-sign:after, +.fad.fa-chf-sign:after { + content: "\e602\e602" +} + +.fa-duotone.fa-tent-arrow-left-right:after, +.fad.fa-tent-arrow-left-right:after { + content: "\e57f\e57f" +} + +.fa-duotone.fa-cart-circle-arrow-up:after, +.fad.fa-cart-circle-arrow-up:after { + content: "\e3f0\e3f0" +} + +.fa-duotone.fa-trash-clock:after, +.fad.fa-trash-clock:after { + content: "\e2b0\e2b0" +} + +.fa-duotone.fa-gavel:after, +.fa-duotone.fa-legal:after, +.fad.fa-gavel:after, +.fad.fa-legal:after { + content: "\f0e3\f0e3" +} + +.fa-duotone.fa-sprinkler-ceiling:after, +.fad.fa-sprinkler-ceiling:after { + content: "\e44c\e44c" +} + +.fa-duotone.fa-browsers:after, +.fad.fa-browsers:after { + content: "\e0cb\e0cb" +} + +.fa-duotone.fa-trillium:after, +.fad.fa-trillium:after { + content: "\e588\e588" +} + +.fa-duotone.fa-music-slash:after, +.fad.fa-music-slash:after { + content: "\f8d1\f8d1" +} + +.fa-duotone.fa-truck-ramp:after, +.fad.fa-truck-ramp:after { + content: "\f4e0\f4e0" +} + +.fa-duotone.fa-binoculars:after, +.fad.fa-binoculars:after { + content: "\f1e5\f1e5" +} + +.fa-duotone.fa-microphone-slash:after, +.fad.fa-microphone-slash:after { + content: "\f131\f131" +} + +.fa-duotone.fa-box-tissue:after, +.fad.fa-box-tissue:after { + content: "\e05b\e05b" +} + +.fa-duotone.fa-circle-c:after, +.fad.fa-circle-c:after { + content: "\e101\e101" +} + +.fa-duotone.fa-star-christmas:after, +.fad.fa-star-christmas:after { + content: "\f7d4\f7d4" +} + +.fa-duotone.fa-chart-bullet:after, +.fad.fa-chart-bullet:after { + content: "\e0e1\e0e1" +} + +.fa-duotone.fa-motorcycle:after, +.fad.fa-motorcycle:after { + content: "\f21c\f21c" +} + +.fa-duotone.fa-tree-christmas:after, +.fad.fa-tree-christmas:after { + content: "\f7db\f7db" +} + +.fa-duotone.fa-tire-flat:after, +.fad.fa-tire-flat:after { + content: "\f632\f632" +} + +.fa-duotone.fa-sunglasses:after, +.fad.fa-sunglasses:after { + content: "\f892\f892" +} + +.fa-duotone.fa-badge:after, +.fad.fa-badge:after { + content: "\f335\f335" +} + +.fa-duotone.fa-comment-alt-edit:after, +.fa-duotone.fa-message-edit:after, +.fa-duotone.fa-message-pen:after, +.fad.fa-comment-alt-edit:after, +.fad.fa-message-edit:after, +.fad.fa-message-pen:after { + content: "\f4a4\f4a4" +} + +.fa-duotone.fa-bell-concierge:after, +.fa-duotone.fa-concierge-bell:after, +.fad.fa-bell-concierge:after, +.fad.fa-concierge-bell:after { + content: "\f562\f562" +} + +.fa-duotone.fa-pen-ruler:after, +.fa-duotone.fa-pencil-ruler:after, +.fad.fa-pen-ruler:after, +.fad.fa-pencil-ruler:after { + content: "\f5ae\f5ae" +} + +.fa-duotone.fa-file-mp3:after, +.fad.fa-file-mp3:after { + content: "\e648\e648" +} + +.fa-duotone.fa-arrow-progress:after, +.fad.fa-arrow-progress:after { + content: "\e5df\e5df" +} + +.fa-duotone.fa-chess-rook-alt:after, +.fa-duotone.fa-chess-rook-piece:after, +.fad.fa-chess-rook-alt:after, +.fad.fa-chess-rook-piece:after { + content: "\f448\f448" +} + +.fa-duotone.fa-square-root:after, +.fad.fa-square-root:after { + content: "\f697\f697" +} + +.fa-duotone.fa-album-collection-circle-plus:after, +.fad.fa-album-collection-circle-plus:after { + content: "\e48e\e48e" +} + +.fa-duotone.fa-people-arrows-left-right:after, +.fa-duotone.fa-people-arrows:after, +.fad.fa-people-arrows-left-right:after, +.fad.fa-people-arrows:after { + content: "\e068\e068" +} + +.fa-duotone.fa-sign-post:after, +.fad.fa-sign-post:after { + content: "\e624\e624" +} + +.fa-duotone.fa-face-angry-horns:after, +.fad.fa-face-angry-horns:after { + content: "\e368\e368" +} + +.fa-duotone.fa-mars-and-venus-burst:after, +.fad.fa-mars-and-venus-burst:after { + content: "\e523\e523" +} + +.fa-duotone.fa-tombstone:after, +.fad.fa-tombstone:after { + content: "\f720\f720" +} + +.fa-duotone.fa-caret-square-right:after, +.fa-duotone.fa-square-caret-right:after, +.fad.fa-caret-square-right:after, +.fad.fa-square-caret-right:after { + content: "\f152\f152" +} + +.fa-duotone.fa-cut:after, +.fa-duotone.fa-scissors:after, +.fad.fa-cut:after, +.fad.fa-scissors:after { + content: "\f0c4\f0c4" +} + +.fa-duotone.fa-list-music:after, +.fad.fa-list-music:after { + content: "\f8c9\f8c9" +} + +.fa-duotone.fa-sun-plant-wilt:after, +.fad.fa-sun-plant-wilt:after { + content: "\e57a\e57a" +} + +.fa-duotone.fa-toilets-portable:after, +.fad.fa-toilets-portable:after { + content: "\e584\e584" +} + +.fa-duotone.fa-hockey-puck:after, +.fad.fa-hockey-puck:after { + content: "\f453\f453" +} + +.fa-duotone.fa-mustache:after, +.fad.fa-mustache:after { + content: "\e5bc\e5bc" +} + +.fa-duotone.fa-hyphen:after, +.fad.fa-hyphen:after { + content: "\2d\2d" +} + +.fa-duotone.fa-table:after, +.fad.fa-table:after { + content: "\f0ce\f0ce" +} + +.fa-duotone.fa-user-chef:after, +.fad.fa-user-chef:after { + content: "\e3d2\e3d2" +} + +.fa-duotone.fa-comment-alt-image:after, +.fa-duotone.fa-message-image:after, +.fad.fa-comment-alt-image:after, +.fad.fa-message-image:after { + content: "\e1e0\e1e0" +} + +.fa-duotone.fa-users-medical:after, +.fad.fa-users-medical:after { + content: "\f830\f830" +} + +.fa-duotone.fa-sensor-alert:after, +.fa-duotone.fa-sensor-triangle-exclamation:after, +.fad.fa-sensor-alert:after, +.fad.fa-sensor-triangle-exclamation:after { + content: "\e029\e029" +} + +.fa-duotone.fa-magnifying-glass-arrow-right:after, +.fad.fa-magnifying-glass-arrow-right:after { + content: "\e521\e521" +} + +.fa-duotone.fa-digital-tachograph:after, +.fa-duotone.fa-tachograph-digital:after, +.fad.fa-digital-tachograph:after, +.fad.fa-tachograph-digital:after { + content: "\f566\f566" +} + +.fa-duotone.fa-face-mask:after, +.fad.fa-face-mask:after { + content: "\e37f\e37f" +} + +.fa-duotone.fa-pickleball:after, +.fad.fa-pickleball:after { + content: "\e435\e435" +} + +.fa-duotone.fa-star-sharp-half:after, +.fad.fa-star-sharp-half:after { + content: "\e28c\e28c" +} + +.fa-duotone.fa-users-slash:after, +.fad.fa-users-slash:after { + content: "\e073\e073" +} + +.fa-duotone.fa-clover:after, +.fad.fa-clover:after { + content: "\e139\e139" +} + +.fa-duotone.fa-meat:after, +.fad.fa-meat:after { + content: "\f814\f814" +} + +.fa-duotone.fa-mail-reply:after, +.fa-duotone.fa-reply:after, +.fad.fa-mail-reply:after, +.fad.fa-reply:after { + content: "\f3e5\f3e5" +} + +.fa-duotone.fa-star-and-crescent:after, +.fad.fa-star-and-crescent:after { + content: "\f699\f699" +} + +.fa-duotone.fa-empty-set:after, +.fad.fa-empty-set:after { + content: "\f656\f656" +} + +.fa-duotone.fa-house-fire:after, +.fad.fa-house-fire:after { + content: "\e50c\e50c" +} + +.fa-duotone.fa-minus-square:after, +.fa-duotone.fa-square-minus:after, +.fad.fa-minus-square:after, +.fad.fa-square-minus:after { + content: "\f146\f146" +} + +.fa-duotone.fa-helicopter:after, +.fad.fa-helicopter:after { + content: "\f533\f533" +} + +.fa-duotone.fa-bird:after, +.fad.fa-bird:after { + content: "\e469\e469" +} + +.fa-duotone.fa-compass:after, +.fad.fa-compass:after { + content: "\f14e\f14e" +} + +.fa-duotone.fa-caret-square-down:after, +.fa-duotone.fa-square-caret-down:after, +.fad.fa-caret-square-down:after, +.fad.fa-square-caret-down:after { + content: "\f150\f150" +} + +.fa-duotone.fa-heart-half-alt:after, +.fa-duotone.fa-heart-half-stroke:after, +.fad.fa-heart-half-alt:after, +.fad.fa-heart-half-stroke:after { + content: "\e1ac\e1ac" +} + +.fa-duotone.fa-file-circle-question:after, +.fad.fa-file-circle-question:after { + content: "\e4ef\e4ef" +} + +.fa-duotone.fa-truck-utensils:after, +.fad.fa-truck-utensils:after { + content: "\e628\e628" +} + +.fa-duotone.fa-laptop-code:after, +.fad.fa-laptop-code:after { + content: "\f5fc\f5fc" +} + +.fa-duotone.fa-joystick:after, +.fad.fa-joystick:after { + content: "\f8c5\f8c5" +} + +.fa-duotone.fa-grill-fire:after, +.fad.fa-grill-fire:after { + content: "\e5a4\e5a4" +} + +.fa-duotone.fa-rectangle-vertical-history:after, +.fad.fa-rectangle-vertical-history:after { + content: "\e237\e237" +} + +.fa-duotone.fa-swatchbook:after, +.fad.fa-swatchbook:after { + content: "\f5c3\f5c3" +} + +.fa-duotone.fa-prescription-bottle:after, +.fad.fa-prescription-bottle:after { + content: "\f485\f485" +} + +.fa-duotone.fa-bars:after, +.fa-duotone.fa-navicon:after, +.fad.fa-bars:after, +.fad.fa-navicon:after { + content: "\f0c9\f0c9" +} + +.fa-duotone.fa-keyboard-left:after, +.fad.fa-keyboard-left:after { + content: "\e1c3\e1c3" +} + +.fa-duotone.fa-people-group:after, +.fad.fa-people-group:after { + content: "\e533\e533" +} + +.fa-duotone.fa-hourglass-3:after, +.fa-duotone.fa-hourglass-end:after, +.fad.fa-hourglass-3:after, +.fad.fa-hourglass-end:after { + content: "\f253\f253" +} + +.fa-duotone.fa-heart-broken:after, +.fa-duotone.fa-heart-crack:after, +.fad.fa-heart-broken:after, +.fad.fa-heart-crack:after { + content: "\f7a9\f7a9" +} + +.fa-duotone.fa-face-beam-hand-over-mouth:after, +.fad.fa-face-beam-hand-over-mouth:after { + content: "\e47c\e47c" +} + +.fa-duotone.fa-droplet-percent:after, +.fa-duotone.fa-humidity:after, +.fad.fa-droplet-percent:after, +.fad.fa-humidity:after { + content: "\f750\f750" +} + +.fa-duotone.fa-external-link-square-alt:after, +.fa-duotone.fa-square-up-right:after, +.fad.fa-external-link-square-alt:after, +.fad.fa-square-up-right:after { + content: "\f360\f360" +} + +.fa-duotone.fa-face-kiss-beam:after, +.fa-duotone.fa-kiss-beam:after, +.fad.fa-face-kiss-beam:after, +.fad.fa-kiss-beam:after { + content: "\f597\f597" +} + +.fa-duotone.fa-corn:after, +.fad.fa-corn:after { + content: "\f6c7\f6c7" +} + +.fa-duotone.fa-roller-coaster:after, +.fad.fa-roller-coaster:after { + content: "\e324\e324" +} + +.fa-duotone.fa-photo-film-music:after, +.fad.fa-photo-film-music:after { + content: "\e228\e228" +} + +.fa-duotone.fa-radar:after, +.fad.fa-radar:after { + content: "\e024\e024" +} + +.fa-duotone.fa-sickle:after, +.fad.fa-sickle:after { + content: "\f822\f822" +} + +.fa-duotone.fa-film:after, +.fad.fa-film:after { + content: "\f008\f008" +} + +.fa-duotone.fa-coconut:after, +.fad.fa-coconut:after { + content: "\e2f6\e2f6" +} + +.fa-duotone.fa-ruler-horizontal:after, +.fad.fa-ruler-horizontal:after { + content: "\f547\f547" +} + +.fa-duotone.fa-shield-cross:after, +.fad.fa-shield-cross:after { + content: "\f712\f712" +} + +.fa-duotone.fa-cassette-tape:after, +.fad.fa-cassette-tape:after { + content: "\f8ab\f8ab" +} + +.fa-duotone.fa-square-terminal:after, +.fad.fa-square-terminal:after { + content: "\e32a\e32a" +} + +.fa-duotone.fa-people-robbery:after, +.fad.fa-people-robbery:after { + content: "\e536\e536" +} + +.fa-duotone.fa-lightbulb:after, +.fad.fa-lightbulb:after { + content: "\f0eb\f0eb" +} + +.fa-duotone.fa-caret-left:after, +.fad.fa-caret-left:after { + content: "\f0d9\f0d9" +} + +.fa-duotone.fa-comment-middle:after, +.fad.fa-comment-middle:after { + content: "\e149\e149" +} + +.fa-duotone.fa-trash-can-list:after, +.fad.fa-trash-can-list:after { + content: "\e2ab\e2ab" +} + +.fa-duotone.fa-block:after, +.fad.fa-block:after { + content: "\e46a\e46a" +} + +.fa-duotone.fa-circle-exclamation:after, +.fa-duotone.fa-exclamation-circle:after, +.fad.fa-circle-exclamation:after, +.fad.fa-exclamation-circle:after { + content: "\f06a\f06a" +} + +.fa-duotone.fa-school-circle-xmark:after, +.fad.fa-school-circle-xmark:after { + content: "\e56d\e56d" +} + +.fa-duotone.fa-arrow-right-from-bracket:after, +.fa-duotone.fa-sign-out:after, +.fad.fa-arrow-right-from-bracket:after, +.fad.fa-sign-out:after { + content: "\f08b\f08b" +} + +.fa-duotone.fa-face-frown-slight:after, +.fad.fa-face-frown-slight:after { + content: "\e376\e376" +} + +.fa-duotone.fa-chevron-circle-down:after, +.fa-duotone.fa-circle-chevron-down:after, +.fad.fa-chevron-circle-down:after, +.fad.fa-circle-chevron-down:after { + content: "\f13a\f13a" +} + +.fa-duotone.fa-sidebar-flip:after, +.fad.fa-sidebar-flip:after { + content: "\e24f\e24f" +} + +.fa-duotone.fa-unlock-alt:after, +.fa-duotone.fa-unlock-keyhole:after, +.fad.fa-unlock-alt:after, +.fad.fa-unlock-keyhole:after { + content: "\f13e\f13e" +} + +.fa-duotone.fa-temperature-list:after, +.fad.fa-temperature-list:after { + content: "\e299\e299" +} + +.fa-duotone.fa-cloud-showers-heavy:after, +.fad.fa-cloud-showers-heavy:after { + content: "\f740\f740" +} + +.fa-duotone.fa-headphones-alt:after, +.fa-duotone.fa-headphones-simple:after, +.fad.fa-headphones-alt:after, +.fad.fa-headphones-simple:after { + content: "\f58f\f58f" +} + +.fa-duotone.fa-sitemap:after, +.fad.fa-sitemap:after { + content: "\f0e8\f0e8" +} + +.fa-duotone.fa-pipe-section:after, +.fad.fa-pipe-section:after { + content: "\e438\e438" +} + +.fa-duotone.fa-space-station-moon-alt:after, +.fa-duotone.fa-space-station-moon-construction:after, +.fad.fa-space-station-moon-alt:after, +.fad.fa-space-station-moon-construction:after { + content: "\e034\e034" +} + +.fa-duotone.fa-circle-dollar-to-slot:after, +.fa-duotone.fa-donate:after, +.fad.fa-circle-dollar-to-slot:after, +.fad.fa-donate:after { + content: "\f4b9\f4b9" +} + +.fa-duotone.fa-memory:after, +.fad.fa-memory:after { + content: "\f538\f538" +} + +.fa-duotone.fa-face-sleeping:after, +.fad.fa-face-sleeping:after { + content: "\e38d\e38d" +} + +.fa-duotone.fa-road-spikes:after, +.fad.fa-road-spikes:after { + content: "\e568\e568" +} + +.fa-duotone.fa-fire-burner:after, +.fad.fa-fire-burner:after { + content: "\e4f1\e4f1" +} + +.fa-duotone.fa-squirrel:after, +.fad.fa-squirrel:after { + content: "\f71a\f71a" +} + +.fa-duotone.fa-arrow-to-top:after, +.fa-duotone.fa-arrow-up-to-line:after, +.fad.fa-arrow-to-top:after, +.fad.fa-arrow-up-to-line:after { + content: "\f341\f341" +} + +.fa-duotone.fa-flag:after, +.fad.fa-flag:after { + content: "\f024\f024" +} + +.fa-duotone.fa-face-cowboy-hat:after, +.fad.fa-face-cowboy-hat:after { + content: "\e36e\e36e" +} + +.fa-duotone.fa-hanukiah:after, +.fad.fa-hanukiah:after { + content: "\f6e6\f6e6" +} + +.fa-duotone.fa-chart-scatter-3d:after, +.fad.fa-chart-scatter-3d:after { + content: "\e0e8\e0e8" +} + +.fa-duotone.fa-display-chart-up:after, +.fad.fa-display-chart-up:after { + content: "\e5e3\e5e3" +} + +.fa-duotone.fa-square-code:after, +.fad.fa-square-code:after { + content: "\e267\e267" +} + +.fa-duotone.fa-feather:after, +.fad.fa-feather:after { + content: "\f52d\f52d" +} + +.fa-duotone.fa-volume-down:after, +.fa-duotone.fa-volume-low:after, +.fad.fa-volume-down:after, +.fad.fa-volume-low:after { + content: "\f027\f027" +} + +.fa-duotone.fa-times-to-slot:after, +.fa-duotone.fa-vote-nay:after, +.fa-duotone.fa-xmark-to-slot:after, +.fad.fa-times-to-slot:after, +.fad.fa-vote-nay:after, +.fad.fa-xmark-to-slot:after { + content: "\f771\f771" +} + +.fa-duotone.fa-box-alt:after, +.fa-duotone.fa-box-taped:after, +.fad.fa-box-alt:after, +.fad.fa-box-taped:after { + content: "\f49a\f49a" +} + +.fa-duotone.fa-comment-slash:after, +.fad.fa-comment-slash:after { + content: "\f4b3\f4b3" +} + +.fa-duotone.fa-swords:after, +.fad.fa-swords:after { + content: "\f71d\f71d" +} + +.fa-duotone.fa-cloud-sun-rain:after, +.fad.fa-cloud-sun-rain:after { + content: "\f743\f743" +} + +.fa-duotone.fa-album:after, +.fad.fa-album:after { + content: "\f89f\f89f" +} + +.fa-duotone.fa-circle-n:after, +.fad.fa-circle-n:after { + content: "\e118\e118" +} + +.fa-duotone.fa-compress:after, +.fad.fa-compress:after { + content: "\f066\f066" +} + +.fa-duotone.fa-wheat-alt:after, +.fa-duotone.fa-wheat-awn:after, +.fad.fa-wheat-alt:after, +.fad.fa-wheat-awn:after { + content: "\e2cd\e2cd" +} + +.fa-duotone.fa-ankh:after, +.fad.fa-ankh:after { + content: "\f644\f644" +} + +.fa-duotone.fa-hands-holding-child:after, +.fad.fa-hands-holding-child:after { + content: "\e4fa\e4fa" +} + +.fa-duotone.fa-asterisk:after, +.fad.fa-asterisk:after { + content: "\2a\2a" +} + +.fa-duotone.fa-key-skeleton-left-right:after, +.fad.fa-key-skeleton-left-right:after { + content: "\e3b4\e3b4" +} + +.fa-duotone.fa-comment-lines:after, +.fad.fa-comment-lines:after { + content: "\f4b0\f4b0" +} + +.fa-duotone.fa-luchador-mask:after, +.fa-duotone.fa-luchador:after, +.fa-duotone.fa-mask-luchador:after, +.fad.fa-luchador-mask:after, +.fad.fa-luchador:after, +.fad.fa-mask-luchador:after { + content: "\f455\f455" +} + +.fa-duotone.fa-check-square:after, +.fa-duotone.fa-square-check:after, +.fad.fa-check-square:after, +.fad.fa-square-check:after { + content: "\f14a\f14a" +} + +.fa-duotone.fa-shredder:after, +.fad.fa-shredder:after { + content: "\f68a\f68a" +} + +.fa-duotone.fa-book-open-alt:after, +.fa-duotone.fa-book-open-cover:after, +.fad.fa-book-open-alt:after, +.fad.fa-book-open-cover:after { + content: "\e0c0\e0c0" +} + +.fa-duotone.fa-sandwich:after, +.fad.fa-sandwich:after { + content: "\f81f\f81f" +} + +.fa-duotone.fa-peseta-sign:after, +.fad.fa-peseta-sign:after { + content: "\e221\e221" +} + +.fa-duotone.fa-parking-slash:after, +.fa-duotone.fa-square-parking-slash:after, +.fad.fa-parking-slash:after, +.fad.fa-square-parking-slash:after { + content: "\f617\f617" +} + +.fa-duotone.fa-train-tunnel:after, +.fad.fa-train-tunnel:after { + content: "\e454\e454" +} + +.fa-duotone.fa-header:after, +.fa-duotone.fa-heading:after, +.fad.fa-header:after, +.fad.fa-heading:after { + content: "\f1dc\f1dc" +} + +.fa-duotone.fa-ghost:after, +.fad.fa-ghost:after { + content: "\f6e2\f6e2" +} + +.fa-duotone.fa-face-anguished:after, +.fad.fa-face-anguished:after { + content: "\e369\e369" +} + +.fa-duotone.fa-hockey-sticks:after, +.fad.fa-hockey-sticks:after { + content: "\f454\f454" +} + +.fa-duotone.fa-abacus:after, +.fad.fa-abacus:after { + content: "\f640\f640" +} + +.fa-duotone.fa-film-alt:after, +.fa-duotone.fa-film-simple:after, +.fad.fa-film-alt:after, +.fad.fa-film-simple:after { + content: "\f3a0\f3a0" +} + +.fa-duotone.fa-list-squares:after, +.fa-duotone.fa-list:after, +.fad.fa-list-squares:after, +.fad.fa-list:after { + content: "\f03a\f03a" +} + +.fa-duotone.fa-tree-palm:after, +.fad.fa-tree-palm:after { + content: "\f82b\f82b" +} + +.fa-duotone.fa-phone-square-alt:after, +.fa-duotone.fa-square-phone-flip:after, +.fad.fa-phone-square-alt:after, +.fad.fa-square-phone-flip:after { + content: "\f87b\f87b" +} + +.fa-duotone.fa-cart-plus:after, +.fad.fa-cart-plus:after { + content: "\f217\f217" +} + +.fa-duotone.fa-gamepad:after, +.fad.fa-gamepad:after { + content: "\f11b\f11b" +} + +.fa-duotone.fa-border-center-v:after, +.fad.fa-border-center-v:after { + content: "\f89d\f89d" +} + +.fa-duotone.fa-circle-dot:after, +.fa-duotone.fa-dot-circle:after, +.fad.fa-circle-dot:after, +.fad.fa-dot-circle:after { + content: "\f192\f192" +} + +.fa-duotone.fa-clipboard-medical:after, +.fad.fa-clipboard-medical:after { + content: "\e133\e133" +} + +.fa-duotone.fa-dizzy:after, +.fa-duotone.fa-face-dizzy:after, +.fad.fa-dizzy:after, +.fad.fa-face-dizzy:after { + content: "\f567\f567" +} + +.fa-duotone.fa-egg:after, +.fad.fa-egg:after { + content: "\f7fb\f7fb" +} + +.fa-duotone.fa-arrow-alt-to-top:after, +.fa-duotone.fa-up-to-line:after, +.fad.fa-arrow-alt-to-top:after, +.fad.fa-up-to-line:after { + content: "\f34d\f34d" +} + +.fa-duotone.fa-house-medical-circle-xmark:after, +.fad.fa-house-medical-circle-xmark:after { + content: "\e513\e513" +} + +.fa-duotone.fa-watch-fitness:after, +.fad.fa-watch-fitness:after { + content: "\f63e\f63e" +} + +.fa-duotone.fa-clock-nine-thirty:after, +.fad.fa-clock-nine-thirty:after { + content: "\e34d\e34d" +} + +.fa-duotone.fa-campground:after, +.fad.fa-campground:after { + content: "\f6bb\f6bb" +} + +.fa-duotone.fa-folder-plus:after, +.fad.fa-folder-plus:after { + content: "\f65e\f65e" +} + +.fa-duotone.fa-jug:after, +.fad.fa-jug:after { + content: "\f8c6\f8c6" +} + +.fa-duotone.fa-futbol-ball:after, +.fa-duotone.fa-futbol:after, +.fa-duotone.fa-soccer-ball:after, +.fad.fa-futbol-ball:after, +.fad.fa-futbol:after, +.fad.fa-soccer-ball:after { + content: "\f1e3\f1e3" +} + +.fa-duotone.fa-snow-blowing:after, +.fad.fa-snow-blowing:after { + content: "\f761\f761" +} + +.fa-duotone.fa-paint-brush:after, +.fa-duotone.fa-paintbrush:after, +.fad.fa-paint-brush:after, +.fad.fa-paintbrush:after { + content: "\f1fc\f1fc" +} + +.fa-duotone.fa-lock:after, +.fad.fa-lock:after { + content: "\f023\f023" +} + +.fa-duotone.fa-arrow-down-from-line:after, +.fa-duotone.fa-arrow-from-top:after, +.fad.fa-arrow-down-from-line:after, +.fad.fa-arrow-from-top:after { + content: "\f345\f345" +} + +.fa-duotone.fa-gas-pump:after, +.fad.fa-gas-pump:after { + content: "\f52f\f52f" +} + +.fa-duotone.fa-signal-alt-slash:after, +.fa-duotone.fa-signal-bars-slash:after, +.fad.fa-signal-alt-slash:after, +.fad.fa-signal-bars-slash:after { + content: "\f694\f694" +} + +.fa-duotone.fa-monkey:after, +.fad.fa-monkey:after { + content: "\f6fb\f6fb" +} + +.fa-duotone.fa-pro:after, +.fa-duotone.fa-rectangle-pro:after, +.fad.fa-pro:after, +.fad.fa-rectangle-pro:after { + content: "\e235\e235" +} + +.fa-duotone.fa-house-night:after, +.fad.fa-house-night:after { + content: "\e010\e010" +} + +.fa-duotone.fa-hot-tub-person:after, +.fa-duotone.fa-hot-tub:after, +.fad.fa-hot-tub-person:after, +.fad.fa-hot-tub:after { + content: "\f593\f593" +} + +.fa-duotone.fa-globe-pointer:after, +.fad.fa-globe-pointer:after { + content: "\e60e\e60e" +} + +.fa-duotone.fa-blanket:after, +.fad.fa-blanket:after { + content: "\f498\f498" +} + +.fa-duotone.fa-map-location:after, +.fa-duotone.fa-map-marked:after, +.fad.fa-map-location:after, +.fad.fa-map-marked:after { + content: "\f59f\f59f" +} + +.fa-duotone.fa-house-flood-water:after, +.fad.fa-house-flood-water:after { + content: "\e50e\e50e" +} + +.fa-duotone.fa-comments-question-check:after, +.fad.fa-comments-question-check:after { + content: "\e14f\e14f" +} + +.fa-duotone.fa-tree:after, +.fad.fa-tree:after { + content: "\f1bb\f1bb" +} + +.fa-duotone.fa-arrows-cross:after, +.fad.fa-arrows-cross:after { + content: "\e0a2\e0a2" +} + +.fa-duotone.fa-backpack:after, +.fad.fa-backpack:after { + content: "\f5d4\f5d4" +} + +.fa-duotone.fa-square-small:after, +.fad.fa-square-small:after { + content: "\e27e\e27e" +} + +.fa-duotone.fa-folder-arrow-up:after, +.fa-duotone.fa-folder-upload:after, +.fad.fa-folder-arrow-up:after, +.fad.fa-folder-upload:after { + content: "\e054\e054" +} + +.fa-duotone.fa-bridge-lock:after, +.fad.fa-bridge-lock:after { + content: "\e4cc\e4cc" +} + +.fa-duotone.fa-crosshairs-simple:after, +.fad.fa-crosshairs-simple:after { + content: "\e59f\e59f" +} + +.fa-duotone.fa-sack-dollar:after, +.fad.fa-sack-dollar:after { + content: "\f81d\f81d" +} + +.fa-duotone.fa-edit:after, +.fa-duotone.fa-pen-to-square:after, +.fad.fa-edit:after, +.fad.fa-pen-to-square:after { + content: "\f044\f044" +} + +.fa-duotone.fa-sliders-h-square:after, +.fa-duotone.fa-square-sliders:after, +.fad.fa-sliders-h-square:after, +.fad.fa-square-sliders:after { + content: "\f3f0\f3f0" +} + +.fa-duotone.fa-car-side:after, +.fad.fa-car-side:after { + content: "\f5e4\f5e4" +} + +.fa-duotone.fa-comment-middle-top-alt:after, +.fa-duotone.fa-message-middle-top:after, +.fad.fa-comment-middle-top-alt:after, +.fad.fa-message-middle-top:after { + content: "\e1e2\e1e2" +} + +.fa-duotone.fa-lightbulb-on:after, +.fad.fa-lightbulb-on:after { + content: "\f672\f672" +} + +.fa-duotone.fa-knife:after, +.fa-duotone.fa-utensil-knife:after, +.fad.fa-knife:after, +.fad.fa-utensil-knife:after { + content: "\f2e4\f2e4" +} + +.fa-duotone.fa-share-alt:after, +.fa-duotone.fa-share-nodes:after, +.fad.fa-share-alt:after, +.fad.fa-share-nodes:after { + content: "\f1e0\f1e0" +} + +.fa-duotone.fa-display-chart-up-circle-dollar:after, +.fad.fa-display-chart-up-circle-dollar:after { + content: "\e5e6\e5e6" +} + +.fa-duotone.fa-wave-sine:after, +.fad.fa-wave-sine:after { + content: "\f899\f899" +} + +.fa-duotone.fa-heart-circle-minus:after, +.fad.fa-heart-circle-minus:after { + content: "\e4ff\e4ff" +} + +.fa-duotone.fa-circle-w:after, +.fad.fa-circle-w:after { + content: "\e12c\e12c" +} + +.fa-duotone.fa-calendar-circle:after, +.fa-duotone.fa-circle-calendar:after, +.fad.fa-calendar-circle:after, +.fad.fa-circle-calendar:after { + content: "\e102\e102" +} + +.fa-duotone.fa-hourglass-2:after, +.fa-duotone.fa-hourglass-half:after, +.fad.fa-hourglass-2:after, +.fad.fa-hourglass-half:after { + content: "\f252\f252" +} + +.fa-duotone.fa-microscope:after, +.fad.fa-microscope:after { + content: "\f610\f610" +} + +.fa-duotone.fa-sunset:after, +.fad.fa-sunset:after { + content: "\f767\f767" +} + +.fa-duotone.fa-sink:after, +.fad.fa-sink:after { + content: "\e06d\e06d" +} + +.fa-duotone.fa-calendar-exclamation:after, +.fad.fa-calendar-exclamation:after { + content: "\f334\f334" +} + +.fa-duotone.fa-truck-container-empty:after, +.fad.fa-truck-container-empty:after { + content: "\e2b5\e2b5" +} + +.fa-duotone.fa-hand-heart:after, +.fad.fa-hand-heart:after { + content: "\f4bc\f4bc" +} + +.fa-duotone.fa-bag-shopping:after, +.fa-duotone.fa-shopping-bag:after, +.fad.fa-bag-shopping:after, +.fad.fa-shopping-bag:after { + content: "\f290\f290" +} + +.fa-duotone.fa-arrow-down-z-a:after, +.fa-duotone.fa-sort-alpha-desc:after, +.fa-duotone.fa-sort-alpha-down-alt:after, +.fad.fa-arrow-down-z-a:after, +.fad.fa-sort-alpha-desc:after, +.fad.fa-sort-alpha-down-alt:after { + content: "\f881\f881" +} + +.fa-duotone.fa-mitten:after, +.fad.fa-mitten:after { + content: "\f7b5\f7b5" +} + +.fa-duotone.fa-reply-clock:after, +.fa-duotone.fa-reply-time:after, +.fad.fa-reply-clock:after, +.fad.fa-reply-time:after { + content: "\e239\e239" +} + +.fa-duotone.fa-person-rays:after, +.fad.fa-person-rays:after { + content: "\e54d\e54d" +} + +.fa-duotone.fa-arrow-alt-right:after, +.fa-duotone.fa-right:after, +.fad.fa-arrow-alt-right:after, +.fad.fa-right:after { + content: "\f356\f356" +} + +.fa-duotone.fa-circle-f:after, +.fad.fa-circle-f:after { + content: "\e10e\e10e" +} + +.fa-duotone.fa-users:after, +.fad.fa-users:after { + content: "\f0c0\f0c0" +} + +.fa-duotone.fa-face-pleading:after, +.fad.fa-face-pleading:after { + content: "\e386\e386" +} + +.fa-duotone.fa-eye-slash:after, +.fad.fa-eye-slash:after { + content: "\f070\f070" +} + +.fa-duotone.fa-flask-vial:after, +.fad.fa-flask-vial:after { + content: "\e4f3\e4f3" +} + +.fa-duotone.fa-police-box:after, +.fad.fa-police-box:after { + content: "\e021\e021" +} + +.fa-duotone.fa-cucumber:after, +.fad.fa-cucumber:after { + content: "\e401\e401" +} + +.fa-duotone.fa-head-side-brain:after, +.fad.fa-head-side-brain:after { + content: "\f808\f808" +} + +.fa-duotone.fa-hand-paper:after, +.fa-duotone.fa-hand:after, +.fad.fa-hand-paper:after, +.fad.fa-hand:after { + content: "\f256\f256" +} + +.fa-duotone.fa-biking-mountain:after, +.fa-duotone.fa-person-biking-mountain:after, +.fad.fa-biking-mountain:after, +.fad.fa-person-biking-mountain:after { + content: "\f84b\f84b" +} + +.fa-duotone.fa-utensils-slash:after, +.fad.fa-utensils-slash:after { + content: "\e464\e464" +} + +.fa-duotone.fa-print-magnifying-glass:after, +.fa-duotone.fa-print-search:after, +.fad.fa-print-magnifying-glass:after, +.fad.fa-print-search:after { + content: "\f81a\f81a" +} + +.fa-duotone.fa-turn-right:after, +.fad.fa-turn-right:after { + content: "\e639\e639" +} + +.fa-duotone.fa-folder-bookmark:after, +.fad.fa-folder-bookmark:after { + content: "\e186\e186" +} + +.fa-duotone.fa-arrow-turn-left-down:after, +.fad.fa-arrow-turn-left-down:after { + content: "\e633\e633" +} + +.fa-duotone.fa-om:after, +.fad.fa-om:after { + content: "\f679\f679" +} + +.fa-duotone.fa-pi:after, +.fad.fa-pi:after { + content: "\f67e\f67e" +} + +.fa-duotone.fa-flask-potion:after, +.fa-duotone.fa-flask-round-potion:after, +.fad.fa-flask-potion:after, +.fad.fa-flask-round-potion:after { + content: "\f6e1\f6e1" +} + +.fa-duotone.fa-face-shush:after, +.fad.fa-face-shush:after { + content: "\e38c\e38c" +} + +.fa-duotone.fa-worm:after, +.fad.fa-worm:after { + content: "\e599\e599" +} + +.fa-duotone.fa-house-circle-xmark:after, +.fad.fa-house-circle-xmark:after { + content: "\e50b\e50b" +} + +.fa-duotone.fa-plug:after, +.fad.fa-plug:after { + content: "\f1e6\f1e6" +} + +.fa-duotone.fa-calendar-circle-exclamation:after, +.fad.fa-calendar-circle-exclamation:after { + content: "\e46e\e46e" +} + +.fa-duotone.fa-square-i:after, +.fad.fa-square-i:after { + content: "\e272\e272" +} + +.fa-duotone.fa-chevron-up:after, +.fad.fa-chevron-up:after { + content: "\f077\f077" +} + +.fa-duotone.fa-face-saluting:after, +.fad.fa-face-saluting:after { + content: "\e484\e484" +} + +.fa-duotone.fa-gauge-simple-low:after, +.fa-duotone.fa-tachometer-slow:after, +.fad.fa-gauge-simple-low:after, +.fad.fa-tachometer-slow:after { + content: "\f62c\f62c" +} + +.fa-duotone.fa-face-persevering:after, +.fad.fa-face-persevering:after { + content: "\e385\e385" +} + +.fa-duotone.fa-camera-circle:after, +.fa-duotone.fa-circle-camera:after, +.fad.fa-camera-circle:after, +.fad.fa-circle-camera:after { + content: "\e103\e103" +} + +.fa-duotone.fa-hand-spock:after, +.fad.fa-hand-spock:after { + content: "\f259\f259" +} + +.fa-duotone.fa-spider-web:after, +.fad.fa-spider-web:after { + content: "\f719\f719" +} + +.fa-duotone.fa-circle-microphone:after, +.fa-duotone.fa-microphone-circle:after, +.fad.fa-circle-microphone:after, +.fad.fa-microphone-circle:after { + content: "\e116\e116" +} + +.fa-duotone.fa-book-arrow-up:after, +.fad.fa-book-arrow-up:after { + content: "\e0ba\e0ba" +} + +.fa-duotone.fa-popsicle:after, +.fad.fa-popsicle:after { + content: "\e43e\e43e" +} + +.fa-duotone.fa-command:after, +.fad.fa-command:after { + content: "\e142\e142" +} + +.fa-duotone.fa-blinds:after, +.fad.fa-blinds:after { + content: "\f8fb\f8fb" +} + +.fa-duotone.fa-stopwatch:after, +.fad.fa-stopwatch:after { + content: "\f2f2\f2f2" +} + +.fa-duotone.fa-saxophone:after, +.fad.fa-saxophone:after { + content: "\f8dc\f8dc" +} + +.fa-duotone.fa-square-2:after, +.fad.fa-square-2:after { + content: "\e257\e257" +} + +.fa-duotone.fa-field-hockey-stick-ball:after, +.fa-duotone.fa-field-hockey:after, +.fad.fa-field-hockey-stick-ball:after, +.fad.fa-field-hockey:after { + content: "\f44c\f44c" +} + +.fa-duotone.fa-arrow-up-square-triangle:after, +.fa-duotone.fa-sort-shapes-up-alt:after, +.fad.fa-arrow-up-square-triangle:after, +.fad.fa-sort-shapes-up-alt:after { + content: "\f88b\f88b" +} + +.fa-duotone.fa-face-scream:after, +.fad.fa-face-scream:after { + content: "\e38b\e38b" +} + +.fa-duotone.fa-square-m:after, +.fad.fa-square-m:after { + content: "\e276\e276" +} + +.fa-duotone.fa-camera-web:after, +.fa-duotone.fa-webcam:after, +.fad.fa-camera-web:after, +.fad.fa-webcam:after { + content: "\f832\f832" +} + +.fa-duotone.fa-comment-arrow-down:after, +.fad.fa-comment-arrow-down:after { + content: "\e143\e143" +} + +.fa-duotone.fa-lightbulb-cfl:after, +.fad.fa-lightbulb-cfl:after { + content: "\e5a6\e5a6" +} + +.fa-duotone.fa-window-frame-open:after, +.fad.fa-window-frame-open:after { + content: "\e050\e050" +} + +.fa-duotone.fa-face-kiss:after, +.fa-duotone.fa-kiss:after, +.fad.fa-face-kiss:after, +.fad.fa-kiss:after { + content: "\f596\f596" +} + +.fa-duotone.fa-bridge-circle-xmark:after, +.fad.fa-bridge-circle-xmark:after { + content: "\e4cb\e4cb" +} + +.fa-duotone.fa-period:after, +.fad.fa-period:after { + content: "\2e\2e" +} + +.fa-duotone.fa-face-grin-tongue:after, +.fa-duotone.fa-grin-tongue:after, +.fad.fa-face-grin-tongue:after, +.fad.fa-grin-tongue:after { + content: "\f589\f589" +} + +.fa-duotone.fa-up-to-dotted-line:after, +.fad.fa-up-to-dotted-line:after { + content: "\e457\e457" +} + +.fa-duotone.fa-thought-bubble:after, +.fad.fa-thought-bubble:after { + content: "\e32e\e32e" +} + +.fa-duotone.fa-skeleton-ribs:after, +.fad.fa-skeleton-ribs:after { + content: "\e5cb\e5cb" +} + +.fa-duotone.fa-raygun:after, +.fad.fa-raygun:after { + content: "\e025\e025" +} + +.fa-duotone.fa-flute:after, +.fad.fa-flute:after { + content: "\f8b9\f8b9" +} + +.fa-duotone.fa-acorn:after, +.fad.fa-acorn:after { + content: "\f6ae\f6ae" +} + +.fa-duotone.fa-video-arrow-up-right:after, +.fad.fa-video-arrow-up-right:after { + content: "\e2c9\e2c9" +} + +.fa-duotone.fa-grate-droplet:after, +.fad.fa-grate-droplet:after { + content: "\e194\e194" +} + +.fa-duotone.fa-seal-exclamation:after, +.fad.fa-seal-exclamation:after { + content: "\e242\e242" +} + +.fa-duotone.fa-chess-bishop:after, +.fad.fa-chess-bishop:after { + content: "\f43a\f43a" +} + +.fa-duotone.fa-message-sms:after, +.fad.fa-message-sms:after { + content: "\e1e5\e1e5" +} + +.fa-duotone.fa-coffee-beans:after, +.fad.fa-coffee-beans:after { + content: "\e13f\e13f" +} + +.fa-duotone.fa-hat-witch:after, +.fad.fa-hat-witch:after { + content: "\f6e7\f6e7" +} + +.fa-duotone.fa-face-grin-wink:after, +.fa-duotone.fa-grin-wink:after, +.fad.fa-face-grin-wink:after, +.fad.fa-grin-wink:after { + content: "\f58c\f58c" +} + +.fa-duotone.fa-clock-three-thirty:after, +.fad.fa-clock-three-thirty:after { + content: "\e357\e357" +} + +.fa-duotone.fa-deaf:after, +.fa-duotone.fa-deafness:after, +.fa-duotone.fa-ear-deaf:after, +.fa-duotone.fa-hard-of-hearing:after, +.fad.fa-deaf:after, +.fad.fa-deafness:after, +.fad.fa-ear-deaf:after, +.fad.fa-hard-of-hearing:after { + content: "\f2a4\f2a4" +} + +.fa-duotone.fa-alarm-clock:after, +.fad.fa-alarm-clock:after { + content: "\f34e\f34e" +} + +.fa-duotone.fa-eclipse:after, +.fad.fa-eclipse:after { + content: "\f749\f749" +} + +.fa-duotone.fa-face-relieved:after, +.fad.fa-face-relieved:after { + content: "\e389\e389" +} + +.fa-duotone.fa-road-circle-check:after, +.fad.fa-road-circle-check:after { + content: "\e564\e564" +} + +.fa-duotone.fa-dice-five:after, +.fad.fa-dice-five:after { + content: "\f523\f523" +} + +.fa-duotone.fa-minus-octagon:after, +.fa-duotone.fa-octagon-minus:after, +.fad.fa-minus-octagon:after, +.fad.fa-octagon-minus:after { + content: "\f308\f308" +} + +.fa-duotone.fa-rss-square:after, +.fa-duotone.fa-square-rss:after, +.fad.fa-rss-square:after, +.fad.fa-square-rss:after { + content: "\f143\f143" +} + +.fa-duotone.fa-face-zany:after, +.fad.fa-face-zany:after { + content: "\e3a4\e3a4" +} + +.fa-duotone.fa-tricycle:after, +.fad.fa-tricycle:after { + content: "\e5c3\e5c3" +} + +.fa-duotone.fa-land-mine-on:after, +.fad.fa-land-mine-on:after { + content: "\e51b\e51b" +} + +.fa-duotone.fa-square-arrow-up-left:after, +.fad.fa-square-arrow-up-left:after { + content: "\e263\e263" +} + +.fa-duotone.fa-i-cursor:after, +.fad.fa-i-cursor:after { + content: "\f246\f246" +} + +.fa-duotone.fa-chart-mixed-up-circle-dollar:after, +.fad.fa-chart-mixed-up-circle-dollar:after { + content: "\e5d9\e5d9" +} + +.fa-duotone.fa-salt-shaker:after, +.fad.fa-salt-shaker:after { + content: "\e446\e446" +} + +.fa-duotone.fa-stamp:after, +.fad.fa-stamp:after { + content: "\f5bf\f5bf" +} + +.fa-duotone.fa-file-plus:after, +.fad.fa-file-plus:after { + content: "\f319\f319" +} + +.fa-duotone.fa-draw-square:after, +.fad.fa-draw-square:after { + content: "\f5ef\f5ef" +} + +.fa-duotone.fa-toilet-paper-reverse-slash:after, +.fa-duotone.fa-toilet-paper-under-slash:after, +.fad.fa-toilet-paper-reverse-slash:after, +.fad.fa-toilet-paper-under-slash:after { + content: "\e2a1\e2a1" +} + +.fa-duotone.fa-stairs:after, +.fad.fa-stairs:after { + content: "\e289\e289" +} + +.fa-duotone.fa-drone-alt:after, +.fa-duotone.fa-drone-front:after, +.fad.fa-drone-alt:after, +.fad.fa-drone-front:after { + content: "\f860\f860" +} + +.fa-duotone.fa-glass-empty:after, +.fad.fa-glass-empty:after { + content: "\e191\e191" +} + +.fa-duotone.fa-dial-high:after, +.fad.fa-dial-high:after { + content: "\e15c\e15c" +} + +.fa-duotone.fa-user-construction:after, +.fa-duotone.fa-user-hard-hat:after, +.fa-duotone.fa-user-helmet-safety:after, +.fad.fa-user-construction:after, +.fad.fa-user-hard-hat:after, +.fad.fa-user-helmet-safety:after { + content: "\f82c\f82c" +} + +.fa-duotone.fa-i:after, +.fad.fa-i:after { + content: "\49\49" +} + +.fa-duotone.fa-hryvnia-sign:after, +.fa-duotone.fa-hryvnia:after, +.fad.fa-hryvnia-sign:after, +.fad.fa-hryvnia:after { + content: "\f6f2\f6f2" +} + +.fa-duotone.fa-arrow-down-left-and-arrow-up-right-to-center:after, +.fad.fa-arrow-down-left-and-arrow-up-right-to-center:after { + content: "\e092\e092" +} + +.fa-duotone.fa-pills:after, +.fad.fa-pills:after { + content: "\f484\f484" +} + +.fa-duotone.fa-face-grin-wide:after, +.fa-duotone.fa-grin-alt:after, +.fad.fa-face-grin-wide:after, +.fad.fa-grin-alt:after { + content: "\f581\f581" +} + +.fa-duotone.fa-tooth:after, +.fad.fa-tooth:after { + content: "\f5c9\f5c9" +} + +.fa-duotone.fa-basketball-hoop:after, +.fad.fa-basketball-hoop:after { + content: "\f435\f435" +} + +.fa-duotone.fa-objects-align-bottom:after, +.fad.fa-objects-align-bottom:after { + content: "\e3bb\e3bb" +} + +.fa-duotone.fa-v:after, +.fad.fa-v:after { + content: "\56\56" +} + +.fa-duotone.fa-sparkles:after, +.fad.fa-sparkles:after { + content: "\f890\f890" +} + +.fa-duotone.fa-squid:after, +.fad.fa-squid:after { + content: "\e450\e450" +} + +.fa-duotone.fa-leafy-green:after, +.fad.fa-leafy-green:after { + content: "\e41d\e41d" +} + +.fa-duotone.fa-circle-arrow-up-right:after, +.fad.fa-circle-arrow-up-right:after { + content: "\e0fc\e0fc" +} + +.fa-duotone.fa-calendars:after, +.fad.fa-calendars:after { + content: "\e0d7\e0d7" +} + +.fa-duotone.fa-bangladeshi-taka-sign:after, +.fad.fa-bangladeshi-taka-sign:after { + content: "\e2e6\e2e6" +} + +.fa-duotone.fa-bicycle:after, +.fad.fa-bicycle:after { + content: "\f206\f206" +} + +.fa-duotone.fa-hammer-war:after, +.fad.fa-hammer-war:after { + content: "\f6e4\f6e4" +} + +.fa-duotone.fa-circle-d:after, +.fad.fa-circle-d:after { + content: "\e104\e104" +} + +.fa-duotone.fa-spider-black-widow:after, +.fad.fa-spider-black-widow:after { + content: "\f718\f718" +} + +.fa-duotone.fa-rod-asclepius:after, +.fa-duotone.fa-rod-snake:after, +.fa-duotone.fa-staff-aesculapius:after, +.fa-duotone.fa-staff-snake:after, +.fad.fa-rod-asclepius:after, +.fad.fa-rod-snake:after, +.fad.fa-staff-aesculapius:after, +.fad.fa-staff-snake:after { + content: "\e579\e579" +} + +.fa-duotone.fa-pear:after, +.fad.fa-pear:after { + content: "\e20c\e20c" +} + +.fa-duotone.fa-head-side-cough-slash:after, +.fad.fa-head-side-cough-slash:after { + content: "\e062\e062" +} + +.fa-duotone.fa-file-mov:after, +.fad.fa-file-mov:after { + content: "\e647\e647" +} + +.fa-duotone.fa-triangle:after, +.fad.fa-triangle:after { + content: "\f2ec\f2ec" +} + +.fa-duotone.fa-apartment:after, +.fad.fa-apartment:after { + content: "\e468\e468" +} + +.fa-duotone.fa-ambulance:after, +.fa-duotone.fa-truck-medical:after, +.fad.fa-ambulance:after, +.fad.fa-truck-medical:after { + content: "\f0f9\f0f9" +} + +.fa-duotone.fa-pepper:after, +.fad.fa-pepper:after { + content: "\e432\e432" +} + +.fa-duotone.fa-piano:after, +.fad.fa-piano:after { + content: "\f8d4\f8d4" +} + +.fa-duotone.fa-gun-squirt:after, +.fad.fa-gun-squirt:after { + content: "\e19d\e19d" +} + +.fa-duotone.fa-wheat-awn-circle-exclamation:after, +.fad.fa-wheat-awn-circle-exclamation:after { + content: "\e598\e598" +} + +.fa-duotone.fa-snowman:after, +.fad.fa-snowman:after { + content: "\f7d0\f7d0" +} + +.fa-duotone.fa-user-alien:after, +.fad.fa-user-alien:after { + content: "\e04a\e04a" +} + +.fa-duotone.fa-shield-check:after, +.fad.fa-shield-check:after { + content: "\f2f7\f2f7" +} + +.fa-duotone.fa-mortar-pestle:after, +.fad.fa-mortar-pestle:after { + content: "\f5a7\f5a7" +} + +.fa-duotone.fa-road-barrier:after, +.fad.fa-road-barrier:after { + content: "\e562\e562" +} + +.fa-duotone.fa-chart-candlestick:after, +.fad.fa-chart-candlestick:after { + content: "\e0e2\e0e2" +} + +.fa-duotone.fa-briefcase-blank:after, +.fad.fa-briefcase-blank:after { + content: "\e0c8\e0c8" +} + +.fa-duotone.fa-school:after, +.fad.fa-school:after { + content: "\f549\f549" +} + +.fa-duotone.fa-igloo:after, +.fad.fa-igloo:after { + content: "\f7ae\f7ae" +} + +.fa-duotone.fa-bracket-round:after, +.fa-duotone.fa-parenthesis:after, +.fad.fa-bracket-round:after, +.fad.fa-parenthesis:after { + content: "\28\28" +} + +.fa-duotone.fa-joint:after, +.fad.fa-joint:after { + content: "\f595\f595" +} + +.fa-duotone.fa-horse-saddle:after, +.fad.fa-horse-saddle:after { + content: "\f8c3\f8c3" +} + +.fa-duotone.fa-mug-marshmallows:after, +.fad.fa-mug-marshmallows:after { + content: "\f7b7\f7b7" +} + +.fa-duotone.fa-filters:after, +.fad.fa-filters:after { + content: "\e17e\e17e" +} + +.fa-duotone.fa-bell-on:after, +.fad.fa-bell-on:after { + content: "\f8fa\f8fa" +} + +.fa-duotone.fa-angle-right:after, +.fad.fa-angle-right:after { + content: "\f105\f105" +} + +.fa-duotone.fa-dial-med:after, +.fad.fa-dial-med:after { + content: "\e15f\e15f" +} + +.fa-duotone.fa-horse:after, +.fad.fa-horse:after { + content: "\f6f0\f6f0" +} + +.fa-duotone.fa-q:after, +.fad.fa-q:after { + content: "\51\51" +} + +.fa-duotone.fa-monitor-heart-rate:after, +.fa-duotone.fa-monitor-waveform:after, +.fad.fa-monitor-heart-rate:after, +.fad.fa-monitor-waveform:after { + content: "\f611\f611" +} + +.fa-duotone.fa-link-simple:after, +.fad.fa-link-simple:after { + content: "\e1cd\e1cd" +} + +.fa-duotone.fa-whistle:after, +.fad.fa-whistle:after { + content: "\f460\f460" +} + +.fa-duotone.fa-g:after, +.fad.fa-g:after { + content: "\47\47" +} + +.fa-duotone.fa-fragile:after, +.fa-duotone.fa-wine-glass-crack:after, +.fad.fa-fragile:after, +.fad.fa-wine-glass-crack:after { + content: "\f4bb\f4bb" +} + +.fa-duotone.fa-slot-machine:after, +.fad.fa-slot-machine:after { + content: "\e3ce\e3ce" +} + +.fa-duotone.fa-notes-medical:after, +.fad.fa-notes-medical:after { + content: "\f481\f481" +} + +.fa-duotone.fa-car-wash:after, +.fad.fa-car-wash:after { + content: "\f5e6\f5e6" +} + +.fa-duotone.fa-escalator:after, +.fad.fa-escalator:after { + content: "\e171\e171" +} + +.fa-duotone.fa-comment-image:after, +.fad.fa-comment-image:after { + content: "\e148\e148" +} + +.fa-duotone.fa-temperature-2:after, +.fa-duotone.fa-temperature-half:after, +.fa-duotone.fa-thermometer-2:after, +.fa-duotone.fa-thermometer-half:after, +.fad.fa-temperature-2:after, +.fad.fa-temperature-half:after, +.fad.fa-thermometer-2:after, +.fad.fa-thermometer-half:after { + content: "\f2c9\f2c9" +} + +.fa-duotone.fa-dong-sign:after, +.fad.fa-dong-sign:after { + content: "\e169\e169" +} + +.fa-duotone.fa-donut:after, +.fa-duotone.fa-doughnut:after, +.fad.fa-donut:after, +.fad.fa-doughnut:after { + content: "\e406\e406" +} + +.fa-duotone.fa-capsules:after, +.fad.fa-capsules:after { + content: "\f46b\f46b" +} + +.fa-duotone.fa-poo-bolt:after, +.fa-duotone.fa-poo-storm:after, +.fad.fa-poo-bolt:after, +.fad.fa-poo-storm:after { + content: "\f75a\f75a" +} + +.fa-duotone.fa-tally-1:after, +.fad.fa-tally-1:after { + content: "\e294\e294" +} + +.fa-duotone.fa-file-vector:after, +.fad.fa-file-vector:after { + content: "\e64c\e64c" +} + +.fa-duotone.fa-face-frown-open:after, +.fa-duotone.fa-frown-open:after, +.fad.fa-face-frown-open:after, +.fad.fa-frown-open:after { + content: "\f57a\f57a" +} + +.fa-duotone.fa-square-dashed:after, +.fad.fa-square-dashed:after { + content: "\e269\e269" +} + +.fa-duotone.fa-bag-shopping-plus:after, +.fad.fa-bag-shopping-plus:after { + content: "\e651\e651" +} + +.fa-duotone.fa-square-j:after, +.fad.fa-square-j:after { + content: "\e273\e273" +} + +.fa-duotone.fa-hand-point-up:after, +.fad.fa-hand-point-up:after { + content: "\f0a6\f0a6" +} + +.fa-duotone.fa-money-bill:after, +.fad.fa-money-bill:after { + content: "\f0d6\f0d6" +} + +.fa-duotone.fa-arrow-up-big-small:after, +.fa-duotone.fa-sort-size-up:after, +.fad.fa-arrow-up-big-small:after, +.fad.fa-sort-size-up:after { + content: "\f88e\f88e" +} + +.fa-duotone.fa-barcode-read:after, +.fad.fa-barcode-read:after { + content: "\f464\f464" +} + +.fa-duotone.fa-baguette:after, +.fad.fa-baguette:after { + content: "\e3d8\e3d8" +} + +.fa-duotone.fa-bowl-soft-serve:after, +.fad.fa-bowl-soft-serve:after { + content: "\e46b\e46b" +} + +.fa-duotone.fa-face-holding-back-tears:after, +.fad.fa-face-holding-back-tears:after { + content: "\e482\e482" +} + +.fa-duotone.fa-arrow-alt-square-up:after, +.fa-duotone.fa-square-up:after, +.fad.fa-arrow-alt-square-up:after, +.fad.fa-square-up:after { + content: "\f353\f353" +} + +.fa-duotone.fa-subway-tunnel:after, +.fa-duotone.fa-train-subway-tunnel:after, +.fad.fa-subway-tunnel:after, +.fad.fa-train-subway-tunnel:after { + content: "\e2a3\e2a3" +} + +.fa-duotone.fa-exclamation-square:after, +.fa-duotone.fa-square-exclamation:after, +.fad.fa-exclamation-square:after, +.fad.fa-square-exclamation:after { + content: "\f321\f321" +} + +.fa-duotone.fa-semicolon:after, +.fad.fa-semicolon:after { + content: "\3b\3b" +} + +.fa-duotone.fa-bookmark:after, +.fad.fa-bookmark:after { + content: "\f02e\f02e" +} + +.fa-duotone.fa-fan-table:after, +.fad.fa-fan-table:after { + content: "\e004\e004" +} + +.fa-duotone.fa-align-justify:after, +.fad.fa-align-justify:after { + content: "\f039\f039" +} + +.fa-duotone.fa-battery-1:after, +.fa-duotone.fa-battery-low:after, +.fad.fa-battery-1:after, +.fad.fa-battery-low:after { + content: "\e0b1\e0b1" +} + +.fa-duotone.fa-credit-card-front:after, +.fad.fa-credit-card-front:after { + content: "\f38a\f38a" +} + +.fa-duotone.fa-brain-arrow-curved-right:after, +.fa-duotone.fa-mind-share:after, +.fad.fa-brain-arrow-curved-right:after, +.fad.fa-mind-share:after { + content: "\f677\f677" +} + +.fa-duotone.fa-umbrella-beach:after, +.fad.fa-umbrella-beach:after { + content: "\f5ca\f5ca" +} + +.fa-duotone.fa-helmet-un:after, +.fad.fa-helmet-un:after { + content: "\e503\e503" +} + +.fa-duotone.fa-location-smile:after, +.fa-duotone.fa-map-marker-smile:after, +.fad.fa-location-smile:after, +.fad.fa-map-marker-smile:after { + content: "\f60d\f60d" +} + +.fa-duotone.fa-arrow-left-to-line:after, +.fa-duotone.fa-arrow-to-left:after, +.fad.fa-arrow-left-to-line:after, +.fad.fa-arrow-to-left:after { + content: "\f33e\f33e" +} + +.fa-duotone.fa-bullseye:after, +.fad.fa-bullseye:after { + content: "\f140\f140" +} + +.fa-duotone.fa-nigiri:after, +.fa-duotone.fa-sushi:after, +.fad.fa-nigiri:after, +.fad.fa-sushi:after { + content: "\e48a\e48a" +} + +.fa-duotone.fa-comment-alt-captions:after, +.fa-duotone.fa-message-captions:after, +.fad.fa-comment-alt-captions:after, +.fad.fa-message-captions:after { + content: "\e1de\e1de" +} + +.fa-duotone.fa-trash-list:after, +.fad.fa-trash-list:after { + content: "\e2b1\e2b1" +} + +.fa-duotone.fa-bacon:after, +.fad.fa-bacon:after { + content: "\f7e5\f7e5" +} + +.fa-duotone.fa-option:after, +.fad.fa-option:after { + content: "\e318\e318" +} + +.fa-duotone.fa-raccoon:after, +.fad.fa-raccoon:after { + content: "\e613\e613" +} + +.fa-duotone.fa-hand-point-down:after, +.fad.fa-hand-point-down:after { + content: "\f0a7\f0a7" +} + +.fa-duotone.fa-arrow-up-from-bracket:after, +.fad.fa-arrow-up-from-bracket:after { + content: "\e09a\e09a" +} + +.fa-duotone.fa-head-side-gear:after, +.fad.fa-head-side-gear:after { + content: "\e611\e611" +} + +.fa-duotone.fa-trash-plus:after, +.fad.fa-trash-plus:after { + content: "\e2b2\e2b2" +} + +.fa-duotone.fa-objects-align-top:after, +.fad.fa-objects-align-top:after { + content: "\e3c0\e3c0" +} + +.fa-duotone.fa-folder-blank:after, +.fa-duotone.fa-folder:after, +.fad.fa-folder-blank:after, +.fad.fa-folder:after { + content: "\f07b\f07b" +} + +.fa-duotone.fa-face-anxious-sweat:after, +.fad.fa-face-anxious-sweat:after { + content: "\e36a\e36a" +} + +.fa-duotone.fa-credit-card-blank:after, +.fad.fa-credit-card-blank:after { + content: "\f389\f389" +} + +.fa-duotone.fa-file-medical-alt:after, +.fa-duotone.fa-file-waveform:after, +.fad.fa-file-medical-alt:after, +.fad.fa-file-waveform:after { + content: "\f478\f478" +} + +.fa-duotone.fa-microchip-ai:after, +.fad.fa-microchip-ai:after { + content: "\e1ec\e1ec" +} + +.fa-duotone.fa-mug:after, +.fad.fa-mug:after { + content: "\f874\f874" +} + +.fa-duotone.fa-plane-up-slash:after, +.fad.fa-plane-up-slash:after { + content: "\e22e\e22e" +} + +.fa-duotone.fa-radiation:after, +.fad.fa-radiation:after { + content: "\f7b9\f7b9" +} + +.fa-duotone.fa-pen-circle:after, +.fad.fa-pen-circle:after { + content: "\e20e\e20e" +} + +.fa-duotone.fa-bag-seedling:after, +.fad.fa-bag-seedling:after { + content: "\e5f2\e5f2" +} + +.fa-duotone.fa-chart-simple:after, +.fad.fa-chart-simple:after { + content: "\e473\e473" +} + +.fa-duotone.fa-crutches:after, +.fad.fa-crutches:after { + content: "\f7f8\f7f8" +} + +.fa-duotone.fa-circle-parking:after, +.fa-duotone.fa-parking-circle:after, +.fad.fa-circle-parking:after, +.fad.fa-parking-circle:after { + content: "\f615\f615" +} + +.fa-duotone.fa-mars-stroke:after, +.fad.fa-mars-stroke:after { + content: "\f229\f229" +} + +.fa-duotone.fa-leaf-oak:after, +.fad.fa-leaf-oak:after { + content: "\f6f7\f6f7" +} + +.fa-duotone.fa-square-bolt:after, +.fad.fa-square-bolt:after { + content: "\e265\e265" +} + +.fa-duotone.fa-vial:after, +.fad.fa-vial:after { + content: "\f492\f492" +} + +.fa-duotone.fa-dashboard:after, +.fa-duotone.fa-gauge-med:after, +.fa-duotone.fa-gauge:after, +.fa-duotone.fa-tachometer-alt-average:after, +.fad.fa-dashboard:after, +.fad.fa-gauge-med:after, +.fad.fa-gauge:after, +.fad.fa-tachometer-alt-average:after { + content: "\f624\f624" +} + +.fa-duotone.fa-magic-wand-sparkles:after, +.fa-duotone.fa-wand-magic-sparkles:after, +.fad.fa-magic-wand-sparkles:after, +.fad.fa-wand-magic-sparkles:after { + content: "\e2ca\e2ca" +} + +.fa-duotone.fa-lambda:after, +.fad.fa-lambda:after { + content: "\f66e\f66e" +} + +.fa-duotone.fa-e:after, +.fad.fa-e:after { + content: "\45\45" +} + +.fa-duotone.fa-pizza:after, +.fad.fa-pizza:after { + content: "\f817\f817" +} + +.fa-duotone.fa-bowl-chopsticks-noodles:after, +.fad.fa-bowl-chopsticks-noodles:after { + content: "\e2ea\e2ea" +} + +.fa-duotone.fa-h3:after, +.fad.fa-h3:after { + content: "\f315\f315" +} + +.fa-duotone.fa-pen-alt:after, +.fa-duotone.fa-pen-clip:after, +.fad.fa-pen-alt:after, +.fad.fa-pen-clip:after { + content: "\f305\f305" +} + +.fa-duotone.fa-bridge-circle-exclamation:after, +.fad.fa-bridge-circle-exclamation:after { + content: "\e4ca\e4ca" +} + +.fa-duotone.fa-badge-percent:after, +.fad.fa-badge-percent:after { + content: "\f646\f646" +} + +.fa-duotone.fa-rotate-reverse:after, +.fad.fa-rotate-reverse:after { + content: "\e631\e631" +} + +.fa-duotone.fa-user:after, +.fad.fa-user:after { + content: "\f007\f007" +} + +.fa-duotone.fa-sensor:after, +.fad.fa-sensor:after { + content: "\e028\e028" +} + +.fa-duotone.fa-comma:after, +.fad.fa-comma:after { + content: "\2c\2c" +} + +.fa-duotone.fa-school-circle-check:after, +.fad.fa-school-circle-check:after { + content: "\e56b\e56b" +} + +.fa-duotone.fa-toilet-paper-reverse:after, +.fa-duotone.fa-toilet-paper-under:after, +.fad.fa-toilet-paper-reverse:after, +.fad.fa-toilet-paper-under:after { + content: "\e2a0\e2a0" +} + +.fa-duotone.fa-light-emergency:after, +.fad.fa-light-emergency:after { + content: "\e41f\e41f" +} + +.fa-duotone.fa-arrow-down-to-arc:after, +.fad.fa-arrow-down-to-arc:after { + content: "\e4ae\e4ae" +} + +.fa-duotone.fa-dumpster:after, +.fad.fa-dumpster:after { + content: "\f793\f793" +} + +.fa-duotone.fa-shuttle-van:after, +.fa-duotone.fa-van-shuttle:after, +.fad.fa-shuttle-van:after, +.fad.fa-van-shuttle:after { + content: "\f5b6\f5b6" +} + +.fa-duotone.fa-building-user:after, +.fad.fa-building-user:after { + content: "\e4da\e4da" +} + +.fa-duotone.fa-light-switch:after, +.fad.fa-light-switch:after { + content: "\e017\e017" +} + +.fa-duotone.fa-caret-square-left:after, +.fa-duotone.fa-square-caret-left:after, +.fad.fa-caret-square-left:after, +.fad.fa-square-caret-left:after { + content: "\f191\f191" +} + +.fa-duotone.fa-highlighter:after, +.fad.fa-highlighter:after { + content: "\f591\f591" +} + +.fa-duotone.fa-heart-rate:after, +.fa-duotone.fa-wave-pulse:after, +.fad.fa-heart-rate:after, +.fad.fa-wave-pulse:after { + content: "\f5f8\f5f8" +} + +.fa-duotone.fa-key:after, +.fad.fa-key:after { + content: "\f084\f084" +} + +.fa-duotone.fa-hat-santa:after, +.fad.fa-hat-santa:after { + content: "\f7a7\f7a7" +} + +.fa-duotone.fa-tamale:after, +.fad.fa-tamale:after { + content: "\e451\e451" +} + +.fa-duotone.fa-box-check:after, +.fad.fa-box-check:after { + content: "\f467\f467" +} + +.fa-duotone.fa-bullhorn:after, +.fad.fa-bullhorn:after { + content: "\f0a1\f0a1" +} + +.fa-duotone.fa-steak:after, +.fad.fa-steak:after { + content: "\f824\f824" +} + +.fa-duotone.fa-location-crosshairs-slash:after, +.fa-duotone.fa-location-slash:after, +.fad.fa-location-crosshairs-slash:after, +.fad.fa-location-slash:after { + content: "\f603\f603" +} + +.fa-duotone.fa-person-dolly:after, +.fad.fa-person-dolly:after { + content: "\f4d0\f4d0" +} + +.fa-duotone.fa-globe:after, +.fad.fa-globe:after { + content: "\f0ac\f0ac" +} + +.fa-duotone.fa-synagogue:after, +.fad.fa-synagogue:after { + content: "\f69b\f69b" +} + +.fa-duotone.fa-file-chart-column:after, +.fa-duotone.fa-file-chart-line:after, +.fad.fa-file-chart-column:after, +.fad.fa-file-chart-line:after { + content: "\f659\f659" +} + +.fa-duotone.fa-person-half-dress:after, +.fad.fa-person-half-dress:after { + content: "\e548\e548" +} + +.fa-duotone.fa-folder-image:after, +.fad.fa-folder-image:after { + content: "\e18a\e18a" +} + +.fa-duotone.fa-calendar-edit:after, +.fa-duotone.fa-calendar-pen:after, +.fad.fa-calendar-edit:after, +.fad.fa-calendar-pen:after { + content: "\f333\f333" +} + +.fa-duotone.fa-road-bridge:after, +.fad.fa-road-bridge:after { + content: "\e563\e563" +} + +.fa-duotone.fa-face-smile-tear:after, +.fad.fa-face-smile-tear:after { + content: "\e393\e393" +} + +.fa-duotone.fa-comment-alt-plus:after, +.fa-duotone.fa-message-plus:after, +.fad.fa-comment-alt-plus:after, +.fad.fa-message-plus:after { + content: "\f4a8\f4a8" +} + +.fa-duotone.fa-location-arrow:after, +.fad.fa-location-arrow:after { + content: "\f124\f124" +} + +.fa-duotone.fa-c:after, +.fad.fa-c:after { + content: "\43\43" +} + +.fa-duotone.fa-tablet-button:after, +.fad.fa-tablet-button:after { + content: "\f10a\f10a" +} + +.fa-duotone.fa-person-dress-fairy:after, +.fad.fa-person-dress-fairy:after { + content: "\e607\e607" +} + +.fa-duotone.fa-rectangle-history-circle-user:after, +.fad.fa-rectangle-history-circle-user:after { + content: "\e4a4\e4a4" +} + +.fa-duotone.fa-building-lock:after, +.fad.fa-building-lock:after { + content: "\e4d6\e4d6" +} + +.fa-duotone.fa-chart-line-up:after, +.fad.fa-chart-line-up:after { + content: "\e0e5\e0e5" +} + +.fa-duotone.fa-mailbox:after, +.fad.fa-mailbox:after { + content: "\f813\f813" +} + +.fa-duotone.fa-sign-posts:after, +.fad.fa-sign-posts:after { + content: "\e625\e625" +} + +.fa-duotone.fa-truck-bolt:after, +.fad.fa-truck-bolt:after { + content: "\e3d0\e3d0" +} + +.fa-duotone.fa-pizza-slice:after, +.fad.fa-pizza-slice:after { + content: "\f818\f818" +} + +.fa-duotone.fa-money-bill-wave:after, +.fad.fa-money-bill-wave:after { + content: "\f53a\f53a" +} + +.fa-duotone.fa-area-chart:after, +.fa-duotone.fa-chart-area:after, +.fad.fa-area-chart:after, +.fad.fa-chart-area:after { + content: "\f1fe\f1fe" +} + +.fa-duotone.fa-house-flag:after, +.fad.fa-house-flag:after { + content: "\e50d\e50d" +} + +.fa-duotone.fa-circle-three-quarters-stroke:after, +.fad.fa-circle-three-quarters-stroke:after { + content: "\e5d4\e5d4" +} + +.fa-duotone.fa-person-circle-minus:after, +.fad.fa-person-circle-minus:after { + content: "\e540\e540" +} + +.fa-duotone.fa-scalpel:after, +.fad.fa-scalpel:after { + content: "\f61d\f61d" +} + +.fa-duotone.fa-ban:after, +.fa-duotone.fa-cancel:after, +.fad.fa-ban:after, +.fad.fa-cancel:after { + content: "\f05e\f05e" +} + +.fa-duotone.fa-bell-exclamation:after, +.fad.fa-bell-exclamation:after { + content: "\f848\f848" +} + +.fa-duotone.fa-bookmark-circle:after, +.fa-duotone.fa-circle-bookmark:after, +.fad.fa-bookmark-circle:after, +.fad.fa-circle-bookmark:after { + content: "\e100\e100" +} + +.fa-duotone.fa-egg-fried:after, +.fad.fa-egg-fried:after { + content: "\f7fc\f7fc" +} + +.fa-duotone.fa-face-weary:after, +.fad.fa-face-weary:after { + content: "\e3a1\e3a1" +} + +.fa-duotone.fa-uniform-martial-arts:after, +.fad.fa-uniform-martial-arts:after { + content: "\e3d1\e3d1" +} + +.fa-duotone.fa-camera-rotate:after, +.fad.fa-camera-rotate:after { + content: "\e0d8\e0d8" +} + +.fa-duotone.fa-sun-dust:after, +.fad.fa-sun-dust:after { + content: "\f764\f764" +} + +.fa-duotone.fa-comment-text:after, +.fad.fa-comment-text:after { + content: "\e14d\e14d" +} + +.fa-duotone.fa-air-freshener:after, +.fa-duotone.fa-spray-can-sparkles:after, +.fad.fa-air-freshener:after, +.fad.fa-spray-can-sparkles:after { + content: "\f5d0\f5d0" +} + +.fa-duotone.fa-signal-alt-4:after, +.fa-duotone.fa-signal-alt:after, +.fa-duotone.fa-signal-bars-strong:after, +.fa-duotone.fa-signal-bars:after, +.fad.fa-signal-alt-4:after, +.fad.fa-signal-alt:after, +.fad.fa-signal-bars-strong:after, +.fad.fa-signal-bars:after { + content: "\f690\f690" +} + +.fa-duotone.fa-diamond-exclamation:after, +.fad.fa-diamond-exclamation:after { + content: "\e405\e405" +} + +.fa-duotone.fa-star:after, +.fad.fa-star:after { + content: "\f005\f005" +} + +.fa-duotone.fa-dial-min:after, +.fad.fa-dial-min:after { + content: "\e161\e161" +} + +.fa-duotone.fa-repeat:after, +.fad.fa-repeat:after { + content: "\f363\f363" +} + +.fa-duotone.fa-cross:after, +.fad.fa-cross:after { + content: "\f654\f654" +} + +.fa-duotone.fa-file-caret-down:after, +.fa-duotone.fa-page-caret-down:after, +.fad.fa-file-caret-down:after, +.fad.fa-page-caret-down:after { + content: "\e429\e429" +} + +.fa-duotone.fa-box:after, +.fad.fa-box:after { + content: "\f466\f466" +} + +.fa-duotone.fa-venus-mars:after, +.fad.fa-venus-mars:after { + content: "\f228\f228" +} + +.fa-duotone.fa-clock-seven-thirty:after, +.fad.fa-clock-seven-thirty:after { + content: "\e351\e351" +} + +.fa-duotone.fa-arrow-pointer:after, +.fa-duotone.fa-mouse-pointer:after, +.fad.fa-arrow-pointer:after, +.fad.fa-mouse-pointer:after { + content: "\f245\f245" +} + +.fa-duotone.fa-clock-four-thirty:after, +.fad.fa-clock-four-thirty:after { + content: "\e34b\e34b" +} + +.fa-duotone.fa-signal-alt-3:after, +.fa-duotone.fa-signal-bars-good:after, +.fad.fa-signal-alt-3:after, +.fad.fa-signal-bars-good:after { + content: "\f693\f693" +} + +.fa-duotone.fa-cactus:after, +.fad.fa-cactus:after { + content: "\f8a7\f8a7" +} + +.fa-duotone.fa-lightbulb-gear:after, +.fad.fa-lightbulb-gear:after { + content: "\e5fd\e5fd" +} + +.fa-duotone.fa-expand-arrows-alt:after, +.fa-duotone.fa-maximize:after, +.fad.fa-expand-arrows-alt:after, +.fad.fa-maximize:after { + content: "\f31e\f31e" +} + +.fa-duotone.fa-charging-station:after, +.fad.fa-charging-station:after { + content: "\f5e7\f5e7" +} + +.fa-duotone.fa-shapes:after, +.fa-duotone.fa-triangle-circle-square:after, +.fad.fa-shapes:after, +.fad.fa-triangle-circle-square:after { + content: "\f61f\f61f" +} + +.fa-duotone.fa-plane-tail:after, +.fad.fa-plane-tail:after { + content: "\e22c\e22c" +} + +.fa-duotone.fa-gauge-simple-max:after, +.fa-duotone.fa-tachometer-fastest:after, +.fad.fa-gauge-simple-max:after, +.fad.fa-tachometer-fastest:after { + content: "\f62b\f62b" +} + +.fa-duotone.fa-circle-u:after, +.fad.fa-circle-u:after { + content: "\e127\e127" +} + +.fa-duotone.fa-shield-slash:after, +.fad.fa-shield-slash:after { + content: "\e24b\e24b" +} + +.fa-duotone.fa-phone-square-down:after, +.fa-duotone.fa-square-phone-hangup:after, +.fad.fa-phone-square-down:after, +.fad.fa-square-phone-hangup:after { + content: "\e27a\e27a" +} + +.fa-duotone.fa-arrow-up-left:after, +.fad.fa-arrow-up-left:after { + content: "\e09d\e09d" +} + +.fa-duotone.fa-transporter-1:after, +.fad.fa-transporter-1:after { + content: "\e043\e043" +} + +.fa-duotone.fa-peanuts:after, +.fad.fa-peanuts:after { + content: "\e431\e431" +} + +.fa-duotone.fa-random:after, +.fa-duotone.fa-shuffle:after, +.fad.fa-random:after, +.fad.fa-shuffle:after { + content: "\f074\f074" +} + +.fa-duotone.fa-person-running:after, +.fa-duotone.fa-running:after, +.fad.fa-person-running:after, +.fad.fa-running:after { + content: "\f70c\f70c" +} + +.fa-duotone.fa-mobile-retro:after, +.fad.fa-mobile-retro:after { + content: "\e527\e527" +} + +.fa-duotone.fa-grip-lines-vertical:after, +.fad.fa-grip-lines-vertical:after { + content: "\f7a5\f7a5" +} + +.fa-duotone.fa-bin-bottles-recycle:after, +.fad.fa-bin-bottles-recycle:after { + content: "\e5f6\e5f6" +} + +.fa-duotone.fa-arrow-up-from-square:after, +.fad.fa-arrow-up-from-square:after { + content: "\e09c\e09c" +} + +.fa-duotone.fa-file-dashed-line:after, +.fa-duotone.fa-page-break:after, +.fad.fa-file-dashed-line:after, +.fad.fa-page-break:after { + content: "\f877\f877" +} + +.fa-duotone.fa-bracket-curly-right:after, +.fad.fa-bracket-curly-right:after { + content: "\7d\7d" +} + +.fa-duotone.fa-spider:after, +.fad.fa-spider:after { + content: "\f717\f717" +} + +.fa-duotone.fa-clock-three:after, +.fad.fa-clock-three:after { + content: "\e356\e356" +} + +.fa-duotone.fa-hands-bound:after, +.fad.fa-hands-bound:after { + content: "\e4f9\e4f9" +} + +.fa-duotone.fa-scalpel-line-dashed:after, +.fa-duotone.fa-scalpel-path:after, +.fad.fa-scalpel-line-dashed:after, +.fad.fa-scalpel-path:after { + content: "\f61e\f61e" +} + +.fa-duotone.fa-file-invoice-dollar:after, +.fad.fa-file-invoice-dollar:after { + content: "\f571\f571" +} + +.fa-duotone.fa-pipe-smoking:after, +.fad.fa-pipe-smoking:after { + content: "\e3c4\e3c4" +} + +.fa-duotone.fa-face-astonished:after, +.fad.fa-face-astonished:after { + content: "\e36b\e36b" +} + +.fa-duotone.fa-window:after, +.fad.fa-window:after { + content: "\f40e\f40e" +} + +.fa-duotone.fa-plane-circle-exclamation:after, +.fad.fa-plane-circle-exclamation:after { + content: "\e556\e556" +} + +.fa-duotone.fa-ear:after, +.fad.fa-ear:after { + content: "\f5f0\f5f0" +} + +.fa-duotone.fa-file-lock:after, +.fad.fa-file-lock:after { + content: "\e3a6\e3a6" +} + +.fa-duotone.fa-diagram-venn:after, +.fad.fa-diagram-venn:after { + content: "\e15a\e15a" +} + +.fa-duotone.fa-x-ray:after, +.fad.fa-x-ray:after { + content: "\f497\f497" +} + +.fa-duotone.fa-goal-net:after, +.fad.fa-goal-net:after { + content: "\e3ab\e3ab" +} + +.fa-duotone.fa-coffin-cross:after, +.fad.fa-coffin-cross:after { + content: "\e051\e051" +} + +.fa-duotone.fa-spell-check:after, +.fad.fa-spell-check:after { + content: "\f891\f891" +} + +.fa-duotone.fa-location-xmark:after, +.fa-duotone.fa-map-marker-times:after, +.fa-duotone.fa-map-marker-xmark:after, +.fad.fa-location-xmark:after, +.fad.fa-map-marker-times:after, +.fad.fa-map-marker-xmark:after { + content: "\f60e\f60e" +} + +.fa-duotone.fa-circle-quarter-stroke:after, +.fad.fa-circle-quarter-stroke:after { + content: "\e5d3\e5d3" +} + +.fa-duotone.fa-lasso:after, +.fad.fa-lasso:after { + content: "\f8c8\f8c8" +} + +.fa-duotone.fa-slash:after, +.fad.fa-slash:after { + content: "\f715\f715" +} + +.fa-duotone.fa-person-to-portal:after, +.fa-duotone.fa-portal-enter:after, +.fad.fa-person-to-portal:after, +.fad.fa-portal-enter:after { + content: "\e022\e022" +} + +.fa-duotone.fa-calendar-star:after, +.fad.fa-calendar-star:after { + content: "\f736\f736" +} + +.fa-duotone.fa-computer-mouse:after, +.fa-duotone.fa-mouse:after, +.fad.fa-computer-mouse:after, +.fad.fa-mouse:after { + content: "\f8cc\f8cc" +} + +.fa-duotone.fa-arrow-right-to-bracket:after, +.fa-duotone.fa-sign-in:after, +.fad.fa-arrow-right-to-bracket:after, +.fad.fa-sign-in:after { + content: "\f090\f090" +} + +.fa-duotone.fa-pegasus:after, +.fad.fa-pegasus:after { + content: "\f703\f703" +} + +.fa-duotone.fa-files-medical:after, +.fad.fa-files-medical:after { + content: "\f7fd\f7fd" +} + +.fa-duotone.fa-cannon:after, +.fad.fa-cannon:after { + content: "\e642\e642" +} + +.fa-duotone.fa-nfc-lock:after, +.fad.fa-nfc-lock:after { + content: "\e1f8\e1f8" +} + +.fa-duotone.fa-person-ski-lift:after, +.fa-duotone.fa-ski-lift:after, +.fad.fa-person-ski-lift:after, +.fad.fa-ski-lift:after { + content: "\f7c8\f7c8" +} + +.fa-duotone.fa-square-6:after, +.fad.fa-square-6:after { + content: "\e25b\e25b" +} + +.fa-duotone.fa-shop-slash:after, +.fa-duotone.fa-store-alt-slash:after, +.fad.fa-shop-slash:after, +.fad.fa-store-alt-slash:after { + content: "\e070\e070" +} + +.fa-duotone.fa-wind-turbine:after, +.fad.fa-wind-turbine:after { + content: "\f89b\f89b" +} + +.fa-duotone.fa-sliders-simple:after, +.fad.fa-sliders-simple:after { + content: "\e253\e253" +} + +.fa-duotone.fa-grid-round:after, +.fad.fa-grid-round:after { + content: "\e5da\e5da" +} + +.fa-duotone.fa-badge-sheriff:after, +.fad.fa-badge-sheriff:after { + content: "\f8a2\f8a2" +} + +.fa-duotone.fa-server:after, +.fad.fa-server:after { + content: "\f233\f233" +} + +.fa-duotone.fa-virus-covid-slash:after, +.fad.fa-virus-covid-slash:after { + content: "\e4a9\e4a9" +} + +.fa-duotone.fa-intersection:after, +.fad.fa-intersection:after { + content: "\f668\f668" +} + +.fa-duotone.fa-shop-lock:after, +.fad.fa-shop-lock:after { + content: "\e4a5\e4a5" +} + +.fa-duotone.fa-family:after, +.fad.fa-family:after { + content: "\e300\e300" +} + +.fa-duotone.fa-hourglass-1:after, +.fa-duotone.fa-hourglass-start:after, +.fad.fa-hourglass-1:after, +.fad.fa-hourglass-start:after { + content: "\f251\f251" +} + +.fa-duotone.fa-user-hair-buns:after, +.fad.fa-user-hair-buns:after { + content: "\e3d3\e3d3" +} + +.fa-duotone.fa-blender-phone:after, +.fad.fa-blender-phone:after { + content: "\f6b6\f6b6" +} + +.fa-duotone.fa-hourglass-clock:after, +.fad.fa-hourglass-clock:after { + content: "\e41b\e41b" +} + +.fa-duotone.fa-person-seat-reclined:after, +.fad.fa-person-seat-reclined:after { + content: "\e21f\e21f" +} + +.fa-duotone.fa-paper-plane-alt:after, +.fa-duotone.fa-paper-plane-top:after, +.fa-duotone.fa-send:after, +.fad.fa-paper-plane-alt:after, +.fad.fa-paper-plane-top:after, +.fad.fa-send:after { + content: "\e20a\e20a" +} + +.fa-duotone.fa-comment-alt-arrow-up:after, +.fa-duotone.fa-message-arrow-up:after, +.fad.fa-comment-alt-arrow-up:after, +.fad.fa-message-arrow-up:after { + content: "\e1dc\e1dc" +} + +.fa-duotone.fa-lightbulb-exclamation:after, +.fad.fa-lightbulb-exclamation:after { + content: "\f671\f671" +} + +.fa-duotone.fa-layer-group-minus:after, +.fa-duotone.fa-layer-minus:after, +.fad.fa-layer-group-minus:after, +.fad.fa-layer-minus:after { + content: "\f5fe\f5fe" +} + +.fa-duotone.fa-chart-pie-simple-circle-currency:after, +.fad.fa-chart-pie-simple-circle-currency:after { + content: "\e604\e604" +} + +.fa-duotone.fa-circle-e:after, +.fad.fa-circle-e:after { + content: "\e109\e109" +} + +.fa-duotone.fa-building-wheat:after, +.fad.fa-building-wheat:after { + content: "\e4db\e4db" +} + +.fa-duotone.fa-gauge-max:after, +.fa-duotone.fa-tachometer-alt-fastest:after, +.fad.fa-gauge-max:after, +.fad.fa-tachometer-alt-fastest:after { + content: "\f626\f626" +} + +.fa-duotone.fa-person-breastfeeding:after, +.fad.fa-person-breastfeeding:after { + content: "\e53a\e53a" +} + +.fa-duotone.fa-apostrophe:after, +.fad.fa-apostrophe:after { + content: "\27\27" +} + +.fa-duotone.fa-file-png:after, +.fad.fa-file-png:after { + content: "\e666\e666" +} + +.fa-duotone.fa-fire-hydrant:after, +.fad.fa-fire-hydrant:after { + content: "\e17f\e17f" +} + +.fa-duotone.fa-right-to-bracket:after, +.fa-duotone.fa-sign-in-alt:after, +.fad.fa-right-to-bracket:after, +.fad.fa-sign-in-alt:after { + content: "\f2f6\f2f6" +} + +.fa-duotone.fa-video-plus:after, +.fad.fa-video-plus:after { + content: "\f4e1\f4e1" +} + +.fa-duotone.fa-arrow-alt-square-right:after, +.fa-duotone.fa-square-right:after, +.fad.fa-arrow-alt-square-right:after, +.fad.fa-square-right:after { + content: "\f352\f352" +} + +.fa-duotone.fa-comment-smile:after, +.fad.fa-comment-smile:after { + content: "\f4b4\f4b4" +} + +.fa-duotone.fa-venus:after, +.fad.fa-venus:after { + content: "\f221\f221" +} + +.fa-duotone.fa-passport:after, +.fad.fa-passport:after { + content: "\f5ab\f5ab" +} + +.fa-duotone.fa-inbox-arrow-down:after, +.fa-duotone.fa-inbox-in:after, +.fad.fa-inbox-arrow-down:after, +.fad.fa-inbox-in:after { + content: "\f310\f310" +} + +.fa-duotone.fa-heart-pulse:after, +.fa-duotone.fa-heartbeat:after, +.fad.fa-heart-pulse:after, +.fad.fa-heartbeat:after { + content: "\f21e\f21e" +} + +.fa-duotone.fa-circle-8:after, +.fad.fa-circle-8:after { + content: "\e0f5\e0f5" +} + +.fa-duotone.fa-clouds-moon:after, +.fad.fa-clouds-moon:after { + content: "\f745\f745" +} + +.fa-duotone.fa-clock-ten-thirty:after, +.fad.fa-clock-ten-thirty:after { + content: "\e355\e355" +} + +.fa-duotone.fa-people-carry-box:after, +.fa-duotone.fa-people-carry:after, +.fad.fa-people-carry-box:after, +.fad.fa-people-carry:after { + content: "\f4ce\f4ce" +} + +.fa-duotone.fa-folder-user:after, +.fad.fa-folder-user:after { + content: "\e18e\e18e" +} + +.fa-duotone.fa-trash-can-xmark:after, +.fad.fa-trash-can-xmark:after { + content: "\e2ae\e2ae" +} + +.fa-duotone.fa-temperature-high:after, +.fad.fa-temperature-high:after { + content: "\f769\f769" +} + +.fa-duotone.fa-microchip:after, +.fad.fa-microchip:after { + content: "\f2db\f2db" +} + +.fa-duotone.fa-left-long-to-line:after, +.fad.fa-left-long-to-line:after { + content: "\e41e\e41e" +} + +.fa-duotone.fa-crown:after, +.fad.fa-crown:after { + content: "\f521\f521" +} + +.fa-duotone.fa-weight-hanging:after, +.fad.fa-weight-hanging:after { + content: "\f5cd\f5cd" +} + +.fa-duotone.fa-xmarks-lines:after, +.fad.fa-xmarks-lines:after { + content: "\e59a\e59a" +} + +.fa-duotone.fa-file-prescription:after, +.fad.fa-file-prescription:after { + content: "\f572\f572" +} + +.fa-duotone.fa-calendar-range:after, +.fad.fa-calendar-range:after { + content: "\e0d6\e0d6" +} + +.fa-duotone.fa-flower-daffodil:after, +.fad.fa-flower-daffodil:after { + content: "\f800\f800" +} + +.fa-duotone.fa-hand-back-point-up:after, +.fad.fa-hand-back-point-up:after { + content: "\e1a2\e1a2" +} + +.fa-duotone.fa-weight-scale:after, +.fa-duotone.fa-weight:after, +.fad.fa-weight-scale:after, +.fad.fa-weight:after { + content: "\f496\f496" +} + +.fa-duotone.fa-arrow-up-to-arc:after, +.fad.fa-arrow-up-to-arc:after { + content: "\e617\e617" +} + +.fa-duotone.fa-star-exclamation:after, +.fad.fa-star-exclamation:after { + content: "\f2f3\f2f3" +} + +.fa-duotone.fa-books:after, +.fad.fa-books:after { + content: "\f5db\f5db" +} + +.fa-duotone.fa-user-friends:after, +.fa-duotone.fa-user-group:after, +.fad.fa-user-friends:after, +.fad.fa-user-group:after { + content: "\f500\f500" +} + +.fa-duotone.fa-arrow-up-a-z:after, +.fa-duotone.fa-sort-alpha-up:after, +.fad.fa-arrow-up-a-z:after, +.fad.fa-sort-alpha-up:after { + content: "\f15e\f15e" +} + +.fa-duotone.fa-layer-group-plus:after, +.fa-duotone.fa-layer-plus:after, +.fad.fa-layer-group-plus:after, +.fad.fa-layer-plus:after { + content: "\f5ff\f5ff" +} + +.fa-duotone.fa-play-pause:after, +.fad.fa-play-pause:after { + content: "\e22f\e22f" +} + +.fa-duotone.fa-block-question:after, +.fad.fa-block-question:after { + content: "\e3dd\e3dd" +} + +.fa-duotone.fa-snooze:after, +.fa-duotone.fa-zzz:after, +.fad.fa-snooze:after, +.fad.fa-zzz:after { + content: "\f880\f880" +} + +.fa-duotone.fa-scanner-image:after, +.fad.fa-scanner-image:after { + content: "\f8f3\f8f3" +} + +.fa-duotone.fa-tv-retro:after, +.fad.fa-tv-retro:after { + content: "\f401\f401" +} + +.fa-duotone.fa-square-t:after, +.fad.fa-square-t:after { + content: "\e280\e280" +} + +.fa-duotone.fa-barn-silo:after, +.fa-duotone.fa-farm:after, +.fad.fa-barn-silo:after, +.fad.fa-farm:after { + content: "\f864\f864" +} + +.fa-duotone.fa-chess-knight:after, +.fad.fa-chess-knight:after { + content: "\f441\f441" +} + +.fa-duotone.fa-bars-sort:after, +.fad.fa-bars-sort:after { + content: "\e0ae\e0ae" +} + +.fa-duotone.fa-palette-boxes:after, +.fa-duotone.fa-pallet-alt:after, +.fa-duotone.fa-pallet-boxes:after, +.fad.fa-palette-boxes:after, +.fad.fa-pallet-alt:after, +.fad.fa-pallet-boxes:after { + content: "\f483\f483" +} + +.fa-duotone.fa-face-laugh-squint:after, +.fa-duotone.fa-laugh-squint:after, +.fad.fa-face-laugh-squint:after, +.fad.fa-laugh-squint:after { + content: "\f59b\f59b" +} + +.fa-duotone.fa-code-simple:after, +.fad.fa-code-simple:after { + content: "\e13d\e13d" +} + +.fa-duotone.fa-bolt-slash:after, +.fad.fa-bolt-slash:after { + content: "\e0b8\e0b8" +} + +.fa-duotone.fa-panel-fire:after, +.fad.fa-panel-fire:after { + content: "\e42f\e42f" +} + +.fa-duotone.fa-binary-circle-check:after, +.fad.fa-binary-circle-check:after { + content: "\e33c\e33c" +} + +.fa-duotone.fa-comment-minus:after, +.fad.fa-comment-minus:after { + content: "\f4b1\f4b1" +} + +.fa-duotone.fa-burrito:after, +.fad.fa-burrito:after { + content: "\f7ed\f7ed" +} + +.fa-duotone.fa-violin:after, +.fad.fa-violin:after { + content: "\f8ed\f8ed" +} + +.fa-duotone.fa-objects-column:after, +.fad.fa-objects-column:after { + content: "\e3c1\e3c1" +} + +.fa-duotone.fa-chevron-square-down:after, +.fa-duotone.fa-square-chevron-down:after, +.fad.fa-chevron-square-down:after, +.fad.fa-square-chevron-down:after { + content: "\f329\f329" +} + +.fa-duotone.fa-comment-plus:after, +.fad.fa-comment-plus:after { + content: "\f4b2\f4b2" +} + +.fa-duotone.fa-triangle-instrument:after, +.fa-duotone.fa-triangle-music:after, +.fad.fa-triangle-instrument:after, +.fad.fa-triangle-music:after { + content: "\f8e2\f8e2" +} + +.fa-duotone.fa-wheelchair:after, +.fad.fa-wheelchair:after { + content: "\f193\f193" +} + +.fa-duotone.fa-user-pilot-tie:after, +.fad.fa-user-pilot-tie:after { + content: "\e2c1\e2c1" +} + +.fa-duotone.fa-piano-keyboard:after, +.fad.fa-piano-keyboard:after { + content: "\f8d5\f8d5" +} + +.fa-duotone.fa-bed-empty:after, +.fad.fa-bed-empty:after { + content: "\f8f9\f8f9" +} + +.fa-duotone.fa-arrow-circle-up:after, +.fa-duotone.fa-circle-arrow-up:after, +.fad.fa-arrow-circle-up:after, +.fad.fa-circle-arrow-up:after { + content: "\f0aa\f0aa" +} + +.fa-duotone.fa-toggle-on:after, +.fad.fa-toggle-on:after { + content: "\f205\f205" +} + +.fa-duotone.fa-rectangle-portrait:after, +.fa-duotone.fa-rectangle-vertical:after, +.fad.fa-rectangle-portrait:after, +.fad.fa-rectangle-vertical:after { + content: "\f2fb\f2fb" +} + +.fa-duotone.fa-person-walking:after, +.fa-duotone.fa-walking:after, +.fad.fa-person-walking:after, +.fad.fa-walking:after { + content: "\f554\f554" +} + +.fa-duotone.fa-l:after, +.fad.fa-l:after { + content: "\4c\4c" +} + +.fa-duotone.fa-signal-stream:after, +.fad.fa-signal-stream:after { + content: "\f8dd\f8dd" +} + +.fa-duotone.fa-down-to-bracket:after, +.fad.fa-down-to-bracket:after { + content: "\e4e7\e4e7" +} + +.fa-duotone.fa-circle-z:after, +.fad.fa-circle-z:after { + content: "\e130\e130" +} + +.fa-duotone.fa-stars:after, +.fad.fa-stars:after { + content: "\f762\f762" +} + +.fa-duotone.fa-fire:after, +.fad.fa-fire:after { + content: "\f06d\f06d" +} + +.fa-duotone.fa-bed-pulse:after, +.fa-duotone.fa-procedures:after, +.fad.fa-bed-pulse:after, +.fad.fa-procedures:after { + content: "\f487\f487" +} + +.fa-duotone.fa-house-day:after, +.fad.fa-house-day:after { + content: "\e00e\e00e" +} + +.fa-duotone.fa-shuttle-space:after, +.fa-duotone.fa-space-shuttle:after, +.fad.fa-shuttle-space:after, +.fad.fa-space-shuttle:after { + content: "\f197\f197" +} + +.fa-duotone.fa-shirt-long-sleeve:after, +.fad.fa-shirt-long-sleeve:after { + content: "\e3c7\e3c7" +} + +.fa-duotone.fa-chart-pie-alt:after, +.fa-duotone.fa-chart-pie-simple:after, +.fad.fa-chart-pie-alt:after, +.fad.fa-chart-pie-simple:after { + content: "\f64e\f64e" +} + +.fa-duotone.fa-face-laugh:after, +.fa-duotone.fa-laugh:after, +.fad.fa-face-laugh:after, +.fad.fa-laugh:after { + content: "\f599\f599" +} + +.fa-duotone.fa-folder-open:after, +.fad.fa-folder-open:after { + content: "\f07c\f07c" +} + +.fa-duotone.fa-album-collection-circle-user:after, +.fad.fa-album-collection-circle-user:after { + content: "\e48f\e48f" +} + +.fa-duotone.fa-candy:after, +.fad.fa-candy:after { + content: "\e3e7\e3e7" +} + +.fa-duotone.fa-bowl-hot:after, +.fa-duotone.fa-soup:after, +.fad.fa-bowl-hot:after, +.fad.fa-soup:after { + content: "\f823\f823" +} + +.fa-duotone.fa-flatbread:after, +.fad.fa-flatbread:after { + content: "\e40b\e40b" +} + +.fa-duotone.fa-heart-circle-plus:after, +.fad.fa-heart-circle-plus:after { + content: "\e500\e500" +} + +.fa-duotone.fa-code-fork:after, +.fad.fa-code-fork:after { + content: "\e13b\e13b" +} + +.fa-duotone.fa-city:after, +.fad.fa-city:after { + content: "\f64f\f64f" +} + +.fa-duotone.fa-signal-alt-1:after, +.fa-duotone.fa-signal-bars-weak:after, +.fad.fa-signal-alt-1:after, +.fad.fa-signal-bars-weak:after { + content: "\f691\f691" +} + +.fa-duotone.fa-microphone-alt:after, +.fa-duotone.fa-microphone-lines:after, +.fad.fa-microphone-alt:after, +.fad.fa-microphone-lines:after { + content: "\f3c9\f3c9" +} + +.fa-duotone.fa-clock-twelve:after, +.fad.fa-clock-twelve:after { + content: "\e358\e358" +} + +.fa-duotone.fa-pepper-hot:after, +.fad.fa-pepper-hot:after { + content: "\f816\f816" +} + +.fa-duotone.fa-citrus-slice:after, +.fad.fa-citrus-slice:after { + content: "\e2f5\e2f5" +} + +.fa-duotone.fa-sheep:after, +.fad.fa-sheep:after { + content: "\f711\f711" +} + +.fa-duotone.fa-unlock:after, +.fad.fa-unlock:after { + content: "\f09c\f09c" +} + +.fa-duotone.fa-colon-sign:after, +.fad.fa-colon-sign:after { + content: "\e140\e140" +} + +.fa-duotone.fa-headset:after, +.fad.fa-headset:after { + content: "\f590\f590" +} + +.fa-duotone.fa-badger-honey:after, +.fad.fa-badger-honey:after { + content: "\f6b4\f6b4" +} + +.fa-duotone.fa-h4:after, +.fad.fa-h4:after { + content: "\f86a\f86a" +} + +.fa-duotone.fa-store-slash:after, +.fad.fa-store-slash:after { + content: "\e071\e071" +} + +.fa-duotone.fa-road-circle-xmark:after, +.fad.fa-road-circle-xmark:after { + content: "\e566\e566" +} + +.fa-duotone.fa-signal-slash:after, +.fad.fa-signal-slash:after { + content: "\f695\f695" +} + +.fa-duotone.fa-user-minus:after, +.fad.fa-user-minus:after { + content: "\f503\f503" +} + +.fa-duotone.fa-mars-stroke-up:after, +.fa-duotone.fa-mars-stroke-v:after, +.fad.fa-mars-stroke-up:after, +.fad.fa-mars-stroke-v:after { + content: "\f22a\f22a" +} + +.fa-duotone.fa-champagne-glasses:after, +.fa-duotone.fa-glass-cheers:after, +.fad.fa-champagne-glasses:after, +.fad.fa-glass-cheers:after { + content: "\f79f\f79f" +} + +.fa-duotone.fa-taco:after, +.fad.fa-taco:after { + content: "\f826\f826" +} + +.fa-duotone.fa-hexagon-plus:after, +.fa-duotone.fa-plus-hexagon:after, +.fad.fa-hexagon-plus:after, +.fad.fa-plus-hexagon:after { + content: "\f300\f300" +} + +.fa-duotone.fa-clipboard:after, +.fad.fa-clipboard:after { + content: "\f328\f328" +} + +.fa-duotone.fa-house-circle-exclamation:after, +.fad.fa-house-circle-exclamation:after { + content: "\e50a\e50a" +} + +.fa-duotone.fa-file-arrow-up:after, +.fa-duotone.fa-file-upload:after, +.fad.fa-file-arrow-up:after, +.fad.fa-file-upload:after { + content: "\f574\f574" +} + +.fa-duotone.fa-wifi-3:after, +.fa-duotone.fa-wifi-strong:after, +.fa-duotone.fa-wifi:after, +.fad.fa-wifi-3:after, +.fad.fa-wifi-strong:after, +.fad.fa-wifi:after { + content: "\f1eb\f1eb" +} + +.fa-duotone.fa-comments-alt:after, +.fa-duotone.fa-messages:after, +.fad.fa-comments-alt:after, +.fad.fa-messages:after { + content: "\f4b6\f4b6" +} + +.fa-duotone.fa-bath:after, +.fa-duotone.fa-bathtub:after, +.fad.fa-bath:after, +.fad.fa-bathtub:after { + content: "\f2cd\f2cd" +} + +.fa-duotone.fa-umbrella-alt:after, +.fa-duotone.fa-umbrella-simple:after, +.fad.fa-umbrella-alt:after, +.fad.fa-umbrella-simple:after { + content: "\e2bc\e2bc" +} + +.fa-duotone.fa-rectangle-history-circle-plus:after, +.fad.fa-rectangle-history-circle-plus:after { + content: "\e4a3\e4a3" +} + +.fa-duotone.fa-underline:after, +.fad.fa-underline:after { + content: "\f0cd\f0cd" +} + +.fa-duotone.fa-prescription-bottle-pill:after, +.fad.fa-prescription-bottle-pill:after { + content: "\e5c0\e5c0" +} + +.fa-duotone.fa-user-edit:after, +.fa-duotone.fa-user-pen:after, +.fad.fa-user-edit:after, +.fad.fa-user-pen:after { + content: "\f4ff\f4ff" +} + +.fa-duotone.fa-binary-slash:after, +.fad.fa-binary-slash:after { + content: "\e33e\e33e" +} + +.fa-duotone.fa-square-o:after, +.fad.fa-square-o:after { + content: "\e278\e278" +} + +.fa-duotone.fa-signature:after, +.fad.fa-signature:after { + content: "\f5b7\f5b7" +} + +.fa-duotone.fa-stroopwafel:after, +.fad.fa-stroopwafel:after { + content: "\f551\f551" +} + +.fa-duotone.fa-bold:after, +.fad.fa-bold:after { + content: "\f032\f032" +} + +.fa-duotone.fa-anchor-lock:after, +.fad.fa-anchor-lock:after { + content: "\e4ad\e4ad" +} + +.fa-duotone.fa-building-ngo:after, +.fad.fa-building-ngo:after { + content: "\e4d7\e4d7" +} + +.fa-duotone.fa-transporter-3:after, +.fad.fa-transporter-3:after { + content: "\e045\e045" +} + +.fa-duotone.fa-engine-exclamation:after, +.fa-duotone.fa-engine-warning:after, +.fad.fa-engine-exclamation:after, +.fad.fa-engine-warning:after { + content: "\f5f2\f5f2" +} + +.fa-duotone.fa-circle-down-right:after, +.fad.fa-circle-down-right:after { + content: "\e108\e108" +} + +.fa-duotone.fa-square-k:after, +.fad.fa-square-k:after { + content: "\e274\e274" +} + +.fa-duotone.fa-manat-sign:after, +.fad.fa-manat-sign:after { + content: "\e1d5\e1d5" +} + +.fa-duotone.fa-money-check-edit:after, +.fa-duotone.fa-money-check-pen:after, +.fad.fa-money-check-edit:after, +.fad.fa-money-check-pen:after { + content: "\f872\f872" +} + +.fa-duotone.fa-not-equal:after, +.fad.fa-not-equal:after { + content: "\f53e\f53e" +} + +.fa-duotone.fa-border-style:after, +.fa-duotone.fa-border-top-left:after, +.fad.fa-border-style:after, +.fad.fa-border-top-left:after { + content: "\f853\f853" +} + +.fa-duotone.fa-map-location-dot:after, +.fa-duotone.fa-map-marked-alt:after, +.fad.fa-map-location-dot:after, +.fad.fa-map-marked-alt:after { + content: "\f5a0\f5a0" +} + +.fa-duotone.fa-tilde:after, +.fad.fa-tilde:after { + content: "\7e\7e" +} + +.fa-duotone.fa-jedi:after, +.fad.fa-jedi:after { + content: "\f669\f669" +} + +.fa-duotone.fa-poll:after, +.fa-duotone.fa-square-poll-vertical:after, +.fad.fa-poll:after, +.fad.fa-square-poll-vertical:after { + content: "\f681\f681" +} + +.fa-duotone.fa-arrow-down-square-triangle:after, +.fa-duotone.fa-sort-shapes-down-alt:after, +.fad.fa-arrow-down-square-triangle:after, +.fad.fa-sort-shapes-down-alt:after { + content: "\f889\f889" +} + +.fa-duotone.fa-mug-hot:after, +.fad.fa-mug-hot:after { + content: "\f7b6\f7b6" +} + +.fa-duotone.fa-dog-leashed:after, +.fad.fa-dog-leashed:after { + content: "\f6d4\f6d4" +} + +.fa-duotone.fa-battery-car:after, +.fa-duotone.fa-car-battery:after, +.fad.fa-battery-car:after, +.fad.fa-car-battery:after { + content: "\f5df\f5df" +} + +.fa-duotone.fa-face-downcast-sweat:after, +.fad.fa-face-downcast-sweat:after { + content: "\e371\e371" +} + +.fa-duotone.fa-mailbox-flag-up:after, +.fad.fa-mailbox-flag-up:after { + content: "\e5bb\e5bb" +} + +.fa-duotone.fa-memo-circle-info:after, +.fad.fa-memo-circle-info:after { + content: "\e49a\e49a" +} + +.fa-duotone.fa-gift:after, +.fad.fa-gift:after { + content: "\f06b\f06b" +} + +.fa-duotone.fa-dice-two:after, +.fad.fa-dice-two:after { + content: "\f528\f528" +} + +.fa-duotone.fa-volume-medium:after, +.fa-duotone.fa-volume:after, +.fad.fa-volume-medium:after, +.fad.fa-volume:after { + content: "\f6a8\f6a8" +} + +.fa-duotone.fa-transporter-5:after, +.fad.fa-transporter-5:after { + content: "\e2a6\e2a6" +} + +.fa-duotone.fa-gauge-circle-bolt:after, +.fad.fa-gauge-circle-bolt:after { + content: "\e496\e496" +} + +.fa-duotone.fa-coin-front:after, +.fad.fa-coin-front:after { + content: "\e3fc\e3fc" +} + +.fa-duotone.fa-file-slash:after, +.fad.fa-file-slash:after { + content: "\e3a7\e3a7" +} + +.fa-duotone.fa-message-arrow-up-right:after, +.fad.fa-message-arrow-up-right:after { + content: "\e1dd\e1dd" +} + +.fa-duotone.fa-treasure-chest:after, +.fad.fa-treasure-chest:after { + content: "\f723\f723" +} + +.fa-duotone.fa-chess-queen:after, +.fad.fa-chess-queen:after { + content: "\f445\f445" +} + +.fa-duotone.fa-paint-brush-alt:after, +.fa-duotone.fa-paint-brush-fine:after, +.fa-duotone.fa-paintbrush-alt:after, +.fa-duotone.fa-paintbrush-fine:after, +.fad.fa-paint-brush-alt:after, +.fad.fa-paint-brush-fine:after, +.fad.fa-paintbrush-alt:after, +.fad.fa-paintbrush-fine:after { + content: "\f5a9\f5a9" +} + +.fa-duotone.fa-glasses:after, +.fad.fa-glasses:after { + content: "\f530\f530" +} + +.fa-duotone.fa-hood-cloak:after, +.fad.fa-hood-cloak:after { + content: "\f6ef\f6ef" +} + +.fa-duotone.fa-square-quote:after, +.fad.fa-square-quote:after { + content: "\e329\e329" +} + +.fa-duotone.fa-up-left:after, +.fad.fa-up-left:after { + content: "\e2bd\e2bd" +} + +.fa-duotone.fa-bring-front:after, +.fad.fa-bring-front:after { + content: "\f857\f857" +} + +.fa-duotone.fa-chess-board:after, +.fad.fa-chess-board:after { + content: "\f43c\f43c" +} + +.fa-duotone.fa-burger-cheese:after, +.fa-duotone.fa-cheeseburger:after, +.fad.fa-burger-cheese:after, +.fad.fa-cheeseburger:after { + content: "\f7f1\f7f1" +} + +.fa-duotone.fa-building-circle-check:after, +.fad.fa-building-circle-check:after { + content: "\e4d2\e4d2" +} + +.fa-duotone.fa-repeat-1:after, +.fad.fa-repeat-1:after { + content: "\f365\f365" +} + +.fa-duotone.fa-arrow-down-to-line:after, +.fa-duotone.fa-arrow-to-bottom:after, +.fad.fa-arrow-down-to-line:after, +.fad.fa-arrow-to-bottom:after { + content: "\f33d\f33d" +} + +.fa-duotone.fa-grid-5:after, +.fad.fa-grid-5:after { + content: "\e199\e199" +} + +.fa-duotone.fa-swap-arrows:after, +.fad.fa-swap-arrows:after { + content: "\e60a\e60a" +} + +.fa-duotone.fa-right-long-to-line:after, +.fad.fa-right-long-to-line:after { + content: "\e444\e444" +} + +.fa-duotone.fa-person-chalkboard:after, +.fad.fa-person-chalkboard:after { + content: "\e53d\e53d" +} + +.fa-duotone.fa-mars-stroke-h:after, +.fa-duotone.fa-mars-stroke-right:after, +.fad.fa-mars-stroke-h:after, +.fad.fa-mars-stroke-right:after { + content: "\f22b\f22b" +} + +.fa-duotone.fa-hand-back-fist:after, +.fa-duotone.fa-hand-rock:after, +.fad.fa-hand-back-fist:after, +.fad.fa-hand-rock:after { + content: "\f255\f255" +} + +.fa-duotone.fa-grid-round-5:after, +.fad.fa-grid-round-5:after { + content: "\e5de\e5de" +} + +.fa-duotone.fa-tally-5:after, +.fa-duotone.fa-tally:after, +.fad.fa-tally-5:after, +.fad.fa-tally:after { + content: "\f69c\f69c" +} + +.fa-duotone.fa-caret-square-up:after, +.fa-duotone.fa-square-caret-up:after, +.fad.fa-caret-square-up:after, +.fad.fa-square-caret-up:after { + content: "\f151\f151" +} + +.fa-duotone.fa-cloud-showers-water:after, +.fad.fa-cloud-showers-water:after { + content: "\e4e4\e4e4" +} + +.fa-duotone.fa-bar-chart:after, +.fa-duotone.fa-chart-bar:after, +.fad.fa-bar-chart:after, +.fad.fa-chart-bar:after { + content: "\f080\f080" +} + +.fa-duotone.fa-hands-bubbles:after, +.fa-duotone.fa-hands-wash:after, +.fad.fa-hands-bubbles:after, +.fad.fa-hands-wash:after { + content: "\e05e\e05e" +} + +.fa-duotone.fa-less-than-equal:after, +.fad.fa-less-than-equal:after { + content: "\f537\f537" +} + +.fa-duotone.fa-train:after, +.fad.fa-train:after { + content: "\f238\f238" +} + +.fa-duotone.fa-up-from-dotted-line:after, +.fad.fa-up-from-dotted-line:after { + content: "\e456\e456" +} + +.fa-duotone.fa-eye-low-vision:after, +.fa-duotone.fa-low-vision:after, +.fad.fa-eye-low-vision:after, +.fad.fa-low-vision:after { + content: "\f2a8\f2a8" +} + +.fa-duotone.fa-traffic-light-go:after, +.fad.fa-traffic-light-go:after { + content: "\f638\f638" +} + +.fa-duotone.fa-face-exhaling:after, +.fad.fa-face-exhaling:after { + content: "\e480\e480" +} + +.fa-duotone.fa-sensor-fire:after, +.fad.fa-sensor-fire:after { + content: "\e02a\e02a" +} + +.fa-duotone.fa-user-unlock:after, +.fad.fa-user-unlock:after { + content: "\e058\e058" +} + +.fa-duotone.fa-hexagon-divide:after, +.fad.fa-hexagon-divide:after { + content: "\e1ad\e1ad" +} + +.fa-duotone.fa-00:after, +.fad.fa-00:after { + content: "\e467\e467" +} + +.fa-duotone.fa-crow:after, +.fad.fa-crow:after { + content: "\f520\f520" +} + +.fa-duotone.fa-betamax:after, +.fa-duotone.fa-cassette-betamax:after, +.fad.fa-betamax:after, +.fad.fa-cassette-betamax:after { + content: "\f8a4\f8a4" +} + +.fa-duotone.fa-sailboat:after, +.fad.fa-sailboat:after { + content: "\e445\e445" +} + +.fa-duotone.fa-window-restore:after, +.fad.fa-window-restore:after { + content: "\f2d2\f2d2" +} + +.fa-duotone.fa-nfc-magnifying-glass:after, +.fad.fa-nfc-magnifying-glass:after { + content: "\e1f9\e1f9" +} + +.fa-duotone.fa-file-binary:after, +.fad.fa-file-binary:after { + content: "\e175\e175" +} + +.fa-duotone.fa-circle-v:after, +.fad.fa-circle-v:after { + content: "\e12a\e12a" +} + +.fa-duotone.fa-plus-square:after, +.fa-duotone.fa-square-plus:after, +.fad.fa-plus-square:after, +.fad.fa-square-plus:after { + content: "\f0fe\f0fe" +} + +.fa-duotone.fa-bowl-scoops:after, +.fad.fa-bowl-scoops:after { + content: "\e3df\e3df" +} + +.fa-duotone.fa-mistletoe:after, +.fad.fa-mistletoe:after { + content: "\f7b4\f7b4" +} + +.fa-duotone.fa-custard:after, +.fad.fa-custard:after { + content: "\e403\e403" +} + +.fa-duotone.fa-lacrosse-stick:after, +.fad.fa-lacrosse-stick:after { + content: "\e3b5\e3b5" +} + +.fa-duotone.fa-hockey-mask:after, +.fad.fa-hockey-mask:after { + content: "\f6ee\f6ee" +} + +.fa-duotone.fa-sunrise:after, +.fad.fa-sunrise:after { + content: "\f766\f766" +} + +.fa-duotone.fa-subtitles:after, +.fad.fa-subtitles:after { + content: "\e60f\e60f" +} + +.fa-duotone.fa-panel-ews:after, +.fad.fa-panel-ews:after { + content: "\e42e\e42e" +} + +.fa-duotone.fa-torii-gate:after, +.fad.fa-torii-gate:after { + content: "\f6a1\f6a1" +} + +.fa-duotone.fa-cloud-exclamation:after, +.fad.fa-cloud-exclamation:after { + content: "\e491\e491" +} + +.fa-duotone.fa-comment-alt-lines:after, +.fa-duotone.fa-message-lines:after, +.fad.fa-comment-alt-lines:after, +.fad.fa-message-lines:after { + content: "\f4a6\f4a6" +} + +.fa-duotone.fa-frog:after, +.fad.fa-frog:after { + content: "\f52e\f52e" +} + +.fa-duotone.fa-bucket:after, +.fad.fa-bucket:after { + content: "\e4cf\e4cf" +} + +.fa-duotone.fa-floppy-disk-pen:after, +.fad.fa-floppy-disk-pen:after { + content: "\e182\e182" +} + +.fa-duotone.fa-image:after, +.fad.fa-image:after { + content: "\f03e\f03e" +} + +.fa-duotone.fa-window-frame:after, +.fad.fa-window-frame:after { + content: "\e04f\e04f" +} + +.fa-duotone.fa-microphone:after, +.fad.fa-microphone:after { + content: "\f130\f130" +} + +.fa-duotone.fa-cow:after, +.fad.fa-cow:after { + content: "\f6c8\f6c8" +} + +.fa-duotone.fa-file-zip:after, +.fad.fa-file-zip:after { + content: "\e5ee\e5ee" +} + +.fa-duotone.fa-square-ring:after, +.fad.fa-square-ring:after { + content: "\e44f\e44f" +} + +.fa-duotone.fa-arrow-alt-from-top:after, +.fa-duotone.fa-down-from-line:after, +.fad.fa-arrow-alt-from-top:after, +.fad.fa-down-from-line:after { + content: "\f349\f349" +} + +.fa-duotone.fa-caret-up:after, +.fad.fa-caret-up:after { + content: "\f0d8\f0d8" +} + +.fa-duotone.fa-shield-times:after, +.fa-duotone.fa-shield-xmark:after, +.fad.fa-shield-times:after, +.fad.fa-shield-xmark:after { + content: "\e24c\e24c" +} + +.fa-duotone.fa-screwdriver:after, +.fad.fa-screwdriver:after { + content: "\f54a\f54a" +} + +.fa-duotone.fa-circle-sort-down:after, +.fa-duotone.fa-sort-circle-down:after, +.fad.fa-circle-sort-down:after, +.fad.fa-sort-circle-down:after { + content: "\e031\e031" +} + +.fa-duotone.fa-folder-closed:after, +.fad.fa-folder-closed:after { + content: "\e185\e185" +} + +.fa-duotone.fa-house-tsunami:after, +.fad.fa-house-tsunami:after { + content: "\e515\e515" +} + +.fa-duotone.fa-square-nfi:after, +.fad.fa-square-nfi:after { + content: "\e576\e576" +} + +.fa-duotone.fa-forklift:after, +.fad.fa-forklift:after { + content: "\f47a\f47a" +} + +.fa-duotone.fa-arrow-up-from-ground-water:after, +.fad.fa-arrow-up-from-ground-water:after { + content: "\e4b5\e4b5" +} + +.fa-duotone.fa-bracket-square-right:after, +.fad.fa-bracket-square-right:after { + content: "\5d\5d" +} + +.fa-duotone.fa-glass-martini-alt:after, +.fa-duotone.fa-martini-glass:after, +.fad.fa-glass-martini-alt:after, +.fad.fa-martini-glass:after { + content: "\f57b\f57b" +} + +.fa-duotone.fa-rotate-back:after, +.fa-duotone.fa-rotate-backward:after, +.fa-duotone.fa-rotate-left:after, +.fa-duotone.fa-undo-alt:after, +.fad.fa-rotate-back:after, +.fad.fa-rotate-backward:after, +.fad.fa-rotate-left:after, +.fad.fa-undo-alt:after { + content: "\f2ea\f2ea" +} + +.fa-duotone.fa-columns:after, +.fa-duotone.fa-table-columns:after, +.fad.fa-columns:after, +.fad.fa-table-columns:after { + content: "\f0db\f0db" +} + +.fa-duotone.fa-square-a:after, +.fad.fa-square-a:after { + content: "\e25f\e25f" +} + +.fa-duotone.fa-tick:after, +.fad.fa-tick:after { + content: "\e32f\e32f" +} + +.fa-duotone.fa-lemon:after, +.fad.fa-lemon:after { + content: "\f094\f094" +} + +.fa-duotone.fa-head-side-mask:after, +.fad.fa-head-side-mask:after { + content: "\e063\e063" +} + +.fa-duotone.fa-handshake:after, +.fad.fa-handshake:after { + content: "\f2b5\f2b5" +} + +.fa-duotone.fa-gem:after, +.fad.fa-gem:after { + content: "\f3a5\f3a5" +} + +.fa-duotone.fa-dolly-box:after, +.fa-duotone.fa-dolly:after, +.fad.fa-dolly-box:after, +.fad.fa-dolly:after { + content: "\f472\f472" +} + +.fa-duotone.fa-smoking:after, +.fad.fa-smoking:after { + content: "\f48d\f48d" +} + +.fa-duotone.fa-compress-arrows-alt:after, +.fa-duotone.fa-minimize:after, +.fad.fa-compress-arrows-alt:after, +.fad.fa-minimize:after { + content: "\f78c\f78c" +} + +.fa-duotone.fa-refrigerator:after, +.fad.fa-refrigerator:after { + content: "\e026\e026" +} + +.fa-duotone.fa-monument:after, +.fad.fa-monument:after { + content: "\f5a6\f5a6" +} + +.fa-duotone.fa-octagon-xmark:after, +.fa-duotone.fa-times-octagon:after, +.fa-duotone.fa-xmark-octagon:after, +.fad.fa-octagon-xmark:after, +.fad.fa-times-octagon:after, +.fad.fa-xmark-octagon:after { + content: "\f2f0\f2f0" +} + +.fa-duotone.fa-align-slash:after, +.fad.fa-align-slash:after { + content: "\f846\f846" +} + +.fa-duotone.fa-snowplow:after, +.fad.fa-snowplow:after { + content: "\f7d2\f7d2" +} + +.fa-duotone.fa-angle-double-right:after, +.fa-duotone.fa-angles-right:after, +.fad.fa-angle-double-right:after, +.fad.fa-angles-right:after { + content: "\f101\f101" +} + +.fa-duotone.fa-truck-couch:after, +.fa-duotone.fa-truck-ramp-couch:after, +.fad.fa-truck-couch:after, +.fad.fa-truck-ramp-couch:after { + content: "\f4dd\f4dd" +} + +.fa-duotone.fa-cannabis:after, +.fad.fa-cannabis:after { + content: "\f55f\f55f" +} + +.fa-duotone.fa-circle-play:after, +.fa-duotone.fa-play-circle:after, +.fad.fa-circle-play:after, +.fad.fa-play-circle:after { + content: "\f144\f144" +} + +.fa-duotone.fa-arrow-up-right-and-arrow-down-left-from-center:after, +.fad.fa-arrow-up-right-and-arrow-down-left-from-center:after { + content: "\e0a0\e0a0" +} + +.fa-duotone.fa-location-arrow-up:after, +.fad.fa-location-arrow-up:after { + content: "\e63a\e63a" +} + +.fa-duotone.fa-tablets:after, +.fad.fa-tablets:after { + content: "\f490\f490" +} + +.fa-duotone.fa-360-degrees:after, +.fad.fa-360-degrees:after { + content: "\e2dc\e2dc" +} + +.fa-duotone.fa-ethernet:after, +.fad.fa-ethernet:after { + content: "\f796\f796" +} + +.fa-duotone.fa-eur:after, +.fa-duotone.fa-euro-sign:after, +.fa-duotone.fa-euro:after, +.fad.fa-eur:after, +.fad.fa-euro-sign:after, +.fad.fa-euro:after { + content: "\f153\f153" +} + +.fa-duotone.fa-chair:after, +.fad.fa-chair:after { + content: "\f6c0\f6c0" +} + +.fa-duotone.fa-check-circle:after, +.fa-duotone.fa-circle-check:after, +.fad.fa-check-circle:after, +.fad.fa-circle-check:after { + content: "\f058\f058" +} + +.fa-duotone.fa-square-dashed-circle-plus:after, +.fad.fa-square-dashed-circle-plus:after { + content: "\e5c2\e5c2" +} + +.fa-duotone.fa-hand-holding-circle-dollar:after, +.fad.fa-hand-holding-circle-dollar:after { + content: "\e621\e621" +} + +.fa-duotone.fa-money-simple-from-bracket:after, +.fad.fa-money-simple-from-bracket:after { + content: "\e313\e313" +} + +.fa-duotone.fa-bat:after, +.fad.fa-bat:after { + content: "\f6b5\f6b5" +} + +.fa-duotone.fa-circle-stop:after, +.fa-duotone.fa-stop-circle:after, +.fad.fa-circle-stop:after, +.fad.fa-stop-circle:after { + content: "\f28d\f28d" +} + +.fa-duotone.fa-head-side-headphones:after, +.fad.fa-head-side-headphones:after { + content: "\f8c2\f8c2" +} + +.fa-duotone.fa-phone-rotary:after, +.fad.fa-phone-rotary:after { + content: "\f8d3\f8d3" +} + +.fa-duotone.fa-compass-drafting:after, +.fa-duotone.fa-drafting-compass:after, +.fad.fa-compass-drafting:after, +.fad.fa-drafting-compass:after { + content: "\f568\f568" +} + +.fa-duotone.fa-plate-wheat:after, +.fad.fa-plate-wheat:after { + content: "\e55a\e55a" +} + +.fa-duotone.fa-calendar-circle-minus:after, +.fad.fa-calendar-circle-minus:after { + content: "\e46f\e46f" +} + +.fa-duotone.fa-chopsticks:after, +.fad.fa-chopsticks:after { + content: "\e3f7\e3f7" +} + +.fa-duotone.fa-car-mechanic:after, +.fa-duotone.fa-car-wrench:after, +.fad.fa-car-mechanic:after, +.fad.fa-car-wrench:after { + content: "\f5e3\f5e3" +} + +.fa-duotone.fa-icicles:after, +.fad.fa-icicles:after { + content: "\f7ad\f7ad" +} + +.fa-duotone.fa-person-shelter:after, +.fad.fa-person-shelter:after { + content: "\e54f\e54f" +} + +.fa-duotone.fa-neuter:after, +.fad.fa-neuter:after { + content: "\f22c\f22c" +} + +.fa-duotone.fa-id-badge:after, +.fad.fa-id-badge:after { + content: "\f2c1\f2c1" +} + +.fa-duotone.fa-kazoo:after, +.fad.fa-kazoo:after { + content: "\f8c7\f8c7" +} + +.fa-duotone.fa-marker:after, +.fad.fa-marker:after { + content: "\f5a1\f5a1" +} + +.fa-duotone.fa-bin-bottles:after, +.fad.fa-bin-bottles:after { + content: "\e5f5\e5f5" +} + +.fa-duotone.fa-face-laugh-beam:after, +.fa-duotone.fa-laugh-beam:after, +.fad.fa-face-laugh-beam:after, +.fad.fa-laugh-beam:after { + content: "\f59a\f59a" +} + +.fa-duotone.fa-square-arrow-down-left:after, +.fad.fa-square-arrow-down-left:after { + content: "\e261\e261" +} + +.fa-duotone.fa-battery-bolt:after, +.fad.fa-battery-bolt:after { + content: "\f376\f376" +} + +.fa-duotone.fa-tree-large:after, +.fad.fa-tree-large:after { + content: "\f7dd\f7dd" +} + +.fa-duotone.fa-helicopter-symbol:after, +.fad.fa-helicopter-symbol:after { + content: "\e502\e502" +} + +.fa-duotone.fa-aperture:after, +.fad.fa-aperture:after { + content: "\e2df\e2df" +} + +.fa-duotone.fa-universal-access:after, +.fad.fa-universal-access:after { + content: "\f29a\f29a" +} + +.fa-duotone.fa-gear-complex:after, +.fad.fa-gear-complex:after { + content: "\e5e9\e5e9" +} + +.fa-duotone.fa-file-magnifying-glass:after, +.fa-duotone.fa-file-search:after, +.fad.fa-file-magnifying-glass:after, +.fad.fa-file-search:after { + content: "\f865\f865" +} + +.fa-duotone.fa-up-right:after, +.fad.fa-up-right:after { + content: "\e2be\e2be" +} + +.fa-duotone.fa-chevron-circle-up:after, +.fa-duotone.fa-circle-chevron-up:after, +.fad.fa-chevron-circle-up:after, +.fad.fa-circle-chevron-up:after { + content: "\f139\f139" +} + +.fa-duotone.fa-user-police:after, +.fad.fa-user-police:after { + content: "\e333\e333" +} + +.fa-duotone.fa-lari-sign:after, +.fad.fa-lari-sign:after { + content: "\e1c8\e1c8" +} + +.fa-duotone.fa-volcano:after, +.fad.fa-volcano:after { + content: "\f770\f770" +} + +.fa-duotone.fa-teddy-bear:after, +.fad.fa-teddy-bear:after { + content: "\e3cf\e3cf" +} + +.fa-duotone.fa-stocking:after, +.fad.fa-stocking:after { + content: "\f7d5\f7d5" +} + +.fa-duotone.fa-person-walking-dashed-line-arrow-right:after, +.fad.fa-person-walking-dashed-line-arrow-right:after { + content: "\e553\e553" +} + +.fa-duotone.fa-image-slash:after, +.fad.fa-image-slash:after { + content: "\e1b7\e1b7" +} + +.fa-duotone.fa-mask-snorkel:after, +.fad.fa-mask-snorkel:after { + content: "\e3b7\e3b7" +} + +.fa-duotone.fa-smoke:after, +.fad.fa-smoke:after { + content: "\f760\f760" +} + +.fa-duotone.fa-gbp:after, +.fa-duotone.fa-pound-sign:after, +.fa-duotone.fa-sterling-sign:after, +.fad.fa-gbp:after, +.fad.fa-pound-sign:after, +.fad.fa-sterling-sign:after { + content: "\f154\f154" +} + +.fa-duotone.fa-battery-exclamation:after, +.fad.fa-battery-exclamation:after { + content: "\e0b0\e0b0" +} + +.fa-duotone.fa-viruses:after, +.fad.fa-viruses:after { + content: "\e076\e076" +} + +.fa-duotone.fa-square-person-confined:after, +.fad.fa-square-person-confined:after { + content: "\e577\e577" +} + +.fa-duotone.fa-user-tie:after, +.fad.fa-user-tie:after { + content: "\f508\f508" +} + +.fa-duotone.fa-arrow-down-long:after, +.fa-duotone.fa-long-arrow-down:after, +.fad.fa-arrow-down-long:after, +.fad.fa-long-arrow-down:after { + content: "\f175\f175" +} + +.fa-duotone.fa-tent-arrow-down-to-line:after, +.fad.fa-tent-arrow-down-to-line:after { + content: "\e57e\e57e" +} + +.fa-duotone.fa-certificate:after, +.fad.fa-certificate:after { + content: "\f0a3\f0a3" +} + +.fa-duotone.fa-crystal-ball:after, +.fad.fa-crystal-ball:after { + content: "\e362\e362" +} + +.fa-duotone.fa-mail-reply-all:after, +.fa-duotone.fa-reply-all:after, +.fad.fa-mail-reply-all:after, +.fad.fa-reply-all:after { + content: "\f122\f122" +} + +.fa-duotone.fa-suitcase:after, +.fad.fa-suitcase:after { + content: "\f0f2\f0f2" +} + +.fa-duotone.fa-person-skating:after, +.fa-duotone.fa-skating:after, +.fad.fa-person-skating:after, +.fad.fa-skating:after { + content: "\f7c5\f7c5" +} + +.fa-duotone.fa-star-shooting:after, +.fad.fa-star-shooting:after { + content: "\e036\e036" +} + +.fa-duotone.fa-binary-lock:after, +.fad.fa-binary-lock:after { + content: "\e33d\e33d" +} + +.fa-duotone.fa-filter-circle-dollar:after, +.fa-duotone.fa-funnel-dollar:after, +.fad.fa-filter-circle-dollar:after, +.fad.fa-funnel-dollar:after { + content: "\f662\f662" +} + +.fa-duotone.fa-camera-retro:after, +.fad.fa-camera-retro:after { + content: "\f083\f083" +} + +.fa-duotone.fa-arrow-circle-down:after, +.fa-duotone.fa-circle-arrow-down:after, +.fad.fa-arrow-circle-down:after, +.fad.fa-circle-arrow-down:after { + content: "\f0ab\f0ab" +} + +.fa-duotone.fa-comment-edit:after, +.fa-duotone.fa-comment-pen:after, +.fad.fa-comment-edit:after, +.fad.fa-comment-pen:after { + content: "\f4ae\f4ae" +} + +.fa-duotone.fa-arrow-right-to-file:after, +.fa-duotone.fa-file-import:after, +.fad.fa-arrow-right-to-file:after, +.fad.fa-file-import:after { + content: "\f56f\f56f" +} + +.fa-duotone.fa-banjo:after, +.fad.fa-banjo:after { + content: "\f8a3\f8a3" +} + +.fa-duotone.fa-external-link-square:after, +.fa-duotone.fa-square-arrow-up-right:after, +.fad.fa-external-link-square:after, +.fad.fa-square-arrow-up-right:after { + content: "\f14c\f14c" +} + +.fa-duotone.fa-light-emergency-on:after, +.fad.fa-light-emergency-on:after { + content: "\e420\e420" +} + +.fa-duotone.fa-kerning:after, +.fad.fa-kerning:after { + content: "\f86f\f86f" +} + +.fa-duotone.fa-box-open:after, +.fad.fa-box-open:after { + content: "\f49e\f49e" +} + +.fa-duotone.fa-square-f:after, +.fad.fa-square-f:after { + content: "\e270\e270" +} + +.fa-duotone.fa-scroll:after, +.fad.fa-scroll:after { + content: "\f70e\f70e" +} + +.fa-duotone.fa-spa:after, +.fad.fa-spa:after { + content: "\f5bb\f5bb" +} + +.fa-duotone.fa-arrow-from-right:after, +.fa-duotone.fa-arrow-left-from-line:after, +.fad.fa-arrow-from-right:after, +.fad.fa-arrow-left-from-line:after { + content: "\f344\f344" +} + +.fa-duotone.fa-strawberry:after, +.fad.fa-strawberry:after { + content: "\e32b\e32b" +} + +.fa-duotone.fa-location-pin-lock:after, +.fad.fa-location-pin-lock:after { + content: "\e51f\e51f" +} + +.fa-duotone.fa-pause:after, +.fad.fa-pause:after { + content: "\f04c\f04c" +} + +.fa-duotone.fa-clock-eight-thirty:after, +.fad.fa-clock-eight-thirty:after { + content: "\e346\e346" +} + +.fa-duotone.fa-plane-alt:after, +.fa-duotone.fa-plane-engines:after, +.fad.fa-plane-alt:after, +.fad.fa-plane-engines:after { + content: "\f3de\f3de" +} + +.fa-duotone.fa-hill-avalanche:after, +.fad.fa-hill-avalanche:after { + content: "\e507\e507" +} + +.fa-duotone.fa-temperature-0:after, +.fa-duotone.fa-temperature-empty:after, +.fa-duotone.fa-thermometer-0:after, +.fa-duotone.fa-thermometer-empty:after, +.fad.fa-temperature-0:after, +.fad.fa-temperature-empty:after, +.fad.fa-thermometer-0:after, +.fad.fa-thermometer-empty:after { + content: "\f2cb\f2cb" +} + +.fa-duotone.fa-bomb:after, +.fad.fa-bomb:after { + content: "\f1e2\f1e2" +} + +.fa-duotone.fa-gauge-low:after, +.fa-duotone.fa-tachometer-alt-slow:after, +.fad.fa-gauge-low:after, +.fad.fa-tachometer-alt-slow:after { + content: "\f627\f627" +} + +.fa-duotone.fa-registered:after, +.fad.fa-registered:after { + content: "\f25d\f25d" +} + +.fa-duotone.fa-trash-can-plus:after, +.fad.fa-trash-can-plus:after { + content: "\e2ac\e2ac" +} + +.fa-duotone.fa-address-card:after, +.fa-duotone.fa-contact-card:after, +.fa-duotone.fa-vcard:after, +.fad.fa-address-card:after, +.fad.fa-contact-card:after, +.fad.fa-vcard:after { + content: "\f2bb\f2bb" +} + +.fa-duotone.fa-balance-scale-right:after, +.fa-duotone.fa-scale-unbalanced-flip:after, +.fad.fa-balance-scale-right:after, +.fad.fa-scale-unbalanced-flip:after { + content: "\f516\f516" +} + +.fa-duotone.fa-globe-snow:after, +.fad.fa-globe-snow:after { + content: "\f7a3\f7a3" +} + +.fa-duotone.fa-subscript:after, +.fad.fa-subscript:after { + content: "\f12c\f12c" +} + +.fa-duotone.fa-diamond-turn-right:after, +.fa-duotone.fa-directions:after, +.fad.fa-diamond-turn-right:after, +.fad.fa-directions:after { + content: "\f5eb\f5eb" +} + +.fa-duotone.fa-integral:after, +.fad.fa-integral:after { + content: "\f667\f667" +} + +.fa-duotone.fa-burst:after, +.fad.fa-burst:after { + content: "\e4dc\e4dc" +} + +.fa-duotone.fa-house-laptop:after, +.fa-duotone.fa-laptop-house:after, +.fad.fa-house-laptop:after, +.fad.fa-laptop-house:after { + content: "\e066\e066" +} + +.fa-duotone.fa-face-tired:after, +.fa-duotone.fa-tired:after, +.fad.fa-face-tired:after, +.fad.fa-tired:after { + content: "\f5c8\f5c8" +} + +.fa-duotone.fa-money-bills:after, +.fad.fa-money-bills:after { + content: "\e1f3\e1f3" +} + +.fa-duotone.fa-blinds-raised:after, +.fad.fa-blinds-raised:after { + content: "\f8fd\f8fd" +} + +.fa-duotone.fa-smog:after, +.fad.fa-smog:after { + content: "\f75f\f75f" +} + +.fa-duotone.fa-ufo-beam:after, +.fad.fa-ufo-beam:after { + content: "\e048\e048" +} + +.fa-duotone.fa-caret-circle-up:after, +.fa-duotone.fa-circle-caret-up:after, +.fad.fa-caret-circle-up:after, +.fad.fa-circle-caret-up:after { + content: "\f331\f331" +} + +.fa-duotone.fa-user-vneck-hair-long:after, +.fad.fa-user-vneck-hair-long:after { + content: "\e463\e463" +} + +.fa-duotone.fa-square-a-lock:after, +.fad.fa-square-a-lock:after { + content: "\e44d\e44d" +} + +.fa-duotone.fa-crutch:after, +.fad.fa-crutch:after { + content: "\f7f7\f7f7" +} + +.fa-duotone.fa-gas-pump-slash:after, +.fad.fa-gas-pump-slash:after { + content: "\f5f4\f5f4" +} + +.fa-duotone.fa-cloud-arrow-up:after, +.fa-duotone.fa-cloud-upload-alt:after, +.fa-duotone.fa-cloud-upload:after, +.fad.fa-cloud-arrow-up:after, +.fad.fa-cloud-upload-alt:after, +.fad.fa-cloud-upload:after { + content: "\f0ee\f0ee" +} + +.fa-duotone.fa-palette:after, +.fad.fa-palette:after { + content: "\f53f\f53f" +} + +.fa-duotone.fa-transporter-4:after, +.fad.fa-transporter-4:after { + content: "\e2a5\e2a5" +} + +.fa-duotone.fa-chart-mixed-up-circle-currency:after, +.fad.fa-chart-mixed-up-circle-currency:after { + content: "\e5d8\e5d8" +} + +.fa-duotone.fa-objects-align-right:after, +.fad.fa-objects-align-right:after { + content: "\e3bf\e3bf" +} + +.fa-duotone.fa-arrows-turn-right:after, +.fad.fa-arrows-turn-right:after { + content: "\e4c0\e4c0" +} + +.fa-duotone.fa-vest:after, +.fad.fa-vest:after { + content: "\e085\e085" +} + +.fa-duotone.fa-pig:after, +.fad.fa-pig:after { + content: "\f706\f706" +} + +.fa-duotone.fa-inbox-full:after, +.fad.fa-inbox-full:after { + content: "\e1ba\e1ba" +} + +.fa-duotone.fa-circle-envelope:after, +.fa-duotone.fa-envelope-circle:after, +.fad.fa-circle-envelope:after, +.fad.fa-envelope-circle:after { + content: "\e10c\e10c" +} + +.fa-duotone.fa-construction:after, +.fa-duotone.fa-triangle-person-digging:after, +.fad.fa-construction:after, +.fad.fa-triangle-person-digging:after { + content: "\f85d\f85d" +} + +.fa-duotone.fa-ferry:after, +.fad.fa-ferry:after { + content: "\e4ea\e4ea" +} + +.fa-duotone.fa-bullseye-arrow:after, +.fad.fa-bullseye-arrow:after { + content: "\f648\f648" +} + +.fa-duotone.fa-arrows-down-to-people:after, +.fad.fa-arrows-down-to-people:after { + content: "\e4b9\e4b9" +} + +.fa-duotone.fa-seedling:after, +.fa-duotone.fa-sprout:after, +.fad.fa-seedling:after, +.fad.fa-sprout:after { + content: "\f4d8\f4d8" +} + +.fa-duotone.fa-clock-seven:after, +.fad.fa-clock-seven:after { + content: "\e350\e350" +} + +.fa-duotone.fa-arrows-alt-h:after, +.fa-duotone.fa-left-right:after, +.fad.fa-arrows-alt-h:after, +.fad.fa-left-right:after { + content: "\f337\f337" +} + +.fa-duotone.fa-boxes-packing:after, +.fad.fa-boxes-packing:after { + content: "\e4c7\e4c7" +} + +.fa-duotone.fa-arrow-circle-left:after, +.fa-duotone.fa-circle-arrow-left:after, +.fad.fa-arrow-circle-left:after, +.fad.fa-circle-arrow-left:after { + content: "\f0a8\f0a8" +} + +.fa-duotone.fa-flashlight:after, +.fad.fa-flashlight:after { + content: "\f8b8\f8b8" +} + +.fa-duotone.fa-file-jpg:after, +.fad.fa-file-jpg:after { + content: "\e646\e646" +} + +.fa-duotone.fa-group-arrows-rotate:after, +.fad.fa-group-arrows-rotate:after { + content: "\e4f6\e4f6" +} + +.fa-duotone.fa-bowl-food:after, +.fad.fa-bowl-food:after { + content: "\e4c6\e4c6" +} + +.fa-duotone.fa-square-9:after, +.fad.fa-square-9:after { + content: "\e25e\e25e" +} + +.fa-duotone.fa-candy-cane:after, +.fad.fa-candy-cane:after { + content: "\f786\f786" +} + +.fa-duotone.fa-arrow-down-wide-short:after, +.fa-duotone.fa-sort-amount-asc:after, +.fa-duotone.fa-sort-amount-down:after, +.fad.fa-arrow-down-wide-short:after, +.fad.fa-sort-amount-asc:after, +.fad.fa-sort-amount-down:after { + content: "\f160\f160" +} + +.fa-duotone.fa-dollar-square:after, +.fa-duotone.fa-square-dollar:after, +.fa-duotone.fa-usd-square:after, +.fad.fa-dollar-square:after, +.fad.fa-square-dollar:after, +.fad.fa-usd-square:after { + content: "\f2e9\f2e9" +} + +.fa-duotone.fa-phone-arrow-right:after, +.fad.fa-phone-arrow-right:after { + content: "\e5be\e5be" +} + +.fa-duotone.fa-hand-holding-seedling:after, +.fad.fa-hand-holding-seedling:after { + content: "\f4bf\f4bf" +} + +.fa-duotone.fa-comment-alt-check:after, +.fa-duotone.fa-message-check:after, +.fad.fa-comment-alt-check:after, +.fad.fa-message-check:after { + content: "\f4a2\f4a2" +} + +.fa-duotone.fa-cloud-bolt:after, +.fa-duotone.fa-thunderstorm:after, +.fad.fa-cloud-bolt:after, +.fad.fa-thunderstorm:after { + content: "\f76c\f76c" +} + +.fa-duotone.fa-chart-line-up-down:after, +.fad.fa-chart-line-up-down:after { + content: "\e5d7\e5d7" +} + +.fa-duotone.fa-remove-format:after, +.fa-duotone.fa-text-slash:after, +.fad.fa-remove-format:after, +.fad.fa-text-slash:after { + content: "\f87d\f87d" +} + +.fa-duotone.fa-watch:after, +.fad.fa-watch:after { + content: "\f2e1\f2e1" +} + +.fa-duotone.fa-circle-down-left:after, +.fad.fa-circle-down-left:after { + content: "\e107\e107" +} + +.fa-duotone.fa-text:after, +.fad.fa-text:after { + content: "\f893\f893" +} + +.fa-duotone.fa-projector:after, +.fad.fa-projector:after { + content: "\f8d6\f8d6" +} + +.fa-duotone.fa-face-smile-wink:after, +.fa-duotone.fa-smile-wink:after, +.fad.fa-face-smile-wink:after, +.fad.fa-smile-wink:after { + content: "\f4da\f4da" +} + +.fa-duotone.fa-tombstone-alt:after, +.fa-duotone.fa-tombstone-blank:after, +.fad.fa-tombstone-alt:after, +.fad.fa-tombstone-blank:after { + content: "\f721\f721" +} + +.fa-duotone.fa-chess-king-alt:after, +.fa-duotone.fa-chess-king-piece:after, +.fad.fa-chess-king-alt:after, +.fad.fa-chess-king-piece:after { + content: "\f440\f440" +} + +.fa-duotone.fa-circle-6:after, +.fad.fa-circle-6:after { + content: "\e0f3\e0f3" +} + +.fa-duotone.fa-waves-sine:after, +.fad.fa-waves-sine:after { + content: "\e65d\e65d" +} + +.fa-duotone.fa-arrow-alt-left:after, +.fa-duotone.fa-left:after, +.fad.fa-arrow-alt-left:after, +.fad.fa-left:after { + content: "\f355\f355" +} + +.fa-duotone.fa-file-word:after, +.fad.fa-file-word:after { + content: "\f1c2\f1c2" +} + +.fa-duotone.fa-file-powerpoint:after, +.fad.fa-file-powerpoint:after { + content: "\f1c4\f1c4" +} + +.fa-duotone.fa-arrow-alt-square-down:after, +.fa-duotone.fa-square-down:after, +.fad.fa-arrow-alt-square-down:after, +.fad.fa-square-down:after { + content: "\f350\f350" +} + +.fa-duotone.fa-objects-align-center-vertical:after, +.fad.fa-objects-align-center-vertical:after { + content: "\e3bd\e3bd" +} + +.fa-duotone.fa-arrows-h:after, +.fa-duotone.fa-arrows-left-right:after, +.fad.fa-arrows-h:after, +.fad.fa-arrows-left-right:after { + content: "\f07e\f07e" +} + +.fa-duotone.fa-house-lock:after, +.fad.fa-house-lock:after { + content: "\e510\e510" +} + +.fa-duotone.fa-cloud-arrow-down:after, +.fa-duotone.fa-cloud-download-alt:after, +.fa-duotone.fa-cloud-download:after, +.fad.fa-cloud-arrow-down:after, +.fad.fa-cloud-download-alt:after, +.fad.fa-cloud-download:after { + content: "\f0ed\f0ed" +} + +.fa-duotone.fa-wreath:after, +.fad.fa-wreath:after { + content: "\f7e2\f7e2" +} + +.fa-duotone.fa-children:after, +.fad.fa-children:after { + content: "\e4e1\e4e1" +} + +.fa-duotone.fa-meter-droplet:after, +.fad.fa-meter-droplet:after { + content: "\e1ea\e1ea" +} + +.fa-duotone.fa-blackboard:after, +.fa-duotone.fa-chalkboard:after, +.fad.fa-blackboard:after, +.fad.fa-chalkboard:after { + content: "\f51b\f51b" +} + +.fa-duotone.fa-user-alt-slash:after, +.fa-duotone.fa-user-large-slash:after, +.fad.fa-user-alt-slash:after, +.fad.fa-user-large-slash:after { + content: "\f4fa\f4fa" +} + +.fa-duotone.fa-signal-4:after, +.fa-duotone.fa-signal-strong:after, +.fad.fa-signal-4:after, +.fad.fa-signal-strong:after { + content: "\f68f\f68f" +} + +.fa-duotone.fa-lollipop:after, +.fa-duotone.fa-lollypop:after, +.fad.fa-lollipop:after, +.fad.fa-lollypop:after { + content: "\e424\e424" +} + +.fa-duotone.fa-list-tree:after, +.fad.fa-list-tree:after { + content: "\e1d2\e1d2" +} + +.fa-duotone.fa-envelope-open:after, +.fad.fa-envelope-open:after { + content: "\f2b6\f2b6" +} + +.fa-duotone.fa-draw-circle:after, +.fad.fa-draw-circle:after { + content: "\f5ed\f5ed" +} + +.fa-duotone.fa-cat-space:after, +.fad.fa-cat-space:after { + content: "\e001\e001" +} + +.fa-duotone.fa-handshake-alt-slash:after, +.fa-duotone.fa-handshake-simple-slash:after, +.fad.fa-handshake-alt-slash:after, +.fad.fa-handshake-simple-slash:after { + content: "\e05f\e05f" +} + +.fa-duotone.fa-rabbit-fast:after, +.fa-duotone.fa-rabbit-running:after, +.fad.fa-rabbit-fast:after, +.fad.fa-rabbit-running:after { + content: "\f709\f709" +} + +.fa-duotone.fa-memo-pad:after, +.fad.fa-memo-pad:after { + content: "\e1da\e1da" +} + +.fa-duotone.fa-mattress-pillow:after, +.fad.fa-mattress-pillow:after { + content: "\e525\e525" +} + +.fa-duotone.fa-alarm-plus:after, +.fad.fa-alarm-plus:after { + content: "\f844\f844" +} + +.fa-duotone.fa-alicorn:after, +.fad.fa-alicorn:after { + content: "\f6b0\f6b0" +} + +.fa-duotone.fa-comment-question:after, +.fad.fa-comment-question:after { + content: "\e14b\e14b" +} + +.fa-duotone.fa-gingerbread-man:after, +.fad.fa-gingerbread-man:after { + content: "\f79d\f79d" +} + +.fa-duotone.fa-guarani-sign:after, +.fad.fa-guarani-sign:after { + content: "\e19a\e19a" +} + +.fa-duotone.fa-burger-fries:after, +.fad.fa-burger-fries:after { + content: "\e0cd\e0cd" +} + +.fa-duotone.fa-mug-tea:after, +.fad.fa-mug-tea:after { + content: "\f875\f875" +} + +.fa-duotone.fa-border-top:after, +.fad.fa-border-top:after { + content: "\f855\f855" +} + +.fa-duotone.fa-arrows-rotate:after, +.fa-duotone.fa-refresh:after, +.fa-duotone.fa-sync:after, +.fad.fa-arrows-rotate:after, +.fad.fa-refresh:after, +.fad.fa-sync:after { + content: "\f021\f021" +} + +.fa-duotone.fa-book-circle:after, +.fa-duotone.fa-circle-book-open:after, +.fad.fa-book-circle:after, +.fad.fa-circle-book-open:after { + content: "\e0ff\e0ff" +} + +.fa-duotone.fa-arrows-to-dotted-line:after, +.fad.fa-arrows-to-dotted-line:after { + content: "\e0a6\e0a6" +} + +.fa-duotone.fa-fire-extinguisher:after, +.fad.fa-fire-extinguisher:after { + content: "\f134\f134" +} + +.fa-duotone.fa-magnifying-glass-arrows-rotate:after, +.fad.fa-magnifying-glass-arrows-rotate:after { + content: "\e65e\e65e" +} + +.fa-duotone.fa-garage-open:after, +.fad.fa-garage-open:after { + content: "\e00b\e00b" +} + +.fa-duotone.fa-shelves-empty:after, +.fad.fa-shelves-empty:after { + content: "\e246\e246" +} + +.fa-duotone.fa-cruzeiro-sign:after, +.fad.fa-cruzeiro-sign:after { + content: "\e152\e152" +} + +.fa-duotone.fa-watch-apple:after, +.fad.fa-watch-apple:after { + content: "\e2cb\e2cb" +} + +.fa-duotone.fa-watch-calculator:after, +.fad.fa-watch-calculator:after { + content: "\f8f0\f8f0" +} + +.fa-duotone.fa-list-dropdown:after, +.fad.fa-list-dropdown:after { + content: "\e1cf\e1cf" +} + +.fa-duotone.fa-cabinet-filing:after, +.fad.fa-cabinet-filing:after { + content: "\f64b\f64b" +} + +.fa-duotone.fa-burger-soda:after, +.fad.fa-burger-soda:after { + content: "\f858\f858" +} + +.fa-duotone.fa-arrow-square-up:after, +.fa-duotone.fa-square-arrow-up:after, +.fad.fa-arrow-square-up:after, +.fad.fa-square-arrow-up:after { + content: "\f33c\f33c" +} + +.fa-duotone.fa-greater-than-equal:after, +.fad.fa-greater-than-equal:after { + content: "\f532\f532" +} + +.fa-duotone.fa-pallet-box:after, +.fad.fa-pallet-box:after { + content: "\e208\e208" +} + +.fa-duotone.fa-face-confounded:after, +.fad.fa-face-confounded:after { + content: "\e36c\e36c" +} + +.fa-duotone.fa-shield-alt:after, +.fa-duotone.fa-shield-halved:after, +.fad.fa-shield-alt:after, +.fad.fa-shield-halved:after { + content: "\f3ed\f3ed" +} + +.fa-duotone.fa-truck-plow:after, +.fad.fa-truck-plow:after { + content: "\f7de\f7de" +} + +.fa-duotone.fa-atlas:after, +.fa-duotone.fa-book-atlas:after, +.fad.fa-atlas:after, +.fad.fa-book-atlas:after { + content: "\f558\f558" +} + +.fa-duotone.fa-virus:after, +.fad.fa-virus:after { + content: "\e074\e074" +} + +.fa-duotone.fa-grid-round-2:after, +.fad.fa-grid-round-2:after { + content: "\e5db\e5db" +} + +.fa-duotone.fa-comment-middle-top:after, +.fad.fa-comment-middle-top:after { + content: "\e14a\e14a" +} + +.fa-duotone.fa-wave:after, +.fad.fa-wave:after { + content: "\e65b\e65b" +} + +.fa-duotone.fa-envelope-circle-check:after, +.fad.fa-envelope-circle-check:after { + content: "\e4e8\e4e8" +} + +.fa-duotone.fa-layer-group:after, +.fad.fa-layer-group:after { + content: "\f5fd\f5fd" +} + +.fa-duotone.fa-restroom-simple:after, +.fad.fa-restroom-simple:after { + content: "\e23a\e23a" +} + +.fa-duotone.fa-arrows-to-dot:after, +.fad.fa-arrows-to-dot:after { + content: "\e4be\e4be" +} + +.fa-duotone.fa-border-outer:after, +.fad.fa-border-outer:after { + content: "\f851\f851" +} + +.fa-duotone.fa-hashtag-lock:after, +.fad.fa-hashtag-lock:after { + content: "\e415\e415" +} + +.fa-duotone.fa-clock-two-thirty:after, +.fad.fa-clock-two-thirty:after { + content: "\e35b\e35b" +} + +.fa-duotone.fa-archway:after, +.fad.fa-archway:after { + content: "\f557\f557" +} + +.fa-duotone.fa-heart-circle-check:after, +.fad.fa-heart-circle-check:after { + content: "\e4fd\e4fd" +} + +.fa-duotone.fa-house-chimney-crack:after, +.fa-duotone.fa-house-damage:after, +.fad.fa-house-chimney-crack:after, +.fad.fa-house-damage:after { + content: "\f6f1\f6f1" +} + +.fa-duotone.fa-file-archive:after, +.fa-duotone.fa-file-zipper:after, +.fad.fa-file-archive:after, +.fad.fa-file-zipper:after { + content: "\f1c6\f1c6" +} + +.fa-duotone.fa-ticket-perforated:after, +.fad.fa-ticket-perforated:after { + content: "\e63e\e63e" +} + +.fa-duotone.fa-heart-half:after, +.fad.fa-heart-half:after { + content: "\e1ab\e1ab" +} + +.fa-duotone.fa-comment-check:after, +.fad.fa-comment-check:after { + content: "\f4ac\f4ac" +} + +.fa-duotone.fa-square:after, +.fad.fa-square:after { + content: "\f0c8\f0c8" +} + +.fa-duotone.fa-memo:after, +.fad.fa-memo:after { + content: "\e1d8\e1d8" +} + +.fa-duotone.fa-glass-martini:after, +.fa-duotone.fa-martini-glass-empty:after, +.fad.fa-glass-martini:after, +.fad.fa-martini-glass-empty:after { + content: "\f000\f000" +} + +.fa-duotone.fa-couch:after, +.fad.fa-couch:after { + content: "\f4b8\f4b8" +} + +.fa-duotone.fa-cedi-sign:after, +.fad.fa-cedi-sign:after { + content: "\e0df\e0df" +} + +.fa-duotone.fa-italic:after, +.fad.fa-italic:after { + content: "\f033\f033" +} + +.fa-duotone.fa-glass-citrus:after, +.fad.fa-glass-citrus:after { + content: "\f869\f869" +} + +.fa-duotone.fa-calendar-lines-pen:after, +.fad.fa-calendar-lines-pen:after { + content: "\e472\e472" +} + +.fa-duotone.fa-church:after, +.fad.fa-church:after { + content: "\f51d\f51d" +} + +.fa-duotone.fa-person-snowmobiling:after, +.fa-duotone.fa-snowmobile:after, +.fad.fa-person-snowmobiling:after, +.fad.fa-snowmobile:after { + content: "\f7d1\f7d1" +} + +.fa-duotone.fa-face-hushed:after, +.fad.fa-face-hushed:after { + content: "\e37b\e37b" +} + +.fa-duotone.fa-comments-dollar:after, +.fad.fa-comments-dollar:after { + content: "\f653\f653" +} + +.fa-duotone.fa-tickets-simple:after, +.fad.fa-tickets-simple:after { + content: "\e659\e659" +} + +.fa-duotone.fa-pickaxe:after, +.fad.fa-pickaxe:after { + content: "\e5bf\e5bf" +} + +.fa-duotone.fa-link-simple-slash:after, +.fad.fa-link-simple-slash:after { + content: "\e1ce\e1ce" +} + +.fa-duotone.fa-democrat:after, +.fad.fa-democrat:after { + content: "\f747\f747" +} + +.fa-duotone.fa-face-confused:after, +.fad.fa-face-confused:after { + content: "\e36d\e36d" +} + +.fa-duotone.fa-pinball:after, +.fad.fa-pinball:after { + content: "\e229\e229" +} + +.fa-duotone.fa-z:after, +.fad.fa-z:after { + content: "\5a\5a" +} + +.fa-duotone.fa-person-skiing:after, +.fa-duotone.fa-skiing:after, +.fad.fa-person-skiing:after, +.fad.fa-skiing:after { + content: "\f7c9\f7c9" +} + +.fa-duotone.fa-deer:after, +.fad.fa-deer:after { + content: "\f78e\f78e" +} + +.fa-duotone.fa-input-pipe:after, +.fad.fa-input-pipe:after { + content: "\e1be\e1be" +} + +.fa-duotone.fa-road-lock:after, +.fad.fa-road-lock:after { + content: "\e567\e567" +} + +.fa-duotone.fa-a:after, +.fad.fa-a:after { + content: "\41\41" +} + +.fa-duotone.fa-bookmark-slash:after, +.fad.fa-bookmark-slash:after { + content: "\e0c2\e0c2" +} + +.fa-duotone.fa-temperature-arrow-down:after, +.fa-duotone.fa-temperature-down:after, +.fad.fa-temperature-arrow-down:after, +.fad.fa-temperature-down:after { + content: "\e03f\e03f" +} + +.fa-duotone.fa-mace:after, +.fad.fa-mace:after { + content: "\f6f8\f6f8" +} + +.fa-duotone.fa-feather-alt:after, +.fa-duotone.fa-feather-pointed:after, +.fad.fa-feather-alt:after, +.fad.fa-feather-pointed:after { + content: "\f56b\f56b" +} + +.fa-duotone.fa-sausage:after, +.fad.fa-sausage:after { + content: "\f820\f820" +} + +.fa-duotone.fa-trash-can-clock:after, +.fad.fa-trash-can-clock:after { + content: "\e2aa\e2aa" +} + +.fa-duotone.fa-p:after, +.fad.fa-p:after { + content: "\50\50" +} + +.fa-duotone.fa-broom-wide:after, +.fad.fa-broom-wide:after { + content: "\e5d1\e5d1" +} + +.fa-duotone.fa-snowflake:after, +.fad.fa-snowflake:after { + content: "\f2dc\f2dc" +} + +.fa-duotone.fa-stomach:after, +.fad.fa-stomach:after { + content: "\f623\f623" +} + +.fa-duotone.fa-newspaper:after, +.fad.fa-newspaper:after { + content: "\f1ea\f1ea" +} + +.fa-duotone.fa-ad:after, +.fa-duotone.fa-rectangle-ad:after, +.fad.fa-ad:after, +.fad.fa-rectangle-ad:after { + content: "\f641\f641" +} + +.fa-duotone.fa-guitar-electric:after, +.fad.fa-guitar-electric:after { + content: "\f8be\f8be" +} + +.fa-duotone.fa-arrow-turn-down-right:after, +.fad.fa-arrow-turn-down-right:after { + content: "\e3d6\e3d6" +} + +.fa-duotone.fa-moon-cloud:after, +.fad.fa-moon-cloud:after { + content: "\f754\f754" +} + +.fa-duotone.fa-bread-slice-butter:after, +.fad.fa-bread-slice-butter:after { + content: "\e3e1\e3e1" +} + +.fa-duotone.fa-arrow-circle-right:after, +.fa-duotone.fa-circle-arrow-right:after, +.fad.fa-arrow-circle-right:after, +.fad.fa-circle-arrow-right:after { + content: "\f0a9\f0a9" +} + +.fa-duotone.fa-user-group-crown:after, +.fa-duotone.fa-users-crown:after, +.fad.fa-user-group-crown:after, +.fad.fa-users-crown:after { + content: "\f6a5\f6a5" +} + +.fa-duotone.fa-circle-i:after, +.fad.fa-circle-i:after { + content: "\e111\e111" +} + +.fa-duotone.fa-toilet-paper-check:after, +.fad.fa-toilet-paper-check:after { + content: "\e5b2\e5b2" +} + +.fa-duotone.fa-filter-circle-xmark:after, +.fad.fa-filter-circle-xmark:after { + content: "\e17b\e17b" +} + +.fa-duotone.fa-locust:after, +.fad.fa-locust:after { + content: "\e520\e520" +} + +.fa-duotone.fa-sort:after, +.fa-duotone.fa-unsorted:after, +.fad.fa-sort:after, +.fad.fa-unsorted:after { + content: "\f0dc\f0dc" +} + +.fa-duotone.fa-list-1-2:after, +.fa-duotone.fa-list-numeric:after, +.fa-duotone.fa-list-ol:after, +.fad.fa-list-1-2:after, +.fad.fa-list-numeric:after, +.fad.fa-list-ol:after { + content: "\f0cb\f0cb" +} + +.fa-duotone.fa-chart-waterfall:after, +.fad.fa-chart-waterfall:after { + content: "\e0eb\e0eb" +} + +.fa-duotone.fa-sparkle:after, +.fad.fa-sparkle:after { + content: "\e5d6\e5d6" +} + +.fa-duotone.fa-face-party:after, +.fad.fa-face-party:after { + content: "\e383\e383" +} + +.fa-duotone.fa-kidneys:after, +.fad.fa-kidneys:after { + content: "\f5fb\f5fb" +} + +.fa-duotone.fa-wifi-exclamation:after, +.fad.fa-wifi-exclamation:after { + content: "\e2cf\e2cf" +} + +.fa-duotone.fa-chart-network:after, +.fad.fa-chart-network:after { + content: "\f78a\f78a" +} + +.fa-duotone.fa-person-dress-burst:after, +.fad.fa-person-dress-burst:after { + content: "\e544\e544" +} + +.fa-duotone.fa-dice-d4:after, +.fad.fa-dice-d4:after { + content: "\f6d0\f6d0" +} + +.fa-duotone.fa-money-check-alt:after, +.fa-duotone.fa-money-check-dollar:after, +.fad.fa-money-check-alt:after, +.fad.fa-money-check-dollar:after { + content: "\f53d\f53d" +} + +.fa-duotone.fa-vector-square:after, +.fad.fa-vector-square:after { + content: "\f5cb\f5cb" +} + +.fa-duotone.fa-bread-slice:after, +.fad.fa-bread-slice:after { + content: "\f7ec\f7ec" +} + +.fa-duotone.fa-language:after, +.fad.fa-language:after { + content: "\f1ab\f1ab" +} + +.fa-duotone.fa-wheat-awn-slash:after, +.fad.fa-wheat-awn-slash:after { + content: "\e338\e338" +} + +.fa-duotone.fa-face-kiss-wink-heart:after, +.fa-duotone.fa-kiss-wink-heart:after, +.fad.fa-face-kiss-wink-heart:after, +.fad.fa-kiss-wink-heart:after { + content: "\f598\f598" +} + +.fa-duotone.fa-dagger:after, +.fad.fa-dagger:after { + content: "\f6cb\f6cb" +} + +.fa-duotone.fa-podium:after, +.fad.fa-podium:after { + content: "\f680\f680" +} + +.fa-duotone.fa-memo-circle-check:after, +.fad.fa-memo-circle-check:after { + content: "\e1d9\e1d9" +} + +.fa-duotone.fa-route-highway:after, +.fad.fa-route-highway:after { + content: "\f61a\f61a" +} + +.fa-duotone.fa-arrow-alt-to-bottom:after, +.fa-duotone.fa-down-to-line:after, +.fad.fa-arrow-alt-to-bottom:after, +.fad.fa-down-to-line:after { + content: "\f34a\f34a" +} + +.fa-duotone.fa-filter:after, +.fad.fa-filter:after { + content: "\f0b0\f0b0" +} + +.fa-duotone.fa-square-g:after, +.fad.fa-square-g:after { + content: "\e271\e271" +} + +.fa-duotone.fa-circle-phone:after, +.fa-duotone.fa-phone-circle:after, +.fad.fa-circle-phone:after, +.fad.fa-phone-circle:after { + content: "\e11b\e11b" +} + +.fa-duotone.fa-clipboard-prescription:after, +.fad.fa-clipboard-prescription:after { + content: "\f5e8\f5e8" +} + +.fa-duotone.fa-user-nurse-hair:after, +.fad.fa-user-nurse-hair:after { + content: "\e45d\e45d" +} + +.fa-duotone.fa-question:after, +.fad.fa-question:after { + content: "\3f\3f" +} + +.fa-duotone.fa-file-signature:after, +.fad.fa-file-signature:after { + content: "\f573\f573" +} + +.fa-duotone.fa-toggle-large-on:after, +.fad.fa-toggle-large-on:after { + content: "\e5b1\e5b1" +} + +.fa-duotone.fa-arrows-alt:after, +.fa-duotone.fa-up-down-left-right:after, +.fad.fa-arrows-alt:after, +.fad.fa-up-down-left-right:after { + content: "\f0b2\f0b2" +} + +.fa-duotone.fa-dryer-alt:after, +.fa-duotone.fa-dryer-heat:after, +.fad.fa-dryer-alt:after, +.fad.fa-dryer-heat:after { + content: "\f862\f862" +} + +.fa-duotone.fa-house-chimney-user:after, +.fad.fa-house-chimney-user:after { + content: "\e065\e065" +} + +.fa-duotone.fa-hand-holding-heart:after, +.fad.fa-hand-holding-heart:after { + content: "\f4be\f4be" +} + +.fa-duotone.fa-arrow-up-small-big:after, +.fa-duotone.fa-sort-size-up-alt:after, +.fad.fa-arrow-up-small-big:after, +.fad.fa-sort-size-up-alt:after { + content: "\f88f\f88f" +} + +.fa-duotone.fa-train-track:after, +.fad.fa-train-track:after { + content: "\e453\e453" +} + +.fa-duotone.fa-puzzle-piece:after, +.fad.fa-puzzle-piece:after { + content: "\f12e\f12e" +} + +.fa-duotone.fa-money-check:after, +.fad.fa-money-check:after { + content: "\f53c\f53c" +} + +.fa-duotone.fa-star-half-alt:after, +.fa-duotone.fa-star-half-stroke:after, +.fad.fa-star-half-alt:after, +.fad.fa-star-half-stroke:after { + content: "\f5c0\f5c0" +} + +.fa-duotone.fa-file-exclamation:after, +.fad.fa-file-exclamation:after { + content: "\f31a\f31a" +} + +.fa-duotone.fa-code:after, +.fad.fa-code:after { + content: "\f121\f121" +} + +.fa-duotone.fa-glass-whiskey:after, +.fa-duotone.fa-whiskey-glass:after, +.fad.fa-glass-whiskey:after, +.fad.fa-whiskey-glass:after { + content: "\f7a0\f7a0" +} + +.fa-duotone.fa-moon-stars:after, +.fad.fa-moon-stars:after { + content: "\f755\f755" +} + +.fa-duotone.fa-building-circle-exclamation:after, +.fad.fa-building-circle-exclamation:after { + content: "\e4d3\e4d3" +} + +.fa-duotone.fa-clothes-hanger:after, +.fad.fa-clothes-hanger:after { + content: "\e136\e136" +} + +.fa-duotone.fa-mobile-iphone:after, +.fa-duotone.fa-mobile-notch:after, +.fad.fa-mobile-iphone:after, +.fad.fa-mobile-notch:after { + content: "\e1ee\e1ee" +} + +.fa-duotone.fa-magnifying-glass-chart:after, +.fad.fa-magnifying-glass-chart:after { + content: "\e522\e522" +} + +.fa-duotone.fa-arrow-up-right-from-square:after, +.fa-duotone.fa-external-link:after, +.fad.fa-arrow-up-right-from-square:after, +.fad.fa-external-link:after { + content: "\f08e\f08e" +} + +.fa-duotone.fa-cubes-stacked:after, +.fad.fa-cubes-stacked:after { + content: "\e4e6\e4e6" +} + +.fa-duotone.fa-images-user:after, +.fad.fa-images-user:after { + content: "\e1b9\e1b9" +} + +.fa-duotone.fa-krw:after, +.fa-duotone.fa-won-sign:after, +.fa-duotone.fa-won:after, +.fad.fa-krw:after, +.fad.fa-won-sign:after, +.fad.fa-won:after { + content: "\f159\f159" +} + +.fa-duotone.fa-image-polaroid-user:after, +.fad.fa-image-polaroid-user:after { + content: "\e1b6\e1b6" +} + +.fa-duotone.fa-virus-covid:after, +.fad.fa-virus-covid:after { + content: "\e4a8\e4a8" +} + +.fa-duotone.fa-square-ellipsis:after, +.fad.fa-square-ellipsis:after { + content: "\e26e\e26e" +} + +.fa-duotone.fa-pie:after, +.fad.fa-pie:after { + content: "\f705\f705" +} + +.fa-duotone.fa-chess-knight-alt:after, +.fa-duotone.fa-chess-knight-piece:after, +.fad.fa-chess-knight-alt:after, +.fad.fa-chess-knight-piece:after { + content: "\f442\f442" +} + +.fa-duotone.fa-austral-sign:after, +.fad.fa-austral-sign:after { + content: "\e0a9\e0a9" +} + +.fa-duotone.fa-cloud-plus:after, +.fad.fa-cloud-plus:after { + content: "\e35e\e35e" +} + +.fa-duotone.fa-f:after, +.fad.fa-f:after { + content: "\46\46" +} + +.fa-duotone.fa-leaf:after, +.fad.fa-leaf:after { + content: "\f06c\f06c" +} + +.fa-duotone.fa-bed-bunk:after, +.fad.fa-bed-bunk:after { + content: "\f8f8\f8f8" +} + +.fa-duotone.fa-road:after, +.fad.fa-road:after { + content: "\f018\f018" +} + +.fa-duotone.fa-cab:after, +.fa-duotone.fa-taxi:after, +.fad.fa-cab:after, +.fad.fa-taxi:after { + content: "\f1ba\f1ba" +} + +.fa-duotone.fa-person-circle-plus:after, +.fad.fa-person-circle-plus:after { + content: "\e541\e541" +} + +.fa-duotone.fa-chart-pie:after, +.fa-duotone.fa-pie-chart:after, +.fad.fa-chart-pie:after, +.fad.fa-pie-chart:after { + content: "\f200\f200" +} + +.fa-duotone.fa-bolt-lightning:after, +.fad.fa-bolt-lightning:after { + content: "\e0b7\e0b7" +} + +.fa-duotone.fa-clock-eight:after, +.fad.fa-clock-eight:after { + content: "\e345\e345" +} + +.fa-duotone.fa-sack-xmark:after, +.fad.fa-sack-xmark:after { + content: "\e56a\e56a" +} + +.fa-duotone.fa-file-xls:after, +.fad.fa-file-xls:after { + content: "\e64d\e64d" +} + +.fa-duotone.fa-file-excel:after, +.fad.fa-file-excel:after { + content: "\f1c3\f1c3" +} + +.fa-duotone.fa-file-contract:after, +.fad.fa-file-contract:after { + content: "\f56c\f56c" +} + +.fa-duotone.fa-fish-fins:after, +.fad.fa-fish-fins:after { + content: "\e4f2\e4f2" +} + +.fa-duotone.fa-circle-q:after, +.fad.fa-circle-q:after { + content: "\e11e\e11e" +} + +.fa-duotone.fa-building-flag:after, +.fad.fa-building-flag:after { + content: "\e4d5\e4d5" +} + +.fa-duotone.fa-face-grin-beam:after, +.fa-duotone.fa-grin-beam:after, +.fad.fa-face-grin-beam:after, +.fad.fa-grin-beam:after { + content: "\f582\f582" +} + +.fa-duotone.fa-object-ungroup:after, +.fad.fa-object-ungroup:after { + content: "\f248\f248" +} + +.fa-duotone.fa-face-disguise:after, +.fad.fa-face-disguise:after { + content: "\e370\e370" +} + +.fa-duotone.fa-circle-arrow-down-right:after, +.fad.fa-circle-arrow-down-right:after { + content: "\e0fa\e0fa" +} + +.fa-duotone.fa-alien-8bit:after, +.fa-duotone.fa-alien-monster:after, +.fad.fa-alien-8bit:after, +.fad.fa-alien-monster:after { + content: "\f8f6\f8f6" +} + +.fa-duotone.fa-hand-point-ribbon:after, +.fad.fa-hand-point-ribbon:after { + content: "\e1a6\e1a6" +} + +.fa-duotone.fa-poop:after, +.fad.fa-poop:after { + content: "\f619\f619" +} + +.fa-duotone.fa-object-exclude:after, +.fad.fa-object-exclude:after { + content: "\e49c\e49c" +} + +.fa-duotone.fa-telescope:after, +.fad.fa-telescope:after { + content: "\e03e\e03e" +} + +.fa-duotone.fa-location-pin:after, +.fa-duotone.fa-map-marker:after, +.fad.fa-location-pin:after, +.fad.fa-map-marker:after { + content: "\f041\f041" +} + +.fa-duotone.fa-square-list:after, +.fad.fa-square-list:after { + content: "\e489\e489" +} + +.fa-duotone.fa-kaaba:after, +.fad.fa-kaaba:after { + content: "\f66b\f66b" +} + +.fa-duotone.fa-toilet-paper:after, +.fad.fa-toilet-paper:after { + content: "\f71e\f71e" +} + +.fa-duotone.fa-hard-hat:after, +.fa-duotone.fa-hat-hard:after, +.fa-duotone.fa-helmet-safety:after, +.fad.fa-hard-hat:after, +.fad.fa-hat-hard:after, +.fad.fa-helmet-safety:after { + content: "\f807\f807" +} + +.fa-duotone.fa-comment-code:after, +.fad.fa-comment-code:after { + content: "\e147\e147" +} + +.fa-duotone.fa-sim-cards:after, +.fad.fa-sim-cards:after { + content: "\e251\e251" +} + +.fa-duotone.fa-starship:after, +.fad.fa-starship:after { + content: "\e039\e039" +} + +.fa-duotone.fa-eject:after, +.fad.fa-eject:after { + content: "\f052\f052" +} + +.fa-duotone.fa-arrow-alt-circle-right:after, +.fa-duotone.fa-circle-right:after, +.fad.fa-arrow-alt-circle-right:after, +.fad.fa-circle-right:after { + content: "\f35a\f35a" +} + +.fa-duotone.fa-plane-circle-check:after, +.fad.fa-plane-circle-check:after { + content: "\e555\e555" +} + +.fa-duotone.fa-seal:after, +.fad.fa-seal:after { + content: "\e241\e241" +} + +.fa-duotone.fa-user-cowboy:after, +.fad.fa-user-cowboy:after { + content: "\f8ea\f8ea" +} + +.fa-duotone.fa-hexagon-vertical-nft:after, +.fad.fa-hexagon-vertical-nft:after { + content: "\e505\e505" +} + +.fa-duotone.fa-face-rolling-eyes:after, +.fa-duotone.fa-meh-rolling-eyes:after, +.fad.fa-face-rolling-eyes:after, +.fad.fa-meh-rolling-eyes:after { + content: "\f5a5\f5a5" +} + +.fa-duotone.fa-bread-loaf:after, +.fad.fa-bread-loaf:after { + content: "\f7eb\f7eb" +} + +.fa-duotone.fa-rings-wedding:after, +.fad.fa-rings-wedding:after { + content: "\f81b\f81b" +} + +.fa-duotone.fa-object-group:after, +.fad.fa-object-group:after { + content: "\f247\f247" +} + +.fa-duotone.fa-french-fries:after, +.fad.fa-french-fries:after { + content: "\f803\f803" +} + +.fa-duotone.fa-chart-line:after, +.fa-duotone.fa-line-chart:after, +.fad.fa-chart-line:after, +.fad.fa-line-chart:after { + content: "\f201\f201" +} + +.fa-duotone.fa-calendar-arrow-down:after, +.fa-duotone.fa-calendar-download:after, +.fad.fa-calendar-arrow-down:after, +.fad.fa-calendar-download:after { + content: "\e0d0\e0d0" +} + +.fa-duotone.fa-send-back:after, +.fad.fa-send-back:after { + content: "\f87e\f87e" +} + +.fa-duotone.fa-mask-ventilator:after, +.fad.fa-mask-ventilator:after { + content: "\e524\e524" +} + +.fa-duotone.fa-tickets:after, +.fad.fa-tickets:after { + content: "\e658\e658" +} + +.fa-duotone.fa-signature-lock:after, +.fad.fa-signature-lock:after { + content: "\e3ca\e3ca" +} + +.fa-duotone.fa-arrow-right:after, +.fad.fa-arrow-right:after { + content: "\f061\f061" +} + +.fa-duotone.fa-map-signs:after, +.fa-duotone.fa-signs-post:after, +.fad.fa-map-signs:after, +.fad.fa-signs-post:after { + content: "\f277\f277" +} + +.fa-duotone.fa-octagon-plus:after, +.fa-duotone.fa-plus-octagon:after, +.fad.fa-octagon-plus:after, +.fad.fa-plus-octagon:after { + content: "\f301\f301" +} + +.fa-duotone.fa-cash-register:after, +.fad.fa-cash-register:after { + content: "\f788\f788" +} + +.fa-duotone.fa-person-circle-question:after, +.fad.fa-person-circle-question:after { + content: "\e542\e542" +} + +.fa-duotone.fa-melon-slice:after, +.fad.fa-melon-slice:after { + content: "\e311\e311" +} + +.fa-duotone.fa-space-station-moon:after, +.fad.fa-space-station-moon:after { + content: "\e033\e033" +} + +.fa-duotone.fa-comment-alt-smile:after, +.fa-duotone.fa-message-smile:after, +.fad.fa-comment-alt-smile:after, +.fad.fa-message-smile:after { + content: "\f4aa\f4aa" +} + +.fa-duotone.fa-cup-straw:after, +.fad.fa-cup-straw:after { + content: "\e363\e363" +} + +.fa-duotone.fa-arrow-alt-from-right:after, +.fa-duotone.fa-left-from-line:after, +.fad.fa-arrow-alt-from-right:after, +.fad.fa-left-from-line:after { + content: "\f348\f348" +} + +.fa-duotone.fa-h:after, +.fad.fa-h:after { + content: "\48\48" +} + +.fa-duotone.fa-basket-shopping-simple:after, +.fa-duotone.fa-shopping-basket-alt:after, +.fad.fa-basket-shopping-simple:after, +.fad.fa-shopping-basket-alt:after { + content: "\e0af\e0af" +} + +.fa-duotone.fa-hands-heart:after, +.fa-duotone.fa-hands-holding-heart:after, +.fad.fa-hands-heart:after, +.fad.fa-hands-holding-heart:after { + content: "\f4c3\f4c3" +} + +.fa-duotone.fa-clock-nine:after, +.fad.fa-clock-nine:after { + content: "\e34c\e34c" +} + +.fa-duotone.fa-hammer-brush:after, +.fad.fa-hammer-brush:after { + content: "\e620\e620" +} + +.fa-duotone.fa-tarp:after, +.fad.fa-tarp:after { + content: "\e57b\e57b" +} + +.fa-duotone.fa-face-sleepy:after, +.fad.fa-face-sleepy:after { + content: "\e38e\e38e" +} + +.fa-duotone.fa-hand-horns:after, +.fad.fa-hand-horns:after { + content: "\e1a9\e1a9" +} + +.fa-duotone.fa-screwdriver-wrench:after, +.fa-duotone.fa-tools:after, +.fad.fa-screwdriver-wrench:after, +.fad.fa-tools:after { + content: "\f7d9\f7d9" +} + +.fa-duotone.fa-arrows-to-eye:after, +.fad.fa-arrows-to-eye:after { + content: "\e4bf\e4bf" +} + +.fa-duotone.fa-circle-three-quarters:after, +.fad.fa-circle-three-quarters:after { + content: "\e125\e125" +} + +.fa-duotone.fa-trophy-alt:after, +.fa-duotone.fa-trophy-star:after, +.fad.fa-trophy-alt:after, +.fad.fa-trophy-star:after { + content: "\f2eb\f2eb" +} + +.fa-duotone.fa-plug-circle-bolt:after, +.fad.fa-plug-circle-bolt:after { + content: "\e55b\e55b" +} + +.fa-duotone.fa-face-thermometer:after, +.fad.fa-face-thermometer:after { + content: "\e39a\e39a" +} + +.fa-duotone.fa-grid-round-4:after, +.fad.fa-grid-round-4:after { + content: "\e5dd\e5dd" +} + +.fa-duotone.fa-sign-posts-wrench:after, +.fad.fa-sign-posts-wrench:after { + content: "\e626\e626" +} + +.fa-duotone.fa-shirt-running:after, +.fad.fa-shirt-running:after { + content: "\e3c8\e3c8" +} + +.fa-duotone.fa-book-circle-arrow-up:after, +.fad.fa-book-circle-arrow-up:after { + content: "\e0bd\e0bd" +} + +.fa-duotone.fa-face-nauseated:after, +.fad.fa-face-nauseated:after { + content: "\e381\e381" +} + +.fa-duotone.fa-heart:after, +.fad.fa-heart:after { + content: "\f004\f004" +} + +.fa-duotone.fa-file-chart-pie:after, +.fad.fa-file-chart-pie:after { + content: "\f65a\f65a" +} + +.fa-duotone.fa-mars-and-venus:after, +.fad.fa-mars-and-venus:after { + content: "\f224\f224" +} + +.fa-duotone.fa-home-user:after, +.fa-duotone.fa-house-user:after, +.fad.fa-home-user:after, +.fad.fa-house-user:after { + content: "\e1b0\e1b0" +} + +.fa-duotone.fa-circle-arrow-down-left:after, +.fad.fa-circle-arrow-down-left:after { + content: "\e0f9\e0f9" +} + +.fa-duotone.fa-dumpster-fire:after, +.fad.fa-dumpster-fire:after { + content: "\f794\f794" +} + +.fa-duotone.fa-hexagon-minus:after, +.fa-duotone.fa-minus-hexagon:after, +.fad.fa-hexagon-minus:after, +.fad.fa-minus-hexagon:after { + content: "\f307\f307" +} + +.fa-duotone.fa-arrow-alt-to-left:after, +.fa-duotone.fa-left-to-line:after, +.fad.fa-arrow-alt-to-left:after, +.fad.fa-left-to-line:after { + content: "\f34b\f34b" +} + +.fa-duotone.fa-house-crack:after, +.fad.fa-house-crack:after { + content: "\e3b1\e3b1" +} + +.fa-duotone.fa-paw-alt:after, +.fa-duotone.fa-paw-simple:after, +.fad.fa-paw-alt:after, +.fad.fa-paw-simple:after { + content: "\f701\f701" +} + +.fa-duotone.fa-arrow-left-long-to-line:after, +.fad.fa-arrow-left-long-to-line:after { + content: "\e3d4\e3d4" +} + +.fa-duotone.fa-brackets-round:after, +.fa-duotone.fa-parentheses:after, +.fad.fa-brackets-round:after, +.fad.fa-parentheses:after { + content: "\e0c5\e0c5" +} + +.fa-duotone.fa-cocktail:after, +.fa-duotone.fa-martini-glass-citrus:after, +.fad.fa-cocktail:after, +.fad.fa-martini-glass-citrus:after { + content: "\f561\f561" +} + +.fa-duotone.fa-user-shakespeare:after, +.fad.fa-user-shakespeare:after { + content: "\e2c2\e2c2" +} + +.fa-duotone.fa-arrow-right-to-arc:after, +.fad.fa-arrow-right-to-arc:after { + content: "\e4b2\e4b2" +} + +.fa-duotone.fa-face-surprise:after, +.fa-duotone.fa-surprise:after, +.fad.fa-face-surprise:after, +.fad.fa-surprise:after { + content: "\f5c2\f5c2" +} + +.fa-duotone.fa-bottle-water:after, +.fad.fa-bottle-water:after { + content: "\e4c5\e4c5" +} + +.fa-duotone.fa-circle-pause:after, +.fa-duotone.fa-pause-circle:after, +.fad.fa-circle-pause:after, +.fad.fa-pause-circle:after { + content: "\f28b\f28b" +} + +.fa-duotone.fa-gauge-circle-plus:after, +.fad.fa-gauge-circle-plus:after { + content: "\e498\e498" +} + +.fa-duotone.fa-folders:after, +.fad.fa-folders:after { + content: "\f660\f660" +} + +.fa-duotone.fa-angel:after, +.fad.fa-angel:after { + content: "\f779\f779" +} + +.fa-duotone.fa-value-absolute:after, +.fad.fa-value-absolute:after { + content: "\f6a6\f6a6" +} + +.fa-duotone.fa-rabbit:after, +.fad.fa-rabbit:after { + content: "\f708\f708" +} + +.fa-duotone.fa-toilet-paper-slash:after, +.fad.fa-toilet-paper-slash:after { + content: "\e072\e072" +} + +.fa-duotone.fa-circle-euro:after, +.fad.fa-circle-euro:after { + content: "\e5ce\e5ce" +} + +.fa-duotone.fa-apple-alt:after, +.fa-duotone.fa-apple-whole:after, +.fad.fa-apple-alt:after, +.fad.fa-apple-whole:after { + content: "\f5d1\f5d1" +} + +.fa-duotone.fa-kitchen-set:after, +.fad.fa-kitchen-set:after { + content: "\e51a\e51a" +} + +.fa-duotone.fa-diamond-half:after, +.fad.fa-diamond-half:after { + content: "\e5b7\e5b7" +} + +.fa-duotone.fa-lock-alt:after, +.fa-duotone.fa-lock-keyhole:after, +.fad.fa-lock-alt:after, +.fad.fa-lock-keyhole:after { + content: "\f30d\f30d" +} + +.fa-duotone.fa-r:after, +.fad.fa-r:after { + content: "\52\52" +} + +.fa-duotone.fa-temperature-1:after, +.fa-duotone.fa-temperature-quarter:after, +.fa-duotone.fa-thermometer-1:after, +.fa-duotone.fa-thermometer-quarter:after, +.fad.fa-temperature-1:after, +.fad.fa-temperature-quarter:after, +.fad.fa-thermometer-1:after, +.fad.fa-thermometer-quarter:after { + content: "\f2ca\f2ca" +} + +.fa-duotone.fa-info-square:after, +.fa-duotone.fa-square-info:after, +.fad.fa-info-square:after, +.fad.fa-square-info:after { + content: "\f30f\f30f" +} + +.fa-duotone.fa-wifi-slash:after, +.fad.fa-wifi-slash:after { + content: "\f6ac\f6ac" +} + +.fa-duotone.fa-toilet-paper-xmark:after, +.fad.fa-toilet-paper-xmark:after { + content: "\e5b3\e5b3" +} + +.fa-duotone.fa-hands-holding-dollar:after, +.fa-duotone.fa-hands-usd:after, +.fad.fa-hands-holding-dollar:after, +.fad.fa-hands-usd:after { + content: "\f4c5\f4c5" +} + +.fa-duotone.fa-cube:after, +.fad.fa-cube:after { + content: "\f1b2\f1b2" +} + +.fa-duotone.fa-arrow-down-triangle-square:after, +.fa-duotone.fa-sort-shapes-down:after, +.fad.fa-arrow-down-triangle-square:after, +.fad.fa-sort-shapes-down:after { + content: "\f888\f888" +} + +.fa-duotone.fa-bitcoin-sign:after, +.fad.fa-bitcoin-sign:after { + content: "\e0b4\e0b4" +} + +.fa-duotone.fa-shutters:after, +.fad.fa-shutters:after { + content: "\e449\e449" +} + +.fa-duotone.fa-shield-dog:after, +.fad.fa-shield-dog:after { + content: "\e573\e573" +} + +.fa-duotone.fa-solar-panel:after, +.fad.fa-solar-panel:after { + content: "\f5ba\f5ba" +} + +.fa-duotone.fa-lock-open:after, +.fad.fa-lock-open:after { + content: "\f3c1\f3c1" +} + +.fa-duotone.fa-table-tree:after, +.fad.fa-table-tree:after { + content: "\e293\e293" +} + +.fa-duotone.fa-house-chimney-heart:after, +.fad.fa-house-chimney-heart:after { + content: "\e1b2\e1b2" +} + +.fa-duotone.fa-tally-3:after, +.fad.fa-tally-3:after { + content: "\e296\e296" +} + +.fa-duotone.fa-elevator:after, +.fad.fa-elevator:after { + content: "\e16d\e16d" +} + +.fa-duotone.fa-money-bill-transfer:after, +.fad.fa-money-bill-transfer:after { + content: "\e528\e528" +} + +.fa-duotone.fa-money-bill-trend-up:after, +.fad.fa-money-bill-trend-up:after { + content: "\e529\e529" +} + +.fa-duotone.fa-house-flood-water-circle-arrow-right:after, +.fad.fa-house-flood-water-circle-arrow-right:after { + content: "\e50f\e50f" +} + +.fa-duotone.fa-poll-h:after, +.fa-duotone.fa-square-poll-horizontal:after, +.fad.fa-poll-h:after, +.fad.fa-square-poll-horizontal:after { + content: "\f682\f682" +} + +.fa-duotone.fa-circle:after, +.fad.fa-circle:after { + content: "\f111\f111" +} + +.fa-duotone.fa-cart-circle-exclamation:after, +.fad.fa-cart-circle-exclamation:after { + content: "\e3f2\e3f2" +} + +.fa-duotone.fa-sword:after, +.fad.fa-sword:after { + content: "\f71c\f71c" +} + +.fa-duotone.fa-backward-fast:after, +.fa-duotone.fa-fast-backward:after, +.fad.fa-backward-fast:after, +.fad.fa-fast-backward:after { + content: "\f049\f049" +} + +.fa-duotone.fa-recycle:after, +.fad.fa-recycle:after { + content: "\f1b8\f1b8" +} + +.fa-duotone.fa-user-astronaut:after, +.fad.fa-user-astronaut:after { + content: "\f4fb\f4fb" +} + +.fa-duotone.fa-interrobang:after, +.fad.fa-interrobang:after { + content: "\e5ba\e5ba" +} + +.fa-duotone.fa-plane-slash:after, +.fad.fa-plane-slash:after { + content: "\e069\e069" +} + +.fa-duotone.fa-circle-dashed:after, +.fad.fa-circle-dashed:after { + content: "\e105\e105" +} + +.fa-duotone.fa-trademark:after, +.fad.fa-trademark:after { + content: "\f25c\f25c" +} + +.fa-duotone.fa-basketball-ball:after, +.fa-duotone.fa-basketball:after, +.fad.fa-basketball-ball:after, +.fad.fa-basketball:after { + content: "\f434\f434" +} + +.fa-duotone.fa-fork-knife:after, +.fa-duotone.fa-utensils-alt:after, +.fad.fa-fork-knife:after, +.fad.fa-utensils-alt:after { + content: "\f2e6\f2e6" +} + +.fa-duotone.fa-satellite-dish:after, +.fad.fa-satellite-dish:after { + content: "\f7c0\f7c0" +} + +.fa-duotone.fa-badge-check:after, +.fad.fa-badge-check:after { + content: "\f336\f336" +} + +.fa-duotone.fa-arrow-alt-circle-up:after, +.fa-duotone.fa-circle-up:after, +.fad.fa-arrow-alt-circle-up:after, +.fad.fa-circle-up:after { + content: "\f35b\f35b" +} + +.fa-duotone.fa-slider:after, +.fad.fa-slider:after { + content: "\e252\e252" +} + +.fa-duotone.fa-mobile-alt:after, +.fa-duotone.fa-mobile-screen-button:after, +.fad.fa-mobile-alt:after, +.fad.fa-mobile-screen-button:after { + content: "\f3cd\f3cd" +} + +.fa-duotone.fa-clock-one-thirty:after, +.fad.fa-clock-one-thirty:after { + content: "\e34f\e34f" +} + +.fa-duotone.fa-inbox-arrow-up:after, +.fa-duotone.fa-inbox-out:after, +.fad.fa-inbox-arrow-up:after, +.fad.fa-inbox-out:after { + content: "\f311\f311" +} + +.fa-duotone.fa-cloud-slash:after, +.fad.fa-cloud-slash:after { + content: "\e137\e137" +} + +.fa-duotone.fa-volume-high:after, +.fa-duotone.fa-volume-up:after, +.fad.fa-volume-high:after, +.fad.fa-volume-up:after { + content: "\f028\f028" +} + +.fa-duotone.fa-users-rays:after, +.fad.fa-users-rays:after { + content: "\e593\e593" +} + +.fa-duotone.fa-wallet:after, +.fad.fa-wallet:after { + content: "\f555\f555" +} + +.fa-duotone.fa-octagon-check:after, +.fad.fa-octagon-check:after { + content: "\e426\e426" +} + +.fa-duotone.fa-flatbread-stuffed:after, +.fad.fa-flatbread-stuffed:after { + content: "\e40c\e40c" +} + +.fa-duotone.fa-clipboard-check:after, +.fad.fa-clipboard-check:after { + content: "\f46c\f46c" +} + +.fa-duotone.fa-cart-circle-plus:after, +.fad.fa-cart-circle-plus:after { + content: "\e3f3\e3f3" +} + +.fa-duotone.fa-shipping-timed:after, +.fa-duotone.fa-truck-clock:after, +.fad.fa-shipping-timed:after, +.fad.fa-truck-clock:after { + content: "\f48c\f48c" +} + +.fa-duotone.fa-pool-8-ball:after, +.fad.fa-pool-8-ball:after { + content: "\e3c5\e3c5" +} + +.fa-duotone.fa-file-audio:after, +.fad.fa-file-audio:after { + content: "\f1c7\f1c7" +} + +.fa-duotone.fa-turn-down-left:after, +.fad.fa-turn-down-left:after { + content: "\e331\e331" +} + +.fa-duotone.fa-lock-hashtag:after, +.fad.fa-lock-hashtag:after { + content: "\e423\e423" +} + +.fa-duotone.fa-chart-radar:after, +.fad.fa-chart-radar:after { + content: "\e0e7\e0e7" +} + +.fa-duotone.fa-staff:after, +.fad.fa-staff:after { + content: "\f71b\f71b" +} + +.fa-duotone.fa-burger:after, +.fa-duotone.fa-hamburger:after, +.fad.fa-burger:after, +.fad.fa-hamburger:after { + content: "\f805\f805" +} + +.fa-duotone.fa-utility-pole:after, +.fad.fa-utility-pole:after { + content: "\e2c3\e2c3" +} + +.fa-duotone.fa-transporter-6:after, +.fad.fa-transporter-6:after { + content: "\e2a7\e2a7" +} + +.fa-duotone.fa-arrow-turn-left:after, +.fad.fa-arrow-turn-left:after { + content: "\e632\e632" +} + +.fa-duotone.fa-wrench:after, +.fad.fa-wrench:after { + content: "\f0ad\f0ad" +} + +.fa-duotone.fa-bugs:after, +.fad.fa-bugs:after { + content: "\e4d0\e4d0" +} + +.fa-duotone.fa-vector-polygon:after, +.fad.fa-vector-polygon:after { + content: "\e2c7\e2c7" +} + +.fa-duotone.fa-diagram-nested:after, +.fad.fa-diagram-nested:after { + content: "\e157\e157" +} + +.fa-duotone.fa-rupee-sign:after, +.fa-duotone.fa-rupee:after, +.fad.fa-rupee-sign:after, +.fad.fa-rupee:after { + content: "\f156\f156" +} + +.fa-duotone.fa-file-image:after, +.fad.fa-file-image:after { + content: "\f1c5\f1c5" +} + +.fa-duotone.fa-circle-question:after, +.fa-duotone.fa-question-circle:after, +.fad.fa-circle-question:after, +.fad.fa-question-circle:after { + content: "\f059\f059" +} + +.fa-duotone.fa-tickets-perforated:after, +.fad.fa-tickets-perforated:after { + content: "\e63f\e63f" +} + +.fa-duotone.fa-image-user:after, +.fad.fa-image-user:after { + content: "\e1b8\e1b8" +} + +.fa-duotone.fa-buoy:after, +.fad.fa-buoy:after { + content: "\e5b5\e5b5" +} + +.fa-duotone.fa-plane-departure:after, +.fad.fa-plane-departure:after { + content: "\f5b0\f5b0" +} + +.fa-duotone.fa-handshake-slash:after, +.fad.fa-handshake-slash:after { + content: "\e060\e060" +} + +.fa-duotone.fa-book-bookmark:after, +.fad.fa-book-bookmark:after { + content: "\e0bb\e0bb" +} + +.fa-duotone.fa-border-center-h:after, +.fad.fa-border-center-h:after { + content: "\f89c\f89c" +} + +.fa-duotone.fa-can-food:after, +.fad.fa-can-food:after { + content: "\e3e6\e3e6" +} + +.fa-duotone.fa-typewriter:after, +.fad.fa-typewriter:after { + content: "\f8e7\f8e7" +} + +.fa-duotone.fa-arrow-right-from-arc:after, +.fad.fa-arrow-right-from-arc:after { + content: "\e4b1\e4b1" +} + +.fa-duotone.fa-circle-k:after, +.fad.fa-circle-k:after { + content: "\e113\e113" +} + +.fa-duotone.fa-face-hand-over-mouth:after, +.fad.fa-face-hand-over-mouth:after { + content: "\e378\e378" +} + +.fa-duotone.fa-popcorn:after, +.fad.fa-popcorn:after { + content: "\f819\f819" +} + +.fa-duotone.fa-house-flood:after, +.fa-duotone.fa-house-water:after, +.fad.fa-house-flood:after, +.fad.fa-house-water:after { + content: "\f74f\f74f" +} + +.fa-duotone.fa-object-subtract:after, +.fad.fa-object-subtract:after { + content: "\e49e\e49e" +} + +.fa-duotone.fa-code-branch:after, +.fad.fa-code-branch:after { + content: "\f126\f126" +} + +.fa-duotone.fa-warehouse-alt:after, +.fa-duotone.fa-warehouse-full:after, +.fad.fa-warehouse-alt:after, +.fad.fa-warehouse-full:after { + content: "\f495\f495" +} + +.fa-duotone.fa-hat-cowboy:after, +.fad.fa-hat-cowboy:after { + content: "\f8c0\f8c0" +} + +.fa-duotone.fa-bridge:after, +.fad.fa-bridge:after { + content: "\e4c8\e4c8" +} + +.fa-duotone.fa-phone-alt:after, +.fa-duotone.fa-phone-flip:after, +.fad.fa-phone-alt:after, +.fad.fa-phone-flip:after { + content: "\f879\f879" +} + +.fa-duotone.fa-arrow-down-from-dotted-line:after, +.fad.fa-arrow-down-from-dotted-line:after { + content: "\e090\e090" +} + +.fa-duotone.fa-file-doc:after, +.fad.fa-file-doc:after { + content: "\e5ed\e5ed" +} + +.fa-duotone.fa-square-quarters:after, +.fad.fa-square-quarters:after { + content: "\e44e\e44e" +} + +.fa-duotone.fa-truck-front:after, +.fad.fa-truck-front:after { + content: "\e2b7\e2b7" +} + +.fa-duotone.fa-cat:after, +.fad.fa-cat:after { + content: "\f6be\f6be" +} + +.fa-duotone.fa-trash-xmark:after, +.fad.fa-trash-xmark:after { + content: "\e2b4\e2b4" +} + +.fa-duotone.fa-caret-circle-left:after, +.fa-duotone.fa-circle-caret-left:after, +.fad.fa-caret-circle-left:after, +.fad.fa-circle-caret-left:after { + content: "\f32e\f32e" +} + +.fa-duotone.fa-files:after, +.fad.fa-files:after { + content: "\e178\e178" +} + +.fa-duotone.fa-anchor-circle-exclamation:after, +.fad.fa-anchor-circle-exclamation:after { + content: "\e4ab\e4ab" +} + +.fa-duotone.fa-face-clouds:after, +.fad.fa-face-clouds:after { + content: "\e47d\e47d" +} + +.fa-duotone.fa-user-crown:after, +.fad.fa-user-crown:after { + content: "\f6a4\f6a4" +} + +.fa-duotone.fa-basket-shopping-plus:after, +.fad.fa-basket-shopping-plus:after { + content: "\e653\e653" +} + +.fa-duotone.fa-truck-field:after, +.fad.fa-truck-field:after { + content: "\e58d\e58d" +} + +.fa-duotone.fa-route:after, +.fad.fa-route:after { + content: "\f4d7\f4d7" +} + +.fa-duotone.fa-cart-circle-check:after, +.fad.fa-cart-circle-check:after { + content: "\e3f1\e3f1" +} + +.fa-duotone.fa-clipboard-question:after, +.fad.fa-clipboard-question:after { + content: "\e4e3\e4e3" +} + +.fa-duotone.fa-panorama:after, +.fad.fa-panorama:after { + content: "\e209\e209" +} + +.fa-duotone.fa-comment-medical:after, +.fad.fa-comment-medical:after { + content: "\f7f5\f7f5" +} + +.fa-duotone.fa-teeth-open:after, +.fad.fa-teeth-open:after { + content: "\f62f\f62f" +} + +.fa-duotone.fa-user-tie-hair-long:after, +.fad.fa-user-tie-hair-long:after { + content: "\e460\e460" +} + +.fa-duotone.fa-file-circle-minus:after, +.fad.fa-file-circle-minus:after { + content: "\e4ed\e4ed" +} + +.fa-duotone.fa-head-side-medical:after, +.fad.fa-head-side-medical:after { + content: "\f809\f809" +} + +.fa-duotone.fa-arrow-turn-right:after, +.fad.fa-arrow-turn-right:after { + content: "\e635\e635" +} + +.fa-duotone.fa-tags:after, +.fad.fa-tags:after { + content: "\f02c\f02c" +} + +.fa-duotone.fa-wine-glass:after, +.fad.fa-wine-glass:after { + content: "\f4e3\f4e3" +} + +.fa-duotone.fa-fast-forward:after, +.fa-duotone.fa-forward-fast:after, +.fad.fa-fast-forward:after, +.fad.fa-forward-fast:after { + content: "\f050\f050" +} + +.fa-duotone.fa-face-meh-blank:after, +.fa-duotone.fa-meh-blank:after, +.fad.fa-face-meh-blank:after, +.fad.fa-meh-blank:after { + content: "\f5a4\f5a4" +} + +.fa-duotone.fa-user-robot:after, +.fad.fa-user-robot:after { + content: "\e04b\e04b" +} + +.fa-duotone.fa-parking:after, +.fa-duotone.fa-square-parking:after, +.fad.fa-parking:after, +.fad.fa-square-parking:after { + content: "\f540\f540" +} + +.fa-duotone.fa-card-diamond:after, +.fad.fa-card-diamond:after { + content: "\e3ea\e3ea" +} + +.fa-duotone.fa-face-zipper:after, +.fad.fa-face-zipper:after { + content: "\e3a5\e3a5" +} + +.fa-duotone.fa-face-raised-eyebrow:after, +.fad.fa-face-raised-eyebrow:after { + content: "\e388\e388" +} + +.fa-duotone.fa-house-signal:after, +.fad.fa-house-signal:after { + content: "\e012\e012" +} + +.fa-duotone.fa-chevron-square-up:after, +.fa-duotone.fa-square-chevron-up:after, +.fad.fa-chevron-square-up:after, +.fad.fa-square-chevron-up:after { + content: "\f32c\f32c" +} + +.fa-duotone.fa-bars-progress:after, +.fa-duotone.fa-tasks-alt:after, +.fad.fa-bars-progress:after, +.fad.fa-tasks-alt:after { + content: "\f828\f828" +} + +.fa-duotone.fa-faucet-drip:after, +.fad.fa-faucet-drip:after { + content: "\e006\e006" +} + +.fa-duotone.fa-arrows-to-line:after, +.fad.fa-arrows-to-line:after { + content: "\e0a7\e0a7" +} + +.fa-duotone.fa-dolphin:after, +.fad.fa-dolphin:after { + content: "\e168\e168" +} + +.fa-duotone.fa-arrow-up-right:after, +.fad.fa-arrow-up-right:after { + content: "\e09f\e09f" +} + +.fa-duotone.fa-circle-r:after, +.fad.fa-circle-r:after { + content: "\e120\e120" +} + +.fa-duotone.fa-cart-flatbed:after, +.fa-duotone.fa-dolly-flatbed:after, +.fad.fa-cart-flatbed:after, +.fad.fa-dolly-flatbed:after { + content: "\f474\f474" +} + +.fa-duotone.fa-ban-smoking:after, +.fa-duotone.fa-smoking-ban:after, +.fad.fa-ban-smoking:after, +.fad.fa-smoking-ban:after { + content: "\f54d\f54d" +} + +.fa-duotone.fa-circle-sort-up:after, +.fa-duotone.fa-sort-circle-up:after, +.fad.fa-circle-sort-up:after, +.fad.fa-sort-circle-up:after { + content: "\e032\e032" +} + +.fa-duotone.fa-terminal:after, +.fad.fa-terminal:after { + content: "\f120\f120" +} + +.fa-duotone.fa-mobile-button:after, +.fad.fa-mobile-button:after { + content: "\f10b\f10b" +} + +.fa-duotone.fa-house-medical-flag:after, +.fad.fa-house-medical-flag:after { + content: "\e514\e514" +} + +.fa-duotone.fa-basket-shopping:after, +.fa-duotone.fa-shopping-basket:after, +.fad.fa-basket-shopping:after, +.fad.fa-shopping-basket:after { + content: "\f291\f291" +} + +.fa-duotone.fa-tape:after, +.fad.fa-tape:after { + content: "\f4db\f4db" +} + +.fa-duotone.fa-chestnut:after, +.fad.fa-chestnut:after { + content: "\e3f6\e3f6" +} + +.fa-duotone.fa-bus-alt:after, +.fa-duotone.fa-bus-simple:after, +.fad.fa-bus-alt:after, +.fad.fa-bus-simple:after { + content: "\f55e\f55e" +} + +.fa-duotone.fa-eye:after, +.fad.fa-eye:after { + content: "\f06e\f06e" +} + +.fa-duotone.fa-face-sad-cry:after, +.fa-duotone.fa-sad-cry:after, +.fad.fa-face-sad-cry:after, +.fad.fa-sad-cry:after { + content: "\f5b3\f5b3" +} + +.fa-duotone.fa-heat:after, +.fad.fa-heat:after { + content: "\e00c\e00c" +} + +.fa-duotone.fa-ticket-airline:after, +.fa-duotone.fa-ticket-perforated-plane:after, +.fa-duotone.fa-ticket-plane:after, +.fad.fa-ticket-airline:after, +.fad.fa-ticket-perforated-plane:after, +.fad.fa-ticket-plane:after { + content: "\e29a\e29a" +} + +.fa-duotone.fa-boot-heeled:after, +.fad.fa-boot-heeled:after { + content: "\e33f\e33f" +} + +.fa-duotone.fa-arrows-minimize:after, +.fa-duotone.fa-compress-arrows:after, +.fad.fa-arrows-minimize:after, +.fad.fa-compress-arrows:after { + content: "\e0a5\e0a5" +} + +.fa-duotone.fa-audio-description:after, +.fad.fa-audio-description:after { + content: "\f29e\f29e" +} + +.fa-duotone.fa-person-military-to-person:after, +.fad.fa-person-military-to-person:after { + content: "\e54c\e54c" +} + +.fa-duotone.fa-file-shield:after, +.fad.fa-file-shield:after { + content: "\e4f0\e4f0" +} + +.fa-duotone.fa-hexagon:after, +.fad.fa-hexagon:after { + content: "\f312\f312" +} + +.fa-duotone.fa-manhole:after, +.fad.fa-manhole:after { + content: "\e1d6\e1d6" +} + +.fa-duotone.fa-user-slash:after, +.fad.fa-user-slash:after { + content: "\f506\f506" +} + +.fa-duotone.fa-pen:after, +.fad.fa-pen:after { + content: "\f304\f304" +} + +.fa-duotone.fa-tower-observation:after, +.fad.fa-tower-observation:after { + content: "\e586\e586" +} + +.fa-duotone.fa-floppy-disks:after, +.fad.fa-floppy-disks:after { + content: "\e183\e183" +} + +.fa-duotone.fa-toilet-paper-blank-under:after, +.fa-duotone.fa-toilet-paper-reverse-alt:after, +.fad.fa-toilet-paper-blank-under:after, +.fad.fa-toilet-paper-reverse-alt:after { + content: "\e29f\e29f" +} + +.fa-duotone.fa-file-code:after, +.fad.fa-file-code:after { + content: "\f1c9\f1c9" +} + +.fa-duotone.fa-signal-5:after, +.fa-duotone.fa-signal-perfect:after, +.fa-duotone.fa-signal:after, +.fad.fa-signal-5:after, +.fad.fa-signal-perfect:after, +.fad.fa-signal:after { + content: "\f012\f012" +} + +.fa-duotone.fa-pump:after, +.fad.fa-pump:after { + content: "\e442\e442" +} + +.fa-duotone.fa-bus:after, +.fad.fa-bus:after { + content: "\f207\f207" +} + +.fa-duotone.fa-heart-circle-xmark:after, +.fad.fa-heart-circle-xmark:after { + content: "\e501\e501" +} + +.fa-duotone.fa-arrow-up-left-from-circle:after, +.fad.fa-arrow-up-left-from-circle:after { + content: "\e09e\e09e" +} + +.fa-duotone.fa-home-lg:after, +.fa-duotone.fa-house-chimney:after, +.fad.fa-home-lg:after, +.fad.fa-house-chimney:after { + content: "\e3af\e3af" +} + +.fa-duotone.fa-window-maximize:after, +.fad.fa-window-maximize:after { + content: "\f2d0\f2d0" +} + +.fa-duotone.fa-dryer:after, +.fad.fa-dryer:after { + content: "\f861\f861" +} + +.fa-duotone.fa-face-frown:after, +.fa-duotone.fa-frown:after, +.fad.fa-face-frown:after, +.fad.fa-frown:after { + content: "\f119\f119" +} + +.fa-duotone.fa-chess-bishop-alt:after, +.fa-duotone.fa-chess-bishop-piece:after, +.fad.fa-chess-bishop-alt:after, +.fad.fa-chess-bishop-piece:after { + content: "\f43b\f43b" +} + +.fa-duotone.fa-shirt-tank-top:after, +.fad.fa-shirt-tank-top:after { + content: "\e3c9\e3c9" +} + +.fa-duotone.fa-diploma:after, +.fa-duotone.fa-scroll-ribbon:after, +.fad.fa-diploma:after, +.fad.fa-scroll-ribbon:after { + content: "\f5ea\f5ea" +} + +.fa-duotone.fa-screencast:after, +.fad.fa-screencast:after { + content: "\e23e\e23e" +} + +.fa-duotone.fa-walker:after, +.fad.fa-walker:after { + content: "\f831\f831" +} + +.fa-duotone.fa-prescription:after, +.fad.fa-prescription:after { + content: "\f5b1\f5b1" +} + +.fa-duotone.fa-shop:after, +.fa-duotone.fa-store-alt:after, +.fad.fa-shop:after, +.fad.fa-store-alt:after { + content: "\f54f\f54f" +} + +.fa-duotone.fa-floppy-disk:after, +.fa-duotone.fa-save:after, +.fad.fa-floppy-disk:after, +.fad.fa-save:after { + content: "\f0c7\f0c7" +} + +.fa-duotone.fa-vihara:after, +.fad.fa-vihara:after { + content: "\f6a7\f6a7" +} + +.fa-duotone.fa-face-kiss-closed-eyes:after, +.fad.fa-face-kiss-closed-eyes:after { + content: "\e37d\e37d" +} + +.fa-duotone.fa-balance-scale-left:after, +.fa-duotone.fa-scale-unbalanced:after, +.fad.fa-balance-scale-left:after, +.fad.fa-scale-unbalanced:after { + content: "\f515\f515" +} + +.fa-duotone.fa-file-user:after, +.fad.fa-file-user:after { + content: "\f65c\f65c" +} + +.fa-duotone.fa-user-police-tie:after, +.fad.fa-user-police-tie:after { + content: "\e334\e334" +} + +.fa-duotone.fa-face-tongue-money:after, +.fad.fa-face-tongue-money:after { + content: "\e39d\e39d" +} + +.fa-duotone.fa-tennis-ball:after, +.fad.fa-tennis-ball:after { + content: "\f45e\f45e" +} + +.fa-duotone.fa-square-l:after, +.fad.fa-square-l:after { + content: "\e275\e275" +} + +.fa-duotone.fa-sort-asc:after, +.fa-duotone.fa-sort-up:after, +.fad.fa-sort-asc:after, +.fad.fa-sort-up:after { + content: "\f0de\f0de" +} + +.fa-duotone.fa-calendar-arrow-up:after, +.fa-duotone.fa-calendar-upload:after, +.fad.fa-calendar-arrow-up:after, +.fad.fa-calendar-upload:after { + content: "\e0d1\e0d1" +} + +.fa-duotone.fa-comment-dots:after, +.fa-duotone.fa-commenting:after, +.fad.fa-comment-dots:after, +.fad.fa-commenting:after { + content: "\f4ad\f4ad" +} + +.fa-duotone.fa-plant-wilt:after, +.fad.fa-plant-wilt:after { + content: "\e5aa\e5aa" +} + +.fa-duotone.fa-scarf:after, +.fad.fa-scarf:after { + content: "\f7c1\f7c1" +} + +.fa-duotone.fa-album-circle-plus:after, +.fad.fa-album-circle-plus:after { + content: "\e48c\e48c" +} + +.fa-duotone.fa-user-nurse-hair-long:after, +.fad.fa-user-nurse-hair-long:after { + content: "\e45e\e45e" +} + +.fa-duotone.fa-diamond:after, +.fad.fa-diamond:after { + content: "\f219\f219" +} + +.fa-duotone.fa-arrow-alt-square-left:after, +.fa-duotone.fa-square-left:after, +.fad.fa-arrow-alt-square-left:after, +.fad.fa-square-left:after { + content: "\f351\f351" +} + +.fa-duotone.fa-face-grin-squint:after, +.fa-duotone.fa-grin-squint:after, +.fad.fa-face-grin-squint:after, +.fad.fa-grin-squint:after { + content: "\f585\f585" +} + +.fa-duotone.fa-circle-ellipsis-vertical:after, +.fad.fa-circle-ellipsis-vertical:after { + content: "\e10b\e10b" +} + +.fa-duotone.fa-hand-holding-dollar:after, +.fa-duotone.fa-hand-holding-usd:after, +.fad.fa-hand-holding-dollar:after, +.fad.fa-hand-holding-usd:after { + content: "\f4c0\f4c0" +} + +.fa-duotone.fa-grid-dividers:after, +.fad.fa-grid-dividers:after { + content: "\e3ad\e3ad" +} + +.fa-duotone.fa-bacterium:after, +.fad.fa-bacterium:after { + content: "\e05a\e05a" +} + +.fa-duotone.fa-hand-pointer:after, +.fad.fa-hand-pointer:after { + content: "\f25a\f25a" +} + +.fa-duotone.fa-drum-steelpan:after, +.fad.fa-drum-steelpan:after { + content: "\f56a\f56a" +} + +.fa-duotone.fa-hand-scissors:after, +.fad.fa-hand-scissors:after { + content: "\f257\f257" +} + +.fa-duotone.fa-hands-praying:after, +.fa-duotone.fa-praying-hands:after, +.fad.fa-hands-praying:after, +.fad.fa-praying-hands:after { + content: "\f684\f684" +} + +.fa-duotone.fa-face-pensive:after, +.fad.fa-face-pensive:after { + content: "\e384\e384" +} + +.fa-duotone.fa-user-music:after, +.fad.fa-user-music:after { + content: "\f8eb\f8eb" +} + +.fa-duotone.fa-arrow-right-rotate:after, +.fa-duotone.fa-arrow-rotate-forward:after, +.fa-duotone.fa-arrow-rotate-right:after, +.fa-duotone.fa-redo:after, +.fad.fa-arrow-right-rotate:after, +.fad.fa-arrow-rotate-forward:after, +.fad.fa-arrow-rotate-right:after, +.fad.fa-redo:after { + content: "\f01e\f01e" +} + +.fa-duotone.fa-comments-alt-dollar:after, +.fa-duotone.fa-messages-dollar:after, +.fad.fa-comments-alt-dollar:after, +.fad.fa-messages-dollar:after { + content: "\f652\f652" +} + +.fa-duotone.fa-sensor-on:after, +.fad.fa-sensor-on:after { + content: "\e02b\e02b" +} + +.fa-duotone.fa-balloon:after, +.fad.fa-balloon:after { + content: "\e2e3\e2e3" +} + +.fa-duotone.fa-biohazard:after, +.fad.fa-biohazard:after { + content: "\f780\f780" +} + +.fa-duotone.fa-chess-queen-alt:after, +.fa-duotone.fa-chess-queen-piece:after, +.fad.fa-chess-queen-alt:after, +.fad.fa-chess-queen-piece:after { + content: "\f446\f446" +} + +.fa-duotone.fa-location-crosshairs:after, +.fa-duotone.fa-location:after, +.fad.fa-location-crosshairs:after, +.fad.fa-location:after { + content: "\f601\f601" +} + +.fa-duotone.fa-mars-double:after, +.fad.fa-mars-double:after { + content: "\f227\f227" +} + +.fa-duotone.fa-house-leave:after, +.fa-duotone.fa-house-person-depart:after, +.fa-duotone.fa-house-person-leave:after, +.fad.fa-house-leave:after, +.fad.fa-house-person-depart:after, +.fad.fa-house-person-leave:after { + content: "\e00f\e00f" +} + +.fa-duotone.fa-ruler-triangle:after, +.fad.fa-ruler-triangle:after { + content: "\f61c\f61c" +} + +.fa-duotone.fa-card-club:after, +.fad.fa-card-club:after { + content: "\e3e9\e3e9" +} + +.fa-duotone.fa-child-dress:after, +.fad.fa-child-dress:after { + content: "\e59c\e59c" +} + +.fa-duotone.fa-users-between-lines:after, +.fad.fa-users-between-lines:after { + content: "\e591\e591" +} + +.fa-duotone.fa-lungs-virus:after, +.fad.fa-lungs-virus:after { + content: "\e067\e067" +} + +.fa-duotone.fa-spinner-third:after, +.fad.fa-spinner-third:after { + content: "\f3f4\f3f4" +} + +.fa-duotone.fa-face-grin-tears:after, +.fa-duotone.fa-grin-tears:after, +.fad.fa-face-grin-tears:after, +.fad.fa-grin-tears:after { + content: "\f588\f588" +} + +.fa-duotone.fa-phone:after, +.fad.fa-phone:after { + content: "\f095\f095" +} + +.fa-duotone.fa-computer-mouse-scrollwheel:after, +.fa-duotone.fa-mouse-alt:after, +.fad.fa-computer-mouse-scrollwheel:after, +.fad.fa-mouse-alt:after { + content: "\f8cd\f8cd" +} + +.fa-duotone.fa-calendar-times:after, +.fa-duotone.fa-calendar-xmark:after, +.fad.fa-calendar-times:after, +.fad.fa-calendar-xmark:after { + content: "\f273\f273" +} + +.fa-duotone.fa-child-reaching:after, +.fad.fa-child-reaching:after { + content: "\e59d\e59d" +} + +.fa-duotone.fa-table-layout:after, +.fad.fa-table-layout:after { + content: "\e290\e290" +} + +.fa-duotone.fa-narwhal:after, +.fad.fa-narwhal:after { + content: "\f6fe\f6fe" +} + +.fa-duotone.fa-ramp-loading:after, +.fad.fa-ramp-loading:after { + content: "\f4d4\f4d4" +} + +.fa-duotone.fa-calendar-circle-plus:after, +.fad.fa-calendar-circle-plus:after { + content: "\e470\e470" +} + +.fa-duotone.fa-toothbrush:after, +.fad.fa-toothbrush:after { + content: "\f635\f635" +} + +.fa-duotone.fa-border-inner:after, +.fad.fa-border-inner:after { + content: "\f84e\f84e" +} + +.fa-duotone.fa-paw-claws:after, +.fad.fa-paw-claws:after { + content: "\f702\f702" +} + +.fa-duotone.fa-kiwi-fruit:after, +.fad.fa-kiwi-fruit:after { + content: "\e30c\e30c" +} + +.fa-duotone.fa-traffic-light-slow:after, +.fad.fa-traffic-light-slow:after { + content: "\f639\f639" +} + +.fa-duotone.fa-rectangle-code:after, +.fad.fa-rectangle-code:after { + content: "\e322\e322" +} + +.fa-duotone.fa-head-side-virus:after, +.fad.fa-head-side-virus:after { + content: "\e064\e064" +} + +.fa-duotone.fa-keyboard-brightness:after, +.fad.fa-keyboard-brightness:after { + content: "\e1c0\e1c0" +} + +.fa-duotone.fa-books-medical:after, +.fad.fa-books-medical:after { + content: "\f7e8\f7e8" +} + +.fa-duotone.fa-lightbulb-slash:after, +.fad.fa-lightbulb-slash:after { + content: "\f673\f673" +} + +.fa-duotone.fa-home-blank:after, +.fa-duotone.fa-house-blank:after, +.fad.fa-home-blank:after, +.fad.fa-house-blank:after { + content: "\e487\e487" +} + +.fa-duotone.fa-square-5:after, +.fad.fa-square-5:after { + content: "\e25a\e25a" +} + +.fa-duotone.fa-heart-square:after, +.fa-duotone.fa-square-heart:after, +.fad.fa-heart-square:after, +.fad.fa-square-heart:after { + content: "\f4c8\f4c8" +} + +.fa-duotone.fa-puzzle:after, +.fad.fa-puzzle:after { + content: "\e443\e443" +} + +.fa-duotone.fa-user-cog:after, +.fa-duotone.fa-user-gear:after, +.fad.fa-user-cog:after, +.fad.fa-user-gear:after { + content: "\f4fe\f4fe" +} + +.fa-duotone.fa-pipe-circle-check:after, +.fad.fa-pipe-circle-check:after { + content: "\e436\e436" +} + +.fa-duotone.fa-arrow-up-1-9:after, +.fa-duotone.fa-sort-numeric-up:after, +.fad.fa-arrow-up-1-9:after, +.fad.fa-sort-numeric-up:after { + content: "\f163\f163" +} + +.fa-duotone.fa-octagon-exclamation:after, +.fad.fa-octagon-exclamation:after { + content: "\e204\e204" +} + +.fa-duotone.fa-dial-low:after, +.fad.fa-dial-low:after { + content: "\e15d\e15d" +} + +.fa-duotone.fa-door-closed:after, +.fad.fa-door-closed:after { + content: "\f52a\f52a" +} + +.fa-duotone.fa-laptop-mobile:after, +.fa-duotone.fa-phone-laptop:after, +.fad.fa-laptop-mobile:after, +.fad.fa-phone-laptop:after { + content: "\f87a\f87a" +} + +.fa-duotone.fa-conveyor-belt-alt:after, +.fa-duotone.fa-conveyor-belt-boxes:after, +.fad.fa-conveyor-belt-alt:after, +.fad.fa-conveyor-belt-boxes:after { + content: "\f46f\f46f" +} + +.fa-duotone.fa-shield-virus:after, +.fad.fa-shield-virus:after { + content: "\e06c\e06c" +} + +.fa-duotone.fa-starfighter-alt-advanced:after, +.fa-duotone.fa-starfighter-twin-ion-engine-advanced:after, +.fad.fa-starfighter-alt-advanced:after, +.fad.fa-starfighter-twin-ion-engine-advanced:after { + content: "\e28e\e28e" +} + +.fa-duotone.fa-dice-six:after, +.fad.fa-dice-six:after { + content: "\f526\f526" +} + +.fa-duotone.fa-starfighter-alt:after, +.fa-duotone.fa-starfighter-twin-ion-engine:after, +.fad.fa-starfighter-alt:after, +.fad.fa-starfighter-twin-ion-engine:after { + content: "\e038\e038" +} + +.fa-duotone.fa-rocket-launch:after, +.fad.fa-rocket-launch:after { + content: "\e027\e027" +} + +.fa-duotone.fa-mosquito-net:after, +.fad.fa-mosquito-net:after { + content: "\e52c\e52c" +} + +.fa-duotone.fa-vent-damper:after, +.fad.fa-vent-damper:after { + content: "\e465\e465" +} + +.fa-duotone.fa-bridge-water:after, +.fad.fa-bridge-water:after { + content: "\e4ce\e4ce" +} + +.fa-duotone.fa-ban-bug:after, +.fa-duotone.fa-debug:after, +.fad.fa-ban-bug:after, +.fad.fa-debug:after { + content: "\f7f9\f7f9" +} + +.fa-duotone.fa-person-booth:after, +.fad.fa-person-booth:after { + content: "\f756\f756" +} + +.fa-duotone.fa-text-width:after, +.fad.fa-text-width:after { + content: "\f035\f035" +} + +.fa-duotone.fa-garage-car:after, +.fad.fa-garage-car:after { + content: "\e00a\e00a" +} + +.fa-duotone.fa-square-kanban:after, +.fad.fa-square-kanban:after { + content: "\e488\e488" +} + +.fa-duotone.fa-hat-wizard:after, +.fad.fa-hat-wizard:after { + content: "\f6e8\f6e8" +} + +.fa-duotone.fa-chart-kanban:after, +.fad.fa-chart-kanban:after { + content: "\e64f\e64f" +} + +.fa-duotone.fa-pen-fancy:after, +.fad.fa-pen-fancy:after { + content: "\f5ac\f5ac" +} + +.fa-duotone.fa-coffee-pot:after, +.fad.fa-coffee-pot:after { + content: "\e002\e002" +} + +.fa-duotone.fa-mouse-field:after, +.fad.fa-mouse-field:after { + content: "\e5a8\e5a8" +} + +.fa-duotone.fa-digging:after, +.fa-duotone.fa-person-digging:after, +.fad.fa-digging:after, +.fad.fa-person-digging:after { + content: "\f85e\f85e" +} + +.fa-duotone.fa-shower-alt:after, +.fa-duotone.fa-shower-down:after, +.fad.fa-shower-alt:after, +.fad.fa-shower-down:after { + content: "\e24d\e24d" +} + +.fa-duotone.fa-box-circle-check:after, +.fad.fa-box-circle-check:after { + content: "\e0c4\e0c4" +} + +.fa-duotone.fa-brightness:after, +.fad.fa-brightness:after { + content: "\e0c9\e0c9" +} + +.fa-duotone.fa-car-side-bolt:after, +.fad.fa-car-side-bolt:after { + content: "\e344\e344" +} + +.fa-duotone.fa-file-xml:after, +.fad.fa-file-xml:after { + content: "\e654\e654" +} + +.fa-duotone.fa-ornament:after, +.fad.fa-ornament:after { + content: "\f7b8\f7b8" +} + +.fa-duotone.fa-phone-arrow-down-left:after, +.fa-duotone.fa-phone-arrow-down:after, +.fa-duotone.fa-phone-incoming:after, +.fad.fa-phone-arrow-down-left:after, +.fad.fa-phone-arrow-down:after, +.fad.fa-phone-incoming:after { + content: "\e223\e223" +} + +.fa-duotone.fa-cloud-word:after, +.fad.fa-cloud-word:after { + content: "\e138\e138" +} + +.fa-duotone.fa-hand-fingers-crossed:after, +.fad.fa-hand-fingers-crossed:after { + content: "\e1a3\e1a3" +} + +.fa-duotone.fa-trash:after, +.fad.fa-trash:after { + content: "\f1f8\f1f8" +} + +.fa-duotone.fa-gauge-simple-med:after, +.fa-duotone.fa-gauge-simple:after, +.fa-duotone.fa-tachometer-average:after, +.fad.fa-gauge-simple-med:after, +.fad.fa-gauge-simple:after, +.fad.fa-tachometer-average:after { + content: "\f629\f629" +} + +.fa-duotone.fa-arrow-down-small-big:after, +.fa-duotone.fa-sort-size-down-alt:after, +.fad.fa-arrow-down-small-big:after, +.fad.fa-sort-size-down-alt:after { + content: "\f88d\f88d" +} + +.fa-duotone.fa-book-medical:after, +.fad.fa-book-medical:after { + content: "\f7e6\f7e6" +} + +.fa-duotone.fa-face-melting:after, +.fad.fa-face-melting:after { + content: "\e483\e483" +} + +.fa-duotone.fa-poo:after, +.fad.fa-poo:after { + content: "\f2fe\f2fe" +} + +.fa-duotone.fa-pen-alt-slash:after, +.fa-duotone.fa-pen-clip-slash:after, +.fad.fa-pen-alt-slash:after, +.fad.fa-pen-clip-slash:after { + content: "\e20f\e20f" +} + +.fa-duotone.fa-quote-right-alt:after, +.fa-duotone.fa-quote-right:after, +.fad.fa-quote-right-alt:after, +.fad.fa-quote-right:after { + content: "\f10e\f10e" +} + +.fa-duotone.fa-scroll-old:after, +.fad.fa-scroll-old:after { + content: "\f70f\f70f" +} + +.fa-duotone.fa-guitars:after, +.fad.fa-guitars:after { + content: "\f8bf\f8bf" +} + +.fa-duotone.fa-phone-xmark:after, +.fad.fa-phone-xmark:after { + content: "\e227\e227" +} + +.fa-duotone.fa-hose:after, +.fad.fa-hose:after { + content: "\e419\e419" +} + +.fa-duotone.fa-clock-six:after, +.fad.fa-clock-six:after { + content: "\e352\e352" +} + +.fa-duotone.fa-shirt:after, +.fa-duotone.fa-t-shirt:after, +.fa-duotone.fa-tshirt:after, +.fad.fa-shirt:after, +.fad.fa-t-shirt:after, +.fad.fa-tshirt:after { + content: "\f553\f553" +} + +.fa-duotone.fa-billboard:after, +.fad.fa-billboard:after { + content: "\e5cd\e5cd" +} + +.fa-duotone.fa-square-r:after, +.fad.fa-square-r:after { + content: "\e27c\e27c" +} + +.fa-duotone.fa-cubes:after, +.fad.fa-cubes:after { + content: "\f1b3\f1b3" +} + +.fa-duotone.fa-envelope-open-dollar:after, +.fad.fa-envelope-open-dollar:after { + content: "\f657\f657" +} + +.fa-duotone.fa-divide:after, +.fad.fa-divide:after { + content: "\f529\f529" +} + +.fa-duotone.fa-sun-cloud:after, +.fad.fa-sun-cloud:after { + content: "\f763\f763" +} + +.fa-duotone.fa-lamp-floor:after, +.fad.fa-lamp-floor:after { + content: "\e015\e015" +} + +.fa-duotone.fa-square-7:after, +.fad.fa-square-7:after { + content: "\e25c\e25c" +} + +.fa-duotone.fa-tenge-sign:after, +.fa-duotone.fa-tenge:after, +.fad.fa-tenge-sign:after, +.fad.fa-tenge:after { + content: "\f7d7\f7d7" +} + +.fa-duotone.fa-headphones:after, +.fad.fa-headphones:after { + content: "\f025\f025" +} + +.fa-duotone.fa-hands-holding:after, +.fad.fa-hands-holding:after { + content: "\f4c2\f4c2" +} + +.fa-duotone.fa-campfire:after, +.fad.fa-campfire:after { + content: "\f6ba\f6ba" +} + +.fa-duotone.fa-circle-ampersand:after, +.fad.fa-circle-ampersand:after { + content: "\e0f8\e0f8" +} + +.fa-duotone.fa-snowflakes:after, +.fad.fa-snowflakes:after { + content: "\f7cf\f7cf" +} + +.fa-duotone.fa-hands-clapping:after, +.fad.fa-hands-clapping:after { + content: "\e1a8\e1a8" +} + +.fa-duotone.fa-republican:after, +.fad.fa-republican:after { + content: "\f75e\f75e" +} + +.fa-duotone.fa-leaf-maple:after, +.fad.fa-leaf-maple:after { + content: "\f6f6\f6f6" +} + +.fa-duotone.fa-arrow-left:after, +.fad.fa-arrow-left:after { + content: "\f060\f060" +} + +.fa-duotone.fa-person-circle-xmark:after, +.fad.fa-person-circle-xmark:after { + content: "\e543\e543" +} + +.fa-duotone.fa-ruler:after, +.fad.fa-ruler:after { + content: "\f545\f545" +} + +.fa-duotone.fa-cup-straw-swoosh:after, +.fad.fa-cup-straw-swoosh:after { + content: "\e364\e364" +} + +.fa-duotone.fa-temperature-hot:after, +.fa-duotone.fa-temperature-sun:after, +.fad.fa-temperature-hot:after, +.fad.fa-temperature-sun:after { + content: "\f76a\f76a" +} + +.fa-duotone.fa-align-left:after, +.fad.fa-align-left:after { + content: "\f036\f036" +} + +.fa-duotone.fa-dice-d6:after, +.fad.fa-dice-d6:after { + content: "\f6d1\f6d1" +} + +.fa-duotone.fa-restroom:after, +.fad.fa-restroom:after { + content: "\f7bd\f7bd" +} + +.fa-duotone.fa-high-definition:after, +.fa-duotone.fa-rectangle-hd:after, +.fad.fa-high-definition:after, +.fad.fa-rectangle-hd:after { + content: "\e1ae\e1ae" +} + +.fa-duotone.fa-j:after, +.fad.fa-j:after { + content: "\4a\4a" +} + +.fa-duotone.fa-galaxy:after, +.fad.fa-galaxy:after { + content: "\e008\e008" +} + +.fa-duotone.fa-users-viewfinder:after, +.fad.fa-users-viewfinder:after { + content: "\e595\e595" +} + +.fa-duotone.fa-file-video:after, +.fad.fa-file-video:after { + content: "\f1c8\f1c8" +} + +.fa-duotone.fa-cherries:after, +.fad.fa-cherries:after { + content: "\e0ec\e0ec" +} + +.fa-duotone.fa-external-link-alt:after, +.fa-duotone.fa-up-right-from-square:after, +.fad.fa-external-link-alt:after, +.fad.fa-up-right-from-square:after { + content: "\f35d\f35d" +} + +.fa-duotone.fa-circle-sort:after, +.fa-duotone.fa-sort-circle:after, +.fad.fa-circle-sort:after, +.fad.fa-sort-circle:after { + content: "\e030\e030" +} + +.fa-duotone.fa-table-cells:after, +.fa-duotone.fa-th:after, +.fad.fa-table-cells:after, +.fad.fa-th:after { + content: "\f00a\f00a" +} + +.fa-duotone.fa-bag-shopping-minus:after, +.fad.fa-bag-shopping-minus:after { + content: "\e650\e650" +} + +.fa-duotone.fa-file-pdf:after, +.fad.fa-file-pdf:after { + content: "\f1c1\f1c1" +} + +.fa-duotone.fa-siren:after, +.fad.fa-siren:after { + content: "\e02d\e02d" +} + +.fa-duotone.fa-arrow-up-to-dotted-line:after, +.fad.fa-arrow-up-to-dotted-line:after { + content: "\e0a1\e0a1" +} + +.fa-duotone.fa-image-landscape:after, +.fa-duotone.fa-landscape:after, +.fad.fa-image-landscape:after, +.fad.fa-landscape:after { + content: "\e1b5\e1b5" +} + +.fa-duotone.fa-tank-water:after, +.fad.fa-tank-water:after { + content: "\e452\e452" +} + +.fa-duotone.fa-curling-stone:after, +.fa-duotone.fa-curling:after, +.fad.fa-curling-stone:after, +.fad.fa-curling:after { + content: "\f44a\f44a" +} + +.fa-duotone.fa-gamepad-alt:after, +.fa-duotone.fa-gamepad-modern:after, +.fad.fa-gamepad-alt:after, +.fad.fa-gamepad-modern:after { + content: "\e5a2\e5a2" +} + +.fa-duotone.fa-messages-question:after, +.fad.fa-messages-question:after { + content: "\e1e7\e1e7" +} + +.fa-duotone.fa-bible:after, +.fa-duotone.fa-book-bible:after, +.fad.fa-bible:after, +.fad.fa-book-bible:after { + content: "\f647\f647" +} + +.fa-duotone.fa-o:after, +.fad.fa-o:after { + content: "\4f\4f" +} + +.fa-duotone.fa-medkit:after, +.fa-duotone.fa-suitcase-medical:after, +.fad.fa-medkit:after, +.fad.fa-suitcase-medical:after { + content: "\f0fa\f0fa" +} + +.fa-duotone.fa-briefcase-arrow-right:after, +.fad.fa-briefcase-arrow-right:after { + content: "\e2f2\e2f2" +} + +.fa-duotone.fa-expand-wide:after, +.fad.fa-expand-wide:after { + content: "\f320\f320" +} + +.fa-duotone.fa-clock-eleven-thirty:after, +.fad.fa-clock-eleven-thirty:after { + content: "\e348\e348" +} + +.fa-duotone.fa-rv:after, +.fad.fa-rv:after { + content: "\f7be\f7be" +} + +.fa-duotone.fa-user-secret:after, +.fad.fa-user-secret:after { + content: "\f21b\f21b" +} + +.fa-duotone.fa-otter:after, +.fad.fa-otter:after { + content: "\f700\f700" +} + +.fa-duotone.fa-dreidel:after, +.fad.fa-dreidel:after { + content: "\f792\f792" +} + +.fa-duotone.fa-female:after, +.fa-duotone.fa-person-dress:after, +.fad.fa-female:after, +.fad.fa-person-dress:after { + content: "\f182\f182" +} + +.fa-duotone.fa-comment-dollar:after, +.fad.fa-comment-dollar:after { + content: "\f651\f651" +} + +.fa-duotone.fa-briefcase-clock:after, +.fa-duotone.fa-business-time:after, +.fad.fa-briefcase-clock:after, +.fad.fa-business-time:after { + content: "\f64a\f64a" +} + +.fa-duotone.fa-flower-tulip:after, +.fad.fa-flower-tulip:after { + content: "\f801\f801" +} + +.fa-duotone.fa-people-pants-simple:after, +.fad.fa-people-pants-simple:after { + content: "\e21a\e21a" +} + +.fa-duotone.fa-cloud-drizzle:after, +.fad.fa-cloud-drizzle:after { + content: "\f738\f738" +} + +.fa-duotone.fa-table-cells-large:after, +.fa-duotone.fa-th-large:after, +.fad.fa-table-cells-large:after, +.fad.fa-th-large:after { + content: "\f009\f009" +} + +.fa-duotone.fa-book-tanakh:after, +.fa-duotone.fa-tanakh:after, +.fad.fa-book-tanakh:after, +.fad.fa-tanakh:after { + content: "\f827\f827" +} + +.fa-duotone.fa-solar-system:after, +.fad.fa-solar-system:after { + content: "\e02f\e02f" +} + +.fa-duotone.fa-seal-question:after, +.fad.fa-seal-question:after { + content: "\e243\e243" +} + +.fa-duotone.fa-phone-volume:after, +.fa-duotone.fa-volume-control-phone:after, +.fad.fa-phone-volume:after, +.fad.fa-volume-control-phone:after { + content: "\f2a0\f2a0" +} + +.fa-duotone.fa-disc-drive:after, +.fad.fa-disc-drive:after { + content: "\f8b5\f8b5" +} + +.fa-duotone.fa-hat-cowboy-side:after, +.fad.fa-hat-cowboy-side:after { + content: "\f8c1\f8c1" +} + +.fa-duotone.fa-rows:after, +.fa-duotone.fa-table-rows:after, +.fad.fa-rows:after, +.fad.fa-table-rows:after { + content: "\e292\e292" +} + +.fa-duotone.fa-location-exclamation:after, +.fa-duotone.fa-map-marker-exclamation:after, +.fad.fa-location-exclamation:after, +.fad.fa-map-marker-exclamation:after { + content: "\f608\f608" +} + +.fa-duotone.fa-face-fearful:after, +.fad.fa-face-fearful:after { + content: "\e375\e375" +} + +.fa-duotone.fa-clipboard-user:after, +.fad.fa-clipboard-user:after { + content: "\f7f3\f7f3" +} + +.fa-duotone.fa-bus-school:after, +.fad.fa-bus-school:after { + content: "\f5dd\f5dd" +} + +.fa-duotone.fa-film-slash:after, +.fad.fa-film-slash:after { + content: "\e179\e179" +} + +.fa-duotone.fa-square-arrow-down-right:after, +.fad.fa-square-arrow-down-right:after { + content: "\e262\e262" +} + +.fa-duotone.fa-book-sparkles:after, +.fa-duotone.fa-book-spells:after, +.fad.fa-book-sparkles:after, +.fad.fa-book-spells:after { + content: "\f6b8\f6b8" +} + +.fa-duotone.fa-washer:after, +.fa-duotone.fa-washing-machine:after, +.fad.fa-washer:after, +.fad.fa-washing-machine:after { + content: "\f898\f898" +} + +.fa-duotone.fa-child:after, +.fad.fa-child:after { + content: "\f1ae\f1ae" +} + +.fa-duotone.fa-lira-sign:after, +.fad.fa-lira-sign:after { + content: "\f195\f195" +} + +.fa-duotone.fa-user-visor:after, +.fad.fa-user-visor:after { + content: "\e04c\e04c" +} + +.fa-duotone.fa-file-plus-minus:after, +.fad.fa-file-plus-minus:after { + content: "\e177\e177" +} + +.fa-duotone.fa-chess-clock-alt:after, +.fa-duotone.fa-chess-clock-flip:after, +.fad.fa-chess-clock-alt:after, +.fad.fa-chess-clock-flip:after { + content: "\f43e\f43e" +} + +.fa-duotone.fa-satellite:after, +.fad.fa-satellite:after { + content: "\f7bf\f7bf" +} + +.fa-duotone.fa-truck-fire:after, +.fad.fa-truck-fire:after { + content: "\e65a\e65a" +} + +.fa-duotone.fa-plane-lock:after, +.fad.fa-plane-lock:after { + content: "\e558\e558" +} + +.fa-duotone.fa-steering-wheel:after, +.fad.fa-steering-wheel:after { + content: "\f622\f622" +} + +.fa-duotone.fa-tag:after, +.fad.fa-tag:after { + content: "\f02b\f02b" +} + +.fa-duotone.fa-stretcher:after, +.fad.fa-stretcher:after { + content: "\f825\f825" +} + +.fa-duotone.fa-book-law:after, +.fa-duotone.fa-book-section:after, +.fad.fa-book-law:after, +.fad.fa-book-section:after { + content: "\e0c1\e0c1" +} + +.fa-duotone.fa-inboxes:after, +.fad.fa-inboxes:after { + content: "\e1bb\e1bb" +} + +.fa-duotone.fa-coffee-bean:after, +.fad.fa-coffee-bean:after { + content: "\e13e\e13e" +} + +.fa-duotone.fa-circle-yen:after, +.fad.fa-circle-yen:after { + content: "\e5d0\e5d0" +} + +.fa-duotone.fa-brackets-curly:after, +.fad.fa-brackets-curly:after { + content: "\f7ea\f7ea" +} + +.fa-duotone.fa-ellipsis-stroke-vertical:after, +.fa-duotone.fa-ellipsis-v-alt:after, +.fad.fa-ellipsis-stroke-vertical:after, +.fad.fa-ellipsis-v-alt:after { + content: "\f39c\f39c" +} + +.fa-duotone.fa-comment:after, +.fad.fa-comment:after { + content: "\f075\f075" +} + +.fa-duotone.fa-square-1:after, +.fad.fa-square-1:after { + content: "\e256\e256" +} + +.fa-duotone.fa-birthday-cake:after, +.fa-duotone.fa-cake-candles:after, +.fa-duotone.fa-cake:after, +.fad.fa-birthday-cake:after, +.fad.fa-cake-candles:after, +.fad.fa-cake:after { + content: "\f1fd\f1fd" +} + +.fa-duotone.fa-head-side:after, +.fad.fa-head-side:after { + content: "\f6e9\f6e9" +} + +.fa-duotone.fa-truck-ladder:after, +.fad.fa-truck-ladder:after { + content: "\e657\e657" +} + +.fa-duotone.fa-envelope:after, +.fad.fa-envelope:after { + content: "\f0e0\f0e0" +} + +.fa-duotone.fa-dolly-empty:after, +.fad.fa-dolly-empty:after { + content: "\f473\f473" +} + +.fa-duotone.fa-face-tissue:after, +.fad.fa-face-tissue:after { + content: "\e39c\e39c" +} + +.fa-duotone.fa-angle-double-up:after, +.fa-duotone.fa-angles-up:after, +.fad.fa-angle-double-up:after, +.fad.fa-angles-up:after { + content: "\f102\f102" +} + +.fa-duotone.fa-bin-recycle:after, +.fad.fa-bin-recycle:after { + content: "\e5f7\e5f7" +} + +.fa-duotone.fa-paperclip:after, +.fad.fa-paperclip:after { + content: "\f0c6\f0c6" +} + +.fa-duotone.fa-chart-line-down:after, +.fad.fa-chart-line-down:after { + content: "\f64d\f64d" +} + +.fa-duotone.fa-arrow-right-to-city:after, +.fad.fa-arrow-right-to-city:after { + content: "\e4b3\e4b3" +} + +.fa-duotone.fa-lock-a:after, +.fad.fa-lock-a:after { + content: "\e422\e422" +} + +.fa-duotone.fa-ribbon:after, +.fad.fa-ribbon:after { + content: "\f4d6\f4d6" +} + +.fa-duotone.fa-lungs:after, +.fad.fa-lungs:after { + content: "\f604\f604" +} + +.fa-duotone.fa-person-pinball:after, +.fad.fa-person-pinball:after { + content: "\e21d\e21d" +} + +.fa-duotone.fa-arrow-up-9-1:after, +.fa-duotone.fa-sort-numeric-up-alt:after, +.fad.fa-arrow-up-9-1:after, +.fad.fa-sort-numeric-up-alt:after { + content: "\f887\f887" +} + +.fa-duotone.fa-apple-core:after, +.fad.fa-apple-core:after { + content: "\e08f\e08f" +} + +.fa-duotone.fa-circle-y:after, +.fad.fa-circle-y:after { + content: "\e12f\e12f" +} + +.fa-duotone.fa-h6:after, +.fad.fa-h6:after { + content: "\e413\e413" +} + +.fa-duotone.fa-litecoin-sign:after, +.fad.fa-litecoin-sign:after { + content: "\e1d3\e1d3" +} + +.fa-duotone.fa-circle-small:after, +.fad.fa-circle-small:after { + content: "\e122\e122" +} + +.fa-duotone.fa-border-none:after, +.fad.fa-border-none:after { + content: "\f850\f850" +} + +.fa-duotone.fa-arrow-turn-down-left:after, +.fad.fa-arrow-turn-down-left:after { + content: "\e2e1\e2e1" +} + +.fa-duotone.fa-circle-nodes:after, +.fad.fa-circle-nodes:after { + content: "\e4e2\e4e2" +} + +.fa-duotone.fa-parachute-box:after, +.fad.fa-parachute-box:after { + content: "\f4cd\f4cd" +} + +.fa-duotone.fa-reflect-horizontal:after, +.fad.fa-reflect-horizontal:after { + content: "\e664\e664" +} + +.fa-duotone.fa-comment-alt-medical:after, +.fa-duotone.fa-message-medical:after, +.fad.fa-comment-alt-medical:after, +.fad.fa-message-medical:after { + content: "\f7f4\f7f4" +} + +.fa-duotone.fa-rugby-ball:after, +.fad.fa-rugby-ball:after { + content: "\e3c6\e3c6" +} + +.fa-duotone.fa-comment-music:after, +.fad.fa-comment-music:after { + content: "\f8b0\f8b0" +} + +.fa-duotone.fa-indent:after, +.fad.fa-indent:after { + content: "\f03c\f03c" +} + +.fa-duotone.fa-tree-alt:after, +.fa-duotone.fa-tree-deciduous:after, +.fad.fa-tree-alt:after, +.fad.fa-tree-deciduous:after { + content: "\f400\f400" +} + +.fa-duotone.fa-puzzle-piece-alt:after, +.fa-duotone.fa-puzzle-piece-simple:after, +.fad.fa-puzzle-piece-alt:after, +.fad.fa-puzzle-piece-simple:after { + content: "\e231\e231" +} + +.fa-duotone.fa-truck-field-un:after, +.fad.fa-truck-field-un:after { + content: "\e58e\e58e" +} + +.fa-duotone.fa-nfc-trash:after, +.fad.fa-nfc-trash:after { + content: "\e1fd\e1fd" +} + +.fa-duotone.fa-hourglass-empty:after, +.fa-duotone.fa-hourglass:after, +.fad.fa-hourglass-empty:after, +.fad.fa-hourglass:after { + content: "\f254\f254" +} + +.fa-duotone.fa-mountain:after, +.fad.fa-mountain:after { + content: "\f6fc\f6fc" +} + +.fa-duotone.fa-file-times:after, +.fa-duotone.fa-file-xmark:after, +.fad.fa-file-times:after, +.fad.fa-file-xmark:after { + content: "\f317\f317" +} + +.fa-duotone.fa-home-heart:after, +.fa-duotone.fa-house-heart:after, +.fad.fa-home-heart:after, +.fad.fa-house-heart:after { + content: "\f4c9\f4c9" +} + +.fa-duotone.fa-house-chimney-blank:after, +.fad.fa-house-chimney-blank:after { + content: "\e3b0\e3b0" +} + +.fa-duotone.fa-meter-bolt:after, +.fad.fa-meter-bolt:after { + content: "\e1e9\e1e9" +} + +.fa-duotone.fa-user-doctor:after, +.fa-duotone.fa-user-md:after, +.fad.fa-user-doctor:after, +.fad.fa-user-md:after { + content: "\f0f0\f0f0" +} + +.fa-duotone.fa-slash-back:after, +.fad.fa-slash-back:after { + content: "\5c\5c" +} + +.fa-duotone.fa-circle-info:after, +.fa-duotone.fa-info-circle:after, +.fad.fa-circle-info:after, +.fad.fa-info-circle:after { + content: "\f05a\f05a" +} + +.fa-duotone.fa-fishing-rod:after, +.fad.fa-fishing-rod:after { + content: "\e3a8\e3a8" +} + +.fa-duotone.fa-hammer-crash:after, +.fad.fa-hammer-crash:after { + content: "\e414\e414" +} + +.fa-duotone.fa-message-heart:after, +.fad.fa-message-heart:after { + content: "\e5c9\e5c9" +} + +.fa-duotone.fa-cloud-meatball:after, +.fad.fa-cloud-meatball:after { + content: "\f73b\f73b" +} + +.fa-duotone.fa-camera-polaroid:after, +.fad.fa-camera-polaroid:after { + content: "\f8aa\f8aa" +} + +.fa-duotone.fa-camera-alt:after, +.fa-duotone.fa-camera:after, +.fad.fa-camera-alt:after, +.fad.fa-camera:after { + content: "\f030\f030" +} + +.fa-duotone.fa-square-virus:after, +.fad.fa-square-virus:after { + content: "\e578\e578" +} + +.fa-duotone.fa-cart-arrow-up:after, +.fad.fa-cart-arrow-up:after { + content: "\e3ee\e3ee" +} + +.fa-duotone.fa-meteor:after, +.fad.fa-meteor:after { + content: "\f753\f753" +} + +.fa-duotone.fa-car-on:after, +.fad.fa-car-on:after { + content: "\e4dd\e4dd" +} + +.fa-duotone.fa-sleigh:after, +.fad.fa-sleigh:after { + content: "\f7cc\f7cc" +} + +.fa-duotone.fa-arrow-down-1-9:after, +.fa-duotone.fa-sort-numeric-asc:after, +.fa-duotone.fa-sort-numeric-down:after, +.fad.fa-arrow-down-1-9:after, +.fad.fa-sort-numeric-asc:after, +.fad.fa-sort-numeric-down:after { + content: "\f162\f162" +} + +.fa-duotone.fa-buoy-mooring:after, +.fad.fa-buoy-mooring:after { + content: "\e5b6\e5b6" +} + +.fa-duotone.fa-square-4:after, +.fad.fa-square-4:after { + content: "\e259\e259" +} + +.fa-duotone.fa-hand-holding-droplet:after, +.fa-duotone.fa-hand-holding-water:after, +.fad.fa-hand-holding-droplet:after, +.fad.fa-hand-holding-water:after { + content: "\f4c1\f4c1" +} + +.fa-duotone.fa-file-eps:after, +.fad.fa-file-eps:after { + content: "\e644\e644" +} + +.fa-duotone.fa-tricycle-adult:after, +.fad.fa-tricycle-adult:after { + content: "\e5c4\e5c4" +} + +.fa-duotone.fa-waveform:after, +.fad.fa-waveform:after { + content: "\f8f1\f8f1" +} + +.fa-duotone.fa-water:after, +.fad.fa-water:after { + content: "\f773\f773" +} + +.fa-duotone.fa-star-sharp-half-alt:after, +.fa-duotone.fa-star-sharp-half-stroke:after, +.fad.fa-star-sharp-half-alt:after, +.fad.fa-star-sharp-half-stroke:after { + content: "\e28d\e28d" +} + +.fa-duotone.fa-nfc-signal:after, +.fad.fa-nfc-signal:after { + content: "\e1fb\e1fb" +} + +.fa-duotone.fa-plane-prop:after, +.fad.fa-plane-prop:after { + content: "\e22b\e22b" +} + +.fa-duotone.fa-calendar-check:after, +.fad.fa-calendar-check:after { + content: "\f274\f274" +} + +.fa-duotone.fa-clock-desk:after, +.fad.fa-clock-desk:after { + content: "\e134\e134" +} + +.fa-duotone.fa-calendar-clock:after, +.fa-duotone.fa-calendar-time:after, +.fad.fa-calendar-clock:after, +.fad.fa-calendar-time:after { + content: "\e0d2\e0d2" +} + +.fa-duotone.fa-braille:after, +.fad.fa-braille:after { + content: "\f2a1\f2a1" +} + +.fa-duotone.fa-prescription-bottle-alt:after, +.fa-duotone.fa-prescription-bottle-medical:after, +.fad.fa-prescription-bottle-alt:after, +.fad.fa-prescription-bottle-medical:after { + content: "\f486\f486" +} + +.fa-duotone.fa-plate-utensils:after, +.fad.fa-plate-utensils:after { + content: "\e43b\e43b" +} + +.fa-duotone.fa-family-pants:after, +.fad.fa-family-pants:after { + content: "\e302\e302" +} + +.fa-duotone.fa-hose-reel:after, +.fad.fa-hose-reel:after { + content: "\e41a\e41a" +} + +.fa-duotone.fa-house-window:after, +.fad.fa-house-window:after { + content: "\e3b3\e3b3" +} + +.fa-duotone.fa-landmark:after, +.fad.fa-landmark:after { + content: "\f66f\f66f" +} + +.fa-duotone.fa-truck:after, +.fad.fa-truck:after { + content: "\f0d1\f0d1" +} + +.fa-duotone.fa-music-magnifying-glass:after, +.fad.fa-music-magnifying-glass:after { + content: "\e662\e662" +} + +.fa-duotone.fa-crosshairs:after, +.fad.fa-crosshairs:after { + content: "\f05b\f05b" +} + +.fa-duotone.fa-cloud-rainbow:after, +.fad.fa-cloud-rainbow:after { + content: "\f73e\f73e" +} + +.fa-duotone.fa-person-cane:after, +.fad.fa-person-cane:after { + content: "\e53c\e53c" +} + +.fa-duotone.fa-alien:after, +.fad.fa-alien:after { + content: "\f8f5\f8f5" +} + +.fa-duotone.fa-tent:after, +.fad.fa-tent:after { + content: "\e57d\e57d" +} + +.fa-duotone.fa-laptop-binary:after, +.fad.fa-laptop-binary:after { + content: "\e5e7\e5e7" +} + +.fa-duotone.fa-vest-patches:after, +.fad.fa-vest-patches:after { + content: "\e086\e086" +} + +.fa-duotone.fa-people-dress-simple:after, +.fad.fa-people-dress-simple:after { + content: "\e218\e218" +} + +.fa-duotone.fa-check-double:after, +.fad.fa-check-double:after { + content: "\f560\f560" +} + +.fa-duotone.fa-arrow-down-a-z:after, +.fa-duotone.fa-sort-alpha-asc:after, +.fa-duotone.fa-sort-alpha-down:after, +.fad.fa-arrow-down-a-z:after, +.fad.fa-sort-alpha-asc:after, +.fad.fa-sort-alpha-down:after { + content: "\f15d\f15d" +} + +.fa-duotone.fa-bowling-ball-pin:after, +.fad.fa-bowling-ball-pin:after { + content: "\e0c3\e0c3" +} + +.fa-duotone.fa-bell-school-slash:after, +.fad.fa-bell-school-slash:after { + content: "\f5d6\f5d6" +} + +.fa-duotone.fa-plus-large:after, +.fad.fa-plus-large:after { + content: "\e59e\e59e" +} + +.fa-duotone.fa-money-bill-wheat:after, +.fad.fa-money-bill-wheat:after { + content: "\e52a\e52a" +} + +.fa-duotone.fa-camera-viewfinder:after, +.fa-duotone.fa-screenshot:after, +.fad.fa-camera-viewfinder:after, +.fad.fa-screenshot:after { + content: "\e0da\e0da" +} + +.fa-duotone.fa-comment-alt-music:after, +.fa-duotone.fa-message-music:after, +.fad.fa-comment-alt-music:after, +.fad.fa-message-music:after { + content: "\f8af\f8af" +} + +.fa-duotone.fa-car-building:after, +.fad.fa-car-building:after { + content: "\f859\f859" +} + +.fa-duotone.fa-border-bottom-right:after, +.fa-duotone.fa-border-style-alt:after, +.fad.fa-border-bottom-right:after, +.fad.fa-border-style-alt:after { + content: "\f854\f854" +} + +.fa-duotone.fa-octagon:after, +.fad.fa-octagon:after { + content: "\f306\f306" +} + +.fa-duotone.fa-comment-arrow-up-right:after, +.fad.fa-comment-arrow-up-right:after { + content: "\e145\e145" +} + +.fa-duotone.fa-octagon-divide:after, +.fad.fa-octagon-divide:after { + content: "\e203\e203" +} + +.fa-duotone.fa-cookie:after, +.fad.fa-cookie:after { + content: "\f563\f563" +} + +.fa-duotone.fa-arrow-left-rotate:after, +.fa-duotone.fa-arrow-rotate-back:after, +.fa-duotone.fa-arrow-rotate-backward:after, +.fa-duotone.fa-arrow-rotate-left:after, +.fa-duotone.fa-undo:after, +.fad.fa-arrow-left-rotate:after, +.fad.fa-arrow-rotate-back:after, +.fad.fa-arrow-rotate-backward:after, +.fad.fa-arrow-rotate-left:after, +.fad.fa-undo:after { + content: "\f0e2\f0e2" +} + +.fa-duotone.fa-tv-music:after, +.fad.fa-tv-music:after { + content: "\f8e6\f8e6" +} + +.fa-duotone.fa-hard-drive:after, +.fa-duotone.fa-hdd:after, +.fad.fa-hard-drive:after, +.fad.fa-hdd:after { + content: "\f0a0\f0a0" +} + +.fa-duotone.fa-reel:after, +.fad.fa-reel:after { + content: "\e238\e238" +} + +.fa-duotone.fa-face-grin-squint-tears:after, +.fa-duotone.fa-grin-squint-tears:after, +.fad.fa-face-grin-squint-tears:after, +.fad.fa-grin-squint-tears:after { + content: "\f586\f586" +} + +.fa-duotone.fa-dumbbell:after, +.fad.fa-dumbbell:after { + content: "\f44b\f44b" +} + +.fa-duotone.fa-list-alt:after, +.fa-duotone.fa-rectangle-list:after, +.fad.fa-list-alt:after, +.fad.fa-rectangle-list:after { + content: "\f022\f022" +} + +.fa-duotone.fa-tarp-droplet:after, +.fad.fa-tarp-droplet:after { + content: "\e57c\e57c" +} + +.fa-duotone.fa-alarm-exclamation:after, +.fad.fa-alarm-exclamation:after { + content: "\f843\f843" +} + +.fa-duotone.fa-house-medical-circle-check:after, +.fad.fa-house-medical-circle-check:after { + content: "\e511\e511" +} + +.fa-duotone.fa-traffic-cone:after, +.fad.fa-traffic-cone:after { + content: "\f636\f636" +} + +.fa-duotone.fa-grate:after, +.fad.fa-grate:after { + content: "\e193\e193" +} + +.fa-duotone.fa-arrow-down-right:after, +.fad.fa-arrow-down-right:after { + content: "\e093\e093" +} + +.fa-duotone.fa-person-skiing-nordic:after, +.fa-duotone.fa-skiing-nordic:after, +.fad.fa-person-skiing-nordic:after, +.fad.fa-skiing-nordic:after { + content: "\f7ca\f7ca" +} + +.fa-duotone.fa-calendar-plus:after, +.fad.fa-calendar-plus:after { + content: "\f271\f271" +} + +.fa-duotone.fa-person-from-portal:after, +.fa-duotone.fa-portal-exit:after, +.fad.fa-person-from-portal:after, +.fad.fa-portal-exit:after { + content: "\e023\e023" +} + +.fa-duotone.fa-plane-arrival:after, +.fad.fa-plane-arrival:after { + content: "\f5af\f5af" +} + +.fa-duotone.fa-cowbell-circle-plus:after, +.fa-duotone.fa-cowbell-more:after, +.fad.fa-cowbell-circle-plus:after, +.fad.fa-cowbell-more:after { + content: "\f8b4\f8b4" +} + +.fa-duotone.fa-arrow-alt-circle-left:after, +.fa-duotone.fa-circle-left:after, +.fad.fa-arrow-alt-circle-left:after, +.fad.fa-circle-left:after { + content: "\f359\f359" +} + +.fa-duotone.fa-distribute-spacing-vertical:after, +.fad.fa-distribute-spacing-vertical:after { + content: "\e366\e366" +} + +.fa-duotone.fa-signal-alt-2:after, +.fa-duotone.fa-signal-bars-fair:after, +.fad.fa-signal-alt-2:after, +.fad.fa-signal-bars-fair:after { + content: "\f692\f692" +} + +.fa-duotone.fa-sportsball:after, +.fad.fa-sportsball:after { + content: "\e44b\e44b" +} + +.fa-duotone.fa-game-console-handheld-crank:after, +.fad.fa-game-console-handheld-crank:after { + content: "\e5b9\e5b9" +} + +.fa-duotone.fa-subway:after, +.fa-duotone.fa-train-subway:after, +.fad.fa-subway:after, +.fad.fa-train-subway:after { + content: "\f239\f239" +} + +.fa-duotone.fa-chart-gantt:after, +.fad.fa-chart-gantt:after { + content: "\e0e4\e0e4" +} + +.fa-duotone.fa-face-smile-upside-down:after, +.fad.fa-face-smile-upside-down:after { + content: "\e395\e395" +} + +.fa-duotone.fa-ball-pile:after, +.fad.fa-ball-pile:after { + content: "\f77e\f77e" +} + +.fa-duotone.fa-badge-dollar:after, +.fad.fa-badge-dollar:after { + content: "\f645\f645" +} + +.fa-duotone.fa-money-bills-alt:after, +.fa-duotone.fa-money-bills-simple:after, +.fad.fa-money-bills-alt:after, +.fad.fa-money-bills-simple:after { + content: "\e1f4\e1f4" +} + +.fa-duotone.fa-list-timeline:after, +.fad.fa-list-timeline:after { + content: "\e1d1\e1d1" +} + +.fa-duotone.fa-indian-rupee-sign:after, +.fa-duotone.fa-indian-rupee:after, +.fa-duotone.fa-inr:after, +.fad.fa-indian-rupee-sign:after, +.fad.fa-indian-rupee:after, +.fad.fa-inr:after { + content: "\e1bc\e1bc" +} + +.fa-duotone.fa-crop-alt:after, +.fa-duotone.fa-crop-simple:after, +.fad.fa-crop-alt:after, +.fad.fa-crop-simple:after { + content: "\f565\f565" +} + +.fa-duotone.fa-money-bill-1:after, +.fa-duotone.fa-money-bill-alt:after, +.fad.fa-money-bill-1:after, +.fad.fa-money-bill-alt:after { + content: "\f3d1\f3d1" +} + +.fa-duotone.fa-left-long:after, +.fa-duotone.fa-long-arrow-alt-left:after, +.fad.fa-left-long:after, +.fad.fa-long-arrow-alt-left:after { + content: "\f30a\f30a" +} + +.fa-duotone.fa-keyboard-down:after, +.fad.fa-keyboard-down:after { + content: "\e1c2\e1c2" +} + +.fa-duotone.fa-circle-up-right:after, +.fad.fa-circle-up-right:after { + content: "\e129\e129" +} + +.fa-duotone.fa-cloud-bolt-moon:after, +.fa-duotone.fa-thunderstorm-moon:after, +.fad.fa-cloud-bolt-moon:after, +.fad.fa-thunderstorm-moon:after { + content: "\f76d\f76d" +} + +.fa-duotone.fa-turn-left-up:after, +.fad.fa-turn-left-up:after { + content: "\e638\e638" +} + +.fa-duotone.fa-dna:after, +.fad.fa-dna:after { + content: "\f471\f471" +} + +.fa-duotone.fa-virus-slash:after, +.fad.fa-virus-slash:after { + content: "\e075\e075" +} + +.fa-duotone.fa-bracket-round-right:after, +.fad.fa-bracket-round-right:after { + content: "\29\29" +} + +.fa-duotone.fa-circle-sterling:after, +.fad.fa-circle-sterling:after { + content: "\e5cf\e5cf" +} + +.fa-duotone.fa-circle-5:after, +.fad.fa-circle-5:after { + content: "\e0f2\e0f2" +} + +.fa-duotone.fa-minus:after, +.fa-duotone.fa-subtract:after, +.fad.fa-minus:after, +.fad.fa-subtract:after { + content: "\f068\f068" +} + +.fa-duotone.fa-fire-flame:after, +.fa-duotone.fa-flame:after, +.fad.fa-fire-flame:after, +.fad.fa-flame:after { + content: "\f6df\f6df" +} + +.fa-duotone.fa-arrow-alt-to-right:after, +.fa-duotone.fa-right-to-line:after, +.fad.fa-arrow-alt-to-right:after, +.fad.fa-right-to-line:after { + content: "\f34c\f34c" +} + +.fa-duotone.fa-gif:after, +.fad.fa-gif:after { + content: "\e190\e190" +} + +.fa-duotone.fa-chess:after, +.fad.fa-chess:after { + content: "\f439\f439" +} + +.fa-duotone.fa-trash-slash:after, +.fad.fa-trash-slash:after { + content: "\e2b3\e2b3" +} + +.fa-duotone.fa-arrow-left-long:after, +.fa-duotone.fa-long-arrow-left:after, +.fad.fa-arrow-left-long:after, +.fad.fa-long-arrow-left:after { + content: "\f177\f177" +} + +.fa-duotone.fa-plug-circle-check:after, +.fad.fa-plug-circle-check:after { + content: "\e55c\e55c" +} + +.fa-duotone.fa-font-case:after, +.fad.fa-font-case:after { + content: "\f866\f866" +} + +.fa-duotone.fa-street-view:after, +.fad.fa-street-view:after { + content: "\f21d\f21d" +} + +.fa-duotone.fa-arrow-down-left:after, +.fad.fa-arrow-down-left:after { + content: "\e091\e091" +} + +.fa-duotone.fa-franc-sign:after, +.fad.fa-franc-sign:after { + content: "\e18f\e18f" +} + +.fa-duotone.fa-flask-poison:after, +.fa-duotone.fa-flask-round-poison:after, +.fad.fa-flask-poison:after, +.fad.fa-flask-round-poison:after { + content: "\f6e0\f6e0" +} + +.fa-duotone.fa-volume-off:after, +.fad.fa-volume-off:after { + content: "\f026\f026" +} + +.fa-duotone.fa-book-circle-arrow-right:after, +.fad.fa-book-circle-arrow-right:after { + content: "\e0bc\e0bc" +} + +.fa-duotone.fa-chart-user:after, +.fa-duotone.fa-user-chart:after, +.fad.fa-chart-user:after, +.fad.fa-user-chart:after { + content: "\f6a3\f6a3" +} + +.fa-duotone.fa-american-sign-language-interpreting:after, +.fa-duotone.fa-asl-interpreting:after, +.fa-duotone.fa-hands-american-sign-language-interpreting:after, +.fa-duotone.fa-hands-asl-interpreting:after, +.fad.fa-american-sign-language-interpreting:after, +.fad.fa-asl-interpreting:after, +.fad.fa-hands-american-sign-language-interpreting:after, +.fad.fa-hands-asl-interpreting:after { + content: "\f2a3\f2a3" +} + +.fa-duotone.fa-presentation-screen:after, +.fa-duotone.fa-presentation:after, +.fad.fa-presentation-screen:after, +.fad.fa-presentation:after { + content: "\f685\f685" +} + +.fa-duotone.fa-circle-bolt:after, +.fad.fa-circle-bolt:after { + content: "\e0fe\e0fe" +} + +.fa-duotone.fa-face-smile-halo:after, +.fad.fa-face-smile-halo:after { + content: "\e38f\e38f" +} + +.fa-duotone.fa-cart-circle-arrow-down:after, +.fad.fa-cart-circle-arrow-down:after { + content: "\e3ef\e3ef" +} + +.fa-duotone.fa-house-person-arrive:after, +.fa-duotone.fa-house-person-return:after, +.fa-duotone.fa-house-return:after, +.fad.fa-house-person-arrive:after, +.fad.fa-house-person-return:after, +.fad.fa-house-return:after { + content: "\e011\e011" +} + +.fa-duotone.fa-comment-alt-times:after, +.fa-duotone.fa-message-times:after, +.fa-duotone.fa-message-xmark:after, +.fad.fa-comment-alt-times:after, +.fad.fa-message-times:after, +.fad.fa-message-xmark:after { + content: "\f4ab\f4ab" +} + +.fa-duotone.fa-file-award:after, +.fa-duotone.fa-file-certificate:after, +.fad.fa-file-award:after, +.fad.fa-file-certificate:after { + content: "\f5f3\f5f3" +} + +.fa-duotone.fa-user-doctor-hair-long:after, +.fad.fa-user-doctor-hair-long:after { + content: "\e459\e459" +} + +.fa-duotone.fa-camera-home:after, +.fa-duotone.fa-camera-security:after, +.fad.fa-camera-home:after, +.fad.fa-camera-security:after { + content: "\f8fe\f8fe" +} + +.fa-duotone.fa-cog:after, +.fa-duotone.fa-gear:after, +.fad.fa-cog:after, +.fad.fa-gear:after { + content: "\f013\f013" +} + +.fa-duotone.fa-droplet-slash:after, +.fa-duotone.fa-tint-slash:after, +.fad.fa-droplet-slash:after, +.fad.fa-tint-slash:after { + content: "\f5c7\f5c7" +} + +.fa-duotone.fa-book-heart:after, +.fad.fa-book-heart:after { + content: "\f499\f499" +} + +.fa-duotone.fa-mosque:after, +.fad.fa-mosque:after { + content: "\f678\f678" +} + +.fa-duotone.fa-duck:after, +.fad.fa-duck:after { + content: "\f6d8\f6d8" +} + +.fa-duotone.fa-mosquito:after, +.fad.fa-mosquito:after { + content: "\e52b\e52b" +} + +.fa-duotone.fa-star-of-david:after, +.fad.fa-star-of-david:after { + content: "\f69a\f69a" +} + +.fa-duotone.fa-flag-alt:after, +.fa-duotone.fa-flag-swallowtail:after, +.fad.fa-flag-alt:after, +.fad.fa-flag-swallowtail:after { + content: "\f74c\f74c" +} + +.fa-duotone.fa-person-military-rifle:after, +.fad.fa-person-military-rifle:after { + content: "\e54b\e54b" +} + +.fa-duotone.fa-car-garage:after, +.fad.fa-car-garage:after { + content: "\f5e2\f5e2" +} + +.fa-duotone.fa-cart-shopping:after, +.fa-duotone.fa-shopping-cart:after, +.fad.fa-cart-shopping:after, +.fad.fa-shopping-cart:after { + content: "\f07a\f07a" +} + +.fa-duotone.fa-book-font:after, +.fad.fa-book-font:after { + content: "\e0bf\e0bf" +} + +.fa-duotone.fa-shield-plus:after, +.fad.fa-shield-plus:after { + content: "\e24a\e24a" +} + +.fa-duotone.fa-vials:after, +.fad.fa-vials:after { + content: "\f493\f493" +} + +.fa-duotone.fa-eye-dropper-full:after, +.fad.fa-eye-dropper-full:after { + content: "\e172\e172" +} + +.fa-duotone.fa-distribute-spacing-horizontal:after, +.fad.fa-distribute-spacing-horizontal:after { + content: "\e365\e365" +} + +.fa-duotone.fa-tablet-rugged:after, +.fad.fa-tablet-rugged:after { + content: "\f48f\f48f" +} + +.fa-duotone.fa-temperature-frigid:after, +.fa-duotone.fa-temperature-snow:after, +.fad.fa-temperature-frigid:after, +.fad.fa-temperature-snow:after { + content: "\f768\f768" +} + +.fa-duotone.fa-moped:after, +.fad.fa-moped:after { + content: "\e3b9\e3b9" +} + +.fa-duotone.fa-face-smile-plus:after, +.fa-duotone.fa-smile-plus:after, +.fad.fa-face-smile-plus:after, +.fad.fa-smile-plus:after { + content: "\f5b9\f5b9" +} + +.fa-duotone.fa-radio-alt:after, +.fa-duotone.fa-radio-tuner:after, +.fad.fa-radio-alt:after, +.fad.fa-radio-tuner:after { + content: "\f8d8\f8d8" +} + +.fa-duotone.fa-face-swear:after, +.fad.fa-face-swear:after { + content: "\e399\e399" +} + +.fa-duotone.fa-water-arrow-down:after, +.fa-duotone.fa-water-lower:after, +.fad.fa-water-arrow-down:after, +.fad.fa-water-lower:after { + content: "\f774\f774" +} + +.fa-duotone.fa-scanner-touchscreen:after, +.fad.fa-scanner-touchscreen:after { + content: "\f48a\f48a" +} + +.fa-duotone.fa-circle-7:after, +.fad.fa-circle-7:after { + content: "\e0f4\e0f4" +} + +.fa-duotone.fa-plug-circle-plus:after, +.fad.fa-plug-circle-plus:after { + content: "\e55f\e55f" +} + +.fa-duotone.fa-person-ski-jumping:after, +.fa-duotone.fa-ski-jump:after, +.fad.fa-person-ski-jumping:after, +.fad.fa-ski-jump:after { + content: "\f7c7\f7c7" +} + +.fa-duotone.fa-place-of-worship:after, +.fad.fa-place-of-worship:after { + content: "\f67f\f67f" +} + +.fa-duotone.fa-water-arrow-up:after, +.fa-duotone.fa-water-rise:after, +.fad.fa-water-arrow-up:after, +.fad.fa-water-rise:after { + content: "\f775\f775" +} + +.fa-duotone.fa-waveform-lines:after, +.fa-duotone.fa-waveform-path:after, +.fad.fa-waveform-lines:after, +.fad.fa-waveform-path:after { + content: "\f8f2\f8f2" +} + +.fa-duotone.fa-split:after, +.fad.fa-split:after { + content: "\e254\e254" +} + +.fa-duotone.fa-film-canister:after, +.fa-duotone.fa-film-cannister:after, +.fad.fa-film-canister:after, +.fad.fa-film-cannister:after { + content: "\f8b7\f8b7" +} + +.fa-duotone.fa-folder-times:after, +.fa-duotone.fa-folder-xmark:after, +.fad.fa-folder-times:after, +.fad.fa-folder-xmark:after { + content: "\f65f\f65f" +} + +.fa-duotone.fa-toilet-paper-alt:after, +.fa-duotone.fa-toilet-paper-blank:after, +.fad.fa-toilet-paper-alt:after, +.fad.fa-toilet-paper-blank:after { + content: "\f71f\f71f" +} + +.fa-duotone.fa-tablet-android-alt:after, +.fa-duotone.fa-tablet-screen:after, +.fad.fa-tablet-android-alt:after, +.fad.fa-tablet-screen:after { + content: "\f3fc\f3fc" +} + +.fa-duotone.fa-hexagon-vertical-nft-slanted:after, +.fad.fa-hexagon-vertical-nft-slanted:after { + content: "\e506\e506" +} + +.fa-duotone.fa-folder-music:after, +.fad.fa-folder-music:after { + content: "\e18d\e18d" +} + +.fa-duotone.fa-desktop-medical:after, +.fa-duotone.fa-display-medical:after, +.fad.fa-desktop-medical:after, +.fad.fa-display-medical:after { + content: "\e166\e166" +} + +.fa-duotone.fa-share-all:after, +.fad.fa-share-all:after { + content: "\f367\f367" +} + +.fa-duotone.fa-peapod:after, +.fad.fa-peapod:after { + content: "\e31c\e31c" +} + +.fa-duotone.fa-chess-clock:after, +.fad.fa-chess-clock:after { + content: "\f43d\f43d" +} + +.fa-duotone.fa-axe:after, +.fad.fa-axe:after { + content: "\f6b2\f6b2" +} + +.fa-duotone.fa-square-d:after, +.fad.fa-square-d:after { + content: "\e268\e268" +} + +.fa-duotone.fa-grip-vertical:after, +.fad.fa-grip-vertical:after { + content: "\f58e\f58e" +} + +.fa-duotone.fa-mobile-signal-out:after, +.fad.fa-mobile-signal-out:after { + content: "\e1f0\e1f0" +} + +.fa-duotone.fa-arrow-turn-up:after, +.fa-duotone.fa-level-up:after, +.fad.fa-arrow-turn-up:after, +.fad.fa-level-up:after { + content: "\f148\f148" +} + +.fa-duotone.fa-u:after, +.fad.fa-u:after { + content: "\55\55" +} + +.fa-duotone.fa-arrow-up-from-dotted-line:after, +.fad.fa-arrow-up-from-dotted-line:after { + content: "\e09b\e09b" +} + +.fa-duotone.fa-square-root-alt:after, +.fa-duotone.fa-square-root-variable:after, +.fad.fa-square-root-alt:after, +.fad.fa-square-root-variable:after { + content: "\f698\f698" +} + +.fa-duotone.fa-light-switch-on:after, +.fad.fa-light-switch-on:after { + content: "\e019\e019" +} + +.fa-duotone.fa-arrow-down-arrow-up:after, +.fa-duotone.fa-sort-alt:after, +.fad.fa-arrow-down-arrow-up:after, +.fad.fa-sort-alt:after { + content: "\f883\f883" +} + +.fa-duotone.fa-raindrops:after, +.fad.fa-raindrops:after { + content: "\f75c\f75c" +} + +.fa-duotone.fa-dash:after, +.fa-duotone.fa-minus-large:after, +.fad.fa-dash:after, +.fad.fa-minus-large:after { + content: "\e404\e404" +} + +.fa-duotone.fa-clock-four:after, +.fa-duotone.fa-clock:after, +.fad.fa-clock-four:after, +.fad.fa-clock:after { + content: "\f017\f017" +} + +.fa-duotone.fa-input-numeric:after, +.fad.fa-input-numeric:after { + content: "\e1bd\e1bd" +} + +.fa-duotone.fa-truck-tow:after, +.fad.fa-truck-tow:after { + content: "\e2b8\e2b8" +} + +.fa-duotone.fa-backward-step:after, +.fa-duotone.fa-step-backward:after, +.fad.fa-backward-step:after, +.fad.fa-step-backward:after { + content: "\f048\f048" +} + +.fa-duotone.fa-pallet:after, +.fad.fa-pallet:after { + content: "\f482\f482" +} + +.fa-duotone.fa-car-bolt:after, +.fad.fa-car-bolt:after { + content: "\e341\e341" +} + +.fa-duotone.fa-arrows-maximize:after, +.fa-duotone.fa-expand-arrows:after, +.fad.fa-arrows-maximize:after, +.fad.fa-expand-arrows:after { + content: "\f31d\f31d" +} + +.fa-duotone.fa-faucet:after, +.fad.fa-faucet:after { + content: "\e005\e005" +} + +.fa-duotone.fa-cloud-sleet:after, +.fad.fa-cloud-sleet:after { + content: "\f741\f741" +} + +.fa-duotone.fa-lamp-street:after, +.fad.fa-lamp-street:after { + content: "\e1c5\e1c5" +} + +.fa-duotone.fa-list-radio:after, +.fad.fa-list-radio:after { + content: "\e1d0\e1d0" +} + +.fa-duotone.fa-pen-nib-slash:after, +.fad.fa-pen-nib-slash:after { + content: "\e4a1\e4a1" +} + +.fa-duotone.fa-baseball-bat-ball:after, +.fad.fa-baseball-bat-ball:after { + content: "\f432\f432" +} + +.fa-duotone.fa-square-up-left:after, +.fad.fa-square-up-left:after { + content: "\e282\e282" +} + +.fa-duotone.fa-overline:after, +.fad.fa-overline:after { + content: "\f876\f876" +} + +.fa-duotone.fa-s:after, +.fad.fa-s:after { + content: "\53\53" +} + +.fa-duotone.fa-timeline:after, +.fad.fa-timeline:after { + content: "\e29c\e29c" +} + +.fa-duotone.fa-keyboard:after, +.fad.fa-keyboard:after { + content: "\f11c\f11c" +} + +.fa-duotone.fa-arrows-from-dotted-line:after, +.fad.fa-arrows-from-dotted-line:after { + content: "\e0a3\e0a3" +} + +.fa-duotone.fa-usb-drive:after, +.fad.fa-usb-drive:after { + content: "\f8e9\f8e9" +} + +.fa-duotone.fa-ballot:after, +.fad.fa-ballot:after { + content: "\f732\f732" +} + +.fa-duotone.fa-caret-down:after, +.fad.fa-caret-down:after { + content: "\f0d7\f0d7" +} + +.fa-duotone.fa-location-dot-slash:after, +.fa-duotone.fa-map-marker-alt-slash:after, +.fad.fa-location-dot-slash:after, +.fad.fa-map-marker-alt-slash:after { + content: "\f605\f605" +} + +.fa-duotone.fa-cards:after, +.fad.fa-cards:after { + content: "\e3ed\e3ed" +} + +.fa-duotone.fa-clinic-medical:after, +.fa-duotone.fa-house-chimney-medical:after, +.fad.fa-clinic-medical:after, +.fad.fa-house-chimney-medical:after { + content: "\f7f2\f7f2" +} + +.fa-duotone.fa-boxing-glove:after, +.fa-duotone.fa-glove-boxing:after, +.fad.fa-boxing-glove:after, +.fad.fa-glove-boxing:after { + content: "\f438\f438" +} + +.fa-duotone.fa-temperature-3:after, +.fa-duotone.fa-temperature-three-quarters:after, +.fa-duotone.fa-thermometer-3:after, +.fa-duotone.fa-thermometer-three-quarters:after, +.fad.fa-temperature-3:after, +.fad.fa-temperature-three-quarters:after, +.fad.fa-thermometer-3:after, +.fad.fa-thermometer-three-quarters:after { + content: "\f2c8\f2c8" +} + +.fa-duotone.fa-bell-school:after, +.fad.fa-bell-school:after { + content: "\f5d5\f5d5" +} + +.fa-duotone.fa-mobile-android-alt:after, +.fa-duotone.fa-mobile-screen:after, +.fad.fa-mobile-android-alt:after, +.fad.fa-mobile-screen:after { + content: "\f3cf\f3cf" +} + +.fa-duotone.fa-plane-up:after, +.fad.fa-plane-up:after { + content: "\e22d\e22d" +} + +.fa-duotone.fa-folder-heart:after, +.fad.fa-folder-heart:after { + content: "\e189\e189" +} + +.fa-duotone.fa-circle-location-arrow:after, +.fa-duotone.fa-location-circle:after, +.fad.fa-circle-location-arrow:after, +.fad.fa-location-circle:after { + content: "\f602\f602" +} + +.fa-duotone.fa-face-head-bandage:after, +.fad.fa-face-head-bandage:after { + content: "\e37a\e37a" +} + +.fa-duotone.fa-maki-roll:after, +.fa-duotone.fa-makizushi:after, +.fa-duotone.fa-sushi-roll:after, +.fad.fa-maki-roll:after, +.fad.fa-makizushi:after, +.fad.fa-sushi-roll:after { + content: "\e48b\e48b" +} + +.fa-duotone.fa-car-bump:after, +.fad.fa-car-bump:after { + content: "\f5e0\f5e0" +} + +.fa-duotone.fa-piggy-bank:after, +.fad.fa-piggy-bank:after { + content: "\f4d3\f4d3" +} + +.fa-duotone.fa-racquet:after, +.fad.fa-racquet:after { + content: "\f45a\f45a" +} + +.fa-duotone.fa-car-mirrors:after, +.fad.fa-car-mirrors:after { + content: "\e343\e343" +} + +.fa-duotone.fa-industry-alt:after, +.fa-duotone.fa-industry-windows:after, +.fad.fa-industry-alt:after, +.fad.fa-industry-windows:after { + content: "\f3b3\f3b3" +} + +.fa-duotone.fa-bolt-auto:after, +.fad.fa-bolt-auto:after { + content: "\e0b6\e0b6" +} + +.fa-duotone.fa-battery-3:after, +.fa-duotone.fa-battery-half:after, +.fad.fa-battery-3:after, +.fad.fa-battery-half:after { + content: "\f242\f242" +} + +.fa-duotone.fa-flux-capacitor:after, +.fad.fa-flux-capacitor:after { + content: "\f8ba\f8ba" +} + +.fa-duotone.fa-mountain-city:after, +.fad.fa-mountain-city:after { + content: "\e52e\e52e" +} + +.fa-duotone.fa-coins:after, +.fad.fa-coins:after { + content: "\f51e\f51e" +} + +.fa-duotone.fa-honey-pot:after, +.fad.fa-honey-pot:after { + content: "\e418\e418" +} + +.fa-duotone.fa-olive:after, +.fad.fa-olive:after { + content: "\e316\e316" +} + +.fa-duotone.fa-khanda:after, +.fad.fa-khanda:after { + content: "\f66d\f66d" +} + +.fa-duotone.fa-filter-list:after, +.fad.fa-filter-list:after { + content: "\e17c\e17c" +} + +.fa-duotone.fa-outlet:after, +.fad.fa-outlet:after { + content: "\e01c\e01c" +} + +.fa-duotone.fa-sliders-h:after, +.fa-duotone.fa-sliders:after, +.fad.fa-sliders-h:after, +.fad.fa-sliders:after { + content: "\f1de\f1de" +} + +.fa-duotone.fa-cauldron:after, +.fad.fa-cauldron:after { + content: "\f6bf\f6bf" +} + +.fa-duotone.fa-people:after, +.fad.fa-people:after { + content: "\e216\e216" +} + +.fa-duotone.fa-folder-tree:after, +.fad.fa-folder-tree:after { + content: "\f802\f802" +} + +.fa-duotone.fa-network-wired:after, +.fad.fa-network-wired:after { + content: "\f6ff\f6ff" +} + +.fa-duotone.fa-croissant:after, +.fad.fa-croissant:after { + content: "\f7f6\f7f6" +} + +.fa-duotone.fa-map-pin:after, +.fad.fa-map-pin:after { + content: "\f276\f276" +} + +.fa-duotone.fa-hamsa:after, +.fad.fa-hamsa:after { + content: "\f665\f665" +} + +.fa-duotone.fa-cent-sign:after, +.fad.fa-cent-sign:after { + content: "\e3f5\e3f5" +} + +.fa-duotone.fa-swords-laser:after, +.fad.fa-swords-laser:after { + content: "\e03d\e03d" +} + +.fa-duotone.fa-flask:after, +.fad.fa-flask:after { + content: "\f0c3\f0c3" +} + +.fa-duotone.fa-person-pregnant:after, +.fad.fa-person-pregnant:after { + content: "\e31e\e31e" +} + +.fa-duotone.fa-square-u:after, +.fad.fa-square-u:after { + content: "\e281\e281" +} + +.fa-duotone.fa-wand-sparkles:after, +.fad.fa-wand-sparkles:after { + content: "\f72b\f72b" +} + +.fa-duotone.fa-router:after, +.fad.fa-router:after { + content: "\f8da\f8da" +} + +.fa-duotone.fa-ellipsis-v:after, +.fa-duotone.fa-ellipsis-vertical:after, +.fad.fa-ellipsis-v:after, +.fad.fa-ellipsis-vertical:after { + content: "\f142\f142" +} + +.fa-duotone.fa-sword-laser-alt:after, +.fad.fa-sword-laser-alt:after { + content: "\e03c\e03c" +} + +.fa-duotone.fa-ticket:after, +.fad.fa-ticket:after { + content: "\f145\f145" +} + +.fa-duotone.fa-power-off:after, +.fad.fa-power-off:after { + content: "\f011\f011" +} + +.fa-duotone.fa-coin:after, +.fad.fa-coin:after { + content: "\f85c\f85c" +} + +.fa-duotone.fa-laptop-slash:after, +.fad.fa-laptop-slash:after { + content: "\e1c7\e1c7" +} + +.fa-duotone.fa-long-arrow-alt-right:after, +.fa-duotone.fa-right-long:after, +.fad.fa-long-arrow-alt-right:after, +.fad.fa-right-long:after { + content: "\f30b\f30b" +} + +.fa-duotone.fa-circle-b:after, +.fad.fa-circle-b:after { + content: "\e0fd\e0fd" +} + +.fa-duotone.fa-person-dress-simple:after, +.fad.fa-person-dress-simple:after { + content: "\e21c\e21c" +} + +.fa-duotone.fa-pipe-collar:after, +.fad.fa-pipe-collar:after { + content: "\e437\e437" +} + +.fa-duotone.fa-lights-holiday:after, +.fad.fa-lights-holiday:after { + content: "\f7b2\f7b2" +} + +.fa-duotone.fa-citrus:after, +.fad.fa-citrus:after { + content: "\e2f4\e2f4" +} + +.fa-duotone.fa-flag-usa:after, +.fad.fa-flag-usa:after { + content: "\f74d\f74d" +} + +.fa-duotone.fa-laptop-file:after, +.fad.fa-laptop-file:after { + content: "\e51d\e51d" +} + +.fa-duotone.fa-teletype:after, +.fa-duotone.fa-tty:after, +.fad.fa-teletype:after, +.fad.fa-tty:after { + content: "\f1e4\f1e4" +} + +.fa-duotone.fa-chart-tree-map:after, +.fad.fa-chart-tree-map:after { + content: "\e0ea\e0ea" +} + +.fa-duotone.fa-diagram-next:after, +.fad.fa-diagram-next:after { + content: "\e476\e476" +} + +.fa-duotone.fa-person-rifle:after, +.fad.fa-person-rifle:after { + content: "\e54e\e54e" +} + +.fa-duotone.fa-clock-five-thirty:after, +.fad.fa-clock-five-thirty:after { + content: "\e34a\e34a" +} + +.fa-duotone.fa-pipe-valve:after, +.fad.fa-pipe-valve:after { + content: "\e439\e439" +} + +.fa-duotone.fa-arrow-up-from-arc:after, +.fad.fa-arrow-up-from-arc:after { + content: "\e4b4\e4b4" +} + +.fa-duotone.fa-face-spiral-eyes:after, +.fad.fa-face-spiral-eyes:after { + content: "\e485\e485" +} + +.fa-duotone.fa-compress-wide:after, +.fad.fa-compress-wide:after { + content: "\f326\f326" +} + +.fa-duotone.fa-circle-phone-hangup:after, +.fa-duotone.fa-phone-circle-down:after, +.fad.fa-circle-phone-hangup:after, +.fad.fa-phone-circle-down:after { + content: "\e11d\e11d" +} + +.fa-duotone.fa-gear-complex-code:after, +.fad.fa-gear-complex-code:after { + content: "\e5eb\e5eb" +} + +.fa-duotone.fa-house-medical-circle-exclamation:after, +.fad.fa-house-medical-circle-exclamation:after { + content: "\e512\e512" +} + +.fa-duotone.fa-badminton:after, +.fad.fa-badminton:after { + content: "\e33a\e33a" +} + +.fa-duotone.fa-closed-captioning:after, +.fad.fa-closed-captioning:after { + content: "\f20a\f20a" +} + +.fa-duotone.fa-hiking:after, +.fa-duotone.fa-person-hiking:after, +.fad.fa-hiking:after, +.fad.fa-person-hiking:after { + content: "\f6ec\f6ec" +} + +.fa-duotone.fa-arrow-alt-from-left:after, +.fa-duotone.fa-right-from-line:after, +.fad.fa-arrow-alt-from-left:after, +.fad.fa-right-from-line:after { + content: "\f347\f347" +} + +.fa-duotone.fa-venus-double:after, +.fad.fa-venus-double:after { + content: "\f226\f226" +} + +.fa-duotone.fa-images:after, +.fad.fa-images:after { + content: "\f302\f302" +} + +.fa-duotone.fa-calculator:after, +.fad.fa-calculator:after { + content: "\f1ec\f1ec" +} + +.fa-duotone.fa-shuttlecock:after, +.fad.fa-shuttlecock:after { + content: "\f45b\f45b" +} + +.fa-duotone.fa-user-hair:after, +.fad.fa-user-hair:after { + content: "\e45a\e45a" +} + +.fa-duotone.fa-eye-evil:after, +.fad.fa-eye-evil:after { + content: "\f6db\f6db" +} + +.fa-duotone.fa-people-pulling:after, +.fad.fa-people-pulling:after { + content: "\e535\e535" +} + +.fa-duotone.fa-n:after, +.fad.fa-n:after { + content: "\4e\4e" +} + +.fa-duotone.fa-swap:after, +.fad.fa-swap:after { + content: "\e609\e609" +} + +.fa-duotone.fa-garage:after, +.fad.fa-garage:after { + content: "\e009\e009" +} + +.fa-duotone.fa-cable-car:after, +.fa-duotone.fa-tram:after, +.fad.fa-cable-car:after, +.fad.fa-tram:after { + content: "\f7da\f7da" +} + +.fa-duotone.fa-shovel-snow:after, +.fad.fa-shovel-snow:after { + content: "\f7c3\f7c3" +} + +.fa-duotone.fa-cloud-rain:after, +.fad.fa-cloud-rain:after { + content: "\f73d\f73d" +} + +.fa-duotone.fa-face-lying:after, +.fad.fa-face-lying:after { + content: "\e37e\e37e" +} + +.fa-duotone.fa-sprinkler:after, +.fad.fa-sprinkler:after { + content: "\e035\e035" +} + +.fa-duotone.fa-building-circle-xmark:after, +.fad.fa-building-circle-xmark:after { + content: "\e4d4\e4d4" +} + +.fa-duotone.fa-person-sledding:after, +.fa-duotone.fa-sledding:after, +.fad.fa-person-sledding:after, +.fad.fa-sledding:after { + content: "\f7cb\f7cb" +} + +.fa-duotone.fa-game-console-handheld:after, +.fad.fa-game-console-handheld:after { + content: "\f8bb\f8bb" +} + +.fa-duotone.fa-ship:after, +.fad.fa-ship:after { + content: "\f21a\f21a" +} + +.fa-duotone.fa-clock-six-thirty:after, +.fad.fa-clock-six-thirty:after { + content: "\e353\e353" +} + +.fa-duotone.fa-battery-slash:after, +.fad.fa-battery-slash:after { + content: "\f377\f377" +} + +.fa-duotone.fa-tugrik-sign:after, +.fad.fa-tugrik-sign:after { + content: "\e2ba\e2ba" +} + +.fa-duotone.fa-arrows-down-to-line:after, +.fad.fa-arrows-down-to-line:after { + content: "\e4b8\e4b8" +} + +.fa-duotone.fa-download:after, +.fad.fa-download:after { + content: "\f019\f019" +} + +.fa-duotone.fa-angles-up-down:after, +.fad.fa-angles-up-down:after { + content: "\e60d\e60d" +} + +.fa-duotone.fa-inventory:after, +.fa-duotone.fa-shelves:after, +.fad.fa-inventory:after, +.fad.fa-shelves:after { + content: "\f480\f480" +} + +.fa-duotone.fa-cloud-snow:after, +.fad.fa-cloud-snow:after { + content: "\f742\f742" +} + +.fa-duotone.fa-face-grin:after, +.fa-duotone.fa-grin:after, +.fad.fa-face-grin:after, +.fad.fa-grin:after { + content: "\f580\f580" +} + +.fa-duotone.fa-backspace:after, +.fa-duotone.fa-delete-left:after, +.fad.fa-backspace:after, +.fad.fa-delete-left:after { + content: "\f55a\f55a" +} + +.fa-duotone.fa-oven:after, +.fad.fa-oven:after { + content: "\e01d\e01d" +} + +.fa-duotone.fa-cloud-binary:after, +.fad.fa-cloud-binary:after { + content: "\e601\e601" +} + +.fa-duotone.fa-eye-dropper-empty:after, +.fa-duotone.fa-eye-dropper:after, +.fa-duotone.fa-eyedropper:after, +.fad.fa-eye-dropper-empty:after, +.fad.fa-eye-dropper:after, +.fad.fa-eyedropper:after { + content: "\f1fb\f1fb" +} + +.fa-duotone.fa-comment-captions:after, +.fad.fa-comment-captions:after { + content: "\e146\e146" +} + +.fa-duotone.fa-comments-question:after, +.fad.fa-comments-question:after { + content: "\e14e\e14e" +} + +.fa-duotone.fa-scribble:after, +.fad.fa-scribble:after { + content: "\e23f\e23f" +} + +.fa-duotone.fa-rotate-exclamation:after, +.fad.fa-rotate-exclamation:after { + content: "\e23c\e23c" +} + +.fa-duotone.fa-file-circle-check:after, +.fad.fa-file-circle-check:after { + content: "\e5a0\e5a0" +} + +.fa-duotone.fa-glass:after, +.fad.fa-glass:after { + content: "\f804\f804" +} + +.fa-duotone.fa-loader:after, +.fad.fa-loader:after { + content: "\e1d4\e1d4" +} + +.fa-duotone.fa-forward:after, +.fad.fa-forward:after { + content: "\f04e\f04e" +} + +.fa-duotone.fa-user-pilot:after, +.fad.fa-user-pilot:after { + content: "\e2c0\e2c0" +} + +.fa-duotone.fa-mobile-android:after, +.fa-duotone.fa-mobile-phone:after, +.fa-duotone.fa-mobile:after, +.fad.fa-mobile-android:after, +.fad.fa-mobile-phone:after, +.fad.fa-mobile:after { + content: "\f3ce\f3ce" +} + +.fa-duotone.fa-code-pull-request-closed:after, +.fad.fa-code-pull-request-closed:after { + content: "\e3f9\e3f9" +} + +.fa-duotone.fa-face-meh:after, +.fa-duotone.fa-meh:after, +.fad.fa-face-meh:after, +.fad.fa-meh:after { + content: "\f11a\f11a" +} + +.fa-duotone.fa-align-center:after, +.fad.fa-align-center:after { + content: "\f037\f037" +} + +.fa-duotone.fa-book-dead:after, +.fa-duotone.fa-book-skull:after, +.fad.fa-book-dead:after, +.fad.fa-book-skull:after { + content: "\f6b7\f6b7" +} + +.fa-duotone.fa-drivers-license:after, +.fa-duotone.fa-id-card:after, +.fad.fa-drivers-license:after, +.fad.fa-id-card:after { + content: "\f2c2\f2c2" +} + +.fa-duotone.fa-face-dotted:after, +.fad.fa-face-dotted:after { + content: "\e47f\e47f" +} + +.fa-duotone.fa-face-worried:after, +.fad.fa-face-worried:after { + content: "\e3a3\e3a3" +} + +.fa-duotone.fa-dedent:after, +.fa-duotone.fa-outdent:after, +.fad.fa-dedent:after, +.fad.fa-outdent:after { + content: "\f03b\f03b" +} + +.fa-duotone.fa-court-sport:after, +.fad.fa-court-sport:after { + content: "\e643\e643" +} + +.fa-duotone.fa-heart-circle-exclamation:after, +.fad.fa-heart-circle-exclamation:after { + content: "\e4fe\e4fe" +} + +.fa-duotone.fa-home-alt:after, +.fa-duotone.fa-home-lg-alt:after, +.fa-duotone.fa-home:after, +.fa-duotone.fa-house:after, +.fad.fa-home-alt:after, +.fad.fa-home-lg-alt:after, +.fad.fa-home:after, +.fad.fa-house:after { + content: "\f015\f015" +} + +.fa-duotone.fa-vector-circle:after, +.fad.fa-vector-circle:after { + content: "\e2c6\e2c6" +} + +.fa-duotone.fa-car-circle-bolt:after, +.fad.fa-car-circle-bolt:after { + content: "\e342\e342" +} + +.fa-duotone.fa-calendar-week:after, +.fad.fa-calendar-week:after { + content: "\f784\f784" +} + +.fa-duotone.fa-flying-disc:after, +.fad.fa-flying-disc:after { + content: "\e3a9\e3a9" +} + +.fa-duotone.fa-laptop-medical:after, +.fad.fa-laptop-medical:after { + content: "\f812\f812" +} + +.fa-duotone.fa-square-down-right:after, +.fad.fa-square-down-right:after { + content: "\e26c\e26c" +} + +.fa-duotone.fa-b:after, +.fad.fa-b:after { + content: "\42\42" +} + +.fa-duotone.fa-seat-airline:after, +.fad.fa-seat-airline:after { + content: "\e244\e244" +} + +.fa-duotone.fa-eclipse-alt:after, +.fa-duotone.fa-moon-over-sun:after, +.fad.fa-eclipse-alt:after, +.fad.fa-moon-over-sun:after { + content: "\f74a\f74a" +} + +.fa-duotone.fa-pipe:after, +.fad.fa-pipe:after { + content: "\7c\7c" +} + +.fa-duotone.fa-file-medical:after, +.fad.fa-file-medical:after { + content: "\f477\f477" +} + +.fa-duotone.fa-potato:after, +.fad.fa-potato:after { + content: "\e440\e440" +} + +.fa-duotone.fa-dice-one:after, +.fad.fa-dice-one:after { + content: "\f525\f525" +} + +.fa-duotone.fa-circle-a:after, +.fad.fa-circle-a:after { + content: "\e0f7\e0f7" +} + +.fa-duotone.fa-helmet-battle:after, +.fad.fa-helmet-battle:after { + content: "\f6eb\f6eb" +} + +.fa-duotone.fa-butter:after, +.fad.fa-butter:after { + content: "\e3e4\e3e4" +} + +.fa-duotone.fa-blanket-fire:after, +.fad.fa-blanket-fire:after { + content: "\e3da\e3da" +} + +.fa-duotone.fa-kiwi-bird:after, +.fad.fa-kiwi-bird:after { + content: "\f535\f535" +} + +.fa-duotone.fa-castle:after, +.fad.fa-castle:after { + content: "\e0de\e0de" +} + +.fa-duotone.fa-golf-club:after, +.fad.fa-golf-club:after { + content: "\f451\f451" +} + +.fa-duotone.fa-arrow-right-arrow-left:after, +.fa-duotone.fa-exchange:after, +.fad.fa-arrow-right-arrow-left:after, +.fad.fa-exchange:after { + content: "\f0ec\f0ec" +} + +.fa-duotone.fa-redo-alt:after, +.fa-duotone.fa-rotate-forward:after, +.fa-duotone.fa-rotate-right:after, +.fad.fa-redo-alt:after, +.fad.fa-rotate-forward:after, +.fad.fa-rotate-right:after { + content: "\f2f9\f2f9" +} + +.fa-duotone.fa-cutlery:after, +.fa-duotone.fa-utensils:after, +.fad.fa-cutlery:after, +.fad.fa-utensils:after { + content: "\f2e7\f2e7" +} + +.fa-duotone.fa-arrow-up-wide-short:after, +.fa-duotone.fa-sort-amount-up:after, +.fad.fa-arrow-up-wide-short:after, +.fad.fa-sort-amount-up:after { + content: "\f161\f161" +} + +.fa-duotone.fa-chart-pie-simple-circle-dollar:after, +.fad.fa-chart-pie-simple-circle-dollar:after { + content: "\e605\e605" +} + +.fa-duotone.fa-balloons:after, +.fad.fa-balloons:after { + content: "\e2e4\e2e4" +} + +.fa-duotone.fa-mill-sign:after, +.fad.fa-mill-sign:after { + content: "\e1ed\e1ed" +} + +.fa-duotone.fa-bowl-rice:after, +.fad.fa-bowl-rice:after { + content: "\e2eb\e2eb" +} + +.fa-duotone.fa-timeline-arrow:after, +.fad.fa-timeline-arrow:after { + content: "\e29d\e29d" +} + +.fa-duotone.fa-skull:after, +.fad.fa-skull:after { + content: "\f54c\f54c" +} + +.fa-duotone.fa-game-board-alt:after, +.fa-duotone.fa-game-board-simple:after, +.fad.fa-game-board-alt:after, +.fad.fa-game-board-simple:after { + content: "\f868\f868" +} + +.fa-duotone.fa-circle-video:after, +.fa-duotone.fa-video-circle:after, +.fad.fa-circle-video:after, +.fad.fa-video-circle:after { + content: "\e12b\e12b" +} + +.fa-duotone.fa-chart-scatter-bubble:after, +.fad.fa-chart-scatter-bubble:after { + content: "\e0e9\e0e9" +} + +.fa-duotone.fa-house-turret:after, +.fad.fa-house-turret:after { + content: "\e1b4\e1b4" +} + +.fa-duotone.fa-banana:after, +.fad.fa-banana:after { + content: "\e2e5\e2e5" +} + +.fa-duotone.fa-hand-holding-skull:after, +.fad.fa-hand-holding-skull:after { + content: "\e1a4\e1a4" +} + +.fa-duotone.fa-people-dress:after, +.fad.fa-people-dress:after { + content: "\e217\e217" +} + +.fa-duotone.fa-couch-small:after, +.fa-duotone.fa-loveseat:after, +.fad.fa-couch-small:after, +.fad.fa-loveseat:after { + content: "\f4cc\f4cc" +} + +.fa-duotone.fa-broadcast-tower:after, +.fa-duotone.fa-tower-broadcast:after, +.fad.fa-broadcast-tower:after, +.fad.fa-tower-broadcast:after { + content: "\f519\f519" +} + +.fa-duotone.fa-truck-pickup:after, +.fad.fa-truck-pickup:after { + content: "\f63c\f63c" +} + +.fa-duotone.fa-block-quote:after, +.fad.fa-block-quote:after { + content: "\e0b5\e0b5" +} + +.fa-duotone.fa-long-arrow-alt-up:after, +.fa-duotone.fa-up-long:after, +.fad.fa-long-arrow-alt-up:after, +.fad.fa-up-long:after { + content: "\f30c\f30c" +} + +.fa-duotone.fa-stop:after, +.fad.fa-stop:after { + content: "\f04d\f04d" +} + +.fa-duotone.fa-code-merge:after, +.fad.fa-code-merge:after { + content: "\f387\f387" +} + +.fa-duotone.fa-money-check-dollar-pen:after, +.fa-duotone.fa-money-check-edit-alt:after, +.fad.fa-money-check-dollar-pen:after, +.fad.fa-money-check-edit-alt:after { + content: "\f873\f873" +} + +.fa-duotone.fa-arrow-alt-from-bottom:after, +.fa-duotone.fa-up-from-line:after, +.fad.fa-arrow-alt-from-bottom:after, +.fad.fa-up-from-line:after { + content: "\f346\f346" +} + +.fa-duotone.fa-upload:after, +.fad.fa-upload:after { + content: "\f093\f093" +} + +.fa-duotone.fa-hurricane:after, +.fad.fa-hurricane:after { + content: "\f751\f751" +} + +.fa-duotone.fa-grid-round-2-plus:after, +.fad.fa-grid-round-2-plus:after { + content: "\e5dc\e5dc" +} + +.fa-duotone.fa-people-pants:after, +.fad.fa-people-pants:after { + content: "\e219\e219" +} + +.fa-duotone.fa-mound:after, +.fad.fa-mound:after { + content: "\e52d\e52d" +} + +.fa-duotone.fa-windsock:after, +.fad.fa-windsock:after { + content: "\f777\f777" +} + +.fa-duotone.fa-circle-half:after, +.fad.fa-circle-half:after { + content: "\e110\e110" +} + +.fa-duotone.fa-brake-warning:after, +.fad.fa-brake-warning:after { + content: "\e0c7\e0c7" +} + +.fa-duotone.fa-toilet-portable:after, +.fad.fa-toilet-portable:after { + content: "\e583\e583" +} + +.fa-duotone.fa-compact-disc:after, +.fad.fa-compact-disc:after { + content: "\f51f\f51f" +} + +.fa-duotone.fa-file-arrow-down:after, +.fa-duotone.fa-file-download:after, +.fad.fa-file-arrow-down:after, +.fad.fa-file-download:after { + content: "\f56d\f56d" +} + +.fa-duotone.fa-sax-hot:after, +.fa-duotone.fa-saxophone-fire:after, +.fad.fa-sax-hot:after, +.fad.fa-saxophone-fire:after { + content: "\f8db\f8db" +} + +.fa-duotone.fa-camera-web-slash:after, +.fa-duotone.fa-webcam-slash:after, +.fad.fa-camera-web-slash:after, +.fad.fa-webcam-slash:after { + content: "\f833\f833" +} + +.fa-duotone.fa-folder-medical:after, +.fad.fa-folder-medical:after { + content: "\e18c\e18c" +} + +.fa-duotone.fa-folder-cog:after, +.fa-duotone.fa-folder-gear:after, +.fad.fa-folder-cog:after, +.fad.fa-folder-gear:after { + content: "\e187\e187" +} + +.fa-duotone.fa-hand-wave:after, +.fad.fa-hand-wave:after { + content: "\e1a7\e1a7" +} + +.fa-duotone.fa-arrow-up-arrow-down:after, +.fa-duotone.fa-sort-up-down:after, +.fad.fa-arrow-up-arrow-down:after, +.fad.fa-sort-up-down:after { + content: "\e099\e099" +} + +.fa-duotone.fa-caravan:after, +.fad.fa-caravan:after { + content: "\f8ff\f8ff" +} + +.fa-duotone.fa-shield-cat:after, +.fad.fa-shield-cat:after { + content: "\e572\e572" +} + +.fa-duotone.fa-comment-alt-slash:after, +.fa-duotone.fa-message-slash:after, +.fad.fa-comment-alt-slash:after, +.fad.fa-message-slash:after { + content: "\f4a9\f4a9" +} + +.fa-duotone.fa-bolt:after, +.fa-duotone.fa-zap:after, +.fad.fa-bolt:after, +.fad.fa-zap:after { + content: "\f0e7\f0e7" +} + +.fa-duotone.fa-trash-can-check:after, +.fad.fa-trash-can-check:after { + content: "\e2a9\e2a9" +} + +.fa-duotone.fa-glass-water:after, +.fad.fa-glass-water:after { + content: "\e4f4\e4f4" +} + +.fa-duotone.fa-oil-well:after, +.fad.fa-oil-well:after { + content: "\e532\e532" +} + +.fa-duotone.fa-person-simple:after, +.fad.fa-person-simple:after { + content: "\e220\e220" +} + +.fa-duotone.fa-arrow-turn-left-up:after, +.fad.fa-arrow-turn-left-up:after { + content: "\e634\e634" +} + +.fa-duotone.fa-vault:after, +.fad.fa-vault:after { + content: "\e2c5\e2c5" +} + +.fa-duotone.fa-mars:after, +.fad.fa-mars:after { + content: "\f222\f222" +} + +.fa-duotone.fa-toilet:after, +.fad.fa-toilet:after { + content: "\f7d8\f7d8" +} + +.fa-duotone.fa-plane-circle-xmark:after, +.fad.fa-plane-circle-xmark:after { + content: "\e557\e557" +} + +.fa-duotone.fa-cny:after, +.fa-duotone.fa-jpy:after, +.fa-duotone.fa-rmb:after, +.fa-duotone.fa-yen-sign:after, +.fa-duotone.fa-yen:after, +.fad.fa-cny:after, +.fad.fa-jpy:after, +.fad.fa-rmb:after, +.fad.fa-yen-sign:after, +.fad.fa-yen:after { + content: "\f157\f157" +} + +.fa-duotone.fa-gear-code:after, +.fad.fa-gear-code:after { + content: "\e5e8\e5e8" +} + +.fa-duotone.fa-notes:after, +.fad.fa-notes:after { + content: "\e202\e202" +} + +.fa-duotone.fa-rouble:after, +.fa-duotone.fa-rub:after, +.fa-duotone.fa-ruble-sign:after, +.fa-duotone.fa-ruble:after, +.fad.fa-rouble:after, +.fad.fa-rub:after, +.fad.fa-ruble-sign:after, +.fad.fa-ruble:after { + content: "\f158\f158" +} + +.fa-duotone.fa-trash-arrow-turn-left:after, +.fa-duotone.fa-trash-undo:after, +.fad.fa-trash-arrow-turn-left:after, +.fad.fa-trash-undo:after { + content: "\f895\f895" +} + +.fa-duotone.fa-champagne-glass:after, +.fa-duotone.fa-glass-champagne:after, +.fad.fa-champagne-glass:after, +.fad.fa-glass-champagne:after { + content: "\f79e\f79e" +} + +.fa-duotone.fa-objects-align-center-horizontal:after, +.fad.fa-objects-align-center-horizontal:after { + content: "\e3bc\e3bc" +} + +.fa-duotone.fa-sun:after, +.fad.fa-sun:after { + content: "\f185\f185" +} + +.fa-duotone.fa-trash-alt-slash:after, +.fa-duotone.fa-trash-can-slash:after, +.fad.fa-trash-alt-slash:after, +.fad.fa-trash-can-slash:after { + content: "\e2ad\e2ad" +} + +.fa-duotone.fa-screen-users:after, +.fa-duotone.fa-users-class:after, +.fad.fa-screen-users:after, +.fad.fa-users-class:after { + content: "\f63d\f63d" +} + +.fa-duotone.fa-guitar:after, +.fad.fa-guitar:after { + content: "\f7a6\f7a6" +} + +.fa-duotone.fa-arrow-square-left:after, +.fa-duotone.fa-square-arrow-left:after, +.fad.fa-arrow-square-left:after, +.fad.fa-square-arrow-left:after { + content: "\f33a\f33a" +} + +.fa-duotone.fa-square-8:after, +.fad.fa-square-8:after { + content: "\e25d\e25d" +} + +.fa-duotone.fa-face-smile-hearts:after, +.fad.fa-face-smile-hearts:after { + content: "\e390\e390" +} + +.fa-duotone.fa-brackets-square:after, +.fa-duotone.fa-brackets:after, +.fad.fa-brackets-square:after, +.fad.fa-brackets:after { + content: "\f7e9\f7e9" +} + +.fa-duotone.fa-laptop-arrow-down:after, +.fad.fa-laptop-arrow-down:after { + content: "\e1c6\e1c6" +} + +.fa-duotone.fa-hockey-stick-puck:after, +.fad.fa-hockey-stick-puck:after { + content: "\e3ae\e3ae" +} + +.fa-duotone.fa-house-tree:after, +.fad.fa-house-tree:after { + content: "\e1b3\e1b3" +} + +.fa-duotone.fa-signal-2:after, +.fa-duotone.fa-signal-fair:after, +.fad.fa-signal-2:after, +.fad.fa-signal-fair:after { + content: "\f68d\f68d" +} + +.fa-duotone.fa-face-laugh-wink:after, +.fa-duotone.fa-laugh-wink:after, +.fad.fa-face-laugh-wink:after, +.fad.fa-laugh-wink:after { + content: "\f59c\f59c" +} + +.fa-duotone.fa-circle-dollar:after, +.fa-duotone.fa-dollar-circle:after, +.fa-duotone.fa-usd-circle:after, +.fad.fa-circle-dollar:after, +.fad.fa-dollar-circle:after, +.fad.fa-usd-circle:after { + content: "\f2e8\f2e8" +} + +.fa-duotone.fa-horse-head:after, +.fad.fa-horse-head:after { + content: "\f7ab\f7ab" +} + +.fa-duotone.fa-arrows-repeat:after, +.fa-duotone.fa-repeat-alt:after, +.fad.fa-arrows-repeat:after, +.fad.fa-repeat-alt:after { + content: "\f364\f364" +} + +.fa-duotone.fa-bore-hole:after, +.fad.fa-bore-hole:after { + content: "\e4c3\e4c3" +} + +.fa-duotone.fa-industry:after, +.fad.fa-industry:after { + content: "\f275\f275" +} + +.fa-duotone.fa-image-polaroid:after, +.fad.fa-image-polaroid:after { + content: "\f8c4\f8c4" +} + +.fa-duotone.fa-wave-triangle:after, +.fad.fa-wave-triangle:after { + content: "\f89a\f89a" +} + +.fa-duotone.fa-turn-left-down:after, +.fad.fa-turn-left-down:after { + content: "\e637\e637" +} + +.fa-duotone.fa-person-running-fast:after, +.fad.fa-person-running-fast:after { + content: "\e5ff\e5ff" +} + +.fa-duotone.fa-arrow-alt-circle-down:after, +.fa-duotone.fa-circle-down:after, +.fad.fa-arrow-alt-circle-down:after, +.fad.fa-circle-down:after { + content: "\f358\f358" +} + +.fa-duotone.fa-grill:after, +.fad.fa-grill:after { + content: "\e5a3\e5a3" +} + +.fa-duotone.fa-arrows-turn-to-dots:after, +.fad.fa-arrows-turn-to-dots:after { + content: "\e4c1\e4c1" +} + +.fa-duotone.fa-analytics:after, +.fa-duotone.fa-chart-mixed:after, +.fad.fa-analytics:after, +.fad.fa-chart-mixed:after { + content: "\f643\f643" +} + +.fa-duotone.fa-florin-sign:after, +.fad.fa-florin-sign:after { + content: "\e184\e184" +} + +.fa-duotone.fa-arrow-down-short-wide:after, +.fa-duotone.fa-sort-amount-desc:after, +.fa-duotone.fa-sort-amount-down-alt:after, +.fad.fa-arrow-down-short-wide:after, +.fad.fa-sort-amount-desc:after, +.fad.fa-sort-amount-down-alt:after { + content: "\f884\f884" +} + +.fa-duotone.fa-less-than:after, +.fad.fa-less-than:after { + content: "\3c\3c" +} + +.fa-duotone.fa-desktop-code:after, +.fa-duotone.fa-display-code:after, +.fad.fa-desktop-code:after, +.fad.fa-display-code:after { + content: "\e165\e165" +} + +.fa-duotone.fa-face-drooling:after, +.fad.fa-face-drooling:after { + content: "\e372\e372" +} + +.fa-duotone.fa-oil-temp:after, +.fa-duotone.fa-oil-temperature:after, +.fad.fa-oil-temp:after, +.fad.fa-oil-temperature:after { + content: "\f614\f614" +} + +.fa-duotone.fa-question-square:after, +.fa-duotone.fa-square-question:after, +.fad.fa-question-square:after, +.fad.fa-square-question:after { + content: "\f2fd\f2fd" +} + +.fa-duotone.fa-air-conditioner:after, +.fad.fa-air-conditioner:after { + content: "\f8f4\f8f4" +} + +.fa-duotone.fa-angle-down:after, +.fad.fa-angle-down:after { + content: "\f107\f107" +} + +.fa-duotone.fa-mountains:after, +.fad.fa-mountains:after { + content: "\f6fd\f6fd" +} + +.fa-duotone.fa-omega:after, +.fad.fa-omega:after { + content: "\f67a\f67a" +} + +.fa-duotone.fa-car-tunnel:after, +.fad.fa-car-tunnel:after { + content: "\e4de\e4de" +} + +.fa-duotone.fa-person-dolly-empty:after, +.fad.fa-person-dolly-empty:after { + content: "\f4d1\f4d1" +} + +.fa-duotone.fa-pan-food:after, +.fad.fa-pan-food:after { + content: "\e42b\e42b" +} + +.fa-duotone.fa-head-side-cough:after, +.fad.fa-head-side-cough:after { + content: "\e061\e061" +} + +.fa-duotone.fa-grip-lines:after, +.fad.fa-grip-lines:after { + content: "\f7a4\f7a4" +} + +.fa-duotone.fa-thumbs-down:after, +.fad.fa-thumbs-down:after { + content: "\f165\f165" +} + +.fa-duotone.fa-user-lock:after, +.fad.fa-user-lock:after { + content: "\f502\f502" +} + +.fa-duotone.fa-arrow-right-long:after, +.fa-duotone.fa-long-arrow-right:after, +.fad.fa-arrow-right-long:after, +.fad.fa-long-arrow-right:after { + content: "\f178\f178" +} + +.fa-duotone.fa-tickets-airline:after, +.fa-duotone.fa-tickets-perforated-plane:after, +.fa-duotone.fa-tickets-plane:after, +.fad.fa-tickets-airline:after, +.fad.fa-tickets-perforated-plane:after, +.fad.fa-tickets-plane:after { + content: "\e29b\e29b" +} + +.fa-duotone.fa-tent-double-peak:after, +.fad.fa-tent-double-peak:after { + content: "\e627\e627" +} + +.fa-duotone.fa-anchor-circle-xmark:after, +.fad.fa-anchor-circle-xmark:after { + content: "\e4ac\e4ac" +} + +.fa-duotone.fa-ellipsis-h:after, +.fa-duotone.fa-ellipsis:after, +.fad.fa-ellipsis-h:after, +.fad.fa-ellipsis:after { + content: "\f141\f141" +} + +.fa-duotone.fa-nfc-slash:after, +.fad.fa-nfc-slash:after { + content: "\e1fc\e1fc" +} + +.fa-duotone.fa-chess-pawn:after, +.fad.fa-chess-pawn:after { + content: "\f443\f443" +} + +.fa-duotone.fa-first-aid:after, +.fa-duotone.fa-kit-medical:after, +.fad.fa-first-aid:after, +.fad.fa-kit-medical:after { + content: "\f479\f479" +} + +.fa-duotone.fa-grid-2-plus:after, +.fad.fa-grid-2-plus:after { + content: "\e197\e197" +} + +.fa-duotone.fa-bells:after, +.fad.fa-bells:after { + content: "\f77f\f77f" +} + +.fa-duotone.fa-person-through-window:after, +.fad.fa-person-through-window:after { + content: "\e5a9\e5a9" +} + +.fa-duotone.fa-toolbox:after, +.fad.fa-toolbox:after { + content: "\f552\f552" +} + +.fa-duotone.fa-envelope-badge:after, +.fa-duotone.fa-envelope-dot:after, +.fad.fa-envelope-badge:after, +.fad.fa-envelope-dot:after { + content: "\e16f\e16f" +} + +.fa-duotone.fa-magnifying-glass-waveform:after, +.fad.fa-magnifying-glass-waveform:after { + content: "\e661\e661" +} + +.fa-duotone.fa-hands-holding-circle:after, +.fad.fa-hands-holding-circle:after { + content: "\e4fb\e4fb" +} + +.fa-duotone.fa-bug:after, +.fad.fa-bug:after { + content: "\f188\f188" +} + +.fa-duotone.fa-bowl-chopsticks:after, +.fad.fa-bowl-chopsticks:after { + content: "\e2e9\e2e9" +} + +.fa-duotone.fa-credit-card-alt:after, +.fa-duotone.fa-credit-card:after, +.fad.fa-credit-card-alt:after, +.fad.fa-credit-card:after { + content: "\f09d\f09d" +} + +.fa-duotone.fa-circle-s:after, +.fad.fa-circle-s:after { + content: "\e121\e121" +} + +.fa-duotone.fa-box-ballot:after, +.fad.fa-box-ballot:after { + content: "\f735\f735" +} + +.fa-duotone.fa-automobile:after, +.fa-duotone.fa-car:after, +.fad.fa-automobile:after, +.fad.fa-car:after { + content: "\f1b9\f1b9" +} + +.fa-duotone.fa-hand-holding-hand:after, +.fad.fa-hand-holding-hand:after { + content: "\e4f7\e4f7" +} + +.fa-duotone.fa-user-tie-hair:after, +.fad.fa-user-tie-hair:after { + content: "\e45f\e45f" +} + +.fa-duotone.fa-podium-star:after, +.fad.fa-podium-star:after { + content: "\f758\f758" +} + +.fa-duotone.fa-business-front:after, +.fa-duotone.fa-party-back:after, +.fa-duotone.fa-trian-balbot:after, +.fa-duotone.fa-user-hair-mullet:after, +.fad.fa-business-front:after, +.fad.fa-party-back:after, +.fad.fa-trian-balbot:after, +.fad.fa-user-hair-mullet:after { + content: "\e45c\e45c" +} + +.fa-duotone.fa-microphone-stand:after, +.fad.fa-microphone-stand:after { + content: "\f8cb\f8cb" +} + +.fa-duotone.fa-book-open-reader:after, +.fa-duotone.fa-book-reader:after, +.fad.fa-book-open-reader:after, +.fad.fa-book-reader:after { + content: "\f5da\f5da" +} + +.fa-duotone.fa-family-dress:after, +.fad.fa-family-dress:after { + content: "\e301\e301" +} + +.fa-duotone.fa-circle-x:after, +.fad.fa-circle-x:after { + content: "\e12e\e12e" +} + +.fa-duotone.fa-cabin:after, +.fad.fa-cabin:after { + content: "\e46d\e46d" +} + +.fa-duotone.fa-mountain-sun:after, +.fad.fa-mountain-sun:after { + content: "\e52f\e52f" +} + +.fa-duotone.fa-chart-simple-horizontal:after, +.fad.fa-chart-simple-horizontal:after { + content: "\e474\e474" +} + +.fa-duotone.fa-arrows-left-right-to-line:after, +.fad.fa-arrows-left-right-to-line:after { + content: "\e4ba\e4ba" +} + +.fa-duotone.fa-hand-back-point-left:after, +.fad.fa-hand-back-point-left:after { + content: "\e19f\e19f" +} + +.fa-duotone.fa-comment-alt-dots:after, +.fa-duotone.fa-message-dots:after, +.fa-duotone.fa-messaging:after, +.fad.fa-comment-alt-dots:after, +.fad.fa-message-dots:after, +.fad.fa-messaging:after { + content: "\f4a3\f4a3" +} + +.fa-duotone.fa-file-heart:after, +.fad.fa-file-heart:after { + content: "\e176\e176" +} + +.fa-duotone.fa-beer-foam:after, +.fa-duotone.fa-beer-mug:after, +.fad.fa-beer-foam:after, +.fad.fa-beer-mug:after { + content: "\e0b3\e0b3" +} + +.fa-duotone.fa-dice-d20:after, +.fad.fa-dice-d20:after { + content: "\f6cf\f6cf" +} + +.fa-duotone.fa-drone:after, +.fad.fa-drone:after { + content: "\f85f\f85f" +} + +.fa-duotone.fa-truck-droplet:after, +.fad.fa-truck-droplet:after { + content: "\e58c\e58c" +} + +.fa-duotone.fa-file-circle-xmark:after, +.fad.fa-file-circle-xmark:after { + content: "\e5a1\e5a1" +} + +.fa-duotone.fa-temperature-arrow-up:after, +.fa-duotone.fa-temperature-up:after, +.fad.fa-temperature-arrow-up:after, +.fad.fa-temperature-up:after { + content: "\e040\e040" +} + +.fa-duotone.fa-medal:after, +.fad.fa-medal:after { + content: "\f5a2\f5a2" +} + +.fa-duotone.fa-person-fairy:after, +.fad.fa-person-fairy:after { + content: "\e608\e608" +} + +.fa-duotone.fa-bed:after, +.fad.fa-bed:after { + content: "\f236\f236" +} + +.fa-duotone.fa-book-copy:after, +.fad.fa-book-copy:after { + content: "\e0be\e0be" +} + +.fa-duotone.fa-h-square:after, +.fa-duotone.fa-square-h:after, +.fad.fa-h-square:after, +.fad.fa-square-h:after { + content: "\f0fd\f0fd" +} + +.fa-duotone.fa-square-c:after, +.fad.fa-square-c:after { + content: "\e266\e266" +} + +.fa-duotone.fa-clock-two:after, +.fad.fa-clock-two:after { + content: "\e35a\e35a" +} + +.fa-duotone.fa-square-ellipsis-vertical:after, +.fad.fa-square-ellipsis-vertical:after { + content: "\e26f\e26f" +} + +.fa-duotone.fa-calendar-users:after, +.fad.fa-calendar-users:after { + content: "\e5e2\e5e2" +} + +.fa-duotone.fa-podcast:after, +.fad.fa-podcast:after { + content: "\f2ce\f2ce" +} + +.fa-duotone.fa-bee:after, +.fad.fa-bee:after { + content: "\e0b2\e0b2" +} + +.fa-duotone.fa-temperature-4:after, +.fa-duotone.fa-temperature-full:after, +.fa-duotone.fa-thermometer-4:after, +.fa-duotone.fa-thermometer-full:after, +.fad.fa-temperature-4:after, +.fad.fa-temperature-full:after, +.fad.fa-thermometer-4:after, +.fad.fa-thermometer-full:after { + content: "\f2c7\f2c7" +} + +.fa-duotone.fa-bell:after, +.fad.fa-bell:after { + content: "\f0f3\f0f3" +} + +.fa-duotone.fa-candy-bar:after, +.fa-duotone.fa-chocolate-bar:after, +.fad.fa-candy-bar:after, +.fad.fa-chocolate-bar:after { + content: "\e3e8\e3e8" +} + +.fa-duotone.fa-xmark-large:after, +.fad.fa-xmark-large:after { + content: "\e59b\e59b" +} + +.fa-duotone.fa-pinata:after, +.fad.fa-pinata:after { + content: "\e3c3\e3c3" +} + +.fa-duotone.fa-file-ppt:after, +.fad.fa-file-ppt:after { + content: "\e64a\e64a" +} + +.fa-duotone.fa-arrows-from-line:after, +.fad.fa-arrows-from-line:after { + content: "\e0a4\e0a4" +} + +.fa-duotone.fa-superscript:after, +.fad.fa-superscript:after { + content: "\f12b\f12b" +} + +.fa-duotone.fa-bowl-spoon:after, +.fad.fa-bowl-spoon:after { + content: "\e3e0\e3e0" +} + +.fa-duotone.fa-hexagon-check:after, +.fad.fa-hexagon-check:after { + content: "\e416\e416" +} + +.fa-duotone.fa-plug-circle-xmark:after, +.fad.fa-plug-circle-xmark:after { + content: "\e560\e560" +} + +.fa-duotone.fa-star-of-life:after, +.fad.fa-star-of-life:after { + content: "\f621\f621" +} + +.fa-duotone.fa-phone-slash:after, +.fad.fa-phone-slash:after { + content: "\f3dd\f3dd" +} + +.fa-duotone.fa-traffic-light-stop:after, +.fad.fa-traffic-light-stop:after { + content: "\f63a\f63a" +} + +.fa-duotone.fa-paint-roller:after, +.fad.fa-paint-roller:after { + content: "\f5aa\f5aa" +} + +.fa-duotone.fa-accent-grave:after, +.fad.fa-accent-grave:after { + content: "\60\60" +} + +.fa-duotone.fa-hands-helping:after, +.fa-duotone.fa-handshake-angle:after, +.fad.fa-hands-helping:after, +.fad.fa-handshake-angle:after { + content: "\f4c4\f4c4" +} + +.fa-duotone.fa-circle-0:after, +.fad.fa-circle-0:after { + content: "\e0ed\e0ed" +} + +.fa-duotone.fa-dial-med-low:after, +.fad.fa-dial-med-low:after { + content: "\e160\e160" +} + +.fa-duotone.fa-location-dot:after, +.fa-duotone.fa-map-marker-alt:after, +.fad.fa-location-dot:after, +.fad.fa-map-marker-alt:after { + content: "\f3c5\f3c5" +} + +.fa-duotone.fa-crab:after, +.fad.fa-crab:after { + content: "\e3ff\e3ff" +} + +.fa-duotone.fa-box-full:after, +.fa-duotone.fa-box-open-full:after, +.fad.fa-box-full:after, +.fad.fa-box-open-full:after { + content: "\f49c\f49c" +} + +.fa-duotone.fa-file:after, +.fad.fa-file:after { + content: "\f15b\f15b" +} + +.fa-duotone.fa-greater-than:after, +.fad.fa-greater-than:after { + content: "\3e\3e" +} + +.fa-duotone.fa-quotes:after, +.fad.fa-quotes:after { + content: "\e234\e234" +} + +.fa-duotone.fa-pretzel:after, +.fad.fa-pretzel:after { + content: "\e441\e441" +} + +.fa-duotone.fa-t-rex:after, +.fad.fa-t-rex:after { + content: "\e629\e629" +} + +.fa-duotone.fa-person-swimming:after, +.fa-duotone.fa-swimmer:after, +.fad.fa-person-swimming:after, +.fad.fa-swimmer:after { + content: "\f5c4\f5c4" +} + +.fa-duotone.fa-arrow-down:after, +.fad.fa-arrow-down:after { + content: "\f063\f063" +} + +.fa-duotone.fa-user-robot-xmarks:after, +.fad.fa-user-robot-xmarks:after { + content: "\e4a7\e4a7" +} + +.fa-duotone.fa-comment-alt-quote:after, +.fa-duotone.fa-message-quote:after, +.fad.fa-comment-alt-quote:after, +.fad.fa-message-quote:after { + content: "\e1e4\e1e4" +} + +.fa-duotone.fa-candy-corn:after, +.fad.fa-candy-corn:after { + content: "\f6bd\f6bd" +} + +.fa-duotone.fa-folder-magnifying-glass:after, +.fa-duotone.fa-folder-search:after, +.fad.fa-folder-magnifying-glass:after, +.fad.fa-folder-search:after { + content: "\e18b\e18b" +} + +.fa-duotone.fa-notebook:after, +.fad.fa-notebook:after { + content: "\e201\e201" +} + +.fa-duotone.fa-droplet:after, +.fa-duotone.fa-tint:after, +.fad.fa-droplet:after, +.fad.fa-tint:after { + content: "\f043\f043" +} + +.fa-duotone.fa-bullseye-pointer:after, +.fad.fa-bullseye-pointer:after { + content: "\f649\f649" +} + +.fa-duotone.fa-eraser:after, +.fad.fa-eraser:after { + content: "\f12d\f12d" +} + +.fa-duotone.fa-hexagon-image:after, +.fad.fa-hexagon-image:after { + content: "\e504\e504" +} + +.fa-duotone.fa-earth-america:after, +.fa-duotone.fa-earth-americas:after, +.fa-duotone.fa-earth:after, +.fa-duotone.fa-globe-americas:after, +.fad.fa-earth-america:after, +.fad.fa-earth-americas:after, +.fad.fa-earth:after, +.fad.fa-globe-americas:after { + content: "\f57d\f57d" +} + +.fa-duotone.fa-file-svg:after, +.fad.fa-file-svg:after { + content: "\e64b\e64b" +} + +.fa-duotone.fa-crate-apple:after, +.fad.fa-crate-apple:after { + content: "\f6b1\f6b1" +} + +.fa-duotone.fa-apple-crate:after, +.fad.fa-apple-crate:after { + content: "\f6b1\f6b1" +} + +.fa-duotone.fa-person-burst:after, +.fad.fa-person-burst:after { + content: "\e53b\e53b" +} + +.fa-duotone.fa-game-board:after, +.fad.fa-game-board:after { + content: "\f867\f867" +} + +.fa-duotone.fa-hat-chef:after, +.fad.fa-hat-chef:after { + content: "\f86b\f86b" +} + +.fa-duotone.fa-hand-back-point-right:after, +.fad.fa-hand-back-point-right:after { + content: "\e1a1\e1a1" +} + +.fa-duotone.fa-dove:after, +.fad.fa-dove:after { + content: "\f4ba\f4ba" +} + +.fa-duotone.fa-snowflake-droplets:after, +.fad.fa-snowflake-droplets:after { + content: "\e5c1\e5c1" +} + +.fa-duotone.fa-battery-0:after, +.fa-duotone.fa-battery-empty:after, +.fad.fa-battery-0:after, +.fad.fa-battery-empty:after { + content: "\f244\f244" +} + +.fa-duotone.fa-grid-4:after, +.fad.fa-grid-4:after { + content: "\e198\e198" +} + +.fa-duotone.fa-socks:after, +.fad.fa-socks:after { + content: "\f696\f696" +} + +.fa-duotone.fa-face-sunglasses:after, +.fad.fa-face-sunglasses:after { + content: "\e398\e398" +} + +.fa-duotone.fa-inbox:after, +.fad.fa-inbox:after { + content: "\f01c\f01c" +} + +.fa-duotone.fa-square-0:after, +.fad.fa-square-0:after { + content: "\e255\e255" +} + +.fa-duotone.fa-section:after, +.fad.fa-section:after { + content: "\e447\e447" +} + +.fa-duotone.fa-box-up:after, +.fa-duotone.fa-square-this-way-up:after, +.fad.fa-box-up:after, +.fad.fa-square-this-way-up:after { + content: "\f49f\f49f" +} + +.fa-duotone.fa-gauge-high:after, +.fa-duotone.fa-tachometer-alt-fast:after, +.fa-duotone.fa-tachometer-alt:after, +.fad.fa-gauge-high:after, +.fad.fa-tachometer-alt-fast:after, +.fad.fa-tachometer-alt:after { + content: "\f625\f625" +} + +.fa-duotone.fa-square-ampersand:after, +.fad.fa-square-ampersand:after { + content: "\e260\e260" +} + +.fa-duotone.fa-envelope-open-text:after, +.fad.fa-envelope-open-text:after { + content: "\f658\f658" +} + +.fa-duotone.fa-lamp-desk:after, +.fad.fa-lamp-desk:after { + content: "\e014\e014" +} + +.fa-duotone.fa-hospital-alt:after, +.fa-duotone.fa-hospital-wide:after, +.fa-duotone.fa-hospital:after, +.fad.fa-hospital-alt:after, +.fad.fa-hospital-wide:after, +.fad.fa-hospital:after { + content: "\f0f8\f0f8" +} + +.fa-duotone.fa-poll-people:after, +.fad.fa-poll-people:after { + content: "\f759\f759" +} + +.fa-duotone.fa-glass-whiskey-rocks:after, +.fa-duotone.fa-whiskey-glass-ice:after, +.fad.fa-glass-whiskey-rocks:after, +.fad.fa-whiskey-glass-ice:after { + content: "\f7a1\f7a1" +} + +.fa-duotone.fa-wine-bottle:after, +.fad.fa-wine-bottle:after { + content: "\f72f\f72f" +} + +.fa-duotone.fa-chess-rook:after, +.fad.fa-chess-rook:after { + content: "\f447\f447" +} + +.fa-duotone.fa-user-bounty-hunter:after, +.fad.fa-user-bounty-hunter:after { + content: "\e2bf\e2bf" +} + +.fa-duotone.fa-bars-staggered:after, +.fa-duotone.fa-reorder:after, +.fa-duotone.fa-stream:after, +.fad.fa-bars-staggered:after, +.fad.fa-reorder:after, +.fad.fa-stream:after { + content: "\f550\f550" +} + +.fa-duotone.fa-diagram-sankey:after, +.fad.fa-diagram-sankey:after { + content: "\e158\e158" +} + +.fa-duotone.fa-cloud-hail-mixed:after, +.fad.fa-cloud-hail-mixed:after { + content: "\f73a\f73a" +} + +.fa-duotone.fa-circle-up-left:after, +.fad.fa-circle-up-left:after { + content: "\e128\e128" +} + +.fa-duotone.fa-dharmachakra:after, +.fad.fa-dharmachakra:after { + content: "\f655\f655" +} + +.fa-duotone.fa-objects-align-left:after, +.fad.fa-objects-align-left:after { + content: "\e3be\e3be" +} + +.fa-duotone.fa-oil-can-drip:after, +.fad.fa-oil-can-drip:after { + content: "\e205\e205" +} + +.fa-duotone.fa-face-smiling-hands:after, +.fad.fa-face-smiling-hands:after { + content: "\e396\e396" +} + +.fa-duotone.fa-broccoli:after, +.fad.fa-broccoli:after { + content: "\e3e2\e3e2" +} + +.fa-duotone.fa-route-interstate:after, +.fad.fa-route-interstate:after { + content: "\f61b\f61b" +} + +.fa-duotone.fa-ear-muffs:after, +.fad.fa-ear-muffs:after { + content: "\f795\f795" +} + +.fa-duotone.fa-hotdog:after, +.fad.fa-hotdog:after { + content: "\f80f\f80f" +} + +.fa-duotone.fa-transporter-empty:after, +.fad.fa-transporter-empty:after { + content: "\e046\e046" +} + +.fa-duotone.fa-blind:after, +.fa-duotone.fa-person-walking-with-cane:after, +.fad.fa-blind:after, +.fad.fa-person-walking-with-cane:after { + content: "\f29d\f29d" +} + +.fa-duotone.fa-angle-90:after, +.fad.fa-angle-90:after { + content: "\e08d\e08d" +} + +.fa-duotone.fa-rectangle-terminal:after, +.fad.fa-rectangle-terminal:after { + content: "\e236\e236" +} + +.fa-duotone.fa-kite:after, +.fad.fa-kite:after { + content: "\f6f4\f6f4" +} + +.fa-duotone.fa-drum:after, +.fad.fa-drum:after { + content: "\f569\f569" +} + +.fa-duotone.fa-scrubber:after, +.fad.fa-scrubber:after { + content: "\f2f8\f2f8" +} + +.fa-duotone.fa-ice-cream:after, +.fad.fa-ice-cream:after { + content: "\f810\f810" +} + +.fa-duotone.fa-heart-circle-bolt:after, +.fad.fa-heart-circle-bolt:after { + content: "\e4fc\e4fc" +} + +.fa-duotone.fa-fish-bones:after, +.fad.fa-fish-bones:after { + content: "\e304\e304" +} + +.fa-duotone.fa-deer-rudolph:after, +.fad.fa-deer-rudolph:after { + content: "\f78f\f78f" +} + +.fa-duotone.fa-fax:after, +.fad.fa-fax:after { + content: "\f1ac\f1ac" +} + +.fa-duotone.fa-paragraph:after, +.fad.fa-paragraph:after { + content: "\f1dd\f1dd" +} + +.fa-duotone.fa-head-side-heart:after, +.fad.fa-head-side-heart:after { + content: "\e1aa\e1aa" +} + +.fa-duotone.fa-square-e:after, +.fad.fa-square-e:after { + content: "\e26d\e26d" +} + +.fa-duotone.fa-meter-fire:after, +.fad.fa-meter-fire:after { + content: "\e1eb\e1eb" +} + +.fa-duotone.fa-cloud-hail:after, +.fad.fa-cloud-hail:after { + content: "\f739\f739" +} + +.fa-duotone.fa-check-to-slot:after, +.fa-duotone.fa-vote-yea:after, +.fad.fa-check-to-slot:after, +.fad.fa-vote-yea:after { + content: "\f772\f772" +} + +.fa-duotone.fa-money-from-bracket:after, +.fad.fa-money-from-bracket:after { + content: "\e312\e312" +} + +.fa-duotone.fa-star-half:after, +.fad.fa-star-half:after { + content: "\f089\f089" +} + +.fa-duotone.fa-car-bus:after, +.fad.fa-car-bus:after { + content: "\f85a\f85a" +} + +.fa-duotone.fa-speaker:after, +.fad.fa-speaker:after { + content: "\f8df\f8df" +} + +.fa-duotone.fa-timer:after, +.fad.fa-timer:after { + content: "\e29e\e29e" +} + +.fa-duotone.fa-boxes-alt:after, +.fa-duotone.fa-boxes-stacked:after, +.fa-duotone.fa-boxes:after, +.fad.fa-boxes-alt:after, +.fad.fa-boxes-stacked:after, +.fad.fa-boxes:after { + content: "\f468\f468" +} + +.fa-duotone.fa-landmark-magnifying-glass:after, +.fad.fa-landmark-magnifying-glass:after { + content: "\e622\e622" +} + +.fa-duotone.fa-grill-hot:after, +.fad.fa-grill-hot:after { + content: "\e5a5\e5a5" +} + +.fa-duotone.fa-ballot-check:after, +.fad.fa-ballot-check:after { + content: "\f733\f733" +} + +.fa-duotone.fa-chain:after, +.fa-duotone.fa-link:after, +.fad.fa-chain:after, +.fad.fa-link:after { + content: "\f0c1\f0c1" +} + +.fa-duotone.fa-assistive-listening-systems:after, +.fa-duotone.fa-ear-listen:after, +.fad.fa-assistive-listening-systems:after, +.fad.fa-ear-listen:after { + content: "\f2a2\f2a2" +} + +.fa-duotone.fa-file-minus:after, +.fad.fa-file-minus:after { + content: "\f318\f318" +} + +.fa-duotone.fa-tree-city:after, +.fad.fa-tree-city:after { + content: "\e587\e587" +} + +.fa-duotone.fa-play:after, +.fad.fa-play:after { + content: "\f04b\f04b" +} + +.fa-duotone.fa-font:after, +.fad.fa-font:after { + content: "\f031\f031" +} + +.fa-duotone.fa-coffee-togo:after, +.fa-duotone.fa-cup-togo:after, +.fad.fa-coffee-togo:after, +.fad.fa-cup-togo:after { + content: "\f6c5\f6c5" +} + +.fa-duotone.fa-square-down-left:after, +.fad.fa-square-down-left:after { + content: "\e26b\e26b" +} + +.fa-duotone.fa-burger-lettuce:after, +.fad.fa-burger-lettuce:after { + content: "\e3e3\e3e3" +} + +.fa-duotone.fa-rupiah-sign:after, +.fad.fa-rupiah-sign:after { + content: "\e23d\e23d" +} + +.fa-duotone.fa-magnifying-glass:after, +.fa-duotone.fa-search:after, +.fad.fa-magnifying-glass:after, +.fad.fa-search:after { + content: "\f002\f002" +} + +.fa-duotone.fa-ping-pong-paddle-ball:after, +.fa-duotone.fa-table-tennis-paddle-ball:after, +.fa-duotone.fa-table-tennis:after, +.fad.fa-ping-pong-paddle-ball:after, +.fad.fa-table-tennis-paddle-ball:after, +.fad.fa-table-tennis:after { + content: "\f45d\f45d" +} + +.fa-duotone.fa-diagnoses:after, +.fa-duotone.fa-person-dots-from-line:after, +.fad.fa-diagnoses:after, +.fad.fa-person-dots-from-line:after { + content: "\f470\f470" +} + +.fa-duotone.fa-chevron-double-down:after, +.fa-duotone.fa-chevrons-down:after, +.fad.fa-chevron-double-down:after, +.fad.fa-chevrons-down:after { + content: "\f322\f322" +} + +.fa-duotone.fa-trash-can-arrow-up:after, +.fa-duotone.fa-trash-restore-alt:after, +.fad.fa-trash-can-arrow-up:after, +.fad.fa-trash-restore-alt:after { + content: "\f82a\f82a" +} + +.fa-duotone.fa-signal-3:after, +.fa-duotone.fa-signal-good:after, +.fad.fa-signal-3:after, +.fad.fa-signal-good:after { + content: "\f68e\f68e" +} + +.fa-duotone.fa-location-question:after, +.fa-duotone.fa-map-marker-question:after, +.fad.fa-location-question:after, +.fad.fa-map-marker-question:after { + content: "\f60b\f60b" +} + +.fa-duotone.fa-floppy-disk-circle-xmark:after, +.fa-duotone.fa-floppy-disk-times:after, +.fa-duotone.fa-save-circle-xmark:after, +.fa-duotone.fa-save-times:after, +.fad.fa-floppy-disk-circle-xmark:after, +.fad.fa-floppy-disk-times:after, +.fad.fa-save-circle-xmark:after, +.fad.fa-save-times:after { + content: "\e181\e181" +} + +.fa-duotone.fa-naira-sign:after, +.fad.fa-naira-sign:after { + content: "\e1f6\e1f6" +} + +.fa-duotone.fa-peach:after, +.fad.fa-peach:after { + content: "\e20b\e20b" +} + +.fa-duotone.fa-taxi-bus:after, +.fad.fa-taxi-bus:after { + content: "\e298\e298" +} + +.fa-duotone.fa-bracket-curly-left:after, +.fa-duotone.fa-bracket-curly:after, +.fad.fa-bracket-curly-left:after, +.fad.fa-bracket-curly:after { + content: "\7b\7b" +} + +.fa-duotone.fa-lobster:after, +.fad.fa-lobster:after { + content: "\e421\e421" +} + +.fa-duotone.fa-cart-flatbed-empty:after, +.fa-duotone.fa-dolly-flatbed-empty:after, +.fad.fa-cart-flatbed-empty:after, +.fad.fa-dolly-flatbed-empty:after { + content: "\f476\f476" +} + +.fa-duotone.fa-colon:after, +.fad.fa-colon:after { + content: "\3a\3a" +} + +.fa-duotone.fa-cart-arrow-down:after, +.fad.fa-cart-arrow-down:after { + content: "\f218\f218" +} + +.fa-duotone.fa-wand:after, +.fad.fa-wand:after { + content: "\f72a\f72a" +} + +.fa-duotone.fa-walkie-talkie:after, +.fad.fa-walkie-talkie:after { + content: "\f8ef\f8ef" +} + +.fa-duotone.fa-file-edit:after, +.fa-duotone.fa-file-pen:after, +.fad.fa-file-edit:after, +.fad.fa-file-pen:after { + content: "\f31c\f31c" +} + +.fa-duotone.fa-receipt:after, +.fad.fa-receipt:after { + content: "\f543\f543" +} + +.fa-duotone.fa-table-picnic:after, +.fad.fa-table-picnic:after { + content: "\e32d\e32d" +} + +.fa-duotone.fa-pen-square:after, +.fa-duotone.fa-pencil-square:after, +.fa-duotone.fa-square-pen:after, +.fad.fa-pen-square:after, +.fad.fa-pencil-square:after, +.fad.fa-square-pen:after { + content: "\f14b\f14b" +} + +.fa-duotone.fa-circle-microphone-lines:after, +.fa-duotone.fa-microphone-circle-alt:after, +.fad.fa-circle-microphone-lines:after, +.fad.fa-microphone-circle-alt:after { + content: "\e117\e117" +} + +.fa-duotone.fa-desktop-slash:after, +.fa-duotone.fa-display-slash:after, +.fad.fa-desktop-slash:after, +.fad.fa-display-slash:after { + content: "\e2fa\e2fa" +} + +.fa-duotone.fa-suitcase-rolling:after, +.fad.fa-suitcase-rolling:after { + content: "\f5c1\f5c1" +} + +.fa-duotone.fa-person-circle-exclamation:after, +.fad.fa-person-circle-exclamation:after { + content: "\e53f\e53f" +} + +.fa-duotone.fa-transporter-2:after, +.fad.fa-transporter-2:after { + content: "\e044\e044" +} + +.fa-duotone.fa-hand-receiving:after, +.fa-duotone.fa-hands-holding-diamond:after, +.fad.fa-hand-receiving:after, +.fad.fa-hands-holding-diamond:after { + content: "\f47c\f47c" +} + +.fa-duotone.fa-money-bill-simple-wave:after, +.fad.fa-money-bill-simple-wave:after { + content: "\e1f2\e1f2" +} + +.fa-duotone.fa-chevron-down:after, +.fad.fa-chevron-down:after { + content: "\f078\f078" +} + +.fa-duotone.fa-battery-5:after, +.fa-duotone.fa-battery-full:after, +.fa-duotone.fa-battery:after, +.fad.fa-battery-5:after, +.fad.fa-battery-full:after, +.fad.fa-battery:after { + content: "\f240\f240" +} + +.fa-duotone.fa-bell-plus:after, +.fad.fa-bell-plus:after { + content: "\f849\f849" +} + +.fa-duotone.fa-book-arrow-right:after, +.fad.fa-book-arrow-right:after { + content: "\e0b9\e0b9" +} + +.fa-duotone.fa-hospitals:after, +.fad.fa-hospitals:after { + content: "\f80e\f80e" +} + +.fa-duotone.fa-club:after, +.fad.fa-club:after { + content: "\f327\f327" +} + +.fa-duotone.fa-skull-crossbones:after, +.fad.fa-skull-crossbones:after { + content: "\f714\f714" +} + +.fa-duotone.fa-dewpoint:after, +.fa-duotone.fa-droplet-degree:after, +.fad.fa-dewpoint:after, +.fad.fa-droplet-degree:after { + content: "\f748\f748" +} + +.fa-duotone.fa-code-compare:after, +.fad.fa-code-compare:after { + content: "\e13a\e13a" +} + +.fa-duotone.fa-list-dots:after, +.fa-duotone.fa-list-ul:after, +.fad.fa-list-dots:after, +.fad.fa-list-ul:after { + content: "\f0ca\f0ca" +} + +.fa-duotone.fa-hand-holding-magic:after, +.fad.fa-hand-holding-magic:after { + content: "\f6e5\f6e5" +} + +.fa-duotone.fa-watermelon-slice:after, +.fad.fa-watermelon-slice:after { + content: "\e337\e337" +} + +.fa-duotone.fa-circle-ellipsis:after, +.fad.fa-circle-ellipsis:after { + content: "\e10a\e10a" +} + +.fa-duotone.fa-school-lock:after, +.fad.fa-school-lock:after { + content: "\e56f\e56f" +} + +.fa-duotone.fa-tower-cell:after, +.fad.fa-tower-cell:after { + content: "\e585\e585" +} + +.fa-duotone.fa-sd-cards:after, +.fad.fa-sd-cards:after { + content: "\e240\e240" +} + +.fa-duotone.fa-jug-bottle:after, +.fad.fa-jug-bottle:after { + content: "\e5fb\e5fb" +} + +.fa-duotone.fa-down-long:after, +.fa-duotone.fa-long-arrow-alt-down:after, +.fad.fa-down-long:after, +.fad.fa-long-arrow-alt-down:after { + content: "\f309\f309" +} + +.fa-duotone.fa-envelopes:after, +.fad.fa-envelopes:after { + content: "\e170\e170" +} + +.fa-duotone.fa-phone-office:after, +.fad.fa-phone-office:after { + content: "\f67d\f67d" +} + +.fa-duotone.fa-ranking-star:after, +.fad.fa-ranking-star:after { + content: "\e561\e561" +} + +.fa-duotone.fa-chess-king:after, +.fad.fa-chess-king:after { + content: "\f43f\f43f" +} + +.fa-duotone.fa-nfc-pen:after, +.fad.fa-nfc-pen:after { + content: "\e1fa\e1fa" +} + +.fa-duotone.fa-person-harassing:after, +.fad.fa-person-harassing:after { + content: "\e549\e549" +} + +.fa-duotone.fa-magnifying-glass-play:after, +.fad.fa-magnifying-glass-play:after { + content: "\e660\e660" +} + +.fa-duotone.fa-hat-winter:after, +.fad.fa-hat-winter:after { + content: "\f7a8\f7a8" +} + +.fa-duotone.fa-brazilian-real-sign:after, +.fad.fa-brazilian-real-sign:after { + content: "\e46c\e46c" +} + +.fa-duotone.fa-landmark-alt:after, +.fa-duotone.fa-landmark-dome:after, +.fad.fa-landmark-alt:after, +.fad.fa-landmark-dome:after { + content: "\f752\f752" +} + +.fa-duotone.fa-bone-break:after, +.fad.fa-bone-break:after { + content: "\f5d8\f5d8" +} + +.fa-duotone.fa-arrow-up:after, +.fad.fa-arrow-up:after { + content: "\f062\f062" +} + +.fa-duotone.fa-down-from-dotted-line:after, +.fad.fa-down-from-dotted-line:after { + content: "\e407\e407" +} + +.fa-duotone.fa-television:after, +.fa-duotone.fa-tv-alt:after, +.fa-duotone.fa-tv:after, +.fad.fa-television:after, +.fad.fa-tv-alt:after, +.fad.fa-tv:after { + content: "\f26c\f26c" +} + +.fa-duotone.fa-border-left:after, +.fad.fa-border-left:after { + content: "\f84f\f84f" +} + +.fa-duotone.fa-circle-divide:after, +.fad.fa-circle-divide:after { + content: "\e106\e106" +} + +.fa-duotone.fa-shrimp:after, +.fad.fa-shrimp:after { + content: "\e448\e448" +} + +.fa-duotone.fa-list-check:after, +.fa-duotone.fa-tasks:after, +.fad.fa-list-check:after, +.fad.fa-tasks:after { + content: "\f0ae\f0ae" +} + +.fa-duotone.fa-diagram-subtask:after, +.fad.fa-diagram-subtask:after { + content: "\e479\e479" +} + +.fa-duotone.fa-jug-detergent:after, +.fad.fa-jug-detergent:after { + content: "\e519\e519" +} + +.fa-duotone.fa-circle-user:after, +.fa-duotone.fa-user-circle:after, +.fad.fa-circle-user:after, +.fad.fa-user-circle:after { + content: "\f2bd\f2bd" +} + +.fa-duotone.fa-square-y:after, +.fad.fa-square-y:after { + content: "\e287\e287" +} + +.fa-duotone.fa-user-doctor-hair:after, +.fad.fa-user-doctor-hair:after { + content: "\e458\e458" +} + +.fa-duotone.fa-planet-ringed:after, +.fad.fa-planet-ringed:after { + content: "\e020\e020" +} + +.fa-duotone.fa-mushroom:after, +.fad.fa-mushroom:after { + content: "\e425\e425" +} + +.fa-duotone.fa-user-shield:after, +.fad.fa-user-shield:after { + content: "\f505\f505" +} + +.fa-duotone.fa-megaphone:after, +.fad.fa-megaphone:after { + content: "\f675\f675" +} + +.fa-duotone.fa-wreath-laurel:after, +.fad.fa-wreath-laurel:after { + content: "\e5d2\e5d2" +} + +.fa-duotone.fa-circle-exclamation-check:after, +.fad.fa-circle-exclamation-check:after { + content: "\e10d\e10d" +} + +.fa-duotone.fa-wind:after, +.fad.fa-wind:after { + content: "\f72e\f72e" +} + +.fa-duotone.fa-box-dollar:after, +.fa-duotone.fa-box-usd:after, +.fad.fa-box-dollar:after, +.fad.fa-box-usd:after { + content: "\f4a0\f4a0" +} + +.fa-duotone.fa-car-burst:after, +.fa-duotone.fa-car-crash:after, +.fad.fa-car-burst:after, +.fad.fa-car-crash:after { + content: "\f5e1\f5e1" +} + +.fa-duotone.fa-y:after, +.fad.fa-y:after { + content: "\59\59" +} + +.fa-duotone.fa-user-headset:after, +.fad.fa-user-headset:after { + content: "\f82d\f82d" +} + +.fa-duotone.fa-arrows-retweet:after, +.fa-duotone.fa-retweet-alt:after, +.fad.fa-arrows-retweet:after, +.fad.fa-retweet-alt:after { + content: "\f361\f361" +} + +.fa-duotone.fa-person-snowboarding:after, +.fa-duotone.fa-snowboarding:after, +.fad.fa-person-snowboarding:after, +.fad.fa-snowboarding:after { + content: "\f7ce\f7ce" +} + +.fa-duotone.fa-chevron-square-right:after, +.fa-duotone.fa-square-chevron-right:after, +.fad.fa-chevron-square-right:after, +.fad.fa-square-chevron-right:after { + content: "\f32b\f32b" +} + +.fa-duotone.fa-lacrosse-stick-ball:after, +.fad.fa-lacrosse-stick-ball:after { + content: "\e3b6\e3b6" +} + +.fa-duotone.fa-shipping-fast:after, +.fa-duotone.fa-truck-fast:after, +.fad.fa-shipping-fast:after, +.fad.fa-truck-fast:after { + content: "\f48b\f48b" +} + +.fa-duotone.fa-user-magnifying-glass:after, +.fad.fa-user-magnifying-glass:after { + content: "\e5c5\e5c5" +} + +.fa-duotone.fa-star-sharp:after, +.fad.fa-star-sharp:after { + content: "\e28b\e28b" +} + +.fa-duotone.fa-comment-heart:after, +.fad.fa-comment-heart:after { + content: "\e5c8\e5c8" +} + +.fa-duotone.fa-circle-1:after, +.fad.fa-circle-1:after { + content: "\e0ee\e0ee" +} + +.fa-duotone.fa-circle-star:after, +.fa-duotone.fa-star-circle:after, +.fad.fa-circle-star:after, +.fad.fa-star-circle:after { + content: "\e123\e123" +} + +.fa-duotone.fa-fish:after, +.fad.fa-fish:after { + content: "\f578\f578" +} + +.fa-duotone.fa-cloud-fog:after, +.fa-duotone.fa-fog:after, +.fad.fa-cloud-fog:after, +.fad.fa-fog:after { + content: "\f74e\f74e" +} + +.fa-duotone.fa-waffle:after, +.fad.fa-waffle:after { + content: "\e466\e466" +} + +.fa-duotone.fa-music-alt:after, +.fa-duotone.fa-music-note:after, +.fad.fa-music-alt:after, +.fad.fa-music-note:after { + content: "\f8cf\f8cf" +} + +.fa-duotone.fa-hexagon-exclamation:after, +.fad.fa-hexagon-exclamation:after { + content: "\e417\e417" +} + +.fa-duotone.fa-cart-shopping-fast:after, +.fad.fa-cart-shopping-fast:after { + content: "\e0dc\e0dc" +} + +.fa-duotone.fa-object-union:after, +.fad.fa-object-union:after { + content: "\e49f\e49f" +} + +.fa-duotone.fa-user-graduate:after, +.fad.fa-user-graduate:after { + content: "\f501\f501" +} + +.fa-duotone.fa-starfighter:after, +.fad.fa-starfighter:after { + content: "\e037\e037" +} + +.fa-duotone.fa-adjust:after, +.fa-duotone.fa-circle-half-stroke:after, +.fad.fa-adjust:after, +.fad.fa-circle-half-stroke:after { + content: "\f042\f042" +} + +.fa-duotone.fa-arrow-right-long-to-line:after, +.fad.fa-arrow-right-long-to-line:after { + content: "\e3d5\e3d5" +} + +.fa-duotone.fa-arrow-square-down:after, +.fa-duotone.fa-square-arrow-down:after, +.fad.fa-arrow-square-down:after, +.fad.fa-square-arrow-down:after { + content: "\f339\f339" +} + +.fa-duotone.fa-diamond-half-stroke:after, +.fad.fa-diamond-half-stroke:after { + content: "\e5b8\e5b8" +} + +.fa-duotone.fa-clapperboard:after, +.fad.fa-clapperboard:after { + content: "\e131\e131" +} + +.fa-duotone.fa-chevron-square-left:after, +.fa-duotone.fa-square-chevron-left:after, +.fad.fa-chevron-square-left:after, +.fad.fa-square-chevron-left:after { + content: "\f32a\f32a" +} + +.fa-duotone.fa-phone-intercom:after, +.fad.fa-phone-intercom:after { + content: "\e434\e434" +} + +.fa-duotone.fa-chain-horizontal:after, +.fa-duotone.fa-link-horizontal:after, +.fad.fa-chain-horizontal:after, +.fad.fa-link-horizontal:after { + content: "\e1cb\e1cb" +} + +.fa-duotone.fa-mango:after, +.fad.fa-mango:after { + content: "\e30f\e30f" +} + +.fa-duotone.fa-music-alt-slash:after, +.fa-duotone.fa-music-note-slash:after, +.fad.fa-music-alt-slash:after, +.fad.fa-music-note-slash:after { + content: "\f8d0\f8d0" +} + +.fa-duotone.fa-circle-radiation:after, +.fa-duotone.fa-radiation-alt:after, +.fad.fa-circle-radiation:after, +.fad.fa-radiation-alt:after { + content: "\f7ba\f7ba" +} + +.fa-duotone.fa-face-tongue-sweat:after, +.fad.fa-face-tongue-sweat:after { + content: "\e39e\e39e" +} + +.fa-duotone.fa-globe-stand:after, +.fad.fa-globe-stand:after { + content: "\f5f6\f5f6" +} + +.fa-duotone.fa-baseball-ball:after, +.fa-duotone.fa-baseball:after, +.fad.fa-baseball-ball:after, +.fad.fa-baseball:after { + content: "\f433\f433" +} + +.fa-duotone.fa-circle-p:after, +.fad.fa-circle-p:after { + content: "\e11a\e11a" +} + +.fa-duotone.fa-award-simple:after, +.fad.fa-award-simple:after { + content: "\e0ab\e0ab" +} + +.fa-duotone.fa-jet-fighter-up:after, +.fad.fa-jet-fighter-up:after { + content: "\e518\e518" +} + +.fa-duotone.fa-diagram-project:after, +.fa-duotone.fa-project-diagram:after, +.fad.fa-diagram-project:after, +.fad.fa-project-diagram:after { + content: "\f542\f542" +} + +.fa-duotone.fa-pedestal:after, +.fad.fa-pedestal:after { + content: "\e20d\e20d" +} + +.fa-duotone.fa-chart-pyramid:after, +.fad.fa-chart-pyramid:after { + content: "\e0e6\e0e6" +} + +.fa-duotone.fa-sidebar:after, +.fad.fa-sidebar:after { + content: "\e24e\e24e" +} + +.fa-duotone.fa-frosty-head:after, +.fa-duotone.fa-snowman-head:after, +.fad.fa-frosty-head:after, +.fad.fa-snowman-head:after { + content: "\f79b\f79b" +} + +.fa-duotone.fa-copy:after, +.fad.fa-copy:after { + content: "\f0c5\f0c5" +} + +.fa-duotone.fa-burger-glass:after, +.fad.fa-burger-glass:after { + content: "\e0ce\e0ce" +} + +.fa-duotone.fa-volume-mute:after, +.fa-duotone.fa-volume-times:after, +.fa-duotone.fa-volume-xmark:after, +.fad.fa-volume-mute:after, +.fad.fa-volume-times:after, +.fad.fa-volume-xmark:after { + content: "\f6a9\f6a9" +} + +.fa-duotone.fa-hand-sparkles:after, +.fad.fa-hand-sparkles:after { + content: "\e05d\e05d" +} + +.fa-duotone.fa-bars-filter:after, +.fad.fa-bars-filter:after { + content: "\e0ad\e0ad" +} + +.fa-duotone.fa-paintbrush-pencil:after, +.fad.fa-paintbrush-pencil:after { + content: "\e206\e206" +} + +.fa-duotone.fa-party-bell:after, +.fad.fa-party-bell:after { + content: "\e31a\e31a" +} + +.fa-duotone.fa-user-vneck-hair:after, +.fad.fa-user-vneck-hair:after { + content: "\e462\e462" +} + +.fa-duotone.fa-jack-o-lantern:after, +.fad.fa-jack-o-lantern:after { + content: "\f30e\f30e" +} + +.fa-duotone.fa-grip-horizontal:after, +.fa-duotone.fa-grip:after, +.fad.fa-grip-horizontal:after, +.fad.fa-grip:after { + content: "\f58d\f58d" +} + +.fa-duotone.fa-share-from-square:after, +.fa-duotone.fa-share-square:after, +.fad.fa-share-from-square:after, +.fad.fa-share-square:after { + content: "\f14d\f14d" +} + +.fa-duotone.fa-keynote:after, +.fad.fa-keynote:after { + content: "\f66c\f66c" +} + +.fa-duotone.fa-child-combatant:after, +.fa-duotone.fa-child-rifle:after, +.fad.fa-child-combatant:after, +.fad.fa-child-rifle:after { + content: "\e4e0\e4e0" +} + +.fa-duotone.fa-gun:after, +.fad.fa-gun:after { + content: "\e19b\e19b" +} + +.fa-duotone.fa-phone-square:after, +.fa-duotone.fa-square-phone:after, +.fad.fa-phone-square:after, +.fad.fa-square-phone:after { + content: "\f098\f098" +} + +.fa-duotone.fa-hat-beach:after, +.fad.fa-hat-beach:after { + content: "\e606\e606" +} + +.fa-duotone.fa-add:after, +.fa-duotone.fa-plus:after, +.fad.fa-add:after, +.fad.fa-plus:after { + content: "\2b\2b" +} + +.fa-duotone.fa-expand:after, +.fad.fa-expand:after { + content: "\f065\f065" +} + +.fa-duotone.fa-computer:after, +.fad.fa-computer:after { + content: "\e4e5\e4e5" +} + +.fa-duotone.fa-fort:after, +.fad.fa-fort:after { + content: "\e486\e486" +} + +.fa-duotone.fa-cloud-check:after, +.fad.fa-cloud-check:after { + content: "\e35c\e35c" +} + +.fa-duotone.fa-close:after, +.fa-duotone.fa-multiply:after, +.fa-duotone.fa-remove:after, +.fa-duotone.fa-times:after, +.fa-duotone.fa-xmark:after, +.fad.fa-close:after, +.fad.fa-multiply:after, +.fad.fa-remove:after, +.fad.fa-times:after, +.fad.fa-xmark:after { + content: "\f00d\f00d" +} + +.fa-duotone.fa-face-smirking:after, +.fad.fa-face-smirking:after { + content: "\e397\e397" +} + +.fa-duotone.fa-arrows-up-down-left-right:after, +.fa-duotone.fa-arrows:after, +.fad.fa-arrows-up-down-left-right:after, +.fad.fa-arrows:after { + content: "\f047\f047" +} + +.fa-duotone.fa-chalkboard-teacher:after, +.fa-duotone.fa-chalkboard-user:after, +.fad.fa-chalkboard-teacher:after, +.fad.fa-chalkboard-user:after { + content: "\f51c\f51c" +} + +.fa-duotone.fa-rhombus:after, +.fad.fa-rhombus:after { + content: "\e23b\e23b" +} + +.fa-duotone.fa-claw-marks:after, +.fad.fa-claw-marks:after { + content: "\f6c2\f6c2" +} + +.fa-duotone.fa-peso-sign:after, +.fad.fa-peso-sign:after { + content: "\e222\e222" +} + +.fa-duotone.fa-face-smile-tongue:after, +.fad.fa-face-smile-tongue:after { + content: "\e394\e394" +} + +.fa-duotone.fa-cart-circle-xmark:after, +.fad.fa-cart-circle-xmark:after { + content: "\e3f4\e3f4" +} + +.fa-duotone.fa-building-shield:after, +.fad.fa-building-shield:after { + content: "\e4d8\e4d8" +} + +.fa-duotone.fa-circle-phone-flip:after, +.fa-duotone.fa-phone-circle-alt:after, +.fad.fa-circle-phone-flip:after, +.fad.fa-phone-circle-alt:after { + content: "\e11c\e11c" +} + +.fa-duotone.fa-baby:after, +.fad.fa-baby:after { + content: "\f77c\f77c" +} + +.fa-duotone.fa-users-line:after, +.fad.fa-users-line:after { + content: "\e592\e592" +} + +.fa-duotone.fa-quote-left-alt:after, +.fa-duotone.fa-quote-left:after, +.fad.fa-quote-left-alt:after, +.fad.fa-quote-left:after { + content: "\f10d\f10d" +} + +.fa-duotone.fa-tractor:after, +.fad.fa-tractor:after { + content: "\f722\f722" +} + +.fa-duotone.fa-key-skeleton:after, +.fad.fa-key-skeleton:after { + content: "\f6f3\f6f3" +} + +.fa-duotone.fa-trash-arrow-up:after, +.fa-duotone.fa-trash-restore:after, +.fad.fa-trash-arrow-up:after, +.fad.fa-trash-restore:after { + content: "\f829\f829" +} + +.fa-duotone.fa-arrow-down-up-lock:after, +.fad.fa-arrow-down-up-lock:after { + content: "\e4b0\e4b0" +} + +.fa-duotone.fa-arrow-down-to-bracket:after, +.fad.fa-arrow-down-to-bracket:after { + content: "\e094\e094" +} + +.fa-duotone.fa-lines-leaning:after, +.fad.fa-lines-leaning:after { + content: "\e51e\e51e" +} + +.fa-duotone.fa-square-q:after, +.fad.fa-square-q:after { + content: "\e27b\e27b" +} + +.fa-duotone.fa-ruler-combined:after, +.fad.fa-ruler-combined:after { + content: "\f546\f546" +} + +.fa-duotone.fa-icons-alt:after, +.fa-duotone.fa-symbols:after, +.fad.fa-icons-alt:after, +.fad.fa-symbols:after { + content: "\f86e\f86e" +} + +.fa-duotone.fa-copyright:after, +.fad.fa-copyright:after { + content: "\f1f9\f1f9" +} + +.fa-duotone.fa-flask-gear:after, +.fad.fa-flask-gear:after { + content: "\e5f1\e5f1" +} + +.fa-duotone.fa-highlighter-line:after, +.fad.fa-highlighter-line:after { + content: "\e1af\e1af" +} + +.fa-duotone.fa-bracket-left:after, +.fa-duotone.fa-bracket-square:after, +.fa-duotone.fa-bracket:after, +.fad.fa-bracket-left:after, +.fad.fa-bracket-square:after, +.fad.fa-bracket:after { + content: "\5b\5b" +} + +.fa-duotone.fa-island-tree-palm:after, +.fa-duotone.fa-island-tropical:after, +.fad.fa-island-tree-palm:after, +.fad.fa-island-tropical:after { + content: "\f811\f811" +} + +.fa-duotone.fa-arrow-from-left:after, +.fa-duotone.fa-arrow-right-from-line:after, +.fad.fa-arrow-from-left:after, +.fad.fa-arrow-right-from-line:after { + content: "\f343\f343" +} + +.fa-duotone.fa-h2:after, +.fad.fa-h2:after { + content: "\f314\f314" +} + +.fa-duotone.fa-equals:after, +.fad.fa-equals:after { + content: "\3d\3d" +} + +.fa-duotone.fa-cake-slice:after, +.fa-duotone.fa-shortcake:after, +.fad.fa-cake-slice:after, +.fad.fa-shortcake:after { + content: "\e3e5\e3e5" +} + +.fa-duotone.fa-building-magnifying-glass:after, +.fad.fa-building-magnifying-glass:after { + content: "\e61c\e61c" +} + +.fa-duotone.fa-peanut:after, +.fad.fa-peanut:after { + content: "\e430\e430" +} + +.fa-duotone.fa-wrench-simple:after, +.fad.fa-wrench-simple:after { + content: "\e2d1\e2d1" +} + +.fa-duotone.fa-blender:after, +.fad.fa-blender:after { + content: "\f517\f517" +} + +.fa-duotone.fa-teeth:after, +.fad.fa-teeth:after { + content: "\f62e\f62e" +} + +.fa-duotone.fa-tally-2:after, +.fad.fa-tally-2:after { + content: "\e295\e295" +} + +.fa-duotone.fa-ils:after, +.fa-duotone.fa-shekel-sign:after, +.fa-duotone.fa-shekel:after, +.fa-duotone.fa-sheqel-sign:after, +.fa-duotone.fa-sheqel:after, +.fad.fa-ils:after, +.fad.fa-shekel-sign:after, +.fad.fa-shekel:after, +.fad.fa-sheqel-sign:after, +.fad.fa-sheqel:after { + content: "\f20b\f20b" +} + +.fa-duotone.fa-cars:after, +.fad.fa-cars:after { + content: "\f85b\f85b" +} + +.fa-duotone.fa-axe-battle:after, +.fad.fa-axe-battle:after { + content: "\f6b3\f6b3" +} + +.fa-duotone.fa-user-hair-long:after, +.fad.fa-user-hair-long:after { + content: "\e45b\e45b" +} + +.fa-duotone.fa-map:after, +.fad.fa-map:after { + content: "\f279\f279" +} + +.fa-duotone.fa-arrow-left-from-arc:after, +.fad.fa-arrow-left-from-arc:after { + content: "\e615\e615" +} + +.fa-duotone.fa-file-circle-info:after, +.fad.fa-file-circle-info:after { + content: "\e493\e493" +} + +.fa-duotone.fa-face-disappointed:after, +.fad.fa-face-disappointed:after { + content: "\e36f\e36f" +} + +.fa-duotone.fa-lasso-sparkles:after, +.fad.fa-lasso-sparkles:after { + content: "\e1c9\e1c9" +} + +.fa-duotone.fa-clock-eleven:after, +.fad.fa-clock-eleven:after { + content: "\e347\e347" +} + +.fa-duotone.fa-rocket:after, +.fad.fa-rocket:after { + content: "\f135\f135" +} + +.fa-duotone.fa-siren-on:after, +.fad.fa-siren-on:after { + content: "\e02e\e02e" +} + +.fa-duotone.fa-clock-ten:after, +.fad.fa-clock-ten:after { + content: "\e354\e354" +} + +.fa-duotone.fa-candle-holder:after, +.fad.fa-candle-holder:after { + content: "\f6bc\f6bc" +} + +.fa-duotone.fa-video-arrow-down-left:after, +.fad.fa-video-arrow-down-left:after { + content: "\e2c8\e2c8" +} + +.fa-duotone.fa-photo-film:after, +.fa-duotone.fa-photo-video:after, +.fad.fa-photo-film:after, +.fad.fa-photo-video:after { + content: "\f87c\f87c" +} + +.fa-duotone.fa-floppy-disk-circle-arrow-right:after, +.fa-duotone.fa-save-circle-arrow-right:after, +.fad.fa-floppy-disk-circle-arrow-right:after, +.fad.fa-save-circle-arrow-right:after { + content: "\e180\e180" +} + +.fa-duotone.fa-folder-minus:after, +.fad.fa-folder-minus:after { + content: "\f65d\f65d" +} + +.fa-duotone.fa-planet-moon:after, +.fad.fa-planet-moon:after { + content: "\e01f\e01f" +} + +.fa-duotone.fa-face-eyes-xmarks:after, +.fad.fa-face-eyes-xmarks:after { + content: "\e374\e374" +} + +.fa-duotone.fa-chart-scatter:after, +.fad.fa-chart-scatter:after { + content: "\f7ee\f7ee" +} + +.fa-duotone.fa-display-arrow-down:after, +.fad.fa-display-arrow-down:after { + content: "\e164\e164" +} + +.fa-duotone.fa-store:after, +.fad.fa-store:after { + content: "\f54e\f54e" +} + +.fa-duotone.fa-arrow-trend-up:after, +.fad.fa-arrow-trend-up:after { + content: "\e098\e098" +} + +.fa-duotone.fa-plug-circle-minus:after, +.fad.fa-plug-circle-minus:after { + content: "\e55e\e55e" +} + +.fa-duotone.fa-olive-branch:after, +.fad.fa-olive-branch:after { + content: "\e317\e317" +} + +.fa-duotone.fa-angle:after, +.fad.fa-angle:after { + content: "\e08c\e08c" +} + +.fa-duotone.fa-vacuum-robot:after, +.fad.fa-vacuum-robot:after { + content: "\e04e\e04e" +} + +.fa-duotone.fa-sign-hanging:after, +.fa-duotone.fa-sign:after, +.fad.fa-sign-hanging:after, +.fad.fa-sign:after { + content: "\f4d9\f4d9" +} + +.fa-duotone.fa-square-divide:after, +.fad.fa-square-divide:after { + content: "\e26a\e26a" +} + +.fa-duotone.fa-folder-check:after, +.fad.fa-folder-check:after { + content: "\e64e\e64e" +} + +.fa-duotone.fa-signal-stream-slash:after, +.fad.fa-signal-stream-slash:after { + content: "\e250\e250" +} + +.fa-duotone.fa-bezier-curve:after, +.fad.fa-bezier-curve:after { + content: "\f55b\f55b" +} + +.fa-duotone.fa-eye-dropper-half:after, +.fad.fa-eye-dropper-half:after { + content: "\e173\e173" +} + +.fa-duotone.fa-store-lock:after, +.fad.fa-store-lock:after { + content: "\e4a6\e4a6" +} + +.fa-duotone.fa-bell-slash:after, +.fad.fa-bell-slash:after { + content: "\f1f6\f1f6" +} + +.fa-duotone.fa-cloud-bolt-sun:after, +.fa-duotone.fa-thunderstorm-sun:after, +.fad.fa-cloud-bolt-sun:after, +.fad.fa-thunderstorm-sun:after { + content: "\f76e\f76e" +} + +.fa-duotone.fa-camera-slash:after, +.fad.fa-camera-slash:after { + content: "\e0d9\e0d9" +} + +.fa-duotone.fa-comment-quote:after, +.fad.fa-comment-quote:after { + content: "\e14c\e14c" +} + +.fa-duotone.fa-tablet-android:after, +.fa-duotone.fa-tablet:after, +.fad.fa-tablet-android:after, +.fad.fa-tablet:after { + content: "\f3fb\f3fb" +} + +.fa-duotone.fa-school-flag:after, +.fad.fa-school-flag:after { + content: "\e56e\e56e" +} + +.fa-duotone.fa-message-code:after, +.fad.fa-message-code:after { + content: "\e1df\e1df" +} + +.fa-duotone.fa-glass-half-empty:after, +.fa-duotone.fa-glass-half-full:after, +.fa-duotone.fa-glass-half:after, +.fad.fa-glass-half-empty:after, +.fad.fa-glass-half-full:after, +.fad.fa-glass-half:after { + content: "\e192\e192" +} + +.fa-duotone.fa-fill:after, +.fad.fa-fill:after { + content: "\f575\f575" +} + +.fa-duotone.fa-comment-alt-minus:after, +.fa-duotone.fa-message-minus:after, +.fad.fa-comment-alt-minus:after, +.fad.fa-message-minus:after { + content: "\f4a7\f4a7" +} + +.fa-duotone.fa-angle-up:after, +.fad.fa-angle-up:after { + content: "\f106\f106" +} + +.fa-duotone.fa-dinosaur:after, +.fad.fa-dinosaur:after { + content: "\e5fe\e5fe" +} + +.fa-duotone.fa-drumstick-bite:after, +.fad.fa-drumstick-bite:after { + content: "\f6d7\f6d7" +} + +.fa-duotone.fa-chain-horizontal-slash:after, +.fa-duotone.fa-link-horizontal-slash:after, +.fad.fa-chain-horizontal-slash:after, +.fad.fa-link-horizontal-slash:after { + content: "\e1cc\e1cc" +} + +.fa-duotone.fa-holly-berry:after, +.fad.fa-holly-berry:after { + content: "\f7aa\f7aa" +} + +.fa-duotone.fa-nose:after, +.fad.fa-nose:after { + content: "\e5bd\e5bd" +} + +.fa-duotone.fa-arrow-left-to-arc:after, +.fad.fa-arrow-left-to-arc:after { + content: "\e616\e616" +} + +.fa-duotone.fa-chevron-left:after, +.fad.fa-chevron-left:after { + content: "\f053\f053" +} + +.fa-duotone.fa-bacteria:after, +.fad.fa-bacteria:after { + content: "\e059\e059" +} + +.fa-duotone.fa-clouds:after, +.fad.fa-clouds:after { + content: "\f744\f744" +} + +.fa-duotone.fa-money-bill-simple:after, +.fad.fa-money-bill-simple:after { + content: "\e1f1\e1f1" +} + +.fa-duotone.fa-hand-lizard:after, +.fad.fa-hand-lizard:after { + content: "\f258\f258" +} + +.fa-duotone.fa-table-pivot:after, +.fad.fa-table-pivot:after { + content: "\e291\e291" +} + +.fa-duotone.fa-filter-slash:after, +.fad.fa-filter-slash:after { + content: "\e17d\e17d" +} + +.fa-duotone.fa-trash-can-arrow-turn-left:after, +.fa-duotone.fa-trash-can-undo:after, +.fa-duotone.fa-trash-undo-alt:after, +.fad.fa-trash-can-arrow-turn-left:after, +.fad.fa-trash-can-undo:after, +.fad.fa-trash-undo-alt:after { + content: "\f896\f896" +} + +.fa-duotone.fa-notdef:after, +.fad.fa-notdef:after { + content: "\e1fe\e1fe" +} + +.fa-duotone.fa-disease:after, +.fad.fa-disease:after { + content: "\f7fa\f7fa" +} + +.fa-duotone.fa-person-to-door:after, +.fad.fa-person-to-door:after { + content: "\e433\e433" +} + +.fa-duotone.fa-turntable:after, +.fad.fa-turntable:after { + content: "\f8e4\f8e4" +} + +.fa-duotone.fa-briefcase-medical:after, +.fad.fa-briefcase-medical:after { + content: "\f469\f469" +} + +.fa-duotone.fa-genderless:after, +.fad.fa-genderless:after { + content: "\f22d\f22d" +} + +.fa-duotone.fa-chevron-right:after, +.fad.fa-chevron-right:after { + content: "\f054\f054" +} + +.fa-duotone.fa-signal-1:after, +.fa-duotone.fa-signal-weak:after, +.fad.fa-signal-1:after, +.fad.fa-signal-weak:after { + content: "\f68c\f68c" +} + +.fa-duotone.fa-clock-five:after, +.fad.fa-clock-five:after { + content: "\e349\e349" +} + +.fa-duotone.fa-retweet:after, +.fad.fa-retweet:after { + content: "\f079\f079" +} + +.fa-duotone.fa-car-alt:after, +.fa-duotone.fa-car-rear:after, +.fad.fa-car-alt:after, +.fad.fa-car-rear:after { + content: "\f5de\f5de" +} + +.fa-duotone.fa-pump-soap:after, +.fad.fa-pump-soap:after { + content: "\e06b\e06b" +} + +.fa-duotone.fa-computer-classic:after, +.fad.fa-computer-classic:after { + content: "\f8b1\f8b1" +} + +.fa-duotone.fa-frame:after, +.fad.fa-frame:after { + content: "\e495\e495" +} + +.fa-duotone.fa-video-slash:after, +.fad.fa-video-slash:after { + content: "\f4e2\f4e2" +} + +.fa-duotone.fa-battery-2:after, +.fa-duotone.fa-battery-quarter:after, +.fad.fa-battery-2:after, +.fad.fa-battery-quarter:after { + content: "\f243\f243" +} + +.fa-duotone.fa-ellipsis-h-alt:after, +.fa-duotone.fa-ellipsis-stroke:after, +.fad.fa-ellipsis-h-alt:after, +.fad.fa-ellipsis-stroke:after { + content: "\f39b\f39b" +} + +.fa-duotone.fa-radio:after, +.fad.fa-radio:after { + content: "\f8d7\f8d7" +} + +.fa-duotone.fa-baby-carriage:after, +.fa-duotone.fa-carriage-baby:after, +.fad.fa-baby-carriage:after, +.fad.fa-carriage-baby:after { + content: "\f77d\f77d" +} + +.fa-duotone.fa-face-expressionless:after, +.fad.fa-face-expressionless:after { + content: "\e373\e373" +} + +.fa-duotone.fa-down-to-dotted-line:after, +.fad.fa-down-to-dotted-line:after { + content: "\e408\e408" +} + +.fa-duotone.fa-cloud-music:after, +.fad.fa-cloud-music:after { + content: "\f8ae\f8ae" +} + +.fa-duotone.fa-traffic-light:after, +.fad.fa-traffic-light:after { + content: "\f637\f637" +} + +.fa-duotone.fa-cloud-minus:after, +.fad.fa-cloud-minus:after { + content: "\e35d\e35d" +} + +.fa-duotone.fa-thermometer:after, +.fad.fa-thermometer:after { + content: "\f491\f491" +} + +.fa-duotone.fa-shield-minus:after, +.fad.fa-shield-minus:after { + content: "\e249\e249" +} + +.fa-duotone.fa-vr-cardboard:after, +.fad.fa-vr-cardboard:after { + content: "\f729\f729" +} + +.fa-duotone.fa-car-tilt:after, +.fad.fa-car-tilt:after { + content: "\f5e5\f5e5" +} + +.fa-duotone.fa-gauge-circle-minus:after, +.fad.fa-gauge-circle-minus:after { + content: "\e497\e497" +} + +.fa-duotone.fa-brightness-low:after, +.fad.fa-brightness-low:after { + content: "\e0ca\e0ca" +} + +.fa-duotone.fa-hand-middle-finger:after, +.fad.fa-hand-middle-finger:after { + content: "\f806\f806" +} + +.fa-duotone.fa-percent:after, +.fa-duotone.fa-percentage:after, +.fad.fa-percent:after, +.fad.fa-percentage:after { + content: "\25\25" +} + +.fa-duotone.fa-truck-moving:after, +.fad.fa-truck-moving:after { + content: "\f4df\f4df" +} + +.fa-duotone.fa-glass-water-droplet:after, +.fad.fa-glass-water-droplet:after { + content: "\e4f5\e4f5" +} + +.fa-duotone.fa-conveyor-belt:after, +.fad.fa-conveyor-belt:after { + content: "\f46e\f46e" +} + +.fa-duotone.fa-location-check:after, +.fa-duotone.fa-map-marker-check:after, +.fad.fa-location-check:after, +.fad.fa-map-marker-check:after { + content: "\f606\f606" +} + +.fa-duotone.fa-coin-vertical:after, +.fad.fa-coin-vertical:after { + content: "\e3fd\e3fd" +} + +.fa-duotone.fa-display:after, +.fad.fa-display:after { + content: "\e163\e163" +} + +.fa-duotone.fa-person-sign:after, +.fad.fa-person-sign:after { + content: "\f757\f757" +} + +.fa-duotone.fa-face-smile:after, +.fa-duotone.fa-smile:after, +.fad.fa-face-smile:after, +.fad.fa-smile:after { + content: "\f118\f118" +} + +.fa-duotone.fa-phone-hangup:after, +.fad.fa-phone-hangup:after { + content: "\e225\e225" +} + +.fa-duotone.fa-signature-slash:after, +.fad.fa-signature-slash:after { + content: "\e3cb\e3cb" +} + +.fa-duotone.fa-thumb-tack:after, +.fa-duotone.fa-thumbtack:after, +.fad.fa-thumb-tack:after, +.fad.fa-thumbtack:after { + content: "\f08d\f08d" +} + +.fa-duotone.fa-wheat-slash:after, +.fad.fa-wheat-slash:after { + content: "\e339\e339" +} + +.fa-duotone.fa-trophy:after, +.fad.fa-trophy:after { + content: "\f091\f091" +} + +.fa-duotone.fa-clouds-sun:after, +.fad.fa-clouds-sun:after { + content: "\f746\f746" +} + +.fa-duotone.fa-person-praying:after, +.fa-duotone.fa-pray:after, +.fad.fa-person-praying:after, +.fad.fa-pray:after { + content: "\f683\f683" +} + +.fa-duotone.fa-hammer:after, +.fad.fa-hammer:after { + content: "\f6e3\f6e3" +} + +.fa-duotone.fa-face-vomit:after, +.fad.fa-face-vomit:after { + content: "\e3a0\e3a0" +} + +.fa-duotone.fa-speakers:after, +.fad.fa-speakers:after { + content: "\f8e0\f8e0" +} + +.fa-duotone.fa-teletype-answer:after, +.fa-duotone.fa-tty-answer:after, +.fad.fa-teletype-answer:after, +.fad.fa-tty-answer:after { + content: "\e2b9\e2b9" +} + +.fa-duotone.fa-mug-tea-saucer:after, +.fad.fa-mug-tea-saucer:after { + content: "\e1f5\e1f5" +} + +.fa-duotone.fa-diagram-lean-canvas:after, +.fad.fa-diagram-lean-canvas:after { + content: "\e156\e156" +} + +.fa-duotone.fa-alt:after, +.fad.fa-alt:after { + content: "\e08a\e08a" +} + +.fa-duotone.fa-dial-med-high:after, +.fa-duotone.fa-dial:after, +.fad.fa-dial-med-high:after, +.fad.fa-dial:after { + content: "\e15b\e15b" +} + +.fa-duotone.fa-hand-peace:after, +.fad.fa-hand-peace:after { + content: "\f25b\f25b" +} + +.fa-duotone.fa-circle-trash:after, +.fa-duotone.fa-trash-circle:after, +.fad.fa-circle-trash:after, +.fad.fa-trash-circle:after { + content: "\e126\e126" +} + +.fa-duotone.fa-rotate:after, +.fa-duotone.fa-sync-alt:after, +.fad.fa-rotate:after, +.fad.fa-sync-alt:after { + content: "\f2f1\f2f1" +} + +.fa-duotone.fa-circle-quarters:after, +.fad.fa-circle-quarters:after { + content: "\e3f8\e3f8" +} + +.fa-duotone.fa-spinner:after, +.fad.fa-spinner:after { + content: "\f110\f110" +} + +.fa-duotone.fa-tower-control:after, +.fad.fa-tower-control:after { + content: "\e2a2\e2a2" +} + +.fa-duotone.fa-arrow-up-triangle-square:after, +.fa-duotone.fa-sort-shapes-up:after, +.fad.fa-arrow-up-triangle-square:after, +.fad.fa-sort-shapes-up:after { + content: "\f88a\f88a" +} + +.fa-duotone.fa-whale:after, +.fad.fa-whale:after { + content: "\f72c\f72c" +} + +.fa-duotone.fa-robot:after, +.fad.fa-robot:after { + content: "\f544\f544" +} + +.fa-duotone.fa-peace:after, +.fad.fa-peace:after { + content: "\f67c\f67c" +} + +.fa-duotone.fa-party-horn:after, +.fad.fa-party-horn:after { + content: "\e31b\e31b" +} + +.fa-duotone.fa-cogs:after, +.fa-duotone.fa-gears:after, +.fad.fa-cogs:after, +.fad.fa-gears:after { + content: "\f085\f085" +} + +.fa-duotone.fa-sun-alt:after, +.fa-duotone.fa-sun-bright:after, +.fad.fa-sun-alt:after, +.fad.fa-sun-bright:after { + content: "\e28f\e28f" +} + +.fa-duotone.fa-warehouse:after, +.fad.fa-warehouse:after { + content: "\f494\f494" +} + +.fa-duotone.fa-conveyor-belt-arm:after, +.fad.fa-conveyor-belt-arm:after { + content: "\e5f8\e5f8" +} + +.fa-duotone.fa-lock-keyhole-open:after, +.fa-duotone.fa-lock-open-alt:after, +.fad.fa-lock-keyhole-open:after, +.fad.fa-lock-open-alt:after { + content: "\f3c2\f3c2" +} + +.fa-duotone.fa-box-fragile:after, +.fa-duotone.fa-square-fragile:after, +.fa-duotone.fa-square-wine-glass-crack:after, +.fad.fa-box-fragile:after, +.fad.fa-square-fragile:after, +.fad.fa-square-wine-glass-crack:after { + content: "\f49b\f49b" +} + +.fa-duotone.fa-arrow-up-right-dots:after, +.fad.fa-arrow-up-right-dots:after { + content: "\e4b7\e4b7" +} + +.fa-duotone.fa-square-n:after, +.fad.fa-square-n:after { + content: "\e277\e277" +} + +.fa-duotone.fa-splotch:after, +.fad.fa-splotch:after { + content: "\f5bc\f5bc" +} + +.fa-duotone.fa-face-grin-hearts:after, +.fa-duotone.fa-grin-hearts:after, +.fad.fa-face-grin-hearts:after, +.fad.fa-grin-hearts:after { + content: "\f584\f584" +} + +.fa-duotone.fa-meter:after, +.fad.fa-meter:after { + content: "\e1e8\e1e8" +} + +.fa-duotone.fa-mandolin:after, +.fad.fa-mandolin:after { + content: "\f6f9\f6f9" +} + +.fa-duotone.fa-dice-four:after, +.fad.fa-dice-four:after { + content: "\f524\f524" +} + +.fa-duotone.fa-sim-card:after, +.fad.fa-sim-card:after { + content: "\f7c4\f7c4" +} + +.fa-duotone.fa-transgender-alt:after, +.fa-duotone.fa-transgender:after, +.fad.fa-transgender-alt:after, +.fad.fa-transgender:after { + content: "\f225\f225" +} + +.fa-duotone.fa-mercury:after, +.fad.fa-mercury:after { + content: "\f223\f223" +} + +.fa-duotone.fa-up-from-bracket:after, +.fad.fa-up-from-bracket:after { + content: "\e590\e590" +} + +.fa-duotone.fa-knife-kitchen:after, +.fad.fa-knife-kitchen:after { + content: "\f6f5\f6f5" +} + +.fa-duotone.fa-border-right:after, +.fad.fa-border-right:after { + content: "\f852\f852" +} + +.fa-duotone.fa-arrow-turn-down:after, +.fa-duotone.fa-level-down:after, +.fad.fa-arrow-turn-down:after, +.fad.fa-level-down:after { + content: "\f149\f149" +} + +.fa-duotone.fa-spade:after, +.fad.fa-spade:after { + content: "\f2f4\f2f4" +} + +.fa-duotone.fa-card-spade:after, +.fad.fa-card-spade:after { + content: "\e3ec\e3ec" +} + +.fa-duotone.fa-line-columns:after, +.fad.fa-line-columns:after { + content: "\f870\f870" +} + +.fa-duotone.fa-arrow-right-to-line:after, +.fa-duotone.fa-arrow-to-right:after, +.fad.fa-arrow-right-to-line:after, +.fad.fa-arrow-to-right:after { + content: "\f340\f340" +} + +.fa-duotone.fa-person-falling-burst:after, +.fad.fa-person-falling-burst:after { + content: "\e547\e547" +} + +.fa-duotone.fa-flag-pennant:after, +.fa-duotone.fa-pennant:after, +.fad.fa-flag-pennant:after, +.fad.fa-pennant:after { + content: "\f456\f456" +} + +.fa-duotone.fa-conveyor-belt-empty:after, +.fad.fa-conveyor-belt-empty:after { + content: "\e150\e150" +} + +.fa-duotone.fa-user-group-simple:after, +.fad.fa-user-group-simple:after { + content: "\e603\e603" +} + +.fa-duotone.fa-award:after, +.fad.fa-award:after { + content: "\f559\f559" +} + +.fa-duotone.fa-ticket-alt:after, +.fa-duotone.fa-ticket-simple:after, +.fad.fa-ticket-alt:after, +.fad.fa-ticket-simple:after { + content: "\f3ff\f3ff" +} + +.fa-duotone.fa-building:after, +.fad.fa-building:after { + content: "\f1ad\f1ad" +} + +.fa-duotone.fa-angle-double-left:after, +.fa-duotone.fa-angles-left:after, +.fad.fa-angle-double-left:after, +.fad.fa-angles-left:after { + content: "\f100\f100" +} + +.fa-duotone.fa-camcorder:after, +.fa-duotone.fa-video-handheld:after, +.fad.fa-camcorder:after, +.fad.fa-video-handheld:after { + content: "\f8a8\f8a8" +} + +.fa-duotone.fa-pancakes:after, +.fad.fa-pancakes:after { + content: "\e42d\e42d" +} + +.fa-duotone.fa-album-circle-user:after, +.fad.fa-album-circle-user:after { + content: "\e48d\e48d" +} + +.fa-duotone.fa-subtitles-slash:after, +.fad.fa-subtitles-slash:after { + content: "\e610\e610" +} + +.fa-duotone.fa-qrcode:after, +.fad.fa-qrcode:after { + content: "\f029\f029" +} + +.fa-duotone.fa-dice-d10:after, +.fad.fa-dice-d10:after { + content: "\f6cd\f6cd" +} + +.fa-duotone.fa-fireplace:after, +.fad.fa-fireplace:after { + content: "\f79a\f79a" +} + +.fa-duotone.fa-browser:after, +.fad.fa-browser:after { + content: "\f37e\f37e" +} + +.fa-duotone.fa-pen-paintbrush:after, +.fa-duotone.fa-pencil-paintbrush:after, +.fad.fa-pen-paintbrush:after, +.fad.fa-pencil-paintbrush:after { + content: "\f618\f618" +} + +.fa-duotone.fa-fish-cooked:after, +.fad.fa-fish-cooked:after { + content: "\f7fe\f7fe" +} + +.fa-duotone.fa-chair-office:after, +.fad.fa-chair-office:after { + content: "\f6c1\f6c1" +} + +.fa-duotone.fa-magnifying-glass-music:after, +.fad.fa-magnifying-glass-music:after { + content: "\e65f\e65f" +} + +.fa-duotone.fa-nesting-dolls:after, +.fad.fa-nesting-dolls:after { + content: "\e3ba\e3ba" +} + +.fa-duotone.fa-clock-rotate-left:after, +.fa-duotone.fa-history:after, +.fad.fa-clock-rotate-left:after, +.fad.fa-history:after { + content: "\f1da\f1da" +} + +.fa-duotone.fa-trumpet:after, +.fad.fa-trumpet:after { + content: "\f8e3\f8e3" +} + +.fa-duotone.fa-face-grin-beam-sweat:after, +.fa-duotone.fa-grin-beam-sweat:after, +.fad.fa-face-grin-beam-sweat:after, +.fad.fa-grin-beam-sweat:after { + content: "\f583\f583" +} + +.fa-duotone.fa-fire-smoke:after, +.fad.fa-fire-smoke:after { + content: "\f74b\f74b" +} + +.fa-duotone.fa-phone-missed:after, +.fad.fa-phone-missed:after { + content: "\e226\e226" +} + +.fa-duotone.fa-arrow-right-from-file:after, +.fa-duotone.fa-file-export:after, +.fad.fa-arrow-right-from-file:after, +.fad.fa-file-export:after { + content: "\f56e\f56e" +} + +.fa-duotone.fa-shield-blank:after, +.fa-duotone.fa-shield:after, +.fad.fa-shield-blank:after, +.fad.fa-shield:after { + content: "\f132\f132" +} + +.fa-duotone.fa-arrow-up-short-wide:after, +.fa-duotone.fa-sort-amount-up-alt:after, +.fad.fa-arrow-up-short-wide:after, +.fad.fa-sort-amount-up-alt:after { + content: "\f885\f885" +} + +.fa-duotone.fa-arrows-repeat-1:after, +.fa-duotone.fa-repeat-1-alt:after, +.fad.fa-arrows-repeat-1:after, +.fad.fa-repeat-1-alt:after { + content: "\f366\f366" +} + +.fa-duotone.fa-gun-slash:after, +.fad.fa-gun-slash:after { + content: "\e19c\e19c" +} + +.fa-duotone.fa-avocado:after, +.fad.fa-avocado:after { + content: "\e0aa\e0aa" +} + +.fa-duotone.fa-binary:after, +.fad.fa-binary:after { + content: "\e33b\e33b" +} + +.fa-duotone.fa-glasses-alt:after, +.fa-duotone.fa-glasses-round:after, +.fad.fa-glasses-alt:after, +.fad.fa-glasses-round:after { + content: "\f5f5\f5f5" +} + +.fa-duotone.fa-phone-plus:after, +.fad.fa-phone-plus:after { + content: "\f4d2\f4d2" +} + +.fa-duotone.fa-ditto:after, +.fad.fa-ditto:after { + content: "\22\22" +} + +.fa-duotone.fa-person-seat:after, +.fad.fa-person-seat:after { + content: "\e21e\e21e" +} + +.fa-duotone.fa-house-medical:after, +.fad.fa-house-medical:after { + content: "\e3b2\e3b2" +} + +.fa-duotone.fa-golf-ball-tee:after, +.fa-duotone.fa-golf-ball:after, +.fad.fa-golf-ball-tee:after, +.fad.fa-golf-ball:after { + content: "\f450\f450" +} + +.fa-duotone.fa-chevron-circle-left:after, +.fa-duotone.fa-circle-chevron-left:after, +.fad.fa-chevron-circle-left:after, +.fad.fa-circle-chevron-left:after { + content: "\f137\f137" +} + +.fa-duotone.fa-house-chimney-window:after, +.fad.fa-house-chimney-window:after { + content: "\e00d\e00d" +} + +.fa-duotone.fa-scythe:after, +.fad.fa-scythe:after { + content: "\f710\f710" +} + +.fa-duotone.fa-pen-nib:after, +.fad.fa-pen-nib:after { + content: "\f5ad\f5ad" +} + +.fa-duotone.fa-ban-parking:after, +.fa-duotone.fa-parking-circle-slash:after, +.fad.fa-ban-parking:after, +.fad.fa-parking-circle-slash:after { + content: "\f616\f616" +} + +.fa-duotone.fa-tent-arrow-turn-left:after, +.fad.fa-tent-arrow-turn-left:after { + content: "\e580\e580" +} + +.fa-duotone.fa-face-diagonal-mouth:after, +.fad.fa-face-diagonal-mouth:after { + content: "\e47e\e47e" +} + +.fa-duotone.fa-diagram-cells:after, +.fad.fa-diagram-cells:after { + content: "\e475\e475" +} + +.fa-duotone.fa-cricket-bat-ball:after, +.fa-duotone.fa-cricket:after, +.fad.fa-cricket-bat-ball:after, +.fad.fa-cricket:after { + content: "\f449\f449" +} + +.fa-duotone.fa-tents:after, +.fad.fa-tents:after { + content: "\e582\e582" +} + +.fa-duotone.fa-magic:after, +.fa-duotone.fa-wand-magic:after, +.fad.fa-magic:after, +.fad.fa-wand-magic:after { + content: "\f0d0\f0d0" +} + +.fa-duotone.fa-dog:after, +.fad.fa-dog:after { + content: "\f6d3\f6d3" +} + +.fa-duotone.fa-pen-line:after, +.fad.fa-pen-line:after { + content: "\e212\e212" +} + +.fa-duotone.fa-atom-alt:after, +.fa-duotone.fa-atom-simple:after, +.fad.fa-atom-alt:after, +.fad.fa-atom-simple:after { + content: "\f5d3\f5d3" +} + +.fa-duotone.fa-ampersand:after, +.fad.fa-ampersand:after { + content: "\26\26" +} + +.fa-duotone.fa-carrot:after, +.fad.fa-carrot:after { + content: "\f787\f787" +} + +.fa-duotone.fa-arrow-from-bottom:after, +.fa-duotone.fa-arrow-up-from-line:after, +.fad.fa-arrow-from-bottom:after, +.fad.fa-arrow-up-from-line:after { + content: "\f342\f342" +} + +.fa-duotone.fa-moon:after, +.fad.fa-moon:after { + content: "\f186\f186" +} + +.fa-duotone.fa-pen-slash:after, +.fad.fa-pen-slash:after { + content: "\e213\e213" +} + +.fa-duotone.fa-wine-glass-alt:after, +.fa-duotone.fa-wine-glass-empty:after, +.fad.fa-wine-glass-alt:after, +.fad.fa-wine-glass-empty:after { + content: "\f5ce\f5ce" +} + +.fa-duotone.fa-square-star:after, +.fad.fa-square-star:after { + content: "\e27f\e27f" +} + +.fa-duotone.fa-cheese:after, +.fad.fa-cheese:after { + content: "\f7ef\f7ef" +} + +.fa-duotone.fa-send-backward:after, +.fad.fa-send-backward:after { + content: "\f87f\f87f" +} + +.fa-duotone.fa-yin-yang:after, +.fad.fa-yin-yang:after { + content: "\f6ad\f6ad" +} + +.fa-duotone.fa-music:after, +.fad.fa-music:after { + content: "\f001\f001" +} + +.fa-duotone.fa-compass-slash:after, +.fad.fa-compass-slash:after { + content: "\f5e9\f5e9" +} + +.fa-duotone.fa-clock-one:after, +.fad.fa-clock-one:after { + content: "\e34e\e34e" +} + +.fa-duotone.fa-file-music:after, +.fad.fa-file-music:after { + content: "\f8b6\f8b6" +} + +.fa-duotone.fa-code-commit:after, +.fad.fa-code-commit:after { + content: "\f386\f386" +} + +.fa-duotone.fa-temperature-low:after, +.fad.fa-temperature-low:after { + content: "\f76b\f76b" +} + +.fa-duotone.fa-biking:after, +.fa-duotone.fa-person-biking:after, +.fad.fa-biking:after, +.fad.fa-person-biking:after { + content: "\f84a\f84a" +} + +.fa-duotone.fa-display-chart-up-circle-currency:after, +.fad.fa-display-chart-up-circle-currency:after { + content: "\e5e5\e5e5" +} + +.fa-duotone.fa-skeleton:after, +.fad.fa-skeleton:after { + content: "\f620\f620" +} + +.fa-duotone.fa-circle-g:after, +.fad.fa-circle-g:after { + content: "\e10f\e10f" +} + +.fa-duotone.fa-circle-arrow-up-left:after, +.fad.fa-circle-arrow-up-left:after { + content: "\e0fb\e0fb" +} + +.fa-duotone.fa-coin-blank:after, +.fad.fa-coin-blank:after { + content: "\e3fb\e3fb" +} + +.fa-duotone.fa-broom:after, +.fad.fa-broom:after { + content: "\f51a\f51a" +} + +.fa-duotone.fa-vacuum:after, +.fad.fa-vacuum:after { + content: "\e04d\e04d" +} + +.fa-duotone.fa-shield-heart:after, +.fad.fa-shield-heart:after { + content: "\e574\e574" +} + +.fa-duotone.fa-card-heart:after, +.fad.fa-card-heart:after { + content: "\e3eb\e3eb" +} + +.fa-duotone.fa-lightbulb-cfl-on:after, +.fad.fa-lightbulb-cfl-on:after { + content: "\e5a7\e5a7" +} + +.fa-duotone.fa-melon:after, +.fad.fa-melon:after { + content: "\e310\e310" +} + +.fa-duotone.fa-gopuram:after, +.fad.fa-gopuram:after { + content: "\f664\f664" +} + +.fa-duotone.fa-earth-oceania:after, +.fa-duotone.fa-globe-oceania:after, +.fad.fa-earth-oceania:after, +.fad.fa-globe-oceania:after { + content: "\e47b\e47b" +} + +.fa-duotone.fa-container-storage:after, +.fad.fa-container-storage:after { + content: "\f4b7\f4b7" +} + +.fa-duotone.fa-face-pouting:after, +.fad.fa-face-pouting:after { + content: "\e387\e387" +} + +.fa-duotone.fa-square-xmark:after, +.fa-duotone.fa-times-square:after, +.fa-duotone.fa-xmark-square:after, +.fad.fa-square-xmark:after, +.fad.fa-times-square:after, +.fad.fa-xmark-square:after { + content: "\f2d3\f2d3" +} + +.fa-duotone.fa-exploding-head:after, +.fa-duotone.fa-face-explode:after, +.fad.fa-exploding-head:after, +.fad.fa-face-explode:after { + content: "\e2fe\e2fe" +} + +.fa-duotone.fa-hashtag:after, +.fad.fa-hashtag:after { + content: "\23\23" +} + +.fa-duotone.fa-expand-alt:after, +.fa-duotone.fa-up-right-and-down-left-from-center:after, +.fad.fa-expand-alt:after, +.fad.fa-up-right-and-down-left-from-center:after { + content: "\f424\f424" +} + +.fa-duotone.fa-oil-can:after, +.fad.fa-oil-can:after { + content: "\f613\f613" +} + +.fa-duotone.fa-t:after, +.fad.fa-t:after { + content: "\54\54" +} + +.fa-duotone.fa-transformer-bolt:after, +.fad.fa-transformer-bolt:after { + content: "\e2a4\e2a4" +} + +.fa-duotone.fa-hippo:after, +.fad.fa-hippo:after { + content: "\f6ed\f6ed" +} + +.fa-duotone.fa-chart-column:after, +.fad.fa-chart-column:after { + content: "\e0e3\e0e3" +} + +.fa-duotone.fa-cassette-vhs:after, +.fa-duotone.fa-vhs:after, +.fad.fa-cassette-vhs:after, +.fad.fa-vhs:after { + content: "\f8ec\f8ec" +} + +.fa-duotone.fa-infinity:after, +.fad.fa-infinity:after { + content: "\f534\f534" +} + +.fa-duotone.fa-vial-circle-check:after, +.fad.fa-vial-circle-check:after { + content: "\e596\e596" +} + +.fa-duotone.fa-chimney:after, +.fad.fa-chimney:after { + content: "\f78b\f78b" +} + +.fa-duotone.fa-object-intersect:after, +.fad.fa-object-intersect:after { + content: "\e49d\e49d" +} + +.fa-duotone.fa-person-arrow-down-to-line:after, +.fad.fa-person-arrow-down-to-line:after { + content: "\e538\e538" +} + +.fa-duotone.fa-voicemail:after, +.fad.fa-voicemail:after { + content: "\f897\f897" +} + +.fa-duotone.fa-block-brick:after, +.fa-duotone.fa-wall-brick:after, +.fad.fa-block-brick:after, +.fad.fa-wall-brick:after { + content: "\e3db\e3db" +} + +.fa-duotone.fa-fan:after, +.fad.fa-fan:after { + content: "\f863\f863" +} + +.fa-duotone.fa-bags-shopping:after, +.fad.fa-bags-shopping:after { + content: "\f847\f847" +} + +.fa-duotone.fa-paragraph-left:after, +.fa-duotone.fa-paragraph-rtl:after, +.fad.fa-paragraph-left:after, +.fad.fa-paragraph-rtl:after { + content: "\f878\f878" +} + +.fa-duotone.fa-person-walking-luggage:after, +.fad.fa-person-walking-luggage:after { + content: "\e554\e554" +} + +.fa-duotone.fa-caravan-alt:after, +.fa-duotone.fa-caravan-simple:after, +.fad.fa-caravan-alt:after, +.fad.fa-caravan-simple:after { + content: "\e000\e000" +} + +.fa-duotone.fa-turtle:after, +.fad.fa-turtle:after { + content: "\f726\f726" +} + +.fa-duotone.fa-pencil-mechanical:after, +.fad.fa-pencil-mechanical:after { + content: "\e5ca\e5ca" +} + +.fa-duotone.fa-arrows-alt-v:after, +.fa-duotone.fa-up-down:after, +.fad.fa-arrows-alt-v:after, +.fad.fa-up-down:after { + content: "\f338\f338" +} + +.fa-duotone.fa-cloud-moon-rain:after, +.fad.fa-cloud-moon-rain:after { + content: "\f73c\f73c" +} + +.fa-duotone.fa-booth-curtain:after, +.fad.fa-booth-curtain:after { + content: "\f734\f734" +} + +.fa-duotone.fa-calendar:after, +.fad.fa-calendar:after { + content: "\f133\f133" +} + +.fa-duotone.fa-box-heart:after, +.fad.fa-box-heart:after { + content: "\f49d\f49d" +} + +.fa-duotone.fa-trailer:after, +.fad.fa-trailer:after { + content: "\e041\e041" +} + +.fa-duotone.fa-user-doctor-message:after, +.fa-duotone.fa-user-md-chat:after, +.fad.fa-user-doctor-message:after, +.fad.fa-user-md-chat:after { + content: "\f82e\f82e" +} + +.fa-duotone.fa-bahai:after, +.fa-duotone.fa-haykal:after, +.fad.fa-bahai:after, +.fad.fa-haykal:after { + content: "\f666\f666" +} + +.fa-duotone.fa-lighthouse:after, +.fad.fa-lighthouse:after { + content: "\e612\e612" +} + +.fa-duotone.fa-amp-guitar:after, +.fad.fa-amp-guitar:after { + content: "\f8a1\f8a1" +} + +.fa-duotone.fa-sd-card:after, +.fad.fa-sd-card:after { + content: "\f7c2\f7c2" +} + +.fa-duotone.fa-volume-slash:after, +.fad.fa-volume-slash:after { + content: "\f2e2\f2e2" +} + +.fa-duotone.fa-border-bottom:after, +.fad.fa-border-bottom:after { + content: "\f84d\f84d" +} + +.fa-duotone.fa-wifi-1:after, +.fa-duotone.fa-wifi-weak:after, +.fad.fa-wifi-1:after, +.fad.fa-wifi-weak:after { + content: "\f6aa\f6aa" +} + +.fa-duotone.fa-dragon:after, +.fad.fa-dragon:after { + content: "\f6d5\f6d5" +} + +.fa-duotone.fa-shoe-prints:after, +.fad.fa-shoe-prints:after { + content: "\f54b\f54b" +} + +.fa-duotone.fa-circle-plus:after, +.fa-duotone.fa-plus-circle:after, +.fad.fa-circle-plus:after, +.fad.fa-plus-circle:after { + content: "\f055\f055" +} + +.fa-duotone.fa-face-grin-tongue-wink:after, +.fa-duotone.fa-grin-tongue-wink:after, +.fad.fa-face-grin-tongue-wink:after, +.fad.fa-grin-tongue-wink:after { + content: "\f58b\f58b" +} + +.fa-duotone.fa-hand-holding:after, +.fad.fa-hand-holding:after { + content: "\f4bd\f4bd" +} + +.fa-duotone.fa-plug-circle-exclamation:after, +.fad.fa-plug-circle-exclamation:after { + content: "\e55d\e55d" +} + +.fa-duotone.fa-chain-broken:after, +.fa-duotone.fa-chain-slash:after, +.fa-duotone.fa-link-slash:after, +.fa-duotone.fa-unlink:after, +.fad.fa-chain-broken:after, +.fad.fa-chain-slash:after, +.fad.fa-link-slash:after, +.fad.fa-unlink:after { + content: "\f127\f127" +} + +.fa-duotone.fa-clone:after, +.fad.fa-clone:after { + content: "\f24d\f24d" +} + +.fa-duotone.fa-person-walking-arrow-loop-left:after, +.fad.fa-person-walking-arrow-loop-left:after { + content: "\e551\e551" +} + +.fa-duotone.fa-arrow-up-z-a:after, +.fa-duotone.fa-sort-alpha-up-alt:after, +.fad.fa-arrow-up-z-a:after, +.fad.fa-sort-alpha-up-alt:after { + content: "\f882\f882" +} + +.fa-duotone.fa-fire-alt:after, +.fa-duotone.fa-fire-flame-curved:after, +.fad.fa-fire-alt:after, +.fad.fa-fire-flame-curved:after { + content: "\f7e4\f7e4" +} + +.fa-duotone.fa-tornado:after, +.fad.fa-tornado:after { + content: "\f76f\f76f" +} + +.fa-duotone.fa-file-circle-plus:after, +.fad.fa-file-circle-plus:after { + content: "\e494\e494" +} + +.fa-duotone.fa-delete-right:after, +.fad.fa-delete-right:after { + content: "\e154\e154" +} + +.fa-duotone.fa-book-quran:after, +.fa-duotone.fa-quran:after, +.fad.fa-book-quran:after, +.fad.fa-quran:after { + content: "\f687\f687" +} + +.fa-duotone.fa-circle-quarter:after, +.fad.fa-circle-quarter:after { + content: "\e11f\e11f" +} + +.fa-duotone.fa-anchor:after, +.fad.fa-anchor:after { + content: "\f13d\f13d" +} + +.fa-duotone.fa-border-all:after, +.fad.fa-border-all:after { + content: "\f84c\f84c" +} + +.fa-duotone.fa-function:after, +.fad.fa-function:after { + content: "\f661\f661" +} + +.fa-duotone.fa-angry:after, +.fa-duotone.fa-face-angry:after, +.fad.fa-angry:after, +.fad.fa-face-angry:after { + content: "\f556\f556" +} + +.fa-duotone.fa-people-simple:after, +.fad.fa-people-simple:after { + content: "\e21b\e21b" +} + +.fa-duotone.fa-cookie-bite:after, +.fad.fa-cookie-bite:after { + content: "\f564\f564" +} + +.fa-duotone.fa-arrow-trend-down:after, +.fad.fa-arrow-trend-down:after { + content: "\e097\e097" +} + +.fa-duotone.fa-feed:after, +.fa-duotone.fa-rss:after, +.fad.fa-feed:after, +.fad.fa-rss:after { + content: "\f09e\f09e" +} + +.fa-duotone.fa-face-monocle:after, +.fad.fa-face-monocle:after { + content: "\e380\e380" +} + +.fa-duotone.fa-draw-polygon:after, +.fad.fa-draw-polygon:after { + content: "\f5ee\f5ee" +} + +.fa-duotone.fa-balance-scale:after, +.fa-duotone.fa-scale-balanced:after, +.fad.fa-balance-scale:after, +.fad.fa-scale-balanced:after { + content: "\f24e\f24e" +} + +.fa-duotone.fa-calendar-lines:after, +.fa-duotone.fa-calendar-note:after, +.fad.fa-calendar-lines:after, +.fad.fa-calendar-note:after { + content: "\e0d5\e0d5" +} + +.fa-duotone.fa-arrow-down-big-small:after, +.fa-duotone.fa-sort-size-down:after, +.fad.fa-arrow-down-big-small:after, +.fad.fa-sort-size-down:after { + content: "\f88c\f88c" +} + +.fa-duotone.fa-gauge-simple-high:after, +.fa-duotone.fa-tachometer-fast:after, +.fa-duotone.fa-tachometer:after, +.fad.fa-gauge-simple-high:after, +.fad.fa-tachometer-fast:after, +.fad.fa-tachometer:after { + content: "\f62a\f62a" +} + +.fa-duotone.fa-do-not-enter:after, +.fad.fa-do-not-enter:after { + content: "\f5ec\f5ec" +} + +.fa-duotone.fa-shower:after, +.fad.fa-shower:after { + content: "\f2cc\f2cc" +} + +.fa-duotone.fa-dice-d8:after, +.fad.fa-dice-d8:after { + content: "\f6d2\f6d2" +} + +.fa-duotone.fa-desktop-alt:after, +.fa-duotone.fa-desktop:after, +.fad.fa-desktop-alt:after, +.fad.fa-desktop:after { + content: "\f390\f390" +} + +.fa-duotone.fa-m:after, +.fad.fa-m:after { + content: "\4d\4d" +} + +.fa-duotone.fa-spinner-scale:after, +.fad.fa-spinner-scale:after { + content: "\e62a\e62a" +} + +.fa-duotone.fa-grip-dots-vertical:after, +.fad.fa-grip-dots-vertical:after { + content: "\e411\e411" +} + +.fa-duotone.fa-face-viewfinder:after, +.fad.fa-face-viewfinder:after { + content: "\e2ff\e2ff" +} + +.fa-duotone.fa-creemee:after, +.fa-duotone.fa-soft-serve:after, +.fad.fa-creemee:after, +.fad.fa-soft-serve:after { + content: "\e400\e400" +} + +.fa-duotone.fa-h5:after, +.fad.fa-h5:after { + content: "\e412\e412" +} + +.fa-duotone.fa-hand-back-point-down:after, +.fad.fa-hand-back-point-down:after { + content: "\e19e\e19e" +} + +.fa-duotone.fa-table-list:after, +.fa-duotone.fa-th-list:after, +.fad.fa-table-list:after, +.fad.fa-th-list:after { + content: "\f00b\f00b" +} + +.fa-duotone.fa-basket-shopping-minus:after, +.fad.fa-basket-shopping-minus:after { + content: "\e652\e652" +} + +.fa-duotone.fa-comment-sms:after, +.fa-duotone.fa-sms:after, +.fad.fa-comment-sms:after, +.fad.fa-sms:after { + content: "\f7cd\f7cd" +} + +.fa-duotone.fa-rectangle-landscape:after, +.fa-duotone.fa-rectangle:after, +.fad.fa-rectangle-landscape:after, +.fad.fa-rectangle:after { + content: "\f2fa\f2fa" +} + +.fa-duotone.fa-clipboard-list-check:after, +.fad.fa-clipboard-list-check:after { + content: "\f737\f737" +} + +.fa-duotone.fa-turkey:after, +.fad.fa-turkey:after { + content: "\f725\f725" +} + +.fa-duotone.fa-book:after, +.fad.fa-book:after { + content: "\f02d\f02d" +} + +.fa-duotone.fa-user-plus:after, +.fad.fa-user-plus:after { + content: "\f234\f234" +} + +.fa-duotone.fa-ice-skate:after, +.fad.fa-ice-skate:after { + content: "\f7ac\f7ac" +} + +.fa-duotone.fa-check:after, +.fad.fa-check:after { + content: "\f00c\f00c" +} + +.fa-duotone.fa-battery-4:after, +.fa-duotone.fa-battery-three-quarters:after, +.fad.fa-battery-4:after, +.fad.fa-battery-three-quarters:after { + content: "\f241\f241" +} + +.fa-duotone.fa-tomato:after, +.fad.fa-tomato:after { + content: "\e330\e330" +} + +.fa-duotone.fa-sword-laser:after, +.fad.fa-sword-laser:after { + content: "\e03b\e03b" +} + +.fa-duotone.fa-house-circle-check:after, +.fad.fa-house-circle-check:after { + content: "\e509\e509" +} + +.fa-duotone.fa-buildings:after, +.fad.fa-buildings:after { + content: "\e0cc\e0cc" +} + +.fa-duotone.fa-angle-left:after, +.fad.fa-angle-left:after { + content: "\f104\f104" +} + +.fa-duotone.fa-cart-flatbed-boxes:after, +.fa-duotone.fa-dolly-flatbed-alt:after, +.fad.fa-cart-flatbed-boxes:after, +.fad.fa-dolly-flatbed-alt:after { + content: "\f475\f475" +} + +.fa-duotone.fa-diagram-successor:after, +.fad.fa-diagram-successor:after { + content: "\e47a\e47a" +} + +.fa-duotone.fa-truck-arrow-right:after, +.fad.fa-truck-arrow-right:after { + content: "\e58b\e58b" +} + +.fa-duotone.fa-square-w:after, +.fad.fa-square-w:after { + content: "\e285\e285" +} + +.fa-duotone.fa-arrows-split-up-and-left:after, +.fad.fa-arrows-split-up-and-left:after { + content: "\e4bc\e4bc" +} + +.fa-duotone.fa-lamp:after, +.fad.fa-lamp:after { + content: "\f4ca\f4ca" +} + +.fa-duotone.fa-airplay:after, +.fad.fa-airplay:after { + content: "\e089\e089" +} + +.fa-duotone.fa-fist-raised:after, +.fa-duotone.fa-hand-fist:after, +.fad.fa-fist-raised:after, +.fad.fa-hand-fist:after { + content: "\f6de\f6de" +} + +.fa-duotone.fa-shield-quartered:after, +.fad.fa-shield-quartered:after { + content: "\e575\e575" +} + +.fa-duotone.fa-slash-forward:after, +.fad.fa-slash-forward:after { + content: "\2f\2f" +} + +.fa-duotone.fa-location-pen:after, +.fa-duotone.fa-map-marker-edit:after, +.fad.fa-location-pen:after, +.fad.fa-map-marker-edit:after { + content: "\f607\f607" +} + +.fa-duotone.fa-cloud-moon:after, +.fad.fa-cloud-moon:after { + content: "\f6c3\f6c3" +} + +.fa-duotone.fa-pot-food:after, +.fad.fa-pot-food:after { + content: "\e43f\e43f" +} + +.fa-duotone.fa-briefcase:after, +.fad.fa-briefcase:after { + content: "\f0b1\f0b1" +} + +.fa-duotone.fa-person-falling:after, +.fad.fa-person-falling:after { + content: "\e546\e546" +} + +.fa-duotone.fa-image-portrait:after, +.fa-duotone.fa-portrait:after, +.fad.fa-image-portrait:after, +.fad.fa-portrait:after { + content: "\f3e0\f3e0" +} + +.fa-duotone.fa-user-tag:after, +.fad.fa-user-tag:after { + content: "\f507\f507" +} + +.fa-duotone.fa-rug:after, +.fad.fa-rug:after { + content: "\e569\e569" +} + +.fa-duotone.fa-print-slash:after, +.fad.fa-print-slash:after { + content: "\f686\f686" +} + +.fa-duotone.fa-earth-europe:after, +.fa-duotone.fa-globe-europe:after, +.fad.fa-earth-europe:after, +.fad.fa-globe-europe:after { + content: "\f7a2\f7a2" +} + +.fa-duotone.fa-cart-flatbed-suitcase:after, +.fa-duotone.fa-luggage-cart:after, +.fad.fa-cart-flatbed-suitcase:after, +.fad.fa-luggage-cart:after { + content: "\f59d\f59d" +} + +.fa-duotone.fa-hand-back-point-ribbon:after, +.fad.fa-hand-back-point-ribbon:after { + content: "\e1a0\e1a0" +} + +.fa-duotone.fa-rectangle-times:after, +.fa-duotone.fa-rectangle-xmark:after, +.fa-duotone.fa-times-rectangle:after, +.fa-duotone.fa-window-close:after, +.fad.fa-rectangle-times:after, +.fad.fa-rectangle-xmark:after, +.fad.fa-times-rectangle:after, +.fad.fa-window-close:after { + content: "\f410\f410" +} + +.fa-duotone.fa-tire-rugged:after, +.fad.fa-tire-rugged:after { + content: "\f634\f634" +} + +.fa-duotone.fa-lightbulb-dollar:after, +.fad.fa-lightbulb-dollar:after { + content: "\f670\f670" +} + +.fa-duotone.fa-cowbell:after, +.fad.fa-cowbell:after { + content: "\f8b3\f8b3" +} + +.fa-duotone.fa-baht-sign:after, +.fad.fa-baht-sign:after { + content: "\e0ac\e0ac" +} + +.fa-duotone.fa-corner:after, +.fad.fa-corner:after { + content: "\e3fe\e3fe" +} + +.fa-duotone.fa-chevron-double-right:after, +.fa-duotone.fa-chevrons-right:after, +.fad.fa-chevron-double-right:after, +.fad.fa-chevrons-right:after { + content: "\f324\f324" +} + +.fa-duotone.fa-book-open:after, +.fad.fa-book-open:after { + content: "\f518\f518" +} + +.fa-duotone.fa-book-journal-whills:after, +.fa-duotone.fa-journal-whills:after, +.fad.fa-book-journal-whills:after, +.fad.fa-journal-whills:after { + content: "\f66a\f66a" +} + +.fa-duotone.fa-inhaler:after, +.fad.fa-inhaler:after { + content: "\f5f9\f5f9" +} + +.fa-duotone.fa-handcuffs:after, +.fad.fa-handcuffs:after { + content: "\e4f8\e4f8" +} + +.fa-duotone.fa-snake:after, +.fad.fa-snake:after { + content: "\f716\f716" +} + +.fa-duotone.fa-exclamation-triangle:after, +.fa-duotone.fa-triangle-exclamation:after, +.fa-duotone.fa-warning:after, +.fad.fa-exclamation-triangle:after, +.fad.fa-triangle-exclamation:after, +.fad.fa-warning:after { + content: "\f071\f071" +} + +.fa-duotone.fa-note-medical:after, +.fad.fa-note-medical:after { + content: "\e200\e200" +} + +.fa-duotone.fa-database:after, +.fad.fa-database:after { + content: "\f1c0\f1c0" +} + +.fa-duotone.fa-down-left:after, +.fad.fa-down-left:after { + content: "\e16a\e16a" +} + +.fa-duotone.fa-mail-forward:after, +.fa-duotone.fa-share:after, +.fad.fa-mail-forward:after, +.fad.fa-share:after { + content: "\f064\f064" +} + +.fa-duotone.fa-face-thinking:after, +.fad.fa-face-thinking:after { + content: "\e39b\e39b" +} + +.fa-duotone.fa-turn-down-right:after, +.fad.fa-turn-down-right:after { + content: "\e455\e455" +} + +.fa-duotone.fa-bottle-droplet:after, +.fad.fa-bottle-droplet:after { + content: "\e4c4\e4c4" +} + +.fa-duotone.fa-mask-face:after, +.fad.fa-mask-face:after { + content: "\e1d7\e1d7" +} + +.fa-duotone.fa-hill-rockslide:after, +.fad.fa-hill-rockslide:after { + content: "\e508\e508" +} + +.fa-duotone.fa-scanner-keyboard:after, +.fad.fa-scanner-keyboard:after { + content: "\f489\f489" +} + +.fa-duotone.fa-circle-o:after, +.fad.fa-circle-o:after { + content: "\e119\e119" +} + +.fa-duotone.fa-grid-horizontal:after, +.fad.fa-grid-horizontal:after { + content: "\e307\e307" +} + +.fa-duotone.fa-comment-alt-dollar:after, +.fa-duotone.fa-message-dollar:after, +.fad.fa-comment-alt-dollar:after, +.fad.fa-message-dollar:after { + content: "\f650\f650" +} + +.fa-duotone.fa-exchange-alt:after, +.fa-duotone.fa-right-left:after, +.fad.fa-exchange-alt:after, +.fad.fa-right-left:after { + content: "\f362\f362" +} + +.fa-duotone.fa-columns-3:after, +.fad.fa-columns-3:after { + content: "\e361\e361" +} + +.fa-duotone.fa-paper-plane:after, +.fad.fa-paper-plane:after { + content: "\f1d8\f1d8" +} + +.fa-duotone.fa-road-circle-exclamation:after, +.fad.fa-road-circle-exclamation:after { + content: "\e565\e565" +} + +.fa-duotone.fa-dungeon:after, +.fad.fa-dungeon:after { + content: "\f6d9\f6d9" +} + +.fa-duotone.fa-hand-holding-box:after, +.fad.fa-hand-holding-box:after { + content: "\f47b\f47b" +} + +.fa-duotone.fa-input-text:after, +.fad.fa-input-text:after { + content: "\e1bf\e1bf" +} + +.fa-duotone.fa-window-alt:after, +.fa-duotone.fa-window-flip:after, +.fad.fa-window-alt:after, +.fad.fa-window-flip:after { + content: "\f40f\f40f" +} + +.fa-duotone.fa-align-right:after, +.fad.fa-align-right:after { + content: "\f038\f038" +} + +.fa-duotone.fa-scanner-gun:after, +.fa-duotone.fa-scanner:after, +.fad.fa-scanner-gun:after, +.fad.fa-scanner:after { + content: "\f488\f488" +} + +.fa-duotone.fa-tire:after, +.fad.fa-tire:after { + content: "\f631\f631" +} + +.fa-duotone.fa-engine:after, +.fad.fa-engine:after { + content: "\e16e\e16e" +} + +.fa-duotone.fa-money-bill-1-wave:after, +.fa-duotone.fa-money-bill-wave-alt:after, +.fad.fa-money-bill-1-wave:after, +.fad.fa-money-bill-wave-alt:after { + content: "\f53b\f53b" +} + +.fa-duotone.fa-life-ring:after, +.fad.fa-life-ring:after { + content: "\f1cd\f1cd" +} + +.fa-duotone.fa-hands:after, +.fa-duotone.fa-sign-language:after, +.fa-duotone.fa-signing:after, +.fad.fa-hands:after, +.fad.fa-sign-language:after, +.fad.fa-signing:after { + content: "\f2a7\f2a7" +} + +.fa-duotone.fa-caret-circle-right:after, +.fa-duotone.fa-circle-caret-right:after, +.fad.fa-caret-circle-right:after, +.fad.fa-circle-caret-right:after { + content: "\f330\f330" +} + +.fa-duotone.fa-turn-left:after, +.fad.fa-turn-left:after { + content: "\e636\e636" +} + +.fa-duotone.fa-wheat:after, +.fad.fa-wheat:after { + content: "\f72d\f72d" +} + +.fa-duotone.fa-file-spreadsheet:after, +.fad.fa-file-spreadsheet:after { + content: "\f65b\f65b" +} + +.fa-duotone.fa-audio-description-slash:after, +.fad.fa-audio-description-slash:after { + content: "\e0a8\e0a8" +} + +.fa-duotone.fa-bell-ring:after, +.fad.fa-bell-ring:after { + content: "\e62c\e62c" +} + +.fa-duotone.fa-calendar-day:after, +.fad.fa-calendar-day:after { + content: "\f783\f783" +} + +.fa-duotone.fa-ladder-water:after, +.fa-duotone.fa-swimming-pool:after, +.fa-duotone.fa-water-ladder:after, +.fad.fa-ladder-water:after, +.fad.fa-swimming-pool:after, +.fad.fa-water-ladder:after { + content: "\f5c5\f5c5" +} + +.fa-duotone.fa-arrows-up-down:after, +.fa-duotone.fa-arrows-v:after, +.fad.fa-arrows-up-down:after, +.fad.fa-arrows-v:after { + content: "\f07d\f07d" +} + +.fa-duotone.fa-chess-pawn-alt:after, +.fa-duotone.fa-chess-pawn-piece:after, +.fad.fa-chess-pawn-alt:after, +.fad.fa-chess-pawn-piece:after { + content: "\f444\f444" +} + +.fa-duotone.fa-face-grimace:after, +.fa-duotone.fa-grimace:after, +.fad.fa-face-grimace:after, +.fad.fa-grimace:after { + content: "\f57f\f57f" +} + +.fa-duotone.fa-wheelchair-alt:after, +.fa-duotone.fa-wheelchair-move:after, +.fad.fa-wheelchair-alt:after, +.fad.fa-wheelchair-move:after { + content: "\e2ce\e2ce" +} + +.fa-duotone.fa-level-down-alt:after, +.fa-duotone.fa-turn-down:after, +.fad.fa-level-down-alt:after, +.fad.fa-turn-down:after { + content: "\f3be\f3be" +} + +.fa-duotone.fa-square-s:after, +.fad.fa-square-s:after { + content: "\e27d\e27d" +} + +.fa-duotone.fa-barcode-alt:after, +.fa-duotone.fa-rectangle-barcode:after, +.fad.fa-barcode-alt:after, +.fad.fa-rectangle-barcode:after { + content: "\f463\f463" +} + +.fa-duotone.fa-person-walking-arrow-right:after, +.fad.fa-person-walking-arrow-right:after { + content: "\e552\e552" +} + +.fa-duotone.fa-envelope-square:after, +.fa-duotone.fa-square-envelope:after, +.fad.fa-envelope-square:after, +.fad.fa-square-envelope:after { + content: "\f199\f199" +} + +.fa-duotone.fa-dice:after, +.fad.fa-dice:after { + content: "\f522\f522" +} + +.fa-duotone.fa-unicorn:after, +.fad.fa-unicorn:after { + content: "\f727\f727" +} + +.fa-duotone.fa-bowling-ball:after, +.fad.fa-bowling-ball:after { + content: "\f436\f436" +} + +.fa-duotone.fa-pompebled:after, +.fad.fa-pompebled:after { + content: "\e43d\e43d" +} + +.fa-duotone.fa-brain:after, +.fad.fa-brain:after { + content: "\f5dc\f5dc" +} + +.fa-duotone.fa-watch-smart:after, +.fad.fa-watch-smart:after { + content: "\e2cc\e2cc" +} + +.fa-duotone.fa-book-user:after, +.fad.fa-book-user:after { + content: "\f7e7\f7e7" +} + +.fa-duotone.fa-sensor-cloud:after, +.fa-duotone.fa-sensor-smoke:after, +.fad.fa-sensor-cloud:after, +.fad.fa-sensor-smoke:after { + content: "\e02c\e02c" +} + +.fa-duotone.fa-clapperboard-play:after, +.fad.fa-clapperboard-play:after { + content: "\e132\e132" +} + +.fa-duotone.fa-band-aid:after, +.fa-duotone.fa-bandage:after, +.fad.fa-band-aid:after, +.fad.fa-bandage:after { + content: "\f462\f462" +} + +.fa-duotone.fa-calendar-minus:after, +.fad.fa-calendar-minus:after { + content: "\f272\f272" +} + +.fa-duotone.fa-circle-xmark:after, +.fa-duotone.fa-times-circle:after, +.fa-duotone.fa-xmark-circle:after, +.fad.fa-circle-xmark:after, +.fad.fa-times-circle:after, +.fad.fa-xmark-circle:after { + content: "\f057\f057" +} + +.fa-duotone.fa-circle-4:after, +.fad.fa-circle-4:after { + content: "\e0f1\e0f1" +} + +.fa-duotone.fa-gifts:after, +.fad.fa-gifts:after { + content: "\f79c\f79c" +} + +.fa-duotone.fa-album-collection:after, +.fad.fa-album-collection:after { + content: "\f8a0\f8a0" +} + +.fa-duotone.fa-hotel:after, +.fad.fa-hotel:after { + content: "\f594\f594" +} + +.fa-duotone.fa-earth-asia:after, +.fa-duotone.fa-globe-asia:after, +.fad.fa-earth-asia:after, +.fad.fa-globe-asia:after { + content: "\f57e\f57e" +} + +.fa-duotone.fa-id-card-alt:after, +.fa-duotone.fa-id-card-clip:after, +.fad.fa-id-card-alt:after, +.fad.fa-id-card-clip:after { + content: "\f47f\f47f" +} + +.fa-duotone.fa-magnifying-glass-plus:after, +.fa-duotone.fa-search-plus:after, +.fad.fa-magnifying-glass-plus:after, +.fad.fa-search-plus:after { + content: "\f00e\f00e" +} + +.fa-duotone.fa-thumbs-up:after, +.fad.fa-thumbs-up:after { + content: "\f164\f164" +} + +.fa-duotone.fa-cloud-showers:after, +.fad.fa-cloud-showers:after { + content: "\f73f\f73f" +} + +.fa-duotone.fa-user-clock:after, +.fad.fa-user-clock:after { + content: "\f4fd\f4fd" +} + +.fa-duotone.fa-onion:after, +.fad.fa-onion:after { + content: "\e427\e427" +} + +.fa-duotone.fa-clock-twelve-thirty:after, +.fad.fa-clock-twelve-thirty:after { + content: "\e359\e359" +} + +.fa-duotone.fa-arrow-down-to-dotted-line:after, +.fad.fa-arrow-down-to-dotted-line:after { + content: "\e095\e095" +} + +.fa-duotone.fa-allergies:after, +.fa-duotone.fa-hand-dots:after, +.fad.fa-allergies:after, +.fad.fa-hand-dots:after { + content: "\f461\f461" +} + +.fa-duotone.fa-file-invoice:after, +.fad.fa-file-invoice:after { + content: "\f570\f570" +} + +.fa-duotone.fa-window-minimize:after, +.fad.fa-window-minimize:after { + content: "\f2d1\f2d1" +} + +.fa-duotone.fa-rectangle-wide:after, +.fad.fa-rectangle-wide:after { + content: "\f2fc\f2fc" +} + +.fa-duotone.fa-comment-arrow-up:after, +.fad.fa-comment-arrow-up:after { + content: "\e144\e144" +} + +.fa-duotone.fa-garlic:after, +.fad.fa-garlic:after { + content: "\e40e\e40e" +} + +.fa-duotone.fa-coffee:after, +.fa-duotone.fa-mug-saucer:after, +.fad.fa-coffee:after, +.fad.fa-mug-saucer:after { + content: "\f0f4\f0f4" +} + +.fa-duotone.fa-brush:after, +.fad.fa-brush:after { + content: "\f55d\f55d" +} + +.fa-duotone.fa-tree-decorated:after, +.fad.fa-tree-decorated:after { + content: "\f7dc\f7dc" +} + +.fa-duotone.fa-mask:after, +.fad.fa-mask:after { + content: "\f6fa\f6fa" +} + +.fa-duotone.fa-calendar-heart:after, +.fad.fa-calendar-heart:after { + content: "\e0d3\e0d3" +} + +.fa-duotone.fa-magnifying-glass-minus:after, +.fa-duotone.fa-search-minus:after, +.fad.fa-magnifying-glass-minus:after, +.fad.fa-search-minus:after { + content: "\f010\f010" +} + +.fa-duotone.fa-flower:after, +.fad.fa-flower:after { + content: "\f7ff\f7ff" +} + +.fa-duotone.fa-arrow-down-from-arc:after, +.fad.fa-arrow-down-from-arc:after { + content: "\e614\e614" +} + +.fa-duotone.fa-right-left-large:after, +.fad.fa-right-left-large:after { + content: "\e5e1\e5e1" +} + +.fa-duotone.fa-ruler-vertical:after, +.fad.fa-ruler-vertical:after { + content: "\f548\f548" +} + +.fa-duotone.fa-circles-overlap:after, +.fad.fa-circles-overlap:after { + content: "\e600\e600" +} + +.fa-duotone.fa-user-alt:after, +.fa-duotone.fa-user-large:after, +.fad.fa-user-alt:after, +.fad.fa-user-large:after { + content: "\f406\f406" +} + +.fa-duotone.fa-starship-freighter:after, +.fad.fa-starship-freighter:after { + content: "\e03a\e03a" +} + +.fa-duotone.fa-train-tram:after, +.fad.fa-train-tram:after { + content: "\e5b4\e5b4" +} + +.fa-duotone.fa-bridge-suspension:after, +.fad.fa-bridge-suspension:after { + content: "\e4cd\e4cd" +} + +.fa-duotone.fa-trash-check:after, +.fad.fa-trash-check:after { + content: "\e2af\e2af" +} + +.fa-duotone.fa-user-nurse:after, +.fad.fa-user-nurse:after { + content: "\f82f\f82f" +} + +.fa-duotone.fa-boombox:after, +.fad.fa-boombox:after { + content: "\f8a5\f8a5" +} + +.fa-duotone.fa-syringe:after, +.fad.fa-syringe:after { + content: "\f48e\f48e" +} + +.fa-duotone.fa-cloud-sun:after, +.fad.fa-cloud-sun:after { + content: "\f6c4\f6c4" +} + +.fa-duotone.fa-shield-exclamation:after, +.fad.fa-shield-exclamation:after { + content: "\e247\e247" +} + +.fa-duotone.fa-stopwatch-20:after, +.fad.fa-stopwatch-20:after { + content: "\e06f\e06f" +} + +.fa-duotone.fa-square-full:after, +.fad.fa-square-full:after { + content: "\f45c\f45c" +} + +.fa-duotone.fa-grip-dots:after, +.fad.fa-grip-dots:after { + content: "\e410\e410" +} + +.fa-duotone.fa-comment-exclamation:after, +.fad.fa-comment-exclamation:after { + content: "\f4af\f4af" +} + +.fa-duotone.fa-pen-swirl:after, +.fad.fa-pen-swirl:after { + content: "\e214\e214" +} + +.fa-duotone.fa-falafel:after, +.fad.fa-falafel:after { + content: "\e40a\e40a" +} + +.fa-duotone.fa-circle-2:after, +.fad.fa-circle-2:after { + content: "\e0ef\e0ef" +} + +.fa-duotone.fa-magnet:after, +.fad.fa-magnet:after { + content: "\f076\f076" +} + +.fa-duotone.fa-jar:after, +.fad.fa-jar:after { + content: "\e516\e516" +} + +.fa-duotone.fa-gramophone:after, +.fad.fa-gramophone:after { + content: "\f8bd\f8bd" +} + +.fa-duotone.fa-dice-d12:after, +.fad.fa-dice-d12:after { + content: "\f6ce\f6ce" +} + +.fa-duotone.fa-note-sticky:after, +.fa-duotone.fa-sticky-note:after, +.fad.fa-note-sticky:after, +.fad.fa-sticky-note:after { + content: "\f249\f249" +} + +.fa-duotone.fa-arrow-alt-down:after, +.fa-duotone.fa-down:after, +.fad.fa-arrow-alt-down:after, +.fad.fa-down:after { + content: "\f354\f354" +} + +.fa-duotone.fa-100:after, +.fa-duotone.fa-hundred-points:after, +.fad.fa-100:after, +.fad.fa-hundred-points:after { + content: "\e41c\e41c" +} + +.fa-duotone.fa-paperclip-vertical:after, +.fad.fa-paperclip-vertical:after { + content: "\e3c2\e3c2" +} + +.fa-duotone.fa-wind-circle-exclamation:after, +.fa-duotone.fa-wind-warning:after, +.fad.fa-wind-circle-exclamation:after, +.fad.fa-wind-warning:after { + content: "\f776\f776" +} + +.fa-duotone.fa-location-pin-slash:after, +.fa-duotone.fa-map-marker-slash:after, +.fad.fa-location-pin-slash:after, +.fad.fa-map-marker-slash:after { + content: "\f60c\f60c" +} + +.fa-duotone.fa-face-sad-sweat:after, +.fad.fa-face-sad-sweat:after { + content: "\e38a\e38a" +} + +.fa-duotone.fa-bug-slash:after, +.fad.fa-bug-slash:after { + content: "\e490\e490" +} + +.fa-duotone.fa-cupcake:after, +.fad.fa-cupcake:after { + content: "\e402\e402" +} + +.fa-duotone.fa-light-switch-off:after, +.fad.fa-light-switch-off:after { + content: "\e018\e018" +} + +.fa-duotone.fa-toggle-large-off:after, +.fad.fa-toggle-large-off:after { + content: "\e5b0\e5b0" +} + +.fa-duotone.fa-pen-fancy-slash:after, +.fad.fa-pen-fancy-slash:after { + content: "\e210\e210" +} + +.fa-duotone.fa-truck-container:after, +.fad.fa-truck-container:after { + content: "\f4dc\f4dc" +} + +.fa-duotone.fa-boot:after, +.fad.fa-boot:after { + content: "\f782\f782" +} + +.fa-duotone.fa-arrow-up-from-water-pump:after, +.fad.fa-arrow-up-from-water-pump:after { + content: "\e4b6\e4b6" +} + +.fa-duotone.fa-file-check:after, +.fad.fa-file-check:after { + content: "\f316\f316" +} + +.fa-duotone.fa-bone:after, +.fad.fa-bone:after { + content: "\f5d7\f5d7" +} + +.fa-duotone.fa-cards-blank:after, +.fad.fa-cards-blank:after { + content: "\e4df\e4df" +} + +.fa-duotone.fa-circle-3:after, +.fad.fa-circle-3:after { + content: "\e0f0\e0f0" +} + +.fa-duotone.fa-bench-tree:after, +.fad.fa-bench-tree:after { + content: "\e2e7\e2e7" +} + +.fa-duotone.fa-keyboard-brightness-low:after, +.fad.fa-keyboard-brightness-low:after { + content: "\e1c1\e1c1" +} + +.fa-duotone.fa-ski-boot-ski:after, +.fad.fa-ski-boot-ski:after { + content: "\e3cd\e3cd" +} + +.fa-duotone.fa-brain-circuit:after, +.fad.fa-brain-circuit:after { + content: "\e0c6\e0c6" +} + +.fa-duotone.fa-user-injured:after, +.fad.fa-user-injured:after { + content: "\f728\f728" +} + +.fa-duotone.fa-block-brick-fire:after, +.fa-duotone.fa-firewall:after, +.fad.fa-block-brick-fire:after, +.fad.fa-firewall:after { + content: "\e3dc\e3dc" +} + +.fa-duotone.fa-face-sad-tear:after, +.fa-duotone.fa-sad-tear:after, +.fad.fa-face-sad-tear:after, +.fad.fa-sad-tear:after { + content: "\f5b4\f5b4" +} + +.fa-duotone.fa-plane:after, +.fad.fa-plane:after { + content: "\f072\f072" +} + +.fa-duotone.fa-tent-arrows-down:after, +.fad.fa-tent-arrows-down:after { + content: "\e581\e581" +} + +.fa-duotone.fa-exclamation:after, +.fad.fa-exclamation:after { + content: "\21\21" +} + +.fa-duotone.fa-arrows-spin:after, +.fad.fa-arrows-spin:after { + content: "\e4bb\e4bb" +} + +.fa-duotone.fa-face-smile-relaxed:after, +.fad.fa-face-smile-relaxed:after { + content: "\e392\e392" +} + +.fa-duotone.fa-comment-times:after, +.fa-duotone.fa-comment-xmark:after, +.fad.fa-comment-times:after, +.fad.fa-comment-xmark:after { + content: "\f4b5\f4b5" +} + +.fa-duotone.fa-print:after, +.fad.fa-print:after { + content: "\f02f\f02f" +} + +.fa-duotone.fa-try:after, +.fa-duotone.fa-turkish-lira-sign:after, +.fa-duotone.fa-turkish-lira:after, +.fad.fa-try:after, +.fad.fa-turkish-lira-sign:after, +.fad.fa-turkish-lira:after { + content: "\e2bb\e2bb" +} + +.fa-duotone.fa-face-nose-steam:after, +.fad.fa-face-nose-steam:after { + content: "\e382\e382" +} + +.fa-duotone.fa-circle-waveform-lines:after, +.fa-duotone.fa-waveform-circle:after, +.fad.fa-circle-waveform-lines:after, +.fad.fa-waveform-circle:after { + content: "\e12d\e12d" +} + +.fa-duotone.fa-dollar-sign:after, +.fa-duotone.fa-dollar:after, +.fa-duotone.fa-usd:after, +.fad.fa-dollar-sign:after, +.fad.fa-dollar:after, +.fad.fa-usd:after { + content: "\24\24" +} + +.fa-duotone.fa-ferris-wheel:after, +.fad.fa-ferris-wheel:after { + content: "\e174\e174" +} + +.fa-duotone.fa-computer-speaker:after, +.fad.fa-computer-speaker:after { + content: "\f8b2\f8b2" +} + +.fa-duotone.fa-skull-cow:after, +.fad.fa-skull-cow:after { + content: "\f8de\f8de" +} + +.fa-duotone.fa-x:after, +.fad.fa-x:after { + content: "\58\58" +} + +.fa-duotone.fa-magnifying-glass-dollar:after, +.fa-duotone.fa-search-dollar:after, +.fad.fa-magnifying-glass-dollar:after, +.fad.fa-search-dollar:after { + content: "\f688\f688" +} + +.fa-duotone.fa-users-cog:after, +.fa-duotone.fa-users-gear:after, +.fad.fa-users-cog:after, +.fad.fa-users-gear:after { + content: "\f509\f509" +} + +.fa-duotone.fa-person-military-pointing:after, +.fad.fa-person-military-pointing:after { + content: "\e54a\e54a" +} + +.fa-duotone.fa-bank:after, +.fa-duotone.fa-building-columns:after, +.fa-duotone.fa-institution:after, +.fa-duotone.fa-museum:after, +.fa-duotone.fa-university:after, +.fad.fa-bank:after, +.fad.fa-building-columns:after, +.fad.fa-institution:after, +.fad.fa-museum:after, +.fad.fa-university:after { + content: "\f19c\f19c" +} + +.fa-duotone.fa-circle-t:after, +.fad.fa-circle-t:after { + content: "\e124\e124" +} + +.fa-duotone.fa-sack:after, +.fad.fa-sack:after { + content: "\f81c\f81c" +} + +.fa-duotone.fa-grid-2:after, +.fad.fa-grid-2:after { + content: "\e196\e196" +} + +.fa-duotone.fa-camera-cctv:after, +.fa-duotone.fa-cctv:after, +.fad.fa-camera-cctv:after, +.fad.fa-cctv:after { + content: "\f8ac\f8ac" +} + +.fa-duotone.fa-umbrella:after, +.fad.fa-umbrella:after { + content: "\f0e9\f0e9" +} + +.fa-duotone.fa-trowel:after, +.fad.fa-trowel:after { + content: "\e589\e589" +} + +.fa-duotone.fa-horizontal-rule:after, +.fad.fa-horizontal-rule:after { + content: "\f86c\f86c" +} + +.fa-duotone.fa-bed-alt:after, +.fa-duotone.fa-bed-front:after, +.fad.fa-bed-alt:after, +.fad.fa-bed-front:after { + content: "\f8f7\f8f7" +} + +.fa-duotone.fa-d:after, +.fad.fa-d:after { + content: "\44\44" +} + +.fa-duotone.fa-stapler:after, +.fad.fa-stapler:after { + content: "\e5af\e5af" +} + +.fa-duotone.fa-masks-theater:after, +.fa-duotone.fa-theater-masks:after, +.fad.fa-masks-theater:after, +.fad.fa-theater-masks:after { + content: "\f630\f630" +} + +.fa-duotone.fa-file-gif:after, +.fad.fa-file-gif:after { + content: "\e645\e645" +} + +.fa-duotone.fa-kip-sign:after, +.fad.fa-kip-sign:after { + content: "\e1c4\e1c4" +} + +.fa-duotone.fa-face-woozy:after, +.fad.fa-face-woozy:after { + content: "\e3a2\e3a2" +} + +.fa-duotone.fa-cloud-question:after, +.fad.fa-cloud-question:after { + content: "\e492\e492" +} + +.fa-duotone.fa-pineapple:after, +.fad.fa-pineapple:after { + content: "\e31f\e31f" +} + +.fa-duotone.fa-hand-point-left:after, +.fad.fa-hand-point-left:after { + content: "\f0a5\f0a5" +} + +.fa-duotone.fa-gallery-thumbnails:after, +.fad.fa-gallery-thumbnails:after { + content: "\e3aa\e3aa" +} + +.fa-duotone.fa-circle-j:after, +.fad.fa-circle-j:after { + content: "\e112\e112" +} + +.fa-duotone.fa-eyes:after, +.fad.fa-eyes:after { + content: "\e367\e367" +} + +.fa-duotone.fa-handshake-alt:after, +.fa-duotone.fa-handshake-simple:after, +.fad.fa-handshake-alt:after, +.fad.fa-handshake-simple:after { + content: "\f4c6\f4c6" +} + +.fa-duotone.fa-file-caret-up:after, +.fa-duotone.fa-page-caret-up:after, +.fad.fa-file-caret-up:after, +.fad.fa-page-caret-up:after { + content: "\e42a\e42a" +} + +.fa-duotone.fa-fighter-jet:after, +.fa-duotone.fa-jet-fighter:after, +.fad.fa-fighter-jet:after, +.fad.fa-jet-fighter:after { + content: "\f0fb\f0fb" +} + +.fa-duotone.fa-comet:after, +.fad.fa-comet:after { + content: "\e003\e003" +} + +.fa-duotone.fa-share-alt-square:after, +.fa-duotone.fa-square-share-nodes:after, +.fad.fa-share-alt-square:after, +.fad.fa-square-share-nodes:after { + content: "\f1e1\f1e1" +} + +.fa-duotone.fa-reflect-vertical:after, +.fad.fa-reflect-vertical:after { + content: "\e665\e665" +} + +.fa-duotone.fa-shield-keyhole:after, +.fad.fa-shield-keyhole:after { + content: "\e248\e248" +} + +.fa-duotone.fa-file-mp4:after, +.fad.fa-file-mp4:after { + content: "\e649\e649" +} + +.fa-duotone.fa-barcode:after, +.fad.fa-barcode:after { + content: "\f02a\f02a" +} + +.fa-duotone.fa-bulldozer:after, +.fad.fa-bulldozer:after { + content: "\e655\e655" +} + +.fa-duotone.fa-plus-minus:after, +.fad.fa-plus-minus:after { + content: "\e43c\e43c" +} + +.fa-duotone.fa-sliders-v-square:after, +.fa-duotone.fa-square-sliders-vertical:after, +.fad.fa-sliders-v-square:after, +.fad.fa-square-sliders-vertical:after { + content: "\f3f2\f3f2" +} + +.fa-duotone.fa-video-camera:after, +.fa-duotone.fa-video:after, +.fad.fa-video-camera:after, +.fad.fa-video:after { + content: "\f03d\f03d" +} + +.fa-duotone.fa-comment-middle-alt:after, +.fa-duotone.fa-message-middle:after, +.fad.fa-comment-middle-alt:after, +.fad.fa-message-middle:after { + content: "\e1e1\e1e1" +} + +.fa-duotone.fa-graduation-cap:after, +.fa-duotone.fa-mortar-board:after, +.fad.fa-graduation-cap:after, +.fad.fa-mortar-board:after { + content: "\f19d\f19d" +} + +.fa-duotone.fa-hand-holding-medical:after, +.fad.fa-hand-holding-medical:after { + content: "\e05c\e05c" +} + +.fa-duotone.fa-person-circle-check:after, +.fad.fa-person-circle-check:after { + content: "\e53e\e53e" +} + +.fa-duotone.fa-square-z:after, +.fad.fa-square-z:after { + content: "\e288\e288" +} + +.fa-duotone.fa-comment-alt-text:after, +.fa-duotone.fa-message-text:after, +.fad.fa-comment-alt-text:after, +.fad.fa-message-text:after { + content: "\e1e6\e1e6" +} + +.fa-duotone.fa-level-up-alt:after, +.fa-duotone.fa-turn-up:after, +.fad.fa-level-up-alt:after, +.fad.fa-turn-up:after { + content: "\f3bf\f3bf" +} + +:host, +:root { + --fa-font-light: normal 300 1em/1 "Font Awesome 6 Free" +} + +@font-face { + font-family: "Font Awesome 6 Free"; + font-style: normal; + font-weight: 300; + font-display: block; + src: url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-light-300.woff2) format("woff2"), url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-light-300.ttf) format("truetype") +} + +.fa-light, +.fal { + font-weight: 300 +} + +:host, +:root { + --fa-font-regular: normal 400 1em/1 "Font Awesome 6 Free" +} + +@font-face { + font-family: "Font Awesome 6 Free"; + font-style: normal; + font-weight: 400; + font-display: block; + src: url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-regular-400.woff2) format("woff2"), url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-regular-400.ttf) format("truetype") +} + +.fa-regular, +.far { + font-weight: 400 +} + +:host, +:root { + --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Free" +} + +@font-face { + font-family: "Font Awesome 6 Free"; + font-style: normal; + font-weight: 900; + font-display: block; + src: url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-solid-900.woff2) format("woff2"), url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-solid-900.ttf) format("truetype") +} + +.fa-solid, +.fas { + font-weight: 900 +} + +:host, +:root { + --fa-style-family-classic: "Font Awesome 6 Free"; + --fa-font-thin: normal 100 1em/1 "Font Awesome 6 Free" +} + +@font-face { + font-family: "Font Awesome 6 Free"; + font-style: normal; + font-weight: 100; + font-display: block; + src: url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-thin-100.woff2) format("woff2"), url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-thin-100.ttf) format("truetype") +} + +.fa-thin, +.fat { + font-weight: 100 +} + +@font-face { + font-family: "Font Awesome 5 Brands"; + font-display: block; + font-weight: 400; + src: url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-brands-400.woff2) format("woff2"), url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-brands-400.ttf) format("truetype") +} + +@font-face { + font-family: "Font Awesome 5 Pro"; + font-display: block; + font-weight: 900; + src: url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-solid-900.woff2) format("woff2"), url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-solid-900.ttf) format("truetype") +} + +@font-face { + font-family: "Font Awesome 5 Pro"; + font-display: block; + font-weight: 400; + src: url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-regular-400.woff2) format("woff2"), url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-regular-400.ttf) format("truetype") +} + +@font-face { + font-family: "Font Awesome 5 Pro"; + font-display: block; + font-weight: 300; + src: url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-light-300.woff2) format("woff2"), url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-light-300.ttf) format("truetype") +} + +@font-face { + font-family: "Font Awesome 5 Duotone"; + font-display: block; + font-weight: 900; + src: url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-duotone-900.woff2) format("woff2"), url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-duotone-900.ttf) format("truetype") +} + +@font-face { + font-family: "FontAwesome"; + font-display: block; + src: url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-solid-900.woff2) format("woff2"), url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-solid-900.ttf) format("truetype") +} + +@font-face { + font-family: "FontAwesome"; + font-display: block; + src: url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-brands-400.woff2) format("woff2"), url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-brands-400.ttf) format("truetype") +} + +@font-face { + font-family: "FontAwesome"; + font-display: block; + src: url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-regular-400.woff2) format("woff2"), url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-regular-400.ttf) format("truetype"); + unicode-range: u+f003, u+f006, u+f014, u+f016-f017, u+f01a-f01b, u+f01d, u+f022, u+f03e, u+f044, u+f046, u+f05c-f05d, u+f06e, u+f070, u+f087-f088, u+f08a, u+f094, u+f096-f097, u+f09d, u+f0a0, u+f0a2, u+f0a4-f0a7, u+f0c5, u+f0c7, u+f0e5-f0e6, u+f0eb, u+f0f6-f0f8, u+f10c, u+f114-f115, u+f118-f11a, u+f11c-f11d, u+f133, u+f147, u+f14e, u+f150-f152, u+f185-f186, u+f18e, u+f190-f192, u+f196, u+f1c1-f1c9, u+f1d9, u+f1db, u+f1e3, u+f1ea, u+f1f7, u+f1f9, u+f20a, u+f247-f248, u+f24a, u+f24d, u+f255-f25b, u+f25d, u+f271-f274, u+f278, u+f27b, u+f28c, u+f28e, u+f29c, u+f2b5, u+f2b7, u+f2ba, u+f2bc, u+f2be, u+f2c0-f2c1, u+f2c3, u+f2d0, u+f2d2, u+f2d4, u+f2dc +} + +@font-face { + font-family: "FontAwesome"; + font-display: block; + src: url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-v4compatibility.woff2) format("woff2"), url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-v4compatibility.ttf) format("truetype"); + unicode-range: u+f041, u+f047, u+f065-f066, u+f07d-f07e, u+f080, u+f08b, u+f08e, u+f090, u+f09a, u+f0ac, u+f0ae, u+f0b2, u+f0d0, u+f0d6, u+f0e4, u+f0ec, u+f10a-f10b, u+f123, u+f13e, u+f148-f149, u+f14c, u+f156, u+f15e, u+f160-f161, u+f163, u+f175-f178, u+f195, u+f1f8, u+f219, u+f27a +} \ No newline at end of file diff --git a/wp-content/themes/chromax/assets/vendors/css/all.min.css b/wp-content/themes/chromax/assets/vendors/css/all.min.css new file mode 100644 index 0000000..df16087 --- /dev/null +++ b/wp-content/themes/chromax/assets/vendors/css/all.min.css @@ -0,0 +1,6 @@ +/*! + * Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2023 Fonticons, Inc. + */ +.fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.fa,.fa-brands,.fa-classic,.fa-duotone,.fa-light,.fa-regular,.fa-sharp,.fa-sharp-solid,.fa-solid,.fa-thin,.fab,.fad,.fal,.far,.fas,.fasl,.fasr,.fass,.fast,.fat{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-classic,.fa-light,.fa-regular,.fa-solid,.fa-thin,.fal,.far,.fas,.fat{font-family:"Font Awesome 6 Free"}.fa-brands,.fab{font-family:"Font Awesome 6 Brands"}.fa-classic.fa-duotone,.fa-duotone,.fad{font-family:"Font Awesome 6 Duotone"}.fa-sharp,.fasl,.fasr,.fass,.fast{font-family:"Font Awesome 6 Sharp"}.fa-sharp,.fass{font-weight:900}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius,.1em);border:var(--fa-border-width,.08em) var(--fa-border-style,solid) var(--fa-border-color,#eee);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-duration:var(--fa-animation-duration,2s);animation-duration:var(--fa-animation-duration,2s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,steps(8));animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-transition-delay:0s;transition-delay:0s;-webkit-transition-duration:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle,none));transform:rotate(var(--fa-rotate-angle,none))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)}.fa-0:before{content:"\30"}.fa-1:before{content:"\31"}.fa-2:before{content:"\32"}.fa-3:before{content:"\33"}.fa-4:before{content:"\34"}.fa-5:before{content:"\35"}.fa-6:before{content:"\36"}.fa-7:before{content:"\37"}.fa-8:before{content:"\38"}.fa-9:before{content:"\39"}.fa-fill-drip:before{content:"\f576"}.fa-arrows-to-circle:before{content:"\e4bd"}.fa-chevron-circle-right:before,.fa-circle-chevron-right:before{content:"\f138"}.fa-wagon-covered:before{content:"\f8ee"}.fa-line-height:before{content:"\f871"}.fa-bagel:before{content:"\e3d7"}.fa-transporter-7:before{content:"\e2a8"}.fa-at:before{content:"\40"}.fa-rectangles-mixed:before{content:"\e323"}.fa-phone-arrow-up-right:before,.fa-phone-arrow-up:before,.fa-phone-outgoing:before{content:"\e224"}.fa-trash-alt:before,.fa-trash-can:before{content:"\f2ed"}.fa-circle-l:before{content:"\e114"}.fa-head-side-goggles:before,.fa-head-vr:before{content:"\f6ea"}.fa-text-height:before{content:"\f034"}.fa-user-times:before,.fa-user-xmark:before{content:"\f235"}.fa-face-hand-yawn:before{content:"\e379"}.fa-gauge-simple-min:before,.fa-tachometer-slowest:before{content:"\f62d"}.fa-stethoscope:before{content:"\f0f1"}.fa-coffin:before{content:"\f6c6"}.fa-comment-alt:before,.fa-message:before{content:"\f27a"}.fa-bowl-salad:before,.fa-salad:before{content:"\f81e"}.fa-info:before{content:"\f129"}.fa-robot-astromech:before{content:"\e2d2"}.fa-ring-diamond:before{content:"\e5ab"}.fa-fondue-pot:before{content:"\e40d"}.fa-theta:before{content:"\f69e"}.fa-face-hand-peeking:before{content:"\e481"}.fa-square-user:before{content:"\e283"}.fa-compress-alt:before,.fa-down-left-and-up-right-to-center:before{content:"\f422"}.fa-explosion:before{content:"\e4e9"}.fa-file-alt:before,.fa-file-lines:before,.fa-file-text:before{content:"\f15c"}.fa-wave-square:before{content:"\f83e"}.fa-ring:before{content:"\f70b"}.fa-building-un:before{content:"\e4d9"}.fa-dice-three:before{content:"\f527"}.fa-tire-pressure-warning:before{content:"\f633"}.fa-wifi-2:before,.fa-wifi-fair:before{content:"\f6ab"}.fa-calendar-alt:before,.fa-calendar-days:before{content:"\f073"}.fa-mp3-player:before{content:"\f8ce"}.fa-anchor-circle-check:before{content:"\e4aa"}.fa-tally-4:before{content:"\e297"}.fa-rectangle-history:before{content:"\e4a2"}.fa-building-circle-arrow-right:before{content:"\e4d1"}.fa-volleyball-ball:before,.fa-volleyball:before{content:"\f45f"}.fa-sun-haze:before{content:"\f765"}.fa-text-size:before{content:"\f894"}.fa-ufo:before{content:"\e047"}.fa-fork:before,.fa-utensil-fork:before{content:"\f2e3"}.fa-arrows-up-to-line:before{content:"\e4c2"}.fa-mobile-signal:before{content:"\e1ef"}.fa-barcode-scan:before{content:"\f465"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-folder-arrow-down:before,.fa-folder-download:before{content:"\e053"}.fa-circle-minus:before,.fa-minus-circle:before{content:"\f056"}.fa-face-icicles:before{content:"\e37c"}.fa-shovel:before{content:"\f713"}.fa-door-open:before{content:"\f52b"}.fa-films:before{content:"\e17a"}.fa-right-from-bracket:before,.fa-sign-out-alt:before{content:"\f2f5"}.fa-face-glasses:before{content:"\e377"}.fa-nfc:before{content:"\e1f7"}.fa-atom:before{content:"\f5d2"}.fa-soap:before{content:"\e06e"}.fa-heart-music-camera-bolt:before,.fa-icons:before{content:"\f86d"}.fa-microphone-alt-slash:before,.fa-microphone-lines-slash:before{content:"\f539"}.fa-closed-captioning-slash:before{content:"\e135"}.fa-calculator-alt:before,.fa-calculator-simple:before{content:"\f64c"}.fa-bridge-circle-check:before{content:"\e4c9"}.fa-sliders-up:before,.fa-sliders-v:before{content:"\f3f1"}.fa-location-minus:before,.fa-map-marker-minus:before{content:"\f609"}.fa-pump-medical:before{content:"\e06a"}.fa-fingerprint:before{content:"\f577"}.fa-ski-boot:before{content:"\e3cc"}.fa-rectangle-sd:before,.fa-standard-definition:before{content:"\e28a"}.fa-h1:before{content:"\f313"}.fa-hand-point-right:before{content:"\f0a4"}.fa-magnifying-glass-location:before,.fa-search-location:before{content:"\f689"}.fa-message-bot:before{content:"\e3b8"}.fa-forward-step:before,.fa-step-forward:before{content:"\f051"}.fa-face-smile-beam:before,.fa-smile-beam:before{content:"\f5b8"}.fa-light-ceiling:before{content:"\e016"}.fa-comment-alt-exclamation:before,.fa-message-exclamation:before{content:"\f4a5"}.fa-bowl-scoop:before,.fa-bowl-shaved-ice:before{content:"\e3de"}.fa-square-x:before{content:"\e286"}.fa-building-memo:before{content:"\e61e"}.fa-utility-pole-double:before{content:"\e2c4"}.fa-flag-checkered:before{content:"\f11e"}.fa-chevron-double-up:before,.fa-chevrons-up:before{content:"\f325"}.fa-football-ball:before,.fa-football:before{content:"\f44e"}.fa-user-vneck:before{content:"\e461"}.fa-school-circle-exclamation:before{content:"\e56c"}.fa-crop:before{content:"\f125"}.fa-angle-double-down:before,.fa-angles-down:before{content:"\f103"}.fa-users-rectangle:before{content:"\e594"}.fa-people-roof:before{content:"\e537"}.fa-arrow-square-right:before,.fa-square-arrow-right:before{content:"\f33b"}.fa-location-plus:before,.fa-map-marker-plus:before{content:"\f60a"}.fa-lightbulb-exclamation-on:before{content:"\e1ca"}.fa-people-line:before{content:"\e534"}.fa-beer-mug-empty:before,.fa-beer:before{content:"\f0fc"}.fa-crate-empty:before{content:"\e151"}.fa-diagram-predecessor:before{content:"\e477"}.fa-transporter:before{content:"\e042"}.fa-calendar-circle-user:before{content:"\e471"}.fa-arrow-up-long:before,.fa-long-arrow-up:before{content:"\f176"}.fa-person-carry-box:before,.fa-person-carry:before{content:"\f4cf"}.fa-burn:before,.fa-fire-flame-simple:before{content:"\f46a"}.fa-male:before,.fa-person:before{content:"\f183"}.fa-laptop:before{content:"\f109"}.fa-file-csv:before{content:"\f6dd"}.fa-menorah:before{content:"\f676"}.fa-union:before{content:"\f6a2"}.fa-chevron-double-left:before,.fa-chevrons-left:before{content:"\f323"}.fa-circle-heart:before,.fa-heart-circle:before{content:"\f4c7"}.fa-truck-plane:before{content:"\e58f"}.fa-record-vinyl:before{content:"\f8d9"}.fa-bring-forward:before{content:"\f856"}.fa-square-p:before{content:"\e279"}.fa-face-grin-stars:before,.fa-grin-stars:before{content:"\f587"}.fa-sigma:before{content:"\f68b"}.fa-camera-movie:before{content:"\f8a9"}.fa-bong:before{content:"\f55c"}.fa-clarinet:before{content:"\f8ad"}.fa-truck-flatbed:before{content:"\e2b6"}.fa-pastafarianism:before,.fa-spaghetti-monster-flying:before{content:"\f67b"}.fa-arrow-down-up-across-line:before{content:"\e4af"}.fa-arrows-rotate-reverse:before{content:"\e630"}.fa-leaf-heart:before{content:"\f4cb"}.fa-house-building:before{content:"\e1b1"}.fa-cheese-swiss:before{content:"\f7f0"}.fa-spoon:before,.fa-utensil-spoon:before{content:"\f2e5"}.fa-jar-wheat:before{content:"\e517"}.fa-envelopes-bulk:before,.fa-mail-bulk:before{content:"\f674"}.fa-file-circle-exclamation:before{content:"\e4eb"}.fa-bow-arrow:before{content:"\f6b9"}.fa-cart-xmark:before{content:"\e0dd"}.fa-hexagon-xmark:before,.fa-times-hexagon:before,.fa-xmark-hexagon:before{content:"\f2ee"}.fa-circle-h:before,.fa-hospital-symbol:before{content:"\f47e"}.fa-merge:before{content:"\e526"}.fa-pager:before{content:"\f815"}.fa-cart-minus:before{content:"\e0db"}.fa-address-book:before,.fa-contact-book:before{content:"\f2b9"}.fa-pan-frying:before{content:"\e42c"}.fa-grid-3:before,.fa-grid:before{content:"\e195"}.fa-football-helmet:before{content:"\f44f"}.fa-hand-love:before{content:"\e1a5"}.fa-trees:before{content:"\f724"}.fa-strikethrough:before{content:"\f0cc"}.fa-page:before{content:"\e428"}.fa-k:before{content:"\4b"}.fa-diagram-previous:before{content:"\e478"}.fa-gauge-min:before,.fa-tachometer-alt-slowest:before{content:"\f628"}.fa-folder-grid:before{content:"\e188"}.fa-eggplant:before{content:"\e16c"}.fa-excavator:before{content:"\e656"}.fa-ram:before{content:"\f70a"}.fa-landmark-flag:before{content:"\e51c"}.fa-lips:before{content:"\f600"}.fa-pencil-alt:before,.fa-pencil:before{content:"\f303"}.fa-backward:before{content:"\f04a"}.fa-caret-right:before{content:"\f0da"}.fa-comments:before{content:"\f086"}.fa-file-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-desktop-arrow-down:before{content:"\e155"}.fa-code-pull-request:before{content:"\e13c"}.fa-pumpkin:before{content:"\f707"}.fa-clipboard-list:before{content:"\f46d"}.fa-pen-field:before{content:"\e211"}.fa-blueberries:before{content:"\e2e8"}.fa-truck-loading:before,.fa-truck-ramp-box:before{content:"\f4de"}.fa-note:before{content:"\e1ff"}.fa-arrow-down-to-square:before{content:"\e096"}.fa-user-check:before{content:"\f4fc"}.fa-cloud-xmark:before{content:"\e35f"}.fa-vial-virus:before{content:"\e597"}.fa-book-alt:before,.fa-book-blank:before{content:"\f5d9"}.fa-golf-flag-hole:before{content:"\e3ac"}.fa-comment-alt-arrow-down:before,.fa-message-arrow-down:before{content:"\e1db"}.fa-face-unamused:before{content:"\e39f"}.fa-sheet-plastic:before{content:"\e571"}.fa-circle-9:before{content:"\e0f6"}.fa-blog:before{content:"\f781"}.fa-user-ninja:before{content:"\f504"}.fa-pencil-slash:before{content:"\e215"}.fa-bowling-pins:before{content:"\f437"}.fa-person-arrow-up-from-line:before{content:"\e539"}.fa-down-right:before{content:"\e16b"}.fa-scroll-torah:before,.fa-torah:before{content:"\f6a0"}.fa-webhook:before{content:"\e5d5"}.fa-blinds-open:before{content:"\f8fc"}.fa-fence:before{content:"\e303"}.fa-arrow-alt-up:before,.fa-up:before{content:"\f357"}.fa-broom-ball:before,.fa-quidditch-broom-ball:before,.fa-quidditch:before{content:"\f458"}.fa-drumstick:before{content:"\f6d6"}.fa-square-v:before{content:"\e284"}.fa-face-awesome:before,.fa-gave-dandy:before{content:"\e409"}.fa-dial-off:before{content:"\e162"}.fa-toggle-off:before{content:"\f204"}.fa-face-smile-horns:before{content:"\e391"}.fa-archive:before,.fa-box-archive:before{content:"\f187"}.fa-grapes:before{content:"\e306"}.fa-person-drowning:before{content:"\e545"}.fa-dial-max:before{content:"\e15e"}.fa-circle-m:before{content:"\e115"}.fa-calendar-image:before{content:"\e0d4"}.fa-caret-circle-down:before,.fa-circle-caret-down:before{content:"\f32d"}.fa-arrow-down-9-1:before,.fa-sort-numeric-desc:before,.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-face-grin-tongue-squint:before,.fa-grin-tongue-squint:before{content:"\f58a"}.fa-shish-kebab:before{content:"\f821"}.fa-spray-can:before{content:"\f5bd"}.fa-alarm-snooze:before{content:"\f845"}.fa-scarecrow:before{content:"\f70d"}.fa-truck-monster:before{content:"\f63b"}.fa-gift-card:before{content:"\f663"}.fa-w:before{content:"\57"}.fa-code-pull-request-draft:before{content:"\e3fa"}.fa-square-b:before{content:"\e264"}.fa-elephant:before{content:"\f6da"}.fa-earth-africa:before,.fa-globe-africa:before{content:"\f57c"}.fa-rainbow:before{content:"\f75b"}.fa-circle-notch:before{content:"\f1ce"}.fa-tablet-alt:before,.fa-tablet-screen-button:before{content:"\f3fa"}.fa-paw:before{content:"\f1b0"}.fa-message-question:before{content:"\e1e3"}.fa-cloud:before{content:"\f0c2"}.fa-trowel-bricks:before{content:"\e58a"}.fa-square-3:before{content:"\e258"}.fa-face-flushed:before,.fa-flushed:before{content:"\f579"}.fa-hospital-user:before{content:"\f80d"}.fa-microwave:before{content:"\e01b"}.fa-chf-sign:before{content:"\e602"}.fa-tent-arrow-left-right:before{content:"\e57f"}.fa-cart-circle-arrow-up:before{content:"\e3f0"}.fa-trash-clock:before{content:"\e2b0"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-sprinkler-ceiling:before{content:"\e44c"}.fa-browsers:before{content:"\e0cb"}.fa-trillium:before{content:"\e588"}.fa-music-slash:before{content:"\f8d1"}.fa-truck-ramp:before{content:"\f4e0"}.fa-binoculars:before{content:"\f1e5"}.fa-microphone-slash:before{content:"\f131"}.fa-box-tissue:before{content:"\e05b"}.fa-circle-c:before{content:"\e101"}.fa-star-christmas:before{content:"\f7d4"}.fa-chart-bullet:before{content:"\e0e1"}.fa-motorcycle:before{content:"\f21c"}.fa-tree-christmas:before{content:"\f7db"}.fa-tire-flat:before{content:"\f632"}.fa-sunglasses:before{content:"\f892"}.fa-badge:before{content:"\f335"}.fa-comment-alt-edit:before,.fa-message-edit:before,.fa-message-pen:before{content:"\f4a4"}.fa-bell-concierge:before,.fa-concierge-bell:before{content:"\f562"}.fa-pen-ruler:before,.fa-pencil-ruler:before{content:"\f5ae"}.fa-file-mp3:before{content:"\e648"}.fa-arrow-progress:before{content:"\e5df"}.fa-chess-rook-alt:before,.fa-chess-rook-piece:before{content:"\f448"}.fa-square-root:before{content:"\f697"}.fa-album-collection-circle-plus:before{content:"\e48e"}.fa-people-arrows-left-right:before,.fa-people-arrows:before{content:"\e068"}.fa-sign-post:before{content:"\e624"}.fa-face-angry-horns:before{content:"\e368"}.fa-mars-and-venus-burst:before{content:"\e523"}.fa-tombstone:before{content:"\f720"}.fa-caret-square-right:before,.fa-square-caret-right:before{content:"\f152"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-list-music:before{content:"\f8c9"}.fa-sun-plant-wilt:before{content:"\e57a"}.fa-toilets-portable:before{content:"\e584"}.fa-hockey-puck:before{content:"\f453"}.fa-mustache:before{content:"\e5bc"}.fa-hyphen:before{content:"\2d"}.fa-table:before{content:"\f0ce"}.fa-user-chef:before{content:"\e3d2"}.fa-comment-alt-image:before,.fa-message-image:before{content:"\e1e0"}.fa-users-medical:before{content:"\f830"}.fa-sensor-alert:before,.fa-sensor-triangle-exclamation:before{content:"\e029"}.fa-magnifying-glass-arrow-right:before{content:"\e521"}.fa-digital-tachograph:before,.fa-tachograph-digital:before{content:"\f566"}.fa-face-mask:before{content:"\e37f"}.fa-pickleball:before{content:"\e435"}.fa-star-sharp-half:before{content:"\e28c"}.fa-users-slash:before{content:"\e073"}.fa-clover:before{content:"\e139"}.fa-meat:before{content:"\f814"}.fa-mail-reply:before,.fa-reply:before{content:"\f3e5"}.fa-star-and-crescent:before{content:"\f699"}.fa-empty-set:before{content:"\f656"}.fa-house-fire:before{content:"\e50c"}.fa-minus-square:before,.fa-square-minus:before{content:"\f146"}.fa-helicopter:before{content:"\f533"}.fa-bird:before{content:"\e469"}.fa-compass:before{content:"\f14e"}.fa-caret-square-down:before,.fa-square-caret-down:before{content:"\f150"}.fa-heart-half-alt:before,.fa-heart-half-stroke:before{content:"\e1ac"}.fa-file-circle-question:before{content:"\e4ef"}.fa-truck-utensils:before{content:"\e628"}.fa-laptop-code:before{content:"\f5fc"}.fa-joystick:before{content:"\f8c5"}.fa-grill-fire:before{content:"\e5a4"}.fa-rectangle-vertical-history:before{content:"\e237"}.fa-swatchbook:before{content:"\f5c3"}.fa-prescription-bottle:before{content:"\f485"}.fa-bars:before,.fa-navicon:before{content:"\f0c9"}.fa-keyboard-left:before{content:"\e1c3"}.fa-people-group:before{content:"\e533"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-heart-broken:before,.fa-heart-crack:before{content:"\f7a9"}.fa-face-beam-hand-over-mouth:before{content:"\e47c"}.fa-droplet-percent:before,.fa-humidity:before{content:"\f750"}.fa-external-link-square-alt:before,.fa-square-up-right:before{content:"\f360"}.fa-face-kiss-beam:before,.fa-kiss-beam:before{content:"\f597"}.fa-corn:before{content:"\f6c7"}.fa-roller-coaster:before{content:"\e324"}.fa-photo-film-music:before{content:"\e228"}.fa-radar:before{content:"\e024"}.fa-sickle:before{content:"\f822"}.fa-film:before{content:"\f008"}.fa-coconut:before{content:"\e2f6"}.fa-ruler-horizontal:before{content:"\f547"}.fa-shield-cross:before{content:"\f712"}.fa-cassette-tape:before{content:"\f8ab"}.fa-square-terminal:before{content:"\e32a"}.fa-people-robbery:before{content:"\e536"}.fa-lightbulb:before{content:"\f0eb"}.fa-caret-left:before{content:"\f0d9"}.fa-comment-middle:before{content:"\e149"}.fa-trash-can-list:before{content:"\e2ab"}.fa-block:before{content:"\e46a"}.fa-circle-exclamation:before,.fa-exclamation-circle:before{content:"\f06a"}.fa-school-circle-xmark:before{content:"\e56d"}.fa-arrow-right-from-bracket:before,.fa-sign-out:before{content:"\f08b"}.fa-face-frown-slight:before{content:"\e376"}.fa-chevron-circle-down:before,.fa-circle-chevron-down:before{content:"\f13a"}.fa-sidebar-flip:before{content:"\e24f"}.fa-unlock-alt:before,.fa-unlock-keyhole:before{content:"\f13e"}.fa-temperature-list:before{content:"\e299"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-headphones-alt:before,.fa-headphones-simple:before{content:"\f58f"}.fa-sitemap:before{content:"\f0e8"}.fa-pipe-section:before{content:"\e438"}.fa-space-station-moon-alt:before,.fa-space-station-moon-construction:before{content:"\e034"}.fa-circle-dollar-to-slot:before,.fa-donate:before{content:"\f4b9"}.fa-memory:before{content:"\f538"}.fa-face-sleeping:before{content:"\e38d"}.fa-road-spikes:before{content:"\e568"}.fa-fire-burner:before{content:"\e4f1"}.fa-squirrel:before{content:"\f71a"}.fa-arrow-to-top:before,.fa-arrow-up-to-line:before{content:"\f341"}.fa-flag:before{content:"\f024"}.fa-face-cowboy-hat:before{content:"\e36e"}.fa-hanukiah:before{content:"\f6e6"}.fa-chart-scatter-3d:before{content:"\e0e8"}.fa-display-chart-up:before{content:"\e5e3"}.fa-square-code:before{content:"\e267"}.fa-feather:before{content:"\f52d"}.fa-volume-down:before,.fa-volume-low:before{content:"\f027"}.fa-times-to-slot:before,.fa-vote-nay:before,.fa-xmark-to-slot:before{content:"\f771"}.fa-box-alt:before,.fa-box-taped:before{content:"\f49a"}.fa-comment-slash:before{content:"\f4b3"}.fa-swords:before{content:"\f71d"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-album:before{content:"\f89f"}.fa-circle-n:before{content:"\e118"}.fa-compress:before{content:"\f066"}.fa-wheat-alt:before,.fa-wheat-awn:before{content:"\e2cd"}.fa-ankh:before{content:"\f644"}.fa-hands-holding-child:before{content:"\e4fa"}.fa-asterisk:before{content:"\2a"}.fa-key-skeleton-left-right:before{content:"\e3b4"}.fa-comment-lines:before{content:"\f4b0"}.fa-luchador-mask:before,.fa-luchador:before,.fa-mask-luchador:before{content:"\f455"}.fa-check-square:before,.fa-square-check:before{content:"\f14a"}.fa-shredder:before{content:"\f68a"}.fa-book-open-alt:before,.fa-book-open-cover:before{content:"\e0c0"}.fa-sandwich:before{content:"\f81f"}.fa-peseta-sign:before{content:"\e221"}.fa-parking-slash:before,.fa-square-parking-slash:before{content:"\f617"}.fa-train-tunnel:before{content:"\e454"}.fa-header:before,.fa-heading:before{content:"\f1dc"}.fa-ghost:before{content:"\f6e2"}.fa-face-anguished:before{content:"\e369"}.fa-hockey-sticks:before{content:"\f454"}.fa-abacus:before{content:"\f640"}.fa-film-alt:before,.fa-film-simple:before{content:"\f3a0"}.fa-list-squares:before,.fa-list:before{content:"\f03a"}.fa-tree-palm:before{content:"\f82b"}.fa-phone-square-alt:before,.fa-square-phone-flip:before{content:"\f87b"}.fa-cart-plus:before{content:"\f217"}.fa-gamepad:before{content:"\f11b"}.fa-border-center-v:before{content:"\f89d"}.fa-circle-dot:before,.fa-dot-circle:before{content:"\f192"}.fa-clipboard-medical:before{content:"\e133"}.fa-dizzy:before,.fa-face-dizzy:before{content:"\f567"}.fa-egg:before{content:"\f7fb"}.fa-arrow-alt-to-top:before,.fa-up-to-line:before{content:"\f34d"}.fa-house-medical-circle-xmark:before{content:"\e513"}.fa-watch-fitness:before{content:"\f63e"}.fa-clock-nine-thirty:before{content:"\e34d"}.fa-campground:before{content:"\f6bb"}.fa-folder-plus:before{content:"\f65e"}.fa-jug:before{content:"\f8c6"}.fa-futbol-ball:before,.fa-futbol:before,.fa-soccer-ball:before{content:"\f1e3"}.fa-snow-blowing:before{content:"\f761"}.fa-paint-brush:before,.fa-paintbrush:before{content:"\f1fc"}.fa-lock:before{content:"\f023"}.fa-arrow-down-from-line:before,.fa-arrow-from-top:before{content:"\f345"}.fa-gas-pump:before{content:"\f52f"}.fa-signal-alt-slash:before,.fa-signal-bars-slash:before{content:"\f694"}.fa-monkey:before{content:"\f6fb"}.fa-pro:before,.fa-rectangle-pro:before{content:"\e235"}.fa-house-night:before{content:"\e010"}.fa-hot-tub-person:before,.fa-hot-tub:before{content:"\f593"}.fa-globe-pointer:before{content:"\e60e"}.fa-blanket:before{content:"\f498"}.fa-map-location:before,.fa-map-marked:before{content:"\f59f"}.fa-house-flood-water:before{content:"\e50e"}.fa-comments-question-check:before{content:"\e14f"}.fa-tree:before{content:"\f1bb"}.fa-arrows-cross:before{content:"\e0a2"}.fa-backpack:before{content:"\f5d4"}.fa-square-small:before{content:"\e27e"}.fa-folder-arrow-up:before,.fa-folder-upload:before{content:"\e054"}.fa-bridge-lock:before{content:"\e4cc"}.fa-crosshairs-simple:before{content:"\e59f"}.fa-sack-dollar:before{content:"\f81d"}.fa-edit:before,.fa-pen-to-square:before{content:"\f044"}.fa-sliders-h-square:before,.fa-square-sliders:before{content:"\f3f0"}.fa-car-side:before{content:"\f5e4"}.fa-comment-middle-top-alt:before,.fa-message-middle-top:before{content:"\e1e2"}.fa-lightbulb-on:before{content:"\f672"}.fa-knife:before,.fa-utensil-knife:before{content:"\f2e4"}.fa-share-alt:before,.fa-share-nodes:before{content:"\f1e0"}.fa-display-chart-up-circle-dollar:before{content:"\e5e6"}.fa-wave-sine:before{content:"\f899"}.fa-heart-circle-minus:before{content:"\e4ff"}.fa-circle-w:before{content:"\e12c"}.fa-calendar-circle:before,.fa-circle-calendar:before{content:"\e102"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-microscope:before{content:"\f610"}.fa-sunset:before{content:"\f767"}.fa-sink:before{content:"\e06d"}.fa-calendar-exclamation:before{content:"\f334"}.fa-truck-container-empty:before{content:"\e2b5"}.fa-hand-heart:before{content:"\f4bc"}.fa-bag-shopping:before,.fa-shopping-bag:before{content:"\f290"}.fa-arrow-down-z-a:before,.fa-sort-alpha-desc:before,.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-mitten:before{content:"\f7b5"}.fa-reply-clock:before,.fa-reply-time:before{content:"\e239"}.fa-person-rays:before{content:"\e54d"}.fa-arrow-alt-right:before,.fa-right:before{content:"\f356"}.fa-circle-f:before{content:"\e10e"}.fa-users:before{content:"\f0c0"}.fa-face-pleading:before{content:"\e386"}.fa-eye-slash:before{content:"\f070"}.fa-flask-vial:before{content:"\e4f3"}.fa-police-box:before{content:"\e021"}.fa-cucumber:before{content:"\e401"}.fa-head-side-brain:before{content:"\f808"}.fa-hand-paper:before,.fa-hand:before{content:"\f256"}.fa-biking-mountain:before,.fa-person-biking-mountain:before{content:"\f84b"}.fa-utensils-slash:before{content:"\e464"}.fa-print-magnifying-glass:before,.fa-print-search:before{content:"\f81a"}.fa-turn-right:before{content:"\e639"}.fa-folder-bookmark:before{content:"\e186"}.fa-arrow-turn-left-down:before{content:"\e633"}.fa-om:before{content:"\f679"}.fa-pi:before{content:"\f67e"}.fa-flask-potion:before,.fa-flask-round-potion:before{content:"\f6e1"}.fa-face-shush:before{content:"\e38c"}.fa-worm:before{content:"\e599"}.fa-house-circle-xmark:before{content:"\e50b"}.fa-plug:before{content:"\f1e6"}.fa-calendar-circle-exclamation:before{content:"\e46e"}.fa-square-i:before{content:"\e272"}.fa-chevron-up:before{content:"\f077"}.fa-face-saluting:before{content:"\e484"}.fa-gauge-simple-low:before,.fa-tachometer-slow:before{content:"\f62c"}.fa-face-persevering:before{content:"\e385"}.fa-camera-circle:before,.fa-circle-camera:before{content:"\e103"}.fa-hand-spock:before{content:"\f259"}.fa-spider-web:before{content:"\f719"}.fa-circle-microphone:before,.fa-microphone-circle:before{content:"\e116"}.fa-book-arrow-up:before{content:"\e0ba"}.fa-popsicle:before{content:"\e43e"}.fa-command:before{content:"\e142"}.fa-blinds:before{content:"\f8fb"}.fa-stopwatch:before{content:"\f2f2"}.fa-saxophone:before{content:"\f8dc"}.fa-square-2:before{content:"\e257"}.fa-field-hockey-stick-ball:before,.fa-field-hockey:before{content:"\f44c"}.fa-arrow-up-square-triangle:before,.fa-sort-shapes-up-alt:before{content:"\f88b"}.fa-face-scream:before{content:"\e38b"}.fa-square-m:before{content:"\e276"}.fa-camera-web:before,.fa-webcam:before{content:"\f832"}.fa-comment-arrow-down:before{content:"\e143"}.fa-lightbulb-cfl:before{content:"\e5a6"}.fa-window-frame-open:before{content:"\e050"}.fa-face-kiss:before,.fa-kiss:before{content:"\f596"}.fa-bridge-circle-xmark:before{content:"\e4cb"}.fa-period:before{content:"\2e"}.fa-face-grin-tongue:before,.fa-grin-tongue:before{content:"\f589"}.fa-up-to-dotted-line:before{content:"\e457"}.fa-thought-bubble:before{content:"\e32e"}.fa-skeleton-ribs:before{content:"\e5cb"}.fa-raygun:before{content:"\e025"}.fa-flute:before{content:"\f8b9"}.fa-acorn:before{content:"\f6ae"}.fa-video-arrow-up-right:before{content:"\e2c9"}.fa-grate-droplet:before{content:"\e194"}.fa-seal-exclamation:before{content:"\e242"}.fa-chess-bishop:before{content:"\f43a"}.fa-message-sms:before{content:"\e1e5"}.fa-coffee-beans:before{content:"\e13f"}.fa-hat-witch:before{content:"\f6e7"}.fa-face-grin-wink:before,.fa-grin-wink:before{content:"\f58c"}.fa-clock-three-thirty:before{content:"\e357"}.fa-deaf:before,.fa-deafness:before,.fa-ear-deaf:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-alarm-clock:before{content:"\f34e"}.fa-eclipse:before{content:"\f749"}.fa-face-relieved:before{content:"\e389"}.fa-road-circle-check:before{content:"\e564"}.fa-dice-five:before{content:"\f523"}.fa-minus-octagon:before,.fa-octagon-minus:before{content:"\f308"}.fa-rss-square:before,.fa-square-rss:before{content:"\f143"}.fa-face-zany:before{content:"\e3a4"}.fa-tricycle:before{content:"\e5c3"}.fa-land-mine-on:before{content:"\e51b"}.fa-square-arrow-up-left:before{content:"\e263"}.fa-i-cursor:before{content:"\f246"}.fa-chart-mixed-up-circle-dollar:before{content:"\e5d9"}.fa-salt-shaker:before{content:"\e446"}.fa-stamp:before{content:"\f5bf"}.fa-file-plus:before{content:"\f319"}.fa-draw-square:before{content:"\f5ef"}.fa-toilet-paper-reverse-slash:before,.fa-toilet-paper-under-slash:before{content:"\e2a1"}.fa-stairs:before{content:"\e289"}.fa-drone-alt:before,.fa-drone-front:before{content:"\f860"}.fa-glass-empty:before{content:"\e191"}.fa-dial-high:before{content:"\e15c"}.fa-user-construction:before,.fa-user-hard-hat:before,.fa-user-helmet-safety:before{content:"\f82c"}.fa-i:before{content:"\49"}.fa-hryvnia-sign:before,.fa-hryvnia:before{content:"\f6f2"}.fa-arrow-down-left-and-arrow-up-right-to-center:before{content:"\e092"}.fa-pills:before{content:"\f484"}.fa-face-grin-wide:before,.fa-grin-alt:before{content:"\f581"}.fa-tooth:before{content:"\f5c9"}.fa-basketball-hoop:before{content:"\f435"}.fa-objects-align-bottom:before{content:"\e3bb"}.fa-v:before{content:"\56"}.fa-sparkles:before{content:"\f890"}.fa-squid:before{content:"\e450"}.fa-leafy-green:before{content:"\e41d"}.fa-circle-arrow-up-right:before{content:"\e0fc"}.fa-calendars:before{content:"\e0d7"}.fa-bangladeshi-taka-sign:before{content:"\e2e6"}.fa-bicycle:before{content:"\f206"}.fa-hammer-war:before{content:"\f6e4"}.fa-circle-d:before{content:"\e104"}.fa-spider-black-widow:before{content:"\f718"}.fa-rod-asclepius:before,.fa-rod-snake:before,.fa-staff-aesculapius:before,.fa-staff-snake:before{content:"\e579"}.fa-pear:before{content:"\e20c"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-file-mov:before{content:"\e647"}.fa-triangle:before{content:"\f2ec"}.fa-apartment:before{content:"\e468"}.fa-ambulance:before,.fa-truck-medical:before{content:"\f0f9"}.fa-pepper:before{content:"\e432"}.fa-piano:before{content:"\f8d4"}.fa-gun-squirt:before{content:"\e19d"}.fa-wheat-awn-circle-exclamation:before{content:"\e598"}.fa-snowman:before{content:"\f7d0"}.fa-user-alien:before{content:"\e04a"}.fa-shield-check:before{content:"\f2f7"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-road-barrier:before{content:"\e562"}.fa-chart-candlestick:before{content:"\e0e2"}.fa-briefcase-blank:before{content:"\e0c8"}.fa-school:before{content:"\f549"}.fa-igloo:before{content:"\f7ae"}.fa-bracket-round:before,.fa-parenthesis:before{content:"\28"}.fa-joint:before{content:"\f595"}.fa-horse-saddle:before{content:"\f8c3"}.fa-mug-marshmallows:before{content:"\f7b7"}.fa-filters:before{content:"\e17e"}.fa-bell-on:before{content:"\f8fa"}.fa-angle-right:before{content:"\f105"}.fa-dial-med:before{content:"\e15f"}.fa-horse:before{content:"\f6f0"}.fa-q:before{content:"\51"}.fa-monitor-heart-rate:before,.fa-monitor-waveform:before{content:"\f611"}.fa-link-simple:before{content:"\e1cd"}.fa-whistle:before{content:"\f460"}.fa-g:before{content:"\47"}.fa-fragile:before,.fa-wine-glass-crack:before{content:"\f4bb"}.fa-slot-machine:before{content:"\e3ce"}.fa-notes-medical:before{content:"\f481"}.fa-car-wash:before{content:"\f5e6"}.fa-escalator:before{content:"\e171"}.fa-comment-image:before{content:"\e148"}.fa-temperature-2:before,.fa-temperature-half:before,.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-dong-sign:before{content:"\e169"}.fa-donut:before,.fa-doughnut:before{content:"\e406"}.fa-capsules:before{content:"\f46b"}.fa-poo-bolt:before,.fa-poo-storm:before{content:"\f75a"}.fa-tally-1:before{content:"\e294"}.fa-file-vector:before{content:"\e64c"}.fa-face-frown-open:before,.fa-frown-open:before{content:"\f57a"}.fa-square-dashed:before{content:"\e269"}.fa-bag-shopping-plus:before{content:"\e651"}.fa-square-j:before{content:"\e273"}.fa-hand-point-up:before{content:"\f0a6"}.fa-money-bill:before{content:"\f0d6"}.fa-arrow-up-big-small:before,.fa-sort-size-up:before{content:"\f88e"}.fa-barcode-read:before{content:"\f464"}.fa-baguette:before{content:"\e3d8"}.fa-bowl-soft-serve:before{content:"\e46b"}.fa-face-holding-back-tears:before{content:"\e482"}.fa-arrow-alt-square-up:before,.fa-square-up:before{content:"\f353"}.fa-subway-tunnel:before,.fa-train-subway-tunnel:before{content:"\e2a3"}.fa-exclamation-square:before,.fa-square-exclamation:before{content:"\f321"}.fa-semicolon:before{content:"\3b"}.fa-bookmark:before{content:"\f02e"}.fa-fan-table:before{content:"\e004"}.fa-align-justify:before{content:"\f039"}.fa-battery-1:before,.fa-battery-low:before{content:"\e0b1"}.fa-credit-card-front:before{content:"\f38a"}.fa-brain-arrow-curved-right:before,.fa-mind-share:before{content:"\f677"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-helmet-un:before{content:"\e503"}.fa-location-smile:before,.fa-map-marker-smile:before{content:"\f60d"}.fa-arrow-left-to-line:before,.fa-arrow-to-left:before{content:"\f33e"}.fa-bullseye:before{content:"\f140"}.fa-nigiri:before,.fa-sushi:before{content:"\e48a"}.fa-comment-alt-captions:before,.fa-message-captions:before{content:"\e1de"}.fa-trash-list:before{content:"\e2b1"}.fa-bacon:before{content:"\f7e5"}.fa-option:before{content:"\e318"}.fa-raccoon:before{content:"\e613"}.fa-hand-point-down:before{content:"\f0a7"}.fa-arrow-up-from-bracket:before{content:"\e09a"}.fa-head-side-gear:before{content:"\e611"}.fa-trash-plus:before{content:"\e2b2"}.fa-objects-align-top:before{content:"\e3c0"}.fa-folder-blank:before,.fa-folder:before{content:"\f07b"}.fa-face-anxious-sweat:before{content:"\e36a"}.fa-credit-card-blank:before{content:"\f389"}.fa-file-medical-alt:before,.fa-file-waveform:before{content:"\f478"}.fa-microchip-ai:before{content:"\e1ec"}.fa-mug:before{content:"\f874"}.fa-plane-up-slash:before{content:"\e22e"}.fa-radiation:before{content:"\f7b9"}.fa-pen-circle:before{content:"\e20e"}.fa-bag-seedling:before{content:"\e5f2"}.fa-chart-simple:before{content:"\e473"}.fa-crutches:before{content:"\f7f8"}.fa-circle-parking:before,.fa-parking-circle:before{content:"\f615"}.fa-mars-stroke:before{content:"\f229"}.fa-leaf-oak:before{content:"\f6f7"}.fa-square-bolt:before{content:"\e265"}.fa-vial:before{content:"\f492"}.fa-dashboard:before,.fa-gauge-med:before,.fa-gauge:before,.fa-tachometer-alt-average:before{content:"\f624"}.fa-magic-wand-sparkles:before,.fa-wand-magic-sparkles:before{content:"\e2ca"}.fa-lambda:before{content:"\f66e"}.fa-e:before{content:"\45"}.fa-pizza:before{content:"\f817"}.fa-bowl-chopsticks-noodles:before{content:"\e2ea"}.fa-h3:before{content:"\f315"}.fa-pen-alt:before,.fa-pen-clip:before{content:"\f305"}.fa-bridge-circle-exclamation:before{content:"\e4ca"}.fa-badge-percent:before{content:"\f646"}.fa-rotate-reverse:before{content:"\e631"}.fa-user:before{content:"\f007"}.fa-sensor:before{content:"\e028"}.fa-comma:before{content:"\2c"}.fa-school-circle-check:before{content:"\e56b"}.fa-toilet-paper-reverse:before,.fa-toilet-paper-under:before{content:"\e2a0"}.fa-light-emergency:before{content:"\e41f"}.fa-arrow-down-to-arc:before{content:"\e4ae"}.fa-dumpster:before{content:"\f793"}.fa-shuttle-van:before,.fa-van-shuttle:before{content:"\f5b6"}.fa-building-user:before{content:"\e4da"}.fa-light-switch:before{content:"\e017"}.fa-caret-square-left:before,.fa-square-caret-left:before{content:"\f191"}.fa-highlighter:before{content:"\f591"}.fa-heart-rate:before,.fa-wave-pulse:before{content:"\f5f8"}.fa-key:before{content:"\f084"}.fa-hat-santa:before{content:"\f7a7"}.fa-tamale:before{content:"\e451"}.fa-box-check:before{content:"\f467"}.fa-bullhorn:before{content:"\f0a1"}.fa-steak:before{content:"\f824"}.fa-location-crosshairs-slash:before,.fa-location-slash:before{content:"\f603"}.fa-person-dolly:before{content:"\f4d0"}.fa-globe:before{content:"\f0ac"}.fa-synagogue:before{content:"\f69b"}.fa-file-chart-column:before,.fa-file-chart-line:before{content:"\f659"}.fa-person-half-dress:before{content:"\e548"}.fa-folder-image:before{content:"\e18a"}.fa-calendar-edit:before,.fa-calendar-pen:before{content:"\f333"}.fa-road-bridge:before{content:"\e563"}.fa-face-smile-tear:before{content:"\e393"}.fa-comment-alt-plus:before,.fa-message-plus:before{content:"\f4a8"}.fa-location-arrow:before{content:"\f124"}.fa-c:before{content:"\43"}.fa-tablet-button:before{content:"\f10a"}.fa-person-dress-fairy:before{content:"\e607"}.fa-rectangle-history-circle-user:before{content:"\e4a4"}.fa-building-lock:before{content:"\e4d6"}.fa-chart-line-up:before{content:"\e0e5"}.fa-mailbox:before{content:"\f813"}.fa-sign-posts:before{content:"\e625"}.fa-truck-bolt:before{content:"\e3d0"}.fa-pizza-slice:before{content:"\f818"}.fa-money-bill-wave:before{content:"\f53a"}.fa-area-chart:before,.fa-chart-area:before{content:"\f1fe"}.fa-house-flag:before{content:"\e50d"}.fa-circle-three-quarters-stroke:before{content:"\e5d4"}.fa-person-circle-minus:before{content:"\e540"}.fa-scalpel:before{content:"\f61d"}.fa-ban:before,.fa-cancel:before{content:"\f05e"}.fa-bell-exclamation:before{content:"\f848"}.fa-bookmark-circle:before,.fa-circle-bookmark:before{content:"\e100"}.fa-egg-fried:before{content:"\f7fc"}.fa-face-weary:before{content:"\e3a1"}.fa-uniform-martial-arts:before{content:"\e3d1"}.fa-camera-rotate:before{content:"\e0d8"}.fa-sun-dust:before{content:"\f764"}.fa-comment-text:before{content:"\e14d"}.fa-air-freshener:before,.fa-spray-can-sparkles:before{content:"\f5d0"}.fa-signal-alt-4:before,.fa-signal-alt:before,.fa-signal-bars-strong:before,.fa-signal-bars:before{content:"\f690"}.fa-diamond-exclamation:before{content:"\e405"}.fa-star:before{content:"\f005"}.fa-dial-min:before{content:"\e161"}.fa-repeat:before{content:"\f363"}.fa-cross:before{content:"\f654"}.fa-file-caret-down:before,.fa-page-caret-down:before{content:"\e429"}.fa-box:before{content:"\f466"}.fa-venus-mars:before{content:"\f228"}.fa-clock-seven-thirty:before{content:"\e351"}.fa-arrow-pointer:before,.fa-mouse-pointer:before{content:"\f245"}.fa-clock-four-thirty:before{content:"\e34b"}.fa-signal-alt-3:before,.fa-signal-bars-good:before{content:"\f693"}.fa-cactus:before{content:"\f8a7"}.fa-lightbulb-gear:before{content:"\e5fd"}.fa-expand-arrows-alt:before,.fa-maximize:before{content:"\f31e"}.fa-charging-station:before{content:"\f5e7"}.fa-shapes:before,.fa-triangle-circle-square:before{content:"\f61f"}.fa-plane-tail:before{content:"\e22c"}.fa-gauge-simple-max:before,.fa-tachometer-fastest:before{content:"\f62b"}.fa-circle-u:before{content:"\e127"}.fa-shield-slash:before{content:"\e24b"}.fa-phone-square-down:before,.fa-square-phone-hangup:before{content:"\e27a"}.fa-arrow-up-left:before{content:"\e09d"}.fa-transporter-1:before{content:"\e043"}.fa-peanuts:before{content:"\e431"}.fa-random:before,.fa-shuffle:before{content:"\f074"}.fa-person-running:before,.fa-running:before{content:"\f70c"}.fa-mobile-retro:before{content:"\e527"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-bin-bottles-recycle:before{content:"\e5f6"}.fa-arrow-up-from-square:before{content:"\e09c"}.fa-file-dashed-line:before,.fa-page-break:before{content:"\f877"}.fa-bracket-curly-right:before{content:"\7d"}.fa-spider:before{content:"\f717"}.fa-clock-three:before{content:"\e356"}.fa-hands-bound:before{content:"\e4f9"}.fa-scalpel-line-dashed:before,.fa-scalpel-path:before{content:"\f61e"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-pipe-smoking:before{content:"\e3c4"}.fa-face-astonished:before{content:"\e36b"}.fa-window:before{content:"\f40e"}.fa-plane-circle-exclamation:before{content:"\e556"}.fa-ear:before{content:"\f5f0"}.fa-file-lock:before{content:"\e3a6"}.fa-diagram-venn:before{content:"\e15a"}.fa-x-ray:before{content:"\f497"}.fa-goal-net:before{content:"\e3ab"}.fa-coffin-cross:before{content:"\e051"}.fa-spell-check:before{content:"\f891"}.fa-location-xmark:before,.fa-map-marker-times:before,.fa-map-marker-xmark:before{content:"\f60e"}.fa-circle-quarter-stroke:before{content:"\e5d3"}.fa-lasso:before{content:"\f8c8"}.fa-slash:before{content:"\f715"}.fa-person-to-portal:before,.fa-portal-enter:before{content:"\e022"}.fa-calendar-star:before{content:"\f736"}.fa-computer-mouse:before,.fa-mouse:before{content:"\f8cc"}.fa-arrow-right-to-bracket:before,.fa-sign-in:before{content:"\f090"}.fa-pegasus:before{content:"\f703"}.fa-files-medical:before{content:"\f7fd"}.fa-cannon:before{content:"\e642"}.fa-nfc-lock:before{content:"\e1f8"}.fa-person-ski-lift:before,.fa-ski-lift:before{content:"\f7c8"}.fa-square-6:before{content:"\e25b"}.fa-shop-slash:before,.fa-store-alt-slash:before{content:"\e070"}.fa-wind-turbine:before{content:"\f89b"}.fa-sliders-simple:before{content:"\e253"}.fa-grid-round:before{content:"\e5da"}.fa-badge-sheriff:before{content:"\f8a2"}.fa-server:before{content:"\f233"}.fa-virus-covid-slash:before{content:"\e4a9"}.fa-intersection:before{content:"\f668"}.fa-shop-lock:before{content:"\e4a5"}.fa-family:before{content:"\e300"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-user-hair-buns:before{content:"\e3d3"}.fa-blender-phone:before{content:"\f6b6"}.fa-hourglass-clock:before{content:"\e41b"}.fa-person-seat-reclined:before{content:"\e21f"}.fa-paper-plane-alt:before,.fa-paper-plane-top:before,.fa-send:before{content:"\e20a"}.fa-comment-alt-arrow-up:before,.fa-message-arrow-up:before{content:"\e1dc"}.fa-lightbulb-exclamation:before{content:"\f671"}.fa-layer-group-minus:before,.fa-layer-minus:before{content:"\f5fe"}.fa-chart-pie-simple-circle-currency:before{content:"\e604"}.fa-circle-e:before{content:"\e109"}.fa-building-wheat:before{content:"\e4db"}.fa-gauge-max:before,.fa-tachometer-alt-fastest:before{content:"\f626"}.fa-person-breastfeeding:before{content:"\e53a"}.fa-apostrophe:before{content:"\27"}.fa-file-png:before{content:"\e666"}.fa-fire-hydrant:before{content:"\e17f"}.fa-right-to-bracket:before,.fa-sign-in-alt:before{content:"\f2f6"}.fa-video-plus:before{content:"\f4e1"}.fa-arrow-alt-square-right:before,.fa-square-right:before{content:"\f352"}.fa-comment-smile:before{content:"\f4b4"}.fa-venus:before{content:"\f221"}.fa-passport:before{content:"\f5ab"}.fa-inbox-arrow-down:before,.fa-inbox-in:before{content:"\f310"}.fa-heart-pulse:before,.fa-heartbeat:before{content:"\f21e"}.fa-circle-8:before{content:"\e0f5"}.fa-clouds-moon:before{content:"\f745"}.fa-clock-ten-thirty:before{content:"\e355"}.fa-people-carry-box:before,.fa-people-carry:before{content:"\f4ce"}.fa-folder-user:before{content:"\e18e"}.fa-trash-can-xmark:before{content:"\e2ae"}.fa-temperature-high:before{content:"\f769"}.fa-microchip:before{content:"\f2db"}.fa-left-long-to-line:before{content:"\e41e"}.fa-crown:before{content:"\f521"}.fa-weight-hanging:before{content:"\f5cd"}.fa-xmarks-lines:before{content:"\e59a"}.fa-file-prescription:before{content:"\f572"}.fa-calendar-range:before{content:"\e0d6"}.fa-flower-daffodil:before{content:"\f800"}.fa-hand-back-point-up:before{content:"\e1a2"}.fa-weight-scale:before,.fa-weight:before{content:"\f496"}.fa-arrow-up-to-arc:before{content:"\e617"}.fa-star-exclamation:before{content:"\f2f3"}.fa-books:before{content:"\f5db"}.fa-user-friends:before,.fa-user-group:before{content:"\f500"}.fa-arrow-up-a-z:before,.fa-sort-alpha-up:before{content:"\f15e"}.fa-layer-group-plus:before,.fa-layer-plus:before{content:"\f5ff"}.fa-play-pause:before{content:"\e22f"}.fa-block-question:before{content:"\e3dd"}.fa-snooze:before,.fa-zzz:before{content:"\f880"}.fa-scanner-image:before{content:"\f8f3"}.fa-tv-retro:before{content:"\f401"}.fa-square-t:before{content:"\e280"}.fa-barn-silo:before,.fa-farm:before{content:"\f864"}.fa-chess-knight:before{content:"\f441"}.fa-bars-sort:before{content:"\e0ae"}.fa-palette-boxes:before,.fa-pallet-alt:before,.fa-pallet-boxes:before{content:"\f483"}.fa-face-laugh-squint:before,.fa-laugh-squint:before{content:"\f59b"}.fa-code-simple:before{content:"\e13d"}.fa-bolt-slash:before{content:"\e0b8"}.fa-panel-fire:before{content:"\e42f"}.fa-binary-circle-check:before{content:"\e33c"}.fa-comment-minus:before{content:"\f4b1"}.fa-burrito:before{content:"\f7ed"}.fa-violin:before{content:"\f8ed"}.fa-objects-column:before{content:"\e3c1"}.fa-chevron-square-down:before,.fa-square-chevron-down:before{content:"\f329"}.fa-comment-plus:before{content:"\f4b2"}.fa-triangle-instrument:before,.fa-triangle-music:before{content:"\f8e2"}.fa-wheelchair:before{content:"\f193"}.fa-user-pilot-tie:before{content:"\e2c1"}.fa-piano-keyboard:before{content:"\f8d5"}.fa-bed-empty:before{content:"\f8f9"}.fa-arrow-circle-up:before,.fa-circle-arrow-up:before{content:"\f0aa"}.fa-toggle-on:before{content:"\f205"}.fa-rectangle-portrait:before,.fa-rectangle-vertical:before{content:"\f2fb"}.fa-person-walking:before,.fa-walking:before{content:"\f554"}.fa-l:before{content:"\4c"}.fa-signal-stream:before{content:"\f8dd"}.fa-down-to-bracket:before{content:"\e4e7"}.fa-circle-z:before{content:"\e130"}.fa-stars:before{content:"\f762"}.fa-fire:before{content:"\f06d"}.fa-bed-pulse:before,.fa-procedures:before{content:"\f487"}.fa-house-day:before{content:"\e00e"}.fa-shuttle-space:before,.fa-space-shuttle:before{content:"\f197"}.fa-shirt-long-sleeve:before{content:"\e3c7"}.fa-chart-pie-alt:before,.fa-chart-pie-simple:before{content:"\f64e"}.fa-face-laugh:before,.fa-laugh:before{content:"\f599"}.fa-folder-open:before{content:"\f07c"}.fa-album-collection-circle-user:before{content:"\e48f"}.fa-candy:before{content:"\e3e7"}.fa-bowl-hot:before,.fa-soup:before{content:"\f823"}.fa-flatbread:before{content:"\e40b"}.fa-heart-circle-plus:before{content:"\e500"}.fa-code-fork:before{content:"\e13b"}.fa-city:before{content:"\f64f"}.fa-signal-alt-1:before,.fa-signal-bars-weak:before{content:"\f691"}.fa-microphone-alt:before,.fa-microphone-lines:before{content:"\f3c9"}.fa-clock-twelve:before{content:"\e358"}.fa-pepper-hot:before{content:"\f816"}.fa-citrus-slice:before{content:"\e2f5"}.fa-sheep:before{content:"\f711"}.fa-unlock:before{content:"\f09c"}.fa-colon-sign:before{content:"\e140"}.fa-headset:before{content:"\f590"}.fa-badger-honey:before{content:"\f6b4"}.fa-h4:before{content:"\f86a"}.fa-store-slash:before{content:"\e071"}.fa-road-circle-xmark:before{content:"\e566"}.fa-signal-slash:before{content:"\f695"}.fa-user-minus:before{content:"\f503"}.fa-mars-stroke-up:before,.fa-mars-stroke-v:before{content:"\f22a"}.fa-champagne-glasses:before,.fa-glass-cheers:before{content:"\f79f"}.fa-taco:before{content:"\f826"}.fa-hexagon-plus:before,.fa-plus-hexagon:before{content:"\f300"}.fa-clipboard:before{content:"\f328"}.fa-house-circle-exclamation:before{content:"\e50a"}.fa-file-arrow-up:before,.fa-file-upload:before{content:"\f574"}.fa-wifi-3:before,.fa-wifi-strong:before,.fa-wifi:before{content:"\f1eb"}.fa-comments-alt:before,.fa-messages:before{content:"\f4b6"}.fa-bath:before,.fa-bathtub:before{content:"\f2cd"}.fa-umbrella-alt:before,.fa-umbrella-simple:before{content:"\e2bc"}.fa-rectangle-history-circle-plus:before{content:"\e4a3"}.fa-underline:before{content:"\f0cd"}.fa-prescription-bottle-pill:before{content:"\e5c0"}.fa-user-edit:before,.fa-user-pen:before{content:"\f4ff"}.fa-binary-slash:before{content:"\e33e"}.fa-square-o:before{content:"\e278"}.fa-signature:before{content:"\f5b7"}.fa-stroopwafel:before{content:"\f551"}.fa-bold:before{content:"\f032"}.fa-anchor-lock:before{content:"\e4ad"}.fa-building-ngo:before{content:"\e4d7"}.fa-transporter-3:before{content:"\e045"}.fa-engine-exclamation:before,.fa-engine-warning:before{content:"\f5f2"}.fa-circle-down-right:before{content:"\e108"}.fa-square-k:before{content:"\e274"}.fa-manat-sign:before{content:"\e1d5"}.fa-money-check-edit:before,.fa-money-check-pen:before{content:"\f872"}.fa-not-equal:before{content:"\f53e"}.fa-border-style:before,.fa-border-top-left:before{content:"\f853"}.fa-map-location-dot:before,.fa-map-marked-alt:before{content:"\f5a0"}.fa-tilde:before{content:"\7e"}.fa-jedi:before{content:"\f669"}.fa-poll:before,.fa-square-poll-vertical:before{content:"\f681"}.fa-arrow-down-square-triangle:before,.fa-sort-shapes-down-alt:before{content:"\f889"}.fa-mug-hot:before{content:"\f7b6"}.fa-dog-leashed:before{content:"\f6d4"}.fa-battery-car:before,.fa-car-battery:before{content:"\f5df"}.fa-face-downcast-sweat:before{content:"\e371"}.fa-mailbox-flag-up:before{content:"\e5bb"}.fa-memo-circle-info:before{content:"\e49a"}.fa-gift:before{content:"\f06b"}.fa-dice-two:before{content:"\f528"}.fa-volume-medium:before,.fa-volume:before{content:"\f6a8"}.fa-transporter-5:before{content:"\e2a6"}.fa-gauge-circle-bolt:before{content:"\e496"}.fa-coin-front:before{content:"\e3fc"}.fa-file-slash:before{content:"\e3a7"}.fa-message-arrow-up-right:before{content:"\e1dd"}.fa-treasure-chest:before{content:"\f723"}.fa-chess-queen:before{content:"\f445"}.fa-paint-brush-alt:before,.fa-paint-brush-fine:before,.fa-paintbrush-alt:before,.fa-paintbrush-fine:before{content:"\f5a9"}.fa-glasses:before{content:"\f530"}.fa-hood-cloak:before{content:"\f6ef"}.fa-square-quote:before{content:"\e329"}.fa-up-left:before{content:"\e2bd"}.fa-bring-front:before{content:"\f857"}.fa-chess-board:before{content:"\f43c"}.fa-burger-cheese:before,.fa-cheeseburger:before{content:"\f7f1"}.fa-building-circle-check:before{content:"\e4d2"}.fa-repeat-1:before{content:"\f365"}.fa-arrow-down-to-line:before,.fa-arrow-to-bottom:before{content:"\f33d"}.fa-grid-5:before{content:"\e199"}.fa-swap-arrows:before{content:"\e60a"}.fa-right-long-to-line:before{content:"\e444"}.fa-person-chalkboard:before{content:"\e53d"}.fa-mars-stroke-h:before,.fa-mars-stroke-right:before{content:"\f22b"}.fa-hand-back-fist:before,.fa-hand-rock:before{content:"\f255"}.fa-grid-round-5:before{content:"\e5de"}.fa-tally-5:before,.fa-tally:before{content:"\f69c"}.fa-caret-square-up:before,.fa-square-caret-up:before{content:"\f151"}.fa-cloud-showers-water:before{content:"\e4e4"}.fa-bar-chart:before,.fa-chart-bar:before{content:"\f080"}.fa-hands-bubbles:before,.fa-hands-wash:before{content:"\e05e"}.fa-less-than-equal:before{content:"\f537"}.fa-train:before{content:"\f238"}.fa-up-from-dotted-line:before{content:"\e456"}.fa-eye-low-vision:before,.fa-low-vision:before{content:"\f2a8"}.fa-traffic-light-go:before{content:"\f638"}.fa-face-exhaling:before{content:"\e480"}.fa-sensor-fire:before{content:"\e02a"}.fa-user-unlock:before{content:"\e058"}.fa-hexagon-divide:before{content:"\e1ad"}.fa-00:before{content:"\e467"}.fa-crow:before{content:"\f520"}.fa-betamax:before,.fa-cassette-betamax:before{content:"\f8a4"}.fa-sailboat:before{content:"\e445"}.fa-window-restore:before{content:"\f2d2"}.fa-nfc-magnifying-glass:before{content:"\e1f9"}.fa-file-binary:before{content:"\e175"}.fa-circle-v:before{content:"\e12a"}.fa-plus-square:before,.fa-square-plus:before{content:"\f0fe"}.fa-bowl-scoops:before{content:"\e3df"}.fa-mistletoe:before{content:"\f7b4"}.fa-custard:before{content:"\e403"}.fa-lacrosse-stick:before{content:"\e3b5"}.fa-hockey-mask:before{content:"\f6ee"}.fa-sunrise:before{content:"\f766"}.fa-subtitles:before{content:"\e60f"}.fa-panel-ews:before{content:"\e42e"}.fa-torii-gate:before{content:"\f6a1"}.fa-cloud-exclamation:before{content:"\e491"}.fa-comment-alt-lines:before,.fa-message-lines:before{content:"\f4a6"}.fa-frog:before{content:"\f52e"}.fa-bucket:before{content:"\e4cf"}.fa-floppy-disk-pen:before{content:"\e182"}.fa-image:before{content:"\f03e"}.fa-window-frame:before{content:"\e04f"}.fa-microphone:before{content:"\f130"}.fa-cow:before{content:"\f6c8"}.fa-file-zip:before{content:"\e5ee"}.fa-square-ring:before{content:"\e44f"}.fa-arrow-alt-from-top:before,.fa-down-from-line:before{content:"\f349"}.fa-caret-up:before{content:"\f0d8"}.fa-shield-times:before,.fa-shield-xmark:before{content:"\e24c"}.fa-screwdriver:before{content:"\f54a"}.fa-circle-sort-down:before,.fa-sort-circle-down:before{content:"\e031"}.fa-folder-closed:before{content:"\e185"}.fa-house-tsunami:before{content:"\e515"}.fa-square-nfi:before{content:"\e576"}.fa-forklift:before{content:"\f47a"}.fa-arrow-up-from-ground-water:before{content:"\e4b5"}.fa-bracket-square-right:before{content:"\5d"}.fa-glass-martini-alt:before,.fa-martini-glass:before{content:"\f57b"}.fa-rotate-back:before,.fa-rotate-backward:before,.fa-rotate-left:before,.fa-undo-alt:before{content:"\f2ea"}.fa-columns:before,.fa-table-columns:before{content:"\f0db"}.fa-square-a:before{content:"\e25f"}.fa-tick:before{content:"\e32f"}.fa-lemon:before{content:"\f094"}.fa-head-side-mask:before{content:"\e063"}.fa-handshake:before{content:"\f2b5"}.fa-gem:before{content:"\f3a5"}.fa-dolly-box:before,.fa-dolly:before{content:"\f472"}.fa-smoking:before{content:"\f48d"}.fa-compress-arrows-alt:before,.fa-minimize:before{content:"\f78c"}.fa-refrigerator:before{content:"\e026"}.fa-monument:before{content:"\f5a6"}.fa-octagon-xmark:before,.fa-times-octagon:before,.fa-xmark-octagon:before{content:"\f2f0"}.fa-align-slash:before{content:"\f846"}.fa-snowplow:before{content:"\f7d2"}.fa-angle-double-right:before,.fa-angles-right:before{content:"\f101"}.fa-truck-couch:before,.fa-truck-ramp-couch:before{content:"\f4dd"}.fa-cannabis:before{content:"\f55f"}.fa-circle-play:before,.fa-play-circle:before{content:"\f144"}.fa-arrow-up-right-and-arrow-down-left-from-center:before{content:"\e0a0"}.fa-location-arrow-up:before{content:"\e63a"}.fa-tablets:before{content:"\f490"}.fa-360-degrees:before{content:"\e2dc"}.fa-ethernet:before{content:"\f796"}.fa-eur:before,.fa-euro-sign:before,.fa-euro:before{content:"\f153"}.fa-chair:before{content:"\f6c0"}.fa-check-circle:before,.fa-circle-check:before{content:"\f058"}.fa-square-dashed-circle-plus:before{content:"\e5c2"}.fa-hand-holding-circle-dollar:before{content:"\e621"}.fa-money-simple-from-bracket:before{content:"\e313"}.fa-bat:before{content:"\f6b5"}.fa-circle-stop:before,.fa-stop-circle:before{content:"\f28d"}.fa-head-side-headphones:before{content:"\f8c2"}.fa-phone-rotary:before{content:"\f8d3"}.fa-compass-drafting:before,.fa-drafting-compass:before{content:"\f568"}.fa-plate-wheat:before{content:"\e55a"}.fa-calendar-circle-minus:before{content:"\e46f"}.fa-chopsticks:before{content:"\e3f7"}.fa-car-mechanic:before,.fa-car-wrench:before{content:"\f5e3"}.fa-icicles:before{content:"\f7ad"}.fa-person-shelter:before{content:"\e54f"}.fa-neuter:before{content:"\f22c"}.fa-id-badge:before{content:"\f2c1"}.fa-kazoo:before{content:"\f8c7"}.fa-marker:before{content:"\f5a1"}.fa-bin-bottles:before{content:"\e5f5"}.fa-face-laugh-beam:before,.fa-laugh-beam:before{content:"\f59a"}.fa-square-arrow-down-left:before{content:"\e261"}.fa-battery-bolt:before{content:"\f376"}.fa-tree-large:before{content:"\f7dd"}.fa-helicopter-symbol:before{content:"\e502"}.fa-aperture:before{content:"\e2df"}.fa-universal-access:before{content:"\f29a"}.fa-gear-complex:before{content:"\e5e9"}.fa-file-magnifying-glass:before,.fa-file-search:before{content:"\f865"}.fa-up-right:before{content:"\e2be"}.fa-chevron-circle-up:before,.fa-circle-chevron-up:before{content:"\f139"}.fa-user-police:before{content:"\e333"}.fa-lari-sign:before{content:"\e1c8"}.fa-volcano:before{content:"\f770"}.fa-teddy-bear:before{content:"\e3cf"}.fa-stocking:before{content:"\f7d5"}.fa-person-walking-dashed-line-arrow-right:before{content:"\e553"}.fa-image-slash:before{content:"\e1b7"}.fa-mask-snorkel:before{content:"\e3b7"}.fa-smoke:before{content:"\f760"}.fa-gbp:before,.fa-pound-sign:before,.fa-sterling-sign:before{content:"\f154"}.fa-battery-exclamation:before{content:"\e0b0"}.fa-viruses:before{content:"\e076"}.fa-square-person-confined:before{content:"\e577"}.fa-user-tie:before{content:"\f508"}.fa-arrow-down-long:before,.fa-long-arrow-down:before{content:"\f175"}.fa-tent-arrow-down-to-line:before{content:"\e57e"}.fa-certificate:before{content:"\f0a3"}.fa-crystal-ball:before{content:"\e362"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-suitcase:before{content:"\f0f2"}.fa-person-skating:before,.fa-skating:before{content:"\f7c5"}.fa-star-shooting:before{content:"\e036"}.fa-binary-lock:before{content:"\e33d"}.fa-filter-circle-dollar:before,.fa-funnel-dollar:before{content:"\f662"}.fa-camera-retro:before{content:"\f083"}.fa-arrow-circle-down:before,.fa-circle-arrow-down:before{content:"\f0ab"}.fa-comment-edit:before,.fa-comment-pen:before{content:"\f4ae"}.fa-arrow-right-to-file:before,.fa-file-import:before{content:"\f56f"}.fa-banjo:before{content:"\f8a3"}.fa-external-link-square:before,.fa-square-arrow-up-right:before{content:"\f14c"}.fa-light-emergency-on:before{content:"\e420"}.fa-kerning:before{content:"\f86f"}.fa-box-open:before{content:"\f49e"}.fa-square-f:before{content:"\e270"}.fa-scroll:before{content:"\f70e"}.fa-spa:before{content:"\f5bb"}.fa-arrow-from-right:before,.fa-arrow-left-from-line:before{content:"\f344"}.fa-strawberry:before{content:"\e32b"}.fa-location-pin-lock:before{content:"\e51f"}.fa-pause:before{content:"\f04c"}.fa-clock-eight-thirty:before{content:"\e346"}.fa-plane-alt:before,.fa-plane-engines:before{content:"\f3de"}.fa-hill-avalanche:before{content:"\e507"}.fa-temperature-0:before,.fa-temperature-empty:before,.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-bomb:before{content:"\f1e2"}.fa-gauge-low:before,.fa-tachometer-alt-slow:before{content:"\f627"}.fa-registered:before{content:"\f25d"}.fa-trash-can-plus:before{content:"\e2ac"}.fa-address-card:before,.fa-contact-card:before,.fa-vcard:before{content:"\f2bb"}.fa-balance-scale-right:before,.fa-scale-unbalanced-flip:before{content:"\f516"}.fa-globe-snow:before{content:"\f7a3"}.fa-subscript:before{content:"\f12c"}.fa-diamond-turn-right:before,.fa-directions:before{content:"\f5eb"}.fa-integral:before{content:"\f667"}.fa-burst:before{content:"\e4dc"}.fa-house-laptop:before,.fa-laptop-house:before{content:"\e066"}.fa-face-tired:before,.fa-tired:before{content:"\f5c8"}.fa-money-bills:before{content:"\e1f3"}.fa-blinds-raised:before{content:"\f8fd"}.fa-smog:before{content:"\f75f"}.fa-ufo-beam:before{content:"\e048"}.fa-caret-circle-up:before,.fa-circle-caret-up:before{content:"\f331"}.fa-user-vneck-hair-long:before{content:"\e463"}.fa-square-a-lock:before{content:"\e44d"}.fa-crutch:before{content:"\f7f7"}.fa-gas-pump-slash:before{content:"\f5f4"}.fa-cloud-arrow-up:before,.fa-cloud-upload-alt:before,.fa-cloud-upload:before{content:"\f0ee"}.fa-palette:before{content:"\f53f"}.fa-transporter-4:before{content:"\e2a5"}.fa-chart-mixed-up-circle-currency:before{content:"\e5d8"}.fa-objects-align-right:before{content:"\e3bf"}.fa-arrows-turn-right:before{content:"\e4c0"}.fa-vest:before{content:"\e085"}.fa-pig:before{content:"\f706"}.fa-inbox-full:before{content:"\e1ba"}.fa-circle-envelope:before,.fa-envelope-circle:before{content:"\e10c"}.fa-construction:before,.fa-triangle-person-digging:before{content:"\f85d"}.fa-ferry:before{content:"\e4ea"}.fa-bullseye-arrow:before{content:"\f648"}.fa-arrows-down-to-people:before{content:"\e4b9"}.fa-seedling:before,.fa-sprout:before{content:"\f4d8"}.fa-clock-seven:before{content:"\e350"}.fa-arrows-alt-h:before,.fa-left-right:before{content:"\f337"}.fa-boxes-packing:before{content:"\e4c7"}.fa-arrow-circle-left:before,.fa-circle-arrow-left:before{content:"\f0a8"}.fa-flashlight:before{content:"\f8b8"}.fa-file-jpg:before{content:"\e646"}.fa-group-arrows-rotate:before{content:"\e4f6"}.fa-bowl-food:before{content:"\e4c6"}.fa-square-9:before{content:"\e25e"}.fa-candy-cane:before{content:"\f786"}.fa-arrow-down-wide-short:before,.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:"\f160"}.fa-dollar-square:before,.fa-square-dollar:before,.fa-usd-square:before{content:"\f2e9"}.fa-phone-arrow-right:before{content:"\e5be"}.fa-hand-holding-seedling:before{content:"\f4bf"}.fa-comment-alt-check:before,.fa-message-check:before{content:"\f4a2"}.fa-cloud-bolt:before,.fa-thunderstorm:before{content:"\f76c"}.fa-chart-line-up-down:before{content:"\e5d7"}.fa-remove-format:before,.fa-text-slash:before{content:"\f87d"}.fa-watch:before{content:"\f2e1"}.fa-circle-down-left:before{content:"\e107"}.fa-text:before{content:"\f893"}.fa-projector:before{content:"\f8d6"}.fa-face-smile-wink:before,.fa-smile-wink:before{content:"\f4da"}.fa-tombstone-alt:before,.fa-tombstone-blank:before{content:"\f721"}.fa-chess-king-alt:before,.fa-chess-king-piece:before{content:"\f440"}.fa-circle-6:before{content:"\e0f3"}.fa-waves-sine:before{content:"\e65d"}.fa-arrow-alt-left:before,.fa-left:before{content:"\f355"}.fa-file-word:before{content:"\f1c2"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-arrow-alt-square-down:before,.fa-square-down:before{content:"\f350"}.fa-objects-align-center-vertical:before{content:"\e3bd"}.fa-arrows-h:before,.fa-arrows-left-right:before{content:"\f07e"}.fa-house-lock:before{content:"\e510"}.fa-cloud-arrow-down:before,.fa-cloud-download-alt:before,.fa-cloud-download:before{content:"\f0ed"}.fa-wreath:before{content:"\f7e2"}.fa-children:before{content:"\e4e1"}.fa-meter-droplet:before{content:"\e1ea"}.fa-blackboard:before,.fa-chalkboard:before{content:"\f51b"}.fa-user-alt-slash:before,.fa-user-large-slash:before{content:"\f4fa"}.fa-signal-4:before,.fa-signal-strong:before{content:"\f68f"}.fa-lollipop:before,.fa-lollypop:before{content:"\e424"}.fa-list-tree:before{content:"\e1d2"}.fa-envelope-open:before{content:"\f2b6"}.fa-draw-circle:before{content:"\f5ed"}.fa-cat-space:before{content:"\e001"}.fa-handshake-alt-slash:before,.fa-handshake-simple-slash:before{content:"\e05f"}.fa-rabbit-fast:before,.fa-rabbit-running:before{content:"\f709"}.fa-memo-pad:before{content:"\e1da"}.fa-mattress-pillow:before{content:"\e525"}.fa-alarm-plus:before{content:"\f844"}.fa-alicorn:before{content:"\f6b0"}.fa-comment-question:before{content:"\e14b"}.fa-gingerbread-man:before{content:"\f79d"}.fa-guarani-sign:before{content:"\e19a"}.fa-burger-fries:before{content:"\e0cd"}.fa-mug-tea:before{content:"\f875"}.fa-border-top:before{content:"\f855"}.fa-arrows-rotate:before,.fa-refresh:before,.fa-sync:before{content:"\f021"}.fa-book-circle:before,.fa-circle-book-open:before{content:"\e0ff"}.fa-arrows-to-dotted-line:before{content:"\e0a6"}.fa-fire-extinguisher:before{content:"\f134"}.fa-magnifying-glass-arrows-rotate:before{content:"\e65e"}.fa-garage-open:before{content:"\e00b"}.fa-shelves-empty:before{content:"\e246"}.fa-cruzeiro-sign:before{content:"\e152"}.fa-watch-apple:before{content:"\e2cb"}.fa-watch-calculator:before{content:"\f8f0"}.fa-list-dropdown:before{content:"\e1cf"}.fa-cabinet-filing:before{content:"\f64b"}.fa-burger-soda:before{content:"\f858"}.fa-arrow-square-up:before,.fa-square-arrow-up:before{content:"\f33c"}.fa-greater-than-equal:before{content:"\f532"}.fa-pallet-box:before{content:"\e208"}.fa-face-confounded:before{content:"\e36c"}.fa-shield-alt:before,.fa-shield-halved:before{content:"\f3ed"}.fa-truck-plow:before{content:"\f7de"}.fa-atlas:before,.fa-book-atlas:before{content:"\f558"}.fa-virus:before{content:"\e074"}.fa-grid-round-2:before{content:"\e5db"}.fa-comment-middle-top:before{content:"\e14a"}.fa-wave:before{content:"\e65b"}.fa-envelope-circle-check:before{content:"\e4e8"}.fa-layer-group:before{content:"\f5fd"}.fa-restroom-simple:before{content:"\e23a"}.fa-arrows-to-dot:before{content:"\e4be"}.fa-border-outer:before{content:"\f851"}.fa-hashtag-lock:before{content:"\e415"}.fa-clock-two-thirty:before{content:"\e35b"}.fa-archway:before{content:"\f557"}.fa-heart-circle-check:before{content:"\e4fd"}.fa-house-chimney-crack:before,.fa-house-damage:before{content:"\f6f1"}.fa-file-archive:before,.fa-file-zipper:before{content:"\f1c6"}.fa-ticket-perforated:before{content:"\e63e"}.fa-heart-half:before{content:"\e1ab"}.fa-comment-check:before{content:"\f4ac"}.fa-square:before{content:"\f0c8"}.fa-memo:before{content:"\e1d8"}.fa-glass-martini:before,.fa-martini-glass-empty:before{content:"\f000"}.fa-couch:before{content:"\f4b8"}.fa-cedi-sign:before{content:"\e0df"}.fa-italic:before{content:"\f033"}.fa-glass-citrus:before{content:"\f869"}.fa-calendar-lines-pen:before{content:"\e472"}.fa-church:before{content:"\f51d"}.fa-person-snowmobiling:before,.fa-snowmobile:before{content:"\f7d1"}.fa-face-hushed:before{content:"\e37b"}.fa-comments-dollar:before{content:"\f653"}.fa-tickets-simple:before{content:"\e659"}.fa-pickaxe:before{content:"\e5bf"}.fa-link-simple-slash:before{content:"\e1ce"}.fa-democrat:before{content:"\f747"}.fa-face-confused:before{content:"\e36d"}.fa-pinball:before{content:"\e229"}.fa-z:before{content:"\5a"}.fa-person-skiing:before,.fa-skiing:before{content:"\f7c9"}.fa-deer:before{content:"\f78e"}.fa-input-pipe:before{content:"\e1be"}.fa-road-lock:before{content:"\e567"}.fa-a:before{content:"\41"}.fa-bookmark-slash:before{content:"\e0c2"}.fa-temperature-arrow-down:before,.fa-temperature-down:before{content:"\e03f"}.fa-mace:before{content:"\f6f8"}.fa-feather-alt:before,.fa-feather-pointed:before{content:"\f56b"}.fa-sausage:before{content:"\f820"}.fa-trash-can-clock:before{content:"\e2aa"}.fa-p:before{content:"\50"}.fa-broom-wide:before{content:"\e5d1"}.fa-snowflake:before{content:"\f2dc"}.fa-stomach:before{content:"\f623"}.fa-newspaper:before{content:"\f1ea"}.fa-ad:before,.fa-rectangle-ad:before{content:"\f641"}.fa-guitar-electric:before{content:"\f8be"}.fa-arrow-turn-down-right:before{content:"\e3d6"}.fa-moon-cloud:before{content:"\f754"}.fa-bread-slice-butter:before{content:"\e3e1"}.fa-arrow-circle-right:before,.fa-circle-arrow-right:before{content:"\f0a9"}.fa-user-group-crown:before,.fa-users-crown:before{content:"\f6a5"}.fa-circle-i:before{content:"\e111"}.fa-toilet-paper-check:before{content:"\e5b2"}.fa-filter-circle-xmark:before{content:"\e17b"}.fa-locust:before{content:"\e520"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-list-1-2:before,.fa-list-numeric:before,.fa-list-ol:before{content:"\f0cb"}.fa-chart-waterfall:before{content:"\e0eb"}.fa-sparkle:before{content:"\e5d6"}.fa-face-party:before{content:"\e383"}.fa-kidneys:before{content:"\f5fb"}.fa-wifi-exclamation:before{content:"\e2cf"}.fa-chart-network:before{content:"\f78a"}.fa-person-dress-burst:before{content:"\e544"}.fa-dice-d4:before{content:"\f6d0"}.fa-money-check-alt:before,.fa-money-check-dollar:before{content:"\f53d"}.fa-vector-square:before{content:"\f5cb"}.fa-bread-slice:before{content:"\f7ec"}.fa-language:before{content:"\f1ab"}.fa-wheat-awn-slash:before{content:"\e338"}.fa-face-kiss-wink-heart:before,.fa-kiss-wink-heart:before{content:"\f598"}.fa-dagger:before{content:"\f6cb"}.fa-podium:before{content:"\f680"}.fa-memo-circle-check:before{content:"\e1d9"}.fa-route-highway:before{content:"\f61a"}.fa-arrow-alt-to-bottom:before,.fa-down-to-line:before{content:"\f34a"}.fa-filter:before{content:"\f0b0"}.fa-square-g:before{content:"\e271"}.fa-circle-phone:before,.fa-phone-circle:before{content:"\e11b"}.fa-clipboard-prescription:before{content:"\f5e8"}.fa-user-nurse-hair:before{content:"\e45d"}.fa-question:before{content:"\3f"}.fa-file-signature:before{content:"\f573"}.fa-toggle-large-on:before{content:"\e5b1"}.fa-arrows-alt:before,.fa-up-down-left-right:before{content:"\f0b2"}.fa-dryer-alt:before,.fa-dryer-heat:before{content:"\f862"}.fa-house-chimney-user:before{content:"\e065"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-arrow-up-small-big:before,.fa-sort-size-up-alt:before{content:"\f88f"}.fa-train-track:before{content:"\e453"}.fa-puzzle-piece:before{content:"\f12e"}.fa-money-check:before{content:"\f53c"}.fa-star-half-alt:before,.fa-star-half-stroke:before{content:"\f5c0"}.fa-file-exclamation:before{content:"\f31a"}.fa-code:before{content:"\f121"}.fa-glass-whiskey:before,.fa-whiskey-glass:before{content:"\f7a0"}.fa-moon-stars:before{content:"\f755"}.fa-building-circle-exclamation:before{content:"\e4d3"}.fa-clothes-hanger:before{content:"\e136"}.fa-mobile-iphone:before,.fa-mobile-notch:before{content:"\e1ee"}.fa-magnifying-glass-chart:before{content:"\e522"}.fa-arrow-up-right-from-square:before,.fa-external-link:before{content:"\f08e"}.fa-cubes-stacked:before{content:"\e4e6"}.fa-images-user:before{content:"\e1b9"}.fa-krw:before,.fa-won-sign:before,.fa-won:before{content:"\f159"}.fa-image-polaroid-user:before{content:"\e1b6"}.fa-virus-covid:before{content:"\e4a8"}.fa-square-ellipsis:before{content:"\e26e"}.fa-pie:before{content:"\f705"}.fa-chess-knight-alt:before,.fa-chess-knight-piece:before{content:"\f442"}.fa-austral-sign:before{content:"\e0a9"}.fa-cloud-plus:before{content:"\e35e"}.fa-f:before{content:"\46"}.fa-leaf:before{content:"\f06c"}.fa-bed-bunk:before{content:"\f8f8"}.fa-road:before{content:"\f018"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-person-circle-plus:before{content:"\e541"}.fa-chart-pie:before,.fa-pie-chart:before{content:"\f200"}.fa-bolt-lightning:before{content:"\e0b7"}.fa-clock-eight:before{content:"\e345"}.fa-sack-xmark:before{content:"\e56a"}.fa-file-xls:before{content:"\e64d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-contract:before{content:"\f56c"}.fa-fish-fins:before{content:"\e4f2"}.fa-circle-q:before{content:"\e11e"}.fa-building-flag:before{content:"\e4d5"}.fa-face-grin-beam:before,.fa-grin-beam:before{content:"\f582"}.fa-object-ungroup:before{content:"\f248"}.fa-face-disguise:before{content:"\e370"}.fa-circle-arrow-down-right:before{content:"\e0fa"}.fa-alien-8bit:before,.fa-alien-monster:before{content:"\f8f6"}.fa-hand-point-ribbon:before{content:"\e1a6"}.fa-poop:before{content:"\f619"}.fa-object-exclude:before{content:"\e49c"}.fa-telescope:before{content:"\e03e"}.fa-location-pin:before,.fa-map-marker:before{content:"\f041"}.fa-square-list:before{content:"\e489"}.fa-kaaba:before{content:"\f66b"}.fa-toilet-paper:before{content:"\f71e"}.fa-hard-hat:before,.fa-hat-hard:before,.fa-helmet-safety:before{content:"\f807"}.fa-comment-code:before{content:"\e147"}.fa-sim-cards:before{content:"\e251"}.fa-starship:before{content:"\e039"}.fa-eject:before{content:"\f052"}.fa-arrow-alt-circle-right:before,.fa-circle-right:before{content:"\f35a"}.fa-plane-circle-check:before{content:"\e555"}.fa-seal:before{content:"\e241"}.fa-user-cowboy:before{content:"\f8ea"}.fa-hexagon-vertical-nft:before{content:"\e505"}.fa-face-rolling-eyes:before,.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-bread-loaf:before{content:"\f7eb"}.fa-rings-wedding:before{content:"\f81b"}.fa-object-group:before{content:"\f247"}.fa-french-fries:before{content:"\f803"}.fa-chart-line:before,.fa-line-chart:before{content:"\f201"}.fa-calendar-arrow-down:before,.fa-calendar-download:before{content:"\e0d0"}.fa-send-back:before{content:"\f87e"}.fa-mask-ventilator:before{content:"\e524"}.fa-tickets:before{content:"\e658"}.fa-signature-lock:before{content:"\e3ca"}.fa-arrow-right:before{content:"\f061"}.fa-map-signs:before,.fa-signs-post:before{content:"\f277"}.fa-octagon-plus:before,.fa-plus-octagon:before{content:"\f301"}.fa-cash-register:before{content:"\f788"}.fa-person-circle-question:before{content:"\e542"}.fa-melon-slice:before{content:"\e311"}.fa-space-station-moon:before{content:"\e033"}.fa-comment-alt-smile:before,.fa-message-smile:before{content:"\f4aa"}.fa-cup-straw:before{content:"\e363"}.fa-arrow-alt-from-right:before,.fa-left-from-line:before{content:"\f348"}.fa-h:before{content:"\48"}.fa-basket-shopping-simple:before,.fa-shopping-basket-alt:before{content:"\e0af"}.fa-hands-heart:before,.fa-hands-holding-heart:before{content:"\f4c3"}.fa-clock-nine:before{content:"\e34c"}.fa-hammer-brush:before{content:"\e620"}.fa-tarp:before{content:"\e57b"}.fa-face-sleepy:before{content:"\e38e"}.fa-hand-horns:before{content:"\e1a9"}.fa-screwdriver-wrench:before,.fa-tools:before{content:"\f7d9"}.fa-arrows-to-eye:before{content:"\e4bf"}.fa-circle-three-quarters:before{content:"\e125"}.fa-trophy-alt:before,.fa-trophy-star:before{content:"\f2eb"}.fa-plug-circle-bolt:before{content:"\e55b"}.fa-face-thermometer:before{content:"\e39a"}.fa-grid-round-4:before{content:"\e5dd"}.fa-sign-posts-wrench:before{content:"\e626"}.fa-shirt-running:before{content:"\e3c8"}.fa-book-circle-arrow-up:before{content:"\e0bd"}.fa-face-nauseated:before{content:"\e381"}.fa-heart:before{content:"\f004"}.fa-file-chart-pie:before{content:"\f65a"}.fa-mars-and-venus:before{content:"\f224"}.fa-home-user:before,.fa-house-user:before{content:"\e1b0"}.fa-circle-arrow-down-left:before{content:"\e0f9"}.fa-dumpster-fire:before{content:"\f794"}.fa-hexagon-minus:before,.fa-minus-hexagon:before{content:"\f307"}.fa-arrow-alt-to-left:before,.fa-left-to-line:before{content:"\f34b"}.fa-house-crack:before{content:"\e3b1"}.fa-paw-alt:before,.fa-paw-simple:before{content:"\f701"}.fa-arrow-left-long-to-line:before{content:"\e3d4"}.fa-brackets-round:before,.fa-parentheses:before{content:"\e0c5"}.fa-cocktail:before,.fa-martini-glass-citrus:before{content:"\f561"}.fa-user-shakespeare:before{content:"\e2c2"}.fa-arrow-right-to-arc:before{content:"\e4b2"}.fa-face-surprise:before,.fa-surprise:before{content:"\f5c2"}.fa-bottle-water:before{content:"\e4c5"}.fa-circle-pause:before,.fa-pause-circle:before{content:"\f28b"}.fa-gauge-circle-plus:before{content:"\e498"}.fa-folders:before{content:"\f660"}.fa-angel:before{content:"\f779"}.fa-value-absolute:before{content:"\f6a6"}.fa-rabbit:before{content:"\f708"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-circle-euro:before{content:"\e5ce"}.fa-apple-alt:before,.fa-apple-whole:before{content:"\f5d1"}.fa-kitchen-set:before{content:"\e51a"}.fa-diamond-half:before{content:"\e5b7"}.fa-lock-alt:before,.fa-lock-keyhole:before{content:"\f30d"}.fa-r:before{content:"\52"}.fa-temperature-1:before,.fa-temperature-quarter:before,.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-info-square:before,.fa-square-info:before{content:"\f30f"}.fa-wifi-slash:before{content:"\f6ac"}.fa-toilet-paper-xmark:before{content:"\e5b3"}.fa-hands-holding-dollar:before,.fa-hands-usd:before{content:"\f4c5"}.fa-cube:before{content:"\f1b2"}.fa-arrow-down-triangle-square:before,.fa-sort-shapes-down:before{content:"\f888"}.fa-bitcoin-sign:before{content:"\e0b4"}.fa-shutters:before{content:"\e449"}.fa-shield-dog:before{content:"\e573"}.fa-solar-panel:before{content:"\f5ba"}.fa-lock-open:before{content:"\f3c1"}.fa-table-tree:before{content:"\e293"}.fa-house-chimney-heart:before{content:"\e1b2"}.fa-tally-3:before{content:"\e296"}.fa-elevator:before{content:"\e16d"}.fa-money-bill-transfer:before{content:"\e528"}.fa-money-bill-trend-up:before{content:"\e529"}.fa-house-flood-water-circle-arrow-right:before{content:"\e50f"}.fa-poll-h:before,.fa-square-poll-horizontal:before{content:"\f682"}.fa-circle:before{content:"\f111"}.fa-cart-circle-exclamation:before{content:"\e3f2"}.fa-sword:before{content:"\f71c"}.fa-backward-fast:before,.fa-fast-backward:before{content:"\f049"}.fa-recycle:before{content:"\f1b8"}.fa-user-astronaut:before{content:"\f4fb"}.fa-interrobang:before{content:"\e5ba"}.fa-plane-slash:before{content:"\e069"}.fa-circle-dashed:before{content:"\e105"}.fa-trademark:before{content:"\f25c"}.fa-basketball-ball:before,.fa-basketball:before{content:"\f434"}.fa-fork-knife:before,.fa-utensils-alt:before{content:"\f2e6"}.fa-satellite-dish:before{content:"\f7c0"}.fa-badge-check:before{content:"\f336"}.fa-arrow-alt-circle-up:before,.fa-circle-up:before{content:"\f35b"}.fa-slider:before{content:"\e252"}.fa-mobile-alt:before,.fa-mobile-screen-button:before{content:"\f3cd"}.fa-clock-one-thirty:before{content:"\e34f"}.fa-inbox-arrow-up:before,.fa-inbox-out:before{content:"\f311"}.fa-cloud-slash:before{content:"\e137"}.fa-volume-high:before,.fa-volume-up:before{content:"\f028"}.fa-users-rays:before{content:"\e593"}.fa-wallet:before{content:"\f555"}.fa-octagon-check:before{content:"\e426"}.fa-flatbread-stuffed:before{content:"\e40c"}.fa-clipboard-check:before{content:"\f46c"}.fa-cart-circle-plus:before{content:"\e3f3"}.fa-shipping-timed:before,.fa-truck-clock:before{content:"\f48c"}.fa-pool-8-ball:before{content:"\e3c5"}.fa-file-audio:before{content:"\f1c7"}.fa-turn-down-left:before{content:"\e331"}.fa-lock-hashtag:before{content:"\e423"}.fa-chart-radar:before{content:"\e0e7"}.fa-staff:before{content:"\f71b"}.fa-burger:before,.fa-hamburger:before{content:"\f805"}.fa-utility-pole:before{content:"\e2c3"}.fa-transporter-6:before{content:"\e2a7"}.fa-arrow-turn-left:before{content:"\e632"}.fa-wrench:before{content:"\f0ad"}.fa-bugs:before{content:"\e4d0"}.fa-vector-polygon:before{content:"\e2c7"}.fa-diagram-nested:before{content:"\e157"}.fa-rupee-sign:before,.fa-rupee:before{content:"\f156"}.fa-file-image:before{content:"\f1c5"}.fa-circle-question:before,.fa-question-circle:before{content:"\f059"}.fa-tickets-perforated:before{content:"\e63f"}.fa-image-user:before{content:"\e1b8"}.fa-buoy:before{content:"\e5b5"}.fa-plane-departure:before{content:"\f5b0"}.fa-handshake-slash:before{content:"\e060"}.fa-book-bookmark:before{content:"\e0bb"}.fa-border-center-h:before{content:"\f89c"}.fa-can-food:before{content:"\e3e6"}.fa-typewriter:before{content:"\f8e7"}.fa-arrow-right-from-arc:before{content:"\e4b1"}.fa-circle-k:before{content:"\e113"}.fa-face-hand-over-mouth:before{content:"\e378"}.fa-popcorn:before{content:"\f819"}.fa-house-flood:before,.fa-house-water:before{content:"\f74f"}.fa-object-subtract:before{content:"\e49e"}.fa-code-branch:before{content:"\f126"}.fa-warehouse-alt:before,.fa-warehouse-full:before{content:"\f495"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-bridge:before{content:"\e4c8"}.fa-phone-alt:before,.fa-phone-flip:before{content:"\f879"}.fa-arrow-down-from-dotted-line:before{content:"\e090"}.fa-file-doc:before{content:"\e5ed"}.fa-square-quarters:before{content:"\e44e"}.fa-truck-front:before{content:"\e2b7"}.fa-cat:before{content:"\f6be"}.fa-trash-xmark:before{content:"\e2b4"}.fa-caret-circle-left:before,.fa-circle-caret-left:before{content:"\f32e"}.fa-files:before{content:"\e178"}.fa-anchor-circle-exclamation:before{content:"\e4ab"}.fa-face-clouds:before{content:"\e47d"}.fa-user-crown:before{content:"\f6a4"}.fa-basket-shopping-plus:before{content:"\e653"}.fa-truck-field:before{content:"\e58d"}.fa-route:before{content:"\f4d7"}.fa-cart-circle-check:before{content:"\e3f1"}.fa-clipboard-question:before{content:"\e4e3"}.fa-panorama:before{content:"\e209"}.fa-comment-medical:before{content:"\f7f5"}.fa-teeth-open:before{content:"\f62f"}.fa-user-tie-hair-long:before{content:"\e460"}.fa-file-circle-minus:before{content:"\e4ed"}.fa-head-side-medical:before{content:"\f809"}.fa-arrow-turn-right:before{content:"\e635"}.fa-tags:before{content:"\f02c"}.fa-wine-glass:before{content:"\f4e3"}.fa-fast-forward:before,.fa-forward-fast:before{content:"\f050"}.fa-face-meh-blank:before,.fa-meh-blank:before{content:"\f5a4"}.fa-user-robot:before{content:"\e04b"}.fa-parking:before,.fa-square-parking:before{content:"\f540"}.fa-card-diamond:before{content:"\e3ea"}.fa-face-zipper:before{content:"\e3a5"}.fa-face-raised-eyebrow:before{content:"\e388"}.fa-house-signal:before{content:"\e012"}.fa-chevron-square-up:before,.fa-square-chevron-up:before{content:"\f32c"}.fa-bars-progress:before,.fa-tasks-alt:before{content:"\f828"}.fa-faucet-drip:before{content:"\e006"}.fa-arrows-to-line:before{content:"\e0a7"}.fa-dolphin:before{content:"\e168"}.fa-arrow-up-right:before{content:"\e09f"}.fa-circle-r:before{content:"\e120"}.fa-cart-flatbed:before,.fa-dolly-flatbed:before{content:"\f474"}.fa-ban-smoking:before,.fa-smoking-ban:before{content:"\f54d"}.fa-circle-sort-up:before,.fa-sort-circle-up:before{content:"\e032"}.fa-terminal:before{content:"\f120"}.fa-mobile-button:before{content:"\f10b"}.fa-house-medical-flag:before{content:"\e514"}.fa-basket-shopping:before,.fa-shopping-basket:before{content:"\f291"}.fa-tape:before{content:"\f4db"}.fa-chestnut:before{content:"\e3f6"}.fa-bus-alt:before,.fa-bus-simple:before{content:"\f55e"}.fa-eye:before{content:"\f06e"}.fa-face-sad-cry:before,.fa-sad-cry:before{content:"\f5b3"}.fa-heat:before{content:"\e00c"}.fa-ticket-airline:before,.fa-ticket-perforated-plane:before,.fa-ticket-plane:before{content:"\e29a"}.fa-boot-heeled:before{content:"\e33f"}.fa-arrows-minimize:before,.fa-compress-arrows:before{content:"\e0a5"}.fa-audio-description:before{content:"\f29e"}.fa-person-military-to-person:before{content:"\e54c"}.fa-file-shield:before{content:"\e4f0"}.fa-hexagon:before{content:"\f312"}.fa-manhole:before{content:"\e1d6"}.fa-user-slash:before{content:"\f506"}.fa-pen:before{content:"\f304"}.fa-tower-observation:before{content:"\e586"}.fa-floppy-disks:before{content:"\e183"}.fa-toilet-paper-blank-under:before,.fa-toilet-paper-reverse-alt:before{content:"\e29f"}.fa-file-code:before{content:"\f1c9"}.fa-signal-5:before,.fa-signal-perfect:before,.fa-signal:before{content:"\f012"}.fa-pump:before{content:"\e442"}.fa-bus:before{content:"\f207"}.fa-heart-circle-xmark:before{content:"\e501"}.fa-arrow-up-left-from-circle:before{content:"\e09e"}.fa-home-lg:before,.fa-house-chimney:before{content:"\e3af"}.fa-window-maximize:before{content:"\f2d0"}.fa-dryer:before{content:"\f861"}.fa-face-frown:before,.fa-frown:before{content:"\f119"}.fa-chess-bishop-alt:before,.fa-chess-bishop-piece:before{content:"\f43b"}.fa-shirt-tank-top:before{content:"\e3c9"}.fa-diploma:before,.fa-scroll-ribbon:before{content:"\f5ea"}.fa-screencast:before{content:"\e23e"}.fa-walker:before{content:"\f831"}.fa-prescription:before{content:"\f5b1"}.fa-shop:before,.fa-store-alt:before{content:"\f54f"}.fa-floppy-disk:before,.fa-save:before{content:"\f0c7"}.fa-vihara:before{content:"\f6a7"}.fa-face-kiss-closed-eyes:before{content:"\e37d"}.fa-balance-scale-left:before,.fa-scale-unbalanced:before{content:"\f515"}.fa-file-user:before{content:"\f65c"}.fa-user-police-tie:before{content:"\e334"}.fa-face-tongue-money:before{content:"\e39d"}.fa-tennis-ball:before{content:"\f45e"}.fa-square-l:before{content:"\e275"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-calendar-arrow-up:before,.fa-calendar-upload:before{content:"\e0d1"}.fa-comment-dots:before,.fa-commenting:before{content:"\f4ad"}.fa-plant-wilt:before{content:"\e5aa"}.fa-scarf:before{content:"\f7c1"}.fa-album-circle-plus:before{content:"\e48c"}.fa-user-nurse-hair-long:before{content:"\e45e"}.fa-diamond:before{content:"\f219"}.fa-arrow-alt-square-left:before,.fa-square-left:before{content:"\f351"}.fa-face-grin-squint:before,.fa-grin-squint:before{content:"\f585"}.fa-circle-ellipsis-vertical:before{content:"\e10b"}.fa-hand-holding-dollar:before,.fa-hand-holding-usd:before{content:"\f4c0"}.fa-grid-dividers:before{content:"\e3ad"}.fa-bacterium:before{content:"\e05a"}.fa-hand-pointer:before{content:"\f25a"}.fa-drum-steelpan:before{content:"\f56a"}.fa-hand-scissors:before{content:"\f257"}.fa-hands-praying:before,.fa-praying-hands:before{content:"\f684"}.fa-face-pensive:before{content:"\e384"}.fa-user-music:before{content:"\f8eb"}.fa-arrow-right-rotate:before,.fa-arrow-rotate-forward:before,.fa-arrow-rotate-right:before,.fa-redo:before{content:"\f01e"}.fa-comments-alt-dollar:before,.fa-messages-dollar:before{content:"\f652"}.fa-sensor-on:before{content:"\e02b"}.fa-balloon:before{content:"\e2e3"}.fa-biohazard:before{content:"\f780"}.fa-chess-queen-alt:before,.fa-chess-queen-piece:before{content:"\f446"}.fa-location-crosshairs:before,.fa-location:before{content:"\f601"}.fa-mars-double:before{content:"\f227"}.fa-house-leave:before,.fa-house-person-depart:before,.fa-house-person-leave:before{content:"\e00f"}.fa-ruler-triangle:before{content:"\f61c"}.fa-card-club:before{content:"\e3e9"}.fa-child-dress:before{content:"\e59c"}.fa-users-between-lines:before{content:"\e591"}.fa-lungs-virus:before{content:"\e067"}.fa-spinner-third:before{content:"\f3f4"}.fa-face-grin-tears:before,.fa-grin-tears:before{content:"\f588"}.fa-phone:before{content:"\f095"}.fa-computer-mouse-scrollwheel:before,.fa-mouse-alt:before{content:"\f8cd"}.fa-calendar-times:before,.fa-calendar-xmark:before{content:"\f273"}.fa-child-reaching:before{content:"\e59d"}.fa-table-layout:before{content:"\e290"}.fa-narwhal:before{content:"\f6fe"}.fa-ramp-loading:before{content:"\f4d4"}.fa-calendar-circle-plus:before{content:"\e470"}.fa-toothbrush:before{content:"\f635"}.fa-border-inner:before{content:"\f84e"}.fa-paw-claws:before{content:"\f702"}.fa-kiwi-fruit:before{content:"\e30c"}.fa-traffic-light-slow:before{content:"\f639"}.fa-rectangle-code:before{content:"\e322"}.fa-head-side-virus:before{content:"\e064"}.fa-keyboard-brightness:before{content:"\e1c0"}.fa-books-medical:before{content:"\f7e8"}.fa-lightbulb-slash:before{content:"\f673"}.fa-home-blank:before,.fa-house-blank:before{content:"\e487"}.fa-square-5:before{content:"\e25a"}.fa-heart-square:before,.fa-square-heart:before{content:"\f4c8"}.fa-puzzle:before{content:"\e443"}.fa-user-cog:before,.fa-user-gear:before{content:"\f4fe"}.fa-pipe-circle-check:before{content:"\e436"}.fa-arrow-up-1-9:before,.fa-sort-numeric-up:before{content:"\f163"}.fa-octagon-exclamation:before{content:"\e204"}.fa-dial-low:before{content:"\e15d"}.fa-door-closed:before{content:"\f52a"}.fa-laptop-mobile:before,.fa-phone-laptop:before{content:"\f87a"}.fa-conveyor-belt-alt:before,.fa-conveyor-belt-boxes:before{content:"\f46f"}.fa-shield-virus:before{content:"\e06c"}.fa-starfighter-alt-advanced:before,.fa-starfighter-twin-ion-engine-advanced:before{content:"\e28e"}.fa-dice-six:before{content:"\f526"}.fa-starfighter-alt:before,.fa-starfighter-twin-ion-engine:before{content:"\e038"}.fa-rocket-launch:before{content:"\e027"}.fa-mosquito-net:before{content:"\e52c"}.fa-vent-damper:before{content:"\e465"}.fa-bridge-water:before{content:"\e4ce"}.fa-ban-bug:before,.fa-debug:before{content:"\f7f9"}.fa-person-booth:before{content:"\f756"}.fa-text-width:before{content:"\f035"}.fa-garage-car:before{content:"\e00a"}.fa-square-kanban:before{content:"\e488"}.fa-hat-wizard:before{content:"\f6e8"}.fa-chart-kanban:before{content:"\e64f"}.fa-pen-fancy:before{content:"\f5ac"}.fa-coffee-pot:before{content:"\e002"}.fa-mouse-field:before{content:"\e5a8"}.fa-digging:before,.fa-person-digging:before{content:"\f85e"}.fa-shower-alt:before,.fa-shower-down:before{content:"\e24d"}.fa-box-circle-check:before{content:"\e0c4"}.fa-brightness:before{content:"\e0c9"}.fa-car-side-bolt:before{content:"\e344"}.fa-file-xml:before{content:"\e654"}.fa-ornament:before{content:"\f7b8"}.fa-phone-arrow-down-left:before,.fa-phone-arrow-down:before,.fa-phone-incoming:before{content:"\e223"}.fa-cloud-word:before{content:"\e138"}.fa-hand-fingers-crossed:before{content:"\e1a3"}.fa-trash:before{content:"\f1f8"}.fa-gauge-simple-med:before,.fa-gauge-simple:before,.fa-tachometer-average:before{content:"\f629"}.fa-arrow-down-small-big:before,.fa-sort-size-down-alt:before{content:"\f88d"}.fa-book-medical:before{content:"\f7e6"}.fa-face-melting:before{content:"\e483"}.fa-poo:before{content:"\f2fe"}.fa-pen-alt-slash:before,.fa-pen-clip-slash:before{content:"\e20f"}.fa-quote-right-alt:before,.fa-quote-right:before{content:"\f10e"}.fa-scroll-old:before{content:"\f70f"}.fa-guitars:before{content:"\f8bf"}.fa-phone-xmark:before{content:"\e227"}.fa-hose:before{content:"\e419"}.fa-clock-six:before{content:"\e352"}.fa-shirt:before,.fa-t-shirt:before,.fa-tshirt:before{content:"\f553"}.fa-billboard:before{content:"\e5cd"}.fa-square-r:before{content:"\e27c"}.fa-cubes:before{content:"\f1b3"}.fa-envelope-open-dollar:before{content:"\f657"}.fa-divide:before{content:"\f529"}.fa-sun-cloud:before{content:"\f763"}.fa-lamp-floor:before{content:"\e015"}.fa-square-7:before{content:"\e25c"}.fa-tenge-sign:before,.fa-tenge:before{content:"\f7d7"}.fa-headphones:before{content:"\f025"}.fa-hands-holding:before{content:"\f4c2"}.fa-campfire:before{content:"\f6ba"}.fa-circle-ampersand:before{content:"\e0f8"}.fa-snowflakes:before{content:"\f7cf"}.fa-hands-clapping:before{content:"\e1a8"}.fa-republican:before{content:"\f75e"}.fa-leaf-maple:before{content:"\f6f6"}.fa-arrow-left:before{content:"\f060"}.fa-person-circle-xmark:before{content:"\e543"}.fa-ruler:before{content:"\f545"}.fa-cup-straw-swoosh:before{content:"\e364"}.fa-temperature-hot:before,.fa-temperature-sun:before{content:"\f76a"}.fa-align-left:before{content:"\f036"}.fa-dice-d6:before{content:"\f6d1"}.fa-restroom:before{content:"\f7bd"}.fa-high-definition:before,.fa-rectangle-hd:before{content:"\e1ae"}.fa-j:before{content:"\4a"}.fa-galaxy:before{content:"\e008"}.fa-users-viewfinder:before{content:"\e595"}.fa-file-video:before{content:"\f1c8"}.fa-cherries:before{content:"\e0ec"}.fa-external-link-alt:before,.fa-up-right-from-square:before{content:"\f35d"}.fa-circle-sort:before,.fa-sort-circle:before{content:"\e030"}.fa-table-cells:before,.fa-th:before{content:"\f00a"}.fa-bag-shopping-minus:before{content:"\e650"}.fa-file-pdf:before{content:"\f1c1"}.fa-siren:before{content:"\e02d"}.fa-arrow-up-to-dotted-line:before{content:"\e0a1"}.fa-image-landscape:before,.fa-landscape:before{content:"\e1b5"}.fa-tank-water:before{content:"\e452"}.fa-curling-stone:before,.fa-curling:before{content:"\f44a"}.fa-gamepad-alt:before,.fa-gamepad-modern:before{content:"\e5a2"}.fa-messages-question:before{content:"\e1e7"}.fa-bible:before,.fa-book-bible:before{content:"\f647"}.fa-o:before{content:"\4f"}.fa-medkit:before,.fa-suitcase-medical:before{content:"\f0fa"}.fa-briefcase-arrow-right:before{content:"\e2f2"}.fa-expand-wide:before{content:"\f320"}.fa-clock-eleven-thirty:before{content:"\e348"}.fa-rv:before{content:"\f7be"}.fa-user-secret:before{content:"\f21b"}.fa-otter:before{content:"\f700"}.fa-dreidel:before{content:"\f792"}.fa-female:before,.fa-person-dress:before{content:"\f182"}.fa-comment-dollar:before{content:"\f651"}.fa-briefcase-clock:before,.fa-business-time:before{content:"\f64a"}.fa-flower-tulip:before{content:"\f801"}.fa-people-pants-simple:before{content:"\e21a"}.fa-cloud-drizzle:before{content:"\f738"}.fa-table-cells-large:before,.fa-th-large:before{content:"\f009"}.fa-book-tanakh:before,.fa-tanakh:before{content:"\f827"}.fa-solar-system:before{content:"\e02f"}.fa-seal-question:before{content:"\e243"}.fa-phone-volume:before,.fa-volume-control-phone:before{content:"\f2a0"}.fa-disc-drive:before{content:"\f8b5"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-rows:before,.fa-table-rows:before{content:"\e292"}.fa-location-exclamation:before,.fa-map-marker-exclamation:before{content:"\f608"}.fa-face-fearful:before{content:"\e375"}.fa-clipboard-user:before{content:"\f7f3"}.fa-bus-school:before{content:"\f5dd"}.fa-film-slash:before{content:"\e179"}.fa-square-arrow-down-right:before{content:"\e262"}.fa-book-sparkles:before,.fa-book-spells:before{content:"\f6b8"}.fa-washer:before,.fa-washing-machine:before{content:"\f898"}.fa-child:before{content:"\f1ae"}.fa-lira-sign:before{content:"\f195"}.fa-user-visor:before{content:"\e04c"}.fa-file-plus-minus:before{content:"\e177"}.fa-chess-clock-alt:before,.fa-chess-clock-flip:before{content:"\f43e"}.fa-satellite:before{content:"\f7bf"}.fa-truck-fire:before{content:"\e65a"}.fa-plane-lock:before{content:"\e558"}.fa-steering-wheel:before{content:"\f622"}.fa-tag:before{content:"\f02b"}.fa-stretcher:before{content:"\f825"}.fa-book-law:before,.fa-book-section:before{content:"\e0c1"}.fa-inboxes:before{content:"\e1bb"}.fa-coffee-bean:before{content:"\e13e"}.fa-circle-yen:before{content:"\e5d0"}.fa-brackets-curly:before{content:"\f7ea"}.fa-ellipsis-stroke-vertical:before,.fa-ellipsis-v-alt:before{content:"\f39c"}.fa-comment:before{content:"\f075"}.fa-square-1:before{content:"\e256"}.fa-birthday-cake:before,.fa-cake-candles:before,.fa-cake:before{content:"\f1fd"}.fa-head-side:before{content:"\f6e9"}.fa-truck-ladder:before{content:"\e657"}.fa-envelope:before{content:"\f0e0"}.fa-dolly-empty:before{content:"\f473"}.fa-face-tissue:before{content:"\e39c"}.fa-angle-double-up:before,.fa-angles-up:before{content:"\f102"}.fa-bin-recycle:before{content:"\e5f7"}.fa-paperclip:before{content:"\f0c6"}.fa-chart-line-down:before{content:"\f64d"}.fa-arrow-right-to-city:before{content:"\e4b3"}.fa-lock-a:before{content:"\e422"}.fa-ribbon:before{content:"\f4d6"}.fa-lungs:before{content:"\f604"}.fa-person-pinball:before{content:"\e21d"}.fa-arrow-up-9-1:before,.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-apple-core:before{content:"\e08f"}.fa-circle-y:before{content:"\e12f"}.fa-h6:before{content:"\e413"}.fa-litecoin-sign:before{content:"\e1d3"}.fa-circle-small:before{content:"\e122"}.fa-border-none:before{content:"\f850"}.fa-arrow-turn-down-left:before{content:"\e2e1"}.fa-circle-nodes:before{content:"\e4e2"}.fa-parachute-box:before{content:"\f4cd"}.fa-reflect-horizontal:before{content:"\e664"}.fa-comment-alt-medical:before,.fa-message-medical:before{content:"\f7f4"}.fa-rugby-ball:before{content:"\e3c6"}.fa-comment-music:before{content:"\f8b0"}.fa-indent:before{content:"\f03c"}.fa-tree-alt:before,.fa-tree-deciduous:before{content:"\f400"}.fa-puzzle-piece-alt:before,.fa-puzzle-piece-simple:before{content:"\e231"}.fa-truck-field-un:before{content:"\e58e"}.fa-nfc-trash:before{content:"\e1fd"}.fa-hourglass-empty:before,.fa-hourglass:before{content:"\f254"}.fa-mountain:before{content:"\f6fc"}.fa-file-times:before,.fa-file-xmark:before{content:"\f317"}.fa-home-heart:before,.fa-house-heart:before{content:"\f4c9"}.fa-house-chimney-blank:before{content:"\e3b0"}.fa-meter-bolt:before{content:"\e1e9"}.fa-user-doctor:before,.fa-user-md:before{content:"\f0f0"}.fa-slash-back:before{content:"\5c"}.fa-circle-info:before,.fa-info-circle:before{content:"\f05a"}.fa-fishing-rod:before{content:"\e3a8"}.fa-hammer-crash:before{content:"\e414"}.fa-message-heart:before{content:"\e5c9"}.fa-cloud-meatball:before{content:"\f73b"}.fa-camera-polaroid:before{content:"\f8aa"}.fa-camera-alt:before,.fa-camera:before{content:"\f030"}.fa-square-virus:before{content:"\e578"}.fa-cart-arrow-up:before{content:"\e3ee"}.fa-meteor:before{content:"\f753"}.fa-car-on:before{content:"\e4dd"}.fa-sleigh:before{content:"\f7cc"}.fa-arrow-down-1-9:before,.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:"\f162"}.fa-buoy-mooring:before{content:"\e5b6"}.fa-square-4:before{content:"\e259"}.fa-hand-holding-droplet:before,.fa-hand-holding-water:before{content:"\f4c1"}.fa-file-eps:before{content:"\e644"}.fa-tricycle-adult:before{content:"\e5c4"}.fa-waveform:before{content:"\f8f1"}.fa-water:before{content:"\f773"}.fa-star-sharp-half-alt:before,.fa-star-sharp-half-stroke:before{content:"\e28d"}.fa-nfc-signal:before{content:"\e1fb"}.fa-plane-prop:before{content:"\e22b"}.fa-calendar-check:before{content:"\f274"}.fa-clock-desk:before{content:"\e134"}.fa-calendar-clock:before,.fa-calendar-time:before{content:"\e0d2"}.fa-braille:before{content:"\f2a1"}.fa-prescription-bottle-alt:before,.fa-prescription-bottle-medical:before{content:"\f486"}.fa-plate-utensils:before{content:"\e43b"}.fa-family-pants:before{content:"\e302"}.fa-hose-reel:before{content:"\e41a"}.fa-house-window:before{content:"\e3b3"}.fa-landmark:before{content:"\f66f"}.fa-truck:before{content:"\f0d1"}.fa-music-magnifying-glass:before{content:"\e662"}.fa-crosshairs:before{content:"\f05b"}.fa-cloud-rainbow:before{content:"\f73e"}.fa-person-cane:before{content:"\e53c"}.fa-alien:before{content:"\f8f5"}.fa-tent:before{content:"\e57d"}.fa-laptop-binary:before{content:"\e5e7"}.fa-vest-patches:before{content:"\e086"}.fa-people-dress-simple:before{content:"\e218"}.fa-check-double:before{content:"\f560"}.fa-arrow-down-a-z:before,.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:"\f15d"}.fa-bowling-ball-pin:before{content:"\e0c3"}.fa-bell-school-slash:before{content:"\f5d6"}.fa-plus-large:before{content:"\e59e"}.fa-money-bill-wheat:before{content:"\e52a"}.fa-camera-viewfinder:before,.fa-screenshot:before{content:"\e0da"}.fa-comment-alt-music:before,.fa-message-music:before{content:"\f8af"}.fa-car-building:before{content:"\f859"}.fa-border-bottom-right:before,.fa-border-style-alt:before{content:"\f854"}.fa-octagon:before{content:"\f306"}.fa-comment-arrow-up-right:before{content:"\e145"}.fa-octagon-divide:before{content:"\e203"}.fa-cookie:before{content:"\f563"}.fa-arrow-left-rotate:before,.fa-arrow-rotate-back:before,.fa-arrow-rotate-backward:before,.fa-arrow-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-tv-music:before{content:"\f8e6"}.fa-hard-drive:before,.fa-hdd:before{content:"\f0a0"}.fa-reel:before{content:"\e238"}.fa-face-grin-squint-tears:before,.fa-grin-squint-tears:before{content:"\f586"}.fa-dumbbell:before{content:"\f44b"}.fa-list-alt:before,.fa-rectangle-list:before{content:"\f022"}.fa-tarp-droplet:before{content:"\e57c"}.fa-alarm-exclamation:before{content:"\f843"}.fa-house-medical-circle-check:before{content:"\e511"}.fa-traffic-cone:before{content:"\f636"}.fa-grate:before{content:"\e193"}.fa-arrow-down-right:before{content:"\e093"}.fa-person-skiing-nordic:before,.fa-skiing-nordic:before{content:"\f7ca"}.fa-calendar-plus:before{content:"\f271"}.fa-person-from-portal:before,.fa-portal-exit:before{content:"\e023"}.fa-plane-arrival:before{content:"\f5af"}.fa-cowbell-circle-plus:before,.fa-cowbell-more:before{content:"\f8b4"}.fa-arrow-alt-circle-left:before,.fa-circle-left:before{content:"\f359"}.fa-distribute-spacing-vertical:before{content:"\e366"}.fa-signal-alt-2:before,.fa-signal-bars-fair:before{content:"\f692"}.fa-sportsball:before{content:"\e44b"}.fa-game-console-handheld-crank:before{content:"\e5b9"}.fa-subway:before,.fa-train-subway:before{content:"\f239"}.fa-chart-gantt:before{content:"\e0e4"}.fa-face-smile-upside-down:before{content:"\e395"}.fa-ball-pile:before{content:"\f77e"}.fa-badge-dollar:before{content:"\f645"}.fa-money-bills-alt:before,.fa-money-bills-simple:before{content:"\e1f4"}.fa-list-timeline:before{content:"\e1d1"}.fa-indian-rupee-sign:before,.fa-indian-rupee:before,.fa-inr:before{content:"\e1bc"}.fa-crop-alt:before,.fa-crop-simple:before{content:"\f565"}.fa-money-bill-1:before,.fa-money-bill-alt:before{content:"\f3d1"}.fa-left-long:before,.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-keyboard-down:before{content:"\e1c2"}.fa-circle-up-right:before{content:"\e129"}.fa-cloud-bolt-moon:before,.fa-thunderstorm-moon:before{content:"\f76d"}.fa-turn-left-up:before{content:"\e638"}.fa-dna:before{content:"\f471"}.fa-virus-slash:before{content:"\e075"}.fa-bracket-round-right:before{content:"\29"}.fa-circle-sterling:before{content:"\e5cf"}.fa-circle-5:before{content:"\e0f2"}.fa-minus:before,.fa-subtract:before{content:"\f068"}.fa-fire-flame:before,.fa-flame:before{content:"\f6df"}.fa-arrow-alt-to-right:before,.fa-right-to-line:before{content:"\f34c"}.fa-gif:before{content:"\e190"}.fa-chess:before{content:"\f439"}.fa-trash-slash:before{content:"\e2b3"}.fa-arrow-left-long:before,.fa-long-arrow-left:before{content:"\f177"}.fa-plug-circle-check:before{content:"\e55c"}.fa-font-case:before{content:"\f866"}.fa-street-view:before{content:"\f21d"}.fa-arrow-down-left:before{content:"\e091"}.fa-franc-sign:before{content:"\e18f"}.fa-flask-poison:before,.fa-flask-round-poison:before{content:"\f6e0"}.fa-volume-off:before{content:"\f026"}.fa-book-circle-arrow-right:before{content:"\e0bc"}.fa-chart-user:before,.fa-user-chart:before{content:"\f6a3"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before,.fa-hands-american-sign-language-interpreting:before,.fa-hands-asl-interpreting:before{content:"\f2a3"}.fa-presentation-screen:before,.fa-presentation:before{content:"\f685"}.fa-circle-bolt:before{content:"\e0fe"}.fa-face-smile-halo:before{content:"\e38f"}.fa-cart-circle-arrow-down:before{content:"\e3ef"}.fa-house-person-arrive:before,.fa-house-person-return:before,.fa-house-return:before{content:"\e011"}.fa-comment-alt-times:before,.fa-message-times:before,.fa-message-xmark:before{content:"\f4ab"}.fa-file-award:before,.fa-file-certificate:before{content:"\f5f3"}.fa-user-doctor-hair-long:before{content:"\e459"}.fa-camera-home:before,.fa-camera-security:before{content:"\f8fe"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-droplet-slash:before,.fa-tint-slash:before{content:"\f5c7"}.fa-book-heart:before{content:"\f499"}.fa-mosque:before{content:"\f678"}.fa-duck:before{content:"\f6d8"}.fa-mosquito:before{content:"\e52b"}.fa-star-of-david:before{content:"\f69a"}.fa-flag-alt:before,.fa-flag-swallowtail:before{content:"\f74c"}.fa-person-military-rifle:before{content:"\e54b"}.fa-car-garage:before{content:"\f5e2"}.fa-cart-shopping:before,.fa-shopping-cart:before{content:"\f07a"}.fa-book-font:before{content:"\e0bf"}.fa-shield-plus:before{content:"\e24a"}.fa-vials:before{content:"\f493"}.fa-eye-dropper-full:before{content:"\e172"}.fa-distribute-spacing-horizontal:before{content:"\e365"}.fa-tablet-rugged:before{content:"\f48f"}.fa-temperature-frigid:before,.fa-temperature-snow:before{content:"\f768"}.fa-moped:before{content:"\e3b9"}.fa-face-smile-plus:before,.fa-smile-plus:before{content:"\f5b9"}.fa-radio-alt:before,.fa-radio-tuner:before{content:"\f8d8"}.fa-face-swear:before{content:"\e399"}.fa-water-arrow-down:before,.fa-water-lower:before{content:"\f774"}.fa-scanner-touchscreen:before{content:"\f48a"}.fa-circle-7:before{content:"\e0f4"}.fa-plug-circle-plus:before{content:"\e55f"}.fa-person-ski-jumping:before,.fa-ski-jump:before{content:"\f7c7"}.fa-place-of-worship:before{content:"\f67f"}.fa-water-arrow-up:before,.fa-water-rise:before{content:"\f775"}.fa-waveform-lines:before,.fa-waveform-path:before{content:"\f8f2"}.fa-split:before{content:"\e254"}.fa-film-canister:before,.fa-film-cannister:before{content:"\f8b7"}.fa-folder-times:before,.fa-folder-xmark:before{content:"\f65f"}.fa-toilet-paper-alt:before,.fa-toilet-paper-blank:before{content:"\f71f"}.fa-tablet-android-alt:before,.fa-tablet-screen:before{content:"\f3fc"}.fa-hexagon-vertical-nft-slanted:before{content:"\e506"}.fa-folder-music:before{content:"\e18d"}.fa-desktop-medical:before,.fa-display-medical:before{content:"\e166"}.fa-share-all:before{content:"\f367"}.fa-peapod:before{content:"\e31c"}.fa-chess-clock:before{content:"\f43d"}.fa-axe:before{content:"\f6b2"}.fa-square-d:before{content:"\e268"}.fa-grip-vertical:before{content:"\f58e"}.fa-mobile-signal-out:before{content:"\e1f0"}.fa-arrow-turn-up:before,.fa-level-up:before{content:"\f148"}.fa-u:before{content:"\55"}.fa-arrow-up-from-dotted-line:before{content:"\e09b"}.fa-square-root-alt:before,.fa-square-root-variable:before{content:"\f698"}.fa-light-switch-on:before{content:"\e019"}.fa-arrow-down-arrow-up:before,.fa-sort-alt:before{content:"\f883"}.fa-raindrops:before{content:"\f75c"}.fa-dash:before,.fa-minus-large:before{content:"\e404"}.fa-clock-four:before,.fa-clock:before{content:"\f017"}.fa-input-numeric:before{content:"\e1bd"}.fa-truck-tow:before{content:"\e2b8"}.fa-backward-step:before,.fa-step-backward:before{content:"\f048"}.fa-pallet:before{content:"\f482"}.fa-car-bolt:before{content:"\e341"}.fa-arrows-maximize:before,.fa-expand-arrows:before{content:"\f31d"}.fa-faucet:before{content:"\e005"}.fa-cloud-sleet:before{content:"\f741"}.fa-lamp-street:before{content:"\e1c5"}.fa-list-radio:before{content:"\e1d0"}.fa-pen-nib-slash:before{content:"\e4a1"}.fa-baseball-bat-ball:before{content:"\f432"}.fa-square-up-left:before{content:"\e282"}.fa-overline:before{content:"\f876"}.fa-s:before{content:"\53"}.fa-timeline:before{content:"\e29c"}.fa-keyboard:before{content:"\f11c"}.fa-arrows-from-dotted-line:before{content:"\e0a3"}.fa-usb-drive:before{content:"\f8e9"}.fa-ballot:before{content:"\f732"}.fa-caret-down:before{content:"\f0d7"}.fa-location-dot-slash:before,.fa-map-marker-alt-slash:before{content:"\f605"}.fa-cards:before{content:"\e3ed"}.fa-clinic-medical:before,.fa-house-chimney-medical:before{content:"\f7f2"}.fa-boxing-glove:before,.fa-glove-boxing:before{content:"\f438"}.fa-temperature-3:before,.fa-temperature-three-quarters:before,.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-bell-school:before{content:"\f5d5"}.fa-mobile-android-alt:before,.fa-mobile-screen:before{content:"\f3cf"}.fa-plane-up:before{content:"\e22d"}.fa-folder-heart:before{content:"\e189"}.fa-circle-location-arrow:before,.fa-location-circle:before{content:"\f602"}.fa-face-head-bandage:before{content:"\e37a"}.fa-maki-roll:before,.fa-makizushi:before,.fa-sushi-roll:before{content:"\e48b"}.fa-car-bump:before{content:"\f5e0"}.fa-piggy-bank:before{content:"\f4d3"}.fa-racquet:before{content:"\f45a"}.fa-car-mirrors:before{content:"\e343"}.fa-industry-alt:before,.fa-industry-windows:before{content:"\f3b3"}.fa-bolt-auto:before{content:"\e0b6"}.fa-battery-3:before,.fa-battery-half:before{content:"\f242"}.fa-flux-capacitor:before{content:"\f8ba"}.fa-mountain-city:before{content:"\e52e"}.fa-coins:before{content:"\f51e"}.fa-honey-pot:before{content:"\e418"}.fa-olive:before{content:"\e316"}.fa-khanda:before{content:"\f66d"}.fa-filter-list:before{content:"\e17c"}.fa-outlet:before{content:"\e01c"}.fa-sliders-h:before,.fa-sliders:before{content:"\f1de"}.fa-cauldron:before{content:"\f6bf"}.fa-people:before{content:"\e216"}.fa-folder-tree:before{content:"\f802"}.fa-network-wired:before{content:"\f6ff"}.fa-croissant:before{content:"\f7f6"}.fa-map-pin:before{content:"\f276"}.fa-hamsa:before{content:"\f665"}.fa-cent-sign:before{content:"\e3f5"}.fa-swords-laser:before{content:"\e03d"}.fa-flask:before{content:"\f0c3"}.fa-person-pregnant:before{content:"\e31e"}.fa-square-u:before{content:"\e281"}.fa-wand-sparkles:before{content:"\f72b"}.fa-router:before{content:"\f8da"}.fa-ellipsis-v:before,.fa-ellipsis-vertical:before{content:"\f142"}.fa-sword-laser-alt:before{content:"\e03c"}.fa-ticket:before{content:"\f145"}.fa-power-off:before{content:"\f011"}.fa-coin:before{content:"\f85c"}.fa-laptop-slash:before{content:"\e1c7"}.fa-long-arrow-alt-right:before,.fa-right-long:before{content:"\f30b"}.fa-circle-b:before{content:"\e0fd"}.fa-person-dress-simple:before{content:"\e21c"}.fa-pipe-collar:before{content:"\e437"}.fa-lights-holiday:before{content:"\f7b2"}.fa-citrus:before{content:"\e2f4"}.fa-flag-usa:before{content:"\f74d"}.fa-laptop-file:before{content:"\e51d"}.fa-teletype:before,.fa-tty:before{content:"\f1e4"}.fa-chart-tree-map:before{content:"\e0ea"}.fa-diagram-next:before{content:"\e476"}.fa-person-rifle:before{content:"\e54e"}.fa-clock-five-thirty:before{content:"\e34a"}.fa-pipe-valve:before{content:"\e439"}.fa-arrow-up-from-arc:before{content:"\e4b4"}.fa-face-spiral-eyes:before{content:"\e485"}.fa-compress-wide:before{content:"\f326"}.fa-circle-phone-hangup:before,.fa-phone-circle-down:before{content:"\e11d"}.fa-gear-complex-code:before{content:"\e5eb"}.fa-house-medical-circle-exclamation:before{content:"\e512"}.fa-badminton:before{content:"\e33a"}.fa-closed-captioning:before{content:"\f20a"}.fa-hiking:before,.fa-person-hiking:before{content:"\f6ec"}.fa-arrow-alt-from-left:before,.fa-right-from-line:before{content:"\f347"}.fa-venus-double:before{content:"\f226"}.fa-images:before{content:"\f302"}.fa-calculator:before{content:"\f1ec"}.fa-shuttlecock:before{content:"\f45b"}.fa-user-hair:before{content:"\e45a"}.fa-eye-evil:before{content:"\f6db"}.fa-people-pulling:before{content:"\e535"}.fa-n:before{content:"\4e"}.fa-swap:before{content:"\e609"}.fa-garage:before{content:"\e009"}.fa-cable-car:before,.fa-tram:before{content:"\f7da"}.fa-shovel-snow:before{content:"\f7c3"}.fa-cloud-rain:before{content:"\f73d"}.fa-face-lying:before{content:"\e37e"}.fa-sprinkler:before{content:"\e035"}.fa-building-circle-xmark:before{content:"\e4d4"}.fa-person-sledding:before,.fa-sledding:before{content:"\f7cb"}.fa-game-console-handheld:before{content:"\f8bb"}.fa-ship:before{content:"\f21a"}.fa-clock-six-thirty:before{content:"\e353"}.fa-battery-slash:before{content:"\f377"}.fa-tugrik-sign:before{content:"\e2ba"}.fa-arrows-down-to-line:before{content:"\e4b8"}.fa-download:before{content:"\f019"}.fa-angles-up-down:before{content:"\e60d"}.fa-inventory:before,.fa-shelves:before{content:"\f480"}.fa-cloud-snow:before{content:"\f742"}.fa-face-grin:before,.fa-grin:before{content:"\f580"}.fa-backspace:before,.fa-delete-left:before{content:"\f55a"}.fa-oven:before{content:"\e01d"}.fa-cloud-binary:before{content:"\e601"}.fa-eye-dropper-empty:before,.fa-eye-dropper:before,.fa-eyedropper:before{content:"\f1fb"}.fa-comment-captions:before{content:"\e146"}.fa-comments-question:before{content:"\e14e"}.fa-scribble:before{content:"\e23f"}.fa-rotate-exclamation:before{content:"\e23c"}.fa-file-circle-check:before{content:"\e5a0"}.fa-glass:before{content:"\f804"}.fa-loader:before{content:"\e1d4"}.fa-forward:before{content:"\f04e"}.fa-user-pilot:before{content:"\e2c0"}.fa-mobile-android:before,.fa-mobile-phone:before,.fa-mobile:before{content:"\f3ce"}.fa-code-pull-request-closed:before{content:"\e3f9"}.fa-face-meh:before,.fa-meh:before{content:"\f11a"}.fa-align-center:before{content:"\f037"}.fa-book-dead:before,.fa-book-skull:before{content:"\f6b7"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-face-dotted:before{content:"\e47f"}.fa-face-worried:before{content:"\e3a3"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-court-sport:before{content:"\e643"}.fa-heart-circle-exclamation:before{content:"\e4fe"}.fa-home-alt:before,.fa-home-lg-alt:before,.fa-home:before,.fa-house:before{content:"\f015"}.fa-vector-circle:before{content:"\e2c6"}.fa-car-circle-bolt:before{content:"\e342"}.fa-calendar-week:before{content:"\f784"}.fa-flying-disc:before{content:"\e3a9"}.fa-laptop-medical:before{content:"\f812"}.fa-square-down-right:before{content:"\e26c"}.fa-b:before{content:"\42"}.fa-seat-airline:before{content:"\e244"}.fa-eclipse-alt:before,.fa-moon-over-sun:before{content:"\f74a"}.fa-pipe:before{content:"\7c"}.fa-file-medical:before{content:"\f477"}.fa-potato:before{content:"\e440"}.fa-dice-one:before{content:"\f525"}.fa-circle-a:before{content:"\e0f7"}.fa-helmet-battle:before{content:"\f6eb"}.fa-butter:before{content:"\e3e4"}.fa-blanket-fire:before{content:"\e3da"}.fa-kiwi-bird:before{content:"\f535"}.fa-castle:before{content:"\e0de"}.fa-golf-club:before{content:"\f451"}.fa-arrow-right-arrow-left:before,.fa-exchange:before{content:"\f0ec"}.fa-redo-alt:before,.fa-rotate-forward:before,.fa-rotate-right:before{content:"\f2f9"}.fa-cutlery:before,.fa-utensils:before{content:"\f2e7"}.fa-arrow-up-wide-short:before,.fa-sort-amount-up:before{content:"\f161"}.fa-chart-pie-simple-circle-dollar:before{content:"\e605"}.fa-balloons:before{content:"\e2e4"}.fa-mill-sign:before{content:"\e1ed"}.fa-bowl-rice:before{content:"\e2eb"}.fa-timeline-arrow:before{content:"\e29d"}.fa-skull:before{content:"\f54c"}.fa-game-board-alt:before,.fa-game-board-simple:before{content:"\f868"}.fa-circle-video:before,.fa-video-circle:before{content:"\e12b"}.fa-chart-scatter-bubble:before{content:"\e0e9"}.fa-house-turret:before{content:"\e1b4"}.fa-banana:before{content:"\e2e5"}.fa-hand-holding-skull:before{content:"\e1a4"}.fa-people-dress:before{content:"\e217"}.fa-couch-small:before,.fa-loveseat:before{content:"\f4cc"}.fa-broadcast-tower:before,.fa-tower-broadcast:before{content:"\f519"}.fa-truck-pickup:before{content:"\f63c"}.fa-block-quote:before{content:"\e0b5"}.fa-long-arrow-alt-up:before,.fa-up-long:before{content:"\f30c"}.fa-stop:before{content:"\f04d"}.fa-code-merge:before{content:"\f387"}.fa-money-check-dollar-pen:before,.fa-money-check-edit-alt:before{content:"\f873"}.fa-arrow-alt-from-bottom:before,.fa-up-from-line:before{content:"\f346"}.fa-upload:before{content:"\f093"}.fa-hurricane:before{content:"\f751"}.fa-grid-round-2-plus:before{content:"\e5dc"}.fa-people-pants:before{content:"\e219"}.fa-mound:before{content:"\e52d"}.fa-windsock:before{content:"\f777"}.fa-circle-half:before{content:"\e110"}.fa-brake-warning:before{content:"\e0c7"}.fa-toilet-portable:before{content:"\e583"}.fa-compact-disc:before{content:"\f51f"}.fa-file-arrow-down:before,.fa-file-download:before{content:"\f56d"}.fa-sax-hot:before,.fa-saxophone-fire:before{content:"\f8db"}.fa-camera-web-slash:before,.fa-webcam-slash:before{content:"\f833"}.fa-folder-medical:before{content:"\e18c"}.fa-folder-cog:before,.fa-folder-gear:before{content:"\e187"}.fa-hand-wave:before{content:"\e1a7"}.fa-arrow-up-arrow-down:before,.fa-sort-up-down:before{content:"\e099"}.fa-caravan:before{content:"\f8ff"}.fa-shield-cat:before{content:"\e572"}.fa-comment-alt-slash:before,.fa-message-slash:before{content:"\f4a9"}.fa-bolt:before,.fa-zap:before{content:"\f0e7"}.fa-trash-can-check:before{content:"\e2a9"}.fa-glass-water:before{content:"\e4f4"}.fa-oil-well:before{content:"\e532"}.fa-person-simple:before{content:"\e220"}.fa-arrow-turn-left-up:before{content:"\e634"}.fa-vault:before{content:"\e2c5"}.fa-mars:before{content:"\f222"}.fa-toilet:before{content:"\f7d8"}.fa-plane-circle-xmark:before{content:"\e557"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen-sign:before,.fa-yen:before{content:"\f157"}.fa-gear-code:before{content:"\e5e8"}.fa-notes:before{content:"\e202"}.fa-rouble:before,.fa-rub:before,.fa-ruble-sign:before,.fa-ruble:before{content:"\f158"}.fa-trash-arrow-turn-left:before,.fa-trash-undo:before{content:"\f895"}.fa-champagne-glass:before,.fa-glass-champagne:before{content:"\f79e"}.fa-objects-align-center-horizontal:before{content:"\e3bc"}.fa-sun:before{content:"\f185"}.fa-trash-alt-slash:before,.fa-trash-can-slash:before{content:"\e2ad"}.fa-screen-users:before,.fa-users-class:before{content:"\f63d"}.fa-guitar:before{content:"\f7a6"}.fa-arrow-square-left:before,.fa-square-arrow-left:before{content:"\f33a"}.fa-square-8:before{content:"\e25d"}.fa-face-smile-hearts:before{content:"\e390"}.fa-brackets-square:before,.fa-brackets:before{content:"\f7e9"}.fa-laptop-arrow-down:before{content:"\e1c6"}.fa-hockey-stick-puck:before{content:"\e3ae"}.fa-house-tree:before{content:"\e1b3"}.fa-signal-2:before,.fa-signal-fair:before{content:"\f68d"}.fa-face-laugh-wink:before,.fa-laugh-wink:before{content:"\f59c"}.fa-circle-dollar:before,.fa-dollar-circle:before,.fa-usd-circle:before{content:"\f2e8"}.fa-horse-head:before{content:"\f7ab"}.fa-arrows-repeat:before,.fa-repeat-alt:before{content:"\f364"}.fa-bore-hole:before{content:"\e4c3"}.fa-industry:before{content:"\f275"}.fa-image-polaroid:before{content:"\f8c4"}.fa-wave-triangle:before{content:"\f89a"}.fa-turn-left-down:before{content:"\e637"}.fa-person-running-fast:before{content:"\e5ff"}.fa-arrow-alt-circle-down:before,.fa-circle-down:before{content:"\f358"}.fa-grill:before{content:"\e5a3"}.fa-arrows-turn-to-dots:before{content:"\e4c1"}.fa-analytics:before,.fa-chart-mixed:before{content:"\f643"}.fa-florin-sign:before{content:"\e184"}.fa-arrow-down-short-wide:before,.fa-sort-amount-desc:before,.fa-sort-amount-down-alt:before{content:"\f884"}.fa-less-than:before{content:"\3c"}.fa-desktop-code:before,.fa-display-code:before{content:"\e165"}.fa-face-drooling:before{content:"\e372"}.fa-oil-temp:before,.fa-oil-temperature:before{content:"\f614"}.fa-question-square:before,.fa-square-question:before{content:"\f2fd"}.fa-air-conditioner:before{content:"\f8f4"}.fa-angle-down:before{content:"\f107"}.fa-mountains:before{content:"\f6fd"}.fa-omega:before{content:"\f67a"}.fa-car-tunnel:before{content:"\e4de"}.fa-person-dolly-empty:before{content:"\f4d1"}.fa-pan-food:before{content:"\e42b"}.fa-head-side-cough:before{content:"\e061"}.fa-grip-lines:before{content:"\f7a4"}.fa-thumbs-down:before{content:"\f165"}.fa-user-lock:before{content:"\f502"}.fa-arrow-right-long:before,.fa-long-arrow-right:before{content:"\f178"}.fa-tickets-airline:before,.fa-tickets-perforated-plane:before,.fa-tickets-plane:before{content:"\e29b"}.fa-tent-double-peak:before{content:"\e627"}.fa-anchor-circle-xmark:before{content:"\e4ac"}.fa-ellipsis-h:before,.fa-ellipsis:before{content:"\f141"}.fa-nfc-slash:before{content:"\e1fc"}.fa-chess-pawn:before{content:"\f443"}.fa-first-aid:before,.fa-kit-medical:before{content:"\f479"}.fa-grid-2-plus:before{content:"\e197"}.fa-bells:before{content:"\f77f"}.fa-person-through-window:before{content:"\e5a9"}.fa-toolbox:before{content:"\f552"}.fa-envelope-badge:before,.fa-envelope-dot:before{content:"\e16f"}.fa-magnifying-glass-waveform:before{content:"\e661"}.fa-hands-holding-circle:before{content:"\e4fb"}.fa-bug:before{content:"\f188"}.fa-bowl-chopsticks:before{content:"\e2e9"}.fa-credit-card-alt:before,.fa-credit-card:before{content:"\f09d"}.fa-circle-s:before{content:"\e121"}.fa-box-ballot:before{content:"\f735"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-hand-holding-hand:before{content:"\e4f7"}.fa-user-tie-hair:before{content:"\e45f"}.fa-podium-star:before{content:"\f758"}.fa-business-front:before,.fa-party-back:before,.fa-trian-balbot:before,.fa-user-hair-mullet:before{content:"\e45c"}.fa-microphone-stand:before{content:"\f8cb"}.fa-book-open-reader:before,.fa-book-reader:before{content:"\f5da"}.fa-family-dress:before{content:"\e301"}.fa-circle-x:before{content:"\e12e"}.fa-cabin:before{content:"\e46d"}.fa-mountain-sun:before{content:"\e52f"}.fa-chart-simple-horizontal:before{content:"\e474"}.fa-arrows-left-right-to-line:before{content:"\e4ba"}.fa-hand-back-point-left:before{content:"\e19f"}.fa-comment-alt-dots:before,.fa-message-dots:before,.fa-messaging:before{content:"\f4a3"}.fa-file-heart:before{content:"\e176"}.fa-beer-foam:before,.fa-beer-mug:before{content:"\e0b3"}.fa-dice-d20:before{content:"\f6cf"}.fa-drone:before{content:"\f85f"}.fa-truck-droplet:before{content:"\e58c"}.fa-file-circle-xmark:before{content:"\e5a1"}.fa-temperature-arrow-up:before,.fa-temperature-up:before{content:"\e040"}.fa-medal:before{content:"\f5a2"}.fa-person-fairy:before{content:"\e608"}.fa-bed:before{content:"\f236"}.fa-book-copy:before{content:"\e0be"}.fa-h-square:before,.fa-square-h:before{content:"\f0fd"}.fa-square-c:before{content:"\e266"}.fa-clock-two:before{content:"\e35a"}.fa-square-ellipsis-vertical:before{content:"\e26f"}.fa-calendar-users:before{content:"\e5e2"}.fa-podcast:before{content:"\f2ce"}.fa-bee:before{content:"\e0b2"}.fa-temperature-4:before,.fa-temperature-full:before,.fa-thermometer-4:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-bell:before{content:"\f0f3"}.fa-candy-bar:before,.fa-chocolate-bar:before{content:"\e3e8"}.fa-xmark-large:before{content:"\e59b"}.fa-pinata:before{content:"\e3c3"}.fa-file-ppt:before{content:"\e64a"}.fa-arrows-from-line:before{content:"\e0a4"}.fa-superscript:before{content:"\f12b"}.fa-bowl-spoon:before{content:"\e3e0"}.fa-hexagon-check:before{content:"\e416"}.fa-plug-circle-xmark:before{content:"\e560"}.fa-star-of-life:before{content:"\f621"}.fa-phone-slash:before{content:"\f3dd"}.fa-traffic-light-stop:before{content:"\f63a"}.fa-paint-roller:before{content:"\f5aa"}.fa-accent-grave:before{content:"\60"}.fa-hands-helping:before,.fa-handshake-angle:before{content:"\f4c4"}.fa-circle-0:before{content:"\e0ed"}.fa-dial-med-low:before{content:"\e160"}.fa-location-dot:before,.fa-map-marker-alt:before{content:"\f3c5"}.fa-crab:before{content:"\e3ff"}.fa-box-full:before,.fa-box-open-full:before{content:"\f49c"}.fa-file:before{content:"\f15b"}.fa-greater-than:before{content:"\3e"}.fa-quotes:before{content:"\e234"}.fa-pretzel:before{content:"\e441"}.fa-t-rex:before{content:"\e629"}.fa-person-swimming:before,.fa-swimmer:before{content:"\f5c4"}.fa-arrow-down:before{content:"\f063"}.fa-user-robot-xmarks:before{content:"\e4a7"}.fa-comment-alt-quote:before,.fa-message-quote:before{content:"\e1e4"}.fa-candy-corn:before{content:"\f6bd"}.fa-folder-magnifying-glass:before,.fa-folder-search:before{content:"\e18b"}.fa-notebook:before{content:"\e201"}.fa-droplet:before,.fa-tint:before{content:"\f043"}.fa-bullseye-pointer:before{content:"\f649"}.fa-eraser:before{content:"\f12d"}.fa-hexagon-image:before{content:"\e504"}.fa-earth-america:before,.fa-earth-americas:before,.fa-earth:before,.fa-globe-americas:before{content:"\f57d"}.fa-file-svg:before{content:"\e64b"}.fa-crate-apple:before{content:"\f6b1"}.fa-apple-crate:before{content:"\f6b1"}.fa-person-burst:before{content:"\e53b"}.fa-game-board:before{content:"\f867"}.fa-hat-chef:before{content:"\f86b"}.fa-hand-back-point-right:before{content:"\e1a1"}.fa-dove:before{content:"\f4ba"}.fa-snowflake-droplets:before{content:"\e5c1"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-grid-4:before{content:"\e198"}.fa-socks:before{content:"\f696"}.fa-face-sunglasses:before{content:"\e398"}.fa-inbox:before{content:"\f01c"}.fa-square-0:before{content:"\e255"}.fa-section:before{content:"\e447"}.fa-box-up:before,.fa-square-this-way-up:before{content:"\f49f"}.fa-gauge-high:before,.fa-tachometer-alt-fast:before,.fa-tachometer-alt:before{content:"\f625"}.fa-square-ampersand:before{content:"\e260"}.fa-envelope-open-text:before{content:"\f658"}.fa-lamp-desk:before{content:"\e014"}.fa-hospital-alt:before,.fa-hospital-wide:before,.fa-hospital:before{content:"\f0f8"}.fa-poll-people:before{content:"\f759"}.fa-glass-whiskey-rocks:before,.fa-whiskey-glass-ice:before{content:"\f7a1"}.fa-wine-bottle:before{content:"\f72f"}.fa-chess-rook:before{content:"\f447"}.fa-user-bounty-hunter:before{content:"\e2bf"}.fa-bars-staggered:before,.fa-reorder:before,.fa-stream:before{content:"\f550"}.fa-diagram-sankey:before{content:"\e158"}.fa-cloud-hail-mixed:before{content:"\f73a"}.fa-circle-up-left:before{content:"\e128"}.fa-dharmachakra:before{content:"\f655"}.fa-objects-align-left:before{content:"\e3be"}.fa-oil-can-drip:before{content:"\e205"}.fa-face-smiling-hands:before{content:"\e396"}.fa-broccoli:before{content:"\e3e2"}.fa-route-interstate:before{content:"\f61b"}.fa-ear-muffs:before{content:"\f795"}.fa-hotdog:before{content:"\f80f"}.fa-transporter-empty:before{content:"\e046"}.fa-blind:before,.fa-person-walking-with-cane:before{content:"\f29d"}.fa-angle-90:before{content:"\e08d"}.fa-rectangle-terminal:before{content:"\e236"}.fa-kite:before{content:"\f6f4"}.fa-drum:before{content:"\f569"}.fa-scrubber:before{content:"\f2f8"}.fa-ice-cream:before{content:"\f810"}.fa-heart-circle-bolt:before{content:"\e4fc"}.fa-fish-bones:before{content:"\e304"}.fa-deer-rudolph:before{content:"\f78f"}.fa-fax:before{content:"\f1ac"}.fa-paragraph:before{content:"\f1dd"}.fa-head-side-heart:before{content:"\e1aa"}.fa-square-e:before{content:"\e26d"}.fa-meter-fire:before{content:"\e1eb"}.fa-cloud-hail:before{content:"\f739"}.fa-check-to-slot:before,.fa-vote-yea:before{content:"\f772"}.fa-money-from-bracket:before{content:"\e312"}.fa-star-half:before{content:"\f089"}.fa-car-bus:before{content:"\f85a"}.fa-speaker:before{content:"\f8df"}.fa-timer:before{content:"\e29e"}.fa-boxes-alt:before,.fa-boxes-stacked:before,.fa-boxes:before{content:"\f468"}.fa-landmark-magnifying-glass:before{content:"\e622"}.fa-grill-hot:before{content:"\e5a5"}.fa-ballot-check:before{content:"\f733"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-assistive-listening-systems:before,.fa-ear-listen:before{content:"\f2a2"}.fa-file-minus:before{content:"\f318"}.fa-tree-city:before{content:"\e587"}.fa-play:before{content:"\f04b"}.fa-font:before{content:"\f031"}.fa-coffee-togo:before,.fa-cup-togo:before{content:"\f6c5"}.fa-square-down-left:before{content:"\e26b"}.fa-burger-lettuce:before{content:"\e3e3"}.fa-rupiah-sign:before{content:"\e23d"}.fa-magnifying-glass:before,.fa-search:before{content:"\f002"}.fa-ping-pong-paddle-ball:before,.fa-table-tennis-paddle-ball:before,.fa-table-tennis:before{content:"\f45d"}.fa-diagnoses:before,.fa-person-dots-from-line:before{content:"\f470"}.fa-chevron-double-down:before,.fa-chevrons-down:before{content:"\f322"}.fa-trash-can-arrow-up:before,.fa-trash-restore-alt:before{content:"\f82a"}.fa-signal-3:before,.fa-signal-good:before{content:"\f68e"}.fa-location-question:before,.fa-map-marker-question:before{content:"\f60b"}.fa-floppy-disk-circle-xmark:before,.fa-floppy-disk-times:before,.fa-save-circle-xmark:before,.fa-save-times:before{content:"\e181"}.fa-naira-sign:before{content:"\e1f6"}.fa-peach:before{content:"\e20b"}.fa-taxi-bus:before{content:"\e298"}.fa-bracket-curly-left:before,.fa-bracket-curly:before{content:"\7b"}.fa-lobster:before{content:"\e421"}.fa-cart-flatbed-empty:before,.fa-dolly-flatbed-empty:before{content:"\f476"}.fa-colon:before{content:"\3a"}.fa-cart-arrow-down:before{content:"\f218"}.fa-wand:before{content:"\f72a"}.fa-walkie-talkie:before{content:"\f8ef"}.fa-file-edit:before,.fa-file-pen:before{content:"\f31c"}.fa-receipt:before{content:"\f543"}.fa-table-picnic:before{content:"\e32d"}.fa-pen-square:before,.fa-pencil-square:before,.fa-square-pen:before{content:"\f14b"}.fa-circle-microphone-lines:before,.fa-microphone-circle-alt:before{content:"\e117"}.fa-desktop-slash:before,.fa-display-slash:before{content:"\e2fa"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-person-circle-exclamation:before{content:"\e53f"}.fa-transporter-2:before{content:"\e044"}.fa-hand-receiving:before,.fa-hands-holding-diamond:before{content:"\f47c"}.fa-money-bill-simple-wave:before{content:"\e1f2"}.fa-chevron-down:before{content:"\f078"}.fa-battery-5:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-bell-plus:before{content:"\f849"}.fa-book-arrow-right:before{content:"\e0b9"}.fa-hospitals:before{content:"\f80e"}.fa-club:before{content:"\f327"}.fa-skull-crossbones:before{content:"\f714"}.fa-dewpoint:before,.fa-droplet-degree:before{content:"\f748"}.fa-code-compare:before{content:"\e13a"}.fa-list-dots:before,.fa-list-ul:before{content:"\f0ca"}.fa-hand-holding-magic:before{content:"\f6e5"}.fa-watermelon-slice:before{content:"\e337"}.fa-circle-ellipsis:before{content:"\e10a"}.fa-school-lock:before{content:"\e56f"}.fa-tower-cell:before{content:"\e585"}.fa-sd-cards:before{content:"\e240"}.fa-jug-bottle:before{content:"\e5fb"}.fa-down-long:before,.fa-long-arrow-alt-down:before{content:"\f309"}.fa-envelopes:before{content:"\e170"}.fa-phone-office:before{content:"\f67d"}.fa-ranking-star:before{content:"\e561"}.fa-chess-king:before{content:"\f43f"}.fa-nfc-pen:before{content:"\e1fa"}.fa-person-harassing:before{content:"\e549"}.fa-magnifying-glass-play:before{content:"\e660"}.fa-hat-winter:before{content:"\f7a8"}.fa-brazilian-real-sign:before{content:"\e46c"}.fa-landmark-alt:before,.fa-landmark-dome:before{content:"\f752"}.fa-bone-break:before{content:"\f5d8"}.fa-arrow-up:before{content:"\f062"}.fa-down-from-dotted-line:before{content:"\e407"}.fa-television:before,.fa-tv-alt:before,.fa-tv:before{content:"\f26c"}.fa-border-left:before{content:"\f84f"}.fa-circle-divide:before{content:"\e106"}.fa-shrimp:before{content:"\e448"}.fa-list-check:before,.fa-tasks:before{content:"\f0ae"}.fa-diagram-subtask:before{content:"\e479"}.fa-jug-detergent:before{content:"\e519"}.fa-circle-user:before,.fa-user-circle:before{content:"\f2bd"}.fa-square-y:before{content:"\e287"}.fa-user-doctor-hair:before{content:"\e458"}.fa-planet-ringed:before{content:"\e020"}.fa-mushroom:before{content:"\e425"}.fa-user-shield:before{content:"\f505"}.fa-megaphone:before{content:"\f675"}.fa-wreath-laurel:before{content:"\e5d2"}.fa-circle-exclamation-check:before{content:"\e10d"}.fa-wind:before{content:"\f72e"}.fa-box-dollar:before,.fa-box-usd:before{content:"\f4a0"}.fa-car-burst:before,.fa-car-crash:before{content:"\f5e1"}.fa-y:before{content:"\59"}.fa-user-headset:before{content:"\f82d"}.fa-arrows-retweet:before,.fa-retweet-alt:before{content:"\f361"}.fa-person-snowboarding:before,.fa-snowboarding:before{content:"\f7ce"}.fa-chevron-square-right:before,.fa-square-chevron-right:before{content:"\f32b"}.fa-lacrosse-stick-ball:before{content:"\e3b6"}.fa-shipping-fast:before,.fa-truck-fast:before{content:"\f48b"}.fa-user-magnifying-glass:before{content:"\e5c5"}.fa-star-sharp:before{content:"\e28b"}.fa-comment-heart:before{content:"\e5c8"}.fa-circle-1:before{content:"\e0ee"}.fa-circle-star:before,.fa-star-circle:before{content:"\e123"}.fa-fish:before{content:"\f578"}.fa-cloud-fog:before,.fa-fog:before{content:"\f74e"}.fa-waffle:before{content:"\e466"}.fa-music-alt:before,.fa-music-note:before{content:"\f8cf"}.fa-hexagon-exclamation:before{content:"\e417"}.fa-cart-shopping-fast:before{content:"\e0dc"}.fa-object-union:before{content:"\e49f"}.fa-user-graduate:before{content:"\f501"}.fa-starfighter:before{content:"\e037"}.fa-adjust:before,.fa-circle-half-stroke:before{content:"\f042"}.fa-arrow-right-long-to-line:before{content:"\e3d5"}.fa-arrow-square-down:before,.fa-square-arrow-down:before{content:"\f339"}.fa-diamond-half-stroke:before{content:"\e5b8"}.fa-clapperboard:before{content:"\e131"}.fa-chevron-square-left:before,.fa-square-chevron-left:before{content:"\f32a"}.fa-phone-intercom:before{content:"\e434"}.fa-chain-horizontal:before,.fa-link-horizontal:before{content:"\e1cb"}.fa-mango:before{content:"\e30f"}.fa-music-alt-slash:before,.fa-music-note-slash:before{content:"\f8d0"}.fa-circle-radiation:before,.fa-radiation-alt:before{content:"\f7ba"}.fa-face-tongue-sweat:before{content:"\e39e"}.fa-globe-stand:before{content:"\f5f6"}.fa-baseball-ball:before,.fa-baseball:before{content:"\f433"}.fa-circle-p:before{content:"\e11a"}.fa-award-simple:before{content:"\e0ab"}.fa-jet-fighter-up:before{content:"\e518"}.fa-diagram-project:before,.fa-project-diagram:before{content:"\f542"}.fa-pedestal:before{content:"\e20d"}.fa-chart-pyramid:before{content:"\e0e6"}.fa-sidebar:before{content:"\e24e"}.fa-frosty-head:before,.fa-snowman-head:before{content:"\f79b"}.fa-copy:before{content:"\f0c5"}.fa-burger-glass:before{content:"\e0ce"}.fa-volume-mute:before,.fa-volume-times:before,.fa-volume-xmark:before{content:"\f6a9"}.fa-hand-sparkles:before{content:"\e05d"}.fa-bars-filter:before{content:"\e0ad"}.fa-paintbrush-pencil:before{content:"\e206"}.fa-party-bell:before{content:"\e31a"}.fa-user-vneck-hair:before{content:"\e462"}.fa-jack-o-lantern:before{content:"\f30e"}.fa-grip-horizontal:before,.fa-grip:before{content:"\f58d"}.fa-share-from-square:before,.fa-share-square:before{content:"\f14d"}.fa-keynote:before{content:"\f66c"}.fa-child-combatant:before,.fa-child-rifle:before{content:"\e4e0"}.fa-gun:before{content:"\e19b"}.fa-phone-square:before,.fa-square-phone:before{content:"\f098"}.fa-hat-beach:before{content:"\e606"}.fa-add:before,.fa-plus:before{content:"\2b"}.fa-expand:before{content:"\f065"}.fa-computer:before{content:"\e4e5"}.fa-fort:before{content:"\e486"}.fa-cloud-check:before{content:"\e35c"}.fa-close:before,.fa-multiply:before,.fa-remove:before,.fa-times:before,.fa-xmark:before{content:"\f00d"}.fa-face-smirking:before{content:"\e397"}.fa-arrows-up-down-left-right:before,.fa-arrows:before{content:"\f047"}.fa-chalkboard-teacher:before,.fa-chalkboard-user:before{content:"\f51c"}.fa-rhombus:before{content:"\e23b"}.fa-claw-marks:before{content:"\f6c2"}.fa-peso-sign:before{content:"\e222"}.fa-face-smile-tongue:before{content:"\e394"}.fa-cart-circle-xmark:before{content:"\e3f4"}.fa-building-shield:before{content:"\e4d8"}.fa-circle-phone-flip:before,.fa-phone-circle-alt:before{content:"\e11c"}.fa-baby:before{content:"\f77c"}.fa-users-line:before{content:"\e592"}.fa-quote-left-alt:before,.fa-quote-left:before{content:"\f10d"}.fa-tractor:before{content:"\f722"}.fa-key-skeleton:before{content:"\f6f3"}.fa-trash-arrow-up:before,.fa-trash-restore:before{content:"\f829"}.fa-arrow-down-up-lock:before{content:"\e4b0"}.fa-arrow-down-to-bracket:before{content:"\e094"}.fa-lines-leaning:before{content:"\e51e"}.fa-square-q:before{content:"\e27b"}.fa-ruler-combined:before{content:"\f546"}.fa-icons-alt:before,.fa-symbols:before{content:"\f86e"}.fa-copyright:before{content:"\f1f9"}.fa-flask-gear:before{content:"\e5f1"}.fa-highlighter-line:before{content:"\e1af"}.fa-bracket-left:before,.fa-bracket-square:before,.fa-bracket:before{content:"\5b"}.fa-island-tree-palm:before,.fa-island-tropical:before{content:"\f811"}.fa-arrow-from-left:before,.fa-arrow-right-from-line:before{content:"\f343"}.fa-h2:before{content:"\f314"}.fa-equals:before{content:"\3d"}.fa-cake-slice:before,.fa-shortcake:before{content:"\e3e5"}.fa-building-magnifying-glass:before{content:"\e61c"}.fa-peanut:before{content:"\e430"}.fa-wrench-simple:before{content:"\e2d1"}.fa-blender:before{content:"\f517"}.fa-teeth:before{content:"\f62e"}.fa-tally-2:before{content:"\e295"}.fa-ils:before,.fa-shekel-sign:before,.fa-shekel:before,.fa-sheqel-sign:before,.fa-sheqel:before{content:"\f20b"}.fa-cars:before{content:"\f85b"}.fa-axe-battle:before{content:"\f6b3"}.fa-user-hair-long:before{content:"\e45b"}.fa-map:before{content:"\f279"}.fa-arrow-left-from-arc:before{content:"\e615"}.fa-file-circle-info:before{content:"\e493"}.fa-face-disappointed:before{content:"\e36f"}.fa-lasso-sparkles:before{content:"\e1c9"}.fa-clock-eleven:before{content:"\e347"}.fa-rocket:before{content:"\f135"}.fa-siren-on:before{content:"\e02e"}.fa-clock-ten:before{content:"\e354"}.fa-candle-holder:before{content:"\f6bc"}.fa-video-arrow-down-left:before{content:"\e2c8"}.fa-photo-film:before,.fa-photo-video:before{content:"\f87c"}.fa-floppy-disk-circle-arrow-right:before,.fa-save-circle-arrow-right:before{content:"\e180"}.fa-folder-minus:before{content:"\f65d"}.fa-planet-moon:before{content:"\e01f"}.fa-face-eyes-xmarks:before{content:"\e374"}.fa-chart-scatter:before{content:"\f7ee"}.fa-display-arrow-down:before{content:"\e164"}.fa-store:before{content:"\f54e"}.fa-arrow-trend-up:before{content:"\e098"}.fa-plug-circle-minus:before{content:"\e55e"}.fa-olive-branch:before{content:"\e317"}.fa-angle:before{content:"\e08c"}.fa-vacuum-robot:before{content:"\e04e"}.fa-sign-hanging:before,.fa-sign:before{content:"\f4d9"}.fa-square-divide:before{content:"\e26a"}.fa-folder-check:before{content:"\e64e"}.fa-signal-stream-slash:before{content:"\e250"}.fa-bezier-curve:before{content:"\f55b"}.fa-eye-dropper-half:before{content:"\e173"}.fa-store-lock:before{content:"\e4a6"}.fa-bell-slash:before{content:"\f1f6"}.fa-cloud-bolt-sun:before,.fa-thunderstorm-sun:before{content:"\f76e"}.fa-camera-slash:before{content:"\e0d9"}.fa-comment-quote:before{content:"\e14c"}.fa-tablet-android:before,.fa-tablet:before{content:"\f3fb"}.fa-school-flag:before{content:"\e56e"}.fa-message-code:before{content:"\e1df"}.fa-glass-half-empty:before,.fa-glass-half-full:before,.fa-glass-half:before{content:"\e192"}.fa-fill:before{content:"\f575"}.fa-comment-alt-minus:before,.fa-message-minus:before{content:"\f4a7"}.fa-angle-up:before{content:"\f106"}.fa-dinosaur:before{content:"\e5fe"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-chain-horizontal-slash:before,.fa-link-horizontal-slash:before{content:"\e1cc"}.fa-holly-berry:before{content:"\f7aa"}.fa-nose:before{content:"\e5bd"}.fa-arrow-left-to-arc:before{content:"\e616"}.fa-chevron-left:before{content:"\f053"}.fa-bacteria:before{content:"\e059"}.fa-clouds:before{content:"\f744"}.fa-money-bill-simple:before{content:"\e1f1"}.fa-hand-lizard:before{content:"\f258"}.fa-table-pivot:before{content:"\e291"}.fa-filter-slash:before{content:"\e17d"}.fa-trash-can-arrow-turn-left:before,.fa-trash-can-undo:before,.fa-trash-undo-alt:before{content:"\f896"}.fa-notdef:before{content:"\e1fe"}.fa-disease:before{content:"\f7fa"}.fa-person-to-door:before{content:"\e433"}.fa-turntable:before{content:"\f8e4"}.fa-briefcase-medical:before{content:"\f469"}.fa-genderless:before{content:"\f22d"}.fa-chevron-right:before{content:"\f054"}.fa-signal-1:before,.fa-signal-weak:before{content:"\f68c"}.fa-clock-five:before{content:"\e349"}.fa-retweet:before{content:"\f079"}.fa-car-alt:before,.fa-car-rear:before{content:"\f5de"}.fa-pump-soap:before{content:"\e06b"}.fa-computer-classic:before{content:"\f8b1"}.fa-frame:before{content:"\e495"}.fa-video-slash:before{content:"\f4e2"}.fa-battery-2:before,.fa-battery-quarter:before{content:"\f243"}.fa-ellipsis-h-alt:before,.fa-ellipsis-stroke:before{content:"\f39b"}.fa-radio:before{content:"\f8d7"}.fa-baby-carriage:before,.fa-carriage-baby:before{content:"\f77d"}.fa-face-expressionless:before{content:"\e373"}.fa-down-to-dotted-line:before{content:"\e408"}.fa-cloud-music:before{content:"\f8ae"}.fa-traffic-light:before{content:"\f637"}.fa-cloud-minus:before{content:"\e35d"}.fa-thermometer:before{content:"\f491"}.fa-shield-minus:before{content:"\e249"}.fa-vr-cardboard:before{content:"\f729"}.fa-car-tilt:before{content:"\f5e5"}.fa-gauge-circle-minus:before{content:"\e497"}.fa-brightness-low:before{content:"\e0ca"}.fa-hand-middle-finger:before{content:"\f806"}.fa-percent:before,.fa-percentage:before{content:"\25"}.fa-truck-moving:before{content:"\f4df"}.fa-glass-water-droplet:before{content:"\e4f5"}.fa-conveyor-belt:before{content:"\f46e"}.fa-location-check:before,.fa-map-marker-check:before{content:"\f606"}.fa-coin-vertical:before{content:"\e3fd"}.fa-display:before{content:"\e163"}.fa-person-sign:before{content:"\f757"}.fa-face-smile:before,.fa-smile:before{content:"\f118"}.fa-phone-hangup:before{content:"\e225"}.fa-signature-slash:before{content:"\e3cb"}.fa-thumb-tack:before,.fa-thumbtack:before{content:"\f08d"}.fa-wheat-slash:before{content:"\e339"}.fa-trophy:before{content:"\f091"}.fa-clouds-sun:before{content:"\f746"}.fa-person-praying:before,.fa-pray:before{content:"\f683"}.fa-hammer:before{content:"\f6e3"}.fa-face-vomit:before{content:"\e3a0"}.fa-speakers:before{content:"\f8e0"}.fa-teletype-answer:before,.fa-tty-answer:before{content:"\e2b9"}.fa-mug-tea-saucer:before{content:"\e1f5"}.fa-diagram-lean-canvas:before{content:"\e156"}.fa-alt:before{content:"\e08a"}.fa-dial-med-high:before,.fa-dial:before{content:"\e15b"}.fa-hand-peace:before{content:"\f25b"}.fa-circle-trash:before,.fa-trash-circle:before{content:"\e126"}.fa-rotate:before,.fa-sync-alt:before{content:"\f2f1"}.fa-circle-quarters:before{content:"\e3f8"}.fa-spinner:before{content:"\f110"}.fa-tower-control:before{content:"\e2a2"}.fa-arrow-up-triangle-square:before,.fa-sort-shapes-up:before{content:"\f88a"}.fa-whale:before{content:"\f72c"}.fa-robot:before{content:"\f544"}.fa-peace:before{content:"\f67c"}.fa-party-horn:before{content:"\e31b"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-sun-alt:before,.fa-sun-bright:before{content:"\e28f"}.fa-warehouse:before{content:"\f494"}.fa-conveyor-belt-arm:before{content:"\e5f8"}.fa-lock-keyhole-open:before,.fa-lock-open-alt:before{content:"\f3c2"}.fa-box-fragile:before,.fa-square-fragile:before,.fa-square-wine-glass-crack:before{content:"\f49b"}.fa-arrow-up-right-dots:before{content:"\e4b7"}.fa-square-n:before{content:"\e277"}.fa-splotch:before{content:"\f5bc"}.fa-face-grin-hearts:before,.fa-grin-hearts:before{content:"\f584"}.fa-meter:before{content:"\e1e8"}.fa-mandolin:before{content:"\f6f9"}.fa-dice-four:before{content:"\f524"}.fa-sim-card:before{content:"\f7c4"}.fa-transgender-alt:before,.fa-transgender:before{content:"\f225"}.fa-mercury:before{content:"\f223"}.fa-up-from-bracket:before{content:"\e590"}.fa-knife-kitchen:before{content:"\f6f5"}.fa-border-right:before{content:"\f852"}.fa-arrow-turn-down:before,.fa-level-down:before{content:"\f149"}.fa-spade:before{content:"\f2f4"}.fa-card-spade:before{content:"\e3ec"}.fa-line-columns:before{content:"\f870"}.fa-arrow-right-to-line:before,.fa-arrow-to-right:before{content:"\f340"}.fa-person-falling-burst:before{content:"\e547"}.fa-flag-pennant:before,.fa-pennant:before{content:"\f456"}.fa-conveyor-belt-empty:before{content:"\e150"}.fa-user-group-simple:before{content:"\e603"}.fa-award:before{content:"\f559"}.fa-ticket-alt:before,.fa-ticket-simple:before{content:"\f3ff"}.fa-building:before{content:"\f1ad"}.fa-angle-double-left:before,.fa-angles-left:before{content:"\f100"}.fa-camcorder:before,.fa-video-handheld:before{content:"\f8a8"}.fa-pancakes:before{content:"\e42d"}.fa-album-circle-user:before{content:"\e48d"}.fa-subtitles-slash:before{content:"\e610"}.fa-qrcode:before{content:"\f029"}.fa-dice-d10:before{content:"\f6cd"}.fa-fireplace:before{content:"\f79a"}.fa-browser:before{content:"\f37e"}.fa-pen-paintbrush:before,.fa-pencil-paintbrush:before{content:"\f618"}.fa-fish-cooked:before{content:"\f7fe"}.fa-chair-office:before{content:"\f6c1"}.fa-magnifying-glass-music:before{content:"\e65f"}.fa-nesting-dolls:before{content:"\e3ba"}.fa-clock-rotate-left:before,.fa-history:before{content:"\f1da"}.fa-trumpet:before{content:"\f8e3"}.fa-face-grin-beam-sweat:before,.fa-grin-beam-sweat:before{content:"\f583"}.fa-fire-smoke:before{content:"\f74b"}.fa-phone-missed:before{content:"\e226"}.fa-arrow-right-from-file:before,.fa-file-export:before{content:"\f56e"}.fa-shield-blank:before,.fa-shield:before{content:"\f132"}.fa-arrow-up-short-wide:before,.fa-sort-amount-up-alt:before{content:"\f885"}.fa-arrows-repeat-1:before,.fa-repeat-1-alt:before{content:"\f366"}.fa-gun-slash:before{content:"\e19c"}.fa-avocado:before{content:"\e0aa"}.fa-binary:before{content:"\e33b"}.fa-glasses-alt:before,.fa-glasses-round:before{content:"\f5f5"}.fa-phone-plus:before{content:"\f4d2"}.fa-ditto:before{content:"\22"}.fa-person-seat:before{content:"\e21e"}.fa-house-medical:before{content:"\e3b2"}.fa-golf-ball-tee:before,.fa-golf-ball:before{content:"\f450"}.fa-chevron-circle-left:before,.fa-circle-chevron-left:before{content:"\f137"}.fa-house-chimney-window:before{content:"\e00d"}.fa-scythe:before{content:"\f710"}.fa-pen-nib:before{content:"\f5ad"}.fa-ban-parking:before,.fa-parking-circle-slash:before{content:"\f616"}.fa-tent-arrow-turn-left:before{content:"\e580"}.fa-face-diagonal-mouth:before{content:"\e47e"}.fa-diagram-cells:before{content:"\e475"}.fa-cricket-bat-ball:before,.fa-cricket:before{content:"\f449"}.fa-tents:before{content:"\e582"}.fa-magic:before,.fa-wand-magic:before{content:"\f0d0"}.fa-dog:before{content:"\f6d3"}.fa-pen-line:before{content:"\e212"}.fa-atom-alt:before,.fa-atom-simple:before{content:"\f5d3"}.fa-ampersand:before{content:"\26"}.fa-carrot:before{content:"\f787"}.fa-arrow-from-bottom:before,.fa-arrow-up-from-line:before{content:"\f342"}.fa-moon:before{content:"\f186"}.fa-pen-slash:before{content:"\e213"}.fa-wine-glass-alt:before,.fa-wine-glass-empty:before{content:"\f5ce"}.fa-square-star:before{content:"\e27f"}.fa-cheese:before{content:"\f7ef"}.fa-send-backward:before{content:"\f87f"}.fa-yin-yang:before{content:"\f6ad"}.fa-music:before{content:"\f001"}.fa-compass-slash:before{content:"\f5e9"}.fa-clock-one:before{content:"\e34e"}.fa-file-music:before{content:"\f8b6"}.fa-code-commit:before{content:"\f386"}.fa-temperature-low:before{content:"\f76b"}.fa-biking:before,.fa-person-biking:before{content:"\f84a"}.fa-display-chart-up-circle-currency:before{content:"\e5e5"}.fa-skeleton:before{content:"\f620"}.fa-circle-g:before{content:"\e10f"}.fa-circle-arrow-up-left:before{content:"\e0fb"}.fa-coin-blank:before{content:"\e3fb"}.fa-broom:before{content:"\f51a"}.fa-vacuum:before{content:"\e04d"}.fa-shield-heart:before{content:"\e574"}.fa-card-heart:before{content:"\e3eb"}.fa-lightbulb-cfl-on:before{content:"\e5a7"}.fa-melon:before{content:"\e310"}.fa-gopuram:before{content:"\f664"}.fa-earth-oceania:before,.fa-globe-oceania:before{content:"\e47b"}.fa-container-storage:before{content:"\f4b7"}.fa-face-pouting:before{content:"\e387"}.fa-square-xmark:before,.fa-times-square:before,.fa-xmark-square:before{content:"\f2d3"}.fa-exploding-head:before,.fa-face-explode:before{content:"\e2fe"}.fa-hashtag:before{content:"\23"}.fa-expand-alt:before,.fa-up-right-and-down-left-from-center:before{content:"\f424"}.fa-oil-can:before{content:"\f613"}.fa-t:before{content:"\54"}.fa-transformer-bolt:before{content:"\e2a4"}.fa-hippo:before{content:"\f6ed"}.fa-chart-column:before{content:"\e0e3"}.fa-cassette-vhs:before,.fa-vhs:before{content:"\f8ec"}.fa-infinity:before{content:"\f534"}.fa-vial-circle-check:before{content:"\e596"}.fa-chimney:before{content:"\f78b"}.fa-object-intersect:before{content:"\e49d"}.fa-person-arrow-down-to-line:before{content:"\e538"}.fa-voicemail:before{content:"\f897"}.fa-block-brick:before,.fa-wall-brick:before{content:"\e3db"}.fa-fan:before{content:"\f863"}.fa-bags-shopping:before{content:"\f847"}.fa-paragraph-left:before,.fa-paragraph-rtl:before{content:"\f878"}.fa-person-walking-luggage:before{content:"\e554"}.fa-caravan-alt:before,.fa-caravan-simple:before{content:"\e000"}.fa-turtle:before{content:"\f726"}.fa-pencil-mechanical:before{content:"\e5ca"}.fa-arrows-alt-v:before,.fa-up-down:before{content:"\f338"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-booth-curtain:before{content:"\f734"}.fa-calendar:before{content:"\f133"}.fa-box-heart:before{content:"\f49d"}.fa-trailer:before{content:"\e041"}.fa-user-doctor-message:before,.fa-user-md-chat:before{content:"\f82e"}.fa-bahai:before,.fa-haykal:before{content:"\f666"}.fa-lighthouse:before{content:"\e612"}.fa-amp-guitar:before{content:"\f8a1"}.fa-sd-card:before{content:"\f7c2"}.fa-volume-slash:before{content:"\f2e2"}.fa-border-bottom:before{content:"\f84d"}.fa-wifi-1:before,.fa-wifi-weak:before{content:"\f6aa"}.fa-dragon:before{content:"\f6d5"}.fa-shoe-prints:before{content:"\f54b"}.fa-circle-plus:before,.fa-plus-circle:before{content:"\f055"}.fa-face-grin-tongue-wink:before,.fa-grin-tongue-wink:before{content:"\f58b"}.fa-hand-holding:before{content:"\f4bd"}.fa-plug-circle-exclamation:before{content:"\e55d"}.fa-chain-broken:before,.fa-chain-slash:before,.fa-link-slash:before,.fa-unlink:before{content:"\f127"}.fa-clone:before{content:"\f24d"}.fa-person-walking-arrow-loop-left:before{content:"\e551"}.fa-arrow-up-z-a:before,.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-fire-alt:before,.fa-fire-flame-curved:before{content:"\f7e4"}.fa-tornado:before{content:"\f76f"}.fa-file-circle-plus:before{content:"\e494"}.fa-delete-right:before{content:"\e154"}.fa-book-quran:before,.fa-quran:before{content:"\f687"}.fa-circle-quarter:before{content:"\e11f"}.fa-anchor:before{content:"\f13d"}.fa-border-all:before{content:"\f84c"}.fa-function:before{content:"\f661"}.fa-angry:before,.fa-face-angry:before{content:"\f556"}.fa-people-simple:before{content:"\e21b"}.fa-cookie-bite:before{content:"\f564"}.fa-arrow-trend-down:before{content:"\e097"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-face-monocle:before{content:"\e380"}.fa-draw-polygon:before{content:"\f5ee"}.fa-balance-scale:before,.fa-scale-balanced:before{content:"\f24e"}.fa-calendar-lines:before,.fa-calendar-note:before{content:"\e0d5"}.fa-arrow-down-big-small:before,.fa-sort-size-down:before{content:"\f88c"}.fa-gauge-simple-high:before,.fa-tachometer-fast:before,.fa-tachometer:before{content:"\f62a"}.fa-do-not-enter:before{content:"\f5ec"}.fa-shower:before{content:"\f2cc"}.fa-dice-d8:before{content:"\f6d2"}.fa-desktop-alt:before,.fa-desktop:before{content:"\f390"}.fa-m:before{content:"\4d"}.fa-spinner-scale:before{content:"\e62a"}.fa-grip-dots-vertical:before{content:"\e411"}.fa-face-viewfinder:before{content:"\e2ff"}.fa-creemee:before,.fa-soft-serve:before{content:"\e400"}.fa-h5:before{content:"\e412"}.fa-hand-back-point-down:before{content:"\e19e"}.fa-table-list:before,.fa-th-list:before{content:"\f00b"}.fa-basket-shopping-minus:before{content:"\e652"}.fa-comment-sms:before,.fa-sms:before{content:"\f7cd"}.fa-rectangle-landscape:before,.fa-rectangle:before{content:"\f2fa"}.fa-clipboard-list-check:before{content:"\f737"}.fa-turkey:before{content:"\f725"}.fa-book:before{content:"\f02d"}.fa-user-plus:before{content:"\f234"}.fa-ice-skate:before{content:"\f7ac"}.fa-check:before{content:"\f00c"}.fa-battery-4:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-tomato:before{content:"\e330"}.fa-sword-laser:before{content:"\e03b"}.fa-house-circle-check:before{content:"\e509"}.fa-buildings:before{content:"\e0cc"}.fa-angle-left:before{content:"\f104"}.fa-cart-flatbed-boxes:before,.fa-dolly-flatbed-alt:before{content:"\f475"}.fa-diagram-successor:before{content:"\e47a"}.fa-truck-arrow-right:before{content:"\e58b"}.fa-square-w:before{content:"\e285"}.fa-arrows-split-up-and-left:before{content:"\e4bc"}.fa-lamp:before{content:"\f4ca"}.fa-airplay:before{content:"\e089"}.fa-fist-raised:before,.fa-hand-fist:before{content:"\f6de"}.fa-shield-quartered:before{content:"\e575"}.fa-slash-forward:before{content:"\2f"}.fa-location-pen:before,.fa-map-marker-edit:before{content:"\f607"}.fa-cloud-moon:before{content:"\f6c3"}.fa-pot-food:before{content:"\e43f"}.fa-briefcase:before{content:"\f0b1"}.fa-person-falling:before{content:"\e546"}.fa-image-portrait:before,.fa-portrait:before{content:"\f3e0"}.fa-user-tag:before{content:"\f507"}.fa-rug:before{content:"\e569"}.fa-print-slash:before{content:"\f686"}.fa-earth-europe:before,.fa-globe-europe:before{content:"\f7a2"}.fa-cart-flatbed-suitcase:before,.fa-luggage-cart:before{content:"\f59d"}.fa-hand-back-point-ribbon:before{content:"\e1a0"}.fa-rectangle-times:before,.fa-rectangle-xmark:before,.fa-times-rectangle:before,.fa-window-close:before{content:"\f410"}.fa-tire-rugged:before{content:"\f634"}.fa-lightbulb-dollar:before{content:"\f670"}.fa-cowbell:before{content:"\f8b3"}.fa-baht-sign:before{content:"\e0ac"}.fa-corner:before{content:"\e3fe"}.fa-chevron-double-right:before,.fa-chevrons-right:before{content:"\f324"}.fa-book-open:before{content:"\f518"}.fa-book-journal-whills:before,.fa-journal-whills:before{content:"\f66a"}.fa-inhaler:before{content:"\f5f9"}.fa-handcuffs:before{content:"\e4f8"}.fa-snake:before{content:"\f716"}.fa-exclamation-triangle:before,.fa-triangle-exclamation:before,.fa-warning:before{content:"\f071"}.fa-note-medical:before{content:"\e200"}.fa-database:before{content:"\f1c0"}.fa-down-left:before{content:"\e16a"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-face-thinking:before{content:"\e39b"}.fa-turn-down-right:before{content:"\e455"}.fa-bottle-droplet:before{content:"\e4c4"}.fa-mask-face:before{content:"\e1d7"}.fa-hill-rockslide:before{content:"\e508"}.fa-scanner-keyboard:before{content:"\f489"}.fa-circle-o:before{content:"\e119"}.fa-grid-horizontal:before{content:"\e307"}.fa-comment-alt-dollar:before,.fa-message-dollar:before{content:"\f650"}.fa-exchange-alt:before,.fa-right-left:before{content:"\f362"}.fa-columns-3:before{content:"\e361"}.fa-paper-plane:before{content:"\f1d8"}.fa-road-circle-exclamation:before{content:"\e565"}.fa-dungeon:before{content:"\f6d9"}.fa-hand-holding-box:before{content:"\f47b"}.fa-input-text:before{content:"\e1bf"}.fa-window-alt:before,.fa-window-flip:before{content:"\f40f"}.fa-align-right:before{content:"\f038"}.fa-scanner-gun:before,.fa-scanner:before{content:"\f488"}.fa-tire:before{content:"\f631"}.fa-engine:before{content:"\e16e"}.fa-money-bill-1-wave:before,.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-life-ring:before{content:"\f1cd"}.fa-hands:before,.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-caret-circle-right:before,.fa-circle-caret-right:before{content:"\f330"}.fa-turn-left:before{content:"\e636"}.fa-wheat:before{content:"\f72d"}.fa-file-spreadsheet:before{content:"\f65b"}.fa-audio-description-slash:before{content:"\e0a8"}.fa-bell-ring:before{content:"\e62c"}.fa-calendar-day:before{content:"\f783"}.fa-ladder-water:before,.fa-swimming-pool:before,.fa-water-ladder:before{content:"\f5c5"}.fa-arrows-up-down:before,.fa-arrows-v:before{content:"\f07d"}.fa-chess-pawn-alt:before,.fa-chess-pawn-piece:before{content:"\f444"}.fa-face-grimace:before,.fa-grimace:before{content:"\f57f"}.fa-wheelchair-alt:before,.fa-wheelchair-move:before{content:"\e2ce"}.fa-level-down-alt:before,.fa-turn-down:before{content:"\f3be"}.fa-square-s:before{content:"\e27d"}.fa-barcode-alt:before,.fa-rectangle-barcode:before{content:"\f463"}.fa-person-walking-arrow-right:before{content:"\e552"}.fa-envelope-square:before,.fa-square-envelope:before{content:"\f199"}.fa-dice:before{content:"\f522"}.fa-unicorn:before{content:"\f727"}.fa-bowling-ball:before{content:"\f436"}.fa-pompebled:before{content:"\e43d"}.fa-brain:before{content:"\f5dc"}.fa-watch-smart:before{content:"\e2cc"}.fa-book-user:before{content:"\f7e7"}.fa-sensor-cloud:before,.fa-sensor-smoke:before{content:"\e02c"}.fa-clapperboard-play:before{content:"\e132"}.fa-band-aid:before,.fa-bandage:before{content:"\f462"}.fa-calendar-minus:before{content:"\f272"}.fa-circle-xmark:before,.fa-times-circle:before,.fa-xmark-circle:before{content:"\f057"}.fa-circle-4:before{content:"\e0f1"}.fa-gifts:before{content:"\f79c"}.fa-album-collection:before{content:"\f8a0"}.fa-hotel:before{content:"\f594"}.fa-earth-asia:before,.fa-globe-asia:before{content:"\f57e"}.fa-id-card-alt:before,.fa-id-card-clip:before{content:"\f47f"}.fa-magnifying-glass-plus:before,.fa-search-plus:before{content:"\f00e"}.fa-thumbs-up:before{content:"\f164"}.fa-cloud-showers:before{content:"\f73f"}.fa-user-clock:before{content:"\f4fd"}.fa-onion:before{content:"\e427"}.fa-clock-twelve-thirty:before{content:"\e359"}.fa-arrow-down-to-dotted-line:before{content:"\e095"}.fa-allergies:before,.fa-hand-dots:before{content:"\f461"}.fa-file-invoice:before{content:"\f570"}.fa-window-minimize:before{content:"\f2d1"}.fa-rectangle-wide:before{content:"\f2fc"}.fa-comment-arrow-up:before{content:"\e144"}.fa-garlic:before{content:"\e40e"}.fa-coffee:before,.fa-mug-saucer:before{content:"\f0f4"}.fa-brush:before{content:"\f55d"}.fa-tree-decorated:before{content:"\f7dc"}.fa-mask:before{content:"\f6fa"}.fa-calendar-heart:before{content:"\e0d3"}.fa-magnifying-glass-minus:before,.fa-search-minus:before{content:"\f010"}.fa-flower:before{content:"\f7ff"}.fa-arrow-down-from-arc:before{content:"\e614"}.fa-right-left-large:before{content:"\e5e1"}.fa-ruler-vertical:before{content:"\f548"}.fa-circles-overlap:before{content:"\e600"}.fa-user-alt:before,.fa-user-large:before{content:"\f406"}.fa-starship-freighter:before{content:"\e03a"}.fa-train-tram:before{content:"\e5b4"}.fa-bridge-suspension:before{content:"\e4cd"}.fa-trash-check:before{content:"\e2af"}.fa-user-nurse:before{content:"\f82f"}.fa-boombox:before{content:"\f8a5"}.fa-syringe:before{content:"\f48e"}.fa-cloud-sun:before{content:"\f6c4"}.fa-shield-exclamation:before{content:"\e247"}.fa-stopwatch-20:before{content:"\e06f"}.fa-square-full:before{content:"\f45c"}.fa-grip-dots:before{content:"\e410"}.fa-comment-exclamation:before{content:"\f4af"}.fa-pen-swirl:before{content:"\e214"}.fa-falafel:before{content:"\e40a"}.fa-circle-2:before{content:"\e0ef"}.fa-magnet:before{content:"\f076"}.fa-jar:before{content:"\e516"}.fa-gramophone:before{content:"\f8bd"}.fa-dice-d12:before{content:"\f6ce"}.fa-note-sticky:before,.fa-sticky-note:before{content:"\f249"}.fa-arrow-alt-down:before,.fa-down:before{content:"\f354"}.fa-100:before,.fa-hundred-points:before{content:"\e41c"}.fa-paperclip-vertical:before{content:"\e3c2"}.fa-wind-circle-exclamation:before,.fa-wind-warning:before{content:"\f776"}.fa-location-pin-slash:before,.fa-map-marker-slash:before{content:"\f60c"}.fa-face-sad-sweat:before{content:"\e38a"}.fa-bug-slash:before{content:"\e490"}.fa-cupcake:before{content:"\e402"}.fa-light-switch-off:before{content:"\e018"}.fa-toggle-large-off:before{content:"\e5b0"}.fa-pen-fancy-slash:before{content:"\e210"}.fa-truck-container:before{content:"\f4dc"}.fa-boot:before{content:"\f782"}.fa-arrow-up-from-water-pump:before{content:"\e4b6"}.fa-file-check:before{content:"\f316"}.fa-bone:before{content:"\f5d7"}.fa-cards-blank:before{content:"\e4df"}.fa-circle-3:before{content:"\e0f0"}.fa-bench-tree:before{content:"\e2e7"}.fa-keyboard-brightness-low:before{content:"\e1c1"}.fa-ski-boot-ski:before{content:"\e3cd"}.fa-brain-circuit:before{content:"\e0c6"}.fa-user-injured:before{content:"\f728"}.fa-block-brick-fire:before,.fa-firewall:before{content:"\e3dc"}.fa-face-sad-tear:before,.fa-sad-tear:before{content:"\f5b4"}.fa-plane:before{content:"\f072"}.fa-tent-arrows-down:before{content:"\e581"}.fa-exclamation:before{content:"\21"}.fa-arrows-spin:before{content:"\e4bb"}.fa-face-smile-relaxed:before{content:"\e392"}.fa-comment-times:before,.fa-comment-xmark:before{content:"\f4b5"}.fa-print:before{content:"\f02f"}.fa-try:before,.fa-turkish-lira-sign:before,.fa-turkish-lira:before{content:"\e2bb"}.fa-face-nose-steam:before{content:"\e382"}.fa-circle-waveform-lines:before,.fa-waveform-circle:before{content:"\e12d"}.fa-dollar-sign:before,.fa-dollar:before,.fa-usd:before{content:"\24"}.fa-ferris-wheel:before{content:"\e174"}.fa-computer-speaker:before{content:"\f8b2"}.fa-skull-cow:before{content:"\f8de"}.fa-x:before{content:"\58"}.fa-magnifying-glass-dollar:before,.fa-search-dollar:before{content:"\f688"}.fa-users-cog:before,.fa-users-gear:before{content:"\f509"}.fa-person-military-pointing:before{content:"\e54a"}.fa-bank:before,.fa-building-columns:before,.fa-institution:before,.fa-museum:before,.fa-university:before{content:"\f19c"}.fa-circle-t:before{content:"\e124"}.fa-sack:before{content:"\f81c"}.fa-grid-2:before{content:"\e196"}.fa-camera-cctv:before,.fa-cctv:before{content:"\f8ac"}.fa-umbrella:before{content:"\f0e9"}.fa-trowel:before{content:"\e589"}.fa-horizontal-rule:before{content:"\f86c"}.fa-bed-alt:before,.fa-bed-front:before{content:"\f8f7"}.fa-d:before{content:"\44"}.fa-stapler:before{content:"\e5af"}.fa-masks-theater:before,.fa-theater-masks:before{content:"\f630"}.fa-file-gif:before{content:"\e645"}.fa-kip-sign:before{content:"\e1c4"}.fa-face-woozy:before{content:"\e3a2"}.fa-cloud-question:before{content:"\e492"}.fa-pineapple:before{content:"\e31f"}.fa-hand-point-left:before{content:"\f0a5"}.fa-gallery-thumbnails:before{content:"\e3aa"}.fa-circle-j:before{content:"\e112"}.fa-eyes:before{content:"\e367"}.fa-handshake-alt:before,.fa-handshake-simple:before{content:"\f4c6"}.fa-file-caret-up:before,.fa-page-caret-up:before{content:"\e42a"}.fa-fighter-jet:before,.fa-jet-fighter:before{content:"\f0fb"}.fa-comet:before{content:"\e003"}.fa-share-alt-square:before,.fa-square-share-nodes:before{content:"\f1e1"}.fa-reflect-vertical:before{content:"\e665"}.fa-shield-keyhole:before{content:"\e248"}.fa-file-mp4:before{content:"\e649"}.fa-barcode:before{content:"\f02a"}.fa-bulldozer:before{content:"\e655"}.fa-plus-minus:before{content:"\e43c"}.fa-sliders-v-square:before,.fa-square-sliders-vertical:before{content:"\f3f2"}.fa-video-camera:before,.fa-video:before{content:"\f03d"}.fa-comment-middle-alt:before,.fa-message-middle:before{content:"\e1e1"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-person-circle-check:before{content:"\e53e"}.fa-square-z:before{content:"\e288"}.fa-comment-alt-text:before,.fa-message-text:before{content:"\e1e6"}.fa-level-up-alt:before,.fa-turn-up:before{content:"\f3bf"}.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:host,:root{--fa-style-family-brands:"Font Awesome 6 Brands";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-brands-400.woff2) format("woff2"),url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-brands-400.ttf) format("truetype")}.fa-brands,.fab{font-weight:400}.fa-monero:before{content:"\f3d0"}.fa-hooli:before{content:"\f427"}.fa-yelp:before{content:"\f1e9"}.fa-cc-visa:before{content:"\f1f0"}.fa-lastfm:before{content:"\f202"}.fa-shopware:before{content:"\f5b5"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-aws:before{content:"\f375"}.fa-redhat:before{content:"\f7bc"}.fa-yoast:before{content:"\f2b1"}.fa-cloudflare:before{content:"\e07d"}.fa-ups:before{content:"\f7e0"}.fa-pixiv:before{content:"\e640"}.fa-wpexplorer:before{content:"\f2de"}.fa-dyalog:before{content:"\f399"}.fa-bity:before{content:"\f37a"}.fa-stackpath:before{content:"\f842"}.fa-buysellads:before{content:"\f20d"}.fa-first-order:before{content:"\f2b0"}.fa-modx:before{content:"\f285"}.fa-guilded:before{content:"\e07e"}.fa-vnv:before{content:"\f40b"}.fa-js-square:before,.fa-square-js:before{content:"\f3b9"}.fa-microsoft:before{content:"\f3ca"}.fa-qq:before{content:"\f1d6"}.fa-orcid:before{content:"\f8d2"}.fa-java:before{content:"\f4e4"}.fa-invision:before{content:"\f7b0"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-centercode:before{content:"\f380"}.fa-glide-g:before{content:"\f2a6"}.fa-drupal:before{content:"\f1a9"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-unity:before{content:"\e049"}.fa-whmcs:before{content:"\f40d"}.fa-rocketchat:before{content:"\f3e8"}.fa-vk:before{content:"\f189"}.fa-untappd:before{content:"\f405"}.fa-mailchimp:before{content:"\f59e"}.fa-css3-alt:before{content:"\f38b"}.fa-reddit-square:before,.fa-square-reddit:before{content:"\f1a2"}.fa-vimeo-v:before{content:"\f27d"}.fa-contao:before{content:"\f26d"}.fa-square-font-awesome:before{content:"\e5ad"}.fa-deskpro:before{content:"\f38f"}.fa-brave:before{content:"\e63c"}.fa-sistrix:before{content:"\f3ee"}.fa-instagram-square:before,.fa-square-instagram:before{content:"\e055"}.fa-battle-net:before{content:"\f835"}.fa-the-red-yeti:before{content:"\f69d"}.fa-hacker-news-square:before,.fa-square-hacker-news:before{content:"\f3af"}.fa-edge:before{content:"\f282"}.fa-threads:before{content:"\e618"}.fa-napster:before{content:"\f3d2"}.fa-snapchat-square:before,.fa-square-snapchat:before{content:"\f2ad"}.fa-google-plus-g:before{content:"\f0d5"}.fa-artstation:before{content:"\f77a"}.fa-markdown:before{content:"\f60f"}.fa-sourcetree:before{content:"\f7d3"}.fa-google-plus:before{content:"\f2b3"}.fa-diaspora:before{content:"\f791"}.fa-foursquare:before{content:"\f180"}.fa-stack-overflow:before{content:"\f16c"}.fa-github-alt:before{content:"\f113"}.fa-phoenix-squadron:before{content:"\f511"}.fa-pagelines:before{content:"\f18c"}.fa-algolia:before{content:"\f36c"}.fa-red-river:before{content:"\f3e3"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-safari:before{content:"\f267"}.fa-google:before{content:"\f1a0"}.fa-font-awesome-alt:before,.fa-square-font-awesome-stroke:before{content:"\f35c"}.fa-atlassian:before{content:"\f77b"}.fa-linkedin-in:before{content:"\f0e1"}.fa-digital-ocean:before{content:"\f391"}.fa-nimblr:before{content:"\f5a8"}.fa-chromecast:before{content:"\f838"}.fa-evernote:before{content:"\f839"}.fa-hacker-news:before{content:"\f1d4"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-adversal:before{content:"\f36a"}.fa-creative-commons:before{content:"\f25e"}.fa-watchman-monitoring:before{content:"\e087"}.fa-fonticons:before{content:"\f280"}.fa-weixin:before{content:"\f1d7"}.fa-shirtsinbulk:before{content:"\f214"}.fa-codepen:before{content:"\f1cb"}.fa-git-alt:before{content:"\f841"}.fa-lyft:before{content:"\f3c3"}.fa-rev:before{content:"\f5b2"}.fa-windows:before{content:"\f17a"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-square-viadeo:before,.fa-viadeo-square:before{content:"\f2aa"}.fa-meetup:before{content:"\f2e0"}.fa-centos:before{content:"\f789"}.fa-adn:before{content:"\f170"}.fa-cloudsmith:before{content:"\f384"}.fa-opensuse:before{content:"\e62b"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-dribbble-square:before,.fa-square-dribbble:before{content:"\f397"}.fa-codiepie:before{content:"\f284"}.fa-node:before{content:"\f419"}.fa-mix:before{content:"\f3cb"}.fa-steam:before{content:"\f1b6"}.fa-cc-apple-pay:before{content:"\f416"}.fa-scribd:before{content:"\f28a"}.fa-debian:before{content:"\e60b"}.fa-openid:before{content:"\f19b"}.fa-instalod:before{content:"\e081"}.fa-expeditedssl:before{content:"\f23e"}.fa-sellcast:before{content:"\f2da"}.fa-square-twitter:before,.fa-twitter-square:before{content:"\f081"}.fa-r-project:before{content:"\f4f7"}.fa-delicious:before{content:"\f1a5"}.fa-freebsd:before{content:"\f3a4"}.fa-vuejs:before{content:"\f41f"}.fa-accusoft:before{content:"\f369"}.fa-ioxhost:before{content:"\f208"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-app-store:before{content:"\f36f"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-itunes-note:before{content:"\f3b5"}.fa-golang:before{content:"\e40f"}.fa-kickstarter:before{content:"\f3bb"}.fa-grav:before{content:"\f2d6"}.fa-weibo:before{content:"\f18a"}.fa-uncharted:before{content:"\e084"}.fa-firstdraft:before{content:"\f3a1"}.fa-square-youtube:before,.fa-youtube-square:before{content:"\f431"}.fa-wikipedia-w:before{content:"\f266"}.fa-rendact:before,.fa-wpressr:before{content:"\f3e4"}.fa-angellist:before{content:"\f209"}.fa-galactic-republic:before{content:"\f50c"}.fa-nfc-directional:before{content:"\e530"}.fa-skype:before{content:"\f17e"}.fa-joget:before{content:"\f3b7"}.fa-fedora:before{content:"\f798"}.fa-stripe-s:before{content:"\f42a"}.fa-meta:before{content:"\e49b"}.fa-laravel:before{content:"\f3bd"}.fa-hotjar:before{content:"\f3b1"}.fa-bluetooth-b:before{content:"\f294"}.fa-square-letterboxd:before{content:"\e62e"}.fa-sticker-mule:before{content:"\f3f7"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-hips:before{content:"\f452"}.fa-behance:before{content:"\f1b4"}.fa-reddit:before{content:"\f1a1"}.fa-discord:before{content:"\f392"}.fa-chrome:before{content:"\f268"}.fa-app-store-ios:before{content:"\f370"}.fa-cc-discover:before{content:"\f1f2"}.fa-wpbeginner:before{content:"\f297"}.fa-confluence:before{content:"\f78d"}.fa-shoelace:before{content:"\e60c"}.fa-mdb:before{content:"\f8ca"}.fa-dochub:before{content:"\f394"}.fa-accessible-icon:before{content:"\f368"}.fa-ebay:before{content:"\f4f4"}.fa-amazon:before{content:"\f270"}.fa-unsplash:before{content:"\e07c"}.fa-yarn:before{content:"\f7e3"}.fa-square-steam:before,.fa-steam-square:before{content:"\f1b7"}.fa-500px:before{content:"\f26e"}.fa-square-vimeo:before,.fa-vimeo-square:before{content:"\f194"}.fa-asymmetrik:before{content:"\f372"}.fa-font-awesome-flag:before,.fa-font-awesome-logo-full:before,.fa-font-awesome:before{content:"\f2b4"}.fa-gratipay:before{content:"\f184"}.fa-apple:before{content:"\f179"}.fa-hive:before{content:"\e07f"}.fa-gitkraken:before{content:"\f3a6"}.fa-keybase:before{content:"\f4f5"}.fa-apple-pay:before{content:"\f415"}.fa-padlet:before{content:"\e4a0"}.fa-amazon-pay:before{content:"\f42c"}.fa-github-square:before,.fa-square-github:before{content:"\f092"}.fa-stumbleupon:before{content:"\f1a4"}.fa-fedex:before{content:"\f797"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-shopify:before{content:"\e057"}.fa-neos:before{content:"\f612"}.fa-square-threads:before{content:"\e619"}.fa-hackerrank:before{content:"\f5f7"}.fa-researchgate:before{content:"\f4f8"}.fa-swift:before{content:"\f8e1"}.fa-angular:before{content:"\f420"}.fa-speakap:before{content:"\f3f3"}.fa-angrycreative:before{content:"\f36e"}.fa-y-combinator:before{content:"\f23b"}.fa-empire:before{content:"\f1d1"}.fa-envira:before{content:"\f299"}.fa-google-scholar:before{content:"\e63b"}.fa-gitlab-square:before,.fa-square-gitlab:before{content:"\e5ae"}.fa-studiovinari:before{content:"\f3f8"}.fa-pied-piper:before{content:"\f2ae"}.fa-wordpress:before{content:"\f19a"}.fa-product-hunt:before{content:"\f288"}.fa-firefox:before{content:"\f269"}.fa-linode:before{content:"\f2b8"}.fa-goodreads:before{content:"\f3a8"}.fa-odnoklassniki-square:before,.fa-square-odnoklassniki:before{content:"\f264"}.fa-jsfiddle:before{content:"\f1cc"}.fa-sith:before{content:"\f512"}.fa-themeisle:before{content:"\f2b2"}.fa-page4:before{content:"\f3d7"}.fa-hashnode:before{content:"\e499"}.fa-react:before{content:"\f41b"}.fa-cc-paypal:before{content:"\f1f4"}.fa-squarespace:before{content:"\f5be"}.fa-cc-stripe:before{content:"\f1f5"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-bitcoin:before{content:"\f379"}.fa-keycdn:before{content:"\f3ba"}.fa-opera:before{content:"\f26a"}.fa-itch-io:before{content:"\f83a"}.fa-umbraco:before{content:"\f8e8"}.fa-galactic-senate:before{content:"\f50d"}.fa-ubuntu:before{content:"\f7df"}.fa-draft2digital:before{content:"\f396"}.fa-stripe:before{content:"\f429"}.fa-houzz:before{content:"\f27c"}.fa-gg:before{content:"\f260"}.fa-dhl:before{content:"\f790"}.fa-pinterest-square:before,.fa-square-pinterest:before{content:"\f0d3"}.fa-xing:before{content:"\f168"}.fa-blackberry:before{content:"\f37b"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-playstation:before{content:"\f3df"}.fa-quinscape:before{content:"\f459"}.fa-less:before{content:"\f41d"}.fa-blogger-b:before{content:"\f37d"}.fa-opencart:before{content:"\f23d"}.fa-vine:before{content:"\f1ca"}.fa-signal-messenger:before{content:"\e663"}.fa-paypal:before{content:"\f1ed"}.fa-gitlab:before{content:"\f296"}.fa-typo3:before{content:"\f42b"}.fa-reddit-alien:before{content:"\f281"}.fa-yahoo:before{content:"\f19e"}.fa-dailymotion:before{content:"\e052"}.fa-affiliatetheme:before{content:"\f36b"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-bootstrap:before{content:"\f836"}.fa-odnoklassniki:before{content:"\f263"}.fa-nfc-symbol:before{content:"\e531"}.fa-mintbit:before{content:"\e62f"}.fa-ethereum:before{content:"\f42e"}.fa-speaker-deck:before{content:"\f83c"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-patreon:before{content:"\f3d9"}.fa-avianex:before{content:"\f374"}.fa-ello:before{content:"\f5f1"}.fa-gofore:before{content:"\f3a7"}.fa-bimobject:before{content:"\f378"}.fa-brave-reverse:before{content:"\e63d"}.fa-facebook-f:before{content:"\f39e"}.fa-google-plus-square:before,.fa-square-google-plus:before{content:"\f0d4"}.fa-mandalorian:before{content:"\f50f"}.fa-first-order-alt:before{content:"\f50a"}.fa-osi:before{content:"\f41a"}.fa-google-wallet:before{content:"\f1ee"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-periscope:before{content:"\f3da"}.fa-fulcrum:before{content:"\f50b"}.fa-cloudscale:before{content:"\f383"}.fa-forumbee:before{content:"\f211"}.fa-mizuni:before{content:"\f3cc"}.fa-schlix:before{content:"\f3ea"}.fa-square-xing:before,.fa-xing-square:before{content:"\f169"}.fa-bandcamp:before{content:"\f2d5"}.fa-wpforms:before{content:"\f298"}.fa-cloudversify:before{content:"\f385"}.fa-usps:before{content:"\f7e1"}.fa-megaport:before{content:"\f5a3"}.fa-magento:before{content:"\f3c4"}.fa-spotify:before{content:"\f1bc"}.fa-optin-monster:before{content:"\f23c"}.fa-fly:before{content:"\f417"}.fa-aviato:before{content:"\f421"}.fa-itunes:before{content:"\f3b4"}.fa-cuttlefish:before{content:"\f38c"}.fa-blogger:before{content:"\f37c"}.fa-flickr:before{content:"\f16e"}.fa-viber:before{content:"\f409"}.fa-soundcloud:before{content:"\f1be"}.fa-digg:before{content:"\f1a6"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-letterboxd:before{content:"\e62d"}.fa-symfony:before{content:"\f83d"}.fa-maxcdn:before{content:"\f136"}.fa-etsy:before{content:"\f2d7"}.fa-facebook-messenger:before{content:"\f39f"}.fa-audible:before{content:"\f373"}.fa-think-peaks:before{content:"\f731"}.fa-bilibili:before{content:"\e3d9"}.fa-erlang:before{content:"\f39d"}.fa-x-twitter:before{content:"\e61b"}.fa-cotton-bureau:before{content:"\f89e"}.fa-dashcube:before{content:"\f210"}.fa-42-group:before,.fa-innosoft:before{content:"\e080"}.fa-stack-exchange:before{content:"\f18d"}.fa-elementor:before{content:"\f430"}.fa-pied-piper-square:before,.fa-square-pied-piper:before{content:"\e01e"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-palfed:before{content:"\f3d8"}.fa-superpowers:before{content:"\f2dd"}.fa-resolving:before{content:"\f3e7"}.fa-xbox:before{content:"\f412"}.fa-searchengin:before{content:"\f3eb"}.fa-tiktok:before{content:"\e07b"}.fa-facebook-square:before,.fa-square-facebook:before{content:"\f082"}.fa-renren:before{content:"\f18b"}.fa-linux:before{content:"\f17c"}.fa-glide:before{content:"\f2a5"}.fa-linkedin:before{content:"\f08c"}.fa-hubspot:before{content:"\f3b2"}.fa-deploydog:before{content:"\f38e"}.fa-twitch:before{content:"\f1e8"}.fa-ravelry:before{content:"\f2d9"}.fa-mixer:before{content:"\e056"}.fa-lastfm-square:before,.fa-square-lastfm:before{content:"\f203"}.fa-vimeo:before{content:"\f40a"}.fa-mendeley:before{content:"\f7b3"}.fa-uniregistry:before{content:"\f404"}.fa-figma:before{content:"\f799"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-dropbox:before{content:"\f16b"}.fa-instagram:before{content:"\f16d"}.fa-cmplid:before{content:"\e360"}.fa-upwork:before{content:"\e641"}.fa-facebook:before{content:"\f09a"}.fa-gripfire:before{content:"\f3ac"}.fa-jedi-order:before{content:"\f50e"}.fa-uikit:before{content:"\f403"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-phabricator:before{content:"\f3db"}.fa-ussunnah:before{content:"\f407"}.fa-earlybirds:before{content:"\f39a"}.fa-trade-federation:before{content:"\f513"}.fa-autoprefixer:before{content:"\f41c"}.fa-whatsapp:before{content:"\f232"}.fa-slideshare:before{content:"\f1e7"}.fa-google-play:before{content:"\f3ab"}.fa-viadeo:before{content:"\f2a9"}.fa-line:before{content:"\f3c0"}.fa-google-drive:before{content:"\f3aa"}.fa-servicestack:before{content:"\f3ec"}.fa-simplybuilt:before{content:"\f215"}.fa-bitbucket:before{content:"\f171"}.fa-imdb:before{content:"\f2d8"}.fa-deezer:before{content:"\e077"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-jira:before{content:"\f7b1"}.fa-docker:before{content:"\f395"}.fa-screenpal:before{content:"\e570"}.fa-bluetooth:before{content:"\f293"}.fa-gitter:before{content:"\f426"}.fa-d-and-d:before{content:"\f38d"}.fa-microblog:before{content:"\e01a"}.fa-cc-diners-club:before{content:"\f24c"}.fa-gg-circle:before{content:"\f261"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-yandex:before{content:"\f413"}.fa-readme:before{content:"\f4d5"}.fa-html5:before{content:"\f13b"}.fa-sellsy:before{content:"\f213"}.fa-sass:before{content:"\f41e"}.fa-wirsindhandwerk:before,.fa-wsh:before{content:"\e2d0"}.fa-buromobelexperte:before{content:"\f37f"}.fa-salesforce:before{content:"\f83b"}.fa-octopus-deploy:before{content:"\e082"}.fa-medapps:before{content:"\f3c6"}.fa-ns8:before{content:"\f3d5"}.fa-pinterest-p:before{content:"\f231"}.fa-apper:before{content:"\f371"}.fa-fort-awesome:before{content:"\f286"}.fa-waze:before{content:"\f83f"}.fa-cc-jcb:before{content:"\f24b"}.fa-snapchat-ghost:before,.fa-snapchat:before{content:"\f2ab"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-rust:before{content:"\e07a"}.fa-wix:before{content:"\f5cf"}.fa-behance-square:before,.fa-square-behance:before{content:"\f1b5"}.fa-supple:before{content:"\f3f9"}.fa-webflow:before{content:"\e65c"}.fa-rebel:before{content:"\f1d0"}.fa-css3:before{content:"\f13c"}.fa-staylinked:before{content:"\f3f5"}.fa-kaggle:before{content:"\f5fa"}.fa-space-awesome:before{content:"\e5ac"}.fa-deviantart:before{content:"\f1bd"}.fa-cpanel:before{content:"\f388"}.fa-goodreads-g:before{content:"\f3a9"}.fa-git-square:before,.fa-square-git:before{content:"\f1d2"}.fa-square-tumblr:before,.fa-tumblr-square:before{content:"\f174"}.fa-trello:before{content:"\f181"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-get-pocket:before{content:"\f265"}.fa-perbyte:before{content:"\e083"}.fa-grunt:before{content:"\f3ad"}.fa-weebly:before{content:"\f5cc"}.fa-connectdevelop:before{content:"\f20e"}.fa-leanpub:before{content:"\f212"}.fa-black-tie:before{content:"\f27e"}.fa-themeco:before{content:"\f5c6"}.fa-python:before{content:"\f3e2"}.fa-android:before{content:"\f17b"}.fa-bots:before{content:"\e340"}.fa-free-code-camp:before{content:"\f2c5"}.fa-hornbill:before{content:"\f592"}.fa-js:before{content:"\f3b8"}.fa-ideal:before{content:"\e013"}.fa-git:before{content:"\f1d3"}.fa-dev:before{content:"\f6cc"}.fa-sketch:before{content:"\f7c6"}.fa-yandex-international:before{content:"\f414"}.fa-cc-amex:before{content:"\f1f3"}.fa-uber:before{content:"\f402"}.fa-github:before{content:"\f09b"}.fa-php:before{content:"\f457"}.fa-alipay:before{content:"\f642"}.fa-youtube:before{content:"\f167"}.fa-skyatlas:before{content:"\f216"}.fa-firefox-browser:before{content:"\e007"}.fa-replyd:before{content:"\f3e6"}.fa-suse:before{content:"\f7d6"}.fa-jenkins:before{content:"\f3b6"}.fa-twitter:before{content:"\f099"}.fa-rockrms:before{content:"\f3e9"}.fa-pinterest:before{content:"\f0d2"}.fa-buffer:before{content:"\f837"}.fa-npm:before{content:"\f3d4"}.fa-yammer:before{content:"\f840"}.fa-btc:before{content:"\f15a"}.fa-dribbble:before{content:"\f17d"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-internet-explorer:before{content:"\f26b"}.fa-stubber:before{content:"\e5c7"}.fa-telegram-plane:before,.fa-telegram:before{content:"\f2c6"}.fa-old-republic:before{content:"\f510"}.fa-odysee:before{content:"\e5c6"}.fa-square-whatsapp:before,.fa-whatsapp-square:before{content:"\f40c"}.fa-node-js:before{content:"\f3d3"}.fa-edge-legacy:before{content:"\e078"}.fa-slack-hash:before,.fa-slack:before{content:"\f198"}.fa-medrt:before{content:"\f3c8"}.fa-usb:before{content:"\f287"}.fa-tumblr:before{content:"\f173"}.fa-vaadin:before{content:"\f408"}.fa-quora:before{content:"\f2c4"}.fa-square-x-twitter:before{content:"\e61a"}.fa-reacteurope:before{content:"\f75d"}.fa-medium-m:before,.fa-medium:before{content:"\f23a"}.fa-amilia:before{content:"\f36d"}.fa-mixcloud:before{content:"\f289"}.fa-flipboard:before{content:"\f44d"}.fa-viacoin:before{content:"\f237"}.fa-critical-role:before{content:"\f6c9"}.fa-sitrox:before{content:"\e44a"}.fa-discourse:before{content:"\f393"}.fa-joomla:before{content:"\f1aa"}.fa-mastodon:before{content:"\f4f6"}.fa-airbnb:before{content:"\f834"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-buy-n-large:before{content:"\f8a6"}.fa-gulp:before{content:"\f3ae"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-strava:before{content:"\f428"}.fa-ember:before{content:"\f423"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-teamspeak:before{content:"\f4f9"}.fa-pushed:before{content:"\f3e1"}.fa-wordpress-simple:before{content:"\f411"}.fa-nutritionix:before{content:"\f3d6"}.fa-wodu:before{content:"\e088"}.fa-google-pay:before{content:"\e079"}.fa-intercom:before{content:"\f7af"}.fa-zhihu:before{content:"\f63f"}.fa-korvue:before{content:"\f42f"}.fa-pix:before{content:"\e43a"}.fa-steam-symbol:before{content:"\f3f6"}:host,:root{--fa-style-family-duotone:"Font Awesome 6 Duotone";--fa-font-duotone:normal 900 1em/1 "Font Awesome 6 Duotone"}@font-face{font-family:"Font Awesome 6 Duotone";font-style:normal;font-weight:900;font-display:block;src:url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-duotone-900.woff2) format("woff2"),url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-duotone-900.ttf) format("truetype")}.fa-duotone,.fad{position:relative;font-weight:900;letter-spacing:normal}.fa-duotone:before,.fad:before{position:absolute;color:var(--fa-primary-color,inherit);opacity:var(--fa-primary-opacity,1)}.fa-duotone:after,.fad:after{color:var(--fa-secondary-color,inherit)}.fa-duotone.fa-swap-opacity:before,.fa-duotone:after,.fa-swap-opacity .fa-duotone:before,.fa-swap-opacity .fad:before,.fad.fa-swap-opacity:before,.fad:after{opacity:var(--fa-secondary-opacity,.4)}.fa-duotone.fa-swap-opacity:after,.fa-swap-opacity .fa-duotone:after,.fa-swap-opacity .fad:after,.fad.fa-swap-opacity:after{opacity:var(--fa-primary-opacity,1)}.fa-duotone.fa-inverse,.fad.fa-inverse{color:var(--fa-inverse,#fff)}.fa-duotone.fa-stack-1x,.fa-duotone.fa-stack-2x,.fad.fa-stack-1x,.fad.fa-stack-2x{position:absolute}.fa-duotone.fa-0:after,.fad.fa-0:after{content:"\30\30"}.fa-duotone.fa-1:after,.fad.fa-1:after{content:"\31\31"}.fa-duotone.fa-2:after,.fad.fa-2:after{content:"\32\32"}.fa-duotone.fa-3:after,.fad.fa-3:after{content:"\33\33"}.fa-duotone.fa-4:after,.fad.fa-4:after{content:"\34\34"}.fa-duotone.fa-5:after,.fad.fa-5:after{content:"\35\35"}.fa-duotone.fa-6:after,.fad.fa-6:after{content:"\36\36"}.fa-duotone.fa-7:after,.fad.fa-7:after{content:"\37\37"}.fa-duotone.fa-8:after,.fad.fa-8:after{content:"\38\38"}.fa-duotone.fa-9:after,.fad.fa-9:after{content:"\39\39"}.fa-duotone.fa-fill-drip:after,.fad.fa-fill-drip:after{content:"\f576\f576"}.fa-duotone.fa-arrows-to-circle:after,.fad.fa-arrows-to-circle:after{content:"\e4bd\e4bd"}.fa-duotone.fa-chevron-circle-right:after,.fa-duotone.fa-circle-chevron-right:after,.fad.fa-chevron-circle-right:after,.fad.fa-circle-chevron-right:after{content:"\f138\f138"}.fa-duotone.fa-wagon-covered:after,.fad.fa-wagon-covered:after{content:"\f8ee\f8ee"}.fa-duotone.fa-line-height:after,.fad.fa-line-height:after{content:"\f871\f871"}.fa-duotone.fa-bagel:after,.fad.fa-bagel:after{content:"\e3d7\e3d7"}.fa-duotone.fa-transporter-7:after,.fad.fa-transporter-7:after{content:"\e2a8\e2a8"}.fa-duotone.fa-at:after,.fad.fa-at:after{content:"\40\40"}.fa-duotone.fa-rectangles-mixed:after,.fad.fa-rectangles-mixed:after{content:"\e323\e323"}.fa-duotone.fa-phone-arrow-up-right:after,.fa-duotone.fa-phone-arrow-up:after,.fa-duotone.fa-phone-outgoing:after,.fad.fa-phone-arrow-up-right:after,.fad.fa-phone-arrow-up:after,.fad.fa-phone-outgoing:after{content:"\e224\e224"}.fa-duotone.fa-trash-alt:after,.fa-duotone.fa-trash-can:after,.fad.fa-trash-alt:after,.fad.fa-trash-can:after{content:"\f2ed\f2ed"}.fa-duotone.fa-circle-l:after,.fad.fa-circle-l:after{content:"\e114\e114"}.fa-duotone.fa-head-side-goggles:after,.fa-duotone.fa-head-vr:after,.fad.fa-head-side-goggles:after,.fad.fa-head-vr:after{content:"\f6ea\f6ea"}.fa-duotone.fa-text-height:after,.fad.fa-text-height:after{content:"\f034\f034"}.fa-duotone.fa-user-times:after,.fa-duotone.fa-user-xmark:after,.fad.fa-user-times:after,.fad.fa-user-xmark:after{content:"\f235\f235"}.fa-duotone.fa-face-hand-yawn:after,.fad.fa-face-hand-yawn:after{content:"\e379\e379"}.fa-duotone.fa-gauge-simple-min:after,.fa-duotone.fa-tachometer-slowest:after,.fad.fa-gauge-simple-min:after,.fad.fa-tachometer-slowest:after{content:"\f62d\f62d"}.fa-duotone.fa-stethoscope:after,.fad.fa-stethoscope:after{content:"\f0f1\f0f1"}.fa-duotone.fa-coffin:after,.fad.fa-coffin:after{content:"\f6c6\f6c6"}.fa-duotone.fa-comment-alt:after,.fa-duotone.fa-message:after,.fad.fa-comment-alt:after,.fad.fa-message:after{content:"\f27a\f27a"}.fa-duotone.fa-bowl-salad:after,.fa-duotone.fa-salad:after,.fad.fa-bowl-salad:after,.fad.fa-salad:after{content:"\f81e\f81e"}.fa-duotone.fa-info:after,.fad.fa-info:after{content:"\f129\f129"}.fa-duotone.fa-robot-astromech:after,.fad.fa-robot-astromech:after{content:"\e2d2\e2d2"}.fa-duotone.fa-ring-diamond:after,.fad.fa-ring-diamond:after{content:"\e5ab\e5ab"}.fa-duotone.fa-fondue-pot:after,.fad.fa-fondue-pot:after{content:"\e40d\e40d"}.fa-duotone.fa-theta:after,.fad.fa-theta:after{content:"\f69e\f69e"}.fa-duotone.fa-face-hand-peeking:after,.fad.fa-face-hand-peeking:after{content:"\e481\e481"}.fa-duotone.fa-square-user:after,.fad.fa-square-user:after{content:"\e283\e283"}.fa-duotone.fa-compress-alt:after,.fa-duotone.fa-down-left-and-up-right-to-center:after,.fad.fa-compress-alt:after,.fad.fa-down-left-and-up-right-to-center:after{content:"\f422\f422"}.fa-duotone.fa-explosion:after,.fad.fa-explosion:after{content:"\e4e9\e4e9"}.fa-duotone.fa-file-alt:after,.fa-duotone.fa-file-lines:after,.fa-duotone.fa-file-text:after,.fad.fa-file-alt:after,.fad.fa-file-lines:after,.fad.fa-file-text:after{content:"\f15c\f15c"}.fa-duotone.fa-wave-square:after,.fad.fa-wave-square:after{content:"\f83e\f83e"}.fa-duotone.fa-ring:after,.fad.fa-ring:after{content:"\f70b\f70b"}.fa-duotone.fa-building-un:after,.fad.fa-building-un:after{content:"\e4d9\e4d9"}.fa-duotone.fa-dice-three:after,.fad.fa-dice-three:after{content:"\f527\f527"}.fa-duotone.fa-tire-pressure-warning:after,.fad.fa-tire-pressure-warning:after{content:"\f633\f633"}.fa-duotone.fa-wifi-2:after,.fa-duotone.fa-wifi-fair:after,.fad.fa-wifi-2:after,.fad.fa-wifi-fair:after{content:"\f6ab\f6ab"}.fa-duotone.fa-calendar-alt:after,.fa-duotone.fa-calendar-days:after,.fad.fa-calendar-alt:after,.fad.fa-calendar-days:after{content:"\f073\f073"}.fa-duotone.fa-mp3-player:after,.fad.fa-mp3-player:after{content:"\f8ce\f8ce"}.fa-duotone.fa-anchor-circle-check:after,.fad.fa-anchor-circle-check:after{content:"\e4aa\e4aa"}.fa-duotone.fa-tally-4:after,.fad.fa-tally-4:after{content:"\e297\e297"}.fa-duotone.fa-rectangle-history:after,.fad.fa-rectangle-history:after{content:"\e4a2\e4a2"}.fa-duotone.fa-building-circle-arrow-right:after,.fad.fa-building-circle-arrow-right:after{content:"\e4d1\e4d1"}.fa-duotone.fa-volleyball-ball:after,.fa-duotone.fa-volleyball:after,.fad.fa-volleyball-ball:after,.fad.fa-volleyball:after{content:"\f45f\f45f"}.fa-duotone.fa-sun-haze:after,.fad.fa-sun-haze:after{content:"\f765\f765"}.fa-duotone.fa-text-size:after,.fad.fa-text-size:after{content:"\f894\f894"}.fa-duotone.fa-ufo:after,.fad.fa-ufo:after{content:"\e047\e047"}.fa-duotone.fa-fork:after,.fa-duotone.fa-utensil-fork:after,.fad.fa-fork:after,.fad.fa-utensil-fork:after{content:"\f2e3\f2e3"}.fa-duotone.fa-arrows-up-to-line:after,.fad.fa-arrows-up-to-line:after{content:"\e4c2\e4c2"}.fa-duotone.fa-mobile-signal:after,.fad.fa-mobile-signal:after{content:"\e1ef\e1ef"}.fa-duotone.fa-barcode-scan:after,.fad.fa-barcode-scan:after{content:"\f465\f465"}.fa-duotone.fa-sort-desc:after,.fa-duotone.fa-sort-down:after,.fad.fa-sort-desc:after,.fad.fa-sort-down:after{content:"\f0dd\f0dd"}.fa-duotone.fa-folder-arrow-down:after,.fa-duotone.fa-folder-download:after,.fad.fa-folder-arrow-down:after,.fad.fa-folder-download:after{content:"\e053\e053"}.fa-duotone.fa-circle-minus:after,.fa-duotone.fa-minus-circle:after,.fad.fa-circle-minus:after,.fad.fa-minus-circle:after{content:"\f056\f056"}.fa-duotone.fa-face-icicles:after,.fad.fa-face-icicles:after{content:"\e37c\e37c"}.fa-duotone.fa-shovel:after,.fad.fa-shovel:after{content:"\f713\f713"}.fa-duotone.fa-door-open:after,.fad.fa-door-open:after{content:"\f52b\f52b"}.fa-duotone.fa-films:after,.fad.fa-films:after{content:"\e17a\e17a"}.fa-duotone.fa-right-from-bracket:after,.fa-duotone.fa-sign-out-alt:after,.fad.fa-right-from-bracket:after,.fad.fa-sign-out-alt:after{content:"\f2f5\f2f5"}.fa-duotone.fa-face-glasses:after,.fad.fa-face-glasses:after{content:"\e377\e377"}.fa-duotone.fa-nfc:after,.fad.fa-nfc:after{content:"\e1f7\e1f7"}.fa-duotone.fa-atom:after,.fad.fa-atom:after{content:"\f5d2\f5d2"}.fa-duotone.fa-soap:after,.fad.fa-soap:after{content:"\e06e\e06e"}.fa-duotone.fa-heart-music-camera-bolt:after,.fa-duotone.fa-icons:after,.fad.fa-heart-music-camera-bolt:after,.fad.fa-icons:after{content:"\f86d\f86d"}.fa-duotone.fa-microphone-alt-slash:after,.fa-duotone.fa-microphone-lines-slash:after,.fad.fa-microphone-alt-slash:after,.fad.fa-microphone-lines-slash:after{content:"\f539\f539"}.fa-duotone.fa-closed-captioning-slash:after,.fad.fa-closed-captioning-slash:after{content:"\e135\e135"}.fa-duotone.fa-calculator-alt:after,.fa-duotone.fa-calculator-simple:after,.fad.fa-calculator-alt:after,.fad.fa-calculator-simple:after{content:"\f64c\f64c"}.fa-duotone.fa-bridge-circle-check:after,.fad.fa-bridge-circle-check:after{content:"\e4c9\e4c9"}.fa-duotone.fa-sliders-up:after,.fa-duotone.fa-sliders-v:after,.fad.fa-sliders-up:after,.fad.fa-sliders-v:after{content:"\f3f1\f3f1"}.fa-duotone.fa-location-minus:after,.fa-duotone.fa-map-marker-minus:after,.fad.fa-location-minus:after,.fad.fa-map-marker-minus:after{content:"\f609\f609"}.fa-duotone.fa-pump-medical:after,.fad.fa-pump-medical:after{content:"\e06a\e06a"}.fa-duotone.fa-fingerprint:after,.fad.fa-fingerprint:after{content:"\f577\f577"}.fa-duotone.fa-ski-boot:after,.fad.fa-ski-boot:after{content:"\e3cc\e3cc"}.fa-duotone.fa-rectangle-sd:after,.fa-duotone.fa-standard-definition:after,.fad.fa-rectangle-sd:after,.fad.fa-standard-definition:after{content:"\e28a\e28a"}.fa-duotone.fa-h1:after,.fad.fa-h1:after{content:"\f313\f313"}.fa-duotone.fa-hand-point-right:after,.fad.fa-hand-point-right:after{content:"\f0a4\f0a4"}.fa-duotone.fa-magnifying-glass-location:after,.fa-duotone.fa-search-location:after,.fad.fa-magnifying-glass-location:after,.fad.fa-search-location:after{content:"\f689\f689"}.fa-duotone.fa-message-bot:after,.fad.fa-message-bot:after{content:"\e3b8\e3b8"}.fa-duotone.fa-forward-step:after,.fa-duotone.fa-step-forward:after,.fad.fa-forward-step:after,.fad.fa-step-forward:after{content:"\f051\f051"}.fa-duotone.fa-face-smile-beam:after,.fa-duotone.fa-smile-beam:after,.fad.fa-face-smile-beam:after,.fad.fa-smile-beam:after{content:"\f5b8\f5b8"}.fa-duotone.fa-light-ceiling:after,.fad.fa-light-ceiling:after{content:"\e016\e016"}.fa-duotone.fa-comment-alt-exclamation:after,.fa-duotone.fa-message-exclamation:after,.fad.fa-comment-alt-exclamation:after,.fad.fa-message-exclamation:after{content:"\f4a5\f4a5"}.fa-duotone.fa-bowl-scoop:after,.fa-duotone.fa-bowl-shaved-ice:after,.fad.fa-bowl-scoop:after,.fad.fa-bowl-shaved-ice:after{content:"\e3de\e3de"}.fa-duotone.fa-square-x:after,.fad.fa-square-x:after{content:"\e286\e286"}.fa-duotone.fa-building-memo:after,.fad.fa-building-memo:after{content:"\e61e\e61e"}.fa-duotone.fa-utility-pole-double:after,.fad.fa-utility-pole-double:after{content:"\e2c4\e2c4"}.fa-duotone.fa-flag-checkered:after,.fad.fa-flag-checkered:after{content:"\f11e\f11e"}.fa-duotone.fa-chevron-double-up:after,.fa-duotone.fa-chevrons-up:after,.fad.fa-chevron-double-up:after,.fad.fa-chevrons-up:after{content:"\f325\f325"}.fa-duotone.fa-football-ball:after,.fa-duotone.fa-football:after,.fad.fa-football-ball:after,.fad.fa-football:after{content:"\f44e\f44e"}.fa-duotone.fa-user-vneck:after,.fad.fa-user-vneck:after{content:"\e461\e461"}.fa-duotone.fa-school-circle-exclamation:after,.fad.fa-school-circle-exclamation:after{content:"\e56c\e56c"}.fa-duotone.fa-crop:after,.fad.fa-crop:after{content:"\f125\f125"}.fa-duotone.fa-angle-double-down:after,.fa-duotone.fa-angles-down:after,.fad.fa-angle-double-down:after,.fad.fa-angles-down:after{content:"\f103\f103"}.fa-duotone.fa-users-rectangle:after,.fad.fa-users-rectangle:after{content:"\e594\e594"}.fa-duotone.fa-people-roof:after,.fad.fa-people-roof:after{content:"\e537\e537"}.fa-duotone.fa-arrow-square-right:after,.fa-duotone.fa-square-arrow-right:after,.fad.fa-arrow-square-right:after,.fad.fa-square-arrow-right:after{content:"\f33b\f33b"}.fa-duotone.fa-location-plus:after,.fa-duotone.fa-map-marker-plus:after,.fad.fa-location-plus:after,.fad.fa-map-marker-plus:after{content:"\f60a\f60a"}.fa-duotone.fa-lightbulb-exclamation-on:after,.fad.fa-lightbulb-exclamation-on:after{content:"\e1ca\e1ca"}.fa-duotone.fa-people-line:after,.fad.fa-people-line:after{content:"\e534\e534"}.fa-duotone.fa-beer-mug-empty:after,.fa-duotone.fa-beer:after,.fad.fa-beer-mug-empty:after,.fad.fa-beer:after{content:"\f0fc\f0fc"}.fa-duotone.fa-crate-empty:after,.fad.fa-crate-empty:after{content:"\e151\e151"}.fa-duotone.fa-diagram-predecessor:after,.fad.fa-diagram-predecessor:after{content:"\e477\e477"}.fa-duotone.fa-transporter:after,.fad.fa-transporter:after{content:"\e042\e042"}.fa-duotone.fa-calendar-circle-user:after,.fad.fa-calendar-circle-user:after{content:"\e471\e471"}.fa-duotone.fa-arrow-up-long:after,.fa-duotone.fa-long-arrow-up:after,.fad.fa-arrow-up-long:after,.fad.fa-long-arrow-up:after{content:"\f176\f176"}.fa-duotone.fa-person-carry-box:after,.fa-duotone.fa-person-carry:after,.fad.fa-person-carry-box:after,.fad.fa-person-carry:after{content:"\f4cf\f4cf"}.fa-duotone.fa-burn:after,.fa-duotone.fa-fire-flame-simple:after,.fad.fa-burn:after,.fad.fa-fire-flame-simple:after{content:"\f46a\f46a"}.fa-duotone.fa-male:after,.fa-duotone.fa-person:after,.fad.fa-male:after,.fad.fa-person:after{content:"\f183\f183"}.fa-duotone.fa-laptop:after,.fad.fa-laptop:after{content:"\f109\f109"}.fa-duotone.fa-file-csv:after,.fad.fa-file-csv:after{content:"\f6dd\f6dd"}.fa-duotone.fa-menorah:after,.fad.fa-menorah:after{content:"\f676\f676"}.fa-duotone.fa-union:after,.fad.fa-union:after{content:"\f6a2\f6a2"}.fa-duotone.fa-chevron-double-left:after,.fa-duotone.fa-chevrons-left:after,.fad.fa-chevron-double-left:after,.fad.fa-chevrons-left:after{content:"\f323\f323"}.fa-duotone.fa-circle-heart:after,.fa-duotone.fa-heart-circle:after,.fad.fa-circle-heart:after,.fad.fa-heart-circle:after{content:"\f4c7\f4c7"}.fa-duotone.fa-truck-plane:after,.fad.fa-truck-plane:after{content:"\e58f\e58f"}.fa-duotone.fa-record-vinyl:after,.fad.fa-record-vinyl:after{content:"\f8d9\f8d9"}.fa-duotone.fa-bring-forward:after,.fad.fa-bring-forward:after{content:"\f856\f856"}.fa-duotone.fa-square-p:after,.fad.fa-square-p:after{content:"\e279\e279"}.fa-duotone.fa-face-grin-stars:after,.fa-duotone.fa-grin-stars:after,.fad.fa-face-grin-stars:after,.fad.fa-grin-stars:after{content:"\f587\f587"}.fa-duotone.fa-sigma:after,.fad.fa-sigma:after{content:"\f68b\f68b"}.fa-duotone.fa-camera-movie:after,.fad.fa-camera-movie:after{content:"\f8a9\f8a9"}.fa-duotone.fa-bong:after,.fad.fa-bong:after{content:"\f55c\f55c"}.fa-duotone.fa-clarinet:after,.fad.fa-clarinet:after{content:"\f8ad\f8ad"}.fa-duotone.fa-truck-flatbed:after,.fad.fa-truck-flatbed:after{content:"\e2b6\e2b6"}.fa-duotone.fa-pastafarianism:after,.fa-duotone.fa-spaghetti-monster-flying:after,.fad.fa-pastafarianism:after,.fad.fa-spaghetti-monster-flying:after{content:"\f67b\f67b"}.fa-duotone.fa-arrow-down-up-across-line:after,.fad.fa-arrow-down-up-across-line:after{content:"\e4af\e4af"}.fa-duotone.fa-arrows-rotate-reverse:after,.fad.fa-arrows-rotate-reverse:after{content:"\e630\e630"}.fa-duotone.fa-leaf-heart:after,.fad.fa-leaf-heart:after{content:"\f4cb\f4cb"}.fa-duotone.fa-house-building:after,.fad.fa-house-building:after{content:"\e1b1\e1b1"}.fa-duotone.fa-cheese-swiss:after,.fad.fa-cheese-swiss:after{content:"\f7f0\f7f0"}.fa-duotone.fa-spoon:after,.fa-duotone.fa-utensil-spoon:after,.fad.fa-spoon:after,.fad.fa-utensil-spoon:after{content:"\f2e5\f2e5"}.fa-duotone.fa-jar-wheat:after,.fad.fa-jar-wheat:after{content:"\e517\e517"}.fa-duotone.fa-envelopes-bulk:after,.fa-duotone.fa-mail-bulk:after,.fad.fa-envelopes-bulk:after,.fad.fa-mail-bulk:after{content:"\f674\f674"}.fa-duotone.fa-file-circle-exclamation:after,.fad.fa-file-circle-exclamation:after{content:"\e4eb\e4eb"}.fa-duotone.fa-bow-arrow:after,.fad.fa-bow-arrow:after{content:"\f6b9\f6b9"}.fa-duotone.fa-cart-xmark:after,.fad.fa-cart-xmark:after{content:"\e0dd\e0dd"}.fa-duotone.fa-hexagon-xmark:after,.fa-duotone.fa-times-hexagon:after,.fa-duotone.fa-xmark-hexagon:after,.fad.fa-hexagon-xmark:after,.fad.fa-times-hexagon:after,.fad.fa-xmark-hexagon:after{content:"\f2ee\f2ee"}.fa-duotone.fa-circle-h:after,.fa-duotone.fa-hospital-symbol:after,.fad.fa-circle-h:after,.fad.fa-hospital-symbol:after{content:"\f47e\f47e"}.fa-duotone.fa-merge:after,.fad.fa-merge:after{content:"\e526\e526"}.fa-duotone.fa-pager:after,.fad.fa-pager:after{content:"\f815\f815"}.fa-duotone.fa-cart-minus:after,.fad.fa-cart-minus:after{content:"\e0db\e0db"}.fa-duotone.fa-address-book:after,.fa-duotone.fa-contact-book:after,.fad.fa-address-book:after,.fad.fa-contact-book:after{content:"\f2b9\f2b9"}.fa-duotone.fa-pan-frying:after,.fad.fa-pan-frying:after{content:"\e42c\e42c"}.fa-duotone.fa-grid-3:after,.fa-duotone.fa-grid:after,.fad.fa-grid-3:after,.fad.fa-grid:after{content:"\e195\e195"}.fa-duotone.fa-football-helmet:after,.fad.fa-football-helmet:after{content:"\f44f\f44f"}.fa-duotone.fa-hand-love:after,.fad.fa-hand-love:after{content:"\e1a5\e1a5"}.fa-duotone.fa-trees:after,.fad.fa-trees:after{content:"\f724\f724"}.fa-duotone.fa-strikethrough:after,.fad.fa-strikethrough:after{content:"\f0cc\f0cc"}.fa-duotone.fa-page:after,.fad.fa-page:after{content:"\e428\e428"}.fa-duotone.fa-k:after,.fad.fa-k:after{content:"\4b\4b"}.fa-duotone.fa-diagram-previous:after,.fad.fa-diagram-previous:after{content:"\e478\e478"}.fa-duotone.fa-gauge-min:after,.fa-duotone.fa-tachometer-alt-slowest:after,.fad.fa-gauge-min:after,.fad.fa-tachometer-alt-slowest:after{content:"\f628\f628"}.fa-duotone.fa-folder-grid:after,.fad.fa-folder-grid:after{content:"\e188\e188"}.fa-duotone.fa-eggplant:after,.fad.fa-eggplant:after{content:"\e16c\e16c"}.fa-duotone.fa-excavator:after,.fad.fa-excavator:after{content:"\e656\e656"}.fa-duotone.fa-ram:after,.fad.fa-ram:after{content:"\f70a\f70a"}.fa-duotone.fa-landmark-flag:after,.fad.fa-landmark-flag:after{content:"\e51c\e51c"}.fa-duotone.fa-lips:after,.fad.fa-lips:after{content:"\f600\f600"}.fa-duotone.fa-pencil-alt:after,.fa-duotone.fa-pencil:after,.fad.fa-pencil-alt:after,.fad.fa-pencil:after{content:"\f303\f303"}.fa-duotone.fa-backward:after,.fad.fa-backward:after{content:"\f04a\f04a"}.fa-duotone.fa-caret-right:after,.fad.fa-caret-right:after{content:"\f0da\f0da"}.fa-duotone.fa-comments:after,.fad.fa-comments:after{content:"\f086\f086"}.fa-duotone.fa-file-clipboard:after,.fa-duotone.fa-paste:after,.fad.fa-file-clipboard:after,.fad.fa-paste:after{content:"\f0ea\f0ea"}.fa-duotone.fa-desktop-arrow-down:after,.fad.fa-desktop-arrow-down:after{content:"\e155\e155"}.fa-duotone.fa-code-pull-request:after,.fad.fa-code-pull-request:after{content:"\e13c\e13c"}.fa-duotone.fa-pumpkin:after,.fad.fa-pumpkin:after{content:"\f707\f707"}.fa-duotone.fa-clipboard-list:after,.fad.fa-clipboard-list:after{content:"\f46d\f46d"}.fa-duotone.fa-pen-field:after,.fad.fa-pen-field:after{content:"\e211\e211"}.fa-duotone.fa-blueberries:after,.fad.fa-blueberries:after{content:"\e2e8\e2e8"}.fa-duotone.fa-truck-loading:after,.fa-duotone.fa-truck-ramp-box:after,.fad.fa-truck-loading:after,.fad.fa-truck-ramp-box:after{content:"\f4de\f4de"}.fa-duotone.fa-note:after,.fad.fa-note:after{content:"\e1ff\e1ff"}.fa-duotone.fa-arrow-down-to-square:after,.fad.fa-arrow-down-to-square:after{content:"\e096\e096"}.fa-duotone.fa-user-check:after,.fad.fa-user-check:after{content:"\f4fc\f4fc"}.fa-duotone.fa-cloud-xmark:after,.fad.fa-cloud-xmark:after{content:"\e35f\e35f"}.fa-duotone.fa-vial-virus:after,.fad.fa-vial-virus:after{content:"\e597\e597"}.fa-duotone.fa-book-alt:after,.fa-duotone.fa-book-blank:after,.fad.fa-book-alt:after,.fad.fa-book-blank:after{content:"\f5d9\f5d9"}.fa-duotone.fa-golf-flag-hole:after,.fad.fa-golf-flag-hole:after{content:"\e3ac\e3ac"}.fa-duotone.fa-comment-alt-arrow-down:after,.fa-duotone.fa-message-arrow-down:after,.fad.fa-comment-alt-arrow-down:after,.fad.fa-message-arrow-down:after{content:"\e1db\e1db"}.fa-duotone.fa-face-unamused:after,.fad.fa-face-unamused:after{content:"\e39f\e39f"}.fa-duotone.fa-sheet-plastic:after,.fad.fa-sheet-plastic:after{content:"\e571\e571"}.fa-duotone.fa-circle-9:after,.fad.fa-circle-9:after{content:"\e0f6\e0f6"}.fa-duotone.fa-blog:after,.fad.fa-blog:after{content:"\f781\f781"}.fa-duotone.fa-user-ninja:after,.fad.fa-user-ninja:after{content:"\f504\f504"}.fa-duotone.fa-pencil-slash:after,.fad.fa-pencil-slash:after{content:"\e215\e215"}.fa-duotone.fa-bowling-pins:after,.fad.fa-bowling-pins:after{content:"\f437\f437"}.fa-duotone.fa-person-arrow-up-from-line:after,.fad.fa-person-arrow-up-from-line:after{content:"\e539\e539"}.fa-duotone.fa-down-right:after,.fad.fa-down-right:after{content:"\e16b\e16b"}.fa-duotone.fa-scroll-torah:after,.fa-duotone.fa-torah:after,.fad.fa-scroll-torah:after,.fad.fa-torah:after{content:"\f6a0\f6a0"}.fa-duotone.fa-webhook:after,.fad.fa-webhook:after{content:"\e5d5\e5d5"}.fa-duotone.fa-blinds-open:after,.fad.fa-blinds-open:after{content:"\f8fc\f8fc"}.fa-duotone.fa-fence:after,.fad.fa-fence:after{content:"\e303\e303"}.fa-duotone.fa-arrow-alt-up:after,.fa-duotone.fa-up:after,.fad.fa-arrow-alt-up:after,.fad.fa-up:after{content:"\f357\f357"}.fa-duotone.fa-broom-ball:after,.fa-duotone.fa-quidditch-broom-ball:after,.fa-duotone.fa-quidditch:after,.fad.fa-broom-ball:after,.fad.fa-quidditch-broom-ball:after,.fad.fa-quidditch:after{content:"\f458\f458"}.fa-duotone.fa-drumstick:after,.fad.fa-drumstick:after{content:"\f6d6\f6d6"}.fa-duotone.fa-square-v:after,.fad.fa-square-v:after{content:"\e284\e284"}.fa-duotone.fa-face-awesome:after,.fa-duotone.fa-gave-dandy:after,.fad.fa-face-awesome:after,.fad.fa-gave-dandy:after{content:"\e409\e409"}.fa-duotone.fa-dial-off:after,.fad.fa-dial-off:after{content:"\e162\e162"}.fa-duotone.fa-toggle-off:after,.fad.fa-toggle-off:after{content:"\f204\f204"}.fa-duotone.fa-face-smile-horns:after,.fad.fa-face-smile-horns:after{content:"\e391\e391"}.fa-duotone.fa-archive:after,.fa-duotone.fa-box-archive:after,.fad.fa-archive:after,.fad.fa-box-archive:after{content:"\f187\f187"}.fa-duotone.fa-grapes:after,.fad.fa-grapes:after{content:"\e306\e306"}.fa-duotone.fa-person-drowning:after,.fad.fa-person-drowning:after{content:"\e545\e545"}.fa-duotone.fa-dial-max:after,.fad.fa-dial-max:after{content:"\e15e\e15e"}.fa-duotone.fa-circle-m:after,.fad.fa-circle-m:after{content:"\e115\e115"}.fa-duotone.fa-calendar-image:after,.fad.fa-calendar-image:after{content:"\e0d4\e0d4"}.fa-duotone.fa-caret-circle-down:after,.fa-duotone.fa-circle-caret-down:after,.fad.fa-caret-circle-down:after,.fad.fa-circle-caret-down:after{content:"\f32d\f32d"}.fa-duotone.fa-arrow-down-9-1:after,.fa-duotone.fa-sort-numeric-desc:after,.fa-duotone.fa-sort-numeric-down-alt:after,.fad.fa-arrow-down-9-1:after,.fad.fa-sort-numeric-desc:after,.fad.fa-sort-numeric-down-alt:after{content:"\f886\f886"}.fa-duotone.fa-face-grin-tongue-squint:after,.fa-duotone.fa-grin-tongue-squint:after,.fad.fa-face-grin-tongue-squint:after,.fad.fa-grin-tongue-squint:after{content:"\f58a\f58a"}.fa-duotone.fa-shish-kebab:after,.fad.fa-shish-kebab:after{content:"\f821\f821"}.fa-duotone.fa-spray-can:after,.fad.fa-spray-can:after{content:"\f5bd\f5bd"}.fa-duotone.fa-alarm-snooze:after,.fad.fa-alarm-snooze:after{content:"\f845\f845"}.fa-duotone.fa-scarecrow:after,.fad.fa-scarecrow:after{content:"\f70d\f70d"}.fa-duotone.fa-truck-monster:after,.fad.fa-truck-monster:after{content:"\f63b\f63b"}.fa-duotone.fa-gift-card:after,.fad.fa-gift-card:after{content:"\f663\f663"}.fa-duotone.fa-w:after,.fad.fa-w:after{content:"\57\57"}.fa-duotone.fa-code-pull-request-draft:after,.fad.fa-code-pull-request-draft:after{content:"\e3fa\e3fa"}.fa-duotone.fa-square-b:after,.fad.fa-square-b:after{content:"\e264\e264"}.fa-duotone.fa-elephant:after,.fad.fa-elephant:after{content:"\f6da\f6da"}.fa-duotone.fa-earth-africa:after,.fa-duotone.fa-globe-africa:after,.fad.fa-earth-africa:after,.fad.fa-globe-africa:after{content:"\f57c\f57c"}.fa-duotone.fa-rainbow:after,.fad.fa-rainbow:after{content:"\f75b\f75b"}.fa-duotone.fa-circle-notch:after,.fad.fa-circle-notch:after{content:"\f1ce\f1ce"}.fa-duotone.fa-tablet-alt:after,.fa-duotone.fa-tablet-screen-button:after,.fad.fa-tablet-alt:after,.fad.fa-tablet-screen-button:after{content:"\f3fa\f3fa"}.fa-duotone.fa-paw:after,.fad.fa-paw:after{content:"\f1b0\f1b0"}.fa-duotone.fa-message-question:after,.fad.fa-message-question:after{content:"\e1e3\e1e3"}.fa-duotone.fa-cloud:after,.fad.fa-cloud:after{content:"\f0c2\f0c2"}.fa-duotone.fa-trowel-bricks:after,.fad.fa-trowel-bricks:after{content:"\e58a\e58a"}.fa-duotone.fa-square-3:after,.fad.fa-square-3:after{content:"\e258\e258"}.fa-duotone.fa-face-flushed:after,.fa-duotone.fa-flushed:after,.fad.fa-face-flushed:after,.fad.fa-flushed:after{content:"\f579\f579"}.fa-duotone.fa-hospital-user:after,.fad.fa-hospital-user:after{content:"\f80d\f80d"}.fa-duotone.fa-microwave:after,.fad.fa-microwave:after{content:"\e01b\e01b"}.fa-duotone.fa-chf-sign:after,.fad.fa-chf-sign:after{content:"\e602\e602"}.fa-duotone.fa-tent-arrow-left-right:after,.fad.fa-tent-arrow-left-right:after{content:"\e57f\e57f"}.fa-duotone.fa-cart-circle-arrow-up:after,.fad.fa-cart-circle-arrow-up:after{content:"\e3f0\e3f0"}.fa-duotone.fa-trash-clock:after,.fad.fa-trash-clock:after{content:"\e2b0\e2b0"}.fa-duotone.fa-gavel:after,.fa-duotone.fa-legal:after,.fad.fa-gavel:after,.fad.fa-legal:after{content:"\f0e3\f0e3"}.fa-duotone.fa-sprinkler-ceiling:after,.fad.fa-sprinkler-ceiling:after{content:"\e44c\e44c"}.fa-duotone.fa-browsers:after,.fad.fa-browsers:after{content:"\e0cb\e0cb"}.fa-duotone.fa-trillium:after,.fad.fa-trillium:after{content:"\e588\e588"}.fa-duotone.fa-music-slash:after,.fad.fa-music-slash:after{content:"\f8d1\f8d1"}.fa-duotone.fa-truck-ramp:after,.fad.fa-truck-ramp:after{content:"\f4e0\f4e0"}.fa-duotone.fa-binoculars:after,.fad.fa-binoculars:after{content:"\f1e5\f1e5"}.fa-duotone.fa-microphone-slash:after,.fad.fa-microphone-slash:after{content:"\f131\f131"}.fa-duotone.fa-box-tissue:after,.fad.fa-box-tissue:after{content:"\e05b\e05b"}.fa-duotone.fa-circle-c:after,.fad.fa-circle-c:after{content:"\e101\e101"}.fa-duotone.fa-star-christmas:after,.fad.fa-star-christmas:after{content:"\f7d4\f7d4"}.fa-duotone.fa-chart-bullet:after,.fad.fa-chart-bullet:after{content:"\e0e1\e0e1"}.fa-duotone.fa-motorcycle:after,.fad.fa-motorcycle:after{content:"\f21c\f21c"}.fa-duotone.fa-tree-christmas:after,.fad.fa-tree-christmas:after{content:"\f7db\f7db"}.fa-duotone.fa-tire-flat:after,.fad.fa-tire-flat:after{content:"\f632\f632"}.fa-duotone.fa-sunglasses:after,.fad.fa-sunglasses:after{content:"\f892\f892"}.fa-duotone.fa-badge:after,.fad.fa-badge:after{content:"\f335\f335"}.fa-duotone.fa-comment-alt-edit:after,.fa-duotone.fa-message-edit:after,.fa-duotone.fa-message-pen:after,.fad.fa-comment-alt-edit:after,.fad.fa-message-edit:after,.fad.fa-message-pen:after{content:"\f4a4\f4a4"}.fa-duotone.fa-bell-concierge:after,.fa-duotone.fa-concierge-bell:after,.fad.fa-bell-concierge:after,.fad.fa-concierge-bell:after{content:"\f562\f562"}.fa-duotone.fa-pen-ruler:after,.fa-duotone.fa-pencil-ruler:after,.fad.fa-pen-ruler:after,.fad.fa-pencil-ruler:after{content:"\f5ae\f5ae"}.fa-duotone.fa-file-mp3:after,.fad.fa-file-mp3:after{content:"\e648\e648"}.fa-duotone.fa-arrow-progress:after,.fad.fa-arrow-progress:after{content:"\e5df\e5df"}.fa-duotone.fa-chess-rook-alt:after,.fa-duotone.fa-chess-rook-piece:after,.fad.fa-chess-rook-alt:after,.fad.fa-chess-rook-piece:after{content:"\f448\f448"}.fa-duotone.fa-square-root:after,.fad.fa-square-root:after{content:"\f697\f697"}.fa-duotone.fa-album-collection-circle-plus:after,.fad.fa-album-collection-circle-plus:after{content:"\e48e\e48e"}.fa-duotone.fa-people-arrows-left-right:after,.fa-duotone.fa-people-arrows:after,.fad.fa-people-arrows-left-right:after,.fad.fa-people-arrows:after{content:"\e068\e068"}.fa-duotone.fa-sign-post:after,.fad.fa-sign-post:after{content:"\e624\e624"}.fa-duotone.fa-face-angry-horns:after,.fad.fa-face-angry-horns:after{content:"\e368\e368"}.fa-duotone.fa-mars-and-venus-burst:after,.fad.fa-mars-and-venus-burst:after{content:"\e523\e523"}.fa-duotone.fa-tombstone:after,.fad.fa-tombstone:after{content:"\f720\f720"}.fa-duotone.fa-caret-square-right:after,.fa-duotone.fa-square-caret-right:after,.fad.fa-caret-square-right:after,.fad.fa-square-caret-right:after{content:"\f152\f152"}.fa-duotone.fa-cut:after,.fa-duotone.fa-scissors:after,.fad.fa-cut:after,.fad.fa-scissors:after{content:"\f0c4\f0c4"}.fa-duotone.fa-list-music:after,.fad.fa-list-music:after{content:"\f8c9\f8c9"}.fa-duotone.fa-sun-plant-wilt:after,.fad.fa-sun-plant-wilt:after{content:"\e57a\e57a"}.fa-duotone.fa-toilets-portable:after,.fad.fa-toilets-portable:after{content:"\e584\e584"}.fa-duotone.fa-hockey-puck:after,.fad.fa-hockey-puck:after{content:"\f453\f453"}.fa-duotone.fa-mustache:after,.fad.fa-mustache:after{content:"\e5bc\e5bc"}.fa-duotone.fa-hyphen:after,.fad.fa-hyphen:after{content:"\2d\2d"}.fa-duotone.fa-table:after,.fad.fa-table:after{content:"\f0ce\f0ce"}.fa-duotone.fa-user-chef:after,.fad.fa-user-chef:after{content:"\e3d2\e3d2"}.fa-duotone.fa-comment-alt-image:after,.fa-duotone.fa-message-image:after,.fad.fa-comment-alt-image:after,.fad.fa-message-image:after{content:"\e1e0\e1e0"}.fa-duotone.fa-users-medical:after,.fad.fa-users-medical:after{content:"\f830\f830"}.fa-duotone.fa-sensor-alert:after,.fa-duotone.fa-sensor-triangle-exclamation:after,.fad.fa-sensor-alert:after,.fad.fa-sensor-triangle-exclamation:after{content:"\e029\e029"}.fa-duotone.fa-magnifying-glass-arrow-right:after,.fad.fa-magnifying-glass-arrow-right:after{content:"\e521\e521"}.fa-duotone.fa-digital-tachograph:after,.fa-duotone.fa-tachograph-digital:after,.fad.fa-digital-tachograph:after,.fad.fa-tachograph-digital:after{content:"\f566\f566"}.fa-duotone.fa-face-mask:after,.fad.fa-face-mask:after{content:"\e37f\e37f"}.fa-duotone.fa-pickleball:after,.fad.fa-pickleball:after{content:"\e435\e435"}.fa-duotone.fa-star-sharp-half:after,.fad.fa-star-sharp-half:after{content:"\e28c\e28c"}.fa-duotone.fa-users-slash:after,.fad.fa-users-slash:after{content:"\e073\e073"}.fa-duotone.fa-clover:after,.fad.fa-clover:after{content:"\e139\e139"}.fa-duotone.fa-meat:after,.fad.fa-meat:after{content:"\f814\f814"}.fa-duotone.fa-mail-reply:after,.fa-duotone.fa-reply:after,.fad.fa-mail-reply:after,.fad.fa-reply:after{content:"\f3e5\f3e5"}.fa-duotone.fa-star-and-crescent:after,.fad.fa-star-and-crescent:after{content:"\f699\f699"}.fa-duotone.fa-empty-set:after,.fad.fa-empty-set:after{content:"\f656\f656"}.fa-duotone.fa-house-fire:after,.fad.fa-house-fire:after{content:"\e50c\e50c"}.fa-duotone.fa-minus-square:after,.fa-duotone.fa-square-minus:after,.fad.fa-minus-square:after,.fad.fa-square-minus:after{content:"\f146\f146"}.fa-duotone.fa-helicopter:after,.fad.fa-helicopter:after{content:"\f533\f533"}.fa-duotone.fa-bird:after,.fad.fa-bird:after{content:"\e469\e469"}.fa-duotone.fa-compass:after,.fad.fa-compass:after{content:"\f14e\f14e"}.fa-duotone.fa-caret-square-down:after,.fa-duotone.fa-square-caret-down:after,.fad.fa-caret-square-down:after,.fad.fa-square-caret-down:after{content:"\f150\f150"}.fa-duotone.fa-heart-half-alt:after,.fa-duotone.fa-heart-half-stroke:after,.fad.fa-heart-half-alt:after,.fad.fa-heart-half-stroke:after{content:"\e1ac\e1ac"}.fa-duotone.fa-file-circle-question:after,.fad.fa-file-circle-question:after{content:"\e4ef\e4ef"}.fa-duotone.fa-truck-utensils:after,.fad.fa-truck-utensils:after{content:"\e628\e628"}.fa-duotone.fa-laptop-code:after,.fad.fa-laptop-code:after{content:"\f5fc\f5fc"}.fa-duotone.fa-joystick:after,.fad.fa-joystick:after{content:"\f8c5\f8c5"}.fa-duotone.fa-grill-fire:after,.fad.fa-grill-fire:after{content:"\e5a4\e5a4"}.fa-duotone.fa-rectangle-vertical-history:after,.fad.fa-rectangle-vertical-history:after{content:"\e237\e237"}.fa-duotone.fa-swatchbook:after,.fad.fa-swatchbook:after{content:"\f5c3\f5c3"}.fa-duotone.fa-prescription-bottle:after,.fad.fa-prescription-bottle:after{content:"\f485\f485"}.fa-duotone.fa-bars:after,.fa-duotone.fa-navicon:after,.fad.fa-bars:after,.fad.fa-navicon:after{content:"\f0c9\f0c9"}.fa-duotone.fa-keyboard-left:after,.fad.fa-keyboard-left:after{content:"\e1c3\e1c3"}.fa-duotone.fa-people-group:after,.fad.fa-people-group:after{content:"\e533\e533"}.fa-duotone.fa-hourglass-3:after,.fa-duotone.fa-hourglass-end:after,.fad.fa-hourglass-3:after,.fad.fa-hourglass-end:after{content:"\f253\f253"}.fa-duotone.fa-heart-broken:after,.fa-duotone.fa-heart-crack:after,.fad.fa-heart-broken:after,.fad.fa-heart-crack:after{content:"\f7a9\f7a9"}.fa-duotone.fa-face-beam-hand-over-mouth:after,.fad.fa-face-beam-hand-over-mouth:after{content:"\e47c\e47c"}.fa-duotone.fa-droplet-percent:after,.fa-duotone.fa-humidity:after,.fad.fa-droplet-percent:after,.fad.fa-humidity:after{content:"\f750\f750"}.fa-duotone.fa-external-link-square-alt:after,.fa-duotone.fa-square-up-right:after,.fad.fa-external-link-square-alt:after,.fad.fa-square-up-right:after{content:"\f360\f360"}.fa-duotone.fa-face-kiss-beam:after,.fa-duotone.fa-kiss-beam:after,.fad.fa-face-kiss-beam:after,.fad.fa-kiss-beam:after{content:"\f597\f597"}.fa-duotone.fa-corn:after,.fad.fa-corn:after{content:"\f6c7\f6c7"}.fa-duotone.fa-roller-coaster:after,.fad.fa-roller-coaster:after{content:"\e324\e324"}.fa-duotone.fa-photo-film-music:after,.fad.fa-photo-film-music:after{content:"\e228\e228"}.fa-duotone.fa-radar:after,.fad.fa-radar:after{content:"\e024\e024"}.fa-duotone.fa-sickle:after,.fad.fa-sickle:after{content:"\f822\f822"}.fa-duotone.fa-film:after,.fad.fa-film:after{content:"\f008\f008"}.fa-duotone.fa-coconut:after,.fad.fa-coconut:after{content:"\e2f6\e2f6"}.fa-duotone.fa-ruler-horizontal:after,.fad.fa-ruler-horizontal:after{content:"\f547\f547"}.fa-duotone.fa-shield-cross:after,.fad.fa-shield-cross:after{content:"\f712\f712"}.fa-duotone.fa-cassette-tape:after,.fad.fa-cassette-tape:after{content:"\f8ab\f8ab"}.fa-duotone.fa-square-terminal:after,.fad.fa-square-terminal:after{content:"\e32a\e32a"}.fa-duotone.fa-people-robbery:after,.fad.fa-people-robbery:after{content:"\e536\e536"}.fa-duotone.fa-lightbulb:after,.fad.fa-lightbulb:after{content:"\f0eb\f0eb"}.fa-duotone.fa-caret-left:after,.fad.fa-caret-left:after{content:"\f0d9\f0d9"}.fa-duotone.fa-comment-middle:after,.fad.fa-comment-middle:after{content:"\e149\e149"}.fa-duotone.fa-trash-can-list:after,.fad.fa-trash-can-list:after{content:"\e2ab\e2ab"}.fa-duotone.fa-block:after,.fad.fa-block:after{content:"\e46a\e46a"}.fa-duotone.fa-circle-exclamation:after,.fa-duotone.fa-exclamation-circle:after,.fad.fa-circle-exclamation:after,.fad.fa-exclamation-circle:after{content:"\f06a\f06a"}.fa-duotone.fa-school-circle-xmark:after,.fad.fa-school-circle-xmark:after{content:"\e56d\e56d"}.fa-duotone.fa-arrow-right-from-bracket:after,.fa-duotone.fa-sign-out:after,.fad.fa-arrow-right-from-bracket:after,.fad.fa-sign-out:after{content:"\f08b\f08b"}.fa-duotone.fa-face-frown-slight:after,.fad.fa-face-frown-slight:after{content:"\e376\e376"}.fa-duotone.fa-chevron-circle-down:after,.fa-duotone.fa-circle-chevron-down:after,.fad.fa-chevron-circle-down:after,.fad.fa-circle-chevron-down:after{content:"\f13a\f13a"}.fa-duotone.fa-sidebar-flip:after,.fad.fa-sidebar-flip:after{content:"\e24f\e24f"}.fa-duotone.fa-unlock-alt:after,.fa-duotone.fa-unlock-keyhole:after,.fad.fa-unlock-alt:after,.fad.fa-unlock-keyhole:after{content:"\f13e\f13e"}.fa-duotone.fa-temperature-list:after,.fad.fa-temperature-list:after{content:"\e299\e299"}.fa-duotone.fa-cloud-showers-heavy:after,.fad.fa-cloud-showers-heavy:after{content:"\f740\f740"}.fa-duotone.fa-headphones-alt:after,.fa-duotone.fa-headphones-simple:after,.fad.fa-headphones-alt:after,.fad.fa-headphones-simple:after{content:"\f58f\f58f"}.fa-duotone.fa-sitemap:after,.fad.fa-sitemap:after{content:"\f0e8\f0e8"}.fa-duotone.fa-pipe-section:after,.fad.fa-pipe-section:after{content:"\e438\e438"}.fa-duotone.fa-space-station-moon-alt:after,.fa-duotone.fa-space-station-moon-construction:after,.fad.fa-space-station-moon-alt:after,.fad.fa-space-station-moon-construction:after{content:"\e034\e034"}.fa-duotone.fa-circle-dollar-to-slot:after,.fa-duotone.fa-donate:after,.fad.fa-circle-dollar-to-slot:after,.fad.fa-donate:after{content:"\f4b9\f4b9"}.fa-duotone.fa-memory:after,.fad.fa-memory:after{content:"\f538\f538"}.fa-duotone.fa-face-sleeping:after,.fad.fa-face-sleeping:after{content:"\e38d\e38d"}.fa-duotone.fa-road-spikes:after,.fad.fa-road-spikes:after{content:"\e568\e568"}.fa-duotone.fa-fire-burner:after,.fad.fa-fire-burner:after{content:"\e4f1\e4f1"}.fa-duotone.fa-squirrel:after,.fad.fa-squirrel:after{content:"\f71a\f71a"}.fa-duotone.fa-arrow-to-top:after,.fa-duotone.fa-arrow-up-to-line:after,.fad.fa-arrow-to-top:after,.fad.fa-arrow-up-to-line:after{content:"\f341\f341"}.fa-duotone.fa-flag:after,.fad.fa-flag:after{content:"\f024\f024"}.fa-duotone.fa-face-cowboy-hat:after,.fad.fa-face-cowboy-hat:after{content:"\e36e\e36e"}.fa-duotone.fa-hanukiah:after,.fad.fa-hanukiah:after{content:"\f6e6\f6e6"}.fa-duotone.fa-chart-scatter-3d:after,.fad.fa-chart-scatter-3d:after{content:"\e0e8\e0e8"}.fa-duotone.fa-display-chart-up:after,.fad.fa-display-chart-up:after{content:"\e5e3\e5e3"}.fa-duotone.fa-square-code:after,.fad.fa-square-code:after{content:"\e267\e267"}.fa-duotone.fa-feather:after,.fad.fa-feather:after{content:"\f52d\f52d"}.fa-duotone.fa-volume-down:after,.fa-duotone.fa-volume-low:after,.fad.fa-volume-down:after,.fad.fa-volume-low:after{content:"\f027\f027"}.fa-duotone.fa-times-to-slot:after,.fa-duotone.fa-vote-nay:after,.fa-duotone.fa-xmark-to-slot:after,.fad.fa-times-to-slot:after,.fad.fa-vote-nay:after,.fad.fa-xmark-to-slot:after{content:"\f771\f771"}.fa-duotone.fa-box-alt:after,.fa-duotone.fa-box-taped:after,.fad.fa-box-alt:after,.fad.fa-box-taped:after{content:"\f49a\f49a"}.fa-duotone.fa-comment-slash:after,.fad.fa-comment-slash:after{content:"\f4b3\f4b3"}.fa-duotone.fa-swords:after,.fad.fa-swords:after{content:"\f71d\f71d"}.fa-duotone.fa-cloud-sun-rain:after,.fad.fa-cloud-sun-rain:after{content:"\f743\f743"}.fa-duotone.fa-album:after,.fad.fa-album:after{content:"\f89f\f89f"}.fa-duotone.fa-circle-n:after,.fad.fa-circle-n:after{content:"\e118\e118"}.fa-duotone.fa-compress:after,.fad.fa-compress:after{content:"\f066\f066"}.fa-duotone.fa-wheat-alt:after,.fa-duotone.fa-wheat-awn:after,.fad.fa-wheat-alt:after,.fad.fa-wheat-awn:after{content:"\e2cd\e2cd"}.fa-duotone.fa-ankh:after,.fad.fa-ankh:after{content:"\f644\f644"}.fa-duotone.fa-hands-holding-child:after,.fad.fa-hands-holding-child:after{content:"\e4fa\e4fa"}.fa-duotone.fa-asterisk:after,.fad.fa-asterisk:after{content:"\2a\2a"}.fa-duotone.fa-key-skeleton-left-right:after,.fad.fa-key-skeleton-left-right:after{content:"\e3b4\e3b4"}.fa-duotone.fa-comment-lines:after,.fad.fa-comment-lines:after{content:"\f4b0\f4b0"}.fa-duotone.fa-luchador-mask:after,.fa-duotone.fa-luchador:after,.fa-duotone.fa-mask-luchador:after,.fad.fa-luchador-mask:after,.fad.fa-luchador:after,.fad.fa-mask-luchador:after{content:"\f455\f455"}.fa-duotone.fa-check-square:after,.fa-duotone.fa-square-check:after,.fad.fa-check-square:after,.fad.fa-square-check:after{content:"\f14a\f14a"}.fa-duotone.fa-shredder:after,.fad.fa-shredder:after{content:"\f68a\f68a"}.fa-duotone.fa-book-open-alt:after,.fa-duotone.fa-book-open-cover:after,.fad.fa-book-open-alt:after,.fad.fa-book-open-cover:after{content:"\e0c0\e0c0"}.fa-duotone.fa-sandwich:after,.fad.fa-sandwich:after{content:"\f81f\f81f"}.fa-duotone.fa-peseta-sign:after,.fad.fa-peseta-sign:after{content:"\e221\e221"}.fa-duotone.fa-parking-slash:after,.fa-duotone.fa-square-parking-slash:after,.fad.fa-parking-slash:after,.fad.fa-square-parking-slash:after{content:"\f617\f617"}.fa-duotone.fa-train-tunnel:after,.fad.fa-train-tunnel:after{content:"\e454\e454"}.fa-duotone.fa-header:after,.fa-duotone.fa-heading:after,.fad.fa-header:after,.fad.fa-heading:after{content:"\f1dc\f1dc"}.fa-duotone.fa-ghost:after,.fad.fa-ghost:after{content:"\f6e2\f6e2"}.fa-duotone.fa-face-anguished:after,.fad.fa-face-anguished:after{content:"\e369\e369"}.fa-duotone.fa-hockey-sticks:after,.fad.fa-hockey-sticks:after{content:"\f454\f454"}.fa-duotone.fa-abacus:after,.fad.fa-abacus:after{content:"\f640\f640"}.fa-duotone.fa-film-alt:after,.fa-duotone.fa-film-simple:after,.fad.fa-film-alt:after,.fad.fa-film-simple:after{content:"\f3a0\f3a0"}.fa-duotone.fa-list-squares:after,.fa-duotone.fa-list:after,.fad.fa-list-squares:after,.fad.fa-list:after{content:"\f03a\f03a"}.fa-duotone.fa-tree-palm:after,.fad.fa-tree-palm:after{content:"\f82b\f82b"}.fa-duotone.fa-phone-square-alt:after,.fa-duotone.fa-square-phone-flip:after,.fad.fa-phone-square-alt:after,.fad.fa-square-phone-flip:after{content:"\f87b\f87b"}.fa-duotone.fa-cart-plus:after,.fad.fa-cart-plus:after{content:"\f217\f217"}.fa-duotone.fa-gamepad:after,.fad.fa-gamepad:after{content:"\f11b\f11b"}.fa-duotone.fa-border-center-v:after,.fad.fa-border-center-v:after{content:"\f89d\f89d"}.fa-duotone.fa-circle-dot:after,.fa-duotone.fa-dot-circle:after,.fad.fa-circle-dot:after,.fad.fa-dot-circle:after{content:"\f192\f192"}.fa-duotone.fa-clipboard-medical:after,.fad.fa-clipboard-medical:after{content:"\e133\e133"}.fa-duotone.fa-dizzy:after,.fa-duotone.fa-face-dizzy:after,.fad.fa-dizzy:after,.fad.fa-face-dizzy:after{content:"\f567\f567"}.fa-duotone.fa-egg:after,.fad.fa-egg:after{content:"\f7fb\f7fb"}.fa-duotone.fa-arrow-alt-to-top:after,.fa-duotone.fa-up-to-line:after,.fad.fa-arrow-alt-to-top:after,.fad.fa-up-to-line:after{content:"\f34d\f34d"}.fa-duotone.fa-house-medical-circle-xmark:after,.fad.fa-house-medical-circle-xmark:after{content:"\e513\e513"}.fa-duotone.fa-watch-fitness:after,.fad.fa-watch-fitness:after{content:"\f63e\f63e"}.fa-duotone.fa-clock-nine-thirty:after,.fad.fa-clock-nine-thirty:after{content:"\e34d\e34d"}.fa-duotone.fa-campground:after,.fad.fa-campground:after{content:"\f6bb\f6bb"}.fa-duotone.fa-folder-plus:after,.fad.fa-folder-plus:after{content:"\f65e\f65e"}.fa-duotone.fa-jug:after,.fad.fa-jug:after{content:"\f8c6\f8c6"}.fa-duotone.fa-futbol-ball:after,.fa-duotone.fa-futbol:after,.fa-duotone.fa-soccer-ball:after,.fad.fa-futbol-ball:after,.fad.fa-futbol:after,.fad.fa-soccer-ball:after{content:"\f1e3\f1e3"}.fa-duotone.fa-snow-blowing:after,.fad.fa-snow-blowing:after{content:"\f761\f761"}.fa-duotone.fa-paint-brush:after,.fa-duotone.fa-paintbrush:after,.fad.fa-paint-brush:after,.fad.fa-paintbrush:after{content:"\f1fc\f1fc"}.fa-duotone.fa-lock:after,.fad.fa-lock:after{content:"\f023\f023"}.fa-duotone.fa-arrow-down-from-line:after,.fa-duotone.fa-arrow-from-top:after,.fad.fa-arrow-down-from-line:after,.fad.fa-arrow-from-top:after{content:"\f345\f345"}.fa-duotone.fa-gas-pump:after,.fad.fa-gas-pump:after{content:"\f52f\f52f"}.fa-duotone.fa-signal-alt-slash:after,.fa-duotone.fa-signal-bars-slash:after,.fad.fa-signal-alt-slash:after,.fad.fa-signal-bars-slash:after{content:"\f694\f694"}.fa-duotone.fa-monkey:after,.fad.fa-monkey:after{content:"\f6fb\f6fb"}.fa-duotone.fa-pro:after,.fa-duotone.fa-rectangle-pro:after,.fad.fa-pro:after,.fad.fa-rectangle-pro:after{content:"\e235\e235"}.fa-duotone.fa-house-night:after,.fad.fa-house-night:after{content:"\e010\e010"}.fa-duotone.fa-hot-tub-person:after,.fa-duotone.fa-hot-tub:after,.fad.fa-hot-tub-person:after,.fad.fa-hot-tub:after{content:"\f593\f593"}.fa-duotone.fa-globe-pointer:after,.fad.fa-globe-pointer:after{content:"\e60e\e60e"}.fa-duotone.fa-blanket:after,.fad.fa-blanket:after{content:"\f498\f498"}.fa-duotone.fa-map-location:after,.fa-duotone.fa-map-marked:after,.fad.fa-map-location:after,.fad.fa-map-marked:after{content:"\f59f\f59f"}.fa-duotone.fa-house-flood-water:after,.fad.fa-house-flood-water:after{content:"\e50e\e50e"}.fa-duotone.fa-comments-question-check:after,.fad.fa-comments-question-check:after{content:"\e14f\e14f"}.fa-duotone.fa-tree:after,.fad.fa-tree:after{content:"\f1bb\f1bb"}.fa-duotone.fa-arrows-cross:after,.fad.fa-arrows-cross:after{content:"\e0a2\e0a2"}.fa-duotone.fa-backpack:after,.fad.fa-backpack:after{content:"\f5d4\f5d4"}.fa-duotone.fa-square-small:after,.fad.fa-square-small:after{content:"\e27e\e27e"}.fa-duotone.fa-folder-arrow-up:after,.fa-duotone.fa-folder-upload:after,.fad.fa-folder-arrow-up:after,.fad.fa-folder-upload:after{content:"\e054\e054"}.fa-duotone.fa-bridge-lock:after,.fad.fa-bridge-lock:after{content:"\e4cc\e4cc"}.fa-duotone.fa-crosshairs-simple:after,.fad.fa-crosshairs-simple:after{content:"\e59f\e59f"}.fa-duotone.fa-sack-dollar:after,.fad.fa-sack-dollar:after{content:"\f81d\f81d"}.fa-duotone.fa-edit:after,.fa-duotone.fa-pen-to-square:after,.fad.fa-edit:after,.fad.fa-pen-to-square:after{content:"\f044\f044"}.fa-duotone.fa-sliders-h-square:after,.fa-duotone.fa-square-sliders:after,.fad.fa-sliders-h-square:after,.fad.fa-square-sliders:after{content:"\f3f0\f3f0"}.fa-duotone.fa-car-side:after,.fad.fa-car-side:after{content:"\f5e4\f5e4"}.fa-duotone.fa-comment-middle-top-alt:after,.fa-duotone.fa-message-middle-top:after,.fad.fa-comment-middle-top-alt:after,.fad.fa-message-middle-top:after{content:"\e1e2\e1e2"}.fa-duotone.fa-lightbulb-on:after,.fad.fa-lightbulb-on:after{content:"\f672\f672"}.fa-duotone.fa-knife:after,.fa-duotone.fa-utensil-knife:after,.fad.fa-knife:after,.fad.fa-utensil-knife:after{content:"\f2e4\f2e4"}.fa-duotone.fa-share-alt:after,.fa-duotone.fa-share-nodes:after,.fad.fa-share-alt:after,.fad.fa-share-nodes:after{content:"\f1e0\f1e0"}.fa-duotone.fa-display-chart-up-circle-dollar:after,.fad.fa-display-chart-up-circle-dollar:after{content:"\e5e6\e5e6"}.fa-duotone.fa-wave-sine:after,.fad.fa-wave-sine:after{content:"\f899\f899"}.fa-duotone.fa-heart-circle-minus:after,.fad.fa-heart-circle-minus:after{content:"\e4ff\e4ff"}.fa-duotone.fa-circle-w:after,.fad.fa-circle-w:after{content:"\e12c\e12c"}.fa-duotone.fa-calendar-circle:after,.fa-duotone.fa-circle-calendar:after,.fad.fa-calendar-circle:after,.fad.fa-circle-calendar:after{content:"\e102\e102"}.fa-duotone.fa-hourglass-2:after,.fa-duotone.fa-hourglass-half:after,.fad.fa-hourglass-2:after,.fad.fa-hourglass-half:after{content:"\f252\f252"}.fa-duotone.fa-microscope:after,.fad.fa-microscope:after{content:"\f610\f610"}.fa-duotone.fa-sunset:after,.fad.fa-sunset:after{content:"\f767\f767"}.fa-duotone.fa-sink:after,.fad.fa-sink:after{content:"\e06d\e06d"}.fa-duotone.fa-calendar-exclamation:after,.fad.fa-calendar-exclamation:after{content:"\f334\f334"}.fa-duotone.fa-truck-container-empty:after,.fad.fa-truck-container-empty:after{content:"\e2b5\e2b5"}.fa-duotone.fa-hand-heart:after,.fad.fa-hand-heart:after{content:"\f4bc\f4bc"}.fa-duotone.fa-bag-shopping:after,.fa-duotone.fa-shopping-bag:after,.fad.fa-bag-shopping:after,.fad.fa-shopping-bag:after{content:"\f290\f290"}.fa-duotone.fa-arrow-down-z-a:after,.fa-duotone.fa-sort-alpha-desc:after,.fa-duotone.fa-sort-alpha-down-alt:after,.fad.fa-arrow-down-z-a:after,.fad.fa-sort-alpha-desc:after,.fad.fa-sort-alpha-down-alt:after{content:"\f881\f881"}.fa-duotone.fa-mitten:after,.fad.fa-mitten:after{content:"\f7b5\f7b5"}.fa-duotone.fa-reply-clock:after,.fa-duotone.fa-reply-time:after,.fad.fa-reply-clock:after,.fad.fa-reply-time:after{content:"\e239\e239"}.fa-duotone.fa-person-rays:after,.fad.fa-person-rays:after{content:"\e54d\e54d"}.fa-duotone.fa-arrow-alt-right:after,.fa-duotone.fa-right:after,.fad.fa-arrow-alt-right:after,.fad.fa-right:after{content:"\f356\f356"}.fa-duotone.fa-circle-f:after,.fad.fa-circle-f:after{content:"\e10e\e10e"}.fa-duotone.fa-users:after,.fad.fa-users:after{content:"\f0c0\f0c0"}.fa-duotone.fa-face-pleading:after,.fad.fa-face-pleading:after{content:"\e386\e386"}.fa-duotone.fa-eye-slash:after,.fad.fa-eye-slash:after{content:"\f070\f070"}.fa-duotone.fa-flask-vial:after,.fad.fa-flask-vial:after{content:"\e4f3\e4f3"}.fa-duotone.fa-police-box:after,.fad.fa-police-box:after{content:"\e021\e021"}.fa-duotone.fa-cucumber:after,.fad.fa-cucumber:after{content:"\e401\e401"}.fa-duotone.fa-head-side-brain:after,.fad.fa-head-side-brain:after{content:"\f808\f808"}.fa-duotone.fa-hand-paper:after,.fa-duotone.fa-hand:after,.fad.fa-hand-paper:after,.fad.fa-hand:after{content:"\f256\f256"}.fa-duotone.fa-biking-mountain:after,.fa-duotone.fa-person-biking-mountain:after,.fad.fa-biking-mountain:after,.fad.fa-person-biking-mountain:after{content:"\f84b\f84b"}.fa-duotone.fa-utensils-slash:after,.fad.fa-utensils-slash:after{content:"\e464\e464"}.fa-duotone.fa-print-magnifying-glass:after,.fa-duotone.fa-print-search:after,.fad.fa-print-magnifying-glass:after,.fad.fa-print-search:after{content:"\f81a\f81a"}.fa-duotone.fa-turn-right:after,.fad.fa-turn-right:after{content:"\e639\e639"}.fa-duotone.fa-folder-bookmark:after,.fad.fa-folder-bookmark:after{content:"\e186\e186"}.fa-duotone.fa-arrow-turn-left-down:after,.fad.fa-arrow-turn-left-down:after{content:"\e633\e633"}.fa-duotone.fa-om:after,.fad.fa-om:after{content:"\f679\f679"}.fa-duotone.fa-pi:after,.fad.fa-pi:after{content:"\f67e\f67e"}.fa-duotone.fa-flask-potion:after,.fa-duotone.fa-flask-round-potion:after,.fad.fa-flask-potion:after,.fad.fa-flask-round-potion:after{content:"\f6e1\f6e1"}.fa-duotone.fa-face-shush:after,.fad.fa-face-shush:after{content:"\e38c\e38c"}.fa-duotone.fa-worm:after,.fad.fa-worm:after{content:"\e599\e599"}.fa-duotone.fa-house-circle-xmark:after,.fad.fa-house-circle-xmark:after{content:"\e50b\e50b"}.fa-duotone.fa-plug:after,.fad.fa-plug:after{content:"\f1e6\f1e6"}.fa-duotone.fa-calendar-circle-exclamation:after,.fad.fa-calendar-circle-exclamation:after{content:"\e46e\e46e"}.fa-duotone.fa-square-i:after,.fad.fa-square-i:after{content:"\e272\e272"}.fa-duotone.fa-chevron-up:after,.fad.fa-chevron-up:after{content:"\f077\f077"}.fa-duotone.fa-face-saluting:after,.fad.fa-face-saluting:after{content:"\e484\e484"}.fa-duotone.fa-gauge-simple-low:after,.fa-duotone.fa-tachometer-slow:after,.fad.fa-gauge-simple-low:after,.fad.fa-tachometer-slow:after{content:"\f62c\f62c"}.fa-duotone.fa-face-persevering:after,.fad.fa-face-persevering:after{content:"\e385\e385"}.fa-duotone.fa-camera-circle:after,.fa-duotone.fa-circle-camera:after,.fad.fa-camera-circle:after,.fad.fa-circle-camera:after{content:"\e103\e103"}.fa-duotone.fa-hand-spock:after,.fad.fa-hand-spock:after{content:"\f259\f259"}.fa-duotone.fa-spider-web:after,.fad.fa-spider-web:after{content:"\f719\f719"}.fa-duotone.fa-circle-microphone:after,.fa-duotone.fa-microphone-circle:after,.fad.fa-circle-microphone:after,.fad.fa-microphone-circle:after{content:"\e116\e116"}.fa-duotone.fa-book-arrow-up:after,.fad.fa-book-arrow-up:after{content:"\e0ba\e0ba"}.fa-duotone.fa-popsicle:after,.fad.fa-popsicle:after{content:"\e43e\e43e"}.fa-duotone.fa-command:after,.fad.fa-command:after{content:"\e142\e142"}.fa-duotone.fa-blinds:after,.fad.fa-blinds:after{content:"\f8fb\f8fb"}.fa-duotone.fa-stopwatch:after,.fad.fa-stopwatch:after{content:"\f2f2\f2f2"}.fa-duotone.fa-saxophone:after,.fad.fa-saxophone:after{content:"\f8dc\f8dc"}.fa-duotone.fa-square-2:after,.fad.fa-square-2:after{content:"\e257\e257"}.fa-duotone.fa-field-hockey-stick-ball:after,.fa-duotone.fa-field-hockey:after,.fad.fa-field-hockey-stick-ball:after,.fad.fa-field-hockey:after{content:"\f44c\f44c"}.fa-duotone.fa-arrow-up-square-triangle:after,.fa-duotone.fa-sort-shapes-up-alt:after,.fad.fa-arrow-up-square-triangle:after,.fad.fa-sort-shapes-up-alt:after{content:"\f88b\f88b"}.fa-duotone.fa-face-scream:after,.fad.fa-face-scream:after{content:"\e38b\e38b"}.fa-duotone.fa-square-m:after,.fad.fa-square-m:after{content:"\e276\e276"}.fa-duotone.fa-camera-web:after,.fa-duotone.fa-webcam:after,.fad.fa-camera-web:after,.fad.fa-webcam:after{content:"\f832\f832"}.fa-duotone.fa-comment-arrow-down:after,.fad.fa-comment-arrow-down:after{content:"\e143\e143"}.fa-duotone.fa-lightbulb-cfl:after,.fad.fa-lightbulb-cfl:after{content:"\e5a6\e5a6"}.fa-duotone.fa-window-frame-open:after,.fad.fa-window-frame-open:after{content:"\e050\e050"}.fa-duotone.fa-face-kiss:after,.fa-duotone.fa-kiss:after,.fad.fa-face-kiss:after,.fad.fa-kiss:after{content:"\f596\f596"}.fa-duotone.fa-bridge-circle-xmark:after,.fad.fa-bridge-circle-xmark:after{content:"\e4cb\e4cb"}.fa-duotone.fa-period:after,.fad.fa-period:after{content:"\2e\2e"}.fa-duotone.fa-face-grin-tongue:after,.fa-duotone.fa-grin-tongue:after,.fad.fa-face-grin-tongue:after,.fad.fa-grin-tongue:after{content:"\f589\f589"}.fa-duotone.fa-up-to-dotted-line:after,.fad.fa-up-to-dotted-line:after{content:"\e457\e457"}.fa-duotone.fa-thought-bubble:after,.fad.fa-thought-bubble:after{content:"\e32e\e32e"}.fa-duotone.fa-skeleton-ribs:after,.fad.fa-skeleton-ribs:after{content:"\e5cb\e5cb"}.fa-duotone.fa-raygun:after,.fad.fa-raygun:after{content:"\e025\e025"}.fa-duotone.fa-flute:after,.fad.fa-flute:after{content:"\f8b9\f8b9"}.fa-duotone.fa-acorn:after,.fad.fa-acorn:after{content:"\f6ae\f6ae"}.fa-duotone.fa-video-arrow-up-right:after,.fad.fa-video-arrow-up-right:after{content:"\e2c9\e2c9"}.fa-duotone.fa-grate-droplet:after,.fad.fa-grate-droplet:after{content:"\e194\e194"}.fa-duotone.fa-seal-exclamation:after,.fad.fa-seal-exclamation:after{content:"\e242\e242"}.fa-duotone.fa-chess-bishop:after,.fad.fa-chess-bishop:after{content:"\f43a\f43a"}.fa-duotone.fa-message-sms:after,.fad.fa-message-sms:after{content:"\e1e5\e1e5"}.fa-duotone.fa-coffee-beans:after,.fad.fa-coffee-beans:after{content:"\e13f\e13f"}.fa-duotone.fa-hat-witch:after,.fad.fa-hat-witch:after{content:"\f6e7\f6e7"}.fa-duotone.fa-face-grin-wink:after,.fa-duotone.fa-grin-wink:after,.fad.fa-face-grin-wink:after,.fad.fa-grin-wink:after{content:"\f58c\f58c"}.fa-duotone.fa-clock-three-thirty:after,.fad.fa-clock-three-thirty:after{content:"\e357\e357"}.fa-duotone.fa-deaf:after,.fa-duotone.fa-deafness:after,.fa-duotone.fa-ear-deaf:after,.fa-duotone.fa-hard-of-hearing:after,.fad.fa-deaf:after,.fad.fa-deafness:after,.fad.fa-ear-deaf:after,.fad.fa-hard-of-hearing:after{content:"\f2a4\f2a4"}.fa-duotone.fa-alarm-clock:after,.fad.fa-alarm-clock:after{content:"\f34e\f34e"}.fa-duotone.fa-eclipse:after,.fad.fa-eclipse:after{content:"\f749\f749"}.fa-duotone.fa-face-relieved:after,.fad.fa-face-relieved:after{content:"\e389\e389"}.fa-duotone.fa-road-circle-check:after,.fad.fa-road-circle-check:after{content:"\e564\e564"}.fa-duotone.fa-dice-five:after,.fad.fa-dice-five:after{content:"\f523\f523"}.fa-duotone.fa-minus-octagon:after,.fa-duotone.fa-octagon-minus:after,.fad.fa-minus-octagon:after,.fad.fa-octagon-minus:after{content:"\f308\f308"}.fa-duotone.fa-rss-square:after,.fa-duotone.fa-square-rss:after,.fad.fa-rss-square:after,.fad.fa-square-rss:after{content:"\f143\f143"}.fa-duotone.fa-face-zany:after,.fad.fa-face-zany:after{content:"\e3a4\e3a4"}.fa-duotone.fa-tricycle:after,.fad.fa-tricycle:after{content:"\e5c3\e5c3"}.fa-duotone.fa-land-mine-on:after,.fad.fa-land-mine-on:after{content:"\e51b\e51b"}.fa-duotone.fa-square-arrow-up-left:after,.fad.fa-square-arrow-up-left:after{content:"\e263\e263"}.fa-duotone.fa-i-cursor:after,.fad.fa-i-cursor:after{content:"\f246\f246"}.fa-duotone.fa-chart-mixed-up-circle-dollar:after,.fad.fa-chart-mixed-up-circle-dollar:after{content:"\e5d9\e5d9"}.fa-duotone.fa-salt-shaker:after,.fad.fa-salt-shaker:after{content:"\e446\e446"}.fa-duotone.fa-stamp:after,.fad.fa-stamp:after{content:"\f5bf\f5bf"}.fa-duotone.fa-file-plus:after,.fad.fa-file-plus:after{content:"\f319\f319"}.fa-duotone.fa-draw-square:after,.fad.fa-draw-square:after{content:"\f5ef\f5ef"}.fa-duotone.fa-toilet-paper-reverse-slash:after,.fa-duotone.fa-toilet-paper-under-slash:after,.fad.fa-toilet-paper-reverse-slash:after,.fad.fa-toilet-paper-under-slash:after{content:"\e2a1\e2a1"}.fa-duotone.fa-stairs:after,.fad.fa-stairs:after{content:"\e289\e289"}.fa-duotone.fa-drone-alt:after,.fa-duotone.fa-drone-front:after,.fad.fa-drone-alt:after,.fad.fa-drone-front:after{content:"\f860\f860"}.fa-duotone.fa-glass-empty:after,.fad.fa-glass-empty:after{content:"\e191\e191"}.fa-duotone.fa-dial-high:after,.fad.fa-dial-high:after{content:"\e15c\e15c"}.fa-duotone.fa-user-construction:after,.fa-duotone.fa-user-hard-hat:after,.fa-duotone.fa-user-helmet-safety:after,.fad.fa-user-construction:after,.fad.fa-user-hard-hat:after,.fad.fa-user-helmet-safety:after{content:"\f82c\f82c"}.fa-duotone.fa-i:after,.fad.fa-i:after{content:"\49\49"}.fa-duotone.fa-hryvnia-sign:after,.fa-duotone.fa-hryvnia:after,.fad.fa-hryvnia-sign:after,.fad.fa-hryvnia:after{content:"\f6f2\f6f2"}.fa-duotone.fa-arrow-down-left-and-arrow-up-right-to-center:after,.fad.fa-arrow-down-left-and-arrow-up-right-to-center:after{content:"\e092\e092"}.fa-duotone.fa-pills:after,.fad.fa-pills:after{content:"\f484\f484"}.fa-duotone.fa-face-grin-wide:after,.fa-duotone.fa-grin-alt:after,.fad.fa-face-grin-wide:after,.fad.fa-grin-alt:after{content:"\f581\f581"}.fa-duotone.fa-tooth:after,.fad.fa-tooth:after{content:"\f5c9\f5c9"}.fa-duotone.fa-basketball-hoop:after,.fad.fa-basketball-hoop:after{content:"\f435\f435"}.fa-duotone.fa-objects-align-bottom:after,.fad.fa-objects-align-bottom:after{content:"\e3bb\e3bb"}.fa-duotone.fa-v:after,.fad.fa-v:after{content:"\56\56"}.fa-duotone.fa-sparkles:after,.fad.fa-sparkles:after{content:"\f890\f890"}.fa-duotone.fa-squid:after,.fad.fa-squid:after{content:"\e450\e450"}.fa-duotone.fa-leafy-green:after,.fad.fa-leafy-green:after{content:"\e41d\e41d"}.fa-duotone.fa-circle-arrow-up-right:after,.fad.fa-circle-arrow-up-right:after{content:"\e0fc\e0fc"}.fa-duotone.fa-calendars:after,.fad.fa-calendars:after{content:"\e0d7\e0d7"}.fa-duotone.fa-bangladeshi-taka-sign:after,.fad.fa-bangladeshi-taka-sign:after{content:"\e2e6\e2e6"}.fa-duotone.fa-bicycle:after,.fad.fa-bicycle:after{content:"\f206\f206"}.fa-duotone.fa-hammer-war:after,.fad.fa-hammer-war:after{content:"\f6e4\f6e4"}.fa-duotone.fa-circle-d:after,.fad.fa-circle-d:after{content:"\e104\e104"}.fa-duotone.fa-spider-black-widow:after,.fad.fa-spider-black-widow:after{content:"\f718\f718"}.fa-duotone.fa-rod-asclepius:after,.fa-duotone.fa-rod-snake:after,.fa-duotone.fa-staff-aesculapius:after,.fa-duotone.fa-staff-snake:after,.fad.fa-rod-asclepius:after,.fad.fa-rod-snake:after,.fad.fa-staff-aesculapius:after,.fad.fa-staff-snake:after{content:"\e579\e579"}.fa-duotone.fa-pear:after,.fad.fa-pear:after{content:"\e20c\e20c"}.fa-duotone.fa-head-side-cough-slash:after,.fad.fa-head-side-cough-slash:after{content:"\e062\e062"}.fa-duotone.fa-file-mov:after,.fad.fa-file-mov:after{content:"\e647\e647"}.fa-duotone.fa-triangle:after,.fad.fa-triangle:after{content:"\f2ec\f2ec"}.fa-duotone.fa-apartment:after,.fad.fa-apartment:after{content:"\e468\e468"}.fa-duotone.fa-ambulance:after,.fa-duotone.fa-truck-medical:after,.fad.fa-ambulance:after,.fad.fa-truck-medical:after{content:"\f0f9\f0f9"}.fa-duotone.fa-pepper:after,.fad.fa-pepper:after{content:"\e432\e432"}.fa-duotone.fa-piano:after,.fad.fa-piano:after{content:"\f8d4\f8d4"}.fa-duotone.fa-gun-squirt:after,.fad.fa-gun-squirt:after{content:"\e19d\e19d"}.fa-duotone.fa-wheat-awn-circle-exclamation:after,.fad.fa-wheat-awn-circle-exclamation:after{content:"\e598\e598"}.fa-duotone.fa-snowman:after,.fad.fa-snowman:after{content:"\f7d0\f7d0"}.fa-duotone.fa-user-alien:after,.fad.fa-user-alien:after{content:"\e04a\e04a"}.fa-duotone.fa-shield-check:after,.fad.fa-shield-check:after{content:"\f2f7\f2f7"}.fa-duotone.fa-mortar-pestle:after,.fad.fa-mortar-pestle:after{content:"\f5a7\f5a7"}.fa-duotone.fa-road-barrier:after,.fad.fa-road-barrier:after{content:"\e562\e562"}.fa-duotone.fa-chart-candlestick:after,.fad.fa-chart-candlestick:after{content:"\e0e2\e0e2"}.fa-duotone.fa-briefcase-blank:after,.fad.fa-briefcase-blank:after{content:"\e0c8\e0c8"}.fa-duotone.fa-school:after,.fad.fa-school:after{content:"\f549\f549"}.fa-duotone.fa-igloo:after,.fad.fa-igloo:after{content:"\f7ae\f7ae"}.fa-duotone.fa-bracket-round:after,.fa-duotone.fa-parenthesis:after,.fad.fa-bracket-round:after,.fad.fa-parenthesis:after{content:"\28\28"}.fa-duotone.fa-joint:after,.fad.fa-joint:after{content:"\f595\f595"}.fa-duotone.fa-horse-saddle:after,.fad.fa-horse-saddle:after{content:"\f8c3\f8c3"}.fa-duotone.fa-mug-marshmallows:after,.fad.fa-mug-marshmallows:after{content:"\f7b7\f7b7"}.fa-duotone.fa-filters:after,.fad.fa-filters:after{content:"\e17e\e17e"}.fa-duotone.fa-bell-on:after,.fad.fa-bell-on:after{content:"\f8fa\f8fa"}.fa-duotone.fa-angle-right:after,.fad.fa-angle-right:after{content:"\f105\f105"}.fa-duotone.fa-dial-med:after,.fad.fa-dial-med:after{content:"\e15f\e15f"}.fa-duotone.fa-horse:after,.fad.fa-horse:after{content:"\f6f0\f6f0"}.fa-duotone.fa-q:after,.fad.fa-q:after{content:"\51\51"}.fa-duotone.fa-monitor-heart-rate:after,.fa-duotone.fa-monitor-waveform:after,.fad.fa-monitor-heart-rate:after,.fad.fa-monitor-waveform:after{content:"\f611\f611"}.fa-duotone.fa-link-simple:after,.fad.fa-link-simple:after{content:"\e1cd\e1cd"}.fa-duotone.fa-whistle:after,.fad.fa-whistle:after{content:"\f460\f460"}.fa-duotone.fa-g:after,.fad.fa-g:after{content:"\47\47"}.fa-duotone.fa-fragile:after,.fa-duotone.fa-wine-glass-crack:after,.fad.fa-fragile:after,.fad.fa-wine-glass-crack:after{content:"\f4bb\f4bb"}.fa-duotone.fa-slot-machine:after,.fad.fa-slot-machine:after{content:"\e3ce\e3ce"}.fa-duotone.fa-notes-medical:after,.fad.fa-notes-medical:after{content:"\f481\f481"}.fa-duotone.fa-car-wash:after,.fad.fa-car-wash:after{content:"\f5e6\f5e6"}.fa-duotone.fa-escalator:after,.fad.fa-escalator:after{content:"\e171\e171"}.fa-duotone.fa-comment-image:after,.fad.fa-comment-image:after{content:"\e148\e148"}.fa-duotone.fa-temperature-2:after,.fa-duotone.fa-temperature-half:after,.fa-duotone.fa-thermometer-2:after,.fa-duotone.fa-thermometer-half:after,.fad.fa-temperature-2:after,.fad.fa-temperature-half:after,.fad.fa-thermometer-2:after,.fad.fa-thermometer-half:after{content:"\f2c9\f2c9"}.fa-duotone.fa-dong-sign:after,.fad.fa-dong-sign:after{content:"\e169\e169"}.fa-duotone.fa-donut:after,.fa-duotone.fa-doughnut:after,.fad.fa-donut:after,.fad.fa-doughnut:after{content:"\e406\e406"}.fa-duotone.fa-capsules:after,.fad.fa-capsules:after{content:"\f46b\f46b"}.fa-duotone.fa-poo-bolt:after,.fa-duotone.fa-poo-storm:after,.fad.fa-poo-bolt:after,.fad.fa-poo-storm:after{content:"\f75a\f75a"}.fa-duotone.fa-tally-1:after,.fad.fa-tally-1:after{content:"\e294\e294"}.fa-duotone.fa-file-vector:after,.fad.fa-file-vector:after{content:"\e64c\e64c"}.fa-duotone.fa-face-frown-open:after,.fa-duotone.fa-frown-open:after,.fad.fa-face-frown-open:after,.fad.fa-frown-open:after{content:"\f57a\f57a"}.fa-duotone.fa-square-dashed:after,.fad.fa-square-dashed:after{content:"\e269\e269"}.fa-duotone.fa-bag-shopping-plus:after,.fad.fa-bag-shopping-plus:after{content:"\e651\e651"}.fa-duotone.fa-square-j:after,.fad.fa-square-j:after{content:"\e273\e273"}.fa-duotone.fa-hand-point-up:after,.fad.fa-hand-point-up:after{content:"\f0a6\f0a6"}.fa-duotone.fa-money-bill:after,.fad.fa-money-bill:after{content:"\f0d6\f0d6"}.fa-duotone.fa-arrow-up-big-small:after,.fa-duotone.fa-sort-size-up:after,.fad.fa-arrow-up-big-small:after,.fad.fa-sort-size-up:after{content:"\f88e\f88e"}.fa-duotone.fa-barcode-read:after,.fad.fa-barcode-read:after{content:"\f464\f464"}.fa-duotone.fa-baguette:after,.fad.fa-baguette:after{content:"\e3d8\e3d8"}.fa-duotone.fa-bowl-soft-serve:after,.fad.fa-bowl-soft-serve:after{content:"\e46b\e46b"}.fa-duotone.fa-face-holding-back-tears:after,.fad.fa-face-holding-back-tears:after{content:"\e482\e482"}.fa-duotone.fa-arrow-alt-square-up:after,.fa-duotone.fa-square-up:after,.fad.fa-arrow-alt-square-up:after,.fad.fa-square-up:after{content:"\f353\f353"}.fa-duotone.fa-subway-tunnel:after,.fa-duotone.fa-train-subway-tunnel:after,.fad.fa-subway-tunnel:after,.fad.fa-train-subway-tunnel:after{content:"\e2a3\e2a3"}.fa-duotone.fa-exclamation-square:after,.fa-duotone.fa-square-exclamation:after,.fad.fa-exclamation-square:after,.fad.fa-square-exclamation:after{content:"\f321\f321"}.fa-duotone.fa-semicolon:after,.fad.fa-semicolon:after{content:"\3b\3b"}.fa-duotone.fa-bookmark:after,.fad.fa-bookmark:after{content:"\f02e\f02e"}.fa-duotone.fa-fan-table:after,.fad.fa-fan-table:after{content:"\e004\e004"}.fa-duotone.fa-align-justify:after,.fad.fa-align-justify:after{content:"\f039\f039"}.fa-duotone.fa-battery-1:after,.fa-duotone.fa-battery-low:after,.fad.fa-battery-1:after,.fad.fa-battery-low:after{content:"\e0b1\e0b1"}.fa-duotone.fa-credit-card-front:after,.fad.fa-credit-card-front:after{content:"\f38a\f38a"}.fa-duotone.fa-brain-arrow-curved-right:after,.fa-duotone.fa-mind-share:after,.fad.fa-brain-arrow-curved-right:after,.fad.fa-mind-share:after{content:"\f677\f677"}.fa-duotone.fa-umbrella-beach:after,.fad.fa-umbrella-beach:after{content:"\f5ca\f5ca"}.fa-duotone.fa-helmet-un:after,.fad.fa-helmet-un:after{content:"\e503\e503"}.fa-duotone.fa-location-smile:after,.fa-duotone.fa-map-marker-smile:after,.fad.fa-location-smile:after,.fad.fa-map-marker-smile:after{content:"\f60d\f60d"}.fa-duotone.fa-arrow-left-to-line:after,.fa-duotone.fa-arrow-to-left:after,.fad.fa-arrow-left-to-line:after,.fad.fa-arrow-to-left:after{content:"\f33e\f33e"}.fa-duotone.fa-bullseye:after,.fad.fa-bullseye:after{content:"\f140\f140"}.fa-duotone.fa-nigiri:after,.fa-duotone.fa-sushi:after,.fad.fa-nigiri:after,.fad.fa-sushi:after{content:"\e48a\e48a"}.fa-duotone.fa-comment-alt-captions:after,.fa-duotone.fa-message-captions:after,.fad.fa-comment-alt-captions:after,.fad.fa-message-captions:after{content:"\e1de\e1de"}.fa-duotone.fa-trash-list:after,.fad.fa-trash-list:after{content:"\e2b1\e2b1"}.fa-duotone.fa-bacon:after,.fad.fa-bacon:after{content:"\f7e5\f7e5"}.fa-duotone.fa-option:after,.fad.fa-option:after{content:"\e318\e318"}.fa-duotone.fa-raccoon:after,.fad.fa-raccoon:after{content:"\e613\e613"}.fa-duotone.fa-hand-point-down:after,.fad.fa-hand-point-down:after{content:"\f0a7\f0a7"}.fa-duotone.fa-arrow-up-from-bracket:after,.fad.fa-arrow-up-from-bracket:after{content:"\e09a\e09a"}.fa-duotone.fa-head-side-gear:after,.fad.fa-head-side-gear:after{content:"\e611\e611"}.fa-duotone.fa-trash-plus:after,.fad.fa-trash-plus:after{content:"\e2b2\e2b2"}.fa-duotone.fa-objects-align-top:after,.fad.fa-objects-align-top:after{content:"\e3c0\e3c0"}.fa-duotone.fa-folder-blank:after,.fa-duotone.fa-folder:after,.fad.fa-folder-blank:after,.fad.fa-folder:after{content:"\f07b\f07b"}.fa-duotone.fa-face-anxious-sweat:after,.fad.fa-face-anxious-sweat:after{content:"\e36a\e36a"}.fa-duotone.fa-credit-card-blank:after,.fad.fa-credit-card-blank:after{content:"\f389\f389"}.fa-duotone.fa-file-medical-alt:after,.fa-duotone.fa-file-waveform:after,.fad.fa-file-medical-alt:after,.fad.fa-file-waveform:after{content:"\f478\f478"}.fa-duotone.fa-microchip-ai:after,.fad.fa-microchip-ai:after{content:"\e1ec\e1ec"}.fa-duotone.fa-mug:after,.fad.fa-mug:after{content:"\f874\f874"}.fa-duotone.fa-plane-up-slash:after,.fad.fa-plane-up-slash:after{content:"\e22e\e22e"}.fa-duotone.fa-radiation:after,.fad.fa-radiation:after{content:"\f7b9\f7b9"}.fa-duotone.fa-pen-circle:after,.fad.fa-pen-circle:after{content:"\e20e\e20e"}.fa-duotone.fa-bag-seedling:after,.fad.fa-bag-seedling:after{content:"\e5f2\e5f2"}.fa-duotone.fa-chart-simple:after,.fad.fa-chart-simple:after{content:"\e473\e473"}.fa-duotone.fa-crutches:after,.fad.fa-crutches:after{content:"\f7f8\f7f8"}.fa-duotone.fa-circle-parking:after,.fa-duotone.fa-parking-circle:after,.fad.fa-circle-parking:after,.fad.fa-parking-circle:after{content:"\f615\f615"}.fa-duotone.fa-mars-stroke:after,.fad.fa-mars-stroke:after{content:"\f229\f229"}.fa-duotone.fa-leaf-oak:after,.fad.fa-leaf-oak:after{content:"\f6f7\f6f7"}.fa-duotone.fa-square-bolt:after,.fad.fa-square-bolt:after{content:"\e265\e265"}.fa-duotone.fa-vial:after,.fad.fa-vial:after{content:"\f492\f492"}.fa-duotone.fa-dashboard:after,.fa-duotone.fa-gauge-med:after,.fa-duotone.fa-gauge:after,.fa-duotone.fa-tachometer-alt-average:after,.fad.fa-dashboard:after,.fad.fa-gauge-med:after,.fad.fa-gauge:after,.fad.fa-tachometer-alt-average:after{content:"\f624\f624"}.fa-duotone.fa-magic-wand-sparkles:after,.fa-duotone.fa-wand-magic-sparkles:after,.fad.fa-magic-wand-sparkles:after,.fad.fa-wand-magic-sparkles:after{content:"\e2ca\e2ca"}.fa-duotone.fa-lambda:after,.fad.fa-lambda:after{content:"\f66e\f66e"}.fa-duotone.fa-e:after,.fad.fa-e:after{content:"\45\45"}.fa-duotone.fa-pizza:after,.fad.fa-pizza:after{content:"\f817\f817"}.fa-duotone.fa-bowl-chopsticks-noodles:after,.fad.fa-bowl-chopsticks-noodles:after{content:"\e2ea\e2ea"}.fa-duotone.fa-h3:after,.fad.fa-h3:after{content:"\f315\f315"}.fa-duotone.fa-pen-alt:after,.fa-duotone.fa-pen-clip:after,.fad.fa-pen-alt:after,.fad.fa-pen-clip:after{content:"\f305\f305"}.fa-duotone.fa-bridge-circle-exclamation:after,.fad.fa-bridge-circle-exclamation:after{content:"\e4ca\e4ca"}.fa-duotone.fa-badge-percent:after,.fad.fa-badge-percent:after{content:"\f646\f646"}.fa-duotone.fa-rotate-reverse:after,.fad.fa-rotate-reverse:after{content:"\e631\e631"}.fa-duotone.fa-user:after,.fad.fa-user:after{content:"\f007\f007"}.fa-duotone.fa-sensor:after,.fad.fa-sensor:after{content:"\e028\e028"}.fa-duotone.fa-comma:after,.fad.fa-comma:after{content:"\2c\2c"}.fa-duotone.fa-school-circle-check:after,.fad.fa-school-circle-check:after{content:"\e56b\e56b"}.fa-duotone.fa-toilet-paper-reverse:after,.fa-duotone.fa-toilet-paper-under:after,.fad.fa-toilet-paper-reverse:after,.fad.fa-toilet-paper-under:after{content:"\e2a0\e2a0"}.fa-duotone.fa-light-emergency:after,.fad.fa-light-emergency:after{content:"\e41f\e41f"}.fa-duotone.fa-arrow-down-to-arc:after,.fad.fa-arrow-down-to-arc:after{content:"\e4ae\e4ae"}.fa-duotone.fa-dumpster:after,.fad.fa-dumpster:after{content:"\f793\f793"}.fa-duotone.fa-shuttle-van:after,.fa-duotone.fa-van-shuttle:after,.fad.fa-shuttle-van:after,.fad.fa-van-shuttle:after{content:"\f5b6\f5b6"}.fa-duotone.fa-building-user:after,.fad.fa-building-user:after{content:"\e4da\e4da"}.fa-duotone.fa-light-switch:after,.fad.fa-light-switch:after{content:"\e017\e017"}.fa-duotone.fa-caret-square-left:after,.fa-duotone.fa-square-caret-left:after,.fad.fa-caret-square-left:after,.fad.fa-square-caret-left:after{content:"\f191\f191"}.fa-duotone.fa-highlighter:after,.fad.fa-highlighter:after{content:"\f591\f591"}.fa-duotone.fa-heart-rate:after,.fa-duotone.fa-wave-pulse:after,.fad.fa-heart-rate:after,.fad.fa-wave-pulse:after{content:"\f5f8\f5f8"}.fa-duotone.fa-key:after,.fad.fa-key:after{content:"\f084\f084"}.fa-duotone.fa-hat-santa:after,.fad.fa-hat-santa:after{content:"\f7a7\f7a7"}.fa-duotone.fa-tamale:after,.fad.fa-tamale:after{content:"\e451\e451"}.fa-duotone.fa-box-check:after,.fad.fa-box-check:after{content:"\f467\f467"}.fa-duotone.fa-bullhorn:after,.fad.fa-bullhorn:after{content:"\f0a1\f0a1"}.fa-duotone.fa-steak:after,.fad.fa-steak:after{content:"\f824\f824"}.fa-duotone.fa-location-crosshairs-slash:after,.fa-duotone.fa-location-slash:after,.fad.fa-location-crosshairs-slash:after,.fad.fa-location-slash:after{content:"\f603\f603"}.fa-duotone.fa-person-dolly:after,.fad.fa-person-dolly:after{content:"\f4d0\f4d0"}.fa-duotone.fa-globe:after,.fad.fa-globe:after{content:"\f0ac\f0ac"}.fa-duotone.fa-synagogue:after,.fad.fa-synagogue:after{content:"\f69b\f69b"}.fa-duotone.fa-file-chart-column:after,.fa-duotone.fa-file-chart-line:after,.fad.fa-file-chart-column:after,.fad.fa-file-chart-line:after{content:"\f659\f659"}.fa-duotone.fa-person-half-dress:after,.fad.fa-person-half-dress:after{content:"\e548\e548"}.fa-duotone.fa-folder-image:after,.fad.fa-folder-image:after{content:"\e18a\e18a"}.fa-duotone.fa-calendar-edit:after,.fa-duotone.fa-calendar-pen:after,.fad.fa-calendar-edit:after,.fad.fa-calendar-pen:after{content:"\f333\f333"}.fa-duotone.fa-road-bridge:after,.fad.fa-road-bridge:after{content:"\e563\e563"}.fa-duotone.fa-face-smile-tear:after,.fad.fa-face-smile-tear:after{content:"\e393\e393"}.fa-duotone.fa-comment-alt-plus:after,.fa-duotone.fa-message-plus:after,.fad.fa-comment-alt-plus:after,.fad.fa-message-plus:after{content:"\f4a8\f4a8"}.fa-duotone.fa-location-arrow:after,.fad.fa-location-arrow:after{content:"\f124\f124"}.fa-duotone.fa-c:after,.fad.fa-c:after{content:"\43\43"}.fa-duotone.fa-tablet-button:after,.fad.fa-tablet-button:after{content:"\f10a\f10a"}.fa-duotone.fa-person-dress-fairy:after,.fad.fa-person-dress-fairy:after{content:"\e607\e607"}.fa-duotone.fa-rectangle-history-circle-user:after,.fad.fa-rectangle-history-circle-user:after{content:"\e4a4\e4a4"}.fa-duotone.fa-building-lock:after,.fad.fa-building-lock:after{content:"\e4d6\e4d6"}.fa-duotone.fa-chart-line-up:after,.fad.fa-chart-line-up:after{content:"\e0e5\e0e5"}.fa-duotone.fa-mailbox:after,.fad.fa-mailbox:after{content:"\f813\f813"}.fa-duotone.fa-sign-posts:after,.fad.fa-sign-posts:after{content:"\e625\e625"}.fa-duotone.fa-truck-bolt:after,.fad.fa-truck-bolt:after{content:"\e3d0\e3d0"}.fa-duotone.fa-pizza-slice:after,.fad.fa-pizza-slice:after{content:"\f818\f818"}.fa-duotone.fa-money-bill-wave:after,.fad.fa-money-bill-wave:after{content:"\f53a\f53a"}.fa-duotone.fa-area-chart:after,.fa-duotone.fa-chart-area:after,.fad.fa-area-chart:after,.fad.fa-chart-area:after{content:"\f1fe\f1fe"}.fa-duotone.fa-house-flag:after,.fad.fa-house-flag:after{content:"\e50d\e50d"}.fa-duotone.fa-circle-three-quarters-stroke:after,.fad.fa-circle-three-quarters-stroke:after{content:"\e5d4\e5d4"}.fa-duotone.fa-person-circle-minus:after,.fad.fa-person-circle-minus:after{content:"\e540\e540"}.fa-duotone.fa-scalpel:after,.fad.fa-scalpel:after{content:"\f61d\f61d"}.fa-duotone.fa-ban:after,.fa-duotone.fa-cancel:after,.fad.fa-ban:after,.fad.fa-cancel:after{content:"\f05e\f05e"}.fa-duotone.fa-bell-exclamation:after,.fad.fa-bell-exclamation:after{content:"\f848\f848"}.fa-duotone.fa-bookmark-circle:after,.fa-duotone.fa-circle-bookmark:after,.fad.fa-bookmark-circle:after,.fad.fa-circle-bookmark:after{content:"\e100\e100"}.fa-duotone.fa-egg-fried:after,.fad.fa-egg-fried:after{content:"\f7fc\f7fc"}.fa-duotone.fa-face-weary:after,.fad.fa-face-weary:after{content:"\e3a1\e3a1"}.fa-duotone.fa-uniform-martial-arts:after,.fad.fa-uniform-martial-arts:after{content:"\e3d1\e3d1"}.fa-duotone.fa-camera-rotate:after,.fad.fa-camera-rotate:after{content:"\e0d8\e0d8"}.fa-duotone.fa-sun-dust:after,.fad.fa-sun-dust:after{content:"\f764\f764"}.fa-duotone.fa-comment-text:after,.fad.fa-comment-text:after{content:"\e14d\e14d"}.fa-duotone.fa-air-freshener:after,.fa-duotone.fa-spray-can-sparkles:after,.fad.fa-air-freshener:after,.fad.fa-spray-can-sparkles:after{content:"\f5d0\f5d0"}.fa-duotone.fa-signal-alt-4:after,.fa-duotone.fa-signal-alt:after,.fa-duotone.fa-signal-bars-strong:after,.fa-duotone.fa-signal-bars:after,.fad.fa-signal-alt-4:after,.fad.fa-signal-alt:after,.fad.fa-signal-bars-strong:after,.fad.fa-signal-bars:after{content:"\f690\f690"}.fa-duotone.fa-diamond-exclamation:after,.fad.fa-diamond-exclamation:after{content:"\e405\e405"}.fa-duotone.fa-star:after,.fad.fa-star:after{content:"\f005\f005"}.fa-duotone.fa-dial-min:after,.fad.fa-dial-min:after{content:"\e161\e161"}.fa-duotone.fa-repeat:after,.fad.fa-repeat:after{content:"\f363\f363"}.fa-duotone.fa-cross:after,.fad.fa-cross:after{content:"\f654\f654"}.fa-duotone.fa-file-caret-down:after,.fa-duotone.fa-page-caret-down:after,.fad.fa-file-caret-down:after,.fad.fa-page-caret-down:after{content:"\e429\e429"}.fa-duotone.fa-box:after,.fad.fa-box:after{content:"\f466\f466"}.fa-duotone.fa-venus-mars:after,.fad.fa-venus-mars:after{content:"\f228\f228"}.fa-duotone.fa-clock-seven-thirty:after,.fad.fa-clock-seven-thirty:after{content:"\e351\e351"}.fa-duotone.fa-arrow-pointer:after,.fa-duotone.fa-mouse-pointer:after,.fad.fa-arrow-pointer:after,.fad.fa-mouse-pointer:after{content:"\f245\f245"}.fa-duotone.fa-clock-four-thirty:after,.fad.fa-clock-four-thirty:after{content:"\e34b\e34b"}.fa-duotone.fa-signal-alt-3:after,.fa-duotone.fa-signal-bars-good:after,.fad.fa-signal-alt-3:after,.fad.fa-signal-bars-good:after{content:"\f693\f693"}.fa-duotone.fa-cactus:after,.fad.fa-cactus:after{content:"\f8a7\f8a7"}.fa-duotone.fa-lightbulb-gear:after,.fad.fa-lightbulb-gear:after{content:"\e5fd\e5fd"}.fa-duotone.fa-expand-arrows-alt:after,.fa-duotone.fa-maximize:after,.fad.fa-expand-arrows-alt:after,.fad.fa-maximize:after{content:"\f31e\f31e"}.fa-duotone.fa-charging-station:after,.fad.fa-charging-station:after{content:"\f5e7\f5e7"}.fa-duotone.fa-shapes:after,.fa-duotone.fa-triangle-circle-square:after,.fad.fa-shapes:after,.fad.fa-triangle-circle-square:after{content:"\f61f\f61f"}.fa-duotone.fa-plane-tail:after,.fad.fa-plane-tail:after{content:"\e22c\e22c"}.fa-duotone.fa-gauge-simple-max:after,.fa-duotone.fa-tachometer-fastest:after,.fad.fa-gauge-simple-max:after,.fad.fa-tachometer-fastest:after{content:"\f62b\f62b"}.fa-duotone.fa-circle-u:after,.fad.fa-circle-u:after{content:"\e127\e127"}.fa-duotone.fa-shield-slash:after,.fad.fa-shield-slash:after{content:"\e24b\e24b"}.fa-duotone.fa-phone-square-down:after,.fa-duotone.fa-square-phone-hangup:after,.fad.fa-phone-square-down:after,.fad.fa-square-phone-hangup:after{content:"\e27a\e27a"}.fa-duotone.fa-arrow-up-left:after,.fad.fa-arrow-up-left:after{content:"\e09d\e09d"}.fa-duotone.fa-transporter-1:after,.fad.fa-transporter-1:after{content:"\e043\e043"}.fa-duotone.fa-peanuts:after,.fad.fa-peanuts:after{content:"\e431\e431"}.fa-duotone.fa-random:after,.fa-duotone.fa-shuffle:after,.fad.fa-random:after,.fad.fa-shuffle:after{content:"\f074\f074"}.fa-duotone.fa-person-running:after,.fa-duotone.fa-running:after,.fad.fa-person-running:after,.fad.fa-running:after{content:"\f70c\f70c"}.fa-duotone.fa-mobile-retro:after,.fad.fa-mobile-retro:after{content:"\e527\e527"}.fa-duotone.fa-grip-lines-vertical:after,.fad.fa-grip-lines-vertical:after{content:"\f7a5\f7a5"}.fa-duotone.fa-bin-bottles-recycle:after,.fad.fa-bin-bottles-recycle:after{content:"\e5f6\e5f6"}.fa-duotone.fa-arrow-up-from-square:after,.fad.fa-arrow-up-from-square:after{content:"\e09c\e09c"}.fa-duotone.fa-file-dashed-line:after,.fa-duotone.fa-page-break:after,.fad.fa-file-dashed-line:after,.fad.fa-page-break:after{content:"\f877\f877"}.fa-duotone.fa-bracket-curly-right:after,.fad.fa-bracket-curly-right:after{content:"\7d\7d"}.fa-duotone.fa-spider:after,.fad.fa-spider:after{content:"\f717\f717"}.fa-duotone.fa-clock-three:after,.fad.fa-clock-three:after{content:"\e356\e356"}.fa-duotone.fa-hands-bound:after,.fad.fa-hands-bound:after{content:"\e4f9\e4f9"}.fa-duotone.fa-scalpel-line-dashed:after,.fa-duotone.fa-scalpel-path:after,.fad.fa-scalpel-line-dashed:after,.fad.fa-scalpel-path:after{content:"\f61e\f61e"}.fa-duotone.fa-file-invoice-dollar:after,.fad.fa-file-invoice-dollar:after{content:"\f571\f571"}.fa-duotone.fa-pipe-smoking:after,.fad.fa-pipe-smoking:after{content:"\e3c4\e3c4"}.fa-duotone.fa-face-astonished:after,.fad.fa-face-astonished:after{content:"\e36b\e36b"}.fa-duotone.fa-window:after,.fad.fa-window:after{content:"\f40e\f40e"}.fa-duotone.fa-plane-circle-exclamation:after,.fad.fa-plane-circle-exclamation:after{content:"\e556\e556"}.fa-duotone.fa-ear:after,.fad.fa-ear:after{content:"\f5f0\f5f0"}.fa-duotone.fa-file-lock:after,.fad.fa-file-lock:after{content:"\e3a6\e3a6"}.fa-duotone.fa-diagram-venn:after,.fad.fa-diagram-venn:after{content:"\e15a\e15a"}.fa-duotone.fa-x-ray:after,.fad.fa-x-ray:after{content:"\f497\f497"}.fa-duotone.fa-goal-net:after,.fad.fa-goal-net:after{content:"\e3ab\e3ab"}.fa-duotone.fa-coffin-cross:after,.fad.fa-coffin-cross:after{content:"\e051\e051"}.fa-duotone.fa-spell-check:after,.fad.fa-spell-check:after{content:"\f891\f891"}.fa-duotone.fa-location-xmark:after,.fa-duotone.fa-map-marker-times:after,.fa-duotone.fa-map-marker-xmark:after,.fad.fa-location-xmark:after,.fad.fa-map-marker-times:after,.fad.fa-map-marker-xmark:after{content:"\f60e\f60e"}.fa-duotone.fa-circle-quarter-stroke:after,.fad.fa-circle-quarter-stroke:after{content:"\e5d3\e5d3"}.fa-duotone.fa-lasso:after,.fad.fa-lasso:after{content:"\f8c8\f8c8"}.fa-duotone.fa-slash:after,.fad.fa-slash:after{content:"\f715\f715"}.fa-duotone.fa-person-to-portal:after,.fa-duotone.fa-portal-enter:after,.fad.fa-person-to-portal:after,.fad.fa-portal-enter:after{content:"\e022\e022"}.fa-duotone.fa-calendar-star:after,.fad.fa-calendar-star:after{content:"\f736\f736"}.fa-duotone.fa-computer-mouse:after,.fa-duotone.fa-mouse:after,.fad.fa-computer-mouse:after,.fad.fa-mouse:after{content:"\f8cc\f8cc"}.fa-duotone.fa-arrow-right-to-bracket:after,.fa-duotone.fa-sign-in:after,.fad.fa-arrow-right-to-bracket:after,.fad.fa-sign-in:after{content:"\f090\f090"}.fa-duotone.fa-pegasus:after,.fad.fa-pegasus:after{content:"\f703\f703"}.fa-duotone.fa-files-medical:after,.fad.fa-files-medical:after{content:"\f7fd\f7fd"}.fa-duotone.fa-cannon:after,.fad.fa-cannon:after{content:"\e642\e642"}.fa-duotone.fa-nfc-lock:after,.fad.fa-nfc-lock:after{content:"\e1f8\e1f8"}.fa-duotone.fa-person-ski-lift:after,.fa-duotone.fa-ski-lift:after,.fad.fa-person-ski-lift:after,.fad.fa-ski-lift:after{content:"\f7c8\f7c8"}.fa-duotone.fa-square-6:after,.fad.fa-square-6:after{content:"\e25b\e25b"}.fa-duotone.fa-shop-slash:after,.fa-duotone.fa-store-alt-slash:after,.fad.fa-shop-slash:after,.fad.fa-store-alt-slash:after{content:"\e070\e070"}.fa-duotone.fa-wind-turbine:after,.fad.fa-wind-turbine:after{content:"\f89b\f89b"}.fa-duotone.fa-sliders-simple:after,.fad.fa-sliders-simple:after{content:"\e253\e253"}.fa-duotone.fa-grid-round:after,.fad.fa-grid-round:after{content:"\e5da\e5da"}.fa-duotone.fa-badge-sheriff:after,.fad.fa-badge-sheriff:after{content:"\f8a2\f8a2"}.fa-duotone.fa-server:after,.fad.fa-server:after{content:"\f233\f233"}.fa-duotone.fa-virus-covid-slash:after,.fad.fa-virus-covid-slash:after{content:"\e4a9\e4a9"}.fa-duotone.fa-intersection:after,.fad.fa-intersection:after{content:"\f668\f668"}.fa-duotone.fa-shop-lock:after,.fad.fa-shop-lock:after{content:"\e4a5\e4a5"}.fa-duotone.fa-family:after,.fad.fa-family:after{content:"\e300\e300"}.fa-duotone.fa-hourglass-1:after,.fa-duotone.fa-hourglass-start:after,.fad.fa-hourglass-1:after,.fad.fa-hourglass-start:after{content:"\f251\f251"}.fa-duotone.fa-user-hair-buns:after,.fad.fa-user-hair-buns:after{content:"\e3d3\e3d3"}.fa-duotone.fa-blender-phone:after,.fad.fa-blender-phone:after{content:"\f6b6\f6b6"}.fa-duotone.fa-hourglass-clock:after,.fad.fa-hourglass-clock:after{content:"\e41b\e41b"}.fa-duotone.fa-person-seat-reclined:after,.fad.fa-person-seat-reclined:after{content:"\e21f\e21f"}.fa-duotone.fa-paper-plane-alt:after,.fa-duotone.fa-paper-plane-top:after,.fa-duotone.fa-send:after,.fad.fa-paper-plane-alt:after,.fad.fa-paper-plane-top:after,.fad.fa-send:after{content:"\e20a\e20a"}.fa-duotone.fa-comment-alt-arrow-up:after,.fa-duotone.fa-message-arrow-up:after,.fad.fa-comment-alt-arrow-up:after,.fad.fa-message-arrow-up:after{content:"\e1dc\e1dc"}.fa-duotone.fa-lightbulb-exclamation:after,.fad.fa-lightbulb-exclamation:after{content:"\f671\f671"}.fa-duotone.fa-layer-group-minus:after,.fa-duotone.fa-layer-minus:after,.fad.fa-layer-group-minus:after,.fad.fa-layer-minus:after{content:"\f5fe\f5fe"}.fa-duotone.fa-chart-pie-simple-circle-currency:after,.fad.fa-chart-pie-simple-circle-currency:after{content:"\e604\e604"}.fa-duotone.fa-circle-e:after,.fad.fa-circle-e:after{content:"\e109\e109"}.fa-duotone.fa-building-wheat:after,.fad.fa-building-wheat:after{content:"\e4db\e4db"}.fa-duotone.fa-gauge-max:after,.fa-duotone.fa-tachometer-alt-fastest:after,.fad.fa-gauge-max:after,.fad.fa-tachometer-alt-fastest:after{content:"\f626\f626"}.fa-duotone.fa-person-breastfeeding:after,.fad.fa-person-breastfeeding:after{content:"\e53a\e53a"}.fa-duotone.fa-apostrophe:after,.fad.fa-apostrophe:after{content:"\27\27"}.fa-duotone.fa-file-png:after,.fad.fa-file-png:after{content:"\e666\e666"}.fa-duotone.fa-fire-hydrant:after,.fad.fa-fire-hydrant:after{content:"\e17f\e17f"}.fa-duotone.fa-right-to-bracket:after,.fa-duotone.fa-sign-in-alt:after,.fad.fa-right-to-bracket:after,.fad.fa-sign-in-alt:after{content:"\f2f6\f2f6"}.fa-duotone.fa-video-plus:after,.fad.fa-video-plus:after{content:"\f4e1\f4e1"}.fa-duotone.fa-arrow-alt-square-right:after,.fa-duotone.fa-square-right:after,.fad.fa-arrow-alt-square-right:after,.fad.fa-square-right:after{content:"\f352\f352"}.fa-duotone.fa-comment-smile:after,.fad.fa-comment-smile:after{content:"\f4b4\f4b4"}.fa-duotone.fa-venus:after,.fad.fa-venus:after{content:"\f221\f221"}.fa-duotone.fa-passport:after,.fad.fa-passport:after{content:"\f5ab\f5ab"}.fa-duotone.fa-inbox-arrow-down:after,.fa-duotone.fa-inbox-in:after,.fad.fa-inbox-arrow-down:after,.fad.fa-inbox-in:after{content:"\f310\f310"}.fa-duotone.fa-heart-pulse:after,.fa-duotone.fa-heartbeat:after,.fad.fa-heart-pulse:after,.fad.fa-heartbeat:after{content:"\f21e\f21e"}.fa-duotone.fa-circle-8:after,.fad.fa-circle-8:after{content:"\e0f5\e0f5"}.fa-duotone.fa-clouds-moon:after,.fad.fa-clouds-moon:after{content:"\f745\f745"}.fa-duotone.fa-clock-ten-thirty:after,.fad.fa-clock-ten-thirty:after{content:"\e355\e355"}.fa-duotone.fa-people-carry-box:after,.fa-duotone.fa-people-carry:after,.fad.fa-people-carry-box:after,.fad.fa-people-carry:after{content:"\f4ce\f4ce"}.fa-duotone.fa-folder-user:after,.fad.fa-folder-user:after{content:"\e18e\e18e"}.fa-duotone.fa-trash-can-xmark:after,.fad.fa-trash-can-xmark:after{content:"\e2ae\e2ae"}.fa-duotone.fa-temperature-high:after,.fad.fa-temperature-high:after{content:"\f769\f769"}.fa-duotone.fa-microchip:after,.fad.fa-microchip:after{content:"\f2db\f2db"}.fa-duotone.fa-left-long-to-line:after,.fad.fa-left-long-to-line:after{content:"\e41e\e41e"}.fa-duotone.fa-crown:after,.fad.fa-crown:after{content:"\f521\f521"}.fa-duotone.fa-weight-hanging:after,.fad.fa-weight-hanging:after{content:"\f5cd\f5cd"}.fa-duotone.fa-xmarks-lines:after,.fad.fa-xmarks-lines:after{content:"\e59a\e59a"}.fa-duotone.fa-file-prescription:after,.fad.fa-file-prescription:after{content:"\f572\f572"}.fa-duotone.fa-calendar-range:after,.fad.fa-calendar-range:after{content:"\e0d6\e0d6"}.fa-duotone.fa-flower-daffodil:after,.fad.fa-flower-daffodil:after{content:"\f800\f800"}.fa-duotone.fa-hand-back-point-up:after,.fad.fa-hand-back-point-up:after{content:"\e1a2\e1a2"}.fa-duotone.fa-weight-scale:after,.fa-duotone.fa-weight:after,.fad.fa-weight-scale:after,.fad.fa-weight:after{content:"\f496\f496"}.fa-duotone.fa-arrow-up-to-arc:after,.fad.fa-arrow-up-to-arc:after{content:"\e617\e617"}.fa-duotone.fa-star-exclamation:after,.fad.fa-star-exclamation:after{content:"\f2f3\f2f3"}.fa-duotone.fa-books:after,.fad.fa-books:after{content:"\f5db\f5db"}.fa-duotone.fa-user-friends:after,.fa-duotone.fa-user-group:after,.fad.fa-user-friends:after,.fad.fa-user-group:after{content:"\f500\f500"}.fa-duotone.fa-arrow-up-a-z:after,.fa-duotone.fa-sort-alpha-up:after,.fad.fa-arrow-up-a-z:after,.fad.fa-sort-alpha-up:after{content:"\f15e\f15e"}.fa-duotone.fa-layer-group-plus:after,.fa-duotone.fa-layer-plus:after,.fad.fa-layer-group-plus:after,.fad.fa-layer-plus:after{content:"\f5ff\f5ff"}.fa-duotone.fa-play-pause:after,.fad.fa-play-pause:after{content:"\e22f\e22f"}.fa-duotone.fa-block-question:after,.fad.fa-block-question:after{content:"\e3dd\e3dd"}.fa-duotone.fa-snooze:after,.fa-duotone.fa-zzz:after,.fad.fa-snooze:after,.fad.fa-zzz:after{content:"\f880\f880"}.fa-duotone.fa-scanner-image:after,.fad.fa-scanner-image:after{content:"\f8f3\f8f3"}.fa-duotone.fa-tv-retro:after,.fad.fa-tv-retro:after{content:"\f401\f401"}.fa-duotone.fa-square-t:after,.fad.fa-square-t:after{content:"\e280\e280"}.fa-duotone.fa-barn-silo:after,.fa-duotone.fa-farm:after,.fad.fa-barn-silo:after,.fad.fa-farm:after{content:"\f864\f864"}.fa-duotone.fa-chess-knight:after,.fad.fa-chess-knight:after{content:"\f441\f441"}.fa-duotone.fa-bars-sort:after,.fad.fa-bars-sort:after{content:"\e0ae\e0ae"}.fa-duotone.fa-palette-boxes:after,.fa-duotone.fa-pallet-alt:after,.fa-duotone.fa-pallet-boxes:after,.fad.fa-palette-boxes:after,.fad.fa-pallet-alt:after,.fad.fa-pallet-boxes:after{content:"\f483\f483"}.fa-duotone.fa-face-laugh-squint:after,.fa-duotone.fa-laugh-squint:after,.fad.fa-face-laugh-squint:after,.fad.fa-laugh-squint:after{content:"\f59b\f59b"}.fa-duotone.fa-code-simple:after,.fad.fa-code-simple:after{content:"\e13d\e13d"}.fa-duotone.fa-bolt-slash:after,.fad.fa-bolt-slash:after{content:"\e0b8\e0b8"}.fa-duotone.fa-panel-fire:after,.fad.fa-panel-fire:after{content:"\e42f\e42f"}.fa-duotone.fa-binary-circle-check:after,.fad.fa-binary-circle-check:after{content:"\e33c\e33c"}.fa-duotone.fa-comment-minus:after,.fad.fa-comment-minus:after{content:"\f4b1\f4b1"}.fa-duotone.fa-burrito:after,.fad.fa-burrito:after{content:"\f7ed\f7ed"}.fa-duotone.fa-violin:after,.fad.fa-violin:after{content:"\f8ed\f8ed"}.fa-duotone.fa-objects-column:after,.fad.fa-objects-column:after{content:"\e3c1\e3c1"}.fa-duotone.fa-chevron-square-down:after,.fa-duotone.fa-square-chevron-down:after,.fad.fa-chevron-square-down:after,.fad.fa-square-chevron-down:after{content:"\f329\f329"}.fa-duotone.fa-comment-plus:after,.fad.fa-comment-plus:after{content:"\f4b2\f4b2"}.fa-duotone.fa-triangle-instrument:after,.fa-duotone.fa-triangle-music:after,.fad.fa-triangle-instrument:after,.fad.fa-triangle-music:after{content:"\f8e2\f8e2"}.fa-duotone.fa-wheelchair:after,.fad.fa-wheelchair:after{content:"\f193\f193"}.fa-duotone.fa-user-pilot-tie:after,.fad.fa-user-pilot-tie:after{content:"\e2c1\e2c1"}.fa-duotone.fa-piano-keyboard:after,.fad.fa-piano-keyboard:after{content:"\f8d5\f8d5"}.fa-duotone.fa-bed-empty:after,.fad.fa-bed-empty:after{content:"\f8f9\f8f9"}.fa-duotone.fa-arrow-circle-up:after,.fa-duotone.fa-circle-arrow-up:after,.fad.fa-arrow-circle-up:after,.fad.fa-circle-arrow-up:after{content:"\f0aa\f0aa"}.fa-duotone.fa-toggle-on:after,.fad.fa-toggle-on:after{content:"\f205\f205"}.fa-duotone.fa-rectangle-portrait:after,.fa-duotone.fa-rectangle-vertical:after,.fad.fa-rectangle-portrait:after,.fad.fa-rectangle-vertical:after{content:"\f2fb\f2fb"}.fa-duotone.fa-person-walking:after,.fa-duotone.fa-walking:after,.fad.fa-person-walking:after,.fad.fa-walking:after{content:"\f554\f554"}.fa-duotone.fa-l:after,.fad.fa-l:after{content:"\4c\4c"}.fa-duotone.fa-signal-stream:after,.fad.fa-signal-stream:after{content:"\f8dd\f8dd"}.fa-duotone.fa-down-to-bracket:after,.fad.fa-down-to-bracket:after{content:"\e4e7\e4e7"}.fa-duotone.fa-circle-z:after,.fad.fa-circle-z:after{content:"\e130\e130"}.fa-duotone.fa-stars:after,.fad.fa-stars:after{content:"\f762\f762"}.fa-duotone.fa-fire:after,.fad.fa-fire:after{content:"\f06d\f06d"}.fa-duotone.fa-bed-pulse:after,.fa-duotone.fa-procedures:after,.fad.fa-bed-pulse:after,.fad.fa-procedures:after{content:"\f487\f487"}.fa-duotone.fa-house-day:after,.fad.fa-house-day:after{content:"\e00e\e00e"}.fa-duotone.fa-shuttle-space:after,.fa-duotone.fa-space-shuttle:after,.fad.fa-shuttle-space:after,.fad.fa-space-shuttle:after{content:"\f197\f197"}.fa-duotone.fa-shirt-long-sleeve:after,.fad.fa-shirt-long-sleeve:after{content:"\e3c7\e3c7"}.fa-duotone.fa-chart-pie-alt:after,.fa-duotone.fa-chart-pie-simple:after,.fad.fa-chart-pie-alt:after,.fad.fa-chart-pie-simple:after{content:"\f64e\f64e"}.fa-duotone.fa-face-laugh:after,.fa-duotone.fa-laugh:after,.fad.fa-face-laugh:after,.fad.fa-laugh:after{content:"\f599\f599"}.fa-duotone.fa-folder-open:after,.fad.fa-folder-open:after{content:"\f07c\f07c"}.fa-duotone.fa-album-collection-circle-user:after,.fad.fa-album-collection-circle-user:after{content:"\e48f\e48f"}.fa-duotone.fa-candy:after,.fad.fa-candy:after{content:"\e3e7\e3e7"}.fa-duotone.fa-bowl-hot:after,.fa-duotone.fa-soup:after,.fad.fa-bowl-hot:after,.fad.fa-soup:after{content:"\f823\f823"}.fa-duotone.fa-flatbread:after,.fad.fa-flatbread:after{content:"\e40b\e40b"}.fa-duotone.fa-heart-circle-plus:after,.fad.fa-heart-circle-plus:after{content:"\e500\e500"}.fa-duotone.fa-code-fork:after,.fad.fa-code-fork:after{content:"\e13b\e13b"}.fa-duotone.fa-city:after,.fad.fa-city:after{content:"\f64f\f64f"}.fa-duotone.fa-signal-alt-1:after,.fa-duotone.fa-signal-bars-weak:after,.fad.fa-signal-alt-1:after,.fad.fa-signal-bars-weak:after{content:"\f691\f691"}.fa-duotone.fa-microphone-alt:after,.fa-duotone.fa-microphone-lines:after,.fad.fa-microphone-alt:after,.fad.fa-microphone-lines:after{content:"\f3c9\f3c9"}.fa-duotone.fa-clock-twelve:after,.fad.fa-clock-twelve:after{content:"\e358\e358"}.fa-duotone.fa-pepper-hot:after,.fad.fa-pepper-hot:after{content:"\f816\f816"}.fa-duotone.fa-citrus-slice:after,.fad.fa-citrus-slice:after{content:"\e2f5\e2f5"}.fa-duotone.fa-sheep:after,.fad.fa-sheep:after{content:"\f711\f711"}.fa-duotone.fa-unlock:after,.fad.fa-unlock:after{content:"\f09c\f09c"}.fa-duotone.fa-colon-sign:after,.fad.fa-colon-sign:after{content:"\e140\e140"}.fa-duotone.fa-headset:after,.fad.fa-headset:after{content:"\f590\f590"}.fa-duotone.fa-badger-honey:after,.fad.fa-badger-honey:after{content:"\f6b4\f6b4"}.fa-duotone.fa-h4:after,.fad.fa-h4:after{content:"\f86a\f86a"}.fa-duotone.fa-store-slash:after,.fad.fa-store-slash:after{content:"\e071\e071"}.fa-duotone.fa-road-circle-xmark:after,.fad.fa-road-circle-xmark:after{content:"\e566\e566"}.fa-duotone.fa-signal-slash:after,.fad.fa-signal-slash:after{content:"\f695\f695"}.fa-duotone.fa-user-minus:after,.fad.fa-user-minus:after{content:"\f503\f503"}.fa-duotone.fa-mars-stroke-up:after,.fa-duotone.fa-mars-stroke-v:after,.fad.fa-mars-stroke-up:after,.fad.fa-mars-stroke-v:after{content:"\f22a\f22a"}.fa-duotone.fa-champagne-glasses:after,.fa-duotone.fa-glass-cheers:after,.fad.fa-champagne-glasses:after,.fad.fa-glass-cheers:after{content:"\f79f\f79f"}.fa-duotone.fa-taco:after,.fad.fa-taco:after{content:"\f826\f826"}.fa-duotone.fa-hexagon-plus:after,.fa-duotone.fa-plus-hexagon:after,.fad.fa-hexagon-plus:after,.fad.fa-plus-hexagon:after{content:"\f300\f300"}.fa-duotone.fa-clipboard:after,.fad.fa-clipboard:after{content:"\f328\f328"}.fa-duotone.fa-house-circle-exclamation:after,.fad.fa-house-circle-exclamation:after{content:"\e50a\e50a"}.fa-duotone.fa-file-arrow-up:after,.fa-duotone.fa-file-upload:after,.fad.fa-file-arrow-up:after,.fad.fa-file-upload:after{content:"\f574\f574"}.fa-duotone.fa-wifi-3:after,.fa-duotone.fa-wifi-strong:after,.fa-duotone.fa-wifi:after,.fad.fa-wifi-3:after,.fad.fa-wifi-strong:after,.fad.fa-wifi:after{content:"\f1eb\f1eb"}.fa-duotone.fa-comments-alt:after,.fa-duotone.fa-messages:after,.fad.fa-comments-alt:after,.fad.fa-messages:after{content:"\f4b6\f4b6"}.fa-duotone.fa-bath:after,.fa-duotone.fa-bathtub:after,.fad.fa-bath:after,.fad.fa-bathtub:after{content:"\f2cd\f2cd"}.fa-duotone.fa-umbrella-alt:after,.fa-duotone.fa-umbrella-simple:after,.fad.fa-umbrella-alt:after,.fad.fa-umbrella-simple:after{content:"\e2bc\e2bc"}.fa-duotone.fa-rectangle-history-circle-plus:after,.fad.fa-rectangle-history-circle-plus:after{content:"\e4a3\e4a3"}.fa-duotone.fa-underline:after,.fad.fa-underline:after{content:"\f0cd\f0cd"}.fa-duotone.fa-prescription-bottle-pill:after,.fad.fa-prescription-bottle-pill:after{content:"\e5c0\e5c0"}.fa-duotone.fa-user-edit:after,.fa-duotone.fa-user-pen:after,.fad.fa-user-edit:after,.fad.fa-user-pen:after{content:"\f4ff\f4ff"}.fa-duotone.fa-binary-slash:after,.fad.fa-binary-slash:after{content:"\e33e\e33e"}.fa-duotone.fa-square-o:after,.fad.fa-square-o:after{content:"\e278\e278"}.fa-duotone.fa-signature:after,.fad.fa-signature:after{content:"\f5b7\f5b7"}.fa-duotone.fa-stroopwafel:after,.fad.fa-stroopwafel:after{content:"\f551\f551"}.fa-duotone.fa-bold:after,.fad.fa-bold:after{content:"\f032\f032"}.fa-duotone.fa-anchor-lock:after,.fad.fa-anchor-lock:after{content:"\e4ad\e4ad"}.fa-duotone.fa-building-ngo:after,.fad.fa-building-ngo:after{content:"\e4d7\e4d7"}.fa-duotone.fa-transporter-3:after,.fad.fa-transporter-3:after{content:"\e045\e045"}.fa-duotone.fa-engine-exclamation:after,.fa-duotone.fa-engine-warning:after,.fad.fa-engine-exclamation:after,.fad.fa-engine-warning:after{content:"\f5f2\f5f2"}.fa-duotone.fa-circle-down-right:after,.fad.fa-circle-down-right:after{content:"\e108\e108"}.fa-duotone.fa-square-k:after,.fad.fa-square-k:after{content:"\e274\e274"}.fa-duotone.fa-manat-sign:after,.fad.fa-manat-sign:after{content:"\e1d5\e1d5"}.fa-duotone.fa-money-check-edit:after,.fa-duotone.fa-money-check-pen:after,.fad.fa-money-check-edit:after,.fad.fa-money-check-pen:after{content:"\f872\f872"}.fa-duotone.fa-not-equal:after,.fad.fa-not-equal:after{content:"\f53e\f53e"}.fa-duotone.fa-border-style:after,.fa-duotone.fa-border-top-left:after,.fad.fa-border-style:after,.fad.fa-border-top-left:after{content:"\f853\f853"}.fa-duotone.fa-map-location-dot:after,.fa-duotone.fa-map-marked-alt:after,.fad.fa-map-location-dot:after,.fad.fa-map-marked-alt:after{content:"\f5a0\f5a0"}.fa-duotone.fa-tilde:after,.fad.fa-tilde:after{content:"\7e\7e"}.fa-duotone.fa-jedi:after,.fad.fa-jedi:after{content:"\f669\f669"}.fa-duotone.fa-poll:after,.fa-duotone.fa-square-poll-vertical:after,.fad.fa-poll:after,.fad.fa-square-poll-vertical:after{content:"\f681\f681"}.fa-duotone.fa-arrow-down-square-triangle:after,.fa-duotone.fa-sort-shapes-down-alt:after,.fad.fa-arrow-down-square-triangle:after,.fad.fa-sort-shapes-down-alt:after{content:"\f889\f889"}.fa-duotone.fa-mug-hot:after,.fad.fa-mug-hot:after{content:"\f7b6\f7b6"}.fa-duotone.fa-dog-leashed:after,.fad.fa-dog-leashed:after{content:"\f6d4\f6d4"}.fa-duotone.fa-battery-car:after,.fa-duotone.fa-car-battery:after,.fad.fa-battery-car:after,.fad.fa-car-battery:after{content:"\f5df\f5df"}.fa-duotone.fa-face-downcast-sweat:after,.fad.fa-face-downcast-sweat:after{content:"\e371\e371"}.fa-duotone.fa-mailbox-flag-up:after,.fad.fa-mailbox-flag-up:after{content:"\e5bb\e5bb"}.fa-duotone.fa-memo-circle-info:after,.fad.fa-memo-circle-info:after{content:"\e49a\e49a"}.fa-duotone.fa-gift:after,.fad.fa-gift:after{content:"\f06b\f06b"}.fa-duotone.fa-dice-two:after,.fad.fa-dice-two:after{content:"\f528\f528"}.fa-duotone.fa-volume-medium:after,.fa-duotone.fa-volume:after,.fad.fa-volume-medium:after,.fad.fa-volume:after{content:"\f6a8\f6a8"}.fa-duotone.fa-transporter-5:after,.fad.fa-transporter-5:after{content:"\e2a6\e2a6"}.fa-duotone.fa-gauge-circle-bolt:after,.fad.fa-gauge-circle-bolt:after{content:"\e496\e496"}.fa-duotone.fa-coin-front:after,.fad.fa-coin-front:after{content:"\e3fc\e3fc"}.fa-duotone.fa-file-slash:after,.fad.fa-file-slash:after{content:"\e3a7\e3a7"}.fa-duotone.fa-message-arrow-up-right:after,.fad.fa-message-arrow-up-right:after{content:"\e1dd\e1dd"}.fa-duotone.fa-treasure-chest:after,.fad.fa-treasure-chest:after{content:"\f723\f723"}.fa-duotone.fa-chess-queen:after,.fad.fa-chess-queen:after{content:"\f445\f445"}.fa-duotone.fa-paint-brush-alt:after,.fa-duotone.fa-paint-brush-fine:after,.fa-duotone.fa-paintbrush-alt:after,.fa-duotone.fa-paintbrush-fine:after,.fad.fa-paint-brush-alt:after,.fad.fa-paint-brush-fine:after,.fad.fa-paintbrush-alt:after,.fad.fa-paintbrush-fine:after{content:"\f5a9\f5a9"}.fa-duotone.fa-glasses:after,.fad.fa-glasses:after{content:"\f530\f530"}.fa-duotone.fa-hood-cloak:after,.fad.fa-hood-cloak:after{content:"\f6ef\f6ef"}.fa-duotone.fa-square-quote:after,.fad.fa-square-quote:after{content:"\e329\e329"}.fa-duotone.fa-up-left:after,.fad.fa-up-left:after{content:"\e2bd\e2bd"}.fa-duotone.fa-bring-front:after,.fad.fa-bring-front:after{content:"\f857\f857"}.fa-duotone.fa-chess-board:after,.fad.fa-chess-board:after{content:"\f43c\f43c"}.fa-duotone.fa-burger-cheese:after,.fa-duotone.fa-cheeseburger:after,.fad.fa-burger-cheese:after,.fad.fa-cheeseburger:after{content:"\f7f1\f7f1"}.fa-duotone.fa-building-circle-check:after,.fad.fa-building-circle-check:after{content:"\e4d2\e4d2"}.fa-duotone.fa-repeat-1:after,.fad.fa-repeat-1:after{content:"\f365\f365"}.fa-duotone.fa-arrow-down-to-line:after,.fa-duotone.fa-arrow-to-bottom:after,.fad.fa-arrow-down-to-line:after,.fad.fa-arrow-to-bottom:after{content:"\f33d\f33d"}.fa-duotone.fa-grid-5:after,.fad.fa-grid-5:after{content:"\e199\e199"}.fa-duotone.fa-swap-arrows:after,.fad.fa-swap-arrows:after{content:"\e60a\e60a"}.fa-duotone.fa-right-long-to-line:after,.fad.fa-right-long-to-line:after{content:"\e444\e444"}.fa-duotone.fa-person-chalkboard:after,.fad.fa-person-chalkboard:after{content:"\e53d\e53d"}.fa-duotone.fa-mars-stroke-h:after,.fa-duotone.fa-mars-stroke-right:after,.fad.fa-mars-stroke-h:after,.fad.fa-mars-stroke-right:after{content:"\f22b\f22b"}.fa-duotone.fa-hand-back-fist:after,.fa-duotone.fa-hand-rock:after,.fad.fa-hand-back-fist:after,.fad.fa-hand-rock:after{content:"\f255\f255"}.fa-duotone.fa-grid-round-5:after,.fad.fa-grid-round-5:after{content:"\e5de\e5de"}.fa-duotone.fa-tally-5:after,.fa-duotone.fa-tally:after,.fad.fa-tally-5:after,.fad.fa-tally:after{content:"\f69c\f69c"}.fa-duotone.fa-caret-square-up:after,.fa-duotone.fa-square-caret-up:after,.fad.fa-caret-square-up:after,.fad.fa-square-caret-up:after{content:"\f151\f151"}.fa-duotone.fa-cloud-showers-water:after,.fad.fa-cloud-showers-water:after{content:"\e4e4\e4e4"}.fa-duotone.fa-bar-chart:after,.fa-duotone.fa-chart-bar:after,.fad.fa-bar-chart:after,.fad.fa-chart-bar:after{content:"\f080\f080"}.fa-duotone.fa-hands-bubbles:after,.fa-duotone.fa-hands-wash:after,.fad.fa-hands-bubbles:after,.fad.fa-hands-wash:after{content:"\e05e\e05e"}.fa-duotone.fa-less-than-equal:after,.fad.fa-less-than-equal:after{content:"\f537\f537"}.fa-duotone.fa-train:after,.fad.fa-train:after{content:"\f238\f238"}.fa-duotone.fa-up-from-dotted-line:after,.fad.fa-up-from-dotted-line:after{content:"\e456\e456"}.fa-duotone.fa-eye-low-vision:after,.fa-duotone.fa-low-vision:after,.fad.fa-eye-low-vision:after,.fad.fa-low-vision:after{content:"\f2a8\f2a8"}.fa-duotone.fa-traffic-light-go:after,.fad.fa-traffic-light-go:after{content:"\f638\f638"}.fa-duotone.fa-face-exhaling:after,.fad.fa-face-exhaling:after{content:"\e480\e480"}.fa-duotone.fa-sensor-fire:after,.fad.fa-sensor-fire:after{content:"\e02a\e02a"}.fa-duotone.fa-user-unlock:after,.fad.fa-user-unlock:after{content:"\e058\e058"}.fa-duotone.fa-hexagon-divide:after,.fad.fa-hexagon-divide:after{content:"\e1ad\e1ad"}.fa-duotone.fa-00:after,.fad.fa-00:after{content:"\e467\e467"}.fa-duotone.fa-crow:after,.fad.fa-crow:after{content:"\f520\f520"}.fa-duotone.fa-betamax:after,.fa-duotone.fa-cassette-betamax:after,.fad.fa-betamax:after,.fad.fa-cassette-betamax:after{content:"\f8a4\f8a4"}.fa-duotone.fa-sailboat:after,.fad.fa-sailboat:after{content:"\e445\e445"}.fa-duotone.fa-window-restore:after,.fad.fa-window-restore:after{content:"\f2d2\f2d2"}.fa-duotone.fa-nfc-magnifying-glass:after,.fad.fa-nfc-magnifying-glass:after{content:"\e1f9\e1f9"}.fa-duotone.fa-file-binary:after,.fad.fa-file-binary:after{content:"\e175\e175"}.fa-duotone.fa-circle-v:after,.fad.fa-circle-v:after{content:"\e12a\e12a"}.fa-duotone.fa-plus-square:after,.fa-duotone.fa-square-plus:after,.fad.fa-plus-square:after,.fad.fa-square-plus:after{content:"\f0fe\f0fe"}.fa-duotone.fa-bowl-scoops:after,.fad.fa-bowl-scoops:after{content:"\e3df\e3df"}.fa-duotone.fa-mistletoe:after,.fad.fa-mistletoe:after{content:"\f7b4\f7b4"}.fa-duotone.fa-custard:after,.fad.fa-custard:after{content:"\e403\e403"}.fa-duotone.fa-lacrosse-stick:after,.fad.fa-lacrosse-stick:after{content:"\e3b5\e3b5"}.fa-duotone.fa-hockey-mask:after,.fad.fa-hockey-mask:after{content:"\f6ee\f6ee"}.fa-duotone.fa-sunrise:after,.fad.fa-sunrise:after{content:"\f766\f766"}.fa-duotone.fa-subtitles:after,.fad.fa-subtitles:after{content:"\e60f\e60f"}.fa-duotone.fa-panel-ews:after,.fad.fa-panel-ews:after{content:"\e42e\e42e"}.fa-duotone.fa-torii-gate:after,.fad.fa-torii-gate:after{content:"\f6a1\f6a1"}.fa-duotone.fa-cloud-exclamation:after,.fad.fa-cloud-exclamation:after{content:"\e491\e491"}.fa-duotone.fa-comment-alt-lines:after,.fa-duotone.fa-message-lines:after,.fad.fa-comment-alt-lines:after,.fad.fa-message-lines:after{content:"\f4a6\f4a6"}.fa-duotone.fa-frog:after,.fad.fa-frog:after{content:"\f52e\f52e"}.fa-duotone.fa-bucket:after,.fad.fa-bucket:after{content:"\e4cf\e4cf"}.fa-duotone.fa-floppy-disk-pen:after,.fad.fa-floppy-disk-pen:after{content:"\e182\e182"}.fa-duotone.fa-image:after,.fad.fa-image:after{content:"\f03e\f03e"}.fa-duotone.fa-window-frame:after,.fad.fa-window-frame:after{content:"\e04f\e04f"}.fa-duotone.fa-microphone:after,.fad.fa-microphone:after{content:"\f130\f130"}.fa-duotone.fa-cow:after,.fad.fa-cow:after{content:"\f6c8\f6c8"}.fa-duotone.fa-file-zip:after,.fad.fa-file-zip:after{content:"\e5ee\e5ee"}.fa-duotone.fa-square-ring:after,.fad.fa-square-ring:after{content:"\e44f\e44f"}.fa-duotone.fa-arrow-alt-from-top:after,.fa-duotone.fa-down-from-line:after,.fad.fa-arrow-alt-from-top:after,.fad.fa-down-from-line:after{content:"\f349\f349"}.fa-duotone.fa-caret-up:after,.fad.fa-caret-up:after{content:"\f0d8\f0d8"}.fa-duotone.fa-shield-times:after,.fa-duotone.fa-shield-xmark:after,.fad.fa-shield-times:after,.fad.fa-shield-xmark:after{content:"\e24c\e24c"}.fa-duotone.fa-screwdriver:after,.fad.fa-screwdriver:after{content:"\f54a\f54a"}.fa-duotone.fa-circle-sort-down:after,.fa-duotone.fa-sort-circle-down:after,.fad.fa-circle-sort-down:after,.fad.fa-sort-circle-down:after{content:"\e031\e031"}.fa-duotone.fa-folder-closed:after,.fad.fa-folder-closed:after{content:"\e185\e185"}.fa-duotone.fa-house-tsunami:after,.fad.fa-house-tsunami:after{content:"\e515\e515"}.fa-duotone.fa-square-nfi:after,.fad.fa-square-nfi:after{content:"\e576\e576"}.fa-duotone.fa-forklift:after,.fad.fa-forklift:after{content:"\f47a\f47a"}.fa-duotone.fa-arrow-up-from-ground-water:after,.fad.fa-arrow-up-from-ground-water:after{content:"\e4b5\e4b5"}.fa-duotone.fa-bracket-square-right:after,.fad.fa-bracket-square-right:after{content:"\5d\5d"}.fa-duotone.fa-glass-martini-alt:after,.fa-duotone.fa-martini-glass:after,.fad.fa-glass-martini-alt:after,.fad.fa-martini-glass:after{content:"\f57b\f57b"}.fa-duotone.fa-rotate-back:after,.fa-duotone.fa-rotate-backward:after,.fa-duotone.fa-rotate-left:after,.fa-duotone.fa-undo-alt:after,.fad.fa-rotate-back:after,.fad.fa-rotate-backward:after,.fad.fa-rotate-left:after,.fad.fa-undo-alt:after{content:"\f2ea\f2ea"}.fa-duotone.fa-columns:after,.fa-duotone.fa-table-columns:after,.fad.fa-columns:after,.fad.fa-table-columns:after{content:"\f0db\f0db"}.fa-duotone.fa-square-a:after,.fad.fa-square-a:after{content:"\e25f\e25f"}.fa-duotone.fa-tick:after,.fad.fa-tick:after{content:"\e32f\e32f"}.fa-duotone.fa-lemon:after,.fad.fa-lemon:after{content:"\f094\f094"}.fa-duotone.fa-head-side-mask:after,.fad.fa-head-side-mask:after{content:"\e063\e063"}.fa-duotone.fa-handshake:after,.fad.fa-handshake:after{content:"\f2b5\f2b5"}.fa-duotone.fa-gem:after,.fad.fa-gem:after{content:"\f3a5\f3a5"}.fa-duotone.fa-dolly-box:after,.fa-duotone.fa-dolly:after,.fad.fa-dolly-box:after,.fad.fa-dolly:after{content:"\f472\f472"}.fa-duotone.fa-smoking:after,.fad.fa-smoking:after{content:"\f48d\f48d"}.fa-duotone.fa-compress-arrows-alt:after,.fa-duotone.fa-minimize:after,.fad.fa-compress-arrows-alt:after,.fad.fa-minimize:after{content:"\f78c\f78c"}.fa-duotone.fa-refrigerator:after,.fad.fa-refrigerator:after{content:"\e026\e026"}.fa-duotone.fa-monument:after,.fad.fa-monument:after{content:"\f5a6\f5a6"}.fa-duotone.fa-octagon-xmark:after,.fa-duotone.fa-times-octagon:after,.fa-duotone.fa-xmark-octagon:after,.fad.fa-octagon-xmark:after,.fad.fa-times-octagon:after,.fad.fa-xmark-octagon:after{content:"\f2f0\f2f0"}.fa-duotone.fa-align-slash:after,.fad.fa-align-slash:after{content:"\f846\f846"}.fa-duotone.fa-snowplow:after,.fad.fa-snowplow:after{content:"\f7d2\f7d2"}.fa-duotone.fa-angle-double-right:after,.fa-duotone.fa-angles-right:after,.fad.fa-angle-double-right:after,.fad.fa-angles-right:after{content:"\f101\f101"}.fa-duotone.fa-truck-couch:after,.fa-duotone.fa-truck-ramp-couch:after,.fad.fa-truck-couch:after,.fad.fa-truck-ramp-couch:after{content:"\f4dd\f4dd"}.fa-duotone.fa-cannabis:after,.fad.fa-cannabis:after{content:"\f55f\f55f"}.fa-duotone.fa-circle-play:after,.fa-duotone.fa-play-circle:after,.fad.fa-circle-play:after,.fad.fa-play-circle:after{content:"\f144\f144"}.fa-duotone.fa-arrow-up-right-and-arrow-down-left-from-center:after,.fad.fa-arrow-up-right-and-arrow-down-left-from-center:after{content:"\e0a0\e0a0"}.fa-duotone.fa-location-arrow-up:after,.fad.fa-location-arrow-up:after{content:"\e63a\e63a"}.fa-duotone.fa-tablets:after,.fad.fa-tablets:after{content:"\f490\f490"}.fa-duotone.fa-360-degrees:after,.fad.fa-360-degrees:after{content:"\e2dc\e2dc"}.fa-duotone.fa-ethernet:after,.fad.fa-ethernet:after{content:"\f796\f796"}.fa-duotone.fa-eur:after,.fa-duotone.fa-euro-sign:after,.fa-duotone.fa-euro:after,.fad.fa-eur:after,.fad.fa-euro-sign:after,.fad.fa-euro:after{content:"\f153\f153"}.fa-duotone.fa-chair:after,.fad.fa-chair:after{content:"\f6c0\f6c0"}.fa-duotone.fa-check-circle:after,.fa-duotone.fa-circle-check:after,.fad.fa-check-circle:after,.fad.fa-circle-check:after{content:"\f058\f058"}.fa-duotone.fa-square-dashed-circle-plus:after,.fad.fa-square-dashed-circle-plus:after{content:"\e5c2\e5c2"}.fa-duotone.fa-hand-holding-circle-dollar:after,.fad.fa-hand-holding-circle-dollar:after{content:"\e621\e621"}.fa-duotone.fa-money-simple-from-bracket:after,.fad.fa-money-simple-from-bracket:after{content:"\e313\e313"}.fa-duotone.fa-bat:after,.fad.fa-bat:after{content:"\f6b5\f6b5"}.fa-duotone.fa-circle-stop:after,.fa-duotone.fa-stop-circle:after,.fad.fa-circle-stop:after,.fad.fa-stop-circle:after{content:"\f28d\f28d"}.fa-duotone.fa-head-side-headphones:after,.fad.fa-head-side-headphones:after{content:"\f8c2\f8c2"}.fa-duotone.fa-phone-rotary:after,.fad.fa-phone-rotary:after{content:"\f8d3\f8d3"}.fa-duotone.fa-compass-drafting:after,.fa-duotone.fa-drafting-compass:after,.fad.fa-compass-drafting:after,.fad.fa-drafting-compass:after{content:"\f568\f568"}.fa-duotone.fa-plate-wheat:after,.fad.fa-plate-wheat:after{content:"\e55a\e55a"}.fa-duotone.fa-calendar-circle-minus:after,.fad.fa-calendar-circle-minus:after{content:"\e46f\e46f"}.fa-duotone.fa-chopsticks:after,.fad.fa-chopsticks:after{content:"\e3f7\e3f7"}.fa-duotone.fa-car-mechanic:after,.fa-duotone.fa-car-wrench:after,.fad.fa-car-mechanic:after,.fad.fa-car-wrench:after{content:"\f5e3\f5e3"}.fa-duotone.fa-icicles:after,.fad.fa-icicles:after{content:"\f7ad\f7ad"}.fa-duotone.fa-person-shelter:after,.fad.fa-person-shelter:after{content:"\e54f\e54f"}.fa-duotone.fa-neuter:after,.fad.fa-neuter:after{content:"\f22c\f22c"}.fa-duotone.fa-id-badge:after,.fad.fa-id-badge:after{content:"\f2c1\f2c1"}.fa-duotone.fa-kazoo:after,.fad.fa-kazoo:after{content:"\f8c7\f8c7"}.fa-duotone.fa-marker:after,.fad.fa-marker:after{content:"\f5a1\f5a1"}.fa-duotone.fa-bin-bottles:after,.fad.fa-bin-bottles:after{content:"\e5f5\e5f5"}.fa-duotone.fa-face-laugh-beam:after,.fa-duotone.fa-laugh-beam:after,.fad.fa-face-laugh-beam:after,.fad.fa-laugh-beam:after{content:"\f59a\f59a"}.fa-duotone.fa-square-arrow-down-left:after,.fad.fa-square-arrow-down-left:after{content:"\e261\e261"}.fa-duotone.fa-battery-bolt:after,.fad.fa-battery-bolt:after{content:"\f376\f376"}.fa-duotone.fa-tree-large:after,.fad.fa-tree-large:after{content:"\f7dd\f7dd"}.fa-duotone.fa-helicopter-symbol:after,.fad.fa-helicopter-symbol:after{content:"\e502\e502"}.fa-duotone.fa-aperture:after,.fad.fa-aperture:after{content:"\e2df\e2df"}.fa-duotone.fa-universal-access:after,.fad.fa-universal-access:after{content:"\f29a\f29a"}.fa-duotone.fa-gear-complex:after,.fad.fa-gear-complex:after{content:"\e5e9\e5e9"}.fa-duotone.fa-file-magnifying-glass:after,.fa-duotone.fa-file-search:after,.fad.fa-file-magnifying-glass:after,.fad.fa-file-search:after{content:"\f865\f865"}.fa-duotone.fa-up-right:after,.fad.fa-up-right:after{content:"\e2be\e2be"}.fa-duotone.fa-chevron-circle-up:after,.fa-duotone.fa-circle-chevron-up:after,.fad.fa-chevron-circle-up:after,.fad.fa-circle-chevron-up:after{content:"\f139\f139"}.fa-duotone.fa-user-police:after,.fad.fa-user-police:after{content:"\e333\e333"}.fa-duotone.fa-lari-sign:after,.fad.fa-lari-sign:after{content:"\e1c8\e1c8"}.fa-duotone.fa-volcano:after,.fad.fa-volcano:after{content:"\f770\f770"}.fa-duotone.fa-teddy-bear:after,.fad.fa-teddy-bear:after{content:"\e3cf\e3cf"}.fa-duotone.fa-stocking:after,.fad.fa-stocking:after{content:"\f7d5\f7d5"}.fa-duotone.fa-person-walking-dashed-line-arrow-right:after,.fad.fa-person-walking-dashed-line-arrow-right:after{content:"\e553\e553"}.fa-duotone.fa-image-slash:after,.fad.fa-image-slash:after{content:"\e1b7\e1b7"}.fa-duotone.fa-mask-snorkel:after,.fad.fa-mask-snorkel:after{content:"\e3b7\e3b7"}.fa-duotone.fa-smoke:after,.fad.fa-smoke:after{content:"\f760\f760"}.fa-duotone.fa-gbp:after,.fa-duotone.fa-pound-sign:after,.fa-duotone.fa-sterling-sign:after,.fad.fa-gbp:after,.fad.fa-pound-sign:after,.fad.fa-sterling-sign:after{content:"\f154\f154"}.fa-duotone.fa-battery-exclamation:after,.fad.fa-battery-exclamation:after{content:"\e0b0\e0b0"}.fa-duotone.fa-viruses:after,.fad.fa-viruses:after{content:"\e076\e076"}.fa-duotone.fa-square-person-confined:after,.fad.fa-square-person-confined:after{content:"\e577\e577"}.fa-duotone.fa-user-tie:after,.fad.fa-user-tie:after{content:"\f508\f508"}.fa-duotone.fa-arrow-down-long:after,.fa-duotone.fa-long-arrow-down:after,.fad.fa-arrow-down-long:after,.fad.fa-long-arrow-down:after{content:"\f175\f175"}.fa-duotone.fa-tent-arrow-down-to-line:after,.fad.fa-tent-arrow-down-to-line:after{content:"\e57e\e57e"}.fa-duotone.fa-certificate:after,.fad.fa-certificate:after{content:"\f0a3\f0a3"}.fa-duotone.fa-crystal-ball:after,.fad.fa-crystal-ball:after{content:"\e362\e362"}.fa-duotone.fa-mail-reply-all:after,.fa-duotone.fa-reply-all:after,.fad.fa-mail-reply-all:after,.fad.fa-reply-all:after{content:"\f122\f122"}.fa-duotone.fa-suitcase:after,.fad.fa-suitcase:after{content:"\f0f2\f0f2"}.fa-duotone.fa-person-skating:after,.fa-duotone.fa-skating:after,.fad.fa-person-skating:after,.fad.fa-skating:after{content:"\f7c5\f7c5"}.fa-duotone.fa-star-shooting:after,.fad.fa-star-shooting:after{content:"\e036\e036"}.fa-duotone.fa-binary-lock:after,.fad.fa-binary-lock:after{content:"\e33d\e33d"}.fa-duotone.fa-filter-circle-dollar:after,.fa-duotone.fa-funnel-dollar:after,.fad.fa-filter-circle-dollar:after,.fad.fa-funnel-dollar:after{content:"\f662\f662"}.fa-duotone.fa-camera-retro:after,.fad.fa-camera-retro:after{content:"\f083\f083"}.fa-duotone.fa-arrow-circle-down:after,.fa-duotone.fa-circle-arrow-down:after,.fad.fa-arrow-circle-down:after,.fad.fa-circle-arrow-down:after{content:"\f0ab\f0ab"}.fa-duotone.fa-comment-edit:after,.fa-duotone.fa-comment-pen:after,.fad.fa-comment-edit:after,.fad.fa-comment-pen:after{content:"\f4ae\f4ae"}.fa-duotone.fa-arrow-right-to-file:after,.fa-duotone.fa-file-import:after,.fad.fa-arrow-right-to-file:after,.fad.fa-file-import:after{content:"\f56f\f56f"}.fa-duotone.fa-banjo:after,.fad.fa-banjo:after{content:"\f8a3\f8a3"}.fa-duotone.fa-external-link-square:after,.fa-duotone.fa-square-arrow-up-right:after,.fad.fa-external-link-square:after,.fad.fa-square-arrow-up-right:after{content:"\f14c\f14c"}.fa-duotone.fa-light-emergency-on:after,.fad.fa-light-emergency-on:after{content:"\e420\e420"}.fa-duotone.fa-kerning:after,.fad.fa-kerning:after{content:"\f86f\f86f"}.fa-duotone.fa-box-open:after,.fad.fa-box-open:after{content:"\f49e\f49e"}.fa-duotone.fa-square-f:after,.fad.fa-square-f:after{content:"\e270\e270"}.fa-duotone.fa-scroll:after,.fad.fa-scroll:after{content:"\f70e\f70e"}.fa-duotone.fa-spa:after,.fad.fa-spa:after{content:"\f5bb\f5bb"}.fa-duotone.fa-arrow-from-right:after,.fa-duotone.fa-arrow-left-from-line:after,.fad.fa-arrow-from-right:after,.fad.fa-arrow-left-from-line:after{content:"\f344\f344"}.fa-duotone.fa-strawberry:after,.fad.fa-strawberry:after{content:"\e32b\e32b"}.fa-duotone.fa-location-pin-lock:after,.fad.fa-location-pin-lock:after{content:"\e51f\e51f"}.fa-duotone.fa-pause:after,.fad.fa-pause:after{content:"\f04c\f04c"}.fa-duotone.fa-clock-eight-thirty:after,.fad.fa-clock-eight-thirty:after{content:"\e346\e346"}.fa-duotone.fa-plane-alt:after,.fa-duotone.fa-plane-engines:after,.fad.fa-plane-alt:after,.fad.fa-plane-engines:after{content:"\f3de\f3de"}.fa-duotone.fa-hill-avalanche:after,.fad.fa-hill-avalanche:after{content:"\e507\e507"}.fa-duotone.fa-temperature-0:after,.fa-duotone.fa-temperature-empty:after,.fa-duotone.fa-thermometer-0:after,.fa-duotone.fa-thermometer-empty:after,.fad.fa-temperature-0:after,.fad.fa-temperature-empty:after,.fad.fa-thermometer-0:after,.fad.fa-thermometer-empty:after{content:"\f2cb\f2cb"}.fa-duotone.fa-bomb:after,.fad.fa-bomb:after{content:"\f1e2\f1e2"}.fa-duotone.fa-gauge-low:after,.fa-duotone.fa-tachometer-alt-slow:after,.fad.fa-gauge-low:after,.fad.fa-tachometer-alt-slow:after{content:"\f627\f627"}.fa-duotone.fa-registered:after,.fad.fa-registered:after{content:"\f25d\f25d"}.fa-duotone.fa-trash-can-plus:after,.fad.fa-trash-can-plus:after{content:"\e2ac\e2ac"}.fa-duotone.fa-address-card:after,.fa-duotone.fa-contact-card:after,.fa-duotone.fa-vcard:after,.fad.fa-address-card:after,.fad.fa-contact-card:after,.fad.fa-vcard:after{content:"\f2bb\f2bb"}.fa-duotone.fa-balance-scale-right:after,.fa-duotone.fa-scale-unbalanced-flip:after,.fad.fa-balance-scale-right:after,.fad.fa-scale-unbalanced-flip:after{content:"\f516\f516"}.fa-duotone.fa-globe-snow:after,.fad.fa-globe-snow:after{content:"\f7a3\f7a3"}.fa-duotone.fa-subscript:after,.fad.fa-subscript:after{content:"\f12c\f12c"}.fa-duotone.fa-diamond-turn-right:after,.fa-duotone.fa-directions:after,.fad.fa-diamond-turn-right:after,.fad.fa-directions:after{content:"\f5eb\f5eb"}.fa-duotone.fa-integral:after,.fad.fa-integral:after{content:"\f667\f667"}.fa-duotone.fa-burst:after,.fad.fa-burst:after{content:"\e4dc\e4dc"}.fa-duotone.fa-house-laptop:after,.fa-duotone.fa-laptop-house:after,.fad.fa-house-laptop:after,.fad.fa-laptop-house:after{content:"\e066\e066"}.fa-duotone.fa-face-tired:after,.fa-duotone.fa-tired:after,.fad.fa-face-tired:after,.fad.fa-tired:after{content:"\f5c8\f5c8"}.fa-duotone.fa-money-bills:after,.fad.fa-money-bills:after{content:"\e1f3\e1f3"}.fa-duotone.fa-blinds-raised:after,.fad.fa-blinds-raised:after{content:"\f8fd\f8fd"}.fa-duotone.fa-smog:after,.fad.fa-smog:after{content:"\f75f\f75f"}.fa-duotone.fa-ufo-beam:after,.fad.fa-ufo-beam:after{content:"\e048\e048"}.fa-duotone.fa-caret-circle-up:after,.fa-duotone.fa-circle-caret-up:after,.fad.fa-caret-circle-up:after,.fad.fa-circle-caret-up:after{content:"\f331\f331"}.fa-duotone.fa-user-vneck-hair-long:after,.fad.fa-user-vneck-hair-long:after{content:"\e463\e463"}.fa-duotone.fa-square-a-lock:after,.fad.fa-square-a-lock:after{content:"\e44d\e44d"}.fa-duotone.fa-crutch:after,.fad.fa-crutch:after{content:"\f7f7\f7f7"}.fa-duotone.fa-gas-pump-slash:after,.fad.fa-gas-pump-slash:after{content:"\f5f4\f5f4"}.fa-duotone.fa-cloud-arrow-up:after,.fa-duotone.fa-cloud-upload-alt:after,.fa-duotone.fa-cloud-upload:after,.fad.fa-cloud-arrow-up:after,.fad.fa-cloud-upload-alt:after,.fad.fa-cloud-upload:after{content:"\f0ee\f0ee"}.fa-duotone.fa-palette:after,.fad.fa-palette:after{content:"\f53f\f53f"}.fa-duotone.fa-transporter-4:after,.fad.fa-transporter-4:after{content:"\e2a5\e2a5"}.fa-duotone.fa-chart-mixed-up-circle-currency:after,.fad.fa-chart-mixed-up-circle-currency:after{content:"\e5d8\e5d8"}.fa-duotone.fa-objects-align-right:after,.fad.fa-objects-align-right:after{content:"\e3bf\e3bf"}.fa-duotone.fa-arrows-turn-right:after,.fad.fa-arrows-turn-right:after{content:"\e4c0\e4c0"}.fa-duotone.fa-vest:after,.fad.fa-vest:after{content:"\e085\e085"}.fa-duotone.fa-pig:after,.fad.fa-pig:after{content:"\f706\f706"}.fa-duotone.fa-inbox-full:after,.fad.fa-inbox-full:after{content:"\e1ba\e1ba"}.fa-duotone.fa-circle-envelope:after,.fa-duotone.fa-envelope-circle:after,.fad.fa-circle-envelope:after,.fad.fa-envelope-circle:after{content:"\e10c\e10c"}.fa-duotone.fa-construction:after,.fa-duotone.fa-triangle-person-digging:after,.fad.fa-construction:after,.fad.fa-triangle-person-digging:after{content:"\f85d\f85d"}.fa-duotone.fa-ferry:after,.fad.fa-ferry:after{content:"\e4ea\e4ea"}.fa-duotone.fa-bullseye-arrow:after,.fad.fa-bullseye-arrow:after{content:"\f648\f648"}.fa-duotone.fa-arrows-down-to-people:after,.fad.fa-arrows-down-to-people:after{content:"\e4b9\e4b9"}.fa-duotone.fa-seedling:after,.fa-duotone.fa-sprout:after,.fad.fa-seedling:after,.fad.fa-sprout:after{content:"\f4d8\f4d8"}.fa-duotone.fa-clock-seven:after,.fad.fa-clock-seven:after{content:"\e350\e350"}.fa-duotone.fa-arrows-alt-h:after,.fa-duotone.fa-left-right:after,.fad.fa-arrows-alt-h:after,.fad.fa-left-right:after{content:"\f337\f337"}.fa-duotone.fa-boxes-packing:after,.fad.fa-boxes-packing:after{content:"\e4c7\e4c7"}.fa-duotone.fa-arrow-circle-left:after,.fa-duotone.fa-circle-arrow-left:after,.fad.fa-arrow-circle-left:after,.fad.fa-circle-arrow-left:after{content:"\f0a8\f0a8"}.fa-duotone.fa-flashlight:after,.fad.fa-flashlight:after{content:"\f8b8\f8b8"}.fa-duotone.fa-file-jpg:after,.fad.fa-file-jpg:after{content:"\e646\e646"}.fa-duotone.fa-group-arrows-rotate:after,.fad.fa-group-arrows-rotate:after{content:"\e4f6\e4f6"}.fa-duotone.fa-bowl-food:after,.fad.fa-bowl-food:after{content:"\e4c6\e4c6"}.fa-duotone.fa-square-9:after,.fad.fa-square-9:after{content:"\e25e\e25e"}.fa-duotone.fa-candy-cane:after,.fad.fa-candy-cane:after{content:"\f786\f786"}.fa-duotone.fa-arrow-down-wide-short:after,.fa-duotone.fa-sort-amount-asc:after,.fa-duotone.fa-sort-amount-down:after,.fad.fa-arrow-down-wide-short:after,.fad.fa-sort-amount-asc:after,.fad.fa-sort-amount-down:after{content:"\f160\f160"}.fa-duotone.fa-dollar-square:after,.fa-duotone.fa-square-dollar:after,.fa-duotone.fa-usd-square:after,.fad.fa-dollar-square:after,.fad.fa-square-dollar:after,.fad.fa-usd-square:after{content:"\f2e9\f2e9"}.fa-duotone.fa-phone-arrow-right:after,.fad.fa-phone-arrow-right:after{content:"\e5be\e5be"}.fa-duotone.fa-hand-holding-seedling:after,.fad.fa-hand-holding-seedling:after{content:"\f4bf\f4bf"}.fa-duotone.fa-comment-alt-check:after,.fa-duotone.fa-message-check:after,.fad.fa-comment-alt-check:after,.fad.fa-message-check:after{content:"\f4a2\f4a2"}.fa-duotone.fa-cloud-bolt:after,.fa-duotone.fa-thunderstorm:after,.fad.fa-cloud-bolt:after,.fad.fa-thunderstorm:after{content:"\f76c\f76c"}.fa-duotone.fa-chart-line-up-down:after,.fad.fa-chart-line-up-down:after{content:"\e5d7\e5d7"}.fa-duotone.fa-remove-format:after,.fa-duotone.fa-text-slash:after,.fad.fa-remove-format:after,.fad.fa-text-slash:after{content:"\f87d\f87d"}.fa-duotone.fa-watch:after,.fad.fa-watch:after{content:"\f2e1\f2e1"}.fa-duotone.fa-circle-down-left:after,.fad.fa-circle-down-left:after{content:"\e107\e107"}.fa-duotone.fa-text:after,.fad.fa-text:after{content:"\f893\f893"}.fa-duotone.fa-projector:after,.fad.fa-projector:after{content:"\f8d6\f8d6"}.fa-duotone.fa-face-smile-wink:after,.fa-duotone.fa-smile-wink:after,.fad.fa-face-smile-wink:after,.fad.fa-smile-wink:after{content:"\f4da\f4da"}.fa-duotone.fa-tombstone-alt:after,.fa-duotone.fa-tombstone-blank:after,.fad.fa-tombstone-alt:after,.fad.fa-tombstone-blank:after{content:"\f721\f721"}.fa-duotone.fa-chess-king-alt:after,.fa-duotone.fa-chess-king-piece:after,.fad.fa-chess-king-alt:after,.fad.fa-chess-king-piece:after{content:"\f440\f440"}.fa-duotone.fa-circle-6:after,.fad.fa-circle-6:after{content:"\e0f3\e0f3"}.fa-duotone.fa-waves-sine:after,.fad.fa-waves-sine:after{content:"\e65d\e65d"}.fa-duotone.fa-arrow-alt-left:after,.fa-duotone.fa-left:after,.fad.fa-arrow-alt-left:after,.fad.fa-left:after{content:"\f355\f355"}.fa-duotone.fa-file-word:after,.fad.fa-file-word:after{content:"\f1c2\f1c2"}.fa-duotone.fa-file-powerpoint:after,.fad.fa-file-powerpoint:after{content:"\f1c4\f1c4"}.fa-duotone.fa-arrow-alt-square-down:after,.fa-duotone.fa-square-down:after,.fad.fa-arrow-alt-square-down:after,.fad.fa-square-down:after{content:"\f350\f350"}.fa-duotone.fa-objects-align-center-vertical:after,.fad.fa-objects-align-center-vertical:after{content:"\e3bd\e3bd"}.fa-duotone.fa-arrows-h:after,.fa-duotone.fa-arrows-left-right:after,.fad.fa-arrows-h:after,.fad.fa-arrows-left-right:after{content:"\f07e\f07e"}.fa-duotone.fa-house-lock:after,.fad.fa-house-lock:after{content:"\e510\e510"}.fa-duotone.fa-cloud-arrow-down:after,.fa-duotone.fa-cloud-download-alt:after,.fa-duotone.fa-cloud-download:after,.fad.fa-cloud-arrow-down:after,.fad.fa-cloud-download-alt:after,.fad.fa-cloud-download:after{content:"\f0ed\f0ed"}.fa-duotone.fa-wreath:after,.fad.fa-wreath:after{content:"\f7e2\f7e2"}.fa-duotone.fa-children:after,.fad.fa-children:after{content:"\e4e1\e4e1"}.fa-duotone.fa-meter-droplet:after,.fad.fa-meter-droplet:after{content:"\e1ea\e1ea"}.fa-duotone.fa-blackboard:after,.fa-duotone.fa-chalkboard:after,.fad.fa-blackboard:after,.fad.fa-chalkboard:after{content:"\f51b\f51b"}.fa-duotone.fa-user-alt-slash:after,.fa-duotone.fa-user-large-slash:after,.fad.fa-user-alt-slash:after,.fad.fa-user-large-slash:after{content:"\f4fa\f4fa"}.fa-duotone.fa-signal-4:after,.fa-duotone.fa-signal-strong:after,.fad.fa-signal-4:after,.fad.fa-signal-strong:after{content:"\f68f\f68f"}.fa-duotone.fa-lollipop:after,.fa-duotone.fa-lollypop:after,.fad.fa-lollipop:after,.fad.fa-lollypop:after{content:"\e424\e424"}.fa-duotone.fa-list-tree:after,.fad.fa-list-tree:after{content:"\e1d2\e1d2"}.fa-duotone.fa-envelope-open:after,.fad.fa-envelope-open:after{content:"\f2b6\f2b6"}.fa-duotone.fa-draw-circle:after,.fad.fa-draw-circle:after{content:"\f5ed\f5ed"}.fa-duotone.fa-cat-space:after,.fad.fa-cat-space:after{content:"\e001\e001"}.fa-duotone.fa-handshake-alt-slash:after,.fa-duotone.fa-handshake-simple-slash:after,.fad.fa-handshake-alt-slash:after,.fad.fa-handshake-simple-slash:after{content:"\e05f\e05f"}.fa-duotone.fa-rabbit-fast:after,.fa-duotone.fa-rabbit-running:after,.fad.fa-rabbit-fast:after,.fad.fa-rabbit-running:after{content:"\f709\f709"}.fa-duotone.fa-memo-pad:after,.fad.fa-memo-pad:after{content:"\e1da\e1da"}.fa-duotone.fa-mattress-pillow:after,.fad.fa-mattress-pillow:after{content:"\e525\e525"}.fa-duotone.fa-alarm-plus:after,.fad.fa-alarm-plus:after{content:"\f844\f844"}.fa-duotone.fa-alicorn:after,.fad.fa-alicorn:after{content:"\f6b0\f6b0"}.fa-duotone.fa-comment-question:after,.fad.fa-comment-question:after{content:"\e14b\e14b"}.fa-duotone.fa-gingerbread-man:after,.fad.fa-gingerbread-man:after{content:"\f79d\f79d"}.fa-duotone.fa-guarani-sign:after,.fad.fa-guarani-sign:after{content:"\e19a\e19a"}.fa-duotone.fa-burger-fries:after,.fad.fa-burger-fries:after{content:"\e0cd\e0cd"}.fa-duotone.fa-mug-tea:after,.fad.fa-mug-tea:after{content:"\f875\f875"}.fa-duotone.fa-border-top:after,.fad.fa-border-top:after{content:"\f855\f855"}.fa-duotone.fa-arrows-rotate:after,.fa-duotone.fa-refresh:after,.fa-duotone.fa-sync:after,.fad.fa-arrows-rotate:after,.fad.fa-refresh:after,.fad.fa-sync:after{content:"\f021\f021"}.fa-duotone.fa-book-circle:after,.fa-duotone.fa-circle-book-open:after,.fad.fa-book-circle:after,.fad.fa-circle-book-open:after{content:"\e0ff\e0ff"}.fa-duotone.fa-arrows-to-dotted-line:after,.fad.fa-arrows-to-dotted-line:after{content:"\e0a6\e0a6"}.fa-duotone.fa-fire-extinguisher:after,.fad.fa-fire-extinguisher:after{content:"\f134\f134"}.fa-duotone.fa-magnifying-glass-arrows-rotate:after,.fad.fa-magnifying-glass-arrows-rotate:after{content:"\e65e\e65e"}.fa-duotone.fa-garage-open:after,.fad.fa-garage-open:after{content:"\e00b\e00b"}.fa-duotone.fa-shelves-empty:after,.fad.fa-shelves-empty:after{content:"\e246\e246"}.fa-duotone.fa-cruzeiro-sign:after,.fad.fa-cruzeiro-sign:after{content:"\e152\e152"}.fa-duotone.fa-watch-apple:after,.fad.fa-watch-apple:after{content:"\e2cb\e2cb"}.fa-duotone.fa-watch-calculator:after,.fad.fa-watch-calculator:after{content:"\f8f0\f8f0"}.fa-duotone.fa-list-dropdown:after,.fad.fa-list-dropdown:after{content:"\e1cf\e1cf"}.fa-duotone.fa-cabinet-filing:after,.fad.fa-cabinet-filing:after{content:"\f64b\f64b"}.fa-duotone.fa-burger-soda:after,.fad.fa-burger-soda:after{content:"\f858\f858"}.fa-duotone.fa-arrow-square-up:after,.fa-duotone.fa-square-arrow-up:after,.fad.fa-arrow-square-up:after,.fad.fa-square-arrow-up:after{content:"\f33c\f33c"}.fa-duotone.fa-greater-than-equal:after,.fad.fa-greater-than-equal:after{content:"\f532\f532"}.fa-duotone.fa-pallet-box:after,.fad.fa-pallet-box:after{content:"\e208\e208"}.fa-duotone.fa-face-confounded:after,.fad.fa-face-confounded:after{content:"\e36c\e36c"}.fa-duotone.fa-shield-alt:after,.fa-duotone.fa-shield-halved:after,.fad.fa-shield-alt:after,.fad.fa-shield-halved:after{content:"\f3ed\f3ed"}.fa-duotone.fa-truck-plow:after,.fad.fa-truck-plow:after{content:"\f7de\f7de"}.fa-duotone.fa-atlas:after,.fa-duotone.fa-book-atlas:after,.fad.fa-atlas:after,.fad.fa-book-atlas:after{content:"\f558\f558"}.fa-duotone.fa-virus:after,.fad.fa-virus:after{content:"\e074\e074"}.fa-duotone.fa-grid-round-2:after,.fad.fa-grid-round-2:after{content:"\e5db\e5db"}.fa-duotone.fa-comment-middle-top:after,.fad.fa-comment-middle-top:after{content:"\e14a\e14a"}.fa-duotone.fa-wave:after,.fad.fa-wave:after{content:"\e65b\e65b"}.fa-duotone.fa-envelope-circle-check:after,.fad.fa-envelope-circle-check:after{content:"\e4e8\e4e8"}.fa-duotone.fa-layer-group:after,.fad.fa-layer-group:after{content:"\f5fd\f5fd"}.fa-duotone.fa-restroom-simple:after,.fad.fa-restroom-simple:after{content:"\e23a\e23a"}.fa-duotone.fa-arrows-to-dot:after,.fad.fa-arrows-to-dot:after{content:"\e4be\e4be"}.fa-duotone.fa-border-outer:after,.fad.fa-border-outer:after{content:"\f851\f851"}.fa-duotone.fa-hashtag-lock:after,.fad.fa-hashtag-lock:after{content:"\e415\e415"}.fa-duotone.fa-clock-two-thirty:after,.fad.fa-clock-two-thirty:after{content:"\e35b\e35b"}.fa-duotone.fa-archway:after,.fad.fa-archway:after{content:"\f557\f557"}.fa-duotone.fa-heart-circle-check:after,.fad.fa-heart-circle-check:after{content:"\e4fd\e4fd"}.fa-duotone.fa-house-chimney-crack:after,.fa-duotone.fa-house-damage:after,.fad.fa-house-chimney-crack:after,.fad.fa-house-damage:after{content:"\f6f1\f6f1"}.fa-duotone.fa-file-archive:after,.fa-duotone.fa-file-zipper:after,.fad.fa-file-archive:after,.fad.fa-file-zipper:after{content:"\f1c6\f1c6"}.fa-duotone.fa-ticket-perforated:after,.fad.fa-ticket-perforated:after{content:"\e63e\e63e"}.fa-duotone.fa-heart-half:after,.fad.fa-heart-half:after{content:"\e1ab\e1ab"}.fa-duotone.fa-comment-check:after,.fad.fa-comment-check:after{content:"\f4ac\f4ac"}.fa-duotone.fa-square:after,.fad.fa-square:after{content:"\f0c8\f0c8"}.fa-duotone.fa-memo:after,.fad.fa-memo:after{content:"\e1d8\e1d8"}.fa-duotone.fa-glass-martini:after,.fa-duotone.fa-martini-glass-empty:after,.fad.fa-glass-martini:after,.fad.fa-martini-glass-empty:after{content:"\f000\f000"}.fa-duotone.fa-couch:after,.fad.fa-couch:after{content:"\f4b8\f4b8"}.fa-duotone.fa-cedi-sign:after,.fad.fa-cedi-sign:after{content:"\e0df\e0df"}.fa-duotone.fa-italic:after,.fad.fa-italic:after{content:"\f033\f033"}.fa-duotone.fa-glass-citrus:after,.fad.fa-glass-citrus:after{content:"\f869\f869"}.fa-duotone.fa-calendar-lines-pen:after,.fad.fa-calendar-lines-pen:after{content:"\e472\e472"}.fa-duotone.fa-church:after,.fad.fa-church:after{content:"\f51d\f51d"}.fa-duotone.fa-person-snowmobiling:after,.fa-duotone.fa-snowmobile:after,.fad.fa-person-snowmobiling:after,.fad.fa-snowmobile:after{content:"\f7d1\f7d1"}.fa-duotone.fa-face-hushed:after,.fad.fa-face-hushed:after{content:"\e37b\e37b"}.fa-duotone.fa-comments-dollar:after,.fad.fa-comments-dollar:after{content:"\f653\f653"}.fa-duotone.fa-tickets-simple:after,.fad.fa-tickets-simple:after{content:"\e659\e659"}.fa-duotone.fa-pickaxe:after,.fad.fa-pickaxe:after{content:"\e5bf\e5bf"}.fa-duotone.fa-link-simple-slash:after,.fad.fa-link-simple-slash:after{content:"\e1ce\e1ce"}.fa-duotone.fa-democrat:after,.fad.fa-democrat:after{content:"\f747\f747"}.fa-duotone.fa-face-confused:after,.fad.fa-face-confused:after{content:"\e36d\e36d"}.fa-duotone.fa-pinball:after,.fad.fa-pinball:after{content:"\e229\e229"}.fa-duotone.fa-z:after,.fad.fa-z:after{content:"\5a\5a"}.fa-duotone.fa-person-skiing:after,.fa-duotone.fa-skiing:after,.fad.fa-person-skiing:after,.fad.fa-skiing:after{content:"\f7c9\f7c9"}.fa-duotone.fa-deer:after,.fad.fa-deer:after{content:"\f78e\f78e"}.fa-duotone.fa-input-pipe:after,.fad.fa-input-pipe:after{content:"\e1be\e1be"}.fa-duotone.fa-road-lock:after,.fad.fa-road-lock:after{content:"\e567\e567"}.fa-duotone.fa-a:after,.fad.fa-a:after{content:"\41\41"}.fa-duotone.fa-bookmark-slash:after,.fad.fa-bookmark-slash:after{content:"\e0c2\e0c2"}.fa-duotone.fa-temperature-arrow-down:after,.fa-duotone.fa-temperature-down:after,.fad.fa-temperature-arrow-down:after,.fad.fa-temperature-down:after{content:"\e03f\e03f"}.fa-duotone.fa-mace:after,.fad.fa-mace:after{content:"\f6f8\f6f8"}.fa-duotone.fa-feather-alt:after,.fa-duotone.fa-feather-pointed:after,.fad.fa-feather-alt:after,.fad.fa-feather-pointed:after{content:"\f56b\f56b"}.fa-duotone.fa-sausage:after,.fad.fa-sausage:after{content:"\f820\f820"}.fa-duotone.fa-trash-can-clock:after,.fad.fa-trash-can-clock:after{content:"\e2aa\e2aa"}.fa-duotone.fa-p:after,.fad.fa-p:after{content:"\50\50"}.fa-duotone.fa-broom-wide:after,.fad.fa-broom-wide:after{content:"\e5d1\e5d1"}.fa-duotone.fa-snowflake:after,.fad.fa-snowflake:after{content:"\f2dc\f2dc"}.fa-duotone.fa-stomach:after,.fad.fa-stomach:after{content:"\f623\f623"}.fa-duotone.fa-newspaper:after,.fad.fa-newspaper:after{content:"\f1ea\f1ea"}.fa-duotone.fa-ad:after,.fa-duotone.fa-rectangle-ad:after,.fad.fa-ad:after,.fad.fa-rectangle-ad:after{content:"\f641\f641"}.fa-duotone.fa-guitar-electric:after,.fad.fa-guitar-electric:after{content:"\f8be\f8be"}.fa-duotone.fa-arrow-turn-down-right:after,.fad.fa-arrow-turn-down-right:after{content:"\e3d6\e3d6"}.fa-duotone.fa-moon-cloud:after,.fad.fa-moon-cloud:after{content:"\f754\f754"}.fa-duotone.fa-bread-slice-butter:after,.fad.fa-bread-slice-butter:after{content:"\e3e1\e3e1"}.fa-duotone.fa-arrow-circle-right:after,.fa-duotone.fa-circle-arrow-right:after,.fad.fa-arrow-circle-right:after,.fad.fa-circle-arrow-right:after{content:"\f0a9\f0a9"}.fa-duotone.fa-user-group-crown:after,.fa-duotone.fa-users-crown:after,.fad.fa-user-group-crown:after,.fad.fa-users-crown:after{content:"\f6a5\f6a5"}.fa-duotone.fa-circle-i:after,.fad.fa-circle-i:after{content:"\e111\e111"}.fa-duotone.fa-toilet-paper-check:after,.fad.fa-toilet-paper-check:after{content:"\e5b2\e5b2"}.fa-duotone.fa-filter-circle-xmark:after,.fad.fa-filter-circle-xmark:after{content:"\e17b\e17b"}.fa-duotone.fa-locust:after,.fad.fa-locust:after{content:"\e520\e520"}.fa-duotone.fa-sort:after,.fa-duotone.fa-unsorted:after,.fad.fa-sort:after,.fad.fa-unsorted:after{content:"\f0dc\f0dc"}.fa-duotone.fa-list-1-2:after,.fa-duotone.fa-list-numeric:after,.fa-duotone.fa-list-ol:after,.fad.fa-list-1-2:after,.fad.fa-list-numeric:after,.fad.fa-list-ol:after{content:"\f0cb\f0cb"}.fa-duotone.fa-chart-waterfall:after,.fad.fa-chart-waterfall:after{content:"\e0eb\e0eb"}.fa-duotone.fa-sparkle:after,.fad.fa-sparkle:after{content:"\e5d6\e5d6"}.fa-duotone.fa-face-party:after,.fad.fa-face-party:after{content:"\e383\e383"}.fa-duotone.fa-kidneys:after,.fad.fa-kidneys:after{content:"\f5fb\f5fb"}.fa-duotone.fa-wifi-exclamation:after,.fad.fa-wifi-exclamation:after{content:"\e2cf\e2cf"}.fa-duotone.fa-chart-network:after,.fad.fa-chart-network:after{content:"\f78a\f78a"}.fa-duotone.fa-person-dress-burst:after,.fad.fa-person-dress-burst:after{content:"\e544\e544"}.fa-duotone.fa-dice-d4:after,.fad.fa-dice-d4:after{content:"\f6d0\f6d0"}.fa-duotone.fa-money-check-alt:after,.fa-duotone.fa-money-check-dollar:after,.fad.fa-money-check-alt:after,.fad.fa-money-check-dollar:after{content:"\f53d\f53d"}.fa-duotone.fa-vector-square:after,.fad.fa-vector-square:after{content:"\f5cb\f5cb"}.fa-duotone.fa-bread-slice:after,.fad.fa-bread-slice:after{content:"\f7ec\f7ec"}.fa-duotone.fa-language:after,.fad.fa-language:after{content:"\f1ab\f1ab"}.fa-duotone.fa-wheat-awn-slash:after,.fad.fa-wheat-awn-slash:after{content:"\e338\e338"}.fa-duotone.fa-face-kiss-wink-heart:after,.fa-duotone.fa-kiss-wink-heart:after,.fad.fa-face-kiss-wink-heart:after,.fad.fa-kiss-wink-heart:after{content:"\f598\f598"}.fa-duotone.fa-dagger:after,.fad.fa-dagger:after{content:"\f6cb\f6cb"}.fa-duotone.fa-podium:after,.fad.fa-podium:after{content:"\f680\f680"}.fa-duotone.fa-memo-circle-check:after,.fad.fa-memo-circle-check:after{content:"\e1d9\e1d9"}.fa-duotone.fa-route-highway:after,.fad.fa-route-highway:after{content:"\f61a\f61a"}.fa-duotone.fa-arrow-alt-to-bottom:after,.fa-duotone.fa-down-to-line:after,.fad.fa-arrow-alt-to-bottom:after,.fad.fa-down-to-line:after{content:"\f34a\f34a"}.fa-duotone.fa-filter:after,.fad.fa-filter:after{content:"\f0b0\f0b0"}.fa-duotone.fa-square-g:after,.fad.fa-square-g:after{content:"\e271\e271"}.fa-duotone.fa-circle-phone:after,.fa-duotone.fa-phone-circle:after,.fad.fa-circle-phone:after,.fad.fa-phone-circle:after{content:"\e11b\e11b"}.fa-duotone.fa-clipboard-prescription:after,.fad.fa-clipboard-prescription:after{content:"\f5e8\f5e8"}.fa-duotone.fa-user-nurse-hair:after,.fad.fa-user-nurse-hair:after{content:"\e45d\e45d"}.fa-duotone.fa-question:after,.fad.fa-question:after{content:"\3f\3f"}.fa-duotone.fa-file-signature:after,.fad.fa-file-signature:after{content:"\f573\f573"}.fa-duotone.fa-toggle-large-on:after,.fad.fa-toggle-large-on:after{content:"\e5b1\e5b1"}.fa-duotone.fa-arrows-alt:after,.fa-duotone.fa-up-down-left-right:after,.fad.fa-arrows-alt:after,.fad.fa-up-down-left-right:after{content:"\f0b2\f0b2"}.fa-duotone.fa-dryer-alt:after,.fa-duotone.fa-dryer-heat:after,.fad.fa-dryer-alt:after,.fad.fa-dryer-heat:after{content:"\f862\f862"}.fa-duotone.fa-house-chimney-user:after,.fad.fa-house-chimney-user:after{content:"\e065\e065"}.fa-duotone.fa-hand-holding-heart:after,.fad.fa-hand-holding-heart:after{content:"\f4be\f4be"}.fa-duotone.fa-arrow-up-small-big:after,.fa-duotone.fa-sort-size-up-alt:after,.fad.fa-arrow-up-small-big:after,.fad.fa-sort-size-up-alt:after{content:"\f88f\f88f"}.fa-duotone.fa-train-track:after,.fad.fa-train-track:after{content:"\e453\e453"}.fa-duotone.fa-puzzle-piece:after,.fad.fa-puzzle-piece:after{content:"\f12e\f12e"}.fa-duotone.fa-money-check:after,.fad.fa-money-check:after{content:"\f53c\f53c"}.fa-duotone.fa-star-half-alt:after,.fa-duotone.fa-star-half-stroke:after,.fad.fa-star-half-alt:after,.fad.fa-star-half-stroke:after{content:"\f5c0\f5c0"}.fa-duotone.fa-file-exclamation:after,.fad.fa-file-exclamation:after{content:"\f31a\f31a"}.fa-duotone.fa-code:after,.fad.fa-code:after{content:"\f121\f121"}.fa-duotone.fa-glass-whiskey:after,.fa-duotone.fa-whiskey-glass:after,.fad.fa-glass-whiskey:after,.fad.fa-whiskey-glass:after{content:"\f7a0\f7a0"}.fa-duotone.fa-moon-stars:after,.fad.fa-moon-stars:after{content:"\f755\f755"}.fa-duotone.fa-building-circle-exclamation:after,.fad.fa-building-circle-exclamation:after{content:"\e4d3\e4d3"}.fa-duotone.fa-clothes-hanger:after,.fad.fa-clothes-hanger:after{content:"\e136\e136"}.fa-duotone.fa-mobile-iphone:after,.fa-duotone.fa-mobile-notch:after,.fad.fa-mobile-iphone:after,.fad.fa-mobile-notch:after{content:"\e1ee\e1ee"}.fa-duotone.fa-magnifying-glass-chart:after,.fad.fa-magnifying-glass-chart:after{content:"\e522\e522"}.fa-duotone.fa-arrow-up-right-from-square:after,.fa-duotone.fa-external-link:after,.fad.fa-arrow-up-right-from-square:after,.fad.fa-external-link:after{content:"\f08e\f08e"}.fa-duotone.fa-cubes-stacked:after,.fad.fa-cubes-stacked:after{content:"\e4e6\e4e6"}.fa-duotone.fa-images-user:after,.fad.fa-images-user:after{content:"\e1b9\e1b9"}.fa-duotone.fa-krw:after,.fa-duotone.fa-won-sign:after,.fa-duotone.fa-won:after,.fad.fa-krw:after,.fad.fa-won-sign:after,.fad.fa-won:after{content:"\f159\f159"}.fa-duotone.fa-image-polaroid-user:after,.fad.fa-image-polaroid-user:after{content:"\e1b6\e1b6"}.fa-duotone.fa-virus-covid:after,.fad.fa-virus-covid:after{content:"\e4a8\e4a8"}.fa-duotone.fa-square-ellipsis:after,.fad.fa-square-ellipsis:after{content:"\e26e\e26e"}.fa-duotone.fa-pie:after,.fad.fa-pie:after{content:"\f705\f705"}.fa-duotone.fa-chess-knight-alt:after,.fa-duotone.fa-chess-knight-piece:after,.fad.fa-chess-knight-alt:after,.fad.fa-chess-knight-piece:after{content:"\f442\f442"}.fa-duotone.fa-austral-sign:after,.fad.fa-austral-sign:after{content:"\e0a9\e0a9"}.fa-duotone.fa-cloud-plus:after,.fad.fa-cloud-plus:after{content:"\e35e\e35e"}.fa-duotone.fa-f:after,.fad.fa-f:after{content:"\46\46"}.fa-duotone.fa-leaf:after,.fad.fa-leaf:after{content:"\f06c\f06c"}.fa-duotone.fa-bed-bunk:after,.fad.fa-bed-bunk:after{content:"\f8f8\f8f8"}.fa-duotone.fa-road:after,.fad.fa-road:after{content:"\f018\f018"}.fa-duotone.fa-cab:after,.fa-duotone.fa-taxi:after,.fad.fa-cab:after,.fad.fa-taxi:after{content:"\f1ba\f1ba"}.fa-duotone.fa-person-circle-plus:after,.fad.fa-person-circle-plus:after{content:"\e541\e541"}.fa-duotone.fa-chart-pie:after,.fa-duotone.fa-pie-chart:after,.fad.fa-chart-pie:after,.fad.fa-pie-chart:after{content:"\f200\f200"}.fa-duotone.fa-bolt-lightning:after,.fad.fa-bolt-lightning:after{content:"\e0b7\e0b7"}.fa-duotone.fa-clock-eight:after,.fad.fa-clock-eight:after{content:"\e345\e345"}.fa-duotone.fa-sack-xmark:after,.fad.fa-sack-xmark:after{content:"\e56a\e56a"}.fa-duotone.fa-file-xls:after,.fad.fa-file-xls:after{content:"\e64d\e64d"}.fa-duotone.fa-file-excel:after,.fad.fa-file-excel:after{content:"\f1c3\f1c3"}.fa-duotone.fa-file-contract:after,.fad.fa-file-contract:after{content:"\f56c\f56c"}.fa-duotone.fa-fish-fins:after,.fad.fa-fish-fins:after{content:"\e4f2\e4f2"}.fa-duotone.fa-circle-q:after,.fad.fa-circle-q:after{content:"\e11e\e11e"}.fa-duotone.fa-building-flag:after,.fad.fa-building-flag:after{content:"\e4d5\e4d5"}.fa-duotone.fa-face-grin-beam:after,.fa-duotone.fa-grin-beam:after,.fad.fa-face-grin-beam:after,.fad.fa-grin-beam:after{content:"\f582\f582"}.fa-duotone.fa-object-ungroup:after,.fad.fa-object-ungroup:after{content:"\f248\f248"}.fa-duotone.fa-face-disguise:after,.fad.fa-face-disguise:after{content:"\e370\e370"}.fa-duotone.fa-circle-arrow-down-right:after,.fad.fa-circle-arrow-down-right:after{content:"\e0fa\e0fa"}.fa-duotone.fa-alien-8bit:after,.fa-duotone.fa-alien-monster:after,.fad.fa-alien-8bit:after,.fad.fa-alien-monster:after{content:"\f8f6\f8f6"}.fa-duotone.fa-hand-point-ribbon:after,.fad.fa-hand-point-ribbon:after{content:"\e1a6\e1a6"}.fa-duotone.fa-poop:after,.fad.fa-poop:after{content:"\f619\f619"}.fa-duotone.fa-object-exclude:after,.fad.fa-object-exclude:after{content:"\e49c\e49c"}.fa-duotone.fa-telescope:after,.fad.fa-telescope:after{content:"\e03e\e03e"}.fa-duotone.fa-location-pin:after,.fa-duotone.fa-map-marker:after,.fad.fa-location-pin:after,.fad.fa-map-marker:after{content:"\f041\f041"}.fa-duotone.fa-square-list:after,.fad.fa-square-list:after{content:"\e489\e489"}.fa-duotone.fa-kaaba:after,.fad.fa-kaaba:after{content:"\f66b\f66b"}.fa-duotone.fa-toilet-paper:after,.fad.fa-toilet-paper:after{content:"\f71e\f71e"}.fa-duotone.fa-hard-hat:after,.fa-duotone.fa-hat-hard:after,.fa-duotone.fa-helmet-safety:after,.fad.fa-hard-hat:after,.fad.fa-hat-hard:after,.fad.fa-helmet-safety:after{content:"\f807\f807"}.fa-duotone.fa-comment-code:after,.fad.fa-comment-code:after{content:"\e147\e147"}.fa-duotone.fa-sim-cards:after,.fad.fa-sim-cards:after{content:"\e251\e251"}.fa-duotone.fa-starship:after,.fad.fa-starship:after{content:"\e039\e039"}.fa-duotone.fa-eject:after,.fad.fa-eject:after{content:"\f052\f052"}.fa-duotone.fa-arrow-alt-circle-right:after,.fa-duotone.fa-circle-right:after,.fad.fa-arrow-alt-circle-right:after,.fad.fa-circle-right:after{content:"\f35a\f35a"}.fa-duotone.fa-plane-circle-check:after,.fad.fa-plane-circle-check:after{content:"\e555\e555"}.fa-duotone.fa-seal:after,.fad.fa-seal:after{content:"\e241\e241"}.fa-duotone.fa-user-cowboy:after,.fad.fa-user-cowboy:after{content:"\f8ea\f8ea"}.fa-duotone.fa-hexagon-vertical-nft:after,.fad.fa-hexagon-vertical-nft:after{content:"\e505\e505"}.fa-duotone.fa-face-rolling-eyes:after,.fa-duotone.fa-meh-rolling-eyes:after,.fad.fa-face-rolling-eyes:after,.fad.fa-meh-rolling-eyes:after{content:"\f5a5\f5a5"}.fa-duotone.fa-bread-loaf:after,.fad.fa-bread-loaf:after{content:"\f7eb\f7eb"}.fa-duotone.fa-rings-wedding:after,.fad.fa-rings-wedding:after{content:"\f81b\f81b"}.fa-duotone.fa-object-group:after,.fad.fa-object-group:after{content:"\f247\f247"}.fa-duotone.fa-french-fries:after,.fad.fa-french-fries:after{content:"\f803\f803"}.fa-duotone.fa-chart-line:after,.fa-duotone.fa-line-chart:after,.fad.fa-chart-line:after,.fad.fa-line-chart:after{content:"\f201\f201"}.fa-duotone.fa-calendar-arrow-down:after,.fa-duotone.fa-calendar-download:after,.fad.fa-calendar-arrow-down:after,.fad.fa-calendar-download:after{content:"\e0d0\e0d0"}.fa-duotone.fa-send-back:after,.fad.fa-send-back:after{content:"\f87e\f87e"}.fa-duotone.fa-mask-ventilator:after,.fad.fa-mask-ventilator:after{content:"\e524\e524"}.fa-duotone.fa-tickets:after,.fad.fa-tickets:after{content:"\e658\e658"}.fa-duotone.fa-signature-lock:after,.fad.fa-signature-lock:after{content:"\e3ca\e3ca"}.fa-duotone.fa-arrow-right:after,.fad.fa-arrow-right:after{content:"\f061\f061"}.fa-duotone.fa-map-signs:after,.fa-duotone.fa-signs-post:after,.fad.fa-map-signs:after,.fad.fa-signs-post:after{content:"\f277\f277"}.fa-duotone.fa-octagon-plus:after,.fa-duotone.fa-plus-octagon:after,.fad.fa-octagon-plus:after,.fad.fa-plus-octagon:after{content:"\f301\f301"}.fa-duotone.fa-cash-register:after,.fad.fa-cash-register:after{content:"\f788\f788"}.fa-duotone.fa-person-circle-question:after,.fad.fa-person-circle-question:after{content:"\e542\e542"}.fa-duotone.fa-melon-slice:after,.fad.fa-melon-slice:after{content:"\e311\e311"}.fa-duotone.fa-space-station-moon:after,.fad.fa-space-station-moon:after{content:"\e033\e033"}.fa-duotone.fa-comment-alt-smile:after,.fa-duotone.fa-message-smile:after,.fad.fa-comment-alt-smile:after,.fad.fa-message-smile:after{content:"\f4aa\f4aa"}.fa-duotone.fa-cup-straw:after,.fad.fa-cup-straw:after{content:"\e363\e363"}.fa-duotone.fa-arrow-alt-from-right:after,.fa-duotone.fa-left-from-line:after,.fad.fa-arrow-alt-from-right:after,.fad.fa-left-from-line:after{content:"\f348\f348"}.fa-duotone.fa-h:after,.fad.fa-h:after{content:"\48\48"}.fa-duotone.fa-basket-shopping-simple:after,.fa-duotone.fa-shopping-basket-alt:after,.fad.fa-basket-shopping-simple:after,.fad.fa-shopping-basket-alt:after{content:"\e0af\e0af"}.fa-duotone.fa-hands-heart:after,.fa-duotone.fa-hands-holding-heart:after,.fad.fa-hands-heart:after,.fad.fa-hands-holding-heart:after{content:"\f4c3\f4c3"}.fa-duotone.fa-clock-nine:after,.fad.fa-clock-nine:after{content:"\e34c\e34c"}.fa-duotone.fa-hammer-brush:after,.fad.fa-hammer-brush:after{content:"\e620\e620"}.fa-duotone.fa-tarp:after,.fad.fa-tarp:after{content:"\e57b\e57b"}.fa-duotone.fa-face-sleepy:after,.fad.fa-face-sleepy:after{content:"\e38e\e38e"}.fa-duotone.fa-hand-horns:after,.fad.fa-hand-horns:after{content:"\e1a9\e1a9"}.fa-duotone.fa-screwdriver-wrench:after,.fa-duotone.fa-tools:after,.fad.fa-screwdriver-wrench:after,.fad.fa-tools:after{content:"\f7d9\f7d9"}.fa-duotone.fa-arrows-to-eye:after,.fad.fa-arrows-to-eye:after{content:"\e4bf\e4bf"}.fa-duotone.fa-circle-three-quarters:after,.fad.fa-circle-three-quarters:after{content:"\e125\e125"}.fa-duotone.fa-trophy-alt:after,.fa-duotone.fa-trophy-star:after,.fad.fa-trophy-alt:after,.fad.fa-trophy-star:after{content:"\f2eb\f2eb"}.fa-duotone.fa-plug-circle-bolt:after,.fad.fa-plug-circle-bolt:after{content:"\e55b\e55b"}.fa-duotone.fa-face-thermometer:after,.fad.fa-face-thermometer:after{content:"\e39a\e39a"}.fa-duotone.fa-grid-round-4:after,.fad.fa-grid-round-4:after{content:"\e5dd\e5dd"}.fa-duotone.fa-sign-posts-wrench:after,.fad.fa-sign-posts-wrench:after{content:"\e626\e626"}.fa-duotone.fa-shirt-running:after,.fad.fa-shirt-running:after{content:"\e3c8\e3c8"}.fa-duotone.fa-book-circle-arrow-up:after,.fad.fa-book-circle-arrow-up:after{content:"\e0bd\e0bd"}.fa-duotone.fa-face-nauseated:after,.fad.fa-face-nauseated:after{content:"\e381\e381"}.fa-duotone.fa-heart:after,.fad.fa-heart:after{content:"\f004\f004"}.fa-duotone.fa-file-chart-pie:after,.fad.fa-file-chart-pie:after{content:"\f65a\f65a"}.fa-duotone.fa-mars-and-venus:after,.fad.fa-mars-and-venus:after{content:"\f224\f224"}.fa-duotone.fa-home-user:after,.fa-duotone.fa-house-user:after,.fad.fa-home-user:after,.fad.fa-house-user:after{content:"\e1b0\e1b0"}.fa-duotone.fa-circle-arrow-down-left:after,.fad.fa-circle-arrow-down-left:after{content:"\e0f9\e0f9"}.fa-duotone.fa-dumpster-fire:after,.fad.fa-dumpster-fire:after{content:"\f794\f794"}.fa-duotone.fa-hexagon-minus:after,.fa-duotone.fa-minus-hexagon:after,.fad.fa-hexagon-minus:after,.fad.fa-minus-hexagon:after{content:"\f307\f307"}.fa-duotone.fa-arrow-alt-to-left:after,.fa-duotone.fa-left-to-line:after,.fad.fa-arrow-alt-to-left:after,.fad.fa-left-to-line:after{content:"\f34b\f34b"}.fa-duotone.fa-house-crack:after,.fad.fa-house-crack:after{content:"\e3b1\e3b1"}.fa-duotone.fa-paw-alt:after,.fa-duotone.fa-paw-simple:after,.fad.fa-paw-alt:after,.fad.fa-paw-simple:after{content:"\f701\f701"}.fa-duotone.fa-arrow-left-long-to-line:after,.fad.fa-arrow-left-long-to-line:after{content:"\e3d4\e3d4"}.fa-duotone.fa-brackets-round:after,.fa-duotone.fa-parentheses:after,.fad.fa-brackets-round:after,.fad.fa-parentheses:after{content:"\e0c5\e0c5"}.fa-duotone.fa-cocktail:after,.fa-duotone.fa-martini-glass-citrus:after,.fad.fa-cocktail:after,.fad.fa-martini-glass-citrus:after{content:"\f561\f561"}.fa-duotone.fa-user-shakespeare:after,.fad.fa-user-shakespeare:after{content:"\e2c2\e2c2"}.fa-duotone.fa-arrow-right-to-arc:after,.fad.fa-arrow-right-to-arc:after{content:"\e4b2\e4b2"}.fa-duotone.fa-face-surprise:after,.fa-duotone.fa-surprise:after,.fad.fa-face-surprise:after,.fad.fa-surprise:after{content:"\f5c2\f5c2"}.fa-duotone.fa-bottle-water:after,.fad.fa-bottle-water:after{content:"\e4c5\e4c5"}.fa-duotone.fa-circle-pause:after,.fa-duotone.fa-pause-circle:after,.fad.fa-circle-pause:after,.fad.fa-pause-circle:after{content:"\f28b\f28b"}.fa-duotone.fa-gauge-circle-plus:after,.fad.fa-gauge-circle-plus:after{content:"\e498\e498"}.fa-duotone.fa-folders:after,.fad.fa-folders:after{content:"\f660\f660"}.fa-duotone.fa-angel:after,.fad.fa-angel:after{content:"\f779\f779"}.fa-duotone.fa-value-absolute:after,.fad.fa-value-absolute:after{content:"\f6a6\f6a6"}.fa-duotone.fa-rabbit:after,.fad.fa-rabbit:after{content:"\f708\f708"}.fa-duotone.fa-toilet-paper-slash:after,.fad.fa-toilet-paper-slash:after{content:"\e072\e072"}.fa-duotone.fa-circle-euro:after,.fad.fa-circle-euro:after{content:"\e5ce\e5ce"}.fa-duotone.fa-apple-alt:after,.fa-duotone.fa-apple-whole:after,.fad.fa-apple-alt:after,.fad.fa-apple-whole:after{content:"\f5d1\f5d1"}.fa-duotone.fa-kitchen-set:after,.fad.fa-kitchen-set:after{content:"\e51a\e51a"}.fa-duotone.fa-diamond-half:after,.fad.fa-diamond-half:after{content:"\e5b7\e5b7"}.fa-duotone.fa-lock-alt:after,.fa-duotone.fa-lock-keyhole:after,.fad.fa-lock-alt:after,.fad.fa-lock-keyhole:after{content:"\f30d\f30d"}.fa-duotone.fa-r:after,.fad.fa-r:after{content:"\52\52"}.fa-duotone.fa-temperature-1:after,.fa-duotone.fa-temperature-quarter:after,.fa-duotone.fa-thermometer-1:after,.fa-duotone.fa-thermometer-quarter:after,.fad.fa-temperature-1:after,.fad.fa-temperature-quarter:after,.fad.fa-thermometer-1:after,.fad.fa-thermometer-quarter:after{content:"\f2ca\f2ca"}.fa-duotone.fa-info-square:after,.fa-duotone.fa-square-info:after,.fad.fa-info-square:after,.fad.fa-square-info:after{content:"\f30f\f30f"}.fa-duotone.fa-wifi-slash:after,.fad.fa-wifi-slash:after{content:"\f6ac\f6ac"}.fa-duotone.fa-toilet-paper-xmark:after,.fad.fa-toilet-paper-xmark:after{content:"\e5b3\e5b3"}.fa-duotone.fa-hands-holding-dollar:after,.fa-duotone.fa-hands-usd:after,.fad.fa-hands-holding-dollar:after,.fad.fa-hands-usd:after{content:"\f4c5\f4c5"}.fa-duotone.fa-cube:after,.fad.fa-cube:after{content:"\f1b2\f1b2"}.fa-duotone.fa-arrow-down-triangle-square:after,.fa-duotone.fa-sort-shapes-down:after,.fad.fa-arrow-down-triangle-square:after,.fad.fa-sort-shapes-down:after{content:"\f888\f888"}.fa-duotone.fa-bitcoin-sign:after,.fad.fa-bitcoin-sign:after{content:"\e0b4\e0b4"}.fa-duotone.fa-shutters:after,.fad.fa-shutters:after{content:"\e449\e449"}.fa-duotone.fa-shield-dog:after,.fad.fa-shield-dog:after{content:"\e573\e573"}.fa-duotone.fa-solar-panel:after,.fad.fa-solar-panel:after{content:"\f5ba\f5ba"}.fa-duotone.fa-lock-open:after,.fad.fa-lock-open:after{content:"\f3c1\f3c1"}.fa-duotone.fa-table-tree:after,.fad.fa-table-tree:after{content:"\e293\e293"}.fa-duotone.fa-house-chimney-heart:after,.fad.fa-house-chimney-heart:after{content:"\e1b2\e1b2"}.fa-duotone.fa-tally-3:after,.fad.fa-tally-3:after{content:"\e296\e296"}.fa-duotone.fa-elevator:after,.fad.fa-elevator:after{content:"\e16d\e16d"}.fa-duotone.fa-money-bill-transfer:after,.fad.fa-money-bill-transfer:after{content:"\e528\e528"}.fa-duotone.fa-money-bill-trend-up:after,.fad.fa-money-bill-trend-up:after{content:"\e529\e529"}.fa-duotone.fa-house-flood-water-circle-arrow-right:after,.fad.fa-house-flood-water-circle-arrow-right:after{content:"\e50f\e50f"}.fa-duotone.fa-poll-h:after,.fa-duotone.fa-square-poll-horizontal:after,.fad.fa-poll-h:after,.fad.fa-square-poll-horizontal:after{content:"\f682\f682"}.fa-duotone.fa-circle:after,.fad.fa-circle:after{content:"\f111\f111"}.fa-duotone.fa-cart-circle-exclamation:after,.fad.fa-cart-circle-exclamation:after{content:"\e3f2\e3f2"}.fa-duotone.fa-sword:after,.fad.fa-sword:after{content:"\f71c\f71c"}.fa-duotone.fa-backward-fast:after,.fa-duotone.fa-fast-backward:after,.fad.fa-backward-fast:after,.fad.fa-fast-backward:after{content:"\f049\f049"}.fa-duotone.fa-recycle:after,.fad.fa-recycle:after{content:"\f1b8\f1b8"}.fa-duotone.fa-user-astronaut:after,.fad.fa-user-astronaut:after{content:"\f4fb\f4fb"}.fa-duotone.fa-interrobang:after,.fad.fa-interrobang:after{content:"\e5ba\e5ba"}.fa-duotone.fa-plane-slash:after,.fad.fa-plane-slash:after{content:"\e069\e069"}.fa-duotone.fa-circle-dashed:after,.fad.fa-circle-dashed:after{content:"\e105\e105"}.fa-duotone.fa-trademark:after,.fad.fa-trademark:after{content:"\f25c\f25c"}.fa-duotone.fa-basketball-ball:after,.fa-duotone.fa-basketball:after,.fad.fa-basketball-ball:after,.fad.fa-basketball:after{content:"\f434\f434"}.fa-duotone.fa-fork-knife:after,.fa-duotone.fa-utensils-alt:after,.fad.fa-fork-knife:after,.fad.fa-utensils-alt:after{content:"\f2e6\f2e6"}.fa-duotone.fa-satellite-dish:after,.fad.fa-satellite-dish:after{content:"\f7c0\f7c0"}.fa-duotone.fa-badge-check:after,.fad.fa-badge-check:after{content:"\f336\f336"}.fa-duotone.fa-arrow-alt-circle-up:after,.fa-duotone.fa-circle-up:after,.fad.fa-arrow-alt-circle-up:after,.fad.fa-circle-up:after{content:"\f35b\f35b"}.fa-duotone.fa-slider:after,.fad.fa-slider:after{content:"\e252\e252"}.fa-duotone.fa-mobile-alt:after,.fa-duotone.fa-mobile-screen-button:after,.fad.fa-mobile-alt:after,.fad.fa-mobile-screen-button:after{content:"\f3cd\f3cd"}.fa-duotone.fa-clock-one-thirty:after,.fad.fa-clock-one-thirty:after{content:"\e34f\e34f"}.fa-duotone.fa-inbox-arrow-up:after,.fa-duotone.fa-inbox-out:after,.fad.fa-inbox-arrow-up:after,.fad.fa-inbox-out:after{content:"\f311\f311"}.fa-duotone.fa-cloud-slash:after,.fad.fa-cloud-slash:after{content:"\e137\e137"}.fa-duotone.fa-volume-high:after,.fa-duotone.fa-volume-up:after,.fad.fa-volume-high:after,.fad.fa-volume-up:after{content:"\f028\f028"}.fa-duotone.fa-users-rays:after,.fad.fa-users-rays:after{content:"\e593\e593"}.fa-duotone.fa-wallet:after,.fad.fa-wallet:after{content:"\f555\f555"}.fa-duotone.fa-octagon-check:after,.fad.fa-octagon-check:after{content:"\e426\e426"}.fa-duotone.fa-flatbread-stuffed:after,.fad.fa-flatbread-stuffed:after{content:"\e40c\e40c"}.fa-duotone.fa-clipboard-check:after,.fad.fa-clipboard-check:after{content:"\f46c\f46c"}.fa-duotone.fa-cart-circle-plus:after,.fad.fa-cart-circle-plus:after{content:"\e3f3\e3f3"}.fa-duotone.fa-shipping-timed:after,.fa-duotone.fa-truck-clock:after,.fad.fa-shipping-timed:after,.fad.fa-truck-clock:after{content:"\f48c\f48c"}.fa-duotone.fa-pool-8-ball:after,.fad.fa-pool-8-ball:after{content:"\e3c5\e3c5"}.fa-duotone.fa-file-audio:after,.fad.fa-file-audio:after{content:"\f1c7\f1c7"}.fa-duotone.fa-turn-down-left:after,.fad.fa-turn-down-left:after{content:"\e331\e331"}.fa-duotone.fa-lock-hashtag:after,.fad.fa-lock-hashtag:after{content:"\e423\e423"}.fa-duotone.fa-chart-radar:after,.fad.fa-chart-radar:after{content:"\e0e7\e0e7"}.fa-duotone.fa-staff:after,.fad.fa-staff:after{content:"\f71b\f71b"}.fa-duotone.fa-burger:after,.fa-duotone.fa-hamburger:after,.fad.fa-burger:after,.fad.fa-hamburger:after{content:"\f805\f805"}.fa-duotone.fa-utility-pole:after,.fad.fa-utility-pole:after{content:"\e2c3\e2c3"}.fa-duotone.fa-transporter-6:after,.fad.fa-transporter-6:after{content:"\e2a7\e2a7"}.fa-duotone.fa-arrow-turn-left:after,.fad.fa-arrow-turn-left:after{content:"\e632\e632"}.fa-duotone.fa-wrench:after,.fad.fa-wrench:after{content:"\f0ad\f0ad"}.fa-duotone.fa-bugs:after,.fad.fa-bugs:after{content:"\e4d0\e4d0"}.fa-duotone.fa-vector-polygon:after,.fad.fa-vector-polygon:after{content:"\e2c7\e2c7"}.fa-duotone.fa-diagram-nested:after,.fad.fa-diagram-nested:after{content:"\e157\e157"}.fa-duotone.fa-rupee-sign:after,.fa-duotone.fa-rupee:after,.fad.fa-rupee-sign:after,.fad.fa-rupee:after{content:"\f156\f156"}.fa-duotone.fa-file-image:after,.fad.fa-file-image:after{content:"\f1c5\f1c5"}.fa-duotone.fa-circle-question:after,.fa-duotone.fa-question-circle:after,.fad.fa-circle-question:after,.fad.fa-question-circle:after{content:"\f059\f059"}.fa-duotone.fa-tickets-perforated:after,.fad.fa-tickets-perforated:after{content:"\e63f\e63f"}.fa-duotone.fa-image-user:after,.fad.fa-image-user:after{content:"\e1b8\e1b8"}.fa-duotone.fa-buoy:after,.fad.fa-buoy:after{content:"\e5b5\e5b5"}.fa-duotone.fa-plane-departure:after,.fad.fa-plane-departure:after{content:"\f5b0\f5b0"}.fa-duotone.fa-handshake-slash:after,.fad.fa-handshake-slash:after{content:"\e060\e060"}.fa-duotone.fa-book-bookmark:after,.fad.fa-book-bookmark:after{content:"\e0bb\e0bb"}.fa-duotone.fa-border-center-h:after,.fad.fa-border-center-h:after{content:"\f89c\f89c"}.fa-duotone.fa-can-food:after,.fad.fa-can-food:after{content:"\e3e6\e3e6"}.fa-duotone.fa-typewriter:after,.fad.fa-typewriter:after{content:"\f8e7\f8e7"}.fa-duotone.fa-arrow-right-from-arc:after,.fad.fa-arrow-right-from-arc:after{content:"\e4b1\e4b1"}.fa-duotone.fa-circle-k:after,.fad.fa-circle-k:after{content:"\e113\e113"}.fa-duotone.fa-face-hand-over-mouth:after,.fad.fa-face-hand-over-mouth:after{content:"\e378\e378"}.fa-duotone.fa-popcorn:after,.fad.fa-popcorn:after{content:"\f819\f819"}.fa-duotone.fa-house-flood:after,.fa-duotone.fa-house-water:after,.fad.fa-house-flood:after,.fad.fa-house-water:after{content:"\f74f\f74f"}.fa-duotone.fa-object-subtract:after,.fad.fa-object-subtract:after{content:"\e49e\e49e"}.fa-duotone.fa-code-branch:after,.fad.fa-code-branch:after{content:"\f126\f126"}.fa-duotone.fa-warehouse-alt:after,.fa-duotone.fa-warehouse-full:after,.fad.fa-warehouse-alt:after,.fad.fa-warehouse-full:after{content:"\f495\f495"}.fa-duotone.fa-hat-cowboy:after,.fad.fa-hat-cowboy:after{content:"\f8c0\f8c0"}.fa-duotone.fa-bridge:after,.fad.fa-bridge:after{content:"\e4c8\e4c8"}.fa-duotone.fa-phone-alt:after,.fa-duotone.fa-phone-flip:after,.fad.fa-phone-alt:after,.fad.fa-phone-flip:after{content:"\f879\f879"}.fa-duotone.fa-arrow-down-from-dotted-line:after,.fad.fa-arrow-down-from-dotted-line:after{content:"\e090\e090"}.fa-duotone.fa-file-doc:after,.fad.fa-file-doc:after{content:"\e5ed\e5ed"}.fa-duotone.fa-square-quarters:after,.fad.fa-square-quarters:after{content:"\e44e\e44e"}.fa-duotone.fa-truck-front:after,.fad.fa-truck-front:after{content:"\e2b7\e2b7"}.fa-duotone.fa-cat:after,.fad.fa-cat:after{content:"\f6be\f6be"}.fa-duotone.fa-trash-xmark:after,.fad.fa-trash-xmark:after{content:"\e2b4\e2b4"}.fa-duotone.fa-caret-circle-left:after,.fa-duotone.fa-circle-caret-left:after,.fad.fa-caret-circle-left:after,.fad.fa-circle-caret-left:after{content:"\f32e\f32e"}.fa-duotone.fa-files:after,.fad.fa-files:after{content:"\e178\e178"}.fa-duotone.fa-anchor-circle-exclamation:after,.fad.fa-anchor-circle-exclamation:after{content:"\e4ab\e4ab"}.fa-duotone.fa-face-clouds:after,.fad.fa-face-clouds:after{content:"\e47d\e47d"}.fa-duotone.fa-user-crown:after,.fad.fa-user-crown:after{content:"\f6a4\f6a4"}.fa-duotone.fa-basket-shopping-plus:after,.fad.fa-basket-shopping-plus:after{content:"\e653\e653"}.fa-duotone.fa-truck-field:after,.fad.fa-truck-field:after{content:"\e58d\e58d"}.fa-duotone.fa-route:after,.fad.fa-route:after{content:"\f4d7\f4d7"}.fa-duotone.fa-cart-circle-check:after,.fad.fa-cart-circle-check:after{content:"\e3f1\e3f1"}.fa-duotone.fa-clipboard-question:after,.fad.fa-clipboard-question:after{content:"\e4e3\e4e3"}.fa-duotone.fa-panorama:after,.fad.fa-panorama:after{content:"\e209\e209"}.fa-duotone.fa-comment-medical:after,.fad.fa-comment-medical:after{content:"\f7f5\f7f5"}.fa-duotone.fa-teeth-open:after,.fad.fa-teeth-open:after{content:"\f62f\f62f"}.fa-duotone.fa-user-tie-hair-long:after,.fad.fa-user-tie-hair-long:after{content:"\e460\e460"}.fa-duotone.fa-file-circle-minus:after,.fad.fa-file-circle-minus:after{content:"\e4ed\e4ed"}.fa-duotone.fa-head-side-medical:after,.fad.fa-head-side-medical:after{content:"\f809\f809"}.fa-duotone.fa-arrow-turn-right:after,.fad.fa-arrow-turn-right:after{content:"\e635\e635"}.fa-duotone.fa-tags:after,.fad.fa-tags:after{content:"\f02c\f02c"}.fa-duotone.fa-wine-glass:after,.fad.fa-wine-glass:after{content:"\f4e3\f4e3"}.fa-duotone.fa-fast-forward:after,.fa-duotone.fa-forward-fast:after,.fad.fa-fast-forward:after,.fad.fa-forward-fast:after{content:"\f050\f050"}.fa-duotone.fa-face-meh-blank:after,.fa-duotone.fa-meh-blank:after,.fad.fa-face-meh-blank:after,.fad.fa-meh-blank:after{content:"\f5a4\f5a4"}.fa-duotone.fa-user-robot:after,.fad.fa-user-robot:after{content:"\e04b\e04b"}.fa-duotone.fa-parking:after,.fa-duotone.fa-square-parking:after,.fad.fa-parking:after,.fad.fa-square-parking:after{content:"\f540\f540"}.fa-duotone.fa-card-diamond:after,.fad.fa-card-diamond:after{content:"\e3ea\e3ea"}.fa-duotone.fa-face-zipper:after,.fad.fa-face-zipper:after{content:"\e3a5\e3a5"}.fa-duotone.fa-face-raised-eyebrow:after,.fad.fa-face-raised-eyebrow:after{content:"\e388\e388"}.fa-duotone.fa-house-signal:after,.fad.fa-house-signal:after{content:"\e012\e012"}.fa-duotone.fa-chevron-square-up:after,.fa-duotone.fa-square-chevron-up:after,.fad.fa-chevron-square-up:after,.fad.fa-square-chevron-up:after{content:"\f32c\f32c"}.fa-duotone.fa-bars-progress:after,.fa-duotone.fa-tasks-alt:after,.fad.fa-bars-progress:after,.fad.fa-tasks-alt:after{content:"\f828\f828"}.fa-duotone.fa-faucet-drip:after,.fad.fa-faucet-drip:after{content:"\e006\e006"}.fa-duotone.fa-arrows-to-line:after,.fad.fa-arrows-to-line:after{content:"\e0a7\e0a7"}.fa-duotone.fa-dolphin:after,.fad.fa-dolphin:after{content:"\e168\e168"}.fa-duotone.fa-arrow-up-right:after,.fad.fa-arrow-up-right:after{content:"\e09f\e09f"}.fa-duotone.fa-circle-r:after,.fad.fa-circle-r:after{content:"\e120\e120"}.fa-duotone.fa-cart-flatbed:after,.fa-duotone.fa-dolly-flatbed:after,.fad.fa-cart-flatbed:after,.fad.fa-dolly-flatbed:after{content:"\f474\f474"}.fa-duotone.fa-ban-smoking:after,.fa-duotone.fa-smoking-ban:after,.fad.fa-ban-smoking:after,.fad.fa-smoking-ban:after{content:"\f54d\f54d"}.fa-duotone.fa-circle-sort-up:after,.fa-duotone.fa-sort-circle-up:after,.fad.fa-circle-sort-up:after,.fad.fa-sort-circle-up:after{content:"\e032\e032"}.fa-duotone.fa-terminal:after,.fad.fa-terminal:after{content:"\f120\f120"}.fa-duotone.fa-mobile-button:after,.fad.fa-mobile-button:after{content:"\f10b\f10b"}.fa-duotone.fa-house-medical-flag:after,.fad.fa-house-medical-flag:after{content:"\e514\e514"}.fa-duotone.fa-basket-shopping:after,.fa-duotone.fa-shopping-basket:after,.fad.fa-basket-shopping:after,.fad.fa-shopping-basket:after{content:"\f291\f291"}.fa-duotone.fa-tape:after,.fad.fa-tape:after{content:"\f4db\f4db"}.fa-duotone.fa-chestnut:after,.fad.fa-chestnut:after{content:"\e3f6\e3f6"}.fa-duotone.fa-bus-alt:after,.fa-duotone.fa-bus-simple:after,.fad.fa-bus-alt:after,.fad.fa-bus-simple:after{content:"\f55e\f55e"}.fa-duotone.fa-eye:after,.fad.fa-eye:after{content:"\f06e\f06e"}.fa-duotone.fa-face-sad-cry:after,.fa-duotone.fa-sad-cry:after,.fad.fa-face-sad-cry:after,.fad.fa-sad-cry:after{content:"\f5b3\f5b3"}.fa-duotone.fa-heat:after,.fad.fa-heat:after{content:"\e00c\e00c"}.fa-duotone.fa-ticket-airline:after,.fa-duotone.fa-ticket-perforated-plane:after,.fa-duotone.fa-ticket-plane:after,.fad.fa-ticket-airline:after,.fad.fa-ticket-perforated-plane:after,.fad.fa-ticket-plane:after{content:"\e29a\e29a"}.fa-duotone.fa-boot-heeled:after,.fad.fa-boot-heeled:after{content:"\e33f\e33f"}.fa-duotone.fa-arrows-minimize:after,.fa-duotone.fa-compress-arrows:after,.fad.fa-arrows-minimize:after,.fad.fa-compress-arrows:after{content:"\e0a5\e0a5"}.fa-duotone.fa-audio-description:after,.fad.fa-audio-description:after{content:"\f29e\f29e"}.fa-duotone.fa-person-military-to-person:after,.fad.fa-person-military-to-person:after{content:"\e54c\e54c"}.fa-duotone.fa-file-shield:after,.fad.fa-file-shield:after{content:"\e4f0\e4f0"}.fa-duotone.fa-hexagon:after,.fad.fa-hexagon:after{content:"\f312\f312"}.fa-duotone.fa-manhole:after,.fad.fa-manhole:after{content:"\e1d6\e1d6"}.fa-duotone.fa-user-slash:after,.fad.fa-user-slash:after{content:"\f506\f506"}.fa-duotone.fa-pen:after,.fad.fa-pen:after{content:"\f304\f304"}.fa-duotone.fa-tower-observation:after,.fad.fa-tower-observation:after{content:"\e586\e586"}.fa-duotone.fa-floppy-disks:after,.fad.fa-floppy-disks:after{content:"\e183\e183"}.fa-duotone.fa-toilet-paper-blank-under:after,.fa-duotone.fa-toilet-paper-reverse-alt:after,.fad.fa-toilet-paper-blank-under:after,.fad.fa-toilet-paper-reverse-alt:after{content:"\e29f\e29f"}.fa-duotone.fa-file-code:after,.fad.fa-file-code:after{content:"\f1c9\f1c9"}.fa-duotone.fa-signal-5:after,.fa-duotone.fa-signal-perfect:after,.fa-duotone.fa-signal:after,.fad.fa-signal-5:after,.fad.fa-signal-perfect:after,.fad.fa-signal:after{content:"\f012\f012"}.fa-duotone.fa-pump:after,.fad.fa-pump:after{content:"\e442\e442"}.fa-duotone.fa-bus:after,.fad.fa-bus:after{content:"\f207\f207"}.fa-duotone.fa-heart-circle-xmark:after,.fad.fa-heart-circle-xmark:after{content:"\e501\e501"}.fa-duotone.fa-arrow-up-left-from-circle:after,.fad.fa-arrow-up-left-from-circle:after{content:"\e09e\e09e"}.fa-duotone.fa-home-lg:after,.fa-duotone.fa-house-chimney:after,.fad.fa-home-lg:after,.fad.fa-house-chimney:after{content:"\e3af\e3af"}.fa-duotone.fa-window-maximize:after,.fad.fa-window-maximize:after{content:"\f2d0\f2d0"}.fa-duotone.fa-dryer:after,.fad.fa-dryer:after{content:"\f861\f861"}.fa-duotone.fa-face-frown:after,.fa-duotone.fa-frown:after,.fad.fa-face-frown:after,.fad.fa-frown:after{content:"\f119\f119"}.fa-duotone.fa-chess-bishop-alt:after,.fa-duotone.fa-chess-bishop-piece:after,.fad.fa-chess-bishop-alt:after,.fad.fa-chess-bishop-piece:after{content:"\f43b\f43b"}.fa-duotone.fa-shirt-tank-top:after,.fad.fa-shirt-tank-top:after{content:"\e3c9\e3c9"}.fa-duotone.fa-diploma:after,.fa-duotone.fa-scroll-ribbon:after,.fad.fa-diploma:after,.fad.fa-scroll-ribbon:after{content:"\f5ea\f5ea"}.fa-duotone.fa-screencast:after,.fad.fa-screencast:after{content:"\e23e\e23e"}.fa-duotone.fa-walker:after,.fad.fa-walker:after{content:"\f831\f831"}.fa-duotone.fa-prescription:after,.fad.fa-prescription:after{content:"\f5b1\f5b1"}.fa-duotone.fa-shop:after,.fa-duotone.fa-store-alt:after,.fad.fa-shop:after,.fad.fa-store-alt:after{content:"\f54f\f54f"}.fa-duotone.fa-floppy-disk:after,.fa-duotone.fa-save:after,.fad.fa-floppy-disk:after,.fad.fa-save:after{content:"\f0c7\f0c7"}.fa-duotone.fa-vihara:after,.fad.fa-vihara:after{content:"\f6a7\f6a7"}.fa-duotone.fa-face-kiss-closed-eyes:after,.fad.fa-face-kiss-closed-eyes:after{content:"\e37d\e37d"}.fa-duotone.fa-balance-scale-left:after,.fa-duotone.fa-scale-unbalanced:after,.fad.fa-balance-scale-left:after,.fad.fa-scale-unbalanced:after{content:"\f515\f515"}.fa-duotone.fa-file-user:after,.fad.fa-file-user:after{content:"\f65c\f65c"}.fa-duotone.fa-user-police-tie:after,.fad.fa-user-police-tie:after{content:"\e334\e334"}.fa-duotone.fa-face-tongue-money:after,.fad.fa-face-tongue-money:after{content:"\e39d\e39d"}.fa-duotone.fa-tennis-ball:after,.fad.fa-tennis-ball:after{content:"\f45e\f45e"}.fa-duotone.fa-square-l:after,.fad.fa-square-l:after{content:"\e275\e275"}.fa-duotone.fa-sort-asc:after,.fa-duotone.fa-sort-up:after,.fad.fa-sort-asc:after,.fad.fa-sort-up:after{content:"\f0de\f0de"}.fa-duotone.fa-calendar-arrow-up:after,.fa-duotone.fa-calendar-upload:after,.fad.fa-calendar-arrow-up:after,.fad.fa-calendar-upload:after{content:"\e0d1\e0d1"}.fa-duotone.fa-comment-dots:after,.fa-duotone.fa-commenting:after,.fad.fa-comment-dots:after,.fad.fa-commenting:after{content:"\f4ad\f4ad"}.fa-duotone.fa-plant-wilt:after,.fad.fa-plant-wilt:after{content:"\e5aa\e5aa"}.fa-duotone.fa-scarf:after,.fad.fa-scarf:after{content:"\f7c1\f7c1"}.fa-duotone.fa-album-circle-plus:after,.fad.fa-album-circle-plus:after{content:"\e48c\e48c"}.fa-duotone.fa-user-nurse-hair-long:after,.fad.fa-user-nurse-hair-long:after{content:"\e45e\e45e"}.fa-duotone.fa-diamond:after,.fad.fa-diamond:after{content:"\f219\f219"}.fa-duotone.fa-arrow-alt-square-left:after,.fa-duotone.fa-square-left:after,.fad.fa-arrow-alt-square-left:after,.fad.fa-square-left:after{content:"\f351\f351"}.fa-duotone.fa-face-grin-squint:after,.fa-duotone.fa-grin-squint:after,.fad.fa-face-grin-squint:after,.fad.fa-grin-squint:after{content:"\f585\f585"}.fa-duotone.fa-circle-ellipsis-vertical:after,.fad.fa-circle-ellipsis-vertical:after{content:"\e10b\e10b"}.fa-duotone.fa-hand-holding-dollar:after,.fa-duotone.fa-hand-holding-usd:after,.fad.fa-hand-holding-dollar:after,.fad.fa-hand-holding-usd:after{content:"\f4c0\f4c0"}.fa-duotone.fa-grid-dividers:after,.fad.fa-grid-dividers:after{content:"\e3ad\e3ad"}.fa-duotone.fa-bacterium:after,.fad.fa-bacterium:after{content:"\e05a\e05a"}.fa-duotone.fa-hand-pointer:after,.fad.fa-hand-pointer:after{content:"\f25a\f25a"}.fa-duotone.fa-drum-steelpan:after,.fad.fa-drum-steelpan:after{content:"\f56a\f56a"}.fa-duotone.fa-hand-scissors:after,.fad.fa-hand-scissors:after{content:"\f257\f257"}.fa-duotone.fa-hands-praying:after,.fa-duotone.fa-praying-hands:after,.fad.fa-hands-praying:after,.fad.fa-praying-hands:after{content:"\f684\f684"}.fa-duotone.fa-face-pensive:after,.fad.fa-face-pensive:after{content:"\e384\e384"}.fa-duotone.fa-user-music:after,.fad.fa-user-music:after{content:"\f8eb\f8eb"}.fa-duotone.fa-arrow-right-rotate:after,.fa-duotone.fa-arrow-rotate-forward:after,.fa-duotone.fa-arrow-rotate-right:after,.fa-duotone.fa-redo:after,.fad.fa-arrow-right-rotate:after,.fad.fa-arrow-rotate-forward:after,.fad.fa-arrow-rotate-right:after,.fad.fa-redo:after{content:"\f01e\f01e"}.fa-duotone.fa-comments-alt-dollar:after,.fa-duotone.fa-messages-dollar:after,.fad.fa-comments-alt-dollar:after,.fad.fa-messages-dollar:after{content:"\f652\f652"}.fa-duotone.fa-sensor-on:after,.fad.fa-sensor-on:after{content:"\e02b\e02b"}.fa-duotone.fa-balloon:after,.fad.fa-balloon:after{content:"\e2e3\e2e3"}.fa-duotone.fa-biohazard:after,.fad.fa-biohazard:after{content:"\f780\f780"}.fa-duotone.fa-chess-queen-alt:after,.fa-duotone.fa-chess-queen-piece:after,.fad.fa-chess-queen-alt:after,.fad.fa-chess-queen-piece:after{content:"\f446\f446"}.fa-duotone.fa-location-crosshairs:after,.fa-duotone.fa-location:after,.fad.fa-location-crosshairs:after,.fad.fa-location:after{content:"\f601\f601"}.fa-duotone.fa-mars-double:after,.fad.fa-mars-double:after{content:"\f227\f227"}.fa-duotone.fa-house-leave:after,.fa-duotone.fa-house-person-depart:after,.fa-duotone.fa-house-person-leave:after,.fad.fa-house-leave:after,.fad.fa-house-person-depart:after,.fad.fa-house-person-leave:after{content:"\e00f\e00f"}.fa-duotone.fa-ruler-triangle:after,.fad.fa-ruler-triangle:after{content:"\f61c\f61c"}.fa-duotone.fa-card-club:after,.fad.fa-card-club:after{content:"\e3e9\e3e9"}.fa-duotone.fa-child-dress:after,.fad.fa-child-dress:after{content:"\e59c\e59c"}.fa-duotone.fa-users-between-lines:after,.fad.fa-users-between-lines:after{content:"\e591\e591"}.fa-duotone.fa-lungs-virus:after,.fad.fa-lungs-virus:after{content:"\e067\e067"}.fa-duotone.fa-spinner-third:after,.fad.fa-spinner-third:after{content:"\f3f4\f3f4"}.fa-duotone.fa-face-grin-tears:after,.fa-duotone.fa-grin-tears:after,.fad.fa-face-grin-tears:after,.fad.fa-grin-tears:after{content:"\f588\f588"}.fa-duotone.fa-phone:after,.fad.fa-phone:after{content:"\f095\f095"}.fa-duotone.fa-computer-mouse-scrollwheel:after,.fa-duotone.fa-mouse-alt:after,.fad.fa-computer-mouse-scrollwheel:after,.fad.fa-mouse-alt:after{content:"\f8cd\f8cd"}.fa-duotone.fa-calendar-times:after,.fa-duotone.fa-calendar-xmark:after,.fad.fa-calendar-times:after,.fad.fa-calendar-xmark:after{content:"\f273\f273"}.fa-duotone.fa-child-reaching:after,.fad.fa-child-reaching:after{content:"\e59d\e59d"}.fa-duotone.fa-table-layout:after,.fad.fa-table-layout:after{content:"\e290\e290"}.fa-duotone.fa-narwhal:after,.fad.fa-narwhal:after{content:"\f6fe\f6fe"}.fa-duotone.fa-ramp-loading:after,.fad.fa-ramp-loading:after{content:"\f4d4\f4d4"}.fa-duotone.fa-calendar-circle-plus:after,.fad.fa-calendar-circle-plus:after{content:"\e470\e470"}.fa-duotone.fa-toothbrush:after,.fad.fa-toothbrush:after{content:"\f635\f635"}.fa-duotone.fa-border-inner:after,.fad.fa-border-inner:after{content:"\f84e\f84e"}.fa-duotone.fa-paw-claws:after,.fad.fa-paw-claws:after{content:"\f702\f702"}.fa-duotone.fa-kiwi-fruit:after,.fad.fa-kiwi-fruit:after{content:"\e30c\e30c"}.fa-duotone.fa-traffic-light-slow:after,.fad.fa-traffic-light-slow:after{content:"\f639\f639"}.fa-duotone.fa-rectangle-code:after,.fad.fa-rectangle-code:after{content:"\e322\e322"}.fa-duotone.fa-head-side-virus:after,.fad.fa-head-side-virus:after{content:"\e064\e064"}.fa-duotone.fa-keyboard-brightness:after,.fad.fa-keyboard-brightness:after{content:"\e1c0\e1c0"}.fa-duotone.fa-books-medical:after,.fad.fa-books-medical:after{content:"\f7e8\f7e8"}.fa-duotone.fa-lightbulb-slash:after,.fad.fa-lightbulb-slash:after{content:"\f673\f673"}.fa-duotone.fa-home-blank:after,.fa-duotone.fa-house-blank:after,.fad.fa-home-blank:after,.fad.fa-house-blank:after{content:"\e487\e487"}.fa-duotone.fa-square-5:after,.fad.fa-square-5:after{content:"\e25a\e25a"}.fa-duotone.fa-heart-square:after,.fa-duotone.fa-square-heart:after,.fad.fa-heart-square:after,.fad.fa-square-heart:after{content:"\f4c8\f4c8"}.fa-duotone.fa-puzzle:after,.fad.fa-puzzle:after{content:"\e443\e443"}.fa-duotone.fa-user-cog:after,.fa-duotone.fa-user-gear:after,.fad.fa-user-cog:after,.fad.fa-user-gear:after{content:"\f4fe\f4fe"}.fa-duotone.fa-pipe-circle-check:after,.fad.fa-pipe-circle-check:after{content:"\e436\e436"}.fa-duotone.fa-arrow-up-1-9:after,.fa-duotone.fa-sort-numeric-up:after,.fad.fa-arrow-up-1-9:after,.fad.fa-sort-numeric-up:after{content:"\f163\f163"}.fa-duotone.fa-octagon-exclamation:after,.fad.fa-octagon-exclamation:after{content:"\e204\e204"}.fa-duotone.fa-dial-low:after,.fad.fa-dial-low:after{content:"\e15d\e15d"}.fa-duotone.fa-door-closed:after,.fad.fa-door-closed:after{content:"\f52a\f52a"}.fa-duotone.fa-laptop-mobile:after,.fa-duotone.fa-phone-laptop:after,.fad.fa-laptop-mobile:after,.fad.fa-phone-laptop:after{content:"\f87a\f87a"}.fa-duotone.fa-conveyor-belt-alt:after,.fa-duotone.fa-conveyor-belt-boxes:after,.fad.fa-conveyor-belt-alt:after,.fad.fa-conveyor-belt-boxes:after{content:"\f46f\f46f"}.fa-duotone.fa-shield-virus:after,.fad.fa-shield-virus:after{content:"\e06c\e06c"}.fa-duotone.fa-starfighter-alt-advanced:after,.fa-duotone.fa-starfighter-twin-ion-engine-advanced:after,.fad.fa-starfighter-alt-advanced:after,.fad.fa-starfighter-twin-ion-engine-advanced:after{content:"\e28e\e28e"}.fa-duotone.fa-dice-six:after,.fad.fa-dice-six:after{content:"\f526\f526"}.fa-duotone.fa-starfighter-alt:after,.fa-duotone.fa-starfighter-twin-ion-engine:after,.fad.fa-starfighter-alt:after,.fad.fa-starfighter-twin-ion-engine:after{content:"\e038\e038"}.fa-duotone.fa-rocket-launch:after,.fad.fa-rocket-launch:after{content:"\e027\e027"}.fa-duotone.fa-mosquito-net:after,.fad.fa-mosquito-net:after{content:"\e52c\e52c"}.fa-duotone.fa-vent-damper:after,.fad.fa-vent-damper:after{content:"\e465\e465"}.fa-duotone.fa-bridge-water:after,.fad.fa-bridge-water:after{content:"\e4ce\e4ce"}.fa-duotone.fa-ban-bug:after,.fa-duotone.fa-debug:after,.fad.fa-ban-bug:after,.fad.fa-debug:after{content:"\f7f9\f7f9"}.fa-duotone.fa-person-booth:after,.fad.fa-person-booth:after{content:"\f756\f756"}.fa-duotone.fa-text-width:after,.fad.fa-text-width:after{content:"\f035\f035"}.fa-duotone.fa-garage-car:after,.fad.fa-garage-car:after{content:"\e00a\e00a"}.fa-duotone.fa-square-kanban:after,.fad.fa-square-kanban:after{content:"\e488\e488"}.fa-duotone.fa-hat-wizard:after,.fad.fa-hat-wizard:after{content:"\f6e8\f6e8"}.fa-duotone.fa-chart-kanban:after,.fad.fa-chart-kanban:after{content:"\e64f\e64f"}.fa-duotone.fa-pen-fancy:after,.fad.fa-pen-fancy:after{content:"\f5ac\f5ac"}.fa-duotone.fa-coffee-pot:after,.fad.fa-coffee-pot:after{content:"\e002\e002"}.fa-duotone.fa-mouse-field:after,.fad.fa-mouse-field:after{content:"\e5a8\e5a8"}.fa-duotone.fa-digging:after,.fa-duotone.fa-person-digging:after,.fad.fa-digging:after,.fad.fa-person-digging:after{content:"\f85e\f85e"}.fa-duotone.fa-shower-alt:after,.fa-duotone.fa-shower-down:after,.fad.fa-shower-alt:after,.fad.fa-shower-down:after{content:"\e24d\e24d"}.fa-duotone.fa-box-circle-check:after,.fad.fa-box-circle-check:after{content:"\e0c4\e0c4"}.fa-duotone.fa-brightness:after,.fad.fa-brightness:after{content:"\e0c9\e0c9"}.fa-duotone.fa-car-side-bolt:after,.fad.fa-car-side-bolt:after{content:"\e344\e344"}.fa-duotone.fa-file-xml:after,.fad.fa-file-xml:after{content:"\e654\e654"}.fa-duotone.fa-ornament:after,.fad.fa-ornament:after{content:"\f7b8\f7b8"}.fa-duotone.fa-phone-arrow-down-left:after,.fa-duotone.fa-phone-arrow-down:after,.fa-duotone.fa-phone-incoming:after,.fad.fa-phone-arrow-down-left:after,.fad.fa-phone-arrow-down:after,.fad.fa-phone-incoming:after{content:"\e223\e223"}.fa-duotone.fa-cloud-word:after,.fad.fa-cloud-word:after{content:"\e138\e138"}.fa-duotone.fa-hand-fingers-crossed:after,.fad.fa-hand-fingers-crossed:after{content:"\e1a3\e1a3"}.fa-duotone.fa-trash:after,.fad.fa-trash:after{content:"\f1f8\f1f8"}.fa-duotone.fa-gauge-simple-med:after,.fa-duotone.fa-gauge-simple:after,.fa-duotone.fa-tachometer-average:after,.fad.fa-gauge-simple-med:after,.fad.fa-gauge-simple:after,.fad.fa-tachometer-average:after{content:"\f629\f629"}.fa-duotone.fa-arrow-down-small-big:after,.fa-duotone.fa-sort-size-down-alt:after,.fad.fa-arrow-down-small-big:after,.fad.fa-sort-size-down-alt:after{content:"\f88d\f88d"}.fa-duotone.fa-book-medical:after,.fad.fa-book-medical:after{content:"\f7e6\f7e6"}.fa-duotone.fa-face-melting:after,.fad.fa-face-melting:after{content:"\e483\e483"}.fa-duotone.fa-poo:after,.fad.fa-poo:after{content:"\f2fe\f2fe"}.fa-duotone.fa-pen-alt-slash:after,.fa-duotone.fa-pen-clip-slash:after,.fad.fa-pen-alt-slash:after,.fad.fa-pen-clip-slash:after{content:"\e20f\e20f"}.fa-duotone.fa-quote-right-alt:after,.fa-duotone.fa-quote-right:after,.fad.fa-quote-right-alt:after,.fad.fa-quote-right:after{content:"\f10e\f10e"}.fa-duotone.fa-scroll-old:after,.fad.fa-scroll-old:after{content:"\f70f\f70f"}.fa-duotone.fa-guitars:after,.fad.fa-guitars:after{content:"\f8bf\f8bf"}.fa-duotone.fa-phone-xmark:after,.fad.fa-phone-xmark:after{content:"\e227\e227"}.fa-duotone.fa-hose:after,.fad.fa-hose:after{content:"\e419\e419"}.fa-duotone.fa-clock-six:after,.fad.fa-clock-six:after{content:"\e352\e352"}.fa-duotone.fa-shirt:after,.fa-duotone.fa-t-shirt:after,.fa-duotone.fa-tshirt:after,.fad.fa-shirt:after,.fad.fa-t-shirt:after,.fad.fa-tshirt:after{content:"\f553\f553"}.fa-duotone.fa-billboard:after,.fad.fa-billboard:after{content:"\e5cd\e5cd"}.fa-duotone.fa-square-r:after,.fad.fa-square-r:after{content:"\e27c\e27c"}.fa-duotone.fa-cubes:after,.fad.fa-cubes:after{content:"\f1b3\f1b3"}.fa-duotone.fa-envelope-open-dollar:after,.fad.fa-envelope-open-dollar:after{content:"\f657\f657"}.fa-duotone.fa-divide:after,.fad.fa-divide:after{content:"\f529\f529"}.fa-duotone.fa-sun-cloud:after,.fad.fa-sun-cloud:after{content:"\f763\f763"}.fa-duotone.fa-lamp-floor:after,.fad.fa-lamp-floor:after{content:"\e015\e015"}.fa-duotone.fa-square-7:after,.fad.fa-square-7:after{content:"\e25c\e25c"}.fa-duotone.fa-tenge-sign:after,.fa-duotone.fa-tenge:after,.fad.fa-tenge-sign:after,.fad.fa-tenge:after{content:"\f7d7\f7d7"}.fa-duotone.fa-headphones:after,.fad.fa-headphones:after{content:"\f025\f025"}.fa-duotone.fa-hands-holding:after,.fad.fa-hands-holding:after{content:"\f4c2\f4c2"}.fa-duotone.fa-campfire:after,.fad.fa-campfire:after{content:"\f6ba\f6ba"}.fa-duotone.fa-circle-ampersand:after,.fad.fa-circle-ampersand:after{content:"\e0f8\e0f8"}.fa-duotone.fa-snowflakes:after,.fad.fa-snowflakes:after{content:"\f7cf\f7cf"}.fa-duotone.fa-hands-clapping:after,.fad.fa-hands-clapping:after{content:"\e1a8\e1a8"}.fa-duotone.fa-republican:after,.fad.fa-republican:after{content:"\f75e\f75e"}.fa-duotone.fa-leaf-maple:after,.fad.fa-leaf-maple:after{content:"\f6f6\f6f6"}.fa-duotone.fa-arrow-left:after,.fad.fa-arrow-left:after{content:"\f060\f060"}.fa-duotone.fa-person-circle-xmark:after,.fad.fa-person-circle-xmark:after{content:"\e543\e543"}.fa-duotone.fa-ruler:after,.fad.fa-ruler:after{content:"\f545\f545"}.fa-duotone.fa-cup-straw-swoosh:after,.fad.fa-cup-straw-swoosh:after{content:"\e364\e364"}.fa-duotone.fa-temperature-hot:after,.fa-duotone.fa-temperature-sun:after,.fad.fa-temperature-hot:after,.fad.fa-temperature-sun:after{content:"\f76a\f76a"}.fa-duotone.fa-align-left:after,.fad.fa-align-left:after{content:"\f036\f036"}.fa-duotone.fa-dice-d6:after,.fad.fa-dice-d6:after{content:"\f6d1\f6d1"}.fa-duotone.fa-restroom:after,.fad.fa-restroom:after{content:"\f7bd\f7bd"}.fa-duotone.fa-high-definition:after,.fa-duotone.fa-rectangle-hd:after,.fad.fa-high-definition:after,.fad.fa-rectangle-hd:after{content:"\e1ae\e1ae"}.fa-duotone.fa-j:after,.fad.fa-j:after{content:"\4a\4a"}.fa-duotone.fa-galaxy:after,.fad.fa-galaxy:after{content:"\e008\e008"}.fa-duotone.fa-users-viewfinder:after,.fad.fa-users-viewfinder:after{content:"\e595\e595"}.fa-duotone.fa-file-video:after,.fad.fa-file-video:after{content:"\f1c8\f1c8"}.fa-duotone.fa-cherries:after,.fad.fa-cherries:after{content:"\e0ec\e0ec"}.fa-duotone.fa-external-link-alt:after,.fa-duotone.fa-up-right-from-square:after,.fad.fa-external-link-alt:after,.fad.fa-up-right-from-square:after{content:"\f35d\f35d"}.fa-duotone.fa-circle-sort:after,.fa-duotone.fa-sort-circle:after,.fad.fa-circle-sort:after,.fad.fa-sort-circle:after{content:"\e030\e030"}.fa-duotone.fa-table-cells:after,.fa-duotone.fa-th:after,.fad.fa-table-cells:after,.fad.fa-th:after{content:"\f00a\f00a"}.fa-duotone.fa-bag-shopping-minus:after,.fad.fa-bag-shopping-minus:after{content:"\e650\e650"}.fa-duotone.fa-file-pdf:after,.fad.fa-file-pdf:after{content:"\f1c1\f1c1"}.fa-duotone.fa-siren:after,.fad.fa-siren:after{content:"\e02d\e02d"}.fa-duotone.fa-arrow-up-to-dotted-line:after,.fad.fa-arrow-up-to-dotted-line:after{content:"\e0a1\e0a1"}.fa-duotone.fa-image-landscape:after,.fa-duotone.fa-landscape:after,.fad.fa-image-landscape:after,.fad.fa-landscape:after{content:"\e1b5\e1b5"}.fa-duotone.fa-tank-water:after,.fad.fa-tank-water:after{content:"\e452\e452"}.fa-duotone.fa-curling-stone:after,.fa-duotone.fa-curling:after,.fad.fa-curling-stone:after,.fad.fa-curling:after{content:"\f44a\f44a"}.fa-duotone.fa-gamepad-alt:after,.fa-duotone.fa-gamepad-modern:after,.fad.fa-gamepad-alt:after,.fad.fa-gamepad-modern:after{content:"\e5a2\e5a2"}.fa-duotone.fa-messages-question:after,.fad.fa-messages-question:after{content:"\e1e7\e1e7"}.fa-duotone.fa-bible:after,.fa-duotone.fa-book-bible:after,.fad.fa-bible:after,.fad.fa-book-bible:after{content:"\f647\f647"}.fa-duotone.fa-o:after,.fad.fa-o:after{content:"\4f\4f"}.fa-duotone.fa-medkit:after,.fa-duotone.fa-suitcase-medical:after,.fad.fa-medkit:after,.fad.fa-suitcase-medical:after{content:"\f0fa\f0fa"}.fa-duotone.fa-briefcase-arrow-right:after,.fad.fa-briefcase-arrow-right:after{content:"\e2f2\e2f2"}.fa-duotone.fa-expand-wide:after,.fad.fa-expand-wide:after{content:"\f320\f320"}.fa-duotone.fa-clock-eleven-thirty:after,.fad.fa-clock-eleven-thirty:after{content:"\e348\e348"}.fa-duotone.fa-rv:after,.fad.fa-rv:after{content:"\f7be\f7be"}.fa-duotone.fa-user-secret:after,.fad.fa-user-secret:after{content:"\f21b\f21b"}.fa-duotone.fa-otter:after,.fad.fa-otter:after{content:"\f700\f700"}.fa-duotone.fa-dreidel:after,.fad.fa-dreidel:after{content:"\f792\f792"}.fa-duotone.fa-female:after,.fa-duotone.fa-person-dress:after,.fad.fa-female:after,.fad.fa-person-dress:after{content:"\f182\f182"}.fa-duotone.fa-comment-dollar:after,.fad.fa-comment-dollar:after{content:"\f651\f651"}.fa-duotone.fa-briefcase-clock:after,.fa-duotone.fa-business-time:after,.fad.fa-briefcase-clock:after,.fad.fa-business-time:after{content:"\f64a\f64a"}.fa-duotone.fa-flower-tulip:after,.fad.fa-flower-tulip:after{content:"\f801\f801"}.fa-duotone.fa-people-pants-simple:after,.fad.fa-people-pants-simple:after{content:"\e21a\e21a"}.fa-duotone.fa-cloud-drizzle:after,.fad.fa-cloud-drizzle:after{content:"\f738\f738"}.fa-duotone.fa-table-cells-large:after,.fa-duotone.fa-th-large:after,.fad.fa-table-cells-large:after,.fad.fa-th-large:after{content:"\f009\f009"}.fa-duotone.fa-book-tanakh:after,.fa-duotone.fa-tanakh:after,.fad.fa-book-tanakh:after,.fad.fa-tanakh:after{content:"\f827\f827"}.fa-duotone.fa-solar-system:after,.fad.fa-solar-system:after{content:"\e02f\e02f"}.fa-duotone.fa-seal-question:after,.fad.fa-seal-question:after{content:"\e243\e243"}.fa-duotone.fa-phone-volume:after,.fa-duotone.fa-volume-control-phone:after,.fad.fa-phone-volume:after,.fad.fa-volume-control-phone:after{content:"\f2a0\f2a0"}.fa-duotone.fa-disc-drive:after,.fad.fa-disc-drive:after{content:"\f8b5\f8b5"}.fa-duotone.fa-hat-cowboy-side:after,.fad.fa-hat-cowboy-side:after{content:"\f8c1\f8c1"}.fa-duotone.fa-rows:after,.fa-duotone.fa-table-rows:after,.fad.fa-rows:after,.fad.fa-table-rows:after{content:"\e292\e292"}.fa-duotone.fa-location-exclamation:after,.fa-duotone.fa-map-marker-exclamation:after,.fad.fa-location-exclamation:after,.fad.fa-map-marker-exclamation:after{content:"\f608\f608"}.fa-duotone.fa-face-fearful:after,.fad.fa-face-fearful:after{content:"\e375\e375"}.fa-duotone.fa-clipboard-user:after,.fad.fa-clipboard-user:after{content:"\f7f3\f7f3"}.fa-duotone.fa-bus-school:after,.fad.fa-bus-school:after{content:"\f5dd\f5dd"}.fa-duotone.fa-film-slash:after,.fad.fa-film-slash:after{content:"\e179\e179"}.fa-duotone.fa-square-arrow-down-right:after,.fad.fa-square-arrow-down-right:after{content:"\e262\e262"}.fa-duotone.fa-book-sparkles:after,.fa-duotone.fa-book-spells:after,.fad.fa-book-sparkles:after,.fad.fa-book-spells:after{content:"\f6b8\f6b8"}.fa-duotone.fa-washer:after,.fa-duotone.fa-washing-machine:after,.fad.fa-washer:after,.fad.fa-washing-machine:after{content:"\f898\f898"}.fa-duotone.fa-child:after,.fad.fa-child:after{content:"\f1ae\f1ae"}.fa-duotone.fa-lira-sign:after,.fad.fa-lira-sign:after{content:"\f195\f195"}.fa-duotone.fa-user-visor:after,.fad.fa-user-visor:after{content:"\e04c\e04c"}.fa-duotone.fa-file-plus-minus:after,.fad.fa-file-plus-minus:after{content:"\e177\e177"}.fa-duotone.fa-chess-clock-alt:after,.fa-duotone.fa-chess-clock-flip:after,.fad.fa-chess-clock-alt:after,.fad.fa-chess-clock-flip:after{content:"\f43e\f43e"}.fa-duotone.fa-satellite:after,.fad.fa-satellite:after{content:"\f7bf\f7bf"}.fa-duotone.fa-truck-fire:after,.fad.fa-truck-fire:after{content:"\e65a\e65a"}.fa-duotone.fa-plane-lock:after,.fad.fa-plane-lock:after{content:"\e558\e558"}.fa-duotone.fa-steering-wheel:after,.fad.fa-steering-wheel:after{content:"\f622\f622"}.fa-duotone.fa-tag:after,.fad.fa-tag:after{content:"\f02b\f02b"}.fa-duotone.fa-stretcher:after,.fad.fa-stretcher:after{content:"\f825\f825"}.fa-duotone.fa-book-law:after,.fa-duotone.fa-book-section:after,.fad.fa-book-law:after,.fad.fa-book-section:after{content:"\e0c1\e0c1"}.fa-duotone.fa-inboxes:after,.fad.fa-inboxes:after{content:"\e1bb\e1bb"}.fa-duotone.fa-coffee-bean:after,.fad.fa-coffee-bean:after{content:"\e13e\e13e"}.fa-duotone.fa-circle-yen:after,.fad.fa-circle-yen:after{content:"\e5d0\e5d0"}.fa-duotone.fa-brackets-curly:after,.fad.fa-brackets-curly:after{content:"\f7ea\f7ea"}.fa-duotone.fa-ellipsis-stroke-vertical:after,.fa-duotone.fa-ellipsis-v-alt:after,.fad.fa-ellipsis-stroke-vertical:after,.fad.fa-ellipsis-v-alt:after{content:"\f39c\f39c"}.fa-duotone.fa-comment:after,.fad.fa-comment:after{content:"\f075\f075"}.fa-duotone.fa-square-1:after,.fad.fa-square-1:after{content:"\e256\e256"}.fa-duotone.fa-birthday-cake:after,.fa-duotone.fa-cake-candles:after,.fa-duotone.fa-cake:after,.fad.fa-birthday-cake:after,.fad.fa-cake-candles:after,.fad.fa-cake:after{content:"\f1fd\f1fd"}.fa-duotone.fa-head-side:after,.fad.fa-head-side:after{content:"\f6e9\f6e9"}.fa-duotone.fa-truck-ladder:after,.fad.fa-truck-ladder:after{content:"\e657\e657"}.fa-duotone.fa-envelope:after,.fad.fa-envelope:after{content:"\f0e0\f0e0"}.fa-duotone.fa-dolly-empty:after,.fad.fa-dolly-empty:after{content:"\f473\f473"}.fa-duotone.fa-face-tissue:after,.fad.fa-face-tissue:after{content:"\e39c\e39c"}.fa-duotone.fa-angle-double-up:after,.fa-duotone.fa-angles-up:after,.fad.fa-angle-double-up:after,.fad.fa-angles-up:after{content:"\f102\f102"}.fa-duotone.fa-bin-recycle:after,.fad.fa-bin-recycle:after{content:"\e5f7\e5f7"}.fa-duotone.fa-paperclip:after,.fad.fa-paperclip:after{content:"\f0c6\f0c6"}.fa-duotone.fa-chart-line-down:after,.fad.fa-chart-line-down:after{content:"\f64d\f64d"}.fa-duotone.fa-arrow-right-to-city:after,.fad.fa-arrow-right-to-city:after{content:"\e4b3\e4b3"}.fa-duotone.fa-lock-a:after,.fad.fa-lock-a:after{content:"\e422\e422"}.fa-duotone.fa-ribbon:after,.fad.fa-ribbon:after{content:"\f4d6\f4d6"}.fa-duotone.fa-lungs:after,.fad.fa-lungs:after{content:"\f604\f604"}.fa-duotone.fa-person-pinball:after,.fad.fa-person-pinball:after{content:"\e21d\e21d"}.fa-duotone.fa-arrow-up-9-1:after,.fa-duotone.fa-sort-numeric-up-alt:after,.fad.fa-arrow-up-9-1:after,.fad.fa-sort-numeric-up-alt:after{content:"\f887\f887"}.fa-duotone.fa-apple-core:after,.fad.fa-apple-core:after{content:"\e08f\e08f"}.fa-duotone.fa-circle-y:after,.fad.fa-circle-y:after{content:"\e12f\e12f"}.fa-duotone.fa-h6:after,.fad.fa-h6:after{content:"\e413\e413"}.fa-duotone.fa-litecoin-sign:after,.fad.fa-litecoin-sign:after{content:"\e1d3\e1d3"}.fa-duotone.fa-circle-small:after,.fad.fa-circle-small:after{content:"\e122\e122"}.fa-duotone.fa-border-none:after,.fad.fa-border-none:after{content:"\f850\f850"}.fa-duotone.fa-arrow-turn-down-left:after,.fad.fa-arrow-turn-down-left:after{content:"\e2e1\e2e1"}.fa-duotone.fa-circle-nodes:after,.fad.fa-circle-nodes:after{content:"\e4e2\e4e2"}.fa-duotone.fa-parachute-box:after,.fad.fa-parachute-box:after{content:"\f4cd\f4cd"}.fa-duotone.fa-reflect-horizontal:after,.fad.fa-reflect-horizontal:after{content:"\e664\e664"}.fa-duotone.fa-comment-alt-medical:after,.fa-duotone.fa-message-medical:after,.fad.fa-comment-alt-medical:after,.fad.fa-message-medical:after{content:"\f7f4\f7f4"}.fa-duotone.fa-rugby-ball:after,.fad.fa-rugby-ball:after{content:"\e3c6\e3c6"}.fa-duotone.fa-comment-music:after,.fad.fa-comment-music:after{content:"\f8b0\f8b0"}.fa-duotone.fa-indent:after,.fad.fa-indent:after{content:"\f03c\f03c"}.fa-duotone.fa-tree-alt:after,.fa-duotone.fa-tree-deciduous:after,.fad.fa-tree-alt:after,.fad.fa-tree-deciduous:after{content:"\f400\f400"}.fa-duotone.fa-puzzle-piece-alt:after,.fa-duotone.fa-puzzle-piece-simple:after,.fad.fa-puzzle-piece-alt:after,.fad.fa-puzzle-piece-simple:after{content:"\e231\e231"}.fa-duotone.fa-truck-field-un:after,.fad.fa-truck-field-un:after{content:"\e58e\e58e"}.fa-duotone.fa-nfc-trash:after,.fad.fa-nfc-trash:after{content:"\e1fd\e1fd"}.fa-duotone.fa-hourglass-empty:after,.fa-duotone.fa-hourglass:after,.fad.fa-hourglass-empty:after,.fad.fa-hourglass:after{content:"\f254\f254"}.fa-duotone.fa-mountain:after,.fad.fa-mountain:after{content:"\f6fc\f6fc"}.fa-duotone.fa-file-times:after,.fa-duotone.fa-file-xmark:after,.fad.fa-file-times:after,.fad.fa-file-xmark:after{content:"\f317\f317"}.fa-duotone.fa-home-heart:after,.fa-duotone.fa-house-heart:after,.fad.fa-home-heart:after,.fad.fa-house-heart:after{content:"\f4c9\f4c9"}.fa-duotone.fa-house-chimney-blank:after,.fad.fa-house-chimney-blank:after{content:"\e3b0\e3b0"}.fa-duotone.fa-meter-bolt:after,.fad.fa-meter-bolt:after{content:"\e1e9\e1e9"}.fa-duotone.fa-user-doctor:after,.fa-duotone.fa-user-md:after,.fad.fa-user-doctor:after,.fad.fa-user-md:after{content:"\f0f0\f0f0"}.fa-duotone.fa-slash-back:after,.fad.fa-slash-back:after{content:"\5c\5c"}.fa-duotone.fa-circle-info:after,.fa-duotone.fa-info-circle:after,.fad.fa-circle-info:after,.fad.fa-info-circle:after{content:"\f05a\f05a"}.fa-duotone.fa-fishing-rod:after,.fad.fa-fishing-rod:after{content:"\e3a8\e3a8"}.fa-duotone.fa-hammer-crash:after,.fad.fa-hammer-crash:after{content:"\e414\e414"}.fa-duotone.fa-message-heart:after,.fad.fa-message-heart:after{content:"\e5c9\e5c9"}.fa-duotone.fa-cloud-meatball:after,.fad.fa-cloud-meatball:after{content:"\f73b\f73b"}.fa-duotone.fa-camera-polaroid:after,.fad.fa-camera-polaroid:after{content:"\f8aa\f8aa"}.fa-duotone.fa-camera-alt:after,.fa-duotone.fa-camera:after,.fad.fa-camera-alt:after,.fad.fa-camera:after{content:"\f030\f030"}.fa-duotone.fa-square-virus:after,.fad.fa-square-virus:after{content:"\e578\e578"}.fa-duotone.fa-cart-arrow-up:after,.fad.fa-cart-arrow-up:after{content:"\e3ee\e3ee"}.fa-duotone.fa-meteor:after,.fad.fa-meteor:after{content:"\f753\f753"}.fa-duotone.fa-car-on:after,.fad.fa-car-on:after{content:"\e4dd\e4dd"}.fa-duotone.fa-sleigh:after,.fad.fa-sleigh:after{content:"\f7cc\f7cc"}.fa-duotone.fa-arrow-down-1-9:after,.fa-duotone.fa-sort-numeric-asc:after,.fa-duotone.fa-sort-numeric-down:after,.fad.fa-arrow-down-1-9:after,.fad.fa-sort-numeric-asc:after,.fad.fa-sort-numeric-down:after{content:"\f162\f162"}.fa-duotone.fa-buoy-mooring:after,.fad.fa-buoy-mooring:after{content:"\e5b6\e5b6"}.fa-duotone.fa-square-4:after,.fad.fa-square-4:after{content:"\e259\e259"}.fa-duotone.fa-hand-holding-droplet:after,.fa-duotone.fa-hand-holding-water:after,.fad.fa-hand-holding-droplet:after,.fad.fa-hand-holding-water:after{content:"\f4c1\f4c1"}.fa-duotone.fa-file-eps:after,.fad.fa-file-eps:after{content:"\e644\e644"}.fa-duotone.fa-tricycle-adult:after,.fad.fa-tricycle-adult:after{content:"\e5c4\e5c4"}.fa-duotone.fa-waveform:after,.fad.fa-waveform:after{content:"\f8f1\f8f1"}.fa-duotone.fa-water:after,.fad.fa-water:after{content:"\f773\f773"}.fa-duotone.fa-star-sharp-half-alt:after,.fa-duotone.fa-star-sharp-half-stroke:after,.fad.fa-star-sharp-half-alt:after,.fad.fa-star-sharp-half-stroke:after{content:"\e28d\e28d"}.fa-duotone.fa-nfc-signal:after,.fad.fa-nfc-signal:after{content:"\e1fb\e1fb"}.fa-duotone.fa-plane-prop:after,.fad.fa-plane-prop:after{content:"\e22b\e22b"}.fa-duotone.fa-calendar-check:after,.fad.fa-calendar-check:after{content:"\f274\f274"}.fa-duotone.fa-clock-desk:after,.fad.fa-clock-desk:after{content:"\e134\e134"}.fa-duotone.fa-calendar-clock:after,.fa-duotone.fa-calendar-time:after,.fad.fa-calendar-clock:after,.fad.fa-calendar-time:after{content:"\e0d2\e0d2"}.fa-duotone.fa-braille:after,.fad.fa-braille:after{content:"\f2a1\f2a1"}.fa-duotone.fa-prescription-bottle-alt:after,.fa-duotone.fa-prescription-bottle-medical:after,.fad.fa-prescription-bottle-alt:after,.fad.fa-prescription-bottle-medical:after{content:"\f486\f486"}.fa-duotone.fa-plate-utensils:after,.fad.fa-plate-utensils:after{content:"\e43b\e43b"}.fa-duotone.fa-family-pants:after,.fad.fa-family-pants:after{content:"\e302\e302"}.fa-duotone.fa-hose-reel:after,.fad.fa-hose-reel:after{content:"\e41a\e41a"}.fa-duotone.fa-house-window:after,.fad.fa-house-window:after{content:"\e3b3\e3b3"}.fa-duotone.fa-landmark:after,.fad.fa-landmark:after{content:"\f66f\f66f"}.fa-duotone.fa-truck:after,.fad.fa-truck:after{content:"\f0d1\f0d1"}.fa-duotone.fa-music-magnifying-glass:after,.fad.fa-music-magnifying-glass:after{content:"\e662\e662"}.fa-duotone.fa-crosshairs:after,.fad.fa-crosshairs:after{content:"\f05b\f05b"}.fa-duotone.fa-cloud-rainbow:after,.fad.fa-cloud-rainbow:after{content:"\f73e\f73e"}.fa-duotone.fa-person-cane:after,.fad.fa-person-cane:after{content:"\e53c\e53c"}.fa-duotone.fa-alien:after,.fad.fa-alien:after{content:"\f8f5\f8f5"}.fa-duotone.fa-tent:after,.fad.fa-tent:after{content:"\e57d\e57d"}.fa-duotone.fa-laptop-binary:after,.fad.fa-laptop-binary:after{content:"\e5e7\e5e7"}.fa-duotone.fa-vest-patches:after,.fad.fa-vest-patches:after{content:"\e086\e086"}.fa-duotone.fa-people-dress-simple:after,.fad.fa-people-dress-simple:after{content:"\e218\e218"}.fa-duotone.fa-check-double:after,.fad.fa-check-double:after{content:"\f560\f560"}.fa-duotone.fa-arrow-down-a-z:after,.fa-duotone.fa-sort-alpha-asc:after,.fa-duotone.fa-sort-alpha-down:after,.fad.fa-arrow-down-a-z:after,.fad.fa-sort-alpha-asc:after,.fad.fa-sort-alpha-down:after{content:"\f15d\f15d"}.fa-duotone.fa-bowling-ball-pin:after,.fad.fa-bowling-ball-pin:after{content:"\e0c3\e0c3"}.fa-duotone.fa-bell-school-slash:after,.fad.fa-bell-school-slash:after{content:"\f5d6\f5d6"}.fa-duotone.fa-plus-large:after,.fad.fa-plus-large:after{content:"\e59e\e59e"}.fa-duotone.fa-money-bill-wheat:after,.fad.fa-money-bill-wheat:after{content:"\e52a\e52a"}.fa-duotone.fa-camera-viewfinder:after,.fa-duotone.fa-screenshot:after,.fad.fa-camera-viewfinder:after,.fad.fa-screenshot:after{content:"\e0da\e0da"}.fa-duotone.fa-comment-alt-music:after,.fa-duotone.fa-message-music:after,.fad.fa-comment-alt-music:after,.fad.fa-message-music:after{content:"\f8af\f8af"}.fa-duotone.fa-car-building:after,.fad.fa-car-building:after{content:"\f859\f859"}.fa-duotone.fa-border-bottom-right:after,.fa-duotone.fa-border-style-alt:after,.fad.fa-border-bottom-right:after,.fad.fa-border-style-alt:after{content:"\f854\f854"}.fa-duotone.fa-octagon:after,.fad.fa-octagon:after{content:"\f306\f306"}.fa-duotone.fa-comment-arrow-up-right:after,.fad.fa-comment-arrow-up-right:after{content:"\e145\e145"}.fa-duotone.fa-octagon-divide:after,.fad.fa-octagon-divide:after{content:"\e203\e203"}.fa-duotone.fa-cookie:after,.fad.fa-cookie:after{content:"\f563\f563"}.fa-duotone.fa-arrow-left-rotate:after,.fa-duotone.fa-arrow-rotate-back:after,.fa-duotone.fa-arrow-rotate-backward:after,.fa-duotone.fa-arrow-rotate-left:after,.fa-duotone.fa-undo:after,.fad.fa-arrow-left-rotate:after,.fad.fa-arrow-rotate-back:after,.fad.fa-arrow-rotate-backward:after,.fad.fa-arrow-rotate-left:after,.fad.fa-undo:after{content:"\f0e2\f0e2"}.fa-duotone.fa-tv-music:after,.fad.fa-tv-music:after{content:"\f8e6\f8e6"}.fa-duotone.fa-hard-drive:after,.fa-duotone.fa-hdd:after,.fad.fa-hard-drive:after,.fad.fa-hdd:after{content:"\f0a0\f0a0"}.fa-duotone.fa-reel:after,.fad.fa-reel:after{content:"\e238\e238"}.fa-duotone.fa-face-grin-squint-tears:after,.fa-duotone.fa-grin-squint-tears:after,.fad.fa-face-grin-squint-tears:after,.fad.fa-grin-squint-tears:after{content:"\f586\f586"}.fa-duotone.fa-dumbbell:after,.fad.fa-dumbbell:after{content:"\f44b\f44b"}.fa-duotone.fa-list-alt:after,.fa-duotone.fa-rectangle-list:after,.fad.fa-list-alt:after,.fad.fa-rectangle-list:after{content:"\f022\f022"}.fa-duotone.fa-tarp-droplet:after,.fad.fa-tarp-droplet:after{content:"\e57c\e57c"}.fa-duotone.fa-alarm-exclamation:after,.fad.fa-alarm-exclamation:after{content:"\f843\f843"}.fa-duotone.fa-house-medical-circle-check:after,.fad.fa-house-medical-circle-check:after{content:"\e511\e511"}.fa-duotone.fa-traffic-cone:after,.fad.fa-traffic-cone:after{content:"\f636\f636"}.fa-duotone.fa-grate:after,.fad.fa-grate:after{content:"\e193\e193"}.fa-duotone.fa-arrow-down-right:after,.fad.fa-arrow-down-right:after{content:"\e093\e093"}.fa-duotone.fa-person-skiing-nordic:after,.fa-duotone.fa-skiing-nordic:after,.fad.fa-person-skiing-nordic:after,.fad.fa-skiing-nordic:after{content:"\f7ca\f7ca"}.fa-duotone.fa-calendar-plus:after,.fad.fa-calendar-plus:after{content:"\f271\f271"}.fa-duotone.fa-person-from-portal:after,.fa-duotone.fa-portal-exit:after,.fad.fa-person-from-portal:after,.fad.fa-portal-exit:after{content:"\e023\e023"}.fa-duotone.fa-plane-arrival:after,.fad.fa-plane-arrival:after{content:"\f5af\f5af"}.fa-duotone.fa-cowbell-circle-plus:after,.fa-duotone.fa-cowbell-more:after,.fad.fa-cowbell-circle-plus:after,.fad.fa-cowbell-more:after{content:"\f8b4\f8b4"}.fa-duotone.fa-arrow-alt-circle-left:after,.fa-duotone.fa-circle-left:after,.fad.fa-arrow-alt-circle-left:after,.fad.fa-circle-left:after{content:"\f359\f359"}.fa-duotone.fa-distribute-spacing-vertical:after,.fad.fa-distribute-spacing-vertical:after{content:"\e366\e366"}.fa-duotone.fa-signal-alt-2:after,.fa-duotone.fa-signal-bars-fair:after,.fad.fa-signal-alt-2:after,.fad.fa-signal-bars-fair:after{content:"\f692\f692"}.fa-duotone.fa-sportsball:after,.fad.fa-sportsball:after{content:"\e44b\e44b"}.fa-duotone.fa-game-console-handheld-crank:after,.fad.fa-game-console-handheld-crank:after{content:"\e5b9\e5b9"}.fa-duotone.fa-subway:after,.fa-duotone.fa-train-subway:after,.fad.fa-subway:after,.fad.fa-train-subway:after{content:"\f239\f239"}.fa-duotone.fa-chart-gantt:after,.fad.fa-chart-gantt:after{content:"\e0e4\e0e4"}.fa-duotone.fa-face-smile-upside-down:after,.fad.fa-face-smile-upside-down:after{content:"\e395\e395"}.fa-duotone.fa-ball-pile:after,.fad.fa-ball-pile:after{content:"\f77e\f77e"}.fa-duotone.fa-badge-dollar:after,.fad.fa-badge-dollar:after{content:"\f645\f645"}.fa-duotone.fa-money-bills-alt:after,.fa-duotone.fa-money-bills-simple:after,.fad.fa-money-bills-alt:after,.fad.fa-money-bills-simple:after{content:"\e1f4\e1f4"}.fa-duotone.fa-list-timeline:after,.fad.fa-list-timeline:after{content:"\e1d1\e1d1"}.fa-duotone.fa-indian-rupee-sign:after,.fa-duotone.fa-indian-rupee:after,.fa-duotone.fa-inr:after,.fad.fa-indian-rupee-sign:after,.fad.fa-indian-rupee:after,.fad.fa-inr:after{content:"\e1bc\e1bc"}.fa-duotone.fa-crop-alt:after,.fa-duotone.fa-crop-simple:after,.fad.fa-crop-alt:after,.fad.fa-crop-simple:after{content:"\f565\f565"}.fa-duotone.fa-money-bill-1:after,.fa-duotone.fa-money-bill-alt:after,.fad.fa-money-bill-1:after,.fad.fa-money-bill-alt:after{content:"\f3d1\f3d1"}.fa-duotone.fa-left-long:after,.fa-duotone.fa-long-arrow-alt-left:after,.fad.fa-left-long:after,.fad.fa-long-arrow-alt-left:after{content:"\f30a\f30a"}.fa-duotone.fa-keyboard-down:after,.fad.fa-keyboard-down:after{content:"\e1c2\e1c2"}.fa-duotone.fa-circle-up-right:after,.fad.fa-circle-up-right:after{content:"\e129\e129"}.fa-duotone.fa-cloud-bolt-moon:after,.fa-duotone.fa-thunderstorm-moon:after,.fad.fa-cloud-bolt-moon:after,.fad.fa-thunderstorm-moon:after{content:"\f76d\f76d"}.fa-duotone.fa-turn-left-up:after,.fad.fa-turn-left-up:after{content:"\e638\e638"}.fa-duotone.fa-dna:after,.fad.fa-dna:after{content:"\f471\f471"}.fa-duotone.fa-virus-slash:after,.fad.fa-virus-slash:after{content:"\e075\e075"}.fa-duotone.fa-bracket-round-right:after,.fad.fa-bracket-round-right:after{content:"\29\29"}.fa-duotone.fa-circle-sterling:after,.fad.fa-circle-sterling:after{content:"\e5cf\e5cf"}.fa-duotone.fa-circle-5:after,.fad.fa-circle-5:after{content:"\e0f2\e0f2"}.fa-duotone.fa-minus:after,.fa-duotone.fa-subtract:after,.fad.fa-minus:after,.fad.fa-subtract:after{content:"\f068\f068"}.fa-duotone.fa-fire-flame:after,.fa-duotone.fa-flame:after,.fad.fa-fire-flame:after,.fad.fa-flame:after{content:"\f6df\f6df"}.fa-duotone.fa-arrow-alt-to-right:after,.fa-duotone.fa-right-to-line:after,.fad.fa-arrow-alt-to-right:after,.fad.fa-right-to-line:after{content:"\f34c\f34c"}.fa-duotone.fa-gif:after,.fad.fa-gif:after{content:"\e190\e190"}.fa-duotone.fa-chess:after,.fad.fa-chess:after{content:"\f439\f439"}.fa-duotone.fa-trash-slash:after,.fad.fa-trash-slash:after{content:"\e2b3\e2b3"}.fa-duotone.fa-arrow-left-long:after,.fa-duotone.fa-long-arrow-left:after,.fad.fa-arrow-left-long:after,.fad.fa-long-arrow-left:after{content:"\f177\f177"}.fa-duotone.fa-plug-circle-check:after,.fad.fa-plug-circle-check:after{content:"\e55c\e55c"}.fa-duotone.fa-font-case:after,.fad.fa-font-case:after{content:"\f866\f866"}.fa-duotone.fa-street-view:after,.fad.fa-street-view:after{content:"\f21d\f21d"}.fa-duotone.fa-arrow-down-left:after,.fad.fa-arrow-down-left:after{content:"\e091\e091"}.fa-duotone.fa-franc-sign:after,.fad.fa-franc-sign:after{content:"\e18f\e18f"}.fa-duotone.fa-flask-poison:after,.fa-duotone.fa-flask-round-poison:after,.fad.fa-flask-poison:after,.fad.fa-flask-round-poison:after{content:"\f6e0\f6e0"}.fa-duotone.fa-volume-off:after,.fad.fa-volume-off:after{content:"\f026\f026"}.fa-duotone.fa-book-circle-arrow-right:after,.fad.fa-book-circle-arrow-right:after{content:"\e0bc\e0bc"}.fa-duotone.fa-chart-user:after,.fa-duotone.fa-user-chart:after,.fad.fa-chart-user:after,.fad.fa-user-chart:after{content:"\f6a3\f6a3"}.fa-duotone.fa-american-sign-language-interpreting:after,.fa-duotone.fa-asl-interpreting:after,.fa-duotone.fa-hands-american-sign-language-interpreting:after,.fa-duotone.fa-hands-asl-interpreting:after,.fad.fa-american-sign-language-interpreting:after,.fad.fa-asl-interpreting:after,.fad.fa-hands-american-sign-language-interpreting:after,.fad.fa-hands-asl-interpreting:after{content:"\f2a3\f2a3"}.fa-duotone.fa-presentation-screen:after,.fa-duotone.fa-presentation:after,.fad.fa-presentation-screen:after,.fad.fa-presentation:after{content:"\f685\f685"}.fa-duotone.fa-circle-bolt:after,.fad.fa-circle-bolt:after{content:"\e0fe\e0fe"}.fa-duotone.fa-face-smile-halo:after,.fad.fa-face-smile-halo:after{content:"\e38f\e38f"}.fa-duotone.fa-cart-circle-arrow-down:after,.fad.fa-cart-circle-arrow-down:after{content:"\e3ef\e3ef"}.fa-duotone.fa-house-person-arrive:after,.fa-duotone.fa-house-person-return:after,.fa-duotone.fa-house-return:after,.fad.fa-house-person-arrive:after,.fad.fa-house-person-return:after,.fad.fa-house-return:after{content:"\e011\e011"}.fa-duotone.fa-comment-alt-times:after,.fa-duotone.fa-message-times:after,.fa-duotone.fa-message-xmark:after,.fad.fa-comment-alt-times:after,.fad.fa-message-times:after,.fad.fa-message-xmark:after{content:"\f4ab\f4ab"}.fa-duotone.fa-file-award:after,.fa-duotone.fa-file-certificate:after,.fad.fa-file-award:after,.fad.fa-file-certificate:after{content:"\f5f3\f5f3"}.fa-duotone.fa-user-doctor-hair-long:after,.fad.fa-user-doctor-hair-long:after{content:"\e459\e459"}.fa-duotone.fa-camera-home:after,.fa-duotone.fa-camera-security:after,.fad.fa-camera-home:after,.fad.fa-camera-security:after{content:"\f8fe\f8fe"}.fa-duotone.fa-cog:after,.fa-duotone.fa-gear:after,.fad.fa-cog:after,.fad.fa-gear:after{content:"\f013\f013"}.fa-duotone.fa-droplet-slash:after,.fa-duotone.fa-tint-slash:after,.fad.fa-droplet-slash:after,.fad.fa-tint-slash:after{content:"\f5c7\f5c7"}.fa-duotone.fa-book-heart:after,.fad.fa-book-heart:after{content:"\f499\f499"}.fa-duotone.fa-mosque:after,.fad.fa-mosque:after{content:"\f678\f678"}.fa-duotone.fa-duck:after,.fad.fa-duck:after{content:"\f6d8\f6d8"}.fa-duotone.fa-mosquito:after,.fad.fa-mosquito:after{content:"\e52b\e52b"}.fa-duotone.fa-star-of-david:after,.fad.fa-star-of-david:after{content:"\f69a\f69a"}.fa-duotone.fa-flag-alt:after,.fa-duotone.fa-flag-swallowtail:after,.fad.fa-flag-alt:after,.fad.fa-flag-swallowtail:after{content:"\f74c\f74c"}.fa-duotone.fa-person-military-rifle:after,.fad.fa-person-military-rifle:after{content:"\e54b\e54b"}.fa-duotone.fa-car-garage:after,.fad.fa-car-garage:after{content:"\f5e2\f5e2"}.fa-duotone.fa-cart-shopping:after,.fa-duotone.fa-shopping-cart:after,.fad.fa-cart-shopping:after,.fad.fa-shopping-cart:after{content:"\f07a\f07a"}.fa-duotone.fa-book-font:after,.fad.fa-book-font:after{content:"\e0bf\e0bf"}.fa-duotone.fa-shield-plus:after,.fad.fa-shield-plus:after{content:"\e24a\e24a"}.fa-duotone.fa-vials:after,.fad.fa-vials:after{content:"\f493\f493"}.fa-duotone.fa-eye-dropper-full:after,.fad.fa-eye-dropper-full:after{content:"\e172\e172"}.fa-duotone.fa-distribute-spacing-horizontal:after,.fad.fa-distribute-spacing-horizontal:after{content:"\e365\e365"}.fa-duotone.fa-tablet-rugged:after,.fad.fa-tablet-rugged:after{content:"\f48f\f48f"}.fa-duotone.fa-temperature-frigid:after,.fa-duotone.fa-temperature-snow:after,.fad.fa-temperature-frigid:after,.fad.fa-temperature-snow:after{content:"\f768\f768"}.fa-duotone.fa-moped:after,.fad.fa-moped:after{content:"\e3b9\e3b9"}.fa-duotone.fa-face-smile-plus:after,.fa-duotone.fa-smile-plus:after,.fad.fa-face-smile-plus:after,.fad.fa-smile-plus:after{content:"\f5b9\f5b9"}.fa-duotone.fa-radio-alt:after,.fa-duotone.fa-radio-tuner:after,.fad.fa-radio-alt:after,.fad.fa-radio-tuner:after{content:"\f8d8\f8d8"}.fa-duotone.fa-face-swear:after,.fad.fa-face-swear:after{content:"\e399\e399"}.fa-duotone.fa-water-arrow-down:after,.fa-duotone.fa-water-lower:after,.fad.fa-water-arrow-down:after,.fad.fa-water-lower:after{content:"\f774\f774"}.fa-duotone.fa-scanner-touchscreen:after,.fad.fa-scanner-touchscreen:after{content:"\f48a\f48a"}.fa-duotone.fa-circle-7:after,.fad.fa-circle-7:after{content:"\e0f4\e0f4"}.fa-duotone.fa-plug-circle-plus:after,.fad.fa-plug-circle-plus:after{content:"\e55f\e55f"}.fa-duotone.fa-person-ski-jumping:after,.fa-duotone.fa-ski-jump:after,.fad.fa-person-ski-jumping:after,.fad.fa-ski-jump:after{content:"\f7c7\f7c7"}.fa-duotone.fa-place-of-worship:after,.fad.fa-place-of-worship:after{content:"\f67f\f67f"}.fa-duotone.fa-water-arrow-up:after,.fa-duotone.fa-water-rise:after,.fad.fa-water-arrow-up:after,.fad.fa-water-rise:after{content:"\f775\f775"}.fa-duotone.fa-waveform-lines:after,.fa-duotone.fa-waveform-path:after,.fad.fa-waveform-lines:after,.fad.fa-waveform-path:after{content:"\f8f2\f8f2"}.fa-duotone.fa-split:after,.fad.fa-split:after{content:"\e254\e254"}.fa-duotone.fa-film-canister:after,.fa-duotone.fa-film-cannister:after,.fad.fa-film-canister:after,.fad.fa-film-cannister:after{content:"\f8b7\f8b7"}.fa-duotone.fa-folder-times:after,.fa-duotone.fa-folder-xmark:after,.fad.fa-folder-times:after,.fad.fa-folder-xmark:after{content:"\f65f\f65f"}.fa-duotone.fa-toilet-paper-alt:after,.fa-duotone.fa-toilet-paper-blank:after,.fad.fa-toilet-paper-alt:after,.fad.fa-toilet-paper-blank:after{content:"\f71f\f71f"}.fa-duotone.fa-tablet-android-alt:after,.fa-duotone.fa-tablet-screen:after,.fad.fa-tablet-android-alt:after,.fad.fa-tablet-screen:after{content:"\f3fc\f3fc"}.fa-duotone.fa-hexagon-vertical-nft-slanted:after,.fad.fa-hexagon-vertical-nft-slanted:after{content:"\e506\e506"}.fa-duotone.fa-folder-music:after,.fad.fa-folder-music:after{content:"\e18d\e18d"}.fa-duotone.fa-desktop-medical:after,.fa-duotone.fa-display-medical:after,.fad.fa-desktop-medical:after,.fad.fa-display-medical:after{content:"\e166\e166"}.fa-duotone.fa-share-all:after,.fad.fa-share-all:after{content:"\f367\f367"}.fa-duotone.fa-peapod:after,.fad.fa-peapod:after{content:"\e31c\e31c"}.fa-duotone.fa-chess-clock:after,.fad.fa-chess-clock:after{content:"\f43d\f43d"}.fa-duotone.fa-axe:after,.fad.fa-axe:after{content:"\f6b2\f6b2"}.fa-duotone.fa-square-d:after,.fad.fa-square-d:after{content:"\e268\e268"}.fa-duotone.fa-grip-vertical:after,.fad.fa-grip-vertical:after{content:"\f58e\f58e"}.fa-duotone.fa-mobile-signal-out:after,.fad.fa-mobile-signal-out:after{content:"\e1f0\e1f0"}.fa-duotone.fa-arrow-turn-up:after,.fa-duotone.fa-level-up:after,.fad.fa-arrow-turn-up:after,.fad.fa-level-up:after{content:"\f148\f148"}.fa-duotone.fa-u:after,.fad.fa-u:after{content:"\55\55"}.fa-duotone.fa-arrow-up-from-dotted-line:after,.fad.fa-arrow-up-from-dotted-line:after{content:"\e09b\e09b"}.fa-duotone.fa-square-root-alt:after,.fa-duotone.fa-square-root-variable:after,.fad.fa-square-root-alt:after,.fad.fa-square-root-variable:after{content:"\f698\f698"}.fa-duotone.fa-light-switch-on:after,.fad.fa-light-switch-on:after{content:"\e019\e019"}.fa-duotone.fa-arrow-down-arrow-up:after,.fa-duotone.fa-sort-alt:after,.fad.fa-arrow-down-arrow-up:after,.fad.fa-sort-alt:after{content:"\f883\f883"}.fa-duotone.fa-raindrops:after,.fad.fa-raindrops:after{content:"\f75c\f75c"}.fa-duotone.fa-dash:after,.fa-duotone.fa-minus-large:after,.fad.fa-dash:after,.fad.fa-minus-large:after{content:"\e404\e404"}.fa-duotone.fa-clock-four:after,.fa-duotone.fa-clock:after,.fad.fa-clock-four:after,.fad.fa-clock:after{content:"\f017\f017"}.fa-duotone.fa-input-numeric:after,.fad.fa-input-numeric:after{content:"\e1bd\e1bd"}.fa-duotone.fa-truck-tow:after,.fad.fa-truck-tow:after{content:"\e2b8\e2b8"}.fa-duotone.fa-backward-step:after,.fa-duotone.fa-step-backward:after,.fad.fa-backward-step:after,.fad.fa-step-backward:after{content:"\f048\f048"}.fa-duotone.fa-pallet:after,.fad.fa-pallet:after{content:"\f482\f482"}.fa-duotone.fa-car-bolt:after,.fad.fa-car-bolt:after{content:"\e341\e341"}.fa-duotone.fa-arrows-maximize:after,.fa-duotone.fa-expand-arrows:after,.fad.fa-arrows-maximize:after,.fad.fa-expand-arrows:after{content:"\f31d\f31d"}.fa-duotone.fa-faucet:after,.fad.fa-faucet:after{content:"\e005\e005"}.fa-duotone.fa-cloud-sleet:after,.fad.fa-cloud-sleet:after{content:"\f741\f741"}.fa-duotone.fa-lamp-street:after,.fad.fa-lamp-street:after{content:"\e1c5\e1c5"}.fa-duotone.fa-list-radio:after,.fad.fa-list-radio:after{content:"\e1d0\e1d0"}.fa-duotone.fa-pen-nib-slash:after,.fad.fa-pen-nib-slash:after{content:"\e4a1\e4a1"}.fa-duotone.fa-baseball-bat-ball:after,.fad.fa-baseball-bat-ball:after{content:"\f432\f432"}.fa-duotone.fa-square-up-left:after,.fad.fa-square-up-left:after{content:"\e282\e282"}.fa-duotone.fa-overline:after,.fad.fa-overline:after{content:"\f876\f876"}.fa-duotone.fa-s:after,.fad.fa-s:after{content:"\53\53"}.fa-duotone.fa-timeline:after,.fad.fa-timeline:after{content:"\e29c\e29c"}.fa-duotone.fa-keyboard:after,.fad.fa-keyboard:after{content:"\f11c\f11c"}.fa-duotone.fa-arrows-from-dotted-line:after,.fad.fa-arrows-from-dotted-line:after{content:"\e0a3\e0a3"}.fa-duotone.fa-usb-drive:after,.fad.fa-usb-drive:after{content:"\f8e9\f8e9"}.fa-duotone.fa-ballot:after,.fad.fa-ballot:after{content:"\f732\f732"}.fa-duotone.fa-caret-down:after,.fad.fa-caret-down:after{content:"\f0d7\f0d7"}.fa-duotone.fa-location-dot-slash:after,.fa-duotone.fa-map-marker-alt-slash:after,.fad.fa-location-dot-slash:after,.fad.fa-map-marker-alt-slash:after{content:"\f605\f605"}.fa-duotone.fa-cards:after,.fad.fa-cards:after{content:"\e3ed\e3ed"}.fa-duotone.fa-clinic-medical:after,.fa-duotone.fa-house-chimney-medical:after,.fad.fa-clinic-medical:after,.fad.fa-house-chimney-medical:after{content:"\f7f2\f7f2"}.fa-duotone.fa-boxing-glove:after,.fa-duotone.fa-glove-boxing:after,.fad.fa-boxing-glove:after,.fad.fa-glove-boxing:after{content:"\f438\f438"}.fa-duotone.fa-temperature-3:after,.fa-duotone.fa-temperature-three-quarters:after,.fa-duotone.fa-thermometer-3:after,.fa-duotone.fa-thermometer-three-quarters:after,.fad.fa-temperature-3:after,.fad.fa-temperature-three-quarters:after,.fad.fa-thermometer-3:after,.fad.fa-thermometer-three-quarters:after{content:"\f2c8\f2c8"}.fa-duotone.fa-bell-school:after,.fad.fa-bell-school:after{content:"\f5d5\f5d5"}.fa-duotone.fa-mobile-android-alt:after,.fa-duotone.fa-mobile-screen:after,.fad.fa-mobile-android-alt:after,.fad.fa-mobile-screen:after{content:"\f3cf\f3cf"}.fa-duotone.fa-plane-up:after,.fad.fa-plane-up:after{content:"\e22d\e22d"}.fa-duotone.fa-folder-heart:after,.fad.fa-folder-heart:after{content:"\e189\e189"}.fa-duotone.fa-circle-location-arrow:after,.fa-duotone.fa-location-circle:after,.fad.fa-circle-location-arrow:after,.fad.fa-location-circle:after{content:"\f602\f602"}.fa-duotone.fa-face-head-bandage:after,.fad.fa-face-head-bandage:after{content:"\e37a\e37a"}.fa-duotone.fa-maki-roll:after,.fa-duotone.fa-makizushi:after,.fa-duotone.fa-sushi-roll:after,.fad.fa-maki-roll:after,.fad.fa-makizushi:after,.fad.fa-sushi-roll:after{content:"\e48b\e48b"}.fa-duotone.fa-car-bump:after,.fad.fa-car-bump:after{content:"\f5e0\f5e0"}.fa-duotone.fa-piggy-bank:after,.fad.fa-piggy-bank:after{content:"\f4d3\f4d3"}.fa-duotone.fa-racquet:after,.fad.fa-racquet:after{content:"\f45a\f45a"}.fa-duotone.fa-car-mirrors:after,.fad.fa-car-mirrors:after{content:"\e343\e343"}.fa-duotone.fa-industry-alt:after,.fa-duotone.fa-industry-windows:after,.fad.fa-industry-alt:after,.fad.fa-industry-windows:after{content:"\f3b3\f3b3"}.fa-duotone.fa-bolt-auto:after,.fad.fa-bolt-auto:after{content:"\e0b6\e0b6"}.fa-duotone.fa-battery-3:after,.fa-duotone.fa-battery-half:after,.fad.fa-battery-3:after,.fad.fa-battery-half:after{content:"\f242\f242"}.fa-duotone.fa-flux-capacitor:after,.fad.fa-flux-capacitor:after{content:"\f8ba\f8ba"}.fa-duotone.fa-mountain-city:after,.fad.fa-mountain-city:after{content:"\e52e\e52e"}.fa-duotone.fa-coins:after,.fad.fa-coins:after{content:"\f51e\f51e"}.fa-duotone.fa-honey-pot:after,.fad.fa-honey-pot:after{content:"\e418\e418"}.fa-duotone.fa-olive:after,.fad.fa-olive:after{content:"\e316\e316"}.fa-duotone.fa-khanda:after,.fad.fa-khanda:after{content:"\f66d\f66d"}.fa-duotone.fa-filter-list:after,.fad.fa-filter-list:after{content:"\e17c\e17c"}.fa-duotone.fa-outlet:after,.fad.fa-outlet:after{content:"\e01c\e01c"}.fa-duotone.fa-sliders-h:after,.fa-duotone.fa-sliders:after,.fad.fa-sliders-h:after,.fad.fa-sliders:after{content:"\f1de\f1de"}.fa-duotone.fa-cauldron:after,.fad.fa-cauldron:after{content:"\f6bf\f6bf"}.fa-duotone.fa-people:after,.fad.fa-people:after{content:"\e216\e216"}.fa-duotone.fa-folder-tree:after,.fad.fa-folder-tree:after{content:"\f802\f802"}.fa-duotone.fa-network-wired:after,.fad.fa-network-wired:after{content:"\f6ff\f6ff"}.fa-duotone.fa-croissant:after,.fad.fa-croissant:after{content:"\f7f6\f7f6"}.fa-duotone.fa-map-pin:after,.fad.fa-map-pin:after{content:"\f276\f276"}.fa-duotone.fa-hamsa:after,.fad.fa-hamsa:after{content:"\f665\f665"}.fa-duotone.fa-cent-sign:after,.fad.fa-cent-sign:after{content:"\e3f5\e3f5"}.fa-duotone.fa-swords-laser:after,.fad.fa-swords-laser:after{content:"\e03d\e03d"}.fa-duotone.fa-flask:after,.fad.fa-flask:after{content:"\f0c3\f0c3"}.fa-duotone.fa-person-pregnant:after,.fad.fa-person-pregnant:after{content:"\e31e\e31e"}.fa-duotone.fa-square-u:after,.fad.fa-square-u:after{content:"\e281\e281"}.fa-duotone.fa-wand-sparkles:after,.fad.fa-wand-sparkles:after{content:"\f72b\f72b"}.fa-duotone.fa-router:after,.fad.fa-router:after{content:"\f8da\f8da"}.fa-duotone.fa-ellipsis-v:after,.fa-duotone.fa-ellipsis-vertical:after,.fad.fa-ellipsis-v:after,.fad.fa-ellipsis-vertical:after{content:"\f142\f142"}.fa-duotone.fa-sword-laser-alt:after,.fad.fa-sword-laser-alt:after{content:"\e03c\e03c"}.fa-duotone.fa-ticket:after,.fad.fa-ticket:after{content:"\f145\f145"}.fa-duotone.fa-power-off:after,.fad.fa-power-off:after{content:"\f011\f011"}.fa-duotone.fa-coin:after,.fad.fa-coin:after{content:"\f85c\f85c"}.fa-duotone.fa-laptop-slash:after,.fad.fa-laptop-slash:after{content:"\e1c7\e1c7"}.fa-duotone.fa-long-arrow-alt-right:after,.fa-duotone.fa-right-long:after,.fad.fa-long-arrow-alt-right:after,.fad.fa-right-long:after{content:"\f30b\f30b"}.fa-duotone.fa-circle-b:after,.fad.fa-circle-b:after{content:"\e0fd\e0fd"}.fa-duotone.fa-person-dress-simple:after,.fad.fa-person-dress-simple:after{content:"\e21c\e21c"}.fa-duotone.fa-pipe-collar:after,.fad.fa-pipe-collar:after{content:"\e437\e437"}.fa-duotone.fa-lights-holiday:after,.fad.fa-lights-holiday:after{content:"\f7b2\f7b2"}.fa-duotone.fa-citrus:after,.fad.fa-citrus:after{content:"\e2f4\e2f4"}.fa-duotone.fa-flag-usa:after,.fad.fa-flag-usa:after{content:"\f74d\f74d"}.fa-duotone.fa-laptop-file:after,.fad.fa-laptop-file:after{content:"\e51d\e51d"}.fa-duotone.fa-teletype:after,.fa-duotone.fa-tty:after,.fad.fa-teletype:after,.fad.fa-tty:after{content:"\f1e4\f1e4"}.fa-duotone.fa-chart-tree-map:after,.fad.fa-chart-tree-map:after{content:"\e0ea\e0ea"}.fa-duotone.fa-diagram-next:after,.fad.fa-diagram-next:after{content:"\e476\e476"}.fa-duotone.fa-person-rifle:after,.fad.fa-person-rifle:after{content:"\e54e\e54e"}.fa-duotone.fa-clock-five-thirty:after,.fad.fa-clock-five-thirty:after{content:"\e34a\e34a"}.fa-duotone.fa-pipe-valve:after,.fad.fa-pipe-valve:after{content:"\e439\e439"}.fa-duotone.fa-arrow-up-from-arc:after,.fad.fa-arrow-up-from-arc:after{content:"\e4b4\e4b4"}.fa-duotone.fa-face-spiral-eyes:after,.fad.fa-face-spiral-eyes:after{content:"\e485\e485"}.fa-duotone.fa-compress-wide:after,.fad.fa-compress-wide:after{content:"\f326\f326"}.fa-duotone.fa-circle-phone-hangup:after,.fa-duotone.fa-phone-circle-down:after,.fad.fa-circle-phone-hangup:after,.fad.fa-phone-circle-down:after{content:"\e11d\e11d"}.fa-duotone.fa-gear-complex-code:after,.fad.fa-gear-complex-code:after{content:"\e5eb\e5eb"}.fa-duotone.fa-house-medical-circle-exclamation:after,.fad.fa-house-medical-circle-exclamation:after{content:"\e512\e512"}.fa-duotone.fa-badminton:after,.fad.fa-badminton:after{content:"\e33a\e33a"}.fa-duotone.fa-closed-captioning:after,.fad.fa-closed-captioning:after{content:"\f20a\f20a"}.fa-duotone.fa-hiking:after,.fa-duotone.fa-person-hiking:after,.fad.fa-hiking:after,.fad.fa-person-hiking:after{content:"\f6ec\f6ec"}.fa-duotone.fa-arrow-alt-from-left:after,.fa-duotone.fa-right-from-line:after,.fad.fa-arrow-alt-from-left:after,.fad.fa-right-from-line:after{content:"\f347\f347"}.fa-duotone.fa-venus-double:after,.fad.fa-venus-double:after{content:"\f226\f226"}.fa-duotone.fa-images:after,.fad.fa-images:after{content:"\f302\f302"}.fa-duotone.fa-calculator:after,.fad.fa-calculator:after{content:"\f1ec\f1ec"}.fa-duotone.fa-shuttlecock:after,.fad.fa-shuttlecock:after{content:"\f45b\f45b"}.fa-duotone.fa-user-hair:after,.fad.fa-user-hair:after{content:"\e45a\e45a"}.fa-duotone.fa-eye-evil:after,.fad.fa-eye-evil:after{content:"\f6db\f6db"}.fa-duotone.fa-people-pulling:after,.fad.fa-people-pulling:after{content:"\e535\e535"}.fa-duotone.fa-n:after,.fad.fa-n:after{content:"\4e\4e"}.fa-duotone.fa-swap:after,.fad.fa-swap:after{content:"\e609\e609"}.fa-duotone.fa-garage:after,.fad.fa-garage:after{content:"\e009\e009"}.fa-duotone.fa-cable-car:after,.fa-duotone.fa-tram:after,.fad.fa-cable-car:after,.fad.fa-tram:after{content:"\f7da\f7da"}.fa-duotone.fa-shovel-snow:after,.fad.fa-shovel-snow:after{content:"\f7c3\f7c3"}.fa-duotone.fa-cloud-rain:after,.fad.fa-cloud-rain:after{content:"\f73d\f73d"}.fa-duotone.fa-face-lying:after,.fad.fa-face-lying:after{content:"\e37e\e37e"}.fa-duotone.fa-sprinkler:after,.fad.fa-sprinkler:after{content:"\e035\e035"}.fa-duotone.fa-building-circle-xmark:after,.fad.fa-building-circle-xmark:after{content:"\e4d4\e4d4"}.fa-duotone.fa-person-sledding:after,.fa-duotone.fa-sledding:after,.fad.fa-person-sledding:after,.fad.fa-sledding:after{content:"\f7cb\f7cb"}.fa-duotone.fa-game-console-handheld:after,.fad.fa-game-console-handheld:after{content:"\f8bb\f8bb"}.fa-duotone.fa-ship:after,.fad.fa-ship:after{content:"\f21a\f21a"}.fa-duotone.fa-clock-six-thirty:after,.fad.fa-clock-six-thirty:after{content:"\e353\e353"}.fa-duotone.fa-battery-slash:after,.fad.fa-battery-slash:after{content:"\f377\f377"}.fa-duotone.fa-tugrik-sign:after,.fad.fa-tugrik-sign:after{content:"\e2ba\e2ba"}.fa-duotone.fa-arrows-down-to-line:after,.fad.fa-arrows-down-to-line:after{content:"\e4b8\e4b8"}.fa-duotone.fa-download:after,.fad.fa-download:after{content:"\f019\f019"}.fa-duotone.fa-angles-up-down:after,.fad.fa-angles-up-down:after{content:"\e60d\e60d"}.fa-duotone.fa-inventory:after,.fa-duotone.fa-shelves:after,.fad.fa-inventory:after,.fad.fa-shelves:after{content:"\f480\f480"}.fa-duotone.fa-cloud-snow:after,.fad.fa-cloud-snow:after{content:"\f742\f742"}.fa-duotone.fa-face-grin:after,.fa-duotone.fa-grin:after,.fad.fa-face-grin:after,.fad.fa-grin:after{content:"\f580\f580"}.fa-duotone.fa-backspace:after,.fa-duotone.fa-delete-left:after,.fad.fa-backspace:after,.fad.fa-delete-left:after{content:"\f55a\f55a"}.fa-duotone.fa-oven:after,.fad.fa-oven:after{content:"\e01d\e01d"}.fa-duotone.fa-cloud-binary:after,.fad.fa-cloud-binary:after{content:"\e601\e601"}.fa-duotone.fa-eye-dropper-empty:after,.fa-duotone.fa-eye-dropper:after,.fa-duotone.fa-eyedropper:after,.fad.fa-eye-dropper-empty:after,.fad.fa-eye-dropper:after,.fad.fa-eyedropper:after{content:"\f1fb\f1fb"}.fa-duotone.fa-comment-captions:after,.fad.fa-comment-captions:after{content:"\e146\e146"}.fa-duotone.fa-comments-question:after,.fad.fa-comments-question:after{content:"\e14e\e14e"}.fa-duotone.fa-scribble:after,.fad.fa-scribble:after{content:"\e23f\e23f"}.fa-duotone.fa-rotate-exclamation:after,.fad.fa-rotate-exclamation:after{content:"\e23c\e23c"}.fa-duotone.fa-file-circle-check:after,.fad.fa-file-circle-check:after{content:"\e5a0\e5a0"}.fa-duotone.fa-glass:after,.fad.fa-glass:after{content:"\f804\f804"}.fa-duotone.fa-loader:after,.fad.fa-loader:after{content:"\e1d4\e1d4"}.fa-duotone.fa-forward:after,.fad.fa-forward:after{content:"\f04e\f04e"}.fa-duotone.fa-user-pilot:after,.fad.fa-user-pilot:after{content:"\e2c0\e2c0"}.fa-duotone.fa-mobile-android:after,.fa-duotone.fa-mobile-phone:after,.fa-duotone.fa-mobile:after,.fad.fa-mobile-android:after,.fad.fa-mobile-phone:after,.fad.fa-mobile:after{content:"\f3ce\f3ce"}.fa-duotone.fa-code-pull-request-closed:after,.fad.fa-code-pull-request-closed:after{content:"\e3f9\e3f9"}.fa-duotone.fa-face-meh:after,.fa-duotone.fa-meh:after,.fad.fa-face-meh:after,.fad.fa-meh:after{content:"\f11a\f11a"}.fa-duotone.fa-align-center:after,.fad.fa-align-center:after{content:"\f037\f037"}.fa-duotone.fa-book-dead:after,.fa-duotone.fa-book-skull:after,.fad.fa-book-dead:after,.fad.fa-book-skull:after{content:"\f6b7\f6b7"}.fa-duotone.fa-drivers-license:after,.fa-duotone.fa-id-card:after,.fad.fa-drivers-license:after,.fad.fa-id-card:after{content:"\f2c2\f2c2"}.fa-duotone.fa-face-dotted:after,.fad.fa-face-dotted:after{content:"\e47f\e47f"}.fa-duotone.fa-face-worried:after,.fad.fa-face-worried:after{content:"\e3a3\e3a3"}.fa-duotone.fa-dedent:after,.fa-duotone.fa-outdent:after,.fad.fa-dedent:after,.fad.fa-outdent:after{content:"\f03b\f03b"}.fa-duotone.fa-court-sport:after,.fad.fa-court-sport:after{content:"\e643\e643"}.fa-duotone.fa-heart-circle-exclamation:after,.fad.fa-heart-circle-exclamation:after{content:"\e4fe\e4fe"}.fa-duotone.fa-home-alt:after,.fa-duotone.fa-home-lg-alt:after,.fa-duotone.fa-home:after,.fa-duotone.fa-house:after,.fad.fa-home-alt:after,.fad.fa-home-lg-alt:after,.fad.fa-home:after,.fad.fa-house:after{content:"\f015\f015"}.fa-duotone.fa-vector-circle:after,.fad.fa-vector-circle:after{content:"\e2c6\e2c6"}.fa-duotone.fa-car-circle-bolt:after,.fad.fa-car-circle-bolt:after{content:"\e342\e342"}.fa-duotone.fa-calendar-week:after,.fad.fa-calendar-week:after{content:"\f784\f784"}.fa-duotone.fa-flying-disc:after,.fad.fa-flying-disc:after{content:"\e3a9\e3a9"}.fa-duotone.fa-laptop-medical:after,.fad.fa-laptop-medical:after{content:"\f812\f812"}.fa-duotone.fa-square-down-right:after,.fad.fa-square-down-right:after{content:"\e26c\e26c"}.fa-duotone.fa-b:after,.fad.fa-b:after{content:"\42\42"}.fa-duotone.fa-seat-airline:after,.fad.fa-seat-airline:after{content:"\e244\e244"}.fa-duotone.fa-eclipse-alt:after,.fa-duotone.fa-moon-over-sun:after,.fad.fa-eclipse-alt:after,.fad.fa-moon-over-sun:after{content:"\f74a\f74a"}.fa-duotone.fa-pipe:after,.fad.fa-pipe:after{content:"\7c\7c"}.fa-duotone.fa-file-medical:after,.fad.fa-file-medical:after{content:"\f477\f477"}.fa-duotone.fa-potato:after,.fad.fa-potato:after{content:"\e440\e440"}.fa-duotone.fa-dice-one:after,.fad.fa-dice-one:after{content:"\f525\f525"}.fa-duotone.fa-circle-a:after,.fad.fa-circle-a:after{content:"\e0f7\e0f7"}.fa-duotone.fa-helmet-battle:after,.fad.fa-helmet-battle:after{content:"\f6eb\f6eb"}.fa-duotone.fa-butter:after,.fad.fa-butter:after{content:"\e3e4\e3e4"}.fa-duotone.fa-blanket-fire:after,.fad.fa-blanket-fire:after{content:"\e3da\e3da"}.fa-duotone.fa-kiwi-bird:after,.fad.fa-kiwi-bird:after{content:"\f535\f535"}.fa-duotone.fa-castle:after,.fad.fa-castle:after{content:"\e0de\e0de"}.fa-duotone.fa-golf-club:after,.fad.fa-golf-club:after{content:"\f451\f451"}.fa-duotone.fa-arrow-right-arrow-left:after,.fa-duotone.fa-exchange:after,.fad.fa-arrow-right-arrow-left:after,.fad.fa-exchange:after{content:"\f0ec\f0ec"}.fa-duotone.fa-redo-alt:after,.fa-duotone.fa-rotate-forward:after,.fa-duotone.fa-rotate-right:after,.fad.fa-redo-alt:after,.fad.fa-rotate-forward:after,.fad.fa-rotate-right:after{content:"\f2f9\f2f9"}.fa-duotone.fa-cutlery:after,.fa-duotone.fa-utensils:after,.fad.fa-cutlery:after,.fad.fa-utensils:after{content:"\f2e7\f2e7"}.fa-duotone.fa-arrow-up-wide-short:after,.fa-duotone.fa-sort-amount-up:after,.fad.fa-arrow-up-wide-short:after,.fad.fa-sort-amount-up:after{content:"\f161\f161"}.fa-duotone.fa-chart-pie-simple-circle-dollar:after,.fad.fa-chart-pie-simple-circle-dollar:after{content:"\e605\e605"}.fa-duotone.fa-balloons:after,.fad.fa-balloons:after{content:"\e2e4\e2e4"}.fa-duotone.fa-mill-sign:after,.fad.fa-mill-sign:after{content:"\e1ed\e1ed"}.fa-duotone.fa-bowl-rice:after,.fad.fa-bowl-rice:after{content:"\e2eb\e2eb"}.fa-duotone.fa-timeline-arrow:after,.fad.fa-timeline-arrow:after{content:"\e29d\e29d"}.fa-duotone.fa-skull:after,.fad.fa-skull:after{content:"\f54c\f54c"}.fa-duotone.fa-game-board-alt:after,.fa-duotone.fa-game-board-simple:after,.fad.fa-game-board-alt:after,.fad.fa-game-board-simple:after{content:"\f868\f868"}.fa-duotone.fa-circle-video:after,.fa-duotone.fa-video-circle:after,.fad.fa-circle-video:after,.fad.fa-video-circle:after{content:"\e12b\e12b"}.fa-duotone.fa-chart-scatter-bubble:after,.fad.fa-chart-scatter-bubble:after{content:"\e0e9\e0e9"}.fa-duotone.fa-house-turret:after,.fad.fa-house-turret:after{content:"\e1b4\e1b4"}.fa-duotone.fa-banana:after,.fad.fa-banana:after{content:"\e2e5\e2e5"}.fa-duotone.fa-hand-holding-skull:after,.fad.fa-hand-holding-skull:after{content:"\e1a4\e1a4"}.fa-duotone.fa-people-dress:after,.fad.fa-people-dress:after{content:"\e217\e217"}.fa-duotone.fa-couch-small:after,.fa-duotone.fa-loveseat:after,.fad.fa-couch-small:after,.fad.fa-loveseat:after{content:"\f4cc\f4cc"}.fa-duotone.fa-broadcast-tower:after,.fa-duotone.fa-tower-broadcast:after,.fad.fa-broadcast-tower:after,.fad.fa-tower-broadcast:after{content:"\f519\f519"}.fa-duotone.fa-truck-pickup:after,.fad.fa-truck-pickup:after{content:"\f63c\f63c"}.fa-duotone.fa-block-quote:after,.fad.fa-block-quote:after{content:"\e0b5\e0b5"}.fa-duotone.fa-long-arrow-alt-up:after,.fa-duotone.fa-up-long:after,.fad.fa-long-arrow-alt-up:after,.fad.fa-up-long:after{content:"\f30c\f30c"}.fa-duotone.fa-stop:after,.fad.fa-stop:after{content:"\f04d\f04d"}.fa-duotone.fa-code-merge:after,.fad.fa-code-merge:after{content:"\f387\f387"}.fa-duotone.fa-money-check-dollar-pen:after,.fa-duotone.fa-money-check-edit-alt:after,.fad.fa-money-check-dollar-pen:after,.fad.fa-money-check-edit-alt:after{content:"\f873\f873"}.fa-duotone.fa-arrow-alt-from-bottom:after,.fa-duotone.fa-up-from-line:after,.fad.fa-arrow-alt-from-bottom:after,.fad.fa-up-from-line:after{content:"\f346\f346"}.fa-duotone.fa-upload:after,.fad.fa-upload:after{content:"\f093\f093"}.fa-duotone.fa-hurricane:after,.fad.fa-hurricane:after{content:"\f751\f751"}.fa-duotone.fa-grid-round-2-plus:after,.fad.fa-grid-round-2-plus:after{content:"\e5dc\e5dc"}.fa-duotone.fa-people-pants:after,.fad.fa-people-pants:after{content:"\e219\e219"}.fa-duotone.fa-mound:after,.fad.fa-mound:after{content:"\e52d\e52d"}.fa-duotone.fa-windsock:after,.fad.fa-windsock:after{content:"\f777\f777"}.fa-duotone.fa-circle-half:after,.fad.fa-circle-half:after{content:"\e110\e110"}.fa-duotone.fa-brake-warning:after,.fad.fa-brake-warning:after{content:"\e0c7\e0c7"}.fa-duotone.fa-toilet-portable:after,.fad.fa-toilet-portable:after{content:"\e583\e583"}.fa-duotone.fa-compact-disc:after,.fad.fa-compact-disc:after{content:"\f51f\f51f"}.fa-duotone.fa-file-arrow-down:after,.fa-duotone.fa-file-download:after,.fad.fa-file-arrow-down:after,.fad.fa-file-download:after{content:"\f56d\f56d"}.fa-duotone.fa-sax-hot:after,.fa-duotone.fa-saxophone-fire:after,.fad.fa-sax-hot:after,.fad.fa-saxophone-fire:after{content:"\f8db\f8db"}.fa-duotone.fa-camera-web-slash:after,.fa-duotone.fa-webcam-slash:after,.fad.fa-camera-web-slash:after,.fad.fa-webcam-slash:after{content:"\f833\f833"}.fa-duotone.fa-folder-medical:after,.fad.fa-folder-medical:after{content:"\e18c\e18c"}.fa-duotone.fa-folder-cog:after,.fa-duotone.fa-folder-gear:after,.fad.fa-folder-cog:after,.fad.fa-folder-gear:after{content:"\e187\e187"}.fa-duotone.fa-hand-wave:after,.fad.fa-hand-wave:after{content:"\e1a7\e1a7"}.fa-duotone.fa-arrow-up-arrow-down:after,.fa-duotone.fa-sort-up-down:after,.fad.fa-arrow-up-arrow-down:after,.fad.fa-sort-up-down:after{content:"\e099\e099"}.fa-duotone.fa-caravan:after,.fad.fa-caravan:after{content:"\f8ff\f8ff"}.fa-duotone.fa-shield-cat:after,.fad.fa-shield-cat:after{content:"\e572\e572"}.fa-duotone.fa-comment-alt-slash:after,.fa-duotone.fa-message-slash:after,.fad.fa-comment-alt-slash:after,.fad.fa-message-slash:after{content:"\f4a9\f4a9"}.fa-duotone.fa-bolt:after,.fa-duotone.fa-zap:after,.fad.fa-bolt:after,.fad.fa-zap:after{content:"\f0e7\f0e7"}.fa-duotone.fa-trash-can-check:after,.fad.fa-trash-can-check:after{content:"\e2a9\e2a9"}.fa-duotone.fa-glass-water:after,.fad.fa-glass-water:after{content:"\e4f4\e4f4"}.fa-duotone.fa-oil-well:after,.fad.fa-oil-well:after{content:"\e532\e532"}.fa-duotone.fa-person-simple:after,.fad.fa-person-simple:after{content:"\e220\e220"}.fa-duotone.fa-arrow-turn-left-up:after,.fad.fa-arrow-turn-left-up:after{content:"\e634\e634"}.fa-duotone.fa-vault:after,.fad.fa-vault:after{content:"\e2c5\e2c5"}.fa-duotone.fa-mars:after,.fad.fa-mars:after{content:"\f222\f222"}.fa-duotone.fa-toilet:after,.fad.fa-toilet:after{content:"\f7d8\f7d8"}.fa-duotone.fa-plane-circle-xmark:after,.fad.fa-plane-circle-xmark:after{content:"\e557\e557"}.fa-duotone.fa-cny:after,.fa-duotone.fa-jpy:after,.fa-duotone.fa-rmb:after,.fa-duotone.fa-yen-sign:after,.fa-duotone.fa-yen:after,.fad.fa-cny:after,.fad.fa-jpy:after,.fad.fa-rmb:after,.fad.fa-yen-sign:after,.fad.fa-yen:after{content:"\f157\f157"}.fa-duotone.fa-gear-code:after,.fad.fa-gear-code:after{content:"\e5e8\e5e8"}.fa-duotone.fa-notes:after,.fad.fa-notes:after{content:"\e202\e202"}.fa-duotone.fa-rouble:after,.fa-duotone.fa-rub:after,.fa-duotone.fa-ruble-sign:after,.fa-duotone.fa-ruble:after,.fad.fa-rouble:after,.fad.fa-rub:after,.fad.fa-ruble-sign:after,.fad.fa-ruble:after{content:"\f158\f158"}.fa-duotone.fa-trash-arrow-turn-left:after,.fa-duotone.fa-trash-undo:after,.fad.fa-trash-arrow-turn-left:after,.fad.fa-trash-undo:after{content:"\f895\f895"}.fa-duotone.fa-champagne-glass:after,.fa-duotone.fa-glass-champagne:after,.fad.fa-champagne-glass:after,.fad.fa-glass-champagne:after{content:"\f79e\f79e"}.fa-duotone.fa-objects-align-center-horizontal:after,.fad.fa-objects-align-center-horizontal:after{content:"\e3bc\e3bc"}.fa-duotone.fa-sun:after,.fad.fa-sun:after{content:"\f185\f185"}.fa-duotone.fa-trash-alt-slash:after,.fa-duotone.fa-trash-can-slash:after,.fad.fa-trash-alt-slash:after,.fad.fa-trash-can-slash:after{content:"\e2ad\e2ad"}.fa-duotone.fa-screen-users:after,.fa-duotone.fa-users-class:after,.fad.fa-screen-users:after,.fad.fa-users-class:after{content:"\f63d\f63d"}.fa-duotone.fa-guitar:after,.fad.fa-guitar:after{content:"\f7a6\f7a6"}.fa-duotone.fa-arrow-square-left:after,.fa-duotone.fa-square-arrow-left:after,.fad.fa-arrow-square-left:after,.fad.fa-square-arrow-left:after{content:"\f33a\f33a"}.fa-duotone.fa-square-8:after,.fad.fa-square-8:after{content:"\e25d\e25d"}.fa-duotone.fa-face-smile-hearts:after,.fad.fa-face-smile-hearts:after{content:"\e390\e390"}.fa-duotone.fa-brackets-square:after,.fa-duotone.fa-brackets:after,.fad.fa-brackets-square:after,.fad.fa-brackets:after{content:"\f7e9\f7e9"}.fa-duotone.fa-laptop-arrow-down:after,.fad.fa-laptop-arrow-down:after{content:"\e1c6\e1c6"}.fa-duotone.fa-hockey-stick-puck:after,.fad.fa-hockey-stick-puck:after{content:"\e3ae\e3ae"}.fa-duotone.fa-house-tree:after,.fad.fa-house-tree:after{content:"\e1b3\e1b3"}.fa-duotone.fa-signal-2:after,.fa-duotone.fa-signal-fair:after,.fad.fa-signal-2:after,.fad.fa-signal-fair:after{content:"\f68d\f68d"}.fa-duotone.fa-face-laugh-wink:after,.fa-duotone.fa-laugh-wink:after,.fad.fa-face-laugh-wink:after,.fad.fa-laugh-wink:after{content:"\f59c\f59c"}.fa-duotone.fa-circle-dollar:after,.fa-duotone.fa-dollar-circle:after,.fa-duotone.fa-usd-circle:after,.fad.fa-circle-dollar:after,.fad.fa-dollar-circle:after,.fad.fa-usd-circle:after{content:"\f2e8\f2e8"}.fa-duotone.fa-horse-head:after,.fad.fa-horse-head:after{content:"\f7ab\f7ab"}.fa-duotone.fa-arrows-repeat:after,.fa-duotone.fa-repeat-alt:after,.fad.fa-arrows-repeat:after,.fad.fa-repeat-alt:after{content:"\f364\f364"}.fa-duotone.fa-bore-hole:after,.fad.fa-bore-hole:after{content:"\e4c3\e4c3"}.fa-duotone.fa-industry:after,.fad.fa-industry:after{content:"\f275\f275"}.fa-duotone.fa-image-polaroid:after,.fad.fa-image-polaroid:after{content:"\f8c4\f8c4"}.fa-duotone.fa-wave-triangle:after,.fad.fa-wave-triangle:after{content:"\f89a\f89a"}.fa-duotone.fa-turn-left-down:after,.fad.fa-turn-left-down:after{content:"\e637\e637"}.fa-duotone.fa-person-running-fast:after,.fad.fa-person-running-fast:after{content:"\e5ff\e5ff"}.fa-duotone.fa-arrow-alt-circle-down:after,.fa-duotone.fa-circle-down:after,.fad.fa-arrow-alt-circle-down:after,.fad.fa-circle-down:after{content:"\f358\f358"}.fa-duotone.fa-grill:after,.fad.fa-grill:after{content:"\e5a3\e5a3"}.fa-duotone.fa-arrows-turn-to-dots:after,.fad.fa-arrows-turn-to-dots:after{content:"\e4c1\e4c1"}.fa-duotone.fa-analytics:after,.fa-duotone.fa-chart-mixed:after,.fad.fa-analytics:after,.fad.fa-chart-mixed:after{content:"\f643\f643"}.fa-duotone.fa-florin-sign:after,.fad.fa-florin-sign:after{content:"\e184\e184"}.fa-duotone.fa-arrow-down-short-wide:after,.fa-duotone.fa-sort-amount-desc:after,.fa-duotone.fa-sort-amount-down-alt:after,.fad.fa-arrow-down-short-wide:after,.fad.fa-sort-amount-desc:after,.fad.fa-sort-amount-down-alt:after{content:"\f884\f884"}.fa-duotone.fa-less-than:after,.fad.fa-less-than:after{content:"\3c\3c"}.fa-duotone.fa-desktop-code:after,.fa-duotone.fa-display-code:after,.fad.fa-desktop-code:after,.fad.fa-display-code:after{content:"\e165\e165"}.fa-duotone.fa-face-drooling:after,.fad.fa-face-drooling:after{content:"\e372\e372"}.fa-duotone.fa-oil-temp:after,.fa-duotone.fa-oil-temperature:after,.fad.fa-oil-temp:after,.fad.fa-oil-temperature:after{content:"\f614\f614"}.fa-duotone.fa-question-square:after,.fa-duotone.fa-square-question:after,.fad.fa-question-square:after,.fad.fa-square-question:after{content:"\f2fd\f2fd"}.fa-duotone.fa-air-conditioner:after,.fad.fa-air-conditioner:after{content:"\f8f4\f8f4"}.fa-duotone.fa-angle-down:after,.fad.fa-angle-down:after{content:"\f107\f107"}.fa-duotone.fa-mountains:after,.fad.fa-mountains:after{content:"\f6fd\f6fd"}.fa-duotone.fa-omega:after,.fad.fa-omega:after{content:"\f67a\f67a"}.fa-duotone.fa-car-tunnel:after,.fad.fa-car-tunnel:after{content:"\e4de\e4de"}.fa-duotone.fa-person-dolly-empty:after,.fad.fa-person-dolly-empty:after{content:"\f4d1\f4d1"}.fa-duotone.fa-pan-food:after,.fad.fa-pan-food:after{content:"\e42b\e42b"}.fa-duotone.fa-head-side-cough:after,.fad.fa-head-side-cough:after{content:"\e061\e061"}.fa-duotone.fa-grip-lines:after,.fad.fa-grip-lines:after{content:"\f7a4\f7a4"}.fa-duotone.fa-thumbs-down:after,.fad.fa-thumbs-down:after{content:"\f165\f165"}.fa-duotone.fa-user-lock:after,.fad.fa-user-lock:after{content:"\f502\f502"}.fa-duotone.fa-arrow-right-long:after,.fa-duotone.fa-long-arrow-right:after,.fad.fa-arrow-right-long:after,.fad.fa-long-arrow-right:after{content:"\f178\f178"}.fa-duotone.fa-tickets-airline:after,.fa-duotone.fa-tickets-perforated-plane:after,.fa-duotone.fa-tickets-plane:after,.fad.fa-tickets-airline:after,.fad.fa-tickets-perforated-plane:after,.fad.fa-tickets-plane:after{content:"\e29b\e29b"}.fa-duotone.fa-tent-double-peak:after,.fad.fa-tent-double-peak:after{content:"\e627\e627"}.fa-duotone.fa-anchor-circle-xmark:after,.fad.fa-anchor-circle-xmark:after{content:"\e4ac\e4ac"}.fa-duotone.fa-ellipsis-h:after,.fa-duotone.fa-ellipsis:after,.fad.fa-ellipsis-h:after,.fad.fa-ellipsis:after{content:"\f141\f141"}.fa-duotone.fa-nfc-slash:after,.fad.fa-nfc-slash:after{content:"\e1fc\e1fc"}.fa-duotone.fa-chess-pawn:after,.fad.fa-chess-pawn:after{content:"\f443\f443"}.fa-duotone.fa-first-aid:after,.fa-duotone.fa-kit-medical:after,.fad.fa-first-aid:after,.fad.fa-kit-medical:after{content:"\f479\f479"}.fa-duotone.fa-grid-2-plus:after,.fad.fa-grid-2-plus:after{content:"\e197\e197"}.fa-duotone.fa-bells:after,.fad.fa-bells:after{content:"\f77f\f77f"}.fa-duotone.fa-person-through-window:after,.fad.fa-person-through-window:after{content:"\e5a9\e5a9"}.fa-duotone.fa-toolbox:after,.fad.fa-toolbox:after{content:"\f552\f552"}.fa-duotone.fa-envelope-badge:after,.fa-duotone.fa-envelope-dot:after,.fad.fa-envelope-badge:after,.fad.fa-envelope-dot:after{content:"\e16f\e16f"}.fa-duotone.fa-magnifying-glass-waveform:after,.fad.fa-magnifying-glass-waveform:after{content:"\e661\e661"}.fa-duotone.fa-hands-holding-circle:after,.fad.fa-hands-holding-circle:after{content:"\e4fb\e4fb"}.fa-duotone.fa-bug:after,.fad.fa-bug:after{content:"\f188\f188"}.fa-duotone.fa-bowl-chopsticks:after,.fad.fa-bowl-chopsticks:after{content:"\e2e9\e2e9"}.fa-duotone.fa-credit-card-alt:after,.fa-duotone.fa-credit-card:after,.fad.fa-credit-card-alt:after,.fad.fa-credit-card:after{content:"\f09d\f09d"}.fa-duotone.fa-circle-s:after,.fad.fa-circle-s:after{content:"\e121\e121"}.fa-duotone.fa-box-ballot:after,.fad.fa-box-ballot:after{content:"\f735\f735"}.fa-duotone.fa-automobile:after,.fa-duotone.fa-car:after,.fad.fa-automobile:after,.fad.fa-car:after{content:"\f1b9\f1b9"}.fa-duotone.fa-hand-holding-hand:after,.fad.fa-hand-holding-hand:after{content:"\e4f7\e4f7"}.fa-duotone.fa-user-tie-hair:after,.fad.fa-user-tie-hair:after{content:"\e45f\e45f"}.fa-duotone.fa-podium-star:after,.fad.fa-podium-star:after{content:"\f758\f758"}.fa-duotone.fa-business-front:after,.fa-duotone.fa-party-back:after,.fa-duotone.fa-trian-balbot:after,.fa-duotone.fa-user-hair-mullet:after,.fad.fa-business-front:after,.fad.fa-party-back:after,.fad.fa-trian-balbot:after,.fad.fa-user-hair-mullet:after{content:"\e45c\e45c"}.fa-duotone.fa-microphone-stand:after,.fad.fa-microphone-stand:after{content:"\f8cb\f8cb"}.fa-duotone.fa-book-open-reader:after,.fa-duotone.fa-book-reader:after,.fad.fa-book-open-reader:after,.fad.fa-book-reader:after{content:"\f5da\f5da"}.fa-duotone.fa-family-dress:after,.fad.fa-family-dress:after{content:"\e301\e301"}.fa-duotone.fa-circle-x:after,.fad.fa-circle-x:after{content:"\e12e\e12e"}.fa-duotone.fa-cabin:after,.fad.fa-cabin:after{content:"\e46d\e46d"}.fa-duotone.fa-mountain-sun:after,.fad.fa-mountain-sun:after{content:"\e52f\e52f"}.fa-duotone.fa-chart-simple-horizontal:after,.fad.fa-chart-simple-horizontal:after{content:"\e474\e474"}.fa-duotone.fa-arrows-left-right-to-line:after,.fad.fa-arrows-left-right-to-line:after{content:"\e4ba\e4ba"}.fa-duotone.fa-hand-back-point-left:after,.fad.fa-hand-back-point-left:after{content:"\e19f\e19f"}.fa-duotone.fa-comment-alt-dots:after,.fa-duotone.fa-message-dots:after,.fa-duotone.fa-messaging:after,.fad.fa-comment-alt-dots:after,.fad.fa-message-dots:after,.fad.fa-messaging:after{content:"\f4a3\f4a3"}.fa-duotone.fa-file-heart:after,.fad.fa-file-heart:after{content:"\e176\e176"}.fa-duotone.fa-beer-foam:after,.fa-duotone.fa-beer-mug:after,.fad.fa-beer-foam:after,.fad.fa-beer-mug:after{content:"\e0b3\e0b3"}.fa-duotone.fa-dice-d20:after,.fad.fa-dice-d20:after{content:"\f6cf\f6cf"}.fa-duotone.fa-drone:after,.fad.fa-drone:after{content:"\f85f\f85f"}.fa-duotone.fa-truck-droplet:after,.fad.fa-truck-droplet:after{content:"\e58c\e58c"}.fa-duotone.fa-file-circle-xmark:after,.fad.fa-file-circle-xmark:after{content:"\e5a1\e5a1"}.fa-duotone.fa-temperature-arrow-up:after,.fa-duotone.fa-temperature-up:after,.fad.fa-temperature-arrow-up:after,.fad.fa-temperature-up:after{content:"\e040\e040"}.fa-duotone.fa-medal:after,.fad.fa-medal:after{content:"\f5a2\f5a2"}.fa-duotone.fa-person-fairy:after,.fad.fa-person-fairy:after{content:"\e608\e608"}.fa-duotone.fa-bed:after,.fad.fa-bed:after{content:"\f236\f236"}.fa-duotone.fa-book-copy:after,.fad.fa-book-copy:after{content:"\e0be\e0be"}.fa-duotone.fa-h-square:after,.fa-duotone.fa-square-h:after,.fad.fa-h-square:after,.fad.fa-square-h:after{content:"\f0fd\f0fd"}.fa-duotone.fa-square-c:after,.fad.fa-square-c:after{content:"\e266\e266"}.fa-duotone.fa-clock-two:after,.fad.fa-clock-two:after{content:"\e35a\e35a"}.fa-duotone.fa-square-ellipsis-vertical:after,.fad.fa-square-ellipsis-vertical:after{content:"\e26f\e26f"}.fa-duotone.fa-calendar-users:after,.fad.fa-calendar-users:after{content:"\e5e2\e5e2"}.fa-duotone.fa-podcast:after,.fad.fa-podcast:after{content:"\f2ce\f2ce"}.fa-duotone.fa-bee:after,.fad.fa-bee:after{content:"\e0b2\e0b2"}.fa-duotone.fa-temperature-4:after,.fa-duotone.fa-temperature-full:after,.fa-duotone.fa-thermometer-4:after,.fa-duotone.fa-thermometer-full:after,.fad.fa-temperature-4:after,.fad.fa-temperature-full:after,.fad.fa-thermometer-4:after,.fad.fa-thermometer-full:after{content:"\f2c7\f2c7"}.fa-duotone.fa-bell:after,.fad.fa-bell:after{content:"\f0f3\f0f3"}.fa-duotone.fa-candy-bar:after,.fa-duotone.fa-chocolate-bar:after,.fad.fa-candy-bar:after,.fad.fa-chocolate-bar:after{content:"\e3e8\e3e8"}.fa-duotone.fa-xmark-large:after,.fad.fa-xmark-large:after{content:"\e59b\e59b"}.fa-duotone.fa-pinata:after,.fad.fa-pinata:after{content:"\e3c3\e3c3"}.fa-duotone.fa-file-ppt:after,.fad.fa-file-ppt:after{content:"\e64a\e64a"}.fa-duotone.fa-arrows-from-line:after,.fad.fa-arrows-from-line:after{content:"\e0a4\e0a4"}.fa-duotone.fa-superscript:after,.fad.fa-superscript:after{content:"\f12b\f12b"}.fa-duotone.fa-bowl-spoon:after,.fad.fa-bowl-spoon:after{content:"\e3e0\e3e0"}.fa-duotone.fa-hexagon-check:after,.fad.fa-hexagon-check:after{content:"\e416\e416"}.fa-duotone.fa-plug-circle-xmark:after,.fad.fa-plug-circle-xmark:after{content:"\e560\e560"}.fa-duotone.fa-star-of-life:after,.fad.fa-star-of-life:after{content:"\f621\f621"}.fa-duotone.fa-phone-slash:after,.fad.fa-phone-slash:after{content:"\f3dd\f3dd"}.fa-duotone.fa-traffic-light-stop:after,.fad.fa-traffic-light-stop:after{content:"\f63a\f63a"}.fa-duotone.fa-paint-roller:after,.fad.fa-paint-roller:after{content:"\f5aa\f5aa"}.fa-duotone.fa-accent-grave:after,.fad.fa-accent-grave:after{content:"\60\60"}.fa-duotone.fa-hands-helping:after,.fa-duotone.fa-handshake-angle:after,.fad.fa-hands-helping:after,.fad.fa-handshake-angle:after{content:"\f4c4\f4c4"}.fa-duotone.fa-circle-0:after,.fad.fa-circle-0:after{content:"\e0ed\e0ed"}.fa-duotone.fa-dial-med-low:after,.fad.fa-dial-med-low:after{content:"\e160\e160"}.fa-duotone.fa-location-dot:after,.fa-duotone.fa-map-marker-alt:after,.fad.fa-location-dot:after,.fad.fa-map-marker-alt:after{content:"\f3c5\f3c5"}.fa-duotone.fa-crab:after,.fad.fa-crab:after{content:"\e3ff\e3ff"}.fa-duotone.fa-box-full:after,.fa-duotone.fa-box-open-full:after,.fad.fa-box-full:after,.fad.fa-box-open-full:after{content:"\f49c\f49c"}.fa-duotone.fa-file:after,.fad.fa-file:after{content:"\f15b\f15b"}.fa-duotone.fa-greater-than:after,.fad.fa-greater-than:after{content:"\3e\3e"}.fa-duotone.fa-quotes:after,.fad.fa-quotes:after{content:"\e234\e234"}.fa-duotone.fa-pretzel:after,.fad.fa-pretzel:after{content:"\e441\e441"}.fa-duotone.fa-t-rex:after,.fad.fa-t-rex:after{content:"\e629\e629"}.fa-duotone.fa-person-swimming:after,.fa-duotone.fa-swimmer:after,.fad.fa-person-swimming:after,.fad.fa-swimmer:after{content:"\f5c4\f5c4"}.fa-duotone.fa-arrow-down:after,.fad.fa-arrow-down:after{content:"\f063\f063"}.fa-duotone.fa-user-robot-xmarks:after,.fad.fa-user-robot-xmarks:after{content:"\e4a7\e4a7"}.fa-duotone.fa-comment-alt-quote:after,.fa-duotone.fa-message-quote:after,.fad.fa-comment-alt-quote:after,.fad.fa-message-quote:after{content:"\e1e4\e1e4"}.fa-duotone.fa-candy-corn:after,.fad.fa-candy-corn:after{content:"\f6bd\f6bd"}.fa-duotone.fa-folder-magnifying-glass:after,.fa-duotone.fa-folder-search:after,.fad.fa-folder-magnifying-glass:after,.fad.fa-folder-search:after{content:"\e18b\e18b"}.fa-duotone.fa-notebook:after,.fad.fa-notebook:after{content:"\e201\e201"}.fa-duotone.fa-droplet:after,.fa-duotone.fa-tint:after,.fad.fa-droplet:after,.fad.fa-tint:after{content:"\f043\f043"}.fa-duotone.fa-bullseye-pointer:after,.fad.fa-bullseye-pointer:after{content:"\f649\f649"}.fa-duotone.fa-eraser:after,.fad.fa-eraser:after{content:"\f12d\f12d"}.fa-duotone.fa-hexagon-image:after,.fad.fa-hexagon-image:after{content:"\e504\e504"}.fa-duotone.fa-earth-america:after,.fa-duotone.fa-earth-americas:after,.fa-duotone.fa-earth:after,.fa-duotone.fa-globe-americas:after,.fad.fa-earth-america:after,.fad.fa-earth-americas:after,.fad.fa-earth:after,.fad.fa-globe-americas:after{content:"\f57d\f57d"}.fa-duotone.fa-file-svg:after,.fad.fa-file-svg:after{content:"\e64b\e64b"}.fa-duotone.fa-crate-apple:after,.fad.fa-crate-apple:after{content:"\f6b1\f6b1"}.fa-duotone.fa-apple-crate:after,.fad.fa-apple-crate:after{content:"\f6b1\f6b1"}.fa-duotone.fa-person-burst:after,.fad.fa-person-burst:after{content:"\e53b\e53b"}.fa-duotone.fa-game-board:after,.fad.fa-game-board:after{content:"\f867\f867"}.fa-duotone.fa-hat-chef:after,.fad.fa-hat-chef:after{content:"\f86b\f86b"}.fa-duotone.fa-hand-back-point-right:after,.fad.fa-hand-back-point-right:after{content:"\e1a1\e1a1"}.fa-duotone.fa-dove:after,.fad.fa-dove:after{content:"\f4ba\f4ba"}.fa-duotone.fa-snowflake-droplets:after,.fad.fa-snowflake-droplets:after{content:"\e5c1\e5c1"}.fa-duotone.fa-battery-0:after,.fa-duotone.fa-battery-empty:after,.fad.fa-battery-0:after,.fad.fa-battery-empty:after{content:"\f244\f244"}.fa-duotone.fa-grid-4:after,.fad.fa-grid-4:after{content:"\e198\e198"}.fa-duotone.fa-socks:after,.fad.fa-socks:after{content:"\f696\f696"}.fa-duotone.fa-face-sunglasses:after,.fad.fa-face-sunglasses:after{content:"\e398\e398"}.fa-duotone.fa-inbox:after,.fad.fa-inbox:after{content:"\f01c\f01c"}.fa-duotone.fa-square-0:after,.fad.fa-square-0:after{content:"\e255\e255"}.fa-duotone.fa-section:after,.fad.fa-section:after{content:"\e447\e447"}.fa-duotone.fa-box-up:after,.fa-duotone.fa-square-this-way-up:after,.fad.fa-box-up:after,.fad.fa-square-this-way-up:after{content:"\f49f\f49f"}.fa-duotone.fa-gauge-high:after,.fa-duotone.fa-tachometer-alt-fast:after,.fa-duotone.fa-tachometer-alt:after,.fad.fa-gauge-high:after,.fad.fa-tachometer-alt-fast:after,.fad.fa-tachometer-alt:after{content:"\f625\f625"}.fa-duotone.fa-square-ampersand:after,.fad.fa-square-ampersand:after{content:"\e260\e260"}.fa-duotone.fa-envelope-open-text:after,.fad.fa-envelope-open-text:after{content:"\f658\f658"}.fa-duotone.fa-lamp-desk:after,.fad.fa-lamp-desk:after{content:"\e014\e014"}.fa-duotone.fa-hospital-alt:after,.fa-duotone.fa-hospital-wide:after,.fa-duotone.fa-hospital:after,.fad.fa-hospital-alt:after,.fad.fa-hospital-wide:after,.fad.fa-hospital:after{content:"\f0f8\f0f8"}.fa-duotone.fa-poll-people:after,.fad.fa-poll-people:after{content:"\f759\f759"}.fa-duotone.fa-glass-whiskey-rocks:after,.fa-duotone.fa-whiskey-glass-ice:after,.fad.fa-glass-whiskey-rocks:after,.fad.fa-whiskey-glass-ice:after{content:"\f7a1\f7a1"}.fa-duotone.fa-wine-bottle:after,.fad.fa-wine-bottle:after{content:"\f72f\f72f"}.fa-duotone.fa-chess-rook:after,.fad.fa-chess-rook:after{content:"\f447\f447"}.fa-duotone.fa-user-bounty-hunter:after,.fad.fa-user-bounty-hunter:after{content:"\e2bf\e2bf"}.fa-duotone.fa-bars-staggered:after,.fa-duotone.fa-reorder:after,.fa-duotone.fa-stream:after,.fad.fa-bars-staggered:after,.fad.fa-reorder:after,.fad.fa-stream:after{content:"\f550\f550"}.fa-duotone.fa-diagram-sankey:after,.fad.fa-diagram-sankey:after{content:"\e158\e158"}.fa-duotone.fa-cloud-hail-mixed:after,.fad.fa-cloud-hail-mixed:after{content:"\f73a\f73a"}.fa-duotone.fa-circle-up-left:after,.fad.fa-circle-up-left:after{content:"\e128\e128"}.fa-duotone.fa-dharmachakra:after,.fad.fa-dharmachakra:after{content:"\f655\f655"}.fa-duotone.fa-objects-align-left:after,.fad.fa-objects-align-left:after{content:"\e3be\e3be"}.fa-duotone.fa-oil-can-drip:after,.fad.fa-oil-can-drip:after{content:"\e205\e205"}.fa-duotone.fa-face-smiling-hands:after,.fad.fa-face-smiling-hands:after{content:"\e396\e396"}.fa-duotone.fa-broccoli:after,.fad.fa-broccoli:after{content:"\e3e2\e3e2"}.fa-duotone.fa-route-interstate:after,.fad.fa-route-interstate:after{content:"\f61b\f61b"}.fa-duotone.fa-ear-muffs:after,.fad.fa-ear-muffs:after{content:"\f795\f795"}.fa-duotone.fa-hotdog:after,.fad.fa-hotdog:after{content:"\f80f\f80f"}.fa-duotone.fa-transporter-empty:after,.fad.fa-transporter-empty:after{content:"\e046\e046"}.fa-duotone.fa-blind:after,.fa-duotone.fa-person-walking-with-cane:after,.fad.fa-blind:after,.fad.fa-person-walking-with-cane:after{content:"\f29d\f29d"}.fa-duotone.fa-angle-90:after,.fad.fa-angle-90:after{content:"\e08d\e08d"}.fa-duotone.fa-rectangle-terminal:after,.fad.fa-rectangle-terminal:after{content:"\e236\e236"}.fa-duotone.fa-kite:after,.fad.fa-kite:after{content:"\f6f4\f6f4"}.fa-duotone.fa-drum:after,.fad.fa-drum:after{content:"\f569\f569"}.fa-duotone.fa-scrubber:after,.fad.fa-scrubber:after{content:"\f2f8\f2f8"}.fa-duotone.fa-ice-cream:after,.fad.fa-ice-cream:after{content:"\f810\f810"}.fa-duotone.fa-heart-circle-bolt:after,.fad.fa-heart-circle-bolt:after{content:"\e4fc\e4fc"}.fa-duotone.fa-fish-bones:after,.fad.fa-fish-bones:after{content:"\e304\e304"}.fa-duotone.fa-deer-rudolph:after,.fad.fa-deer-rudolph:after{content:"\f78f\f78f"}.fa-duotone.fa-fax:after,.fad.fa-fax:after{content:"\f1ac\f1ac"}.fa-duotone.fa-paragraph:after,.fad.fa-paragraph:after{content:"\f1dd\f1dd"}.fa-duotone.fa-head-side-heart:after,.fad.fa-head-side-heart:after{content:"\e1aa\e1aa"}.fa-duotone.fa-square-e:after,.fad.fa-square-e:after{content:"\e26d\e26d"}.fa-duotone.fa-meter-fire:after,.fad.fa-meter-fire:after{content:"\e1eb\e1eb"}.fa-duotone.fa-cloud-hail:after,.fad.fa-cloud-hail:after{content:"\f739\f739"}.fa-duotone.fa-check-to-slot:after,.fa-duotone.fa-vote-yea:after,.fad.fa-check-to-slot:after,.fad.fa-vote-yea:after{content:"\f772\f772"}.fa-duotone.fa-money-from-bracket:after,.fad.fa-money-from-bracket:after{content:"\e312\e312"}.fa-duotone.fa-star-half:after,.fad.fa-star-half:after{content:"\f089\f089"}.fa-duotone.fa-car-bus:after,.fad.fa-car-bus:after{content:"\f85a\f85a"}.fa-duotone.fa-speaker:after,.fad.fa-speaker:after{content:"\f8df\f8df"}.fa-duotone.fa-timer:after,.fad.fa-timer:after{content:"\e29e\e29e"}.fa-duotone.fa-boxes-alt:after,.fa-duotone.fa-boxes-stacked:after,.fa-duotone.fa-boxes:after,.fad.fa-boxes-alt:after,.fad.fa-boxes-stacked:after,.fad.fa-boxes:after{content:"\f468\f468"}.fa-duotone.fa-landmark-magnifying-glass:after,.fad.fa-landmark-magnifying-glass:after{content:"\e622\e622"}.fa-duotone.fa-grill-hot:after,.fad.fa-grill-hot:after{content:"\e5a5\e5a5"}.fa-duotone.fa-ballot-check:after,.fad.fa-ballot-check:after{content:"\f733\f733"}.fa-duotone.fa-chain:after,.fa-duotone.fa-link:after,.fad.fa-chain:after,.fad.fa-link:after{content:"\f0c1\f0c1"}.fa-duotone.fa-assistive-listening-systems:after,.fa-duotone.fa-ear-listen:after,.fad.fa-assistive-listening-systems:after,.fad.fa-ear-listen:after{content:"\f2a2\f2a2"}.fa-duotone.fa-file-minus:after,.fad.fa-file-minus:after{content:"\f318\f318"}.fa-duotone.fa-tree-city:after,.fad.fa-tree-city:after{content:"\e587\e587"}.fa-duotone.fa-play:after,.fad.fa-play:after{content:"\f04b\f04b"}.fa-duotone.fa-font:after,.fad.fa-font:after{content:"\f031\f031"}.fa-duotone.fa-coffee-togo:after,.fa-duotone.fa-cup-togo:after,.fad.fa-coffee-togo:after,.fad.fa-cup-togo:after{content:"\f6c5\f6c5"}.fa-duotone.fa-square-down-left:after,.fad.fa-square-down-left:after{content:"\e26b\e26b"}.fa-duotone.fa-burger-lettuce:after,.fad.fa-burger-lettuce:after{content:"\e3e3\e3e3"}.fa-duotone.fa-rupiah-sign:after,.fad.fa-rupiah-sign:after{content:"\e23d\e23d"}.fa-duotone.fa-magnifying-glass:after,.fa-duotone.fa-search:after,.fad.fa-magnifying-glass:after,.fad.fa-search:after{content:"\f002\f002"}.fa-duotone.fa-ping-pong-paddle-ball:after,.fa-duotone.fa-table-tennis-paddle-ball:after,.fa-duotone.fa-table-tennis:after,.fad.fa-ping-pong-paddle-ball:after,.fad.fa-table-tennis-paddle-ball:after,.fad.fa-table-tennis:after{content:"\f45d\f45d"}.fa-duotone.fa-diagnoses:after,.fa-duotone.fa-person-dots-from-line:after,.fad.fa-diagnoses:after,.fad.fa-person-dots-from-line:after{content:"\f470\f470"}.fa-duotone.fa-chevron-double-down:after,.fa-duotone.fa-chevrons-down:after,.fad.fa-chevron-double-down:after,.fad.fa-chevrons-down:after{content:"\f322\f322"}.fa-duotone.fa-trash-can-arrow-up:after,.fa-duotone.fa-trash-restore-alt:after,.fad.fa-trash-can-arrow-up:after,.fad.fa-trash-restore-alt:after{content:"\f82a\f82a"}.fa-duotone.fa-signal-3:after,.fa-duotone.fa-signal-good:after,.fad.fa-signal-3:after,.fad.fa-signal-good:after{content:"\f68e\f68e"}.fa-duotone.fa-location-question:after,.fa-duotone.fa-map-marker-question:after,.fad.fa-location-question:after,.fad.fa-map-marker-question:after{content:"\f60b\f60b"}.fa-duotone.fa-floppy-disk-circle-xmark:after,.fa-duotone.fa-floppy-disk-times:after,.fa-duotone.fa-save-circle-xmark:after,.fa-duotone.fa-save-times:after,.fad.fa-floppy-disk-circle-xmark:after,.fad.fa-floppy-disk-times:after,.fad.fa-save-circle-xmark:after,.fad.fa-save-times:after{content:"\e181\e181"}.fa-duotone.fa-naira-sign:after,.fad.fa-naira-sign:after{content:"\e1f6\e1f6"}.fa-duotone.fa-peach:after,.fad.fa-peach:after{content:"\e20b\e20b"}.fa-duotone.fa-taxi-bus:after,.fad.fa-taxi-bus:after{content:"\e298\e298"}.fa-duotone.fa-bracket-curly-left:after,.fa-duotone.fa-bracket-curly:after,.fad.fa-bracket-curly-left:after,.fad.fa-bracket-curly:after{content:"\7b\7b"}.fa-duotone.fa-lobster:after,.fad.fa-lobster:after{content:"\e421\e421"}.fa-duotone.fa-cart-flatbed-empty:after,.fa-duotone.fa-dolly-flatbed-empty:after,.fad.fa-cart-flatbed-empty:after,.fad.fa-dolly-flatbed-empty:after{content:"\f476\f476"}.fa-duotone.fa-colon:after,.fad.fa-colon:after{content:"\3a\3a"}.fa-duotone.fa-cart-arrow-down:after,.fad.fa-cart-arrow-down:after{content:"\f218\f218"}.fa-duotone.fa-wand:after,.fad.fa-wand:after{content:"\f72a\f72a"}.fa-duotone.fa-walkie-talkie:after,.fad.fa-walkie-talkie:after{content:"\f8ef\f8ef"}.fa-duotone.fa-file-edit:after,.fa-duotone.fa-file-pen:after,.fad.fa-file-edit:after,.fad.fa-file-pen:after{content:"\f31c\f31c"}.fa-duotone.fa-receipt:after,.fad.fa-receipt:after{content:"\f543\f543"}.fa-duotone.fa-table-picnic:after,.fad.fa-table-picnic:after{content:"\e32d\e32d"}.fa-duotone.fa-pen-square:after,.fa-duotone.fa-pencil-square:after,.fa-duotone.fa-square-pen:after,.fad.fa-pen-square:after,.fad.fa-pencil-square:after,.fad.fa-square-pen:after{content:"\f14b\f14b"}.fa-duotone.fa-circle-microphone-lines:after,.fa-duotone.fa-microphone-circle-alt:after,.fad.fa-circle-microphone-lines:after,.fad.fa-microphone-circle-alt:after{content:"\e117\e117"}.fa-duotone.fa-desktop-slash:after,.fa-duotone.fa-display-slash:after,.fad.fa-desktop-slash:after,.fad.fa-display-slash:after{content:"\e2fa\e2fa"}.fa-duotone.fa-suitcase-rolling:after,.fad.fa-suitcase-rolling:after{content:"\f5c1\f5c1"}.fa-duotone.fa-person-circle-exclamation:after,.fad.fa-person-circle-exclamation:after{content:"\e53f\e53f"}.fa-duotone.fa-transporter-2:after,.fad.fa-transporter-2:after{content:"\e044\e044"}.fa-duotone.fa-hand-receiving:after,.fa-duotone.fa-hands-holding-diamond:after,.fad.fa-hand-receiving:after,.fad.fa-hands-holding-diamond:after{content:"\f47c\f47c"}.fa-duotone.fa-money-bill-simple-wave:after,.fad.fa-money-bill-simple-wave:after{content:"\e1f2\e1f2"}.fa-duotone.fa-chevron-down:after,.fad.fa-chevron-down:after{content:"\f078\f078"}.fa-duotone.fa-battery-5:after,.fa-duotone.fa-battery-full:after,.fa-duotone.fa-battery:after,.fad.fa-battery-5:after,.fad.fa-battery-full:after,.fad.fa-battery:after{content:"\f240\f240"}.fa-duotone.fa-bell-plus:after,.fad.fa-bell-plus:after{content:"\f849\f849"}.fa-duotone.fa-book-arrow-right:after,.fad.fa-book-arrow-right:after{content:"\e0b9\e0b9"}.fa-duotone.fa-hospitals:after,.fad.fa-hospitals:after{content:"\f80e\f80e"}.fa-duotone.fa-club:after,.fad.fa-club:after{content:"\f327\f327"}.fa-duotone.fa-skull-crossbones:after,.fad.fa-skull-crossbones:after{content:"\f714\f714"}.fa-duotone.fa-dewpoint:after,.fa-duotone.fa-droplet-degree:after,.fad.fa-dewpoint:after,.fad.fa-droplet-degree:after{content:"\f748\f748"}.fa-duotone.fa-code-compare:after,.fad.fa-code-compare:after{content:"\e13a\e13a"}.fa-duotone.fa-list-dots:after,.fa-duotone.fa-list-ul:after,.fad.fa-list-dots:after,.fad.fa-list-ul:after{content:"\f0ca\f0ca"}.fa-duotone.fa-hand-holding-magic:after,.fad.fa-hand-holding-magic:after{content:"\f6e5\f6e5"}.fa-duotone.fa-watermelon-slice:after,.fad.fa-watermelon-slice:after{content:"\e337\e337"}.fa-duotone.fa-circle-ellipsis:after,.fad.fa-circle-ellipsis:after{content:"\e10a\e10a"}.fa-duotone.fa-school-lock:after,.fad.fa-school-lock:after{content:"\e56f\e56f"}.fa-duotone.fa-tower-cell:after,.fad.fa-tower-cell:after{content:"\e585\e585"}.fa-duotone.fa-sd-cards:after,.fad.fa-sd-cards:after{content:"\e240\e240"}.fa-duotone.fa-jug-bottle:after,.fad.fa-jug-bottle:after{content:"\e5fb\e5fb"}.fa-duotone.fa-down-long:after,.fa-duotone.fa-long-arrow-alt-down:after,.fad.fa-down-long:after,.fad.fa-long-arrow-alt-down:after{content:"\f309\f309"}.fa-duotone.fa-envelopes:after,.fad.fa-envelopes:after{content:"\e170\e170"}.fa-duotone.fa-phone-office:after,.fad.fa-phone-office:after{content:"\f67d\f67d"}.fa-duotone.fa-ranking-star:after,.fad.fa-ranking-star:after{content:"\e561\e561"}.fa-duotone.fa-chess-king:after,.fad.fa-chess-king:after{content:"\f43f\f43f"}.fa-duotone.fa-nfc-pen:after,.fad.fa-nfc-pen:after{content:"\e1fa\e1fa"}.fa-duotone.fa-person-harassing:after,.fad.fa-person-harassing:after{content:"\e549\e549"}.fa-duotone.fa-magnifying-glass-play:after,.fad.fa-magnifying-glass-play:after{content:"\e660\e660"}.fa-duotone.fa-hat-winter:after,.fad.fa-hat-winter:after{content:"\f7a8\f7a8"}.fa-duotone.fa-brazilian-real-sign:after,.fad.fa-brazilian-real-sign:after{content:"\e46c\e46c"}.fa-duotone.fa-landmark-alt:after,.fa-duotone.fa-landmark-dome:after,.fad.fa-landmark-alt:after,.fad.fa-landmark-dome:after{content:"\f752\f752"}.fa-duotone.fa-bone-break:after,.fad.fa-bone-break:after{content:"\f5d8\f5d8"}.fa-duotone.fa-arrow-up:after,.fad.fa-arrow-up:after{content:"\f062\f062"}.fa-duotone.fa-down-from-dotted-line:after,.fad.fa-down-from-dotted-line:after{content:"\e407\e407"}.fa-duotone.fa-television:after,.fa-duotone.fa-tv-alt:after,.fa-duotone.fa-tv:after,.fad.fa-television:after,.fad.fa-tv-alt:after,.fad.fa-tv:after{content:"\f26c\f26c"}.fa-duotone.fa-border-left:after,.fad.fa-border-left:after{content:"\f84f\f84f"}.fa-duotone.fa-circle-divide:after,.fad.fa-circle-divide:after{content:"\e106\e106"}.fa-duotone.fa-shrimp:after,.fad.fa-shrimp:after{content:"\e448\e448"}.fa-duotone.fa-list-check:after,.fa-duotone.fa-tasks:after,.fad.fa-list-check:after,.fad.fa-tasks:after{content:"\f0ae\f0ae"}.fa-duotone.fa-diagram-subtask:after,.fad.fa-diagram-subtask:after{content:"\e479\e479"}.fa-duotone.fa-jug-detergent:after,.fad.fa-jug-detergent:after{content:"\e519\e519"}.fa-duotone.fa-circle-user:after,.fa-duotone.fa-user-circle:after,.fad.fa-circle-user:after,.fad.fa-user-circle:after{content:"\f2bd\f2bd"}.fa-duotone.fa-square-y:after,.fad.fa-square-y:after{content:"\e287\e287"}.fa-duotone.fa-user-doctor-hair:after,.fad.fa-user-doctor-hair:after{content:"\e458\e458"}.fa-duotone.fa-planet-ringed:after,.fad.fa-planet-ringed:after{content:"\e020\e020"}.fa-duotone.fa-mushroom:after,.fad.fa-mushroom:after{content:"\e425\e425"}.fa-duotone.fa-user-shield:after,.fad.fa-user-shield:after{content:"\f505\f505"}.fa-duotone.fa-megaphone:after,.fad.fa-megaphone:after{content:"\f675\f675"}.fa-duotone.fa-wreath-laurel:after,.fad.fa-wreath-laurel:after{content:"\e5d2\e5d2"}.fa-duotone.fa-circle-exclamation-check:after,.fad.fa-circle-exclamation-check:after{content:"\e10d\e10d"}.fa-duotone.fa-wind:after,.fad.fa-wind:after{content:"\f72e\f72e"}.fa-duotone.fa-box-dollar:after,.fa-duotone.fa-box-usd:after,.fad.fa-box-dollar:after,.fad.fa-box-usd:after{content:"\f4a0\f4a0"}.fa-duotone.fa-car-burst:after,.fa-duotone.fa-car-crash:after,.fad.fa-car-burst:after,.fad.fa-car-crash:after{content:"\f5e1\f5e1"}.fa-duotone.fa-y:after,.fad.fa-y:after{content:"\59\59"}.fa-duotone.fa-user-headset:after,.fad.fa-user-headset:after{content:"\f82d\f82d"}.fa-duotone.fa-arrows-retweet:after,.fa-duotone.fa-retweet-alt:after,.fad.fa-arrows-retweet:after,.fad.fa-retweet-alt:after{content:"\f361\f361"}.fa-duotone.fa-person-snowboarding:after,.fa-duotone.fa-snowboarding:after,.fad.fa-person-snowboarding:after,.fad.fa-snowboarding:after{content:"\f7ce\f7ce"}.fa-duotone.fa-chevron-square-right:after,.fa-duotone.fa-square-chevron-right:after,.fad.fa-chevron-square-right:after,.fad.fa-square-chevron-right:after{content:"\f32b\f32b"}.fa-duotone.fa-lacrosse-stick-ball:after,.fad.fa-lacrosse-stick-ball:after{content:"\e3b6\e3b6"}.fa-duotone.fa-shipping-fast:after,.fa-duotone.fa-truck-fast:after,.fad.fa-shipping-fast:after,.fad.fa-truck-fast:after{content:"\f48b\f48b"}.fa-duotone.fa-user-magnifying-glass:after,.fad.fa-user-magnifying-glass:after{content:"\e5c5\e5c5"}.fa-duotone.fa-star-sharp:after,.fad.fa-star-sharp:after{content:"\e28b\e28b"}.fa-duotone.fa-comment-heart:after,.fad.fa-comment-heart:after{content:"\e5c8\e5c8"}.fa-duotone.fa-circle-1:after,.fad.fa-circle-1:after{content:"\e0ee\e0ee"}.fa-duotone.fa-circle-star:after,.fa-duotone.fa-star-circle:after,.fad.fa-circle-star:after,.fad.fa-star-circle:after{content:"\e123\e123"}.fa-duotone.fa-fish:after,.fad.fa-fish:after{content:"\f578\f578"}.fa-duotone.fa-cloud-fog:after,.fa-duotone.fa-fog:after,.fad.fa-cloud-fog:after,.fad.fa-fog:after{content:"\f74e\f74e"}.fa-duotone.fa-waffle:after,.fad.fa-waffle:after{content:"\e466\e466"}.fa-duotone.fa-music-alt:after,.fa-duotone.fa-music-note:after,.fad.fa-music-alt:after,.fad.fa-music-note:after{content:"\f8cf\f8cf"}.fa-duotone.fa-hexagon-exclamation:after,.fad.fa-hexagon-exclamation:after{content:"\e417\e417"}.fa-duotone.fa-cart-shopping-fast:after,.fad.fa-cart-shopping-fast:after{content:"\e0dc\e0dc"}.fa-duotone.fa-object-union:after,.fad.fa-object-union:after{content:"\e49f\e49f"}.fa-duotone.fa-user-graduate:after,.fad.fa-user-graduate:after{content:"\f501\f501"}.fa-duotone.fa-starfighter:after,.fad.fa-starfighter:after{content:"\e037\e037"}.fa-duotone.fa-adjust:after,.fa-duotone.fa-circle-half-stroke:after,.fad.fa-adjust:after,.fad.fa-circle-half-stroke:after{content:"\f042\f042"}.fa-duotone.fa-arrow-right-long-to-line:after,.fad.fa-arrow-right-long-to-line:after{content:"\e3d5\e3d5"}.fa-duotone.fa-arrow-square-down:after,.fa-duotone.fa-square-arrow-down:after,.fad.fa-arrow-square-down:after,.fad.fa-square-arrow-down:after{content:"\f339\f339"}.fa-duotone.fa-diamond-half-stroke:after,.fad.fa-diamond-half-stroke:after{content:"\e5b8\e5b8"}.fa-duotone.fa-clapperboard:after,.fad.fa-clapperboard:after{content:"\e131\e131"}.fa-duotone.fa-chevron-square-left:after,.fa-duotone.fa-square-chevron-left:after,.fad.fa-chevron-square-left:after,.fad.fa-square-chevron-left:after{content:"\f32a\f32a"}.fa-duotone.fa-phone-intercom:after,.fad.fa-phone-intercom:after{content:"\e434\e434"}.fa-duotone.fa-chain-horizontal:after,.fa-duotone.fa-link-horizontal:after,.fad.fa-chain-horizontal:after,.fad.fa-link-horizontal:after{content:"\e1cb\e1cb"}.fa-duotone.fa-mango:after,.fad.fa-mango:after{content:"\e30f\e30f"}.fa-duotone.fa-music-alt-slash:after,.fa-duotone.fa-music-note-slash:after,.fad.fa-music-alt-slash:after,.fad.fa-music-note-slash:after{content:"\f8d0\f8d0"}.fa-duotone.fa-circle-radiation:after,.fa-duotone.fa-radiation-alt:after,.fad.fa-circle-radiation:after,.fad.fa-radiation-alt:after{content:"\f7ba\f7ba"}.fa-duotone.fa-face-tongue-sweat:after,.fad.fa-face-tongue-sweat:after{content:"\e39e\e39e"}.fa-duotone.fa-globe-stand:after,.fad.fa-globe-stand:after{content:"\f5f6\f5f6"}.fa-duotone.fa-baseball-ball:after,.fa-duotone.fa-baseball:after,.fad.fa-baseball-ball:after,.fad.fa-baseball:after{content:"\f433\f433"}.fa-duotone.fa-circle-p:after,.fad.fa-circle-p:after{content:"\e11a\e11a"}.fa-duotone.fa-award-simple:after,.fad.fa-award-simple:after{content:"\e0ab\e0ab"}.fa-duotone.fa-jet-fighter-up:after,.fad.fa-jet-fighter-up:after{content:"\e518\e518"}.fa-duotone.fa-diagram-project:after,.fa-duotone.fa-project-diagram:after,.fad.fa-diagram-project:after,.fad.fa-project-diagram:after{content:"\f542\f542"}.fa-duotone.fa-pedestal:after,.fad.fa-pedestal:after{content:"\e20d\e20d"}.fa-duotone.fa-chart-pyramid:after,.fad.fa-chart-pyramid:after{content:"\e0e6\e0e6"}.fa-duotone.fa-sidebar:after,.fad.fa-sidebar:after{content:"\e24e\e24e"}.fa-duotone.fa-frosty-head:after,.fa-duotone.fa-snowman-head:after,.fad.fa-frosty-head:after,.fad.fa-snowman-head:after{content:"\f79b\f79b"}.fa-duotone.fa-copy:after,.fad.fa-copy:after{content:"\f0c5\f0c5"}.fa-duotone.fa-burger-glass:after,.fad.fa-burger-glass:after{content:"\e0ce\e0ce"}.fa-duotone.fa-volume-mute:after,.fa-duotone.fa-volume-times:after,.fa-duotone.fa-volume-xmark:after,.fad.fa-volume-mute:after,.fad.fa-volume-times:after,.fad.fa-volume-xmark:after{content:"\f6a9\f6a9"}.fa-duotone.fa-hand-sparkles:after,.fad.fa-hand-sparkles:after{content:"\e05d\e05d"}.fa-duotone.fa-bars-filter:after,.fad.fa-bars-filter:after{content:"\e0ad\e0ad"}.fa-duotone.fa-paintbrush-pencil:after,.fad.fa-paintbrush-pencil:after{content:"\e206\e206"}.fa-duotone.fa-party-bell:after,.fad.fa-party-bell:after{content:"\e31a\e31a"}.fa-duotone.fa-user-vneck-hair:after,.fad.fa-user-vneck-hair:after{content:"\e462\e462"}.fa-duotone.fa-jack-o-lantern:after,.fad.fa-jack-o-lantern:after{content:"\f30e\f30e"}.fa-duotone.fa-grip-horizontal:after,.fa-duotone.fa-grip:after,.fad.fa-grip-horizontal:after,.fad.fa-grip:after{content:"\f58d\f58d"}.fa-duotone.fa-share-from-square:after,.fa-duotone.fa-share-square:after,.fad.fa-share-from-square:after,.fad.fa-share-square:after{content:"\f14d\f14d"}.fa-duotone.fa-keynote:after,.fad.fa-keynote:after{content:"\f66c\f66c"}.fa-duotone.fa-child-combatant:after,.fa-duotone.fa-child-rifle:after,.fad.fa-child-combatant:after,.fad.fa-child-rifle:after{content:"\e4e0\e4e0"}.fa-duotone.fa-gun:after,.fad.fa-gun:after{content:"\e19b\e19b"}.fa-duotone.fa-phone-square:after,.fa-duotone.fa-square-phone:after,.fad.fa-phone-square:after,.fad.fa-square-phone:after{content:"\f098\f098"}.fa-duotone.fa-hat-beach:after,.fad.fa-hat-beach:after{content:"\e606\e606"}.fa-duotone.fa-add:after,.fa-duotone.fa-plus:after,.fad.fa-add:after,.fad.fa-plus:after{content:"\2b\2b"}.fa-duotone.fa-expand:after,.fad.fa-expand:after{content:"\f065\f065"}.fa-duotone.fa-computer:after,.fad.fa-computer:after{content:"\e4e5\e4e5"}.fa-duotone.fa-fort:after,.fad.fa-fort:after{content:"\e486\e486"}.fa-duotone.fa-cloud-check:after,.fad.fa-cloud-check:after{content:"\e35c\e35c"}.fa-duotone.fa-close:after,.fa-duotone.fa-multiply:after,.fa-duotone.fa-remove:after,.fa-duotone.fa-times:after,.fa-duotone.fa-xmark:after,.fad.fa-close:after,.fad.fa-multiply:after,.fad.fa-remove:after,.fad.fa-times:after,.fad.fa-xmark:after{content:"\f00d\f00d"}.fa-duotone.fa-face-smirking:after,.fad.fa-face-smirking:after{content:"\e397\e397"}.fa-duotone.fa-arrows-up-down-left-right:after,.fa-duotone.fa-arrows:after,.fad.fa-arrows-up-down-left-right:after,.fad.fa-arrows:after{content:"\f047\f047"}.fa-duotone.fa-chalkboard-teacher:after,.fa-duotone.fa-chalkboard-user:after,.fad.fa-chalkboard-teacher:after,.fad.fa-chalkboard-user:after{content:"\f51c\f51c"}.fa-duotone.fa-rhombus:after,.fad.fa-rhombus:after{content:"\e23b\e23b"}.fa-duotone.fa-claw-marks:after,.fad.fa-claw-marks:after{content:"\f6c2\f6c2"}.fa-duotone.fa-peso-sign:after,.fad.fa-peso-sign:after{content:"\e222\e222"}.fa-duotone.fa-face-smile-tongue:after,.fad.fa-face-smile-tongue:after{content:"\e394\e394"}.fa-duotone.fa-cart-circle-xmark:after,.fad.fa-cart-circle-xmark:after{content:"\e3f4\e3f4"}.fa-duotone.fa-building-shield:after,.fad.fa-building-shield:after{content:"\e4d8\e4d8"}.fa-duotone.fa-circle-phone-flip:after,.fa-duotone.fa-phone-circle-alt:after,.fad.fa-circle-phone-flip:after,.fad.fa-phone-circle-alt:after{content:"\e11c\e11c"}.fa-duotone.fa-baby:after,.fad.fa-baby:after{content:"\f77c\f77c"}.fa-duotone.fa-users-line:after,.fad.fa-users-line:after{content:"\e592\e592"}.fa-duotone.fa-quote-left-alt:after,.fa-duotone.fa-quote-left:after,.fad.fa-quote-left-alt:after,.fad.fa-quote-left:after{content:"\f10d\f10d"}.fa-duotone.fa-tractor:after,.fad.fa-tractor:after{content:"\f722\f722"}.fa-duotone.fa-key-skeleton:after,.fad.fa-key-skeleton:after{content:"\f6f3\f6f3"}.fa-duotone.fa-trash-arrow-up:after,.fa-duotone.fa-trash-restore:after,.fad.fa-trash-arrow-up:after,.fad.fa-trash-restore:after{content:"\f829\f829"}.fa-duotone.fa-arrow-down-up-lock:after,.fad.fa-arrow-down-up-lock:after{content:"\e4b0\e4b0"}.fa-duotone.fa-arrow-down-to-bracket:after,.fad.fa-arrow-down-to-bracket:after{content:"\e094\e094"}.fa-duotone.fa-lines-leaning:after,.fad.fa-lines-leaning:after{content:"\e51e\e51e"}.fa-duotone.fa-square-q:after,.fad.fa-square-q:after{content:"\e27b\e27b"}.fa-duotone.fa-ruler-combined:after,.fad.fa-ruler-combined:after{content:"\f546\f546"}.fa-duotone.fa-icons-alt:after,.fa-duotone.fa-symbols:after,.fad.fa-icons-alt:after,.fad.fa-symbols:after{content:"\f86e\f86e"}.fa-duotone.fa-copyright:after,.fad.fa-copyright:after{content:"\f1f9\f1f9"}.fa-duotone.fa-flask-gear:after,.fad.fa-flask-gear:after{content:"\e5f1\e5f1"}.fa-duotone.fa-highlighter-line:after,.fad.fa-highlighter-line:after{content:"\e1af\e1af"}.fa-duotone.fa-bracket-left:after,.fa-duotone.fa-bracket-square:after,.fa-duotone.fa-bracket:after,.fad.fa-bracket-left:after,.fad.fa-bracket-square:after,.fad.fa-bracket:after{content:"\5b\5b"}.fa-duotone.fa-island-tree-palm:after,.fa-duotone.fa-island-tropical:after,.fad.fa-island-tree-palm:after,.fad.fa-island-tropical:after{content:"\f811\f811"}.fa-duotone.fa-arrow-from-left:after,.fa-duotone.fa-arrow-right-from-line:after,.fad.fa-arrow-from-left:after,.fad.fa-arrow-right-from-line:after{content:"\f343\f343"}.fa-duotone.fa-h2:after,.fad.fa-h2:after{content:"\f314\f314"}.fa-duotone.fa-equals:after,.fad.fa-equals:after{content:"\3d\3d"}.fa-duotone.fa-cake-slice:after,.fa-duotone.fa-shortcake:after,.fad.fa-cake-slice:after,.fad.fa-shortcake:after{content:"\e3e5\e3e5"}.fa-duotone.fa-building-magnifying-glass:after,.fad.fa-building-magnifying-glass:after{content:"\e61c\e61c"}.fa-duotone.fa-peanut:after,.fad.fa-peanut:after{content:"\e430\e430"}.fa-duotone.fa-wrench-simple:after,.fad.fa-wrench-simple:after{content:"\e2d1\e2d1"}.fa-duotone.fa-blender:after,.fad.fa-blender:after{content:"\f517\f517"}.fa-duotone.fa-teeth:after,.fad.fa-teeth:after{content:"\f62e\f62e"}.fa-duotone.fa-tally-2:after,.fad.fa-tally-2:after{content:"\e295\e295"}.fa-duotone.fa-ils:after,.fa-duotone.fa-shekel-sign:after,.fa-duotone.fa-shekel:after,.fa-duotone.fa-sheqel-sign:after,.fa-duotone.fa-sheqel:after,.fad.fa-ils:after,.fad.fa-shekel-sign:after,.fad.fa-shekel:after,.fad.fa-sheqel-sign:after,.fad.fa-sheqel:after{content:"\f20b\f20b"}.fa-duotone.fa-cars:after,.fad.fa-cars:after{content:"\f85b\f85b"}.fa-duotone.fa-axe-battle:after,.fad.fa-axe-battle:after{content:"\f6b3\f6b3"}.fa-duotone.fa-user-hair-long:after,.fad.fa-user-hair-long:after{content:"\e45b\e45b"}.fa-duotone.fa-map:after,.fad.fa-map:after{content:"\f279\f279"}.fa-duotone.fa-arrow-left-from-arc:after,.fad.fa-arrow-left-from-arc:after{content:"\e615\e615"}.fa-duotone.fa-file-circle-info:after,.fad.fa-file-circle-info:after{content:"\e493\e493"}.fa-duotone.fa-face-disappointed:after,.fad.fa-face-disappointed:after{content:"\e36f\e36f"}.fa-duotone.fa-lasso-sparkles:after,.fad.fa-lasso-sparkles:after{content:"\e1c9\e1c9"}.fa-duotone.fa-clock-eleven:after,.fad.fa-clock-eleven:after{content:"\e347\e347"}.fa-duotone.fa-rocket:after,.fad.fa-rocket:after{content:"\f135\f135"}.fa-duotone.fa-siren-on:after,.fad.fa-siren-on:after{content:"\e02e\e02e"}.fa-duotone.fa-clock-ten:after,.fad.fa-clock-ten:after{content:"\e354\e354"}.fa-duotone.fa-candle-holder:after,.fad.fa-candle-holder:after{content:"\f6bc\f6bc"}.fa-duotone.fa-video-arrow-down-left:after,.fad.fa-video-arrow-down-left:after{content:"\e2c8\e2c8"}.fa-duotone.fa-photo-film:after,.fa-duotone.fa-photo-video:after,.fad.fa-photo-film:after,.fad.fa-photo-video:after{content:"\f87c\f87c"}.fa-duotone.fa-floppy-disk-circle-arrow-right:after,.fa-duotone.fa-save-circle-arrow-right:after,.fad.fa-floppy-disk-circle-arrow-right:after,.fad.fa-save-circle-arrow-right:after{content:"\e180\e180"}.fa-duotone.fa-folder-minus:after,.fad.fa-folder-minus:after{content:"\f65d\f65d"}.fa-duotone.fa-planet-moon:after,.fad.fa-planet-moon:after{content:"\e01f\e01f"}.fa-duotone.fa-face-eyes-xmarks:after,.fad.fa-face-eyes-xmarks:after{content:"\e374\e374"}.fa-duotone.fa-chart-scatter:after,.fad.fa-chart-scatter:after{content:"\f7ee\f7ee"}.fa-duotone.fa-display-arrow-down:after,.fad.fa-display-arrow-down:after{content:"\e164\e164"}.fa-duotone.fa-store:after,.fad.fa-store:after{content:"\f54e\f54e"}.fa-duotone.fa-arrow-trend-up:after,.fad.fa-arrow-trend-up:after{content:"\e098\e098"}.fa-duotone.fa-plug-circle-minus:after,.fad.fa-plug-circle-minus:after{content:"\e55e\e55e"}.fa-duotone.fa-olive-branch:after,.fad.fa-olive-branch:after{content:"\e317\e317"}.fa-duotone.fa-angle:after,.fad.fa-angle:after{content:"\e08c\e08c"}.fa-duotone.fa-vacuum-robot:after,.fad.fa-vacuum-robot:after{content:"\e04e\e04e"}.fa-duotone.fa-sign-hanging:after,.fa-duotone.fa-sign:after,.fad.fa-sign-hanging:after,.fad.fa-sign:after{content:"\f4d9\f4d9"}.fa-duotone.fa-square-divide:after,.fad.fa-square-divide:after{content:"\e26a\e26a"}.fa-duotone.fa-folder-check:after,.fad.fa-folder-check:after{content:"\e64e\e64e"}.fa-duotone.fa-signal-stream-slash:after,.fad.fa-signal-stream-slash:after{content:"\e250\e250"}.fa-duotone.fa-bezier-curve:after,.fad.fa-bezier-curve:after{content:"\f55b\f55b"}.fa-duotone.fa-eye-dropper-half:after,.fad.fa-eye-dropper-half:after{content:"\e173\e173"}.fa-duotone.fa-store-lock:after,.fad.fa-store-lock:after{content:"\e4a6\e4a6"}.fa-duotone.fa-bell-slash:after,.fad.fa-bell-slash:after{content:"\f1f6\f1f6"}.fa-duotone.fa-cloud-bolt-sun:after,.fa-duotone.fa-thunderstorm-sun:after,.fad.fa-cloud-bolt-sun:after,.fad.fa-thunderstorm-sun:after{content:"\f76e\f76e"}.fa-duotone.fa-camera-slash:after,.fad.fa-camera-slash:after{content:"\e0d9\e0d9"}.fa-duotone.fa-comment-quote:after,.fad.fa-comment-quote:after{content:"\e14c\e14c"}.fa-duotone.fa-tablet-android:after,.fa-duotone.fa-tablet:after,.fad.fa-tablet-android:after,.fad.fa-tablet:after{content:"\f3fb\f3fb"}.fa-duotone.fa-school-flag:after,.fad.fa-school-flag:after{content:"\e56e\e56e"}.fa-duotone.fa-message-code:after,.fad.fa-message-code:after{content:"\e1df\e1df"}.fa-duotone.fa-glass-half-empty:after,.fa-duotone.fa-glass-half-full:after,.fa-duotone.fa-glass-half:after,.fad.fa-glass-half-empty:after,.fad.fa-glass-half-full:after,.fad.fa-glass-half:after{content:"\e192\e192"}.fa-duotone.fa-fill:after,.fad.fa-fill:after{content:"\f575\f575"}.fa-duotone.fa-comment-alt-minus:after,.fa-duotone.fa-message-minus:after,.fad.fa-comment-alt-minus:after,.fad.fa-message-minus:after{content:"\f4a7\f4a7"}.fa-duotone.fa-angle-up:after,.fad.fa-angle-up:after{content:"\f106\f106"}.fa-duotone.fa-dinosaur:after,.fad.fa-dinosaur:after{content:"\e5fe\e5fe"}.fa-duotone.fa-drumstick-bite:after,.fad.fa-drumstick-bite:after{content:"\f6d7\f6d7"}.fa-duotone.fa-chain-horizontal-slash:after,.fa-duotone.fa-link-horizontal-slash:after,.fad.fa-chain-horizontal-slash:after,.fad.fa-link-horizontal-slash:after{content:"\e1cc\e1cc"}.fa-duotone.fa-holly-berry:after,.fad.fa-holly-berry:after{content:"\f7aa\f7aa"}.fa-duotone.fa-nose:after,.fad.fa-nose:after{content:"\e5bd\e5bd"}.fa-duotone.fa-arrow-left-to-arc:after,.fad.fa-arrow-left-to-arc:after{content:"\e616\e616"}.fa-duotone.fa-chevron-left:after,.fad.fa-chevron-left:after{content:"\f053\f053"}.fa-duotone.fa-bacteria:after,.fad.fa-bacteria:after{content:"\e059\e059"}.fa-duotone.fa-clouds:after,.fad.fa-clouds:after{content:"\f744\f744"}.fa-duotone.fa-money-bill-simple:after,.fad.fa-money-bill-simple:after{content:"\e1f1\e1f1"}.fa-duotone.fa-hand-lizard:after,.fad.fa-hand-lizard:after{content:"\f258\f258"}.fa-duotone.fa-table-pivot:after,.fad.fa-table-pivot:after{content:"\e291\e291"}.fa-duotone.fa-filter-slash:after,.fad.fa-filter-slash:after{content:"\e17d\e17d"}.fa-duotone.fa-trash-can-arrow-turn-left:after,.fa-duotone.fa-trash-can-undo:after,.fa-duotone.fa-trash-undo-alt:after,.fad.fa-trash-can-arrow-turn-left:after,.fad.fa-trash-can-undo:after,.fad.fa-trash-undo-alt:after{content:"\f896\f896"}.fa-duotone.fa-notdef:after,.fad.fa-notdef:after{content:"\e1fe\e1fe"}.fa-duotone.fa-disease:after,.fad.fa-disease:after{content:"\f7fa\f7fa"}.fa-duotone.fa-person-to-door:after,.fad.fa-person-to-door:after{content:"\e433\e433"}.fa-duotone.fa-turntable:after,.fad.fa-turntable:after{content:"\f8e4\f8e4"}.fa-duotone.fa-briefcase-medical:after,.fad.fa-briefcase-medical:after{content:"\f469\f469"}.fa-duotone.fa-genderless:after,.fad.fa-genderless:after{content:"\f22d\f22d"}.fa-duotone.fa-chevron-right:after,.fad.fa-chevron-right:after{content:"\f054\f054"}.fa-duotone.fa-signal-1:after,.fa-duotone.fa-signal-weak:after,.fad.fa-signal-1:after,.fad.fa-signal-weak:after{content:"\f68c\f68c"}.fa-duotone.fa-clock-five:after,.fad.fa-clock-five:after{content:"\e349\e349"}.fa-duotone.fa-retweet:after,.fad.fa-retweet:after{content:"\f079\f079"}.fa-duotone.fa-car-alt:after,.fa-duotone.fa-car-rear:after,.fad.fa-car-alt:after,.fad.fa-car-rear:after{content:"\f5de\f5de"}.fa-duotone.fa-pump-soap:after,.fad.fa-pump-soap:after{content:"\e06b\e06b"}.fa-duotone.fa-computer-classic:after,.fad.fa-computer-classic:after{content:"\f8b1\f8b1"}.fa-duotone.fa-frame:after,.fad.fa-frame:after{content:"\e495\e495"}.fa-duotone.fa-video-slash:after,.fad.fa-video-slash:after{content:"\f4e2\f4e2"}.fa-duotone.fa-battery-2:after,.fa-duotone.fa-battery-quarter:after,.fad.fa-battery-2:after,.fad.fa-battery-quarter:after{content:"\f243\f243"}.fa-duotone.fa-ellipsis-h-alt:after,.fa-duotone.fa-ellipsis-stroke:after,.fad.fa-ellipsis-h-alt:after,.fad.fa-ellipsis-stroke:after{content:"\f39b\f39b"}.fa-duotone.fa-radio:after,.fad.fa-radio:after{content:"\f8d7\f8d7"}.fa-duotone.fa-baby-carriage:after,.fa-duotone.fa-carriage-baby:after,.fad.fa-baby-carriage:after,.fad.fa-carriage-baby:after{content:"\f77d\f77d"}.fa-duotone.fa-face-expressionless:after,.fad.fa-face-expressionless:after{content:"\e373\e373"}.fa-duotone.fa-down-to-dotted-line:after,.fad.fa-down-to-dotted-line:after{content:"\e408\e408"}.fa-duotone.fa-cloud-music:after,.fad.fa-cloud-music:after{content:"\f8ae\f8ae"}.fa-duotone.fa-traffic-light:after,.fad.fa-traffic-light:after{content:"\f637\f637"}.fa-duotone.fa-cloud-minus:after,.fad.fa-cloud-minus:after{content:"\e35d\e35d"}.fa-duotone.fa-thermometer:after,.fad.fa-thermometer:after{content:"\f491\f491"}.fa-duotone.fa-shield-minus:after,.fad.fa-shield-minus:after{content:"\e249\e249"}.fa-duotone.fa-vr-cardboard:after,.fad.fa-vr-cardboard:after{content:"\f729\f729"}.fa-duotone.fa-car-tilt:after,.fad.fa-car-tilt:after{content:"\f5e5\f5e5"}.fa-duotone.fa-gauge-circle-minus:after,.fad.fa-gauge-circle-minus:after{content:"\e497\e497"}.fa-duotone.fa-brightness-low:after,.fad.fa-brightness-low:after{content:"\e0ca\e0ca"}.fa-duotone.fa-hand-middle-finger:after,.fad.fa-hand-middle-finger:after{content:"\f806\f806"}.fa-duotone.fa-percent:after,.fa-duotone.fa-percentage:after,.fad.fa-percent:after,.fad.fa-percentage:after{content:"\25\25"}.fa-duotone.fa-truck-moving:after,.fad.fa-truck-moving:after{content:"\f4df\f4df"}.fa-duotone.fa-glass-water-droplet:after,.fad.fa-glass-water-droplet:after{content:"\e4f5\e4f5"}.fa-duotone.fa-conveyor-belt:after,.fad.fa-conveyor-belt:after{content:"\f46e\f46e"}.fa-duotone.fa-location-check:after,.fa-duotone.fa-map-marker-check:after,.fad.fa-location-check:after,.fad.fa-map-marker-check:after{content:"\f606\f606"}.fa-duotone.fa-coin-vertical:after,.fad.fa-coin-vertical:after{content:"\e3fd\e3fd"}.fa-duotone.fa-display:after,.fad.fa-display:after{content:"\e163\e163"}.fa-duotone.fa-person-sign:after,.fad.fa-person-sign:after{content:"\f757\f757"}.fa-duotone.fa-face-smile:after,.fa-duotone.fa-smile:after,.fad.fa-face-smile:after,.fad.fa-smile:after{content:"\f118\f118"}.fa-duotone.fa-phone-hangup:after,.fad.fa-phone-hangup:after{content:"\e225\e225"}.fa-duotone.fa-signature-slash:after,.fad.fa-signature-slash:after{content:"\e3cb\e3cb"}.fa-duotone.fa-thumb-tack:after,.fa-duotone.fa-thumbtack:after,.fad.fa-thumb-tack:after,.fad.fa-thumbtack:after{content:"\f08d\f08d"}.fa-duotone.fa-wheat-slash:after,.fad.fa-wheat-slash:after{content:"\e339\e339"}.fa-duotone.fa-trophy:after,.fad.fa-trophy:after{content:"\f091\f091"}.fa-duotone.fa-clouds-sun:after,.fad.fa-clouds-sun:after{content:"\f746\f746"}.fa-duotone.fa-person-praying:after,.fa-duotone.fa-pray:after,.fad.fa-person-praying:after,.fad.fa-pray:after{content:"\f683\f683"}.fa-duotone.fa-hammer:after,.fad.fa-hammer:after{content:"\f6e3\f6e3"}.fa-duotone.fa-face-vomit:after,.fad.fa-face-vomit:after{content:"\e3a0\e3a0"}.fa-duotone.fa-speakers:after,.fad.fa-speakers:after{content:"\f8e0\f8e0"}.fa-duotone.fa-teletype-answer:after,.fa-duotone.fa-tty-answer:after,.fad.fa-teletype-answer:after,.fad.fa-tty-answer:after{content:"\e2b9\e2b9"}.fa-duotone.fa-mug-tea-saucer:after,.fad.fa-mug-tea-saucer:after{content:"\e1f5\e1f5"}.fa-duotone.fa-diagram-lean-canvas:after,.fad.fa-diagram-lean-canvas:after{content:"\e156\e156"}.fa-duotone.fa-alt:after,.fad.fa-alt:after{content:"\e08a\e08a"}.fa-duotone.fa-dial-med-high:after,.fa-duotone.fa-dial:after,.fad.fa-dial-med-high:after,.fad.fa-dial:after{content:"\e15b\e15b"}.fa-duotone.fa-hand-peace:after,.fad.fa-hand-peace:after{content:"\f25b\f25b"}.fa-duotone.fa-circle-trash:after,.fa-duotone.fa-trash-circle:after,.fad.fa-circle-trash:after,.fad.fa-trash-circle:after{content:"\e126\e126"}.fa-duotone.fa-rotate:after,.fa-duotone.fa-sync-alt:after,.fad.fa-rotate:after,.fad.fa-sync-alt:after{content:"\f2f1\f2f1"}.fa-duotone.fa-circle-quarters:after,.fad.fa-circle-quarters:after{content:"\e3f8\e3f8"}.fa-duotone.fa-spinner:after,.fad.fa-spinner:after{content:"\f110\f110"}.fa-duotone.fa-tower-control:after,.fad.fa-tower-control:after{content:"\e2a2\e2a2"}.fa-duotone.fa-arrow-up-triangle-square:after,.fa-duotone.fa-sort-shapes-up:after,.fad.fa-arrow-up-triangle-square:after,.fad.fa-sort-shapes-up:after{content:"\f88a\f88a"}.fa-duotone.fa-whale:after,.fad.fa-whale:after{content:"\f72c\f72c"}.fa-duotone.fa-robot:after,.fad.fa-robot:after{content:"\f544\f544"}.fa-duotone.fa-peace:after,.fad.fa-peace:after{content:"\f67c\f67c"}.fa-duotone.fa-party-horn:after,.fad.fa-party-horn:after{content:"\e31b\e31b"}.fa-duotone.fa-cogs:after,.fa-duotone.fa-gears:after,.fad.fa-cogs:after,.fad.fa-gears:after{content:"\f085\f085"}.fa-duotone.fa-sun-alt:after,.fa-duotone.fa-sun-bright:after,.fad.fa-sun-alt:after,.fad.fa-sun-bright:after{content:"\e28f\e28f"}.fa-duotone.fa-warehouse:after,.fad.fa-warehouse:after{content:"\f494\f494"}.fa-duotone.fa-conveyor-belt-arm:after,.fad.fa-conveyor-belt-arm:after{content:"\e5f8\e5f8"}.fa-duotone.fa-lock-keyhole-open:after,.fa-duotone.fa-lock-open-alt:after,.fad.fa-lock-keyhole-open:after,.fad.fa-lock-open-alt:after{content:"\f3c2\f3c2"}.fa-duotone.fa-box-fragile:after,.fa-duotone.fa-square-fragile:after,.fa-duotone.fa-square-wine-glass-crack:after,.fad.fa-box-fragile:after,.fad.fa-square-fragile:after,.fad.fa-square-wine-glass-crack:after{content:"\f49b\f49b"}.fa-duotone.fa-arrow-up-right-dots:after,.fad.fa-arrow-up-right-dots:after{content:"\e4b7\e4b7"}.fa-duotone.fa-square-n:after,.fad.fa-square-n:after{content:"\e277\e277"}.fa-duotone.fa-splotch:after,.fad.fa-splotch:after{content:"\f5bc\f5bc"}.fa-duotone.fa-face-grin-hearts:after,.fa-duotone.fa-grin-hearts:after,.fad.fa-face-grin-hearts:after,.fad.fa-grin-hearts:after{content:"\f584\f584"}.fa-duotone.fa-meter:after,.fad.fa-meter:after{content:"\e1e8\e1e8"}.fa-duotone.fa-mandolin:after,.fad.fa-mandolin:after{content:"\f6f9\f6f9"}.fa-duotone.fa-dice-four:after,.fad.fa-dice-four:after{content:"\f524\f524"}.fa-duotone.fa-sim-card:after,.fad.fa-sim-card:after{content:"\f7c4\f7c4"}.fa-duotone.fa-transgender-alt:after,.fa-duotone.fa-transgender:after,.fad.fa-transgender-alt:after,.fad.fa-transgender:after{content:"\f225\f225"}.fa-duotone.fa-mercury:after,.fad.fa-mercury:after{content:"\f223\f223"}.fa-duotone.fa-up-from-bracket:after,.fad.fa-up-from-bracket:after{content:"\e590\e590"}.fa-duotone.fa-knife-kitchen:after,.fad.fa-knife-kitchen:after{content:"\f6f5\f6f5"}.fa-duotone.fa-border-right:after,.fad.fa-border-right:after{content:"\f852\f852"}.fa-duotone.fa-arrow-turn-down:after,.fa-duotone.fa-level-down:after,.fad.fa-arrow-turn-down:after,.fad.fa-level-down:after{content:"\f149\f149"}.fa-duotone.fa-spade:after,.fad.fa-spade:after{content:"\f2f4\f2f4"}.fa-duotone.fa-card-spade:after,.fad.fa-card-spade:after{content:"\e3ec\e3ec"}.fa-duotone.fa-line-columns:after,.fad.fa-line-columns:after{content:"\f870\f870"}.fa-duotone.fa-arrow-right-to-line:after,.fa-duotone.fa-arrow-to-right:after,.fad.fa-arrow-right-to-line:after,.fad.fa-arrow-to-right:after{content:"\f340\f340"}.fa-duotone.fa-person-falling-burst:after,.fad.fa-person-falling-burst:after{content:"\e547\e547"}.fa-duotone.fa-flag-pennant:after,.fa-duotone.fa-pennant:after,.fad.fa-flag-pennant:after,.fad.fa-pennant:after{content:"\f456\f456"}.fa-duotone.fa-conveyor-belt-empty:after,.fad.fa-conveyor-belt-empty:after{content:"\e150\e150"}.fa-duotone.fa-user-group-simple:after,.fad.fa-user-group-simple:after{content:"\e603\e603"}.fa-duotone.fa-award:after,.fad.fa-award:after{content:"\f559\f559"}.fa-duotone.fa-ticket-alt:after,.fa-duotone.fa-ticket-simple:after,.fad.fa-ticket-alt:after,.fad.fa-ticket-simple:after{content:"\f3ff\f3ff"}.fa-duotone.fa-building:after,.fad.fa-building:after{content:"\f1ad\f1ad"}.fa-duotone.fa-angle-double-left:after,.fa-duotone.fa-angles-left:after,.fad.fa-angle-double-left:after,.fad.fa-angles-left:after{content:"\f100\f100"}.fa-duotone.fa-camcorder:after,.fa-duotone.fa-video-handheld:after,.fad.fa-camcorder:after,.fad.fa-video-handheld:after{content:"\f8a8\f8a8"}.fa-duotone.fa-pancakes:after,.fad.fa-pancakes:after{content:"\e42d\e42d"}.fa-duotone.fa-album-circle-user:after,.fad.fa-album-circle-user:after{content:"\e48d\e48d"}.fa-duotone.fa-subtitles-slash:after,.fad.fa-subtitles-slash:after{content:"\e610\e610"}.fa-duotone.fa-qrcode:after,.fad.fa-qrcode:after{content:"\f029\f029"}.fa-duotone.fa-dice-d10:after,.fad.fa-dice-d10:after{content:"\f6cd\f6cd"}.fa-duotone.fa-fireplace:after,.fad.fa-fireplace:after{content:"\f79a\f79a"}.fa-duotone.fa-browser:after,.fad.fa-browser:after{content:"\f37e\f37e"}.fa-duotone.fa-pen-paintbrush:after,.fa-duotone.fa-pencil-paintbrush:after,.fad.fa-pen-paintbrush:after,.fad.fa-pencil-paintbrush:after{content:"\f618\f618"}.fa-duotone.fa-fish-cooked:after,.fad.fa-fish-cooked:after{content:"\f7fe\f7fe"}.fa-duotone.fa-chair-office:after,.fad.fa-chair-office:after{content:"\f6c1\f6c1"}.fa-duotone.fa-magnifying-glass-music:after,.fad.fa-magnifying-glass-music:after{content:"\e65f\e65f"}.fa-duotone.fa-nesting-dolls:after,.fad.fa-nesting-dolls:after{content:"\e3ba\e3ba"}.fa-duotone.fa-clock-rotate-left:after,.fa-duotone.fa-history:after,.fad.fa-clock-rotate-left:after,.fad.fa-history:after{content:"\f1da\f1da"}.fa-duotone.fa-trumpet:after,.fad.fa-trumpet:after{content:"\f8e3\f8e3"}.fa-duotone.fa-face-grin-beam-sweat:after,.fa-duotone.fa-grin-beam-sweat:after,.fad.fa-face-grin-beam-sweat:after,.fad.fa-grin-beam-sweat:after{content:"\f583\f583"}.fa-duotone.fa-fire-smoke:after,.fad.fa-fire-smoke:after{content:"\f74b\f74b"}.fa-duotone.fa-phone-missed:after,.fad.fa-phone-missed:after{content:"\e226\e226"}.fa-duotone.fa-arrow-right-from-file:after,.fa-duotone.fa-file-export:after,.fad.fa-arrow-right-from-file:after,.fad.fa-file-export:after{content:"\f56e\f56e"}.fa-duotone.fa-shield-blank:after,.fa-duotone.fa-shield:after,.fad.fa-shield-blank:after,.fad.fa-shield:after{content:"\f132\f132"}.fa-duotone.fa-arrow-up-short-wide:after,.fa-duotone.fa-sort-amount-up-alt:after,.fad.fa-arrow-up-short-wide:after,.fad.fa-sort-amount-up-alt:after{content:"\f885\f885"}.fa-duotone.fa-arrows-repeat-1:after,.fa-duotone.fa-repeat-1-alt:after,.fad.fa-arrows-repeat-1:after,.fad.fa-repeat-1-alt:after{content:"\f366\f366"}.fa-duotone.fa-gun-slash:after,.fad.fa-gun-slash:after{content:"\e19c\e19c"}.fa-duotone.fa-avocado:after,.fad.fa-avocado:after{content:"\e0aa\e0aa"}.fa-duotone.fa-binary:after,.fad.fa-binary:after{content:"\e33b\e33b"}.fa-duotone.fa-glasses-alt:after,.fa-duotone.fa-glasses-round:after,.fad.fa-glasses-alt:after,.fad.fa-glasses-round:after{content:"\f5f5\f5f5"}.fa-duotone.fa-phone-plus:after,.fad.fa-phone-plus:after{content:"\f4d2\f4d2"}.fa-duotone.fa-ditto:after,.fad.fa-ditto:after{content:"\22\22"}.fa-duotone.fa-person-seat:after,.fad.fa-person-seat:after{content:"\e21e\e21e"}.fa-duotone.fa-house-medical:after,.fad.fa-house-medical:after{content:"\e3b2\e3b2"}.fa-duotone.fa-golf-ball-tee:after,.fa-duotone.fa-golf-ball:after,.fad.fa-golf-ball-tee:after,.fad.fa-golf-ball:after{content:"\f450\f450"}.fa-duotone.fa-chevron-circle-left:after,.fa-duotone.fa-circle-chevron-left:after,.fad.fa-chevron-circle-left:after,.fad.fa-circle-chevron-left:after{content:"\f137\f137"}.fa-duotone.fa-house-chimney-window:after,.fad.fa-house-chimney-window:after{content:"\e00d\e00d"}.fa-duotone.fa-scythe:after,.fad.fa-scythe:after{content:"\f710\f710"}.fa-duotone.fa-pen-nib:after,.fad.fa-pen-nib:after{content:"\f5ad\f5ad"}.fa-duotone.fa-ban-parking:after,.fa-duotone.fa-parking-circle-slash:after,.fad.fa-ban-parking:after,.fad.fa-parking-circle-slash:after{content:"\f616\f616"}.fa-duotone.fa-tent-arrow-turn-left:after,.fad.fa-tent-arrow-turn-left:after{content:"\e580\e580"}.fa-duotone.fa-face-diagonal-mouth:after,.fad.fa-face-diagonal-mouth:after{content:"\e47e\e47e"}.fa-duotone.fa-diagram-cells:after,.fad.fa-diagram-cells:after{content:"\e475\e475"}.fa-duotone.fa-cricket-bat-ball:after,.fa-duotone.fa-cricket:after,.fad.fa-cricket-bat-ball:after,.fad.fa-cricket:after{content:"\f449\f449"}.fa-duotone.fa-tents:after,.fad.fa-tents:after{content:"\e582\e582"}.fa-duotone.fa-magic:after,.fa-duotone.fa-wand-magic:after,.fad.fa-magic:after,.fad.fa-wand-magic:after{content:"\f0d0\f0d0"}.fa-duotone.fa-dog:after,.fad.fa-dog:after{content:"\f6d3\f6d3"}.fa-duotone.fa-pen-line:after,.fad.fa-pen-line:after{content:"\e212\e212"}.fa-duotone.fa-atom-alt:after,.fa-duotone.fa-atom-simple:after,.fad.fa-atom-alt:after,.fad.fa-atom-simple:after{content:"\f5d3\f5d3"}.fa-duotone.fa-ampersand:after,.fad.fa-ampersand:after{content:"\26\26"}.fa-duotone.fa-carrot:after,.fad.fa-carrot:after{content:"\f787\f787"}.fa-duotone.fa-arrow-from-bottom:after,.fa-duotone.fa-arrow-up-from-line:after,.fad.fa-arrow-from-bottom:after,.fad.fa-arrow-up-from-line:after{content:"\f342\f342"}.fa-duotone.fa-moon:after,.fad.fa-moon:after{content:"\f186\f186"}.fa-duotone.fa-pen-slash:after,.fad.fa-pen-slash:after{content:"\e213\e213"}.fa-duotone.fa-wine-glass-alt:after,.fa-duotone.fa-wine-glass-empty:after,.fad.fa-wine-glass-alt:after,.fad.fa-wine-glass-empty:after{content:"\f5ce\f5ce"}.fa-duotone.fa-square-star:after,.fad.fa-square-star:after{content:"\e27f\e27f"}.fa-duotone.fa-cheese:after,.fad.fa-cheese:after{content:"\f7ef\f7ef"}.fa-duotone.fa-send-backward:after,.fad.fa-send-backward:after{content:"\f87f\f87f"}.fa-duotone.fa-yin-yang:after,.fad.fa-yin-yang:after{content:"\f6ad\f6ad"}.fa-duotone.fa-music:after,.fad.fa-music:after{content:"\f001\f001"}.fa-duotone.fa-compass-slash:after,.fad.fa-compass-slash:after{content:"\f5e9\f5e9"}.fa-duotone.fa-clock-one:after,.fad.fa-clock-one:after{content:"\e34e\e34e"}.fa-duotone.fa-file-music:after,.fad.fa-file-music:after{content:"\f8b6\f8b6"}.fa-duotone.fa-code-commit:after,.fad.fa-code-commit:after{content:"\f386\f386"}.fa-duotone.fa-temperature-low:after,.fad.fa-temperature-low:after{content:"\f76b\f76b"}.fa-duotone.fa-biking:after,.fa-duotone.fa-person-biking:after,.fad.fa-biking:after,.fad.fa-person-biking:after{content:"\f84a\f84a"}.fa-duotone.fa-display-chart-up-circle-currency:after,.fad.fa-display-chart-up-circle-currency:after{content:"\e5e5\e5e5"}.fa-duotone.fa-skeleton:after,.fad.fa-skeleton:after{content:"\f620\f620"}.fa-duotone.fa-circle-g:after,.fad.fa-circle-g:after{content:"\e10f\e10f"}.fa-duotone.fa-circle-arrow-up-left:after,.fad.fa-circle-arrow-up-left:after{content:"\e0fb\e0fb"}.fa-duotone.fa-coin-blank:after,.fad.fa-coin-blank:after{content:"\e3fb\e3fb"}.fa-duotone.fa-broom:after,.fad.fa-broom:after{content:"\f51a\f51a"}.fa-duotone.fa-vacuum:after,.fad.fa-vacuum:after{content:"\e04d\e04d"}.fa-duotone.fa-shield-heart:after,.fad.fa-shield-heart:after{content:"\e574\e574"}.fa-duotone.fa-card-heart:after,.fad.fa-card-heart:after{content:"\e3eb\e3eb"}.fa-duotone.fa-lightbulb-cfl-on:after,.fad.fa-lightbulb-cfl-on:after{content:"\e5a7\e5a7"}.fa-duotone.fa-melon:after,.fad.fa-melon:after{content:"\e310\e310"}.fa-duotone.fa-gopuram:after,.fad.fa-gopuram:after{content:"\f664\f664"}.fa-duotone.fa-earth-oceania:after,.fa-duotone.fa-globe-oceania:after,.fad.fa-earth-oceania:after,.fad.fa-globe-oceania:after{content:"\e47b\e47b"}.fa-duotone.fa-container-storage:after,.fad.fa-container-storage:after{content:"\f4b7\f4b7"}.fa-duotone.fa-face-pouting:after,.fad.fa-face-pouting:after{content:"\e387\e387"}.fa-duotone.fa-square-xmark:after,.fa-duotone.fa-times-square:after,.fa-duotone.fa-xmark-square:after,.fad.fa-square-xmark:after,.fad.fa-times-square:after,.fad.fa-xmark-square:after{content:"\f2d3\f2d3"}.fa-duotone.fa-exploding-head:after,.fa-duotone.fa-face-explode:after,.fad.fa-exploding-head:after,.fad.fa-face-explode:after{content:"\e2fe\e2fe"}.fa-duotone.fa-hashtag:after,.fad.fa-hashtag:after{content:"\23\23"}.fa-duotone.fa-expand-alt:after,.fa-duotone.fa-up-right-and-down-left-from-center:after,.fad.fa-expand-alt:after,.fad.fa-up-right-and-down-left-from-center:after{content:"\f424\f424"}.fa-duotone.fa-oil-can:after,.fad.fa-oil-can:after{content:"\f613\f613"}.fa-duotone.fa-t:after,.fad.fa-t:after{content:"\54\54"}.fa-duotone.fa-transformer-bolt:after,.fad.fa-transformer-bolt:after{content:"\e2a4\e2a4"}.fa-duotone.fa-hippo:after,.fad.fa-hippo:after{content:"\f6ed\f6ed"}.fa-duotone.fa-chart-column:after,.fad.fa-chart-column:after{content:"\e0e3\e0e3"}.fa-duotone.fa-cassette-vhs:after,.fa-duotone.fa-vhs:after,.fad.fa-cassette-vhs:after,.fad.fa-vhs:after{content:"\f8ec\f8ec"}.fa-duotone.fa-infinity:after,.fad.fa-infinity:after{content:"\f534\f534"}.fa-duotone.fa-vial-circle-check:after,.fad.fa-vial-circle-check:after{content:"\e596\e596"}.fa-duotone.fa-chimney:after,.fad.fa-chimney:after{content:"\f78b\f78b"}.fa-duotone.fa-object-intersect:after,.fad.fa-object-intersect:after{content:"\e49d\e49d"}.fa-duotone.fa-person-arrow-down-to-line:after,.fad.fa-person-arrow-down-to-line:after{content:"\e538\e538"}.fa-duotone.fa-voicemail:after,.fad.fa-voicemail:after{content:"\f897\f897"}.fa-duotone.fa-block-brick:after,.fa-duotone.fa-wall-brick:after,.fad.fa-block-brick:after,.fad.fa-wall-brick:after{content:"\e3db\e3db"}.fa-duotone.fa-fan:after,.fad.fa-fan:after{content:"\f863\f863"}.fa-duotone.fa-bags-shopping:after,.fad.fa-bags-shopping:after{content:"\f847\f847"}.fa-duotone.fa-paragraph-left:after,.fa-duotone.fa-paragraph-rtl:after,.fad.fa-paragraph-left:after,.fad.fa-paragraph-rtl:after{content:"\f878\f878"}.fa-duotone.fa-person-walking-luggage:after,.fad.fa-person-walking-luggage:after{content:"\e554\e554"}.fa-duotone.fa-caravan-alt:after,.fa-duotone.fa-caravan-simple:after,.fad.fa-caravan-alt:after,.fad.fa-caravan-simple:after{content:"\e000\e000"}.fa-duotone.fa-turtle:after,.fad.fa-turtle:after{content:"\f726\f726"}.fa-duotone.fa-pencil-mechanical:after,.fad.fa-pencil-mechanical:after{content:"\e5ca\e5ca"}.fa-duotone.fa-arrows-alt-v:after,.fa-duotone.fa-up-down:after,.fad.fa-arrows-alt-v:after,.fad.fa-up-down:after{content:"\f338\f338"}.fa-duotone.fa-cloud-moon-rain:after,.fad.fa-cloud-moon-rain:after{content:"\f73c\f73c"}.fa-duotone.fa-booth-curtain:after,.fad.fa-booth-curtain:after{content:"\f734\f734"}.fa-duotone.fa-calendar:after,.fad.fa-calendar:after{content:"\f133\f133"}.fa-duotone.fa-box-heart:after,.fad.fa-box-heart:after{content:"\f49d\f49d"}.fa-duotone.fa-trailer:after,.fad.fa-trailer:after{content:"\e041\e041"}.fa-duotone.fa-user-doctor-message:after,.fa-duotone.fa-user-md-chat:after,.fad.fa-user-doctor-message:after,.fad.fa-user-md-chat:after{content:"\f82e\f82e"}.fa-duotone.fa-bahai:after,.fa-duotone.fa-haykal:after,.fad.fa-bahai:after,.fad.fa-haykal:after{content:"\f666\f666"}.fa-duotone.fa-lighthouse:after,.fad.fa-lighthouse:after{content:"\e612\e612"}.fa-duotone.fa-amp-guitar:after,.fad.fa-amp-guitar:after{content:"\f8a1\f8a1"}.fa-duotone.fa-sd-card:after,.fad.fa-sd-card:after{content:"\f7c2\f7c2"}.fa-duotone.fa-volume-slash:after,.fad.fa-volume-slash:after{content:"\f2e2\f2e2"}.fa-duotone.fa-border-bottom:after,.fad.fa-border-bottom:after{content:"\f84d\f84d"}.fa-duotone.fa-wifi-1:after,.fa-duotone.fa-wifi-weak:after,.fad.fa-wifi-1:after,.fad.fa-wifi-weak:after{content:"\f6aa\f6aa"}.fa-duotone.fa-dragon:after,.fad.fa-dragon:after{content:"\f6d5\f6d5"}.fa-duotone.fa-shoe-prints:after,.fad.fa-shoe-prints:after{content:"\f54b\f54b"}.fa-duotone.fa-circle-plus:after,.fa-duotone.fa-plus-circle:after,.fad.fa-circle-plus:after,.fad.fa-plus-circle:after{content:"\f055\f055"}.fa-duotone.fa-face-grin-tongue-wink:after,.fa-duotone.fa-grin-tongue-wink:after,.fad.fa-face-grin-tongue-wink:after,.fad.fa-grin-tongue-wink:after{content:"\f58b\f58b"}.fa-duotone.fa-hand-holding:after,.fad.fa-hand-holding:after{content:"\f4bd\f4bd"}.fa-duotone.fa-plug-circle-exclamation:after,.fad.fa-plug-circle-exclamation:after{content:"\e55d\e55d"}.fa-duotone.fa-chain-broken:after,.fa-duotone.fa-chain-slash:after,.fa-duotone.fa-link-slash:after,.fa-duotone.fa-unlink:after,.fad.fa-chain-broken:after,.fad.fa-chain-slash:after,.fad.fa-link-slash:after,.fad.fa-unlink:after{content:"\f127\f127"}.fa-duotone.fa-clone:after,.fad.fa-clone:after{content:"\f24d\f24d"}.fa-duotone.fa-person-walking-arrow-loop-left:after,.fad.fa-person-walking-arrow-loop-left:after{content:"\e551\e551"}.fa-duotone.fa-arrow-up-z-a:after,.fa-duotone.fa-sort-alpha-up-alt:after,.fad.fa-arrow-up-z-a:after,.fad.fa-sort-alpha-up-alt:after{content:"\f882\f882"}.fa-duotone.fa-fire-alt:after,.fa-duotone.fa-fire-flame-curved:after,.fad.fa-fire-alt:after,.fad.fa-fire-flame-curved:after{content:"\f7e4\f7e4"}.fa-duotone.fa-tornado:after,.fad.fa-tornado:after{content:"\f76f\f76f"}.fa-duotone.fa-file-circle-plus:after,.fad.fa-file-circle-plus:after{content:"\e494\e494"}.fa-duotone.fa-delete-right:after,.fad.fa-delete-right:after{content:"\e154\e154"}.fa-duotone.fa-book-quran:after,.fa-duotone.fa-quran:after,.fad.fa-book-quran:after,.fad.fa-quran:after{content:"\f687\f687"}.fa-duotone.fa-circle-quarter:after,.fad.fa-circle-quarter:after{content:"\e11f\e11f"}.fa-duotone.fa-anchor:after,.fad.fa-anchor:after{content:"\f13d\f13d"}.fa-duotone.fa-border-all:after,.fad.fa-border-all:after{content:"\f84c\f84c"}.fa-duotone.fa-function:after,.fad.fa-function:after{content:"\f661\f661"}.fa-duotone.fa-angry:after,.fa-duotone.fa-face-angry:after,.fad.fa-angry:after,.fad.fa-face-angry:after{content:"\f556\f556"}.fa-duotone.fa-people-simple:after,.fad.fa-people-simple:after{content:"\e21b\e21b"}.fa-duotone.fa-cookie-bite:after,.fad.fa-cookie-bite:after{content:"\f564\f564"}.fa-duotone.fa-arrow-trend-down:after,.fad.fa-arrow-trend-down:after{content:"\e097\e097"}.fa-duotone.fa-feed:after,.fa-duotone.fa-rss:after,.fad.fa-feed:after,.fad.fa-rss:after{content:"\f09e\f09e"}.fa-duotone.fa-face-monocle:after,.fad.fa-face-monocle:after{content:"\e380\e380"}.fa-duotone.fa-draw-polygon:after,.fad.fa-draw-polygon:after{content:"\f5ee\f5ee"}.fa-duotone.fa-balance-scale:after,.fa-duotone.fa-scale-balanced:after,.fad.fa-balance-scale:after,.fad.fa-scale-balanced:after{content:"\f24e\f24e"}.fa-duotone.fa-calendar-lines:after,.fa-duotone.fa-calendar-note:after,.fad.fa-calendar-lines:after,.fad.fa-calendar-note:after{content:"\e0d5\e0d5"}.fa-duotone.fa-arrow-down-big-small:after,.fa-duotone.fa-sort-size-down:after,.fad.fa-arrow-down-big-small:after,.fad.fa-sort-size-down:after{content:"\f88c\f88c"}.fa-duotone.fa-gauge-simple-high:after,.fa-duotone.fa-tachometer-fast:after,.fa-duotone.fa-tachometer:after,.fad.fa-gauge-simple-high:after,.fad.fa-tachometer-fast:after,.fad.fa-tachometer:after{content:"\f62a\f62a"}.fa-duotone.fa-do-not-enter:after,.fad.fa-do-not-enter:after{content:"\f5ec\f5ec"}.fa-duotone.fa-shower:after,.fad.fa-shower:after{content:"\f2cc\f2cc"}.fa-duotone.fa-dice-d8:after,.fad.fa-dice-d8:after{content:"\f6d2\f6d2"}.fa-duotone.fa-desktop-alt:after,.fa-duotone.fa-desktop:after,.fad.fa-desktop-alt:after,.fad.fa-desktop:after{content:"\f390\f390"}.fa-duotone.fa-m:after,.fad.fa-m:after{content:"\4d\4d"}.fa-duotone.fa-spinner-scale:after,.fad.fa-spinner-scale:after{content:"\e62a\e62a"}.fa-duotone.fa-grip-dots-vertical:after,.fad.fa-grip-dots-vertical:after{content:"\e411\e411"}.fa-duotone.fa-face-viewfinder:after,.fad.fa-face-viewfinder:after{content:"\e2ff\e2ff"}.fa-duotone.fa-creemee:after,.fa-duotone.fa-soft-serve:after,.fad.fa-creemee:after,.fad.fa-soft-serve:after{content:"\e400\e400"}.fa-duotone.fa-h5:after,.fad.fa-h5:after{content:"\e412\e412"}.fa-duotone.fa-hand-back-point-down:after,.fad.fa-hand-back-point-down:after{content:"\e19e\e19e"}.fa-duotone.fa-table-list:after,.fa-duotone.fa-th-list:after,.fad.fa-table-list:after,.fad.fa-th-list:after{content:"\f00b\f00b"}.fa-duotone.fa-basket-shopping-minus:after,.fad.fa-basket-shopping-minus:after{content:"\e652\e652"}.fa-duotone.fa-comment-sms:after,.fa-duotone.fa-sms:after,.fad.fa-comment-sms:after,.fad.fa-sms:after{content:"\f7cd\f7cd"}.fa-duotone.fa-rectangle-landscape:after,.fa-duotone.fa-rectangle:after,.fad.fa-rectangle-landscape:after,.fad.fa-rectangle:after{content:"\f2fa\f2fa"}.fa-duotone.fa-clipboard-list-check:after,.fad.fa-clipboard-list-check:after{content:"\f737\f737"}.fa-duotone.fa-turkey:after,.fad.fa-turkey:after{content:"\f725\f725"}.fa-duotone.fa-book:after,.fad.fa-book:after{content:"\f02d\f02d"}.fa-duotone.fa-user-plus:after,.fad.fa-user-plus:after{content:"\f234\f234"}.fa-duotone.fa-ice-skate:after,.fad.fa-ice-skate:after{content:"\f7ac\f7ac"}.fa-duotone.fa-check:after,.fad.fa-check:after{content:"\f00c\f00c"}.fa-duotone.fa-battery-4:after,.fa-duotone.fa-battery-three-quarters:after,.fad.fa-battery-4:after,.fad.fa-battery-three-quarters:after{content:"\f241\f241"}.fa-duotone.fa-tomato:after,.fad.fa-tomato:after{content:"\e330\e330"}.fa-duotone.fa-sword-laser:after,.fad.fa-sword-laser:after{content:"\e03b\e03b"}.fa-duotone.fa-house-circle-check:after,.fad.fa-house-circle-check:after{content:"\e509\e509"}.fa-duotone.fa-buildings:after,.fad.fa-buildings:after{content:"\e0cc\e0cc"}.fa-duotone.fa-angle-left:after,.fad.fa-angle-left:after{content:"\f104\f104"}.fa-duotone.fa-cart-flatbed-boxes:after,.fa-duotone.fa-dolly-flatbed-alt:after,.fad.fa-cart-flatbed-boxes:after,.fad.fa-dolly-flatbed-alt:after{content:"\f475\f475"}.fa-duotone.fa-diagram-successor:after,.fad.fa-diagram-successor:after{content:"\e47a\e47a"}.fa-duotone.fa-truck-arrow-right:after,.fad.fa-truck-arrow-right:after{content:"\e58b\e58b"}.fa-duotone.fa-square-w:after,.fad.fa-square-w:after{content:"\e285\e285"}.fa-duotone.fa-arrows-split-up-and-left:after,.fad.fa-arrows-split-up-and-left:after{content:"\e4bc\e4bc"}.fa-duotone.fa-lamp:after,.fad.fa-lamp:after{content:"\f4ca\f4ca"}.fa-duotone.fa-airplay:after,.fad.fa-airplay:after{content:"\e089\e089"}.fa-duotone.fa-fist-raised:after,.fa-duotone.fa-hand-fist:after,.fad.fa-fist-raised:after,.fad.fa-hand-fist:after{content:"\f6de\f6de"}.fa-duotone.fa-shield-quartered:after,.fad.fa-shield-quartered:after{content:"\e575\e575"}.fa-duotone.fa-slash-forward:after,.fad.fa-slash-forward:after{content:"\2f\2f"}.fa-duotone.fa-location-pen:after,.fa-duotone.fa-map-marker-edit:after,.fad.fa-location-pen:after,.fad.fa-map-marker-edit:after{content:"\f607\f607"}.fa-duotone.fa-cloud-moon:after,.fad.fa-cloud-moon:after{content:"\f6c3\f6c3"}.fa-duotone.fa-pot-food:after,.fad.fa-pot-food:after{content:"\e43f\e43f"}.fa-duotone.fa-briefcase:after,.fad.fa-briefcase:after{content:"\f0b1\f0b1"}.fa-duotone.fa-person-falling:after,.fad.fa-person-falling:after{content:"\e546\e546"}.fa-duotone.fa-image-portrait:after,.fa-duotone.fa-portrait:after,.fad.fa-image-portrait:after,.fad.fa-portrait:after{content:"\f3e0\f3e0"}.fa-duotone.fa-user-tag:after,.fad.fa-user-tag:after{content:"\f507\f507"}.fa-duotone.fa-rug:after,.fad.fa-rug:after{content:"\e569\e569"}.fa-duotone.fa-print-slash:after,.fad.fa-print-slash:after{content:"\f686\f686"}.fa-duotone.fa-earth-europe:after,.fa-duotone.fa-globe-europe:after,.fad.fa-earth-europe:after,.fad.fa-globe-europe:after{content:"\f7a2\f7a2"}.fa-duotone.fa-cart-flatbed-suitcase:after,.fa-duotone.fa-luggage-cart:after,.fad.fa-cart-flatbed-suitcase:after,.fad.fa-luggage-cart:after{content:"\f59d\f59d"}.fa-duotone.fa-hand-back-point-ribbon:after,.fad.fa-hand-back-point-ribbon:after{content:"\e1a0\e1a0"}.fa-duotone.fa-rectangle-times:after,.fa-duotone.fa-rectangle-xmark:after,.fa-duotone.fa-times-rectangle:after,.fa-duotone.fa-window-close:after,.fad.fa-rectangle-times:after,.fad.fa-rectangle-xmark:after,.fad.fa-times-rectangle:after,.fad.fa-window-close:after{content:"\f410\f410"}.fa-duotone.fa-tire-rugged:after,.fad.fa-tire-rugged:after{content:"\f634\f634"}.fa-duotone.fa-lightbulb-dollar:after,.fad.fa-lightbulb-dollar:after{content:"\f670\f670"}.fa-duotone.fa-cowbell:after,.fad.fa-cowbell:after{content:"\f8b3\f8b3"}.fa-duotone.fa-baht-sign:after,.fad.fa-baht-sign:after{content:"\e0ac\e0ac"}.fa-duotone.fa-corner:after,.fad.fa-corner:after{content:"\e3fe\e3fe"}.fa-duotone.fa-chevron-double-right:after,.fa-duotone.fa-chevrons-right:after,.fad.fa-chevron-double-right:after,.fad.fa-chevrons-right:after{content:"\f324\f324"}.fa-duotone.fa-book-open:after,.fad.fa-book-open:after{content:"\f518\f518"}.fa-duotone.fa-book-journal-whills:after,.fa-duotone.fa-journal-whills:after,.fad.fa-book-journal-whills:after,.fad.fa-journal-whills:after{content:"\f66a\f66a"}.fa-duotone.fa-inhaler:after,.fad.fa-inhaler:after{content:"\f5f9\f5f9"}.fa-duotone.fa-handcuffs:after,.fad.fa-handcuffs:after{content:"\e4f8\e4f8"}.fa-duotone.fa-snake:after,.fad.fa-snake:after{content:"\f716\f716"}.fa-duotone.fa-exclamation-triangle:after,.fa-duotone.fa-triangle-exclamation:after,.fa-duotone.fa-warning:after,.fad.fa-exclamation-triangle:after,.fad.fa-triangle-exclamation:after,.fad.fa-warning:after{content:"\f071\f071"}.fa-duotone.fa-note-medical:after,.fad.fa-note-medical:after{content:"\e200\e200"}.fa-duotone.fa-database:after,.fad.fa-database:after{content:"\f1c0\f1c0"}.fa-duotone.fa-down-left:after,.fad.fa-down-left:after{content:"\e16a\e16a"}.fa-duotone.fa-mail-forward:after,.fa-duotone.fa-share:after,.fad.fa-mail-forward:after,.fad.fa-share:after{content:"\f064\f064"}.fa-duotone.fa-face-thinking:after,.fad.fa-face-thinking:after{content:"\e39b\e39b"}.fa-duotone.fa-turn-down-right:after,.fad.fa-turn-down-right:after{content:"\e455\e455"}.fa-duotone.fa-bottle-droplet:after,.fad.fa-bottle-droplet:after{content:"\e4c4\e4c4"}.fa-duotone.fa-mask-face:after,.fad.fa-mask-face:after{content:"\e1d7\e1d7"}.fa-duotone.fa-hill-rockslide:after,.fad.fa-hill-rockslide:after{content:"\e508\e508"}.fa-duotone.fa-scanner-keyboard:after,.fad.fa-scanner-keyboard:after{content:"\f489\f489"}.fa-duotone.fa-circle-o:after,.fad.fa-circle-o:after{content:"\e119\e119"}.fa-duotone.fa-grid-horizontal:after,.fad.fa-grid-horizontal:after{content:"\e307\e307"}.fa-duotone.fa-comment-alt-dollar:after,.fa-duotone.fa-message-dollar:after,.fad.fa-comment-alt-dollar:after,.fad.fa-message-dollar:after{content:"\f650\f650"}.fa-duotone.fa-exchange-alt:after,.fa-duotone.fa-right-left:after,.fad.fa-exchange-alt:after,.fad.fa-right-left:after{content:"\f362\f362"}.fa-duotone.fa-columns-3:after,.fad.fa-columns-3:after{content:"\e361\e361"}.fa-duotone.fa-paper-plane:after,.fad.fa-paper-plane:after{content:"\f1d8\f1d8"}.fa-duotone.fa-road-circle-exclamation:after,.fad.fa-road-circle-exclamation:after{content:"\e565\e565"}.fa-duotone.fa-dungeon:after,.fad.fa-dungeon:after{content:"\f6d9\f6d9"}.fa-duotone.fa-hand-holding-box:after,.fad.fa-hand-holding-box:after{content:"\f47b\f47b"}.fa-duotone.fa-input-text:after,.fad.fa-input-text:after{content:"\e1bf\e1bf"}.fa-duotone.fa-window-alt:after,.fa-duotone.fa-window-flip:after,.fad.fa-window-alt:after,.fad.fa-window-flip:after{content:"\f40f\f40f"}.fa-duotone.fa-align-right:after,.fad.fa-align-right:after{content:"\f038\f038"}.fa-duotone.fa-scanner-gun:after,.fa-duotone.fa-scanner:after,.fad.fa-scanner-gun:after,.fad.fa-scanner:after{content:"\f488\f488"}.fa-duotone.fa-tire:after,.fad.fa-tire:after{content:"\f631\f631"}.fa-duotone.fa-engine:after,.fad.fa-engine:after{content:"\e16e\e16e"}.fa-duotone.fa-money-bill-1-wave:after,.fa-duotone.fa-money-bill-wave-alt:after,.fad.fa-money-bill-1-wave:after,.fad.fa-money-bill-wave-alt:after{content:"\f53b\f53b"}.fa-duotone.fa-life-ring:after,.fad.fa-life-ring:after{content:"\f1cd\f1cd"}.fa-duotone.fa-hands:after,.fa-duotone.fa-sign-language:after,.fa-duotone.fa-signing:after,.fad.fa-hands:after,.fad.fa-sign-language:after,.fad.fa-signing:after{content:"\f2a7\f2a7"}.fa-duotone.fa-caret-circle-right:after,.fa-duotone.fa-circle-caret-right:after,.fad.fa-caret-circle-right:after,.fad.fa-circle-caret-right:after{content:"\f330\f330"}.fa-duotone.fa-turn-left:after,.fad.fa-turn-left:after{content:"\e636\e636"}.fa-duotone.fa-wheat:after,.fad.fa-wheat:after{content:"\f72d\f72d"}.fa-duotone.fa-file-spreadsheet:after,.fad.fa-file-spreadsheet:after{content:"\f65b\f65b"}.fa-duotone.fa-audio-description-slash:after,.fad.fa-audio-description-slash:after{content:"\e0a8\e0a8"}.fa-duotone.fa-bell-ring:after,.fad.fa-bell-ring:after{content:"\e62c\e62c"}.fa-duotone.fa-calendar-day:after,.fad.fa-calendar-day:after{content:"\f783\f783"}.fa-duotone.fa-ladder-water:after,.fa-duotone.fa-swimming-pool:after,.fa-duotone.fa-water-ladder:after,.fad.fa-ladder-water:after,.fad.fa-swimming-pool:after,.fad.fa-water-ladder:after{content:"\f5c5\f5c5"}.fa-duotone.fa-arrows-up-down:after,.fa-duotone.fa-arrows-v:after,.fad.fa-arrows-up-down:after,.fad.fa-arrows-v:after{content:"\f07d\f07d"}.fa-duotone.fa-chess-pawn-alt:after,.fa-duotone.fa-chess-pawn-piece:after,.fad.fa-chess-pawn-alt:after,.fad.fa-chess-pawn-piece:after{content:"\f444\f444"}.fa-duotone.fa-face-grimace:after,.fa-duotone.fa-grimace:after,.fad.fa-face-grimace:after,.fad.fa-grimace:after{content:"\f57f\f57f"}.fa-duotone.fa-wheelchair-alt:after,.fa-duotone.fa-wheelchair-move:after,.fad.fa-wheelchair-alt:after,.fad.fa-wheelchair-move:after{content:"\e2ce\e2ce"}.fa-duotone.fa-level-down-alt:after,.fa-duotone.fa-turn-down:after,.fad.fa-level-down-alt:after,.fad.fa-turn-down:after{content:"\f3be\f3be"}.fa-duotone.fa-square-s:after,.fad.fa-square-s:after{content:"\e27d\e27d"}.fa-duotone.fa-barcode-alt:after,.fa-duotone.fa-rectangle-barcode:after,.fad.fa-barcode-alt:after,.fad.fa-rectangle-barcode:after{content:"\f463\f463"}.fa-duotone.fa-person-walking-arrow-right:after,.fad.fa-person-walking-arrow-right:after{content:"\e552\e552"}.fa-duotone.fa-envelope-square:after,.fa-duotone.fa-square-envelope:after,.fad.fa-envelope-square:after,.fad.fa-square-envelope:after{content:"\f199\f199"}.fa-duotone.fa-dice:after,.fad.fa-dice:after{content:"\f522\f522"}.fa-duotone.fa-unicorn:after,.fad.fa-unicorn:after{content:"\f727\f727"}.fa-duotone.fa-bowling-ball:after,.fad.fa-bowling-ball:after{content:"\f436\f436"}.fa-duotone.fa-pompebled:after,.fad.fa-pompebled:after{content:"\e43d\e43d"}.fa-duotone.fa-brain:after,.fad.fa-brain:after{content:"\f5dc\f5dc"}.fa-duotone.fa-watch-smart:after,.fad.fa-watch-smart:after{content:"\e2cc\e2cc"}.fa-duotone.fa-book-user:after,.fad.fa-book-user:after{content:"\f7e7\f7e7"}.fa-duotone.fa-sensor-cloud:after,.fa-duotone.fa-sensor-smoke:after,.fad.fa-sensor-cloud:after,.fad.fa-sensor-smoke:after{content:"\e02c\e02c"}.fa-duotone.fa-clapperboard-play:after,.fad.fa-clapperboard-play:after{content:"\e132\e132"}.fa-duotone.fa-band-aid:after,.fa-duotone.fa-bandage:after,.fad.fa-band-aid:after,.fad.fa-bandage:after{content:"\f462\f462"}.fa-duotone.fa-calendar-minus:after,.fad.fa-calendar-minus:after{content:"\f272\f272"}.fa-duotone.fa-circle-xmark:after,.fa-duotone.fa-times-circle:after,.fa-duotone.fa-xmark-circle:after,.fad.fa-circle-xmark:after,.fad.fa-times-circle:after,.fad.fa-xmark-circle:after{content:"\f057\f057"}.fa-duotone.fa-circle-4:after,.fad.fa-circle-4:after{content:"\e0f1\e0f1"}.fa-duotone.fa-gifts:after,.fad.fa-gifts:after{content:"\f79c\f79c"}.fa-duotone.fa-album-collection:after,.fad.fa-album-collection:after{content:"\f8a0\f8a0"}.fa-duotone.fa-hotel:after,.fad.fa-hotel:after{content:"\f594\f594"}.fa-duotone.fa-earth-asia:after,.fa-duotone.fa-globe-asia:after,.fad.fa-earth-asia:after,.fad.fa-globe-asia:after{content:"\f57e\f57e"}.fa-duotone.fa-id-card-alt:after,.fa-duotone.fa-id-card-clip:after,.fad.fa-id-card-alt:after,.fad.fa-id-card-clip:after{content:"\f47f\f47f"}.fa-duotone.fa-magnifying-glass-plus:after,.fa-duotone.fa-search-plus:after,.fad.fa-magnifying-glass-plus:after,.fad.fa-search-plus:after{content:"\f00e\f00e"}.fa-duotone.fa-thumbs-up:after,.fad.fa-thumbs-up:after{content:"\f164\f164"}.fa-duotone.fa-cloud-showers:after,.fad.fa-cloud-showers:after{content:"\f73f\f73f"}.fa-duotone.fa-user-clock:after,.fad.fa-user-clock:after{content:"\f4fd\f4fd"}.fa-duotone.fa-onion:after,.fad.fa-onion:after{content:"\e427\e427"}.fa-duotone.fa-clock-twelve-thirty:after,.fad.fa-clock-twelve-thirty:after{content:"\e359\e359"}.fa-duotone.fa-arrow-down-to-dotted-line:after,.fad.fa-arrow-down-to-dotted-line:after{content:"\e095\e095"}.fa-duotone.fa-allergies:after,.fa-duotone.fa-hand-dots:after,.fad.fa-allergies:after,.fad.fa-hand-dots:after{content:"\f461\f461"}.fa-duotone.fa-file-invoice:after,.fad.fa-file-invoice:after{content:"\f570\f570"}.fa-duotone.fa-window-minimize:after,.fad.fa-window-minimize:after{content:"\f2d1\f2d1"}.fa-duotone.fa-rectangle-wide:after,.fad.fa-rectangle-wide:after{content:"\f2fc\f2fc"}.fa-duotone.fa-comment-arrow-up:after,.fad.fa-comment-arrow-up:after{content:"\e144\e144"}.fa-duotone.fa-garlic:after,.fad.fa-garlic:after{content:"\e40e\e40e"}.fa-duotone.fa-coffee:after,.fa-duotone.fa-mug-saucer:after,.fad.fa-coffee:after,.fad.fa-mug-saucer:after{content:"\f0f4\f0f4"}.fa-duotone.fa-brush:after,.fad.fa-brush:after{content:"\f55d\f55d"}.fa-duotone.fa-tree-decorated:after,.fad.fa-tree-decorated:after{content:"\f7dc\f7dc"}.fa-duotone.fa-mask:after,.fad.fa-mask:after{content:"\f6fa\f6fa"}.fa-duotone.fa-calendar-heart:after,.fad.fa-calendar-heart:after{content:"\e0d3\e0d3"}.fa-duotone.fa-magnifying-glass-minus:after,.fa-duotone.fa-search-minus:after,.fad.fa-magnifying-glass-minus:after,.fad.fa-search-minus:after{content:"\f010\f010"}.fa-duotone.fa-flower:after,.fad.fa-flower:after{content:"\f7ff\f7ff"}.fa-duotone.fa-arrow-down-from-arc:after,.fad.fa-arrow-down-from-arc:after{content:"\e614\e614"}.fa-duotone.fa-right-left-large:after,.fad.fa-right-left-large:after{content:"\e5e1\e5e1"}.fa-duotone.fa-ruler-vertical:after,.fad.fa-ruler-vertical:after{content:"\f548\f548"}.fa-duotone.fa-circles-overlap:after,.fad.fa-circles-overlap:after{content:"\e600\e600"}.fa-duotone.fa-user-alt:after,.fa-duotone.fa-user-large:after,.fad.fa-user-alt:after,.fad.fa-user-large:after{content:"\f406\f406"}.fa-duotone.fa-starship-freighter:after,.fad.fa-starship-freighter:after{content:"\e03a\e03a"}.fa-duotone.fa-train-tram:after,.fad.fa-train-tram:after{content:"\e5b4\e5b4"}.fa-duotone.fa-bridge-suspension:after,.fad.fa-bridge-suspension:after{content:"\e4cd\e4cd"}.fa-duotone.fa-trash-check:after,.fad.fa-trash-check:after{content:"\e2af\e2af"}.fa-duotone.fa-user-nurse:after,.fad.fa-user-nurse:after{content:"\f82f\f82f"}.fa-duotone.fa-boombox:after,.fad.fa-boombox:after{content:"\f8a5\f8a5"}.fa-duotone.fa-syringe:after,.fad.fa-syringe:after{content:"\f48e\f48e"}.fa-duotone.fa-cloud-sun:after,.fad.fa-cloud-sun:after{content:"\f6c4\f6c4"}.fa-duotone.fa-shield-exclamation:after,.fad.fa-shield-exclamation:after{content:"\e247\e247"}.fa-duotone.fa-stopwatch-20:after,.fad.fa-stopwatch-20:after{content:"\e06f\e06f"}.fa-duotone.fa-square-full:after,.fad.fa-square-full:after{content:"\f45c\f45c"}.fa-duotone.fa-grip-dots:after,.fad.fa-grip-dots:after{content:"\e410\e410"}.fa-duotone.fa-comment-exclamation:after,.fad.fa-comment-exclamation:after{content:"\f4af\f4af"}.fa-duotone.fa-pen-swirl:after,.fad.fa-pen-swirl:after{content:"\e214\e214"}.fa-duotone.fa-falafel:after,.fad.fa-falafel:after{content:"\e40a\e40a"}.fa-duotone.fa-circle-2:after,.fad.fa-circle-2:after{content:"\e0ef\e0ef"}.fa-duotone.fa-magnet:after,.fad.fa-magnet:after{content:"\f076\f076"}.fa-duotone.fa-jar:after,.fad.fa-jar:after{content:"\e516\e516"}.fa-duotone.fa-gramophone:after,.fad.fa-gramophone:after{content:"\f8bd\f8bd"}.fa-duotone.fa-dice-d12:after,.fad.fa-dice-d12:after{content:"\f6ce\f6ce"}.fa-duotone.fa-note-sticky:after,.fa-duotone.fa-sticky-note:after,.fad.fa-note-sticky:after,.fad.fa-sticky-note:after{content:"\f249\f249"}.fa-duotone.fa-arrow-alt-down:after,.fa-duotone.fa-down:after,.fad.fa-arrow-alt-down:after,.fad.fa-down:after{content:"\f354\f354"}.fa-duotone.fa-100:after,.fa-duotone.fa-hundred-points:after,.fad.fa-100:after,.fad.fa-hundred-points:after{content:"\e41c\e41c"}.fa-duotone.fa-paperclip-vertical:after,.fad.fa-paperclip-vertical:after{content:"\e3c2\e3c2"}.fa-duotone.fa-wind-circle-exclamation:after,.fa-duotone.fa-wind-warning:after,.fad.fa-wind-circle-exclamation:after,.fad.fa-wind-warning:after{content:"\f776\f776"}.fa-duotone.fa-location-pin-slash:after,.fa-duotone.fa-map-marker-slash:after,.fad.fa-location-pin-slash:after,.fad.fa-map-marker-slash:after{content:"\f60c\f60c"}.fa-duotone.fa-face-sad-sweat:after,.fad.fa-face-sad-sweat:after{content:"\e38a\e38a"}.fa-duotone.fa-bug-slash:after,.fad.fa-bug-slash:after{content:"\e490\e490"}.fa-duotone.fa-cupcake:after,.fad.fa-cupcake:after{content:"\e402\e402"}.fa-duotone.fa-light-switch-off:after,.fad.fa-light-switch-off:after{content:"\e018\e018"}.fa-duotone.fa-toggle-large-off:after,.fad.fa-toggle-large-off:after{content:"\e5b0\e5b0"}.fa-duotone.fa-pen-fancy-slash:after,.fad.fa-pen-fancy-slash:after{content:"\e210\e210"}.fa-duotone.fa-truck-container:after,.fad.fa-truck-container:after{content:"\f4dc\f4dc"}.fa-duotone.fa-boot:after,.fad.fa-boot:after{content:"\f782\f782"}.fa-duotone.fa-arrow-up-from-water-pump:after,.fad.fa-arrow-up-from-water-pump:after{content:"\e4b6\e4b6"}.fa-duotone.fa-file-check:after,.fad.fa-file-check:after{content:"\f316\f316"}.fa-duotone.fa-bone:after,.fad.fa-bone:after{content:"\f5d7\f5d7"}.fa-duotone.fa-cards-blank:after,.fad.fa-cards-blank:after{content:"\e4df\e4df"}.fa-duotone.fa-circle-3:after,.fad.fa-circle-3:after{content:"\e0f0\e0f0"}.fa-duotone.fa-bench-tree:after,.fad.fa-bench-tree:after{content:"\e2e7\e2e7"}.fa-duotone.fa-keyboard-brightness-low:after,.fad.fa-keyboard-brightness-low:after{content:"\e1c1\e1c1"}.fa-duotone.fa-ski-boot-ski:after,.fad.fa-ski-boot-ski:after{content:"\e3cd\e3cd"}.fa-duotone.fa-brain-circuit:after,.fad.fa-brain-circuit:after{content:"\e0c6\e0c6"}.fa-duotone.fa-user-injured:after,.fad.fa-user-injured:after{content:"\f728\f728"}.fa-duotone.fa-block-brick-fire:after,.fa-duotone.fa-firewall:after,.fad.fa-block-brick-fire:after,.fad.fa-firewall:after{content:"\e3dc\e3dc"}.fa-duotone.fa-face-sad-tear:after,.fa-duotone.fa-sad-tear:after,.fad.fa-face-sad-tear:after,.fad.fa-sad-tear:after{content:"\f5b4\f5b4"}.fa-duotone.fa-plane:after,.fad.fa-plane:after{content:"\f072\f072"}.fa-duotone.fa-tent-arrows-down:after,.fad.fa-tent-arrows-down:after{content:"\e581\e581"}.fa-duotone.fa-exclamation:after,.fad.fa-exclamation:after{content:"\21\21"}.fa-duotone.fa-arrows-spin:after,.fad.fa-arrows-spin:after{content:"\e4bb\e4bb"}.fa-duotone.fa-face-smile-relaxed:after,.fad.fa-face-smile-relaxed:after{content:"\e392\e392"}.fa-duotone.fa-comment-times:after,.fa-duotone.fa-comment-xmark:after,.fad.fa-comment-times:after,.fad.fa-comment-xmark:after{content:"\f4b5\f4b5"}.fa-duotone.fa-print:after,.fad.fa-print:after{content:"\f02f\f02f"}.fa-duotone.fa-try:after,.fa-duotone.fa-turkish-lira-sign:after,.fa-duotone.fa-turkish-lira:after,.fad.fa-try:after,.fad.fa-turkish-lira-sign:after,.fad.fa-turkish-lira:after{content:"\e2bb\e2bb"}.fa-duotone.fa-face-nose-steam:after,.fad.fa-face-nose-steam:after{content:"\e382\e382"}.fa-duotone.fa-circle-waveform-lines:after,.fa-duotone.fa-waveform-circle:after,.fad.fa-circle-waveform-lines:after,.fad.fa-waveform-circle:after{content:"\e12d\e12d"}.fa-duotone.fa-dollar-sign:after,.fa-duotone.fa-dollar:after,.fa-duotone.fa-usd:after,.fad.fa-dollar-sign:after,.fad.fa-dollar:after,.fad.fa-usd:after{content:"\24\24"}.fa-duotone.fa-ferris-wheel:after,.fad.fa-ferris-wheel:after{content:"\e174\e174"}.fa-duotone.fa-computer-speaker:after,.fad.fa-computer-speaker:after{content:"\f8b2\f8b2"}.fa-duotone.fa-skull-cow:after,.fad.fa-skull-cow:after{content:"\f8de\f8de"}.fa-duotone.fa-x:after,.fad.fa-x:after{content:"\58\58"}.fa-duotone.fa-magnifying-glass-dollar:after,.fa-duotone.fa-search-dollar:after,.fad.fa-magnifying-glass-dollar:after,.fad.fa-search-dollar:after{content:"\f688\f688"}.fa-duotone.fa-users-cog:after,.fa-duotone.fa-users-gear:after,.fad.fa-users-cog:after,.fad.fa-users-gear:after{content:"\f509\f509"}.fa-duotone.fa-person-military-pointing:after,.fad.fa-person-military-pointing:after{content:"\e54a\e54a"}.fa-duotone.fa-bank:after,.fa-duotone.fa-building-columns:after,.fa-duotone.fa-institution:after,.fa-duotone.fa-museum:after,.fa-duotone.fa-university:after,.fad.fa-bank:after,.fad.fa-building-columns:after,.fad.fa-institution:after,.fad.fa-museum:after,.fad.fa-university:after{content:"\f19c\f19c"}.fa-duotone.fa-circle-t:after,.fad.fa-circle-t:after{content:"\e124\e124"}.fa-duotone.fa-sack:after,.fad.fa-sack:after{content:"\f81c\f81c"}.fa-duotone.fa-grid-2:after,.fad.fa-grid-2:after{content:"\e196\e196"}.fa-duotone.fa-camera-cctv:after,.fa-duotone.fa-cctv:after,.fad.fa-camera-cctv:after,.fad.fa-cctv:after{content:"\f8ac\f8ac"}.fa-duotone.fa-umbrella:after,.fad.fa-umbrella:after{content:"\f0e9\f0e9"}.fa-duotone.fa-trowel:after,.fad.fa-trowel:after{content:"\e589\e589"}.fa-duotone.fa-horizontal-rule:after,.fad.fa-horizontal-rule:after{content:"\f86c\f86c"}.fa-duotone.fa-bed-alt:after,.fa-duotone.fa-bed-front:after,.fad.fa-bed-alt:after,.fad.fa-bed-front:after{content:"\f8f7\f8f7"}.fa-duotone.fa-d:after,.fad.fa-d:after{content:"\44\44"}.fa-duotone.fa-stapler:after,.fad.fa-stapler:after{content:"\e5af\e5af"}.fa-duotone.fa-masks-theater:after,.fa-duotone.fa-theater-masks:after,.fad.fa-masks-theater:after,.fad.fa-theater-masks:after{content:"\f630\f630"}.fa-duotone.fa-file-gif:after,.fad.fa-file-gif:after{content:"\e645\e645"}.fa-duotone.fa-kip-sign:after,.fad.fa-kip-sign:after{content:"\e1c4\e1c4"}.fa-duotone.fa-face-woozy:after,.fad.fa-face-woozy:after{content:"\e3a2\e3a2"}.fa-duotone.fa-cloud-question:after,.fad.fa-cloud-question:after{content:"\e492\e492"}.fa-duotone.fa-pineapple:after,.fad.fa-pineapple:after{content:"\e31f\e31f"}.fa-duotone.fa-hand-point-left:after,.fad.fa-hand-point-left:after{content:"\f0a5\f0a5"}.fa-duotone.fa-gallery-thumbnails:after,.fad.fa-gallery-thumbnails:after{content:"\e3aa\e3aa"}.fa-duotone.fa-circle-j:after,.fad.fa-circle-j:after{content:"\e112\e112"}.fa-duotone.fa-eyes:after,.fad.fa-eyes:after{content:"\e367\e367"}.fa-duotone.fa-handshake-alt:after,.fa-duotone.fa-handshake-simple:after,.fad.fa-handshake-alt:after,.fad.fa-handshake-simple:after{content:"\f4c6\f4c6"}.fa-duotone.fa-file-caret-up:after,.fa-duotone.fa-page-caret-up:after,.fad.fa-file-caret-up:after,.fad.fa-page-caret-up:after{content:"\e42a\e42a"}.fa-duotone.fa-fighter-jet:after,.fa-duotone.fa-jet-fighter:after,.fad.fa-fighter-jet:after,.fad.fa-jet-fighter:after{content:"\f0fb\f0fb"}.fa-duotone.fa-comet:after,.fad.fa-comet:after{content:"\e003\e003"}.fa-duotone.fa-share-alt-square:after,.fa-duotone.fa-square-share-nodes:after,.fad.fa-share-alt-square:after,.fad.fa-square-share-nodes:after{content:"\f1e1\f1e1"}.fa-duotone.fa-reflect-vertical:after,.fad.fa-reflect-vertical:after{content:"\e665\e665"}.fa-duotone.fa-shield-keyhole:after,.fad.fa-shield-keyhole:after{content:"\e248\e248"}.fa-duotone.fa-file-mp4:after,.fad.fa-file-mp4:after{content:"\e649\e649"}.fa-duotone.fa-barcode:after,.fad.fa-barcode:after{content:"\f02a\f02a"}.fa-duotone.fa-bulldozer:after,.fad.fa-bulldozer:after{content:"\e655\e655"}.fa-duotone.fa-plus-minus:after,.fad.fa-plus-minus:after{content:"\e43c\e43c"}.fa-duotone.fa-sliders-v-square:after,.fa-duotone.fa-square-sliders-vertical:after,.fad.fa-sliders-v-square:after,.fad.fa-square-sliders-vertical:after{content:"\f3f2\f3f2"}.fa-duotone.fa-video-camera:after,.fa-duotone.fa-video:after,.fad.fa-video-camera:after,.fad.fa-video:after{content:"\f03d\f03d"}.fa-duotone.fa-comment-middle-alt:after,.fa-duotone.fa-message-middle:after,.fad.fa-comment-middle-alt:after,.fad.fa-message-middle:after{content:"\e1e1\e1e1"}.fa-duotone.fa-graduation-cap:after,.fa-duotone.fa-mortar-board:after,.fad.fa-graduation-cap:after,.fad.fa-mortar-board:after{content:"\f19d\f19d"}.fa-duotone.fa-hand-holding-medical:after,.fad.fa-hand-holding-medical:after{content:"\e05c\e05c"}.fa-duotone.fa-person-circle-check:after,.fad.fa-person-circle-check:after{content:"\e53e\e53e"}.fa-duotone.fa-square-z:after,.fad.fa-square-z:after{content:"\e288\e288"}.fa-duotone.fa-comment-alt-text:after,.fa-duotone.fa-message-text:after,.fad.fa-comment-alt-text:after,.fad.fa-message-text:after{content:"\e1e6\e1e6"}.fa-duotone.fa-level-up-alt:after,.fa-duotone.fa-turn-up:after,.fad.fa-level-up-alt:after,.fad.fa-turn-up:after{content:"\f3bf\f3bf"}:host,:root{--fa-font-light:normal 300 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:300;font-display:block;src:url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-light-300.woff2) format("woff2"),url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-light-300.ttf) format("truetype")}.fa-light,.fal{font-weight:300}:host,:root{--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-regular-400.woff2) format("woff2"),url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-regular-400.ttf) format("truetype")}.fa-regular,.far{font-weight:400}:host,:root{--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-solid-900.woff2) format("woff2"),url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900}:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-thin:normal 100 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:100;font-display:block;src:url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-thin-100.woff2) format("woff2"),url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-thin-100.ttf) format("truetype")}.fa-thin,.fat{font-weight:100}@font-face{font-family:"Font Awesome 5 Brands";font-display:block;font-weight:400;src:url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-brands-400.woff2) format("woff2"),url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Pro";font-display:block;font-weight:900;src:url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-solid-900.woff2) format("woff2"),url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Pro";font-display:block;font-weight:400;src:url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-regular-400.woff2) format("woff2"),url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-regular-400.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Pro";font-display:block;font-weight:300;src:url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-light-300.woff2) format("woff2"),url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-light-300.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Duotone";font-display:block;font-weight:900;src:url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-duotone-900.woff2) format("woff2"),url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-duotone-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-solid-900.woff2) format("woff2"),url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-brands-400.woff2) format("woff2"),url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-regular-400.woff2) format("woff2"),url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-v4compatibility.woff2) format("woff2"),url(https://raw.githubusercontent.com/desertthemes/webfonts/main/fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a} \ No newline at end of file diff --git a/wp-content/themes/chromax/assets/vendors/css/animate.css b/wp-content/themes/chromax/assets/vendors/css/animate.css new file mode 100644 index 0000000..9017cb6 --- /dev/null +++ b/wp-content/themes/chromax/assets/vendors/css/animate.css @@ -0,0 +1,3459 @@ +@charset "UTF-8"; + +/*! + * animate.css -http://daneden.me/animate + * Version - 3.5.1 + * Licensed under the MIT license - http://opensource.org/licenses/MIT + * + * Copyright (c) 2016 Daniel Eden + */ + +.animated { + -webkit-animation-duration: 1s; + animation-duration: 1s; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; +} + +.animated.infinite { + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; +} + +.animated.hinge { + -webkit-animation-duration: 2s; + animation-duration: 2s; +} + +.animated.flipOutX, +.animated.flipOutY, +.animated.bounceIn, +.animated.bounceOut { + -webkit-animation-duration: .75s; + animation-duration: .75s; +} + +@-webkit-keyframes bounce { + + from, + 20%, + 53%, + 80%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 40%, + 43% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + -webkit-transform: translate3d(0, -30px, 0); + transform: translate3d(0, -30px, 0); + } + + 70% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + -webkit-transform: translate3d(0, -15px, 0); + transform: translate3d(0, -15px, 0); + } + + 90% { + -webkit-transform: translate3d(0, -4px, 0); + transform: translate3d(0, -4px, 0); + } +} + +@keyframes bounce { + + from, + 20%, + 53%, + 80%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 40%, + 43% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + -webkit-transform: translate3d(0, -30px, 0); + transform: translate3d(0, -30px, 0); + } + + 70% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); + -webkit-transform: translate3d(0, -15px, 0); + transform: translate3d(0, -15px, 0); + } + + 90% { + -webkit-transform: translate3d(0, -4px, 0); + transform: translate3d(0, -4px, 0); + } +} + +.bounce { + -webkit-animation-name: bounce; + animation-name: bounce; + -webkit-transform-origin: center bottom; + transform-origin: center bottom; +} + +@-webkit-keyframes flash { + + from, + 50%, + to { + opacity: 1; + } + + 25%, + 75% { + opacity: 0; + } +} + +@keyframes flash { + + from, + 50%, + to { + opacity: 1; + } + + 25%, + 75% { + opacity: 0; + } +} + +.flash { + -webkit-animation-name: flash; + animation-name: flash; +} + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes pulse { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 50% { + -webkit-transform: scale3d(1.05, 1.05, 1.05); + transform: scale3d(1.05, 1.05, 1.05); + } + + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +@keyframes pulse { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 50% { + -webkit-transform: scale3d(1.05, 1.05, 1.05); + transform: scale3d(1.05, 1.05, 1.05); + } + + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +.pulse { + -webkit-animation-name: pulse; + animation-name: pulse; +} + +@-webkit-keyframes rubberBand { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 30% { + -webkit-transform: scale3d(1.25, 0.75, 1); + transform: scale3d(1.25, 0.75, 1); + } + + 40% { + -webkit-transform: scale3d(0.75, 1.25, 1); + transform: scale3d(0.75, 1.25, 1); + } + + 50% { + -webkit-transform: scale3d(1.15, 0.85, 1); + transform: scale3d(1.15, 0.85, 1); + } + + 65% { + -webkit-transform: scale3d(.95, 1.05, 1); + transform: scale3d(.95, 1.05, 1); + } + + 75% { + -webkit-transform: scale3d(1.05, .95, 1); + transform: scale3d(1.05, .95, 1); + } + + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +@keyframes rubberBand { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 30% { + -webkit-transform: scale3d(1.25, 0.75, 1); + transform: scale3d(1.25, 0.75, 1); + } + + 40% { + -webkit-transform: scale3d(0.75, 1.25, 1); + transform: scale3d(0.75, 1.25, 1); + } + + 50% { + -webkit-transform: scale3d(1.15, 0.85, 1); + transform: scale3d(1.15, 0.85, 1); + } + + 65% { + -webkit-transform: scale3d(.95, 1.05, 1); + transform: scale3d(.95, 1.05, 1); + } + + 75% { + -webkit-transform: scale3d(1.05, .95, 1); + transform: scale3d(1.05, .95, 1); + } + + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +.rubberBand { + -webkit-animation-name: rubberBand; + animation-name: rubberBand; +} + +@-webkit-keyframes shake { + + from, + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 10%, + 30%, + 50%, + 70%, + 90% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + + 20%, + 40%, + 60%, + 80% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } +} + +@keyframes shake { + + from, + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 10%, + 30%, + 50%, + 70%, + 90% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + + 20%, + 40%, + 60%, + 80% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } +} + +.shake { + -webkit-animation-name: shake; + animation-name: shake; +} + +@-webkit-keyframes headShake { + 0% { + -webkit-transform: translateX(0); + transform: translateX(0); + } + + 6.5% { + -webkit-transform: translateX(-6px) rotateY(-9deg); + transform: translateX(-6px) rotateY(-9deg); + } + + 18.5% { + -webkit-transform: translateX(5px) rotateY(7deg); + transform: translateX(5px) rotateY(7deg); + } + + 31.5% { + -webkit-transform: translateX(-3px) rotateY(-5deg); + transform: translateX(-3px) rotateY(-5deg); + } + + 43.5% { + -webkit-transform: translateX(2px) rotateY(3deg); + transform: translateX(2px) rotateY(3deg); + } + + 50% { + -webkit-transform: translateX(0); + transform: translateX(0); + } +} + +@keyframes headShake { + 0% { + -webkit-transform: translateX(0); + transform: translateX(0); + } + + 6.5% { + -webkit-transform: translateX(-6px) rotateY(-9deg); + transform: translateX(-6px) rotateY(-9deg); + } + + 18.5% { + -webkit-transform: translateX(5px) rotateY(7deg); + transform: translateX(5px) rotateY(7deg); + } + + 31.5% { + -webkit-transform: translateX(-3px) rotateY(-5deg); + transform: translateX(-3px) rotateY(-5deg); + } + + 43.5% { + -webkit-transform: translateX(2px) rotateY(3deg); + transform: translateX(2px) rotateY(3deg); + } + + 50% { + -webkit-transform: translateX(0); + transform: translateX(0); + } +} + +.headShake { + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + -webkit-animation-name: headShake; + animation-name: headShake; +} + +@-webkit-keyframes swing { + 20% { + -webkit-transform: rotate3d(0, 0, 1, 15deg); + transform: rotate3d(0, 0, 1, 15deg); + } + + 40% { + -webkit-transform: rotate3d(0, 0, 1, -10deg); + transform: rotate3d(0, 0, 1, -10deg); + } + + 60% { + -webkit-transform: rotate3d(0, 0, 1, 5deg); + transform: rotate3d(0, 0, 1, 5deg); + } + + 80% { + -webkit-transform: rotate3d(0, 0, 1, -5deg); + transform: rotate3d(0, 0, 1, -5deg); + } + + to { + -webkit-transform: rotate3d(0, 0, 1, 0deg); + transform: rotate3d(0, 0, 1, 0deg); + } +} + +@keyframes swing { + 20% { + -webkit-transform: rotate3d(0, 0, 1, 15deg); + transform: rotate3d(0, 0, 1, 15deg); + } + + 40% { + -webkit-transform: rotate3d(0, 0, 1, -10deg); + transform: rotate3d(0, 0, 1, -10deg); + } + + 60% { + -webkit-transform: rotate3d(0, 0, 1, 5deg); + transform: rotate3d(0, 0, 1, 5deg); + } + + 80% { + -webkit-transform: rotate3d(0, 0, 1, -5deg); + transform: rotate3d(0, 0, 1, -5deg); + } + + to { + -webkit-transform: rotate3d(0, 0, 1, 0deg); + transform: rotate3d(0, 0, 1, 0deg); + } +} + +.swing { + -webkit-transform-origin: top center; + transform-origin: top center; + -webkit-animation-name: swing; + animation-name: swing; +} + +@-webkit-keyframes tada { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 10%, + 20% { + -webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg); + transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg); + } + + 30%, + 50%, + 70%, + 90% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + } + + 40%, + 60%, + 80% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + } + + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +@keyframes tada { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 10%, + 20% { + -webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg); + transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg); + } + + 30%, + 50%, + 70%, + 90% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + } + + 40%, + 60%, + 80% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + } + + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +.tada { + -webkit-animation-name: tada; + animation-name: tada; +} + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes wobble { + from { + -webkit-transform: none; + transform: none; + } + + 15% { + -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + } + + 30% { + -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + } + + 45% { + -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + } + + 60% { + -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + } + + 75% { + -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + } + + to { + -webkit-transform: none; + transform: none; + } +} + +@keyframes wobble { + from { + -webkit-transform: none; + transform: none; + } + + 15% { + -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + } + + 30% { + -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + } + + 45% { + -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + } + + 60% { + -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + } + + 75% { + -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + } + + to { + -webkit-transform: none; + transform: none; + } +} + +.wobble { + -webkit-animation-name: wobble; + animation-name: wobble; +} + +@-webkit-keyframes jello { + + from, + 11.1%, + to { + -webkit-transform: none; + transform: none; + } + + 22.2% { + -webkit-transform: skewX(-12.5deg) skewY(-12.5deg); + transform: skewX(-12.5deg) skewY(-12.5deg); + } + + 33.3% { + -webkit-transform: skewX(6.25deg) skewY(6.25deg); + transform: skewX(6.25deg) skewY(6.25deg); + } + + 44.4% { + -webkit-transform: skewX(-3.125deg) skewY(-3.125deg); + transform: skewX(-3.125deg) skewY(-3.125deg); + } + + 55.5% { + -webkit-transform: skewX(1.5625deg) skewY(1.5625deg); + transform: skewX(1.5625deg) skewY(1.5625deg); + } + + 66.6% { + -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg); + transform: skewX(-0.78125deg) skewY(-0.78125deg); + } + + 77.7% { + -webkit-transform: skewX(0.390625deg) skewY(0.390625deg); + transform: skewX(0.390625deg) skewY(0.390625deg); + } + + 88.8% { + -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg); + transform: skewX(-0.1953125deg) skewY(-0.1953125deg); + } +} + +@keyframes jello { + + from, + 11.1%, + to { + -webkit-transform: none; + transform: none; + } + + 22.2% { + -webkit-transform: skewX(-12.5deg) skewY(-12.5deg); + transform: skewX(-12.5deg) skewY(-12.5deg); + } + + 33.3% { + -webkit-transform: skewX(6.25deg) skewY(6.25deg); + transform: skewX(6.25deg) skewY(6.25deg); + } + + 44.4% { + -webkit-transform: skewX(-3.125deg) skewY(-3.125deg); + transform: skewX(-3.125deg) skewY(-3.125deg); + } + + 55.5% { + -webkit-transform: skewX(1.5625deg) skewY(1.5625deg); + transform: skewX(1.5625deg) skewY(1.5625deg); + } + + 66.6% { + -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg); + transform: skewX(-0.78125deg) skewY(-0.78125deg); + } + + 77.7% { + -webkit-transform: skewX(0.390625deg) skewY(0.390625deg); + transform: skewX(0.390625deg) skewY(0.390625deg); + } + + 88.8% { + -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg); + transform: skewX(-0.1953125deg) skewY(-0.1953125deg); + } +} + +.jello { + -webkit-animation-name: jello; + animation-name: jello; + -webkit-transform-origin: center; + transform-origin: center; +} + +@-webkit-keyframes bounceIn { + + from, + 20%, + 40%, + 60%, + 80%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } + + 20% { + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + + 40% { + -webkit-transform: scale3d(.9, .9, .9); + transform: scale3d(.9, .9, .9); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(1.03, 1.03, 1.03); + transform: scale3d(1.03, 1.03, 1.03); + } + + 80% { + -webkit-transform: scale3d(.97, .97, .97); + transform: scale3d(.97, .97, .97); + } + + to { + opacity: 1; + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +@keyframes bounceIn { + + from, + 20%, + 40%, + 60%, + 80%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } + + 20% { + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + + 40% { + -webkit-transform: scale3d(.9, .9, .9); + transform: scale3d(.9, .9, .9); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(1.03, 1.03, 1.03); + transform: scale3d(1.03, 1.03, 1.03); + } + + 80% { + -webkit-transform: scale3d(.97, .97, .97); + transform: scale3d(.97, .97, .97); + } + + to { + opacity: 1; + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +.bounceIn { + -webkit-animation-name: bounceIn; + animation-name: bounceIn; +} + +@-webkit-keyframes bounceInDown { + + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -3000px, 0); + transform: translate3d(0, -3000px, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(0, 25px, 0); + transform: translate3d(0, 25px, 0); + } + + 75% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + + 90% { + -webkit-transform: translate3d(0, 5px, 0); + transform: translate3d(0, 5px, 0); + } + + to { + -webkit-transform: none; + transform: none; + } +} + +@keyframes bounceInDown { + + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -3000px, 0); + transform: translate3d(0, -3000px, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(0, 25px, 0); + transform: translate3d(0, 25px, 0); + } + + 75% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + + 90% { + -webkit-transform: translate3d(0, 5px, 0); + transform: translate3d(0, 5px, 0); + } + + to { + -webkit-transform: none; + transform: none; + } +} + +.bounceInDown { + -webkit-animation-name: bounceInDown; + animation-name: bounceInDown; +} + +@-webkit-keyframes bounceInLeft { + + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(-3000px, 0, 0); + transform: translate3d(-3000px, 0, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(25px, 0, 0); + transform: translate3d(25px, 0, 0); + } + + 75% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + + 90% { + -webkit-transform: translate3d(5px, 0, 0); + transform: translate3d(5px, 0, 0); + } + + to { + -webkit-transform: none; + transform: none; + } +} + +@keyframes bounceInLeft { + + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(-3000px, 0, 0); + transform: translate3d(-3000px, 0, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(25px, 0, 0); + transform: translate3d(25px, 0, 0); + } + + 75% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + + 90% { + -webkit-transform: translate3d(5px, 0, 0); + transform: translate3d(5px, 0, 0); + } + + to { + -webkit-transform: none; + transform: none; + } +} + +.bounceInLeft { + -webkit-animation-name: bounceInLeft; + animation-name: bounceInLeft; +} + +@-webkit-keyframes bounceInRight { + + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + from { + opacity: 0; + -webkit-transform: translate3d(3000px, 0, 0); + transform: translate3d(3000px, 0, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(-25px, 0, 0); + transform: translate3d(-25px, 0, 0); + } + + 75% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } + + 90% { + -webkit-transform: translate3d(-5px, 0, 0); + transform: translate3d(-5px, 0, 0); + } + + to { + -webkit-transform: none; + transform: none; + } +} + +@keyframes bounceInRight { + + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + from { + opacity: 0; + -webkit-transform: translate3d(3000px, 0, 0); + transform: translate3d(3000px, 0, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(-25px, 0, 0); + transform: translate3d(-25px, 0, 0); + } + + 75% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } + + 90% { + -webkit-transform: translate3d(-5px, 0, 0); + transform: translate3d(-5px, 0, 0); + } + + to { + -webkit-transform: none; + transform: none; + } +} + +.bounceInRight { + -webkit-animation-name: bounceInRight; + animation-name: bounceInRight; +} + +@-webkit-keyframes bounceInUp { + + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + from { + opacity: 0; + -webkit-transform: translate3d(0, 3000px, 0); + transform: translate3d(0, 3000px, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + } + + 75% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } + + 90% { + -webkit-transform: translate3d(0, -5px, 0); + transform: translate3d(0, -5px, 0); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes bounceInUp { + + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); + } + + from { + opacity: 0; + -webkit-transform: translate3d(0, 3000px, 0); + transform: translate3d(0, 3000px, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + } + + 75% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } + + 90% { + -webkit-transform: translate3d(0, -5px, 0); + transform: translate3d(0, -5px, 0); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.bounceInUp { + -webkit-animation-name: bounceInUp; + animation-name: bounceInUp; +} + +@-webkit-keyframes bounceOut { + 20% { + -webkit-transform: scale3d(.9, .9, .9); + transform: scale3d(.9, .9, .9); + } + + 50%, + 55% { + opacity: 1; + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + + to { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } +} + +@keyframes bounceOut { + 20% { + -webkit-transform: scale3d(.9, .9, .9); + transform: scale3d(.9, .9, .9); + } + + 50%, + 55% { + opacity: 1; + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + + to { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } +} + +.bounceOut { + -webkit-animation-name: bounceOut; + animation-name: bounceOut; +} + +@-webkit-keyframes bounceOutDown { + 20% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } + + 40%, + 45% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } +} + +@keyframes bounceOutDown { + 20% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } + + 40%, + 45% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } +} + +.bounceOutDown { + -webkit-animation-name: bounceOutDown; + animation-name: bounceOutDown; +} + +@-webkit-keyframes bounceOutLeft { + 20% { + opacity: 1; + -webkit-transform: translate3d(20px, 0, 0); + transform: translate3d(20px, 0, 0); + } + + to { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } +} + +@keyframes bounceOutLeft { + 20% { + opacity: 1; + -webkit-transform: translate3d(20px, 0, 0); + transform: translate3d(20px, 0, 0); + } + + to { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } +} + +.bounceOutLeft { + -webkit-animation-name: bounceOutLeft; + animation-name: bounceOutLeft; +} + +@-webkit-keyframes bounceOutRight { + 20% { + opacity: 1; + -webkit-transform: translate3d(-20px, 0, 0); + transform: translate3d(-20px, 0, 0); + } + + to { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } +} + +@keyframes bounceOutRight { + 20% { + opacity: 1; + -webkit-transform: translate3d(-20px, 0, 0); + transform: translate3d(-20px, 0, 0); + } + + to { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } +} + +.bounceOutRight { + -webkit-animation-name: bounceOutRight; + animation-name: bounceOutRight; +} + +@-webkit-keyframes bounceOutUp { + 20% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + + 40%, + 45% { + opacity: 1; + -webkit-transform: translate3d(0, 20px, 0); + transform: translate3d(0, 20px, 0); + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } +} + +@keyframes bounceOutUp { + 20% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + + 40%, + 45% { + opacity: 1; + -webkit-transform: translate3d(0, 20px, 0); + transform: translate3d(0, 20px, 0); + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } +} + +.bounceOutUp { + -webkit-animation-name: bounceOutUp; + animation-name: bounceOutUp; +} + +@-webkit-keyframes fadeIn { + from { + opacity: 0; + } + + to { + opacity: 1; + } +} + +@keyframes fadeIn { + from { + opacity: 0; + } + + to { + opacity: 1; + } +} + +.fadeIn { + -webkit-animation-name: fadeIn; + animation-name: fadeIn; +} + +@-webkit-keyframes fadeInDown { + from { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } + + to { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes fadeInDown { + from { + opacity: 0; + -webkit-transform: translate3d(0, -30%, 0); + transform: translate3d(0, -30%, 0); + } + + to { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +.fadeInDown { + -webkit-animation-name: fadeInDown; + animation-name: fadeInDown; +} + +@-webkit-keyframes fadeInDownBig { + from { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } + + to { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes fadeInDownBig { + from { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } + + to { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +.fadeInDownBig { + -webkit-animation-name: fadeInDownBig; + animation-name: fadeInDownBig; +} + +@-webkit-keyframes fadeInLeft { + from { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } + + to { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes fadeInLeft { + from { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } + + to { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +.fadeInLeft { + -webkit-animation-name: fadeInLeft; + animation-name: fadeInLeft; +} + +@-webkit-keyframes fadeInLeftBig { + from { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } + + to { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes fadeInLeftBig { + from { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } + + to { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +.fadeInLeftBig { + -webkit-animation-name: fadeInLeftBig; + animation-name: fadeInLeftBig; +} + +@-webkit-keyframes fadeInRight { + from { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } + + to { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes fadeInRight { + from { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } + + to { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +.fadeInRight { + -webkit-animation-name: fadeInRight; + animation-name: fadeInRight; +} + +@-webkit-keyframes fadeInRightBig { + from { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } + + to { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes fadeInRightBig { + from { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } + + to { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +.fadeInRightBig { + -webkit-animation-name: fadeInRightBig; + animation-name: fadeInRightBig; +} + +@-webkit-keyframes fadeInUp { + 0% { + opacity: 0; + -webkit-transform: translateY(20px); + transform: translateY(20px); + } + + 100% { + opacity: 1; + -webkit-transform: translateY(0); + transform: translateY(0); + } +} + +@keyframes fadeInUp { + 0% { + opacity: 0; + -webkit-transform: translateY(20px); + transform: translateY(20px); + } + + 100% { + opacity: 1; + -webkit-transform: translateY(0); + transform: translateY(0); + } +} + +.fadeInUp { + -webkit-animation-name: fadeInUp; + animation-name: fadeInUp; +} + +@-webkit-keyframes fadeInUpBig { + from { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } + + to { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes fadeInUpBig { + from { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } + + to { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +.fadeInUpBig { + -webkit-animation-name: fadeInUpBig; + animation-name: fadeInUpBig; +} + +@-webkit-keyframes fadeOut { + from { + opacity: 1; + } + + to { + opacity: 0; + } +} + +@keyframes fadeOut { + from { + opacity: 1; + } + + to { + opacity: 0; + } +} + +.fadeOut { + -webkit-animation-name: fadeOut; + animation-name: fadeOut; +} + +@-webkit-keyframes fadeOutDown { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} + +@keyframes fadeOutDown { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} + +.fadeOutDown { + -webkit-animation-name: fadeOutDown; + animation-name: fadeOutDown; +} + +@-webkit-keyframes fadeOutDownBig { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } +} + +@keyframes fadeOutDownBig { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } +} + +.fadeOutDownBig { + -webkit-animation-name: fadeOutDownBig; + animation-name: fadeOutDownBig; +} + +@-webkit-keyframes fadeOutLeft { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} + +@keyframes fadeOutLeft { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} + +.fadeOutLeft { + -webkit-animation-name: fadeOutLeft; + animation-name: fadeOutLeft; +} + +@-webkit-keyframes fadeOutLeftBig { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } +} + +@keyframes fadeOutLeftBig { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } +} + +.fadeOutLeftBig { + -webkit-animation-name: fadeOutLeftBig; + animation-name: fadeOutLeftBig; +} + +@-webkit-keyframes fadeOutRight { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} + +@keyframes fadeOutRight { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} + +.fadeOutRight { + -webkit-animation-name: fadeOutRight; + animation-name: fadeOutRight; +} + +@-webkit-keyframes fadeOutRightBig { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } +} + +@keyframes fadeOutRightBig { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } +} + +.fadeOutRightBig { + -webkit-animation-name: fadeOutRightBig; + animation-name: fadeOutRightBig; +} + +@-webkit-keyframes fadeOutUp { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } +} + +@keyframes fadeOutUp { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } +} + +.fadeOutUp { + -webkit-animation-name: fadeOutUp; + animation-name: fadeOutUp; +} + +@-webkit-keyframes fadeOutUpBig { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } +} + +@keyframes fadeOutUpBig { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } +} + +.fadeOutUpBig { + -webkit-animation-name: fadeOutUpBig; + animation-name: fadeOutUpBig; +} + +@-webkit-keyframes flip { + from { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg); + transform: perspective(400px) rotate3d(0, 1, 0, -360deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + + 40% { + -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); + transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + + 50% { + -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); + transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 80% { + -webkit-transform: perspective(400px) scale3d(.95, .95, .95); + transform: perspective(400px) scale3d(.95, .95, .95); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } +} + +@keyframes flip { + from { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg); + transform: perspective(400px) rotate3d(0, 1, 0, -360deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + + 40% { + -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); + transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + + 50% { + -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); + transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 80% { + -webkit-transform: perspective(400px) scale3d(.95, .95, .95); + transform: perspective(400px) scale3d(.95, .95, .95); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } +} + +.animated.flip { + -webkit-backface-visibility: visible; + backface-visibility: visible; + -webkit-animation-name: flip; + animation-name: flip; +} + +@-webkit-keyframes flipInX { + from { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; + } + + 40% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 60% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + opacity: 1; + } + + 80% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + } + + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} + +@keyframes flipInX { + from { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; + } + + 40% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 60% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + opacity: 1; + } + + 80% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + } + + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} + +.flipInX { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipInX; + animation-name: flipInX; +} + +@-webkit-keyframes flipInY { + from { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; + } + + 40% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 60% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + opacity: 1; + } + + 80% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + } + + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} + +@keyframes flipInY { + from { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; + } + + 40% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 60% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + opacity: 1; + } + + 80% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + } + + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} + +.flipInY { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipInY; + animation-name: flipInY; +} + +@-webkit-keyframes flipOutX { + from { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + + 30% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + opacity: 1; + } + + to { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + opacity: 0; + } +} + +@keyframes flipOutX { + from { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + + 30% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + opacity: 1; + } + + to { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + opacity: 0; + } +} + +.flipOutX { + -webkit-animation-name: flipOutX; + animation-name: flipOutX; + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; +} + +@-webkit-keyframes flipOutY { + from { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + + 30% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + opacity: 1; + } + + to { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + opacity: 0; + } +} + +@keyframes flipOutY { + from { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + + 30% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + opacity: 1; + } + + to { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + opacity: 0; + } +} + +.flipOutY { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipOutY; + animation-name: flipOutY; +} + +@-webkit-keyframes lightSpeedIn { + from { + -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg); + transform: translate3d(100%, 0, 0) skewX(-30deg); + opacity: 0; + } + + 60% { + -webkit-transform: skewX(20deg); + transform: skewX(20deg); + opacity: 1; + } + + 80% { + -webkit-transform: skewX(-5deg); + transform: skewX(-5deg); + opacity: 1; + } + + to { + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +@keyframes lightSpeedIn { + from { + -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg); + transform: translate3d(100%, 0, 0) skewX(-30deg); + opacity: 0; + } + + 60% { + -webkit-transform: skewX(20deg); + transform: skewX(20deg); + opacity: 1; + } + + 80% { + -webkit-transform: skewX(-5deg); + transform: skewX(-5deg); + opacity: 1; + } + + to { + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +.lightSpeedIn { + -webkit-animation-name: lightSpeedIn; + animation-name: lightSpeedIn; + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; +} + +@-webkit-keyframes lightSpeedOut { + from { + opacity: 1; + } + + to { + -webkit-transform: translate3d(100%, 0, 0) skewX(30deg); + transform: translate3d(100%, 0, 0) skewX(30deg); + opacity: 0; + } +} + +@keyframes lightSpeedOut { + from { + opacity: 1; + } + + to { + -webkit-transform: translate3d(100%, 0, 0) skewX(30deg); + transform: translate3d(100%, 0, 0) skewX(30deg); + opacity: 0; + } +} + +.lightSpeedOut { + -webkit-animation-name: lightSpeedOut; + animation-name: lightSpeedOut; + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; +} + +@-webkit-keyframes rotateIn { + from { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, -200deg); + transform: rotate3d(0, 0, 1, -200deg); + opacity: 0; + } + + to { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +@keyframes rotateIn { + from { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, -200deg); + transform: rotate3d(0, 0, 1, -200deg); + opacity: 0; + } + + to { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +.rotateIn { + -webkit-animation-name: rotateIn; + animation-name: rotateIn; +} + +@-webkit-keyframes rotateInDownLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } + + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +@keyframes rotateInDownLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } + + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +.rotateInDownLeft { + -webkit-animation-name: rotateInDownLeft; + animation-name: rotateInDownLeft; +} + +@-webkit-keyframes rotateInDownRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } + + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +@keyframes rotateInDownRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } + + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +.rotateInDownRight { + -webkit-animation-name: rotateInDownRight; + animation-name: rotateInDownRight; +} + +@-webkit-keyframes rotateInUpLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } + + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +@keyframes rotateInUpLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } + + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +.rotateInUpLeft { + -webkit-animation-name: rotateInUpLeft; + animation-name: rotateInUpLeft; +} + +@-webkit-keyframes rotateInUpRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -90deg); + transform: rotate3d(0, 0, 1, -90deg); + opacity: 0; + } + + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +@keyframes rotateInUpRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -90deg); + transform: rotate3d(0, 0, 1, -90deg); + opacity: 0; + } + + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +.rotateInUpRight { + -webkit-animation-name: rotateInUpRight; + animation-name: rotateInUpRight; +} + +@-webkit-keyframes rotateOut { + from { + -webkit-transform-origin: center; + transform-origin: center; + opacity: 1; + } + + to { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, 200deg); + transform: rotate3d(0, 0, 1, 200deg); + opacity: 0; + } +} + +@keyframes rotateOut { + from { + -webkit-transform-origin: center; + transform-origin: center; + opacity: 1; + } + + to { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, 200deg); + transform: rotate3d(0, 0, 1, 200deg); + opacity: 0; + } +} + +.rotateOut { + -webkit-animation-name: rotateOut; + animation-name: rotateOut; +} + +@-webkit-keyframes rotateOutDownLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; + } + + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } +} + +@keyframes rotateOutDownLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; + } + + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } +} + +.rotateOutDownLeft { + -webkit-animation-name: rotateOutDownLeft; + animation-name: rotateOutDownLeft; +} + +@-webkit-keyframes rotateOutDownRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; + } + + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } +} + +@keyframes rotateOutDownRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; + } + + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } +} + +.rotateOutDownRight { + -webkit-animation-name: rotateOutDownRight; + animation-name: rotateOutDownRight; +} + +@-webkit-keyframes rotateOutUpLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; + } + + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } +} + +@keyframes rotateOutUpLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; + } + + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } +} + +.rotateOutUpLeft { + -webkit-animation-name: rotateOutUpLeft; + animation-name: rotateOutUpLeft; +} + +@-webkit-keyframes rotateOutUpRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; + } + + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 90deg); + transform: rotate3d(0, 0, 1, 90deg); + opacity: 0; + } +} + +@keyframes rotateOutUpRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; + } + + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 90deg); + transform: rotate3d(0, 0, 1, 90deg); + opacity: 0; + } +} + +.rotateOutUpRight { + -webkit-animation-name: rotateOutUpRight; + animation-name: rotateOutUpRight; +} + +@-webkit-keyframes hinge { + 0% { + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + + 20%, + 60% { + -webkit-transform: rotate3d(0, 0, 1, 80deg); + transform: rotate3d(0, 0, 1, 80deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + + 40%, + 80% { + -webkit-transform: rotate3d(0, 0, 1, 60deg); + transform: rotate3d(0, 0, 1, 60deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + opacity: 1; + } + + to { + -webkit-transform: translate3d(0, 700px, 0); + transform: translate3d(0, 700px, 0); + opacity: 0; + } +} + +@keyframes hinge { + 0% { + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + + 20%, + 60% { + -webkit-transform: rotate3d(0, 0, 1, 80deg); + transform: rotate3d(0, 0, 1, 80deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + + 40%, + 80% { + -webkit-transform: rotate3d(0, 0, 1, 60deg); + transform: rotate3d(0, 0, 1, 60deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + opacity: 1; + } + + to { + -webkit-transform: translate3d(0, 700px, 0); + transform: translate3d(0, 700px, 0); + opacity: 0; + } +} + +.hinge { + -webkit-animation-name: hinge; + animation-name: hinge; +} + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes rollIn { + from { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + } + + to { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +@keyframes rollIn { + from { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + } + + to { + opacity: 1; + -webkit-transform: none; + transform: none; + } +} + +.rollIn { + -webkit-animation-name: rollIn; + animation-name: rollIn; +} + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes rollOut { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + } +} + +@keyframes rollOut { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + } +} + +.rollOut { + -webkit-animation-name: rollOut; + animation-name: rollOut; +} + +@-webkit-keyframes zoomIn { + from { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } + + 50% { + opacity: 1; + } +} + +@keyframes zoomIn { + from { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } + + 50% { + opacity: 1; + } +} + +.zoomIn { + -webkit-animation-name: zoomIn; + animation-name: zoomIn; +} + +@-webkit-keyframes zoomInDown { + from { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +@keyframes zoomInDown { + from { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +.zoomInDown { + -webkit-animation-name: zoomInDown; + animation-name: zoomInDown; +} + +@-webkit-keyframes zoomInLeft { + from { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); + transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +@keyframes zoomInLeft { + from { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); + transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +.zoomInLeft { + -webkit-animation-name: zoomInLeft; + animation-name: zoomInLeft; +} + +@-webkit-keyframes zoomInRight { + from { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); + transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +@keyframes zoomInRight { + from { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); + transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +.zoomInRight { + -webkit-animation-name: zoomInRight; + animation-name: zoomInRight; +} + +@-webkit-keyframes zoomInUp { + from { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +@keyframes zoomInUp { + from { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +.zoomInUp { + -webkit-animation-name: zoomInUp; + animation-name: zoomInUp; +} + +@-webkit-keyframes zoomOut { + from { + opacity: 1; + } + + 50% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } + + to { + opacity: 0; + } +} + +@keyframes zoomOut { + from { + opacity: 1; + } + + 50% { + opacity: 0; + -webkit-transform: scale3d(.3, .3, .3); + transform: scale3d(.3, .3, .3); + } + + to { + opacity: 0; + } +} + +.zoomOut { + -webkit-animation-name: zoomOut; + animation-name: zoomOut; +} + +@-webkit-keyframes zoomOutDown { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + to { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +@keyframes zoomOutDown { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + to { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +.zoomOutDown { + -webkit-animation-name: zoomOutDown; + animation-name: zoomOutDown; +} + +@-webkit-keyframes zoomOutLeft { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); + } + + to { + opacity: 0; + -webkit-transform: scale(.1) translate3d(-2000px, 0, 0); + transform: scale(.1) translate3d(-2000px, 0, 0); + -webkit-transform-origin: left center; + transform-origin: left center; + } +} + +@keyframes zoomOutLeft { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); + } + + to { + opacity: 0; + -webkit-transform: scale(.1) translate3d(-2000px, 0, 0); + transform: scale(.1) translate3d(-2000px, 0, 0); + -webkit-transform-origin: left center; + transform-origin: left center; + } +} + +.zoomOutLeft { + -webkit-animation-name: zoomOutLeft; + animation-name: zoomOutLeft; +} + +@-webkit-keyframes zoomOutRight { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); + } + + to { + opacity: 0; + -webkit-transform: scale(.1) translate3d(2000px, 0, 0); + transform: scale(.1) translate3d(2000px, 0, 0); + -webkit-transform-origin: right center; + transform-origin: right center; + } +} + +@keyframes zoomOutRight { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); + transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); + } + + to { + opacity: 0; + -webkit-transform: scale(.1) translate3d(2000px, 0, 0); + transform: scale(.1) translate3d(2000px, 0, 0); + -webkit-transform-origin: right center; + transform-origin: right center; + } +} + +.zoomOutRight { + -webkit-animation-name: zoomOutRight; + animation-name: zoomOutRight; +} + +@-webkit-keyframes zoomOutUp { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + to { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +@keyframes zoomOutUp { + 40% { + opacity: 1; + -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); + } + + to { + opacity: 0; + -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); + transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); + } +} + +.zoomOutUp { + -webkit-animation-name: zoomOutUp; + animation-name: zoomOutUp; +} + +@-webkit-keyframes slideInDown { + from { + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + visibility: visible; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes slideInDown { + from { + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + visibility: visible; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.slideInDown { + -webkit-animation-name: slideInDown; + animation-name: slideInDown; +} + +@-webkit-keyframes slideInLeft { + from { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + visibility: visible; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes slideInLeft { + from { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + visibility: visible; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.slideInLeft { + -webkit-animation-name: slideInLeft; + animation-name: slideInLeft; +} + +@-webkit-keyframes slideInRight { + from { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + visibility: visible; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes slideInRight { + from { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + visibility: visible; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.slideInRight { + -webkit-animation-name: slideInRight; + animation-name: slideInRight; +} + +@-webkit-keyframes slideInUp { + 0% { + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + visibility: visible; + } + + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes slideInUp { + 0% { + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + visibility: visible; + } + + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.slideInUp { + -webkit-animation-name: slideInUp; + animation-name: slideInUp; +} + +@-webkit-keyframes slideOutDown { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + to { + visibility: hidden; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} + +@keyframes slideOutDown { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + to { + visibility: hidden; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} + +.slideOutDown { + -webkit-animation-name: slideOutDown; + animation-name: slideOutDown; +} + +@-webkit-keyframes slideOutLeft { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + to { + visibility: hidden; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} + +@keyframes slideOutLeft { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + to { + visibility: hidden; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} + +.slideOutLeft { + -webkit-animation-name: slideOutLeft; + animation-name: slideOutLeft; +} + +@-webkit-keyframes slideOutRight { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + to { + visibility: hidden; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} + +@keyframes slideOutRight { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + to { + visibility: hidden; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} + +.slideOutRight { + -webkit-animation-name: slideOutRight; + animation-name: slideOutRight; +} + +@-webkit-keyframes slideOutUp { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + to { + visibility: hidden; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } +} + +@keyframes slideOutUp { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + to { + visibility: hidden; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } +} + +.slideOutUp { + -webkit-animation-name: slideOutUp; + animation-name: slideOutUp; +} + diff --git a/wp-content/themes/chromax/assets/vendors/css/aos.css b/wp-content/themes/chromax/assets/vendors/css/aos.css new file mode 100644 index 0000000..739e712 --- /dev/null +++ b/wp-content/themes/chromax/assets/vendors/css/aos.css @@ -0,0 +1,1152 @@ +[data-aos][data-aos][data-aos-duration="50"], +body[data-aos-duration="50"] [data-aos] { + transition-duration: 50ms +} + +[data-aos][data-aos][data-aos-delay="50"], +body[data-aos-delay="50"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="50"].aos-animate, +body[data-aos-delay="50"] [data-aos].aos-animate { + transition-delay: 50ms +} + +[data-aos][data-aos][data-aos-duration="100"], +body[data-aos-duration="100"] [data-aos] { + transition-duration: .1s +} + +[data-aos][data-aos][data-aos-delay="100"], +body[data-aos-delay="100"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="100"].aos-animate, +body[data-aos-delay="100"] [data-aos].aos-animate { + transition-delay: .1s +} + +[data-aos][data-aos][data-aos-duration="150"], +body[data-aos-duration="150"] [data-aos] { + transition-duration: .15s +} + +[data-aos][data-aos][data-aos-delay="150"], +body[data-aos-delay="150"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="150"].aos-animate, +body[data-aos-delay="150"] [data-aos].aos-animate { + transition-delay: .15s +} + +[data-aos][data-aos][data-aos-duration="200"], +body[data-aos-duration="200"] [data-aos] { + transition-duration: .2s +} + +[data-aos][data-aos][data-aos-delay="200"], +body[data-aos-delay="200"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="200"].aos-animate, +body[data-aos-delay="200"] [data-aos].aos-animate { + transition-delay: .2s +} + +[data-aos][data-aos][data-aos-duration="250"], +body[data-aos-duration="250"] [data-aos] { + transition-duration: .25s +} + +[data-aos][data-aos][data-aos-delay="250"], +body[data-aos-delay="250"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="250"].aos-animate, +body[data-aos-delay="250"] [data-aos].aos-animate { + transition-delay: .25s +} + +[data-aos][data-aos][data-aos-duration="300"], +body[data-aos-duration="300"] [data-aos] { + transition-duration: .3s +} + +[data-aos][data-aos][data-aos-delay="300"], +body[data-aos-delay="300"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="300"].aos-animate, +body[data-aos-delay="300"] [data-aos].aos-animate { + transition-delay: .3s +} + +[data-aos][data-aos][data-aos-duration="350"], +body[data-aos-duration="350"] [data-aos] { + transition-duration: .35s +} + +[data-aos][data-aos][data-aos-delay="350"], +body[data-aos-delay="350"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="350"].aos-animate, +body[data-aos-delay="350"] [data-aos].aos-animate { + transition-delay: .35s +} + +[data-aos][data-aos][data-aos-duration="400"], +body[data-aos-duration="400"] [data-aos] { + transition-duration: .4s +} + +[data-aos][data-aos][data-aos-delay="400"], +body[data-aos-delay="400"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="400"].aos-animate, +body[data-aos-delay="400"] [data-aos].aos-animate { + transition-delay: .4s +} + +[data-aos][data-aos][data-aos-duration="450"], +body[data-aos-duration="450"] [data-aos] { + transition-duration: .45s +} + +[data-aos][data-aos][data-aos-delay="450"], +body[data-aos-delay="450"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="450"].aos-animate, +body[data-aos-delay="450"] [data-aos].aos-animate { + transition-delay: .45s +} + +[data-aos][data-aos][data-aos-duration="500"], +body[data-aos-duration="500"] [data-aos] { + transition-duration: .5s +} + +[data-aos][data-aos][data-aos-delay="500"], +body[data-aos-delay="500"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="500"].aos-animate, +body[data-aos-delay="500"] [data-aos].aos-animate { + transition-delay: .5s +} + +[data-aos][data-aos][data-aos-duration="550"], +body[data-aos-duration="550"] [data-aos] { + transition-duration: .55s +} + +[data-aos][data-aos][data-aos-delay="550"], +body[data-aos-delay="550"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="550"].aos-animate, +body[data-aos-delay="550"] [data-aos].aos-animate { + transition-delay: .55s +} + +[data-aos][data-aos][data-aos-duration="600"], +body[data-aos-duration="600"] [data-aos] { + transition-duration: .6s +} + +[data-aos][data-aos][data-aos-delay="600"], +body[data-aos-delay="600"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="600"].aos-animate, +body[data-aos-delay="600"] [data-aos].aos-animate { + transition-delay: .6s +} + +[data-aos][data-aos][data-aos-duration="650"], +body[data-aos-duration="650"] [data-aos] { + transition-duration: .65s +} + +[data-aos][data-aos][data-aos-delay="650"], +body[data-aos-delay="650"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="650"].aos-animate, +body[data-aos-delay="650"] [data-aos].aos-animate { + transition-delay: .65s +} + +[data-aos][data-aos][data-aos-duration="700"], +body[data-aos-duration="700"] [data-aos] { + transition-duration: .7s +} + +[data-aos][data-aos][data-aos-delay="700"], +body[data-aos-delay="700"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="700"].aos-animate, +body[data-aos-delay="700"] [data-aos].aos-animate { + transition-delay: .7s +} + +[data-aos][data-aos][data-aos-duration="750"], +body[data-aos-duration="750"] [data-aos] { + transition-duration: .75s +} + +[data-aos][data-aos][data-aos-delay="750"], +body[data-aos-delay="750"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="750"].aos-animate, +body[data-aos-delay="750"] [data-aos].aos-animate { + transition-delay: .75s +} + +[data-aos][data-aos][data-aos-duration="800"], +body[data-aos-duration="800"] [data-aos] { + transition-duration: .8s +} + +[data-aos][data-aos][data-aos-delay="800"], +body[data-aos-delay="800"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="800"].aos-animate, +body[data-aos-delay="800"] [data-aos].aos-animate { + transition-delay: .8s +} + +[data-aos][data-aos][data-aos-duration="850"], +body[data-aos-duration="850"] [data-aos] { + transition-duration: .85s +} + +[data-aos][data-aos][data-aos-delay="850"], +body[data-aos-delay="850"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="850"].aos-animate, +body[data-aos-delay="850"] [data-aos].aos-animate { + transition-delay: .85s +} + +[data-aos][data-aos][data-aos-duration="900"], +body[data-aos-duration="900"] [data-aos] { + transition-duration: .9s +} + +[data-aos][data-aos][data-aos-delay="900"], +body[data-aos-delay="900"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="900"].aos-animate, +body[data-aos-delay="900"] [data-aos].aos-animate { + transition-delay: .9s +} + +[data-aos][data-aos][data-aos-duration="950"], +body[data-aos-duration="950"] [data-aos] { + transition-duration: .95s +} + +[data-aos][data-aos][data-aos-delay="950"], +body[data-aos-delay="950"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="950"].aos-animate, +body[data-aos-delay="950"] [data-aos].aos-animate { + transition-delay: .95s +} + +[data-aos][data-aos][data-aos-duration="1000"], +body[data-aos-duration="1000"] [data-aos] { + transition-duration: 1s +} + +[data-aos][data-aos][data-aos-delay="1000"], +body[data-aos-delay="1000"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="1000"].aos-animate, +body[data-aos-delay="1000"] [data-aos].aos-animate { + transition-delay: 1s +} + +[data-aos][data-aos][data-aos-duration="1050"], +body[data-aos-duration="1050"] [data-aos] { + transition-duration: 1.05s +} + +[data-aos][data-aos][data-aos-delay="1050"], +body[data-aos-delay="1050"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="1050"].aos-animate, +body[data-aos-delay="1050"] [data-aos].aos-animate { + transition-delay: 1.05s +} + +[data-aos][data-aos][data-aos-duration="1100"], +body[data-aos-duration="1100"] [data-aos] { + transition-duration: 1.1s +} + +[data-aos][data-aos][data-aos-delay="1100"], +body[data-aos-delay="1100"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="1100"].aos-animate, +body[data-aos-delay="1100"] [data-aos].aos-animate { + transition-delay: 1.1s +} + +[data-aos][data-aos][data-aos-duration="1150"], +body[data-aos-duration="1150"] [data-aos] { + transition-duration: 1.15s +} + +[data-aos][data-aos][data-aos-delay="1150"], +body[data-aos-delay="1150"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="1150"].aos-animate, +body[data-aos-delay="1150"] [data-aos].aos-animate { + transition-delay: 1.15s +} + +[data-aos][data-aos][data-aos-duration="1200"], +body[data-aos-duration="1200"] [data-aos] { + transition-duration: 1.2s +} + +[data-aos][data-aos][data-aos-delay="1200"], +body[data-aos-delay="1200"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="1200"].aos-animate, +body[data-aos-delay="1200"] [data-aos].aos-animate { + transition-delay: 1.2s +} + +[data-aos][data-aos][data-aos-duration="1250"], +body[data-aos-duration="1250"] [data-aos] { + transition-duration: 1.25s +} + +[data-aos][data-aos][data-aos-delay="1250"], +body[data-aos-delay="1250"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="1250"].aos-animate, +body[data-aos-delay="1250"] [data-aos].aos-animate { + transition-delay: 1.25s +} + +[data-aos][data-aos][data-aos-duration="1300"], +body[data-aos-duration="1300"] [data-aos] { + transition-duration: 1.3s +} + +[data-aos][data-aos][data-aos-delay="1300"], +body[data-aos-delay="1300"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="1300"].aos-animate, +body[data-aos-delay="1300"] [data-aos].aos-animate { + transition-delay: 1.3s +} + +[data-aos][data-aos][data-aos-duration="1350"], +body[data-aos-duration="1350"] [data-aos] { + transition-duration: 1.35s +} + +[data-aos][data-aos][data-aos-delay="1350"], +body[data-aos-delay="1350"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="1350"].aos-animate, +body[data-aos-delay="1350"] [data-aos].aos-animate { + transition-delay: 1.35s +} + +[data-aos][data-aos][data-aos-duration="1400"], +body[data-aos-duration="1400"] [data-aos] { + transition-duration: 1.4s +} + +[data-aos][data-aos][data-aos-delay="1400"], +body[data-aos-delay="1400"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="1400"].aos-animate, +body[data-aos-delay="1400"] [data-aos].aos-animate { + transition-delay: 1.4s +} + +[data-aos][data-aos][data-aos-duration="1450"], +body[data-aos-duration="1450"] [data-aos] { + transition-duration: 1.45s +} + +[data-aos][data-aos][data-aos-delay="1450"], +body[data-aos-delay="1450"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="1450"].aos-animate, +body[data-aos-delay="1450"] [data-aos].aos-animate { + transition-delay: 1.45s +} + +[data-aos][data-aos][data-aos-duration="1500"], +body[data-aos-duration="1500"] [data-aos] { + transition-duration: 1.5s +} + +[data-aos][data-aos][data-aos-delay="1500"], +body[data-aos-delay="1500"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="1500"].aos-animate, +body[data-aos-delay="1500"] [data-aos].aos-animate { + transition-delay: 1.5s +} + +[data-aos][data-aos][data-aos-duration="1550"], +body[data-aos-duration="1550"] [data-aos] { + transition-duration: 1.55s +} + +[data-aos][data-aos][data-aos-delay="1550"], +body[data-aos-delay="1550"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="1550"].aos-animate, +body[data-aos-delay="1550"] [data-aos].aos-animate { + transition-delay: 1.55s +} + +[data-aos][data-aos][data-aos-duration="1600"], +body[data-aos-duration="1600"] [data-aos] { + transition-duration: 1.6s +} + +[data-aos][data-aos][data-aos-delay="1600"], +body[data-aos-delay="1600"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="1600"].aos-animate, +body[data-aos-delay="1600"] [data-aos].aos-animate { + transition-delay: 1.6s +} + +[data-aos][data-aos][data-aos-duration="1650"], +body[data-aos-duration="1650"] [data-aos] { + transition-duration: 1.65s +} + +[data-aos][data-aos][data-aos-delay="1650"], +body[data-aos-delay="1650"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="1650"].aos-animate, +body[data-aos-delay="1650"] [data-aos].aos-animate { + transition-delay: 1.65s +} + +[data-aos][data-aos][data-aos-duration="1700"], +body[data-aos-duration="1700"] [data-aos] { + transition-duration: 1.7s +} + +[data-aos][data-aos][data-aos-delay="1700"], +body[data-aos-delay="1700"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="1700"].aos-animate, +body[data-aos-delay="1700"] [data-aos].aos-animate { + transition-delay: 1.7s +} + +[data-aos][data-aos][data-aos-duration="1750"], +body[data-aos-duration="1750"] [data-aos] { + transition-duration: 1.75s +} + +[data-aos][data-aos][data-aos-delay="1750"], +body[data-aos-delay="1750"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="1750"].aos-animate, +body[data-aos-delay="1750"] [data-aos].aos-animate { + transition-delay: 1.75s +} + +[data-aos][data-aos][data-aos-duration="1800"], +body[data-aos-duration="1800"] [data-aos] { + transition-duration: 1.8s +} + +[data-aos][data-aos][data-aos-delay="1800"], +body[data-aos-delay="1800"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="1800"].aos-animate, +body[data-aos-delay="1800"] [data-aos].aos-animate { + transition-delay: 1.8s +} + +[data-aos][data-aos][data-aos-duration="1850"], +body[data-aos-duration="1850"] [data-aos] { + transition-duration: 1.85s +} + +[data-aos][data-aos][data-aos-delay="1850"], +body[data-aos-delay="1850"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="1850"].aos-animate, +body[data-aos-delay="1850"] [data-aos].aos-animate { + transition-delay: 1.85s +} + +[data-aos][data-aos][data-aos-duration="1900"], +body[data-aos-duration="1900"] [data-aos] { + transition-duration: 1.9s +} + +[data-aos][data-aos][data-aos-delay="1900"], +body[data-aos-delay="1900"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="1900"].aos-animate, +body[data-aos-delay="1900"] [data-aos].aos-animate { + transition-delay: 1.9s +} + +[data-aos][data-aos][data-aos-duration="1950"], +body[data-aos-duration="1950"] [data-aos] { + transition-duration: 1.95s +} + +[data-aos][data-aos][data-aos-delay="1950"], +body[data-aos-delay="1950"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="1950"].aos-animate, +body[data-aos-delay="1950"] [data-aos].aos-animate { + transition-delay: 1.95s +} + +[data-aos][data-aos][data-aos-duration="2000"], +body[data-aos-duration="2000"] [data-aos] { + transition-duration: 2s +} + +[data-aos][data-aos][data-aos-delay="2000"], +body[data-aos-delay="2000"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="2000"].aos-animate, +body[data-aos-delay="2000"] [data-aos].aos-animate { + transition-delay: 2s +} + +[data-aos][data-aos][data-aos-duration="2050"], +body[data-aos-duration="2050"] [data-aos] { + transition-duration: 2.05s +} + +[data-aos][data-aos][data-aos-delay="2050"], +body[data-aos-delay="2050"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="2050"].aos-animate, +body[data-aos-delay="2050"] [data-aos].aos-animate { + transition-delay: 2.05s +} + +[data-aos][data-aos][data-aos-duration="2100"], +body[data-aos-duration="2100"] [data-aos] { + transition-duration: 2.1s +} + +[data-aos][data-aos][data-aos-delay="2100"], +body[data-aos-delay="2100"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="2100"].aos-animate, +body[data-aos-delay="2100"] [data-aos].aos-animate { + transition-delay: 2.1s +} + +[data-aos][data-aos][data-aos-duration="2150"], +body[data-aos-duration="2150"] [data-aos] { + transition-duration: 2.15s +} + +[data-aos][data-aos][data-aos-delay="2150"], +body[data-aos-delay="2150"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="2150"].aos-animate, +body[data-aos-delay="2150"] [data-aos].aos-animate { + transition-delay: 2.15s +} + +[data-aos][data-aos][data-aos-duration="2200"], +body[data-aos-duration="2200"] [data-aos] { + transition-duration: 2.2s +} + +[data-aos][data-aos][data-aos-delay="2200"], +body[data-aos-delay="2200"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="2200"].aos-animate, +body[data-aos-delay="2200"] [data-aos].aos-animate { + transition-delay: 2.2s +} + +[data-aos][data-aos][data-aos-duration="2250"], +body[data-aos-duration="2250"] [data-aos] { + transition-duration: 2.25s +} + +[data-aos][data-aos][data-aos-delay="2250"], +body[data-aos-delay="2250"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="2250"].aos-animate, +body[data-aos-delay="2250"] [data-aos].aos-animate { + transition-delay: 2.25s +} + +[data-aos][data-aos][data-aos-duration="2300"], +body[data-aos-duration="2300"] [data-aos] { + transition-duration: 2.3s +} + +[data-aos][data-aos][data-aos-delay="2300"], +body[data-aos-delay="2300"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="2300"].aos-animate, +body[data-aos-delay="2300"] [data-aos].aos-animate { + transition-delay: 2.3s +} + +[data-aos][data-aos][data-aos-duration="2350"], +body[data-aos-duration="2350"] [data-aos] { + transition-duration: 2.35s +} + +[data-aos][data-aos][data-aos-delay="2350"], +body[data-aos-delay="2350"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="2350"].aos-animate, +body[data-aos-delay="2350"] [data-aos].aos-animate { + transition-delay: 2.35s +} + +[data-aos][data-aos][data-aos-duration="2400"], +body[data-aos-duration="2400"] [data-aos] { + transition-duration: 2.4s +} + +[data-aos][data-aos][data-aos-delay="2400"], +body[data-aos-delay="2400"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="2400"].aos-animate, +body[data-aos-delay="2400"] [data-aos].aos-animate { + transition-delay: 2.4s +} + +[data-aos][data-aos][data-aos-duration="2450"], +body[data-aos-duration="2450"] [data-aos] { + transition-duration: 2.45s +} + +[data-aos][data-aos][data-aos-delay="2450"], +body[data-aos-delay="2450"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="2450"].aos-animate, +body[data-aos-delay="2450"] [data-aos].aos-animate { + transition-delay: 2.45s +} + +[data-aos][data-aos][data-aos-duration="2500"], +body[data-aos-duration="2500"] [data-aos] { + transition-duration: 2.5s +} + +[data-aos][data-aos][data-aos-delay="2500"], +body[data-aos-delay="2500"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="2500"].aos-animate, +body[data-aos-delay="2500"] [data-aos].aos-animate { + transition-delay: 2.5s +} + +[data-aos][data-aos][data-aos-duration="2550"], +body[data-aos-duration="2550"] [data-aos] { + transition-duration: 2.55s +} + +[data-aos][data-aos][data-aos-delay="2550"], +body[data-aos-delay="2550"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="2550"].aos-animate, +body[data-aos-delay="2550"] [data-aos].aos-animate { + transition-delay: 2.55s +} + +[data-aos][data-aos][data-aos-duration="2600"], +body[data-aos-duration="2600"] [data-aos] { + transition-duration: 2.6s +} + +[data-aos][data-aos][data-aos-delay="2600"], +body[data-aos-delay="2600"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="2600"].aos-animate, +body[data-aos-delay="2600"] [data-aos].aos-animate { + transition-delay: 2.6s +} + +[data-aos][data-aos][data-aos-duration="2650"], +body[data-aos-duration="2650"] [data-aos] { + transition-duration: 2.65s +} + +[data-aos][data-aos][data-aos-delay="2650"], +body[data-aos-delay="2650"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="2650"].aos-animate, +body[data-aos-delay="2650"] [data-aos].aos-animate { + transition-delay: 2.65s +} + +[data-aos][data-aos][data-aos-duration="2700"], +body[data-aos-duration="2700"] [data-aos] { + transition-duration: 2.7s +} + +[data-aos][data-aos][data-aos-delay="2700"], +body[data-aos-delay="2700"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="2700"].aos-animate, +body[data-aos-delay="2700"] [data-aos].aos-animate { + transition-delay: 2.7s +} + +[data-aos][data-aos][data-aos-duration="2750"], +body[data-aos-duration="2750"] [data-aos] { + transition-duration: 2.75s +} + +[data-aos][data-aos][data-aos-delay="2750"], +body[data-aos-delay="2750"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="2750"].aos-animate, +body[data-aos-delay="2750"] [data-aos].aos-animate { + transition-delay: 2.75s +} + +[data-aos][data-aos][data-aos-duration="2800"], +body[data-aos-duration="2800"] [data-aos] { + transition-duration: 2.8s +} + +[data-aos][data-aos][data-aos-delay="2800"], +body[data-aos-delay="2800"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="2800"].aos-animate, +body[data-aos-delay="2800"] [data-aos].aos-animate { + transition-delay: 2.8s +} + +[data-aos][data-aos][data-aos-duration="2850"], +body[data-aos-duration="2850"] [data-aos] { + transition-duration: 2.85s +} + +[data-aos][data-aos][data-aos-delay="2850"], +body[data-aos-delay="2850"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="2850"].aos-animate, +body[data-aos-delay="2850"] [data-aos].aos-animate { + transition-delay: 2.85s +} + +[data-aos][data-aos][data-aos-duration="2900"], +body[data-aos-duration="2900"] [data-aos] { + transition-duration: 2.9s +} + +[data-aos][data-aos][data-aos-delay="2900"], +body[data-aos-delay="2900"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="2900"].aos-animate, +body[data-aos-delay="2900"] [data-aos].aos-animate { + transition-delay: 2.9s +} + +[data-aos][data-aos][data-aos-duration="2950"], +body[data-aos-duration="2950"] [data-aos] { + transition-duration: 2.95s +} + +[data-aos][data-aos][data-aos-delay="2950"], +body[data-aos-delay="2950"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="2950"].aos-animate, +body[data-aos-delay="2950"] [data-aos].aos-animate { + transition-delay: 2.95s +} + +[data-aos][data-aos][data-aos-duration="3000"], +body[data-aos-duration="3000"] [data-aos] { + transition-duration: 3s +} + +[data-aos][data-aos][data-aos-delay="3000"], +body[data-aos-delay="3000"] [data-aos] { + transition-delay: 0 +} + +[data-aos][data-aos][data-aos-delay="3000"].aos-animate, +body[data-aos-delay="3000"] [data-aos].aos-animate { + transition-delay: 3s +} + +[data-aos][data-aos][data-aos-easing=linear], +body[data-aos-easing=linear] [data-aos] { + transition-timing-function: cubic-bezier(.25, .25, .75, .75) +} + +[data-aos][data-aos][data-aos-easing=ease], +body[data-aos-easing=ease] [data-aos] { + transition-timing-function: ease +} + +[data-aos][data-aos][data-aos-easing=ease-in], +body[data-aos-easing=ease-in] [data-aos] { + transition-timing-function: ease-in +} + +[data-aos][data-aos][data-aos-easing=ease-out], +body[data-aos-easing=ease-out] [data-aos] { + transition-timing-function: ease-out +} + +[data-aos][data-aos][data-aos-easing=ease-in-out], +body[data-aos-easing=ease-in-out] [data-aos] { + transition-timing-function: ease-in-out +} + +[data-aos][data-aos][data-aos-easing=ease-in-back], +body[data-aos-easing=ease-in-back] [data-aos] { + transition-timing-function: cubic-bezier(.6, -.28, .735, .045) +} + +[data-aos][data-aos][data-aos-easing=ease-out-back], +body[data-aos-easing=ease-out-back] [data-aos] { + transition-timing-function: cubic-bezier(.175, .885, .32, 1.275) +} + +[data-aos][data-aos][data-aos-easing=ease-in-out-back], +body[data-aos-easing=ease-in-out-back] [data-aos] { + transition-timing-function: cubic-bezier(.68, -.55, .265, 1.55) +} + +[data-aos][data-aos][data-aos-easing=ease-in-sine], +body[data-aos-easing=ease-in-sine] [data-aos] { + transition-timing-function: cubic-bezier(.47, 0, .745, .715) +} + +[data-aos][data-aos][data-aos-easing=ease-out-sine], +body[data-aos-easing=ease-out-sine] [data-aos] { + transition-timing-function: cubic-bezier(.39, .575, .565, 1) +} + +[data-aos][data-aos][data-aos-easing=ease-in-out-sine], +body[data-aos-easing=ease-in-out-sine] [data-aos] { + transition-timing-function: cubic-bezier(.445, .05, .55, .95) +} + +[data-aos][data-aos][data-aos-easing=ease-in-quad], +body[data-aos-easing=ease-in-quad] [data-aos] { + transition-timing-function: cubic-bezier(.55, .085, .68, .53) +} + +[data-aos][data-aos][data-aos-easing=ease-out-quad], +body[data-aos-easing=ease-out-quad] [data-aos] { + transition-timing-function: cubic-bezier(.25, .46, .45, .94) +} + +[data-aos][data-aos][data-aos-easing=ease-in-out-quad], +body[data-aos-easing=ease-in-out-quad] [data-aos] { + transition-timing-function: cubic-bezier(.455, .03, .515, .955) +} + +[data-aos][data-aos][data-aos-easing=ease-in-cubic], +body[data-aos-easing=ease-in-cubic] [data-aos] { + transition-timing-function: cubic-bezier(.55, .085, .68, .53) +} + +[data-aos][data-aos][data-aos-easing=ease-out-cubic], +body[data-aos-easing=ease-out-cubic] [data-aos] { + transition-timing-function: cubic-bezier(.25, .46, .45, .94) +} + +[data-aos][data-aos][data-aos-easing=ease-in-out-cubic], +body[data-aos-easing=ease-in-out-cubic] [data-aos] { + transition-timing-function: cubic-bezier(.455, .03, .515, .955) +} + +[data-aos][data-aos][data-aos-easing=ease-in-quart], +body[data-aos-easing=ease-in-quart] [data-aos] { + transition-timing-function: cubic-bezier(.55, .085, .68, .53) +} + +[data-aos][data-aos][data-aos-easing=ease-out-quart], +body[data-aos-easing=ease-out-quart] [data-aos] { + transition-timing-function: cubic-bezier(.25, .46, .45, .94) +} + +[data-aos][data-aos][data-aos-easing=ease-in-out-quart], +body[data-aos-easing=ease-in-out-quart] [data-aos] { + transition-timing-function: cubic-bezier(.455, .03, .515, .955) +} + +[data-aos^=fade][data-aos^=fade] { + opacity: 0; + transition-property: opacity, transform +} + +[data-aos^=fade][data-aos^=fade].aos-animate { + opacity: 1; + transform: translateZ(0) +} + +[data-aos=fade-up] { + transform: translate3d(0, 100px, 0) +} + +[data-aos=fade-down] { + transform: translate3d(0, -100px, 0) +} + +[data-aos=fade-right] { + transform: translate3d(-100px, 0, 0) +} + +[data-aos=fade-left] { + transform: translate3d(100px, 0, 0) +} + +[data-aos=fade-up-right] { + transform: translate3d(-100px, 100px, 0) +} + +[data-aos=fade-up-left] { + transform: translate3d(100px, 100px, 0) +} + +[data-aos=fade-down-right] { + transform: translate3d(-100px, -100px, 0) +} + +[data-aos=fade-down-left] { + transform: translate3d(100px, -100px, 0) +} + +[data-aos^=zoom][data-aos^=zoom] { + opacity: 0; + transition-property: opacity, transform +} + +[data-aos^=zoom][data-aos^=zoom].aos-animate { + opacity: 1; + transform: translateZ(0) scale(1) +} + +[data-aos=zoom-in] { + transform: scale(.6) +} + +[data-aos=zoom-in-up] { + transform: translate3d(0, 100px, 0) scale(.6) +} + +[data-aos=zoom-in-down] { + transform: translate3d(0, -100px, 0) scale(.6) +} + +[data-aos=zoom-in-right] { + transform: translate3d(-100px, 0, 0) scale(.6) +} + +[data-aos=zoom-in-left] { + transform: translate3d(100px, 0, 0) scale(.6) +} + +[data-aos=zoom-out] { + transform: scale(1.2) +} + +[data-aos=zoom-out-up] { + transform: translate3d(0, 100px, 0) scale(1.2) +} + +[data-aos=zoom-out-down] { + transform: translate3d(0, -100px, 0) scale(1.2) +} + +[data-aos=zoom-out-right] { + transform: translate3d(-100px, 0, 0) scale(1.2) +} + +[data-aos=zoom-out-left] { + transform: translate3d(100px, 0, 0) scale(1.2) +} + +[data-aos^=slide][data-aos^=slide] { + transition-property: transform +} + +[data-aos^=slide][data-aos^=slide].aos-animate { + transform: translateZ(0) +} + +[data-aos=slide-up] { + transform: translate3d(0, 100%, 0) +} + +[data-aos=slide-down] { + transform: translate3d(0, -100%, 0) +} + +[data-aos=slide-right] { + transform: translate3d(-100%, 0, 0) +} + +[data-aos=slide-left] { + transform: translate3d(100%, 0, 0) +} + +[data-aos^=flip][data-aos^=flip] { + backface-visibility: hidden; + transition-property: transform +} + +[data-aos=flip-left] { + transform: perspective(2500px) rotateY(-100deg) +} + +[data-aos=flip-left].aos-animate { + transform: perspective(2500px) rotateY(0) +} + +[data-aos=flip-right] { + transform: perspective(2500px) rotateY(100deg) +} + +[data-aos=flip-right].aos-animate { + transform: perspective(2500px) rotateY(0) +} + +[data-aos=flip-up] { + transform: perspective(2500px) rotateX(-100deg) +} + +[data-aos=flip-up].aos-animate { + transform: perspective(2500px) rotateX(0) +} + +[data-aos=flip-down] { + transform: perspective(2500px) rotateX(100deg) +} + +[data-aos=flip-down].aos-animate { + transform: perspective(2500px) rotateX(0) +} \ No newline at end of file diff --git a/wp-content/themes/chromax/assets/vendors/css/aos.min.css b/wp-content/themes/chromax/assets/vendors/css/aos.min.css new file mode 100644 index 0000000..66923fe --- /dev/null +++ b/wp-content/themes/chromax/assets/vendors/css/aos.min.css @@ -0,0 +1 @@ +[data-aos][data-aos][data-aos-duration="50"],body[data-aos-duration="50"] [data-aos]{transition-duration:50ms}[data-aos][data-aos][data-aos-delay="50"],body[data-aos-delay="50"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="50"].aos-animate,body[data-aos-delay="50"] [data-aos].aos-animate{transition-delay:50ms}[data-aos][data-aos][data-aos-duration="100"],body[data-aos-duration="100"] [data-aos]{transition-duration:.1s}[data-aos][data-aos][data-aos-delay="100"],body[data-aos-delay="100"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="100"].aos-animate,body[data-aos-delay="100"] [data-aos].aos-animate{transition-delay:.1s}[data-aos][data-aos][data-aos-duration="150"],body[data-aos-duration="150"] [data-aos]{transition-duration:.15s}[data-aos][data-aos][data-aos-delay="150"],body[data-aos-delay="150"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="150"].aos-animate,body[data-aos-delay="150"] [data-aos].aos-animate{transition-delay:.15s}[data-aos][data-aos][data-aos-duration="200"],body[data-aos-duration="200"] [data-aos]{transition-duration:.2s}[data-aos][data-aos][data-aos-delay="200"],body[data-aos-delay="200"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="200"].aos-animate,body[data-aos-delay="200"] [data-aos].aos-animate{transition-delay:.2s}[data-aos][data-aos][data-aos-duration="250"],body[data-aos-duration="250"] [data-aos]{transition-duration:.25s}[data-aos][data-aos][data-aos-delay="250"],body[data-aos-delay="250"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="250"].aos-animate,body[data-aos-delay="250"] [data-aos].aos-animate{transition-delay:.25s}[data-aos][data-aos][data-aos-duration="300"],body[data-aos-duration="300"] [data-aos]{transition-duration:.3s}[data-aos][data-aos][data-aos-delay="300"],body[data-aos-delay="300"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="300"].aos-animate,body[data-aos-delay="300"] [data-aos].aos-animate{transition-delay:.3s}[data-aos][data-aos][data-aos-duration="350"],body[data-aos-duration="350"] [data-aos]{transition-duration:.35s}[data-aos][data-aos][data-aos-delay="350"],body[data-aos-delay="350"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="350"].aos-animate,body[data-aos-delay="350"] [data-aos].aos-animate{transition-delay:.35s}[data-aos][data-aos][data-aos-duration="400"],body[data-aos-duration="400"] [data-aos]{transition-duration:.4s}[data-aos][data-aos][data-aos-delay="400"],body[data-aos-delay="400"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="400"].aos-animate,body[data-aos-delay="400"] [data-aos].aos-animate{transition-delay:.4s}[data-aos][data-aos][data-aos-duration="450"],body[data-aos-duration="450"] [data-aos]{transition-duration:.45s}[data-aos][data-aos][data-aos-delay="450"],body[data-aos-delay="450"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="450"].aos-animate,body[data-aos-delay="450"] [data-aos].aos-animate{transition-delay:.45s}[data-aos][data-aos][data-aos-duration="500"],body[data-aos-duration="500"] [data-aos]{transition-duration:.5s}[data-aos][data-aos][data-aos-delay="500"],body[data-aos-delay="500"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="500"].aos-animate,body[data-aos-delay="500"] [data-aos].aos-animate{transition-delay:.5s}[data-aos][data-aos][data-aos-duration="550"],body[data-aos-duration="550"] [data-aos]{transition-duration:.55s}[data-aos][data-aos][data-aos-delay="550"],body[data-aos-delay="550"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="550"].aos-animate,body[data-aos-delay="550"] [data-aos].aos-animate{transition-delay:.55s}[data-aos][data-aos][data-aos-duration="600"],body[data-aos-duration="600"] [data-aos]{transition-duration:.6s}[data-aos][data-aos][data-aos-delay="600"],body[data-aos-delay="600"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="600"].aos-animate,body[data-aos-delay="600"] [data-aos].aos-animate{transition-delay:.6s}[data-aos][data-aos][data-aos-duration="650"],body[data-aos-duration="650"] [data-aos]{transition-duration:.65s}[data-aos][data-aos][data-aos-delay="650"],body[data-aos-delay="650"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="650"].aos-animate,body[data-aos-delay="650"] [data-aos].aos-animate{transition-delay:.65s}[data-aos][data-aos][data-aos-duration="700"],body[data-aos-duration="700"] [data-aos]{transition-duration:.7s}[data-aos][data-aos][data-aos-delay="700"],body[data-aos-delay="700"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="700"].aos-animate,body[data-aos-delay="700"] [data-aos].aos-animate{transition-delay:.7s}[data-aos][data-aos][data-aos-duration="750"],body[data-aos-duration="750"] [data-aos]{transition-duration:.75s}[data-aos][data-aos][data-aos-delay="750"],body[data-aos-delay="750"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="750"].aos-animate,body[data-aos-delay="750"] [data-aos].aos-animate{transition-delay:.75s}[data-aos][data-aos][data-aos-duration="800"],body[data-aos-duration="800"] [data-aos]{transition-duration:.8s}[data-aos][data-aos][data-aos-delay="800"],body[data-aos-delay="800"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="800"].aos-animate,body[data-aos-delay="800"] [data-aos].aos-animate{transition-delay:.8s}[data-aos][data-aos][data-aos-duration="850"],body[data-aos-duration="850"] [data-aos]{transition-duration:.85s}[data-aos][data-aos][data-aos-delay="850"],body[data-aos-delay="850"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="850"].aos-animate,body[data-aos-delay="850"] [data-aos].aos-animate{transition-delay:.85s}[data-aos][data-aos][data-aos-duration="900"],body[data-aos-duration="900"] [data-aos]{transition-duration:.9s}[data-aos][data-aos][data-aos-delay="900"],body[data-aos-delay="900"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="900"].aos-animate,body[data-aos-delay="900"] [data-aos].aos-animate{transition-delay:.9s}[data-aos][data-aos][data-aos-duration="950"],body[data-aos-duration="950"] [data-aos]{transition-duration:.95s}[data-aos][data-aos][data-aos-delay="950"],body[data-aos-delay="950"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="950"].aos-animate,body[data-aos-delay="950"] [data-aos].aos-animate{transition-delay:.95s}[data-aos][data-aos][data-aos-duration="1000"],body[data-aos-duration="1000"] [data-aos]{transition-duration:1s}[data-aos][data-aos][data-aos-delay="1000"],body[data-aos-delay="1000"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1000"].aos-animate,body[data-aos-delay="1000"] [data-aos].aos-animate{transition-delay:1s}[data-aos][data-aos][data-aos-duration="1050"],body[data-aos-duration="1050"] [data-aos]{transition-duration:1.05s}[data-aos][data-aos][data-aos-delay="1050"],body[data-aos-delay="1050"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1050"].aos-animate,body[data-aos-delay="1050"] [data-aos].aos-animate{transition-delay:1.05s}[data-aos][data-aos][data-aos-duration="1100"],body[data-aos-duration="1100"] [data-aos]{transition-duration:1.1s}[data-aos][data-aos][data-aos-delay="1100"],body[data-aos-delay="1100"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1100"].aos-animate,body[data-aos-delay="1100"] [data-aos].aos-animate{transition-delay:1.1s}[data-aos][data-aos][data-aos-duration="1150"],body[data-aos-duration="1150"] [data-aos]{transition-duration:1.15s}[data-aos][data-aos][data-aos-delay="1150"],body[data-aos-delay="1150"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1150"].aos-animate,body[data-aos-delay="1150"] [data-aos].aos-animate{transition-delay:1.15s}[data-aos][data-aos][data-aos-duration="1200"],body[data-aos-duration="1200"] [data-aos]{transition-duration:1.2s}[data-aos][data-aos][data-aos-delay="1200"],body[data-aos-delay="1200"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1200"].aos-animate,body[data-aos-delay="1200"] [data-aos].aos-animate{transition-delay:1.2s}[data-aos][data-aos][data-aos-duration="1250"],body[data-aos-duration="1250"] [data-aos]{transition-duration:1.25s}[data-aos][data-aos][data-aos-delay="1250"],body[data-aos-delay="1250"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1250"].aos-animate,body[data-aos-delay="1250"] [data-aos].aos-animate{transition-delay:1.25s}[data-aos][data-aos][data-aos-duration="1300"],body[data-aos-duration="1300"] [data-aos]{transition-duration:1.3s}[data-aos][data-aos][data-aos-delay="1300"],body[data-aos-delay="1300"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1300"].aos-animate,body[data-aos-delay="1300"] [data-aos].aos-animate{transition-delay:1.3s}[data-aos][data-aos][data-aos-duration="1350"],body[data-aos-duration="1350"] [data-aos]{transition-duration:1.35s}[data-aos][data-aos][data-aos-delay="1350"],body[data-aos-delay="1350"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1350"].aos-animate,body[data-aos-delay="1350"] [data-aos].aos-animate{transition-delay:1.35s}[data-aos][data-aos][data-aos-duration="1400"],body[data-aos-duration="1400"] [data-aos]{transition-duration:1.4s}[data-aos][data-aos][data-aos-delay="1400"],body[data-aos-delay="1400"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1400"].aos-animate,body[data-aos-delay="1400"] [data-aos].aos-animate{transition-delay:1.4s}[data-aos][data-aos][data-aos-duration="1450"],body[data-aos-duration="1450"] [data-aos]{transition-duration:1.45s}[data-aos][data-aos][data-aos-delay="1450"],body[data-aos-delay="1450"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1450"].aos-animate,body[data-aos-delay="1450"] [data-aos].aos-animate{transition-delay:1.45s}[data-aos][data-aos][data-aos-duration="1500"],body[data-aos-duration="1500"] [data-aos]{transition-duration:1.5s}[data-aos][data-aos][data-aos-delay="1500"],body[data-aos-delay="1500"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1500"].aos-animate,body[data-aos-delay="1500"] [data-aos].aos-animate{transition-delay:1.5s}[data-aos][data-aos][data-aos-duration="1550"],body[data-aos-duration="1550"] [data-aos]{transition-duration:1.55s}[data-aos][data-aos][data-aos-delay="1550"],body[data-aos-delay="1550"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1550"].aos-animate,body[data-aos-delay="1550"] [data-aos].aos-animate{transition-delay:1.55s}[data-aos][data-aos][data-aos-duration="1600"],body[data-aos-duration="1600"] [data-aos]{transition-duration:1.6s}[data-aos][data-aos][data-aos-delay="1600"],body[data-aos-delay="1600"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1600"].aos-animate,body[data-aos-delay="1600"] [data-aos].aos-animate{transition-delay:1.6s}[data-aos][data-aos][data-aos-duration="1650"],body[data-aos-duration="1650"] [data-aos]{transition-duration:1.65s}[data-aos][data-aos][data-aos-delay="1650"],body[data-aos-delay="1650"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1650"].aos-animate,body[data-aos-delay="1650"] [data-aos].aos-animate{transition-delay:1.65s}[data-aos][data-aos][data-aos-duration="1700"],body[data-aos-duration="1700"] [data-aos]{transition-duration:1.7s}[data-aos][data-aos][data-aos-delay="1700"],body[data-aos-delay="1700"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1700"].aos-animate,body[data-aos-delay="1700"] [data-aos].aos-animate{transition-delay:1.7s}[data-aos][data-aos][data-aos-duration="1750"],body[data-aos-duration="1750"] [data-aos]{transition-duration:1.75s}[data-aos][data-aos][data-aos-delay="1750"],body[data-aos-delay="1750"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1750"].aos-animate,body[data-aos-delay="1750"] [data-aos].aos-animate{transition-delay:1.75s}[data-aos][data-aos][data-aos-duration="1800"],body[data-aos-duration="1800"] [data-aos]{transition-duration:1.8s}[data-aos][data-aos][data-aos-delay="1800"],body[data-aos-delay="1800"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1800"].aos-animate,body[data-aos-delay="1800"] [data-aos].aos-animate{transition-delay:1.8s}[data-aos][data-aos][data-aos-duration="1850"],body[data-aos-duration="1850"] [data-aos]{transition-duration:1.85s}[data-aos][data-aos][data-aos-delay="1850"],body[data-aos-delay="1850"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1850"].aos-animate,body[data-aos-delay="1850"] [data-aos].aos-animate{transition-delay:1.85s}[data-aos][data-aos][data-aos-duration="1900"],body[data-aos-duration="1900"] [data-aos]{transition-duration:1.9s}[data-aos][data-aos][data-aos-delay="1900"],body[data-aos-delay="1900"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1900"].aos-animate,body[data-aos-delay="1900"] [data-aos].aos-animate{transition-delay:1.9s}[data-aos][data-aos][data-aos-duration="1950"],body[data-aos-duration="1950"] [data-aos]{transition-duration:1.95s}[data-aos][data-aos][data-aos-delay="1950"],body[data-aos-delay="1950"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="1950"].aos-animate,body[data-aos-delay="1950"] [data-aos].aos-animate{transition-delay:1.95s}[data-aos][data-aos][data-aos-duration="2000"],body[data-aos-duration="2000"] [data-aos]{transition-duration:2s}[data-aos][data-aos][data-aos-delay="2000"],body[data-aos-delay="2000"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2000"].aos-animate,body[data-aos-delay="2000"] [data-aos].aos-animate{transition-delay:2s}[data-aos][data-aos][data-aos-duration="2050"],body[data-aos-duration="2050"] [data-aos]{transition-duration:2.05s}[data-aos][data-aos][data-aos-delay="2050"],body[data-aos-delay="2050"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2050"].aos-animate,body[data-aos-delay="2050"] [data-aos].aos-animate{transition-delay:2.05s}[data-aos][data-aos][data-aos-duration="2100"],body[data-aos-duration="2100"] [data-aos]{transition-duration:2.1s}[data-aos][data-aos][data-aos-delay="2100"],body[data-aos-delay="2100"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2100"].aos-animate,body[data-aos-delay="2100"] [data-aos].aos-animate{transition-delay:2.1s}[data-aos][data-aos][data-aos-duration="2150"],body[data-aos-duration="2150"] [data-aos]{transition-duration:2.15s}[data-aos][data-aos][data-aos-delay="2150"],body[data-aos-delay="2150"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2150"].aos-animate,body[data-aos-delay="2150"] [data-aos].aos-animate{transition-delay:2.15s}[data-aos][data-aos][data-aos-duration="2200"],body[data-aos-duration="2200"] [data-aos]{transition-duration:2.2s}[data-aos][data-aos][data-aos-delay="2200"],body[data-aos-delay="2200"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2200"].aos-animate,body[data-aos-delay="2200"] [data-aos].aos-animate{transition-delay:2.2s}[data-aos][data-aos][data-aos-duration="2250"],body[data-aos-duration="2250"] [data-aos]{transition-duration:2.25s}[data-aos][data-aos][data-aos-delay="2250"],body[data-aos-delay="2250"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2250"].aos-animate,body[data-aos-delay="2250"] [data-aos].aos-animate{transition-delay:2.25s}[data-aos][data-aos][data-aos-duration="2300"],body[data-aos-duration="2300"] [data-aos]{transition-duration:2.3s}[data-aos][data-aos][data-aos-delay="2300"],body[data-aos-delay="2300"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2300"].aos-animate,body[data-aos-delay="2300"] [data-aos].aos-animate{transition-delay:2.3s}[data-aos][data-aos][data-aos-duration="2350"],body[data-aos-duration="2350"] [data-aos]{transition-duration:2.35s}[data-aos][data-aos][data-aos-delay="2350"],body[data-aos-delay="2350"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2350"].aos-animate,body[data-aos-delay="2350"] [data-aos].aos-animate{transition-delay:2.35s}[data-aos][data-aos][data-aos-duration="2400"],body[data-aos-duration="2400"] [data-aos]{transition-duration:2.4s}[data-aos][data-aos][data-aos-delay="2400"],body[data-aos-delay="2400"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2400"].aos-animate,body[data-aos-delay="2400"] [data-aos].aos-animate{transition-delay:2.4s}[data-aos][data-aos][data-aos-duration="2450"],body[data-aos-duration="2450"] [data-aos]{transition-duration:2.45s}[data-aos][data-aos][data-aos-delay="2450"],body[data-aos-delay="2450"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2450"].aos-animate,body[data-aos-delay="2450"] [data-aos].aos-animate{transition-delay:2.45s}[data-aos][data-aos][data-aos-duration="2500"],body[data-aos-duration="2500"] [data-aos]{transition-duration:2.5s}[data-aos][data-aos][data-aos-delay="2500"],body[data-aos-delay="2500"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2500"].aos-animate,body[data-aos-delay="2500"] [data-aos].aos-animate{transition-delay:2.5s}[data-aos][data-aos][data-aos-duration="2550"],body[data-aos-duration="2550"] [data-aos]{transition-duration:2.55s}[data-aos][data-aos][data-aos-delay="2550"],body[data-aos-delay="2550"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2550"].aos-animate,body[data-aos-delay="2550"] [data-aos].aos-animate{transition-delay:2.55s}[data-aos][data-aos][data-aos-duration="2600"],body[data-aos-duration="2600"] [data-aos]{transition-duration:2.6s}[data-aos][data-aos][data-aos-delay="2600"],body[data-aos-delay="2600"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2600"].aos-animate,body[data-aos-delay="2600"] [data-aos].aos-animate{transition-delay:2.6s}[data-aos][data-aos][data-aos-duration="2650"],body[data-aos-duration="2650"] [data-aos]{transition-duration:2.65s}[data-aos][data-aos][data-aos-delay="2650"],body[data-aos-delay="2650"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2650"].aos-animate,body[data-aos-delay="2650"] [data-aos].aos-animate{transition-delay:2.65s}[data-aos][data-aos][data-aos-duration="2700"],body[data-aos-duration="2700"] [data-aos]{transition-duration:2.7s}[data-aos][data-aos][data-aos-delay="2700"],body[data-aos-delay="2700"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2700"].aos-animate,body[data-aos-delay="2700"] [data-aos].aos-animate{transition-delay:2.7s}[data-aos][data-aos][data-aos-duration="2750"],body[data-aos-duration="2750"] [data-aos]{transition-duration:2.75s}[data-aos][data-aos][data-aos-delay="2750"],body[data-aos-delay="2750"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2750"].aos-animate,body[data-aos-delay="2750"] [data-aos].aos-animate{transition-delay:2.75s}[data-aos][data-aos][data-aos-duration="2800"],body[data-aos-duration="2800"] [data-aos]{transition-duration:2.8s}[data-aos][data-aos][data-aos-delay="2800"],body[data-aos-delay="2800"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2800"].aos-animate,body[data-aos-delay="2800"] [data-aos].aos-animate{transition-delay:2.8s}[data-aos][data-aos][data-aos-duration="2850"],body[data-aos-duration="2850"] [data-aos]{transition-duration:2.85s}[data-aos][data-aos][data-aos-delay="2850"],body[data-aos-delay="2850"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2850"].aos-animate,body[data-aos-delay="2850"] [data-aos].aos-animate{transition-delay:2.85s}[data-aos][data-aos][data-aos-duration="2900"],body[data-aos-duration="2900"] [data-aos]{transition-duration:2.9s}[data-aos][data-aos][data-aos-delay="2900"],body[data-aos-delay="2900"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2900"].aos-animate,body[data-aos-delay="2900"] [data-aos].aos-animate{transition-delay:2.9s}[data-aos][data-aos][data-aos-duration="2950"],body[data-aos-duration="2950"] [data-aos]{transition-duration:2.95s}[data-aos][data-aos][data-aos-delay="2950"],body[data-aos-delay="2950"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="2950"].aos-animate,body[data-aos-delay="2950"] [data-aos].aos-animate{transition-delay:2.95s}[data-aos][data-aos][data-aos-duration="3000"],body[data-aos-duration="3000"] [data-aos]{transition-duration:3s}[data-aos][data-aos][data-aos-delay="3000"],body[data-aos-delay="3000"] [data-aos]{transition-delay:0}[data-aos][data-aos][data-aos-delay="3000"].aos-animate,body[data-aos-delay="3000"] [data-aos].aos-animate{transition-delay:3s}[data-aos][data-aos][data-aos-easing=linear],body[data-aos-easing=linear] [data-aos]{transition-timing-function:cubic-bezier(.25,.25,.75,.75)}[data-aos][data-aos][data-aos-easing=ease],body[data-aos-easing=ease] [data-aos]{transition-timing-function:ease}[data-aos][data-aos][data-aos-easing=ease-in],body[data-aos-easing=ease-in] [data-aos]{transition-timing-function:ease-in}[data-aos][data-aos][data-aos-easing=ease-out],body[data-aos-easing=ease-out] [data-aos]{transition-timing-function:ease-out}[data-aos][data-aos][data-aos-easing=ease-in-out],body[data-aos-easing=ease-in-out] [data-aos]{transition-timing-function:ease-in-out}[data-aos][data-aos][data-aos-easing=ease-in-back],body[data-aos-easing=ease-in-back] [data-aos]{transition-timing-function:cubic-bezier(.6,-.28,.735,.045)}[data-aos][data-aos][data-aos-easing=ease-out-back],body[data-aos-easing=ease-out-back] [data-aos]{transition-timing-function:cubic-bezier(.175,.885,.32,1.275)}[data-aos][data-aos][data-aos-easing=ease-in-out-back],body[data-aos-easing=ease-in-out-back] [data-aos]{transition-timing-function:cubic-bezier(.68,-.55,.265,1.55)}[data-aos][data-aos][data-aos-easing=ease-in-sine],body[data-aos-easing=ease-in-sine] [data-aos]{transition-timing-function:cubic-bezier(.47,0,.745,.715)}[data-aos][data-aos][data-aos-easing=ease-out-sine],body[data-aos-easing=ease-out-sine] [data-aos]{transition-timing-function:cubic-bezier(.39,.575,.565,1)}[data-aos][data-aos][data-aos-easing=ease-in-out-sine],body[data-aos-easing=ease-in-out-sine] [data-aos]{transition-timing-function:cubic-bezier(.445,.05,.55,.95)}[data-aos][data-aos][data-aos-easing=ease-in-quad],body[data-aos-easing=ease-in-quad] [data-aos]{transition-timing-function:cubic-bezier(.55,.085,.68,.53)}[data-aos][data-aos][data-aos-easing=ease-out-quad],body[data-aos-easing=ease-out-quad] [data-aos]{transition-timing-function:cubic-bezier(.25,.46,.45,.94)}[data-aos][data-aos][data-aos-easing=ease-in-out-quad],body[data-aos-easing=ease-in-out-quad] [data-aos]{transition-timing-function:cubic-bezier(.455,.03,.515,.955)}[data-aos][data-aos][data-aos-easing=ease-in-cubic],body[data-aos-easing=ease-in-cubic] [data-aos]{transition-timing-function:cubic-bezier(.55,.085,.68,.53)}[data-aos][data-aos][data-aos-easing=ease-out-cubic],body[data-aos-easing=ease-out-cubic] [data-aos]{transition-timing-function:cubic-bezier(.25,.46,.45,.94)}[data-aos][data-aos][data-aos-easing=ease-in-out-cubic],body[data-aos-easing=ease-in-out-cubic] [data-aos]{transition-timing-function:cubic-bezier(.455,.03,.515,.955)}[data-aos][data-aos][data-aos-easing=ease-in-quart],body[data-aos-easing=ease-in-quart] [data-aos]{transition-timing-function:cubic-bezier(.55,.085,.68,.53)}[data-aos][data-aos][data-aos-easing=ease-out-quart],body[data-aos-easing=ease-out-quart] [data-aos]{transition-timing-function:cubic-bezier(.25,.46,.45,.94)}[data-aos][data-aos][data-aos-easing=ease-in-out-quart],body[data-aos-easing=ease-in-out-quart] [data-aos]{transition-timing-function:cubic-bezier(.455,.03,.515,.955)}[data-aos^=fade][data-aos^=fade]{opacity:0;transition-property:opacity,transform}[data-aos^=fade][data-aos^=fade].aos-animate{opacity:1;transform:translateZ(0)}[data-aos=fade-up]{transform:translate3d(0,100px,0)}[data-aos=fade-down]{transform:translate3d(0,-100px,0)}[data-aos=fade-right]{transform:translate3d(-100px,0,0)}[data-aos=fade-left]{transform:translate3d(100px,0,0)}[data-aos=fade-up-right]{transform:translate3d(-100px,100px,0)}[data-aos=fade-up-left]{transform:translate3d(100px,100px,0)}[data-aos=fade-down-right]{transform:translate3d(-100px,-100px,0)}[data-aos=fade-down-left]{transform:translate3d(100px,-100px,0)}[data-aos^=zoom][data-aos^=zoom]{opacity:0;transition-property:opacity,transform}[data-aos^=zoom][data-aos^=zoom].aos-animate{opacity:1;transform:translateZ(0) scale(1)}[data-aos=zoom-in]{transform:scale(.6)}[data-aos=zoom-in-up]{transform:translate3d(0,100px,0) scale(.6)}[data-aos=zoom-in-down]{transform:translate3d(0,-100px,0) scale(.6)}[data-aos=zoom-in-right]{transform:translate3d(-100px,0,0) scale(.6)}[data-aos=zoom-in-left]{transform:translate3d(100px,0,0) scale(.6)}[data-aos=zoom-out]{transform:scale(1.2)}[data-aos=zoom-out-up]{transform:translate3d(0,100px,0) scale(1.2)}[data-aos=zoom-out-down]{transform:translate3d(0,-100px,0) scale(1.2)}[data-aos=zoom-out-right]{transform:translate3d(-100px,0,0) scale(1.2)}[data-aos=zoom-out-left]{transform:translate3d(100px,0,0) scale(1.2)}[data-aos^=slide][data-aos^=slide]{transition-property:transform}[data-aos^=slide][data-aos^=slide].aos-animate{transform:translateZ(0)}[data-aos=slide-up]{transform:translate3d(0,100%,0)}[data-aos=slide-down]{transform:translate3d(0,-100%,0)}[data-aos=slide-right]{transform:translate3d(-100%,0,0)}[data-aos=slide-left]{transform:translate3d(100%,0,0)}[data-aos^=flip][data-aos^=flip]{backface-visibility:hidden;transition-property:transform}[data-aos=flip-left]{transform:perspective(2500px) rotateY(-100deg)}[data-aos=flip-left].aos-animate{transform:perspective(2500px) rotateY(0)}[data-aos=flip-right]{transform:perspective(2500px) rotateY(100deg)}[data-aos=flip-right].aos-animate{transform:perspective(2500px) rotateY(0)}[data-aos=flip-up]{transform:perspective(2500px) rotateX(-100deg)}[data-aos=flip-up].aos-animate{transform:perspective(2500px) rotateX(0)}[data-aos=flip-down]{transform:perspective(2500px) rotateX(100deg)}[data-aos=flip-down].aos-animate{transform:perspective(2500px) rotateX(0)} \ No newline at end of file diff --git a/wp-content/themes/chromax/assets/vendors/css/jquery.fancybox.css b/wp-content/themes/chromax/assets/vendors/css/jquery.fancybox.css new file mode 100644 index 0000000..ea643b5 --- /dev/null +++ b/wp-content/themes/chromax/assets/vendors/css/jquery.fancybox.css @@ -0,0 +1,869 @@ +@charset "UTF-8"; +body.fancybox-active { + overflow: hidden +} + +body.fancybox-iosfix { + position: fixed; + left: 0; + right: 0 +} + +.fancybox-is-hidden { + position: absolute; + top: -9999px; + left: -9999px; + visibility: hidden +} + +.fancybox-container { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 99992; + -webkit-tap-highlight-color: transparent; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-transform: translateZ(0); + transform: translateZ(0); + font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif +} + +.fancybox-bg, +.fancybox-inner, +.fancybox-outer, +.fancybox-stage { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0 +} + +.fancybox-outer { + overflow-y: auto; + -webkit-overflow-scrolling: touch +} + +.fancybox-bg { + background: #1e1e1e; + opacity: 0; + transition-duration: inherit; + transition-property: opacity; + transition-timing-function: cubic-bezier(.47, 0, .74, .71) +} + +.fancybox-is-open .fancybox-bg { + opacity: .87; + transition-timing-function: cubic-bezier(.22, .61, .36, 1) +} + +.fancybox-caption-wrap, +.fancybox-infobar, +.fancybox-toolbar { + position: absolute; + direction: ltr; + z-index: 99997; + opacity: 0; + visibility: hidden; + transition: opacity .25s, visibility 0s linear .25s; + box-sizing: border-box +} + +.fancybox-show-caption .fancybox-caption-wrap, +.fancybox-show-infobar .fancybox-infobar, +.fancybox-show-toolbar .fancybox-toolbar { + opacity: 1; + visibility: visible; + transition: opacity .25s, visibility 0s +} + +.fancybox-infobar { + top: 0; + left: 0; + font-size: 13px; + padding: 0 10px; + height: 44px; + min-width: 44px; + line-height: 44px; + color: #ccc; + text-align: center; + pointer-events: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -webkit-touch-callout: none; + -webkit-tap-highlight-color: transparent; + -webkit-font-smoothing: subpixel-antialiased; + mix-blend-mode: exclusion +} + +.fancybox-toolbar { + top: 0; + right: 0; + margin: 0; + padding: 0 +} + +.fancybox-stage { + overflow: hidden; + direction: ltr; + z-index: 99994; + -webkit-transform: translateZ(0) +} + +.fancybox-is-closing .fancybox-stage { + overflow: visible +} + +.fancybox-slide { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + margin: 0; + padding: 0; + overflow: auto; + outline: none; + white-space: normal; + box-sizing: border-box; + text-align: center; + z-index: 99994; + -webkit-overflow-scrolling: touch; + display: none; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + transition-property: opacity, -webkit-transform; + transition-property: transform, opacity; + transition-property: transform, opacity, -webkit-transform +} + +.fancybox-slide:before { + content: ""; + display: inline-block; + vertical-align: middle; + height: 100%; + width: 0 +} + +.fancybox-is-sliding .fancybox-slide, +.fancybox-slide--current, +.fancybox-slide--next, +.fancybox-slide--previous { + display: block +} + +.fancybox-slide--image { + overflow: visible +} + +.fancybox-slide--image:before { + display: none +} + +.fancybox-slide--video .fancybox-content, +.fancybox-slide--video iframe { + background: #000 +} + +.fancybox-slide--map .fancybox-content, +.fancybox-slide--map iframe { + background: #e5e3df +} + +.fancybox-slide--next { + z-index: 99995 +} + +.fancybox-slide>* { + display: inline-block; + position: relative; + padding: 24px; + margin: 44px 0; + border-width: 0; + vertical-align: middle; + text-align: start; + background-color: #fff; + overflow: auto; + box-sizing: border-box +} + +.fancybox-slide>base, +.fancybox-slide>link, +.fancybox-slide>meta, +.fancybox-slide>script, +.fancybox-slide>style, +.fancybox-slide>title { + display: none +} + +.fancybox-slide .fancybox-image-wrap { + position: absolute; + top: 0; + left: 0; + margin: 0; + padding: 0; + border: 0; + z-index: 99995; + background: transparent; + cursor: default; + overflow: visible; + -webkit-transform-origin: top left; + transform-origin: top left; + background-size: 100% 100%; + background-repeat: no-repeat; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + transition-property: opacity, -webkit-transform; + transition-property: transform, opacity; + transition-property: transform, opacity, -webkit-transform +} + +.fancybox-can-zoomOut .fancybox-image-wrap { + cursor: zoom-out +} + +.fancybox-can-zoomIn .fancybox-image-wrap { + cursor: zoom-in +} + +.fancybox-can-drag .fancybox-image-wrap { + cursor: -webkit-grab; + cursor: grab +} + +.fancybox-is-dragging .fancybox-image-wrap { + cursor: -webkit-grabbing; + cursor: grabbing +} + +.fancybox-image, +.fancybox-spaceball { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + margin: 0; + padding: 0; + border: 0; + max-width: none; + max-height: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none +} + +.fancybox-spaceball { + z-index: 1 +} + +.fancybox-slide--iframe .fancybox-content { + padding: 0; + width: 80%; + height: 80%; + max-width: calc(100% - 100px); + max-height: calc(100% - 88px); + overflow: visible; + background: #fff +} + +.fancybox-iframe { + display: block; + padding: 0; + border: 0; + height: 100% +} + +.fancybox-error, +.fancybox-iframe { + margin: 0; + width: 100%; + background: #fff +} + +.fancybox-error { + padding: 40px; + max-width: 380px; + cursor: default +} + +.fancybox-error p { + margin: 0; + padding: 0; + color: #444; + font-size: 16px; + line-height: 20px +} + +.fancybox-button { + box-sizing: border-box; + display: inline-block; + vertical-align: top; + width: 44px; + height: 44px; + margin: 0; + padding: 10px; + border: 0; + border-radius: 0; + background: rgba(30, 30, 30, .6); + transition: color .3s ease; + cursor: pointer; + outline: none +} + +.fancybox-button, +.fancybox-button:link, +.fancybox-button:visited { + color: #ccc +} + +.fancybox-button:focus, +.fancybox-button:hover { + color: #fff +} + +.fancybox-button[disabled] { + color: #ccc; + cursor: default; + opacity: .6 +} + +.fancybox-button svg { + display: block; + position: relative; + overflow: visible; + shape-rendering: geometricPrecision +} + +.fancybox-button svg path { + fill: currentColor; + stroke: currentColor; + stroke-linejoin: round; + stroke-width: 3 +} + +.fancybox-button--share svg path { + stroke-width: 1 +} + +.fancybox-button--pause svg path:nth-child(1), +.fancybox-button--play svg path:nth-child(2) { + display: none +} + +.fancybox-button--zoom svg path { + fill: transparent +} + +.fancybox-navigation { + display: none +} + +.fancybox-show-nav .fancybox-navigation { + display: block +} + +.fancybox-navigation button { + position: absolute; + top: 50%; + margin: -50px 0 0; + z-index: 99997; + background: transparent; + width: 60px; + height: 100px; + padding: 17px +} + +.fancybox-navigation button:before { + content: ""; + position: absolute; + top: 30px; + right: 10px; + width: 40px; + height: 40px; + background: rgba(30, 30, 30, .6) +} + +.fancybox-navigation .fancybox-button--arrow_left { + left: 0 +} + +.fancybox-navigation .fancybox-button--arrow_right { + right: 0 +} + +.fancybox-close-small { + position: absolute; + top: 0; + right: 0; + width: 40px; + height: 40px; + padding: 0; + margin: 0; + border: 0; + border-radius: 0; + background: transparent; + z-index: 10; + cursor: pointer +} + +.fancybox-close-small:after { + content: "×"; + position: absolute; + top: 5px; + right: 5px; + width: 30px; + height: 30px; + font: 22px/30px Arial, Helvetica Neue, Helvetica, sans-serif; + color: #888; + font-weight: 300; + text-align: center; + border-radius: 50%; + border-width: 0; + background-color: transparent; + transition: background-color .25s; + box-sizing: border-box; + z-index: 2 +} + +.fancybox-close-small:focus { + outline: none +} + +.fancybox-close-small:focus:after { + outline: 1px dotted #888 +} + +.fancybox-close-small:hover:after { + color: #555; + background: #eee +} + +.fancybox-slide--iframe .fancybox-close-small, +.fancybox-slide--image .fancybox-close-small { + top: 0; + right: -40px +} + +.fancybox-slide--iframe .fancybox-close-small:after, +.fancybox-slide--image .fancybox-close-small:after { + font-size: 35px; + color: #aaa +} + +.fancybox-slide--iframe .fancybox-close-small:hover:after, +.fancybox-slide--image .fancybox-close-small:hover:after { + color: #fff; + background: transparent +} + +.fancybox-is-scaling .fancybox-close-small, +.fancybox-is-zoomable.fancybox-can-drag .fancybox-close-small { + display: none +} + +.fancybox-caption-wrap { + bottom: 0; + left: 0; + right: 0; + padding: 60px 2vw 0; + background: linear-gradient(180deg, transparent 0, rgba(0, 0, 0, .1) 20%, rgba(0, 0, 0, .2) 40%, rgba(0, 0, 0, .6) 80%, rgba(0, 0, 0, .8)); + pointer-events: none +} + +.fancybox-caption { + padding: 30px 0; + border-top: 1px solid hsla(0, 0%, 100%, .4); + font-size: 14px; + color: #fff; + line-height: 20px; + -webkit-text-size-adjust: none +} + +.fancybox-caption a, +.fancybox-caption button, +.fancybox-caption select { + pointer-events: all; + position: relative +} + +.fancybox-caption a { + color: #fff; + text-decoration: underline +} + +.fancybox-slide>.fancybox-loading { + border: 6px solid hsla(0, 0%, 39%, .4); + border-top: 6px solid hsla(0, 0%, 100%, .6); + border-radius: 100%; + height: 50px; + width: 50px; + -webkit-animation: a .8s infinite linear; + animation: a .8s infinite linear; + background: transparent; + position: absolute; + top: 50%; + left: 50%; + margin-top: -30px; + margin-left: -30px; + z-index: 99999 +} + +@-webkit-keyframes a { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg) + } + to { + -webkit-transform: rotate(359deg); + transform: rotate(359deg) + } +} + +@keyframes a { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg) + } + to { + -webkit-transform: rotate(359deg); + transform: rotate(359deg) + } +} + +.fancybox-animated { + transition-timing-function: cubic-bezier(0, 0, .25, 1) +} + +.fancybox-fx-slide.fancybox-slide--previous { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + opacity: 0 +} + +.fancybox-fx-slide.fancybox-slide--next { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + opacity: 0 +} + +.fancybox-fx-slide.fancybox-slide--current { + -webkit-transform: translateZ(0); + transform: translateZ(0); + opacity: 1 +} + +.fancybox-fx-fade.fancybox-slide--next, +.fancybox-fx-fade.fancybox-slide--previous { + opacity: 0; + transition-timing-function: cubic-bezier(.19, 1, .22, 1) +} + +.fancybox-fx-fade.fancybox-slide--current { + opacity: 1 +} + +.fancybox-fx-zoom-in-out.fancybox-slide--previous { + -webkit-transform: scale3d(1.5, 1.5, 1.5); + transform: scale3d(1.5, 1.5, 1.5); + opacity: 0 +} + +.fancybox-fx-zoom-in-out.fancybox-slide--next { + -webkit-transform: scale3d(.5, .5, .5); + transform: scale3d(.5, .5, .5); + opacity: 0 +} + +.fancybox-fx-zoom-in-out.fancybox-slide--current { + -webkit-transform: scaleX(1); + transform: scaleX(1); + opacity: 1 +} + +.fancybox-fx-rotate.fancybox-slide--previous { + -webkit-transform: rotate(-1turn); + transform: rotate(-1turn); + opacity: 0 +} + +.fancybox-fx-rotate.fancybox-slide--next { + -webkit-transform: rotate(1turn); + transform: rotate(1turn); + opacity: 0 +} + +.fancybox-fx-rotate.fancybox-slide--current { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + opacity: 1 +} + +.fancybox-fx-circular.fancybox-slide--previous { + -webkit-transform: scale3d(0, 0, 0) translate3d(-100%, 0, 0); + transform: scale3d(0, 0, 0) translate3d(-100%, 0, 0); + opacity: 0 +} + +.fancybox-fx-circular.fancybox-slide--next { + -webkit-transform: scale3d(0, 0, 0) translate3d(100%, 0, 0); + transform: scale3d(0, 0, 0) translate3d(100%, 0, 0); + opacity: 0 +} + +.fancybox-fx-circular.fancybox-slide--current { + -webkit-transform: scaleX(1) translateZ(0); + transform: scaleX(1) translateZ(0); + opacity: 1 +} + +.fancybox-fx-tube.fancybox-slide--previous { + -webkit-transform: translate3d(-100%, 0, 0) scale(.1) skew(-10deg); + transform: translate3d(-100%, 0, 0) scale(.1) skew(-10deg) +} + +.fancybox-fx-tube.fancybox-slide--next { + -webkit-transform: translate3d(100%, 0, 0) scale(.1) skew(10deg); + transform: translate3d(100%, 0, 0) scale(.1) skew(10deg) +} + +.fancybox-fx-tube.fancybox-slide--current { + -webkit-transform: translateZ(0) scale(1); + transform: translateZ(0) scale(1) +} + +.fancybox-share { + padding: 30px; + border-radius: 3px; + background: #f4f4f4; + max-width: 90%; + text-align: center +} + +.fancybox-share h1 { + color: #222; + margin: 0 0 20px; + font-size: 35px; + font-weight: 700 +} + +.fancybox-share p { + margin: 0; + padding: 0 +} + +p.fancybox-share__links { + margin-right: -10px +} + +.fancybox-share__button { + display: inline-block; + text-decoration: none; + margin: 0 10px 10px 0; + padding: 0 15px; + min-width: 130px; + border: 0; + border-radius: 3px; + background: #fff; + white-space: nowrap; + font-size: 14px; + font-weight: 700; + line-height: 40px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + color: #fff; + transition: all .2s +} + +.fancybox-share__button:hover { + text-decoration: none +} + +.fancybox-share__button--fb { + background: #3b5998 +} + +.fancybox-share__button--fb:hover { + background: #344e86 +} + +.fancybox-share__button--pt { + background: #bd081d +} + +.fancybox-share__button--pt:hover { + background: #aa0719 +} + +.fancybox-share__button--tw { + background: #1da1f2 +} + +.fancybox-share__button--tw:hover { + background: #0d95e8 +} + +.fancybox-share__button svg { + position: relative; + top: -1px; + width: 25px; + height: 25px; + margin-right: 7px; + vertical-align: middle +} + +.fancybox-share__button svg path { + fill: #fff +} + +.fancybox-share__input { + box-sizing: border-box; + width: 100%; + margin: 10px 0 0; + padding: 10px 15px; + background: transparent; + color: #5d5b5b; + font-size: 14px; + outline: none; + border: 0; + border-bottom: 2px solid #d7d7d7 +} + +.fancybox-thumbs { + display: none; + position: absolute; + top: 0; + bottom: 0; + right: 0; + width: 212px; + margin: 0; + padding: 2px 2px 4px; + background: #fff; + -webkit-tap-highlight-color: transparent; + -webkit-overflow-scrolling: touch; + -ms-overflow-style: -ms-autohiding-scrollbar; + box-sizing: border-box; + z-index: 99995 +} + +.fancybox-thumbs-x { + overflow-y: hidden; + overflow-x: auto +} + +.fancybox-show-thumbs .fancybox-thumbs { + display: block +} + +.fancybox-show-thumbs .fancybox-inner { + right: 212px +} + +.fancybox-thumbs>ul { + list-style: none; + position: absolute; + position: relative; + width: 100%; + height: 100%; + margin: 0; + padding: 0; + overflow-x: hidden; + overflow-y: auto; + font-size: 0; + white-space: nowrap +} + +.fancybox-thumbs-x>ul { + overflow: hidden +} + +.fancybox-thumbs-y>ul::-webkit-scrollbar { + width: 7px +} + +.fancybox-thumbs-y>ul::-webkit-scrollbar-track { + background: #fff; + border-radius: 10px; + box-shadow: inset 0 0 6px rgba(0, 0, 0, .3) +} + +.fancybox-thumbs-y>ul::-webkit-scrollbar-thumb { + background: #2a2a2a; + border-radius: 10px +} + +.fancybox-thumbs>ul>li { + float: left; + overflow: hidden; + padding: 0; + margin: 2px; + width: 100px; + height: 75px; + max-width: calc(50% - 4px); + max-height: calc(100% - 8px); + position: relative; + cursor: pointer; + outline: none; + -webkit-tap-highlight-color: transparent; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + box-sizing: border-box +} + +li.fancybox-thumbs-loading { + background: rgba(0, 0, 0, .1) +} + +.fancybox-thumbs>ul>li>img { + position: absolute; + top: 0; + left: 0; + max-width: none; + max-height: none; + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none +} + +.fancybox-thumbs>ul>li:before { + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + border: 4px solid #4ea7f9; + z-index: 99991; + opacity: 0; + transition: all .2s cubic-bezier(.25, .46, .45, .94) +} + +.fancybox-thumbs>ul>li.fancybox-thumbs-active:before { + opacity: 1 +} + +@media (max-width:800px) { + .fancybox-thumbs { + width: 110px + } + .fancybox-show-thumbs .fancybox-inner { + right: 110px + } + .fancybox-thumbs>ul>li { + max-width: calc(100% - 10px) + } +} \ No newline at end of file diff --git a/wp-content/themes/chromax/assets/vendors/css/jquery.fancybox.min.css b/wp-content/themes/chromax/assets/vendors/css/jquery.fancybox.min.css new file mode 100644 index 0000000..cee011d --- /dev/null +++ b/wp-content/themes/chromax/assets/vendors/css/jquery.fancybox.min.css @@ -0,0 +1 @@ +@charset "UTF-8";body.fancybox-active{overflow:hidden}body.fancybox-iosfix{position:fixed;left:0;right:0}.fancybox-is-hidden{position:absolute;top:-9999px;left:-9999px;visibility:hidden}.fancybox-container{position:fixed;top:0;left:0;width:100%;height:100%;z-index:99992;-webkit-tap-highlight-color:transparent;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translateZ(0);transform:translateZ(0);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-stage{position:absolute;top:0;right:0;bottom:0;left:0}.fancybox-outer{overflow-y:auto;-webkit-overflow-scrolling:touch}.fancybox-bg{background:#1e1e1e;opacity:0;transition-duration:inherit;transition-property:opacity;transition-timing-function:cubic-bezier(.47,0,.74,.71)}.fancybox-is-open .fancybox-bg{opacity:.87;transition-timing-function:cubic-bezier(.22,.61,.36,1)}.fancybox-caption-wrap,.fancybox-infobar,.fancybox-toolbar{position:absolute;direction:ltr;z-index:99997;opacity:0;visibility:hidden;transition:opacity .25s,visibility 0s linear .25s;box-sizing:border-box}.fancybox-show-caption .fancybox-caption-wrap,.fancybox-show-infobar .fancybox-infobar,.fancybox-show-toolbar .fancybox-toolbar{opacity:1;visibility:visible;transition:opacity .25s,visibility 0s}.fancybox-infobar{top:0;left:0;font-size:13px;padding:0 10px;height:44px;min-width:44px;line-height:44px;color:#ccc;text-align:center;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:subpixel-antialiased;mix-blend-mode:exclusion}.fancybox-toolbar{top:0;right:0;margin:0;padding:0}.fancybox-stage{overflow:hidden;direction:ltr;z-index:99994;-webkit-transform:translateZ(0)}.fancybox-is-closing .fancybox-stage{overflow:visible}.fancybox-slide{position:absolute;top:0;left:0;width:100%;height:100%;margin:0;padding:0;overflow:auto;outline:none;white-space:normal;box-sizing:border-box;text-align:center;z-index:99994;-webkit-overflow-scrolling:touch;display:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform}.fancybox-slide:before{content:"";display:inline-block;vertical-align:middle;height:100%;width:0}.fancybox-is-sliding .fancybox-slide,.fancybox-slide--current,.fancybox-slide--next,.fancybox-slide--previous{display:block}.fancybox-slide--image{overflow:visible}.fancybox-slide--image:before{display:none}.fancybox-slide--video .fancybox-content,.fancybox-slide--video iframe{background:#000}.fancybox-slide--map .fancybox-content,.fancybox-slide--map iframe{background:#e5e3df}.fancybox-slide--next{z-index:99995}.fancybox-slide>*{display:inline-block;position:relative;padding:24px;margin:44px 0;border-width:0;vertical-align:middle;text-align:start;background-color:#fff;overflow:auto;box-sizing:border-box}.fancybox-slide>base,.fancybox-slide>link,.fancybox-slide>meta,.fancybox-slide>script,.fancybox-slide>style,.fancybox-slide>title{display:none}.fancybox-slide .fancybox-image-wrap{position:absolute;top:0;left:0;margin:0;padding:0;border:0;z-index:99995;background:transparent;cursor:default;overflow:visible;-webkit-transform-origin:top left;transform-origin:top left;background-size:100% 100%;background-repeat:no-repeat;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform}.fancybox-can-zoomOut .fancybox-image-wrap{cursor:zoom-out}.fancybox-can-zoomIn .fancybox-image-wrap{cursor:zoom-in}.fancybox-can-drag .fancybox-image-wrap{cursor:-webkit-grab;cursor:grab}.fancybox-is-dragging .fancybox-image-wrap{cursor:-webkit-grabbing;cursor:grabbing}.fancybox-image,.fancybox-spaceball{position:absolute;top:0;left:0;width:100%;height:100%;margin:0;padding:0;border:0;max-width:none;max-height:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.fancybox-spaceball{z-index:1}.fancybox-slide--iframe .fancybox-content{padding:0;width:80%;height:80%;max-width:calc(100% - 100px);max-height:calc(100% - 88px);overflow:visible;background:#fff}.fancybox-iframe{display:block;padding:0;border:0;height:100%}.fancybox-error,.fancybox-iframe{margin:0;width:100%;background:#fff}.fancybox-error{padding:40px;max-width:380px;cursor:default}.fancybox-error p{margin:0;padding:0;color:#444;font-size:16px;line-height:20px}.fancybox-button{box-sizing:border-box;display:inline-block;vertical-align:top;width:44px;height:44px;margin:0;padding:10px;border:0;border-radius:0;background:rgba(30,30,30,.6);transition:color .3s ease;cursor:pointer;outline:none}.fancybox-button,.fancybox-button:link,.fancybox-button:visited{color:#ccc}.fancybox-button:focus,.fancybox-button:hover{color:#fff}.fancybox-button[disabled]{color:#ccc;cursor:default;opacity:.6}.fancybox-button svg{display:block;position:relative;overflow:visible;shape-rendering:geometricPrecision}.fancybox-button svg path{fill:currentColor;stroke:currentColor;stroke-linejoin:round;stroke-width:3}.fancybox-button--share svg path{stroke-width:1}.fancybox-button--pause svg path:nth-child(1),.fancybox-button--play svg path:nth-child(2){display:none}.fancybox-button--zoom svg path{fill:transparent}.fancybox-navigation{display:none}.fancybox-show-nav .fancybox-navigation{display:block}.fancybox-navigation button{position:absolute;top:50%;margin:-50px 0 0;z-index:99997;background:transparent;width:60px;height:100px;padding:17px}.fancybox-navigation button:before{content:"";position:absolute;top:30px;right:10px;width:40px;height:40px;background:rgba(30,30,30,.6)}.fancybox-navigation .fancybox-button--arrow_left{left:0}.fancybox-navigation .fancybox-button--arrow_right{right:0}.fancybox-close-small{position:absolute;top:0;right:0;width:40px;height:40px;padding:0;margin:0;border:0;border-radius:0;background:transparent;z-index:10;cursor:pointer}.fancybox-close-small:after{content:"×";position:absolute;top:5px;right:5px;width:30px;height:30px;font:22px/30px Arial,Helvetica Neue,Helvetica,sans-serif;color:#888;font-weight:300;text-align:center;border-radius:50%;border-width:0;background-color:transparent;transition:background-color .25s;box-sizing:border-box;z-index:2}.fancybox-close-small:focus{outline:none}.fancybox-close-small:focus:after{outline:1px dotted #888}.fancybox-close-small:hover:after{color:#555;background:#eee}.fancybox-slide--iframe .fancybox-close-small,.fancybox-slide--image .fancybox-close-small{top:0;right:-40px}.fancybox-slide--iframe .fancybox-close-small:after,.fancybox-slide--image .fancybox-close-small:after{font-size:35px;color:#aaa}.fancybox-slide--iframe .fancybox-close-small:hover:after,.fancybox-slide--image .fancybox-close-small:hover:after{color:#fff;background:transparent}.fancybox-is-scaling .fancybox-close-small,.fancybox-is-zoomable.fancybox-can-drag .fancybox-close-small{display:none}.fancybox-caption-wrap{bottom:0;left:0;right:0;padding:60px 2vw 0;background:linear-gradient(180deg,transparent 0,rgba(0,0,0,.1) 20%,rgba(0,0,0,.2) 40%,rgba(0,0,0,.6) 80%,rgba(0,0,0,.8));pointer-events:none}.fancybox-caption{padding:30px 0;border-top:1px solid hsla(0,0%,100%,.4);font-size:14px;color:#fff;line-height:20px;-webkit-text-size-adjust:none}.fancybox-caption a,.fancybox-caption button,.fancybox-caption select{pointer-events:all;position:relative}.fancybox-caption a{color:#fff;text-decoration:underline}.fancybox-slide>.fancybox-loading{border:6px solid hsla(0,0%,39%,.4);border-top:6px solid hsla(0,0%,100%,.6);border-radius:100%;height:50px;width:50px;-webkit-animation:a .8s infinite linear;animation:a .8s infinite linear;background:transparent;position:absolute;top:50%;left:50%;margin-top:-30px;margin-left:-30px;z-index:99999}@-webkit-keyframes a{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes a{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fancybox-animated{transition-timing-function:cubic-bezier(0,0,.25,1)}.fancybox-fx-slide.fancybox-slide--previous{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);opacity:0}.fancybox-fx-slide.fancybox-slide--next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);opacity:0}.fancybox-fx-slide.fancybox-slide--current{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}.fancybox-fx-fade.fancybox-slide--next,.fancybox-fx-fade.fancybox-slide--previous{opacity:0;transition-timing-function:cubic-bezier(.19,1,.22,1)}.fancybox-fx-fade.fancybox-slide--current{opacity:1}.fancybox-fx-zoom-in-out.fancybox-slide--previous{-webkit-transform:scale3d(1.5,1.5,1.5);transform:scale3d(1.5,1.5,1.5);opacity:0}.fancybox-fx-zoom-in-out.fancybox-slide--next{-webkit-transform:scale3d(.5,.5,.5);transform:scale3d(.5,.5,.5);opacity:0}.fancybox-fx-zoom-in-out.fancybox-slide--current{-webkit-transform:scaleX(1);transform:scaleX(1);opacity:1}.fancybox-fx-rotate.fancybox-slide--previous{-webkit-transform:rotate(-1turn);transform:rotate(-1turn);opacity:0}.fancybox-fx-rotate.fancybox-slide--next{-webkit-transform:rotate(1turn);transform:rotate(1turn);opacity:0}.fancybox-fx-rotate.fancybox-slide--current{-webkit-transform:rotate(0deg);transform:rotate(0deg);opacity:1}.fancybox-fx-circular.fancybox-slide--previous{-webkit-transform:scale3d(0,0,0) translate3d(-100%,0,0);transform:scale3d(0,0,0) translate3d(-100%,0,0);opacity:0}.fancybox-fx-circular.fancybox-slide--next{-webkit-transform:scale3d(0,0,0) translate3d(100%,0,0);transform:scale3d(0,0,0) translate3d(100%,0,0);opacity:0}.fancybox-fx-circular.fancybox-slide--current{-webkit-transform:scaleX(1) translateZ(0);transform:scaleX(1) translateZ(0);opacity:1}.fancybox-fx-tube.fancybox-slide--previous{-webkit-transform:translate3d(-100%,0,0) scale(.1) skew(-10deg);transform:translate3d(-100%,0,0) scale(.1) skew(-10deg)}.fancybox-fx-tube.fancybox-slide--next{-webkit-transform:translate3d(100%,0,0) scale(.1) skew(10deg);transform:translate3d(100%,0,0) scale(.1) skew(10deg)}.fancybox-fx-tube.fancybox-slide--current{-webkit-transform:translateZ(0) scale(1);transform:translateZ(0) scale(1)}.fancybox-share{padding:30px;border-radius:3px;background:#f4f4f4;max-width:90%;text-align:center}.fancybox-share h1{color:#222;margin:0 0 20px;font-size:35px;font-weight:700}.fancybox-share p{margin:0;padding:0}p.fancybox-share__links{margin-right:-10px}.fancybox-share__button{display:inline-block;text-decoration:none;margin:0 10px 10px 0;padding:0 15px;min-width:130px;border:0;border-radius:3px;background:#fff;white-space:nowrap;font-size:14px;font-weight:700;line-height:40px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:#fff;transition:all .2s}.fancybox-share__button:hover{text-decoration:none}.fancybox-share__button--fb{background:#3b5998}.fancybox-share__button--fb:hover{background:#344e86}.fancybox-share__button--pt{background:#bd081d}.fancybox-share__button--pt:hover{background:#aa0719}.fancybox-share__button--tw{background:#1da1f2}.fancybox-share__button--tw:hover{background:#0d95e8}.fancybox-share__button svg{position:relative;top:-1px;width:25px;height:25px;margin-right:7px;vertical-align:middle}.fancybox-share__button svg path{fill:#fff}.fancybox-share__input{box-sizing:border-box;width:100%;margin:10px 0 0;padding:10px 15px;background:transparent;color:#5d5b5b;font-size:14px;outline:none;border:0;border-bottom:2px solid #d7d7d7}.fancybox-thumbs{display:none;position:absolute;top:0;bottom:0;right:0;width:212px;margin:0;padding:2px 2px 4px;background:#fff;-webkit-tap-highlight-color:transparent;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;box-sizing:border-box;z-index:99995}.fancybox-thumbs-x{overflow-y:hidden;overflow-x:auto}.fancybox-show-thumbs .fancybox-thumbs{display:block}.fancybox-show-thumbs .fancybox-inner{right:212px}.fancybox-thumbs>ul{list-style:none;position:absolute;position:relative;width:100%;height:100%;margin:0;padding:0;overflow-x:hidden;overflow-y:auto;font-size:0;white-space:nowrap}.fancybox-thumbs-x>ul{overflow:hidden}.fancybox-thumbs-y>ul::-webkit-scrollbar{width:7px}.fancybox-thumbs-y>ul::-webkit-scrollbar-track{background:#fff;border-radius:10px;box-shadow:inset 0 0 6px rgba(0,0,0,.3)}.fancybox-thumbs-y>ul::-webkit-scrollbar-thumb{background:#2a2a2a;border-radius:10px}.fancybox-thumbs>ul>li{float:left;overflow:hidden;padding:0;margin:2px;width:100px;height:75px;max-width:calc(50% - 4px);max-height:calc(100% - 8px);position:relative;cursor:pointer;outline:none;-webkit-tap-highlight-color:transparent;-webkit-backface-visibility:hidden;backface-visibility:hidden;box-sizing:border-box}li.fancybox-thumbs-loading{background:rgba(0,0,0,.1)}.fancybox-thumbs>ul>li>img{position:absolute;top:0;left:0;max-width:none;max-height:none;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.fancybox-thumbs>ul>li:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:4px solid #4ea7f9;z-index:99991;opacity:0;transition:all .2s cubic-bezier(.25,.46,.45,.94)}.fancybox-thumbs>ul>li.fancybox-thumbs-active:before{opacity:1}@media (max-width:800px){.fancybox-thumbs{width:110px}.fancybox-show-thumbs .fancybox-inner{right:110px}.fancybox-thumbs>ul>li{max-width:calc(100% - 10px)}} \ No newline at end of file diff --git a/wp-content/themes/chromax/assets/vendors/css/owl.carousel.css b/wp-content/themes/chromax/assets/vendors/css/owl.carousel.css new file mode 100644 index 0000000..9020276 --- /dev/null +++ b/wp-content/themes/chromax/assets/vendors/css/owl.carousel.css @@ -0,0 +1,218 @@ +/** + * Owl Carousel v2.3.4 + * Copyright 2013-2018 David Deutsch + * Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE + */ + +.owl-carousel, +.owl-carousel .owl-item { + -webkit-tap-highlight-color: transparent; + position: relative +} + +.owl-carousel { + display: none; + width: 100%; + z-index: 1 +} + +.owl-carousel .owl-stage { + position: relative; + -ms-touch-action: pan-Y; + touch-action: manipulation; + -moz-backface-visibility: hidden +} + +.owl-carousel .owl-stage:after { + content: "."; + display: block; + clear: both; + visibility: hidden; + line-height: 0; + height: 0 +} + +.owl-carousel .owl-stage-outer { + position: relative; + overflow: hidden; + -webkit-transform: translate3d(0, 0, 0) +} + +.owl-carousel .owl-item, +.owl-carousel .owl-wrapper { + -webkit-backface-visibility: hidden; + -moz-backface-visibility: hidden; + -ms-backface-visibility: hidden; + -webkit-transform: translate3d(0, 0, 0); + -moz-transform: translate3d(0, 0, 0); + -ms-transform: translate3d(0, 0, 0) +} + +.owl-carousel .owl-item { + min-height: 1px; + float: left; + -webkit-backface-visibility: hidden; + -webkit-touch-callout: none +} + +.owl-carousel .owl-item img { + display: block; + width: 100% +} + +.owl-carousel .owl-dots.disabled, +.owl-carousel .owl-nav.disabled { + display: none +} + +.no-js .owl-carousel, +.owl-carousel.owl-loaded { + display: block +} + +.owl-carousel .owl-dot, +.owl-carousel .owl-nav .owl-next, +.owl-carousel .owl-nav .owl-prev { + cursor: pointer; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none +} + +.owl-carousel .owl-nav button.owl-next, +.owl-carousel .owl-nav button.owl-prev, +.owl-carousel button.owl-dot { + background: 0 0; + color: inherit; + border: none; + padding: 0 !important; + font: inherit +} + +.owl-carousel.owl-loading { + opacity: 0; + display: block +} + +.owl-carousel.owl-hidden { + opacity: 0 +} + +.owl-carousel.owl-refresh .owl-item { + visibility: hidden +} + +.owl-carousel.owl-drag .owl-item { + -ms-touch-action: pan-y; + touch-action: pan-y; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none +} + +.owl-carousel.owl-grab { + cursor: move; + cursor: grab +} + +.owl-carousel.owl-rtl { + direction: rtl +} + +.owl-carousel.owl-rtl .owl-item { + float: right +} + +.owl-carousel .animated { + animation-duration: 1s; + animation-fill-mode: both +} + +.owl-carousel .owl-animated-in { + z-index: 0 +} + +.owl-carousel .owl-animated-out { + z-index: 1 +} + +.owl-carousel .fadeOut { + animation-name: fadeOut +} + +@keyframes fadeOut { + 0% { + opacity: 1 + } + 100% { + opacity: 0 + } +} + +.owl-height { + transition: height .5s ease-in-out +} + +.owl-carousel .owl-item .owl-lazy { + opacity: 0; + transition: opacity .4s ease +} + +.owl-carousel .owl-item .owl-lazy:not([src]), +.owl-carousel .owl-item .owl-lazy[src^=""] { + max-height: 0 +} + +.owl-carousel .owl-item img.owl-lazy { + transform-style: preserve-3d +} + +.owl-carousel .owl-video-wrapper { + position: relative; + height: 100%; + background: #000 +} + +.owl-carousel .owl-video-play-icon { + position: absolute; + height: 80px; + width: 80px; + left: 50%; + top: 50%; + margin-left: -40px; + margin-top: -40px; + background: url(owl.video.play.png) no-repeat; + cursor: pointer; + z-index: 1; + -webkit-backface-visibility: hidden; + transition: transform .1s ease +} + +.owl-carousel .owl-video-play-icon:hover { + -ms-transform: scale(1.3, 1.3); + transform: scale(1.3, 1.3) +} + +.owl-carousel .owl-video-playing .owl-video-play-icon, +.owl-carousel .owl-video-playing .owl-video-tn { + display: none +} + +.owl-carousel .owl-video-tn { + opacity: 0; + height: 100%; + background-position: center center; + background-repeat: no-repeat; + background-size: contain; + transition: opacity .4s ease +} + +.owl-carousel .owl-video-frame { + position: relative; + z-index: 1; + height: 100%; + width: 100% +} \ No newline at end of file diff --git a/wp-content/themes/chromax/assets/vendors/css/owl.carousel.min.css b/wp-content/themes/chromax/assets/vendors/css/owl.carousel.min.css new file mode 100644 index 0000000..a71df11 --- /dev/null +++ b/wp-content/themes/chromax/assets/vendors/css/owl.carousel.min.css @@ -0,0 +1,6 @@ +/** + * Owl Carousel v2.3.4 + * Copyright 2013-2018 David Deutsch + * Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE + */ +.owl-carousel,.owl-carousel .owl-item{-webkit-tap-highlight-color:transparent;position:relative}.owl-carousel{display:none;width:100%;z-index:1}.owl-carousel .owl-stage{position:relative;-ms-touch-action:pan-Y;touch-action:manipulation;-moz-backface-visibility:hidden}.owl-carousel .owl-stage:after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}.owl-carousel .owl-stage-outer{position:relative;overflow:hidden;-webkit-transform:translate3d(0,0,0)}.owl-carousel .owl-item,.owl-carousel .owl-wrapper{-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0)}.owl-carousel .owl-item{min-height:1px;float:left;-webkit-backface-visibility:hidden;-webkit-touch-callout:none}.owl-carousel .owl-item img{display:block;width:100%}.owl-carousel .owl-dots.disabled,.owl-carousel .owl-nav.disabled{display:none}.no-js .owl-carousel,.owl-carousel.owl-loaded{display:block}.owl-carousel .owl-dot,.owl-carousel .owl-nav .owl-next,.owl-carousel .owl-nav .owl-prev{cursor:pointer;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel .owl-nav button.owl-next,.owl-carousel .owl-nav button.owl-prev,.owl-carousel button.owl-dot{background:0 0;color:inherit;border:none;padding:0!important;font:inherit}.owl-carousel.owl-loading{opacity:0;display:block}.owl-carousel.owl-hidden{opacity:0}.owl-carousel.owl-refresh .owl-item{visibility:hidden}.owl-carousel.owl-drag .owl-item{-ms-touch-action:pan-y;touch-action:pan-y;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel.owl-grab{cursor:move;cursor:grab}.owl-carousel.owl-rtl{direction:rtl}.owl-carousel.owl-rtl .owl-item{float:right}.owl-carousel .animated{animation-duration:1s;animation-fill-mode:both}.owl-carousel .owl-animated-in{z-index:0}.owl-carousel .owl-animated-out{z-index:1}.owl-carousel .fadeOut{animation-name:fadeOut}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.owl-height{transition:height .5s ease-in-out}.owl-carousel .owl-item .owl-lazy{opacity:0;transition:opacity .4s ease}.owl-carousel .owl-item .owl-lazy:not([src]),.owl-carousel .owl-item .owl-lazy[src^=""]{max-height:0}.owl-carousel .owl-item img.owl-lazy{transform-style:preserve-3d}.owl-carousel .owl-video-wrapper{position:relative;height:100%;background:#000}.owl-carousel .owl-video-play-icon{position:absolute;height:80px;width:80px;left:50%;top:50%;margin-left:-40px;margin-top:-40px;background:url(owl.video.play.png) no-repeat;cursor:pointer;z-index:1;-webkit-backface-visibility:hidden;transition:transform .1s ease}.owl-carousel .owl-video-play-icon:hover{-ms-transform:scale(1.3,1.3);transform:scale(1.3,1.3)}.owl-carousel .owl-video-playing .owl-video-play-icon,.owl-carousel .owl-video-playing .owl-video-tn{display:none}.owl-carousel .owl-video-tn{opacity:0;height:100%;background-position:center center;background-repeat:no-repeat;background-size:contain;transition:opacity .4s ease}.owl-carousel .owl-video-frame{position:relative;z-index:1;height:100%;width:100%} \ No newline at end of file diff --git a/wp-content/themes/chromax/assets/vendors/js/jquery.appear.js b/wp-content/themes/chromax/assets/vendors/js/jquery.appear.js new file mode 100644 index 0000000..0a9c5a1 --- /dev/null +++ b/wp-content/themes/chromax/assets/vendors/js/jquery.appear.js @@ -0,0 +1,152 @@ + +/* + * jQuery.appear + * https://github.com/bas2k/jquery.appear/ + * http://code.google.com/p/jquery-appear/ + * http://bas2k.ru/ + * + * Copyright (c) 2009 Michael Hixson + * Copyright (c) 2012-2014 Alexander Brovikov + * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php) + */ +(function ($) { + $.fn.appear = function (fn, options) { + + var settings = $.extend({ + + //arbitrary data to pass to fn + data: undefined, + + //call fn only on the first appear? + one: true, + + // X & Y accuracy + accX: 0, + accY: 0 + + }, options); + + return this.each(function () { + + var t = $(this); + + //whether the element is currently visible + t.appeared = false; + + if (!fn) { + + //trigger the custom event + t.trigger('appear', settings.data); + return; + } + + var w = $(window); + + //fires the appear event when appropriate + var check = function () { + + //is the element hidden? + if (!t.is(':visible')) { + + //it became hidden + t.appeared = false; + return; + } + + //is the element inside the visible window? + var a = w.scrollLeft(); + var b = w.scrollTop(); + var o = t.offset(); + var x = o.left; + var y = o.top; + + var ax = settings.accX; + var ay = settings.accY; + var th = t.height(); + var wh = w.height(); + var tw = t.width(); + var ww = w.width(); + + if (y + th + ay >= b && + y <= b + wh + ay && + x + tw + ax >= a && + x <= a + ww + ax) { + + //trigger the custom event + if (!t.appeared) t.trigger('appear', settings.data); + + } else { + + //it scrolled out of view + t.appeared = false; + } + }; + + //create a modified fn with some additional logic + var modifiedFn = function () { + + //mark the element as visible + t.appeared = true; + + //is this supposed to happen only once? + if (settings.one) { + + //remove the check + w.unbind('scroll', check); + var i = $.inArray(check, $.fn.appear.checks); + if (i >= 0) $.fn.appear.checks.splice(i, 1); + } + + //trigger the original fn + fn.apply(this, arguments); + }; + + //bind the modified fn to the element + if (settings.one) t.one('appear', settings.data, modifiedFn); + else t.bind('appear', settings.data, modifiedFn); + + //check whenever the window scrolls + w.scroll(check); + + //check whenever the dom changes + $.fn.appear.checks.push(check); + + //check now + (check)(); + }); + }; + + //keep a queue of appearance checks + $.extend($.fn.appear, { + + checks: [], + timeout: null, + + //process the queue + checkAll: function () { + var length = $.fn.appear.checks.length; + if (length > 0) while (length--) ($.fn.appear.checks[length])(); + }, + + //check the queue asynchronously + run: function () { + if ($.fn.appear.timeout) clearTimeout($.fn.appear.timeout); + $.fn.appear.timeout = setTimeout($.fn.appear.checkAll, 20); + } + }); + + //run checks when these methods are called + $.each(['append', 'prepend', 'after', 'before', 'attr', + 'removeAttr', 'addClass', 'removeClass', 'toggleClass', + 'remove', 'css', 'show', 'hide'], function (i, n) { + var old = $.fn[n]; + if (old) { + $.fn[n] = function () { + var r = old.apply(this, arguments); + $.fn.appear.run(); + return r; + } + } + }); + +})(jQuery); \ No newline at end of file diff --git a/wp-content/themes/chromax/assets/vendors/js/jquery.fancybox.js b/wp-content/themes/chromax/assets/vendors/js/jquery.fancybox.js new file mode 100644 index 0000000..acc8bf1 --- /dev/null +++ b/wp-content/themes/chromax/assets/vendors/js/jquery.fancybox.js @@ -0,0 +1,5238 @@ +// ================================================== +// fancyBox v3.2.10 +// +// Licensed GPLv3 for open source use +// or fancyBox Commercial License for commercial use +// +// http://fancyapps.com/fancybox/ +// Copyright 2017 fancyApps +// +// ================================================== +;(function (window, document, $, undefined) { + 'use strict'; + + // If there's no jQuery, fancyBox can't work + // ========================================= + + if ( !$ ) { + return; + } + + // Check if fancyBox is already initialized + // ======================================== + + if ( $.fn.fancybox ) { + + if ( 'console' in window ) { + console.log( 'fancyBox already initialized' ); + } + + return; + } + + // Private default settings + // ======================== + + var defaults = { + + // Enable infinite gallery navigation + loop : false, + + // Space around image, ignored if zoomed-in or viewport width is smaller than 800px + margin : [44, 0], + + // Horizontal space between slides + gutter : 50, + + // Enable keyboard navigation + keyboard : true, + + // Should display navigation arrows at the screen edges + arrows : true, + + // Should display infobar (counter and arrows at the top) + infobar : true, + + // Should display toolbar (buttons at the top) + toolbar : true, + + // What buttons should appear in the top right corner. + // Buttons will be created using templates from `btnTpl` option + // and they will be placed into toolbar (class="fancybox-toolbar"` element) + buttons : [ + 'slideShow', + 'fullScreen', + 'thumbs', + 'share', + //'download', + //'zoom', + 'close' + ], + + // Detect "idle" time in seconds + idleTime : 3, + + // Should display buttons at top right corner of the content + // If 'auto' - they will be created for content having type 'html', 'inline' or 'ajax' + // Use template from `btnTpl.smallBtn` for customization + smallBtn : 'auto', + + // Disable right-click and use simple image protection for images + protect : false, + + // Shortcut to make content "modal" - disable keyboard navigtion, hide buttons, etc + modal : false, + + image : { + + // Wait for images to load before displaying + // Requires predefined image dimensions + // If 'auto' - will zoom in thumbnail if 'width' and 'height' attributes are found + preload : "auto" + + }, + + ajax : { + + // Object containing settings for ajax request + settings : { + + // This helps to indicate that request comes from the modal + // Feel free to change naming + data : { + fancybox : true + } + } + + }, + + iframe : { + + // Iframe template + tpl : '', + + // Preload iframe before displaying it + // This allows to calculate iframe content width and height + // (note: Due to "Same Origin Policy", you can't get cross domain data). + preload : true, + + // Custom CSS styling for iframe wrapping element + // You can use this to set custom iframe dimensions + css : {}, + + // Iframe tag attributes + attr : { + scrolling : 'auto' + } + + }, + + // Default content type if cannot be detected automatically + defaultType : 'image', + + // Open/close animation type + // Possible values: + // false - disable + // "zoom" - zoom images from/to thumbnail + // "fade" + // "zoom-in-out" + // + animationEffect : "zoom", + + // Duration in ms for open/close animation + animationDuration : 500, + + // Should image change opacity while zooming + // If opacity is "auto", then opacity will be changed if image and thumbnail have different aspect ratios + zoomOpacity : "auto", + + // Transition effect between slides + // + // Possible values: + // false - disable + // "fade' + // "slide' + // "circular' + // "tube' + // "zoom-in-out' + // "rotate' + // + transitionEffect : "fade", + + // Duration in ms for transition animation + transitionDuration : 366, + + // Custom CSS class for slide element + slideClass : '', + + // Custom CSS class for layout + baseClass : '', + + // Base template for layout + baseTpl : + '', + + // Loading indicator template + spinnerTpl : '
    ', + + // Error message template + errorTpl : '

    {{ERROR}}

    ', + + btnTpl : { + + download : '' + + '' + + '' + + '' + + '', + + zoom : '', + + close : '', + + // This small close button will be appended to your html/inline/ajax content by default, + // if "smallBtn" option is not set to false + smallBtn : '', + + // Arrows + arrowLeft : '', + + arrowRight : '' + }, + + // Container is injected into this element + parentEl : 'body', + + + // Focus handling + // ============== + + // Try to focus on the first focusable element after opening + autoFocus : false, + + // Put focus back to active element after closing + backFocus : true, + + // Do not let user to focus on element outside modal content + trapFocus : true, + + + // Module specific options + // ======================= + + fullScreen : { + autoStart : false, + }, + + // Set `touch: false` to disable dragging/swiping + touch : { + vertical : true, // Allow to drag content vertically + momentum : true // Continue movement after releasing mouse/touch when panning + }, + + // Hash value when initializing manually, + // set `false` to disable hash change + hash : null, + + // Customize or add new media types + // Example: + /* + media : { + youtube : { + params : { + autoplay : 0 + } + } + } + */ + media : {}, + + slideShow : { + autoStart : false, + speed : 4000 + }, + + thumbs : { + autoStart : false, // Display thumbnails on opening + hideOnClose : true, // Hide thumbnail grid when closing animation starts + parentEl : '.fancybox-container', // Container is injected into this element + axis : 'y' // Vertical (y) or horizontal (x) scrolling + }, + + // Use mousewheel to navigate gallery + // If 'auto' - enabled for images only + wheel : 'auto', + + // Callbacks + //========== + + // See Documentation/API/Events for more information + // Example: + /* + afterShow: function( instance, current ) { + console.info( 'Clicked element:' ); + console.info( current.opts.$orig ); + } + */ + + onInit : $.noop, // When instance has been initialized + + beforeLoad : $.noop, // Before the content of a slide is being loaded + afterLoad : $.noop, // When the content of a slide is done loading + + beforeShow : $.noop, // Before open animation starts + afterShow : $.noop, // When content is done loading and animating + + beforeClose : $.noop, // Before the instance attempts to close. Return false to cancel the close. + afterClose : $.noop, // After instance has been closed + + onActivate : $.noop, // When instance is brought to front + onDeactivate : $.noop, // When other instance has been activated + + + // Interaction + // =========== + + // Use options below to customize taken action when user clicks or double clicks on the fancyBox area, + // each option can be string or method that returns value. + // + // Possible values: + // "close" - close instance + // "next" - move to next gallery item + // "nextOrClose" - move to next gallery item or close if gallery has only one item + // "toggleControls" - show/hide controls + // "zoom" - zoom image (if loaded) + // false - do nothing + + // Clicked on the content + clickContent : function( current, event ) { + return current.type === 'image' ? 'zoom' : false; + }, + + // Clicked on the slide + clickSlide : 'close', + + // Clicked on the background (backdrop) element + clickOutside : 'close', + + // Same as previous two, but for double click + dblclickContent : false, + dblclickSlide : false, + dblclickOutside : false, + + + // Custom options when mobile device is detected + // ============================================= + + mobile : { + idleTime : false, + margin : 0, + + clickContent : function( current, event ) { + return current.type === 'image' ? 'toggleControls' : false; + }, + clickSlide : function( current, event ) { + return current.type === 'image' ? 'toggleControls' : 'close'; + }, + dblclickContent : function( current, event ) { + return current.type === 'image' ? 'zoom' : false; + }, + dblclickSlide : function( current, event ) { + return current.type === 'image' ? 'zoom' : false; + } + }, + + + // Internationalization + // ============ + + lang : 'en', + i18n : { + 'en' : { + CLOSE : 'Close', + NEXT : 'Next', + PREV : 'Previous', + ERROR : 'The requested content cannot be loaded.
    Please try again later.', + PLAY_START : 'Start slideshow', + PLAY_STOP : 'Pause slideshow', + FULL_SCREEN : 'Full screen', + THUMBS : 'Thumbnails', + DOWNLOAD : 'Download', + SHARE : 'Share', + ZOOM : 'Zoom' + }, + 'de' : { + CLOSE : 'Schliessen', + NEXT : 'Weiter', + PREV : 'Zurück', + ERROR : 'Die angeforderten Daten konnten nicht geladen werden.
    Bitte versuchen Sie es später nochmal.', + PLAY_START : 'Diaschau starten', + PLAY_STOP : 'Diaschau beenden', + FULL_SCREEN : 'Vollbild', + THUMBS : 'Vorschaubilder', + DOWNLOAD : 'Herunterladen', + SHARE : 'Teilen', + ZOOM : 'Maßstab' + } + } + + }; + + // Few useful variables and methods + // ================================ + + var $W = $(window); + var $D = $(document); + + var called = 0; + + + // Check if an object is a jQuery object and not a native JavaScript object + // ======================================================================== + + var isQuery = function ( obj ) { + return obj && obj.hasOwnProperty && obj instanceof $; + }; + + + // Handle multiple browsers for "requestAnimationFrame" and "cancelAnimationFrame" + // =============================================================================== + + var requestAFrame = (function () { + return window.requestAnimationFrame || + window.webkitRequestAnimationFrame || + window.mozRequestAnimationFrame || + window.oRequestAnimationFrame || + // if all else fails, use setTimeout + function (callback) { + return window.setTimeout(callback, 1000 / 60); + }; + })(); + + + // Detect the supported transition-end event property name + // ======================================================= + + var transitionEnd = (function () { + var t, el = document.createElement("fakeelement"); + + var transitions = { + "transition" : "transitionend", + "OTransition" : "oTransitionEnd", + "MozTransition" : "transitionend", + "WebkitTransition": "webkitTransitionEnd" + }; + + for (t in transitions) { + if (el.style[t] !== undefined){ + return transitions[t]; + } + } + + return 'transitionend'; + })(); + + + // Force redraw on an element. + // This helps in cases where the browser doesn't redraw an updated element properly. + // ================================================================================= + + var forceRedraw = function( $el ) { + return ( $el && $el.length && $el[0].offsetHeight ); + }; + + + // Class definition + // ================ + + var FancyBox = function( content, opts, index ) { + var self = this; + + self.opts = $.extend( true, { index : index }, $.fancybox.defaults, opts || {} ); + + if ( $.fancybox.isMobile ) { + self.opts = $.extend( true, {}, self.opts, self.opts.mobile ); + } + + // Exclude buttons option from deep merging + if ( opts && $.isArray( opts.buttons ) ) { + self.opts.buttons = opts.buttons; + } + + self.id = self.opts.id || ++called; + self.group = []; + + self.currIndex = parseInt( self.opts.index, 10 ) || 0; + self.prevIndex = null; + + self.prevPos = null; + self.currPos = 0; + + self.firstRun = null; + + // Create group elements from original item collection + self.createGroup( content ); + + if ( !self.group.length ) { + return; + } + + // Save last active element and current scroll position + self.$lastFocus = $(document.activeElement).blur(); + + // Collection of gallery objects + self.slides = {}; + + self.init(); + }; + + $.extend(FancyBox.prototype, { + + // Create DOM structure + // ==================== + + init : function() { + var self = this, + firstItem = self.group[ self.currIndex ], + firstItemOpts = firstItem.opts, + scrollbarWidth = $.fancybox.scrollbarWidth, + $scrollDiv, + $container, + buttonStr; + + self.scrollTop = $D.scrollTop(); + self.scrollLeft = $D.scrollLeft(); + + + // Hide scrollbars + // =============== + + if ( !$.fancybox.getInstance() ) { + + $( 'body' ).addClass( 'fancybox-active' ); + + // iOS hack + if ( /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream ) { + + // iOS has problems for input elements inside fixed containers, + // the workaround is to apply `position: fixed` to `` element, + // unfortunately, this makes it lose the scrollbars and forces address bar to appear. + + if ( firstItem.type !== 'image' ) { + $( 'body' ).css( 'top', $( 'body' ).scrollTop() * -1 ).addClass( 'fancybox-iosfix' ); + } + + } else if ( !$.fancybox.isMobile && document.body.scrollHeight > window.innerHeight ) { + + if ( scrollbarWidth === undefined ) { + $scrollDiv = $('
    ').appendTo( 'body' ); + + scrollbarWidth = $.fancybox.scrollbarWidth = $scrollDiv[0].offsetWidth - $scrollDiv[0].clientWidth; + + $scrollDiv.remove(); + } + + $( 'head' ).append( '' ); + $( 'body' ).addClass( 'compensate-for-scrollbar' ); + } + } + + + // Build html markup and set references + // ==================================== + + // Build html code for buttons and insert into main template + buttonStr = ''; + + $.each( firstItemOpts.buttons, function( index, value ) { + buttonStr += ( firstItemOpts.btnTpl[ value ] || '' ); + }); + + // Create markup from base template, it will be initially hidden to + // avoid unnecessary work like painting while initializing is not complete + $container = $( + self.translate( self, + firstItemOpts.baseTpl + .replace( '\{\{buttons\}\}', buttonStr ) + .replace( '\{\{arrows\}\}', firstItemOpts.btnTpl.arrowLeft + firstItemOpts.btnTpl.arrowRight ) + ) + ) + .attr( 'id', 'fancybox-container-' + self.id ) + .addClass( 'fancybox-is-hidden' ) + .addClass( firstItemOpts.baseClass ) + .data( 'FancyBox', self ) + .appendTo( firstItemOpts.parentEl ); + + // Create object holding references to jQuery wrapped nodes + self.$refs = { + container : $container + }; + + [ 'bg', 'inner', 'infobar', 'toolbar', 'stage', 'caption', 'navigation' ].forEach(function(item) { + self.$refs[ item ] = $container.find( '.fancybox-' + item ); + }); + + self.trigger( 'onInit' ); + + // Enable events, deactive previous instances + self.activate(); + + // Build slides, load and reveal content + self.jumpTo( self.currIndex ); + }, + + + // Simple i18n support - replaces object keys found in template + // with corresponding values + // ============================================================ + + translate : function( obj, str ) { + var arr = obj.opts.i18n[ obj.opts.lang ]; + + return str.replace(/\{\{(\w+)\}\}/g, function(match, n) { + var value = arr[n]; + + if ( value === undefined ) { + return match; + } + + return value; + }); + }, + + // Create array of gally item objects + // Check if each object has valid type and content + // =============================================== + + createGroup : function ( content ) { + var self = this; + var items = $.makeArray( content ); + + $.each(items, function( i, item ) { + var obj = {}, + opts = {}, + $item, + type, + found, + src, + srcParts; + + // Step 1 - Make sure we have an object + // ==================================== + + if ( $.isPlainObject( item ) ) { + + // We probably have manual usage here, something like + // $.fancybox.open( [ { src : "image.jpg", type : "image" } ] ) + + obj = item; + opts = item.opts || item; + + } else if ( $.type( item ) === 'object' && $( item ).length ) { + + // Here we probably have jQuery collection returned by some selector + $item = $( item ); + + opts = $item.data(); + opts = $.extend( {}, opts, opts.options || {} ); + + // Here we store clicked element + opts.$orig = $item; + + obj.src = opts.src || $item.attr( 'href' ); + + // Assume that simple syntax is used, for example: + // `$.fancybox.open( $("#test"), {} );` + if ( !obj.type && !obj.src ) { + obj.type = 'inline'; + obj.src = item; + } + + } else { + + // Assume we have a simple html code, for example: + // $.fancybox.open( '

    Hi!

    ' ); + + obj = { + type : 'html', + src : item + '' + }; + + } + + // Each gallery object has full collection of options + obj.opts = $.extend( true, {}, self.opts, opts ); + + // Do not merge buttons array + if ( $.isArray( opts.buttons ) ) { + obj.opts.buttons = opts.buttons; + } + + + // Step 2 - Make sure we have content type, if not - try to guess + // ============================================================== + + type = obj.type || obj.opts.type; + src = obj.src || ''; + + if ( !type && src ) { + if ( src.match(/(^data:image\/[a-z0-9+\/=]*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\?|#).*)?$)/i) ) { + type = 'image'; + + } else if ( src.match(/\.(pdf)((\?|#).*)?$/i) ) { + type = 'pdf'; + + } else if ( found = src.match(/\.(mp4|mov|ogv)((\?|#).*)?$/i) ) { + type = 'video'; + + if ( !obj.opts.videoFormat ) { + obj.opts.videoFormat = 'video/' + ( found[1] === 'ogv' ? 'ogg' : found[1] ); + } + + } else if ( src.charAt(0) === '#' ) { + type = 'inline'; + } + } + + if ( type ) { + obj.type = type; + + } else { + self.trigger( 'objectNeedsType', obj ); + } + + + // Step 3 - Some adjustments + // ========================= + + obj.index = self.group.length; + + // Check if $orig and $thumb objects exist + if ( obj.opts.$orig && !obj.opts.$orig.length ) { + delete obj.opts.$orig; + } + + if ( !obj.opts.$thumb && obj.opts.$orig ) { + obj.opts.$thumb = obj.opts.$orig.find( 'img:first' ); + } + + if ( obj.opts.$thumb && !obj.opts.$thumb.length ) { + delete obj.opts.$thumb; + } + + // "caption" is a "special" option, it can be used to customize caption per gallery item .. + if ( $.type( obj.opts.caption ) === 'function' ) { + obj.opts.caption = obj.opts.caption.apply( item, [ self, obj ] ); + } + + if ( $.type( self.opts.caption ) === 'function' ) { + obj.opts.caption = self.opts.caption.apply( item, [ self, obj ] ); + } + + // Make sure we have caption as a string or jQuery object + if ( !( obj.opts.caption instanceof $ ) ) { + obj.opts.caption = obj.opts.caption === undefined ? '' : obj.opts.caption + ''; + } + + // Check if url contains "filter" used to filter the content + // Example: "ajax.html #something" + if ( type === 'ajax' ) { + srcParts = src.split(/\s+/, 2); + + if ( srcParts.length > 1 ) { + obj.src = srcParts.shift(); + + obj.opts.filter = srcParts.shift(); + } + } + + if ( obj.opts.smallBtn == 'auto' ) { + + if ( $.inArray( type, ['html', 'inline', 'ajax'] ) > -1 ) { + obj.opts.toolbar = false; + obj.opts.smallBtn = true; + + } else { + obj.opts.smallBtn = false; + } + + } + + // If the type is "pdf", then simply load file into iframe + if ( type === 'pdf' ) { + obj.type = 'iframe'; + + obj.opts.iframe.preload = false; + } + + // Hide all buttons and disable interactivity for modal items + if ( obj.opts.modal ) { + + obj.opts = $.extend(true, obj.opts, { + // Remove buttons + infobar : 0, + toolbar : 0, + + smallBtn : 0, + + // Disable keyboard navigation + keyboard : 0, + + // Disable some modules + slideShow : 0, + fullScreen : 0, + thumbs : 0, + touch : 0, + + // Disable click event handlers + clickContent : false, + clickSlide : false, + clickOutside : false, + dblclickContent : false, + dblclickSlide : false, + dblclickOutside : false + }); + + } + + // Step 4 - Add processed object to group + // ====================================== + + self.group.push( obj ); + + }); + + }, + + + // Attach an event handler functions for: + // - navigation buttons + // - browser scrolling, resizing; + // - focusing + // - keyboard + // - detect idle + // ====================================== + + addEvents : function() { + var self = this; + + self.removeEvents(); + + // Make navigation elements clickable + self.$refs.container.on('click.fb-close', '[data-fancybox-close]', function(e) { + e.stopPropagation(); + e.preventDefault(); + + self.close( e ); + + }).on( 'click.fb-prev touchend.fb-prev', '[data-fancybox-prev]', function(e) { + e.stopPropagation(); + e.preventDefault(); + + self.previous(); + + }).on( 'click.fb-next touchend.fb-next', '[data-fancybox-next]', function(e) { + e.stopPropagation(); + e.preventDefault(); + + self.next(); + + }).on( 'click.fb', '[data-fancybox-zoom]', function(e) { + // Click handler for zoom button + self[ self.isScaledDown() ? 'scaleToActual' : 'scaleToFit' ](); + }); + + + // Handle page scrolling and browser resizing + $W.on('orientationchange.fb resize.fb', function(e) { + + if ( e && e.originalEvent && e.originalEvent.type === "resize" ) { + + requestAFrame(function() { + self.update(); + }); + + } else { + + self.$refs.stage.hide(); + + setTimeout(function() { + self.$refs.stage.show(); + + self.update(); + }, 600); + + } + + }); + + // Trap keyboard focus inside of the modal, so the user does not accidentally tab outside of the modal + // (a.k.a. "escaping the modal") + $D.on('focusin.fb', function(e) { + var instance = $.fancybox ? $.fancybox.getInstance() : null; + + if ( instance.isClosing || !instance.current || !instance.current.opts.trapFocus || $( e.target ).hasClass( 'fancybox-container' ) || $( e.target ).is( document ) ) { + return; + } + + if ( instance && $( e.target ).css( 'position' ) !== 'fixed' && !instance.$refs.container.has( e.target ).length ) { + e.stopPropagation(); + + instance.focus(); + + // Sometimes page gets scrolled, set it back + $W.scrollTop( self.scrollTop ).scrollLeft( self.scrollLeft ); + } + }); + + + // Enable keyboard navigation + $D.on('keydown.fb', function (e) { + var current = self.current, + keycode = e.keyCode || e.which; + + if ( !current || !current.opts.keyboard ) { + return; + } + + if ( $(e.target).is('input') || $(e.target).is('textarea') ) { + return; + } + + // Backspace and Esc keys + if ( keycode === 8 || keycode === 27 ) { + e.preventDefault(); + + self.close( e ); + + return; + } + + // Left arrow and Up arrow + if ( keycode === 37 || keycode === 38 ) { + e.preventDefault(); + + self.previous(); + + return; + } + + // Righ arrow and Down arrow + if ( keycode === 39 || keycode === 40 ) { + e.preventDefault(); + + self.next(); + + return; + } + + self.trigger('afterKeydown', e, keycode); + }); + + + // Hide controls after some inactivity period + if ( self.group[ self.currIndex ].opts.idleTime ) { + self.idleSecondsCounter = 0; + + $D.on('mousemove.fb-idle mouseleave.fb-idle mousedown.fb-idle touchstart.fb-idle touchmove.fb-idle scroll.fb-idle keydown.fb-idle', function(e) { + self.idleSecondsCounter = 0; + + if ( self.isIdle ) { + self.showControls(); + } + + self.isIdle = false; + }); + + self.idleInterval = window.setInterval(function() { + self.idleSecondsCounter++; + + if ( self.idleSecondsCounter >= self.group[ self.currIndex ].opts.idleTime && !self.isDragging ) { + self.isIdle = true; + self.idleSecondsCounter = 0; + + self.hideControls(); + } + + }, 1000); + } + + }, + + + // Remove events added by the core + // =============================== + + removeEvents : function() { + var self = this; + + $W.off( 'orientationchange.fb resize.fb' ); + $D.off( 'focusin.fb keydown.fb .fb-idle' ); + + this.$refs.container.off( '.fb-close .fb-prev .fb-next' ); + + if ( self.idleInterval ) { + window.clearInterval( self.idleInterval ); + + self.idleInterval = null; + } + }, + + + // Change to previous gallery item + // =============================== + + previous : function( duration ) { + return this.jumpTo( this.currPos - 1, duration ); + }, + + + // Change to next gallery item + // =========================== + + next : function( duration ) { + return this.jumpTo( this.currPos + 1, duration ); + }, + + + // Switch to selected gallery item + // =============================== + + jumpTo : function ( pos, duration, slide ) { + var self = this, + firstRun, + loop, + current, + previous, + canvasWidth, + currentPos, + transitionProps; + + var groupLen = self.group.length; + + if ( self.isDragging || self.isClosing || ( self.isAnimating && self.firstRun ) ) { + return; + } + + pos = parseInt( pos, 10 ); + loop = self.current ? self.current.opts.loop : self.opts.loop; + + if ( !loop && ( pos < 0 || pos >= groupLen ) ) { + return false; + } + + firstRun = self.firstRun = ( self.firstRun === null ); + + if ( groupLen < 2 && !firstRun && !!self.isDragging ) { + return; + } + + previous = self.current; + + self.prevIndex = self.currIndex; + self.prevPos = self.currPos; + + // Create slides + current = self.createSlide( pos ); + + if ( groupLen > 1 ) { + if ( loop || current.index > 0 ) { + self.createSlide( pos - 1 ); + } + + if ( loop || current.index < groupLen - 1 ) { + self.createSlide( pos + 1 ); + } + } + + self.current = current; + self.currIndex = current.index; + self.currPos = current.pos; + + self.trigger( 'beforeShow', firstRun ); + + self.updateControls(); + + currentPos = $.fancybox.getTranslate( current.$slide ); + + current.isMoved = ( currentPos.left !== 0 || currentPos.top !== 0 ) && !current.$slide.hasClass( 'fancybox-animated' ); + current.forcedDuration = undefined; + + if ( $.isNumeric( duration ) ) { + current.forcedDuration = duration; + } else { + duration = current.opts[ firstRun ? 'animationDuration' : 'transitionDuration' ]; + } + + duration = parseInt( duration, 10 ); + + // Fresh start - reveal container, current slide and start loading content + if ( firstRun ) { + + if ( current.opts.animationEffect && duration ) { + self.$refs.container.css( 'transition-duration', duration + 'ms' ); + } + + self.$refs.container.removeClass( 'fancybox-is-hidden' ); + + forceRedraw( self.$refs.container ); + + self.$refs.container.addClass( 'fancybox-is-open' ); + + // Make first slide visible (to display loading icon, if needed) + current.$slide.addClass( 'fancybox-slide--current' ); + + self.loadSlide( current ); + + self.preload( 'image' ); + + return; + } + + // Clean up + $.each(self.slides, function( index, slide ) { + $.fancybox.stop( slide.$slide ); + }); + + // Make current that slide is visible even if content is still loading + current.$slide.removeClass( 'fancybox-slide--next fancybox-slide--previous' ).addClass( 'fancybox-slide--current' ); + + // If slides have been dragged, animate them to correct position + if ( current.isMoved ) { + canvasWidth = Math.round( current.$slide.width() ); + + $.each(self.slides, function( index, slide ) { + var pos = slide.pos - current.pos; + + $.fancybox.animate( slide.$slide, { + top : 0, + left : ( pos * canvasWidth ) + ( pos * slide.opts.gutter ) + }, duration, function() { + + slide.$slide.removeAttr('style').removeClass( 'fancybox-slide--next fancybox-slide--previous' ); + + if ( slide.pos === self.currPos ) { + current.isMoved = false; + + self.complete(); + } + }); + }); + + } else { + self.$refs.stage.children().removeAttr( 'style' ); + } + + // Start transition that reveals current content + // or wait when it will be loaded + + if ( current.isLoaded ) { + self.revealContent( current ); + + } else { + self.loadSlide( current ); + } + + self.preload( 'image' ); + + if ( previous.pos === current.pos ) { + return; + } + + // Handle previous slide + // ===================== + + transitionProps = 'fancybox-slide--' + ( previous.pos > current.pos ? 'next' : 'previous' ); + + previous.$slide.removeClass( 'fancybox-slide--complete fancybox-slide--current fancybox-slide--next fancybox-slide--previous' ); + + previous.isComplete = false; + + if ( !duration || ( !current.isMoved && !current.opts.transitionEffect ) ) { + return; + } + + if ( current.isMoved ) { + previous.$slide.addClass( transitionProps ); + + } else { + + transitionProps = 'fancybox-animated ' + transitionProps + ' fancybox-fx-' + current.opts.transitionEffect; + + $.fancybox.animate( previous.$slide, transitionProps, duration, function() { + previous.$slide.removeClass( transitionProps ).removeAttr( 'style' ); + }); + + } + + }, + + + // Create new "slide" element + // These are gallery items that are actually added to DOM + // ======================================================= + + createSlide : function( pos ) { + + var self = this; + var $slide; + var index; + + index = pos % self.group.length; + index = index < 0 ? self.group.length + index : index; + + if ( !self.slides[ pos ] && self.group[ index ] ) { + $slide = $('
    ').appendTo( self.$refs.stage ); + + self.slides[ pos ] = $.extend( true, {}, self.group[ index ], { + pos : pos, + $slide : $slide, + isLoaded : false, + }); + + self.updateSlide( self.slides[ pos ] ); + } + + return self.slides[ pos ]; + }, + + + // Scale image to the actual size of the image + // =========================================== + + scaleToActual : function( x, y, duration ) { + + var self = this; + + var current = self.current; + var $what = current.$content; + + var imgPos, posX, posY, scaleX, scaleY; + + var canvasWidth = parseInt( current.$slide.width(), 10 ); + var canvasHeight = parseInt( current.$slide.height(), 10 ); + + var newImgWidth = current.width; + var newImgHeight = current.height; + + if ( !( current.type == 'image' && !current.hasError) || !$what || self.isAnimating ) { + return; + } + + $.fancybox.stop( $what ); + + self.isAnimating = true; + + x = x === undefined ? canvasWidth * 0.5 : x; + y = y === undefined ? canvasHeight * 0.5 : y; + + imgPos = $.fancybox.getTranslate( $what ); + + scaleX = newImgWidth / imgPos.width; + scaleY = newImgHeight / imgPos.height; + + // Get center position for original image + posX = ( canvasWidth * 0.5 - newImgWidth * 0.5 ); + posY = ( canvasHeight * 0.5 - newImgHeight * 0.5 ); + + // Make sure image does not move away from edges + if ( newImgWidth > canvasWidth ) { + posX = imgPos.left * scaleX - ( ( x * scaleX ) - x ); + + if ( posX > 0 ) { + posX = 0; + } + + if ( posX < canvasWidth - newImgWidth ) { + posX = canvasWidth - newImgWidth; + } + } + + if ( newImgHeight > canvasHeight) { + posY = imgPos.top * scaleY - ( ( y * scaleY ) - y ); + + if ( posY > 0 ) { + posY = 0; + } + + if ( posY < canvasHeight - newImgHeight ) { + posY = canvasHeight - newImgHeight; + } + } + + self.updateCursor( newImgWidth, newImgHeight ); + + $.fancybox.animate( $what, { + top : posY, + left : posX, + scaleX : scaleX, + scaleY : scaleY + }, duration || 330, function() { + self.isAnimating = false; + }); + + // Stop slideshow + if ( self.SlideShow && self.SlideShow.isActive ) { + self.SlideShow.stop(); + } + }, + + + // Scale image to fit inside parent element + // ======================================== + + scaleToFit : function( duration ) { + + var self = this; + + var current = self.current; + var $what = current.$content; + var end; + + if ( !( current.type == 'image' && !current.hasError) || !$what || self.isAnimating ) { + return; + } + + $.fancybox.stop( $what ); + + self.isAnimating = true; + + end = self.getFitPos( current ); + + self.updateCursor( end.width, end.height ); + + $.fancybox.animate( $what, { + top : end.top, + left : end.left, + scaleX : end.width / $what.width(), + scaleY : end.height / $what.height() + }, duration || 330, function() { + self.isAnimating = false; + }); + + }, + + // Calculate image size to fit inside viewport + // =========================================== + + getFitPos : function( slide ) { + var self = this; + var $what = slide.$content; + + var imgWidth = slide.width; + var imgHeight = slide.height; + + var margin = slide.opts.margin; + + var canvasWidth, canvasHeight, minRatio, width, height; + + if ( !$what || !$what.length || ( !imgWidth && !imgHeight) ) { + return false; + } + + // Convert "margin to CSS style: [ top, right, bottom, left ] + if ( $.type( margin ) === "number" ) { + margin = [ margin, margin ]; + } + + if ( margin.length == 2 ) { + margin = [ margin[0], margin[1], margin[0], margin[1] ]; + } + + // We can not use $slide width here, because it can have different diemensions while in transiton + canvasWidth = parseInt( self.$refs.stage.width(), 10 ) - ( margin[ 1 ] + margin[ 3 ] ); + canvasHeight = parseInt( self.$refs.stage.height(), 10 ) - ( margin[ 0 ] + margin[ 2 ] ); + + minRatio = Math.min(1, canvasWidth / imgWidth, canvasHeight / imgHeight ); + + width = Math.floor( minRatio * imgWidth ); + height = Math.floor( minRatio * imgHeight ); + + // Use floor rounding to make sure it really fits + return { + top : Math.floor( ( canvasHeight - height ) * 0.5 ) + margin[ 0 ], + left : Math.floor( ( canvasWidth - width ) * 0.5 ) + margin[ 3 ], + width : width, + height : height + }; + + }, + + + // Update content size and position for all slides + // ============================================== + + update : function() { + var self = this; + + $.each( self.slides, function( key, slide ) { + self.updateSlide( slide ); + }); + }, + + + // Update slide content position and size + // ====================================== + + updateSlide : function( slide, duration ) { + var self = this, + $what = slide && slide.$content; + + if ( $what && ( slide.width || slide.height ) ) { + self.isAnimating = false; + + $.fancybox.stop( $what ); + + $.fancybox.setTranslate( $what, self.getFitPos( slide ) ); + + if ( slide.pos === self.currPos ) { + self.updateCursor(); + } + } + + slide.$slide.trigger( 'refresh' ); + + self.trigger( 'onUpdate', slide ); + + }, + + + // Horizontally center slide + // ========================= + + centerSlide : function( slide, duration ) { + var self = this, canvasWidth, pos; + + if ( self.current ) { + canvasWidth = Math.round( slide.$slide.width() ); + pos = slide.pos - self.current.pos; + + $.fancybox.animate( slide.$slide, { + top : 0, + left : ( pos * canvasWidth ) + ( pos * slide.opts.gutter ), + opacity : 1 + }, duration === undefined ? 0 : duration, null, false); + } + }, + + + // Update cursor style depending if content can be zoomed + // ====================================================== + + updateCursor : function( nextWidth, nextHeight ) { + + var self = this; + var isScaledDown; + + var $container = self.$refs.container.removeClass( 'fancybox-is-zoomable fancybox-can-zoomIn fancybox-can-drag fancybox-can-zoomOut' ); + + if ( !self.current || self.isClosing ) { + return; + } + + if ( self.isZoomable() ) { + + $container.addClass( 'fancybox-is-zoomable' ); + + if ( nextWidth !== undefined && nextHeight !== undefined ) { + isScaledDown = nextWidth < self.current.width && nextHeight < self.current.height; + + } else { + isScaledDown = self.isScaledDown(); + } + + if ( isScaledDown ) { + + // If image is scaled down, then, obviously, it can be zoomed to full size + $container.addClass( 'fancybox-can-zoomIn' ); + + } else { + + if ( self.current.opts.touch ) { + + // If image size ir largen than available available and touch module is not disable, + // then user can do panning + $container.addClass( 'fancybox-can-drag' ); + + } else { + $container.addClass( 'fancybox-can-zoomOut' ); + } + + } + + } else if ( self.current.opts.touch ) { + $container.addClass( 'fancybox-can-drag' ); + } + + }, + + + // Check if current slide is zoomable + // ================================== + + isZoomable : function() { + + var self = this; + + var current = self.current; + var fitPos; + + if ( !current || self.isClosing ) { + return; + } + + // Assume that slide is zoomable if + // - image is loaded successfuly + // - click action is "zoom" + // - actual size of the image is smaller than available area + if ( current.type === 'image' && current.isLoaded && !current.hasError && + ( current.opts.clickContent === 'zoom' || ( $.isFunction( current.opts.clickContent ) && current.opts.clickContent( current ) === "zoom" ) ) + ) { + + fitPos = self.getFitPos( current ); + + if ( current.width > fitPos.width || current.height > fitPos.height ) { + return true; + } + + } + + return false; + + }, + + + // Check if current image dimensions are smaller than actual + // ========================================================= + + isScaledDown : function() { + + var self = this; + + var current = self.current; + var $what = current.$content; + + var rez = false; + + if ( $what ) { + rez = $.fancybox.getTranslate( $what ); + rez = rez.width < current.width || rez.height < current.height; + } + + return rez; + + }, + + + // Check if image dimensions exceed parent element + // =============================================== + + canPan : function() { + + var self = this; + + var current = self.current; + var $what = current.$content; + + var rez = false; + + if ( $what ) { + rez = self.getFitPos( current ); + rez = Math.abs( $what.width() - rez.width ) > 1 || Math.abs( $what.height() - rez.height ) > 1; + } + + return rez; + + }, + + + // Load content into the slide + // =========================== + + loadSlide : function( slide ) { + + var self = this, type, $slide; + var ajaxLoad; + + if ( slide.isLoading ) { + return; + } + + if ( slide.isLoaded ) { + return; + } + + slide.isLoading = true; + + self.trigger( 'beforeLoad', slide ); + + type = slide.type; + $slide = slide.$slide; + + $slide + .off( 'refresh' ) + .trigger( 'onReset' ) + .addClass( 'fancybox-slide--' + ( type || 'unknown' ) ) + .addClass( slide.opts.slideClass ); + + // Create content depending on the type + + switch ( type ) { + + case 'image': + + self.setImage( slide ); + + break; + + case 'iframe': + + self.setIframe( slide ); + + break; + + case 'html': + + self.setContent( slide, slide.src || slide.content ); + + break; + + case 'inline': + + if ( $( slide.src ).length ) { + self.setContent( slide, $( slide.src ) ); + + } else { + self.setError( slide ); + } + + break; + + case 'ajax': + + self.showLoading( slide ); + + ajaxLoad = $.ajax( $.extend( {}, slide.opts.ajax.settings, { + url : slide.src, + success : function ( data, textStatus ) { + + if ( textStatus === 'success' ) { + self.setContent( slide, data ); + } + + }, + error : function ( jqXHR, textStatus ) { + + if ( jqXHR && textStatus !== 'abort' ) { + self.setError( slide ); + } + + } + })); + + $slide.one( 'onReset', function () { + ajaxLoad.abort(); + }); + + break; + + case 'video' : + + self.setContent( slide, + '' + ); + + break; + + default: + + self.setError( slide ); + + break; + + } + + return true; + + }, + + + // Use thumbnail image, if possible + // ================================ + + setImage : function( slide ) { + + var self = this; + var srcset = slide.opts.srcset || slide.opts.image.srcset; + + var found, temp, pxRatio, windowWidth; + + // If we have "srcset", then we need to find matching "src" value. + // This is necessary, because when you set an src attribute, the browser will preload the image + // before any javascript or even CSS is applied. + if ( srcset ) { + pxRatio = window.devicePixelRatio || 1; + windowWidth = window.innerWidth * pxRatio; + + temp = srcset.split(',').map(function ( el ) { + var ret = {}; + + el.trim().split(/\s+/).forEach(function ( el, i ) { + var value = parseInt( el.substring(0, el.length - 1), 10 ); + + if ( i === 0 ) { + return ( ret.url = el ); + } + + if ( value ) { + ret.value = value; + ret.postfix = el[ el.length - 1 ]; + } + + }); + + return ret; + }); + + // Sort by value + temp.sort(function (a, b) { + return a.value - b.value; + }); + + // Ok, now we have an array of all srcset values + for ( var j = 0; j < temp.length; j++ ) { + var el = temp[ j ]; + + if ( ( el.postfix === 'w' && el.value >= windowWidth ) || ( el.postfix === 'x' && el.value >= pxRatio ) ) { + found = el; + break; + } + } + + // If not found, take the last one + if ( !found && temp.length ) { + found = temp[ temp.length - 1 ]; + } + + if ( found ) { + slide.src = found.url; + + // If we have default width/height values, we can calculate height for matching source + if ( slide.width && slide.height && found.postfix == 'w' ) { + slide.height = ( slide.width / slide.height ) * found.value; + slide.width = found.value; + } + } + } + + // This will be wrapper containing both ghost and actual image + slide.$content = $('
    ') + .addClass( 'fancybox-is-hidden' ) + .appendTo( slide.$slide ); + + + // If we have a thumbnail, we can display it while actual image is loading + // Users will not stare at black screen and actual image will appear gradually + if ( slide.opts.preload !== false && slide.opts.width && slide.opts.height && ( slide.opts.thumb || slide.opts.$thumb ) ) { + + slide.width = slide.opts.width; + slide.height = slide.opts.height; + + slide.$ghost = $('') + .one('error', function() { + + $(this).remove(); + + slide.$ghost = null; + + self.setBigImage( slide ); + + }) + .one('load', function() { + + self.afterLoad( slide ); + + self.setBigImage( slide ); + + }) + .addClass( 'fancybox-image' ) + .appendTo( slide.$content ) + .attr( 'src', slide.opts.thumb || slide.opts.$thumb.attr( 'src' ) ); + + } else { + + self.setBigImage( slide ); + + } + + }, + + + // Create full-size image + // ====================== + + setBigImage : function ( slide ) { + var self = this; + var $img = $(''); + + slide.$image = $img + .one('error', function() { + + self.setError( slide ); + + }) + .one('load', function() { + + // Clear timeout that checks if loading icon needs to be displayed + clearTimeout( slide.timouts ); + + slide.timouts = null; + + if ( self.isClosing ) { + return; + } + + slide.width = slide.opts.width || this.naturalWidth; + slide.height = slide.opts.height || this.naturalHeight; + + if ( slide.opts.image.srcset ) { + $img.attr( 'sizes', '100vw' ).attr( 'srcset', slide.opts.image.srcset ); + } + + self.hideLoading( slide ); + + if ( slide.$ghost ) { + + slide.timouts = setTimeout(function() { + slide.timouts = null; + + slide.$ghost.hide(); + + }, Math.min( 300, Math.max( 1000, slide.height / 1600 ) ) ); + + } else { + self.afterLoad( slide ); + } + + }) + .addClass( 'fancybox-image' ) + .attr('src', slide.src) + .appendTo( slide.$content ); + + if ( ( $img[0].complete || $img[0].readyState == "complete" ) && $img[0].naturalWidth && $img[0].naturalHeight ) { + $img.trigger( 'load' ); + + } else if( $img[0].error ) { + $img.trigger( 'error' ); + + } else { + + slide.timouts = setTimeout(function() { + if ( !$img[0].complete && !slide.hasError ) { + self.showLoading( slide ); + } + + }, 100); + + } + + }, + + + // Create iframe wrapper, iframe and bindings + // ========================================== + + setIframe : function( slide ) { + var self = this, + opts = slide.opts.iframe, + $slide = slide.$slide, + $iframe; + + slide.$content = $('
    ') + .css( opts.css ) + .appendTo( $slide ); + + $iframe = $( opts.tpl.replace(/\{rnd\}/g, new Date().getTime()) ) + .attr( opts.attr ) + .appendTo( slide.$content ); + + if ( opts.preload ) { + + self.showLoading( slide ); + + // Unfortunately, it is not always possible to determine if iframe is successfully loaded + // (due to browser security policy) + + $iframe.on('load.fb error.fb', function(e) { + this.isReady = 1; + + slide.$slide.trigger( 'refresh' ); + + self.afterLoad( slide ); + }); + + // Recalculate iframe content size + // =============================== + + $slide.on('refresh.fb', function() { + var $wrap = slide.$content, + frameWidth = opts.css.width, + frameHeight = opts.css.height, + scrollWidth, + $contents, + $body; + + if ( $iframe[0].isReady !== 1 ) { + return; + } + + // Check if content is accessible, + // it will fail if frame is not with the same origin + + try { + $contents = $iframe.contents(); + $body = $contents.find('body'); + + } catch (ignore) {} + + // Calculate dimensions for the wrapper + if ( $body && $body.length ) { + + if ( frameWidth === undefined ) { + scrollWidth = $iframe[0].contentWindow.document.documentElement.scrollWidth; + + frameWidth = Math.ceil( $body.outerWidth(true) + ( $wrap.width() - scrollWidth ) ); + frameWidth += $wrap.outerWidth() - $wrap.innerWidth(); + } + + if ( frameHeight === undefined ) { + frameHeight = Math.ceil( $body.outerHeight(true) ); + frameHeight += $wrap.outerHeight() - $wrap.innerHeight(); + } + + // Resize wrapper to fit iframe content + if ( frameWidth ) { + $wrap.width( frameWidth ); + } + + if ( frameHeight ) { + $wrap.height( frameHeight ); + } + } + + $wrap.removeClass( 'fancybox-is-hidden' ); + + }); + + } else { + + this.afterLoad( slide ); + + } + + $iframe.attr( 'src', slide.src ); + + if ( slide.opts.smallBtn === true ) { + slide.$content.prepend( self.translate( slide, slide.opts.btnTpl.smallBtn ) ); + } + + // Remove iframe if closing or changing gallery item + $slide.one( 'onReset', function () { + + // This helps IE not to throw errors when closing + try { + + $( this ).find( 'iframe' ).hide().attr( 'src', '//about:blank' ); + + } catch ( ignore ) {} + + $( this ).empty(); + + slide.isLoaded = false; + + }); + + }, + + + // Wrap and append content to the slide + // ====================================== + + setContent : function ( slide, content ) { + + var self = this; + + if ( self.isClosing ) { + return; + } + + self.hideLoading( slide ); + + slide.$slide.empty(); + + if ( isQuery( content ) && content.parent().length ) { + + // If content is a jQuery object, then it will be moved to the slide. + // The placeholder is created so we will know where to put it back. + // If user is navigating gallery fast, then the content might be already inside fancyBox + // ===================================================================================== + + // Make sure content is not already moved to fancyBox + content.parent( '.fancybox-slide--inline' ).trigger( 'onReset' ); + + // Create temporary element marking original place of the content + slide.$placeholder = $( '
    ' ).hide().insertAfter( content ); + + // Make sure content is visible + content.css('display', 'inline-block'); + + } else if ( !slide.hasError ) { + + // If content is just a plain text, try to convert it to html + if ( $.type( content ) === 'string' ) { + content = $('
    ').append( $.trim( content ) ).contents(); + + // If we have text node, then add wrapping element to make vertical alignment work + if ( content[0].nodeType === 3 ) { + content = $('
    ').html( content ); + } + } + + // If "filter" option is provided, then filter content + if ( slide.opts.filter ) { + content = $('
    ').html( content ).find( slide.opts.filter ); + } + + } + + slide.$slide.one('onReset', function () { + + // Pause all html5 video/audio + $( this ).find( 'video,audio' ).trigger( 'pause' ); + + // Put content back + if ( slide.$placeholder ) { + slide.$placeholder.after( content.hide() ).remove(); + + slide.$placeholder = null; + } + + // Remove custom close button + if ( slide.$smallBtn ) { + slide.$smallBtn.remove(); + + slide.$smallBtn = null; + } + + // Remove content and mark slide as not loaded + if ( !slide.hasError ) { + $(this).empty(); + + slide.isLoaded = false; + } + + }); + + slide.$content = $( content ).appendTo( slide.$slide ); + + this.afterLoad( slide ); + }, + + // Display error message + // ===================== + + setError : function ( slide ) { + + slide.hasError = true; + + slide.$slide.removeClass( 'fancybox-slide--' + slide.type ); + + this.setContent( slide, this.translate( slide, slide.opts.errorTpl ) ); + + }, + + + // Show loading icon inside the slide + // ================================== + + showLoading : function( slide ) { + + var self = this; + + slide = slide || self.current; + + if ( slide && !slide.$spinner ) { + slide.$spinner = $( self.opts.spinnerTpl ).appendTo( slide.$slide ); + } + + }, + + // Remove loading icon from the slide + // ================================== + + hideLoading : function( slide ) { + + var self = this; + + slide = slide || self.current; + + if ( slide && slide.$spinner ) { + slide.$spinner.remove(); + + delete slide.$spinner; + } + + }, + + + // Adjustments after slide content has been loaded + // =============================================== + + afterLoad : function( slide ) { + + var self = this; + + if ( self.isClosing ) { + return; + } + + slide.isLoading = false; + slide.isLoaded = true; + + self.trigger( 'afterLoad', slide ); + + self.hideLoading( slide ); + + if ( slide.opts.smallBtn && !slide.$smallBtn ) { + slide.$smallBtn = $( self.translate( slide, slide.opts.btnTpl.smallBtn ) ).appendTo( slide.$content.filter('div,form').first() ); + } + + if ( slide.opts.protect && slide.$content && !slide.hasError ) { + + // Disable right click + slide.$content.on( 'contextmenu.fb', function( e ) { + if ( e.button == 2 ) { + e.preventDefault(); + } + + return true; + }); + + // Add fake element on top of the image + // This makes a bit harder for user to select image + if ( slide.type === 'image' ) { + $( '
    ' ).appendTo( slide.$content ); + } + + } + + self.revealContent( slide ); + + }, + + + // Make content visible + // This method is called right after content has been loaded or + // user navigates gallery and transition should start + // ============================================================ + + revealContent : function( slide ) { + + var self = this; + var $slide = slide.$slide; + + var effect, effectClassName, duration, opacity, end, start = false; + + effect = slide.opts[ self.firstRun ? 'animationEffect' : 'transitionEffect' ]; + duration = slide.opts[ self.firstRun ? 'animationDuration' : 'transitionDuration' ]; + + duration = parseInt( slide.forcedDuration === undefined ? duration : slide.forcedDuration, 10 ); + + if ( slide.isMoved || slide.pos !== self.currPos || !duration ) { + effect = false; + } + + // Check if can zoom + if ( effect === 'zoom' && !( slide.pos === self.currPos && duration && slide.type === 'image' && !slide.hasError && ( start = self.getThumbPos( slide ) ) ) ) { + effect = 'fade'; + } + + // Zoom animation + // ============== + + if ( effect === 'zoom' ) { + end = self.getFitPos( slide ); + + end.scaleX = end.width / start.width; + end.scaleY = end.height / start.height; + + delete end.width; + delete end.height; + + // Check if we need to animate opacity + opacity = slide.opts.zoomOpacity; + + if ( opacity == 'auto' ) { + opacity = Math.abs( slide.width / slide.height - start.width / start.height ) > 0.1; + } + + if ( opacity ) { + start.opacity = 0.1; + end.opacity = 1; + } + + // Draw image at start position + $.fancybox.setTranslate( slide.$content.removeClass( 'fancybox-is-hidden' ), start ); + + forceRedraw( slide.$content ); + + // Start animation + $.fancybox.animate( slide.$content, end, duration, function() { + self.complete(); + }); + + return; + } + + self.updateSlide( slide ); + + + // Simply show content + // =================== + + if ( !effect ) { + forceRedraw( $slide ); + + slide.$content.removeClass( 'fancybox-is-hidden' ); + + if ( slide.pos === self.currPos ) { + self.complete(); + } + + return; + } + + $.fancybox.stop( $slide ); + + effectClassName = 'fancybox-animated fancybox-slide--' + ( slide.pos >= self.prevPos ? 'next' : 'previous' ) + ' fancybox-fx-' + effect; + + $slide.removeAttr( 'style' ).removeClass( 'fancybox-slide--current fancybox-slide--next fancybox-slide--previous' ).addClass( effectClassName ); + + slide.$content.removeClass( 'fancybox-is-hidden' ); + + //Force reflow for CSS3 transitions + forceRedraw( $slide ); + + $.fancybox.animate( $slide, 'fancybox-slide--current', duration, function(e) { + $slide.removeClass( effectClassName ).removeAttr( 'style' ); + + if ( slide.pos === self.currPos ) { + self.complete(); + } + + }, true); + + }, + + + // Check if we can and have to zoom from thumbnail + //================================================ + + getThumbPos : function( slide ) { + + var self = this; + var rez = false; + + // Check if element is inside the viewport by at least 1 pixel + var isElementVisible = function( $el ) { + var element = $el[0]; + + var elementRect = element.getBoundingClientRect(); + var parentRects = []; + + var visibleInAllParents; + + while ( element.parentElement !== null ) { + if ( $(element.parentElement).css('overflow') === 'hidden' || $(element.parentElement).css('overflow') === 'auto' ) { + parentRects.push(element.parentElement.getBoundingClientRect()); + } + + element = element.parentElement; + } + + visibleInAllParents = parentRects.every(function(parentRect){ + var visiblePixelX = Math.min(elementRect.right, parentRect.right) - Math.max(elementRect.left, parentRect.left); + var visiblePixelY = Math.min(elementRect.bottom, parentRect.bottom) - Math.max(elementRect.top, parentRect.top); + + return visiblePixelX > 0 && visiblePixelY > 0; + }); + + return visibleInAllParents && + elementRect.bottom > 0 && elementRect.right > 0 && + elementRect.left < $(window).width() && elementRect.top < $(window).height(); + }; + + var $thumb = slide.opts.$thumb; + var thumbPos = $thumb ? $thumb.offset() : 0; + var slidePos; + + if ( thumbPos && $thumb[0].ownerDocument === document && isElementVisible( $thumb ) ) { + slidePos = self.$refs.stage.offset(); + + rez = { + top : thumbPos.top - slidePos.top + parseFloat( $thumb.css( "border-top-width" ) || 0 ), + left : thumbPos.left - slidePos.left + parseFloat( $thumb.css( "border-left-width" ) || 0 ), + width : $thumb.width(), + height : $thumb.height(), + scaleX : 1, + scaleY : 1 + }; + } + + return rez; + }, + + + // Final adjustments after current gallery item is moved to position + // and it`s content is loaded + // ================================================================== + + complete : function() { + var self = this, + current = self.current, + slides = {}, + promise; + + if ( current.isMoved || !current.isLoaded || current.isComplete ) { + return; + } + + current.isComplete = true; + + current.$slide.siblings().trigger( 'onReset' ); + + self.preload( 'inline' ); + + // Trigger any CSS3 transiton inside the slide + forceRedraw( current.$slide ); + + current.$slide.addClass( 'fancybox-slide--complete' ); + + // Remove unnecessary slides + $.each( self.slides, function( key, slide ) { + if ( slide.pos >= self.currPos - 1 && slide.pos <= self.currPos + 1 ) { + slides[ slide.pos ] = slide; + + } else if ( slide ) { + $.fancybox.stop( slide.$slide ); + + slide.$slide.off().remove(); + } + }); + + self.slides = slides; + + self.updateCursor(); + + self.trigger( 'afterShow' ); + + // Play first html5 video/audio + current.$slide.find( 'video,audio' ).first().trigger( 'play' ); + + // Try to focus on the first focusable element + if ( $( document.activeElement ).is( '[disabled]' ) || ( current.opts.autoFocus && !( current.type == 'image' || current.type === 'iframe' ) ) ) { + self.focus(); + } + + }, + + + // Preload next and previous slides + // ================================ + + preload : function( type ) { + var self = this, + next = self.slides[ self.currPos + 1 ], + prev = self.slides[ self.currPos - 1 ]; + + if ( next && next.type === type ) { + self.loadSlide( next ); + } + + if ( prev && prev.type === type ) { + self.loadSlide( prev ); + } + }, + + + // Try to find and focus on the first focusable element + // ==================================================== + + focus : function() { + var current = this.current; + var $el; + + if ( this.isClosing ) { + return; + } + + if ( current && current.isComplete ) { + + // Look for first input with autofocus attribute + $el = current.$slide.find('input[autofocus]:enabled:visible:first'); + + if ( !$el.length ) { + $el = current.$slide.find('button,:input,[tabindex],a').filter(':enabled:visible:first'); + } + } + + $el = $el && $el.length ? $el : this.$refs.container; + + $el.focus(); + }, + + + // Activates current instance - brings container to the front and enables keyboard, + // notifies other instances about deactivating + // ================================================================================= + + activate : function () { + var self = this; + + // Deactivate all instances + $( '.fancybox-container' ).each(function () { + var instance = $(this).data( 'FancyBox' ); + + // Skip self and closing instances + if (instance && instance.id !== self.id && !instance.isClosing) { + instance.trigger( 'onDeactivate' ); + + instance.removeEvents(); + + instance.isVisible = false; + } + + }); + + self.isVisible = true; + + if ( self.current || self.isIdle ) { + self.update(); + + self.updateControls(); + } + + self.trigger( 'onActivate' ); + + self.addEvents(); + }, + + + // Start closing procedure + // This will start "zoom-out" animation if needed and clean everything up afterwards + // ================================================================================= + + close : function( e, d ) { + + var self = this; + var current = self.current; + + var effect, duration; + var $what, opacity, start, end; + + var done = function() { + self.cleanUp( e ); + }; + + if ( self.isClosing ) { + return false; + } + + self.isClosing = true; + + // If beforeClose callback prevents closing, make sure content is centered + if ( self.trigger( 'beforeClose', e ) === false ) { + self.isClosing = false; + + requestAFrame(function() { + self.update(); + }); + + return false; + } + + // Remove all events + // If there are multiple instances, they will be set again by "activate" method + self.removeEvents(); + + if ( current.timouts ) { + clearTimeout( current.timouts ); + } + + $what = current.$content; + effect = current.opts.animationEffect; + duration = $.isNumeric( d ) ? d : ( effect ? current.opts.animationDuration : 0 ); + + // Remove other slides + current.$slide.off( transitionEnd ).removeClass( 'fancybox-slide--complete fancybox-slide--next fancybox-slide--previous fancybox-animated' ); + + current.$slide.siblings().trigger( 'onReset' ).remove(); + + // Trigger animations + if ( duration ) { + self.$refs.container.removeClass( 'fancybox-is-open' ).addClass( 'fancybox-is-closing' ); + } + + // Clean up + self.hideLoading( current ); + + self.hideControls(); + + self.updateCursor(); + + // Check if possible to zoom-out + if ( effect === 'zoom' && !( e !== true && $what && duration && current.type === 'image' && !current.hasError && ( end = self.getThumbPos( current ) ) ) ) { + effect = 'fade'; + } + + if ( effect === 'zoom' ) { + $.fancybox.stop( $what ); + + start = $.fancybox.getTranslate( $what ); + + start.width = start.width * start.scaleX; + start.height = start.height * start.scaleY; + + // Check if we need to animate opacity + opacity = current.opts.zoomOpacity; + + if ( opacity == 'auto' ) { + opacity = Math.abs( current.width / current.height - end.width / end.height ) > 0.1; + } + + if ( opacity ) { + end.opacity = 0; + } + + start.scaleX = start.width / end.width; + start.scaleY = start.height / end.height; + + start.width = end.width; + start.height = end.height; + + $.fancybox.setTranslate( current.$content, start ); + + forceRedraw( current.$content ); + + $.fancybox.animate( current.$content, end, duration, done ); + + return true; + } + + if ( effect && duration ) { + + // If skip animation + if ( e === true ) { + setTimeout( done, duration ); + + } else { + $.fancybox.animate( current.$slide.removeClass( 'fancybox-slide--current' ), 'fancybox-animated fancybox-slide--previous fancybox-fx-' + effect, duration, done ); + } + + } else { + done(); + } + + return true; + }, + + + // Final adjustments after removing the instance + // ============================================= + + cleanUp : function( e ) { + var self = this, + $body = $( 'body' ), + instance, + offset; + + self.current.$slide.trigger( 'onReset' ); + + self.$refs.container.empty().remove(); + + self.trigger( 'afterClose', e ); + + // Place back focus + if ( self.$lastFocus && !!self.current.opts.backFocus ) { + self.$lastFocus.focus(); + } + + self.current = null; + + // Check if there are other instances + instance = $.fancybox.getInstance(); + + if ( instance ) { + instance.activate(); + + } else { + + $W.scrollTop( self.scrollTop ).scrollLeft( self.scrollLeft ); + + $body.removeClass( 'fancybox-active compensate-for-scrollbar' ); + + if ( $body.hasClass( 'fancybox-iosfix' ) ) { + offset = parseInt(document.body.style.top, 10); + + $body.removeClass( 'fancybox-iosfix' ).css( 'top', '' ).scrollTop( offset * -1 ); + } + + $( '#fancybox-style-noscroll' ).remove(); + + } + + }, + + + // Call callback and trigger an event + // ================================== + + trigger : function( name, slide ) { + var args = Array.prototype.slice.call(arguments, 1), + self = this, + obj = slide && slide.opts ? slide : self.current, + rez; + + if ( obj ) { + args.unshift( obj ); + + } else { + obj = self; + } + + args.unshift( self ); + + if ( $.isFunction( obj.opts[ name ] ) ) { + rez = obj.opts[ name ].apply( obj, args ); + } + + if ( rez === false ) { + return rez; + } + + if ( name === 'afterClose' || !self.$refs ) { + $D.trigger( name + '.fb', args ); + + } else { + self.$refs.container.trigger( name + '.fb', args ); + } + + }, + + + // Update infobar values, navigation button states and reveal caption + // ================================================================== + + updateControls : function ( force ) { + + var self = this; + + var current = self.current, + index = current.index, + caption = current.opts.caption, + $container = self.$refs.container, + $caption = self.$refs.caption; + + // Recalculate content dimensions + current.$slide.trigger( 'refresh' ); + + self.$caption = caption && caption.length ? $caption.html( caption ) : null; + + if ( !self.isHiddenControls && !self.isIdle ) { + self.showControls(); + } + + // Update info and navigation elements + $container.find('[data-fancybox-count]').html( self.group.length ); + $container.find('[data-fancybox-index]').html( index + 1 ); + + $container.find('[data-fancybox-prev]').prop( 'disabled', ( !current.opts.loop && index <= 0 ) ); + $container.find('[data-fancybox-next]').prop( 'disabled', ( !current.opts.loop && index >= self.group.length - 1 ) ); + + if ( current.type === 'image' ) { + + // Update download button source + $container.find('[data-fancybox-download]').attr( 'href', current.opts.image.src || current.src ).show(); + + } else { + $container.find('[data-fancybox-download],[data-fancybox-zoom]').hide(); + } + }, + + // Hide toolbar and caption + // ======================== + + hideControls : function () { + + this.isHiddenControls = true; + + this.$refs.container.removeClass( 'fancybox-show-infobar fancybox-show-toolbar fancybox-show-caption fancybox-show-nav' ); + + }, + + showControls : function() { + var self = this; + var opts = self.current ? self.current.opts : self.opts; + var $container = self.$refs.container; + + self.isHiddenControls = false; + self.idleSecondsCounter = 0; + + $container + .toggleClass( 'fancybox-show-toolbar', !!( opts.toolbar && opts.buttons ) ) + .toggleClass( 'fancybox-show-infobar', !!( opts.infobar && self.group.length > 1 ) ) + .toggleClass( 'fancybox-show-nav', !!( opts.arrows && self.group.length > 1 ) ) + .toggleClass( 'fancybox-is-modal', !!opts.modal ); + + if ( self.$caption ) { + $container.addClass( 'fancybox-show-caption '); + + } else { + $container.removeClass( 'fancybox-show-caption' ); + } + + }, + + + // Toggle toolbar and caption + // ========================== + + toggleControls : function() { + if ( this.isHiddenControls ) { + this.showControls(); + + } else { + this.hideControls(); + } + + }, + + + }); + + + $.fancybox = { + + version : "3.2.10", + defaults : defaults, + + + // Get current instance and execute a command. + // + // Examples of usage: + // + // $instance = $.fancybox.getInstance(); + // $.fancybox.getInstance().jumpTo( 1 ); + // $.fancybox.getInstance( 'jumpTo', 1 ); + // $.fancybox.getInstance( function() { + // console.info( this.currIndex ); + // }); + // ====================================================== + + getInstance : function ( command ) { + var instance = $('.fancybox-container:not(".fancybox-is-closing"):last').data( 'FancyBox' ); + var args = Array.prototype.slice.call(arguments, 1); + + if ( instance instanceof FancyBox ) { + + if ( $.type( command ) === 'string' ) { + instance[ command ].apply( instance, args ); + + } else if ( $.type( command ) === 'function' ) { + command.apply( instance, args ); + } + + return instance; + } + + return false; + + }, + + + // Create new instance + // =================== + + open : function ( items, opts, index ) { + return new FancyBox( items, opts, index ); + }, + + + // Close current or all instances + // ============================== + + close : function ( all ) { + var instance = this.getInstance(); + + if ( instance ) { + instance.close(); + + // Try to find and close next instance + + if ( all === true ) { + this.close(); + } + } + + }, + + // Close instances and unbind all events + // ============================== + + destroy : function() { + + this.close( true ); + + $D.off( 'click.fb-start' ); + + }, + + + // Try to detect mobile devices + // ============================ + + isMobile : document.createTouch !== undefined && /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent), + + + // Detect if 'translate3d' support is available + // ============================================ + + use3d : (function() { + var div = document.createElement('div'); + + return window.getComputedStyle && window.getComputedStyle( div ).getPropertyValue('transform') && !(document.documentMode && document.documentMode < 11); + }()), + + // Helper function to get current visual state of an element + // returns array[ top, left, horizontal-scale, vertical-scale, opacity ] + // ===================================================================== + + getTranslate : function( $el ) { + var matrix; + + if ( !$el || !$el.length ) { + return false; + } + + matrix = $el.eq( 0 ).css('transform'); + + if ( matrix && matrix.indexOf( 'matrix' ) !== -1 ) { + matrix = matrix.split('(')[1]; + matrix = matrix.split(')')[0]; + matrix = matrix.split(','); + } else { + matrix = []; + } + + if ( matrix.length ) { + + // If IE + if ( matrix.length > 10 ) { + matrix = [ matrix[13], matrix[12], matrix[0], matrix[5] ]; + + } else { + matrix = [ matrix[5], matrix[4], matrix[0], matrix[3]]; + } + + matrix = matrix.map(parseFloat); + + } else { + matrix = [ 0, 0, 1, 1 ]; + + var transRegex = /\.*translate\((.*)px,(.*)px\)/i; + var transRez = transRegex.exec( $el.eq( 0 ).attr('style') ); + + if ( transRez ) { + matrix[ 0 ] = parseFloat( transRez[2] ); + matrix[ 1 ] = parseFloat( transRez[1] ); + } + } + + return { + top : matrix[ 0 ], + left : matrix[ 1 ], + scaleX : matrix[ 2 ], + scaleY : matrix[ 3 ], + opacity : parseFloat( $el.css('opacity') ), + width : $el.width(), + height : $el.height() + }; + + }, + + + // Shortcut for setting "translate3d" properties for element + // Can set be used to set opacity, too + // ======================================================== + + setTranslate : function( $el, props ) { + var str = ''; + var css = {}; + + if ( !$el || !props ) { + return; + } + + if ( props.left !== undefined || props.top !== undefined ) { + str = ( props.left === undefined ? $el.position().left : props.left ) + 'px, ' + ( props.top === undefined ? $el.position().top : props.top ) + 'px'; + + if ( this.use3d ) { + str = 'translate3d(' + str + ', 0px)'; + + } else { + str = 'translate(' + str + ')'; + } + } + + if ( props.scaleX !== undefined && props.scaleY !== undefined ) { + str = (str.length ? str + ' ' : '') + 'scale(' + props.scaleX + ', ' + props.scaleY + ')'; + } + + if ( str.length ) { + css.transform = str; + } + + if ( props.opacity !== undefined ) { + css.opacity = props.opacity; + } + + if ( props.width !== undefined ) { + css.width = props.width; + } + + if ( props.height !== undefined ) { + css.height = props.height; + } + + return $el.css( css ); + }, + + + // Simple CSS transition handler + // ============================= + + animate : function ( $el, to, duration, callback, leaveAnimationName ) { + if ( $.isFunction( duration ) ) { + callback = duration; + duration = null; + } + + if ( !$.isPlainObject( to ) ) { + $el.removeAttr( 'style' ); + } + + $el.on( transitionEnd, function(e) { + + // Skip events from child elements and z-index change + if ( e && e.originalEvent && ( !$el.is( e.originalEvent.target ) || e.originalEvent.propertyName == 'z-index' ) ) { + return; + } + + $.fancybox.stop( $el ); + + if ( $.isPlainObject( to ) ) { + + if ( to.scaleX !== undefined && to.scaleY !== undefined ) { + $el.css( 'transition-duration', '' ); + + to.width = Math.round( $el.width() * to.scaleX ); + to.height = Math.round( $el.height() * to.scaleY ); + + to.scaleX = 1; + to.scaleY = 1; + + $.fancybox.setTranslate( $el, to ); + } + + if ( leaveAnimationName === false ) { + $el.removeAttr( 'style' ); + } + + } else if ( leaveAnimationName !== true ) { + $el.removeClass( to ); + } + + if ( $.isFunction( callback ) ) { + callback( e ); + } + + }); + + if ( $.isNumeric( duration ) ) { + $el.css( 'transition-duration', duration + 'ms' ); + } + + if ( $.isPlainObject( to ) ) { + $.fancybox.setTranslate( $el, to ); + + } else { + $el.addClass( to ); + } + + if ( to.scaleX && $el.hasClass( 'fancybox-image-wrap' ) ) { + $el.parent().addClass( 'fancybox-is-scaling' ); + } + + // Make sure that `transitionend` callback gets fired + $el.data("timer", setTimeout(function() { + $el.trigger( 'transitionend' ); + }, duration + 16)); + + }, + + stop : function( $el ) { + clearTimeout( $el.data("timer") ); + + $el.off( 'transitionend' ).css( 'transition-duration', '' ); + + if ( $el.hasClass( 'fancybox-image-wrap' ) ) { + $el.parent().removeClass( 'fancybox-is-scaling' ); + } + } + + }; + + + // Default click handler for "fancyboxed" links + // ============================================ + + function _run( e ) { + var $target = $( e.currentTarget ), + opts = e.data ? e.data.options : {}, + value = $target.attr( 'data-fancybox' ) || '', + index = 0, + items = []; + + // Avoid opening multiple times + if ( e.isDefaultPrevented() ) { + return; + } + + e.preventDefault(); + + // Get all related items and find index for clicked one + if ( value ) { + items = opts.selector ? $( opts.selector ) : ( e.data ? e.data.items : [] ); + items = items.length ? items.filter( '[data-fancybox="' + value + '"]' ) : $( '[data-fancybox="' + value + '"]' ); + + index = items.index( $target ); + + // Sometimes current item can not be found + // (for example, when slider clones items) + if ( index < 0 ) { + index = 0; + } + + } else { + items = [ $target ]; + } + + $.fancybox.open( items, opts, index ); + } + + + // Create a jQuery plugin + // ====================== + + $.fn.fancybox = function (options) { + var selector; + + options = options || {}; + selector = options.selector || false; + + if ( selector ) { + + $( 'body' ).off( 'click.fb-start', selector ).on( 'click.fb-start', selector, { + options : options + }, _run ); + + } else { + + this.off( 'click.fb-start' ).on( 'click.fb-start', { + items : this, + options : options + }, _run); + + } + + return this; + }; + + + // Self initializing plugin + // ======================== + + $D.on( 'click.fb-start', '[data-fancybox]', _run ); + +}( window, document, window.jQuery || jQuery )); + +// ========================================================================== +// +// Media +// Adds additional media type support +// +// ========================================================================== +;(function ($) { + + 'use strict'; + + // Formats matching url to final form + + var format = function (url, rez, params) { + if ( !url ) { + return; + } + + params = params || ''; + + if ( $.type(params) === "object" ) { + params = $.param(params, true); + } + + $.each(rez, function (key, value) { + url = url.replace('$' + key, value || ''); + }); + + if (params.length) { + url += (url.indexOf('?') > 0 ? '&' : '?') + params; + } + + return url; + }; + + // Object containing properties for each media type + + var defaults = { + youtube : { + matcher : /(youtube\.com|youtu\.be|youtube\-nocookie\.com)\/(watch\?(.*&)?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*))(.*)/i, + params : { + autoplay : 1, + autohide : 1, + fs : 1, + rel : 0, + hd : 1, + wmode : 'transparent', + enablejsapi : 1, + html5 : 1 + }, + paramPlace : 8, + type : 'iframe', + url : '//www.youtube.com/embed/$4', + thumb : '//img.youtube.com/vi/$4/hqdefault.jpg' + }, + + vimeo : { + matcher : /^.+vimeo.com\/(.*\/)?([\d]+)(.*)?/, + params : { + autoplay : 1, + hd : 1, + show_title : 1, + show_byline : 1, + show_portrait : 0, + fullscreen : 1, + api : 1 + }, + paramPlace : 3, + type : 'iframe', + url : '//player.vimeo.com/video/$2' + }, + + metacafe : { + matcher : /metacafe.com\/watch\/(\d+)\/(.*)?/, + type : 'iframe', + url : '//www.metacafe.com/embed/$1/?ap=1' + }, + + dailymotion : { + matcher : /dailymotion.com\/video\/(.*)\/?(.*)/, + params : { + additionalInfos : 0, + autoStart : 1 + }, + type : 'iframe', + url : '//www.dailymotion.com/embed/video/$1' + }, + + vine : { + matcher : /vine.co\/v\/([a-zA-Z0-9\?\=\-]+)/, + type : 'iframe', + url : '//vine.co/v/$1/embed/simple' + }, + + instagram : { + matcher : /(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i, + type : 'image', + url : '//$1/p/$2/media/?size=l' + }, + + // Examples: + // http://maps.google.com/?ll=48.857995,2.294297&spn=0.007666,0.021136&t=m&z=16 + // https://www.google.com/maps/@37.7852006,-122.4146355,14.65z + // https://www.google.com/maps/place/Googleplex/@37.4220041,-122.0833494,17z/data=!4m5!3m4!1s0x0:0x6c296c66619367e0!8m2!3d37.4219998!4d-122.0840572 + gmap_place : { + matcher : /(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(((maps\/(place\/(.*)\/)?\@(.*),(\d+.?\d+?)z))|(\?ll=))(.*)?/i, + type : 'iframe', + url : function (rez) { + return '//maps.google.' + rez[2] + '/?ll=' + ( rez[9] ? rez[9] + '&z=' + Math.floor( rez[10] ) + ( rez[12] ? rez[12].replace(/^\//, "&") : '' ) : rez[12] ) + '&output=' + ( rez[12] && rez[12].indexOf('layer=c') > 0 ? 'svembed' : 'embed' ); + } + }, + + // Examples: + // https://www.google.com/maps/search/Empire+State+Building/ + // https://www.google.com/maps/search/?api=1&query=centurylink+field + // https://www.google.com/maps/search/?api=1&query=47.5951518,-122.3316393 + gmap_search : { + matcher : /(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(maps\/search\/)(.*)/i, + type : 'iframe', + url : function (rez) { + return '//maps.google.' + rez[2] + '/maps?q=' + rez[5].replace('query=', 'q=').replace('api=1', '') + '&output=embed'; + } + } + }; + + $(document).on('objectNeedsType.fb', function (e, instance, item) { + + var url = item.src || '', + type = false, + media, + thumb, + rez, + params, + urlParams, + paramObj, + provider; + + media = $.extend( true, {}, defaults, item.opts.media ); + + // Look for any matching media type + $.each(media, function ( providerName, providerOpts ) { + rez = url.match( providerOpts.matcher ); + + if ( !rez ) { + return; + } + + type = providerOpts.type; + paramObj = {}; + + if ( providerOpts.paramPlace && rez[ providerOpts.paramPlace ] ) { + urlParams = rez[ providerOpts.paramPlace ]; + + if ( urlParams[ 0 ] == '?' ) { + urlParams = urlParams.substring(1); + } + + urlParams = urlParams.split('&'); + + for ( var m = 0; m < urlParams.length; ++m ) { + var p = urlParams[ m ].split('=', 2); + + if ( p.length == 2 ) { + paramObj[ p[0] ] = decodeURIComponent( p[1].replace(/\+/g, " ") ); + } + } + } + + params = $.extend( true, {}, providerOpts.params, item.opts[ providerName ], paramObj ); + + url = $.type( providerOpts.url ) === "function" ? providerOpts.url.call( this, rez, params, item ) : format( providerOpts.url, rez, params ); + thumb = $.type( providerOpts.thumb ) === "function" ? providerOpts.thumb.call( this, rez, params, item ) : format( providerOpts.thumb, rez ); + + if ( providerName === 'vimeo' ) { + url = url.replace('&%23', '#'); + } + + return false; + }); + + // If it is found, then change content type and update the url + + if ( type ) { + item.src = url; + item.type = type; + + if ( !item.opts.thumb && !( item.opts.$thumb && item.opts.$thumb.length ) ) { + item.opts.thumb = thumb; + } + + if ( type === 'iframe' ) { + $.extend(true, item.opts, { + iframe : { + preload : false, + attr : { + scrolling : "no" + } + } + }); + + item.contentProvider = provider; + + item.opts.slideClass += ' fancybox-slide--' + ( provider == 'gmap_place' || provider == 'gmap_search' ? 'map' : 'video' ); + } + + } else if ( url ) { + item.type = item.opts.defaultType; + } + + }); + +}( window.jQuery || jQuery )); + +// ========================================================================== +// +// Guestures +// Adds touch guestures, handles click and tap events +// +// ========================================================================== +;(function (window, document, $) { + 'use strict'; + + var requestAFrame = (function () { + return window.requestAnimationFrame || + window.webkitRequestAnimationFrame || + window.mozRequestAnimationFrame || + window.oRequestAnimationFrame || + // if all else fails, use setTimeout + function (callback) { + return window.setTimeout(callback, 1000 / 60); + }; + })(); + + var cancelAFrame = (function () { + return window.cancelAnimationFrame || + window.webkitCancelAnimationFrame || + window.mozCancelAnimationFrame || + window.oCancelAnimationFrame || + function (id) { + window.clearTimeout(id); + }; + })(); + + var pointers = function( e ) { + var result = []; + + e = e.originalEvent || e || window.e; + e = e.touches && e.touches.length ? e.touches : ( e.changedTouches && e.changedTouches.length ? e.changedTouches : [ e ] ); + + for ( var key in e ) { + + if ( e[ key ].pageX ) { + result.push( { x : e[ key ].pageX, y : e[ key ].pageY } ); + + } else if ( e[ key ].clientX ) { + result.push( { x : e[ key ].clientX, y : e[ key ].clientY } ); + } + } + + return result; + }; + + var distance = function( point2, point1, what ) { + if ( !point1 || !point2 ) { + return 0; + } + + if ( what === 'x' ) { + return point2.x - point1.x; + + } else if ( what === 'y' ) { + return point2.y - point1.y; + } + + return Math.sqrt( Math.pow( point2.x - point1.x, 2 ) + Math.pow( point2.y - point1.y, 2 ) ); + }; + + var isClickable = function( $el ) { + if ( $el.is('a,area,button,[role="button"],input,label,select,summary,textarea') || $.isFunction( $el.get(0).onclick ) || $el.data('selectable') ) { + return true; + } + + // Check for attributes like data-fancybox-next or data-fancybox-close + for ( var i = 0, atts = $el[0].attributes, n = atts.length; i < n; i++ ) { + if ( atts[i].nodeName.substr(0, 14) === 'data-fancybox-' ) { + return true; + } + } + + return false; + }; + + var hasScrollbars = function( el ) { + var overflowY = window.getComputedStyle( el )['overflow-y']; + var overflowX = window.getComputedStyle( el )['overflow-x']; + + var vertical = (overflowY === 'scroll' || overflowY === 'auto') && el.scrollHeight > el.clientHeight; + var horizontal = (overflowX === 'scroll' || overflowX === 'auto') && el.scrollWidth > el.clientWidth; + + return vertical || horizontal; + }; + + var isScrollable = function ( $el ) { + var rez = false; + + while ( true ) { + rez = hasScrollbars( $el.get(0) ); + + if ( rez ) { + break; + } + + $el = $el.parent(); + + if ( !$el.length || $el.hasClass( 'fancybox-stage' ) || $el.is( 'body' ) ) { + break; + } + } + + return rez; + }; + + + var Guestures = function ( instance ) { + var self = this; + + self.instance = instance; + + self.$bg = instance.$refs.bg; + self.$stage = instance.$refs.stage; + self.$container = instance.$refs.container; + + self.destroy(); + + self.$container.on( 'touchstart.fb.touch mousedown.fb.touch', $.proxy(self, 'ontouchstart') ); + }; + + Guestures.prototype.destroy = function() { + this.$container.off( '.fb.touch' ); + }; + + Guestures.prototype.ontouchstart = function( e ) { + var self = this; + + var $target = $( e.target ); + var instance = self.instance; + var current = instance.current; + var $content = current.$content; + + var isTouchDevice = ( e.type == 'touchstart' ); + + // Do not respond to both (touch and mouse) events + if ( isTouchDevice ) { + self.$container.off( 'mousedown.fb.touch' ); + } + + // Ignore right click + if ( e.originalEvent && e.originalEvent.button == 2 ) { + return; + } + + // Ignore taping on links, buttons, input elements + if ( !$target.length || isClickable( $target ) || isClickable( $target.parent() ) ) { + return; + } + + // Ignore clicks on the scrollbar + if ( !$target.is('img') && e.originalEvent.clientX > $target[0].clientWidth + $target.offset().left ) { + return; + } + + // Ignore clicks while zooming or closing + if ( !current || self.instance.isAnimating || self.instance.isClosing ) { + e.stopPropagation(); + e.preventDefault(); + + return; + } + + self.realPoints = self.startPoints = pointers( e ); + + if ( !self.startPoints ) { + return; + } + + e.stopPropagation(); + + self.startEvent = e; + + self.canTap = true; + self.$target = $target; + self.$content = $content; + self.opts = current.opts.touch; + + self.isPanning = false; + self.isSwiping = false; + self.isZooming = false; + self.isScrolling = false; + + self.sliderStartPos = self.sliderLastPos || { top: 0, left: 0 }; + self.contentStartPos = $.fancybox.getTranslate( self.$content ); + self.contentLastPos = null; + + self.startTime = new Date().getTime(); + self.distanceX = self.distanceY = self.distance = 0; + + self.canvasWidth = Math.round( current.$slide[0].clientWidth ); + self.canvasHeight = Math.round( current.$slide[0].clientHeight ); + + $(document) + .off( '.fb.touch' ) + .on( isTouchDevice ? 'touchend.fb.touch touchcancel.fb.touch' : 'mouseup.fb.touch mouseleave.fb.touch', $.proxy(self, "ontouchend")) + .on( isTouchDevice ? 'touchmove.fb.touch' : 'mousemove.fb.touch', $.proxy(self, "ontouchmove")); + + if ( $.fancybox.isMobile ) { + document.addEventListener('scroll', self.onscroll, true); + } + + if ( !(self.opts || instance.canPan() ) || !( $target.is( self.$stage ) || self.$stage.find( $target ).length ) ) { + + // Prevent image ghosting while dragging + if ( $target.is('img') ) { + e.preventDefault(); + } + + return; + } + + if ( !( $.fancybox.isMobile && ( isScrollable( $target ) || isScrollable( $target.parent() ) ) ) ) { + e.preventDefault(); + } + + if ( self.startPoints.length === 1 ) { + if ( current.type === 'image' && ( self.contentStartPos.width > self.canvasWidth + 1 || self.contentStartPos.height > self.canvasHeight + 1 ) ) { + $.fancybox.stop( self.$content ); + + self.$content.css( 'transition-duration', '' ); + + self.isPanning = true; + + } else { + self.isSwiping = true; + } + + self.$container.addClass( 'fancybox-controls--isGrabbing' ); + } + + if ( self.startPoints.length === 2 && !instance.isAnimating && !current.hasError && current.type === 'image' && ( current.isLoaded || current.$ghost ) ) { + self.canTap = false; + self.isSwiping = false; + self.isPanning = false; + + self.isZooming = true; + + $.fancybox.stop( self.$content ); + + self.$content.css( 'transition-duration', '' ); + + self.centerPointStartX = ( ( self.startPoints[0].x + self.startPoints[1].x ) * 0.5 ) - $(window).scrollLeft(); + self.centerPointStartY = ( ( self.startPoints[0].y + self.startPoints[1].y ) * 0.5 ) - $(window).scrollTop(); + + self.percentageOfImageAtPinchPointX = ( self.centerPointStartX - self.contentStartPos.left ) / self.contentStartPos.width; + self.percentageOfImageAtPinchPointY = ( self.centerPointStartY - self.contentStartPos.top ) / self.contentStartPos.height; + + self.startDistanceBetweenFingers = distance( self.startPoints[0], self.startPoints[1] ); + } + + }; + + Guestures.prototype.onscroll = function(e) { + self.isScrolling = true; + }; + + Guestures.prototype.ontouchmove = function( e ) { + var self = this, + $target = $(e.target); + + if ( self.isScrolling || !( $target.is( self.$stage ) || self.$stage.find( $target ).length ) ) { + self.canTap = false; + + return; + } + + self.newPoints = pointers( e ); + + if ( !( self.opts || self.instance.canPan() ) || !self.newPoints || !self.newPoints.length ) { + return; + } + + if ( !(self.isSwiping && self.isSwiping === true) ) { + e.preventDefault(); + } + + self.distanceX = distance( self.newPoints[0], self.startPoints[0], 'x' ); + self.distanceY = distance( self.newPoints[0], self.startPoints[0], 'y' ); + + self.distance = distance( self.newPoints[0], self.startPoints[0] ) + + // Skip false ontouchmove events (Chrome) + if ( self.distance > 0 ) { + if ( self.isSwiping ) { + self.onSwipe(e); + + } else if ( self.isPanning ) { + self.onPan(); + + } else if ( self.isZooming ) { + self.onZoom(); + } + } + + }; + + Guestures.prototype.onSwipe = function(e) { + var self = this, + swiping = self.isSwiping, + left = self.sliderStartPos.left || 0, + angle; + + // If direction is not yet determined + if ( swiping === true ) { + + // We need at least 10px distance to correctly calculate an angle + if ( Math.abs( self.distance ) > 10 ) { + self.canTap = false; + + if ( self.instance.group.length < 2 && self.opts.vertical ) { + self.isSwiping = 'y'; + + } else if ( self.instance.isDragging || self.opts.vertical === false || ( self.opts.vertical === 'auto' && $( window ).width() > 800 ) ) { + self.isSwiping = 'x'; + + } else { + angle = Math.abs( Math.atan2( self.distanceY, self.distanceX ) * 180 / Math.PI ); + + self.isSwiping = ( angle > 45 && angle < 135 ) ? 'y' : 'x'; + } + + self.canTap = false; + + if ( self.isSwiping === 'y' && $.fancybox.isMobile && ( isScrollable( self.$target ) || isScrollable( self.$target.parent() ) ) ) { + self.isScrolling = true; + + return; + } + + self.instance.isDragging = self.isSwiping; + + // Reset points to avoid jumping, because we dropped first swipes to calculate the angle + self.startPoints = self.newPoints; + + $.each(self.instance.slides, function( index, slide ) { + $.fancybox.stop( slide.$slide ); + + slide.$slide.css( 'transition-duration', '' ); + + slide.inTransition = false; + + if ( slide.pos === self.instance.current.pos ) { + self.sliderStartPos.left = $.fancybox.getTranslate( slide.$slide ).left; + } + }); + + // Stop slideshow + if ( self.instance.SlideShow && self.instance.SlideShow.isActive ) { + self.instance.SlideShow.stop(); + } + } + + return; + } + + // Sticky edges + if ( swiping == 'x' ) { + if ( self.distanceX > 0 && ( self.instance.group.length < 2 || ( self.instance.current.index === 0 && !self.instance.current.opts.loop ) ) ) { + left = left + Math.pow( self.distanceX, 0.8 ); + + } else if ( self.distanceX < 0 && ( self.instance.group.length < 2 || ( self.instance.current.index === self.instance.group.length - 1 && !self.instance.current.opts.loop ) ) ) { + left = left - Math.pow( -self.distanceX, 0.8 ); + + } else { + left = left + self.distanceX; + } + } + + self.sliderLastPos = { + top : swiping == 'x' ? 0 : self.sliderStartPos.top + self.distanceY, + left : left + }; + + if ( self.requestId ) { + cancelAFrame( self.requestId ); + + self.requestId = null; + } + + self.requestId = requestAFrame(function() { + + if ( self.sliderLastPos ) { + $.each(self.instance.slides, function( index, slide ) { + var pos = slide.pos - self.instance.currPos; + + $.fancybox.setTranslate( slide.$slide, { + top : self.sliderLastPos.top, + left : self.sliderLastPos.left + ( pos * self.canvasWidth ) + ( pos * slide.opts.gutter ) + }); + }); + + self.$container.addClass( 'fancybox-is-sliding' ); + } + + }); + + }; + + Guestures.prototype.onPan = function() { + var self = this; + + // Sometimes, when tapping causally, image can move a bit and that breaks double tapping + if ( distance( self.newPoints[0], self.realPoints[0] ) < ($.fancybox.isMobile ? 10 : 5) ) { + self.startPoints = self.newPoints; + return; + } + + self.canTap = false; + + self.contentLastPos = self.limitMovement(); + + if ( self.requestId ) { + cancelAFrame( self.requestId ); + + self.requestId = null; + } + + self.requestId = requestAFrame(function() { + $.fancybox.setTranslate( self.$content, self.contentLastPos ); + }); + }; + + // Make panning sticky to the edges + Guestures.prototype.limitMovement = function() { + var self = this; + + var canvasWidth = self.canvasWidth; + var canvasHeight = self.canvasHeight; + + var distanceX = self.distanceX; + var distanceY = self.distanceY; + + var contentStartPos = self.contentStartPos; + + var currentOffsetX = contentStartPos.left; + var currentOffsetY = contentStartPos.top; + + var currentWidth = contentStartPos.width; + var currentHeight = contentStartPos.height; + + var minTranslateX, minTranslateY, + maxTranslateX, maxTranslateY, + newOffsetX, newOffsetY; + + if ( currentWidth > canvasWidth ) { + newOffsetX = currentOffsetX + distanceX; + + } else { + newOffsetX = currentOffsetX; + } + + newOffsetY = currentOffsetY + distanceY; + + // Slow down proportionally to traveled distance + minTranslateX = Math.max( 0, canvasWidth * 0.5 - currentWidth * 0.5 ); + minTranslateY = Math.max( 0, canvasHeight * 0.5 - currentHeight * 0.5 ); + + maxTranslateX = Math.min( canvasWidth - currentWidth, canvasWidth * 0.5 - currentWidth * 0.5 ); + maxTranslateY = Math.min( canvasHeight - currentHeight, canvasHeight * 0.5 - currentHeight * 0.5 ); + + if ( currentWidth > canvasWidth ) { + + // -> + if ( distanceX > 0 && newOffsetX > minTranslateX ) { + newOffsetX = minTranslateX - 1 + Math.pow( -minTranslateX + currentOffsetX + distanceX, 0.8 ) || 0; + } + + // <- + if ( distanceX < 0 && newOffsetX < maxTranslateX ) { + newOffsetX = maxTranslateX + 1 - Math.pow( maxTranslateX - currentOffsetX - distanceX, 0.8 ) || 0; + } + + } + + if ( currentHeight > canvasHeight ) { + + // \/ + if ( distanceY > 0 && newOffsetY > minTranslateY ) { + newOffsetY = minTranslateY - 1 + Math.pow(-minTranslateY + currentOffsetY + distanceY, 0.8 ) || 0; + } + + // /\ + if ( distanceY < 0 && newOffsetY < maxTranslateY ) { + newOffsetY = maxTranslateY + 1 - Math.pow ( maxTranslateY - currentOffsetY - distanceY, 0.8 ) || 0; + } + + } + + return { + top : newOffsetY, + left : newOffsetX, + scaleX : contentStartPos.scaleX, + scaleY : contentStartPos.scaleY + }; + + }; + + Guestures.prototype.limitPosition = function( newOffsetX, newOffsetY, newWidth, newHeight ) { + var self = this; + + var canvasWidth = self.canvasWidth; + var canvasHeight = self.canvasHeight; + + if ( newWidth > canvasWidth ) { + newOffsetX = newOffsetX > 0 ? 0 : newOffsetX; + newOffsetX = newOffsetX < canvasWidth - newWidth ? canvasWidth - newWidth : newOffsetX; + + } else { + + // Center horizontally + newOffsetX = Math.max( 0, canvasWidth / 2 - newWidth / 2 ); + + } + + if ( newHeight > canvasHeight ) { + newOffsetY = newOffsetY > 0 ? 0 : newOffsetY; + newOffsetY = newOffsetY < canvasHeight - newHeight ? canvasHeight - newHeight : newOffsetY; + + } else { + + // Center vertically + newOffsetY = Math.max( 0, canvasHeight / 2 - newHeight / 2 ); + + } + + return { + top : newOffsetY, + left : newOffsetX + }; + + }; + + Guestures.prototype.onZoom = function() { + var self = this; + + // Calculate current distance between points to get pinch ratio and new width and height + + var currentWidth = self.contentStartPos.width; + var currentHeight = self.contentStartPos.height; + + var currentOffsetX = self.contentStartPos.left; + var currentOffsetY = self.contentStartPos.top; + + var endDistanceBetweenFingers = distance( self.newPoints[0], self.newPoints[1] ); + + var pinchRatio = endDistanceBetweenFingers / self.startDistanceBetweenFingers; + + var newWidth = Math.floor( currentWidth * pinchRatio ); + var newHeight = Math.floor( currentHeight * pinchRatio ); + + // This is the translation due to pinch-zooming + var translateFromZoomingX = (currentWidth - newWidth) * self.percentageOfImageAtPinchPointX; + var translateFromZoomingY = (currentHeight - newHeight) * self.percentageOfImageAtPinchPointY; + + //Point between the two touches + + var centerPointEndX = ((self.newPoints[0].x + self.newPoints[1].x) / 2) - $(window).scrollLeft(); + var centerPointEndY = ((self.newPoints[0].y + self.newPoints[1].y) / 2) - $(window).scrollTop(); + + // And this is the translation due to translation of the centerpoint + // between the two fingers + + var translateFromTranslatingX = centerPointEndX - self.centerPointStartX; + var translateFromTranslatingY = centerPointEndY - self.centerPointStartY; + + // The new offset is the old/current one plus the total translation + + var newOffsetX = currentOffsetX + ( translateFromZoomingX + translateFromTranslatingX ); + var newOffsetY = currentOffsetY + ( translateFromZoomingY + translateFromTranslatingY ); + + var newPos = { + top : newOffsetY, + left : newOffsetX, + scaleX : self.contentStartPos.scaleX * pinchRatio, + scaleY : self.contentStartPos.scaleY * pinchRatio + }; + + self.canTap = false; + + self.newWidth = newWidth; + self.newHeight = newHeight; + + self.contentLastPos = newPos; + + if ( self.requestId ) { + cancelAFrame( self.requestId ); + + self.requestId = null; + } + + self.requestId = requestAFrame(function() { + $.fancybox.setTranslate( self.$content, self.contentLastPos ); + }); + + }; + + Guestures.prototype.ontouchend = function( e ) { + var self = this; + var dMs = Math.max( (new Date().getTime() ) - self.startTime, 1); + + var swiping = self.isSwiping; + var panning = self.isPanning; + var zooming = self.isZooming; + var scrolling = self.isScrolling; + + self.endPoints = pointers( e ); + + self.$container.removeClass( 'fancybox-controls--isGrabbing' ); + + $(document).off( '.fb.touch' ); + + document.removeEventListener('scroll', self.onscroll, true); + + if ( self.requestId ) { + cancelAFrame( self.requestId ); + + self.requestId = null; + } + + self.isSwiping = false; + self.isPanning = false; + self.isZooming = false; + self.isScrolling = false; + + self.instance.isDragging = false; + + if ( self.canTap ) { + return self.onTap( e ); + } + + self.speed = 366; + + // Speed in px/ms + self.velocityX = self.distanceX / dMs * 0.5; + self.velocityY = self.distanceY / dMs * 0.5; + + self.speedX = Math.max( self.speed * 0.5, Math.min( self.speed * 1.5, ( 1 / Math.abs( self.velocityX ) ) * self.speed ) ); + + if ( panning ) { + self.endPanning(); + + } else if ( zooming ) { + self.endZooming(); + + } else { + self.endSwiping( swiping, scrolling ); + } + + return; + }; + + Guestures.prototype.endSwiping = function( swiping, scrolling ) { + var self = this, + ret = false, + len = self.instance.group.length; + + self.sliderLastPos = null; + + // Close if swiped vertically / navigate if horizontally + if ( swiping == 'y' && !scrolling && Math.abs( self.distanceY ) > 50 ) { + + // Continue vertical movement + $.fancybox.animate( self.instance.current.$slide, { + top : self.sliderStartPos.top + self.distanceY + ( self.velocityY * 150 ), + opacity : 0 + }, 150 ); + + ret = self.instance.close( true, 300 ); + + } else if ( swiping == 'x' && self.distanceX > 50 && len > 1 ) { + ret = self.instance.previous( self.speedX ); + + } else if ( swiping == 'x' && self.distanceX < -50 && len > 1 ) { + ret = self.instance.next( self.speedX ); + } + + if ( ret === false && ( swiping == 'x' || swiping == 'y' ) ) { + if ( scrolling || len < 2 ) { + self.instance.centerSlide( self.instance.current, 150 ); + } else { + self.instance.jumpTo( self.instance.current.index ); + } + } + + self.$container.removeClass( 'fancybox-is-sliding' ); + + }; + + // Limit panning from edges + // ======================== + + Guestures.prototype.endPanning = function() { + + var self = this; + var newOffsetX, newOffsetY, newPos; + + if ( !self.contentLastPos ) { + return; + } + + if ( self.opts.momentum === false ) { + newOffsetX = self.contentLastPos.left; + newOffsetY = self.contentLastPos.top; + + } else { + + // Continue movement + newOffsetX = self.contentLastPos.left + ( self.velocityX * self.speed ); + newOffsetY = self.contentLastPos.top + ( self.velocityY * self.speed ); + } + + newPos = self.limitPosition( newOffsetX, newOffsetY, self.contentStartPos.width, self.contentStartPos.height ); + + newPos.width = self.contentStartPos.width; + newPos.height = self.contentStartPos.height; + + $.fancybox.animate( self.$content, newPos, 330 ); + }; + + + Guestures.prototype.endZooming = function() { + var self = this; + + var current = self.instance.current; + + var newOffsetX, newOffsetY, newPos, reset; + + var newWidth = self.newWidth; + var newHeight = self.newHeight; + + if ( !self.contentLastPos ) { + return; + } + + newOffsetX = self.contentLastPos.left; + newOffsetY = self.contentLastPos.top; + + reset = { + top : newOffsetY, + left : newOffsetX, + width : newWidth, + height : newHeight, + scaleX : 1, + scaleY : 1 + }; + + // Reset scalex/scaleY values; this helps for perfomance and does not break animation + $.fancybox.setTranslate( self.$content, reset ); + + if ( newWidth < self.canvasWidth && newHeight < self.canvasHeight ) { + self.instance.scaleToFit( 150 ); + + } else if ( newWidth > current.width || newHeight > current.height ) { + self.instance.scaleToActual( self.centerPointStartX, self.centerPointStartY, 150 ); + + } else { + + newPos = self.limitPosition( newOffsetX, newOffsetY, newWidth, newHeight ); + + // Switch from scale() to width/height or animation will not work correctly + $.fancybox.setTranslate( self.content, $.fancybox.getTranslate( self.$content ) ); + + $.fancybox.animate( self.$content, newPos, 150 ); + } + + }; + + Guestures.prototype.onTap = function(e) { + var self = this; + var $target = $( e.target ); + + var instance = self.instance; + var current = instance.current; + + var endPoints = ( e && pointers( e ) ) || self.startPoints; + + var tapX = endPoints[0] ? endPoints[0].x - self.$stage.offset().left : 0; + var tapY = endPoints[0] ? endPoints[0].y - self.$stage.offset().top : 0; + + var where; + + var process = function ( prefix ) { + + var action = current.opts[ prefix ]; + + if ( $.isFunction( action ) ) { + action = action.apply( instance, [ current, e ] ); + } + + if ( !action) { + return; + } + + switch ( action ) { + + case "close" : + + instance.close( self.startEvent ); + + break; + + case "toggleControls" : + + instance.toggleControls( true ); + + break; + + case "next" : + + instance.next(); + + break; + + case "nextOrClose" : + + if ( instance.group.length > 1 ) { + instance.next(); + + } else { + instance.close( self.startEvent ); + } + + break; + + case "zoom" : + + if ( current.type == 'image' && ( current.isLoaded || current.$ghost ) ) { + + if ( instance.canPan() ) { + instance.scaleToFit(); + + } else if ( instance.isScaledDown() ) { + instance.scaleToActual( tapX, tapY ); + + } else if ( instance.group.length < 2 ) { + instance.close( self.startEvent ); + } + } + + break; + } + + }; + + // Ignore right click + if ( e.originalEvent && e.originalEvent.button == 2 ) { + return; + } + + // Skip if clicked on the scrollbar + if ( !$target.is('img') && tapX > $target[0].clientWidth + $target.offset().left ) { + return; + } + + // Check where is clicked + if ( $target.is( '.fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-container' ) ) { + where = 'Outside'; + + } else if ( $target.is( '.fancybox-slide' ) ) { + where = 'Slide'; + + } else if ( instance.current.$content && instance.current.$content.find( $target ).addBack().filter( $target ).length ) { + where = 'Content'; + + } else { + return; + } + + // Check if this is a double tap + if ( self.tapped ) { + + // Stop previously created single tap + clearTimeout( self.tapped ); + self.tapped = null; + + // Skip if distance between taps is too big + if ( Math.abs( tapX - self.tapX ) > 50 || Math.abs( tapY - self.tapY ) > 50 ) { + return this; + } + + // OK, now we assume that this is a double-tap + process( 'dblclick' + where ); + + } else { + + // Single tap will be processed if user has not clicked second time within 300ms + // or there is no need to wait for double-tap + self.tapX = tapX; + self.tapY = tapY; + + if ( current.opts[ 'dblclick' + where ] && current.opts[ 'dblclick' + where ] !== current.opts[ 'click' + where ] ) { + + self.tapped = setTimeout(function() { + self.tapped = null; + + process( 'click' + where ); + + }, 500); + + } else { + process( 'click' + where ); + } + + } + + return this; + }; + + $(document).on('onActivate.fb', function (e, instance) { + if ( instance && !instance.Guestures ) { + instance.Guestures = new Guestures( instance ); + } + }); + +}( window, document, window.jQuery || jQuery )); + +// ========================================================================== +// +// SlideShow +// Enables slideshow functionality +// +// Example of usage: +// $.fancybox.getInstance().SlideShow.start() +// +// ========================================================================== +;(function (document, $) { + 'use strict'; + + $.extend(true, $.fancybox.defaults, { + btnTpl : { + slideShow : + '' + }, + slideShow : { + autoStart : false, + speed : 3000 + } + }); + + var SlideShow = function( instance ) { + this.instance = instance; + this.init(); + }; + + $.extend( SlideShow.prototype, { + timer : null, + isActive : false, + $button : null, + + init : function() { + var self = this; + + self.$button = self.instance.$refs.toolbar.find('[data-fancybox-play]').on('click', function() { + self.toggle(); + }); + + if ( self.instance.group.length < 2 || !self.instance.group[ self.instance.currIndex ].opts.slideShow ) { + self.$button.hide(); + } + }, + + set : function( force ) { + var self = this; + + // Check if reached last element + if ( self.instance && self.instance.current && (force === true || self.instance.current.opts.loop || self.instance.currIndex < self.instance.group.length - 1 )) { + self.timer = setTimeout(function() { + if ( self.isActive ) { + self.instance.jumpTo( (self.instance.currIndex + 1) % self.instance.group.length ); + } + + }, self.instance.current.opts.slideShow.speed); + + } else { + self.stop(); + self.instance.idleSecondsCounter = 0; + self.instance.showControls(); + } + }, + + clear : function() { + var self = this; + + clearTimeout( self.timer ); + + self.timer = null; + }, + + start : function() { + var self = this; + var current = self.instance.current; + + if ( current ) { + self.isActive = true; + + self.$button + .attr( 'title', current.opts.i18n[ current.opts.lang ].PLAY_STOP ) + .removeClass( 'fancybox-button--play' ) + .addClass( 'fancybox-button--pause' ); + + self.set( true ); + } + }, + + stop : function() { + var self = this; + var current = self.instance.current; + + self.clear(); + + self.$button + .attr( 'title', current.opts.i18n[ current.opts.lang ].PLAY_START ) + .removeClass( 'fancybox-button--pause' ) + .addClass( 'fancybox-button--play' ); + + self.isActive = false; + }, + + toggle : function() { + var self = this; + + if ( self.isActive ) { + self.stop(); + + } else { + self.start(); + } + } + + }); + + $(document).on({ + 'onInit.fb' : function(e, instance) { + if ( instance && !instance.SlideShow ) { + instance.SlideShow = new SlideShow( instance ); + } + }, + + 'beforeShow.fb' : function(e, instance, current, firstRun) { + var SlideShow = instance && instance.SlideShow; + + if ( firstRun ) { + + if ( SlideShow && current.opts.slideShow.autoStart ) { + SlideShow.start(); + } + + } else if ( SlideShow && SlideShow.isActive ) { + SlideShow.clear(); + } + }, + + 'afterShow.fb' : function(e, instance, current) { + var SlideShow = instance && instance.SlideShow; + + if ( SlideShow && SlideShow.isActive ) { + SlideShow.set(); + } + }, + + 'afterKeydown.fb' : function(e, instance, current, keypress, keycode) { + var SlideShow = instance && instance.SlideShow; + + // "P" or Spacebar + if ( SlideShow && current.opts.slideShow && ( keycode === 80 || keycode === 32 ) && !$(document.activeElement).is( 'button,a,input' ) ) { + keypress.preventDefault(); + + SlideShow.toggle(); + } + }, + + 'beforeClose.fb onDeactivate.fb' : function(e, instance) { + var SlideShow = instance && instance.SlideShow; + + if ( SlideShow ) { + SlideShow.stop(); + } + } + }); + + // Page Visibility API to pause slideshow when window is not active + $(document).on("visibilitychange", function() { + var instance = $.fancybox.getInstance(); + var SlideShow = instance && instance.SlideShow; + + if ( SlideShow && SlideShow.isActive ) { + if ( document.hidden ) { + SlideShow.clear(); + + } else { + SlideShow.set(); + } + } + }); + +}( document, window.jQuery || jQuery )); + +// ========================================================================== +// +// FullScreen +// Adds fullscreen functionality +// +// ========================================================================== +;(function (document, $) { + 'use strict'; + + // Collection of methods supported by user browser + var fn = (function () { + + var fnMap = [ + [ + 'requestFullscreen', + 'exitFullscreen', + 'fullscreenElement', + 'fullscreenEnabled', + 'fullscreenchange', + 'fullscreenerror' + ], + // new WebKit + [ + 'webkitRequestFullscreen', + 'webkitExitFullscreen', + 'webkitFullscreenElement', + 'webkitFullscreenEnabled', + 'webkitfullscreenchange', + 'webkitfullscreenerror' + + ], + // old WebKit (Safari 5.1) + [ + 'webkitRequestFullScreen', + 'webkitCancelFullScreen', + 'webkitCurrentFullScreenElement', + 'webkitCancelFullScreen', + 'webkitfullscreenchange', + 'webkitfullscreenerror' + + ], + [ + 'mozRequestFullScreen', + 'mozCancelFullScreen', + 'mozFullScreenElement', + 'mozFullScreenEnabled', + 'mozfullscreenchange', + 'mozfullscreenerror' + ], + [ + 'msRequestFullscreen', + 'msExitFullscreen', + 'msFullscreenElement', + 'msFullscreenEnabled', + 'MSFullscreenChange', + 'MSFullscreenError' + ] + ]; + + var val; + var ret = {}; + var i, j; + + for ( i = 0; i < fnMap.length; i++ ) { + val = fnMap[ i ]; + + if ( val && val[ 1 ] in document ) { + for ( j = 0; j < val.length; j++ ) { + ret[ fnMap[ 0 ][ j ] ] = val[ j ]; + } + + return ret; + } + } + + return false; + })(); + + // If browser does not have Full Screen API, then simply unset default button template and stop + if ( !fn ) { + + if ( $ && $.fancybox ) { + $.fancybox.defaults.btnTpl.fullScreen = false; + } + + return; + } + + var FullScreen = { + + request : function ( elem ) { + + elem = elem || document.documentElement; + + elem[ fn.requestFullscreen ]( elem.ALLOW_KEYBOARD_INPUT ); + + }, + exit : function () { + + document[ fn.exitFullscreen ](); + + }, + toggle : function ( elem ) { + + elem = elem || document.documentElement; + + if ( this.isFullscreen() ) { + this.exit(); + + } else { + this.request( elem ); + } + + }, + isFullscreen : function() { + + return Boolean( document[ fn.fullscreenElement ] ); + + }, + enabled : function() { + + return Boolean( document[ fn.fullscreenEnabled ] ); + + } + }; + + $.extend(true, $.fancybox.defaults, { + btnTpl : { + fullScreen : + '' + }, + fullScreen : { + autoStart : false + } + }); + + $(document).on({ + 'onInit.fb' : function(e, instance) { + var $container; + + if ( instance && instance.group[ instance.currIndex ].opts.fullScreen ) { + $container = instance.$refs.container; + + $container.on('click.fb-fullscreen', '[data-fancybox-fullscreen]', function(e) { + + e.stopPropagation(); + e.preventDefault(); + + FullScreen.toggle( $container[ 0 ] ); + + }); + + if ( instance.opts.fullScreen && instance.opts.fullScreen.autoStart === true ) { + FullScreen.request( $container[ 0 ] ); + } + + // Expose API + instance.FullScreen = FullScreen; + + } else if ( instance ) { + instance.$refs.toolbar.find('[data-fancybox-fullscreen]').hide(); + } + + }, + + 'afterKeydown.fb' : function(e, instance, current, keypress, keycode) { + + // "P" or Spacebar + if ( instance && instance.FullScreen && keycode === 70 ) { + keypress.preventDefault(); + + instance.FullScreen.toggle( instance.$refs.container[ 0 ] ); + } + + }, + + 'beforeClose.fb' : function( instance ) { + if ( instance && instance.FullScreen ) { + FullScreen.exit(); + } + } + }); + + $(document).on(fn.fullscreenchange, function() { + var isFullscreen = FullScreen.isFullscreen(), + instance = $.fancybox.getInstance(); + + if ( instance ) { + + // If image is zooming, then force to stop and reposition properly + if ( instance.current && instance.current.type === 'image' && instance.isAnimating ) { + instance.current.$content.css( 'transition', 'none' ); + + instance.isAnimating = false; + + instance.update( true, true, 0 ); + } + + instance.trigger( 'onFullscreenChange', isFullscreen ); + + instance.$refs.container.toggleClass( 'fancybox-is-fullscreen', isFullscreen ); + } + + }); + +}( document, window.jQuery || jQuery )); + +// ========================================================================== +// +// Thumbs +// Displays thumbnails in a grid +// +// ========================================================================== +;(function (document, $) { + 'use strict'; + + // Make sure there are default values + $.fancybox.defaults = $.extend(true, { + btnTpl : { + thumbs : + '' + }, + thumbs : { + autoStart : false, // Display thumbnails on opening + hideOnClose : true, // Hide thumbnail grid when closing animation starts + parentEl : '.fancybox-container', // Container is injected into this element + axis : 'y' // Vertical (y) or horizontal (x) scrolling + } + }, $.fancybox.defaults); + + var FancyThumbs = function( instance ) { + this.init( instance ); + }; + + $.extend( FancyThumbs.prototype, { + + $button : null, + $grid : null, + $list : null, + isVisible : false, + isActive : false, + + init : function( instance ) { + var self = this; + + self.instance = instance; + + instance.Thumbs = self; + + // Enable thumbs if at least two group items have thumbnails + var first = instance.group[0], + second = instance.group[1]; + + self.opts = instance.group[ instance.currIndex ].opts.thumbs; + + self.$button = instance.$refs.toolbar.find( '[data-fancybox-thumbs]' ); + + if ( self.opts && first && second && ( + ( first.type == 'image' || first.opts.thumb || first.opts.$thumb ) && + ( second.type == 'image' || second.opts.thumb || second.opts.$thumb ) + )) { + + self.$button.show().on('click', function() { + self.toggle(); + }); + + self.isActive = true; + + } else { + self.$button.hide(); + } + }, + + create : function() { + var self = this, + instance = self.instance, + parentEl = self.opts.parentEl, + list, + src; + + self.$grid = $('
    ').appendTo( instance.$refs.container.find( parentEl ).addBack().filter( parentEl ) ); + + // Build list HTML + list = '
      '; + + $.each(instance.group, function( i, item ) { + src = item.opts.thumb || ( item.opts.$thumb ? item.opts.$thumb.attr( 'src' ) : null ); + + if ( !src && item.type === 'image' ) { + src = item.src; + } + + if ( src && src.length ) { + list += '
    • '; + } + }); + + list += '
    '; + + self.$list = $( list ).appendTo( self.$grid ).on('click', 'li', function() { + instance.jumpTo( $(this).data('index') ); + }); + + self.$list.find( 'img' ).hide().one('load', function() { + var $parent = $(this).parent().removeClass( 'fancybox-thumbs-loading' ), + thumbWidth = $parent.outerWidth(), + thumbHeight = $parent.outerHeight(), + width, + height, + widthRatio, + heightRatio; + + width = this.naturalWidth || this.width; + height = this.naturalHeight || this.height; + + // Calculate thumbnail dimensions; center vertically and horizontally + widthRatio = width / thumbWidth; + heightRatio = height / thumbHeight; + + if (widthRatio >= 1 && heightRatio >= 1) { + if (widthRatio > heightRatio) { + width = width / heightRatio; + height = thumbHeight; + + } else { + width = thumbWidth; + height = height / widthRatio; + } + } + + $(this).css({ + width : Math.floor(width), + height : Math.floor(height), + 'margin-top' : height > thumbHeight ? ( Math.floor(thumbHeight * 0.3 - height * 0.3 ) ) : Math.floor(thumbHeight * 0.5 - height * 0.5 ), + 'margin-left' : Math.floor(thumbWidth * 0.5 - width * 0.5 ) + }).show(); + + }) + .each(function() { + this.src = $( this ).data( 'src' ); + }); + + if ( self.opts.axis === 'x' ) { + self.$list.width( parseInt( self.$grid.css("padding-right") ) + ( instance.group.length * self.$list.children().eq(0).outerWidth(true) ) + 'px' ); + } + }, + + focus : function( duration ) { + var self = this, + $list = self.$list, + thumb, + thumbPos; + + if ( self.instance.current ) { + thumb = $list.children() + .removeClass( 'fancybox-thumbs-active' ) + .filter('[data-index="' + self.instance.current.index + '"]') + .addClass('fancybox-thumbs-active'); + + thumbPos = thumb.position(); + + // Check if need to scroll to make current thumb visible + if ( self.opts.axis === 'y' && ( thumbPos.top < 0 || thumbPos.top > ( $list.height() - thumb.outerHeight() ) ) ) { + $list.stop().animate({ 'scrollTop' : $list.scrollTop() + thumbPos.top }, duration); + + } else if ( self.opts.axis === 'x' && ( + thumbPos.left < $list.parent().scrollLeft() || + thumbPos.left > ( $list.parent().scrollLeft() + ( $list.parent().width() - thumb.outerWidth() ) ) + ) + ) { + $list.parent().stop().animate({ 'scrollLeft' : thumbPos.left }, duration); + } + } + }, + + update : function() { + this.instance.$refs.container.toggleClass( 'fancybox-show-thumbs', this.isVisible ); + + if ( this.isVisible ) { + if ( !this.$grid ) { + this.create(); + } + + this.instance.trigger( 'onThumbsShow' ); + + this.focus( 0 ); + + } else if ( this.$grid ) { + this.instance.trigger( 'onThumbsHide' ); + } + + // Update content position + this.instance.update(); + }, + + hide : function() { + this.isVisible = false; + this.update(); + }, + + show : function() { + this.isVisible = true; + this.update(); + }, + + toggle : function() { + this.isVisible = !this.isVisible; + this.update(); + } + }); + + $(document).on({ + + 'onInit.fb' : function(e, instance) { + var Thumbs; + + if ( instance && !instance.Thumbs ) { + Thumbs = new FancyThumbs( instance ); + + if ( Thumbs.isActive && Thumbs.opts.autoStart === true ) { + Thumbs.show(); + } + } + }, + + 'beforeShow.fb' : function(e, instance, item, firstRun) { + var Thumbs = instance && instance.Thumbs; + + if ( Thumbs && Thumbs.isVisible ) { + Thumbs.focus( firstRun ? 0 : 250 ); + } + }, + + 'afterKeydown.fb' : function(e, instance, current, keypress, keycode) { + var Thumbs = instance && instance.Thumbs; + + // "G" + if ( Thumbs && Thumbs.isActive && keycode === 71 ) { + keypress.preventDefault(); + + Thumbs.toggle(); + } + }, + + 'beforeClose.fb' : function( e, instance ) { + var Thumbs = instance && instance.Thumbs; + + if ( Thumbs && Thumbs.isVisible && Thumbs.opts.hideOnClose !== false ) { + Thumbs.$grid.hide(); + } + } + + }); + +}(document, window.jQuery)); + +//// ========================================================================== +// +// Share +// Displays simple form for sharing current url +// +// ========================================================================== +;(function (document, $) { + 'use strict'; + + $.extend(true, $.fancybox.defaults, { + btnTpl : { + share : + '' + }, + share : { + tpl : + '
    ' + + '

    {{SHARE}}

    ' + + '' + + '

    ' + + '
    ' + } + }); + + function escapeHtml(string) { + var entityMap = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + "'": ''', + '/': '/', + '`': '`', + '=': '=' + }; + + return String(string).replace(/[&<>"'`=\/]/g, function (s) { + return entityMap[s]; + }); + } + + $(document).on('click', '[data-fancybox-share]', function() { + var f = $.fancybox.getInstance(), + url, + tpl; + + if ( f ) { + url = f.current.opts.hash === false ? f.current.src : window.location; + tpl = f.current.opts.share.tpl + .replace( /\{\{media\}\}/g, f.current.type === 'image' ? encodeURIComponent( f.current.src ) : '' ) + .replace( /\{\{url\}\}/g, encodeURIComponent( url ) ) + .replace( /\{\{url_raw\}\}/g, escapeHtml( url ) ) + .replace( /\{\{descr\}\}/g, f.$caption ? encodeURIComponent( f.$caption.text() ) : '' ); + + $.fancybox.open({ + src : f.translate( f, tpl ), + type : 'html', + opts : { + animationEffect : "fade", + animationDuration : 250, + afterLoad : function(instance, current) { + // Opening links in a popup window + current.$content.find('.fancybox-share__links a').click(function() { + window.open(this.href, "Share", "width=550, height=450"); + return false; + }); + } + } + }); + } + + }); + +}( document, window.jQuery || jQuery )); + +// ========================================================================== +// +// Hash +// Enables linking to each modal +// +// ========================================================================== +;(function (document, window, $) { + 'use strict'; + + // Simple $.escapeSelector polyfill (for jQuery prior v3) + if ( !$.escapeSelector ) { + $.escapeSelector = function( sel ) { + var rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g; + var fcssescape = function( ch, asCodePoint ) { + if ( asCodePoint ) { + // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER + if ( ch === "\0" ) { + return "\uFFFD"; + } + + // Control characters and (dependent upon position) numbers get escaped as code points + return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; + } + + // Other potentially-special ASCII characters get backslash-escaped + return "\\" + ch; + }; + + return ( sel + "" ).replace( rcssescape, fcssescape ); + }; + } + + // Create new history entry only once + var shouldCreateHistory = true; + + // Variable containing last hash value set by fancyBox + // It will be used to determine if fancyBox needs to close after hash change is detected + var currentHash = null; + + // Throttling the history change + var timerID = null; + + // Get info about gallery name and current index from url + function parseUrl() { + var hash = window.location.hash.substr( 1 ); + var rez = hash.split( '-' ); + var index = rez.length > 1 && /^\+?\d+$/.test( rez[ rez.length - 1 ] ) ? parseInt( rez.pop( -1 ), 10 ) || 1 : 1; + var gallery = rez.join( '-' ); + + // Index is starting from 1 + if ( index < 1 ) { + index = 1; + } + + return { + hash : hash, + index : index, + gallery : gallery + }; + } + + // Trigger click evnt on links to open new fancyBox instance + function triggerFromUrl( url ) { + var $el; + + if ( url.gallery !== '' ) { + + // If we can find element matching 'data-fancybox' atribute, then trigger click event for that .. + $el = $( "[data-fancybox='" + $.escapeSelector( url.gallery ) + "']" ).eq( url.index - 1 ); + + if ( !$el.length ) { + // .. if not, try finding element by ID + $el = $( "#" + $.escapeSelector( url.gallery ) + "" ); + } + + if ( $el.length ) { + shouldCreateHistory = false; + + $el.trigger( 'click' ); + } + + } + } + + // Get gallery name from current instance + function getGalleryID( instance ) { + var opts; + + if ( !instance ) { + return false; + } + + opts = instance.current ? instance.current.opts : instance.opts; + + return opts.hash || ( opts.$orig ? opts.$orig.data( 'fancybox' ) : '' ); + } + + // Start when DOM becomes ready + $(function() { + + // Check if user has disabled this module + if ( $.fancybox.defaults.hash === false ) { + return; + } + + // Update hash when opening/closing fancyBox + $(document).on({ + 'onInit.fb' : function( e, instance ) { + var url, gallery; + + if ( instance.group[ instance.currIndex ].opts.hash === false ) { + return; + } + + url = parseUrl(); + gallery = getGalleryID( instance ); + + // Make sure gallery start index matches index from hash + if ( gallery && url.gallery && gallery == url.gallery ) { + instance.currIndex = url.index - 1; + } + }, + + 'beforeShow.fb' : function( e, instance, current ) { + var gallery; + + if ( !current || current.opts.hash === false ) { + return; + } + + gallery = getGalleryID( instance ); + + // Update window hash + if ( gallery && gallery !== '' ) { + + if ( window.location.hash.indexOf( gallery ) < 0 ) { + instance.opts.origHash = window.location.hash; + } + + currentHash = gallery + ( instance.group.length > 1 ? '-' + ( current.index + 1 ) : '' ); + + if ( 'replaceState' in window.history ) { + if ( timerID ) { + clearTimeout( timerID ); + } + + timerID = setTimeout(function() { + window.history[ shouldCreateHistory ? 'pushState' : 'replaceState' ]( {} , document.title, window.location.pathname + window.location.search + '#' + currentHash ); + + timerID = null; + + shouldCreateHistory = false; + + }, 300); + + } else { + window.location.hash = currentHash; + } + + } + + }, + + 'beforeClose.fb' : function( e, instance, current ) { + var gallery, origHash; + + if ( timerID ) { + clearTimeout( timerID ); + } + + if ( current.opts.hash === false ) { + return; + } + + gallery = getGalleryID( instance ); + origHash = instance && instance.opts.origHash ? instance.opts.origHash : ''; + + // Remove hash from location bar + if ( gallery && gallery !== '' ) { + + if ( 'replaceState' in history ) { + window.history.replaceState( {} , document.title, window.location.pathname + window.location.search + origHash ); + + } else { + window.location.hash = origHash; + + // Keep original scroll position + $( window ).scrollTop( instance.scrollTop ).scrollLeft( instance.scrollLeft ); + } + } + + currentHash = null; + } + }); + + // Check if need to close after url has changed + $(window).on('hashchange.fb', function() { + var url = parseUrl(); + + if ( $.fancybox.getInstance() ) { + if ( currentHash && currentHash !== url.gallery + '-' + url.index && !( url.index === 1 && currentHash == url.gallery ) ) { + currentHash = null; + + $.fancybox.close(); + } + + } else if ( url.gallery !== '' ) { + triggerFromUrl( url ); + } + }); + + // Check current hash and trigger click event on matching element to start fancyBox, if needed + setTimeout(function() { + triggerFromUrl( parseUrl() ); + }, 50); + }); + +}( document, window, window.jQuery || jQuery )); + +;(function (document, $) { + 'use strict'; + + var prevTime = new Date().getTime(); + + $(document).on({ + 'onInit.fb' : function( e, instance, current ) { + instance.$refs.stage.on('mousewheel DOMMouseScroll wheel MozMousePixelScroll', function(e) { + var current = instance.current, + currTime = new Date().getTime(); + + if ( instance.group.length < 1 || current.opts.wheel === false || ( current.opts.wheel === 'auto' && current.type !== 'image' ) ) { + return; + } + + e.preventDefault(); + e.stopPropagation(); + + if ( current.$slide.hasClass( 'fancybox-animated' ) ) { + return; + } + + e = e.originalEvent || e; + + if ( currTime - prevTime < 250 ) { + return; + } + + prevTime = currTime; + + instance[ ( -e.deltaY || -e.deltaX || e.wheelDelta || -e.detail ) < 0 ? 'next' : 'previous' ](); + + }); + } + }); + +}( document, window.jQuery || jQuery )); diff --git a/wp-content/themes/chromax/assets/vendors/js/lenis.js b/wp-content/themes/chromax/assets/vendors/js/lenis.js new file mode 100644 index 0000000..cbb3a63 --- /dev/null +++ b/wp-content/themes/chromax/assets/vendors/js/lenis.js @@ -0,0 +1,399 @@ +var t, e; +t = this, e = function() { + function t(t, e, i) { + return Math.max(t, Math.min(e, i)) + } + class e { + advance(e) { + if (!this.isRunning) return; + let i = !1; + if (this.lerp) this.value = (s = this.value, o = this.to, n = 60 * this.lerp, r = e, function(t, e, i) { + return (1 - i) * t + i * e + }(s, o, 1 - Math.exp(-n * r))), Math.round(this.value) === this.to && (this.value = this.to, i = !0); + else { + this.currentTime += e; + const s = t(0, this.currentTime / this.duration, 1); + i = s >= 1; + const o = i ? 1 : this.easing(s); + this.value = this.from + (this.to - this.from) * o + } + var s, o, n, r; + this.onUpdate ? .(this.value, i), i && this.stop() + } + stop() { + this.isRunning = !1 + } + fromTo(t, e, { + lerp: i = .1, + duration: s = 1, + easing: o = (t => t), + onStart: n, + onUpdate: r + }) { + this.from = this.value = t, this.to = e, this.lerp = i, this.duration = s, this.easing = o, this.currentTime = 0, this.isRunning = !0, n ? .(), this.onUpdate = r + } + } + class i { + constructor({ + wrapper: t, + content: e, + autoResize: i = !0 + } = {}) { + if (this.wrapper = t, this.content = e, i) { + const t = function(t, e) { + let i; + return function() { + let e = arguments, + s = this; + clearTimeout(i), i = setTimeout((function() { + t.apply(s, e) + }), 250) + } + }(this.resize); + this.wrapper !== window && (this.wrapperResizeObserver = new ResizeObserver(t), this.wrapperResizeObserver.observe(this.wrapper)), this.contentResizeObserver = new ResizeObserver(t), this.contentResizeObserver.observe(this.content) + } + this.resize() + } + destroy() { + this.wrapperResizeObserver ? .disconnect(), this.contentResizeObserver ? .disconnect() + } + resize = () => { + this.onWrapperResize(), this.onContentResize() + }; + onWrapperResize = () => { + this.wrapper === window ? (this.width = window.innerWidth, this.height = window.innerHeight) : (this.width = this.wrapper.clientWidth, this.height = this.wrapper.clientHeight) + }; + onContentResize = () => { + this.scrollHeight = this.content.scrollHeight, this.scrollWidth = this.content.scrollWidth + }; + get limit() { + return { + x: this.scrollWidth - this.width, + y: this.scrollHeight - this.height + } + } + } + class s { + constructor() { + this.events = {} + } + emit(t, ...e) { + let i = this.events[t] || []; + for (let t = 0, s = i.length; t < s; t++) i[t](...e) + } + on(t, e) { + return this.events[t] ? .push(e) || (this.events[t] = [e]), () => { + this.events[t] = this.events[t] ? .filter((t => e !== t)) + } + } + off(t, e) { + this.events[t] = this.events[t] ? .filter((t => e !== t)) + } + destroy() { + this.events = {} + } + } + class o { + constructor(t, { + wheelMultiplier: e = 1, + touchMultiplier: i = 2, + normalizeWheel: o = !1 + }) { + this.element = t, this.wheelMultiplier = e, this.touchMultiplier = i, this.normalizeWheel = o, this.touchStart = { + x: null, + y: null + }, this.emitter = new s, this.element.addEventListener("wheel", this.onWheel, { + passive: !1 + }), this.element.addEventListener("touchstart", this.onTouchStart, { + passive: !1 + }), this.element.addEventListener("touchmove", this.onTouchMove, { + passive: !1 + }), this.element.addEventListener("touchend", this.onTouchEnd, { + passive: !1 + }) + } + on(t, e) { + return this.emitter.on(t, e) + } + destroy() { + this.emitter.destroy(), this.element.removeEventListener("wheel", this.onWheel, { + passive: !1 + }), this.element.removeEventListener("touchstart", this.onTouchStart, { + passive: !1 + }), this.element.removeEventListener("touchmove", this.onTouchMove, { + passive: !1 + }), this.element.removeEventListener("touchend", this.onTouchEnd, { + passive: !1 + }) + } + onTouchStart = t => { + const { + clientX: e, + clientY: i + } = t.targetTouches ? t.targetTouches[0] : t; + this.touchStart.x = e, this.touchStart.y = i, this.lastDelta = { + x: 0, + y: 0 + }, this.emitter.emit("scroll", { + deltaX: 0, + deltaY: 0, + event: t + }) + }; + onTouchMove = t => { + const { + clientX: e, + clientY: i + } = t.targetTouches ? t.targetTouches[0] : t, s = -(e - this.touchStart.x) * this.touchMultiplier, o = -(i - this.touchStart.y) * this.touchMultiplier; + this.touchStart.x = e, this.touchStart.y = i, this.lastDelta = { + x: s, + y: o + }, this.emitter.emit("scroll", { + deltaX: s, + deltaY: o, + event: t + }) + }; + onTouchEnd = t => { + this.emitter.emit("scroll", { + deltaX: this.lastDelta.x, + deltaY: this.lastDelta.y, + event: t + }) + }; + onWheel = e => { + let { + deltaX: i, + deltaY: s + } = e; + this.normalizeWheel && (i = t(-100, i, 100), s = t(-100, s, 100)), i *= this.wheelMultiplier, s *= this.wheelMultiplier, this.emitter.emit("scroll", { + deltaX: i, + deltaY: s, + event: e + }) + } + } + return class { + constructor({ + wrapper: t = window, + content: n = document.documentElement, + wheelEventsTarget: r = t, + eventsTarget: l = r, + smoothWheel: h = !0, + smoothTouch: a = !1, + syncTouch: c = !1, + syncTouchLerp: p = .075, + touchInertiaMultiplier: u = 35, + duration: d, + easing: m = (t => Math.min(1, 1.001 - Math.pow(2, -10 * t))), + lerp: g = !d && .1, + infinite: v = !1, + orientation: S = "vertical", + gestureOrientation: f = "vertical", + touchMultiplier: w = 1, + wheelMultiplier: y = 1, + normalizeWheel: T = !1, + autoResize: z = !0 + } = {}) { + window.lenisVersion = "1.0.33", t !== document.documentElement && t !== document.body || (t = window), this.options = { + wrapper: t, + content: n, + wheelEventsTarget: r, + eventsTarget: l, + smoothWheel: h, + smoothTouch: a, + syncTouch: c, + syncTouchLerp: p, + touchInertiaMultiplier: u, + duration: d, + easing: m, + lerp: g, + infinite: v, + gestureOrientation: f, + orientation: S, + touchMultiplier: w, + wheelMultiplier: y, + normalizeWheel: T, + autoResize: z + }, this.animate = new e, this.emitter = new s, this.dimensions = new i({ + wrapper: t, + content: n, + autoResize: z + }), this.toggleClass("lenis", !0), this.velocity = 0, this.isLocked = !1, this.isStopped = !1, this.isSmooth = c || h || a, this.isScrolling = !1, this.targetScroll = this.animatedScroll = this.actualScroll, this.options.wrapper.addEventListener("scroll", this.onNativeScroll, { + passive: !1 + }), this.virtualScroll = new o(l, { + touchMultiplier: w, + wheelMultiplier: y, + normalizeWheel: T + }), this.virtualScroll.on("scroll", this.onVirtualScroll) + } + destroy() { + this.emitter.destroy(), this.options.wrapper.removeEventListener("scroll", this.onNativeScroll, { + passive: !1 + }), this.virtualScroll.destroy(), this.dimensions.destroy(), this.toggleClass("lenis", !1), this.toggleClass("lenis-smooth", !1), this.toggleClass("lenis-scrolling", !1), this.toggleClass("lenis-stopped", !1), this.toggleClass("lenis-locked", !1) + } + on(t, e) { + return this.emitter.on(t, e) + } + off(t, e) { + return this.emitter.off(t, e) + } + setScroll(t) { + this.isHorizontal ? this.rootElement.scrollLeft = t : this.rootElement.scrollTop = t + } + onVirtualScroll = ({ + deltaX: t, + deltaY: e, + event: i + }) => { + if (i.ctrlKey) return; + const s = i.type.includes("touch"), + o = i.type.includes("wheel"); + if ((this.options.smoothTouch || this.options.syncTouch) && s && "touchstart" === i.type) return void this.reset(); + const n = 0 === t && 0 === e, + r = "vertical" === this.options.gestureOrientation && 0 === e || "horizontal" === this.options.gestureOrientation && 0 === t; + if (n || r) return; + let l = i.composedPath(); + if (l = l.slice(0, l.indexOf(this.rootElement)), l.find((t => t.hasAttribute ? .("data-lenis-prevent") || s && t.hasAttribute ? .("data-lenis-prevent-touch") || o && t.hasAttribute ? .("data-lenis-prevent-wheel") || t.classList ? .contains("lenis")))) return; + if (this.isStopped || this.isLocked) return void i.preventDefault(); + if (this.isSmooth = (this.options.smoothTouch || this.options.syncTouch) && s || this.options.smoothWheel && o, !this.isSmooth) return this.isScrolling = !1, void this.animate.stop(); + i.preventDefault(); + let h = e; + "both" === this.options.gestureOrientation ? h = Math.abs(e) > Math.abs(t) ? e : t : "horizontal" === this.options.gestureOrientation && (h = t); + const a = s && this.options.syncTouch, + c = s && "touchend" === i.type && Math.abs(h) > 5; + c && (h = this.velocity * this.options.touchInertiaMultiplier), this.scrollTo(this.targetScroll + h, { + programmatic: !1, + ...a ? { + lerp: c ? this.options.syncTouchLerp : 1 + } : { + lerp: this.options.lerp, + duration: this.options.duration, + easing: this.options.easing + } + }) + }; + resize() { + this.dimensions.resize() + } + emit() { + this.emitter.emit("scroll", this) + } + onNativeScroll = () => { + if (!this.__preventNextScrollEvent && !this.isScrolling) { + const t = this.animatedScroll; + this.animatedScroll = this.targetScroll = this.actualScroll, this.velocity = 0, this.direction = Math.sign(this.animatedScroll - t), this.emit() + } + }; + reset() { + this.isLocked = !1, this.isScrolling = !1, this.animatedScroll = this.targetScroll = this.actualScroll, this.velocity = 0, this.animate.stop() + } + start() { + this.isStopped = !1, this.reset() + } + stop() { + this.isStopped = !0, this.animate.stop(), this.reset() + } + raf(t) { + const e = t - (this.time || t); + this.time = t, this.animate.advance(.001 * e) + } + scrollTo(e, { + offset: i = 0, + immediate: s = !1, + lock: o = !1, + duration: n = this.options.duration, + easing: r = this.options.easing, + lerp: l = !n && this.options.lerp, + onComplete: h = null, + force: a = !1, + programmatic: c = !0 + } = {}) { + if (!this.isStopped && !this.isLocked || a) { + if (["top", "left", "start"].includes(e)) e = 0; + else if (["bottom", "right", "end"].includes(e)) e = this.limit; + else { + let t; + if ("string" == typeof e ? t = document.querySelector(e) : e ? .nodeType && (t = e), t) { + if (this.options.wrapper !== window) { + const t = this.options.wrapper.getBoundingClientRect(); + i -= this.isHorizontal ? t.left : t.top + } + const s = t.getBoundingClientRect(); + e = (this.isHorizontal ? s.left : s.top) + this.animatedScroll + } + } + if ("number" == typeof e) { + if (e += i, e = Math.round(e), this.options.infinite ? c && (this.targetScroll = this.animatedScroll = this.scroll) : e = t(0, e, this.limit), s) return this.animatedScroll = this.targetScroll = e, this.setScroll(this.scroll), this.reset(), void h ? .(this); + if (!c) { + if (e === this.targetScroll) return; + this.targetScroll = e + } + this.animate.fromTo(this.animatedScroll, e, { + duration: n, + easing: r, + lerp: l, + onStart: () => { + o && (this.isLocked = !0), this.isScrolling = !0 + }, + onUpdate: (t, e) => { + this.isScrolling = !0, this.velocity = t - this.animatedScroll, this.direction = Math.sign(this.velocity), this.animatedScroll = t, this.setScroll(this.scroll), c && (this.targetScroll = t), e || this.emit(), e && (this.reset(), this.emit(), h ? .(this), this.__preventNextScrollEvent = !0, requestAnimationFrame((() => { + delete this.__preventNextScrollEvent + }))) + } + }) + } + } + } + get rootElement() { + return this.options.wrapper === window ? document.documentElement : this.options.wrapper + } + get limit() { + return this.dimensions.limit[this.isHorizontal ? "x" : "y"] + } + get isHorizontal() { + return "horizontal" === this.options.orientation + } + get actualScroll() { + return this.isHorizontal ? this.rootElement.scrollLeft : this.rootElement.scrollTop + } + get scroll() { + return this.options.infinite ? (this.animatedScroll % (t = this.limit) + t) % t : this.animatedScroll; + var t + } + get progress() { + return 0 === this.limit ? 1 : this.scroll / this.limit + } + get isSmooth() { + return this.__isSmooth + } + set isSmooth(t) { + this.__isSmooth !== t && (this.__isSmooth = t, this.toggleClass("lenis-smooth", t)) + } + get isScrolling() { + return this.__isScrolling + } + set isScrolling(t) { + this.__isScrolling !== t && (this.__isScrolling = t, this.toggleClass("lenis-scrolling", t)) + } + get isStopped() { + return this.__isStopped + } + set isStopped(t) { + this.__isStopped !== t && (this.__isStopped = t, this.toggleClass("lenis-stopped", t)) + } + get isLocked() { + return this.__isLocked + } + set isLocked(t) { + this.__isLocked !== t && (this.__isLocked = t, this.toggleClass("lenis-locked", t)) + } + get className() { + let t = "lenis"; + return this.isStopped && (t += " lenis-stopped"), this.isLocked && (t += " lenis-locked"), this.isScrolling && (t += " lenis-scrolling"), this.isSmooth && (t += " lenis-smooth"), t + } + toggleClass(t, e) { + this.rootElement.classList.toggle(t, e), this.emitter.emit("className change", this) + } + } +}, "object" == typeof exports && "undefined" != typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define(e) : (t = "undefined" != typeof globalThis ? globalThis : t || self).Lenis = e(); \ No newline at end of file diff --git a/wp-content/themes/chromax/assets/vendors/js/lenis.min.js b/wp-content/themes/chromax/assets/vendors/js/lenis.min.js new file mode 100644 index 0000000..140ba39 --- /dev/null +++ b/wp-content/themes/chromax/assets/vendors/js/lenis.min.js @@ -0,0 +1 @@ +var t,e;t=this,e=function(){function t(t,e,i){return Math.max(t,Math.min(e,i))}class e{advance(e){if(!this.isRunning)return;let i=!1;if(this.lerp)this.value=(s=this.value,o=this.to,n=60*this.lerp,r=e,function(t,e,i){return(1-i)*t+i*e}(s,o,1-Math.exp(-n*r))),Math.round(this.value)===this.to&&(this.value=this.to,i=!0);else{this.currentTime+=e;const s=t(0,this.currentTime/this.duration,1);i=s>=1;const o=i?1:this.easing(s);this.value=this.from+(this.to-this.from)*o}var s,o,n,r;this.onUpdate?.(this.value,i),i&&this.stop()}stop(){this.isRunning=!1}fromTo(t,e,{lerp:i=.1,duration:s=1,easing:o=(t=>t),onStart:n,onUpdate:r}){this.from=this.value=t,this.to=e,this.lerp=i,this.duration=s,this.easing=o,this.currentTime=0,this.isRunning=!0,n?.(),this.onUpdate=r}}class i{constructor({wrapper:t,content:e,autoResize:i=!0}={}){if(this.wrapper=t,this.content=e,i){const t=function(t,e){let i;return function(){let e=arguments,s=this;clearTimeout(i),i=setTimeout((function(){t.apply(s,e)}),250)}}(this.resize);this.wrapper!==window&&(this.wrapperResizeObserver=new ResizeObserver(t),this.wrapperResizeObserver.observe(this.wrapper)),this.contentResizeObserver=new ResizeObserver(t),this.contentResizeObserver.observe(this.content)}this.resize()}destroy(){this.wrapperResizeObserver?.disconnect(),this.contentResizeObserver?.disconnect()}resize=()=>{this.onWrapperResize(),this.onContentResize()};onWrapperResize=()=>{this.wrapper===window?(this.width=window.innerWidth,this.height=window.innerHeight):(this.width=this.wrapper.clientWidth,this.height=this.wrapper.clientHeight)};onContentResize=()=>{this.scrollHeight=this.content.scrollHeight,this.scrollWidth=this.content.scrollWidth};get limit(){return{x:this.scrollWidth-this.width,y:this.scrollHeight-this.height}}}class s{constructor(){this.events={}}emit(t,...e){let i=this.events[t]||[];for(let t=0,s=i.length;t{this.events[t]=this.events[t]?.filter((t=>e!==t))}}off(t,e){this.events[t]=this.events[t]?.filter((t=>e!==t))}destroy(){this.events={}}}class o{constructor(t,{wheelMultiplier:e=1,touchMultiplier:i=2,normalizeWheel:o=!1}){this.element=t,this.wheelMultiplier=e,this.touchMultiplier=i,this.normalizeWheel=o,this.touchStart={x:null,y:null},this.emitter=new s,this.element.addEventListener("wheel",this.onWheel,{passive:!1}),this.element.addEventListener("touchstart",this.onTouchStart,{passive:!1}),this.element.addEventListener("touchmove",this.onTouchMove,{passive:!1}),this.element.addEventListener("touchend",this.onTouchEnd,{passive:!1})}on(t,e){return this.emitter.on(t,e)}destroy(){this.emitter.destroy(),this.element.removeEventListener("wheel",this.onWheel,{passive:!1}),this.element.removeEventListener("touchstart",this.onTouchStart,{passive:!1}),this.element.removeEventListener("touchmove",this.onTouchMove,{passive:!1}),this.element.removeEventListener("touchend",this.onTouchEnd,{passive:!1})}onTouchStart=t=>{const{clientX:e,clientY:i}=t.targetTouches?t.targetTouches[0]:t;this.touchStart.x=e,this.touchStart.y=i,this.lastDelta={x:0,y:0},this.emitter.emit("scroll",{deltaX:0,deltaY:0,event:t})};onTouchMove=t=>{const{clientX:e,clientY:i}=t.targetTouches?t.targetTouches[0]:t,s=-(e-this.touchStart.x)*this.touchMultiplier,o=-(i-this.touchStart.y)*this.touchMultiplier;this.touchStart.x=e,this.touchStart.y=i,this.lastDelta={x:s,y:o},this.emitter.emit("scroll",{deltaX:s,deltaY:o,event:t})};onTouchEnd=t=>{this.emitter.emit("scroll",{deltaX:this.lastDelta.x,deltaY:this.lastDelta.y,event:t})};onWheel=e=>{let{deltaX:i,deltaY:s}=e;this.normalizeWheel&&(i=t(-100,i,100),s=t(-100,s,100)),i*=this.wheelMultiplier,s*=this.wheelMultiplier,this.emitter.emit("scroll",{deltaX:i,deltaY:s,event:e})}}return class{constructor({wrapper:t=window,content:n=document.documentElement,wheelEventsTarget:r=t,eventsTarget:l=r,smoothWheel:h=!0,smoothTouch:a=!1,syncTouch:c=!1,syncTouchLerp:p=.075,touchInertiaMultiplier:u=35,duration:d,easing:m=(t=>Math.min(1,1.001-Math.pow(2,-10*t))),lerp:g=!d&&.1,infinite:v=!1,orientation:S="vertical",gestureOrientation:f="vertical",touchMultiplier:w=1,wheelMultiplier:y=1,normalizeWheel:T=!1,autoResize:z=!0}={}){window.lenisVersion="1.0.33",t!==document.documentElement&&t!==document.body||(t=window),this.options={wrapper:t,content:n,wheelEventsTarget:r,eventsTarget:l,smoothWheel:h,smoothTouch:a,syncTouch:c,syncTouchLerp:p,touchInertiaMultiplier:u,duration:d,easing:m,lerp:g,infinite:v,gestureOrientation:f,orientation:S,touchMultiplier:w,wheelMultiplier:y,normalizeWheel:T,autoResize:z},this.animate=new e,this.emitter=new s,this.dimensions=new i({wrapper:t,content:n,autoResize:z}),this.toggleClass("lenis",!0),this.velocity=0,this.isLocked=!1,this.isStopped=!1,this.isSmooth=c||h||a,this.isScrolling=!1,this.targetScroll=this.animatedScroll=this.actualScroll,this.options.wrapper.addEventListener("scroll",this.onNativeScroll,{passive:!1}),this.virtualScroll=new o(l,{touchMultiplier:w,wheelMultiplier:y,normalizeWheel:T}),this.virtualScroll.on("scroll",this.onVirtualScroll)}destroy(){this.emitter.destroy(),this.options.wrapper.removeEventListener("scroll",this.onNativeScroll,{passive:!1}),this.virtualScroll.destroy(),this.dimensions.destroy(),this.toggleClass("lenis",!1),this.toggleClass("lenis-smooth",!1),this.toggleClass("lenis-scrolling",!1),this.toggleClass("lenis-stopped",!1),this.toggleClass("lenis-locked",!1)}on(t,e){return this.emitter.on(t,e)}off(t,e){return this.emitter.off(t,e)}setScroll(t){this.isHorizontal?this.rootElement.scrollLeft=t:this.rootElement.scrollTop=t}onVirtualScroll=({deltaX:t,deltaY:e,event:i})=>{if(i.ctrlKey)return;const s=i.type.includes("touch"),o=i.type.includes("wheel");if((this.options.smoothTouch||this.options.syncTouch)&&s&&"touchstart"===i.type)return void this.reset();const n=0===t&&0===e,r="vertical"===this.options.gestureOrientation&&0===e||"horizontal"===this.options.gestureOrientation&&0===t;if(n||r)return;let l=i.composedPath();if(l=l.slice(0,l.indexOf(this.rootElement)),l.find((t=>t.hasAttribute?.("data-lenis-prevent")||s&&t.hasAttribute?.("data-lenis-prevent-touch")||o&&t.hasAttribute?.("data-lenis-prevent-wheel")||t.classList?.contains("lenis"))))return;if(this.isStopped||this.isLocked)return void i.preventDefault();if(this.isSmooth=(this.options.smoothTouch||this.options.syncTouch)&&s||this.options.smoothWheel&&o,!this.isSmooth)return this.isScrolling=!1,void this.animate.stop();i.preventDefault();let h=e;"both"===this.options.gestureOrientation?h=Math.abs(e)>Math.abs(t)?e:t:"horizontal"===this.options.gestureOrientation&&(h=t);const a=s&&this.options.syncTouch,c=s&&"touchend"===i.type&&Math.abs(h)>5;c&&(h=this.velocity*this.options.touchInertiaMultiplier),this.scrollTo(this.targetScroll+h,{programmatic:!1,...a?{lerp:c?this.options.syncTouchLerp:1}:{lerp:this.options.lerp,duration:this.options.duration,easing:this.options.easing}})};resize(){this.dimensions.resize()}emit(){this.emitter.emit("scroll",this)}onNativeScroll=()=>{if(!this.__preventNextScrollEvent&&!this.isScrolling){const t=this.animatedScroll;this.animatedScroll=this.targetScroll=this.actualScroll,this.velocity=0,this.direction=Math.sign(this.animatedScroll-t),this.emit()}};reset(){this.isLocked=!1,this.isScrolling=!1,this.animatedScroll=this.targetScroll=this.actualScroll,this.velocity=0,this.animate.stop()}start(){this.isStopped=!1,this.reset()}stop(){this.isStopped=!0,this.animate.stop(),this.reset()}raf(t){const e=t-(this.time||t);this.time=t,this.animate.advance(.001*e)}scrollTo(e,{offset:i=0,immediate:s=!1,lock:o=!1,duration:n=this.options.duration,easing:r=this.options.easing,lerp:l=!n&&this.options.lerp,onComplete:h=null,force:a=!1,programmatic:c=!0}={}){if(!this.isStopped&&!this.isLocked||a){if(["top","left","start"].includes(e))e=0;else if(["bottom","right","end"].includes(e))e=this.limit;else{let t;if("string"==typeof e?t=document.querySelector(e):e?.nodeType&&(t=e),t){if(this.options.wrapper!==window){const t=this.options.wrapper.getBoundingClientRect();i-=this.isHorizontal?t.left:t.top}const s=t.getBoundingClientRect();e=(this.isHorizontal?s.left:s.top)+this.animatedScroll}}if("number"==typeof e){if(e+=i,e=Math.round(e),this.options.infinite?c&&(this.targetScroll=this.animatedScroll=this.scroll):e=t(0,e,this.limit),s)return this.animatedScroll=this.targetScroll=e,this.setScroll(this.scroll),this.reset(),void h?.(this);if(!c){if(e===this.targetScroll)return;this.targetScroll=e}this.animate.fromTo(this.animatedScroll,e,{duration:n,easing:r,lerp:l,onStart:()=>{o&&(this.isLocked=!0),this.isScrolling=!0},onUpdate:(t,e)=>{this.isScrolling=!0,this.velocity=t-this.animatedScroll,this.direction=Math.sign(this.velocity),this.animatedScroll=t,this.setScroll(this.scroll),c&&(this.targetScroll=t),e||this.emit(),e&&(this.reset(),this.emit(),h?.(this),this.__preventNextScrollEvent=!0,requestAnimationFrame((()=>{delete this.__preventNextScrollEvent})))}})}}}get rootElement(){return this.options.wrapper===window?document.documentElement:this.options.wrapper}get limit(){return this.dimensions.limit[this.isHorizontal?"x":"y"]}get isHorizontal(){return"horizontal"===this.options.orientation}get actualScroll(){return this.isHorizontal?this.rootElement.scrollLeft:this.rootElement.scrollTop}get scroll(){return this.options.infinite?(this.animatedScroll%(t=this.limit)+t)%t:this.animatedScroll;var t}get progress(){return 0===this.limit?1:this.scroll/this.limit}get isSmooth(){return this.__isSmooth}set isSmooth(t){this.__isSmooth!==t&&(this.__isSmooth=t,this.toggleClass("lenis-smooth",t))}get isScrolling(){return this.__isScrolling}set isScrolling(t){this.__isScrolling!==t&&(this.__isScrolling=t,this.toggleClass("lenis-scrolling",t))}get isStopped(){return this.__isStopped}set isStopped(t){this.__isStopped!==t&&(this.__isStopped=t,this.toggleClass("lenis-stopped",t))}get isLocked(){return this.__isLocked}set isLocked(t){this.__isLocked!==t&&(this.__isLocked=t,this.toggleClass("lenis-locked",t))}get className(){let t="lenis";return this.isStopped&&(t+=" lenis-stopped"),this.isLocked&&(t+=" lenis-locked"),this.isScrolling&&(t+=" lenis-scrolling"),this.isSmooth&&(t+=" lenis-smooth"),t}toggleClass(t,e){this.rootElement.classList.toggle(t,e),this.emitter.emit("className change",this)}}},"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).Lenis=e(); \ No newline at end of file diff --git a/wp-content/themes/chromax/assets/vendors/js/owl.carousel.js b/wp-content/themes/chromax/assets/vendors/js/owl.carousel.js new file mode 100644 index 0000000..46927b5 --- /dev/null +++ b/wp-content/themes/chromax/assets/vendors/js/owl.carousel.js @@ -0,0 +1,3448 @@ +/** + * Owl Carousel v2.3.4 + * Copyright 2013-2018 David Deutsch + * Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE + */ +/** + * Owl carousel + * @version 2.3.4 + * @author Bartosz Wojciechowski + * @author David Deutsch + * @license The MIT License (MIT) + * @todo Lazy Load Icon + * @todo prevent animationend bubling + * @todo itemsScaleUp + * @todo Test Zepto + * @todo stagePadding calculate wrong active classes + */ + ;(function($, window, document, undefined) { + + /** + * Creates a carousel. + * @class The Owl Carousel. + * @public + * @param {HTMLElement|jQuery} element - The element to create the carousel for. + * @param {Object} [options] - The options + */ + function Owl(element, options) { + + /** + * Current settings for the carousel. + * @public + */ + this.settings = null; + + /** + * Current options set by the caller including defaults. + * @public + */ + this.options = $.extend({}, Owl.Defaults, options); + + /** + * Plugin element. + * @public + */ + this.$element = $(element); + + /** + * Proxied event handlers. + * @protected + */ + this._handlers = {}; + + /** + * References to the running plugins of this carousel. + * @protected + */ + this._plugins = {}; + + /** + * Currently suppressed events to prevent them from being retriggered. + * @protected + */ + this._supress = {}; + + /** + * Absolute current position. + * @protected + */ + this._current = null; + + /** + * Animation speed in milliseconds. + * @protected + */ + this._speed = null; + + /** + * Coordinates of all items in pixel. + * @todo The name of this member is missleading. + * @protected + */ + this._coordinates = []; + + /** + * Current breakpoint. + * @todo Real media queries would be nice. + * @protected + */ + this._breakpoint = null; + + /** + * Current width of the plugin element. + */ + this._width = null; + + /** + * All real items. + * @protected + */ + this._items = []; + + /** + * All cloned items. + * @protected + */ + this._clones = []; + + /** + * Merge values of all items. + * @todo Maybe this could be part of a plugin. + * @protected + */ + this._mergers = []; + + /** + * Widths of all items. + */ + this._widths = []; + + /** + * Invalidated parts within the update process. + * @protected + */ + this._invalidated = {}; + + /** + * Ordered list of workers for the update process. + * @protected + */ + this._pipe = []; + + /** + * Current state information for the drag operation. + * @todo #261 + * @protected + */ + this._drag = { + time: null, + target: null, + pointer: null, + stage: { + start: null, + current: null + }, + direction: null + }; + + /** + * Current state information and their tags. + * @type {Object} + * @protected + */ + this._states = { + current: {}, + tags: { + 'initializing': [ 'busy' ], + 'animating': [ 'busy' ], + 'dragging': [ 'interacting' ] + } + }; + + $.each([ 'onResize', 'onThrottledResize' ], $.proxy(function(i, handler) { + this._handlers[handler] = $.proxy(this[handler], this); + }, this)); + + $.each(Owl.Plugins, $.proxy(function(key, plugin) { + this._plugins[key.charAt(0).toLowerCase() + key.slice(1)] + = new plugin(this); + }, this)); + + $.each(Owl.Workers, $.proxy(function(priority, worker) { + this._pipe.push({ + 'filter': worker.filter, + 'run': $.proxy(worker.run, this) + }); + }, this)); + + this.setup(); + this.initialize(); + } + + /** + * Default options for the carousel. + * @public + */ + Owl.Defaults = { + items: 3, + loop: false, + center: false, + rewind: false, + checkVisibility: true, + + mouseDrag: true, + touchDrag: true, + pullDrag: true, + freeDrag: false, + + margin: 0, + stagePadding: 0, + + merge: false, + mergeFit: true, + autoWidth: false, + + startPosition: 0, + rtl: false, + + smartSpeed: 250, + fluidSpeed: false, + dragEndSpeed: false, + + responsive: {}, + responsiveRefreshRate: 200, + responsiveBaseElement: window, + + fallbackEasing: 'swing', + slideTransition: '', + + info: false, + + nestedItemSelector: false, + itemElement: 'div', + stageElement: 'div', + + refreshClass: 'owl-refresh', + loadedClass: 'owl-loaded', + loadingClass: 'owl-loading', + rtlClass: 'owl-rtl', + responsiveClass: 'owl-responsive', + dragClass: 'owl-drag', + itemClass: 'owl-item', + stageClass: 'owl-stage', + stageOuterClass: 'owl-stage-outer', + grabClass: 'owl-grab' + }; + + /** + * Enumeration for width. + * @public + * @readonly + * @enum {String} + */ + Owl.Width = { + Default: 'default', + Inner: 'inner', + Outer: 'outer' + }; + + /** + * Enumeration for types. + * @public + * @readonly + * @enum {String} + */ + Owl.Type = { + Event: 'event', + State: 'state' + }; + + /** + * Contains all registered plugins. + * @public + */ + Owl.Plugins = {}; + + /** + * List of workers involved in the update process. + */ + Owl.Workers = [ { + filter: [ 'width', 'settings' ], + run: function() { + this._width = this.$element.width(); + } + }, { + filter: [ 'width', 'items', 'settings' ], + run: function(cache) { + cache.current = this._items && this._items[this.relative(this._current)]; + } + }, { + filter: [ 'items', 'settings' ], + run: function() { + this.$stage.children('.cloned').remove(); + } + }, { + filter: [ 'width', 'items', 'settings' ], + run: function(cache) { + var margin = this.settings.margin || '', + grid = !this.settings.autoWidth, + rtl = this.settings.rtl, + css = { + 'width': 'auto', + 'margin-left': rtl ? margin : '', + 'margin-right': rtl ? '' : margin + }; + + !grid && this.$stage.children().css(css); + + cache.css = css; + } + }, { + filter: [ 'width', 'items', 'settings' ], + run: function(cache) { + var width = (this.width() / this.settings.items).toFixed(3) - this.settings.margin, + merge = null, + iterator = this._items.length, + grid = !this.settings.autoWidth, + widths = []; + + cache.items = { + merge: false, + width: width + }; + + while (iterator--) { + merge = this._mergers[iterator]; + merge = this.settings.mergeFit && Math.min(merge, this.settings.items) || merge; + + cache.items.merge = merge > 1 || cache.items.merge; + + widths[iterator] = !grid ? this._items[iterator].width() : width * merge; + } + + this._widths = widths; + } + }, { + filter: [ 'items', 'settings' ], + run: function() { + var clones = [], + items = this._items, + settings = this.settings, + // TODO: Should be computed from number of min width items in stage + view = Math.max(settings.items * 2, 4), + size = Math.ceil(items.length / 2) * 2, + repeat = settings.loop && items.length ? settings.rewind ? view : Math.max(view, size) : 0, + append = '', + prepend = ''; + + repeat /= 2; + + while (repeat > 0) { + // Switch to only using appended clones + clones.push(this.normalize(clones.length / 2, true)); + append = append + items[clones[clones.length - 1]][0].outerHTML; + clones.push(this.normalize(items.length - 1 - (clones.length - 1) / 2, true)); + prepend = items[clones[clones.length - 1]][0].outerHTML + prepend; + repeat -= 1; + } + + this._clones = clones; + + $(append).addClass('cloned').appendTo(this.$stage); + $(prepend).addClass('cloned').prependTo(this.$stage); + } + }, { + filter: [ 'width', 'items', 'settings' ], + run: function() { + var rtl = this.settings.rtl ? 1 : -1, + size = this._clones.length + this._items.length, + iterator = -1, + previous = 0, + current = 0, + coordinates = []; + + while (++iterator < size) { + previous = coordinates[iterator - 1] || 0; + current = this._widths[this.relative(iterator)] + this.settings.margin; + coordinates.push(previous + current * rtl); + } + + this._coordinates = coordinates; + } + }, { + filter: [ 'width', 'items', 'settings' ], + run: function() { + var padding = this.settings.stagePadding, + coordinates = this._coordinates, + css = { + 'width': Math.ceil(Math.abs(coordinates[coordinates.length - 1])) + padding * 2, + 'padding-left': padding || '', + 'padding-right': padding || '' + }; + + this.$stage.css(css); + } + }, { + filter: [ 'width', 'items', 'settings' ], + run: function(cache) { + var iterator = this._coordinates.length, + grid = !this.settings.autoWidth, + items = this.$stage.children(); + + if (grid && cache.items.merge) { + while (iterator--) { + cache.css.width = this._widths[this.relative(iterator)]; + items.eq(iterator).css(cache.css); + } + } else if (grid) { + cache.css.width = cache.items.width; + items.css(cache.css); + } + } + }, { + filter: [ 'items' ], + run: function() { + this._coordinates.length < 1 && this.$stage.removeAttr('style'); + } + }, { + filter: [ 'width', 'items', 'settings' ], + run: function(cache) { + cache.current = cache.current ? this.$stage.children().index(cache.current) : 0; + cache.current = Math.max(this.minimum(), Math.min(this.maximum(), cache.current)); + this.reset(cache.current); + } + }, { + filter: [ 'position' ], + run: function() { + this.animate(this.coordinates(this._current)); + } + }, { + filter: [ 'width', 'position', 'items', 'settings' ], + run: function() { + var rtl = this.settings.rtl ? 1 : -1, + padding = this.settings.stagePadding * 2, + begin = this.coordinates(this.current()) + padding, + end = begin + this.width() * rtl, + inner, outer, matches = [], i, n; + + for (i = 0, n = this._coordinates.length; i < n; i++) { + inner = this._coordinates[i - 1] || 0; + outer = Math.abs(this._coordinates[i]) + padding * rtl; + + if ((this.op(inner, '<=', begin) && (this.op(inner, '>', end))) + || (this.op(outer, '<', begin) && this.op(outer, '>', end))) { + matches.push(i); + } + } + + this.$stage.children('.active').removeClass('active'); + this.$stage.children(':eq(' + matches.join('), :eq(') + ')').addClass('active'); + + this.$stage.children('.center').removeClass('center'); + if (this.settings.center) { + this.$stage.children().eq(this.current()).addClass('center'); + } + } + } ]; + + /** + * Create the stage DOM element + */ + Owl.prototype.initializeStage = function() { + this.$stage = this.$element.find('.' + this.settings.stageClass); + + // if the stage is already in the DOM, grab it and skip stage initialization + if (this.$stage.length) { + return; + } + + this.$element.addClass(this.options.loadingClass); + + // create stage + this.$stage = $('<' + this.settings.stageElement + '>', { + "class": this.settings.stageClass + }).wrap( $( '
    ', { + "class": this.settings.stageOuterClass + })); + + // append stage + this.$element.append(this.$stage.parent()); + }; + + /** + * Create item DOM elements + */ + Owl.prototype.initializeItems = function() { + var $items = this.$element.find('.owl-item'); + + // if the items are already in the DOM, grab them and skip item initialization + if ($items.length) { + this._items = $items.get().map(function(item) { + return $(item); + }); + + this._mergers = this._items.map(function() { + return 1; + }); + + this.refresh(); + + return; + } + + // append content + this.replace(this.$element.children().not(this.$stage.parent())); + + // check visibility + if (this.isVisible()) { + // update view + this.refresh(); + } else { + // invalidate width + this.invalidate('width'); + } + + this.$element + .removeClass(this.options.loadingClass) + .addClass(this.options.loadedClass); + }; + + /** + * Initializes the carousel. + * @protected + */ + Owl.prototype.initialize = function() { + this.enter('initializing'); + this.trigger('initialize'); + + this.$element.toggleClass(this.settings.rtlClass, this.settings.rtl); + + if (this.settings.autoWidth && !this.is('pre-loading')) { + var imgs, nestedSelector, width; + imgs = this.$element.find('img'); + nestedSelector = this.settings.nestedItemSelector ? '.' + this.settings.nestedItemSelector : undefined; + width = this.$element.children(nestedSelector).width(); + + if (imgs.length && width <= 0) { + this.preloadAutoWidthImages(imgs); + } + } + + this.initializeStage(); + this.initializeItems(); + + // register event handlers + this.registerEventHandlers(); + + this.leave('initializing'); + this.trigger('initialized'); + }; + + /** + * @returns {Boolean} visibility of $element + * if you know the carousel will always be visible you can set `checkVisibility` to `false` to + * prevent the expensive browser layout forced reflow the $element.is(':visible') does + */ + Owl.prototype.isVisible = function() { + return this.settings.checkVisibility + ? this.$element.is(':visible') + : true; + }; + + /** + * Setups the current settings. + * @todo Remove responsive classes. Why should adaptive designs be brought into IE8? + * @todo Support for media queries by using `matchMedia` would be nice. + * @public + */ + Owl.prototype.setup = function() { + var viewport = this.viewport(), + overwrites = this.options.responsive, + match = -1, + settings = null; + + if (!overwrites) { + settings = $.extend({}, this.options); + } else { + $.each(overwrites, function(breakpoint) { + if (breakpoint <= viewport && breakpoint > match) { + match = Number(breakpoint); + } + }); + + settings = $.extend({}, this.options, overwrites[match]); + if (typeof settings.stagePadding === 'function') { + settings.stagePadding = settings.stagePadding(); + } + delete settings.responsive; + + // responsive class + if (settings.responsiveClass) { + this.$element.attr('class', + this.$element.attr('class').replace(new RegExp('(' + this.options.responsiveClass + '-)\\S+\\s', 'g'), '$1' + match) + ); + } + } + + this.trigger('change', { property: { name: 'settings', value: settings } }); + this._breakpoint = match; + this.settings = settings; + this.invalidate('settings'); + this.trigger('changed', { property: { name: 'settings', value: this.settings } }); + }; + + /** + * Updates option logic if necessery. + * @protected + */ + Owl.prototype.optionsLogic = function() { + if (this.settings.autoWidth) { + this.settings.stagePadding = false; + this.settings.merge = false; + } + }; + + /** + * Prepares an item before add. + * @todo Rename event parameter `content` to `item`. + * @protected + * @returns {jQuery|HTMLElement} - The item container. + */ + Owl.prototype.prepare = function(item) { + var event = this.trigger('prepare', { content: item }); + + if (!event.data) { + event.data = $('<' + this.settings.itemElement + '/>') + .addClass(this.options.itemClass).append(item) + } + + this.trigger('prepared', { content: event.data }); + + return event.data; + }; + + /** + * Updates the view. + * @public + */ + Owl.prototype.update = function() { + var i = 0, + n = this._pipe.length, + filter = $.proxy(function(p) { return this[p] }, this._invalidated), + cache = {}; + + while (i < n) { + if (this._invalidated.all || $.grep(this._pipe[i].filter, filter).length > 0) { + this._pipe[i].run(cache); + } + i++; + } + + this._invalidated = {}; + + !this.is('valid') && this.enter('valid'); + }; + + /** + * Gets the width of the view. + * @public + * @param {Owl.Width} [dimension=Owl.Width.Default] - The dimension to return. + * @returns {Number} - The width of the view in pixel. + */ + Owl.prototype.width = function(dimension) { + dimension = dimension || Owl.Width.Default; + switch (dimension) { + case Owl.Width.Inner: + case Owl.Width.Outer: + return this._width; + default: + return this._width - this.settings.stagePadding * 2 + this.settings.margin; + } + }; + + /** + * Refreshes the carousel primarily for adaptive purposes. + * @public + */ + Owl.prototype.refresh = function() { + this.enter('refreshing'); + this.trigger('refresh'); + + this.setup(); + + this.optionsLogic(); + + this.$element.addClass(this.options.refreshClass); + + this.update(); + + this.$element.removeClass(this.options.refreshClass); + + this.leave('refreshing'); + this.trigger('refreshed'); + }; + + /** + * Checks window `resize` event. + * @protected + */ + Owl.prototype.onThrottledResize = function() { + window.clearTimeout(this.resizeTimer); + this.resizeTimer = window.setTimeout(this._handlers.onResize, this.settings.responsiveRefreshRate); + }; + + /** + * Checks window `resize` event. + * @protected + */ + Owl.prototype.onResize = function() { + if (!this._items.length) { + return false; + } + + if (this._width === this.$element.width()) { + return false; + } + + if (!this.isVisible()) { + return false; + } + + this.enter('resizing'); + + if (this.trigger('resize').isDefaultPrevented()) { + this.leave('resizing'); + return false; + } + + this.invalidate('width'); + + this.refresh(); + + this.leave('resizing'); + this.trigger('resized'); + }; + + /** + * Registers event handlers. + * @todo Check `msPointerEnabled` + * @todo #261 + * @protected + */ + Owl.prototype.registerEventHandlers = function() { + if ($.support.transition) { + this.$stage.on($.support.transition.end + '.owl.core', $.proxy(this.onTransitionEnd, this)); + } + + if (this.settings.responsive !== false) { + this.on(window, 'resize', this._handlers.onThrottledResize); + } + + if (this.settings.mouseDrag) { + this.$element.addClass(this.options.dragClass); + this.$stage.on('mousedown.owl.core', $.proxy(this.onDragStart, this)); + this.$stage.on('dragstart.owl.core selectstart.owl.core', function() { return false }); + } + + if (this.settings.touchDrag){ + this.$stage.on('touchstart.owl.core', $.proxy(this.onDragStart, this)); + this.$stage.on('touchcancel.owl.core', $.proxy(this.onDragEnd, this)); + } + }; + + /** + * Handles `touchstart` and `mousedown` events. + * @todo Horizontal swipe threshold as option + * @todo #261 + * @protected + * @param {Event} event - The event arguments. + */ + Owl.prototype.onDragStart = function(event) { + var stage = null; + + if (event.which === 3) { + return; + } + + if ($.support.transform) { + stage = this.$stage.css('transform').replace(/.*\(|\)| /g, '').split(','); + stage = { + x: stage[stage.length === 16 ? 12 : 4], + y: stage[stage.length === 16 ? 13 : 5] + }; + } else { + stage = this.$stage.position(); + stage = { + x: this.settings.rtl ? + stage.left + this.$stage.width() - this.width() + this.settings.margin : + stage.left, + y: stage.top + }; + } + + if (this.is('animating')) { + $.support.transform ? this.animate(stage.x) : this.$stage.stop() + this.invalidate('position'); + } + + this.$element.toggleClass(this.options.grabClass, event.type === 'mousedown'); + + this.speed(0); + + this._drag.time = new Date().getTime(); + this._drag.target = $(event.target); + this._drag.stage.start = stage; + this._drag.stage.current = stage; + this._drag.pointer = this.pointer(event); + + $(document).on('mouseup.owl.core touchend.owl.core', $.proxy(this.onDragEnd, this)); + + $(document).one('mousemove.owl.core touchmove.owl.core', $.proxy(function(event) { + var delta = this.difference(this._drag.pointer, this.pointer(event)); + + $(document).on('mousemove.owl.core touchmove.owl.core', $.proxy(this.onDragMove, this)); + + if (Math.abs(delta.x) < Math.abs(delta.y) && this.is('valid')) { + return; + } + + event.preventDefault(); + + this.enter('dragging'); + this.trigger('drag'); + }, this)); + }; + + /** + * Handles the `touchmove` and `mousemove` events. + * @todo #261 + * @protected + * @param {Event} event - The event arguments. + */ + Owl.prototype.onDragMove = function(event) { + var minimum = null, + maximum = null, + pull = null, + delta = this.difference(this._drag.pointer, this.pointer(event)), + stage = this.difference(this._drag.stage.start, delta); + + if (!this.is('dragging')) { + return; + } + + event.preventDefault(); + + if (this.settings.loop) { + minimum = this.coordinates(this.minimum()); + maximum = this.coordinates(this.maximum() + 1) - minimum; + stage.x = (((stage.x - minimum) % maximum + maximum) % maximum) + minimum; + } else { + minimum = this.settings.rtl ? this.coordinates(this.maximum()) : this.coordinates(this.minimum()); + maximum = this.settings.rtl ? this.coordinates(this.minimum()) : this.coordinates(this.maximum()); + pull = this.settings.pullDrag ? -1 * delta.x / 5 : 0; + stage.x = Math.max(Math.min(stage.x, minimum + pull), maximum + pull); + } + + this._drag.stage.current = stage; + + this.animate(stage.x); + }; + + /** + * Handles the `touchend` and `mouseup` events. + * @todo #261 + * @todo Threshold for click event + * @protected + * @param {Event} event - The event arguments. + */ + Owl.prototype.onDragEnd = function(event) { + var delta = this.difference(this._drag.pointer, this.pointer(event)), + stage = this._drag.stage.current, + direction = delta.x > 0 ^ this.settings.rtl ? 'left' : 'right'; + + $(document).off('.owl.core'); + + this.$element.removeClass(this.options.grabClass); + + if (delta.x !== 0 && this.is('dragging') || !this.is('valid')) { + this.speed(this.settings.dragEndSpeed || this.settings.smartSpeed); + this.current(this.closest(stage.x, delta.x !== 0 ? direction : this._drag.direction)); + this.invalidate('position'); + this.update(); + + this._drag.direction = direction; + + if (Math.abs(delta.x) > 3 || new Date().getTime() - this._drag.time > 300) { + this._drag.target.one('click.owl.core', function() { return false; }); + } + } + + if (!this.is('dragging')) { + return; + } + + this.leave('dragging'); + this.trigger('dragged'); + }; + + /** + * Gets absolute position of the closest item for a coordinate. + * @todo Setting `freeDrag` makes `closest` not reusable. See #165. + * @protected + * @param {Number} coordinate - The coordinate in pixel. + * @param {String} direction - The direction to check for the closest item. Ether `left` or `right`. + * @return {Number} - The absolute position of the closest item. + */ + Owl.prototype.closest = function(coordinate, direction) { + var position = -1, + pull = 30, + width = this.width(), + coordinates = this.coordinates(); + + if (!this.settings.freeDrag) { + // check closest item + $.each(coordinates, $.proxy(function(index, value) { + // on a left pull, check on current index + if (direction === 'left' && coordinate > value - pull && coordinate < value + pull) { + position = index; + // on a right pull, check on previous index + // to do so, subtract width from value and set position = index + 1 + } else if (direction === 'right' && coordinate > value - width - pull && coordinate < value - width + pull) { + position = index + 1; + } else if (this.op(coordinate, '<', value) + && this.op(coordinate, '>', coordinates[index + 1] !== undefined ? coordinates[index + 1] : value - width)) { + position = direction === 'left' ? index + 1 : index; + } + return position === -1; + }, this)); + } + + if (!this.settings.loop) { + // non loop boundries + if (this.op(coordinate, '>', coordinates[this.minimum()])) { + position = coordinate = this.minimum(); + } else if (this.op(coordinate, '<', coordinates[this.maximum()])) { + position = coordinate = this.maximum(); + } + } + + return position; + }; + + /** + * Animates the stage. + * @todo #270 + * @public + * @param {Number} coordinate - The coordinate in pixels. + */ + Owl.prototype.animate = function(coordinate) { + var animate = this.speed() > 0; + + this.is('animating') && this.onTransitionEnd(); + + if (animate) { + this.enter('animating'); + this.trigger('translate'); + } + + if ($.support.transform3d && $.support.transition) { + this.$stage.css({ + transform: 'translate3d(' + coordinate + 'px,0px,0px)', + transition: (this.speed() / 1000) + 's' + ( + this.settings.slideTransition ? ' ' + this.settings.slideTransition : '' + ) + }); + } else if (animate) { + this.$stage.animate({ + left: coordinate + 'px' + }, this.speed(), this.settings.fallbackEasing, $.proxy(this.onTransitionEnd, this)); + } else { + this.$stage.css({ + left: coordinate + 'px' + }); + } + }; + + /** + * Checks whether the carousel is in a specific state or not. + * @param {String} state - The state to check. + * @returns {Boolean} - The flag which indicates if the carousel is busy. + */ + Owl.prototype.is = function(state) { + return this._states.current[state] && this._states.current[state] > 0; + }; + + /** + * Sets the absolute position of the current item. + * @public + * @param {Number} [position] - The new absolute position or nothing to leave it unchanged. + * @returns {Number} - The absolute position of the current item. + */ + Owl.prototype.current = function(position) { + if (position === undefined) { + return this._current; + } + + if (this._items.length === 0) { + return undefined; + } + + position = this.normalize(position); + + if (this._current !== position) { + var event = this.trigger('change', { property: { name: 'position', value: position } }); + + if (event.data !== undefined) { + position = this.normalize(event.data); + } + + this._current = position; + + this.invalidate('position'); + + this.trigger('changed', { property: { name: 'position', value: this._current } }); + } + + return this._current; + }; + + /** + * Invalidates the given part of the update routine. + * @param {String} [part] - The part to invalidate. + * @returns {Array.} - The invalidated parts. + */ + Owl.prototype.invalidate = function(part) { + if ($.type(part) === 'string') { + this._invalidated[part] = true; + this.is('valid') && this.leave('valid'); + } + return $.map(this._invalidated, function(v, i) { return i }); + }; + + /** + * Resets the absolute position of the current item. + * @public + * @param {Number} position - The absolute position of the new item. + */ + Owl.prototype.reset = function(position) { + position = this.normalize(position); + + if (position === undefined) { + return; + } + + this._speed = 0; + this._current = position; + + this.suppress([ 'translate', 'translated' ]); + + this.animate(this.coordinates(position)); + + this.release([ 'translate', 'translated' ]); + }; + + /** + * Normalizes an absolute or a relative position of an item. + * @public + * @param {Number} position - The absolute or relative position to normalize. + * @param {Boolean} [relative=false] - Whether the given position is relative or not. + * @returns {Number} - The normalized position. + */ + Owl.prototype.normalize = function(position, relative) { + var n = this._items.length, + m = relative ? 0 : this._clones.length; + + if (!this.isNumeric(position) || n < 1) { + position = undefined; + } else if (position < 0 || position >= n + m) { + position = ((position - m / 2) % n + n) % n + m / 2; + } + + return position; + }; + + /** + * Converts an absolute position of an item into a relative one. + * @public + * @param {Number} position - The absolute position to convert. + * @returns {Number} - The converted position. + */ + Owl.prototype.relative = function(position) { + position -= this._clones.length / 2; + return this.normalize(position, true); + }; + + /** + * Gets the maximum position for the current item. + * @public + * @param {Boolean} [relative=false] - Whether to return an absolute position or a relative position. + * @returns {Number} + */ + Owl.prototype.maximum = function(relative) { + var settings = this.settings, + maximum = this._coordinates.length, + iterator, + reciprocalItemsWidth, + elementWidth; + + if (settings.loop) { + maximum = this._clones.length / 2 + this._items.length - 1; + } else if (settings.autoWidth || settings.merge) { + iterator = this._items.length; + if (iterator) { + reciprocalItemsWidth = this._items[--iterator].width(); + elementWidth = this.$element.width(); + while (iterator--) { + reciprocalItemsWidth += this._items[iterator].width() + this.settings.margin; + if (reciprocalItemsWidth > elementWidth) { + break; + } + } + } + maximum = iterator + 1; + } else if (settings.center) { + maximum = this._items.length - 1; + } else { + maximum = this._items.length - settings.items; + } + + if (relative) { + maximum -= this._clones.length / 2; + } + + return Math.max(maximum, 0); + }; + + /** + * Gets the minimum position for the current item. + * @public + * @param {Boolean} [relative=false] - Whether to return an absolute position or a relative position. + * @returns {Number} + */ + Owl.prototype.minimum = function(relative) { + return relative ? 0 : this._clones.length / 2; + }; + + /** + * Gets an item at the specified relative position. + * @public + * @param {Number} [position] - The relative position of the item. + * @return {jQuery|Array.} - The item at the given position or all items if no position was given. + */ + Owl.prototype.items = function(position) { + if (position === undefined) { + return this._items.slice(); + } + + position = this.normalize(position, true); + return this._items[position]; + }; + + /** + * Gets an item at the specified relative position. + * @public + * @param {Number} [position] - The relative position of the item. + * @return {jQuery|Array.} - The item at the given position or all items if no position was given. + */ + Owl.prototype.mergers = function(position) { + if (position === undefined) { + return this._mergers.slice(); + } + + position = this.normalize(position, true); + return this._mergers[position]; + }; + + /** + * Gets the absolute positions of clones for an item. + * @public + * @param {Number} [position] - The relative position of the item. + * @returns {Array.} - The absolute positions of clones for the item or all if no position was given. + */ + Owl.prototype.clones = function(position) { + var odd = this._clones.length / 2, + even = odd + this._items.length, + map = function(index) { return index % 2 === 0 ? even + index / 2 : odd - (index + 1) / 2 }; + + if (position === undefined) { + return $.map(this._clones, function(v, i) { return map(i) }); + } + + return $.map(this._clones, function(v, i) { return v === position ? map(i) : null }); + }; + + /** + * Sets the current animation speed. + * @public + * @param {Number} [speed] - The animation speed in milliseconds or nothing to leave it unchanged. + * @returns {Number} - The current animation speed in milliseconds. + */ + Owl.prototype.speed = function(speed) { + if (speed !== undefined) { + this._speed = speed; + } + + return this._speed; + }; + + /** + * Gets the coordinate of an item. + * @todo The name of this method is missleanding. + * @public + * @param {Number} position - The absolute position of the item within `minimum()` and `maximum()`. + * @returns {Number|Array.} - The coordinate of the item in pixel or all coordinates. + */ + Owl.prototype.coordinates = function(position) { + var multiplier = 1, + newPosition = position - 1, + coordinate; + + if (position === undefined) { + return $.map(this._coordinates, $.proxy(function(coordinate, index) { + return this.coordinates(index); + }, this)); + } + + if (this.settings.center) { + if (this.settings.rtl) { + multiplier = -1; + newPosition = position + 1; + } + + coordinate = this._coordinates[position]; + coordinate += (this.width() - coordinate + (this._coordinates[newPosition] || 0)) / 2 * multiplier; + } else { + coordinate = this._coordinates[newPosition] || 0; + } + + coordinate = Math.ceil(coordinate); + + return coordinate; + }; + + /** + * Calculates the speed for a translation. + * @protected + * @param {Number} from - The absolute position of the start item. + * @param {Number} to - The absolute position of the target item. + * @param {Number} [factor=undefined] - The time factor in milliseconds. + * @returns {Number} - The time in milliseconds for the translation. + */ + Owl.prototype.duration = function(from, to, factor) { + if (factor === 0) { + return 0; + } + + return Math.min(Math.max(Math.abs(to - from), 1), 6) * Math.abs((factor || this.settings.smartSpeed)); + }; + + /** + * Slides to the specified item. + * @public + * @param {Number} position - The position of the item. + * @param {Number} [speed] - The time in milliseconds for the transition. + */ + Owl.prototype.to = function(position, speed) { + var current = this.current(), + revert = null, + distance = position - this.relative(current), + direction = (distance > 0) - (distance < 0), + items = this._items.length, + minimum = this.minimum(), + maximum = this.maximum(); + + if (this.settings.loop) { + if (!this.settings.rewind && Math.abs(distance) > items / 2) { + distance += direction * -1 * items; + } + + position = current + distance; + revert = ((position - minimum) % items + items) % items + minimum; + + if (revert !== position && revert - distance <= maximum && revert - distance > 0) { + current = revert - distance; + position = revert; + this.reset(current); + } + } else if (this.settings.rewind) { + maximum += 1; + position = (position % maximum + maximum) % maximum; + } else { + position = Math.max(minimum, Math.min(maximum, position)); + } + + this.speed(this.duration(current, position, speed)); + this.current(position); + + if (this.isVisible()) { + this.update(); + } + }; + + /** + * Slides to the next item. + * @public + * @param {Number} [speed] - The time in milliseconds for the transition. + */ + Owl.prototype.next = function(speed) { + speed = speed || false; + this.to(this.relative(this.current()) + 1, speed); + }; + + /** + * Slides to the previous item. + * @public + * @param {Number} [speed] - The time in milliseconds for the transition. + */ + Owl.prototype.prev = function(speed) { + speed = speed || false; + this.to(this.relative(this.current()) - 1, speed); + }; + + /** + * Handles the end of an animation. + * @protected + * @param {Event} event - The event arguments. + */ + Owl.prototype.onTransitionEnd = function(event) { + + // if css2 animation then event object is undefined + if (event !== undefined) { + event.stopPropagation(); + + // Catch only owl-stage transitionEnd event + if ((event.target || event.srcElement || event.originalTarget) !== this.$stage.get(0)) { + return false; + } + } + + this.leave('animating'); + this.trigger('translated'); + }; + + /** + * Gets viewport width. + * @protected + * @return {Number} - The width in pixel. + */ + Owl.prototype.viewport = function() { + var width; + if (this.options.responsiveBaseElement !== window) { + width = $(this.options.responsiveBaseElement).width(); + } else if (window.innerWidth) { + width = window.innerWidth; + } else if (document.documentElement && document.documentElement.clientWidth) { + width = document.documentElement.clientWidth; + } else { + console.warn('Can not detect viewport width.'); + } + return width; + }; + + /** + * Replaces the current content. + * @public + * @param {HTMLElement|jQuery|String} content - The new content. + */ + Owl.prototype.replace = function(content) { + this.$stage.empty(); + this._items = []; + + if (content) { + content = (content instanceof jQuery) ? content : $(content); + } + + if (this.settings.nestedItemSelector) { + content = content.find('.' + this.settings.nestedItemSelector); + } + + content.filter(function() { + return this.nodeType === 1; + }).each($.proxy(function(index, item) { + item = this.prepare(item); + this.$stage.append(item); + this._items.push(item); + this._mergers.push(item.find('[data-merge]').addBack('[data-merge]').attr('data-merge') * 1 || 1); + }, this)); + + this.reset(this.isNumeric(this.settings.startPosition) ? this.settings.startPosition : 0); + + this.invalidate('items'); + }; + + /** + * Adds an item. + * @todo Use `item` instead of `content` for the event arguments. + * @public + * @param {HTMLElement|jQuery|String} content - The item content to add. + * @param {Number} [position] - The relative position at which to insert the item otherwise the item will be added to the end. + */ + Owl.prototype.add = function(content, position) { + var current = this.relative(this._current); + + position = position === undefined ? this._items.length : this.normalize(position, true); + content = content instanceof jQuery ? content : $(content); + + this.trigger('add', { content: content, position: position }); + + content = this.prepare(content); + + if (this._items.length === 0 || position === this._items.length) { + this._items.length === 0 && this.$stage.append(content); + this._items.length !== 0 && this._items[position - 1].after(content); + this._items.push(content); + this._mergers.push(content.find('[data-merge]').addBack('[data-merge]').attr('data-merge') * 1 || 1); + } else { + this._items[position].before(content); + this._items.splice(position, 0, content); + this._mergers.splice(position, 0, content.find('[data-merge]').addBack('[data-merge]').attr('data-merge') * 1 || 1); + } + + this._items[current] && this.reset(this._items[current].index()); + + this.invalidate('items'); + + this.trigger('added', { content: content, position: position }); + }; + + /** + * Removes an item by its position. + * @todo Use `item` instead of `content` for the event arguments. + * @public + * @param {Number} position - The relative position of the item to remove. + */ + Owl.prototype.remove = function(position) { + position = this.normalize(position, true); + + if (position === undefined) { + return; + } + + this.trigger('remove', { content: this._items[position], position: position }); + + this._items[position].remove(); + this._items.splice(position, 1); + this._mergers.splice(position, 1); + + this.invalidate('items'); + + this.trigger('removed', { content: null, position: position }); + }; + + /** + * Preloads images with auto width. + * @todo Replace by a more generic approach + * @protected + */ + Owl.prototype.preloadAutoWidthImages = function(images) { + images.each($.proxy(function(i, element) { + this.enter('pre-loading'); + element = $(element); + $(new Image()).one('load', $.proxy(function(e) { + element.attr('src', e.target.src); + element.css('opacity', 1); + this.leave('pre-loading'); + !this.is('pre-loading') && !this.is('initializing') && this.refresh(); + }, this)).attr('src', element.attr('src') || element.attr('data-src') || element.attr('data-src-retina')); + }, this)); + }; + + /** + * Destroys the carousel. + * @public + */ + Owl.prototype.destroy = function() { + + this.$element.off('.owl.core'); + this.$stage.off('.owl.core'); + $(document).off('.owl.core'); + + if (this.settings.responsive !== false) { + window.clearTimeout(this.resizeTimer); + this.off(window, 'resize', this._handlers.onThrottledResize); + } + + for (var i in this._plugins) { + this._plugins[i].destroy(); + } + + this.$stage.children('.cloned').remove(); + + this.$stage.unwrap(); + this.$stage.children().contents().unwrap(); + this.$stage.children().unwrap(); + this.$stage.remove(); + this.$element + .removeClass(this.options.refreshClass) + .removeClass(this.options.loadingClass) + .removeClass(this.options.loadedClass) + .removeClass(this.options.rtlClass) + .removeClass(this.options.dragClass) + .removeClass(this.options.grabClass) + .attr('class', this.$element.attr('class').replace(new RegExp(this.options.responsiveClass + '-\\S+\\s', 'g'), '')) + .removeData('owl.carousel'); + }; + + /** + * Operators to calculate right-to-left and left-to-right. + * @protected + * @param {Number} [a] - The left side operand. + * @param {String} [o] - The operator. + * @param {Number} [b] - The right side operand. + */ + Owl.prototype.op = function(a, o, b) { + var rtl = this.settings.rtl; + switch (o) { + case '<': + return rtl ? a > b : a < b; + case '>': + return rtl ? a < b : a > b; + case '>=': + return rtl ? a <= b : a >= b; + case '<=': + return rtl ? a >= b : a <= b; + default: + break; + } + }; + + /** + * Attaches to an internal event. + * @protected + * @param {HTMLElement} element - The event source. + * @param {String} event - The event name. + * @param {Function} listener - The event handler to attach. + * @param {Boolean} capture - Wether the event should be handled at the capturing phase or not. + */ + Owl.prototype.on = function(element, event, listener, capture) { + if (element.addEventListener) { + element.addEventListener(event, listener, capture); + } else if (element.attachEvent) { + element.attachEvent('on' + event, listener); + } + }; + + /** + * Detaches from an internal event. + * @protected + * @param {HTMLElement} element - The event source. + * @param {String} event - The event name. + * @param {Function} listener - The attached event handler to detach. + * @param {Boolean} capture - Wether the attached event handler was registered as a capturing listener or not. + */ + Owl.prototype.off = function(element, event, listener, capture) { + if (element.removeEventListener) { + element.removeEventListener(event, listener, capture); + } else if (element.detachEvent) { + element.detachEvent('on' + event, listener); + } + }; + + /** + * Triggers a public event. + * @todo Remove `status`, `relatedTarget` should be used instead. + * @protected + * @param {String} name - The event name. + * @param {*} [data=null] - The event data. + * @param {String} [namespace=carousel] - The event namespace. + * @param {String} [state] - The state which is associated with the event. + * @param {Boolean} [enter=false] - Indicates if the call enters the specified state or not. + * @returns {Event} - The event arguments. + */ + Owl.prototype.trigger = function(name, data, namespace, state, enter) { + var status = { + item: { count: this._items.length, index: this.current() } + }, handler = $.camelCase( + $.grep([ 'on', name, namespace ], function(v) { return v }) + .join('-').toLowerCase() + ), event = $.Event( + [ name, 'owl', namespace || 'carousel' ].join('.').toLowerCase(), + $.extend({ relatedTarget: this }, status, data) + ); + + if (!this._supress[name]) { + $.each(this._plugins, function(name, plugin) { + if (plugin.onTrigger) { + plugin.onTrigger(event); + } + }); + + this.register({ type: Owl.Type.Event, name: name }); + this.$element.trigger(event); + + if (this.settings && typeof this.settings[handler] === 'function') { + this.settings[handler].call(this, event); + } + } + + return event; + }; + + /** + * Enters a state. + * @param name - The state name. + */ + Owl.prototype.enter = function(name) { + $.each([ name ].concat(this._states.tags[name] || []), $.proxy(function(i, name) { + if (this._states.current[name] === undefined) { + this._states.current[name] = 0; + } + + this._states.current[name]++; + }, this)); + }; + + /** + * Leaves a state. + * @param name - The state name. + */ + Owl.prototype.leave = function(name) { + $.each([ name ].concat(this._states.tags[name] || []), $.proxy(function(i, name) { + this._states.current[name]--; + }, this)); + }; + + /** + * Registers an event or state. + * @public + * @param {Object} object - The event or state to register. + */ + Owl.prototype.register = function(object) { + if (object.type === Owl.Type.Event) { + if (!$.event.special[object.name]) { + $.event.special[object.name] = {}; + } + + if (!$.event.special[object.name].owl) { + var _default = $.event.special[object.name]._default; + $.event.special[object.name]._default = function(e) { + if (_default && _default.apply && (!e.namespace || e.namespace.indexOf('owl') === -1)) { + return _default.apply(this, arguments); + } + return e.namespace && e.namespace.indexOf('owl') > -1; + }; + $.event.special[object.name].owl = true; + } + } else if (object.type === Owl.Type.State) { + if (!this._states.tags[object.name]) { + this._states.tags[object.name] = object.tags; + } else { + this._states.tags[object.name] = this._states.tags[object.name].concat(object.tags); + } + + this._states.tags[object.name] = $.grep(this._states.tags[object.name], $.proxy(function(tag, i) { + return $.inArray(tag, this._states.tags[object.name]) === i; + }, this)); + } + }; + + /** + * Suppresses events. + * @protected + * @param {Array.} events - The events to suppress. + */ + Owl.prototype.suppress = function(events) { + $.each(events, $.proxy(function(index, event) { + this._supress[event] = true; + }, this)); + }; + + /** + * Releases suppressed events. + * @protected + * @param {Array.} events - The events to release. + */ + Owl.prototype.release = function(events) { + $.each(events, $.proxy(function(index, event) { + delete this._supress[event]; + }, this)); + }; + + /** + * Gets unified pointer coordinates from event. + * @todo #261 + * @protected + * @param {Event} - The `mousedown` or `touchstart` event. + * @returns {Object} - Contains `x` and `y` coordinates of current pointer position. + */ + Owl.prototype.pointer = function(event) { + var result = { x: null, y: null }; + + event = event.originalEvent || event || window.event; + + event = event.touches && event.touches.length ? + event.touches[0] : event.changedTouches && event.changedTouches.length ? + event.changedTouches[0] : event; + + if (event.pageX) { + result.x = event.pageX; + result.y = event.pageY; + } else { + result.x = event.clientX; + result.y = event.clientY; + } + + return result; + }; + + /** + * Determines if the input is a Number or something that can be coerced to a Number + * @protected + * @param {Number|String|Object|Array|Boolean|RegExp|Function|Symbol} - The input to be tested + * @returns {Boolean} - An indication if the input is a Number or can be coerced to a Number + */ + Owl.prototype.isNumeric = function(number) { + return !isNaN(parseFloat(number)); + }; + + /** + * Gets the difference of two vectors. + * @todo #261 + * @protected + * @param {Object} - The first vector. + * @param {Object} - The second vector. + * @returns {Object} - The difference. + */ + Owl.prototype.difference = function(first, second) { + return { + x: first.x - second.x, + y: first.y - second.y + }; + }; + + /** + * The jQuery Plugin for the Owl Carousel + * @todo Navigation plugin `next` and `prev` + * @public + */ + $.fn.owlCarousel = function(option) { + var args = Array.prototype.slice.call(arguments, 1); + + return this.each(function() { + var $this = $(this), + data = $this.data('owl.carousel'); + + if (!data) { + data = new Owl(this, typeof option == 'object' && option); + $this.data('owl.carousel', data); + + $.each([ + 'next', 'prev', 'to', 'destroy', 'refresh', 'replace', 'add', 'remove' + ], function(i, event) { + data.register({ type: Owl.Type.Event, name: event }); + data.$element.on(event + '.owl.carousel.core', $.proxy(function(e) { + if (e.namespace && e.relatedTarget !== this) { + this.suppress([ event ]); + data[event].apply(this, [].slice.call(arguments, 1)); + this.release([ event ]); + } + }, data)); + }); + } + + if (typeof option == 'string' && option.charAt(0) !== '_') { + data[option].apply(data, args); + } + }); + }; + + /** + * The constructor for the jQuery Plugin + * @public + */ + $.fn.owlCarousel.Constructor = Owl; + +})(window.Zepto || window.jQuery, window, document); + +/** + * AutoRefresh Plugin + * @version 2.3.4 + * @author Artus Kolanowski + * @author David Deutsch + * @license The MIT License (MIT) + */ +;(function($, window, document, undefined) { + + /** + * Creates the auto refresh plugin. + * @class The Auto Refresh Plugin + * @param {Owl} carousel - The Owl Carousel + */ + var AutoRefresh = function(carousel) { + /** + * Reference to the core. + * @protected + * @type {Owl} + */ + this._core = carousel; + + /** + * Refresh interval. + * @protected + * @type {number} + */ + this._interval = null; + + /** + * Whether the element is currently visible or not. + * @protected + * @type {Boolean} + */ + this._visible = null; + + /** + * All event handlers. + * @protected + * @type {Object} + */ + this._handlers = { + 'initialized.owl.carousel': $.proxy(function(e) { + if (e.namespace && this._core.settings.autoRefresh) { + this.watch(); + } + }, this) + }; + + // set default options + this._core.options = $.extend({}, AutoRefresh.Defaults, this._core.options); + + // register event handlers + this._core.$element.on(this._handlers); + }; + + /** + * Default options. + * @public + */ + AutoRefresh.Defaults = { + autoRefresh: true, + autoRefreshInterval: 500 + }; + + /** + * Watches the element. + */ + AutoRefresh.prototype.watch = function() { + if (this._interval) { + return; + } + + this._visible = this._core.isVisible(); + this._interval = window.setInterval($.proxy(this.refresh, this), this._core.settings.autoRefreshInterval); + }; + + /** + * Refreshes the element. + */ + AutoRefresh.prototype.refresh = function() { + if (this._core.isVisible() === this._visible) { + return; + } + + this._visible = !this._visible; + + this._core.$element.toggleClass('owl-hidden', !this._visible); + + this._visible && (this._core.invalidate('width') && this._core.refresh()); + }; + + /** + * Destroys the plugin. + */ + AutoRefresh.prototype.destroy = function() { + var handler, property; + + window.clearInterval(this._interval); + + for (handler in this._handlers) { + this._core.$element.off(handler, this._handlers[handler]); + } + for (property in Object.getOwnPropertyNames(this)) { + typeof this[property] != 'function' && (this[property] = null); + } + }; + + $.fn.owlCarousel.Constructor.Plugins.AutoRefresh = AutoRefresh; + +})(window.Zepto || window.jQuery, window, document); + +/** + * Lazy Plugin + * @version 2.3.4 + * @author Bartosz Wojciechowski + * @author David Deutsch + * @license The MIT License (MIT) + */ +;(function($, window, document, undefined) { + + /** + * Creates the lazy plugin. + * @class The Lazy Plugin + * @param {Owl} carousel - The Owl Carousel + */ + var Lazy = function(carousel) { + + /** + * Reference to the core. + * @protected + * @type {Owl} + */ + this._core = carousel; + + /** + * Already loaded items. + * @protected + * @type {Array.} + */ + this._loaded = []; + + /** + * Event handlers. + * @protected + * @type {Object} + */ + this._handlers = { + 'initialized.owl.carousel change.owl.carousel resized.owl.carousel': $.proxy(function(e) { + if (!e.namespace) { + return; + } + + if (!this._core.settings || !this._core.settings.lazyLoad) { + return; + } + + if ((e.property && e.property.name == 'position') || e.type == 'initialized') { + var settings = this._core.settings, + n = (settings.center && Math.ceil(settings.items / 2) || settings.items), + i = ((settings.center && n * -1) || 0), + position = (e.property && e.property.value !== undefined ? e.property.value : this._core.current()) + i, + clones = this._core.clones().length, + load = $.proxy(function(i, v) { this.load(v) }, this); + //TODO: Need documentation for this new option + if (settings.lazyLoadEager > 0) { + n += settings.lazyLoadEager; + // If the carousel is looping also preload images that are to the "left" + if (settings.loop) { + position -= settings.lazyLoadEager; + n++; + } + } + + while (i++ < n) { + this.load(clones / 2 + this._core.relative(position)); + clones && $.each(this._core.clones(this._core.relative(position)), load); + position++; + } + } + }, this) + }; + + // set the default options + this._core.options = $.extend({}, Lazy.Defaults, this._core.options); + + // register event handler + this._core.$element.on(this._handlers); + }; + + /** + * Default options. + * @public + */ + Lazy.Defaults = { + lazyLoad: false, + lazyLoadEager: 0 + }; + + /** + * Loads all resources of an item at the specified position. + * @param {Number} position - The absolute position of the item. + * @protected + */ + Lazy.prototype.load = function(position) { + var $item = this._core.$stage.children().eq(position), + $elements = $item && $item.find('.owl-lazy'); + + if (!$elements || $.inArray($item.get(0), this._loaded) > -1) { + return; + } + + $elements.each($.proxy(function(index, element) { + var $element = $(element), image, + url = (window.devicePixelRatio > 1 && $element.attr('data-src-retina')) || $element.attr('data-src') || $element.attr('data-srcset'); + + this._core.trigger('load', { element: $element, url: url }, 'lazy'); + + if ($element.is('img')) { + $element.one('load.owl.lazy', $.proxy(function() { + $element.css('opacity', 1); + this._core.trigger('loaded', { element: $element, url: url }, 'lazy'); + }, this)).attr('src', url); + } else if ($element.is('source')) { + $element.one('load.owl.lazy', $.proxy(function() { + this._core.trigger('loaded', { element: $element, url: url }, 'lazy'); + }, this)).attr('srcset', url); + } else { + image = new Image(); + image.onload = $.proxy(function() { + $element.css({ + 'background-image': 'url("' + url + '")', + 'opacity': '1' + }); + this._core.trigger('loaded', { element: $element, url: url }, 'lazy'); + }, this); + image.src = url; + } + }, this)); + + this._loaded.push($item.get(0)); + }; + + /** + * Destroys the plugin. + * @public + */ + Lazy.prototype.destroy = function() { + var handler, property; + + for (handler in this.handlers) { + this._core.$element.off(handler, this.handlers[handler]); + } + for (property in Object.getOwnPropertyNames(this)) { + typeof this[property] != 'function' && (this[property] = null); + } + }; + + $.fn.owlCarousel.Constructor.Plugins.Lazy = Lazy; + +})(window.Zepto || window.jQuery, window, document); + +/** + * AutoHeight Plugin + * @version 2.3.4 + * @author Bartosz Wojciechowski + * @author David Deutsch + * @license The MIT License (MIT) + */ +;(function($, window, document, undefined) { + + /** + * Creates the auto height plugin. + * @class The Auto Height Plugin + * @param {Owl} carousel - The Owl Carousel + */ + var AutoHeight = function(carousel) { + /** + * Reference to the core. + * @protected + * @type {Owl} + */ + this._core = carousel; + + this._previousHeight = null; + + /** + * All event handlers. + * @protected + * @type {Object} + */ + this._handlers = { + 'initialized.owl.carousel refreshed.owl.carousel': $.proxy(function(e) { + if (e.namespace && this._core.settings.autoHeight) { + this.update(); + } + }, this), + 'changed.owl.carousel': $.proxy(function(e) { + if (e.namespace && this._core.settings.autoHeight && e.property.name === 'position'){ + this.update(); + } + }, this), + 'loaded.owl.lazy': $.proxy(function(e) { + if (e.namespace && this._core.settings.autoHeight + && e.element.closest('.' + this._core.settings.itemClass).index() === this._core.current()) { + this.update(); + } + }, this) + }; + + // set default options + this._core.options = $.extend({}, AutoHeight.Defaults, this._core.options); + + // register event handlers + this._core.$element.on(this._handlers); + this._intervalId = null; + var refThis = this; + + // These changes have been taken from a PR by gavrochelegnou proposed in #1575 + // and have been made compatible with the latest jQuery version + $(window).on('load', function() { + if (refThis._core.settings.autoHeight) { + refThis.update(); + } + }); + + // Autoresize the height of the carousel when window is resized + // When carousel has images, the height is dependent on the width + // and should also change on resize + $(window).resize(function() { + if (refThis._core.settings.autoHeight) { + if (refThis._intervalId != null) { + clearTimeout(refThis._intervalId); + } + + refThis._intervalId = setTimeout(function() { + refThis.update(); + }, 250); + } + }); + + }; + + /** + * Default options. + * @public + */ + AutoHeight.Defaults = { + autoHeight: false, + autoHeightClass: 'owl-height' + }; + + /** + * Updates the view. + */ + AutoHeight.prototype.update = function() { + var start = this._core._current, + end = start + this._core.settings.items, + lazyLoadEnabled = this._core.settings.lazyLoad, + visible = this._core.$stage.children().toArray().slice(start, end), + heights = [], + maxheight = 0; + + $.each(visible, function(index, item) { + heights.push($(item).height()); + }); + + maxheight = Math.max.apply(null, heights); + + if (maxheight <= 1 && lazyLoadEnabled && this._previousHeight) { + maxheight = this._previousHeight; + } + + this._previousHeight = maxheight; + + this._core.$stage.parent() + .height(maxheight) + .addClass(this._core.settings.autoHeightClass); + }; + + AutoHeight.prototype.destroy = function() { + var handler, property; + + for (handler in this._handlers) { + this._core.$element.off(handler, this._handlers[handler]); + } + for (property in Object.getOwnPropertyNames(this)) { + typeof this[property] !== 'function' && (this[property] = null); + } + }; + + $.fn.owlCarousel.Constructor.Plugins.AutoHeight = AutoHeight; + +})(window.Zepto || window.jQuery, window, document); + +/** + * Video Plugin + * @version 2.3.4 + * @author Bartosz Wojciechowski + * @author David Deutsch + * @license The MIT License (MIT) + */ +;(function($, window, document, undefined) { + + /** + * Creates the video plugin. + * @class The Video Plugin + * @param {Owl} carousel - The Owl Carousel + */ + var Video = function(carousel) { + /** + * Reference to the core. + * @protected + * @type {Owl} + */ + this._core = carousel; + + /** + * Cache all video URLs. + * @protected + * @type {Object} + */ + this._videos = {}; + + /** + * Current playing item. + * @protected + * @type {jQuery} + */ + this._playing = null; + + /** + * All event handlers. + * @todo The cloned content removale is too late + * @protected + * @type {Object} + */ + this._handlers = { + 'initialized.owl.carousel': $.proxy(function(e) { + if (e.namespace) { + this._core.register({ type: 'state', name: 'playing', tags: [ 'interacting' ] }); + } + }, this), + 'resize.owl.carousel': $.proxy(function(e) { + if (e.namespace && this._core.settings.video && this.isInFullScreen()) { + e.preventDefault(); + } + }, this), + 'refreshed.owl.carousel': $.proxy(function(e) { + if (e.namespace && this._core.is('resizing')) { + this._core.$stage.find('.cloned .owl-video-frame').remove(); + } + }, this), + 'changed.owl.carousel': $.proxy(function(e) { + if (e.namespace && e.property.name === 'position' && this._playing) { + this.stop(); + } + }, this), + 'prepared.owl.carousel': $.proxy(function(e) { + if (!e.namespace) { + return; + } + + var $element = $(e.content).find('.owl-video'); + + if ($element.length) { + $element.css('display', 'none'); + this.fetch($element, $(e.content)); + } + }, this) + }; + + // set default options + this._core.options = $.extend({}, Video.Defaults, this._core.options); + + // register event handlers + this._core.$element.on(this._handlers); + + this._core.$element.on('click.owl.video', '.owl-video-play-icon', $.proxy(function(e) { + this.play(e); + }, this)); + }; + + /** + * Default options. + * @public + */ + Video.Defaults = { + video: false, + videoHeight: false, + videoWidth: false + }; + + /** + * Gets the video ID and the type (YouTube/Vimeo/vzaar only). + * @protected + * @param {jQuery} target - The target containing the video data. + * @param {jQuery} item - The item containing the video. + */ + Video.prototype.fetch = function(target, item) { + var type = (function() { + if (target.attr('data-vimeo-id')) { + return 'vimeo'; + } else if (target.attr('data-vzaar-id')) { + return 'vzaar' + } else { + return 'youtube'; + } + })(), + id = target.attr('data-vimeo-id') || target.attr('data-youtube-id') || target.attr('data-vzaar-id'), + width = target.attr('data-width') || this._core.settings.videoWidth, + height = target.attr('data-height') || this._core.settings.videoHeight, + url = target.attr('href'); + + if (url) { + + /* + Parses the id's out of the following urls (and probably more): + https://www.youtube.com/watch?v=:id + https://youtu.be/:id + https://vimeo.com/:id + https://vimeo.com/channels/:channel/:id + https://vimeo.com/groups/:group/videos/:id + https://app.vzaar.com/videos/:id + + Visual example: https://regexper.com/#(http%3A%7Chttps%3A%7C)%5C%2F%5C%2F(player.%7Cwww.%7Capp.)%3F(vimeo%5C.com%7Cyoutu(be%5C.com%7C%5C.be%7Cbe%5C.googleapis%5C.com)%7Cvzaar%5C.com)%5C%2F(video%5C%2F%7Cvideos%5C%2F%7Cembed%5C%2F%7Cchannels%5C%2F.%2B%5C%2F%7Cgroups%5C%2F.%2B%5C%2F%7Cwatch%5C%3Fv%3D%7Cv%5C%2F)%3F(%5BA-Za-z0-9._%25-%5D*)(%5C%26%5CS%2B)%3F + */ + + id = url.match(/(http:|https:|)\/\/(player.|www.|app.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com|be\-nocookie\.com)|vzaar\.com)\/(video\/|videos\/|embed\/|channels\/.+\/|groups\/.+\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/); + + if (id[3].indexOf('youtu') > -1) { + type = 'youtube'; + } else if (id[3].indexOf('vimeo') > -1) { + type = 'vimeo'; + } else if (id[3].indexOf('vzaar') > -1) { + type = 'vzaar'; + } else { + throw new Error('Video URL not supported.'); + } + id = id[6]; + } else { + throw new Error('Missing video URL.'); + } + + this._videos[url] = { + type: type, + id: id, + width: width, + height: height + }; + + item.attr('data-video', url); + + this.thumbnail(target, this._videos[url]); + }; + + /** + * Creates video thumbnail. + * @protected + * @param {jQuery} target - The target containing the video data. + * @param {Object} info - The video info object. + * @see `fetch` + */ + Video.prototype.thumbnail = function(target, video) { + var tnLink, + icon, + path, + dimensions = video.width && video.height ? 'width:' + video.width + 'px;height:' + video.height + 'px;' : '', + customTn = target.find('img'), + srcType = 'src', + lazyClass = '', + settings = this._core.settings, + create = function(path) { + icon = '
    '; + + if (settings.lazyLoad) { + tnLink = $('
    ',{ + "class": 'owl-video-tn ' + lazyClass, + "srcType": path + }); + } else { + tnLink = $( '
    ', { + "class": "owl-video-tn", + "style": 'opacity:1;background-image:url(' + path + ')' + }); + } + target.after(tnLink); + target.after(icon); + }; + + // wrap video content into owl-video-wrapper div + target.wrap( $( '
    ', { + "class": "owl-video-wrapper", + "style": dimensions + })); + + if (this._core.settings.lazyLoad) { + srcType = 'data-src'; + lazyClass = 'owl-lazy'; + } + + // custom thumbnail + if (customTn.length) { + create(customTn.attr(srcType)); + customTn.remove(); + return false; + } + + if (video.type === 'youtube') { + path = "//img.youtube.com/vi/" + video.id + "/hqdefault.jpg"; + create(path); + } else if (video.type === 'vimeo') { + $.ajax({ + type: 'GET', + url: '//vimeo.com/api/v2/video/' + video.id + '.json', + jsonp: 'callback', + dataType: 'jsonp', + success: function(data) { + path = data[0].thumbnail_large; + create(path); + } + }); + } else if (video.type === 'vzaar') { + $.ajax({ + type: 'GET', + url: '//vzaar.com/api/videos/' + video.id + '.json', + jsonp: 'callback', + dataType: 'jsonp', + success: function(data) { + path = data.framegrab_url; + create(path); + } + }); + } + }; + + /** + * Stops the current video. + * @public + */ + Video.prototype.stop = function() { + this._core.trigger('stop', null, 'video'); + this._playing.find('.owl-video-frame').remove(); + this._playing.removeClass('owl-video-playing'); + this._playing = null; + this._core.leave('playing'); + this._core.trigger('stopped', null, 'video'); + }; + + /** + * Starts the current video. + * @public + * @param {Event} event - The event arguments. + */ + Video.prototype.play = function(event) { + var target = $(event.target), + item = target.closest('.' + this._core.settings.itemClass), + video = this._videos[item.attr('data-video')], + width = video.width || '100%', + height = video.height || this._core.$stage.height(), + html, + iframe; + + if (this._playing) { + return; + } + + this._core.enter('playing'); + this._core.trigger('play', null, 'video'); + + item = this._core.items(this._core.relative(item.index())); + + this._core.reset(item.index()); + + html = $( '' ); + html.attr( 'height', height ); + html.attr( 'width', width ); + if (video.type === 'youtube') { + html.attr( 'src', '//www.youtube.com/embed/' + video.id + '?autoplay=1&rel=0&v=' + video.id ); + } else if (video.type === 'vimeo') { + html.attr( 'src', '//player.vimeo.com/video/' + video.id + '?autoplay=1' ); + } else if (video.type === 'vzaar') { + html.attr( 'src', '//view.vzaar.com/' + video.id + '/player?autoplay=true' ); + } + + iframe = $(html).wrap( '
    ' ).insertAfter(item.find('.owl-video')); + + this._playing = item.addClass('owl-video-playing'); + }; + + /** + * Checks whether an video is currently in full screen mode or not. + * @todo Bad style because looks like a readonly method but changes members. + * @protected + * @returns {Boolean} + */ + Video.prototype.isInFullScreen = function() { + var element = document.fullscreenElement || document.mozFullScreenElement || + document.webkitFullscreenElement; + + return element && $(element).parent().hasClass('owl-video-frame'); + }; + + /** + * Destroys the plugin. + */ + Video.prototype.destroy = function() { + var handler, property; + + this._core.$element.off('click.owl.video'); + + for (handler in this._handlers) { + this._core.$element.off(handler, this._handlers[handler]); + } + for (property in Object.getOwnPropertyNames(this)) { + typeof this[property] != 'function' && (this[property] = null); + } + }; + + $.fn.owlCarousel.Constructor.Plugins.Video = Video; + +})(window.Zepto || window.jQuery, window, document); + +/** + * Animate Plugin + * @version 2.3.4 + * @author Bartosz Wojciechowski + * @author David Deutsch + * @license The MIT License (MIT) + */ +;(function($, window, document, undefined) { + + /** + * Creates the animate plugin. + * @class The Navigation Plugin + * @param {Owl} scope - The Owl Carousel + */ + var Animate = function(scope) { + this.core = scope; + this.core.options = $.extend({}, Animate.Defaults, this.core.options); + this.swapping = true; + this.previous = undefined; + this.next = undefined; + + this.handlers = { + 'change.owl.carousel': $.proxy(function(e) { + if (e.namespace && e.property.name == 'position') { + this.previous = this.core.current(); + this.next = e.property.value; + } + }, this), + 'drag.owl.carousel dragged.owl.carousel translated.owl.carousel': $.proxy(function(e) { + if (e.namespace) { + this.swapping = e.type == 'translated'; + } + }, this), + 'translate.owl.carousel': $.proxy(function(e) { + if (e.namespace && this.swapping && (this.core.options.animateOut || this.core.options.animateIn)) { + this.swap(); + } + }, this) + }; + + this.core.$element.on(this.handlers); + }; + + /** + * Default options. + * @public + */ + Animate.Defaults = { + animateOut: false, + animateIn: false + }; + + /** + * Toggles the animation classes whenever an translations starts. + * @protected + * @returns {Boolean|undefined} + */ + Animate.prototype.swap = function() { + + if (this.core.settings.items !== 1) { + return; + } + + if (!$.support.animation || !$.support.transition) { + return; + } + + this.core.speed(0); + + var left, + clear = $.proxy(this.clear, this), + previous = this.core.$stage.children().eq(this.previous), + next = this.core.$stage.children().eq(this.next), + incoming = this.core.settings.animateIn, + outgoing = this.core.settings.animateOut; + + if (this.core.current() === this.previous) { + return; + } + + if (outgoing) { + left = this.core.coordinates(this.previous) - this.core.coordinates(this.next); + previous.one($.support.animation.end, clear) + .css( { 'left': left + 'px' } ) + .addClass('animated owl-animated-out') + .addClass(outgoing); + } + + if (incoming) { + next.one($.support.animation.end, clear) + .addClass('animated owl-animated-in') + .addClass(incoming); + } + }; + + Animate.prototype.clear = function(e) { + $(e.target).css( { 'left': '' } ) + .removeClass('animated owl-animated-out owl-animated-in') + .removeClass(this.core.settings.animateIn) + .removeClass(this.core.settings.animateOut); + this.core.onTransitionEnd(); + }; + + /** + * Destroys the plugin. + * @public + */ + Animate.prototype.destroy = function() { + var handler, property; + + for (handler in this.handlers) { + this.core.$element.off(handler, this.handlers[handler]); + } + for (property in Object.getOwnPropertyNames(this)) { + typeof this[property] != 'function' && (this[property] = null); + } + }; + + $.fn.owlCarousel.Constructor.Plugins.Animate = Animate; + +})(window.Zepto || window.jQuery, window, document); + +/** + * Autoplay Plugin + * @version 2.3.4 + * @author Bartosz Wojciechowski + * @author Artus Kolanowski + * @author David Deutsch + * @author Tom De Caluwé + * @license The MIT License (MIT) + */ +;(function($, window, document, undefined) { + + /** + * Creates the autoplay plugin. + * @class The Autoplay Plugin + * @param {Owl} scope - The Owl Carousel + */ + var Autoplay = function(carousel) { + /** + * Reference to the core. + * @protected + * @type {Owl} + */ + this._core = carousel; + + /** + * The autoplay timeout id. + * @type {Number} + */ + this._call = null; + + /** + * Depending on the state of the plugin, this variable contains either + * the start time of the timer or the current timer value if it's + * paused. Since we start in a paused state we initialize the timer + * value. + * @type {Number} + */ + this._time = 0; + + /** + * Stores the timeout currently used. + * @type {Number} + */ + this._timeout = 0; + + /** + * Indicates whenever the autoplay is paused. + * @type {Boolean} + */ + this._paused = true; + + /** + * All event handlers. + * @protected + * @type {Object} + */ + this._handlers = { + 'changed.owl.carousel': $.proxy(function(e) { + if (e.namespace && e.property.name === 'settings') { + if (this._core.settings.autoplay) { + this.play(); + } else { + this.stop(); + } + } else if (e.namespace && e.property.name === 'position' && this._paused) { + // Reset the timer. This code is triggered when the position + // of the carousel was changed through user interaction. + this._time = 0; + } + }, this), + 'initialized.owl.carousel': $.proxy(function(e) { + if (e.namespace && this._core.settings.autoplay) { + this.play(); + } + }, this), + 'play.owl.autoplay': $.proxy(function(e, t, s) { + if (e.namespace) { + this.play(t, s); + } + }, this), + 'stop.owl.autoplay': $.proxy(function(e) { + if (e.namespace) { + this.stop(); + } + }, this), + 'mouseover.owl.autoplay': $.proxy(function() { + if (this._core.settings.autoplayHoverPause && this._core.is('rotating')) { + this.pause(); + } + }, this), + 'mouseleave.owl.autoplay': $.proxy(function() { + if (this._core.settings.autoplayHoverPause && this._core.is('rotating')) { + this.play(); + } + }, this), + 'touchstart.owl.core': $.proxy(function() { + if (this._core.settings.autoplayHoverPause && this._core.is('rotating')) { + this.pause(); + } + }, this), + 'touchend.owl.core': $.proxy(function() { + if (this._core.settings.autoplayHoverPause) { + this.play(); + } + }, this) + }; + + // register event handlers + this._core.$element.on(this._handlers); + + // set default options + this._core.options = $.extend({}, Autoplay.Defaults, this._core.options); + }; + + /** + * Default options. + * @public + */ + Autoplay.Defaults = { + autoplay: false, + autoplayTimeout: 5000, + autoplayHoverPause: false, + autoplaySpeed: false + }; + + /** + * Transition to the next slide and set a timeout for the next transition. + * @private + * @param {Number} [speed] - The animation speed for the animations. + */ + Autoplay.prototype._next = function(speed) { + this._call = window.setTimeout( + $.proxy(this._next, this, speed), + this._timeout * (Math.round(this.read() / this._timeout) + 1) - this.read() + ); + + if (this._core.is('interacting') || document.hidden) { + return; + } + this._core.next(speed || this._core.settings.autoplaySpeed); + } + + /** + * Reads the current timer value when the timer is playing. + * @public + */ + Autoplay.prototype.read = function() { + return new Date().getTime() - this._time; + }; + + /** + * Starts the autoplay. + * @public + * @param {Number} [timeout] - The interval before the next animation starts. + * @param {Number} [speed] - The animation speed for the animations. + */ + Autoplay.prototype.play = function(timeout, speed) { + var elapsed; + + if (!this._core.is('rotating')) { + this._core.enter('rotating'); + } + + timeout = timeout || this._core.settings.autoplayTimeout; + + // Calculate the elapsed time since the last transition. If the carousel + // wasn't playing this calculation will yield zero. + elapsed = Math.min(this._time % (this._timeout || timeout), timeout); + + if (this._paused) { + // Start the clock. + this._time = this.read(); + this._paused = false; + } else { + // Clear the active timeout to allow replacement. + window.clearTimeout(this._call); + } + + // Adjust the origin of the timer to match the new timeout value. + this._time += this.read() % timeout - elapsed; + + this._timeout = timeout; + this._call = window.setTimeout($.proxy(this._next, this, speed), timeout - elapsed); + }; + + /** + * Stops the autoplay. + * @public + */ + Autoplay.prototype.stop = function() { + if (this._core.is('rotating')) { + // Reset the clock. + this._time = 0; + this._paused = true; + + window.clearTimeout(this._call); + this._core.leave('rotating'); + } + }; + + /** + * Pauses the autoplay. + * @public + */ + Autoplay.prototype.pause = function() { + if (this._core.is('rotating') && !this._paused) { + // Pause the clock. + this._time = this.read(); + this._paused = true; + + window.clearTimeout(this._call); + } + }; + + /** + * Destroys the plugin. + */ + Autoplay.prototype.destroy = function() { + var handler, property; + + this.stop(); + + for (handler in this._handlers) { + this._core.$element.off(handler, this._handlers[handler]); + } + for (property in Object.getOwnPropertyNames(this)) { + typeof this[property] != 'function' && (this[property] = null); + } + }; + + $.fn.owlCarousel.Constructor.Plugins.autoplay = Autoplay; + +})(window.Zepto || window.jQuery, window, document); + +/** + * Navigation Plugin + * @version 2.3.4 + * @author Artus Kolanowski + * @author David Deutsch + * @license The MIT License (MIT) + */ +;(function($, window, document, undefined) { + 'use strict'; + + /** + * Creates the navigation plugin. + * @class The Navigation Plugin + * @param {Owl} carousel - The Owl Carousel. + */ + var Navigation = function(carousel) { + /** + * Reference to the core. + * @protected + * @type {Owl} + */ + this._core = carousel; + + /** + * Indicates whether the plugin is initialized or not. + * @protected + * @type {Boolean} + */ + this._initialized = false; + + /** + * The current paging indexes. + * @protected + * @type {Array} + */ + this._pages = []; + + /** + * All DOM elements of the user interface. + * @protected + * @type {Object} + */ + this._controls = {}; + + /** + * Markup for an indicator. + * @protected + * @type {Array.} + */ + this._templates = []; + + /** + * The carousel element. + * @type {jQuery} + */ + this.$element = this._core.$element; + + /** + * Overridden methods of the carousel. + * @protected + * @type {Object} + */ + this._overrides = { + next: this._core.next, + prev: this._core.prev, + to: this._core.to + }; + + /** + * All event handlers. + * @protected + * @type {Object} + */ + this._handlers = { + 'prepared.owl.carousel': $.proxy(function(e) { + if (e.namespace && this._core.settings.dotsData) { + this._templates.push('
    ' + + $(e.content).find('[data-dot]').addBack('[data-dot]').attr('data-dot') + '
    '); + } + }, this), + 'added.owl.carousel': $.proxy(function(e) { + if (e.namespace && this._core.settings.dotsData) { + this._templates.splice(e.position, 0, this._templates.pop()); + } + }, this), + 'remove.owl.carousel': $.proxy(function(e) { + if (e.namespace && this._core.settings.dotsData) { + this._templates.splice(e.position, 1); + } + }, this), + 'changed.owl.carousel': $.proxy(function(e) { + if (e.namespace && e.property.name == 'position') { + this.draw(); + } + }, this), + 'initialized.owl.carousel': $.proxy(function(e) { + if (e.namespace && !this._initialized) { + this._core.trigger('initialize', null, 'navigation'); + this.initialize(); + this.update(); + this.draw(); + this._initialized = true; + this._core.trigger('initialized', null, 'navigation'); + } + }, this), + 'refreshed.owl.carousel': $.proxy(function(e) { + if (e.namespace && this._initialized) { + this._core.trigger('refresh', null, 'navigation'); + this.update(); + this.draw(); + this._core.trigger('refreshed', null, 'navigation'); + } + }, this) + }; + + // set default options + this._core.options = $.extend({}, Navigation.Defaults, this._core.options); + + // register event handlers + this.$element.on(this._handlers); + }; + + /** + * Default options. + * @public + * @todo Rename `slideBy` to `navBy` + */ + Navigation.Defaults = { + nav: false, + navText: [ + '', + '' + ], + navSpeed: false, + navElement: 'button type="button" role="presentation"', + navContainer: false, + navContainerClass: 'owl-nav', + navClass: [ + 'owl-prev', + 'owl-next' + ], + slideBy: 1, + dotClass: 'owl-dot', + dotsClass: 'owl-dots', + dots: true, + dotsEach: false, + dotsData: false, + dotsSpeed: false, + dotsContainer: false + }; + + /** + * Initializes the layout of the plugin and extends the carousel. + * @protected + */ + Navigation.prototype.initialize = function() { + var override, + settings = this._core.settings; + + // create DOM structure for relative navigation + this._controls.$relative = (settings.navContainer ? $(settings.navContainer) + : $('
    ').addClass(settings.navContainerClass).appendTo(this.$element)).addClass('disabled'); + + this._controls.$previous = $('<' + settings.navElement + '>') + .addClass(settings.navClass[0]) + .html(settings.navText[0]) + .prependTo(this._controls.$relative) + .on('click', $.proxy(function(e) { + this.prev(settings.navSpeed); + }, this)); + this._controls.$next = $('<' + settings.navElement + '>') + .addClass(settings.navClass[1]) + .html(settings.navText[1]) + .appendTo(this._controls.$relative) + .on('click', $.proxy(function(e) { + this.next(settings.navSpeed); + }, this)); + + // create DOM structure for absolute navigation + if (!settings.dotsData) { + this._templates = [ $('
    + +
    + +
    + + + diff --git a/wp-content/themes/chromax/functions.php b/wp-content/themes/chromax/functions.php new file mode 100644 index 0000000..29f9105 --- /dev/null +++ b/wp-content/themes/chromax/functions.php @@ -0,0 +1,384 @@ + tag in the document head, and expect WordPress to + * provide it for us. + */ + add_theme_support( 'title-tag' ); + + add_theme_support( 'custom-header' ); + + /* + * Enable support for Post Thumbnails on posts and pages. + * + * @link https://developer.wordpress.org/themes/functionality/featured-images-post-thumbnails/ + */ + add_theme_support( 'post-thumbnails' ); + + // This theme uses wp_nav_menu() in one location. + register_nav_menus( array( + 'primary_menu' => esc_html__( 'Primary Menu', 'chromax' ) + ) ); + + //Add selective refresh for sidebar widget + add_theme_support( 'customize-selective-refresh-widgets' ); + + // woocommerce support + add_theme_support( 'woocommerce' ); + + /** + * Add support for core custom logo. + * + * @link https://codex.wordpress.org/Theme_Logo + */ + add_theme_support('custom-logo'); + + /** + * Custom background support. + */ + add_theme_support( 'custom-background', apply_filters( 'chromax_custom_background_args', array( + 'default-color' => 'ffffff', + 'default-image' => '', + ) ) ); + + /* + * Switch default core markup for search form, comment form, and comments + * to output valid HTML5. + */ + add_theme_support( 'html5', array( + 'search-form', + 'comment-form', + 'comment-list', + 'gallery', + 'caption', + ) ); + + /** + * Set default content width. + */ + if ( ! isset( $content_width ) ) { + $content_width = 800; + } +} +endif; +add_action( 'after_setup_theme', 'chromax_theme_setup' ); + + +/** + * Register widget area. + * + * @link https://developer.wordpress.org/themes/functionality/sidebars/#registering-a-sidebar + */ + +function chromax_widgets_init() { + if ( class_exists( 'WooCommerce' ) ) { + register_sidebar( array( + 'name' => __( 'WooCommerce Widget Area', 'chromax' ), + 'id' => 'chromax-woocommerce-sidebar', + 'description' => __( 'This Widget area for WooCommerce Widget', 'chromax' ), + 'before_widget' => '', + 'before_title' => '
    ', + 'after_title' => '
    ', + ) ); + } + + register_sidebar( array( + 'name' => __( 'Sidebar Widget Area', 'chromax' ), + 'id' => 'chromax-sidebar-primary', + 'description' => __( 'The Primary Widget Area', 'chromax' ), + 'before_widget' => '', + 'before_title' => '
    ', + 'after_title' => '
    ', + ) ); + + + $chromax_footer_widget_column = get_theme_mod('chromax_footer_widget_column','4'); + for ($i=1; $i<=$chromax_footer_widget_column; $i++) { + register_sidebar( array( + 'name' => __( 'Footer ', 'chromax' ) . $i, + 'id' => 'chromax-footer-widget-' . $i, + 'description' => __( 'The Footer Widget Area', 'chromax' ) . $i, + 'before_widget' => '', + 'before_title' => '
    ', + 'after_title' => '
    ', + ) ); + } +} +add_action( 'widgets_init', 'chromax_widgets_init' ); + + +/** + * Enqueue scripts and styles. + */ +function chromax_scripts() { + + /** + * Styles. + */ + // Owl Crousel + wp_enqueue_style('owl-carousel-min',get_template_directory_uri().'/assets/vendors/css/owl.carousel.min.css'); + + // Font Awesome + wp_enqueue_style('all-css',get_template_directory_uri().'/assets/vendors/css/all.min.css'); + + // Animate + wp_enqueue_style('animate',get_template_directory_uri().'/assets/vendors/css/animate.css'); + + // Fancybox + wp_enqueue_style('Fancybox',get_template_directory_uri().'/assets/vendors/css/jquery.fancybox.min.css'); + + // aos + wp_enqueue_style('aos',get_template_directory_uri().'/assets/vendors/css/aos.min.css'); + + // Chromax Core + wp_enqueue_style('chromax-core',get_template_directory_uri().'/assets/css/core.css'); + + // Chromax Theme + wp_enqueue_style('chromax-theme', get_template_directory_uri() . '/assets/css/themes.css'); + + // Chromax WooCommerce + wp_enqueue_style('chromax-woocommerce',get_template_directory_uri().'/assets/css/woo-styles.css'); + + // Chromax Style + wp_enqueue_style( 'chromax-style', get_stylesheet_uri() ); + + // Scripts + wp_enqueue_script( 'jquery' ); + + // Masonry + wp_enqueue_script( 'masonry' ); + + // imagesloaded + wp_enqueue_script( 'imagesloaded' ); + + // Owl Crousel + wp_enqueue_script('owl-carousel', get_template_directory_uri() . '/assets/vendors/js/owl.carousel.js', array('jquery'), true); + + // Wow + wp_enqueue_script('wow-min', get_template_directory_uri() . '/assets/vendors/js/wow.min.js', array('jquery'), false, true); + + // appear + wp_enqueue_script('jquery-appear', get_template_directory_uri() . '/assets/vendors/js/jquery.appear.js', array('jquery'), false, true); + + // fancybox + wp_enqueue_script('fancybox', get_template_directory_uri() . '/assets/vendors/js/jquery.fancybox.js', array('jquery'), false, true); + + // particles + wp_enqueue_script('particles', get_template_directory_uri() . '/assets/vendors/js/particles.js', array('jquery'), false, true); + + // lenis + wp_enqueue_script('lenis', get_template_directory_uri() . '/assets/vendors/js/lenis.min.js', array('jquery'), false, true); + + // scrolltrigger + wp_enqueue_script('scrolltrigger', get_template_directory_uri() . '/assets/vendors/js/scrolltrigger.js', array('jquery'), false, true); + + // splittext + wp_enqueue_script('splittext', get_template_directory_uri() . '/assets/vendors/js/splittext.js', array('jquery'), false, true); + + // Chromax Theme + wp_enqueue_script('chromax-theme', get_template_directory_uri() . '/assets/js/theme.js', array('jquery'), false, true); + + // Chromax custom + wp_enqueue_script('chromax-custom-js', get_template_directory_uri() . '/assets/js/custom.js', array('jquery'), false, true); + + if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) { + wp_enqueue_script( 'comment-reply' ); + } +} +add_action( 'wp_enqueue_scripts', 'chromax_scripts' ); + +/** + * Enqueue admin scripts and styles. + */ +function chromax_admin_enqueue_scripts(){ + wp_enqueue_style('chromax-admin-style', get_template_directory_uri() . '/inc/admin/assets/css/admin.css'); + wp_enqueue_script( 'chromax-admin-script', get_template_directory_uri() . '/inc/admin/assets/js/chromax-admin-script.js', array( 'jquery' ), '', true ); + wp_localize_script( 'chromax-admin-script', 'chromax_ajax_object', + array( + 'ajax_url' => admin_url( 'admin-ajax.php' ), + 'nonce' => wp_create_nonce('chromax_nonce') + ) + ); +} +add_action( 'admin_enqueue_scripts', 'chromax_admin_enqueue_scripts' ); + +/** + * Enqueue User Custom styles. + */ + if( ! function_exists( 'chromax_user_custom_style' ) ): + function chromax_user_custom_style() { + + $chromax_print_style = ''; + + + /*========================================= + Chromax Page Title + =========================================*/ + $chromax_print_style .= chromax_customizer_value( 'chromax_breadcrumb_title_size', '.dt_pagetitle .dt_pagetitle_content .title>*, .dt_pagetitle .dt_pagetitle_bigtitle', array( 'font-size' ), array( 8, 8, 8 ), 'rem' ); + $chromax_print_style .= chromax_customizer_value( 'chromax_breadcrumb_content_size', '.dt_pagetitle .dt_pagetitle_content .dt_pagetitle_breadcrumb li', array( 'font-size' ), array( 2, 2, 2 ), 'rem' ); + + $chromax_breadcrumb_opacity_color = get_theme_mod('chromax_breadcrumb_opacity_color','#00022A'); + $chromax_print_style .=".dt_pagetitle .dt_pagetitle_bgimage::before { + background-color: " .esc_attr($chromax_breadcrumb_opacity_color). "; + }\n"; + + + /*========================================= + Chromax Logo Size + =========================================*/ + $chromax_print_style .= chromax_customizer_value( 'hdr_logo_size', '.site--logo img', array( 'max-width' ), array( 150, 150, 150 ), 'px !important' ); + $chromax_print_style .= chromax_customizer_value( 'hdr_site_title_size', '.site--logo .site-title', array( 'font-size' ), array( 55, 55, 55 ), 'px !important' ); + $chromax_print_style .= chromax_customizer_value( 'hdr_site_desc_size', '.site--logo .site-description', array( 'font-size' ), array( 16, 16, 16 ), 'px !important' ); + + $chromax_site_container_width = get_theme_mod('chromax_site_container_width','2304'); + if($chromax_site_container_width >=768 && $chromax_site_container_width <=2000){ + $chromax_print_style .=".dt-container,.dt_slider .dt_owl_carousel.owl-carousel .owl-nav,.dt_slider .dt_owl_carousel.owl-carousel .owl-dots { + max-width: " .esc_attr($chromax_site_container_width). "px; + }.header--eight .dt-container { + max-width: calc(" .esc_attr($chromax_site_container_width). "px + 7.15rem); + }\n"; + } + + /** + * Sidebar Width + */ + $chromax_sidebar_width = get_theme_mod('chromax_sidebar_width',33); + if($chromax_sidebar_width !== '') { + $chromax_primary_width = absint( 100 - $chromax_sidebar_width ); + $chromax_print_style .=" @media (min-width: 992px) {#dt-main { + max-width:" .esc_attr($chromax_primary_width). "%; + flex-basis:" .esc_attr($chromax_primary_width). "%; + }\n"; + $chromax_print_style .="#dt-sidebar { + max-width:" .esc_attr($chromax_sidebar_width). "%; + flex-basis:" .esc_attr($chromax_sidebar_width). "%; + }}\n"; + } + $chromax_print_style .= chromax_customizer_value( 'chromax_widget_ttl_size', '.dt_widget-area .widget .widget-title,.dt_widget-area .widget .wp-block-heading', array( 'font-size' ), array( 20, 20, 20 ), 'px' ); + + /** + * Typography Body + */ + $chromax_body_font_weight_option = get_theme_mod('chromax_body_font_weight_option','inherit'); + $chromax_body_text_transform_option = get_theme_mod('chromax_body_text_transform_option','inherit'); + $chromax_body_font_style_option = get_theme_mod('chromax_body_font_style_option','inherit'); + $chromax_body_txt_decoration_option = get_theme_mod('chromax_body_txt_decoration_option','none'); + + $chromax_print_style .= chromax_customizer_value( 'chromax_body_font_size_option', 'body', array( 'font-size' ), array( 16, 16, 16 ), 'px' ); + $chromax_print_style .= chromax_customizer_value( 'chromax_body_line_height_option', 'body', array( 'line-height' ), array( 1.6, 1.6, 1.6 ) ); + $chromax_print_style .= chromax_customizer_value( 'chromax_body_ltr_space_option', 'body', array( 'letter-spacing' ), array( 0, 0, 0 ), 'px' ); + + $chromax_print_style .=" body{ + font-weight: " .esc_attr($chromax_body_font_weight_option). "; + text-transform: " .esc_attr($chromax_body_text_transform_option). "; + font-style: " .esc_attr($chromax_body_font_style_option). "; + text-decoration: " .esc_attr($chromax_body_txt_decoration_option). "; + }\n"; + + /** + * Typography Heading + */ + for ( $i = 1; $i <= 6; $i++ ) { + $chromax_heading_font_weight_option = get_theme_mod('chromax_h' . $i . '_font_weight_option','700'); + $chromax_heading_text_transform_option = get_theme_mod('chromax_h' . $i . '_text_transform_option','inherit'); + $chromax_heading_font_style_option = get_theme_mod('chromax_h' . $i . '_font_style_option','inherit'); + $chromax_heading_txt_decoration_option = get_theme_mod('chromax_h' . $i . '_txt_decoration_option','inherit'); + + $chromax_print_style .= chromax_customizer_value( 'chromax_h' . $i . '_font_size_option', 'h' . $i .'', array( 'font-size' ), array( 36, 36, 36 ), 'px' ); + $chromax_print_style .= chromax_customizer_value( 'chromax_h' . $i . '_line_height_option', 'h' . $i . '', array( 'line-height' ), array( 1.2, 1.2, 1.2 ) ); + $chromax_print_style .= chromax_customizer_value( 'chromax_h' . $i . '_ltr_space_option', 'h' . $i . '', array( 'letter-spacing' ), array( 0, 0, 0 ), 'px' ); + $chromax_print_style .=" h" . $i . "{ + font-weight: " .esc_attr($chromax_heading_font_weight_option). "; + text-transform: " .esc_attr($chromax_heading_text_transform_option). "; + font-style: " .esc_attr($chromax_heading_font_style_option). "; + text-decoration: " .esc_attr($chromax_heading_txt_decoration_option). "; + }\n"; + } + + + /*========================================= + Footer + =========================================*/ + $chromax_footer_bg_color = get_theme_mod('chromax_footer_bg_color','#222222'); + if(!empty($chromax_footer_bg_color)): + $chromax_print_style .=".dt_footer--one{ + background-color: ".esc_attr($chromax_footer_bg_color)."; + }\n"; + endif; + wp_add_inline_style( 'chromax-style', $chromax_print_style ); + } +endif; +add_action( 'wp_enqueue_scripts', 'chromax_user_custom_style' ); + + +/** + * Define Constants + */ +$chromax_theme = wp_get_theme(); +define( 'CHROMAX_THEME_VERSION', $chromax_theme->get( 'Version' ) ); + +// Root path/URI. +define( 'CHROMAX_THEME_DIR', get_template_directory() ); +define( 'CHROMAX_THEME_URI', get_template_directory_uri() ); + +// Root path/URI. +define( 'CHROMAX_THEME_INC_DIR', CHROMAX_THEME_DIR . '/inc'); +define( 'CHROMAX_THEME_INC_URI', CHROMAX_THEME_URI . '/inc'); + + +/** + * Implement the Custom Header feature. + */ +require_once get_template_directory() . '/inc/custom-header.php'; + +/** + * Custom template tags for this theme. + */ +require_once get_template_directory() . '/inc/template-tags.php'; + +/** + * Customizer additions. + */ +require_once get_template_directory() . '/inc/customizer/chromax-customizer.php'; +require get_template_directory() . '/inc/customizer/controls/code/customizer-repeater/inc/customizer.php'; + +/** + * Nav Walker for Bootstrap Dropdown Menu. + */ +require_once get_template_directory() . '/inc/class-wp-bootstrap-navwalker.php'; + +/** + * Control Style + */ +require CHROMAX_THEME_INC_DIR . '/customizer/controls/code/control-function/style-functions.php'; + +/** + * Getting Started + */ +require CHROMAX_THEME_INC_DIR . '/admin/getting-started.php'; \ No newline at end of file diff --git a/wp-content/themes/chromax/header.php b/wp-content/themes/chromax/header.php new file mode 100644 index 0000000..dadda0b --- /dev/null +++ b/wp-content/themes/chromax/header.php @@ -0,0 +1,34 @@ + +> + + + + + + + + + + + + +> + + +
    + + + + +
    + \ No newline at end of file diff --git a/wp-content/themes/chromax/inc/admin/assets/css/admin.css b/wp-content/themes/chromax/inc/admin/assets/css/admin.css new file mode 100644 index 0000000..1685ee8 --- /dev/null +++ b/wp-content/themes/chromax/inc/admin/assets/css/admin.css @@ -0,0 +1,46 @@ +li#accordion-panel-chromax_typography_options { + margin-bottom: 10px; +} + +.chromax-getting-started-notice { + padding: 20px 10px; + display: -webkit-flex; + display: -moz-flex; + display: -ms-flex; + display: -o-flex; + display: flex; + -ms-align-items: center; + align-items: center; +} + +.chromax-theme-screenshot img { + width: 100%; + max-width: 200px; + display: inline-block; + vertical-align: top; + border: 2px solid #ddd; + border-radius: 4px; +} + +.chromax-theme-notice-content { + width: 70%; + display: block; + vertical-align: top; + padding: 0 20px; +} + +h2.chromax-notice-h2 { + margin: 0 0 10px; + font-weight: 400; + line-height: 1.3; +} + +.chromax-push-down { + padding-top: 15px; + display: inline-block; + padding-left: 8px; +} + +.chromax-button-padding.updating-message::before { + margin-top: 12px; +} \ No newline at end of file diff --git a/wp-content/themes/chromax/inc/admin/assets/js/chromax-admin-script.js b/wp-content/themes/chromax/inc/admin/assets/js/chromax-admin-script.js new file mode 100644 index 0000000..324b0ee --- /dev/null +++ b/wp-content/themes/chromax/inc/admin/assets/js/chromax-admin-script.js @@ -0,0 +1,26 @@ +( function( $ ){ + $( document ).ready( function(){ + $( '.chromax-btn-get-started' ).on( 'click', function( e ) { + e.preventDefault(); + $( this ).html( 'Processing.. Please wait' ).addClass( 'updating-message' ); + $.post( chromax_ajax_object.ajax_url, { 'action' : 'install_act_plugin' }, function( response ){ + location.href = 'customize.php?chromax_notice=dismiss-get-started'; + } ); + } ); + } ); + + $( document ).on( 'click', '.notice-get-started-class .notice-dismiss', function () { + // Read the "data-notice" information to track which notice + // is being dismissed and send it via AJAX + var type = $( this ).closest( '.notice-get-started-class' ).data( 'notice' ); + // Make an AJAX call + $.ajax( ajaxurl, + { + type: 'POST', + data: { + action: 'chromax_dismissed_notice_handler', + type: type, + } + } ); + } ); +}( jQuery ) ) diff --git a/wp-content/themes/chromax/inc/admin/getting-started.php b/wp-content/themes/chromax/inc/admin/getting-started.php new file mode 100644 index 0000000..cf5085c --- /dev/null +++ b/wp-content/themes/chromax/inc/admin/getting-started.php @@ -0,0 +1,97 @@ + +
    +
    +
    + <?php esc_attr_e( 'Theme Screenshot', 'chromax' ); ?> +
    +
    +

    + '. wp_get_theme()->get('Name'). '' ); + ?> +

    + +

    Desert Companion plugin, then enjoy this theme.', 'chromax')) ?>

    + + + '. wp_get_theme()->get('Name'). '' ); + ?> + + + ', + '', + '' + ); + ?> +
    +
    +
    + sanitize_key( wp_unslash( 'desert-companion' ) ), + 'fields' => array( + 'sections' => false, + ), + ) ); + + $skin = new WP_Ajax_Upgrader_Skin(); + $upgrader = new Plugin_Upgrader( $skin ); + $result = $upgrader->install( $api->download_link ); + } + + // Activate plugin. + if ( current_user_can( 'activate_plugin' ) ) { + $result = activate_plugin( 'desert-companion/desert-companion.php' ); + } +} \ No newline at end of file diff --git a/wp-content/themes/chromax/inc/class-wp-bootstrap-navwalker.php b/wp-content/themes/chromax/inc/class-wp-bootstrap-navwalker.php new file mode 100644 index 0000000..963aeb6 --- /dev/null +++ b/wp-content/themes/chromax/inc/class-wp-bootstrap-navwalker.php @@ -0,0 +1,564 @@ +item_spacing ) && 'discard' === $args->item_spacing ) { + $t = ''; + $n = ''; + } else { + $t = "\t"; + $n = "\n"; + } + $indent = str_repeat( $t, $depth ); + // Default class to add to the file. + $classes = array( 'dropdown-menu' ); + /** + * Filters the CSS class(es) applied to a menu list element. + * + * @since WP 4.8.0 + * + * @param array $classes The CSS classes that are applied to the menu `'; + if ( $container ) { + $fallback_output .= ''; + } + + // If $args has 'echo' key and it's true echo, otherwise return. + if ( array_key_exists( 'echo', $args ) && $args['echo'] ) { + echo $fallback_output; // WPCS: XSS OK. + } else { + return $fallback_output; + } + } + } + + /** + * Find any custom linkmod or icon classes and store in their holder + * arrays then remove them from the main classes array. + * + * Supported linkmods: .disabled, .dropdown-header, .dropdown-divider, .sr-only + * Supported iconsets: Font Awesome 4/5, Glypicons + * + * NOTE: This accepts the linkmod and icon arrays by reference. + * + * @since 4.0.0 + * + * @param array $classes an array of classes currently assigned to the item. + * @param array $linkmod_classes an array to hold linkmod classes. + * @param array $icon_classes an array to hold icon classes. + * @param integer $depth an integer holding current depth level. + * + * @return array $classes a maybe modified array of classnames. + */ + private function separate_linkmods_and_icons_from_classes( $classes, &$linkmod_classes, &$icon_classes, $depth ) { + // Loop through $classes array to find linkmod or icon classes. + foreach ( $classes as $key => $class ) { + /* + * If any special classes are found, store the class in it's + * holder array and and unset the item from $classes. + */ + if ( preg_match( '/^disabled|^sr-only/i', $class ) ) { + // Test for .disabled or .sr-only classes. + $linkmod_classes[] = $class; + unset( $classes[ $key ] ); + } elseif ( preg_match( '/^dropdown-header|^dropdown-divider|^dropdown-item-text/i', $class ) && $depth > 0 ) { + /* + * Test for .dropdown-header or .dropdown-divider and a + * depth greater than 0 - IE inside a dropdown. + */ + $linkmod_classes[] = $class; + unset( $classes[ $key ] ); + } elseif ( preg_match( '/^fa-(\S*)?|^fa(s|r|l|b)?(\s?)?$/i', $class ) ) { + // Font Awesome. + $icon_classes[] = $class; + unset( $classes[ $key ] ); + } elseif ( preg_match( '/^glyphicon-(\S*)?|^glyphicon(\s?)$/i', $class ) ) { + // Glyphicons. + $icon_classes[] = $class; + unset( $classes[ $key ] ); + } + } + + return $classes; + } + + /** + * Return a string containing a linkmod type and update $atts array + * accordingly depending on the decided. + * + * @since 4.0.0 + * + * @param array $linkmod_classes array of any link modifier classes. + * + * @return string empty for default, a linkmod type string otherwise. + */ + private function get_linkmod_type( $linkmod_classes = array() ) { + $linkmod_type = ''; + // Loop through array of linkmod classes to handle their $atts. + if ( ! empty( $linkmod_classes ) ) { + foreach ( $linkmod_classes as $link_class ) { + if ( ! empty( $link_class ) ) { + + // Check for special class types and set a flag for them. + if ( 'dropdown-header' === $link_class ) { + $linkmod_type = 'dropdown-header'; + } elseif ( 'dropdown-divider' === $link_class ) { + $linkmod_type = 'dropdown-divider'; + } elseif ( 'dropdown-item-text' === $link_class ) { + $linkmod_type = 'dropdown-item-text'; + } + } + } + } + return $linkmod_type; + } + + /** + * Update the attributes of a nav item depending on the limkmod classes. + * + * @since 4.0.0 + * + * @param array $atts array of atts for the current link in nav item. + * @param array $linkmod_classes an array of classes that modify link or nav item behaviors or displays. + * + * @return array maybe updated array of attributes for item. + */ + private function update_atts_for_linkmod_type( $atts = array(), $linkmod_classes = array() ) { + if ( ! empty( $linkmod_classes ) ) { + foreach ( $linkmod_classes as $link_class ) { + if ( ! empty( $link_class ) ) { + /* + * Update $atts with a space and the extra classname + * so long as it's not a sr-only class. + */ + if ( 'sr-only' !== $link_class ) { + $atts['class'] .= ' ' . esc_attr( $link_class ); + } + // Check for special class types we need additional handling for. + if ( 'disabled' === $link_class ) { + // Convert link to '#' and unset open targets. + $atts['href'] = '#'; + unset( $atts['target'] ); + } elseif ( 'dropdown-header' === $link_class || 'dropdown-divider' === $link_class || 'dropdown-item-text' === $link_class ) { + // Store a type flag and unset href and target. + unset( $atts['href'] ); + unset( $atts['target'] ); + } + } + } + } + return $atts; + } + + /** + * Wraps the passed text in a screen reader only class. + * + * @since 4.0.0 + * + * @param string $text the string of text to be wrapped in a screen reader class. + * @return string the string wrapped in a span with the class. + */ + private function wrap_for_screen_reader( $text = '' ) { + if ( $text ) { + $text = '' . $text . ''; + } + return $text; + } + + /** + * Returns the correct opening element and attributes for a linkmod. + * + * @since 4.0.0 + * + * @param string $linkmod_type a sting containing a linkmod type flag. + * @param string $attributes a string of attributes to add to the element. + * + * @return string a string with the openign tag for the element with attribibutes added. + */ + private function linkmod_element_open( $linkmod_type, $attributes = '' ) { + $output = ''; + if ( 'dropdown-item-text' === $linkmod_type ) { + $output .= ''; + } elseif ( 'dropdown-header' === $linkmod_type ) { + /* + * For a header use a span with the .h6 class instead of a real + * header tag so that it doesn't confuse screen readers. + */ + $output .= ''; + } elseif ( 'dropdown-divider' === $linkmod_type ) { + // This is a divider. + $output .= ''; + } + return $output; + } + } +} \ No newline at end of file diff --git a/wp-content/themes/chromax/inc/custom-header.php b/wp-content/themes/chromax/inc/custom-header.php new file mode 100644 index 0000000..108ee8a --- /dev/null +++ b/wp-content/themes/chromax/inc/custom-header.php @@ -0,0 +1,51 @@ + '', + 'default-text-color' => '161C2D', + 'width' => 1920, + 'height' => 200, + 'flex-height' => true, + 'wp-head-callback' => 'chromax_header_style', + ) ) ); +} +add_action( 'after_setup_theme', 'chromax_custom_header_setup' ); + +if ( ! function_exists( 'chromax_header_style' ) ) : + /** + * Styles the header image and text displayed on the blog. + * + * @see chromax_custom_header_setup(). + */ +function chromax_header_style() { + $header_text_color = get_header_textcolor(); + // If we get this far, we have custom styles. Let's do this. + ?> + + @media (min-width: 320px){ ' + selector_name + ' { ' + mobile_css + ' } } @media (min-width: 720px){ ' + selector_name + ' { ' + tablet_css + ' } } @media (min-width: 960px){ ' + selector_name + ' { ' + desktop_css + ' } }'; + + if ( css_class.length ) { + css_class.replaceWith( head_append ); + } else { + $( "head" ).append( head_append ); + } + } + ); + } + ); + } + // Site title and description. + wp.customize( 'blogname', function( value ) { + value.bind( function( to ) { + $( '.site-title' ).text( to ); + } ); + } ); + wp.customize( 'blogdescription', function( value ) { + value.bind( function( to ) { + $( '.site-description' ).text( to ); + } ); + } ); + + // Header text color. + wp.customize( 'header_textcolor', function( value ) { + value.bind( function( to ) { + if ( 'blank' === to ) { + $( '.site-title, .site-description' ).css( { + 'clip': 'rect(1px, 1px, 1px, 1px)', + 'position': 'absolute' + } ); + } else { + $( '.site-title, .site-description' ).css( { + 'clip': 'auto', + 'position': 'relative' + } ); + $( '.site-title, .site-description' ).css( { + 'color': to + } ); + } + } ); + } ); + + $(document).ready(function ($) { + $('input[data-input-type]').on('input change', function () { + var val = $(this).val(); + $(this).prev('.cs-range-value').html(val); + $(this).val(val); + }); + }) + + /** + * hdr_logo_size + */ + range_live_media_load( 'hdr_logo_size', '.site--logo img', [ 'max-width' ], 'px !important' ); + + + /** + * hdr_site_title_size + */ + range_live_media_load( 'hdr_site_title_size', '.site--logo .site-title', [ 'font-size' ], 'px !important' ); + + /** + * hdr_site_desc_size + */ + range_live_media_load( 'hdr_site_desc_size', '.site--logo .site-description', [ 'font-size' ], 'px !important' ); + + //chromax_hdr_email_title + wp.customize( + 'chromax_hdr_email_title', function( value ) { + value.bind( + function( newval ) { + $( '.dt_header .dt_header-topbar .widget_contact.email .contact__body .title a' ).text( newval ); + } + ); + } + ); + + //chromax_hdr_top_ads_title + wp.customize( + 'chromax_hdr_top_ads_title', function( value ) { + value.bind( + function( newval ) { + $( '.dt_header .dt_header-topbar .widget_contact.address .contact__body h6' ).text( newval ); + } + ); + } + ); + + //chromax_hdr_time_title + wp.customize( + 'chromax_hdr_time_title', function( value ) { + value.bind( + function( newval ) { + $( '.dt_header .dt_header-topbar .widget_contact.time .contact__body .title' ).text( newval ); + } + ); + } + ); + + //chromax_hdr_btn_lbl + wp.customize( + 'chromax_hdr_btn_lbl', function( value ) { + value.bind( + function( newval ) { + $( '.dt_header .dt_navbar-button-item .dt-btn' ).text( newval ); + } + ); + } + ); + + //chromax_hdr_contact_ttl + wp.customize( + 'chromax_hdr_contact_ttl', function( value ) { + value.bind( + function( newval ) { + $( '.dt_header .dt_navbar-info-contact .contact__body.one .title' ).text( newval ); + } + ); + } + ); + + //chromax_hdr_contact_txt + wp.customize( + 'chromax_hdr_contact_txt', function( value ) { + value.bind( + function( newval ) { + $( '.dt_header .dt_navbar-info-contact .contact__body.one .description' ).text( newval ); + } + ); + } + ); + + //chromax_footer_mid_ttl + wp.customize( + 'chromax_footer_mid_ttl', function( value ) { + value.bind( + function( newval ) { + $( '.dt_footer_middle .bounce-text a' ).text( newval ); + } + ); + } + ); + + //chromax_about_left_ttl + wp.customize( + 'chromax_about_left_ttl', function( value ) { + value.bind( + function( newval ) { + $( '.front-about .section-title .sub-title .text-animate' ).text( newval ); + } + ); + } + ); + + //chromax_about_left_subttl + wp.customize( + 'chromax_about_left_subttl', function( value ) { + value.bind( + function( newval ) { + $( '.front-about .section-title .title' ).text( newval ); + } + ); + } + ); + + //chromax_service_ttl + wp.customize( + 'chromax_service_ttl', function( value ) { + value.bind( + function( newval ) { + $( '.front-service .section-title .sub-title .text-animate' ).text( newval ); + } + ); + } + ); + + //chromax_service_subttl + wp.customize( + 'chromax_service_subttl', function( value ) { + value.bind( + function( newval ) { + $( '.front-service .section-title .title' ).text( newval ); + } + ); + } + ); + + //chromax_service_text + wp.customize( + 'chromax_service_text', function( value ) { + value.bind( + function( newval ) { + $( '.front-service .dt-mt-5.dt-text-center .text' ).text( newval ); + } + ); + } + ); + + //chromax_service_btn_lbl + wp.customize( + 'chromax_service_btn_lbl', function( value ) { + value.bind( + function( newval ) { + $( '.front-service .dt-mt-5.dt-text-center .dt-btn' ).text( newval ); + } + ); + } + ); + + //chromax_why_choose_left_ttl + wp.customize( + 'chromax_why_choose_left_ttl', function( value ) { + value.bind( + function( newval ) { + $( '.front-whychooseus .section-title .sub-title .text-animate' ).text( newval ); + } + ); + } + ); + + //chromax_why_choose_left_subttl + wp.customize( + 'chromax_why_choose_left_subttl', function( value ) { + value.bind( + function( newval ) { + $( '.front-whychooseus .section-title .title' ).text( newval ); + } + ); + } + ); + + //chromax_why_choose_left_text + wp.customize( + 'chromax_why_choose_left_text', function( value ) { + value.bind( + function( newval ) { + $( '.front-clients .section-title .desc' ).text( newval ); + } + ); + } + ); + + //chromax_blog_ttl + wp.customize( + 'chromax_blog_ttl', function( value ) { + value.bind( + function( newval ) { + $( '.front-posts .section-title .sub-title .text-animate' ).text( newval ); + } + ); + } + ); + + //chromax_blog_subttl + wp.customize( + 'chromax_blog_subttl', function( value ) { + value.bind( + function( newval ) { + $( '.front-posts .section-title .title' ).text( newval ); + } + ); + } + ); + + /** + * Container Width + */ + wp.customize( 'chromax_site_container_width', function( value ) { + + value.bind( function( chromax_site_container_width ) { + var class_name = 'chromax_site_container_width'; // Used as id in gfont link + var css_class = $( '.' + class_name ); + + if (chromax_site_container_width >= 768 && chromax_site_container_width < 2000){ + var head_append = ''; + } + + if ( css_class.length ) { + css_class.replaceWith( head_append ); + } else { + $( 'head' ).append( head_append ); + } + + }); + + } ); + + /** + * Breadcrumb Typography + */ + range_live_media_load( 'chromax_breadcrumb_title_size', '.dt_pagetitle .dt_pagetitle_content .title>*, .dt_pagetitle .dt_pagetitle_bigtitle', [ 'font-size' ], 'rem' ); + range_live_media_load( 'chromax_breadcrumb_content_size', '.dt_pagetitle .dt_pagetitle_content .dt_pagetitle_breadcrumb li', [ 'font-size' ], 'rem' ); + + + /** + * Sidebar width. + */ + wp.customize( 'chromax_sidebar_width', function( value ) { + 'use strict'; + value.bind( + function( to ){ + var class_name = 'customizer-sidebar-width'; // Used as id in gfont link + var css_class = $( '.' + class_name ); + + var sidebar_width = to; + var content_width = ( 100 - to ); + + var head_append = ''; + + if ( css_class.length ) { + css_class.replaceWith( head_append ); + } else { + $( 'head' ).append( head_append ); + } + } + ); + } + ); + + + /** + * chromax_widget_ttl_size + */ + range_live_media_load( 'chromax_widget_ttl_size', '.dt_widget-area .widget .widget-title,.dt_widget-area .widget .wp-block-heading', [ 'font-size' ], 'px' ); + + /** + * Body font size + */ + + range_live_media_load( 'chromax_body_font_size_option', 'body', [ 'font-size' ], 'px' ); + + /** + * Body Letter Spacing + */ + + range_live_media_load( 'chromax_body_ltr_space_option', 'body', [ 'letter-spacing' ], 'px' ); + + /** + * Body font weight + */ + wp.customize( 'chromax_body_font_weight_option', function( value ) { + value.bind( function( font_weight_option ) { + jQuery( 'body' ).css( 'font-weight', font_weight_option ); + } ); + } ); + + /** + * Body font style + */ + wp.customize( 'chromax_body_font_style_option', function( value ) { + value.bind( function( font_style_option ) { + jQuery( 'body' ).css( 'font-style', font_style_option ); + } ); + } ); + + /** + * Body Text Decoration + */ + wp.customize( 'chromax_body_txt_decoration_option', function( value ) { + value.bind( function( decoration ) { + jQuery( 'body, a' ).css( 'text-decoration', decoration ); + } ); + } ); + /** + * Body text tranform + */ + wp.customize( 'chromax_body_text_transform_option', function( value ) { + value.bind( function( text_tranform ) { + jQuery( 'body' ).css( 'text-transform', text_tranform ); + } ); + } ); + + /** + * chromax_body_line_height + */ + range_live_media_load( 'chromax_body_line_height_option', 'body', [ 'line-height' ] ); + + + /** + * H1 font size + */ + range_live_media_load( 'chromax_h1_font_size_option', 'h1', [ 'font-size' ], 'px' ); + + /** + * H1 font style + */ + wp.customize( 'chromax_h1_font_style_option', function( value ) { + value.bind( function( font_style_option ) { + jQuery( 'h1' ).css( 'font-style', font_style_option ); + } ); + } ); + + /** + * H1 Text Decoration + */ + wp.customize( 'chromax_h1_txt_decoration_option', function( value ) { + value.bind( function( decoration ) { + jQuery( 'h1' ).css( 'text-decoration', decoration ); + } ); + } ); + + /** + * H1 font weight + */ + wp.customize( 'chromax_h1_font_weight_option', function( value ) { + value.bind( function( font_weight_option ) { + jQuery( 'h1' ).css( 'font-weight', font_weight_option ); + } ); + } ); + + /** + * H1 text tranform + */ + wp.customize( 'chromax_h1_text_transform_option', function( value ) { + value.bind( function( text_tranform ) { + jQuery( 'h1' ).css( 'text-transform', text_tranform ); + } ); + } ); + + /** + * H1 line height + */ + range_live_media_load( 'chromax_h1_line_height_option', 'h1', [ 'line-height' ] ); + + /** + * H1 Letter Spacing + */ + + range_live_media_load( 'chromax_h1_ltr_space_option', 'h1', [ 'letter-spacing' ], 'px' ); + + + /** + * H2 font size + */ + range_live_media_load( 'chromax_h2_font_size_option', 'h2', [ 'font-size' ], 'px' ); + + /** + * H2 font style + */ + wp.customize( 'chromax_h2_font_style_option', function( value ) { + value.bind( function( font_style_option ) { + jQuery( 'h2' ).css( 'font-style', font_style_option ); + } ); + } ); + + /** + * H2 Text Decoration + */ + wp.customize( 'chromax_h2_txt_decoration_option', function( value ) { + value.bind( function( decoration ) { + jQuery( 'h2' ).css( 'text-decoration', decoration ); + } ); + } ); + + /** + * H2 font weight + */ + wp.customize( 'chromax_h2_font_weight_option', function( value ) { + value.bind( function( font_weight_option ) { + jQuery( 'h2' ).css( 'font-weight', font_weight_option ); + } ); + } ); + + /** + * H2 text tranform + */ + wp.customize( 'chromax_h2_text_transform_option', function( value ) { + value.bind( function( text_tranform ) { + jQuery( 'h2' ).css( 'text-transform', text_tranform ); + } ); + } ); + + /** + * H2 line height + */ + range_live_media_load( 'chromax_h2_line_height_option', 'h2', [ 'line-height' ]); + + /** + * H2 Letter Spacing + */ + + range_live_media_load( 'chromax_h2_ltr_space_option', 'h2', [ 'letter-spacing' ], 'px' ); + + /** + * H3 font size + */ + range_live_media_load( 'chromax_h3_font_size_option', 'h3', [ 'font-size' ], 'px' ); + + /** + * H3 font style + */ + wp.customize( 'chromax_h3_font_style_option', function( value ) { + value.bind( function( font_style_option ) { + jQuery( 'h3' ).css( 'font-style', font_style_option ); + } ); + } ); + + /** + * H3 Text Decoration + */ + wp.customize( 'chromax_h3_txt_decoration_option', function( value ) { + value.bind( function( decoration ) { + jQuery( 'h3' ).css( 'text-decoration', decoration ); + } ); + } ); + + /** + * H3 font weight + */ + wp.customize( 'chromax_h3_font_weight_option', function( value ) { + value.bind( function( font_weight_option ) { + jQuery( 'h3' ).css( 'font-weight', font_weight_option ); + } ); + } ); + + /** + * H3 text tranform + */ + wp.customize( 'chromax_h3_text_transform_option', function( value ) { + value.bind( function( text_tranform ) { + jQuery( 'h3' ).css( 'text-transform', text_tranform ); + } ); + } ); + + /** + * H3 line height + */ + range_live_media_load( 'chromax_h3_line_height_option', 'h3', [ 'line-height' ]); + + /** + * H3 Letter Spacing + */ + + range_live_media_load( 'chromax_h3_ltr_space_option', 'h3', [ 'letter-spacing' ], 'px' ); + + /** + * H4 font size + */ + range_live_media_load( 'chromax_h4_font_size_option', 'h4', [ 'font-size' ], 'px' ); + + /** + * H4 font style + */ + wp.customize( 'chromax_h4_font_style_option', function( value ) { + value.bind( function( font_style_option ) { + jQuery( 'h4' ).css( 'font-style', font_style_option ); + } ); + } ); + + /** + * H4 Text Decoration + */ + wp.customize( 'chromax_h4_txt_decoration_option', function( value ) { + value.bind( function( decoration ) { + jQuery( 'h4' ).css( 'text-decoration', decoration ); + } ); + } ); + + /** + * H4 font weight + */ + wp.customize( 'chromax_h4_font_weight_option', function( value ) { + value.bind( function( font_weight_option ) { + jQuery( 'h4' ).css( 'font-weight', font_weight_option ); + } ); + } ); + + /** + * H4 text tranform + */ + wp.customize( 'chromax_h4_text_transform_option', function( value ) { + value.bind( function( text_tranform ) { + jQuery( 'h4' ).css( 'text-transform', text_tranform ); + } ); + } ); + + /** + * H4 line height + */ + range_live_media_load( 'chromax_h4_line_height_option', 'h4', [ 'line-height' ]); + + /** + * H4 Letter Spacing + */ + + range_live_media_load( 'chromax_h4_ltr_space_option', 'h4', [ 'letter-spacing' ], 'px' ); + + /** + * H5 font size + */ + range_live_media_load( 'chromax_h5_font_size_option', 'h5', [ 'font-size' ], 'px' ); + + /** + * H5 font style + */ + wp.customize( 'chromax_h5_font_style_option', function( value ) { + value.bind( function( font_style_option ) { + jQuery( 'h5' ).css( 'font-style', font_style_option ); + } ); + } ); + + /** + * H5 Text Decoration + */ + wp.customize( 'chromax_h5_txt_decoration_option', function( value ) { + value.bind( function( decoration ) { + jQuery( 'h5' ).css( 'text-decoration', decoration ); + } ); + } ); + + + /** + * H5 font weight + */ + wp.customize( 'chromax_h5_font_weight_option', function( value ) { + value.bind( function( font_weight_option ) { + jQuery( 'h5' ).css( 'font-weight', font_weight_option ); + } ); + } ); + + /** + * H5 text tranform + */ + wp.customize( 'chromax_h5_text_transform_option', function( value ) { + value.bind( function( text_tranform ) { + jQuery( 'h5' ).css( 'text-transform', text_tranform ); + } ); + } ); + + /** + * H5 line height + */ + range_live_media_load( 'chromax_h5_line_height_option', 'h5', [ 'line-height' ]); + + /** + * H5 Letter Spacing + */ + + range_live_media_load( 'chromax_h5_ltr_space_option', 'h5', [ 'letter-spacing' ], 'px' ); + + /** + * H6 font size + */ + range_live_media_load( 'chromax_h6_font_size_option', 'h6', [ 'font-size' ], 'px' ); + + /** + * H6 font style + */ + wp.customize( 'chromax_h6_font_style_option', function( value ) { + value.bind( function( font_style_option ) { + jQuery( 'h6' ).css( 'font-style', font_style_option ); + } ); + } ); + + /** + * H6 Text Decoration + */ + wp.customize( 'chromax_h6_txt_decoration_option', function( value ) { + value.bind( function( decoration ) { + jQuery( 'h6' ).css( 'text-decoration', decoration ); + } ); + } ); + + + /** + * H6 font weight + */ + wp.customize( 'chromax_h6_font_weight_option', function( value ) { + value.bind( function( font_weight_option ) { + jQuery( 'h6' ).css( 'font-weight', font_weight_option ); + } ); + } ); + + /** + * H6 text tranform + */ + wp.customize( 'chromax_h6_text_transform_option', function( value ) { + value.bind( function( text_tranform ) { + jQuery( 'h6' ).css( 'text-transform', text_tranform ); + } ); + } ); + + /** + * H6 line height + */ + range_live_media_load( 'chromax_h6_line_height_option', 'h6', [ 'line-height' ]); + + /** + * H6 Letter Spacing + */ + + range_live_media_load( 'chromax_h6_ltr_space_option', 'h6', [ 'letter-spacing' ], 'px' ); + +} )( jQuery ); \ No newline at end of file diff --git a/wp-content/themes/chromax/inc/customizer/assets/js/customizer-section.js b/wp-content/themes/chromax/inc/customizer/assets/js/customizer-section.js new file mode 100644 index 0000000..2dc2a9c --- /dev/null +++ b/wp-content/themes/chromax/inc/customizer/assets/js/customizer-section.js @@ -0,0 +1,58 @@ +( function( api ) { + + // Extends our custom "example-1" section. + api.sectionConstructor['plugin-section'] = api.Section.extend( { + + // No events for this type of section. + attachEvents: function () {}, + + // Always make the section active. + isContextuallyActive: function () { + return true; + } + } ); + +} )( wp.customize ); + + +function chromaxfrontpagesectionsscroll( chromax_section_id ){ + var navigation_id = "dt_slider"; + + var $contents = jQuery('#customize-preview iframe').contents(); + + switch ( chromax_section_id ) { + case 'accordion-section-information_options': + navigation_id = "dt_information"; + break; + + case 'accordion-section-about_options': + navigation_id = "dt_about"; + break; + + case 'accordion-section-service_options': + navigation_id = "dt_service"; + break; + + case 'accordion-section-why_choose_options': + navigation_id = "dt_why_choose_us"; + break; + + case 'accordion-section-blog_options': + navigation_id = "dt_posts"; + break; + + } + + if( $contents.find('#'+navigation_id).length > 0 ){ + $contents.find("html, body").animate({ + scrollTop: $contents.find( "#" + navigation_id ).offset().top + }, 1000); + } +} + + + + jQuery('body').on('click', '#sub-accordion-panel-chromax_frontpage_options .control-subsection .accordion-section-title', function(event) { + var chromax_section_id = jQuery(this).parent('.control-subsection').attr('id'); + chromaxfrontpagesectionsscroll( chromax_section_id ); +}); \ No newline at end of file diff --git a/wp-content/themes/chromax/inc/customizer/chromax-customizer.php b/wp-content/themes/chromax/inc/customizer/chromax-customizer.php new file mode 100644 index 0000000..049a876 --- /dev/null +++ b/wp-content/themes/chromax/inc/customizer/chromax-customizer.php @@ -0,0 +1,90 @@ +get_setting( 'blogname' )->transport = 'postMessage'; + $wp_customize->get_setting( 'blogdescription' )->transport = 'postMessage'; + $wp_customize->get_setting( 'header_textcolor' )->transport = 'postMessage'; + $wp_customize->get_setting( 'background_color' )->transport = 'postMessage'; + $wp_customize->get_setting('custom_logo')->transport = 'refresh'; + } + + // Register custom controls + public function chromax_customizer_control( $wp_customize ) { + + $chromax_control_dir = CHROMAX_THEME_INC_DIR . '/customizer/controls'; + + // Load custom control classes. + $wp_customize->register_control_type( 'Chromax_Customizer_Range_Control' ); + require $chromax_control_dir . '/code/chromax-slider-control.php'; + require $chromax_control_dir . '/code/chromax-icon-picker-control.php'; + require $chromax_control_dir . '/code/chromax-category-dropdown-control.php'; + require $chromax_control_dir . '/code/editor/class/class-chromax-page-editor.php'; + + } + + // selective refresh. + public function chromax_customizer_sainitization_selective_refresh() { + + require CHROMAX_THEME_INC_DIR . '/customizer/sanitization.php'; + + } + + // Theme Customizer preview reload changes asynchronously. + public function chromax_customize_preview_js() { + wp_enqueue_script( 'chromax-customizer', CHROMAX_THEME_INC_URI . '/customizer/assets/js/customizer-preview.js', array( 'customize-preview' ), CHROMAX_THEME_VERSION, true ); + } + + public function chromax_customizer_navigation_script() { + wp_enqueue_script( 'chromax-customizer-section', CHROMAX_THEME_INC_URI .'/customizer/assets/js/customizer-section.js', array("jquery"),'', true ); + } + + + // Include customizer settings. + + public function chromax_customizer_settings() { + // Recommended Plugin + require CHROMAX_THEME_INC_DIR . '/customizer/customizer-plugin-notice/chromax-notify-plugin.php'; + + // Upsale + require CHROMAX_THEME_INC_DIR . '/customizer/controls/code/upgrade/class-customize.php'; + + $chromax_customize_dir = CHROMAX_THEME_INC_DIR . '/customizer/customizer-settings'; + require $chromax_customize_dir . '/chromax-header-customize-setting.php'; + require $chromax_customize_dir . '/chromax-footer-customize-setting.php'; + require $chromax_customize_dir . '/chromax-theme-customize-setting.php'; + require $chromax_customize_dir . '/chromax-typography-customize-setting.php'; + require CHROMAX_THEME_INC_DIR . '/customizer/chromax-selective-partial.php'; + require CHROMAX_THEME_INC_DIR . '/customizer/chromax-selective-refresh.php'; + } + + } +endif; +new Chromax_Customizer(); \ No newline at end of file diff --git a/wp-content/themes/chromax/inc/customizer/chromax-selective-partial.php b/wp-content/themes/chromax/inc/customizer/chromax-selective-partial.php new file mode 100644 index 0000000..2237d2a --- /dev/null +++ b/wp-content/themes/chromax/inc/customizer/chromax-selective-partial.php @@ -0,0 +1,40 @@ +selective_refresh->add_partial( 'chromax_hdr_email_title', array( + 'selector' => '.dt_header .dt_header-topbar .widget_contact.email .contact__body .title a', + 'settings' => 'chromax_hdr_email_title', + 'render_callback' => 'chromax_hdr_email_title_render_callback', + ) ); + + // chromax_hdr_top_ads_title + $wp_customize->selective_refresh->add_partial( 'chromax_hdr_top_ads_title', array( + 'selector' => '.dt_header .dt_header-topbar .widget_contact.address .contact__body h6', + 'settings' => 'chromax_hdr_top_ads_title', + 'render_callback' => 'chromax_hdr_top_ads_title_render_callback', + ) ); + + // chromax_hdr_time_title + $wp_customize->selective_refresh->add_partial( 'chromax_hdr_time_title', array( + 'selector' => '.dt_header .dt_header-topbar .widget_contact.time .contact__body .title', + 'settings' => 'chromax_hdr_time_title', + 'render_callback' => 'chromax_hdr_time_title_render_callback', + ) ); + + // chromax_hdr_btn_lbl + $wp_customize->selective_refresh->add_partial( 'chromax_hdr_btn_lbl', array( + 'selector' => '.dt_header .dt_navbar-button-item .dt-btn', + 'settings' => 'chromax_hdr_btn_lbl', + 'render_callback' => 'chromax_hdr_btn_lbl_render_callback', + ) ); + + // chromax_hdr_contact_ttl + $wp_customize->selective_refresh->add_partial( 'chromax_hdr_contact_ttl', array( + 'selector' => '.dt_header .dt_navbar-info-contact .contact__body.one .title', + 'settings' => 'chromax_hdr_contact_ttl', + 'render_callback' => 'chromax_hdr_contact_ttl_render_callback', + ) ); + + // chromax_hdr_contact_txt + $wp_customize->selective_refresh->add_partial( 'chromax_hdr_contact_txt', array( + 'selector' => '.dt_header .dt_navbar-info-contact .contact__body.one .description', + 'settings' => 'chromax_hdr_contact_txt', + 'render_callback' => 'chromax_hdr_contact_txt_render_callback', + ) ); + + // chromax_footer_mid_ttl + $wp_customize->selective_refresh->add_partial( 'chromax_footer_mid_ttl', array( + 'selector' => '.dt_footer_middle .bounce-text a', + 'settings' => 'chromax_footer_mid_ttl', + 'render_callback' => 'chromax_footer_mid_ttl_render_callback', + ) ); + + // chromax_footer_copyright_text + $wp_customize->selective_refresh->add_partial( 'chromax_footer_copyright_text', array( + 'selector' => '.dt_footer_copyright-text', + 'settings' => 'chromax_footer_copyright_text', + 'render_callback' => 'chromax_footer_copyright_text_render_callback', + ) ); + } +add_action( 'customize_register', 'chromax_site_selective_partials' ); \ No newline at end of file diff --git a/wp-content/themes/chromax/inc/customizer/controls/code/chromax-category-dropdown-control.php b/wp-content/themes/chromax/inc/customizer/controls/code/chromax-category-dropdown-control.php new file mode 100644 index 0000000..7e5f383 --- /dev/null +++ b/wp-content/themes/chromax/inc/customizer/controls/code/chromax-category-dropdown-control.php @@ -0,0 +1,48 @@ +cats = get_categories($options); + + parent::__construct( $manager, $id, $args ); + } + + /** + * Render the content of the category dropdown + * + * @return HTML + */ + public function render_content() + { + if(!empty($this->cats)) + { + ?> + + icons = $this->Chromax_get_icons(); + parent::__construct( $manager, $id, $args ); + } + + /** + * Enqueue scripts + */ + public function enqueue() { + + wp_enqueue_style( 'chromax-icon-picker-css', CHROMAX_THEME_INC_URI . '/customizer/controls/js/fonticonpicker/jquery.fonticonpicker.css', false ); + + wp_enqueue_script( 'chromax-icon-picker-js', CHROMAX_THEME_INC_URI .'/customizer/controls/js/fonticonpicker/jquery.fonticonpicker.js', array( 'jquery', 'jquery-ui-sortable' ) ); + } + + /** + * Render the content of the dropdown + * + * Adding the font-family styling to the select so that the font renders + * @return HTML + */ + public function render_content() { + if ( ! empty( $this->icons ) ) { ?> + + 'fab fa-500px', + 'fab fa-accessible-icon' => 'fab fa-accessible-icon', + 'fab fa-accusoft' => 'fab fa-accusoft', + 'fas fa-address-book' => 'fas fa-address-book', + 'far fa-address-book' => 'far fa-address-book', + 'fas fa-address-card' => 'fas fa-address-card', + 'far fa-address-card' => 'far fa-address-card', + 'fas fa-adjust' => 'fas fa-adjust', + 'fab fa-adn' => 'fab fa-adn', + 'fab fa-adversal' => 'fab fa-adversal', + 'fab fa-affiliatetheme' => 'fab fa-affiliatetheme', + 'fab fa-algolia' => 'fab fa-algolia', + 'fas fa-align-center' => 'fas fa-align-center', + 'fas fa-align-justify' => 'fas fa-align-justify', + 'fas fa-align-left' => 'fas fa-align-left', + 'fas fa-align-right' => 'fas fa-align-right', + 'fab fa-amazon' => 'fab fa-amazon', + 'fas fa-ambulance' => 'fas fa-ambulance', + 'fas fa-american-sign-language-interpreting' => 'fas fa-american-sign-language-interpreting', + 'fab fa-amilia' => 'fab fa-amilia', + 'fas fa-anchor' => 'fas fa-anchor', + 'fab fa-android' => 'fab fa-android', + 'fab fa-angellist' => 'fab fa-angellist', + 'fas fa-angle-double-down' => 'fas fa-angle-double-down', + 'fas fa-angle-double-left' => 'fas fa-angle-double-left', + 'fas fa-angle-double-right' => 'fas fa-angle-double-right', + 'fas fa-angle-double-up' => 'fas fa-angle-double-up', + 'fas fa-angle-down' => 'fas fa-angle-down', + 'fas fa-angle-left' => 'fas fa-angle-left', + 'fas fa-angle-right' => 'fas fa-angle-right', + 'fas fa-angle-up' => 'fas fa-angle-up', + 'fab fa-angrycreative' => 'fab fa-angrycreative', + 'fab fa-angular' => 'fab fa-angular', + 'fab fa-app-store' => 'fab fa-app-store', + 'fab fa-app-store-ios' => 'fab fa-app-store-ios', + 'fab fa-apper' => 'fab fa-apper', + 'fab fa-apple' => 'fab fa-apple', + 'fab fa-apple-pay' => 'fab fa-apple-pay', + 'fas fa-archive' => 'fas fa-archive', + 'fas fa-arrow-alt-circle-down' => 'fas fa-arrow-alt-circle-down', + 'far fa-arrow-alt-circle-down' => 'far fa-arrow-alt-circle-down', + 'fas fa-arrow-alt-circle-left' => 'fas fa-arrow-alt-circle-left', + 'far fa-arrow-alt-circle-left' => 'far fa-arrow-alt-circle-left', + 'fas fa-arrow-alt-circle-right' => 'fas fa-arrow-alt-circle-right', + 'far fa-arrow-alt-circle-right' => 'far fa-arrow-alt-circle-right', + 'fas fa-arrow-alt-circle-up' => 'fas fa-arrow-alt-circle-up', + 'far fa-arrow-alt-circle-up' => 'far fa-arrow-alt-circle-up', + 'fas fa-arrow-circle-down' => 'fas fa-arrow-circle-down', + 'fas fa-arrow-circle-left' => 'fas fa-arrow-circle-left', + 'fas fa-arrow-circle-right' => 'fas fa-arrow-circle-right', + 'fas fa-arrow-circle-up' => 'fas fa-arrow-circle-up', + 'fas fa-arrow-down' => 'fas fa-arrow-down', + 'fas fa-arrow-left' => 'fas fa-arrow-left', + 'fas fa-arrow-right' => 'fas fa-arrow-right', 'fas fa-arrow-up' => 'fas fa-arrow-up', + 'fas fa-arrows-alt' => 'fas fa-arrows-alt', + 'fas fa-arrows-alt-h' => 'fas fa-arrows-alt-h', + 'fas fa-arrows-alt-v' => 'fas fa-arrows-alt-v', + 'fas fa-assistive-listening-systems' => 'fas fa-assistive-listening-systems', + 'fas fa-asterisk' => 'fas fa-asterisk', + 'fab fa-asymmetrik' => 'fab fa-asymmetrik', + 'fas fa-at' => 'fas fa-at', + 'fab fa-audible' => 'fab fa-audible', + 'fas fa-audio-description' => 'fas fa-audio-description', + 'fab fa-autoprefixer' => 'fab fa-autoprefixer', + 'fab fa-avianex' => 'fab fa-avianex', + 'fab fa-aviato' => 'fab fa-aviato', + 'fab fa-aws' => 'fab fa-aws', + 'fas fa-backward' => 'fas fa-backward', + 'fas fa-balance-scale' => 'fas fa-balance-scale', + 'fas fa-ban' => 'fas fa-ban', + 'fab fa-bandcamp' => 'fab fa-bandcamp', + 'fas fa-barcode' => 'fas fa-barcode', + 'fas fa-bars' => 'fas fa-bars', + 'fas fa-bath' => 'fas fa-bath', + 'fas fa-battery-empty' => 'fas fa-battery-empty', + 'fas fa-battery-full' => 'fas fa-battery-full', + 'fas fa-battery-half' => 'fas fa-battery-half', + 'fas fa-battery-quarter' => 'fas fa-battery-quarter', + 'fas fa-battery-three-quarters' => 'fas fa-battery-three-quarters', + 'fas fa-bed' => 'fas fa-bed', + 'fas fa-beer' => 'fas fa-beer', + 'fab fa-behance' => 'fab fa-behance', + 'fab fa-behance-square' => 'fab fa-behance-square', + 'fas fa-bell' => 'fas fa-bell', + 'far fa-bell' => 'far fa-bell', + 'fas fa-bell-slash' => 'fas fa-bell-slash', + 'far fa-bell-slash' => 'far fa-bell-slash', + 'fas fa-bicycle' => 'fas fa-bicycle', + 'fab fa-bimobject' => 'fab fa-bimobject', + 'fas fa-binoculars' => 'fas fa-binoculars', + 'fas fa-birthday-cake' => 'fas fa-birthday-cake', + 'fab fa-bitbucket' => 'fab fa-bitbucket', + 'fab fa-bitcoin' => 'fab fa-bitcoin', + 'fab fa-bity' => 'fab fa-bity', + 'fab fa-black-tie' => 'fab fa-black-tie', + 'fab fa-blackberry' => 'fab fa-blackberry', + 'fas fa-blind' => 'fas fa-blind', + 'fab fa-blogger' => 'fab fa-blogger', + 'fab fa-blogger-b' => 'fab fa-blogger-b', + 'fab fa-bluetooth' => 'fab fa-bluetooth', + 'fab fa-bluetooth-b' => 'fab fa-bluetooth-b', + 'fas fa-bold' => 'fas fa-bold', + 'fas fa-bolt' => 'fas fa-bolt', + 'fas fa-bomb' => 'fas fa-bomb', + 'fas fa-book' => 'fas fa-book', + 'fas fa-bookmark' => 'fas fa-bookmark', + 'far fa-bookmark' => 'far fa-bookmark', + 'fas fa-braille' => 'fas fa-braille', + 'fas fa-briefcase' => 'fas fa-briefcase', + 'fab fa-btc' => 'fab fa-btc', + 'fas fa-bug' => 'fas fa-bug', + 'fas fa-building' => 'fas fa-building', + 'far fa-building' => 'far fa-building', + 'fas fa-bullhorn' => 'fas fa-bullhorn', + 'fas fa-bullseye' => 'fas fa-bullseye', + 'fab fa-buromobelexperte' => 'fab fa-buromobelexperte', + 'fas fa-bus' => 'fas fa-bus', + 'fab fa-buysellads' => 'fab fa-buysellads', + 'fas fa-calculator' => 'fas fa-calculator', + 'fas fa-calendar' => 'fas fa-calendar', + 'far fa-calendar' => 'far fa-calendar', + 'fas fa-calendar-alt' => 'fas fa-calendar-alt', + 'far fa-calendar-alt' => 'far fa-calendar-alt', + 'fas fa-calendar-check' => 'fas fa-calendar-check', + 'far fa-calendar-check' => 'far fa-calendar-check', + 'fas fa-calendar-minus' => 'fas fa-calendar-minus', + 'far fa-calendar-minus' => 'far fa-calendar-minus', + 'fas fa-calendar-plus' => 'fas fa-calendar-plus', + 'far fa-calendar-plus' => 'far fa-calendar-plus', + 'fas fa-calendar-times' => 'fas fa-calendar-times', + 'far fa-calendar-times' => 'far fa-calendar-times', + 'fas fa-camera' => 'fas fa-camera', + 'fas fa-camera-retro' => 'fas fa-camera-retro', + 'fas fa-car' => 'fas fa-car', + 'fas fa-caret-down' => 'fas fa-caret-down', + 'fas fa-caret-left' => 'fas fa-caret-left', + 'fas fa-caret-right' => 'fas fa-caret-right', + 'fas fa-caret-square-down' => 'fas fa-caret-square-down', + 'far fa-caret-square-down' => 'far fa-caret-square-down', + 'fas fa-caret-square-left' => 'fas fa-caret-square-left', + 'far fa-caret-square-left' => 'far fa-caret-square-left', + 'fas fa-caret-square-right' => 'fas fa-caret-square-right', + 'far fa-caret-square-right' => 'far fa-caret-square-right', + 'fas fa-caret-square-up' => 'fas fa-caret-square-up', + 'far fa-caret-square-up' => 'far fa-caret-square-up', + 'fas fa-caret-up' => 'fas fa-caret-up', + 'fas fa-cart-arrow-down' => 'fas fa-cart-arrow-down', + 'fas fa-cart-plus' => 'fas fa-cart-plus', + 'fab fa-cc-amex' => 'fab fa-cc-amex', + 'fab fa-cc-apple-pay' => 'fab fa-cc-apple-pay', + 'fab fa-cc-diners-club' => 'fab fa-cc-diners-club', + 'fab fa-cc-discover' => 'fab fa-cc-discover', + 'fab fa-cc-jcb' => 'fab fa-cc-jcb', + 'fab fa-cc-mastercard' => 'fab fa-cc-mastercard', + 'fab fa-cc-paypal' => 'fab fa-cc-paypal', + 'fab fa-cc-stripe' => 'fab fa-cc-stripe', + 'fab fa-cc-visa' => 'fab fa-cc-visa', + 'fab fa-centercode' => 'fab fa-centercode', + 'fas fa-certificate' => 'fas fa-certificate', + 'fas fa-chart-area' => 'fas fa-chart-area', 'fas fa-chart-bar' => 'fas fa-chart-bar', + 'far fa-chart-bar' => 'far fa-chart-bar', + 'fas fa-chart-line' => 'fas fa-chart-line', + 'fas fa-chart-pie' => 'fas fa-chart-pie', + 'fas fa-check' => 'fas fa-check', + 'fas fa-check-circle' => 'fas fa-check-circle', + 'far fa-check-circle' => 'far fa-check-circle', + 'fas fa-check-square' => 'fas fa-check-square', + 'far fa-check-square' => 'far fa-check-square', + 'fas fa-chevron-circle-down' => 'fas fa-chevron-circle-down', + 'fas fa-chevron-circle-left' => 'fas fa-chevron-circle-left', + 'fas fa-chevron-circle-right' => 'fas fa-chevron-circle-right', + 'fas fa-chevron-circle-up' => 'fas fa-chevron-circle-up', + 'fas fa-chevron-down' => 'fas fa-chevron-down', + 'fas fa-chevron-left' => 'fas fa-chevron-left', + 'fas fa-chevron-right' => 'fas fa-chevron-right', + 'fas fa-chevron-up' => 'fas fa-chevron-up', + 'fas fa-child' => 'fas fa-child', + 'fab fa-chrome' => 'fab fa-chrome', + 'fas fa-circle' => 'fas fa-circle', + 'far fa-circle' => 'far fa-circle', + 'fas fa-circle-notch' => 'fas fa-circle-notch', + 'fas fa-clipboard' => 'fas fa-clipboard', + 'far fa-clipboard' => 'far fa-clipboard', + 'fas fa-clock' => 'fas fa-clock', + 'far fa-clock' => 'far fa-clock', + 'fas fa-clone' => 'fas fa-clone', + 'far fa-clone' => 'far fa-clone', + 'fas fa-closed-captioning' => 'fas fa-closed-captioning', + 'far fa-closed-captioning' => 'far fa-closed-captioning', + 'fas fa-cloud' => 'fas fa-cloud', + 'fas fa-cloud-download-alt' => 'fas fa-cloud-download-alt', + 'fas fa-cloud-upload-alt' => 'fas fa-cloud-upload-alt', + 'fab fa-cloudscale' => 'fab fa-cloudscale', + 'fab fa-cloudsmith' => 'fab fa-cloudsmith', + 'fab fa-cloudversify' => 'fab fa-cloudversify', + 'fas fa-code' => 'fas fa-code', + 'fas fa-code-branch' => 'fas fa-code-branch', + 'fab fa-codepen' => 'fab fa-codepen', + 'fab fa-codiepie' => 'fab fa-codiepie', + 'fas fa-coffee' => 'fas fa-coffee', + 'fas fa-cog' => 'fas fa-cog', + 'fas fa-cogs' => 'fas fa-cogs', + 'fas fa-columns' => 'fas fa-columns', + 'fas fa-comment' => 'fas fa-comment', + 'far fa-comment' => 'far fa-comment', + 'fas fa-comment-alt' => 'fas fa-comment-alt', + 'far fa-comment-alt' => 'far fa-comment-alt', + 'fas fa-comments' => 'fas fa-comments', + 'far fa-comments' => 'far fa-comments', + 'fas fa-compass' => 'fas fa-compass', + 'far fa-compass' => 'far fa-compass', + 'fas fa-compress' => 'fas fa-compress', + 'fab fa-connectdevelop' => 'fab fa-connectdevelop', + 'fab fa-contao' => 'fab fa-contao', + 'fas fa-copy' => 'fas fa-copy', + 'far fa-copy' => 'far fa-copy', + 'fas fa-copyright' => 'fas fa-copyright', + 'far fa-copyright' => 'far fa-copyright', + 'fab fa-cpanel' => 'fab fa-cpanel', + 'fab fa-creative-commons' => 'fab fa-creative-commons', + 'fas fa-credit-card' => 'fas fa-credit-card', + 'far fa-credit-card' => 'far fa-credit-card', + 'fas fa-crop' => 'fas fa-crop', + 'fas fa-crosshairs' => 'fas fa-crosshairs', + 'fab fa-css3' => 'fab fa-css3', + 'fab fa-css3-alt' => 'fab fa-css3-alt', + 'fas fa-cube' => 'fas fa-cube', + 'fas fa-cubes' => 'fas fa-cubes', + 'fas fa-cut' => 'fas fa-cut', + 'fab fa-cuttlefish' => 'fab fa-cuttlefish', + 'fab fa-d-and-d' => 'fab fa-d-and-d', + 'fab fa-dashcube' => 'fab fa-dashcube', + 'fas fa-database' => 'fas fa-database', + 'fas fa-deaf' => 'fas fa-deaf', + 'fab fa-delicious' => 'fab fa-delicious', + 'fab fa-deploydog' => 'fab fa-deploydog', + 'fab fa-deskpro' => 'fab fa-deskpro', + 'fas fa-desktop' => 'fas fa-desktop', + 'fab fa-deviantart' => 'fab fa-deviantart', + 'fab fa-digg' => 'fab fa-digg', + 'fab fa-digital-ocean' => 'fab fa-digital-ocean', + 'fab fa-discord' => 'fab fa-discord', + 'fab fa-discourse' => 'fab fa-discourse', + 'fab fa-dochub' => 'fab fa-dochub', + 'fab fa-docker' => 'fab fa-docker', + 'fas fa-dollar-sign' => 'fas fa-dollar-sign', + 'fas fa-dot-circle' => 'fas fa-dot-circle', + 'far fa-dot-circle' => 'far fa-dot-circle', + 'fas fa-download' => 'fas fa-download', + 'fab fa-draft2digital' => 'fab fa-draft2digital', + 'fab fa-dribbble' => 'fab fa-dribbble', + 'fab fa-dribbble-square' => 'fab fa-dribbble-square', 'fab fa-dropbox' => 'fab fa-dropbox', + 'fab fa-drupal' => 'fab fa-drupal', + 'fab fa-dyalog' => 'fab fa-dyalog', + 'fab fa-earlybirds' => 'fab fa-earlybirds', + 'fab fa-edge' => 'fab fa-edge', + 'fas fa-edit' => 'fas fa-edit', + 'far fa-edit' => 'far fa-edit', + 'fas fa-eject' => 'fas fa-eject', + 'fas fa-ellipsis-h' => 'fas fa-ellipsis-h', + 'fas fa-ellipsis-v' => 'fas fa-ellipsis-v', + 'fab fa-ember' => 'fab fa-ember', + 'fab fa-empire' => 'fab fa-empire', + 'fas fa-envelope' => 'fas fa-envelope', + 'far fa-envelope' => 'far fa-envelope', + 'fas fa-envelope-open' => 'fas fa-envelope-open', + 'far fa-envelope-open' => 'far fa-envelope-open', + 'fas fa-envelope-square' => 'fas fa-envelope-square', + 'fab fa-envira' => 'fab fa-envira', + 'fas fa-eraser' => 'fas fa-eraser', + 'fab fa-erlang' => 'fab fa-erlang', + 'fab fa-etsy' => 'fab fa-etsy', + 'fas fa-euro-sign' => 'fas fa-euro-sign', + 'fas fa-exchange-alt' => 'fas fa-exchange-alt', + 'fas fa-exclamation' => 'fas fa-exclamation', + 'fas fa-exclamation-circle' => 'fas fa-exclamation-circle', + 'fas fa-exclamation-triangle' => 'fas fa-exclamation-triangle', + 'fas fa-expand' => 'fas fa-expand', + 'fas fa-expand-arrows-alt' => 'fas fa-expand-arrows-alt', + 'fab fa-expeditedssl' => 'fab fa-expeditedssl', + 'fas fa-external-link-alt' => 'fas fa-external-link-alt', + 'fas fa-external-link-square-alt' => 'fas fa-external-link-square-alt', + 'fas fa-eye' => 'fas fa-eye', + 'fas fa-eye-dropper' => 'fas fa-eye-dropper', + 'fas fa-eye-slash' => 'fas fa-eye-slash', + 'far fa-eye-slash' => 'far fa-eye-slash', + 'fab fa-facebook' => 'fab fa-facebook', + 'fab fa-facebook-f' => 'fab fa-facebook-f', + 'fab fa-facebook-messenger' => 'fab fa-facebook-messenger', + 'fab fa-facebook-square' => 'fab fa-facebook-square', + 'fas fa-fast-backward' => 'fas fa-fast-backward', + 'fas fa-fast-forward' => 'fas fa-fast-forward', + 'fas fa-fax' => 'fas fa-fax', + 'fas fa-female' => 'fas fa-female', + 'fas fa-fighter-jet' => 'fas fa-fighter-jet', + 'fas fa-file' => 'fas fa-file', + 'far fa-file' => 'far fa-file', + 'fas fa-file-alt' => 'fas fa-file-alt', + 'far fa-file-alt' => 'far fa-file-alt', + 'fas fa-file-archive' => 'fas fa-file-archive', + 'far fa-file-archive' => 'far fa-file-archive', + 'fas fa-file-audio' => 'fas fa-file-audio', + 'far fa-file-audio' => 'far fa-file-audio', + 'fas fa-file-code' => 'fas fa-file-code', + 'far fa-file-code' => 'far fa-file-code', + 'fas fa-file-excel' => 'fas fa-file-excel', + 'far fa-file-excel' => 'far fa-file-excel', + 'fas fa-file-image' => 'fas fa-file-image', + 'far fa-file-image' => 'far fa-file-image', + 'fas fa-file-pdf' => 'fas fa-file-pdf', + 'far fa-file-pdf' => 'far fa-file-pdf', + 'fas fa-file-powerpoint' => 'fas fa-file-powerpoint', + 'far fa-file-powerpoint' => 'far fa-file-powerpoint', + 'fas fa-file-video' => 'fas fa-file-video', + 'far fa-file-video' => 'far fa-file-video', + 'fas fa-file-word' => 'fas fa-file-word', + 'far fa-file-word' => 'far fa-file-word', + 'fas fa-film' => 'fas fa-film', + 'fas fa-filter' => 'fas fa-filter', + 'fas fa-fire' => 'fas fa-fire', + 'fas fa-fire-extinguisher' => 'fas fa-fire-extinguisher', + 'fab fa-firefox' => 'fab fa-firefox', + 'fab fa-first-order' => 'fab fa-first-order', + 'fab fa-firstdraft' => 'fab fa-firstdraft', + 'fas fa-flag' => 'fas fa-flag', + 'far fa-flag' => 'far fa-flag', + 'fas fa-flag-checkered' => 'fas fa-flag-checkered', + 'fas fa-flask' => 'fas fa-flask', + 'fab fa-flickr' => 'fab fa-flickr', + 'fab fa-fly' => 'fab fa-fly', + 'fas fa-folder' => 'fas fa-folder', + 'far fa-folder' => 'far fa-folder', + 'fas fa-folder-open' => 'fas fa-folder-open', + 'far fa-folder-open' => 'far fa-folder-open', + 'fas fa-font' => 'fas fa-font', + 'fab fa-font-awesome' => 'fab fa-font-awesome', + 'fab fa-font-awesome-alt' => 'fab fa-font-awesome-alt', + 'fab fa-font-awesome-flag' => 'fab fa-font-awesome-flag', + 'fab fa-fonticons' => 'fab fa-fonticons', + 'fab fa-fonticons-fi' => 'fab fa-fonticons-fi', + 'fab fa-fort-awesome' => 'fab fa-fort-awesome', + 'fab fa-fort-awesome-alt' => 'fab fa-fort-awesome-alt', + 'fab fa-forumbee' => 'fab fa-forumbee', + 'fas fa-forward' => 'fas fa-forward', + 'fab fa-foursquare' => 'fab fa-foursquare', + 'fab fa-free-code-camp' => 'fab fa-free-code-camp', + 'fab fa-freebsd' => 'fab fa-freebsd', + 'fas fa-frown' => 'fas fa-frown', + 'far fa-frown' => 'far fa-frown', + 'fas fa-futbol' => 'fas fa-futbol', + 'far fa-futbol' => 'far fa-futbol', + 'fas fa-gamepad' => 'fas fa-gamepad', + 'fas fa-gavel' => 'fas fa-gavel', + 'fas fa-gem' => 'fas fa-gem', + 'far fa-gem' => 'far fa-gem', + 'fas fa-genderless' => 'fas fa-genderless', + 'fab fa-get-pocket' => 'fab fa-get-pocket', + 'fab fa-gg' => 'fab fa-gg', + 'fab fa-gg-circle' => 'fab fa-gg-circle', + 'fas fa-gift' => 'fas fa-gift', + 'fab fa-git' => 'fab fa-git', + 'fab fa-git-square' => 'fab fa-git-square', + 'fab fa-github' => 'fab fa-github', + 'fab fa-github-alt' => 'fab fa-github-alt', + 'fab fa-github-square' => 'fab fa-github-square', + 'fab fa-gitkraken' => 'fab fa-gitkraken', + 'fab fa-gitlab' => 'fab fa-gitlab', + 'fab fa-gitter' => 'fab fa-gitter', + 'fas fa-glass-martini' => 'fas fa-glass-martini', + 'fab fa-glide' => 'fab fa-glide', + 'fab fa-glide-g' => 'fab fa-glide-g', + 'fas fa-globe' => 'fas fa-globe', + 'fab fa-gofore' => 'fab fa-gofore', + 'fab fa-goodreads' => 'fab fa-goodreads', + 'fab fa-goodreads-g' => 'fab fa-goodreads-g', + 'fab fa-google' => 'fab fa-google', + 'fab fa-google-drive' => 'fab fa-google-drive', + 'fab fa-google-play' => 'fab fa-google-play', + 'fab fa-google-plus' => 'fab fa-google-plus', + 'fab fa-google-plus-g' => 'fab fa-google-plus-g', + 'fab fa-google-plus-square' => 'fab fa-google-plus-square', + 'fab fa-google-wallet' => 'fab fa-google-wallet', + 'fas fa-graduation-cap' => 'fas fa-graduation-cap', + 'fab fa-gratipay' => 'fab fa-gratipay', + 'fab fa-grav' => 'fab fa-grav', + 'fab fa-gripfire' => 'fab fa-gripfire', + 'fab fa-grunt' => 'fab fa-grunt', + 'fab fa-gulp' => 'fab fa-gulp', + 'fas fa-h-square' => 'fas fa-h-square', + 'fab fa-hacker-news' => 'fab fa-hacker-news', + 'fab fa-hacker-news-square' => 'fab fa-hacker-news-square', + 'fas fa-hand-lizard' => 'fas fa-hand-lizard', + 'far fa-hand-lizard' => 'far fa-hand-lizard', + 'fas fa-hand-paper' => 'fas fa-hand-paper', + 'far fa-hand-paper' => 'far fa-hand-paper', + 'fas fa-hand-peace' => 'fas fa-hand-peace', + 'far fa-hand-peace' => 'far fa-hand-peace', + 'fas fa-hand-point-down' => 'fas fa-hand-point-down', + 'far fa-hand-point-down' => 'far fa-hand-point-down', + 'fas fa-hand-point-left' => 'fas fa-hand-point-left', + 'far fa-hand-point-left' => 'far fa-hand-point-left', + 'fas fa-hand-point-right' => 'fas fa-hand-point-right', + 'far fa-hand-point-right' => 'far fa-hand-point-right', + 'fas fa-hand-point-up' => 'fas fa-hand-point-up', + 'far fa-hand-point-up' => 'far fa-hand-point-up', + 'fas fa-hand-pointer' => 'fas fa-hand-pointer', + 'far fa-hand-pointer' => 'far fa-hand-pointer', + 'fas fa-hand-rock' => 'fas fa-hand-rock', + 'far fa-hand-rock' => 'far fa-hand-rock', + 'fas fa-hand-scissors' => 'fas fa-hand-scissors', + 'far fa-hand-scissors' => 'far fa-hand-scissors', + 'fas fa-hand-spock' => 'fas fa-hand-spock', + 'far fa-hand-spock' => 'far fa-hand-spock', + 'fas fa-handshake' => 'fas fa-handshake', + 'far fa-handshake' => 'far fa-handshake', + 'fas fa-hashtag' => 'fas fa-hashtag', + 'fas fa-hdd' => 'fas fa-hdd', + 'far fa-hdd' => 'far fa-hdd', + 'fas fa-heading' => 'fas fa-heading', + 'fas fa-headphones' => 'fas fa-headphones', + 'fas fa-heart' => 'fas fa-heart', + 'far fa-heart' => 'far fa-heart', + 'fas fa-heartbeat' => 'fas fa-heartbeat', + 'fab fa-hire-a-helper' => 'fab fa-hire-a-helper', + 'fas fa-history' => 'fas fa-history', + 'fas fa-home' => 'fas fa-home', + 'fab fa-hooli' => 'fab fa-hooli', + 'fas fa-hospital' => 'fas fa-hospital', + 'far fa-hospital' => 'far fa-hospital', + 'fab fa-hotjar' => 'fab fa-hotjar', + 'fas fa-hourglass' => 'fas fa-hourglass', + 'far fa-hourglass' => 'far fa-hourglass', + 'fas fa-hourglass-end' => 'fas fa-hourglass-end', + 'fas fa-hourglass-half' => 'fas fa-hourglass-half', + 'fas fa-hourglass-start' => 'fas fa-hourglass-start', + 'fab fa-houzz' => 'fab fa-houzz', + 'fab fa-html5' => 'fab fa-html5', + 'fab fa-hubspot' => 'fab fa-hubspot', + 'fas fa-i-cursor' => 'fas fa-i-cursor', + 'fas fa-id-badge' => 'fas fa-id-badge', + 'far fa-id-badge' => 'far fa-id-badge', + 'fas fa-id-card' => 'fas fa-id-card', + 'far fa-id-card' => 'far fa-id-card', + 'fas fa-image' => 'fas fa-image', + 'far fa-image' => 'far fa-image', + 'fas fa-images' => 'fas fa-images', + 'far fa-images' => 'far fa-images', + 'fab fa-imdb' => 'fab fa-imdb', + 'fas fa-inbox' => 'fas fa-inbox', + 'fas fa-indent' => 'fas fa-indent', + 'fas fa-industry' => 'fas fa-industry', + 'fas fa-info' => 'fas fa-info', + 'fas fa-info-circle' => 'fas fa-info-circle', + 'fab fa-instagram' => 'fab fa-instagram', + 'fab fa-internet-explorer' => 'fab fa-internet-explorer', + 'fab fa-ioxhost' => 'fab fa-ioxhost', + 'fas fa-italic' => 'fas fa-italic', + 'fab fa-itunes' => 'fab fa-itunes', + 'fab fa-itunes-note' => 'fab fa-itunes-note', + 'fab fa-jenkins' => 'fab fa-jenkins', + 'fab fa-joget' => 'fab fa-joget', + 'fab fa-joomla' => 'fab fa-joomla', + 'fab fa-js' => 'fab fa-js', + 'fab fa-js-square' => 'fab fa-js-square', + 'fab fa-jsfiddle' => 'fab fa-jsfiddle', + 'fas fa-key' => 'fas fa-key', + 'fas fa-keyboard' => 'fas fa-keyboard', + 'far fa-keyboard' => 'far fa-keyboard', + 'fab fa-keycdn' => 'fab fa-keycdn', + 'fab fa-kickstarter' => 'fab fa-kickstarter', + 'fab fa-kickstarter-k' => 'fab fa-kickstarter-k', + 'fas fa-language' => 'fas fa-language', + 'fas fa-laptop' => 'fas fa-laptop', + 'fab fa-laravel' => 'fab fa-laravel', + 'fab fa-lastfm' => 'fab fa-lastfm', + 'fab fa-lastfm-square' => 'fab fa-lastfm-square', + 'fas fa-leaf' => 'fas fa-leaf', + 'fab fa-leanpub' => 'fab fa-leanpub', + 'fas fa-lemon' => 'fas fa-lemon', + 'far fa-lemon' => 'far fa-lemon', 'fab fa-less' => 'fab fa-less', + 'fas fa-level-down-alt' => 'fas fa-level-down-alt', + 'fas fa-level-up-alt' => 'fas fa-level-up-alt', + 'fas fa-life-ring' => 'fas fa-life-ring', + 'far fa-life-ring' => 'far fa-life-ring', + 'fas fa-lightbulb' => 'fas fa-lightbulb', + 'far fa-lightbulb' => 'far fa-lightbulb', + 'fab fa-line' => 'fab fa-line', + 'fas fa-link' => 'fas fa-link', + 'fab fa-linkedin' => 'fab fa-linkedin', + 'fab fa-linkedin-in' => 'fab fa-linkedin-in', + 'fab fa-linode' => 'fab fa-linode', + 'fab fa-linux' => 'fab fa-linux', + 'fas fa-lira-sign' => 'fas fa-lira-sign', + 'fas fa-list' => 'fas fa-list', + 'fas fa-list-alt' => 'fas fa-list-alt', + 'far fa-list-alt' => 'far fa-list-alt', + 'fas fa-list-ol' => 'fas fa-list-ol', + 'fas fa-list-ul' => 'fas fa-list-ul', + 'fas fa-location-arrow' => 'fas fa-location-arrow', + 'fas fa-lock' => 'fas fa-lock', + 'fas fa-lock-open' => 'fas fa-lock-open', + 'fas fa-long-arrow-alt-down' => 'fas fa-long-arrow-alt-down', + 'fas fa-long-arrow-alt-left' => 'fas fa-long-arrow-alt-left', + 'fas fa-long-arrow-alt-right' => 'fas fa-long-arrow-alt-right', + 'fas fa-long-arrow-alt-up' => 'fas fa-long-arrow-alt-up', + 'fas fa-low-vision' => 'fas fa-low-vision', + 'fab fa-lyft' => 'fab fa-lyft', + 'fab fa-magento' => 'fab fa-magento', + 'fas fa-magic' => 'fas fa-magic', + 'fas fa-magnet' => 'fas fa-magnet', + 'fas fa-male' => 'fas fa-male', + 'fas fa-map' => 'fas fa-map', + 'far fa-map' => 'far fa-map', + 'fas fa-map-marker' => 'fas fa-map-marker', + 'fas fa-map-marker-alt' => 'fas fa-map-marker-alt', + 'fas fa-map-pin' => 'fas fa-map-pin', + 'fas fa-map-signs' => 'fas fa-map-signs', + 'fas fa-mars' => 'fas fa-mars', + 'fas fa-mars-double' => 'fas fa-mars-double', + 'fas fa-mars-stroke' => 'fas fa-mars-stroke', + 'fas fa-mars-stroke-h' => 'fas fa-mars-stroke-h', + 'fas fa-mars-stroke-v' => 'fas fa-mars-stroke-v', + 'fab fa-maxcdn' => 'fab fa-maxcdn', + 'fab fa-medapps' => 'fab fa-medapps', + 'fab fa-medium' => 'fab fa-medium', + 'fab fa-medium-m' => 'fab fa-medium-m', + 'fas fa-medkit' => 'fas fa-medkit', + 'fab fa-medrt' => 'fab fa-medrt', + 'fab fa-meetup' => 'fab fa-meetup', + 'fas fa-meh' => 'fas fa-meh', + 'far fa-meh' => 'far fa-meh', + 'fas fa-mercury' => 'fas fa-mercury', + 'fas fa-microchip' => 'fas fa-microchip', + 'fas fa-microphone' => 'fas fa-microphone', + 'fas fa-microphone-slash' => 'fas fa-microphone-slash', + 'fab fa-microsoft' => 'fab fa-microsoft', + 'fas fa-minus' => 'fas fa-minus', + 'fas fa-minus-circle' => 'fas fa-minus-circle', + 'fas fa-minus-square' => 'fas fa-minus-square', + 'far fa-minus-square' => 'far fa-minus-square', + 'fab fa-mix' => 'fab fa-mix', + 'fab fa-mixcloud' => 'fab fa-mixcloud', + 'fab fa-mizuni' => 'fab fa-mizuni', + 'fas fa-mobile' => 'fas fa-mobile', + 'fas fa-mobile-alt' => 'fas fa-mobile-alt', + 'fab fa-modx' => 'fab fa-modx', + 'fab fa-monero' => 'fab fa-monero', + 'fas fa-money-bill-alt' => 'fas fa-money-bill-alt', + 'far fa-money-bill-alt' => 'far fa-money-bill-alt', + 'fas fa-moon' => 'fas fa-moon', + 'far fa-moon' => 'far fa-moon', + 'fas fa-motorcycle' => 'fas fa-motorcycle', + 'fas fa-mouse-pointer' => 'fas fa-mouse-pointer', + 'fas fa-music' => 'fas fa-music', + 'fab fa-napster' => 'fab fa-napster', + 'fas fa-neuter' => 'fas fa-neuter', + 'fas fa-newspaper' => 'fas fa-newspaper', + 'far fa-newspaper' => 'far fa-newspaper', + 'fab fa-nintendo-switch' => 'fab fa-nintendo-switch', + 'fab fa-node' => 'fab fa-node', + 'fab fa-node-js' => 'fab fa-node-js', + 'fab fa-npm' => 'fab fa-npm', + 'fab fa-ns8' => 'fab fa-ns8', + 'fab fa-nutritionix' => 'fab fa-nutritionix', + 'fas fa-object-group' => 'fas fa-object-group', + 'far fa-object-group' => 'far fa-object-group', + 'fas fa-object-ungroup' => 'fas fa-object-ungroup', + 'far fa-object-ungroup' => 'far fa-object-ungroup', + 'fab fa-odnoklassniki' => 'fab fa-odnoklassniki', + 'fab fa-odnoklassniki-square' => 'fab fa-odnoklassniki-square', + 'fab fa-opencart' => 'fab fa-opencart', + 'fab fa-openid' => 'fab fa-openid', + 'fab fa-opera' => 'fab fa-opera', + 'fab fa-optin-monster' => 'fab fa-optin-monster', + 'fab fa-osi' => 'fab fa-osi', + 'fas fa-outdent' => 'fas fa-outdent', + 'fab fa-page4' => 'fab fa-page4', + 'fab fa-pagelines' => 'fab fa-pagelines', + 'fas fa-paint-brush' => 'fas fa-paint-brush', + 'fab fa-palfed' => 'fab fa-palfed', + 'fas fa-paper-plane' => 'fas fa-paper-plane', + 'far fa-paper-plane' => 'far fa-paper-plane', + 'fas fa-paperclip' => 'fas fa-paperclip', + 'fas fa-paragraph' => 'fas fa-paragraph', + 'fas fa-paste' => 'fas fa-paste', + 'fab fa-patreon' => 'fab fa-patreon', + 'fas fa-pause' => 'fas fa-pause', + 'fas fa-pause-circle' => 'fas fa-pause-circle', + 'far fa-pause-circle' => 'far fa-pause-circle', + 'fas fa-paw' => 'fas fa-paw', + 'fab fa-paypal' => 'fab fa-paypal', + 'fas fa-pen-square' => 'fas fa-pen-square', + 'fas fa-pencil-alt' => 'fas fa-pencil-alt', + 'fas fa-percent' => 'fas fa-percent', + 'fab fa-periscope' => 'fab fa-periscope', + 'fab fa-phabricator' => 'fab fa-phabricator', + 'fab fa-phoenix-framework' => 'fab fa-phoenix-framework', + 'fas fa-phone' => 'fas fa-phone', + 'fas fa-phone-square' => 'fas fa-phone-square', + 'fas fa-phone-volume' => 'fas fa-phone-volume', + 'fab fa-pied-piper' => 'fab fa-pied-piper', + 'fab fa-pied-piper-alt' => 'fab fa-pied-piper-alt', + 'fab fa-pied-piper-pp' => 'fab fa-pied-piper-pp', + 'fab fa-pinterest' => 'fab fa-pinterest', + 'fab fa-pinterest-p' => 'fab fa-pinterest-p', + 'fab fa-pinterest-square' => 'fab fa-pinterest-square', + 'fas fa-plane' => 'fas fa-plane', + 'fas fa-play' => 'fas fa-play', + 'fas fa-play-circle' => 'fas fa-play-circle', + 'far fa-play-circle' => 'far fa-play-circle', + 'fab fa-playstation' => 'fab fa-playstation', + 'fas fa-plug' => 'fas fa-plug', + 'fas fa-plus' => 'fas fa-plus', + 'fas fa-plus-circle' => 'fas fa-plus-circle', + 'fas fa-plus-square' => 'fas fa-plus-square', + 'far fa-plus-square' => 'far fa-plus-square', + 'fas fa-podcast' => 'fas fa-podcast', + 'fas fa-pound-sign' => 'fas fa-pound-sign', + 'fas fa-power-off' => 'fas fa-power-off', + 'fas fa-print' => 'fas fa-print', + 'fab fa-product-hunt' => 'fab fa-product-hunt', + 'fab fa-pushed' => 'fab fa-pushed', + 'fas fa-puzzle-piece' => 'fas fa-puzzle-piece', + 'fab fa-python' => 'fab fa-python', + 'fab fa-qq' => 'fab fa-qq', + 'fas fa-qrcode' => 'fas fa-qrcode', + 'fas fa-question' => 'fas fa-question', + 'fas fa-question-circle' => 'fas fa-question-circle', + 'far fa-question-circle' => 'far fa-question-circle', + 'fab fa-quora' => 'fab fa-quora', + 'fas fa-quote-left' => 'fas fa-quote-left', + 'fas fa-quote-right' => 'fas fa-quote-right', + 'fas fa-random' => 'fas fa-random', + 'fab fa-ravelry' => 'fab fa-ravelry', + 'fab fa-react' => 'fab fa-react', + 'fab fa-rebel' => 'fab fa-rebel', + 'fas fa-recycle' => 'fas fa-recycle', + 'fab fa-red-river' => 'fab fa-red-river', + 'fab fa-reddit' => 'fab fa-reddit', + 'fab fa-reddit-alien' => 'fab fa-reddit-alien', + 'fab fa-reddit-square' => 'fab fa-reddit-square', + 'fas fa-redo' => 'fas fa-redo', + 'fas fa-redo-alt' => 'fas fa-redo-alt', + 'fas fa-registered' => 'fas fa-registered', + 'far fa-registered' => 'far fa-registered', + 'fab fa-rendact' => 'fab fa-rendact', + 'fab fa-renren' => 'fab fa-renren', + 'fas fa-reply' => 'fas fa-reply', + 'fas fa-reply-all' => 'fas fa-reply-all', + 'fab fa-replyd' => 'fab fa-replyd', + 'fab fa-resolving' => 'fab fa-resolving', + 'fas fa-retweet' => 'fas fa-retweet', + 'fas fa-road' => 'fas fa-road', + 'fas fa-rocket' => 'fas fa-rocket', + 'fab fa-rocketchat' => 'fab fa-rocketchat', + 'fab fa-rockrms' => 'fab fa-rockrms', + 'fas fa-rss' => 'fas fa-rss', + 'fas fa-rss-square' => 'fas fa-rss-square', + 'fas fa-ruble-sign' => 'fas fa-ruble-sign', + 'fas fa-rupee-sign' => 'fas fa-rupee-sign', + 'fab fa-safari' => 'fab fa-safari', + 'fab fa-sass' => 'fab fa-sass', + 'fas fa-save' => 'fas fa-save', + 'far fa-save' => 'far fa-save', + 'fab fa-schlix' => 'fab fa-schlix', + 'fab fa-scribd' => 'fab fa-scribd', + 'fas fa-search' => 'fas fa-search', 'fas fa-search-minus' => 'fas fa-search-minus', + 'fas fa-search-plus' => 'fas fa-search-plus', + 'fab fa-searchengin' => 'fab fa-searchengin', + 'fab fa-sellcast' => 'fab fa-sellcast', + 'fab fa-sellsy' => 'fab fa-sellsy', + 'fas fa-server' => 'fas fa-server', + 'fab fa-servicestack' => 'fab fa-servicestack', + 'fas fa-share' => 'fas fa-share', + 'fas fa-share-alt' => 'fas fa-share-alt', + 'fas fa-share-alt-square' => 'fas fa-share-alt-square', + 'fas fa-share-square' => 'fas fa-share-square', + 'far fa-share-square' => 'far fa-share-square', + 'fas fa-shekel-sign' => 'fas fa-shekel-sign', + 'fas fa-shield-alt' => 'fas fa-shield-alt', + 'fas fa-ship' => 'fas fa-ship', + 'fab fa-shirtsinbulk' => 'fab fa-shirtsinbulk', + 'fas fa-shopping-bag' => 'fas fa-shopping-bag', + 'fas fa-shopping-basket' => 'fas fa-shopping-basket', + 'fas fa-shopping-cart' => 'fas fa-shopping-cart', + 'fas fa-shower' => 'fas fa-shower', + 'fas fa-sign-in-alt' => 'fas fa-sign-in-alt', + 'fas fa-sign-language' => 'fas fa-sign-language', + 'fas fa-sign-out-alt' => 'fas fa-sign-out-alt', + 'fas fa-signal' => 'fas fa-signal', + 'fab fa-simplybuilt' => 'fab fa-simplybuilt', + 'fab fa-sistrix' => 'fab fa-sistrix', + 'fas fa-sitemap' => 'fas fa-sitemap', + 'fab fa-skyatlas' => 'fab fa-skyatlas', + 'fab fa-skype' => 'fab fa-skype', + 'fab fa-slack' => 'fab fa-slack', + 'fab fa-slack-hash' => 'fab fa-slack-hash', + 'fas fa-sliders-h' => 'fas fa-sliders-h', + 'fab fa-slideshare' => 'fab fa-slideshare', + 'fas fa-smile' => 'fas fa-smile', + 'far fa-smile' => 'far fa-smile', + 'fab fa-snapchat' => 'fab fa-snapchat', + 'fab fa-snapchat-ghost' => 'fab fa-snapchat-ghost', + 'fab fa-snapchat-square' => 'fab fa-snapchat-square', + 'fas fa-snowflake' => 'fas fa-snowflake', + 'far fa-snowflake' => 'far fa-snowflake', + 'fas fa-sort' => 'fas fa-sort', + 'fas fa-sort-alpha-down' => 'fas fa-sort-alpha-down', + 'fas fa-sort-alpha-up' => 'fas fa-sort-alpha-up', + 'fas fa-sort-amount-down' => 'fas fa-sort-amount-down', + 'fas fa-sort-amount-up' => 'fas fa-sort-amount-up', + 'fas fa-sort-down' => 'fas fa-sort-down', + 'fas fa-sort-numeric-down' => 'fas fa-sort-numeric-down', + 'fas fa-sort-numeric-up' => 'fas fa-sort-numeric-up', + 'fas fa-sort-up' => 'fas fa-sort-up', + 'fab fa-soundcloud' => 'fab fa-soundcloud', + 'fas fa-space-shuttle' => 'fas fa-space-shuttle', + 'fab fa-speakap' => 'fab fa-speakap', + 'fas fa-spinner' => 'fas fa-spinner', + 'fab fa-spotify' => 'fab fa-spotify', + 'fas fa-square' => 'fas fa-square', + 'far fa-square' => 'far fa-square', + 'fab fa-stack-exchange' => 'fab fa-stack-exchange', + 'fab fa-stack-overflow' => 'fab fa-stack-overflow', + 'fas fa-star' => 'fas fa-star', + 'far fa-star' => 'far fa-star', + 'fas fa-star-half' => 'fas fa-star-half', + 'far fa-star-half' => 'far fa-star-half', + 'fab fa-staylinked' => 'fab fa-staylinked', + 'fab fa-steam' => 'fab fa-steam', + 'fab fa-steam-square' => 'fab fa-steam-square', + 'fab fa-steam-symbol' => 'fab fa-steam-symbol', + 'fas fa-step-backward' => 'fas fa-step-backward', + 'fas fa-step-forward' => 'fas fa-step-forward', + 'fas fa-stethoscope' => 'fas fa-stethoscope', + 'fab fa-sticker-mule' => 'fab fa-sticker-mule', + 'fas fa-sticky-note' => 'fas fa-sticky-note', + 'far fa-sticky-note' => 'far fa-sticky-note', + 'fas fa-stop' => 'fas fa-stop', + 'fas fa-stop-circle' => 'fas fa-stop-circle', + 'far fa-stop-circle' => 'far fa-stop-circle', + 'fab fa-strava' => 'fab fa-strava', + 'fas fa-street-view' => 'fas fa-street-view', + 'fas fa-strikethrough' => 'fas fa-strikethrough', + 'fab fa-stripe' => 'fab fa-stripe', + 'fab fa-stripe-s' => 'fab fa-stripe-s', + 'fab fa-studiovinari' => 'fab fa-studiovinari', + 'fab fa-stumbleupon' => 'fab fa-stumbleupon', + 'fab fa-stumbleupon-circle' => 'fab fa-stumbleupon-circle', + 'fas fa-subscript' => 'fas fa-subscript', + 'fas fa-subway' => 'fas fa-subway', + 'fas fa-suitcase' => 'fas fa-suitcase', + 'fas fa-sun' => 'fas fa-sun', + 'far fa-sun' => 'far fa-sun', + 'fab fa-superpowers' => 'fab fa-superpowers', 'fas fa-superscript' => 'fas fa-superscript', + 'fab fa-supple' => 'fab fa-supple', + 'fas fa-sync' => 'fas fa-sync', + 'fas fa-sync-alt' => 'fas fa-sync-alt', + 'fas fa-table' => 'fas fa-table', + 'fas fa-tablet' => 'fas fa-tablet', + 'fas fa-tablet-alt' => 'fas fa-tablet-alt', + 'fas fa-tachometer-alt' => 'fas fa-tachometer-alt', + 'fas fa-tag' => 'fas fa-tag', + 'fas fa-tags' => 'fas fa-tags', + 'fas fa-tasks' => 'fas fa-tasks', + 'fas fa-taxi' => 'fas fa-taxi', + 'fab fa-telegram' => 'fab fa-telegram', + 'fab fa-telegram-plane' => 'fab fa-telegram-plane', + 'fab fa-tencent-weibo' => 'fab fa-tencent-weibo', + 'fas fa-terminal' => 'fas fa-terminal', + 'fas fa-text-height' => 'fas fa-text-height', + 'fas fa-text-width' => 'fas fa-text-width', + 'fas fa-th' => 'fas fa-th', + 'fas fa-th-large' => 'fas fa-th-large', + 'fas fa-th-list' => 'fas fa-th-list', + 'fab fa-themeisle' => 'fab fa-themeisle', + 'fas fa-thermometer-empty' => 'fas fa-thermometer-empty', + 'fas fa-thermometer-full' => 'fas fa-thermometer-full', + 'fas fa-thermometer-half' => 'fas fa-thermometer-half', + 'fas fa-thermometer-quarter' => 'fas fa-thermometer-quarter', + 'fas fa-thermometer-three-quarters' => 'fas fa-thermometer-three-quarters', + 'fas fa-thumbs-down' => 'fas fa-thumbs-down', + 'far fa-thumbs-down' => 'far fa-thumbs-down', + 'fas fa-thumbs-up' => 'fas fa-thumbs-up', + 'far fa-thumbs-up' => 'far fa-thumbs-up', + 'fas fa-thumbtack' => 'fas fa-thumbtack', + 'fas fa-ticket-alt' => 'fas fa-ticket-alt', + 'fas fa-times' => 'fas fa-times', + 'fas fa-times-circle' => 'fas fa-times-circle', + 'far fa-times-circle' => 'far fa-times-circle', + 'fas fa-tint' => 'fas fa-tint', + 'fas fa-toggle-off' => 'fas fa-toggle-off', + 'fas fa-toggle-on' => 'fas fa-toggle-on', + 'fas fa-trademark' => 'fas fa-trademark', + 'fas fa-train' => 'fas fa-train', + 'fas fa-transgender' => 'fas fa-transgender', + 'fas fa-transgender-alt' => 'fas fa-transgender-alt', + 'fas fa-trash' => 'fas fa-trash', + 'fas fa-trash-alt' => 'fas fa-trash-alt', + 'far fa-trash-alt' => 'far fa-trash-alt', + 'fas fa-tree' => 'fas fa-tree', + 'fab fa-trello' => 'fab fa-trello', + 'fab fa-tripadvisor' => 'fab fa-tripadvisor', + 'fas fa-trophy' => 'fas fa-trophy', + 'fas fa-truck' => 'fas fa-truck', + 'fas fa-tty' => 'fas fa-tty', + 'fab fa-tumblr' => 'fab fa-tumblr', + 'fab fa-tumblr-square' => 'fab fa-tumblr-square', + 'fas fa-tv' => 'fas fa-tv', + 'fab fa-twitch' => 'fab fa-twitch', + 'fab fa-twitter' => 'fab fa-twitter', + 'fab fa-x-twitter' => 'fab fa-x-twitter', + 'fab fa-twitter-square' => 'fab fa-twitter-square', + 'fab fa-typo3' => 'fab fa-typo3', + 'fab fa-uber' => 'fab fa-uber', + 'fab fa-uikit' => 'fab fa-uikit', + 'fas fa-umbrella' => 'fas fa-umbrella', + 'fas fa-underline' => 'fas fa-underline', + 'fas fa-undo' => 'fas fa-undo', + 'fas fa-undo-alt' => 'fas fa-undo-alt', + 'fab fa-uniregistry' => 'fab fa-uniregistry', + 'fas fa-universal-access' => 'fas fa-universal-access', + 'fas fa-university' => 'fas fa-university', + 'fas fa-unlink' => 'fas fa-unlink', + 'fas fa-unlock' => 'fas fa-unlock', + 'fas fa-unlock-alt' => 'fas fa-unlock-alt', + 'fab fa-untappd' => 'fab fa-untappd', + 'fas fa-upload' => 'fas fa-upload', + 'fab fa-usb' => 'fab fa-usb', + 'fas fa-user' => 'fas fa-user', + 'far fa-user' => 'far fa-user', + 'fas fa-user-circle' => 'fas fa-user-circle', + 'far fa-user-circle' => 'far fa-user-circle', + 'fas fa-user-md' => 'fas fa-user-md', + 'fas fa-user-plus' => 'fas fa-user-plus', + 'fas fa-user-secret' => 'fas fa-user-secret', + 'fas fa-user-times' => 'fas fa-user-times', + 'fas fa-users' => 'fas fa-users', + 'fab fa-ussunnah' => 'fab fa-ussunnah', + 'fas fa-utensil-spoon' => 'fas fa-utensil-spoon', + 'fas fa-utensils' => 'fas fa-utensils', + 'fab fa-vaadin' => 'fab fa-vaadin', + 'fas fa-venus' => 'fas fa-venus', + 'fas fa-venus-double' => 'fas fa-venus-double', + 'fas fa-venus-mars' => 'fas fa-venus-mars', + 'fab fa-viacoin' => 'fab fa-viacoin', + 'fab fa-viadeo' => 'fab fa-viadeo', + 'fab fa-viadeo-square' => 'fab fa-viadeo-square', + 'fab fa-viber' => 'fab fa-viber', + 'fas fa-video' => 'fas fa-video', + 'fab fa-vimeo' => 'fab fa-vimeo', + 'fab fa-vimeo-square' => 'fab fa-vimeo-square', + 'fab fa-vimeo-v' => 'fab fa-vimeo-v', + 'fab fa-vine' => 'fab fa-vine', + 'fab fa-vk' => 'fab fa-vk', + 'fab fa-vnv' => 'fab fa-vnv', + 'fas fa-volume-down' => 'fas fa-volume-down', + 'fas fa-volume-off' => 'fas fa-volume-off', + 'fas fa-volume-up' => 'fas fa-volume-up', + 'fab fa-vuejs' => 'fab fa-vuejs', + 'fab fa-weibo' => 'fab fa-weibo', + 'fab fa-weixin' => 'fab fa-weixin', + 'fab fa-whatsapp' => 'fab fa-whatsapp', + 'fab fa-whatsapp-square' => 'fab fa-whatsapp-square', + 'fas fa-wheelchair' => 'fas fa-wheelchair', + 'fab fa-whmcs' => 'fab fa-whmcs', + 'fas fa-wifi' => 'fas fa-wifi', + 'fab fa-wikipedia-w' => 'fab fa-wikipedia-w', + 'fas fa-window-close' => 'fas fa-window-close', + 'far fa-window-close' => 'far fa-window-close', + 'fas fa-window-maximize' => 'fas fa-window-maximize', + 'far fa-window-maximize' => 'far fa-window-maximize', + 'fas fa-window-minimize' => 'fas fa-window-minimize', + 'fas fa-window-restore' => 'fas fa-window-restore', + 'far fa-window-restore' => 'far fa-window-restore', + 'fab fa-windows' => 'fab fa-windows', + 'fas fa-won-sign' => 'fas fa-won-sign', + 'fab fa-wordpress' => 'fab fa-wordpress', + 'fab fa-wordpress-simple' => 'fab fa-wordpress-simple', + 'fab fa-wpbeginner' => 'fab fa-wpbeginner', + 'fab fa-wpexplorer' => 'fab fa-wpexplorer', + 'fab fa-wpforms' => 'fab fa-wpforms', + 'fas fa-wrench' => 'fas fa-wrench', + 'fab fa-xbox' => 'fab fa-xbox', + 'fab fa-xing' => 'fab fa-xing', + 'fab fa-xing-square' => 'fab fa-xing-square', + 'fab fa-y-combinator' => 'fab fa-y-combinator', + 'fab fa-yahoo' => 'fab fa-yahoo', + 'fab fa-yandex' => 'fab fa-yandex', + 'fab fa-yandex-international' => 'fab fa-yandex-international', + 'fab fa-yelp' => 'fab fa-yelp', + 'fas fa-yen-sign' => 'fas fa-yen-sign', + 'fab fa-yoast' => 'fab fa-yoast', 'fab fa-youtube' => 'fab fa-youtube', + ); + return $icons; + } +} \ No newline at end of file diff --git a/wp-content/themes/chromax/inc/customizer/controls/code/chromax-slider-control.php b/wp-content/themes/chromax/inc/customizer/controls/code/chromax-slider-control.php new file mode 100644 index 0000000..c3881ed --- /dev/null +++ b/wp-content/themes/chromax/inc/customizer/controls/code/chromax-slider-control.php @@ -0,0 +1,310 @@ + + * @copyright Copyright (c) 2016, Soderlind + * @link https://github.com/soderlind/class-customizer-range-value-control/blob/master/README.md + * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * @package customizer-controls + */ + +if ( ! class_exists( 'WP_Customize_Control' ) ) { + return; +} + + +/** + * Class Customizer_Range_Value_Control + * + * @access public + */ +class Chromax_Customizer_Range_Control extends WP_Customize_Control { + + /** + * Control type + * + * @var string + */ + public $type = 'range-value'; + + /** + * Flag that enables media queries + * + * @var bool + */ + public $media_query = false; + + /** + * Settings for range inputs. + * + * @var array|mixed + */ + public $input_attr = array(); + + /** + * Enqueue scripts all controls. + */ + public function enqueue() { + + // Main scripts. + wp_enqueue_script( + 'chromax-controls', + CHROMAX_THEME_INC_URI . '/customizer/controls/js/controls.js', + array( + 'jquery', + 'customize-base', + 'jquery-ui-button', + 'jquery-ui-sortable', + ), + false, + true + ); + + wp_enqueue_style( 'chromax-controls', CHROMAX_THEME_INC_URI . '/customizer/controls/css/controls.css' ); + wp_enqueue_style( 'font-awesome', CHROMAX_THEME_URI . '/assets/vendors/css/all.min.css' ); + } + + /** + * Chromax_Customizer_Range_Control constructor. + * + * @param WP_Customize_Manager $manager Customize manager. + * @param string $id Control id. + * @param array $args Control arguments. + */ + public function __construct( $manager, $id, $args = array() ) { + parent::__construct( $manager, $id, $args ); + + if ( ! empty( $args['media_query'] ) ) { + $this->media_query = (bool) $args['media_query']; + } + + if ( ! empty( $args['input_attr'] ) ) { + $this->input_attr = $args['input_attr']; + } + } + + /** + * Handles input value. + */ + public function json() { + $json = parent::json(); + + $json['value'] = $this->value(); + + $json['default_value'] = ! empty( $this->setting->default ) ? $this->setting->default : 0; + + $json['desktop_value'] = ! $this->is_json( $json['value'] ) ? $json['value'] : $json['default_value']; + $json['tablet_value'] = $json['default_value']; + $json['mobile_value'] = $json['default_value']; + + if ( $this->is_json( $json['value'] ) ) { + $decoded_value = json_decode( $json['value'], true ); + $json['desktop_value'] = $decoded_value['desktop']; + $json['tablet_value'] = $decoded_value['tablet']; + $json['mobile_value'] = $decoded_value['mobile']; + } else { + $json['desktop_value'] = $json['value']; + } + + $json['media_query'] = $this->media_query; + $json['link'] = $this->get_link(); + + if ( ! $this->contains_array( $this->input_attr ) ) { + $json['min'] = ! empty( $this->input_attr['min'] ) ? $this->input_attr['min'] : 0; + $json['max'] = ! empty( $this->input_attr['max'] ) ? $this->input_attr['max'] : 1; + $json['step'] = ! empty( $this->input_attr['step'] ) ? $this->input_attr['step'] : 1; + } else { + foreach ( $this->input_attr as $device => $value ) { + $json[ $device ] = $value; + } + } + + return $json; + } + + /** + * Check if an array contains another array. + * + * @param array $array Array to check. + */ + private function contains_array( $array ) { + foreach ( $array as $value ) { + if ( is_array( $value ) ) { + return true; + } + } + return false; + } + + /** + * Check if a string is in json format + * + * @param string $string Input. + */ + public function is_json( $string ) { + return is_string( $string ) && is_array( json_decode( $string, true ) ) ? true : false; + } + + /** + * Render the control's content. + * + * @access public + */ + protected function content_template() { + ?> + <# if ( data.label ) { #> + + {{{ data.label }}} + + <# if ( data.media_query ) { #> +
      +
    • + +
    • +
    • + +
    • +
    • + +
    • +
    + <# } #> + <# } + var min, max, step, default_value; + if( data.min ){ + min = data.min; + } + if( data.max ){ + max = data.max; + } + if( data.step ){ + step = data.step; + } + if( data.default_value ){ + default_value = data.default_value; + } + + if( data.desktop ){ + if ( data.desktop.min ){ + min = data.desktop.min; + } + if ( data.desktop.max ){ + max = data.desktop.max; + } + if ( data.desktop.step ){ + step = data.desktop.step; + } + if ( data.desktop.default_value ){ + default_value = data.desktop.default_value; + } + } + if( data.desktop_value ){ + value = data.desktop_value; + } else { + if( default_value ) { + value = default_value; + } + } + #> +
    +
    + + + +
    + <# if ( data.media_query ) { + + if( data.tablet ){ + if ( data.tablet.min ){ + min = data.tablet.min; + } + if ( data.tablet.max ){ + max = data.tablet.max; + } + if ( data.tablet.step ){ + step = data.tablet.step; + } + if ( data.tablet.default_value ){ + default_value = data.tablet.default_value; + } + } + if( data.tablet_value ){ + value = data.tablet_value; + } else { + if( default_value ) { + value = default_value; + } + } + + #> +
    + + + +
    + + <# if( data.mobile ){ + if ( data.mobile.min ){ + min = data.mobile.min; + } + if ( data.mobile.max ){ + max = data.mobile.max; + } + if ( data.mobile.step ){ + step = data.mobile.step; + } + if ( data.mobile.default_value ){ + default_value = data.mobile.default_value; + } + + if( data.mobile_value ){ + value = data.mobile_value; + } else { + if( default_value ) { + value = default_value; + } + } + } #> +
    + + + +
    + <# } #> + +
    + desktop != $default ) { + if ( is_array( $css_prop ) ) { + $value = $css_prop[0] . ': ' . esc_attr ( $json->desktop ) . $ext . ';'; + if ( count( $css_prop ) > 1 ) { + $value .= $css_prop[1] . ': ' . esc_attr ( $json->desktop ) . $ext . ';'; + } + } else { + $value = $css_prop . ': ' . esc_attr ( $json->desktop ) . $ext . ';'; + } + } + + if ( $media == 'mobile' && $json->mobile != $default ) { + if ( is_array( $css_prop ) ) { + $value = $css_prop[0] . ': ' . esc_attr ( $json->mobile ) . $ext . ';'; + if ( count( $css_prop ) > 1 ) { + $value .= $css_prop[1] . ': ' . esc_attr ( $json->mobile ) . $ext . ';'; + } + } else { + $value = $css_prop . ': ' . esc_attr ( $json->mobile ) . $ext . ';'; + } + } + + if ( $media == 'tablet' && $json->tablet != $default ) { + if ( is_array( $css_prop ) ) { + $value = $css_prop[0] . ': ' . esc_attr ( $json->tablet ) . $ext . ';'; + if ( count( $css_prop ) > 1 ) { + $value .= $css_prop[1] . ': ' . esc_attr ( $json->tablet ) . $ext . ';'; + } + } else { + $value = $css_prop . ': ' . esc_attr ( $json->tablet ) . $ext . ';'; + } + } + + return $value; + } + + return false; +} + +/** + * Takes Ranges Control applies to chromax_media_range function and ouputs Full css with @media query + * @param [string] $css_prop CSS Property to add + * @param [string] $control control / settings + * @param [string] $ext css value extension, eg. px, in, pc + * @return [string] + */ +function chromax_customizer_value( $control, $css_selector, $css_prop, array $default, $ext = '' ) { + if ( $control ) { + $control = get_theme_mod( $control ); + $return = ''; + + if( is_string( $control ) && is_array( json_decode( $control, true ) ) ){ + $desktop_val = chromax_media_range( $css_prop, $control, $default[0], 'desktop', $ext ); + $tablet_val = chromax_media_range( $css_prop, $control, $default[1], 'tablet', $ext ); + $mobile_val = chromax_media_range( $css_prop, $control, $default[2], 'mobile', $ext ); + + if ( !empty( $desktop_val ) ) { + $return = $css_selector . ' { '; + $return .= $desktop_val; + $return .= '} '; + } + + if ( !empty( $tablet_val ) ) { + $return .= '@media (max-width:768px) {'; + $return .= $css_selector . ' { '; + $return .= $tablet_val; + $return .= '} } '; + } + + if ( !empty( $mobile_val ) ) { + $return .= '@media (max-width:480px) {'; + $return .= $css_selector . ' { '; + $return .= $mobile_val; + $return .= '} } '; + } + } else { + if ( !empty( $control ) && $control != $default[0] ) { + $return .= $css_selector . ' { '; + $return .= esc_attr( $control ) . $ext . ';'; + $return .= ' } '; + } + } + + return $return; + } + + return false; +} \ No newline at end of file diff --git a/wp-content/themes/chromax/inc/customizer/controls/code/customizer-repeater/class/customizer-repeater-control.php b/wp-content/themes/chromax/inc/customizer/controls/code/customizer-repeater/class/customizer-repeater-control.php new file mode 100644 index 0000000..086a901 --- /dev/null +++ b/wp-content/themes/chromax/inc/customizer/controls/code/customizer-repeater/class/customizer-repeater-control.php @@ -0,0 +1,978 @@ +add_field_label = esc_html__( 'Add new field', 'chromax' ); + if ( ! empty( $args['add_field_label'] ) ) { + $this->add_field_label = $args['add_field_label']; + } + + $this->boxtitle = esc_html__( 'Customizer Repeater', 'chromax' ); + if ( ! empty ( $args['item_name'] ) ) { + $this->boxtitle = $args['item_name']; + } elseif ( ! empty( $this->label ) ) { + $this->boxtitle = $this->label; + } + + if ( ! empty( $args['customizer_repeater_image_control'] ) ) { + $this->customizer_repeater_image_control = $args['customizer_repeater_image_control']; + } + + if ( ! empty( $args['customizer_repeater_image2_control'] ) ) { + $this->customizer_repeater_image2_control = $args['customizer_repeater_image2_control']; + } + + if ( ! empty( $args['customizer_repeater_icon_control'] ) ) { + $this->customizer_repeater_icon_control = $args['customizer_repeater_icon_control']; + } + + if ( ! empty( $args['customizer_repeater_color_control'] ) ) { + $this->customizer_repeater_color_control = $args['customizer_repeater_color_control']; + } + + if ( ! empty( $args['customizer_repeater_title_control'] ) ) { + $this->customizer_repeater_title_control = $args['customizer_repeater_title_control']; + } + + + if ( ! empty( $args['customizer_repeater_subtitle_control'] ) ) { + $this->customizer_repeater_subtitle_control = $args['customizer_repeater_subtitle_control']; + } + + if ( ! empty( $args['customizer_repeater_subtitle2_control'] ) ) { + $this->customizer_repeater_subtitle2_control = $args['customizer_repeater_subtitle2_control']; + } + + if ( ! empty( $args['customizer_repeater_subtitle3_control'] ) ) { + $this->customizer_repeater_subtitle3_control = $args['customizer_repeater_subtitle3_control']; + } + + if ( ! empty( $args['customizer_repeater_subtitle4_control'] ) ) { + $this->customizer_repeater_subtitle4_control = $args['customizer_repeater_subtitle4_control']; + } + + if ( ! empty( $args['customizer_repeater_subtitle5_control'] ) ) { + $this->customizer_repeater_subtitle5_control = $args['customizer_repeater_subtitle5_control']; + } + + if ( ! empty( $args['customizer_repeater_text_control'] ) ) { + $this->customizer_repeater_text_control = $args['customizer_repeater_text_control']; + } + if ( ! empty( $args['customizer_repeater_text2_control'] ) ) { + $this->customizer_repeater_text2_control = $args['customizer_repeater_text2_control']; + } + if ( ! empty( $args['customizer_repeater_button2_control'] ) ) { + $this->customizer_repeater_button2_control = $args['customizer_repeater_button2_control']; + } + if ( ! empty( $args['customizer_repeater_link2_control'] ) ) { + $this->customizer_repeater_link2_control = $args['customizer_repeater_link2_control']; + } + if ( ! empty( $args['customizer_repeater_link3_control'] ) ) { + $this->customizer_repeater_link3_control = $args['customizer_repeater_link3_control']; + } + if ( ! empty( $args['customizer_repeater_designation_control'] ) ) { + $this->customizer_repeater_designation_control = $args['customizer_repeater_designation_control']; + } + + if ( ! empty( $args['customizer_repeater_button_text_control'] ) ) { + $this->customizer_repeater_button_text_control = $args['customizer_repeater_button_text_control']; + } + + if ( ! empty( $args['customizer_repeater_link_control'] ) ) { + $this->customizer_repeater_link_control = $args['customizer_repeater_link_control']; + } + + if ( ! empty( $args['customizer_repeater_checkbox_control'] ) ) { + $this->customizer_repeater_checkbox_control = $args['customizer_repeater_checkbox_control']; + } + + if ( ! empty( $args['customizer_repeater_video_url_control'] ) ) { + $this->customizer_repeater_video_url_control = $args['customizer_repeater_video_url_control']; + } + + if ( ! empty( $args['customizer_repeater_slide_align'] ) ) { + $this->customizer_repeater_slide_align = $args['customizer_repeater_slide_align']; + } + + if ( ! empty( $args['customizer_repeater_bg_type'] ) ) { + $this->customizer_repeater_bg_type = $args['customizer_repeater_bg_type']; + } + + if ( ! empty( $args['customizer_repeater_shortcode_control'] ) ) { + $this->customizer_repeater_shortcode_control = $args['customizer_repeater_shortcode_control']; + } + + if ( ! empty( $args['customizer_repeater_repeater_control'] ) ) { + $this->customizer_repeater_repeater_control = $args['customizer_repeater_repeater_control']; + } + + + if ( ! empty( $id ) ) { + $this->id = $id; + } + + if ( file_exists( get_template_directory() . '/inc/customizer/controls/code/customizer-repeater/inc/icons.php' ) ) { + $this->customizer_icon_container = 'inc/customizer/controls/code/customizer-repeater/inc/icons'; + } + + $allowed_array1 = wp_kses_allowed_html( 'post' ); + $allowed_array2 = array( + 'input' => array( + 'type' => array(), + 'class' => array(), + 'placeholder' => array() + ) + ); + + $this->allowed_html = array_merge( $allowed_array1, $allowed_array2 ); + } + + /*Enqueue resources for the control*/ + public function enqueue() { + wp_enqueue_style( 'font-awesome', get_template_directory_uri() . '/assets/vendors/css/all.min.css', array(), 999 ); + + wp_enqueue_style( 'chromax_customizer-repeater-admin-stylesheet', get_template_directory_uri() . '/inc/customizer/controls/code/customizer-repeater/css/admin-style.css', array(), 999 ); + + wp_enqueue_style( 'wp-color-picker' ); + + wp_enqueue_script( 'chromax_customizer-repeater-script', get_template_directory_uri() . '/inc/customizer/controls/code/customizer-repeater/js/customizer_repeater.js', array('jquery', 'jquery-ui-draggable', 'wp-color-picker' ), 999, true ); + + wp_enqueue_script( 'chromax_customizer-repeater-fontawesome-iconpicker', get_template_directory_uri() . '/inc/customizer/controls/code/customizer-repeater/js/fontawesome-iconpicker.js', array( 'jquery' ), 999, true ); + + wp_enqueue_style( 'chromax_customizer-repeater-fontawesome-iconpicker-script', get_template_directory_uri() . '/inc/customizer/controls/code/customizer-repeater/css/fontawesome-iconpicker.min.css', array(), 999 ); + } + + public function render_content() { + + /*Get default options*/ + $this_default = json_decode( $this->setting->default ); + + /*Get values (json format)*/ + $values = $this->value(); + + /*Decode values*/ + $json = json_decode( $values ); + + if ( ! is_array( $json ) ) { + $json = array( $values ); + } ?> + + label ); ?> +
    + iterate_array( $this_default ); ?> + link() ); ?> + class="customizer-repeater-colector" + value=""/> + iterate_array(); ?> + link() ); ?> + class="customizer-repeater-colector"/> + iterate_array( $json ); ?> + link() ); ?> + class="customizer-repeater-colector" value="value() ); ?>"/> + +
    + + boxtitle; + + global $chromax_limit; + global $chromax_type_with_id; + echo sprintf(""); + foreach($array as $icon){ + if($it<4) + { + $chromax_limit="chromax_limit"; + $chromax_type_with_id=''; + } + else + { + $chromax_limit="chromax_overlimit"; + $chromax_type_with_id=$chromax_del_btn_id."_".$it; + } + + + ?> +
    +
    + boxtitle ) ?> +
    +
    + id)){ + $id = $icon->id; + } + if(!empty($icon->choice)){ + $choice = $icon->choice; + } + if(!empty($icon->image_url)){ + $image_url = $icon->image_url; + } + if(!empty($icon->image_url2)){ + $image_url2 = $icon->image_url2; + } + if(!empty($icon->icon_value)){ + $icon_value = $icon->icon_value; + } + if(!empty($icon->color)){ + $color = $icon->color; + } + if(!empty($icon->title)){ + $title = $icon->title; + } + + if(!empty($icon->slide_align)){ + $slide_align = $icon->slide_align; + } + + if(!empty($icon->bg_type)){ + $bg_type = $icon->bg_type; + } + + if(!empty($icon->designation)){ + $designation = $icon->designation; + } + + if(!empty($icon->subtitle)){ + $subtitle = $icon->subtitle; + } + + if(!empty($icon->subtitle2)){ + $subtitle2 = $icon->subtitle2; + } + + if(!empty($icon->subtitle3)){ + $subtitle3 = $icon->subtitle3; + } + + if(!empty($icon->subtitle4)){ + $subtitle4 = $icon->subtitle4; + } + + if(!empty($icon->subtitle5)){ + $subtitle5 = $icon->subtitle5; + } + + if(!empty($icon->text)){ + $text = $icon->text; + } + if(!empty($icon->text2)){ + $text2 = $icon->text2; + } + + if(!empty($icon->button_second)){ + $button_second = $icon->button_second; + } + + if(!empty($icon->link2)){ + $link2 = $icon->link2; + } + + if(!empty($icon->link3)){ + $link3 = $icon->link3; + } + + if(!empty($icon->video_url)){ + $video_url = $icon->video_url; + } + + if(!empty($icon->button)){ + $button = $icon->button_text; + } + if(!empty($icon->link)){ + $link = $icon->link; + } + if(!empty($icon->shortcode)){ + $shortcode = $icon->shortcode; + } + + if(!empty($icon->social_repeater)){ + $repeater = $icon->social_repeater; + } + + if(!empty($icon->open_new_tab)){ + $open_new_tab = $icon->open_new_tab; + } + + + if($this->customizer_repeater_bg_type == true){ + $this->bg_type($bg_type); + + } + + if($this->customizer_repeater_title_control==true){ + $this->input_control(array( + 'label' => apply_filters('chromax_repeater_input_labels_filter', esc_html__( 'Title','chromax' ), $this->id, 'customizer_repeater_title_control' ), + 'class' => 'customizer-repeater-title-control '."$chromax_limit".' '."$chromax_type_with_id".'', + 'type' => apply_filters('chromax_repeater_input_types_filter', '', $this->id, 'customizer_repeater_title_control' ), + ), $title); + } + + if($this->customizer_repeater_subtitle_control==true){ + $this->input_control(array( + 'label' => apply_filters('chromax_repeater_input_labels_filter', esc_html__( 'Subtitle','chromax' ), $this->id, 'customizer_repeater_subtitle_control' ), + 'class' => 'customizer-repeater-subtitle-control '."$chromax_limit".' '."$chromax_type_with_id".'', + 'type' => apply_filters('chromax_repeater_input_types_filter', '', $this->id, 'customizer_repeater_subtitle_control' ), + ), $subtitle); + } + + if($this->customizer_repeater_subtitle2_control==true){ + $this->input_control(array( + 'label' => apply_filters('chromax_repeater_input_labels_filter', esc_html__( 'Subtitle 2','chromax' ), $this->id, 'customizer_repeater_subtitle2_control' ), + 'class' => 'customizer-repeater-subtitle2-control '."$chromax_limit".' '."$chromax_type_with_id".'', + 'type' => apply_filters('chromax_repeater_input_types_filter', '', $this->id, 'customizer_repeater_subtitle2_control' ), + ), $subtitle2); + } + + if($this->customizer_repeater_subtitle3_control==true){ + $this->input_control(array( + 'label' => apply_filters('chromax_repeater_input_labels_filter', esc_html__( 'Subtitle 3','chromax' ), $this->id, 'customizer_repeater_subtitle3_control' ), + 'class' => 'customizer-repeater-subtitle3-control '."$chromax_limit".' '."$chromax_type_with_id".'', + 'type' => apply_filters('chromax_repeater_input_types_filter', '', $this->id, 'customizer_repeater_subtitle3_control' ), + ), $subtitle3); + } + + if($this->customizer_repeater_subtitle4_control==true){ + $this->input_control(array( + 'label' => apply_filters('chromax_repeater_input_labels_filter', esc_html__( 'Subtitle 4','chromax' ), $this->id, 'customizer_repeater_subtitle4_control' ), + 'class' => 'customizer-repeater-subtitle4-control '."$chromax_limit".' '."$chromax_type_with_id".'', + 'type' => apply_filters('chromax_repeater_input_types_filter', '', $this->id, 'customizer_repeater_subtitle4_control' ), + ), $subtitle4); + } + + if($this->customizer_repeater_subtitle5_control==true){ + $this->input_control(array( + 'label' => apply_filters('chromax_repeater_input_labels_filter', esc_html__( 'Subtitle 5','chromax' ), $this->id, 'customizer_repeater_subtitle5_control' ), + 'class' => 'customizer-repeater-subtitle5-control '."$chromax_limit".' '."$chromax_type_with_id".'', + 'type' => apply_filters('chromax_repeater_input_types_filter', '', $this->id, 'customizer_repeater_subtitle5_control' ), + ), $subtitle5); + } + + if($this->customizer_repeater_text_control==true){ + $this->input_control(array( + 'label' => apply_filters('chromax_repeater_input_labels_filter', esc_html__( 'Description','chromax' ), $this->id, 'customizer_repeater_text_control' ), + 'class' => 'customizer-repeater-text-control '."$chromax_limit".' '."$chromax_type_with_id".'', + 'type' => apply_filters('chromax_repeater_input_types_filter', 'textarea', $this->id, 'customizer_repeater_text_control' ), + ), $text); + } + if($this->customizer_repeater_text2_control==true){ + $this->input_control(array( + 'label' => apply_filters('chromax_repeater_input_labels_filter', esc_html__( 'Button Label','chromax' ), $this->id, 'customizer_repeater_text2_control' ), + 'class' => 'customizer-repeater-text2-control '."$chromax_limit".'', + 'type' => apply_filters('chromax_repeater_input_types_filter', '', $this->id, 'customizer_repeater_text2_control' ), + ), $text2); + } + + if($this->customizer_repeater_button2_control==true){ + $this->input_control(array( + 'label' => apply_filters('chromax_repeater_input_labels_filter', esc_html__( 'Button Label second','chromax' ), $this->id, 'customizer_repeater_button2_control' ), + 'class' => 'customizer-repeater-button2-control', + 'type' => apply_filters('chromax_repeater_input_types_filter', '', $this->id, 'customizer_repeater_button2_control' ), + ), $button_second); + } + + + if($this->customizer_repeater_button_text_control){ + $this->input_control(array( + 'label' => apply_filters('chromax_repeater_input_labels_filter', esc_html__('Button Text', + 'chromax'), $this->id, 'customizer_repeater_button_text_control'), + 'class' => 'customizer-repeater-button-text-control '."$chromax_limit".'', + 'type' => apply_filters('chromax_repeater_input_types_filter', '' , $this->id, + 'customizer_repeater_button_text_control'), + ), $button); + } + + + if($this->customizer_repeater_link_control){ + $this->input_control(array( + 'label' => apply_filters('chromax_repeater_input_labels_filter', esc_html__( 'Link','chromax' ), $this->id, 'customizer_repeater_link_control' ), + 'class' => 'customizer-repeater-link-control '."$chromax_limit".' '."$chromax_type_with_id".'', + 'sanitize_callback' => 'esc_url_raw', + 'type' => apply_filters('chromax_repeater_input_types_filter', '', $this->id, 'customizer_repeater_link_control' ), + ), $link); + } + + if($this->customizer_repeater_link2_control){ + $this->input_control(array( + 'label' => apply_filters('chromax_repeater_input_labels_filter', esc_html__( 'link','chromax' ), $this->id, 'customizer_repeater_link2_control' ), + 'class' => 'customizer-repeater-link2-control '."$chromax_limit".' '."$chromax_type_with_id".'', + //'sanitize_callback' => 'esc_url_raw', + 'type' => apply_filters('chromax_repeater_input_types_filter', '', $this->id, 'customizer_repeater_link2_control' ), + ), $link2); + } + + if($this->customizer_repeater_link3_control){ + $this->input_control(array( + 'label' => apply_filters('chromax_repeater_input_labels_filter', esc_html__( 'link 3','chromax' ), $this->id, 'customizer_repeater_link3_control' ), + 'class' => 'customizer-repeater-link3-control '."$chromax_limit".' '."$chromax_type_with_id".'', + //'sanitize_callback' => 'esc_url_raw', + 'type' => apply_filters('chromax_repeater_input_types_filter', '', $this->id, 'customizer_repeater_link3_control' ), + ), $link3); + } + + if($this->customizer_repeater_checkbox_control == true){ + $this->testimonila_check($open_new_tab); + + } + + if($this->customizer_repeater_video_url_control){ + $this->input_control(array( + 'label' => apply_filters('chromax_repeater_input_labels_filter', esc_html__('Video Url', + 'chromax'), $this->id, 'customizer_repeater_video_url_control'), + 'class' => 'customizer-repeater-video-url-control', + 'type' => apply_filters('chromax_customizer_repeater_video_url_control', 'textarea', $this->id, 'customizer_repeater_video_url_control' ), + ), $video_url); + } + + if($this->customizer_repeater_slide_align == true){ + $this->slide_align($slide_align); + + } + + if($this->customizer_repeater_image_control == true && $this->customizer_repeater_icon_control == true) { + $this->icon_type_choice( $choice,$chromax_limit ); + } + if($this->customizer_repeater_image_control == true){ + $this->image_control($image_url, $choice, $chromax_limit, $it+1, $chromax_del_btn_id); + } + if($this->customizer_repeater_image2_control == true){ + $this->image_control2($image_url2, $choice, $chromax_limit, $it+1, $chromax_del_btn_id); + } + if($this->customizer_repeater_icon_control == true){ + $this->icon_picker_control($icon_value, $choice); + } + + + + + if($this->customizer_repeater_color_control == true){ + $this->input_control(array( + 'label' => apply_filters('chromax_repeater_input_labels_filter', esc_html__( 'Color','chromax' ), $this->id, 'customizer_repeater_color_control' ), + 'class' => 'customizer-repeater-color-control', + 'type' => apply_filters('chromax_repeater_input_types_filter', 'color', $this->id, 'customizer_repeater_color_control' ), + 'sanitize_callback' => 'sanitize_hex_color' + ), $color); + } + + + if($this->customizer_repeater_shortcode_control==true){ + $this->input_control(array( + 'label' => apply_filters('chromax_repeater_input_labels_filter', esc_html__( 'Shortcode','chromax' ), $this->id, 'customizer_repeater_shortcode_control' ), + 'class' => 'customizer-repeater-shortcode-control', + 'type' => apply_filters('chromax_repeater_input_types_filter', '', $this->id, 'customizer_repeater_shortcode_control' ), + ), $shortcode); + } + + if($this->customizer_repeater_designation_control==true){ + $this->input_control(array( + 'label' => apply_filters('chromax_repeater_input_labels_filter', esc_html__( 'Designation','chromax' ), $this->id, 'customizer_repeater_designation_control' ), + 'class' => 'customizer-repeater-designation-control', + 'type' => apply_filters('chromax_repeater_input_types_filter', 'textarea', $this->id, 'customizer_repeater_designation_control' ), + ), $designation); + } + + if($this->customizer_repeater_repeater_control==true){ + $this->repeater_control($repeater, $chromax_limit, $chromax_type_with_id); + } ?> + + + + +
    +
    + + +
    +
    + boxtitle ) ?> +
    +
    + customizer_repeater_image_control == true && $this->customizer_repeater_icon_control == true ) { + $this->icon_type_choice(); + } + if ( $this->customizer_repeater_image_control == true ) { + $this->image_control(); + } + if ( $this->customizer_repeater_image2_control == true ) { + $this->image_control2(); + } + if ( $this->customizer_repeater_icon_control == true ) { + $this->icon_picker_control(); + } + + + if($this->customizer_repeater_bg_type == true){ + $this->bg_type($bg_type); + + } + + if($this->customizer_repeater_color_control==true){ + $this->input_control(array( + 'label' => apply_filters('chromax_repeater_input_labels_filter', esc_html__( 'Color','chromax' ), $this->id, 'customizer_repeater_color_control' ), + 'class' => 'customizer-repeater-color-control', + 'type' => apply_filters('chromax_repeater_input_types_filter', 'color', $this->id, 'customizer_repeater_color_control' ), + 'sanitize_callback' => 'sanitize_hex_color' + ) ); + } + if ( $this->customizer_repeater_title_control == true ) { + $this->input_control( array( + 'label' => apply_filters('chromax_repeater_input_labels_filter', esc_html__( 'Title','chromax' ), $this->id, 'customizer_repeater_title_control' ), + 'class' => 'customizer-repeater-title-control', + 'type' => apply_filters('chromax_repeater_input_types_filter', '', $this->id, 'customizer_repeater_title_control' ), + ) ); + } + + if ( $this->customizer_repeater_subtitle_control == true ) { + $this->input_control( array( + 'label' => apply_filters('chromax_repeater_input_labels_filter', esc_html__( 'Subtitle','chromax' ), $this->id, 'customizer_repeater_subtitle_control' ), + 'class' => 'customizer-repeater-subtitle-control', + 'type' => apply_filters('chromax_repeater_input_types_filter', '', $this->id, 'customizer_repeater_subtitle_control' ), + ) ); + } + + if ( $this->customizer_repeater_subtitle2_control == true ) { + $this->input_control( array( + 'label' => apply_filters('chromax_repeater_input_labels_filter', esc_html__( 'Subtitle 2','chromax' ), $this->id, 'customizer_repeater_subtitle2_control' ), + 'class' => 'customizer-repeater-subtitle2-control', + 'type' => apply_filters('chromax_repeater_input_types_filter', '', $this->id, 'customizer_repeater_subtitle2_control' ), + ) ); + } + + if ( $this->customizer_repeater_subtitle3_control == true ) { + $this->input_control( array( + 'label' => apply_filters('chromax_repeater_input_labels_filter', esc_html__( 'Subtitle 3','chromax' ), $this->id, 'customizer_repeater_subtitle3_control' ), + 'class' => 'customizer-repeater-subtitle3-control', + 'type' => apply_filters('chromax_repeater_input_types_filter', '', $this->id, 'customizer_repeater_subtitle3_control' ), + ) ); + } + + if ( $this->customizer_repeater_subtitle4_control == true ) { + $this->input_control( array( + 'label' => apply_filters('chromax_repeater_input_labels_filter', esc_html__( 'Subtitle 4','chromax' ), $this->id, 'customizer_repeater_subtitle4_control' ), + 'class' => 'customizer-repeater-subtitle4-control', + 'type' => apply_filters('chromax_repeater_input_types_filter', '', $this->id, 'customizer_repeater_subtitle4_control' ), + ) ); + } + + if ( $this->customizer_repeater_subtitle5_control == true ) { + $this->input_control( array( + 'label' => apply_filters('chromax_repeater_input_labels_filter', esc_html__( 'Subtitle 5','chromax' ), $this->id, 'customizer_repeater_subtitle5_control' ), + 'class' => 'customizer-repeater-subtitle5-control', + 'type' => apply_filters('chromax_repeater_input_types_filter', '', $this->id, 'customizer_repeater_subtitle5_control' ), + ) ); + } + + if ( $this->customizer_repeater_text_control == true ) { + $this->input_control( array( + 'label' => apply_filters('chromax_repeater_input_labels_filter', esc_html__( 'Description','chromax' ), $this->id, 'customizer_repeater_text_control' ), + 'class' => 'customizer-repeater-text-control', + 'type' => apply_filters('chromax_repeater_input_types_filter', 'textarea', $this->id, 'customizer_repeater_text_control' ), + ) ); + } + if ( $this->customizer_repeater_text2_control == true ) { + $this->input_control( array( + 'label' => apply_filters('chromax_repeater_input_labels_filter', esc_html__( 'Button Label','chromax' ), $this->id, 'customizer_repeater_text2_control' ), + 'class' => 'customizer-repeater-text2-control', + 'type' => apply_filters('chromax_repeater_input_types_filter', '', $this->id, 'customizer_repeater_text2_control' ), + ) ); + } + + if ( $this->customizer_repeater_button2_control == true ) { + $this->input_control( array( + 'label' => apply_filters('chromax_repeater_input_labels_filter', esc_html__( 'Button Label Second','chromax' ), $this->id, 'customizer_repeater_button2_control' ), + 'class' => 'customizer-repeater-button2-control', + 'type' => apply_filters('chromax_repeater_input_types_filter', '', $this->id, 'customizer_repeater_button2_control' ), + ) ); + } + + if ( $this->customizer_repeater_link2_control == true ) { + $this->input_control( array( + 'label' => apply_filters('chromax_repeater_input_labels_filter', esc_html__( 'link','chromax' ), $this->id, 'customizer_repeater_link2_control' ), + 'class' => 'customizer-repeater-link2-control', + 'type' => apply_filters('chromax_repeater_input_types_filter', '', $this->id, 'customizer_repeater_link2_control' ), + ) ); + } + + if ( $this->customizer_repeater_link3_control == true ) { + $this->input_control( array( + 'label' => apply_filters('chromax_repeater_input_labels_filter', esc_html__( 'link 3','chromax' ), $this->id, 'customizer_repeater_link3_control' ), + 'class' => 'customizer-repeater-link3-control', + 'type' => apply_filters('chromax_repeater_input_types_filter', '', $this->id, 'customizer_repeater_link3_control' ), + ) ); + } + + if($this->customizer_repeater_button_text_control){ + $this->input_control(array( + 'label' => apply_filters('chromax_repeater_input_labels_filter', esc_html__('Button Text', + 'chromax'), $this->id, 'customizer_repeater_button_text_control'), + 'class' => 'customizer-repeater-button-text-control', + 'type' => apply_filters('chromax_repeater_input_types_filter', '' , $this->id, + 'customizer_repeater_button_text_control'), + )); + } + + if ( $this->customizer_repeater_link_control == true ) { + $this->input_control( array( + 'label' => apply_filters('chromax_repeater_input_labels_filter', esc_html__( 'Link','chromax' ), $this->id, 'customizer_repeater_link_control' ), + 'class' => 'customizer-repeater-link-control', + 'type' => apply_filters('chromax_repeater_input_types_filter', '', $this->id, 'customizer_repeater_link_control' ), + ) ); + } + + if($this->customizer_repeater_checkbox_control == true){ + $this->testimonila_check(); + + } + + if($this->customizer_repeater_video_url_control){ + $this->input_control(array( + 'label' => apply_filters('chromax_repeater_input_labels_filter', esc_html__('Video Url', + 'chromax'), $this->id, 'customizer_repeater_video_url_control'), + 'class' => 'customizer-repeater-video-url-control', + 'type' => apply_filters('chromax_customizer_repeater_video_url_control', 'textarea', $this->id, 'customizer_repeater_video_url_control' ), + )); + } + + if($this->customizer_repeater_slide_align == true){ + $this->slide_align($slide_align); + + } + + + + + if ( $this->customizer_repeater_shortcode_control == true ) { + $this->input_control( array( + 'label' => apply_filters('chromax_repeater_input_labels_filter', esc_html__( 'Shortcode','chromax' ), $this->id, 'customizer_repeater_shortcode_control' ), + 'class' => 'customizer-repeater-shortcode-control', + 'type' => apply_filters('chromax_repeater_input_types_filter', '', $this->id, 'customizer_repeater_shortcode_control' ), + ) ); + } + + + if ( $this->customizer_repeater_designation_control == true ) { + $this->input_control( array( + 'label' => apply_filters('chromax_repeater_input_labels_filter', esc_html__( 'Designation','chromax' ), $this->id, 'customizer_repeater_designation_control' ), + 'class' => 'customizer-repeater-designation-control', + 'type' => apply_filters('chromax_repeater_input_types_filter', 'textarea', $this->id, 'customizer_repeater_designation_control' ), + ) ); + } + + if($this->customizer_repeater_repeater_control==true){ + $this->repeater_control(); + } ?> + + +
    +
    + + + + > + + + + + + + +
    + + + class="customizer-repeater-checkbox "> + +
    + + + +
    > + + + + " value=""> + " value="" /> +
    + +
    + + + + " value=""> + " value="" /> +
    + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    + + +
    + customizer_icon_container ); ?> + + + +
    + +
    + + +
    + +
    +
    + + +
    + customizer_icon_container ); ?> + + + +
    + + +
    + + div { + margin: 1em 0; +} + +.customizer-repeater-box-content-hidden .customize-control-title { + font-size: 13px; + line-height: 1.5; + font-weight: normal; + margin-bottom: 0; + margin-top: 1em; +} + +.customizer-repeater-box-content-hidden .customize-control-title:after { + content: ":"; +} + +.customizer-repeater-box-content-hidden span.description { + font-size: 12px; + font-style: normal; +} + +.customizer-repeater-general-control-repeater-container, .customizer-repeater-general-control-repeater_container { + border: 1px solid #e5e5e5; + border-top: none; + margin-bottom: 12px; + width: 100%; + float: left; + background: #fff; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .04); + box-shadow: 0 1px 1px rgba(0, 0, 0, .04); +} + +.customizer-repeater-box-content-hidden .wp-picker-container, .customizer-repeater-box-content-hidden .wp-picker-container .wp-color-result, .icp-container { + margin: 0; +} + +.customizer-repeater-box-content-hidden input:not(.icp, .wp-color-picker), +.customizer-repeater-box-content-hidden textarea, +.customizer-repeater-box-content-hidden .wp-picker-container { + margin-bottom: 1em !important; +} + +.social-repeater-general-control-remove-field { + cursor: pointer; + color: #a00; + background: none; + border: none; + padding: 0; + margin-top: 10px; +} + +.social-repeater-general-control-remove-field:hover { + color: red; +} + +.customizer-repeater-box-content-hidden .wp-picker-holder { + position: relative; + left: -10px; +} + +.customizer-repeater-box-content-hidden .wp-picker-input-wrap { + margin-left: 10px; +} + +.customizer-repeater-box-content-hidden .wp-picker-container .iris-picker { + border-left: none; + border-right: none; +} + +button.customizer-repeater-new-field { + float: right; +} + +button.customizer-repeater-new-field:before { + content: "\f132"; + display: inline-block; + position: relative; + left: -2px; + top: -1px; + font: 400 20px/1 dashicons; + vertical-align: middle; + -webkit-transition: all .2s; + transition: all .2s; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.customizer-repeater-box-content-hidden > div.customizer-repeater-social-repeater { + margin-top: 0; +} + +.customizer-repeater-general-control-repeater-container .customizer-repeater-icon-control { + width: 100%; + margin: 0; + padding: 0; +} + +#customizer-repeater-new-field { + width: 100%; +} + +.customize-control-widget_form .widget-control-save { + display: block !important; +} + +.customizer-repeater-box-content-hidden { + background-color: #fff; +} + +.customizer-repeater-image-control .customizer-repeater-custom-media-button, +.customizer-repeater-image2-control .customizer-repeater-custom-media-button { + margin-top: 5px; +} + +.customizer-icons { + display: inline-block; + padding: 0 10px 0 0; + vertical-align: middle; +} + +.social-repeater-remove-social-item { + display: inline-block; + vertical-align: top; + color: #a00; + border: none; + background: none; + cursor: pointer; + padding: 0; +} + +.social-repeater-remove-social-item:hover { + color: red; +} + +.customizer-repeater-social-repeater > .customizer-repeater-social-repeater-container:not(:first-child) { + margin-top: 25px; +} + +.icp-container { + margin-bottom: 10px; +} + +.button-secondary.social-repeater-add-social-item:before { + content: "\f132"; + display: inline-block; + position: relative; + left: -2px; + top: -1px; + font: 400 20px/1 dashicons; + vertical-align: middle; + -webkit-transition: all .2s; + transition: all .2s; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.button-secondary.social-repeater-add-social-item { + vertical-align: text-top; + float: right; +} + +.customizer-repeater-box-content-hidden textarea { + width: 100%; +} \ No newline at end of file diff --git a/wp-content/themes/chromax/inc/customizer/controls/code/customizer-repeater/css/fontawesome-iconpicker.css b/wp-content/themes/chromax/inc/customizer/controls/code/customizer-repeater/css/fontawesome-iconpicker.css new file mode 100644 index 0000000..d9f25cd --- /dev/null +++ b/wp-content/themes/chromax/inc/customizer/controls/code/customizer-repeater/css/fontawesome-iconpicker.css @@ -0,0 +1,156 @@ +.iconpicker .iconpicker-items, +.iconpicker .iconpicker-items:after, +.iconpicker-popover .popover-footer:after, +.iconpicker:after { + clear: both +} + +.iconpicker-popover.popover { + position: absolute; + padding: 1px; + text-align: left; + background: #e5e5e5; + z-index: 999; + display: none; + margin-left: -10px; + width: 254px +} + +.iconpicker, +.iconpicker-popover.popover.iconpicker-visible { + display: block +} + +.iconpicker-popover.popover .popover-title { + padding: 5px; + font-size: 5px; + line-height: 16px; + border-bottom: 1px solid #ebebeb; + background-color: #e5e5e5 +} + +.iconpicker-popover.popover .popover-title input[type=search].iconpicker-search { + margin: 0 0 2px +} + +.iconpicker-popover.popover .popover-title-text~input[type=search].iconpicker-search { + margin-top: 14px +} + +.iconpicker-popover.popover .popover-content { + padding: 0; + text-align: center +} + +.iconpicker-popover.popover>.arrow, +.iconpicker-popover.popover>.arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid +} + +.iconpicker *, +.icp-container { + position: relative +} + +.iconpicker-popover.popover>.arrow { + border-width: 11px +} + +.iconpicker-popover.popover>.arrow:after { + border-width: 10px; + content: "" +} + +.iconpicker-popover.popover.bottomLeft>.arrow { + border-top-width: 0; + border-bottom-color: #e5e5e5; + top: -11px +} + +.iconpicker-popover.popover.bottomLeft>.arrow:after { + content: " "; + top: 1px; + margin-left: -10px; + border-top-width: 0; + border-bottom-color: #e5e5e5 +} + +.iconpicker-popover.popover.bottomLeft>.arrow { + left: 14px; + margin-left: 0 +} + +.iconpicker, +.iconpicker .iconpicker-items { + position: relative; + margin: 0; + overflow: hidden +} + +.iconpicker { + text-align: left; + text-shadow: none; + line-height: 0 +} + +.iconpicker .iconpicker-items:after, +.iconpicker .iconpicker-items:before, +.iconpicker:after, +.iconpicker:before { + content: " "; + display: table +} + +.iconpicker * { + box-sizing: content-box +} + +.iconpicker .iconpicker-items { + float: none; + padding: 5px 0 0 5px; + background: #fff; + overflow-y: auto; + min-height: 55px; + max-height: 275px +} + +.iconpicker .iconpicker-items i { + float: left; + width: 32px; + height: 32px; + line-height: 32px; + margin: 0 7px 7px 0; + text-align: center; + cursor: pointer; + border-radius: 3px; + font-size: 18px; + color: #444; + box-shadow: 0 0 0 1px #ddd; + transition: transform .2s ease +} + +.iconpicker .iconpicker-items i:nth-child(6n) { + margin-right: 0 +} + +.iconpicker .iconpicker-items i:hover { + transform: scale(1.4); + color: #008ec2; + box-shadow: none +} + +.icp { + padding-left: 30px +} + +.icp-container .input-group-addon { + position: absolute; + top: 1px; + left: 5px; + padding: 3px +} \ No newline at end of file diff --git a/wp-content/themes/chromax/inc/customizer/controls/code/customizer-repeater/css/fontawesome-iconpicker.min.css b/wp-content/themes/chromax/inc/customizer/controls/code/customizer-repeater/css/fontawesome-iconpicker.min.css new file mode 100644 index 0000000..e4b8fff --- /dev/null +++ b/wp-content/themes/chromax/inc/customizer/controls/code/customizer-repeater/css/fontawesome-iconpicker.min.css @@ -0,0 +1 @@ +.iconpicker .iconpicker-items,.iconpicker .iconpicker-items:after,.iconpicker-popover .popover-footer:after,.iconpicker:after{clear:both}.iconpicker-popover.popover{position:absolute;padding:1px;text-align:left;background:#e5e5e5;z-index:999;display:none;margin-left:-10px;width:254px}.iconpicker,.iconpicker-popover.popover.iconpicker-visible{display:block}.iconpicker-popover.popover .popover-title{padding:5px;font-size:5px;line-height:16px;border-bottom:1px solid #ebebeb;background-color:#e5e5e5}.iconpicker-popover.popover .popover-title input[type=search].iconpicker-search{margin:0 0 2px}.iconpicker-popover.popover .popover-title-text~input[type=search].iconpicker-search{margin-top:14px}.iconpicker-popover.popover .popover-content{padding:0;text-align:center}.iconpicker-popover.popover>.arrow,.iconpicker-popover.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.iconpicker *,.icp-container{position:relative}.iconpicker-popover.popover>.arrow{border-width:11px}.iconpicker-popover.popover>.arrow:after{border-width:10px;content:""}.iconpicker-popover.popover.bottomLeft>.arrow{border-top-width:0;border-bottom-color:#e5e5e5;top:-11px}.iconpicker-popover.popover.bottomLeft>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#e5e5e5}.iconpicker-popover.popover.bottomLeft>.arrow{left:14px;margin-left:0}.iconpicker,.iconpicker .iconpicker-items{position:relative;margin:0;overflow:hidden}.iconpicker{text-align:left;text-shadow:none;line-height:0}.iconpicker .iconpicker-items:after,.iconpicker .iconpicker-items:before,.iconpicker:after,.iconpicker:before{content:" ";display:table}.iconpicker *{box-sizing:content-box}.iconpicker .iconpicker-items{float:none;padding:5px 0 0 5px;background:#fff;overflow-y:auto;min-height:55px;max-height:275px}.iconpicker .iconpicker-items i{float:left;width:32px;height:32px;line-height:32px;margin:0 7px 7px 0;text-align:center;cursor:pointer;border-radius:3px;font-size:18px;color:#444;box-shadow:0 0 0 1px #ddd;transition:transform .2s ease}.iconpicker .iconpicker-items i:nth-child(6n){margin-right:0}.iconpicker .iconpicker-items i:hover{transform:scale(1.4);color:#008ec2;box-shadow:none}.icp{padding-left:30px !important}.icp-container .input-group-addon{position:absolute;top:1px;left:5px;padding:3px} \ No newline at end of file diff --git a/wp-content/themes/chromax/inc/customizer/controls/code/customizer-repeater/inc/customizer.php b/wp-content/themes/chromax/inc/customizer/controls/code/customizer-repeater/inc/customizer.php new file mode 100644 index 0000000..fd3df7a --- /dev/null +++ b/wp-content/themes/chromax/inc/customizer/controls/code/customizer-repeater/inc/customizer.php @@ -0,0 +1,34 @@ + $box ){ + foreach ($box as $key => $value){ + + switch ( $key ) { + case 'icon_value': + $input_decoded[$boxk][$key] = wp_kses_post( force_balance_tags( $value ) ); + break; + + case 'link': + $input_decoded[$boxk][$key] = esc_url_raw( $value ); + break; + + default: + $input_decoded[$boxk][$key] = wp_kses_post( force_balance_tags( $value ) ); + } + + } + } + return json_encode($input_decoded); + } + return $input; +} diff --git a/wp-content/themes/chromax/inc/customizer/controls/code/customizer-repeater/inc/icons.php b/wp-content/themes/chromax/inc/customizer/controls/code/customizer-repeater/inc/icons.php new file mode 100644 index 0000000..2458d65 --- /dev/null +++ b/wp-content/themes/chromax/inc/customizer/controls/code/customizer-repeater/inc/icons.php @@ -0,0 +1,89 @@ +
    +
    +
    + +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    \ No newline at end of file diff --git a/wp-content/themes/chromax/inc/customizer/controls/code/customizer-repeater/js/customizer_repeater.js b/wp-content/themes/chromax/inc/customizer/controls/code/customizer-repeater/js/customizer_repeater.js new file mode 100644 index 0000000..057badf --- /dev/null +++ b/wp-content/themes/chromax/inc/customizer/controls/code/customizer-repeater/js/customizer_repeater.js @@ -0,0 +1,614 @@ +/* global jQuery */ +/* global wp */ +function chromax_media_upload(button_class) { + 'use strict'; + jQuery('body').on('click', button_class, function () { + var button_id = '#' + jQuery(this).attr('id'); + var display_field = jQuery(this).parent().children('input:text'); + var _custom_media = true; + + wp.media.editor.send.attachment = function (props, attachment) { + + if (_custom_media) { + if (typeof display_field !== 'undefined') { + switch (props.size) { + case 'full': + display_field.val(attachment.sizes.full.url); + display_field.trigger('change'); + break; + case 'medium': + display_field.val(attachment.sizes.medium.url); + display_field.trigger('change'); + break; + case 'thumbnail': + display_field.val(attachment.sizes.thumbnail.url); + display_field.trigger('change'); + break; + default: + display_field.val(attachment.url); + display_field.trigger('change'); + } + } + _custom_media = false; + } else { + return wp.media.editor.send.attachment(button_id, [props, attachment]); + } + }; + wp.media.editor.open(button_class); + window.send_to_editor = function (html) { + + }; + return false; + }); +} + +/******************************************** + *** Generate unique id *** + *********************************************/ +function chromax_customizer_repeater_uniqid(prefix, more_entropy) { + 'use strict'; + if (typeof prefix === 'undefined') { + prefix = ''; + } + + var retId; + var php_js; + var formatSeed = function (seed, reqWidth) { + seed = parseInt(seed, 10) + .toString(16); // to hex str + if (reqWidth < seed.length) { // so long we split + return seed.slice(seed.length - reqWidth); + } + if (reqWidth > seed.length) { // so short we pad + return new Array(1 + (reqWidth - seed.length)) + .join('0') + seed; + } + return seed; + }; + + // BEGIN REDUNDANT + if (!php_js) { + php_js = {}; + } + // END REDUNDANT + if (!php_js.uniqidSeed) { // init seed with big random int + php_js.uniqidSeed = Math.floor(Math.random() * 0x75bcd15); + } + php_js.uniqidSeed++; + + retId = prefix; // start with prefix, add current milliseconds hex string + retId += formatSeed(parseInt(new Date() + .getTime() / 1000, 10), 8); + retId += formatSeed(php_js.uniqidSeed, 5); // add seed hex string + if (more_entropy) { + // for more entropy we add a float lower to 10 + retId += (Math.random() * 10) + .toFixed(8) + .toString(); + } + + return retId; +} + + +/******************************************** + *** General Repeater *** + *********************************************/ +function chromax_customizer_repeater_refresh_social_icons(th) { + 'use strict'; + var icons_repeater_values = []; + th.find('.customizer-repeater-social-repeater-container').each(function () { + var icon = jQuery(this).find('.icp').val(); + var link = jQuery(this).find('.customizer-repeater-social-repeater-link').val(); + var id = jQuery(this).find('.customizer-repeater-social-repeater-id').val(); + + if (!id) { + id = 'customizer-repeater-social-repeater-' + chromax_customizer_repeater_uniqid(); + jQuery(this).find('.customizer-repeater-social-repeater-id').val(id); + } + + if (icon !== '' && link !== '') { + icons_repeater_values.push({ + 'icon': icon, + 'link': link, + 'id': id + }); + } + }); + + th.find('.social-repeater-socials-repeater-colector').val(JSON.stringify(icons_repeater_values)); + chromax_customizer_repeater_refresh_general_control_values(); +} + + +function chromax_customizer_repeater_refresh_general_control_values() { + 'use strict'; + jQuery('.customizer-repeater-general-control-repeater').each(function () { + var values = []; + var th = jQuery(this); + th.find('.customizer-repeater-general-control-repeater-container').each(function () { + + var icon_value = jQuery(this).find('.icp').val(); + var text = jQuery(this).find('.customizer-repeater-text-control').val(); + var link = jQuery(this).find('.customizer-repeater-link-control').val(); + var text2 = jQuery(this).find('.customizer-repeater-text2-control').val(); + var link2 = jQuery(this).find('.customizer-repeater-link2-control').val(); + var link3 = jQuery(this).find('.customizer-repeater-link3-control').val(); + var color = jQuery(this).find('input.customizer-repeater-color-control').val(); + var color2 = jQuery(this).find('input.customizer-repeater-color2-control').val(); + var image_url = jQuery(this).find('.custom-media-url').val(); + var image_url2 = jQuery(this).find('.custom-media-url2').val(); + var choice = jQuery(this).find('.customizer-repeater-image-choice').val(); + var title = jQuery(this).find('.customizer-repeater-title-control').val(); + var subtitle = jQuery(this).find('.customizer-repeater-subtitle-control').val(); + var subtitle2 = jQuery(this).find('.customizer-repeater-subtitle2-control').val(); + var subtitle3 = jQuery(this).find('.customizer-repeater-subtitle3-control').val(); + var subtitle4 = jQuery(this).find('.customizer-repeater-subtitle4-control').val(); + var subtitle5 = jQuery(this).find('.customizer-repeater-subtitle5-control').val(); + var video_url = jQuery(this).find('.customizer-repeater-video-url-control').val(); + var button_second = jQuery(this).find('.customizer-repeater-button2-control').val(); + var slide_align = jQuery(this).find('.customizer-repeater-slide-align').val(); + var bg_type = jQuery(this).find('.customizer-repeater-bg-type').val(); + var open_new_tab = jQuery(this).find('.customizer-repeater-checkbox').attr("checked") ? 'yes' : 'no'; + var id = jQuery(this).find('.social-repeater-box-id').val(); + if (!id) { + id = 'social-repeater-' + chromax_customizer_repeater_uniqid(); + jQuery(this).find('.social-repeater-box-id').val(id); + } + var social_repeater = jQuery(this).find('.social-repeater-socials-repeater-colector').val(); + var shortcode = jQuery(this).find('.customizer-repeater-shortcode-control').val(); + + if (text !== '' || image_url !== '' || image_url2 !== '' || title !== '' || subtitle !== '' || icon_value !== '' || link !== '' || choice !== '' || social_repeater !== '' || shortcode !== '' || slide_align !== '' || bg_type !== '' || color !== '') { + values.push({ + 'icon_value': (choice === 'customizer_repeater_none' ? '' : icon_value), + 'color': color, + 'color2': color2, + 'text': chromaxescapeHtml(text), + 'link': link, + 'text2': chromaxescapeHtml(text2), + 'button_second': chromaxescapeHtml(button_second), + 'link2': link2, + 'link3': link3, + 'image_url': (choice === 'customizer_repeater_none' ? '' : image_url), + 'choice': choice, + 'image_url2': image_url2, + 'title': chromaxescapeHtml(title), + 'subtitle': chromaxescapeHtml(subtitle), + 'subtitle2': chromaxescapeHtml(subtitle2), + 'subtitle3': chromaxescapeHtml(subtitle3), + 'subtitle4': chromaxescapeHtml(subtitle4), + 'subtitle5': chromaxescapeHtml(subtitle5), + 'video_url': chromaxescapeHtml(video_url), + 'slide_align': chromaxescapeHtml(slide_align), + 'bg_type': chromaxescapeHtml(bg_type), + 'open_new_tab' : open_new_tab, + 'social_repeater': chromaxescapeHtml(social_repeater), + 'id': id, + 'shortcode': chromaxescapeHtml(shortcode) + }); + } + + }); + th.find('.customizer-repeater-colector').val(JSON.stringify(values)); + th.find('.customizer-repeater-colector').trigger('change'); + }); +} + + +jQuery(document).ready(function () { + 'use strict'; + var chromax_theme_controls = jQuery('#customize-theme-controls'); + chromax_theme_controls.on('click', '.customizer-repeater-customize-control-title', function () { + jQuery(this).next().slideToggle('medium', function () { + if (jQuery(this).is(':visible')){ + jQuery(this).prev().addClass('repeater-expanded'); + jQuery(this).css('display', 'block'); + } else { + jQuery(this).prev().removeClass('repeater-expanded'); + } + }); + }); + + chromax_theme_controls.on('change', '.icp',function(){ + chromax_customizer_repeater_refresh_general_control_values(); + return false; + }); + + chromax_theme_controls.on('change','.customizer-repeater-slide-align', function(){ + chromax_customizer_repeater_refresh_general_control_values(); + return false; + + }); + + chromax_theme_controls.on('change','.customizer-repeater-bg-type', function(){ + chromax_customizer_repeater_refresh_general_control_values(); + return false; + + }); + + chromax_theme_controls.on('change','.customizer-repeater-image2-control', function(){ + chromax_customizer_repeater_refresh_general_control_values(); + return false; + + }); + + chromax_theme_controls.on('change', '.customizer-repeater-image-choice', function () { + if (jQuery(this).val() === 'customizer_repeater_image') { + jQuery(this).parent().parent().find('.social-repeater-general-control-icon').hide(); + jQuery(this).parent().parent().find('.customizer-repeater-image-control').show(); + jQuery(this).parent().parent().find('.customizer-repeater-color-control').prev().prev().hide(); + jQuery(this).parent().parent().find('.customizer-repeater-color-control').hide(); + + } + if (jQuery(this).val() === 'customizer_repeater_icon') { + jQuery(this).parent().parent().find('.social-repeater-general-control-icon').show(); + jQuery(this).parent().parent().find('.customizer-repeater-image-control').hide(); + jQuery(this).parent().parent().find('.customizer-repeater-color-control').prev().prev().show(); + jQuery(this).parent().parent().find('.customizer-repeater-color-control').show(); + } + if (jQuery(this).val() === 'customizer_repeater_none') { + jQuery(this).parent().parent().find('.social-repeater-general-control-icon').hide(); + jQuery(this).parent().parent().find('.customizer-repeater-image-control').hide(); + jQuery(this).parent().parent().find('.customizer-repeater-color-control').prev().prev().hide(); + jQuery(this).parent().parent().find('.customizer-repeater-color-control').hide(); + } + + chromax_customizer_repeater_refresh_general_control_values(); + return false; + }); + chromax_media_upload('.customizer-repeater-custom-media-button'); + jQuery('.custom-media-url').on('change', function () { + chromax_customizer_repeater_refresh_general_control_values(); + return false; + }); + + var color_options = { + change: function(event, ui){ + chromax_customizer_repeater_refresh_general_control_values(); + } + }; + + /** + * This adds a new box to repeater + * + */ + chromax_theme_controls.on('click', '.customizer-repeater-new-field', function () { + var th = jQuery(this).parent(); + var id = 'customizer-repeater-' + chromax_customizer_repeater_uniqid(); + var parentid = jQuery(this).parent().attr("id"); + + if(parentid == 'customize-control-chromax_hdr_social') + { + var totalItems = jQuery("#customize-control-chromax_hdr_social .customizer-repeater-general-control-repeater-container").length + if(totalItems >= 4){ + jQuery( "#customize-control-chromax_social_option_upsale .desert-companion-upgrade-message" ).show(); + return false; + } + } + + if(parentid == 'customize-control-chromax_slider_option') + { + var totalItems = jQuery("#customize-control-chromax_slider_option .customizer-repeater-general-control-repeater-container").length + if(totalItems >= 3){ + jQuery( "#customize-control-chromax_slider_option_upsale .desert-companion-upgrade-message" ).show(); + return false; + } + } + + if(parentid == 'customize-control-chromax_information_option') + { + var totalItems = jQuery("#customize-control-chromax_information_option .customizer-repeater-general-control-repeater-container").length + if(totalItems >= 4){ + jQuery( "#customize-control-chromax_information_option_upsale .desert-companion-upgrade-message" ).show(); + return false; + } + } + + if(parentid == 'customize-control-chromax_service_option') + { + var totalItems = jQuery("#customize-control-chromax_service_option .customizer-repeater-general-control-repeater-container").length + if(totalItems >= 5){ + jQuery( "#customize-control-chromax_service_option_upsale .desert-companion-upgrade-message" ).show(); + return false; + } + } + + if(parentid == 'customize-control-chromax_why_choose_right_option') + { + var totalItems = jQuery("#customize-control-chromax_why_choose_right_option .customizer-repeater-general-control-repeater-container").length + if(totalItems >= 4){ + jQuery( "#customize-control-chromax_why_choose_right_option_upsale .desert-companion-upgrade-message" ).show(); + return false; + } + } + + + if (typeof th !== 'undefined') { + /* Clone the first box*/ + var field = th.find('.customizer-repeater-general-control-repeater-container:first').clone( true, true ); + + if (typeof field !== 'undefined') { + /*Set the default value for choice between image and icon to icon*/ + field.find('.customizer-repeater-image-choice').val('customizer_repeater_icon'); + + /*Show icon selector*/ + field.find('.social-repeater-general-control-icon').show(); + + /*Hide image selector*/ + if (field.find('.social-repeater-general-control-icon').length > 0) { + field.find('.customizer-repeater-image-control').hide(); + } + + /*Show delete box button because it's not the first box*/ + field.find('.social-repeater-general-control-remove-field').show(); + + /* Empty control for icon */ + field.find('.input-group-addon').find('.fa').attr('class', 'fa'); + + + /*Remove all repeater fields except first one*/ + + field.find('.customizer-repeater-social-repeater').find('.customizer-repeater-social-repeater-container').not(':first').remove(); + field.find('.customizer-repeater-social-repeater-link').val(''); + field.find('.social-repeater-socials-repeater-colector').val(''); + + /*Remove value from icon field*/ + field.find('.icp').val(''); + + /*Remove value from text field*/ + field.find('.customizer-repeater-text-control').val(''); + + /*Remove value from link field*/ + field.find('.customizer-repeater-link-control').val(''); + + /*Remove value from text field*/ + field.find('.customizer-repeater-text2-control').val(''); + + /*Remove value from button field*/ + field.find('.customizer-repeater-button2-control').val(''); + + /*Remove value from link field*/ + field.find('.customizer-repeater-link2-control').val(''); + + /*Remove value from link field*/ + field.find('.customizer-repeater-link3-control').val(''); + + /*Set the default value in slide align*/ + field.find('.customizer-repeater-slide-align').val('left'); + + /*Set the default value in slide align*/ + field.find('.customizer-repeater-bg-type').val('left'); + + /*Set the default value in checkbox*/ + field.find('.customizer-repeater-checkbox').val(''); + + /*Set box id*/ + field.find('.social-repeater-box-id').val(id); + + /*Remove value from media field*/ + field.find('.custom-media-url').val(''); + + /*Remove value from title field*/ + field.find('.customizer-repeater-title-control').val(''); + + + /*Remove value from color field*/ + field.find('div.customizer-repeater-color-control .wp-picker-container').replaceWith(''); + field.find('input.customizer-repeater-color-control').wpColorPicker(color_options); + + + field.find('div.customizer-repeater-color2-control .wp-picker-container').replaceWith(''); + field.find('input.customizer-repeater-color2-control').wpColorPicker(color_options); + + // field.find('.customize-control-notifications-container').remove(); + + + /*Remove value from subtitle field*/ + field.find('.customizer-repeater-subtitle-control').val(''); + + /*Remove value from subtitle field*/ + field.find('.customizer-repeater-subtitle2-control').val(''); + + /*Remove value from subtitle field*/ + field.find('.customizer-repeater-subtitle3-control').val(''); + + /*Remove value from subtitle field*/ + field.find('.customizer-repeater-subtitle4-control').val(''); + + /*Remove value from subtitle field*/ + field.find('.customizer-repeater-subtitle5-control').val(''); + + /*Remove value from subtitle field*/ + field.find('.customizer-repeater-video-url-control').val(''); + + /*Remove value from shortcode field*/ + field.find('.customizer-repeater-shortcode-control').val(''); + + /*Append new box*/ + th.find('.customizer-repeater-general-control-repeater-container:first').parent().append(field); + + /*Refresh values*/ + chromax_customizer_repeater_refresh_general_control_values(); + } + + } + return false; + }); + + + chromax_theme_controls.on('click', '.social-repeater-general-control-remove-field', function () { + var split_delete_button=jQuery(this).text(); + var split_delete_button_split=split_delete_button.substr(8, 12); + if (typeof jQuery(this).parent() !== 'undefined') { + jQuery(this).parent().hide(500, function(){ + jQuery(this).parent().remove(); + chromax_customizer_repeater_refresh_general_control_values(); + + var chromax_hdr_social = jQuery("#customize-control-chromax_hdr_social .customizer-repeater-general-control-repeater-container").length + if(chromax_hdr_social < 4){ + jQuery( "#customize-control-chromax_social_option_upsale .desert-companion-upgrade-message" ).hide(); + } + + var chromax_slider_option = jQuery("#customize-control-chromax_slider_option .customizer-repeater-general-control-repeater-container").length + if(chromax_slider_option < 3){ + jQuery( "#customize-control-chromax_slider_option_upsale .desert-companion-upgrade-message" ).hide(); + } + + var chromax_information_option = jQuery("#customize-control-chromax_information_option .customizer-repeater-general-control-repeater-container").length + if(chromax_information_option < 4){ + jQuery( "#customize-control-chromax_information_option_upsale .desert-companion-upgrade-message" ).hide(); + } + + var chromax_service_option = jQuery("#customize-control-chromax_service_option .customizer-repeater-general-control-repeater-container").length + if(chromax_service_option < 5){ + jQuery( "#customize-control-chromax_service_option_upsale .desert-companion-upgrade-message" ).hide(); + } + + var chromax_why_choose_right_option = jQuery("#customize-control-chromax_why_choose_right_option .customizer-repeater-general-control-repeater-container").length + if(chromax_why_choose_right_option < 4){ + jQuery( "#customize-control-chromax_why_choose_right_option_upsale .desert-companion-upgrade-message" ).hide(); + } + + }); + } + return false; + }); + + + chromax_theme_controls.on('keyup', '.customizer-repeater-title-control', function () { + chromax_customizer_repeater_refresh_general_control_values(); + }); + + jQuery('input.customizer-repeater-color-control').wpColorPicker(color_options); + jQuery('input.customizer-repeater-color2-control').wpColorPicker(color_options); + + chromax_theme_controls.on('keyup', '.customizer-repeater-subtitle-control', function () { + chromax_customizer_repeater_refresh_general_control_values(); + }); + + chromax_theme_controls.on('keyup', '.customizer-repeater-subtitle2-control', function () { + chromax_customizer_repeater_refresh_general_control_values(); + }); + + chromax_theme_controls.on('keyup', '.customizer-repeater-subtitle3-control', function () { + chromax_customizer_repeater_refresh_general_control_values(); + }); + + chromax_theme_controls.on('keyup', '.customizer-repeater-subtitle4-control', function () { + chromax_customizer_repeater_refresh_general_control_values(); + }); + + chromax_theme_controls.on('keyup', '.customizer-repeater-subtitle5-control', function () { + chromax_customizer_repeater_refresh_general_control_values(); + }); + + chromax_theme_controls.on('keyup', '.customizer-repeater-video-url-control', function () { + chromax_customizer_repeater_refresh_general_control_values(); + }); + + chromax_theme_controls.on('keyup', '.customizer-repeater-shortcode-control', function () { + chromax_customizer_repeater_refresh_general_control_values(); + }); + + chromax_theme_controls.on('keyup', '.customizer-repeater-text-control', function () { + chromax_customizer_repeater_refresh_general_control_values(); + }); + + chromax_theme_controls.on('keyup', '.customizer-repeater-link-control', function () { + chromax_customizer_repeater_refresh_general_control_values(); + }); + + chromax_theme_controls.on('keyup', '.customizer-repeater-text2-control', function () { + chromax_customizer_repeater_refresh_general_control_values(); + }); + + chromax_theme_controls.on('keyup', '.customizer-repeater-button2-control', function () { + chromax_customizer_repeater_refresh_general_control_values(); + }); + + chromax_theme_controls.on('keyup', '.customizer-repeater-link2-control', function () { + chromax_customizer_repeater_refresh_general_control_values(); + }); + + chromax_theme_controls.on('keyup', '.customizer-repeater-link3-control', function () { + chromax_customizer_repeater_refresh_general_control_values(); + }); + + chromax_theme_controls.on('change','.customizer-repeater-checkbox', function(){ + + chromax_customizer_repeater_refresh_general_control_values(); + }); + + /*Drag and drop to change icons order*/ + + jQuery('.customizer-repeater-general-control-droppable').sortable({ + axis: 'y', + update: function () { + chromax_customizer_repeater_refresh_general_control_values(); + } + }); + + + /*----------------- Socials Repeater ---------------------*/ + chromax_theme_controls.on('click', '.social-repeater-add-social-item', function (event) { + event.preventDefault(); + var th = jQuery(this).parent(); + var id = 'customizer-repeater-social-repeater-' + chromax_customizer_repeater_uniqid(); + if (typeof th !== 'undefined') { + var field = th.find('.customizer-repeater-social-repeater-container:first').clone( true, true ); + if (typeof field !== 'undefined') { + field.find( '.icp' ).val(''); + field.find( '.input-group-addon' ).find('.fa').attr('class','fa'); + field.find('.social-repeater-remove-social-item').show(); + field.find('.customizer-repeater-social-repeater-link').val(''); + field.find('.customizer-repeater-social-repeater-id').val(id); + th.find('.customizer-repeater-social-repeater-container:first').parent().append(field); + } + } + return false; + }); + + chromax_theme_controls.on('click', '.social-repeater-remove-social-item', function (event) { + event.preventDefault(); + var th = jQuery(this).parent(); + var repeater = jQuery(this).parent().parent(); + th.remove(); + chromax_customizer_repeater_refresh_social_icons(repeater); + return false; + }); + + chromax_theme_controls.on('keyup', '.customizer-repeater-social-repeater-link', function (event) { + event.preventDefault(); + var repeater = jQuery(this).parent().parent(); + chromax_customizer_repeater_refresh_social_icons(repeater); + return false; + }); + + chromax_theme_controls.on('change', '.customizer-repeater-social-repeater-container .icp', function (event) { + event.preventDefault(); + var repeater = jQuery(this).parent().parent().parent(); + chromax_customizer_repeater_refresh_social_icons(repeater); + return false; + }); + +}); + +var chromaxentityMap = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + '\'': ''', + '/': '/' +}; + +function chromaxescapeHtml(string) { + 'use strict'; + //noinspection JSUnresolvedFunction + string = String(string).replace(new RegExp('\r?\n', 'g'), '
    '); + string = String(string).replace(/\\/g, '\'); + return String(string).replace(/[&<>"'\/]/g, function (s) { + return chromaxentityMap[s]; + }); + +} \ No newline at end of file diff --git a/wp-content/themes/chromax/inc/customizer/controls/code/customizer-repeater/js/fontawesome-iconpicker.js b/wp-content/themes/chromax/inc/customizer/controls/code/customizer-repeater/js/fontawesome-iconpicker.js new file mode 100644 index 0000000..066de07 --- /dev/null +++ b/wp-content/themes/chromax/inc/customizer/controls/code/customizer-repeater/js/fontawesome-iconpicker.js @@ -0,0 +1,67 @@ +(function ($) { + 'use strict'; + wp.chromaxcustomizerRepeater = { + + init: function () { + $('.iconpicker-items>i').on('click', function () { + var iconClass = $(this).attr('class'); + var classInput = $(this).parents('.iconpicker-popover').prev().find('.icp'); + classInput.val(iconClass); + classInput.attr('value', iconClass); + + var iconPreview = classInput.next('.input-group-addon'); + var iconElement = '<\/i>'); + iconPreview.empty(); + iconPreview.append(iconElement); + + var th = $(this).parent().parent().parent(); + classInput.trigger('change'); + chromax_customizer_repeater_refresh_social_icons(th); + return false; + }); + }, + search: function ($searchField) { + var itemsList = $searchField.parent().next().find('.iconpicker-items'); + var searchTerm = $searchField.val().toLowerCase(); + if (searchTerm.length > 0) { + itemsList.children().each(function () { + if ($(this).filter('[title*='.concat(searchTerm)).length > 0 || searchTerm.length < 1) { + $(this).show(); + } else { + $(this).hide(); + } + }); + } else { + itemsList.children().show(); + } + }, + iconPickerToggle: function ($input) { + var iconPicker = $input.parent().next(); + iconPicker.addClass('iconpicker-visible'); + } + }; + + $(document).ready(function () { + wp.chromaxcustomizerRepeater.init(); + + $('.iconpicker-search').on('keyup', function () { + wp.chromaxcustomizerRepeater.search($(this)); + }); + + $('.icp-auto').on('click', function () { + wp.chromaxcustomizerRepeater.iconPickerToggle($(this)); + }); + + $(document).mouseup( function (e) { + var container = $('.iconpicker-popover'); + + if (!container.is(e.target) + && container.has(e.target).length === 0) + { + container.removeClass('iconpicker-visible'); + } + }); + + }); + +})(jQuery); diff --git a/wp-content/themes/chromax/inc/customizer/controls/code/customizer-repeater/js/fontawesome-iconpicker.min.js b/wp-content/themes/chromax/inc/customizer/controls/code/customizer-repeater/js/fontawesome-iconpicker.min.js new file mode 100644 index 0000000..fd53f38 --- /dev/null +++ b/wp-content/themes/chromax/inc/customizer/controls/code/customizer-repeater/js/fontawesome-iconpicker.min.js @@ -0,0 +1 @@ +!function(e){"use strict";wp.chromaxcustomizerRepeater={init:function(){e(".iconpicker-items>i").on("click",function(){var i=e(this).attr("class").slice(3),t=e(this).parents(".iconpicker-popover").prev().find(".icp");t.val(i),t.attr("value",i);var n=t.next(".input-group-addon"),c='');n.empty(),n.append(c);var r=e(this).parent().parent().parent();return t.trigger("change"),chromax_customizer_repeater_refresh_social_icons(r),!1})},search:function(i){var t=i.parent().next().find(".iconpicker-items"),n=i.val().toLowerCase();n.length>0?t.children().each(function(){e(this).filter("[title*=".concat(n)).length>0||n.length<1?e(this).show():e(this).hide()}):t.children().show()},iconPickerToggle:function(e){e.parent().next().addClass("iconpicker-visible")}},e(document).ready(function(){wp.chromaxcustomizerRepeater.init(),e(".iconpicker-search").on("keyup",function(){wp.chromaxcustomizerRepeater.search(e(this))}),e(".icp-auto").on("click",function(){wp.chromaxcustomizerRepeater.iconPickerToggle(e(this))}),e(document).mouseup(function(i){var t=e(".iconpicker-popover");t.is(i.target)||0!==t.has(i.target).length||t.removeClass("iconpicker-visible")})})}(jQuery); \ No newline at end of file diff --git a/wp-content/themes/chromax/inc/customizer/controls/code/editor/class/class-chromax-page-editor.php b/wp-content/themes/chromax/inc/customizer/controls/code/editor/class/class-chromax-page-editor.php new file mode 100644 index 0000000..a471cf8 --- /dev/null +++ b/wp-content/themes/chromax/inc/customizer/controls/code/editor/class/class-chromax-page-editor.php @@ -0,0 +1,81 @@ +needsync = $args['needsync']; + } + } + + /** + * Enqueue scripts + * + * @since 1.1.0 + * @access public + * @updated Changed wp_enqueue_scripts order and dependencies. + */ + public function enqueue() { + wp_enqueue_style( 'chromax_text_editor_css', get_template_directory_uri() . '/inc/customizer/controls/code/editor/css/chromax-page-editor.css', array(),'chromax'); + wp_enqueue_script( + 'chromax_text_editor', get_template_directory_uri() . '/inc/customizer/controls/code/editor/js/chromax-text-editor.js', array( + 'jquery', + 'customize-preview', + ),'chromax', true + ); + if ( $this->needsync === true ) { + wp_enqueue_script( 'chromax_controls_script', get_template_directory_uri() . '/inc/customizer/controls/code/editor/js/chromax-update-controls.js', array( 'jquery', 'chromax_text_editor' ),'chromax', true ); + wp_localize_script( + 'chromax_controls_script', 'requestpost', array( + 'ajaxurl' => admin_url( 'admin-ajax.php' ), + 'thumbnail_control' => 'chromax_feature_thumbnail', // name of image control that needs sync + 'editor_control' => 'Chromax_Page_Editor', // name of control (theme_mod) that needs sync + 'thumbnail_label' => esc_html__( 'About background', 'chromax' ), // name of thumbnail control + ) + ); + } + } + + /** + * Render the content on the theme customizer page + */ + public function render_content() { + ?> + + + + $frontpage_id, + 'post_content' => wp_kses_post( $value ), + ); + + wp_update_post( $post ); + + } + } + + return $value; +} +add_filter( 'pre_set_theme_mod_chromax_page_editor', 'chromax_sync_content_from_control', 10,2 ); + + +/** + * Sync page thumbnail and content with customizer control + */ +function chromax_sync_control_from_page() { + + $need_update = get_option( 'chromax_sync_needed' ); + if ( $need_update === false ) { + return; + } + + $frontpage_id = get_option( 'page_on_front' ); + if ( empty( $frontpage_id ) ) { + return; + } + + $content = get_post_field( 'post_content', $frontpage_id ); + set_theme_mod( 'Chromax_Page_Editor', $content ); + + $chromax_frontpage_featured = ''; + if ( has_post_thumbnail( $frontpage_id ) ) { + $chromax_frontpage_featured = get_the_post_thumbnail_url( $frontpage_id ); + } + set_theme_mod( 'chromax_feature_thumbnail', $chromax_frontpage_featured ); + + update_option( 'chromax_sync_needed', false ); + +} +add_action( 'after_setup_theme', 'chromax_sync_control_from_page' ); + + +/** + * Set flag to sync customizer control from page. + * + * @param string $post_id Post id. + */ +function chromax_trigger_sync( $post_id ) { + if ( wp_is_post_revision( $post_id ) ) { + return; + } + + $frontpage_id = get_option( 'page_on_front' ); + if ( empty( $frontpage_id ) ) { + return; + } + + if ( intval( $post_id ) === intval( $frontpage_id ) ) { + update_option( 'chromax_sync_needed' , true ); + }; +} +add_action( 'save_post', 'chromax_trigger_sync', 10 ); + +/** + * Sync frontpage thumbnail with customizer control + * + * @param string $value New value. + * @param string $old_value Old value. + * + * @return mixed + */ +function chromax_sync_thumbnail_from_control( $value, $old_value ) { + + $frontpage_id = get_option( 'page_on_front' ); + if ( ! empty( $frontpage_id ) ) { + $thumbnail_id = attachment_url_to_postid( $value ); + update_post_meta( $frontpage_id, '_thumbnail_id', $thumbnail_id ); + } + + return $value; +} +add_filter( 'pre_set_theme_mod_chromax_feature_thumbnail', 'chromax_sync_thumbnail_from_control', 10, 2 ); + + + +/** + * Ajax call to sync page content and thumbnail when you switch to static frontpage + */ +function chromax_ajax_call() { + $pid = $_POST['pid']; + + $return_value = array(); + + $content = get_post_field( 'post_content', $pid ); + set_theme_mod( 'Chromax_Page_Editor', $content ); + + $chromax_frontpage_featured = ''; + if ( has_post_thumbnail( $pid ) ) { + $chromax_frontpage_featured = get_the_post_thumbnail_url( $pid ); + } + set_theme_mod( 'chromax_feature_thumbnail', $chromax_frontpage_featured ); + + $return_value['post_content'] = $content; + $return_value['post_thumbnail'] = $chromax_frontpage_featured; + echo json_encode( $return_value ); + + die(); +} +add_action( 'wp_ajax_chromax_ajax_call', 'chromax_ajax_call' ); + +/** + * chromax allow all HTML tags in TinyMce editor. + * + * @param array $init_array TinyMce settings. + * + * @return array + */ +function chromax_override_mce_options( $init_array ) { + $opts = '*[*]'; + $init_array['valid_elements'] = $opts; + $init_array['extended_valid_elements'] = $opts; + return $init_array; +} +add_filter( 'tiny_mce_before_init', 'chromax_override_mce_options' ); + + +/** + * Filters for text format + */ +add_filter( 'chromax_text', 'wptexturize' ); +add_filter( 'chromax_text', 'convert_smilies' ); +add_filter( 'chromax_text', 'convert_chars' ); +add_filter( 'chromax_text', 'wpautop' ); +add_filter( 'chromax_text', 'shortcode_unautop' ); +add_filter( 'chromax_text', 'do_shortcode' ); diff --git a/wp-content/themes/chromax/inc/customizer/controls/code/editor/js/chromax-text-editor.js b/wp-content/themes/chromax/inc/customizer/controls/code/editor/js/chromax-text-editor.js new file mode 100644 index 0000000..b537389 --- /dev/null +++ b/wp-content/themes/chromax/inc/customizer/controls/code/editor/js/chromax-text-editor.js @@ -0,0 +1,115 @@ +/* global tinyMCE */ +/* global wp */ + +/* exported WPEditorWidget */ +var WPEditorWidget = { + + /** + * @var string + */ + currentContentId: '', + + /** + * @var int + */ + wpFullOverlayOriginalZIndex: 0, + + /** + * @var bool + */ + isVisible: false, + + /** + * + */ + toggleEditor: function(contentId){ + if ( this.isVisible === true ) { + this.hideEditor(); + } else { + this.showEditor(contentId); + } + }, + + /** + * Show the editor + * @param string contentId + */ + showEditor: function(contentId) { + this.isVisible = true; + var overlay = jQuery('.wp-full-overlay'); + + jQuery('body.wp-customizer #wp-editor-widget-container').fadeIn(100).animate({'bottom':'0'}); + + this.currentContentId = contentId; + this.wpFullOverlayOriginalZIndex = parseInt( overlay.css('zIndex') ); + overlay.css({ zIndex: 49000 }); + + this.setEditorContent(contentId); + }, + + /** + * Hide editor + */ + hideEditor: function() { + this.isVisible = false; + jQuery('body.wp-customizer #wp-editor-widget-container').animate({'bottom':'-650px'}).fadeOut(); + jQuery('.wp-full-overlay').css({ zIndex: this.wpFullOverlayOriginalZIndex }); + }, + + /** + * Set editor content + */ + setEditorContent: function(contentId) { + var editor = tinyMCE.EditorManager.get('wpeditorwidget'); + var content = jQuery('#'+ contentId).val(); + + if (typeof editor === 'object' && editor !== null) { + editor.setContent(content); + } + jQuery('#wpeditorwidget').val(content); + }, + + /** + * Update widget and close the editor + */ + updateWidgetAndCloseEditor: function() { + + jQuery('#wpeditorwidget-tmce').trigger('click'); + var editor = tinyMCE.EditorManager.get('wpeditorwidget'); + var content = editor.getContent(); + + if (typeof editor === 'undefined' || editor === null || editor.isHidden()) { + content = jQuery('#wpeditorwidget').val(); + } + + var contentId = jQuery('#'+ this.currentContentId); + contentId.val(content); + + + if ( contentId.attr('class') === 'editorfield') { + var controlid = contentId.data('customize-setting-link'); + setTimeout(function(){ + wp.customize(controlid, function(obj) { + obj.set(editor.getContent()); + } ); + }, 1000); + } + + this.hideEditor(); + } + +}; + +jQuery( document ).ready(function() { + jQuery('.customize-section-back').on('click',function(){ + WPEditorWidget.hideEditor(); + }); + + var customize = wp.customize; + customize.previewer.bind( 'trigger-close-editor', function( data ) { + if( data === true ){ + WPEditorWidget.hideEditor(); + } + }); + +}); \ No newline at end of file diff --git a/wp-content/themes/chromax/inc/customizer/controls/code/editor/js/chromax-update-controls.js b/wp-content/themes/chromax/inc/customizer/controls/code/editor/js/chromax-update-controls.js new file mode 100644 index 0000000..14e679c --- /dev/null +++ b/wp-content/themes/chromax/inc/customizer/controls/code/editor/js/chromax-update-controls.js @@ -0,0 +1,53 @@ +/* global requestpost */ +/* global wp */ +/* global WPEditorWidget */ + +( function( $ ) { + 'use strict'; + wp.customize( 'page_on_front', function( value ) { + + value.bind( function( newval ) { + + $.ajax({ + url: requestpost.ajaxurl, + type: 'post', + data: { + action: 'chromax_ajax_call', + pid: newval + }, + success: function (result) { + + if(result !== '' && result !== 'undefined' ){ + + result = JSON.parse(result); + var content = result.post_content; + jQuery( '#Chromax_Page_Editor' ).val(content); + WPEditorWidget.setEditorContent('Chromax_Page_Editor'); + + if(result.post_thumbnail !== '' && result.post_thumbnail !== 'undefined'){ + wp.customize.instance(requestpost.thumbnail_control).set(result.post_thumbnail); + var html = '' + + '
    ' + + '
    ' + + ' ' + + '
    ' + + '
    ' + + '' + + ' ' + + '
    ' + + '
    ' + + '
    '; + wp.customize.control(requestpost.thumbnail_control).container['0'].innerHTML = html; + } + + wp.customize.instance(requestpost.editor_control).previewer.refresh(); + } + } + }); + + + } ); + } ); +} )( jQuery ); diff --git a/wp-content/themes/chromax/inc/customizer/controls/code/upgrade/class-customize.php b/wp-content/themes/chromax/inc/customizer/controls/code/upgrade/class-customize.php new file mode 100644 index 0000000..d1c71a2 --- /dev/null +++ b/wp-content/themes/chromax/inc/customizer/controls/code/upgrade/class-customize.php @@ -0,0 +1,82 @@ +setup_actions(); + } + + return $instance; + } + + /** + * Constructor method. + * + * @since 1.0.0 + * @access private + * @return void + */ + private function __construct() {} + + /** + * Sets up initial actions. + * + * @since 1.0.0 + * @access private + * @return void + */ + private function setup_actions() { + + // Register panels, sections, settings, controls, and partials. + add_action( 'customize_register', array( $this, 'sections' ) ); + } + + /** + * Sets up the customizer sections. + * + * @since 1.0.0 + * @access public + * @param object $manager + * @return void + */ + public function sections( $manager ) { + + // Load custom sections. + require_once CHROMAX_THEME_INC_DIR . '/customizer/controls/code/upgrade/section-pro.php'; + + // Register custom section types. + $manager->register_section_type( 'Chromax_Customize_Section_Pro' ); + + // Register sections. + $manager->add_section( + new Chromax_Customize_Section_Pro( + $manager, + 'chromax', + array( + 'pro_text' => esc_html__( 'Upgrade to Chromax Pro','chromax' ), + 'pro_url' => 'https://desertthemes.com/themes/chromax-pro/', + 'priority' => 0 + ) + ) + ); + } +} +// Doing this customizer thang! +Chromax_Customize::get_instance(); \ No newline at end of file diff --git a/wp-content/themes/chromax/inc/customizer/controls/code/upgrade/section-pro.php b/wp-content/themes/chromax/inc/customizer/controls/code/upgrade/section-pro.php new file mode 100644 index 0000000..cc51405 --- /dev/null +++ b/wp-content/themes/chromax/inc/customizer/controls/code/upgrade/section-pro.php @@ -0,0 +1,69 @@ +pro_text; + $json['pro_url'] = esc_url( $this->pro_url ); + + return $json; + } + + /** + * Outputs the Underscore.js template. + * + * @since 1.0.0 + * @access public + * @return void + */ + protected function render_template() { ?> +
  • +

    + {{ data.title }} + {{ data.pro_text }} +

    +
  • + 0;}; + var control = this, + changeAction; + var theme_controls = jQuery('#customize-theme-controls'); + + function syncRangeText( slider, input, from ){ + switch (from){ + case 'slider': + input.val( slider.val()); + break; + case 'input': + slider.val( input.val() ); + break; + } + } + + function updateValues( control ){ + var collector = control.find('.range-collector'); + var values = getSliderValues( control ); + var have_queries = Object.keys(values).length > 1; + if( have_queries ){ + collector.val(JSON.stringify(values)); + } else { + collector.val(values.desktop); + } + collector.trigger( 'change' ); + + } + + function getSliderValues( control ) { + var values = {}; + var desktopSelector = control.find('.range-slider__range[data-query="desktop"]'), + tabletSelector = control.find('.range-slider__range[data-query="tablet"]') , + mobileSelector = control.find('.range-slider__range[data-query="mobile"]'), + desktopValue, tabletValue, mobileValue; + + if( desktopSelector.exists() ){ + desktopValue = desktopSelector.val(); + if( desktopValue !== 'undefined' && desktopValue !== '' ){ + values.desktop = desktopValue; + } + } + + if( tabletSelector.exists() ){ + tabletValue = tabletSelector.val(); + if( tabletValue !== 'undefined' && tabletValue !== '' ){ + values.tablet = tabletValue; + } + } + + if( mobileSelector.exists() ){ + mobileValue = mobileSelector.val(); + if( mobileValue !== 'undefined' && mobileValue !== '' ){ + values.mobile = mobileValue; + } + } + + return values; + } + + function responsiveSwitcher(){ + // Responsive switchers + jQuery( '.customize-control .responsive-switchers button' ).on( 'click', function( event ) { + event.preventDefault(); + // Set up variables + var $devices = jQuery( '.responsive-switchers' ), + $device = jQuery( event.currentTarget ).data( 'device' ), + $body = jQuery( '.wp-full-overlay' ), + $footer_devices = jQuery( '.wp-full-overlay-footer .devices' ); + + // Button class + $devices.find( 'button' ).removeClass( 'active' ); + $devices.find( 'button.preview-' + $device ).addClass( 'active' ); + + var control = jQuery('.range-slider.has-media-queries'); + control.find('.desktop-range').removeClass('active'); + control.find('.tablet-range').removeClass('active'); + control.find('.mobile-range').removeClass('active'); + control.find('.' + $device + '-range').addClass('active'); + + // Wrapper class + $body.removeClass( 'preview-desktop preview-tablet preview-mobile' ).addClass( 'preview-' + $device ); + + // Panel footer buttons + $footer_devices.find( 'button' ).removeClass( 'active' ).attr( 'aria-pressed', false ); + $footer_devices.find( 'button.preview-' + $device ).addClass( 'active' ).attr( 'aria-pressed', true ); + + } ); + + jQuery('#customize-footer-actions .devices button').on( 'click', function( event ) { + event.preventDefault(); + var device = jQuery(this).data('device'); + var queries = jQuery( '.responsive-switchers' ); + + queries.find( 'button' ).removeClass( 'active' ); + queries.find( 'button.preview-' + device ).addClass( 'active' ); + + var control = jQuery('.range-slider.has-media-queries'); + control.find('.desktop-range').removeClass('active'); + control.find('.tablet-range').removeClass('active'); + control.find('.mobile-range').removeClass('active'); + control.find('.' + device + '-range').addClass('active'); + }); + } + + + + theme_controls.unbind().on('click', '.preview-desktop.active', function () { + jQuery( this ).parent().parent().toggleClass( 'responsive-switchers-open' ); + }); + + theme_controls.on('input', '.range-slider__range', function () { + var slider = jQuery(this); + var input = jQuery(this).next(); + var control = jQuery(this).parent().parent(); + syncRangeText( slider, input, 'slider'); + updateValues( control ); + }); + + theme_controls.on('keyup', '.range-slider-value', function(){ + var control = jQuery(this).parent().parent(); + updateValues( control ); + }); + theme_controls.on('keydown', '.range-slider-value', function(){ + var slider = jQuery(this).prev(); + var input = jQuery(this); + syncRangeText( slider, input, 'input'); + }); + + + theme_controls.on('click', '.range-reset-slider', function (event) { + event.preventDefault(); + var input = jQuery(this).prev(); + var slider = input.prev(); + var control = jQuery(this).parent().parent(); + var defaultValue = slider.data('default'); + input.val( defaultValue ); + slider.val( defaultValue ); + updateValues( control ); + }); + + responsiveSwitcher(); + + if ( 'postMessage' === control.setting.transport ) { + changeAction = 'mousemove change'; + } else { + changeAction = 'change'; + } + + // Change the value + this.container.on( changeAction, '.range-collector', function() { + control.setting.set( jQuery( this ).val() ); + }); + } +}); + + +/* Upsale */ +( function( api ) { + + // Extends our custom "chromax" section. + api.sectionConstructor['chromax'] = api.Section.extend( { + + // No events for this type of section. + attachEvents: function () {}, + + // Always make the section active. + isContextuallyActive: function () { + return true; + } + } ); + +} )( wp.customize ); + +jQuery(document).ready(function($) { + jQuery("#sub-accordion-section-chromax_sidebar_options select:not(#_customize-input-chromax_default_pg_sidebar_option), #sub-accordion-section-chromax_typography_options select, #sub-accordion-section-chromax_headings_typography select").prop('disabled', true); +}); + + +jQuery(document).ready(function($) { + jQuery('.contact-icon-picker.iconPicker').fontIconPicker(); +}); \ No newline at end of file diff --git a/wp-content/themes/chromax/inc/customizer/controls/js/fonticonpicker/iconpicker.eot b/wp-content/themes/chromax/inc/customizer/controls/js/fonticonpicker/iconpicker.eot new file mode 100644 index 0000000..3b2c096 Binary files /dev/null and b/wp-content/themes/chromax/inc/customizer/controls/js/fonticonpicker/iconpicker.eot differ diff --git a/wp-content/themes/chromax/inc/customizer/controls/js/fonticonpicker/iconpicker.svg b/wp-content/themes/chromax/inc/customizer/controls/js/fonticonpicker/iconpicker.svg new file mode 100644 index 0000000..7096ca1 --- /dev/null +++ b/wp-content/themes/chromax/inc/customizer/controls/js/fonticonpicker/iconpicker.svg @@ -0,0 +1,19 @@ + + + +Copyright (C) 2014 by original authors @ fontello.com + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/wp-content/themes/chromax/inc/customizer/controls/js/fonticonpicker/iconpicker.ttf b/wp-content/themes/chromax/inc/customizer/controls/js/fonticonpicker/iconpicker.ttf new file mode 100644 index 0000000..da45a6d Binary files /dev/null and b/wp-content/themes/chromax/inc/customizer/controls/js/fonticonpicker/iconpicker.ttf differ diff --git a/wp-content/themes/chromax/inc/customizer/controls/js/fonticonpicker/iconpicker.woff b/wp-content/themes/chromax/inc/customizer/controls/js/fonticonpicker/iconpicker.woff new file mode 100644 index 0000000..8fdcf70 Binary files /dev/null and b/wp-content/themes/chromax/inc/customizer/controls/js/fonticonpicker/iconpicker.woff differ diff --git a/wp-content/themes/chromax/inc/customizer/controls/js/fonticonpicker/jquery.fonticonpicker.css b/wp-content/themes/chromax/inc/customizer/controls/js/fonticonpicker/jquery.fonticonpicker.css new file mode 100644 index 0000000..f3da5ec --- /dev/null +++ b/wp-content/themes/chromax/inc/customizer/controls/js/fonticonpicker/jquery.fonticonpicker.css @@ -0,0 +1,328 @@ +/* fontIconPicker main CSS file {@link https://github.com/micc83/fontIconPicker} */ + +.icons-selector * { + margin: 0; + padding: 0; + border: 0; + vertical-align: baseline; +} + +.icons-selector, +.icons-selector *, +.icons-selector :after, +.icons-selector :before, +.icons-selector:after, +.icons-selector:before { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box +} + +.icons-selector { + display: inline-block; + vertical-align: middle; + text-align: left +} + +.icons-selector .selector { + width: 100px; + height: 40px +} + +.icons-selector .selector-button { + width: 39px; + height: 100%; + display: block; + text-align: center; + cursor: pointer; + float: left +} + +.icons-selector .selector-button i { + line-height: 38px; + text-align: center +} + +.icons-selector .selected-icon { + display: block; + width: 60px; + height: 100%; + float: left; + text-align: center +} + +.icons-selector .selected-icon i { + line-height: 40px; + font-size: 18px; + cursor: default +} + +.icons-selector .selector-popup { + position: absolute; + z-index: 10000; + background-color: #fefefe; + padding: 5px; + height: auto; + width: 342px; + margin-top: -1px +} + +.icons-selector .selector-category select, +.icons-selector .selector-search input[type=text] { + border: 0; + line-height: 20px; + padding: 10px 2.5%; + width: 100%; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; + margin-bottom: 5px; + font-size: 12px; + display: block +} + +.icons-selector .selector-category select { + height: 40px +} + +.icons-selector .selector-category select option { + padding: 10px +} + +.icons-selector input::-webkit-input-placeholder { + text-transform: uppercase +} + +.icons-selector input:-moz-placeholder { + text-transform: uppercase +} + +.icons-selector input::-moz-placeholder { + text-transform: uppercase +} + +.icons-selector input:-ms-input-placeholder { + text-transform: uppercase +} + +.icons-selector .selector-search { + position: relative +} + +.icons-selector .selector-search i { + position: absolute; + right: 10px; + top: 7px +} + +.icons-selector .fip-icons-container { + width: 100%; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding: 5px +} + +.icons-selector .fip-icons-container .loading { + font-size: 24px; + margin: 0 auto; + padding: 20px 0; + text-align: center; + width: 100% +} + +.icons-selector .fip-box { + display: inline-block; + margin: 2px; + width: 60px; + line-height: 42px; + text-align: center; + cursor: pointer; + vertical-align: top; + height: 40px +} + +.icons-selector .selector-footer { + line-height: 12px; + padding: 5px 5px 0; + text-align: center +} + +.icons-selector .selector-footer, +.icons-selector .selector-footer i { + font-size: 14px +} + +.icons-selector .selector-arrows { + float: right +} + +.icons-selector .selector-pages { + font-size: 11px; + float: left +} + +.icons-selector .selector-arrows i { + cursor: pointer +} + +.icons-selector .selector-footer em { + font-style: italic +} + +.icons-selector .icons-picker-error i:before { + color: #eee +} + +@font-face { + font-family: iconpicker; + src: url(iconpicker.eot?90190138); + src: url(iconpicker.eot?90190138#iefix) format('embedded-opentype'), url(iconpicker.woff?90190138) format('woff'), url(iconpicker.ttf?90190138) format('truetype'), url(iconpicker.svg?90190138#iconpicker) format('svg'); + font-weight: 400; + font-style: normal +} + +.icons-selector [class*=" fip-icon-"]:before, +.icons-selector [class^=fip-icon-]:before { + font-family: iconpicker; + font-style: normal; + font-weight: 400; + speak: none; + display: inline-block; + text-decoration: inherit; + width: 1em; + margin-right: .2em; + text-align: center; + font-variant: normal; + text-transform: none; + line-height: 1em; + margin-left: .2em +} + +.icons-selector .fip-icon-search:before { + content: '\e812'; + cursor: default +} + +.icons-selector .fip-icon-cancel:before { + content: '\e814'; + cursor: pointer +} + +.icons-selector .fa-times-circle-o:before { + color: #fed0d0; + font-size: 18px; + line-height: 1.85; +} + +.icons-selector .fip-icon-block:before { + content: '\e84e'; + color: #fed0d0 +} + +.icons-selector .fip-icon-down-dir:before { + content: '\e800' +} + +.icons-selector .fip-icon-up-dir:before { + content: '\e813' +} + +.icons-selector .fip-icon-left-dir:before { + content: '\e801' +} + +.icons-selector .fip-icon-right-dir:before { + content: '\e802' +} + +.icons-selector .fip-icon-spin3:before { + content: '\e815' +} + +.icons-selector .fip-icon-spin3 { + -moz-animation: spin 2s infinite linear; + -o-animation: spin 2s infinite linear; + -webkit-animation: spin 2s infinite linear; + animation: spin 2s infinite linear; + display: inline-block +} + +@-moz-keyframes spin { + 0% { + -moz-transform: rotate(0deg); + -o-transform: rotate(0deg); + -webkit-transform: rotate(0deg); + transform: rotate(0deg) + } + 100% { + -moz-transform: rotate(359deg); + -o-transform: rotate(359deg); + -webkit-transform: rotate(359deg); + transform: rotate(359deg) + } +} + +@-webkit-keyframes spin { + 0% { + -moz-transform: rotate(0deg); + -o-transform: rotate(0deg); + -webkit-transform: rotate(0deg); + transform: rotate(0deg) + } + 100% { + -moz-transform: rotate(359deg); + -o-transform: rotate(359deg); + -webkit-transform: rotate(359deg); + transform: rotate(359deg) + } +} + +@-o-keyframes spin { + 0% { + -moz-transform: rotate(0deg); + -o-transform: rotate(0deg); + -webkit-transform: rotate(0deg); + transform: rotate(0deg) + } + 100% { + -moz-transform: rotate(359deg); + -o-transform: rotate(359deg); + -webkit-transform: rotate(359deg); + transform: rotate(359deg) + } +} + +@-ms-keyframes spin { + 0% { + -moz-transform: rotate(0deg); + -o-transform: rotate(0deg); + -webkit-transform: rotate(0deg); + transform: rotate(0deg) + } + 100% { + -moz-transform: rotate(359deg); + -o-transform: rotate(359deg); + -webkit-transform: rotate(359deg); + transform: rotate(359deg) + } +} + +@keyframes spin { + 0% { + -moz-transform: rotate(0deg); + -o-transform: rotate(0deg); + -webkit-transform: rotate(0deg); + transform: rotate(0deg) + } + 100% { + -moz-transform: rotate(359deg); + -o-transform: rotate(359deg); + -webkit-transform: rotate(359deg); + transform: rotate(359deg) + } +} + +.icons-selector .selector-popup { + width: 280px; +} \ No newline at end of file diff --git a/wp-content/themes/chromax/inc/customizer/controls/js/fonticonpicker/jquery.fonticonpicker.js b/wp-content/themes/chromax/inc/customizer/controls/js/fonticonpicker/jquery.fonticonpicker.js new file mode 100644 index 0000000..42bc6a3 --- /dev/null +++ b/wp-content/themes/chromax/inc/customizer/controls/js/fonticonpicker/jquery.fonticonpicker.js @@ -0,0 +1,415 @@ +/** + * jQuery fontIconPicker - v2.0.0 + * + * An icon picker built on top of font icons and jQuery + * + * http://codeb.it/fontIconPicker + * + * Made by Alessandro Benoit & Swashata + * Under MIT License + * + * {@link https://github.com/micc83/fontIconPicker} + */ +!(function(a) { + "use strict"; + + function c(c, d) { + (this.element = a(c)), + (this.settings = a.extend({}, b, d)), + this.settings.emptyIcon && this.settings.iconsPerPage--, + (this.iconPicker = a("
    ", { + class: "icons-selector", + style: "position: relative", + html: '
    ", + })), + (this.iconContainer = this.iconPicker.find(".fip-icons-container")), + (this.searchIcon = this.iconPicker.find(".selector-search i")), + (this.iconsSearched = []), + (this.isSearch = !1), + (this.totalPage = 1), + (this.currentPage = 1), + (this.currentIcon = !1), + (this.iconsCount = 0), + (this.open = !1), + (this.searchValues = []), + (this.availableCategoriesSearch = []), + (this.triggerEvent = null), + (this.backupSource = []), + (this.backupSearch = []), + (this.isCategorized = !1), + (this.selectCategory = this.iconPicker.find(".icon-category-select")), + (this.selectedCategory = !1), + (this.availableCategories = []), + (this.unCategorizedKey = null), + this.init(); + } + var b = { + theme: "fip-grey", + source: !1, + emptyIcon: !0, + emptyIconValue: "", + iconsPerPage: 20, + hasSearch: !0, + searchSource: !1, + useAttribute: !1, + attributeName: "data-icon", + convertToHex: !0, + allCategoryText: "From all categories", + unCategorizedText: "Uncategorized", + }; + (c.prototype = { + init: function() { + this.iconPicker.addClass(this.settings.theme), this.iconPicker.css({ + left: -9999 + }).appendTo("body"); + var b = this.iconPicker.outerHeight(), + c = this.iconPicker.outerWidth(); + if ( + (this.iconPicker.css({ + left: "" + }), + this.element.before(this.iconPicker), + this.element.css({ + visibility: "hidden", + top: 0, + position: "relative", + zIndex: "-1", + left: "-" + c + "px", + display: "inline-block", + height: b + "px", + width: c + "px", + padding: "0", + margin: "0 -" + c + "px 0 0", + border: "0 none", + verticalAlign: "top", + }), !this.element.is("select")) + ) { + var d = (function() { + for (var a = 3, b = document.createElement("div"), c = b.all || []; + (b.innerHTML = ""), c[0];); + return a > 4 ? a : !a; + })(), + e = document.createElement("div"); + this.triggerEvent = 9 !== d && "oninput" in e ? ["input", "keyup"] : ["keyup"]; + }!this.settings.source && this.element.is("select") ? + ((this.settings.source = []), + (this.settings.searchSource = []), + this.element.find("optgroup").length ? + ((this.isCategorized = !0), + this.element.find("optgroup").each( + a.proxy(function(b, c) { + var d = this.availableCategories.length, + e = a("").prependTo(this.selectCategory), this.selectCategory.show().val("all").trigger("change")); + }, + loadIcons: function() { + this.iconContainer.html(''), this.settings.source instanceof Array && this.renderIconContainer(); + }, + renderIconContainer: function() { + var b, + c = []; + if ( + ((c = this.isSearch ? this.iconsSearched : this.settings.source), + (this.iconsCount = c.length), + (this.totalPage = Math.ceil(this.iconsCount / this.settings.iconsPerPage)), + this.totalPage > 1 ? this.iconPicker.find(".selector-footer").show() : this.iconPicker.find(".selector-footer").hide(), + this.iconPicker.find(".selector-pages").html(this.currentPage + "/" + this.totalPage + " (" + this.iconsCount + ")"), + (b = (this.currentPage - 1) * this.settings.iconsPerPage), + this.settings.emptyIcon) + ) + this.iconContainer.html(''); + else { + if (c.length < 1) return this.iconContainer.html(''), void 0; + this.iconContainer.html(""); + } + c = c.slice(b, b + this.settings.iconsPerPage); + for (var e, d = 0; + (e = c[d++]);) { + var f = e; + a.grep( + this.settings.source, + a.proxy(function(a, b) { + return a === e ? ((f = this.searchValues[b]), !0) : !1; + }, this) + ), + a("", { + html: '", + class: "fip-box", + title: f, + }).appendTo(this.iconContainer); + } + this.settings.emptyIcon || (this.element.val() && -1 !== a.inArray(this.element.val(), this.settings.source)) ? + -1 === a.inArray(this.element.val(), this.settings.source) ? + this.setSelectedIcon() : + this.setSelectedIcon(this.element.val()) : + this.setSelectedIcon(c[0]); + }, + setHighlightedIcon: function() { + this.iconContainer.find(".current-icon").removeClass("current-icon"), + this.currentIcon && + this.iconContainer + .find('[data-fip-value="' + this.currentIcon + '"]') + .parent("span") + .addClass("current-icon"); + }, + setSelectedIcon: function(a) { + if ( + ("fa-times-circle" === a && (a = ""), + this.settings.useAttribute ? + a ? + this.iconPicker.find(".selected-icon").html("') : + this.iconPicker.find(".selected-icon").html('') : + this.iconPicker.find(".selected-icon").html(''), + this.element.val("" === a ? this.settings.emptyIconValue : a).trigger("change"), + null !== this.triggerEvent) + ) + for (var b in this.triggerEvent) this.element.trigger(this.triggerEvent[b]); + (this.currentIcon = a), this.setHighlightedIcon(); + }, + toggleIconSelector: function() { + (this.open = this.open ? 0 : 1), + this.iconPicker.find(".selector-popup").slideToggle(300), + this.iconPicker.find(".selector-button i").toggleClass("fip-icon-down-dir"), + this.iconPicker.find(".selector-button i").toggleClass("fip-icon-up-dir"), + this.open && this.iconPicker.find(".icons-search-input").focus().select(); + }, + resetSearch: function() { + this.iconPicker.find(".icons-search-input").val(""), + this.searchIcon.removeClass("fip-icon-cancel"), + this.searchIcon.addClass("fip-icon-search"), + this.iconPicker.find(".selector-arrow-left").hide(), + (this.currentPage = 1), + (this.isSearch = !1), + this.renderIconContainer(), + this.totalPage > 1 && this.iconPicker.find(".selector-arrow-right").show(); + }, + }), + (a.fn.fontIconPicker = function(b) { + return ( + this.each(function() { + a.data(this, "fontIconPicker") || a.data(this, "fontIconPicker", new c(this, b)); + }), + (this.setIcons = a.proxy(function(b, c) { + void 0 === b && (b = !1), + void 0 === c && (c = !1), + this.each(function() { + (a.data(this, "fontIconPicker").settings.source = b), + (a.data(this, "fontIconPicker").settings.searchSource = c), + a.data(this, "fontIconPicker").initSourceIndex(), + a.data(this, "fontIconPicker").resetSearch(), + a.data(this, "fontIconPicker").loadIcons(); + }); + }, this)), + (this.destroyPicker = a.proxy(function() { + this.each(function() { + a.data(this, "fontIconPicker") && + (a.data(this, "fontIconPicker").iconPicker.remove(), + a.data(this, "fontIconPicker").element.css({ + visibility: "", + top: "", + position: "", + zIndex: "", + left: "", + display: "", + height: "", + width: "", + padding: "", + margin: "", + border: "", + verticalAlign: "" + }), + a.removeData(this, "fontIconPicker")); + }); + }, this)), + (this.refreshPicker = a.proxy(function(d) { + d || (d = b), + this.destroyPicker(), + this.each(function() { + a.data(this, "fontIconPicker") || a.data(this, "fontIconPicker", new c(this, d)); + }); + }, this)), + this + ); + }); +})(jQuery); \ No newline at end of file diff --git a/wp-content/themes/chromax/inc/customizer/customizer-plugin-notice/chromax-customizer-notify-section.php b/wp-content/themes/chromax/inc/customizer/customizer-plugin-notice/chromax-customizer-notify-section.php new file mode 100644 index 0000000..0c29f68 --- /dev/null +++ b/wp-content/themes/chromax/inc/customizer/customizer-plugin-notice/chromax-customizer-notify-section.php @@ -0,0 +1,298 @@ + is_plugin_active( $slug . '/' . $slug . '.php' ), + 'needs' => $needs, + ); + } + + return array( + 'status' => false, + 'needs' => 'install', + ); + } + + + public function create_action_link( $state, $slug ) { + switch ( $state ) { + case 'install': + return wp_nonce_url( + add_query_arg( + array( + 'action' => 'install-plugin', + 'plugin' => $slug, + ), + network_admin_url( 'update.php' ) + ), + 'install-plugin_' . $slug + ); + break; + case 'deactivate': + return add_query_arg( + array( + 'action' => 'deactivate', + 'plugin' => rawurlencode( $slug . '/' . $slug . '.php' ), + 'plugin_status' => 'all', + 'paged' => '1', + '_wpnonce' => wp_create_nonce( 'deactivate-plugin_' . $slug . '/' . $slug . '.php' ), + ), network_admin_url( 'plugins.php' ) + ); + break; + case 'activate': + return add_query_arg( + array( + 'action' => 'activate', + 'plugin' => rawurlencode( $slug . '/' . $slug . '.php' ), + 'plugin_status' => 'all', + 'paged' => '1', + '_wpnonce' => wp_create_nonce( 'activate-plugin_' . $slug . '/' . $slug . '.php' ), + ), network_admin_url( 'plugins.php' ) + ); + break; + }// End switch(). + } + + + public function call_plugin_api( $slug ) { + include_once( ABSPATH . 'wp-admin/includes/plugin-install.php' ); + $call_api = get_transient( 'chromax_cust_notify_plugin_info_' . $slug ); + if ( false === $call_api ) { + $call_api = plugins_api( + 'plugin_information', array( + 'slug' => $slug, + 'fields' => array( + 'downloaded' => false, + 'rating' => false, + 'description' => false, + 'short_description' => true, + 'donate_link' => false, + 'tags' => false, + 'sections' => false, + 'homepage' => false, + 'added' => false, + 'last_updated' => false, + 'compatibility' => false, + 'tested' => false, + 'requires' => false, + 'downloadlink' => false, + 'icons' => false, + ), + ) + ); + set_transient( 'chromax_cust_notify_plugin_info_' . $slug, $call_api, 30 * MINUTE_IN_SECONDS ); + } + + return $call_api; + } + + + public function json() { + $json = parent::json(); + global $chromax_customizer_notify_recommended_actions; + global $chromax_customizer_notify_recommended_plugins; + + global $install_button_label; + global $activate_button_label; + global $chromax_deactivate_button_label; + + $formatted_array = array(); + $chromax_customizer_notify_show_recommended_actions = get_option( 'chromax_customizer_notify_show' ); + foreach ( $chromax_customizer_notify_recommended_actions as $key => $chromax_lite_customizer_notify_recommended_action ) { + if ( $chromax_customizer_notify_show_recommended_actions[ $chromax_lite_customizer_notify_recommended_action['id'] ] === false ) { + continue; + } + if ( $chromax_lite_customizer_notify_recommended_action['check'] ) { + continue; + } + + $chromax_lite_customizer_notify_recommended_action['index'] = $key + 1; + + if ( isset( $chromax_lite_customizer_notify_recommended_action['plugin_slug'] ) ) { + $active = $this->check_active( $chromax_customizer_notify_recommended_action['plugin_slug'] ); + $chromax_lite_customizer_notify_recommended_action['url'] = $this->create_action_link( $active['needs'], $chromax_lite_customizer_notify_recommended_action['plugin_slug'] ); + if ( $active['needs'] !== 'install' && $active['status'] ) { + $chromax_lite_customizer_notify_recommended_action['class'] = 'active'; + } else { + $chromax_lite_customizer_notify_recommended_action['class'] = ''; + } + + switch ( $active['needs'] ) { + case 'install': + $chromax_lite_customizer_notify_recommended_action['button_class'] = 'install-now button'; + $chromax_lite_customizer_notify_recommended_action['button_label'] = $install_button_label; + break; + case 'activate': + $chromax_lite_customizer_notify_recommended_action['button_class'] = 'activate-now button button-primary'; + $chromax_lite_customizer_notify_recommended_action['button_label'] = $activate_button_label; + break; + case 'deactivate': + $chromax_lite_customizer_notify_recommended_action['button_class'] = 'deactivate-now button'; + $chromax_lite_customizer_notify_recommended_action['button_label'] = $chromax_deactivate_button_label; + break; + } + } + $formatted_array[] = $chromax_lite_customizer_notify_recommended_action; + }// End foreach(). + + $customize_plugins = array(); + + $chromax_lite_customizer_notify_show_recommended_plugins = get_option( 'chromax_customizer_notify_show_recommended_plugins' ); + + foreach ( $chromax_customizer_notify_recommended_plugins as $slug => $plugin_opt ) { + + if ( ! $plugin_opt['recommended'] ) { + continue; + } + + if ( isset( $chromax_lite_customizer_notify_show_recommended_plugins[ $slug ] ) && $chromax_lite_customizer_notify_show_recommended_plugins[ $slug ] ) { + continue; + } + + $active = $this->check_active( $slug ); + + if ( ! empty( $active['needs'] ) && ( $active['needs'] == 'deactivate' ) ) { + continue; + } + + $ti_customizer_notify_recommended_plugin['url'] = $this->create_action_link( $active['needs'], $slug ); + if ( $active['needs'] !== 'install' && $active['status'] ) { + $ti_customizer_notify_recommended_plugin['class'] = 'active'; + } else { + $ti_customizer_notify_recommended_plugin['class'] = ''; + } + + switch ( $active['needs'] ) { + case 'install': + $ti_customizer_notify_recommended_plugin['button_class'] = 'install-now button'; + $ti_customizer_notify_recommended_plugin['button_label'] = $install_button_label; + break; + case 'activate': + $ti_customizer_notify_recommended_plugin['button_class'] = 'activate-now button button-primary'; + $ti_customizer_notify_recommended_plugin['button_label'] = $activate_button_label; + break; + case 'deactivate': + $ti_customizer_notify_recommended_plugin['button_class'] = 'deactivate-now button'; + $ti_customizer_notify_recommended_plugin['button_label'] = $chromax_deactivate_button_label; + break; + } + $info = $this->call_plugin_api( $slug ); + $ti_customizer_notify_recommended_plugin['id'] = $slug; + $ti_customizer_notify_recommended_plugin['plugin_slug'] = $slug; + + if ( ! empty( $plugin_opt['description'] ) ) { + $ti_customizer_notify_recommended_plugin['description'] = $plugin_opt['description']; + } else { + $ti_customizer_notify_recommended_plugin['description'] = $info->short_description; + } + + $ti_customizer_notify_recommended_plugin['title'] = $info->name; + + $customize_plugins[] = $ti_customizer_notify_recommended_plugin; + + }// End foreach(). + + $json['recommended_actions'] = $formatted_array; + $json['recommended_plugins'] = $customize_plugins; + $json['total_actions'] = count( $chromax_customizer_notify_recommended_actions ); + $json['plugin_text'] = $this->plugin_text; + $json['dismiss_button'] = $this->dismiss_button; + return $json; + + } + + protected function render_template() { + ?> + <# if( data.recommended_actions.length > 0 || data.recommended_plugins.length > 0 ){ #> +
  • + +

    + + <# if( data.recommended_actions.length > 0 ){ #> + {{ data.title }} + <# }else{ #> + <# if( data.recommended_plugins.length > 0 ){ #> + {{ data.plugin_text }} + <# }#> + <# } #> + + <# if( data.recommended_actions.length > 0 ){ #> + + {{ data.recommended_actions[0].index }} + {{ data.total_actions }} + + <# } #> +

    +
    + <# if( data.recommended_actions.length > 0 ){ #> + <# for (action in data.recommended_actions) { #> +
    + <# if( !data.recommended_actions[action].check ){ #> +
    +

    {{ data.recommended_actions[action].title }}

    + +
    {{{ data.recommended_actions[action].description }}}
    + <# if( data.recommended_actions[action].plugin_slug ){ #> + + <# } #> + <# if( data.recommended_actions[action].help ){ #> +
    {{{ data.recommended_actions[action].help }}}
    + <# } #> +
    + <# } #> +
    + <# } #> + <# } #> + + <# if( data.recommended_plugins.length > 0 ){ #> + <# for (action in data.recommended_plugins) { #> + + <# } #> + <# } #> +
    +
  • + <# } #> + config = $config; + self::$instance->setup_config(); + self::$instance->setup_actions(); + } + } + + } + + + public function setup_config() { + + global $chromax_customizer_notify_recommended_plugins; + global $chromax_customizer_notify_recommended_actions; + + global $install_button_label; + global $activate_button_label; + global $chromax_deactivate_button_label; + + $this->recommended_actions = isset( $this->config['recommended_actions'] ) ? $this->config['recommended_actions'] : array(); + $this->recommended_plugins = isset( $this->config['recommended_plugins'] ) ? $this->config['recommended_plugins'] : array(); + + $this->recommended_actions_title = isset( $this->config['recommended_actions_title'] ) ? $this->config['recommended_actions_title'] : ''; + $this->recommended_plugins_title = isset( $this->config['recommended_plugins_title'] ) ? $this->config['recommended_plugins_title'] : ''; + $this->dismiss_button = isset( $this->config['dismiss_button'] ) ? $this->config['dismiss_button'] : ''; + + $chromax_customizer_notify_recommended_plugins = array(); + $chromax_customizer_notify_recommended_actions = array(); + + if ( isset( $this->recommended_plugins ) ) { + $chromax_customizer_notify_recommended_plugins = $this->recommended_plugins; + } + + if ( isset( $this->recommended_actions ) ) { + $chromax_customizer_notify_recommended_actions = $this->recommended_actions; + } + + $install_button_label = isset( $this->config['install_button_label'] ) ? $this->config['install_button_label'] : ''; + $activate_button_label = isset( $this->config['activate_button_label'] ) ? $this->config['activate_button_label'] : ''; + $chromax_deactivate_button_label = isset( $this->config['chromax_deactivate_button_label'] ) ? $this->config['chromax_deactivate_button_label'] : ''; + + } + + + public function setup_actions() { + + // Register the section + add_action( 'customize_register', array( $this, 'chromax_plugin_notification_customize_register' ) ); + + // Enqueue scripts and styles + add_action( 'customize_controls_enqueue_scripts', array( $this, 'chromax_customizer_notify_scripts_for_customizer' ), 0 ); + + /* ajax callback for dismissable recommended actions */ + add_action( 'wp_ajax_quality_customizer_notify_dismiss_action', array( $this, 'chromax_customizer_notify_dismiss_recommended_action_callback' ) ); + + add_action( 'wp_ajax_ti_customizer_notify_dismiss_recommended_plugins', array( $this, 'chromax_customizer_notify_dismiss_recommended_plugins_callback' ) ); + + } + + + public function chromax_customizer_notify_scripts_for_customizer() { + + wp_enqueue_style( 'chromax-customizer-notify-css', get_template_directory_uri() . '/inc/customizer/customizer-plugin-notice/css/chromax-customizer-notify.css', array()); + + wp_enqueue_style( 'plugin-install' ); + wp_enqueue_script( 'plugin-install' ); + wp_add_inline_script( 'plugin-install', 'var pagenow = "customizer";' ); + + wp_enqueue_script( 'updates' ); + + wp_enqueue_script( 'chromax-customizer-notify-js', get_template_directory_uri() . '/inc/customizer/customizer-plugin-notice/js/chromax-customizer-notify.js', array( 'customize-controls' )); + wp_localize_script( + 'chromax-customizer-notify-js', 'chromaxCustomizercompanionObject', array( + 'ajaxurl' => admin_url( 'admin-ajax.php' ), + 'template_directory' => get_template_directory_uri(), + 'base_path' => admin_url(), + 'activating_string' => __( 'Activating', 'chromax' ), + 'nonce' => wp_create_nonce('ajax-nonce') + ) + ); + + } + + + public function chromax_plugin_notification_customize_register( $wp_customize ) { + + + require_once get_template_directory() . '/inc/customizer/customizer-plugin-notice/chromax-customizer-notify-section.php'; + + $wp_customize->register_section_type( 'Chromax_Customizer_Notify_Section' ); + + $wp_customize->add_section( + new chromax_Customizer_Notify_Section( + $wp_customize, + 'Chromax-customizer-notify-section', + array( + 'title' => $this->recommended_actions_title, + 'plugin_text' => $this->recommended_plugins_title, + 'dismiss_button' => $this->dismiss_button, + 'priority' => 0, + ) + ) + ); + + } + + + public function chromax_customizer_notify_dismiss_recommended_action_callback() { + + global $chromax_customizer_notify_recommended_actions; + + $action_id = ( isset( $_GET['id'] ) ) ? $_GET['id'] : 0; + + echo esc_html( $action_id ); /* this is needed and it's the id of the dismissable required action */ + + if ( ! empty( $action_id ) ) { + + if ( get_option( 'chromax_customizer_notify_show' ) ) { + + $chromax_customizer_notify_show_recommended_actions = get_option( 'chromax_customizer_notify_show' ); + switch ( $_GET['todo'] ) { + case 'add': + $chromax_customizer_notify_show_recommended_actions[ $action_id ] = true; + break; + case 'dismiss': + $chromax_customizer_notify_show_recommended_actions[ $action_id ] = false; + break; + } + update_option( 'chromax_customizer_notify_show', $chromax_customizer_notify_show_recommended_actions ); + + + } else { + $chromax_customizer_notify_show_recommended_actions = array(); + if ( ! empty( $chromax_customizer_notify_recommended_actions ) ) { + foreach ( $chromax_customizer_notify_recommended_actions as $chromax_lite_customizer_notify_recommended_action ) { + if ( $chromax_lite_customizer_notify_recommended_action['id'] == $action_id ) { + $chromax_customizer_notify_show_recommended_actions[ $chromax_lite_customizer_notify_recommended_action['id'] ] = false; + } else { + $chromax_customizer_notify_show_recommended_actions[ $chromax_lite_customizer_notify_recommended_action['id'] ] = true; + } + } + update_option( 'chromax_customizer_notify_show', $chromax_customizer_notify_show_recommended_actions ); + } + } + } + die(); + } + + + public function chromax_customizer_notify_dismiss_recommended_plugins_callback() { + + $action_id = ( isset( $_GET['id'] ) ) ? $_GET['id'] : 0; + + echo esc_html( $action_id ); /* this is needed and it's the id of the dismissable required action */ + + if ( ! empty( $action_id ) ) { + + $chromax_lite_customizer_notify_show_recommended_plugins = get_option( 'chromax_customizer_notify_show_recommended_plugins' ); + + switch ( $_GET['todo'] ) { + case 'add': + $chromax_lite_customizer_notify_show_recommended_plugins[ $action_id ] = false; + break; + case 'dismiss': + $chromax_lite_customizer_notify_show_recommended_plugins[ $action_id ] = true; + break; + } + update_option( 'chromax_customizer_notify_show_recommended_plugins', $chromax_lite_customizer_notify_show_recommended_plugins ); + } + die(); + } + +} \ No newline at end of file diff --git a/wp-content/themes/chromax/inc/customizer/customizer-plugin-notice/chromax-notify-plugin.php b/wp-content/themes/chromax/inc/customizer/customizer-plugin-notice/chromax-notify-plugin.php new file mode 100644 index 0000000..ed55482 --- /dev/null +++ b/wp-content/themes/chromax/inc/customizer/customizer-plugin-notice/chromax-notify-plugin.php @@ -0,0 +1,23 @@ + array( + 'desert-companion' => array( + 'recommended' => true, + 'description' => sprintf( + /* translators: %s: plugin name */ + esc_html__( 'If you want to show all the features and sections of the Theme. please install and activate %s plugin', 'chromax' ), 'Desert Companion' + ), + ), + ), + 'recommended_actions' => array(), + 'recommended_actions_title' => esc_html__( 'Recommended Actions', 'chromax' ), + 'recommended_plugins_title' => esc_html__( 'Recommended Plugin', 'chromax' ), + 'install_button_label' => esc_html__( 'Install and Activate', 'chromax' ), + 'activate_button_label' => esc_html__( 'Activate', 'chromax' ), + 'chromax_deactivate_button_label' => esc_html__( 'Deactivate', 'chromax' ), +); +Chromax_Customizer_Notify::init( apply_filters( 'chromax_customizer_notify_array', $chromax_config_customizer ) ); \ No newline at end of file diff --git a/wp-content/themes/chromax/inc/customizer/customizer-plugin-notice/css/chromax-customizer-notify.css b/wp-content/themes/chromax/inc/customizer/customizer-plugin-notice/css/chromax-customizer-notify.css new file mode 100644 index 0000000..ff006ad --- /dev/null +++ b/wp-content/themes/chromax/inc/customizer/customizer-plugin-notice/css/chromax-customizer-notify.css @@ -0,0 +1,139 @@ +.chromax-customizer-plugin-notify-actions-count { + display: inline-block; + z-index: 26; + margin: 1px 0 0 2px; + padding: 0 6px; + border-radius: 10px; + color: #fff; + background-color: #d54e21; + font-size: 9px; + font-weight: 600; + line-height: 17px; + vertical-align: top; +} + +div.chromax-theme-recomended-actions_container { + margin-bottom: 2em; + padding: 0 10px; +} + +.chromax-theme-recomended-actions_container p.succes { + margin: 1em 0; +} + +.chromax-epsilon-recommeded-actions p.title { + margin-bottom: 0; + color: #555d66; + font-size: 14px; + font-weight: 600; +} + +.chromax-epsilon-recommeded-actions div.description { + font-size: 12px; +} + +.chromax-epsilon-recommeded-actions .custom-action { + margin-top: 1em; + padding-top: 1em; + border-top: 1px solid #fafafa; +} + +.chromax-epsilon-recommeded-actions .custom-action p { + margin-top: 0; +} + +.chromax-theme-recomended-actions_container .chromax-recommeded-actions-container:not(:first-child) { + overflow: hidden; + height: 0; + opacity: 0; +} + +.chromax-theme-recomended-actions_container .chromax-recommeded-actions-container:first-child { + height: auto; + opacity: 1; +} + +.chromax-theme-recomended-actions_container .chromax-recommeded-actions-container { + -webkit-transition: opacity 2s; + /* Safari */ + transition: opacity 2s; +} + +.chromax-theme-recomended-actions_container .hide { + display: none; +} + +.chromax-customizer-plugin-notify-actions-count.complete { + background-color: #79ba49; +} + +.chromax-theme-recomended-actions_container #demo_content .button { + display: block; + margin-bottom: 1em; + text-align: center; +} + +.chromax-theme-recomended-actions_container .succes a { + display: inline-block; + width: 100%; + text-align: center; +} + +.chromax-theme-recomended-actions_container .succes a.social { + width: 49%; + margin-bottom: 1em; + padding-top: 4px; + line-height: 20px; +} + +.chromax-theme-recomended-actions_container .succes a.social span, +.chromax-theme-recomended-actions_container .succes span { + margin-right: 5px; +} + +.chromax-theme-recomended-actions_container .succes { + padding-top: 4px; + line-height: 20px; +} + +.chromax-customizer-notify-dismiss-button-recommended-plugin, +.chromax-customizer-notify-dismiss-recommended-action { + position: absolute; + top: 10px; + right: 10px; + border-radius: 50%; + color: #d54e21; + text-decoration: none; + cursor: pointer; +} + +.chromax-epsilon-recommeded-actions { + position: relative; +} + +.chromax-customizer-notify-dismiss-recommended-action, +.chromax-epsilon-recommeded-actions .chromax-customizer-notify-dismiss-button-recommended-plugin { + top: 0; + right: 0; +} + +.chromax-epsilon-recommeded-actions #temp_load { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + + -webkit-align-items: center; + align-items: center; + -webkit-box-align: center; + -ms-flex-align: center; +} + +.chromax-epsilon-recommeded-actions #temp_load img { + margin: 0 auto; +} diff --git a/wp-content/themes/chromax/inc/customizer/customizer-plugin-notice/js/chromax-customizer-notify.js b/wp-content/themes/chromax/inc/customizer/customizer-plugin-notice/js/chromax-customizer-notify.js new file mode 100644 index 0000000..84d2de9 --- /dev/null +++ b/wp-content/themes/chromax/inc/customizer/customizer-plugin-notice/js/chromax-customizer-notify.js @@ -0,0 +1,180 @@ +/** + * Customizer notification system + */ +(function (api) { + + api.sectionConstructor['chromax-customizer-notify-section'] = api.Section.extend( + { + + // No events for this type of section. + attachEvents: function () { + }, + + // Always make the section active. + isContextuallyActive: function () { + return true; + } + } + ); + +})( wp.customize ); + +jQuery( document ).ready( + function () { + + jQuery( '.chromax-customizer-notify-dismiss-recommended-action' ).click( + function () { + + var id = jQuery( this ).attr( 'id' ), + action = jQuery( this ).attr( 'data-action' ); + jQuery.ajax( + { + type: 'GET', + data: {action: 'chromax_customizer_notify_dismiss_action', id: id, todo: action, nonce: chromaxCustomizercompanionObject.nonce}, + dataType: 'html', + url: chromaxCustomizercompanionObject.ajaxurl, + beforeSend: function () { + jQuery( '#' + id ).parent().append( '
    ' ); + }, + success: function (data) { + var container = jQuery( '#' + data ).parent().parent(); + var index = container.next().data( 'index' ); + var recommended_sction = jQuery( '#accordion-section-ti_customizer_notify_recomended_actions' ); + var actions_count = recommended_sction.find( '.chromax-customizer-plugin-notify-actions-count' ); + var section_title = recommended_sction.find( '.section-title' ); + jQuery( '.chromax-customizer-plugin-notify-actions-count .current-index' ).text( index ); + container.slideToggle().remove(); + if (jQuery( '.chromax-theme-recomended-actions_container > .epsilon-recommended-actions' ).length === 0) { + + actions_count.remove(); + + if (jQuery( '.chromax-theme-recomended-actions_container > .epsilon-recommended-plugins' ).length === 0) { + jQuery( '.control-section-ti-customizer-notify-recomended-actions' ).remove(); + } else { + section_title.text( section_title.data( 'plugin_text' ) ); + } + + } + }, + error: function (jqXHR, textStatus, errorThrown) { + console.log( jqXHR + ' :: ' + textStatus + ' :: ' + errorThrown ); + } + } + ); + } + ); + + jQuery( '.chromax-customizer-notify-dismiss-button-recommended-plugin' ).click( + function () { + var id = jQuery( this ).attr( 'id' ), + action = jQuery( this ).attr( 'data-action' ); + jQuery.ajax( + { + type: 'GET', + data: {action: 'ti_customizer_notify_dismiss_recommended_plugins', id: id, todo: action, nonce: chromaxCustomizercompanionObject.nonce}, + dataType: 'html', + url: chromaxCustomizercompanionObject.ajaxurl, + beforeSend: function () { + jQuery( '#' + id ).parent().append( '
    ' ); + }, + success: function (data) { + var container = jQuery( '#' + data ).parent().parent(); + var index = container.next().data( 'index' ); + jQuery( '.chromax-customizer-plugin-notify-actions-count .current-index' ).text( index ); + container.slideToggle().remove(); + + if (jQuery( '.chromax-theme-recomended-actions_container > .epsilon-recommended-plugins' ).length === 0) { + jQuery( '.control-section-ti-customizer-notify-recomended-section' ).remove(); + } + }, + error: function (jqXHR, textStatus, errorThrown) { + console.log( jqXHR + ' :: ' + textStatus + ' :: ' + errorThrown ); + } + } + ); + } + ); + + // Remove activate button and replace with activation in progress button. + jQuery( document ).on( + 'DOMNodeInserted','.activate-now', function () { + var activateButton = jQuery( '.activate-now' ); + if (activateButton.length) { + var url = jQuery( activateButton ).attr( 'href' ); + if (typeof url !== 'undefined') { + // Request plugin activation. + jQuery.ajax( + { + beforeSend: function () { + jQuery( activateButton ).replaceWith( '' + chromaxCustomizercompanionObject.activating_string + '...' ); + }, + async: true, + type: 'GET', + url: url, + success: function () { + // Reload the page. + location.reload(); + } + } + ); + } + } + } + ); + } +); + + + +/** + * Remove activate button and replace with activation in progress button. + * + * @package chromax + */ + + +jQuery( document ).ready( + function ($) { + $( 'body' ).on( + 'click', ' .chromax-install-plugin ', function () { + var slug = $( this ).attr( 'data-slug' ); + + wp.updates.installPlugin( + { + slug: slug + } + ); + return false; + } + ); + + $( '.activate-now' ).on( + 'click', function (e) { + + var activateButton = $( this ); + e.preventDefault(); + if ($( activateButton ).length) { + var url = $( activateButton ).attr( 'href' ); + + if (typeof url !== 'undefined') { + // Request plugin activation. + $.ajax( + { + beforeSend: function () { + $( activateButton ).replaceWith( ''+"activating"+'...' ); + }, + async: true, + type: 'GET', + url: url, + success: function () { + // Reload the page. + location.reload(); + } + } + ); + } + } + } + ); + } +); diff --git a/wp-content/themes/chromax/inc/customizer/customizer-settings/chromax-footer-customize-setting.php b/wp-content/themes/chromax/inc/customizer/customizer-settings/chromax-footer-customize-setting.php new file mode 100644 index 0000000..fb4e487 --- /dev/null +++ b/wp-content/themes/chromax/inc/customizer/customizer-settings/chromax-footer-customize-setting.php @@ -0,0 +1,239 @@ +selective_refresh ) ? 'postMessage' : 'refresh'; + // Footer Section Panel // + $wp_customize->add_panel( + 'footer_options', + array( + 'priority' => 34, + 'capability' => 'edit_theme_options', + 'title' => __('Footer Options', 'chromax'), + ) + ); + + /*========================================= + Footer Widget + =========================================*/ + $wp_customize->add_section( + 'chromax_footer_widget', + array( + 'title' => __('Footer Widget','chromax'), + 'panel' => 'footer_options', + 'priority' => 3, + ) + ); + + // Heading + $wp_customize->add_setting( + 'chromax_footer_mid_head' + ,array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_text', + ) + ); + + $wp_customize->add_control( + 'chromax_footer_mid_head', + array( + 'type' => 'hidden', + 'label' => __('Footer Middle','chromax'), + 'section' => 'chromax_footer_widget', + 'priority' => 1, + ) + ); + + // Title // + $wp_customize->add_setting( + 'chromax_footer_mid_ttl', + array( + 'default' => __('LET’S GET In TOUCH','chromax'), + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_html', + 'transport' => $selective_refresh + ) + ); + + $wp_customize->add_control( + 'chromax_footer_mid_ttl', + array( + 'label' => __('Title','chromax'), + 'section' => 'chromax_footer_widget', + 'type' => 'text', + 'priority' => 1, + ) + ); + + // Button Link // + $wp_customize->add_setting( + 'chromax_footer_mid_link', + array( + 'default' => '#', + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_url', + ) + ); + + $wp_customize->add_control( + 'chromax_footer_mid_link', + array( + 'label' => __('Button Link','chromax'), + 'section' => 'chromax_footer_widget', + 'type' => 'text', + 'priority' => 1, + ) + ); + + // Open New Tab + $wp_customize->add_setting( + 'chromax_footer_mid_target' , + array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_checkbox', + ) + ); + + $wp_customize->add_control( + 'chromax_footer_mid_target', + array( + 'label' => esc_html__( 'Open in New Tab ?', 'chromax' ), + 'section' => 'chromax_footer_widget', + 'type' => 'checkbox', + 'priority' => 1, + ) + ); + + // Heading + $wp_customize->add_setting( + 'chromax_footer_widget_head' + ,array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_text', + ) + ); + + $wp_customize->add_control( + 'chromax_footer_widget_head', + array( + 'type' => 'hidden', + 'label' => __('Footer Widget','chromax'), + 'section' => 'chromax_footer_widget', + 'priority' => 1, + ) + ); + + + // column // + $wp_customize->add_setting( + 'chromax_footer_widget_column', + array( + 'default' => '4', + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_select', + 'priority' => 3, + ) + ); + + $wp_customize->add_control( + 'chromax_footer_widget_column', + array( + 'label' => __('Select Widget Column','chromax'), + 'section' => 'chromax_footer_widget', + 'type' => 'select', + 'choices' => + array( + '' => __( 'None', 'chromax' ), + '1' => __( '1 Column', 'chromax' ), + '2' => __( '2 Column', 'chromax' ), + '3' => __( '3 Column', 'chromax' ), + '4' => __( '4 Column', 'chromax' ) + ) + ) + ); + + + /*========================================= + Footer Copright + =========================================*/ + $wp_customize->add_section( + 'chromax_footer_copyright', + array( + 'title' => __('Footer Copright','chromax'), + 'panel' => 'footer_options', + 'priority' => 4, + ) + ); + + // Heading + $wp_customize->add_setting( + 'chromax_footer_copyright_first_head' + ,array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_text', + ) + ); + + $wp_customize->add_control( + 'chromax_footer_copyright_first_head', + array( + 'type' => 'hidden', + 'label' => __('Copyright','chromax'), + 'section' => 'chromax_footer_copyright', + 'priority' => 3, + ) + ); + + // footer third text // + $chromax_copyright = esc_html__('Copyright © [current_year] [site_title] | Powered by [theme_author]', 'chromax' ); + $wp_customize->add_setting( + 'chromax_footer_copyright_text', + array( + 'default' => $chromax_copyright, + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_html', + ) + ); + + $wp_customize->add_control( + 'chromax_footer_copyright_text', + array( + 'label' => __('Copyright','chromax'), + 'section' => 'chromax_footer_copyright', + 'type' => 'textarea', + 'priority' => 4, + ) + ); + + /*========================================= + Footer Background + =========================================*/ + $wp_customize->add_section( + 'footer_background_options', + array( + 'title' => __('Footer Background','chromax'), + 'panel' => 'footer_options', + 'priority' => 4, + ) + ); + + + // Footer Background Color + $wp_customize->add_setting( + 'chromax_footer_bg_color', + array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'sanitize_hex_color', + 'default' => '#222222' + )); + + $wp_customize->add_control( + new WP_Customize_Color_Control + ($wp_customize, + 'chromax_footer_bg_color', + array( + 'label' => __( 'Footer Background Color', 'chromax' ), + 'section' => 'footer_background_options', + ) + ) + ); +} +add_action( 'customize_register', 'chromax_footer_customize_settings' ); \ No newline at end of file diff --git a/wp-content/themes/chromax/inc/customizer/customizer-settings/chromax-header-customize-setting.php b/wp-content/themes/chromax/inc/customizer/customizer-settings/chromax-header-customize-setting.php new file mode 100644 index 0000000..452acd2 --- /dev/null +++ b/wp-content/themes/chromax/inc/customizer/customizer-settings/chromax-header-customize-setting.php @@ -0,0 +1,1015 @@ +selective_refresh ) ? 'postMessage' : 'refresh'; + /*========================================= + Header Settings Panel + =========================================*/ + $wp_customize->add_panel( + 'header_options', + array( + 'priority' => 2, + 'capability' => 'edit_theme_options', + 'title' => __('Header Options', 'chromax'), + ) + ); + + /*========================================= + Chromax Site Identity + =========================================*/ + $wp_customize->add_section( + 'title_tagline', + array( + 'priority' => 1, + 'title' => __('Site Identity','chromax'), + 'panel' => 'header_options', + ) + ); + + // Logo Width // + if ( class_exists( 'Chromax_Customizer_Range_Control' ) ) { + $wp_customize->add_setting( + 'hdr_logo_size', + array( + 'default' => '150', + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_range_value', + 'transport' => 'postMessage', + ) + ); + $wp_customize->add_control( + new Chromax_Customizer_Range_Control( $wp_customize, 'hdr_logo_size', + array( + 'label' => __( 'Logo Size', 'chromax' ), + 'section' => 'title_tagline', + 'media_query' => true, + 'input_attr' => array( + 'mobile' => array( + 'min' => 0, + 'max' => 500, + 'step' => 1, + 'default_value' => 150, + ), + 'tablet' => array( + 'min' => 0, + 'max' => 500, + 'step' => 1, + 'default_value' => 150, + ), + 'desktop' => array( + 'min' => 0, + 'max' => 500, + 'step' => 1, + 'default_value' => 150, + ), + ), + ) ) + ); + } + + + // Site Title Size // + if ( class_exists( 'Chromax_Customizer_Range_Control' ) ) { + $wp_customize->add_setting( + 'hdr_site_title_size', + array( + 'default' => '55', + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_range_value', + 'transport' => 'postMessage', + ) + ); + $wp_customize->add_control( + new Chromax_Customizer_Range_Control( $wp_customize, 'hdr_site_title_size', + array( + 'label' => __( 'Site Title Size', 'chromax' ), + 'section' => 'title_tagline', + 'media_query' => true, + 'input_attr' => array( + 'mobile' => array( + 'min' => 0, + 'max' => 100, + 'step' => 1, + 'default_value' => 55, + ), + 'tablet' => array( + 'min' => 0, + 'max' => 100, + 'step' => 1, + 'default_value' => 55, + ), + 'desktop' => array( + 'min' => 0, + 'max' => 100, + 'step' => 1, + 'default_value' => 55, + ), + ), + ) ) + ); + } + + // Site Tagline Size // + if ( class_exists( 'Chromax_Customizer_Range_Control' ) ) { + $wp_customize->add_setting( + 'hdr_site_desc_size', + array( + 'default' => '16', + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_range_value', + 'transport' => 'postMessage', + ) + ); + $wp_customize->add_control( + new Chromax_Customizer_Range_Control( $wp_customize, 'hdr_site_desc_size', + array( + 'label' => __( 'Site Tagline Size', 'chromax' ), + 'section' => 'title_tagline', + 'media_query' => true, + 'input_attr' => array( + 'mobile' => array( + 'min' => 0, + 'max' => 50, + 'step' => 1, + 'default_value' => 16, + ), + 'tablet' => array( + 'min' => 0, + 'max' => 50, + 'step' => 1, + 'default_value' => 16, + ), + 'desktop' => array( + 'min' => 0, + 'max' => 50, + 'step' => 1, + 'default_value' => 16, + ), + ), + ) ) + ); + } + + + // Hide / Show + $wp_customize->add_setting( + 'chromax_title_tagline_seo' , + array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_checkbox', + 'priority' => 2, + ) + ); + + $wp_customize->add_control( + 'chromax_title_tagline_seo', + array( + 'label' => esc_html__( 'Enable Hidden Title (h1 missing SEO issue)', 'chromax' ), + 'section' => 'title_tagline', + 'type' => 'checkbox' + ) + ); + + /*========================================= + Top Header + =========================================*/ + $wp_customize->add_section( + 'chromax_top_header', + array( + 'priority' => 2, + 'title' => __('Top Header','chromax'), + 'panel' => 'header_options', + ) + ); + + /*========================================= + Global Setting + =========================================*/ + $wp_customize->add_setting( + 'chromax_hdr_top' + ,array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_text', + 'priority' => 3, + ) + ); + + $wp_customize->add_control( + 'chromax_hdr_top', + array( + 'type' => 'hidden', + 'label' => __('Global Setting','chromax'), + 'section' => 'chromax_top_header', + ) + ); + + // Hide / Show + $wp_customize->add_setting( + 'chromax_hs_hdr' , + array( + 'default' => '1', + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_checkbox', + 'priority' => 2, + ) + ); + + $wp_customize->add_control( + 'chromax_hs_hdr', + array( + 'label' => esc_html__( 'Hide/Show ?', 'chromax' ), + 'section' => 'chromax_top_header', + 'type' => 'checkbox' + ) + ); + + /*========================================= + Email + =========================================*/ + $wp_customize->add_setting( + 'chromax_hdr_top_email' + ,array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_text', + 'priority' => 11, + ) + ); + + $wp_customize->add_control( + 'chromax_hdr_top_email', + array( + 'type' => 'hidden', + 'label' => __('Email','chromax'), + 'section' => 'chromax_top_header', + ) + ); + $wp_customize->add_setting( + 'chromax_hs_hdr_email' , + array( + 'default' => '1', + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_checkbox', + 'priority' => 12, + ) + ); + + $wp_customize->add_control( + 'chromax_hs_hdr_email', + array( + 'label' => esc_html__( 'Hide/Show ?', 'chromax' ), + 'section' => 'chromax_top_header', + 'type' => 'checkbox' + ) + ); + + // icon // + $wp_customize->add_setting( + 'chromax_hdr_email_icon', + array( + 'default' => 'far fa-envelope-open', + 'sanitize_callback' => 'sanitize_text_field', + 'capability' => 'edit_theme_options', + ) + ); + + $wp_customize->add_control(new Chromax_Icon_Picker_Control($wp_customize, + 'chromax_hdr_email_icon', + array( + 'label' => __('Icon','chromax'), + 'section' => 'chromax_top_header', + 'iconset' => 'fa', + + )) + ); + + // Title // + $wp_customize->add_setting( + 'chromax_hdr_email_title', + array( + 'default' => __('info@example.com','chromax'), + 'sanitize_callback' => 'chromax_sanitize_html', + 'capability' => 'edit_theme_options', + 'transport' => $selective_refresh, + 'priority' => 13, + ) + ); + + $wp_customize->add_control( + 'chromax_hdr_email_title', + array( + 'label' => __('Title','chromax'), + 'section' => 'chromax_top_header', + 'type' => 'text' + ) + ); + + // Link // + $wp_customize->add_setting( + 'chromax_hdr_email_link', + array( + 'default'=> 'mailto:info@example.com', + 'sanitize_callback' => 'chromax_sanitize_url', + 'capability' => 'edit_theme_options', + 'priority' => 14, + ) + ); + + $wp_customize->add_control( + 'chromax_hdr_email_link', + array( + 'label' => __('Link','chromax'), + 'section' => 'chromax_top_header', + 'type' => 'text' + ) + ); + + + /*========================================= + Time + =========================================*/ + $wp_customize->add_setting( + 'chromax_hdr_top_time' + ,array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_text', + 'priority' => 14, + ) + ); + + $wp_customize->add_control( + 'chromax_hdr_top_time', + array( + 'type' => 'hidden', + 'label' => __('Time','chromax'), + 'section' => 'chromax_top_header', + ) + ); + $wp_customize->add_setting( + 'chromax_hs_hdr_time' , + array( + 'default' => '1', + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_checkbox', + 'priority' => 14, + ) + ); + + $wp_customize->add_control( + 'chromax_hs_hdr_time', + array( + 'label' => esc_html__( 'Hide/Show ?', 'chromax' ), + 'section' => 'chromax_top_header', + 'type' => 'checkbox' + ) + ); + + // icon // + $wp_customize->add_setting( + 'chromax_hdr_time_icon', + array( + 'default' => 'far fa-clock', + 'sanitize_callback' => 'sanitize_text_field', + 'capability' => 'edit_theme_options', + ) + ); + + $wp_customize->add_control(new Chromax_Icon_Picker_Control($wp_customize, + 'chromax_hdr_time_icon', + array( + 'label' => __('Icon','chromax'), + 'section' => 'chromax_top_header', + 'iconset' => 'fa', + + )) + ); + + // Title // + $wp_customize->add_setting( + 'chromax_hdr_time_title', + array( + 'default' => __('Mon-Sat: 9.00am To 7.00pm','chromax'), + 'sanitize_callback' => 'chromax_sanitize_html', + 'capability' => 'edit_theme_options', + 'transport' => $selective_refresh, + 'priority' => 14, + ) + ); + + $wp_customize->add_control( + 'chromax_hdr_time_title', + array( + 'label' => __('Title','chromax'), + 'section' => 'chromax_top_header', + 'type' => 'text' + ) + ); + + // Link // + $wp_customize->add_setting( + 'chromax_hdr_time_link', + array( + 'sanitize_callback' => 'chromax_sanitize_url', + 'capability' => 'edit_theme_options', + 'priority' => 14, + ) + ); + + $wp_customize->add_control( + 'chromax_hdr_time_link', + array( + 'label' => __('Link','chromax'), + 'section' => 'chromax_top_header', + 'type' => 'text' + ) + ); + + /*========================================= + Address + =========================================*/ + $wp_customize->add_setting( + 'chromax_hdr_top_ads' + ,array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_text', + 'priority' => 11, + ) + ); + + $wp_customize->add_control( + 'chromax_hdr_top_ads', + array( + 'type' => 'hidden', + 'label' => __('Address','chromax'), + 'section' => 'chromax_top_header', + + ) + ); + $wp_customize->add_setting( + 'chromax_hs_hdr_top_ads', + array( + 'default' => '1', + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_checkbox', + 'priority' => 11, + ) + ); + + $wp_customize->add_control( + 'chromax_hs_hdr_top_ads', + array( + 'label' => esc_html__( 'Hide/Show ?', 'chromax' ), + 'section' => 'chromax_top_header', + 'type' => 'checkbox' + ) + ); + // icon // + $wp_customize->add_setting( + 'chromax_hdr_top_ads_icon', + array( + 'default' => 'fas fa-location-arrow', + 'sanitize_callback' => 'sanitize_text_field', + 'capability' => 'edit_theme_options', + ) + ); + + $wp_customize->add_control(new Chromax_Icon_Picker_Control($wp_customize, + 'chromax_hdr_top_ads_icon', + array( + 'label' => __('Icon','chromax'), + 'section' => 'chromax_top_header', + )) + ); + + // title // + $wp_customize->add_setting( + 'chromax_hdr_top_ads_title', + array( + 'default' => __('60 Golden Street, New York','chromax'), + 'sanitize_callback' => 'chromax_sanitize_html', + 'transport' => $selective_refresh, + 'capability' => 'edit_theme_options', + 'priority' => 11, + ) + ); + + $wp_customize->add_control( + 'chromax_hdr_top_ads_title', + array( + 'label' => __('Title','chromax'), + 'section' => 'chromax_top_header', + 'type' => 'text' + ) + ); + + // Link // + $wp_customize->add_setting( + 'chromax_hdr_top_ads_link', + array( + 'sanitize_callback' => 'chromax_sanitize_url', + 'capability' => 'edit_theme_options', + 'priority' => 11, + ) + ); + + $wp_customize->add_control( + 'chromax_hdr_top_ads_link', + array( + 'label' => __('Link','chromax'), + 'section' => 'chromax_top_header', + 'type' => 'text' + ) + ); + + + /*========================================= + Social + =========================================*/ + $wp_customize->add_setting( + 'Chromax_hdr_social_head' + ,array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_text', + 'priority' => 24, + ) + ); + + $wp_customize->add_control( + 'Chromax_hdr_social_head', + array( + 'type' => 'hidden', + 'label' => __('Social Icons','chromax'), + 'section' => 'chromax_top_header', + ) + ); + + + $wp_customize->add_setting( + 'chromax_hs_hdr_social' , + array( + 'default' => '1', + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_checkbox', + 'priority' => 25, + ) + ); + + $wp_customize->add_control( + 'chromax_hs_hdr_social', + array( + 'label' => esc_html__( 'Hide/Show ?', 'chromax' ), + 'section' => 'chromax_top_header', + 'type' => 'checkbox' + ) + ); + + /** + * Customizer Repeater + */ + $wp_customize->add_setting( 'chromax_hdr_social', + array( + 'sanitize_callback' => 'chromax_repeater_sanitize', + 'priority' => 26, + 'default' => chromax_get_social_icon_default() + ) + ); + + $wp_customize->add_control( + new CHROMAX_Repeater( $wp_customize, + 'chromax_hdr_social', + array( + 'label' => esc_html__('Social Icons','chromax'), + 'section' => 'chromax_top_header', + 'customizer_repeater_icon_control' => true, + 'customizer_repeater_link_control' => true, + ) + ) + ); + + // Upgrade + if ( class_exists( 'Desert_Companion_Customize_Upgrade_Control' ) ) { + $wp_customize->add_setting( + 'chromax_social_option_upsale', + array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'sanitize_text_field', + 'priority' => 26, + )); + + $wp_customize->add_control( + new Desert_Companion_Customize_Upgrade_Control + ($wp_customize, + 'chromax_social_option_upsale', + array( + 'label' => __( 'Icons', 'chromax' ), + 'section' => 'chromax_top_header' + ) + ) + ); + } + /*========================================= + Header Navigation + =========================================*/ + $wp_customize->add_section( + 'chromax_hdr_nav', + array( + 'priority' => 4, + 'title' => __('Navigation Bar','chromax'), + 'panel' => 'header_options', + ) + ); + + /*========================================= + Header Account + =========================================*/ + $wp_customize->add_setting( + 'chromax_hdr_account' + ,array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_text', + 'priority' => 1, + ) + ); + + $wp_customize->add_control( + 'chromax_hdr_account', + array( + 'type' => 'hidden', + 'label' => __('My Account','chromax'), + 'section' => 'chromax_hdr_nav', + ) + ); + + + $wp_customize->add_setting( + 'chromax_hs_hdr_account' , + array( + 'default' => '1', + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_checkbox', + 'priority' => 1, + ) + ); + + $wp_customize->add_control( + 'chromax_hs_hdr_account', + array( + 'label' => esc_html__( 'Hide/Show ?', 'chromax' ), + 'section' => 'chromax_hdr_nav', + 'type' => 'checkbox' + ) + ); + + + /*========================================= + Header Cart + =========================================*/ + $wp_customize->add_setting( + 'chromax_hdr_cart' + ,array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_text', + 'priority' => 1, + ) + ); + + $wp_customize->add_control( + 'chromax_hdr_cart', + array( + 'type' => 'hidden', + 'label' => __('WooCommerce Cart','chromax'), + 'section' => 'chromax_hdr_nav', + ) + ); + + + $wp_customize->add_setting( + 'chromax_hs_hdr_cart' , + array( + 'default' => '1', + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_checkbox', + 'priority' => 2, + ) + ); + + $wp_customize->add_control( + 'chromax_hs_hdr_cart', + array( + 'label' => esc_html__( 'Hide/Show ?', 'chromax' ), + 'section' => 'chromax_hdr_nav', + 'type' => 'checkbox' + ) + ); + + /*========================================= + Header Search + =========================================*/ + $wp_customize->add_setting( + 'chromax_hdr_search' + ,array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_text', + 'priority' => 3, + ) + ); + + $wp_customize->add_control( + 'chromax_hdr_search', + array( + 'type' => 'hidden', + 'label' => __('Site Search','chromax'), + 'section' => 'chromax_hdr_nav', + ) + ); + $wp_customize->add_setting( + 'chromax_hs_hdr_search' , + array( + 'default' => '1', + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_checkbox', + 'priority' => 4, + ) + ); + + $wp_customize->add_control( + 'chromax_hs_hdr_search', + array( + 'label' => esc_html__( 'Hide/Show ?', 'chromax' ), + 'section' => 'chromax_hdr_nav', + 'type' => 'checkbox' + ) + ); + + /*========================================= + Header Button + =========================================*/ + $wp_customize->add_setting( + 'chromax_hdr_button' + ,array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_text', + 'priority' => 7, + ) + ); + + $wp_customize->add_control( + 'chromax_hdr_button', + array( + 'type' => 'hidden', + 'label' => __('Button','chromax'), + 'section' => 'chromax_hdr_nav', + ) + ); + + // icon // + $wp_customize->add_setting( + 'chromax_hdr_btn_icon', + array( + 'default' => 'fal fa-arrow-right-long', + 'sanitize_callback' => 'sanitize_text_field', + 'capability' => 'edit_theme_options', + ) + ); + + $wp_customize->add_control(new Chromax_Icon_Picker_Control($wp_customize, + 'chromax_hdr_btn_icon', + array( + 'label' => __('Icon','chromax'), + 'section' => 'chromax_hdr_nav', + 'iconset' => 'fa', + + )) + ); + + + $wp_customize->add_setting( + 'chromax_hs_hdr_btn' , + array( + 'default' => '1', + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_checkbox', + 'priority' => 8, + ) + ); + + $wp_customize->add_control( + 'chromax_hs_hdr_btn', + array( + 'label' => esc_html__( 'Hide/Show ?', 'chromax' ), + 'section' => 'chromax_hdr_nav', + 'type' => 'checkbox' + ) + ); + + // Button Label // + $wp_customize->add_setting( + 'chromax_hdr_btn_lbl', + array( + 'default' => __('Get A Quote','chromax'), + 'sanitize_callback' => 'chromax_sanitize_html', + 'capability' => 'edit_theme_options', + 'priority' => 9, + ) + ); + + $wp_customize->add_control( + 'chromax_hdr_btn_lbl', + array( + 'label' => __('Button Label','chromax'), + 'section' => 'chromax_hdr_nav', + 'type' => 'text' + ) + ); + + // Button Link // + $wp_customize->add_setting( + 'chromax_hdr_btn_link', + array( + 'default' => '#', + 'sanitize_callback' => 'chromax_sanitize_url', + 'capability' => 'edit_theme_options', + 'priority' => 10, + ) + ); + + $wp_customize->add_control( + 'chromax_hdr_btn_link', + array( + 'label' => __('Button Link','chromax'), + 'section' => 'chromax_hdr_nav', + 'type' => 'text' + ) + ); + + + // Open New Tab + $wp_customize->add_setting( + 'chromax_hdr_btn_target' , + array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_checkbox', + 'priority' => 11, + ) + ); + + $wp_customize->add_control( + 'chromax_hdr_btn_target', + array( + 'label' => esc_html__( 'Open in New Tab ?', 'chromax' ), + 'section' => 'chromax_hdr_nav', + 'type' => 'checkbox' + ) + ); + + /*========================================= + Header Contact + =========================================*/ + $wp_customize->add_setting( + 'chromax_hdr_contact' + ,array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_text', + 'priority' => 12, + ) + ); + + $wp_customize->add_control( + 'chromax_hdr_contact', + array( + 'type' => 'hidden', + 'label' => __('Contact','chromax'), + 'section' => 'chromax_hdr_nav', + ) + ); + + + $wp_customize->add_setting( + 'chromax_hs_hdr_contact' , + array( + 'default' => '1', + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_checkbox', + 'priority' => 13, + ) + ); + + $wp_customize->add_control( + 'chromax_hs_hdr_contact', + array( + 'label' => esc_html__( 'Hide/Show ?', 'chromax' ), + 'section' => 'chromax_hdr_nav', + 'type' => 'checkbox' + ) + ); + + // icon // + $wp_customize->add_setting( + 'chromax_hdr_contact_icon', + array( + 'default' => 'fal fa-phone-volume', + 'sanitize_callback' => 'sanitize_text_field', + 'capability' => 'edit_theme_options', + ) + ); + + $wp_customize->add_control(new Chromax_Icon_Picker_Control($wp_customize, + 'chromax_hdr_contact_icon', + array( + 'label' => __('Icon','chromax'), + 'section' => 'chromax_hdr_nav', + 'iconset' => 'fa', + + )) + ); + + // Title // + $wp_customize->add_setting( + 'chromax_hdr_contact_ttl', + array( + 'default' => __('Call Anytime','chromax'), + 'sanitize_callback' => 'chromax_sanitize_html', + 'capability' => 'edit_theme_options', + 'transport' => $selective_refresh, + 'priority' => 9, + ) + ); + + $wp_customize->add_control( + 'chromax_hdr_contact_ttl', + array( + 'label' => __('Title','chromax'), + 'section' => 'chromax_hdr_nav', + 'type' => 'text' + ) + ); + + // Text // + $wp_customize->add_setting( + 'chromax_hdr_contact_txt', + array( + 'default' => '+123 7878 222', + 'sanitize_callback' => 'chromax_sanitize_html', + 'capability' => 'edit_theme_options', + 'transport' => $selective_refresh, + 'priority' => 10, + ) + ); + + $wp_customize->add_control( + 'chromax_hdr_contact_txt', + array( + 'label' => __('Text','chromax'), + 'section' => 'chromax_hdr_nav', + 'type' => 'text' + ) + ); + + /*========================================= + Sticky Header + =========================================*/ + $wp_customize->add_section( + 'chromax_sticky_header_set', + array( + 'priority' => 4, + 'title' => __('Header Sticky','chromax'), + 'panel' => 'header_options', + ) + ); + + // Heading + $wp_customize->add_setting( + 'chromax_hdr_sticky' + ,array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_text', + 'priority' => 1, + ) + ); + + $wp_customize->add_control( + 'chromax_hdr_sticky', + array( + 'type' => 'hidden', + 'label' => __('Sticky Header','chromax'), + 'section' => 'chromax_sticky_header_set', + ) + ); + $wp_customize->add_setting( + 'chromax_hs_hdr_sticky' , + array( + 'default' => '1', + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_checkbox', + 'priority' => 2, + ) + ); + + $wp_customize->add_control( + 'chromax_hs_hdr_sticky', + array( + 'label' => esc_html__( 'Hide/Show ?', 'chromax' ), + 'section' => 'chromax_sticky_header_set', + 'type' => 'checkbox' + ) + ); +} +add_action( 'customize_register', 'chromax_header_customize_settings' ); \ No newline at end of file diff --git a/wp-content/themes/chromax/inc/customizer/customizer-settings/chromax-theme-customize-setting.php b/wp-content/themes/chromax/inc/customizer/customizer-settings/chromax-theme-customize-setting.php new file mode 100644 index 0000000..049080d --- /dev/null +++ b/wp-content/themes/chromax/inc/customizer/customizer-settings/chromax-theme-customize-setting.php @@ -0,0 +1,1083 @@ +selective_refresh ) ? 'postMessage' : 'refresh'; + $wp_customize->add_panel( + 'chromax_theme_options', array( + 'priority' => 31, + 'title' => esc_html__( 'Theme Options', 'chromax' ), + ) + ); + + /*========================================= + General Options + =========================================*/ + $wp_customize->add_section( + 'site_general_options', array( + 'title' => esc_html__( 'General Options', 'chromax' ), + 'priority' => 1, + 'panel' => 'chromax_theme_options', + ) + ); + + + /*========================================= + Preloader + =========================================*/ + // Heading + $wp_customize->add_setting( + 'chromax_preloader_option' + ,array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_text', + 'priority' => 1, + ) + ); + + $wp_customize->add_control( + 'chromax_preloader_option', + array( + 'type' => 'hidden', + 'label' => __('Site Preloader','chromax'), + 'section' => 'site_general_options', + ) + ); + + + // Hide/ Show + $wp_customize->add_setting( + 'chromax_hs_preloader_option' , + array( + 'default' => '1', + 'sanitize_callback' => 'chromax_sanitize_checkbox', + 'capability' => 'edit_theme_options', + 'priority' => 1, + ) + ); + + $wp_customize->add_control( + 'chromax_hs_preloader_option', + array( + 'label' => esc_html__( 'Hide / Show Preloader', 'chromax' ), + 'section' => 'site_general_options', + 'type' => 'checkbox' + ) + ); + + /*========================================= + Scroller + =========================================*/ + // Heading + $wp_customize->add_setting( + 'chromax_scroller_option' + ,array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_text', + 'priority' => 3, + ) + ); + + $wp_customize->add_control( + 'chromax_scroller_option', + array( + 'type' => 'hidden', + 'label' => __('Top Scroller','chromax'), + 'section' => 'site_general_options', + ) + ); + + // Hide/show + $wp_customize->add_setting( + 'chromax_hs_scroller_option' , + array( + 'default' => '1', + 'sanitize_callback' => 'chromax_sanitize_checkbox', + 'capability' => 'edit_theme_options', + 'priority' => 4, + ) + ); + + $wp_customize->add_control( + 'chromax_hs_scroller_option', + array( + 'label' => esc_html__( 'Hide / Show Scroller', 'chromax' ), + 'section' => 'site_general_options', + 'type' => 'checkbox' + ) + ); + + /*========================================= + Chromax Container + =========================================*/ + // Heading + $wp_customize->add_setting( + 'chromax_site_container_option' + ,array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_text', + 'priority' => 6, + ) + ); + + $wp_customize->add_control( + 'chromax_site_container_option', + array( + 'type' => 'hidden', + 'label' => __('Site Container','chromax'), + 'section' => 'site_general_options', + ) + ); + + if ( class_exists( 'Chromax_Customizer_Range_Control' ) ) { + //container width + $wp_customize->add_setting( + 'chromax_site_container_width', + array( + 'default' => '2304', + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_range_value', + 'transport' => 'postMessage', + 'priority' => 6, + ) + ); + $wp_customize->add_control( + new Chromax_Customizer_Range_Control( $wp_customize, 'chromax_site_container_width', + array( + 'label' => __( 'Container Width', 'chromax' ), + 'section' => 'site_general_options', + 'media_query' => false, + 'input_attr' => array( + 'desktop' => array( + 'min' => 768, + 'max' => 2500, + 'step' => 1, + 'default_value' => 2304, + ), + ), + ) ) + ); + } + + /*========================================= + Chromax Search Result + =========================================*/ + + // Head // + $wp_customize->add_setting( + 'chromax_search_result_head' + ,array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_text', + 'priority' => 7, + ) + ); + + $wp_customize->add_control( + 'chromax_search_result_head', + array( + 'type' => 'hidden', + 'label' => __('Search Result','chromax'), + 'section' => 'site_general_options', + ) + ); + + // Style + $wp_customize->add_setting( + 'chromax_search_result' , + array( + 'default' => 'post', + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_select', + 'priority' => 8, + ) + ); + + $wp_customize->add_control( + 'chromax_search_result' , + array( + 'label' => __( 'Search Result Page will Show ?', 'chromax' ), + 'section' => 'site_general_options', + 'type' => 'select', + 'choices' => + array( + 'post' => __( 'Posts', 'chromax' ), + 'product' => __( 'WooCommerce Products', 'chromax' ), + ) + ) + ); + + /*========================================= + Breadcrumb Section + =========================================*/ + $wp_customize->add_section( + 'chromax_site_breadcrumb', array( + 'title' => esc_html__( 'Site Breadcrumb', 'chromax' ), + 'priority' => 12, + 'panel' => 'chromax_theme_options', + ) + ); + + // Heading + $wp_customize->add_setting( + 'chromax_site_breadcrumb_option' + ,array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_text', + 'priority' => 1, + ) + ); + + $wp_customize->add_control( + 'chromax_site_breadcrumb_option', + array( + 'type' => 'hidden', + 'label' => __('Settings','chromax'), + 'section' => 'chromax_site_breadcrumb', + ) + ); + + // Breadcrumb Hide/ Show Setting // + $wp_customize->add_setting( + 'chromax_hs_site_breadcrumb' , + array( + 'default' => '1', + 'sanitize_callback' => 'chromax_sanitize_checkbox', + 'capability' => 'edit_theme_options', + 'priority' => 2, + ) + ); + + $wp_customize->add_control( + 'chromax_hs_site_breadcrumb', + array( + 'label' => esc_html__( 'Hide / Show Section', 'chromax' ), + 'section' => 'chromax_site_breadcrumb', + 'type' => 'checkbox' + ) + ); + + // Breadcrumb Content Section // + $wp_customize->add_setting( + 'chromax_site_breadcrumb_content' + ,array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_text', + 'priority' => 5, + ) + ); + + $wp_customize->add_control( + 'chromax_site_breadcrumb_content', + array( + 'type' => 'hidden', + 'label' => __('Content','chromax'), + 'section' => 'chromax_site_breadcrumb', + ) + ); + + + // Type + $wp_customize->add_setting( + 'chromax_breadcrumb_type' , + array( + 'default' => 'theme', + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_select', + 'priority' => 5, + ) + ); + + $wp_customize->add_control( + 'chromax_breadcrumb_type' , + array( + 'label' => __( 'Select Breadcrumb Type', 'chromax' ), + 'description' => __( 'You need to install and activate the respected plugin to show their Breadcrumb. Otherwise, your default theme Breadcrumb will appear. If you see error in search console, then we recommend to use plugin Breadcrumb.', 'chromax' ), + 'section' => 'chromax_site_breadcrumb', + 'type' => 'select', + 'choices' => + array( + 'theme' => __( 'Theme Default', 'chromax' ), + 'yoast' => __( 'Yoast Plugin', 'chromax' ), + 'rankmath' => __( 'Rank Math Plugin', 'chromax' ), + 'navxt' => __( 'NavXT Plugin', 'chromax' ), + ) + ) + ); + + // Background // + $wp_customize->add_setting( + 'chromax_breadcrumb_bg_options' + ,array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_text', + 'priority' => 9, + ) + ); + + $wp_customize->add_control( + 'chromax_breadcrumb_bg_options', + array( + 'type' => 'hidden', + 'label' => __('Background','chromax'), + 'section' => 'chromax_site_breadcrumb', + ) + ); + + // Background Image // + $wp_customize->add_setting( + 'chromax_breadcrumb_bg_img' , + array( + 'default' => esc_url(get_template_directory_uri() .'/assets/images/pagetitle.jpg'), + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_url', + 'priority' => 10, + ) + ); + + $wp_customize->add_control( new WP_Customize_Image_Control( $wp_customize , 'chromax_breadcrumb_bg_img' , + array( + 'label' => esc_html__( 'Background Image', 'chromax'), + 'section' => 'chromax_site_breadcrumb', + ) + )); + + $wp_customize->add_setting( + 'chromax_breadcrumb_opacity_color', + array( + 'default' => '#00022A', + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'sanitize_hex_color', + 'priority' => 12, + )); + + $wp_customize->add_control( + new WP_Customize_Color_Control + ($wp_customize, + 'chromax_breadcrumb_opacity_color', + array( + 'label' => __( 'Opacity Color', 'chromax'), + 'section' => 'chromax_site_breadcrumb', + ) + ) + ); + + // Typography + $wp_customize->add_setting( + 'chromax_breadcrumb_typography' + ,array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_text', + 'priority' => 13, + ) + ); + + $wp_customize->add_control( + 'chromax_breadcrumb_typography', + array( + 'type' => 'hidden', + 'label' => __('Typography','chromax'), + 'section' => 'chromax_site_breadcrumb', + ) + ); + + if ( class_exists( 'Chromax_Customizer_Range_Control' ) ) { + // Title size // + $wp_customize->add_setting( + 'chromax_breadcrumb_title_size', + array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_range_value', + 'transport' => 'postMessage', + 'priority' => 14, + ) + ); + $wp_customize->add_control( + new Chromax_Customizer_Range_Control( $wp_customize, 'chromax_breadcrumb_title_size', + array( + 'label' => __( 'Title Font Size', 'chromax' ), + 'section' => 'chromax_site_breadcrumb', + 'media_query' => true, + 'input_attr' => array( + 'mobile' => array( + 'min' => 0, + 'max' => 20, + 'step' => 1, + 'default_value' => 8, + ), + 'tablet' => array( + 'min' => 0, + 'max' => 20, + 'step' => 1, + 'default_value' => 8, + ), + 'desktop' => array( + 'min' => 0, + 'max' => 20, + 'step' => 1, + 'default_value' => 8, + ), + ), + ) ) + ); + // Content size // + $wp_customize->add_setting( + 'chromax_breadcrumb_content_size', + array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_range_value', + 'transport' => 'postMessage', + 'priority' => 15, + ) + ); + $wp_customize->add_control( + new Chromax_Customizer_Range_Control( $wp_customize, 'chromax_breadcrumb_content_size', + array( + 'label' => __( 'Content Font Size', 'chromax' ), + 'section' => 'chromax_site_breadcrumb', + 'media_query' => true, + 'input_attr' => array( + 'mobile' => array( + 'min' => 0, + 'max' => 10, + 'step' => 1, + 'default_value' => 2, + ), + 'tablet' => array( + 'min' => 0, + 'max' => 10, + 'step' => 1, + 'default_value' => 2, + ), + 'desktop' => array( + 'min' => 0, + 'max' => 10, + 'step' => 1, + 'default_value' => 2, + ), + ), + ) ) + ); + } + + + /*========================================= + Chromax Blog + =========================================*/ + $wp_customize->add_section( + 'site_blog_options', + array( + 'priority' => 8, + 'title' => __('Blog Options','chromax'), + 'panel' => 'chromax_theme_options', + ) + ); + + /*========================================= + Excerpt + =========================================*/ + $wp_customize->add_setting( + 'chromax_blog_excerpt_options' + ,array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_text', + 'priority' => 5, + ) + ); + + $wp_customize->add_control( + 'chromax_blog_excerpt_options', + array( + 'type' => 'hidden', + 'label' => __('Post Excerpt','chromax'), + 'section' => 'site_blog_options', + ) + ); + + + // Enable Excerpt + $wp_customize->add_setting( + 'chromax_enable_post_excerpt' + ,array( + 'default' => '1', + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_checkbox', + 'priority' => 5, + ) + ); + + $wp_customize->add_control( + 'chromax_enable_post_excerpt', + array( + 'type' => 'checkbox', + 'label' => __('Enable Excerpt','chromax'), + 'section' => 'site_blog_options', + ) + ); + + + // post Exerpt // + if ( class_exists( 'Chromax_Customizer_Range_Control' ) ) { + $wp_customize->add_setting( + 'chromax_post_excerpt_length', + array( + 'default' => '30', + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_range_value', + 'priority' => 5, + ) + ); + $wp_customize->add_control( + new Chromax_Customizer_Range_Control( $wp_customize, 'chromax_post_excerpt_length', + array( + 'label' => __( 'Excerpt Length', 'chromax' ), + 'section' => 'site_blog_options', + 'media_query' => false, + 'input_attr' => array( + 'desktop' => array( + 'min' => 0, + 'max' => 1000, + 'step' => 1, + 'default_value' => 30, + ), + ) + ) ) + ); + } + + // excerpt more // + $wp_customize->add_setting( + 'chromax_blog_excerpt_more', + array( + 'default' => '...', + 'sanitize_callback' => 'sanitize_text_field', + 'capability' => 'edit_theme_options', + 'priority' => 5, + ) + ); + + $wp_customize->add_control( + 'chromax_blog_excerpt_more', + array( + 'label' => esc_html__('Excerpt More','chromax'), + 'section' => 'site_blog_options', + 'type' => 'text', + ) + ); + + + // Enable Excerpt + $wp_customize->add_setting( + 'chromax_show_post_btn' + ,array( + 'default' => '1', + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_checkbox', + 'priority' => 5, + ) + ); + + $wp_customize->add_control( + 'chromax_show_post_btn', + array( + 'type' => 'checkbox', + 'label' => __('Enable Read More Button','chromax'), + 'section' => 'site_blog_options', + ) + ); + + // Readmore button + $wp_customize->add_setting( + 'chromax_read_btn_txt' + ,array( + 'default' => __('Read more','chromax'), + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_html', + 'priority' => 5, + ) + ); + + $wp_customize->add_control( + 'chromax_read_btn_txt', + array( + 'type' => 'text', + 'label' => __('Read More Button Text','chromax'), + 'section' => 'site_blog_options', + ) + ); + + + // Hide/Show Category + $wp_customize->add_setting( + 'chromax_enable_post_cat' + ,array( + 'default' => '1', + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_checkbox', + 'priority' => 8, + ) + ); + + $wp_customize->add_control( + 'chromax_enable_post_cat', + array( + 'type' => 'checkbox', + 'label' => __('Hide/Show Category ?','chromax'), + 'section' => 'site_blog_options', + ) + ); + + // Hide/Show Date + $wp_customize->add_setting( + 'chromax_enable_post_date' + ,array( + 'default' => '1', + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_checkbox', + 'priority' => 8, + ) + ); + + $wp_customize->add_control( + 'chromax_enable_post_date', + array( + 'type' => 'checkbox', + 'label' => __('Hide/Show Date ?','chromax'), + 'section' => 'site_blog_options', + ) + ); + + // Hide/Show Author + $wp_customize->add_setting( + 'chromax_enable_post_author' + ,array( + 'default' => '1', + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_checkbox', + 'priority' => 8, + ) + ); + + $wp_customize->add_control( + 'chromax_enable_post_author', + array( + 'type' => 'checkbox', + 'label' => __('Hide/Show Author ?','chromax'), + 'section' => 'site_blog_options', + ) + ); + + // Hide/Show Comments + $wp_customize->add_setting( + 'chromax_enable_post_comments' + ,array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_checkbox', + 'priority' => 8, + ) + ); + + $wp_customize->add_control( + 'chromax_enable_post_comments', + array( + 'type' => 'checkbox', + 'label' => __('Hide/Show Comments ?','chromax'), + 'section' => 'site_blog_options', + ) + ); + + // Hide/Show Views + $wp_customize->add_setting( + 'chromax_enable_post_views' + ,array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_checkbox', + 'priority' => 8, + ) + ); + + $wp_customize->add_control( + 'chromax_enable_post_views', + array( + 'type' => 'checkbox', + 'label' => __('Hide/Show Views ?','chromax'), + 'section' => 'site_blog_options', + ) + ); + + // Hide/Show Reading Time + $wp_customize->add_setting( + 'chromax_enable_post_rt' + ,array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_checkbox', + 'priority' => 8, + ) + ); + + $wp_customize->add_control( + 'chromax_enable_post_rt', + array( + 'type' => 'checkbox', + 'label' => __('Hide/Show Reading Time ?','chromax'), + 'section' => 'site_blog_options', + ) + ); + + // Hide/Show Tag + $wp_customize->add_setting( + 'chromax_enable_post_tag' + ,array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_checkbox', + 'priority' => 8, + ) + ); + + $wp_customize->add_control( + 'chromax_enable_post_tag', + array( + 'type' => 'checkbox', + 'label' => __('Hide/Show Tag ?','chromax'), + 'section' => 'site_blog_options', + ) + ); + + // Hide/Show Title + $wp_customize->add_setting( + 'chromax_enable_post_ttl' + ,array( + 'default' => '1', + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_checkbox', + 'priority' => 8, + ) + ); + + $wp_customize->add_control( + 'chromax_enable_post_ttl', + array( + 'type' => 'checkbox', + 'label' => __('Hide/Show Title ?','chromax'), + 'section' => 'site_blog_options', + ) + ); + /*========================================= + Chromax Sidebar + =========================================*/ + $wp_customize->add_section( + 'chromax_sidebar_options', + array( + 'priority' => 8, + 'title' => __('Sidebar Options','chromax'), + 'panel' => 'chromax_theme_options', + ) + ); + + // Pages Layout // + $wp_customize->add_setting( + 'chromax_pages_sidebar_option' + ,array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_text', + 'priority' => 1, + ) + ); + + $wp_customize->add_control( + 'chromax_pages_sidebar_option', + array( + 'type' => 'hidden', + 'label' => __('Sidebar Layout','chromax'), + 'section' => 'chromax_sidebar_options', + ) + ); + + // Default Page + $wp_customize->add_setting( + 'chromax_default_pg_sidebar_option' , + array( + 'default' => 'right_sidebar', + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_select', + 'priority' => 2, + ) + ); + + $wp_customize->add_control( + 'chromax_default_pg_sidebar_option' , + array( + 'label' => __( 'Default Page Sidebar Option', 'chromax' ), + 'section' => 'chromax_sidebar_options', + 'type' => 'select', + 'choices' => + array( + 'left_sidebar' => __( 'Left Sidebar', 'chromax' ), + 'right_sidebar' => __( 'Right Sidebar', 'chromax' ), + 'no_sidebar' => __( 'No Sidebar', 'chromax' ), + ) + ) + ); + + // Archive Page + $wp_customize->add_setting( + 'chromax_archive_pg_sidebar_option' , + array( + 'default' => 'right_sidebar', + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_select', + 'priority' => 3, + ) + ); + + $wp_customize->add_control( + 'chromax_archive_pg_sidebar_option' , + array( + 'label' => __( 'Archive Page Sidebar Option', 'chromax' ), + 'section' => 'chromax_sidebar_options', + 'type' => 'select', + 'choices' => + array( + 'left_sidebar' => __( 'Left Sidebar', 'chromax' ), + 'right_sidebar' => __( 'Right Sidebar', 'chromax' ), + 'no_sidebar' => __( 'No Sidebar', 'chromax' ), + ) + ) + ); + + + // Single Page + $wp_customize->add_setting( + 'chromax_single_pg_sidebar_option' , + array( + 'default' => 'right_sidebar', + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_select', + 'priority' => 4, + ) + ); + + $wp_customize->add_control( + 'chromax_single_pg_sidebar_option' , + array( + 'label' => __( 'Single Page Sidebar Option', 'chromax' ), + 'section' => 'chromax_sidebar_options', + 'type' => 'select', + 'choices' => + array( + 'left_sidebar' => __( 'Left Sidebar', 'chromax' ), + 'right_sidebar' => __( 'Right Sidebar', 'chromax' ), + 'no_sidebar' => __( 'No Sidebar', 'chromax' ), + ) + ) + ); + + + // Blog Page + $wp_customize->add_setting( + 'chromax_blog_pg_sidebar_option' , + array( + 'default' => 'right_sidebar', + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_select', + 'priority' => 5, + ) + ); + + $wp_customize->add_control( + 'chromax_blog_pg_sidebar_option' , + array( + 'label' => __( 'Blog Page Sidebar Option', 'chromax' ), + 'section' => 'chromax_sidebar_options', + 'type' => 'select', + 'choices' => + array( + 'left_sidebar' => __( 'Left Sidebar', 'chromax' ), + 'right_sidebar' => __( 'Right Sidebar', 'chromax' ), + 'no_sidebar' => __( 'No Sidebar', 'chromax' ), + ) + ) + ); + + // Search Page + $wp_customize->add_setting( + 'chromax_search_pg_sidebar_option' , + array( + 'default' => 'right_sidebar', + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_select', + 'priority' => 5, + ) + ); + + $wp_customize->add_control( + 'chromax_search_pg_sidebar_option' , + array( + 'label' => __( 'Search Page Sidebar Option', 'chromax' ), + 'section' => 'chromax_sidebar_options', + 'type' => 'select', + 'choices' => + array( + 'left_sidebar' => __( 'Left Sidebar', 'chromax' ), + 'right_sidebar' => __( 'Right Sidebar', 'chromax' ), + 'no_sidebar' => __( 'No Sidebar', 'chromax' ), + ) + ) + ); + + + // WooCommerce Page + $wp_customize->add_setting( + 'chromax_shop_pg_sidebar_option' , + array( + 'default' => 'right_sidebar', + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_select', + 'priority' => 6, + ) + ); + + $wp_customize->add_control( + 'chromax_shop_pg_sidebar_option' , + array( + 'label' => __( 'WooCommerce Page Sidebar Option', 'chromax' ), + 'section' => 'chromax_sidebar_options', + 'type' => 'select', + 'choices' => + array( + 'left_sidebar' => __( 'Left Sidebar', 'chromax' ), + 'right_sidebar' => __( 'Right Sidebar', 'chromax' ), + 'no_sidebar' => __( 'No Sidebar', 'chromax' ), + ) + ) + ); + + // Upgrade + if ( class_exists( 'Desert_Companion_Customize_Upgrade_Control' ) ) { + $wp_customize->add_setting( + 'chromax_sidebar_option_upsale', + array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'sanitize_text_field', + 'priority' => 7, + )); + + $wp_customize->add_control( + new Desert_Companion_Customize_Upgrade_Control + ($wp_customize, + 'chromax_sidebar_option_upsale', + array( + 'label' => __( 'Sidebar Features', 'chromax' ), + 'section' => 'chromax_sidebar_options' + ) + ) + ); + } + + // Widget options + $wp_customize->add_setting( + 'sidebar_options' + ,array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_text', + 'priority' => 6 + ) + ); + + $wp_customize->add_control( + 'sidebar_options', + array( + 'type' => 'hidden', + 'label' => __('Options','chromax'), + 'section' => 'chromax_sidebar_options', + ) + ); + // Sidebar Width + if ( class_exists( 'Chromax_Customizer_Range_Control' ) ) { + $wp_customize->add_setting( + 'chromax_sidebar_width', + array( + 'default' => esc_html__( '33', 'chromax' ), + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_range_value', + 'transport' => 'postMessage', + 'priority' => 7 + ) + ); + $wp_customize->add_control( + new Chromax_Customizer_Range_Control( $wp_customize, 'chromax_sidebar_width', + array( + 'label' => __( 'Sidebar Width', 'chromax' ), + 'section' => 'chromax_sidebar_options', + 'media_query' => false, + 'input_attr' => array( + 'desktop' => array( + 'min' => 25, + 'max' => 50, + 'step' => 1, + 'default_value' => 33, + ), + ), + ) ) + ); + } + + // Widget Typography + $wp_customize->add_setting( + 'sidebar_typography' + ,array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_text', + ) + ); + + $wp_customize->add_control( + 'sidebar_typography', + array( + 'type' => 'hidden', + 'label' => __('Typography','chromax'), + 'section' => 'chromax_sidebar_options', + 'priority' => 21, + ) + ); + + // Widget Title // + if ( class_exists( 'Chromax_Customizer_Range_Control' ) ) { + $wp_customize->add_setting( + 'chromax_widget_ttl_size', + array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_range_value', + 'transport' => 'postMessage' + ) + ); + $wp_customize->add_control( + new Chromax_Customizer_Range_Control( $wp_customize, 'chromax_widget_ttl_size', + array( + 'label' => __( 'Widget Title Font Size', 'chromax' ), + 'section' => 'chromax_sidebar_options', + 'priority' => 22, + 'media_query' => true, + 'input_attr' => array( + 'mobile' => array( + 'min' => 5, + 'max' => 100, + 'step' => 1, + 'default_value' => 35, + ), + 'tablet' => array( + 'min' => 5, + 'max' => 100, + 'step' => 1, + 'default_value' => 35, + ), + 'desktop' => array( + 'min' => 5, + 'max' => 100, + 'step' => 1, + 'default_value' => 35, + ), + ), + ) ) + ); + } +} +add_action( 'customize_register', 'chromax_theme_options_customize' ); \ No newline at end of file diff --git a/wp-content/themes/chromax/inc/customizer/customizer-settings/chromax-typography-customize-setting.php b/wp-content/themes/chromax/inc/customizer/customizer-settings/chromax-typography-customize-setting.php new file mode 100644 index 0000000..b577ab0 --- /dev/null +++ b/wp-content/themes/chromax/inc/customizer/customizer-settings/chromax-typography-customize-setting.php @@ -0,0 +1,561 @@ +selective_refresh ) ? 'postMessage' : 'refresh'; + + $wp_customize->add_panel( + 'chromax_typography_options', array( + 'priority' => 38, + 'title' => esc_html__( 'Typography', 'chromax' ), + ) + ); + + /*========================================= + chromax Typography + =========================================*/ + $wp_customize->add_section( + 'chromax_typography_options', + array( + 'priority' => 1, + 'title' => __('Body Typography','chromax'), + 'panel' => 'chromax_typography_options', + ) + ); + + + // Body Font Size // + if ( class_exists( 'chromax_Customizer_Range_Control' ) ) { + $wp_customize->add_setting( + 'chromax_body_font_size_option', + array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_range_value', + 'transport' => 'postMessage', + ) + ); + $wp_customize->add_control( + new chromax_Customizer_Range_Control( $wp_customize, 'chromax_body_font_size_option', + array( + 'label' => __( 'Size', 'chromax' ), + 'section' => 'chromax_typography_options', + 'priority' => 2, + 'media_query' => true, + 'input_attr' => array( + 'mobile' => array( + 'min' => 1, + 'max' => 50, + 'step' => 1, + 'default_value' => 16, + ), + 'tablet' => array( + 'min' => 0, + 'max' => 50, + 'step' => 1, + 'default_value' => 16, + ), + 'desktop' => array( + 'min' => 0, + 'max' => 50, + 'step' => 1, + 'default_value' => 16, + ), + ), + ) ) + ); + } + + // Body Font Size // + if ( class_exists( 'chromax_Customizer_Range_Control' ) ) { + $wp_customize->add_setting( + 'chromax_body_line_height_option', + array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_range_value', + 'transport' => 'postMessage', + ) + ); + $wp_customize->add_control( + new chromax_Customizer_Range_Control( $wp_customize, 'chromax_body_line_height_option', + array( + 'label' => __( 'Line Height', 'chromax' ), + 'section' => 'chromax_typography_options', + 'priority' => 3, + 'media_query' => true, + 'input_attr' => array( + 'mobile' => array( + 'min' => 0, + 'max' => 3, + 'step' => 0.1, + 'default_value' => 1.6, + ), + 'tablet' => array( + 'min' => 0, + 'max' => 3, + 'step' => 0.1, + 'default_value' => 1.6, + ), + 'desktop' => array( + 'min' => 0, + 'max' => 3, + 'step' => 0.1, + 'default_value' => 1.6, + ), + ) + ) ) + ); + } + + // Body Font Size // + if ( class_exists( 'chromax_Customizer_Range_Control' ) ) { + $wp_customize->add_setting( + 'chromax_body_ltr_space_option', + array( + 'default' => '0.1', + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_range_value', + 'transport' => 'postMessage', + ) + ); + $wp_customize->add_control( + new chromax_Customizer_Range_Control( $wp_customize, 'chromax_body_ltr_space_option', + array( + 'label' => __( 'Letter Spacing', 'chromax' ), + 'section' => 'chromax_typography_options', + 'priority' => 4, + 'media_query' => true, + 'input_attr' => array( + 'mobile' => array( + 'min' => -10, + 'max' => 10, + 'step' => 1, + 'default_value' => 0, + ), + 'tablet' => array( + 'min' => -10, + 'max' => 10, + 'step' => 1, + 'default_value' => 0, + ), + 'desktop' => array( + 'min' => -10, + 'max' => 10, + 'step' => 1, + 'default_value' => 0, + ), + ) + ) ) + ); + } + + // Body Font weight // + $wp_customize->add_setting( 'chromax_body_font_weight_option', array( + 'capability' => 'edit_theme_options', + 'default' => 'inherit', + 'transport' => 'postMessage', + 'sanitize_callback' => 'chromax_sanitize_select', + ) ); + + $wp_customize->add_control( + new WP_Customize_Control( + $wp_customize, 'chromax_body_font_weight_option', array( + 'label' => __( 'Weight', 'chromax' ), + 'section' => 'chromax_typography_options', + 'type' => 'select', + 'priority' => 5, + 'choices' => array( + 'inherit' => __( 'Default', 'chromax' ), + '100' => __( 'Thin: 100', 'chromax' ), + '200' => __( 'Light: 200', 'chromax' ), + '300' => __( 'Book: 300', 'chromax' ), + '400' => __( 'Normal: 400', 'chromax' ), + '500' => __( 'Medium: 500', 'chromax' ), + '600' => __( 'Semibold: 600', 'chromax' ), + '700' => __( 'Bold: 700', 'chromax' ), + '800' => __( 'Extra Bold: 800', 'chromax' ), + '900' => __( 'Black: 900', 'chromax' ), + ), + ) + ) + ); + + // Body Font style // + $wp_customize->add_setting( 'chromax_body_font_style_option', array( + 'capability' => 'edit_theme_options', + 'default' => 'inherit', + 'transport' => 'postMessage', + 'sanitize_callback' => 'chromax_sanitize_select', + ) ); + + $wp_customize->add_control( + new WP_Customize_Control( + $wp_customize, 'chromax_body_font_style_option', array( + 'label' => __( 'Font Style', 'chromax' ), + 'section' => 'chromax_typography_options', + 'type' => 'select', + 'priority' => 6, + 'choices' => array( + 'inherit' => __( 'Inherit', 'chromax' ), + 'normal' => __( 'Normal', 'chromax' ), + 'italic' => __( 'Italic', 'chromax' ), + 'oblique' => __( 'oblique', 'chromax' ), + ), + ) + ) + ); + // Body Text Transform // + $wp_customize->add_setting( 'chromax_body_text_transform_option', array( + 'capability' => 'edit_theme_options', + 'default' => 'inherit', + 'transport' => 'postMessage', + 'sanitize_callback' => 'chromax_sanitize_select', + ) ); + + $wp_customize->add_control( + new WP_Customize_Control( + $wp_customize, 'chromax_body_text_transform_option', array( + 'label' => __( 'Transform', 'chromax' ), + 'section' => 'chromax_typography_options', + 'type' => 'select', + 'priority' => 7, + 'choices' => array( + 'inherit' => __( 'Default', 'chromax' ), + 'uppercase' => __( 'Uppercase', 'chromax' ), + 'lowercase' => __( 'Lowercase', 'chromax' ), + 'capitalize' => __( 'Capitalize', 'chromax' ), + ), + ) + ) + ); + + // Body Text Decoration // + $wp_customize->add_setting( 'chromax_body_txt_decoration_option', array( + 'capability' => 'edit_theme_options', + 'default' => 'inherit', + 'transport' => 'postMessage', + 'sanitize_callback' => 'chromax_sanitize_select', + ) ); + + $wp_customize->add_control( + new WP_Customize_Control( + $wp_customize, 'chromax_body_txt_decoration_option', array( + 'label' => __( 'Text Decoration', 'chromax' ), + 'section' => 'chromax_typography_options', + 'type' => 'select', + 'priority' => 8, + 'choices' => array( + 'inherit' => __( 'Inherit', 'chromax' ), + 'underline' => __( 'Underline', 'chromax' ), + 'overline' => __( 'Overline', 'chromax' ), + 'line-through' => __( 'Line Through', 'chromax' ), + 'none' => __( 'None', 'chromax' ), + ), + ) + ) + ); + + // Upgrade + if ( class_exists( 'Desert_Companion_Customize_Upgrade_Control' ) ) { + $wp_customize->add_setting( + 'chromax_body_typography_option_upsale', + array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'sanitize_text_field', + )); + + $wp_customize->add_control( + new Desert_Companion_Customize_Upgrade_Control + ($wp_customize, + 'chromax_body_typography_option_upsale', + array( + 'label' => __( 'Typography Features', 'chromax' ), + 'section' => 'chromax_typography_options', + 'priority' => 8, + ) + ) + ); + } + + /*========================================= + chromax Typography Headings + =========================================*/ + $wp_customize->add_section( + 'chromax_headings_typography', + array( + 'priority' => 2, + 'title' => __('Headings (H1-H6) Typography','chromax'), + 'panel' => 'chromax_typography_options', + ) + ); + + /*========================================= + chromax Typography H1 + =========================================*/ + for ( $i = 1; $i <= 6; $i++ ) { + if($i == '1'){$j=36;}elseif($i == '2'){$j=32;}elseif($i == '3'){$j=28;}elseif($i == '4'){$j=24;}elseif($i == '5'){$j=20;}else{$j=16;} + $wp_customize->add_setting( + 'h' . $i . '_typography' + ,array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_text', + ) + ); + + $wp_customize->add_control( + 'h' . $i . '_typography', + array( + 'type' => 'hidden', + 'label' => esc_html('H' . $i .' Typography','chromax'), + 'section' => 'chromax_headings_typography', + ) + ); + + // Heading Font Size // + if ( class_exists( 'chromax_Customizer_Range_Control' ) ) { + $wp_customize->add_setting( + 'chromax_h' . $i . '_font_size_option', + array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_range_value', + 'transport' => 'postMessage' + ) + ); + $wp_customize->add_control( + new chromax_Customizer_Range_Control( $wp_customize, 'chromax_h' . $i . '_font_size_option', + array( + 'label' => __( 'Font Size', 'chromax' ), + 'section' => 'chromax_headings_typography', + 'media_query' => true, + 'input_attr' => array( + 'mobile' => array( + 'min' => 1, + 'max' => 100, + 'step' => 1, + 'default_value' => $j, + ), + 'tablet' => array( + 'min' => 1, + 'max' => 100, + 'step' => 1, + 'default_value' => $j, + ), + 'desktop' => array( + 'min' => 1, + 'max' => 100, + 'step' => 1, + 'default_value' => $j, + ), + ) + ) ) + ); + } + + // Heading Font Size // + if ( class_exists( 'chromax_Customizer_Range_Control' ) ) { + $wp_customize->add_setting( + 'chromax_h' . $i . '_line_height_option', + array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_range_value', + 'transport' => 'postMessage', + ) + ); + $wp_customize->add_control( + new chromax_Customizer_Range_Control( $wp_customize, 'chromax_h' . $i . '_line_height_option', + array( + 'label' => __( 'Line Height', 'chromax' ), + 'section' => 'chromax_headings_typography', + 'media_query' => true, + 'input_attrs' => array( + 'min' => 0, + 'max' => 5, + 'step' => 0.1, + //'suffix' => 'px', //optional suffix + ), + 'input_attr' => array( + 'mobile' => array( + 'min' => 0, + 'max' => 3, + 'step' => 0.1, + 'default_value' => 1.2, + ), + 'tablet' => array( + 'min' => 0, + 'max' => 3, + 'step' => 0.1, + 'default_value' => 1.2, + ), + 'desktop' => array( + 'min' => 0, + 'max' => 3, + 'step' => 0.1, + 'default_value' => 1.2, + ), + ) + ) ) + ); + } + // Heading Letter Spacing // + if ( class_exists( 'chromax_Customizer_Range_Control' ) ) { + $wp_customize->add_setting( + 'chromax_h' . $i . '_ltr_space_option', + array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'chromax_sanitize_range_value', + 'transport' => 'postMessage', + ) + ); + $wp_customize->add_control( + new chromax_Customizer_Range_Control( $wp_customize, 'chromax_h' . $i . '_ltr_space_option', + array( + 'label' => __( 'Letter Spacing', 'chromax' ), + 'section' => 'chromax_headings_typography', + 'media_query' => true, + 'input_attr' => array( + 'mobile' => array( + 'min' => -10, + 'max' => 10, + 'step' => 1, + 'default_value' => 0.1, + ), + 'tablet' => array( + 'min' => -10, + 'max' => 10, + 'step' => 1, + 'default_value' => 0.1, + ), + 'desktop' => array( + 'min' => -10, + 'max' => 10, + 'step' => 1, + 'default_value' => 0.1, + ), + ) + ) ) + ); + } + + // Heading Font weight // + $wp_customize->add_setting( 'chromax_h' . $i . '_font_weight_option', array( + 'capability' => 'edit_theme_options', + 'default' => '700', + 'transport' => 'postMessage', + 'sanitize_callback' => 'chromax_sanitize_select', + ) ); + + $wp_customize->add_control( + new WP_Customize_Control( + $wp_customize, 'chromax_h' . $i . '_font_weight_option', array( + 'label' => __( 'Font Weight', 'chromax' ), + 'section' => 'chromax_headings_typography', + 'type' => 'select', + 'choices' => array( + 'inherit' => __( 'Inherit', 'chromax' ), + '100' => __( 'Thin: 100', 'chromax' ), + '200' => __( 'Light: 200', 'chromax' ), + '300' => __( 'Book: 300', 'chromax' ), + '400' => __( 'Normal: 400', 'chromax' ), + '500' => __( 'Medium: 500', 'chromax' ), + '600' => __( 'Semibold: 600', 'chromax' ), + '700' => __( 'Bold: 700', 'chromax' ), + '800' => __( 'Extra Bold: 800', 'chromax' ), + '900' => __( 'Black: 900', 'chromax' ), + ), + ) + ) + ); + + // Heading Font style // + $wp_customize->add_setting( 'chromax_h' . $i . '_font_style_option', array( + 'capability' => 'edit_theme_options', + 'default' => 'inherit', + 'transport' => 'postMessage', + 'sanitize_callback' => 'chromax_sanitize_select', + ) ); + + $wp_customize->add_control( + new WP_Customize_Control( + $wp_customize, 'chromax_h' . $i . '_font_style_option', array( + 'label' => __( 'Font Style', 'chromax' ), + 'section' => 'chromax_headings_typography', + 'type' => 'select', + 'choices' => array( + 'inherit' => __( 'Inherit', 'chromax' ), + 'normal' => __( 'Normal', 'chromax' ), + 'italic' => __( 'Italic', 'chromax' ), + 'oblique' => __( 'oblique', 'chromax' ), + ), + ) + ) + ); + + // Heading Text Transform // + $wp_customize->add_setting( 'chromax_h' . $i . '_text_transform_option', array( + 'capability' => 'edit_theme_options', + 'default' => 'inherit', + 'transport' => 'postMessage', + 'sanitize_callback' => 'chromax_sanitize_select', + ) ); + + $wp_customize->add_control( + new WP_Customize_Control( + $wp_customize, 'chromax_h' . $i . '_text_transform_option', array( + 'label' => __( 'Text Transform', 'chromax' ), + 'section' => 'chromax_headings_typography', + 'type' => 'select', + 'choices' => array( + 'inherit' => __( 'Default', 'chromax' ), + 'uppercase' => __( 'Uppercase', 'chromax' ), + 'lowercase' => __( 'Lowercase', 'chromax' ), + 'capitalize' => __( 'Capitalize', 'chromax' ), + ), + ) + ) + ); + + // Heading Text Decoration // + $wp_customize->add_setting( 'chromax_h' . $i . '_txt_decoration_option', array( + 'capability' => 'edit_theme_options', + 'default' => 'inherit', + 'transport' => 'postMessage', + 'sanitize_callback' => 'chromax_sanitize_select', + ) ); + + $wp_customize->add_control( + new WP_Customize_Control( + $wp_customize, 'chromax_h' . $i . '_txt_decoration_option', array( + 'label' => __( 'Text Decoration', 'chromax' ), + 'section' => 'chromax_headings_typography', + 'type' => 'select', + 'choices' => array( + 'inherit' => __( 'Inherit', 'chromax' ), + 'underline' => __( 'Underline', 'chromax' ), + 'overline' => __( 'Overline', 'chromax' ), + 'line-through' => __( 'Line Through', 'chromax' ), + 'none' => __( 'None', 'chromax' ), + ), + ) + ) + ); + + // Upgrade + if ( class_exists( 'Desert_Companion_Customize_Upgrade_Control' ) ) { + $wp_customize->add_setting( + 'chromax_h' . $i . '_typography_option_upsale', + array( + 'capability' => 'edit_theme_options', + 'sanitize_callback' => 'sanitize_text_field', + )); + + $wp_customize->add_control( + new Desert_Companion_Customize_Upgrade_Control + ($wp_customize, + 'chromax_h' . $i . '_typography_option_upsale', + array( + 'label' => __( 'Typography Features', 'chromax' ), + 'section' => 'chromax_headings_typography', + ) + ) + ); + } +} +} +add_action( 'customize_register', 'chromax_typography_customize' ); \ No newline at end of file diff --git a/wp-content/themes/chromax/inc/customizer/sanitization.php b/wp-content/themes/chromax/inc/customizer/sanitization.php new file mode 100644 index 0000000..958893f --- /dev/null +++ b/wp-content/themes/chromax/inc/customizer/sanitization.php @@ -0,0 +1,107 @@ +add_setting()` + * 'sanitize_callback'. It is wrapped in a callback here merely for example purposes. + * + * @see wp_filter_post_kses() https://developer.wordpress.org/reference/functions/wp_filter_post_kses/ + * + * @param string $html HTML to sanitize. + * @return string Sanitized HTML. + */ +function chromax_sanitize_html( $html ) { + return wp_kses_post( force_balance_tags( $html ) ); +} + + +/** + * Select sanitization callback example. + * + * - Sanitization: select + * - Control: select, radio + * + * Sanitization callback for 'select' and 'radio' type controls. This callback sanitizes `$input` + * as a slug, and then validates `$input` against the choices defined for the control. + * + * @see sanitize_key() https://developer.wordpress.org/reference/functions/sanitize_key/ + * @see $wp_customize->get_control() https://developer.wordpress.org/reference/classes/wp_customize_manager/get_control/ + * + * @param string $input Slug to sanitize. + * @param WP_Customize_Setting $setting Setting instance. + * @return string Sanitized slug if it is a valid choice; otherwise, the setting default. + */ +function chromax_sanitize_select( $input, $setting ) { + + // Ensure input is a slug. + $input = sanitize_key( $input ); + + // Get list of choices from the control associated with the setting. + $choices = $setting->manager->get_control( $setting->id )->choices; + + // If the input is a valid key, return it; otherwise, return the default. + return ( array_key_exists( $input, $choices ) ? $input : $setting->default ); +} + +/** + * URL sanitization callback example. + * + * - Sanitization: url + * - Control: text, url + * + * Sanitization callback for 'url' type text inputs. This callback sanitizes `$url` as a valid URL. + * + * NOTE: esc_url_raw() can be passed directly as `$wp_customize->add_setting()` 'sanitize_callback'. + * It is wrapped in a callback here merely for example purposes. + * + * @see esc_url_raw() https://developer.wordpress.org/reference/functions/esc_url_raw/ + * + * @param string $url URL to sanitize. + * @return string Sanitized URL. + */ +function chromax_sanitize_url( $url ) { + return esc_url_raw( $url ); +} + + +/* Sanitization Text*/ +function chromax_sanitize_text( $text ) { + return wp_filter_post_kses( $text ); +} + +/* Sanitization Integer*/ +function chromax_sanitize_integer( $input ) { + if( is_numeric( $input ) ) { + return intval( $input ); + } +} \ No newline at end of file diff --git a/wp-content/themes/chromax/inc/template-tags.php b/wp-content/themes/chromax/inc/template-tags.php new file mode 100644 index 0000000..5d9fef3 --- /dev/null +++ b/wp-content/themes/chromax/inc/template-tags.php @@ -0,0 +1,1094 @@ +'; + if ( is_day() ) : + /* translators: %1$s %2$s: date */ + printf( esc_html__( '%1$s %2$s', 'chromax' ), esc_html__('Archives','chromax'), get_the_date() ); + elseif ( is_month() ) : + /* translators: %1$s %2$s: month */ + printf( esc_html__( '%1$s %2$s', 'chromax' ), esc_html__('Archives','chromax'), get_the_date( 'F Y' ) ); + elseif ( is_year() ) : + /* translators: %1$s %2$s: year */ + printf( esc_html__( '%1$s %2$s', 'chromax' ), esc_html__('Archives','chromax'), get_the_date( 'Y' ) ); + elseif( is_author() ): + /* translators: %1$s %2$s: author */ + printf( esc_html__( '%1$s %2$s', 'chromax' ), esc_html__('All posts by','chromax'), get_the_author() ); + elseif( is_category() ): + /* translators: %1$s %2$s: category */ + printf( esc_html__( '%1$s %2$s', 'chromax' ), esc_html__('Category','chromax'), single_cat_title( '', false ) ); + elseif( is_tag() ): + /* translators: %1$s %2$s: tag */ + printf( esc_html__( '%1$s %2$s', 'chromax' ), esc_html__('Tag','chromax'), single_tag_title( '', false ) ); + elseif( class_exists( 'WooCommerce' ) && is_shop() ): + /* translators: %1$s %2$s: WooCommerce */ + printf( esc_html__( '%1$s %2$s', 'chromax' ), esc_html__('Shop','chromax'), single_tag_title( '', false )); + elseif( is_archive() ): + the_archive_title( '

    ', '

    ' ); + endif; + echo ''; + } + elseif( is_404() ) + { + echo '

    '; + /* translators: %1$s: 404 */ + printf( esc_html__( '%1$s ', 'chromax' ) , esc_html__('404','chromax') ); + echo '

    '; + } + elseif( is_search() ) + { + echo '

    '; + /* translators: %1$s %2$s: search */ + printf( esc_html__( '%1$s %2$s', 'chromax' ), esc_html__('Search results for','chromax'), get_search_query() ); + echo '

    '; + } + else + { + echo '

    '.esc_html( get_the_title() ).'

    '; + } +} + + +/** + * Theme Breadcrumbs Url +*/ +function chromax_page_url() { + $page_url = 'http'; + if ( key_exists("HTTPS", $_SERVER) && ( $_SERVER["HTTPS"] == "on" ) ){ + $page_url .= "s"; + } + $page_url .= "://"; + if ($_SERVER["SERVER_PORT"] != "80") { + $page_url .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; + } else { + $page_url .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; + } + return $page_url; +} + + +/** + * Theme Breadcrumbs +*/ +if( !function_exists('chromax_page_header_breadcrumbs') ) : + function chromax_page_header_breadcrumbs() { + global $post; + $homeLink = home_url(); + + /* ---------- Front page ---------- */ + if ( is_front_page() ) : + echo ''; + echo ''; + + /* ---------- Blog (latest posts) page ---------- */ + elseif ( is_home() ) : + echo ''; + $posts_page_id = get_option('page_for_posts'); + if ( $posts_page_id ) { + echo ''; + } else { + echo ''; + } + + else: + echo ''; + + /* ---------- WooCommerce Shop page ---------- */ + if ( function_exists('is_shop') && is_shop() ) { + $shop_id = wc_get_page_id('shop'); + if ($shop_id > 0) { + echo ''; + } + + /* ---------- WooCommerce Product Category ---------- */ + } elseif ( function_exists('is_product_category') && is_product_category() ) { + $current_cat = get_queried_object(); + echo ''; + echo ''; + + /* ---------- Blog Category ---------- */ + } elseif ( is_category() ) { + echo ''; + + /* ---------- Date Archives ---------- */ + } elseif ( is_day() ) { + echo ''; + echo ''; + echo ''; + + } elseif ( is_month() ) { + echo ''; + echo ''; + + } elseif ( is_year() ) { + echo ''; + + /* ---------- WooCommerce Single Product ---------- */ + } elseif ( is_single() && get_post_type() == 'product' ) { + $shop_id = wc_get_page_id('shop'); + if ($shop_id > 0) { + echo ''; + } + + // show product category + $terms = get_the_terms( get_the_ID(), 'product_cat' ); + if ( $terms && ! is_wp_error( $terms ) ) { + $first_term = current($terms); + echo ''; + } + + echo ''; + + /* ---------- WordPress Normal Page with Parents ---------- */ + } elseif ( is_page() && $post->post_parent ) { + $parent_id = $post->post_parent; + $breadcrumbs = array(); + while ($parent_id) { + $page = get_page($parent_id); + $breadcrumbs[] = ''; + $parent_id = $page->post_parent; + } + $breadcrumbs = array_reverse($breadcrumbs); + foreach ($breadcrumbs as $crumb) echo $crumb; + echo ''; + + /* ---------- Search ---------- */ + } elseif( is_search() ) { + echo ''; + + /* ---------- 404 ---------- */ + } elseif( is_404() ) { + echo ''; + + /* ---------- Default ---------- */ + } else { + echo ''; + } + endif; + } +endif; + +// Chromax Excerpt Read More +if ( ! function_exists( 'chromax_execerpt_btn' ) ) : +function chromax_execerpt_btn() { + $chromax_show_post_btn = get_theme_mod('chromax_show_post_btn','1'); + $chromax_read_btn_txt = get_theme_mod('chromax_read_btn_txt','Read more'); + if ( $chromax_show_post_btn == '1' ) { + ?> + + implode( '&family=', $font_families ), + 'display' => 'swap', + ), 'https://fonts.googleapis.com/css2' ); + + require_once get_theme_file_path( 'inc/wptt-webfont-loader.php' ); + + return wptt_get_webfont_url( esc_url_raw( $fonts_url ) ); +} + +function chromax_google_fonts_scripts_styles() { + wp_enqueue_style( 'chromax-google-fonts', chromax_google_fonts_url(), array(), null ); +} +add_action( 'wp_enqueue_scripts', 'chromax_google_fonts_scripts_styles' ); + + +/** + * Adds custom classes to the array of body classes. + * + * @param array $classes Classes for the body element. + * @return array + */ +function chromax_body_classes( $classes ) { + // Adds a class of group-blog to blogs with more than 1 published author. + if ( is_multi_author() ) { + $classes[] = 'group-blog'; + } + + // Adds a class of hfeed to non-singular pages. + if ( ! is_singular() ) { + $classes[] = 'hfeed'; + } + + return $classes; +} +add_filter( 'body_class', 'chromax_body_classes' ); + +function chromax_post_classes( $classes ) { + if ( is_single() ) : + $classes[]='single-post'; + endif; + return $classes; +} +add_filter( 'post_class', 'chromax_post_classes' ); + +if ( ! function_exists( 'wp_body_open' ) ) { + /** + * Backward compatibility for wp_body_open hook. + * + * @since 1.0.0 + */ + function wp_body_open() { + do_action( 'wp_body_open' ); + } +} + +if (!function_exists('chromax_str_replace_assoc')) { + + /** + * chromax_str_replace_assoc + * @param array $replace + * @param array $subject + * @return array + */ + function chromax_str_replace_assoc(array $replace, $subject) { + return str_replace(array_keys($replace), array_values($replace), $subject); + } +} + +/*========================================= +Chromax Site Preloader +=========================================*/ +if ( ! function_exists( 'chromax_site_preloader' ) ) : +function chromax_site_preloader() { + $chromax_hs_preloader_option = get_theme_mod( 'chromax_hs_preloader_option','1'); + if($chromax_hs_preloader_option == '1') { + ?> +
    + +
    +
    +
    + %1$s', 'chromax'),$str); + } + ?> +
    +

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + <?php echo esc_attr(get_bloginfo( 'title' )); ?> + + + + + + + + esc_html__( 'fab fa-facebook-f', 'chromax' ), + 'link' => esc_url( '#'), + 'id' => 'customizer_repeater_header_social_001', + ), + array( + 'icon_value' => esc_html__( 'fab fa-google-plus-g', 'chromax' ), + 'link' => esc_url( '#'), + 'id' => 'customizer_repeater_header_social_002', + ), + array( + 'icon_value' => esc_html__( 'fab fa-x-twitter', 'chromax' ), + 'link' => esc_url( '#'), + 'id' => 'customizer_repeater_header_social_003', + ), + array( + 'icon_value' => esc_html__( 'fab fa-tiktok', 'chromax' ), + 'link' => esc_url( '#'), + 'id' => 'customizer_repeater_header_social_005', + ) + ) + ) + ); +} + +/*========================================= +Chromax Social Icon +=========================================*/ +if ( ! function_exists( 'chromax_site_social' ) ) : +function chromax_site_social() { + // Social + $chromax_hs_hdr_social = get_theme_mod( 'chromax_hs_hdr_social','1'); + $chromax_hdr_social = get_theme_mod( 'chromax_hdr_social',chromax_get_social_icon_default()); + if($chromax_hs_hdr_social=='1'): ?> + + +
    +
    +
    +
    +
    + + +
    +
    +
    +
    + + +
    +
    +
    +
    +
    + 'primary_menu', + 'container' => '', + 'menu_class' => 'dt_navbar-mainmenu', + 'fallback_cb' => 'chromax_fallback_page_menu', + 'walker' => new WP_Bootstrap_Navwalker() + ) + ); + } +endif; +add_action( 'chromax_site_header_navigation', 'chromax_site_header_navigation' ); + + +/*========================================= +Chromax Header Button +=========================================*/ +if ( ! function_exists( 'chromax_header_button' ) ) : +function chromax_header_button() { + $chromax_hs_hdr_btn = get_theme_mod( 'chromax_hs_hdr_btn','1'); + $chromax_hdr_btn_icon = get_theme_mod( 'chromax_hdr_btn_icon','fal fa-arrow-right-long'); + $chromax_hdr_btn_lbl = get_theme_mod( 'chromax_hdr_btn_lbl','Get A Quote'); + $chromax_hdr_btn_link = get_theme_mod( 'chromax_hdr_btn_link','#'); + $chromax_hdr_btn_target = get_theme_mod( 'chromax_hdr_btn_target'); + if($chromax_hdr_btn_target=='1'): $target='target=_blank'; else: $target=''; endif; + if($chromax_hs_hdr_btn=='1' && !empty($chromax_hdr_btn_lbl)): +?> +
  • + class="dt-btn dt-btn-primary"> +
  • ++123 7878 222'); + if($chromax_hs_hdr_contact=='1'): +?> +
  • + +
  • + +
  • + + +
  • + +
  • + + + + + cart->cart_contents_count; + + if ( $count > 0 ) { + ?> + + + + + +
    + +
    +
  • + cart->cart_contents_count; + ?> + cart->cart_contents_count; + + if ( $count > 0 ) { + ?> + + + + + +
  • + + + + + +
  • + + +

    + +

    +
    + + +

    + +

    + +

    + + + + + + date_i18n('Y'), + '[site_title]' => get_bloginfo('name'), + '[theme_author]' => sprintf(__('Desert Themes', 'chromax')), + ); + ?> + + + + + 'menu_order, post_title', 'menu_class' => 'menu', 'echo' => true, 'link_before' => '', 'link_after' => ''); + $args = wp_parse_args( $args, $defaults ); + $args = apply_filters( 'wp_page_menu_args', $args ); + $menu = ''; + $list_args = $args; + // Show Home in the menu + if ( ! empty($args['show_home']) ) { + if ( true === $args['show_home'] || '1' === $args['show_home'] || 1 === $args['show_home'] ) + $text = 'Home'; + else + $text = $args['show_home']; + $class = ''; + if ( is_front_page() && !is_paged() ) + { + $class = 'class="nav-item menu-item active"'; + } + else + { + $class = 'class="nav-item menu-item "'; + } + $menu .= '
  • ' . $args['link_before'] . $text . $args['link_after'] . '
  • '; + // If the front page is a page, add it to the exclude list + if (get_option('show_on_front') == 'page') { + if ( !empty( $list_args['exclude'] ) ) { + $list_args['exclude'] .= ','; + } else { + $list_args['exclude'] = ''; + } + $list_args['exclude'] .= get_option('page_on_front'); + } + } + $list_args['echo'] = false; + $list_args['title_li'] = ''; + $list_args['walker'] = new chromax_walker_page_menu; + $menu .= str_replace( array( "\r", "\n", "\t" ), '', wp_list_pages($list_args) ); + if ( $menu ) + $menu = '
      ' . $menu . '
    '; + + $menu = $menu . "\n"; + $menu = apply_filters( 'wp_page_menu', $menu, $args ); + if ( $args['echo'] ) + echo $menu; + else + return $menu; +} +class chromax_walker_page_menu extends Walker_Page{ + function start_lvl( &$output, $depth = 0, $args = array() ) { + $indent = str_repeat("\t", $depth); + $output .= "\n$indent
    '; + + ?> + +
    +
    +
    + + + +
    + '; echo single_post_title(); echo ''; + } else { + chromax_theme_page_header_title(); + } + ?> +
    +
      + +
    + +
    +
    + + \ No newline at end of file diff --git a/wp-content/themes/chromax/template-parts/site-header.php b/wp-content/themes/chromax/template-parts/site-header.php new file mode 100644 index 0000000..a9a989d --- /dev/null +++ b/wp-content/themes/chromax/template-parts/site-header.php @@ -0,0 +1,99 @@ + + + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    + +
    +
    +
    + +
    +
      + + + + + +
    +
    +
    +
    +
    +
    +
    +
    + + +
    +
    + +
    +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
      + + + +
    +
    +
    + + +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    \ No newline at end of file diff --git a/wp-content/themes/chromax/woocommerce.php b/wp-content/themes/chromax/woocommerce.php new file mode 100644 index 0000000..8b6dafa --- /dev/null +++ b/wp-content/themes/chromax/woocommerce.php @@ -0,0 +1,25 @@ + +
    +
    +
    + +
    + +
    + + +
    + +
    +
    +
    + \ No newline at end of file diff --git a/wp-content/themes/chromax/woocommerce/cart/mini-cart.php b/wp-content/themes/chromax/woocommerce/cart/mini-cart.php new file mode 100644 index 0000000..79f9a53 --- /dev/null +++ b/wp-content/themes/chromax/woocommerce/cart/mini-cart.php @@ -0,0 +1,170 @@ + +
    +
    +cart->is_empty() ) : ?> +
      + cart->get_cart() as $cart_item_key => $cart_item ) { + $_product = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key ); + $product_id = apply_filters( 'woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key ); + + if ( $_product && $_product->exists() && $cart_item['quantity'] > 0 && apply_filters( 'woocommerce_widget_cart_item_visible', true, $cart_item, $cart_item_key ) ) { + $product_name = apply_filters( 'woocommerce_cart_item_name', $_product->get_name(), $cart_item, $cart_item_key ); + $thumbnail = apply_filters( 'woocommerce_cart_item_thumbnail', $_product->get_image(), $cart_item, $cart_item_key ); + $product_price = apply_filters( 'woocommerce_cart_item_price', WC()->cart->get_product_price( $_product ), $cart_item, $cart_item_key ); + $product_permalink = apply_filters( 'woocommerce_cart_item_permalink', $_product->is_visible() ? $_product->get_permalink( $cart_item ) : '', $cart_item, $cart_item_key ); + ?> +
    • + + + + + + + + + + + ' . sprintf( '%s × %s', $cart_item['quantity'], $product_price ) . '', $cart_item, $cart_item_key ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?> +
    • + +
    + + + + + +

    + cart->get_cart_subtotal(); ?> +

    +

    + + + + + +

    + + + +
    +
    + + +
    +
    +
    + cart->is_empty() ) : ?> + +
      + cart->get_cart() as $cart_item_key => $cart_item ) { + $_product = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key ); + $product_id = apply_filters( 'woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key ); + + if ( $_product && $_product->exists() && $cart_item['quantity'] > 0 && apply_filters( 'woocommerce_widget_cart_item_visible', true, $cart_item, $cart_item_key ) ) { + $product_name = apply_filters( 'woocommerce_cart_item_name', $_product->get_name(), $cart_item, $cart_item_key ); + $thumbnail = apply_filters( 'woocommerce_cart_item_thumbnail', $_product->get_image(), $cart_item, $cart_item_key ); + $product_price = apply_filters( 'woocommerce_cart_item_price', WC()->cart->get_product_price( $_product ), $cart_item, $cart_item_key ); + $product_permalink = apply_filters( 'woocommerce_cart_item_permalink', $_product->is_visible() ? $_product->get_permalink( $cart_item ) : '', $cart_item, $cart_item_key ); + ?> +
    • + ×', + esc_url( wc_get_cart_remove_url( $cart_item_key ) ), + esc_attr__( 'Remove this item', 'chromax' ), + esc_attr( $product_id ), + esc_attr( $cart_item_key ), + esc_attr( $_product->get_sku() ) + ), + $cart_item_key + ); + ?> + + + + + + + + + + + ' . sprintf( '%s × %s', $cart_item['quantity'], $product_price ) . '', $cart_item, $cart_item_key ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?> +
    • + +
    + + + + + +

    + cart->get_cart_subtotal(); ?> +

    +

    + + + + +

    + + + + +
    +
    +
    + is_visible() ) { + return; +} +?> +
  • > +
    +
    + is_on_sale() ) : ?> + ' . esc_html__( 'Sale', 'chromax' ) . '', $product ); ?> + + +
    + +
    +
    + +

    +
    + get_price_html(); ?> +
    +
  • \ No newline at end of file diff --git a/wp-content/themes/index.php b/wp-content/themes/index.php new file mode 100644 index 0000000..6220032 --- /dev/null +++ b/wp-content/themes/index.php @@ -0,0 +1,2 @@ +get( 'Version' ) + ); + wp_style_add_data( + 'twentytwentyfive-style', + 'path', + get_parent_theme_file_path( $src ) + ); + } +endif; +add_action( 'wp_enqueue_scripts', 'twentytwentyfive_enqueue_styles' ); + +// Registers custom block styles. +if ( ! function_exists( 'twentytwentyfive_block_styles' ) ) : + /** + * Registers custom block styles. + * + * @since Twenty Twenty-Five 1.0 + * + * @return void + */ + function twentytwentyfive_block_styles() { + register_block_style( + 'core/list', + array( + 'name' => 'checkmark-list', + 'label' => __( 'Checkmark', 'twentytwentyfive' ), + 'inline_style' => ' + ul.is-style-checkmark-list { + list-style-type: "\2713"; + } + + ul.is-style-checkmark-list li { + padding-inline-start: 1ch; + }', + ) + ); + } +endif; +add_action( 'init', 'twentytwentyfive_block_styles' ); + +// Registers pattern categories. +if ( ! function_exists( 'twentytwentyfive_pattern_categories' ) ) : + /** + * Registers pattern categories. + * + * @since Twenty Twenty-Five 1.0 + * + * @return void + */ + function twentytwentyfive_pattern_categories() { + + register_block_pattern_category( + 'twentytwentyfive_page', + array( + 'label' => __( 'Pages', 'twentytwentyfive' ), + 'description' => __( 'A collection of full page layouts.', 'twentytwentyfive' ), + ) + ); + + register_block_pattern_category( + 'twentytwentyfive_post-format', + array( + 'label' => __( 'Post formats', 'twentytwentyfive' ), + 'description' => __( 'A collection of post format patterns.', 'twentytwentyfive' ), + ) + ); + } +endif; +add_action( 'init', 'twentytwentyfive_pattern_categories' ); + +// Registers block binding sources. +if ( ! function_exists( 'twentytwentyfive_register_block_bindings' ) ) : + /** + * Registers the post format block binding source. + * + * @since Twenty Twenty-Five 1.0 + * + * @return void + */ + function twentytwentyfive_register_block_bindings() { + register_block_bindings_source( + 'twentytwentyfive/format', + array( + 'label' => _x( 'Post format name', 'Label for the block binding placeholder in the editor', 'twentytwentyfive' ), + 'get_value_callback' => 'twentytwentyfive_format_binding', + ) + ); + } +endif; +add_action( 'init', 'twentytwentyfive_register_block_bindings' ); + +// Registers block binding callback function for the post format name. +if ( ! function_exists( 'twentytwentyfive_format_binding' ) ) : + /** + * Callback function for the post format name block binding source. + * + * @since Twenty Twenty-Five 1.0 + * + * @return string|void Post format name, or nothing if the format is 'standard'. + */ + function twentytwentyfive_format_binding() { + $post_format_slug = get_post_format(); + + if ( $post_format_slug && 'standard' !== $post_format_slug ) { + return get_post_format_string( $post_format_slug ); + } + } +endif; diff --git a/wp-content/themes/twentytwentyfive/package-lock.json b/wp-content/themes/twentytwentyfive/package-lock.json new file mode 100644 index 0000000..10a7928 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/package-lock.json @@ -0,0 +1,1725 @@ +{ + "name": "twentytwentyfive", + "version": "1.4.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "twentytwentyfive", + "version": "1.4.0", + "license": "GPL-2.0-or-later", + "devDependencies": { + "@wordpress/browserslist-config": "^6.34.0", + "cssnano": "^7.1.2", + "postcss": "^8.5.6", + "postcss-cli": "^11.0.1" + }, + "engines": { + "node": ">=20.10.0", + "npm": ">=10.2.3" + } + }, + "node_modules/@wordpress/browserslist-config": { + "version": "6.34.0", + "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-6.34.0.tgz", + "integrity": "sha512-pmcCkqG2jW+UUBSkX7rSZS33mcW6M0fKcJPD40TlK2cUZvECS5TDa2BC/b80PfIsT2kSw+Z9Wv+8eyX6I8HGjQ==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=18.12.0", + "npm": ">=8.19.2" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/baseline-browser-mapping": { + "version": "2.8.25", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.25.tgz", + "integrity": "sha512-2NovHVesVF5TXefsGX1yzx1xgr7+m9JQenvz6FQY3qd+YXkKkYiv+vTCc7OriP9mcDZpTC5mAOYN4ocd29+erA==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.0.tgz", + "integrity": "sha512-tbydkR/CxfMwelN0vwdP/pLkDwyAASZ+VfWm4EOwlB6SWhx1sYnWLqo8N5j0rAzPfzfRaxt0mM/4wPU/Su84RQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "baseline-browser-mapping": "^2.8.25", + "caniuse-lite": "^1.0.30001754", + "electron-to-chromium": "^1.5.249", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.1.4" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001754", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001754.tgz", + "integrity": "sha512-x6OeBXueoAceOmotzx3PO4Zpt4rzpeIFsSr6AAePTZxSkXiYDUmpypEl7e2+8NCd9bD7bXjqyef8CJYPC1jfxg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + } + }, + "node_modules/css-declaration-sorter": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.3.0.tgz", + "integrity": "sha512-LQF6N/3vkAMYF4xoHLJfG718HRJh34Z8BnNhd6bosOMIVjMlhuZK5++oZa3uYAgrI5+7x2o27gUqTR2U/KjUOQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-select": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz", + "integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.12.2", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-7.1.2.tgz", + "integrity": "sha512-HYOPBsNvoiFeR1eghKD5C3ASm64v9YVyJB4Ivnl2gqKoQYvjjN/G0rztvKQq8OxocUtC6sjqY8jwYngIB4AByA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssnano-preset-default": "^7.0.10", + "lilconfig": "^3.1.3" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/cssnano-preset-default": { + "version": "7.0.10", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-7.0.10.tgz", + "integrity": "sha512-6ZBjW0Lf1K1Z+0OKUAUpEN62tSXmYChXWi2NAA0afxEVsj9a+MbcB1l5qel6BHJHmULai2fCGRthCeKSFbScpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.27.0", + "css-declaration-sorter": "^7.2.0", + "cssnano-utils": "^5.0.1", + "postcss-calc": "^10.1.1", + "postcss-colormin": "^7.0.5", + "postcss-convert-values": "^7.0.8", + "postcss-discard-comments": "^7.0.5", + "postcss-discard-duplicates": "^7.0.2", + "postcss-discard-empty": "^7.0.1", + "postcss-discard-overridden": "^7.0.1", + "postcss-merge-longhand": "^7.0.5", + "postcss-merge-rules": "^7.0.7", + "postcss-minify-font-values": "^7.0.1", + "postcss-minify-gradients": "^7.0.1", + "postcss-minify-params": "^7.0.5", + "postcss-minify-selectors": "^7.0.5", + "postcss-normalize-charset": "^7.0.1", + "postcss-normalize-display-values": "^7.0.1", + "postcss-normalize-positions": "^7.0.1", + "postcss-normalize-repeat-style": "^7.0.1", + "postcss-normalize-string": "^7.0.1", + "postcss-normalize-timing-functions": "^7.0.1", + "postcss-normalize-unicode": "^7.0.5", + "postcss-normalize-url": "^7.0.1", + "postcss-normalize-whitespace": "^7.0.1", + "postcss-ordered-values": "^7.0.2", + "postcss-reduce-initial": "^7.0.5", + "postcss-reduce-transforms": "^7.0.1", + "postcss-svgo": "^7.1.0", + "postcss-unique-selectors": "^7.0.4" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/cssnano-utils": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-5.0.1.tgz", + "integrity": "sha512-ZIP71eQgG9JwjVZsTPSqhc6GHgEr53uJ7tK5///VfyWj6Xp2DBmixWHqJgPno+PqATzn48pL42ww9x5SSGmhZg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/dependency-graph": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-1.0.0.tgz", + "integrity": "sha512-cW3gggJ28HZ/LExwxP2B++aiKxhJXMSIt9K48FOXQkm+vuG5gyatXnLsONRJdzO/7VfjDIiaOOa/bs4l464Lwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.250", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.250.tgz", + "integrity": "sha512-/5UMj9IiGDMOFBnN4i7/Ry5onJrAGSbOGo3s9FEKmwobGq6xw832ccET0CE3CkkMBZ8GJSlUIesZofpyurqDXw==", + "dev": true, + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-extra": { + "version": "11.3.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.2.tgz", + "integrity": "sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/mdn-data": { + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz", + "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-releases": { + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-calc": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-10.1.1.tgz", + "integrity": "sha512-NYEsLHh8DgG/PRH2+G9BTuUdtf9ViS+vdoQ0YA5OQdGsfN4ztiwtDWNtBl9EKeqNMFnIu8IKZ0cLxEQ5r5KVMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12 || ^20.9 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.38" + } + }, + "node_modules/postcss-cli": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-11.0.1.tgz", + "integrity": "sha512-0UnkNPSayHKRe/tc2YGW6XnSqqOA9eqpiRMgRlV1S6HdGi16vwJBx7lviARzbV1HpQHqLLRH3o8vTcB0cLc+5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^3.3.0", + "dependency-graph": "^1.0.0", + "fs-extra": "^11.0.0", + "picocolors": "^1.0.0", + "postcss-load-config": "^5.0.0", + "postcss-reporter": "^7.0.0", + "pretty-hrtime": "^1.0.3", + "read-cache": "^1.0.0", + "slash": "^5.0.0", + "tinyglobby": "^0.2.12", + "yargs": "^17.0.0" + }, + "bin": { + "postcss": "index.js" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-colormin": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-7.0.5.tgz", + "integrity": "sha512-ekIBP/nwzRWhEMmIxHHbXHcMdzd1HIUzBECaj5KEdLz9DVP2HzT065sEhvOx1dkLjYW7jyD0CngThx6bpFi2fA==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.27.0", + "caniuse-api": "^3.0.0", + "colord": "^2.9.3", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-convert-values": { + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-7.0.8.tgz", + "integrity": "sha512-+XNKuPfkHTCEo499VzLMYn94TiL3r9YqRE3Ty+jP7UX4qjewUONey1t7CG21lrlTLN07GtGM8MqFVp86D4uKJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.27.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-discard-comments": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-7.0.5.tgz", + "integrity": "sha512-IR2Eja8WfYgN5n32vEGSctVQ1+JARfu4UH8M7bgGh1bC+xI/obsPJXaBpQF7MAByvgwZinhpHpdrmXtvVVlKcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^7.1.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-7.0.2.tgz", + "integrity": "sha512-eTonaQvPZ/3i1ASDHOKkYwAybiM45zFIc7KXils4mQmHLqIswXD9XNOKEVxtTFnsmwYzF66u4LMgSr0abDlh5w==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-discard-empty": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-7.0.1.tgz", + "integrity": "sha512-cFrJKZvcg/uxB6Ijr4l6qmn3pXQBna9zyrPC+sK0zjbkDUZew+6xDltSF7OeB7rAtzaaMVYSdbod+sZOCWnMOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-7.0.1.tgz", + "integrity": "sha512-7c3MMjjSZ/qYrx3uc1940GSOzN1Iqjtlqe8uoSg+qdVPYyRb0TILSqqmtlSFuE4mTDECwsm397Ya7iXGzfF7lg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-load-config": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-5.1.0.tgz", + "integrity": "sha512-G5AJ+IX0aD0dygOE0yFZQ/huFFMSNneyfp0e3/bT05a8OfPC5FUoZRPfGijUdGOJNMewJiwzcHJXFafFzeKFVA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.1.1", + "yaml": "^2.4.2" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "jiti": ">=1.21.0", + "postcss": ">=8.0.9", + "tsx": "^4.8.1" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tsx": { + "optional": true + } + } + }, + "node_modules/postcss-merge-longhand": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-7.0.5.tgz", + "integrity": "sha512-Kpu5v4Ys6QI59FxmxtNB/iHUVDn9Y9sYw66D6+SZoIk4QTz1prC4aYkhIESu+ieG1iylod1f8MILMs1Em3mmIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^7.0.5" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-merge-rules": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-7.0.7.tgz", + "integrity": "sha512-njWJrd/Ms6XViwowaaCc+/vqhPG3SmXn725AGrnl+BgTuRPEacjiLEaGq16J6XirMJbtKkTwnt67SS+e2WGoew==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.27.0", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^5.0.1", + "postcss-selector-parser": "^7.1.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-7.0.1.tgz", + "integrity": "sha512-2m1uiuJeTplll+tq4ENOQSzB8LRnSUChBv7oSyFLsJRtUgAAJGP6LLz0/8lkinTgxrmJSPOEhgY1bMXOQ4ZXhQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-7.0.1.tgz", + "integrity": "sha512-X9JjaysZJwlqNkJbUDgOclyG3jZEpAMOfof6PUZjPnPrePnPG62pS17CjdM32uT1Uq1jFvNSff9l7kNbmMSL2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "colord": "^2.9.3", + "cssnano-utils": "^5.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-minify-params": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-7.0.5.tgz", + "integrity": "sha512-FGK9ky02h6Ighn3UihsyeAH5XmLEE2MSGH5Tc4tXMFtEDx7B+zTG6hD/+/cT+fbF7PbYojsmmWjyTwFwW1JKQQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.27.0", + "cssnano-utils": "^5.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-7.0.5.tgz", + "integrity": "sha512-x2/IvofHcdIrAm9Q+p06ZD1h6FPcQ32WtCRVodJLDR+WMn8EVHI1kvLxZuGKz/9EY5nAmI6lIQIrpo4tBy5+ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "postcss-selector-parser": "^7.1.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-7.0.1.tgz", + "integrity": "sha512-sn413ofhSQHlZFae//m9FTOfkmiZ+YQXsbosqOWRiVQncU2BA3daX3n0VF3cG6rGLSFVc5Di/yns0dFfh8NFgQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-7.0.1.tgz", + "integrity": "sha512-E5nnB26XjSYz/mGITm6JgiDpAbVuAkzXwLzRZtts19jHDUBFxZ0BkXAehy0uimrOjYJbocby4FVswA/5noOxrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-7.0.1.tgz", + "integrity": "sha512-pB/SzrIP2l50ZIYu+yQZyMNmnAcwyYb9R1fVWPRxm4zcUFCY2ign7rcntGFuMXDdd9L2pPNUgoODDk91PzRZuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-7.0.1.tgz", + "integrity": "sha512-NsSQJ8zj8TIDiF0ig44Byo3Jk9e4gNt9x2VIlJudnQQ5DhWAHJPF4Tr1ITwyHio2BUi/I6Iv0HRO7beHYOloYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-normalize-string": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-7.0.1.tgz", + "integrity": "sha512-QByrI7hAhsoze992kpbMlJSbZ8FuCEc1OT9EFbZ6HldXNpsdpZr+YXC5di3UEv0+jeZlHbZcoCADgb7a+lPmmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-7.0.1.tgz", + "integrity": "sha512-bHifyuuSNdKKsnNJ0s8fmfLMlvsQwYVxIoUBnowIVl2ZAdrkYQNGVB4RxjfpvkMjipqvbz0u7feBZybkl/6NJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-7.0.5.tgz", + "integrity": "sha512-X6BBwiRxVaFHrb2WyBMddIeB5HBjJcAaUHyhLrM2FsxSq5TFqcHSsK7Zu1otag+o0ZphQGJewGH1tAyrD0zX1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.27.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-normalize-url": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-7.0.1.tgz", + "integrity": "sha512-sUcD2cWtyK1AOL/82Fwy1aIVm/wwj5SdZkgZ3QiUzSzQQofrbq15jWJ3BA7Z+yVRwamCjJgZJN0I9IS7c6tgeQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-7.0.1.tgz", + "integrity": "sha512-vsbgFHMFQrJBJKrUFJNZ2pgBeBkC2IvvoHjz1to0/0Xk7sII24T0qFOiJzG6Fu3zJoq/0yI4rKWi7WhApW+EFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-ordered-values": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-7.0.2.tgz", + "integrity": "sha512-AMJjt1ECBffF7CEON/Y0rekRLS6KsePU6PRP08UqYW4UGFRnTXNrByUzYK1h8AC7UWTZdQ9O3Oq9kFIhm0SFEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssnano-utils": "^5.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-7.0.5.tgz", + "integrity": "sha512-RHagHLidG8hTZcnr4FpyMB2jtgd/OcyAazjMhoy5qmWJOx1uxKh4ntk0Pb46ajKM0rkf32lRH4C8c9qQiPR6IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.27.0", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-7.0.1.tgz", + "integrity": "sha512-MhyEbfrm+Mlp/36hvZ9mT9DaO7dbncU0CvWI8V93LRkY6IYlu38OPg3FObnuKTUxJ4qA8HpurdQOo5CyqqO76g==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-reporter": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.1.0.tgz", + "integrity": "sha512-/eoEylGWyy6/DOiMP5lmFRdmDKThqgn7D6hP2dXKJI/0rJSO1ADFNngZfDzxL0YAxFvws+Rtpuji1YIHj4mySA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "picocolors": "^1.0.0", + "thenby": "^1.3.4" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-7.1.0.tgz", + "integrity": "sha512-KnAlfmhtoLz6IuU3Sij2ycusNs4jPW+QoFE5kuuUOK8awR6tMxZQrs5Ey3BUz7nFCzT3eqyFgqkyrHiaU2xx3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^4.0.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >= 18" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-7.0.4.tgz", + "integrity": "sha512-pmlZjsmEAG7cHd7uK3ZiNSW6otSZ13RHuZ/4cDN/bVglS5EpF2r2oxY99SuOHa8m7AWoBCelTS3JPpzsIs8skQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^7.1.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sax": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.3.tgz", + "integrity": "sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ==", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylehacks": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-7.0.7.tgz", + "integrity": "sha512-bJkD0JkEtbRrMFtwgpJyBbFIwfDDONQ1Ov3sDLZQP8HuJ73kBOyx66H4bOcAbVWmnfLdvQ0AJwXxOMkpujcO6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.27.0", + "postcss-selector-parser": "^7.1.0" + }, + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, + "node_modules/svgo": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-4.0.0.tgz", + "integrity": "sha512-VvrHQ+9uniE+Mvx3+C9IEe/lWasXCU0nXMY2kZeLrHNICuRiC8uMPyM14UEaMOFA5mhyQqEkB02VoQ16n3DLaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "^11.1.0", + "css-select": "^5.1.0", + "css-tree": "^3.0.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.1.1", + "sax": "^1.4.1" + }, + "bin": { + "svgo": "bin/svgo.js" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/thenby": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", + "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.4.tgz", + "integrity": "sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yaml": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", + "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + } + } +} diff --git a/wp-content/themes/twentytwentyfive/package.json b/wp-content/themes/twentytwentyfive/package.json new file mode 100644 index 0000000..3251673 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/package.json @@ -0,0 +1,32 @@ +{ + "name": "twentytwentyfive", + "version": "1.4.0", + "description": "Default WP Theme", + "author": "The WordPress Contributors", + "license": "GPL-2.0-or-later", + "keywords": [ + "WordPress", + "Theme" + ], + "bugs": { + "url": "https://core.trac.wordpress.org/" + }, + "homepage": "https://wordpress.org/themes/twentytwentyfive/", + "engines": { + "node": ">=20.10.0", + "npm": ">=10.2.3" + }, + "devDependencies": { + "@wordpress/browserslist-config": "^6.34.0", + "postcss": "^8.5.6", + "postcss-cli": "^11.0.1", + "cssnano": "^7.1.2" + }, + "browserslist": [ + "extends @wordpress/browserslist-config" + ], + "scripts": { + "build": "postcss style.css --use cssnano -o style.min.css --no-map", + "watch": "postcss style.css --use cssnano -o style.min.css --no-map --watch" + } +} diff --git a/wp-content/themes/twentytwentyfive/parts/footer-columns.html b/wp-content/themes/twentytwentyfive/parts/footer-columns.html new file mode 100644 index 0000000..00ca2ec --- /dev/null +++ b/wp-content/themes/twentytwentyfive/parts/footer-columns.html @@ -0,0 +1 @@ + diff --git a/wp-content/themes/twentytwentyfive/parts/footer-newsletter.html b/wp-content/themes/twentytwentyfive/parts/footer-newsletter.html new file mode 100644 index 0000000..8e16988 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/parts/footer-newsletter.html @@ -0,0 +1 @@ + diff --git a/wp-content/themes/twentytwentyfive/parts/footer.html b/wp-content/themes/twentytwentyfive/parts/footer.html new file mode 100644 index 0000000..c2ea07c --- /dev/null +++ b/wp-content/themes/twentytwentyfive/parts/footer.html @@ -0,0 +1 @@ + diff --git a/wp-content/themes/twentytwentyfive/parts/header-large-title.html b/wp-content/themes/twentytwentyfive/parts/header-large-title.html new file mode 100644 index 0000000..2c7ccf8 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/parts/header-large-title.html @@ -0,0 +1 @@ + diff --git a/wp-content/themes/twentytwentyfive/parts/header.html b/wp-content/themes/twentytwentyfive/parts/header.html new file mode 100644 index 0000000..7e3e990 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/parts/header.html @@ -0,0 +1 @@ + diff --git a/wp-content/themes/twentytwentyfive/parts/sidebar.html b/wp-content/themes/twentytwentyfive/parts/sidebar.html new file mode 100644 index 0000000..a29f829 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/parts/sidebar.html @@ -0,0 +1 @@ + diff --git a/wp-content/themes/twentytwentyfive/parts/vertical-header.html b/wp-content/themes/twentytwentyfive/parts/vertical-header.html new file mode 100644 index 0000000..e102cc7 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/parts/vertical-header.html @@ -0,0 +1 @@ + diff --git a/wp-content/themes/twentytwentyfive/patterns/banner-about-book.php b/wp-content/themes/twentytwentyfive/patterns/banner-about-book.php new file mode 100644 index 0000000..dc06f30 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/banner-about-book.php @@ -0,0 +1,41 @@ + + + +
    + +
    + +
    + +

    + + + +

    + +
    + + + +
    + +
    <?php esc_attr_e( 'Image of a book', 'twentytwentyfive' ); ?>
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/banner-cover-big-heading.php b/wp-content/themes/twentytwentyfive/patterns/banner-cover-big-heading.php new file mode 100644 index 0000000..7819a4c --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/banner-cover-big-heading.php @@ -0,0 +1,35 @@ + + +
    + +
    + +
    + <?php esc_attr_e( 'Photo of a field full of flowers, a blue sky and a tree.', 'twentytwentyfive' ); ?> +
    + + + +
    + +

    + + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/banner-intro-image.php b/wp-content/themes/twentytwentyfive/patterns/banner-intro-image.php new file mode 100644 index 0000000..ea70d00 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/banner-intro-image.php @@ -0,0 +1,52 @@ + + +
    + +
    + +
    + +
    + <?php echo esc_attr_x( 'Picture of a flower', 'Alt text for intro picture.', 'twentytwentyfive' ); ?> +
    + +
    + + + +
    + +

    + + + +

    + + + +
    + +
    + +
    + +
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/banner-intro.php b/wp-content/themes/twentytwentyfive/patterns/banner-intro.php new file mode 100644 index 0000000..48a816a --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/banner-intro.php @@ -0,0 +1,28 @@ + + +
    + +

    + ' . esc_html_x( 'Fleurs', 'Example brand name.', 'twentytwentyfive' ) . '' + ); + ?> +

    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/banner-poster.php b/wp-content/themes/twentytwentyfive/patterns/banner-poster.php new file mode 100644 index 0000000..3c78fe3 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/banner-poster.php @@ -0,0 +1,69 @@ + + + + diff --git a/wp-content/themes/twentytwentyfive/patterns/banner-with-description-and-images-grid.php b/wp-content/themes/twentytwentyfive/patterns/banner-with-description-and-images-grid.php new file mode 100644 index 0000000..8fc3369 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/banner-with-description-and-images-grid.php @@ -0,0 +1,53 @@ + + +
    + +
    + +
    + +
    + +

    + + + +

    + ' . esc_html_x( 'Fleurs', 'Example brand name.', 'twentytwentyfive' ) . '' + ); + ?> +

    + + +
    + + + +
    <?php esc_attr_e( 'Photography close up of a red flower.', 'twentytwentyfive' ); ?>
    + +
    + + + +
    <?php esc_attr_e( 'Black and white photography close up of a flower.', 'twentytwentyfive' ); ?>
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/binding-format.php b/wp-content/themes/twentytwentyfive/patterns/binding-format.php new file mode 100644 index 0000000..a2ca92d --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/binding-format.php @@ -0,0 +1,16 @@ + + +

    + diff --git a/wp-content/themes/twentytwentyfive/patterns/comments.php b/wp-content/themes/twentytwentyfive/patterns/comments.php new file mode 100644 index 0000000..08c500f --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/comments.php @@ -0,0 +1,53 @@ + + +
    + +

    + + + + +
    + +
    + + +
    + + + + +
    + + +
    + +
    + +
    + +
    + + + + + + + + + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/contact-centered-social-link.php b/wp-content/themes/twentytwentyfive/patterns/contact-centered-social-link.php new file mode 100644 index 0000000..7fad89b --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/contact-centered-social-link.php @@ -0,0 +1,39 @@ + + + +
    + +
    + +

    Feel free to reach out.', 'Heading of the Contact social link pattern', 'twentytwentyfive' ) ); ?>

    + + + + + + + + + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/contact-info-locations.php b/wp-content/themes/twentytwentyfive/patterns/contact-info-locations.php new file mode 100644 index 0000000..393d0a7 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/contact-info-locations.php @@ -0,0 +1,101 @@ + + +
    + +
    + +

    + + + +
    + +
    + +

    + + + + + + + + +

    + + +

    + +
    + + + +
    + +
    + +

    + + +

    + +
    + + + +
    + +

    + + + +

    + +
    + + + +
    + +

    + + + +

    + +
    + + + +
    + +

    + + + +

    + +
    + +
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/contact-location-and-link.php b/wp-content/themes/twentytwentyfive/patterns/contact-location-and-link.php new file mode 100644 index 0000000..95cbbe3 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/contact-location-and-link.php @@ -0,0 +1,43 @@ + + +
    + +
    + +
    + +
    +

    + + + +

    + +
    + +
    + + + +
    + +
    <?php esc_attr_e( 'The business location', 'twentytwentyfive' ); ?>
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/cta-book-links.php b/wp-content/themes/twentytwentyfive/patterns/cta-book-links.php new file mode 100644 index 0000000..b142d08 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/cta-book-links.php @@ -0,0 +1,60 @@ + + +
    + +

    + + + +
    + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + +
    + + + +

    international editions.', 'Pattern placeholder text with link.', 'twentytwentyfive' ) ); ?>

    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/cta-book-locations.php b/wp-content/themes/twentytwentyfive/patterns/cta-book-locations.php new file mode 100644 index 0000000..37e6419 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/cta-book-locations.php @@ -0,0 +1,148 @@ + + +
    + +
    + +
    + +
    + +

    + + + +

    + +
    + +
    + + + +
    + +
    + +
    + +
    + +

    + + + +

    + +
    + + + +
    + +

    + + + +

    + +
    + + + +
    + +

    + + + +

    + +
    + + + +
    + +

    + + + +

    + +
    + +
    + + + +
    + +
    + +

    + + + +

    + +
    + + + +
    + +

    + + + +

    + +
    + + + +
    + +

    + + + +

    + +
    + + + +
    + +

    + + + +

    + +
    + +
    + +
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/cta-centered-heading.php b/wp-content/themes/twentytwentyfive/patterns/cta-centered-heading.php new file mode 100644 index 0000000..e1c8d7e --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/cta-centered-heading.php @@ -0,0 +1,34 @@ + + +
    + +
    + +

    + + +

    + + + +
    + +
    +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/cta-events-list.php b/wp-content/themes/twentytwentyfive/patterns/cta-events-list.php new file mode 100644 index 0000000..5cdd050 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/cta-events-list.php @@ -0,0 +1,171 @@ + + +
    + +
    + +

    + + + +

    + + + +
    + +
    + +
    + +

    + + + +

    + +
    + + + +
    + +

    + + + +
    + +
    + +
    + +
    + +
    + + + +
    +
    + +

    + historias, iсторії, iστορίες”', 'Placeholder heading in four languages.', 'twentytwentyfive' ) + ); + ?> +

    + + + +

    + +
    + + + +
    + +

    + + + +
    + +
    + +
    + +
    + +
    + + + +
    +
    + +

    + + + +

    + +
    + + + +
    + +

    + + + +
    + +
    + +
    + +
    + +
    + + + +
    +
    + +

    + historias, iсторії, iστορίες”', 'Placeholder heading in four languages.', 'twentytwentyfive' ) + ); + ?> +

    + + + +

    + +
    + + + +
    + +

    + + + +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/cta-grid-products-link.php b/wp-content/themes/twentytwentyfive/patterns/cta-grid-products-link.php new file mode 100644 index 0000000..87851b4 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/cta-grid-products-link.php @@ -0,0 +1,141 @@ + + +
    + +
    + +

    + + + +
    + +
    <?php esc_attr_e( 'Black and white flower', 'twentytwentyfive' ); ?>
    + + + + + + + +
    <?php esc_attr_e( 'Closeup of plantlife in the Malibu Canyon area', 'twentytwentyfive' ); ?>
    + + + +
    + + + +
    + + + + + + + +
    <?php esc_attr_e( 'Flora of Akaka Falls State Park', 'twentytwentyfive' ); ?>
    + + + + + + + + + + + +
    + + + +
    + + + + + + + +
    + + + +
    + + + +
    <?php esc_attr_e( 'Botany flowers', 'twentytwentyfive' ); ?>
    + + + +
    + + + +
    + + + +
    <?php esc_attr_e( 'Black and white flower', 'twentytwentyfive' ); ?>
    + +
    + + + +
    + +
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/cta-heading-search.php b/wp-content/themes/twentytwentyfive/patterns/cta-heading-search.php new file mode 100644 index 0000000..00dffc2 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/cta-heading-search.php @@ -0,0 +1,25 @@ + + +
    +
    + +

    + + + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/cta-newsletter.php b/wp-content/themes/twentytwentyfive/patterns/cta-newsletter.php new file mode 100644 index 0000000..679e1e0 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/cta-newsletter.php @@ -0,0 +1,38 @@ + + + + diff --git a/wp-content/themes/twentytwentyfive/patterns/event-3-col.php b/wp-content/themes/twentytwentyfive/patterns/event-3-col.php new file mode 100644 index 0000000..08a7d7a --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/event-3-col.php @@ -0,0 +1,105 @@ + + +
    + +
    + +

    + + + +

    + +
    + + + +
    + +
    + +
    <?php esc_attr_e( 'Event image', 'twentytwentyfive' ); ?>
    + + + +
    + +

    + + + + + +
    + + + +

    + +
    + + + +
    + +
    <?php esc_attr_e( 'Event image', 'twentytwentyfive' ); ?>
    + + + +
    + +

    + + + + + +
    + + + +

    + +
    + + + +
    + +
    <?php esc_attr_e( 'Event image', 'twentytwentyfive' ); ?>
    + + + +
    + +

    + + + + + +
    + + + +

    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/event-rsvp.php b/wp-content/themes/twentytwentyfive/patterns/event-rsvp.php new file mode 100644 index 0000000..1ba58e5 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/event-rsvp.php @@ -0,0 +1,103 @@ + + +
    + +
    + +
    + +
    + +

    + historias, iсторії, iστορίες”', 'Placeholder heading in four languages.', 'twentytwentyfive' ) + ); + ?> +

    + + + +

    + + + + + +
    + +
    + + + +
    + + + +
    + +
    + +

    + +
    + +
    + +
    + + + +
    + +
    + +
    + +

    + + + + + + + +

    + +
    + +
    + + + +
    + +
    <?php esc_attr_e( 'Close up photo of white flowers on a grey background', 'twentytwentyfive' ); ?> +
    + + + +
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/event-schedule.php b/wp-content/themes/twentytwentyfive/patterns/event-schedule.php new file mode 100644 index 0000000..ba5156d --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/event-schedule.php @@ -0,0 +1,199 @@ + + +
    + +
    + +

    + + +

    + + + + + +
    + +
    + +
    + +

    + +
    + + +
    + +
    + +
    + +
    <?php esc_attr_e( 'Birds on a lake.', 'twentytwentyfive' ); ?>
    + +
    + + +
    + +
    + +
    + +

    + + +

    + +
    + + +

    Prof. Fiona Presley', 'Pattern placeholder text with link.', 'twentytwentyfive' ) ); ?>

    + +
    + +
    + +
    + + +
    + +
    + +
    <?php esc_attr_e( 'View of the deep ocean.', 'twentytwentyfive' ); ?>
    + +
    + + +
    + +
    + +
    + +

    + + +

    + +
    + + +

    Prof. Fiona Presley', 'Pattern placeholder text with link.', 'twentytwentyfive' ) ); ?>

    + +
    + +
    + +
    + +
    + +
    + +
    + + + + + +
    + +
    + +
    + +

    + +
    + + +
    + +
    + +
    + +
    <?php esc_attr_e( 'The Acropolis of Athens.', 'twentytwentyfive' ); ?>
    + +
    + + +
    +
    + +
    + +

    + + +

    + +
    + + +

    Prof. Fiona Presley', 'Pattern placeholder text with link.', 'twentytwentyfive' ) ); ?>

    + +
    + +
    + +
    + + +
    + +
    + +
    <?php esc_attr_e( 'Black and white photo of an African woman.', 'twentytwentyfive' ); ?>
    + +
    + + +
    + +
    + +
    + +

    + + +

    + +
    + + +

    Prof. Fiona Presley', 'Pattern placeholder text with link.', 'twentytwentyfive' ) ); ?>

    + +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/footer-centered.php b/wp-content/themes/twentytwentyfive/patterns/footer-centered.php new file mode 100644 index 0000000..be82e0f --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/footer-centered.php @@ -0,0 +1,40 @@ + + +
    + +
    + + +
    + + + + + + + +

    + WordPress' + ); + ?> +

    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/footer-columns.php b/wp-content/themes/twentytwentyfive/patterns/footer-columns.php new file mode 100644 index 0000000..6b12c32 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/footer-columns.php @@ -0,0 +1,84 @@ + + +
    + +
    + +
    + +
    + + +
    + + + +
    + +
    + +

    + + + + + + + +
    + + +
    + +

    + + + + + + + +
    + +
    + +
    + + + + + +
    + +

    + + +

    + WordPress' + ); + ?> +

    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/footer-newsletter.php b/wp-content/themes/twentytwentyfive/patterns/footer-newsletter.php new file mode 100644 index 0000000..1c88efc --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/footer-newsletter.php @@ -0,0 +1,60 @@ + + +
    + +
    + +

    + + + +

    + + + +
    + +
    + +
    + + + + + + + +
    + +

    + + +

    + WordPress' + ); + ?> +

    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/footer-social.php b/wp-content/themes/twentytwentyfive/patterns/footer-social.php new file mode 100644 index 0000000..006cb83 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/footer-social.php @@ -0,0 +1,42 @@ + + +
    + +
    + + + + + + +
    + + + + + +

    + WordPress' + ); + ?> +

    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/footer.php b/wp-content/themes/twentytwentyfive/patterns/footer.php new file mode 100644 index 0000000..4dec2cc --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/footer.php @@ -0,0 +1,93 @@ + + +
    + +
    + + + +
    + +
    + +
    + + +
    + + + +
    + + + +
    + +
    + + + +
    + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + + +
    + +

    + + +

    + WordPress' + ); + ?> +

    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/format-audio.php b/wp-content/themes/twentytwentyfive/patterns/format-audio.php new file mode 100644 index 0000000..852f1d4 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/format-audio.php @@ -0,0 +1,38 @@ + + +
    + +
    + +
    +
    <?php esc_attr_e( 'Event image', 'twentytwentyfive' ); ?>
    +
    + + + +
    +

    + + + +

    + + + +
    +
    +
    +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/format-link.php b/wp-content/themes/twentytwentyfive/patterns/format-link.php new file mode 100644 index 0000000..2605a89 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/format-link.php @@ -0,0 +1,28 @@ + + +
    + +

    + + + +
    + +

    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/grid-videos.php b/wp-content/themes/twentytwentyfive/patterns/grid-videos.php new file mode 100644 index 0000000..56f54c2 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/grid-videos.php @@ -0,0 +1,56 @@ + + +
    + +
    + +

    + + + +

    + +
    + + + +
    + +
    + + + +
    + + + +
    + + + +
    + + + +
    + + + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/grid-with-categories.php b/wp-content/themes/twentytwentyfive/patterns/grid-with-categories.php new file mode 100644 index 0000000..f0762aa --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/grid-with-categories.php @@ -0,0 +1,71 @@ + + +
    + +
    + +
    + +

    + +
    + + +
    + +
    <?php esc_attr_e( 'Close up of a red anthurium.', 'twentytwentyfive' ); ?>
    + + + +
    + + +

    + +
    + + +
    + +
    + + + +
    + + +

    + +
    + + +
    + +
    + + + +
    + + +

    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/header-centered.php b/wp-content/themes/twentytwentyfive/patterns/header-centered.php new file mode 100644 index 0000000..4468001 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/header-centered.php @@ -0,0 +1,28 @@ + + +
    + +
    + + +
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/header-columns.php b/wp-content/themes/twentytwentyfive/patterns/header-columns.php new file mode 100644 index 0000000..7cb8eab --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/header-columns.php @@ -0,0 +1,34 @@ + + +
    + +
    + +
    + + +
    + + +
    + +
    + + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/header-large-title.php b/wp-content/themes/twentytwentyfive/patterns/header-large-title.php new file mode 100644 index 0000000..8a4cd38 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/header-large-title.php @@ -0,0 +1,28 @@ + + +
    + +
    + + +
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/header.php b/wp-content/themes/twentytwentyfive/patterns/header.php new file mode 100644 index 0000000..8cccb6c --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/header.php @@ -0,0 +1,32 @@ + + +
    + +
    + +
    + + +
    + +
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/heading-and-paragraph-with-image.php b/wp-content/themes/twentytwentyfive/patterns/heading-and-paragraph-with-image.php new file mode 100644 index 0000000..6ece41c --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/heading-and-paragraph-with-image.php @@ -0,0 +1,44 @@ + + + +
    + +
    + +
    + +

    + +

    + + +

    + +
    + + + +
    + +
    + <?php echo esc_attr_x( 'Cliff Palace, Colorado', 'Alt text for Overview picture.', 'twentytwentyfive' ); ?> +
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/hero-book.php b/wp-content/themes/twentytwentyfive/patterns/hero-book.php new file mode 100644 index 0000000..31d3465 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/hero-book.php @@ -0,0 +1,50 @@ + + +
    + +
    + +
    + +
    + + <?php esc_attr_e( 'Image of the book', 'twentytwentyfive' ); ?> +
    + + + +
    +
    + +
    + + + +
    + +

    + + + +

    + + + +

    +
    +
    +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/hero-full-width-image.php b/wp-content/themes/twentytwentyfive/patterns/hero-full-width-image.php new file mode 100644 index 0000000..9507971 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/hero-full-width-image.php @@ -0,0 +1,41 @@ + + + +
    + + <?php echo esc_attr_x( 'Picture of a flower', 'Alt text for cover image.', 'twentytwentyfive' ); ?> +
    + +
    + +

    + + + +

    + + + +
    + +
    + +
    + +
    + +
    +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/hero-overlapped-book-cover-with-links.php b/wp-content/themes/twentytwentyfive/patterns/hero-overlapped-book-cover-with-links.php new file mode 100644 index 0000000..677e992 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/hero-overlapped-book-cover-with-links.php @@ -0,0 +1,123 @@ + + +
    + +
    + +
    + +
    + +
    + +
    + +

    + +

    + + + +

    + +

    + +
    + + + +
    + + + + + +
    + +
    + +
    + +
    + + + +
    + + +
    + + + +
    + +
    + +
    + + +
    + +
    + +
    + + + +
    + + +
    + + + +
    + +
    + +
    + +
    + + + + + + + +

    international editions.', 'Pattern placeholder text with link.', 'twentytwentyfive' ) ); ?>

    + +
    + +
    + +
    + + + +
    + +
    + <?php echo esc_attr__( 'Book Image', 'twentytwentyfive' ); ?> +
    + +
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/hero-podcast.php b/wp-content/themes/twentytwentyfive/patterns/hero-podcast.php new file mode 100644 index 0000000..43610a4 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/hero-podcast.php @@ -0,0 +1,78 @@ + + +
    + +
    + +
    + +
    + <?php echo esc_attr_x( 'Picture of a person', 'Alt text for hero image.', 'twentytwentyfive' ); ?> +
    + +
    + + + + +
    + +

    + + + +

    + + + +
    + + +

    + + + +
    + +

    + + + +

    + + + +

    + + + +

    + + + +

    + +
    + + +
    + + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/hidden-404.php b/wp-content/themes/twentytwentyfive/patterns/hidden-404.php new file mode 100644 index 0000000..b548067 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/hidden-404.php @@ -0,0 +1,46 @@ + + +
    + +
    + +
    + +
    + <?php echo esc_attr_x( 'Small totara tree on ridge above Long Point', 'image description', 'twentytwentyfive' ); ?> +
    + +
    + + +
    + +
    + +

    + +

    + + +

    + + +
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/hidden-blog-heading.php b/wp-content/themes/twentytwentyfive/patterns/hidden-blog-heading.php new file mode 100644 index 0000000..a632a2b --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/hidden-blog-heading.php @@ -0,0 +1,16 @@ + + +

    + diff --git a/wp-content/themes/twentytwentyfive/patterns/hidden-search.php b/wp-content/themes/twentytwentyfive/patterns/hidden-search.php new file mode 100644 index 0000000..d4a7090 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/hidden-search.php @@ -0,0 +1,14 @@ + + + diff --git a/wp-content/themes/twentytwentyfive/patterns/hidden-sidebar.php b/wp-content/themes/twentytwentyfive/patterns/hidden-sidebar.php new file mode 100644 index 0000000..1b6dccb --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/hidden-sidebar.php @@ -0,0 +1,42 @@ + + +

    + + + + + + + +
    + + +
    + + +
    + + + + + + + + + +

    + + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/hidden-written-by.php b/wp-content/themes/twentytwentyfive/patterns/hidden-written-by.php new file mode 100644 index 0000000..a8ffce6 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/hidden-written-by.php @@ -0,0 +1,24 @@ + + + + diff --git a/wp-content/themes/twentytwentyfive/patterns/logos.php b/wp-content/themes/twentytwentyfive/patterns/logos.php new file mode 100644 index 0000000..7d16329 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/logos.php @@ -0,0 +1,48 @@ + + +
    + +

    + + + + + + + +
    + +
    + + + +
    + + + +
    + + + +
    + + + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/media-instagram-grid.php b/wp-content/themes/twentytwentyfive/patterns/media-instagram-grid.php new file mode 100644 index 0000000..f064293 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/media-instagram-grid.php @@ -0,0 +1,65 @@ + + +
    + +
    + +
    + +
    + +

    + + + +

    + +
    + +
    + + + +
    <?php esc_attr_e( 'Photo of a field full of flowers, a blue sky and a tree.', 'twentytwentyfive' ); ?>
    + + + +
    <?php esc_attr_e( 'Profile portrait of a native person.', 'twentytwentyfive' ); ?>
    + + + +
    <?php esc_attr_e( 'View of the deep ocean.', 'twentytwentyfive' ); ?>
    + + + +
    <?php esc_attr_e( 'Portrait of an African Woman dressed in traditional costume, wearing decorative jewelry.', 'twentytwentyfive' ); ?>
    + + + +
    <?php esc_attr_e( 'The Acropolis of Athens.', 'twentytwentyfive' ); ?>
    + + + +
    <?php esc_attr_e( 'Close up of two flowers on a dark background.', 'twentytwentyfive' ); ?>
    + + + +
    <?php esc_attr_e( 'Birds on a lake.', 'twentytwentyfive' ); ?>
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/more-posts.php b/wp-content/themes/twentytwentyfive/patterns/more-posts.php new file mode 100644 index 0000000..6dd8f82 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/more-posts.php @@ -0,0 +1,34 @@ + + +
    + +

    + + + +
    + + +
    + + +
    + + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/overlapped-images.php b/wp-content/themes/twentytwentyfive/patterns/overlapped-images.php new file mode 100644 index 0000000..f7e8215 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/overlapped-images.php @@ -0,0 +1,58 @@ + + +
    + +
    + +
    + +
    <?php esc_attr_e( 'Photography close up of a red flower.', 'twentytwentyfive' ); ?>
    + + +
    + +
    <?php esc_attr_e( 'Black and white photography close up of a flower.', 'twentytwentyfive' ); ?>
    + +
    + +
    + + +
    + +
    + +

    + +
    + + + +

    + ' . esc_html_x( 'Fleurs', 'Example brand name.', 'twentytwentyfive' ) . '' + ); + ?> +

    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/page-business-home.php b/wp-content/themes/twentytwentyfive/patterns/page-business-home.php new file mode 100644 index 0000000..e94cf50 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/page-business-home.php @@ -0,0 +1,24 @@ + + + + + + + + diff --git a/wp-content/themes/twentytwentyfive/patterns/page-coming-soon.php b/wp-content/themes/twentytwentyfive/patterns/page-coming-soon.php new file mode 100644 index 0000000..baab759 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/page-coming-soon.php @@ -0,0 +1,45 @@ + + + + diff --git a/wp-content/themes/twentytwentyfive/patterns/page-cv-bio.php b/wp-content/themes/twentytwentyfive/patterns/page-cv-bio.php new file mode 100644 index 0000000..13dc4f3 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/page-cv-bio.php @@ -0,0 +1,57 @@ + + + + diff --git a/wp-content/themes/twentytwentyfive/patterns/page-landing-book.php b/wp-content/themes/twentytwentyfive/patterns/page-landing-book.php new file mode 100644 index 0000000..3874c78 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/page-landing-book.php @@ -0,0 +1,24 @@ + + + + + + + + diff --git a/wp-content/themes/twentytwentyfive/patterns/page-landing-event.php b/wp-content/themes/twentytwentyfive/patterns/page-landing-event.php new file mode 100644 index 0000000..9915e20 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/page-landing-event.php @@ -0,0 +1,23 @@ + + + + + + + diff --git a/wp-content/themes/twentytwentyfive/patterns/page-landing-podcast.php b/wp-content/themes/twentytwentyfive/patterns/page-landing-podcast.php new file mode 100644 index 0000000..48ac731 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/page-landing-podcast.php @@ -0,0 +1,23 @@ + + + + + + + diff --git a/wp-content/themes/twentytwentyfive/patterns/page-link-in-bio-heading-paragraph-links-image.php b/wp-content/themes/twentytwentyfive/patterns/page-link-in-bio-heading-paragraph-links-image.php new file mode 100644 index 0000000..7d5e1ef --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/page-link-in-bio-heading-paragraph-links-image.php @@ -0,0 +1,68 @@ + + +
    + +
    + +
    + +
    + +

    + + + +

    + + + +
    + +

    + + + +

    + + + +

    + +
    + +
    + +
    + + + +
    + +
    + <?php esc_attr_e( 'Photo of a woman worker.', 'twentytwentyfive' ); ?>
    + + + +
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/page-link-in-bio-wide-margins.php b/wp-content/themes/twentytwentyfive/patterns/page-link-in-bio-wide-margins.php new file mode 100644 index 0000000..3f095cc --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/page-link-in-bio-wide-margins.php @@ -0,0 +1,57 @@ + + +
    + +
    + +
    + +
    <?php esc_attr_e( 'Woman on beach, splashing water.', 'twentytwentyfive' ); ?>
    + +
    + + + +
    + +
    + +

    + + + +

    + + + + + +
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/page-link-in-bio-with-tight-margins.php b/wp-content/themes/twentytwentyfive/patterns/page-link-in-bio-with-tight-margins.php new file mode 100644 index 0000000..264ce63 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/page-link-in-bio-with-tight-margins.php @@ -0,0 +1,67 @@ + + +
    + +
    + +
    + +
    + + <?php esc_attr_e( 'Black and white photo focusing on a woman and a child from afar.', 'twentytwentyfive' ); ?>
    + + + + +
    + +
    + + + +
    + +
    + +

    + + + +
    + +

    + + + +

    + + + +

    + +
    + +
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/page-portfolio-home.php b/wp-content/themes/twentytwentyfive/patterns/page-portfolio-home.php new file mode 100644 index 0000000..7a2a5b3 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/page-portfolio-home.php @@ -0,0 +1,236 @@ + + +
    + +
    + +
    + +
    + +

    + +
    + + + +
    + + + +
    + +
    + +
    + +
    + + + +
    + +
    + +
    + +
    + + +
    + + + +
    + + + + +

    + + +
    + +
    + + +
    + +
    + + +
    + + + +
    + + + + +

    + + +
    + +
    + +
    + + + + + +
    + + + +
    + + + + +
    + + +
    + + + +
    + + + + +

    + + +
    + + + + +
    + + + +
    + + + + +
    + +
    + +
    + + +
    + + + +
    + + + + +

    + + +
    + +
    + + +
    + +
    + + +
    + + + +
    + + + + +

    + + +
    + +
    + +
    + + + + + + + +
    + + +
    + + + +
    + + + + +

    + + +
    + + + +
    + + + + + +
    + + + +
    + +
    + +
    + +

    + + +


    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/page-shop-home.php b/wp-content/themes/twentytwentyfive/patterns/page-shop-home.php new file mode 100644 index 0000000..ce87caf --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/page-shop-home.php @@ -0,0 +1,21 @@ + + + + + diff --git a/wp-content/themes/twentytwentyfive/patterns/post-navigation.php b/wp-content/themes/twentytwentyfive/patterns/post-navigation.php new file mode 100644 index 0000000..22852b2 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/post-navigation.php @@ -0,0 +1,24 @@ + + +
    + + + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/pricing-2-col.php b/wp-content/themes/twentytwentyfive/patterns/pricing-2-col.php new file mode 100644 index 0000000..c1ac80b --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/pricing-2-col.php @@ -0,0 +1,121 @@ + + +
    + +

    + + + +

    + + + + + + + +
    + +
    + +

    + + + +

    + + + +
      + +
    • + + + +
    • + + + +
    • + + + +
    • + + + +
    • + +
    + + + +
    + +
    + +
    + +
    + + + +
    + +

    + + + +

    + + + +
      + +
    • + + + +
    • + + + +
    • + + + +
    • + + + +
    • + +
    + + + +
    + +
    + +
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/pricing-3-col.php b/wp-content/themes/twentytwentyfive/patterns/pricing-3-col.php new file mode 100644 index 0000000..ff66c8b --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/pricing-3-col.php @@ -0,0 +1,148 @@ + + +
    + +
    + +

    + + + +

    + +
    + + + +
    + +
    + +
    + +
    + +

    + + + +

    + +
    + + + +
    + +

    + +
    + +
    + + + +
    + +
    + +
    + +
    + + + +
    + +
    + +
    + +

    + + + +

    + +
    + + + +
    + +

    + + + +

    + +
    + +
    + + + +
    + +
    + +
    + +
    + + + +
    + +
    + +
    + +

    + + + +

    + +
    + + + +
    + +

    + + + +

    + +
    + +
    + + + +
    + +
    + +
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/services-3-col.php b/wp-content/themes/twentytwentyfive/patterns/services-3-col.php new file mode 100644 index 0000000..44a4bc0 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/services-3-col.php @@ -0,0 +1,79 @@ + + +
    + +

    + + + +
    + +
    + + +
    + <?php esc_attr_e( 'Image for service', 'twentytwentyfive' ); ?> +
    + + + +

    + + + +

    + +
    + + + +
    + +
    + <?php esc_attr_e( 'Image for service', 'twentytwentyfive' ); ?> +
    + + + +

    + + + +

    + +
    + + + +
    + +
    + <?php esc_attr_e( 'Image for service', 'twentytwentyfive' ); ?> +
    + + + +

    + + + +

    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/services-subscriber-only-section.php b/wp-content/themes/twentytwentyfive/patterns/services-subscriber-only-section.php new file mode 100644 index 0000000..713103c --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/services-subscriber-only-section.php @@ -0,0 +1,76 @@ + + +
    + +
    + +
    + +

    + + + +
      + +
    • + + + +
    • + + + +
    • + + + +
    • + + + +
    • + +
    + + + +
    + +
    + + + +
    + +
    + + + +

    + +
    + + + +
    + +
    <?php esc_attr_e( 'Smartphones capturing a scenic wildflower meadow with trees', 'twentytwentyfive' ); ?>
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/services-team-photos.php b/wp-content/themes/twentytwentyfive/patterns/services-team-photos.php new file mode 100644 index 0000000..865438c --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/services-team-photos.php @@ -0,0 +1,60 @@ + + +
    + +
    + +
    + +

    + +
    + + + +
    + +
    + +
    + <?php esc_attr_e( 'Woman on beach, splashing water.', 'twentytwentyfive' ); ?> +
    + + + +
    + <?php esc_attr_e( 'Portrait of a nurse', 'twentytwentyfive' ); ?> +
    + + + +
    + <?php esc_attr_e( 'Picture of a person typing on a typewriter.', 'twentytwentyfive' ); ?> +
    + + + +
    + <?php esc_attr_e( 'Man in hat, standing in front of a building.', 'twentytwentyfive' ); ?> +
    + +
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/template-404-vertical-header-blog.php b/wp-content/themes/twentytwentyfive/patterns/template-404-vertical-header-blog.php new file mode 100644 index 0000000..5506cb4 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/template-404-vertical-header-blog.php @@ -0,0 +1,41 @@ + + +
    + +
    + +
    + + +
    + +
    + + + + + + + + + +
    + +
    + +
    + + + diff --git a/wp-content/themes/twentytwentyfive/patterns/template-archive-news-blog.php b/wp-content/themes/twentytwentyfive/patterns/template-archive-news-blog.php new file mode 100644 index 0000000..8ad1942 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/template-archive-news-blog.php @@ -0,0 +1,39 @@ + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + +
    + + + diff --git a/wp-content/themes/twentytwentyfive/patterns/template-archive-photo-blog.php b/wp-content/themes/twentytwentyfive/patterns/template-archive-photo-blog.php new file mode 100644 index 0000000..e94b245 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/template-archive-photo-blog.php @@ -0,0 +1,26 @@ + + + + + +
    + + + +
    + + + diff --git a/wp-content/themes/twentytwentyfive/patterns/template-archive-text-blog.php b/wp-content/themes/twentytwentyfive/patterns/template-archive-text-blog.php new file mode 100644 index 0000000..7efe1b4 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/template-archive-text-blog.php @@ -0,0 +1,28 @@ + + + + +
    + + + + + + +
    + + + diff --git a/wp-content/themes/twentytwentyfive/patterns/template-archive-vertical-header-blog.php b/wp-content/themes/twentytwentyfive/patterns/template-archive-vertical-header-blog.php new file mode 100644 index 0000000..9a25fe3 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/template-archive-vertical-header-blog.php @@ -0,0 +1,48 @@ + + +
    + +
    + +
    + + + +
    + +
    + + + + + + + + + + + + + + +
    + +
    + +
    + + + diff --git a/wp-content/themes/twentytwentyfive/patterns/template-home-news-blog.php b/wp-content/themes/twentytwentyfive/patterns/template-home-news-blog.php new file mode 100644 index 0000000..7dea528 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/template-home-news-blog.php @@ -0,0 +1,166 @@ + + + + +
    + +
    + +
    + +
    + +
    + +
    + + +
    + + + +
    + + + + +

    + + +
    + + +
    + + +
    + + + +
    + + +
    + +
    + +
    + + +
    + +
    + + +
    + + + + +
    + + +
    + +
    + + +
    + +
    + +
    + + +
    + + + +
    + + +
    + + +
    + + +
    + + + +
    + + +
    + +
    + +
    + +
    + +
    + + + +
    + +
    + + +
    + + + +
    + + +
    + +
    + + + +
    + +
    + + +
    + + + +
    + + + +
    + + + + + +
    + +
    + +
    + +
    + + + diff --git a/wp-content/themes/twentytwentyfive/patterns/template-home-photo-blog.php b/wp-content/themes/twentytwentyfive/patterns/template-home-photo-blog.php new file mode 100644 index 0000000..29ed376 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/template-home-photo-blog.php @@ -0,0 +1,33 @@ + + + + +
    + +
    + +

    + +
    + + +

    + + +
    + + + diff --git a/wp-content/themes/twentytwentyfive/patterns/template-home-posts-grid-news-blog.php b/wp-content/themes/twentytwentyfive/patterns/template-home-posts-grid-news-blog.php new file mode 100644 index 0000000..167f0a0 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/template-home-posts-grid-news-blog.php @@ -0,0 +1,136 @@ + + + + +
    + + +
    + +
    + + + +
    + + + +
    + + + + +

    + + +
    + +
    + + + +
    + +
    + +
    + + +
    + + + +
    + + + + +

    + + +
    + + +
    + + +
    + + + +
    + + + + +

    + + +
    + +
    + +
    + + + +
    + +
    + + +
    + + + +
    + + + + +

    + + +
    + +
    + + + +
    + +

    + + +
    + + +
    + + +
    + + +
    + +
    + + +
    + + + + + diff --git a/wp-content/themes/twentytwentyfive/patterns/template-home-text-blog.php b/wp-content/themes/twentytwentyfive/patterns/template-home-text-blog.php new file mode 100644 index 0000000..81e482e --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/template-home-text-blog.php @@ -0,0 +1,29 @@ + + + + +
    + +

    + + + + + +
    + + + diff --git a/wp-content/themes/twentytwentyfive/patterns/template-home-vertical-header-blog.php b/wp-content/themes/twentytwentyfive/patterns/template-home-vertical-header-blog.php new file mode 100644 index 0000000..b44b5dd --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/template-home-vertical-header-blog.php @@ -0,0 +1,47 @@ + + +
    + +
    + +
    + + + +
    + +
    + + + + + + + + + + + + + +
    + +
    + +
    + + + diff --git a/wp-content/themes/twentytwentyfive/patterns/template-home-with-sidebar-news-blog.php b/wp-content/themes/twentytwentyfive/patterns/template-home-with-sidebar-news-blog.php new file mode 100644 index 0000000..ee67322 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/template-home-with-sidebar-news-blog.php @@ -0,0 +1,127 @@ + + + + +
    + +
    + +
    + +
    + + + +
    + + + +
    + + +
    + +
    + + +
    + +

    + + + + + +
    + + +
    + + +
    + + + + + + + +

    + + +
    + +
    + +
    + + + + + +
    + + +
    + +
    + +
    + + +
    + + +

    + + +
    + +
    + +
    + + +
    + + +
    + +
    + +
    + + + +
    + + + + + +
    + + + +

    + + +
    + +
    + + + diff --git a/wp-content/themes/twentytwentyfive/patterns/template-page-photo-blog.php b/wp-content/themes/twentytwentyfive/patterns/template-page-photo-blog.php new file mode 100644 index 0000000..54ccb20 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/template-page-photo-blog.php @@ -0,0 +1,28 @@ + + + + +
    + +
    + + + +
    + +
    + + + diff --git a/wp-content/themes/twentytwentyfive/patterns/template-page-vertical-header-blog.php b/wp-content/themes/twentytwentyfive/patterns/template-page-vertical-header-blog.php new file mode 100644 index 0000000..1c23770 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/template-page-vertical-header-blog.php @@ -0,0 +1,63 @@ + + +
    + +
    + +
    + + +
    + +
    + + +
    + + + + +
    + +
    + + + + + + +
    + +
    + +
    + + +
    + +
    + +
    + +
    + +
    + +
    + +
    + + + diff --git a/wp-content/themes/twentytwentyfive/patterns/template-query-loop-news-blog.php b/wp-content/themes/twentytwentyfive/patterns/template-query-loop-news-blog.php new file mode 100644 index 0000000..c55b337 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/template-query-loop-news-blog.php @@ -0,0 +1,62 @@ + + +
    + +
    +
    + + + +
    + + + + + + +
    + + + + +
    +
    + + + +
    +
    + + + + +
    + + + + + +
    + + + + +

    + + + + + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/template-query-loop-photo-blog.php b/wp-content/themes/twentytwentyfive/patterns/template-query-loop-photo-blog.php new file mode 100644 index 0000000..c9f150c --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/template-query-loop-photo-blog.php @@ -0,0 +1,46 @@ + + +
    + +
    + + +

    + + +
    + + + +
    + + + +
    + + + +
    + + + + + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/template-query-loop-text-blog.php b/wp-content/themes/twentytwentyfive/patterns/template-query-loop-text-blog.php new file mode 100644 index 0000000..e90e480 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/template-query-loop-text-blog.php @@ -0,0 +1,47 @@ + + +
    + +
    + + +

    + + +
    + + + +
    + + +
    + + + + + + + + +
    + + + + + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/template-query-loop-vertical-header-blog.php b/wp-content/themes/twentytwentyfive/patterns/template-query-loop-vertical-header-blog.php new file mode 100644 index 0000000..b572e93 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/template-query-loop-vertical-header-blog.php @@ -0,0 +1,51 @@ + + +
    + + +
    + + +
    + + + + + +
    +
    + + + +
    +
    + + + + + + + + + + + + + + +

    + + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/template-query-loop.php b/wp-content/themes/twentytwentyfive/patterns/template-query-loop.php new file mode 100644 index 0000000..82dc4de --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/template-query-loop.php @@ -0,0 +1,46 @@ + + +
    + + +
    + + + + +
    + + + +
    + + +

    + + +
    + + +
    + + + + + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/template-search-news-blog.php b/wp-content/themes/twentytwentyfive/patterns/template-search-news-blog.php new file mode 100644 index 0000000..e4ff042 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/template-search-news-blog.php @@ -0,0 +1,39 @@ + + + + +
    + +
    + + + + + + + + +
    + + +
    + +
    + +
    + + + diff --git a/wp-content/themes/twentytwentyfive/patterns/template-search-photo-blog.php b/wp-content/themes/twentytwentyfive/patterns/template-search-photo-blog.php new file mode 100644 index 0000000..c08992c --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/template-search-photo-blog.php @@ -0,0 +1,29 @@ + + + + +
    + + +
    + +
    + + +
    + + + diff --git a/wp-content/themes/twentytwentyfive/patterns/template-search-text-blog.php b/wp-content/themes/twentytwentyfive/patterns/template-search-text-blog.php new file mode 100644 index 0000000..124af4a --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/template-search-text-blog.php @@ -0,0 +1,32 @@ + + + + +
    + +
    + + +
    + + + + + +
    + + + diff --git a/wp-content/themes/twentytwentyfive/patterns/template-search-vertical-header-blog.php b/wp-content/themes/twentytwentyfive/patterns/template-search-vertical-header-blog.php new file mode 100644 index 0000000..3121358 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/template-search-vertical-header-blog.php @@ -0,0 +1,45 @@ + + +
    + +
    + +
    + + +
    + +
    + + + + + + + + + + + + +
    + +
    + +
    + + + diff --git a/wp-content/themes/twentytwentyfive/patterns/template-single-left-aligned-content.php b/wp-content/themes/twentytwentyfive/patterns/template-single-left-aligned-content.php new file mode 100644 index 0000000..9f86084 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/template-single-left-aligned-content.php @@ -0,0 +1,112 @@ + + + + +
    + +
    + +
    + +
    + +
    + + +
    + +

    + + +
    + +
    + +
    + + +
    + +
    + +
    + + + +
    + +
    + +
    + + +

    + + +
    + +
    + +
    + +
    + + + +
    + +
    + + + +
    + +
    + + + +
    + +
    + + + +
    + +
    + +
    + + + +
    + + +
    + +
    + +
    + +
    + +
    + + + diff --git a/wp-content/themes/twentytwentyfive/patterns/template-single-news-blog.php b/wp-content/themes/twentytwentyfive/patterns/template-single-news-blog.php new file mode 100644 index 0000000..86ebd9c --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/template-single-news-blog.php @@ -0,0 +1,141 @@ + + + + +
    + + +
    + +
    + + + + + + + + +
    + +
    + +
    + + +

    + + +
    + + +
    + + +
    + +
    + +
    + +
    + +
    + + + +
    + + + +
    + +
    + +
    + + +
    + + + + + +
    + + +
    + + +
    + + +
    + +
    + +
    + + + +
    + + + +
    + + + +
    + +
    + +
    + + + +
    + +
    + +
    + +
    + + + +
    + + + +
    + + + +
    + + +
    + +
    + +
    + + + diff --git a/wp-content/themes/twentytwentyfive/patterns/template-single-offset.php b/wp-content/themes/twentytwentyfive/patterns/template-single-offset.php new file mode 100644 index 0000000..bc71fa2 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/template-single-offset.php @@ -0,0 +1,93 @@ + + + + +
    + +
    + +
    + + +
    + +
    + + + +
    + +
    + +
    + +
    + +
    +

    + +
    + +
    + + + +
    + +
    + +
    + +
    + +
    + + + +
    + + + +
    + + + +
    + +
    + +
    + + + +
    + + +
    + +
    + +
    + +
    + +
    + + + diff --git a/wp-content/themes/twentytwentyfive/patterns/template-single-photo-blog.php b/wp-content/themes/twentytwentyfive/patterns/template-single-photo-blog.php new file mode 100644 index 0000000..884259b --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/template-single-photo-blog.php @@ -0,0 +1,97 @@ + + + + +
    + +
    + +
    + +
    + +
    + + +
    + +
    + +
    + +
    +

    + +
    + + +
    +

    + +
    + +
    + + +
    + +
    + +

    + + +
    + + +
    + +

    + + +
    + +
    + +
    + +
    + +
    + + +
    + + + +
    + + +
    + + + + + +
    + +
    + +
    + + diff --git a/wp-content/themes/twentytwentyfive/patterns/template-single-text-blog.php b/wp-content/themes/twentytwentyfive/patterns/template-single-text-blog.php new file mode 100644 index 0000000..2b60f96 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/template-single-text-blog.php @@ -0,0 +1,49 @@ + + + + +
    + +
    + + + + + + + + +
    + +
    + + + +
    + + + +
    + + +
    + +
    + + diff --git a/wp-content/themes/twentytwentyfive/patterns/template-single-vertical-header-blog.php b/wp-content/themes/twentytwentyfive/patterns/template-single-vertical-header-blog.php new file mode 100644 index 0000000..9d8c310 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/template-single-vertical-header-blog.php @@ -0,0 +1,100 @@ + + +
    + +
    + +
    + + +
    + +
    + +
    + + + + +
    + + +
    + + + + + +
    + + + +
    + +
    + +
    + + +
    + + +
    + + + + + + + +
    + +
    + +
    + + +
    + +
    + +
    + + + + + +
    + + + + +
    + + + + +
    + +
    + + + diff --git a/wp-content/themes/twentytwentyfive/patterns/testimonials-2-col.php b/wp-content/themes/twentytwentyfive/patterns/testimonials-2-col.php new file mode 100644 index 0000000..7f33f2c --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/testimonials-2-col.php @@ -0,0 +1,79 @@ + + +
    + +
    + +
    + +
    + +
    + +
    <?php echo esc_attr_x( 'Picture of a person', 'Alt text for testimonial image.', 'twentytwentyfive' ); ?>
    + +
    + + + +
    + +
    + +

    + + Atlanta, GA', 'Sample testimonial citation.', 'twentytwentyfive' ) ); ?> +
    + +
    + +
    + +
    + + + +
    + +
    + +
    + +
    <?php echo esc_attr_x( 'Picture of a person', 'Alt text for testimonial image.', 'twentytwentyfive' ); ?>
    + +
    + + + +
    + +
    + +

    + + Springfield, IL', 'Sample testimonial citation.', 'twentytwentyfive' ) ); ?> +
    + +
    + +
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/testimonials-6-col.php b/wp-content/themes/twentytwentyfive/patterns/testimonials-6-col.php new file mode 100644 index 0000000..e3bb055 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/testimonials-6-col.php @@ -0,0 +1,127 @@ + + +
    + +

    + + + +
    + +
    + +
    + +
    + +

    + +
    + + Springfield, IL', 'Sample testimonial citation.', 'twentytwentyfive' ) ); ?> +
    + +
    + + + +
    + +
    + +
    + +

    + +
    + + Springfield, IL', 'Sample testimonial citation.', 'twentytwentyfive' ) ); ?> +
    + +
    + + + +
    + +
    + +
    + +

    + +
    + + Springfield, IL', 'Sample testimonial citation.', 'twentytwentyfive' ) ); ?> +
    + +
    + +
    + + + +
    + +
    + +
    + +
    + +

    + +
    + + Springfield, IL', 'Sample testimonial citation.', 'twentytwentyfive' ) ); ?> +
    + +
    + + + +
    +
    + +
    + +

    + +
    + Springfield, IL', 'Sample testimonial citation.', 'twentytwentyfive' ) ); ?> +
    + +
    + + + +
    +
    + +
    + +

    + +
    + Springfield, IL', 'Sample testimonial citation.', 'twentytwentyfive' ) ); ?> +
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/testimonials-large.php b/wp-content/themes/twentytwentyfive/patterns/testimonials-large.php new file mode 100644 index 0000000..b9d727c --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/testimonials-large.php @@ -0,0 +1,54 @@ + + +
    + +
    + +
    + +
    + +

    + + + +
    + +
    + +

    + +
    + + Atlanta, GA', 'Sample testimonial citation.', 'twentytwentyfive' ) ); ?> +
    + +
    + +
    + + + +
    + +
    <?php echo esc_attr_x( 'Picture of a person typing on a typewriter.', 'Alt text for testimonial image.', 'twentytwentyfive' ); ?>
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/text-faqs.php b/wp-content/themes/twentytwentyfive/patterns/text-faqs.php new file mode 100644 index 0000000..fd8397b --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/text-faqs.php @@ -0,0 +1,98 @@ + + +
    + +
    + +

    + + + +
    + +
    + +
    + +

    + + + +

    + +
    + +
    + + + +
    + +
    + +

    + + + +

    + +
    + +
    + +
    + + + +
    + +
    + +
    + +

    + + + +

    + +
    + +
    + + + +
    + +
    + +

    + + + +

    + +
    + +
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/patterns/vertical-header.php b/wp-content/themes/twentytwentyfive/patterns/vertical-header.php new file mode 100644 index 0000000..52cbf9a --- /dev/null +++ b/wp-content/themes/twentytwentyfive/patterns/vertical-header.php @@ -0,0 +1,29 @@ + + +
    + +
    + +
    + + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfive/readme.txt b/wp-content/themes/twentytwentyfive/readme.txt new file mode 100644 index 0000000..cfb1e82 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/readme.txt @@ -0,0 +1,277 @@ +=== Twenty Twenty-Five === +Contributors: wordpressdotorg +Requires at least: 6.7 +Tested up to: 6.9 +Requires PHP: 7.2 +Stable tag: 1.4 +License: GPLv2 or later +License URI: http://www.gnu.org/licenses/gpl-2.0.html + +== Description == + +Twenty Twenty-Five emphasizes simplicity and adaptability. It offers flexible design options, supported by a variety of patterns for different page types, such as services and landing pages, making it ideal for building personal blogs, professional portfolios, online magazines, or business websites. Its templates cater to various blog styles, from text-focused to image-heavy layouts. Additionally, it supports international typography and diverse color palettes, ensuring accessibility and customization for users worldwide. + + +== Changelog == + += 1.4 = +* Released: December 2, 2025 + +https://wordpress.org/documentation/article/twenty-twenty-five-changelog/#Version_1.4 + += 1.3 = +* Released: July 15, 2025 + +https://wordpress.org/documentation/article/twenty-twenty-five-changelog/#Version_1.3 + += 1.2 = +* Released: April 15, 2025 + +https://wordpress.org/documentation/article/twenty-twenty-five-changelog/#Version_1.2 + += 1.1 = +* Released: February 11, 2025 + +https://wordpress.org/documentation/article/twenty-twenty-five-changelog/#Version_1.1 + += 1.0 = +* Released: November 13, 2024 + +https://wordpress.org/documentation/article/twenty-twenty-five-changelog/#Version_1.0 + +== Copyright == + +Twenty Twenty-Five WordPress Theme, (C) 2024-2025 WordPress.org and contributors. +Twenty Twenty-Five is distributed under the terms of the GNU GPL. + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +This theme incorporates code from: + +Twenty Twenty-Four WordPress Theme, (C) 2023 WordPress.org +License: GPLv2 or later. License URI: http://www.gnu.org/licenses/gpl-2.0.html + + +This theme bundles the following third-party resources: + +=== Fonts === +.ttf files downloaded from fonts.google.com have been converted to .woff2 using +https://github.com/google/woff2 + + +Fira Code Font +Copyright (c) 2014, The Fira Code Project Authors +License: SIL Open Font License, 1.1, https://opensource.org/licenses/OFL-1.1 +Reference: https://github.com/tonsky/FiraCode +Source: https://fonts.google.com/specimen/Fira+Code + +Manrope Font +Copyright (c) 2018 The Manrope Project Authors +License: SIL Open Font License, 1.1, https://opensource.org/licenses/OFL-1.1 +Reference: https://github.com/sharanda/manrope +Source: https://fonts.google.com/specimen/Manrope + +Vollkorn Font +Copyright (c) 2005–2018, Friedrich Althausen +License: SIL Open Font License, 1.1, https://opensource.org/licenses/OFL-1.1 +Reference: https://github.com/FAlthausen/Vollkorn-Typeface +Source: https://fonts.google.com/specimen/Vollkorn + +Fira Sans Font +Digitized data copyright (c) 2012-2015, The Mozilla Foundation and Telefonica S.A. +License: SIL Open Font License, 1.1, https://opensource.org/licenses/OFL-1.1 +Reference: https://github.com/mozilla/Fira +Source: https://fonts.google.com/specimen/Fira+Sans + +Platypi Font +License: SIL Open Font License, 1.1, https://opensource.org/licenses/OFL-1.1 +Reference: https://github.com/d-sargent/platypi +Source: https://fonts.google.com/specimen/Platypi + +Ysabeau Office Font +License: SIL Open Font License, 1.1, https://opensource.org/licenses/OFL-1.1 +Reference: https://github.com/CatharsisFonts/Ysabeau +Source: https://fonts.google.com/specimen/Ysabeau+Office + +Literata Font +License: SIL Open Font License, 1.1, https://opensource.org/licenses/OFL-1.1 +Reference: https://github.com/googlefonts/literata +Source: https://fonts.google.com/specimen/Literata + +Roboto Slab Font +License: SIL Open Font License, 1.1, https://opensource.org/licenses/OFL-1.1 +Reference: https://github.com/googlefonts/robotoslab +Source: https://fonts.google.com/specimen/Roboto+Slab + +Beiruti Font +License: SIL Open Font License, 1.1, https://opensource.org/licenses/OFL-1.1 +Reference: https://github.com/googlefonts/beiruti +Source: https://fonts.google.com/specimen/Beiruti + +=== Images === + +Northern Buttercups. +Free public domain CC0 image. +northern-buttercups-flowers.webp +https://www.rawpixel.com/image/8802603 + +License: CC0 https://creativecommons.org/publicdomain/zero/1.0/ +Small totara tree on ridge above Long Point, Porirua Harbour, by Leslie Adkin. +Free public domain CC0 image. +404-image.webp +https://www.rawpixel.com/image/13029755 + +Old gray paris map. +Free public domain CC0 image. +location.webp +https://www.rawpixel.com/image/6033837 + +Delphinium (Larkspur). +Free public domain CC0 image. +delphinium-flowers.webp +https://www.rawpixel.com/image/2224378 + +Campanula Alliariifolia (Cornish Bellflower). +Free public domain CC0 image. +campanula-alliariifolia-flower.webp +https://www.rawpixel.com/image/2222755 + +Centaurea Ruthenica(Star Thristle). +Free public domain CC0 image. +star-thristle-flower.webp +https://www.rawpixel.com/image/2211732 + +Botany flowers. +Free public domain CC0 image. +botany-flowers.webp +botany-flowers-closeup.webp +https://www.rawpixel.com/image/8812207 + +Person typing on a typewriter. +Free public domain CC0 image. +typewriter.webp +https://www.rawpixel.com/image/12240004/photo-image-face-person-technology + +Woman wearing a traditional nurse's cap, photographed from behind. +nurse.webp +Free public domain CC0 image. +https://www.rawpixel.com/image/8782633/photo-image-person-white + +Woman splashing water, at Lake George. +woman-splashing-water.webp +Free public domain CC0 image. +https://www.rawpixel.com/image/9758986/photo-image-people-art-vintage + +Man in hat, standing in front of a building. +man-in-hat.webp +Free public domain CC0 image. +https://www.slam.org/collection/objects/62642/ + +African Woman by Pascal Sébah and Jean Pascal Sébah +Free public domain CC0 image. +agenda-img-4.webp +https://www.rawpixel.com/image/14263497 + +Two Girls, Mill Workers by Lewis W Hine. +Free public domain CC0 image. +link-in-bio-background.webp +https://www.rawpixel.com/image/14265869 + +Cliff Palace, Mesa Verde National Park, Colorado (vertical orientation) +Free public domain CC0 image. +poster-image-background.webp +ruins-image.webp +https://www.rawpixel.com/image/8802835 + +Flower meadow in Llano, Texas. +Free public domain CC0 image. +coming-soon-bg-image.webp +flower-meadow-square.webp +services-subscriber-photo.webp +https://www.rawpixel.com/image/8800058 + +Hibiscus flower. +Free public domain CC0 image. +grid-flower-1.webp +red-hibiscus-closeup.webp +https://www.rawpixel.com/image/8799471 + +Phacelia tanacetifolia (Lacy Phacelia) enlarged 4 times from Urformen der Kunst (1928) by Karl Blossfeldt. +Free public domain CC0 image. +grid-flower-2.webp +https://www.rawpixel.com/image/2222743 + +At Hawaiian Greenhouse, Inc, near Pahoa, anthuriums grow under a sun screen. +Free public domain CC0 image. +category-anthuriums.webp +https://www.rawpixel.com/image/8799473 + +Sunflower +Free public domain CC0 image. +category-sunflowers.webp +https://www.rawpixel.com/image/8799614 + +Detail of cactus "Saguaros, Saguro National Monument," Arizona. Photographer: Adams, Ansel, 1902-1984 +Free public domain CC0 image. +category-cactus.webp +https://www.rawpixel.com/image/8799351 + +Vash Gon - Jicarilla by Edward S Curtis. +Free public domain CC0 image. +vash-gon-square.webp +https://www.rawpixel.com/image/14262822 + +One of the 40 Or More Species of Coral at John Pennekamp Coral Reef State Park, a Few Miles Off Key Largo. +Free public domain CC0 image. +coral-square.webp +https://www.rawpixel.com/image/8799931 + +Parthenon op de Akropolis in Athene (westzijde) (c. 1880 - c. 1890) by Rhomaides Frères. +Free public domain CC0 image. +parthenon-square.webp +https://www.rawpixel.com/image/13759051 + +Near East Dallas Creek, 05/1972. Photographer: Norton, Boyd. +Free public domain CC0 image. +dallas-creek-square.webp +https://www.rawpixel.com/image/8802688 + +Marshland birds at the Lake Havasu National Wildlife Refuge. +Free public domain CC0 image. +marshland-birds-square.webp +https://www.rawpixel.com/image/8799403 + +Photograph - New York [Portrait - Washington Square] by Paul Strand. +Free public domain CC0 image. +hero-podcast.webp +https://www.rawpixel.com/image/14264288 + +Evening Breeze by Asahachi Kono. +Free public domain CC0 image. +link-in-bio-image +https://www.rawpixel.com/image/14262995 + +Bust by Mathew brady. +Free public domain CC0 image. +book-image-landing.webp +book-image.webp +https://www.rawpixel.com/image/8799536 +Book template by Beatriz Fialho, public domain. + +Flora of Akaka Falls State Park. +Free public domain CC0 image. +akaka-falls-state-park-flora.webp +https://www.rawpixel.com/image/8802845 + +Closeup of plantlife in the Malibu Canyon area of the Santa Monica Mountains. +Free public domain CC0 image. +malibu-plantlife.webp +https://www.rawpixel.com/image/8799918 diff --git a/wp-content/themes/twentytwentyfive/screenshot.png b/wp-content/themes/twentytwentyfive/screenshot.png new file mode 100644 index 0000000..2dd45d3 Binary files /dev/null and b/wp-content/themes/twentytwentyfive/screenshot.png differ diff --git a/wp-content/themes/twentytwentyfive/style.css b/wp-content/themes/twentytwentyfive/style.css new file mode 100644 index 0000000..4b064bc --- /dev/null +++ b/wp-content/themes/twentytwentyfive/style.css @@ -0,0 +1,76 @@ +/* +Theme Name: Twenty Twenty-Five +Theme URI: https://wordpress.org/themes/twentytwentyfive/ +Author: the WordPress team +Author URI: https://wordpress.org +Description: Twenty Twenty-Five emphasizes simplicity and adaptability. It offers flexible design options, supported by a variety of patterns for different page types, such as services and landing pages, making it ideal for building personal blogs, professional portfolios, online magazines, or business websites. Its templates cater to various blog styles, from text-focused to image-heavy layouts. Additionally, it supports international typography and diverse color palettes, ensuring accessibility and customization for users worldwide. +Requires at least: 6.7 +Tested up to: 6.9 +Requires PHP: 7.2 +Version: 1.4 +License: GNU General Public License v2 or later +License URI: http://www.gnu.org/licenses/gpl-2.0.html +Text Domain: twentytwentyfive +Tags: one-column, custom-colors, custom-menu, custom-logo, editor-style, featured-images, full-site-editing, block-patterns, rtl-language-support, sticky-post, threaded-comments, translation-ready, wide-blocks, block-styles, style-variations, accessibility-ready, blog, portfolio, news +*/ + +/* + * IMPORTANT: This file is only served on the frontend when `SCRIPT_DEBUG` is enabled; + * in most instances, the `style.min.css` file will be served. It is not recommended that you + * use the Theme File Editor to modify this stylesheet. Instead, add the necessary style + * overrides via "Additional CSS" in the Site Editor. + */ + +/* + * Link styles + * https://github.com/WordPress/gutenberg/issues/42319 + */ +a { + text-decoration-thickness: 1px !important; + text-underline-offset: .1em; +} + +/* Focus styles */ +:where(.wp-site-blocks *:focus) { + outline-width: 2px; + outline-style: solid; +} + +/* Increase the bottom margin on submenus, so that the outline is visible. */ +.wp-block-navigation .wp-block-navigation-submenu .wp-block-navigation-item:not(:last-child) { + margin-bottom: 3px; +} + +/* Increase the outline offset on the parent menu items, so that the outline does not touch the text. */ +.wp-block-navigation .wp-block-navigation-item .wp-block-navigation-item__content { + outline-offset: 4px; +} + +/* Remove outline offset from the submenus, otherwise the outline is visible outside the submenu container. */ +.wp-block-navigation .wp-block-navigation-item ul.wp-block-navigation__submenu-container .wp-block-navigation-item__content { + outline-offset: 0; +} + +/* + * Progressive enhancement to reduce widows and orphans + * https://github.com/WordPress/gutenberg/issues/55190 + */ +h1, h2, h3, h4, h5, h6, blockquote, caption, figcaption, p { + text-wrap: pretty; +} + +/* + * Change the position of the more block on the front, by making it a block level element. + * https://github.com/WordPress/gutenberg/issues/65934 +*/ +.more-link { + display: block; +} + +/* + * Prevents unnecessary scrollbars while handling long lines of preformatted text. + * https://core.trac.wordpress.org/ticket/63875 + */ +:where(pre) { + overflow-x: auto; +} diff --git a/wp-content/themes/twentytwentyfive/style.min.css b/wp-content/themes/twentytwentyfive/style.min.css new file mode 100644 index 0000000..42a01ae --- /dev/null +++ b/wp-content/themes/twentytwentyfive/style.min.css @@ -0,0 +1 @@ +a{text-decoration-thickness:1px!important;text-underline-offset:.1em}:where(.wp-site-blocks :focus){outline-width:2px;outline-style:solid}.wp-block-navigation .wp-block-navigation-submenu .wp-block-navigation-item:not(:last-child){margin-bottom:3px}.wp-block-navigation .wp-block-navigation-item .wp-block-navigation-item__content{outline-offset:4px}.wp-block-navigation .wp-block-navigation-item ul.wp-block-navigation__submenu-container .wp-block-navigation-item__content{outline-offset:0}blockquote,caption,figcaption,h1,h2,h3,h4,h5,h6,p{text-wrap:pretty}.more-link{display:block}:where(pre){overflow-x:auto} \ No newline at end of file diff --git a/wp-content/themes/twentytwentyfive/styles/01-evening.json b/wp-content/themes/twentytwentyfive/styles/01-evening.json new file mode 100644 index 0000000..6b9a11a --- /dev/null +++ b/wp-content/themes/twentytwentyfive/styles/01-evening.json @@ -0,0 +1,126 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.7/theme.json", + "version": 3, + "title": "Evening", + "settings": { + "color": { + "palette": [ + { + "color": "#1B1B1B", + "name": "Base", + "slug": "base" + }, + { + "color": "#F0F0F0", + "name": "Contrast", + "slug": "contrast" + }, + { + "color": "#786D0A", + "name": "Accent 1", + "slug": "accent-1" + }, + { + "color": "#442369", + "name": "Accent 2", + "slug": "accent-2" + }, + { + "color": "#D1D0EA", + "name": "Accent 3", + "slug": "accent-3" + }, + { + "color": "#CBCBCB", + "name": "Accent 4", + "slug": "accent-4" + }, + { + "color": "#353535", + "name": "Accent 5", + "slug": "accent-5" + }, + { + "color": "#FFFFFF33", + "name": "Accent 6", + "slug": "accent-6" + } + ] + } + }, + "styles": { + "color": { + "text": "var:preset|color|accent-4" + }, + "blocks": { + "core/button": { + "variations": { + "outline": { + "spacing": { + "padding": { + "bottom": "0.6rem", + "left": "1.6rem", + "right": "1.6rem", + "top": "0.6rem" + } + } + } + } + } + }, + "elements": { + "button": { + "color": { + "background": "var:preset|color|contrast", + "text": "var:preset|color|base" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--contrast) 85%, transparent)", + "text": "var:preset|color|base" + } + }, + "spacing": { + "padding": { + "bottom": "0.6rem", + "left": "1.6rem", + "right": "1.6rem", + "top": "0.6rem" + } + } + } + }, + "variations": { + "section-2": { + "elements": { + "button": { + "color": { + "background": "var:preset|color|base", + "text": "var:preset|color|contrast" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--base) 85%, transparent)" + } + } + } + } + }, + "section-4": { + "elements": { + "button": { + "color": { + "background": "var:preset|color|accent-2", + "text": "var:preset|color|contrast" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--accent-2) 85%, transparent)" + } + } + } + } + } + } + } +} diff --git a/wp-content/themes/twentytwentyfive/styles/02-noon.json b/wp-content/themes/twentytwentyfive/styles/02-noon.json new file mode 100644 index 0000000..32bed51 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/styles/02-noon.json @@ -0,0 +1,461 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.7/theme.json", + "version": 3, + "title": "Noon", + "settings": { + "color": { + "palette": [ + { + "color": "#F8F7F5", + "name": "Base", + "slug": "base" + }, + { + "color": "#191919", + "name": "Contrast", + "slug": "contrast" + }, + { + "color": "#FFFFFF", + "name": "Accent 1", + "slug": "accent-1" + }, + { + "color": "#F5B684", + "name": "Accent 2", + "slug": "accent-2" + }, + { + "color": "#191919", + "name": "Accent 3", + "slug": "accent-3" + }, + { + "color": "#5F5F5F", + "name": "Accent 4", + "slug": "accent-4" + }, + { + "color": "#F1EEE9", + "name": "Accent 5", + "slug": "accent-5" + }, + { + "color": "#19191933", + "name": "Accent 6", + "slug": "accent-6" + } + ] + }, + "typography": { + "fontFamilies": [ + { + "name": "Beiruti", + "slug": "beiruti", + "fontFamily": "Beiruti, sans-serif", + "fontFace": [ + { + "fontFamily": "Beiruti", + "fontStyle": "normal", + "fontWeight": "200 900", + "src": [ + "file:./assets/fonts/beiruti/Beiruti-VariableFont_wght.woff2" + ] + } + ] + }, + { + "name": "Literata", + "slug": "literata", + "fontFamily": "Literata, serif", + "fontFace": [ + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-ExtraLight.woff2" + ], + "fontWeight": "200", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-ExtraLightItalic.woff2" + ], + "fontWeight": "200", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-Light.woff2" + ], + "fontWeight": "300", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-LightItalic.woff2" + ], + "fontWeight": "300", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-Regular.woff2" + ], + "fontWeight": "400", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-RegularItalic.woff2" + ], + "fontWeight": "400", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-Medium.woff2" + ], + "fontWeight": "500", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-MediumItalic.woff2" + ], + "fontWeight": "500", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-SemiBold.woff2" + ], + "fontWeight": "600", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-SemiBoldItalic.woff2" + ], + "fontWeight": "600", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-Bold.woff2" + ], + "fontWeight": "700", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-BoldItalic.woff2" + ], + "fontWeight": "700", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-ExtraBold.woff2" + ], + "fontWeight": "800", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-ExtraBoldItalic.woff2" + ], + "fontWeight": "800", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-Black.woff2" + ], + "fontWeight": "900", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-BlackItalic.woff2" + ], + "fontWeight": "900", + "fontStyle": "italic", + "fontFamily": "Literata" + } + ] + } + ], + "fontSizes": [ + { + "fluid": false, + "name": "Small", + "size": "0.9rem", + "slug": "small" + }, + { + "fluid": { + "max": "1.2rem", + "min": "1rem" + }, + "name": "Medium", + "size": "1rem", + "slug": "medium" + }, + { + "fluid": { + "max": "1.8rem", + "min": "1.6rem" + }, + "name": "Large", + "size": "1.6rem", + "slug": "large" + }, + { + "fluid": { + "max": "2.2rem", + "min": "1.8em" + }, + "name": "Extra Large", + "size": "1.8rem", + "slug": "x-large" + }, + { + "fluid": { + "max": "2.8rem", + "min": "2rem" + }, + "name": "Extra Extra Large", + "size": "2rem", + "slug": "xx-large" + } + ] + } + }, + "styles": { + "color": { + "text": "var:preset|color|accent-4" + }, + "typography": { + "fontFamily": "var:preset|font-family|literata", + "fontSize": "var:preset|font-size|medium", + "letterSpacing": "-0.01em", + "lineHeight": "1.6" + }, + "blocks": { + "core/button": { + "border": { + "color": "var:preset|color|contrast" + }, + "shadow": "var:preset|shadow|natural", + "spacing": { + "padding": { + "bottom": "0.6rem", + "left": "1.6rem", + "right": "1.6rem", + "top": "0.6rem" + } + }, + "typography": { + "fontFamily": "var:preset|font-family|beiruti" + }, + "variations": { + "outline": { + "shadow": "none", + "spacing": { + "padding": { + "bottom": "0.6rem", + "left": "1.6rem", + "right": "1.6rem", + "top": "0.6rem" + } + } + } + } + }, + "core/list": { + "typography": { + "lineHeight": "1.3" + } + }, + "core/loginout": { + "typography": { + "fontSize": "var:preset|font-size|medium" + } + }, + "core/post-terms": { + "typography": { + "fontWeight": "300" + } + }, + "core/post-title": { + "color": { + "text": "var:preset|color|accent-3" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "core/pullquote": { + "color": { + "text": "var:preset|color|accent-3" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + } + }, + "typography": { + "fontFamily": "var:preset|font-family|beiruti", + "fontWeight": "500", + "lineHeight": "1" + } + }, + "core/quote": { + "typography": { + "fontSize": "var:preset|font-size|medium" + } + }, + "core/query-pagination": { + "typography": { + "fontWeight": "300" + } + }, + "core/query-title": { + "color": { + "text": "var:preset|color|accent-3" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "core/site-tagline": { + "typography": { + "fontSize": "var:preset|font-size|small" + } + }, + "core/site-title": { + "typography": { + "fontFamily": "var:preset|font-family|beiruti", + "fontWeight": "600", + "letterSpacing": "2.4px", + "textTransform": "uppercase" + } + } + }, + "elements": { + "button": { + "color": { + "background": "var:preset|color|contrast", + "text": "var:preset|color|base" + } + }, + "h4": { + "typography": { + "fontSize": "var:preset|font-size|large" + } + }, + "h5": { + "typography": { + "fontSize": "var:preset|font-size|medium", + "letterSpacing": "0px" + } + }, + "h6": { + "typography": { + "fontSize": "var:preset|font-size|small" + } + }, + "heading": { + "color": { + "text": "var:preset|color|accent-3" + }, + "typography": { + "fontFamily": "var:preset|font-family|beiruti", + "fontWeight": "500", + "letterSpacing": "-0.02em", + "lineHeight": "1.02" + } + }, + "link": { + "color": { + "text": "currentColor" + } + } + }, + "variations": { + "section-4": { + "color": { + "text": "var:preset|color|accent-2" + }, + "elements": { + "button": { + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--accent-2) 85%, transparent)" + } + } + }, + "heading": { + "color": { + "text": "currentColor" + } + }, + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "section-5": { + "color": { + "text": "var:preset|color|base" + }, + "elements": { + "button": { + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--base) 85%, transparent)" + } + } + }, + "heading": { + "color": { + "text": "var:preset|color|base" + } + }, + "link": { + "color": { + "text": "currentColor" + } + } + } + } + } + } +} diff --git a/wp-content/themes/twentytwentyfive/styles/03-dusk.json b/wp-content/themes/twentytwentyfive/styles/03-dusk.json new file mode 100644 index 0000000..bbcdf63 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/styles/03-dusk.json @@ -0,0 +1,396 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.7/theme.json", + "version": 3, + "title": "Dusk", + "settings": { + "color": { + "palette": [ + { + "color": "#E2E2E2", + "name": "Base", + "slug": "base" + }, + { + "color": "#3B3B3B", + "name": "Contrast", + "slug": "contrast" + }, + { + "color": "#F5EDFF", + "name": "Accent 1", + "slug": "accent-1" + }, + { + "color": "#650DD4", + "name": "Accent 2", + "slug": "accent-2" + }, + { + "color": "#191919", + "name": "Accent 3", + "slug": "accent-3" + }, + { + "color": "#5F5F5F", + "name": "Accent 4", + "slug": "accent-4" + }, + { + "color": "#DBDBDB", + "name": "Accent 5", + "slug": "accent-5" + }, + { + "color": "#3B3B3B33", + "name": "Accent 6", + "slug": "accent-6" + } + ] + }, + "custom": { + "color": { + "accent-2-opacity-20": "#650DD433" + } + }, + "typography": { + "fontFamilies": [ + { + "name": "Vollkorn", + "slug": "vollkorn", + "fontFamily": "Vollkorn, serif", + "fontFace": [ + { + "src": [ + "file:./assets/fonts/vollkorn/Vollkorn-Italic-VariableFont_wght.woff2" + ], + "fontWeight": "400 900", + "fontStyle": "italic", + "fontFamily": "Vollkorn" + }, + { + "src": [ + "file:./assets/fonts/vollkorn/Vollkorn-VariableFont_wght.woff2" + ], + "fontWeight": "400 900", + "fontStyle": "normal", + "fontFamily": "Vollkorn" + } + ] + }, + { + "name": "Fira Code", + "slug": "fira-code", + "fontFamily": "\"Fira Code\", monospace", + "fontFace": [ + { + "src": [ + "file:./assets/fonts/fira-code/FiraCode-VariableFont_wght.woff2" + ], + "fontWeight": "300 700", + "fontStyle": "normal", + "fontFamily": "\"Fira Code\"" + } + ] + } + ] + } + }, + "styles": { + "typography": { + "fontFamily": "var:preset|font-family|fira-code", + "fontSize": "var:preset|font-size|medium", + "letterSpacing": "-0.18px", + "lineHeight": "1.5" + }, + "blocks": { + "core/code": { + "color": { + "text": "var:preset|color|black", + "background": "var:preset|color|accent-5" + } + }, + "core/paragraph": { + "elements": { + "link": { + "color": { + "text": "var:preset|color|accent-2" + } + } + } + }, + "core/post-author-name": { + "typography": { + "fontWeight": "300" + }, + "color": { + "text": "var:preset|color|accent-2" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "core/post-terms": { + "typography": { + "fontWeight": "300" + }, + "color": { + "text": "var:preset|color|accent-2" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "core/post-title": { + "typography": { + "fontWeight": "400", + "letterSpacing": "-0.96px" + }, + "elements": { + "link": { + "color": { + "text": "var:preset|color|accent-3" + } + } + } + }, + "core/pullquote": { + "color": { + "text": "var:preset|color|black" + }, + "typography": { + "fontFamily": "var:preset|font-family|vollkorn", + "fontSize": "var:preset|font-size|x-large", + "fontWeight": "400" + }, + "elements": { + "cite": { + "typography": { + "fontFamily": "var:preset|font-family|fira-code", + "fontWeight": "300", + "letterSpacing": "-0.14px" + }, + "color": { + "text": "var:preset|color|contrast" + } + } + } + }, + "core/quote": { + "color": { + "text": "var:preset|color|black" + }, + "typography": { + "fontFamily": "var:preset|font-family|fira-code", + "fontWeight": "500", + "letterSpacing": "-0.18px" + } + }, + "core/site-title": { + "color": { + "text": "var:preset|color|accent-3" + }, + "typography": { + "fontFamily": "var:preset|font-family|vollkorn", + "fontSize": "var:preset|font-size|x-large" + }, + "elements": { + "link": { + "color": { + "text": "var:preset|color|accent-3" + } + } + } + } + }, + "elements": { + "button": { + "typography": { + "fontFamily": "var:preset|font-family|fira-code", + "fontSize": "var:preset|font-size|medium", + "fontWeight": "400", + "letterSpacing": "-0.36px" + }, + "color": { + "text": "var:preset|color|base", + "background": "var:preset|color|accent-2" + }, + "border": { + "radius": "4px", + "color": "transparent" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--accent-2) 85%, transparent)" + } + } + }, + "heading": { + "color": { + "text": "var:preset|color|accent-3" + }, + "typography": { + "fontFamily": "var:preset|font-family|vollkorn" + } + }, + "h1": { + "typography": { + "fontSize": "48px", + "letterSpacing": "-0.96px;" + } + }, + "h2": { + "typography": { + "fontSize": "38px", + "letterSpacing": "-0.96px" + } + }, + "h3": { + "typography": { + "fontSize": "32px", + "letterSpacing": "-0.64px" + } + }, + "h4": { + "typography": { + "fontSize": "28px", + "letterSpacing": "-0.56px" + } + }, + "h5": { + "typography": { + "fontSize": "24px", + "letterSpacing": "-0.48px" + } + }, + "link": { + "color": { + "text": "var:preset|color|accent-3" + } + } + }, + "variations": { + "post-terms-1": { + "elements": { + "link": { + "border": { + "color": "var:custom|color|accent-2-opacity-20", + "radius": "4px", + "width": "0.8px", + "style": "solid" + } + } + } + }, + "section-1": { + "elements": { + "link": { + "color": { + "text": "var:preset|color|accent-3" + } + } + } + }, + "section-2": { + "color": { + "text": "var:preset|color|base" + }, + "elements": { + "button": { + "color": { + "background": "var:preset|color|accent-3", + "text": "var:preset|color|base" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--accent-3) 85%, transparent)" + } + } + }, + "link": { + "color": { + "text": "currentColor" + } + }, + "heading": { + "color": { + "text": "currentColor" + } + } + } + }, + "section-3": { + "color": { + "text": "var:preset|color|accent-2" + }, + "elements": { + "heading": { + "color": { + "text": "currentColor" + } + } + } + }, + "section-4": { + "color": { + "text": "var:preset|color|base" + }, + "elements": { + "button": { + "color": { + "text": "var:preset|color|base" + }, + ":hover": { + "color": { + "text": "var:preset|color|base" + } + } + }, + "link": { + "color": { + "text": "currentColor" + } + }, + "heading": { + "color": { + "text": "currentColor" + } + } + } + }, + "section-5": { + "elements": { + "button": { + "color": { + "background": "var:preset|color|accent-2", + "text": "var:preset|color|base" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--accent-2) 85%, transparent)", + "text": "var:preset|color|base" + } + } + }, + "heading": { + "color": { + "text": "var:preset|color|base" + } + }, + "link": { + "color": { + "text": "var:preset|color|base" + } + } + } + } + } + } +} diff --git a/wp-content/themes/twentytwentyfive/styles/04-afternoon.json b/wp-content/themes/twentytwentyfive/styles/04-afternoon.json new file mode 100644 index 0000000..d1edf01 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/styles/04-afternoon.json @@ -0,0 +1,302 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.7/theme.json", + "version": 3, + "title": "Afternoon", + "settings": { + "color": { + "palette": [ + { + "color": "#DAE7BD", + "name": "Base", + "slug": "base" + }, + { + "color": "#516028", + "name": "Contrast", + "slug": "contrast" + }, + { + "color": "#C7F642", + "name": "Accent 1", + "slug": "accent-1" + }, + { + "color": "#EBF6D3", + "name": "Accent 2", + "slug": "accent-2" + }, + { + "color": "#303D10", + "name": "Accent 3", + "slug": "accent-3" + }, + { + "color": "#516028", + "name": "Accent 4", + "slug": "accent-4" + }, + { + "color": "#EBF6D3", + "name": "Accent 5", + "slug": "accent-5" + }, + { + "color": "#51602833", + "name": "Accent 6", + "slug": "accent-6" + } + ] + }, + "typography": { + "fontFamilies": [ + { + "name": "Platypi", + "slug": "platypi", + "fontFamily": "Platypi", + "fontFace": [ + { + "fontFamily": "Platypi", + "fontStyle": "normal", + "fontWeight": "300 800", + "src": [ + "file:./assets/fonts/platypi/Platypi-VariableFont_wght.woff2" + ] + }, + { + "fontFamily": "Platypi", + "fontStyle": "italic", + "fontWeight": "300 800", + "src": [ + "file:./assets/fonts/platypi/Platypi-Italic-VariableFont_wght.woff2" + ] + } + ] + }, + { + "name": "Ysabeau Office", + "slug": "ysabeau-office", + "fontFamily": "\"Ysabeau Office\", sans-serif", + "fontFace": [ + { + "src": [ + "file:./assets/fonts/ysabeau-office/YsabeauOffice-VariableFont_wght.woff2" + ], + "fontWeight": "100 900", + "fontStyle": "normal", + "fontFamily": "\"Ysabeau Office\"" + }, + { + "src": [ + "file:./assets/fonts/ysabeau-office/YsabeauOffice-Italic-VariableFont_wght.woff2" + ], + "fontWeight": "100 900", + "fontStyle": "italic", + "fontFamily": "\"Ysabeau Office\"" + } + ] + } + ], + "fontSizes": [ + { + "fluid": false, + "name": "Small", + "size": "0.875rem", + "slug": "small" + }, + { + "fluid": { + "max": "1.125rem", + "min": "1rem" + }, + "name": "Medium", + "size": "1rem", + "slug": "medium" + }, + { + "fluid": { + "max": "1.375rem", + "min": "1.125rem" + }, + "name": "Large", + "size": "1.38rem", + "slug": "large" + }, + { + "fluid": { + "max": "1.8rem", + "min": "1.4rem" + }, + "name": "Extra Large", + "size": "1.4rem", + "slug": "x-large" + }, + { + "fluid": { + "max": "2.6rem", + "min": "2rem" + }, + "name": "Extra Extra Large", + "size": "2rem", + "slug": "xx-large" + } + ] + } + }, + "styles": { + "typography": { + "fontFamily": "var:preset|font-family|ysabeau-office", + "letterSpacing": "-0.22px", + "lineHeight": "1.5" + }, + "blocks": { + "core/button": { + "border": { + "radius": "0px" + }, + "spacing": { + "padding": { + "bottom": "1rem", + "left": "1.6rem", + "right": "1.6rem", + "top": "1rem" + } + }, + "variations": { + "outline": { + "spacing": { + "padding": { + "bottom": "1rem", + "left": "1.6rem", + "right": "1.6rem", + "top": "1rem" + } + } + } + } + }, + "core/code": { + "typography": { + "letterSpacing": "0px" + } + }, + "core/heading": { + "typography": { + "lineHeight": "1.2" + } + }, + "core/list": { + "typography": { + "lineHeight": "1.3" + } + }, + "core/loginout": { + "typography": { + "fontSize": "var:preset|font-size|medium" + } + }, + "core/post-terms": { + "typography": { + "fontWeight": "400" + } + }, + "core/pullquote": { + "typography": { + "fontFamily": "var:preset|font-family|platypi", + "letterSpacing": "-0.01em", + "lineHeight": "1.1" + } + }, + "core/quote": { + "typography": { + "fontWeight": "300" + } + }, + "core/site-title": { + "typography": { + "fontFamily": "var:preset|font-family|ysabeau-office", + "fontSize": "var:preset|font-size|large", + "letterSpacing": "1.44px", + "textTransform": "uppercase" + } + } + }, + "elements": { + "button": { + "typography": { + "fontFamily": "var:preset|font-family|ysabeau-office", + "fontWeight": "600", + "letterSpacing": "1.44px", + "textTransform": "uppercase" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--contrast) 85%, black)" + } + } + }, + "heading": { + "typography": { + "fontFamily": "var:preset|font-family|platypi" + } + }, + "h5": { + "typography": { + "fontSize": "var:preset|font-size|medium", + "letterSpacing": "normal" + } + }, + "h6": { + "typography": { + "fontSize": "var:preset|font-size|small", + "fontWeight": "400", + "fontStyle": "initial", + "letterSpacing": "initial", + "textTransform": "initial" + } + } + }, + "variations": { + "section-2": { + "color": { + "background": "var:preset|color|accent-3", + "text": "var:preset|color|accent-1" + }, + "elements": { + "button": { + "color": { + "background": "var:preset|color|accent-1", + "text": "var:preset|color|accent-3" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--accent-1) 85%, transparent)" + } + } + } + } + }, + "section-4": { + "elements": { + "button": { + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--accent-2) 85%, transparent)" + } + } + } + } + }, + "section-5": { + "elements": { + "button": { + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--base) 90%, transparent)" + } + } + } + } + } + } + } +} diff --git a/wp-content/themes/twentytwentyfive/styles/05-twilight.json b/wp-content/themes/twentytwentyfive/styles/05-twilight.json new file mode 100644 index 0000000..833b4f3 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/styles/05-twilight.json @@ -0,0 +1,254 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.7/theme.json", + "version": 3, + "title": "Twilight", + "settings": { + "color": { + "palette": [ + { + "color": "#131313", + "name": "Base", + "slug": "base" + }, + { + "color": "#FFFFFF", + "name": "Contrast", + "slug": "contrast" + }, + { + "color": "#4B52FF", + "name": "Accent 1", + "slug": "accent-1" + }, + { + "color": "#FF7A5C", + "name": "Accent 2", + "slug": "accent-2" + }, + { + "color": "#252525", + "name": "Accent 3", + "slug": "accent-3" + }, + { + "color": "#FFFFFF", + "name": "Accent 4", + "slug": "accent-4" + }, + { + "color": "#252525", + "name": "Accent 5", + "slug": "accent-5" + }, + { + "color": "#FFFFFF33", + "name": "Accent 6", + "slug": "accent-6" + } + ] + }, + "typography": { + "fontFamilies": [ + { + "name": "Roboto Slab", + "slug": "roboto-slab", + "fontFamily": "\"Roboto Slab\", serif", + "fontFace": [ + { + "fontFamily": "\"Roboto Slab\"", + "fontStyle": "normal", + "fontWeight": "100 900", + "src": [ + "file:./assets/fonts/roboto-slab/RobotoSlab-VariableFont_wght.woff2" + ] + } + ] + }, + { + "name": "Manrope", + "slug": "manrope", + "fontFamily": "Manrope, sans-serif", + "fontFace": [ + { + "src": [ + "file:./assets/fonts/manrope/Manrope-VariableFont_wght.woff2" + ], + "fontWeight": "200 800", + "fontStyle": "normal", + "fontFamily": "Manrope" + } + ] + } + ], + "fontSizes": [ + { + "fluid": false, + "name": "Small", + "size": "0.875rem", + "slug": "small" + }, + { + "fluid": { + "max": "1.125rem", + "min": "1rem" + }, + "name": "Medium", + "size": "1rem", + "slug": "medium" + }, + { + "fluid": { + "max": "1.375rem", + "min": "1.125rem" + }, + "name": "Large", + "size": "1.38rem", + "slug": "large" + }, + { + "fluid": { + "max": "2rem", + "min": "1.75rem" + }, + "name": "Extra Large", + "size": "1.75rem", + "slug": "x-large" + }, + { + "fluid": { + "max": "2.4rem", + "min": "2.15rem" + }, + "name": "Extra Extra Large", + "size": "2.15rem", + "slug": "xx-large" + } + ] + } + }, + "styles": { + "typography": { + "letterSpacing": "0" + }, + "blocks": { + "core/button": { + "variations": { + "outline": { + "spacing": { + "padding": { + "bottom": "0.625rem", + "left": "1.375rem", + "right": "1.375rem", + "top": "0.625rem" + } + } + } + } + }, + "core/navigation": { + "typography": { + "fontSize": "var:preset|font-size|large", + "letterSpacing": "-0.28px", + "textTransform": "uppercase" + } + }, + "core/post-author": { + "typography": { + "fontSize": "var:preset|font-size|small" + } + }, + "core/post-author-name": { + "typography": { + "fontSize": "var:preset|font-size|small" + } + }, + "core/post-terms": { + "typography": { + "fontWeight": "500" + } + }, + "core/pullquote": { + "typography": { + "fontFamily": "var:preset|font-family|roboto-slab", + "fontSize": "var:preset|font-size|xx-large", + "fontWeight": "200" + } + }, + "core/search": { + "typography": { + "textTransform": "uppercase" + } + }, + "core/site-tagline": { + "typography": { + "fontSize": "var:preset|font-size|large" + } + }, + "core/site-title": { + "typography": { + "textTransform": "uppercase" + } + } + }, + "elements": { + "button": { + "spacing": { + "padding": { + "bottom": "0.625rem", + "left": "1.375rem", + "right": "1.375rem", + "top": "0.625rem" + } + }, + "typography": { + "fontWeight": "500", + "letterSpacing": "-0.36px", + "textTransform": "uppercase" + } + }, + "heading": { + "typography": { + "fontFamily": "var:preset|font-family|roboto-slab", + "fontWeight": "300", + "letterSpacing": "-0.5px", + "lineHeight": "1.2" + } + } + }, + "variations": { + "section-2": { + "color": { + "text": "var:preset|color|base" + }, + "elements": { + "button": { + "color": { + "background": "var:preset|color|base", + "text": "var:preset|color|accent-2" + }, + ":hover": { + "color": { + "text": "var:preset|color|accent-2" + } + } + }, + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "section-5": { + "blocks": { + "core/post-comments-form": { + "css": "& textarea, input:not([type=submit]){border-radius:.25rem; border-color: color-mix(in srgb, currentColor 20%, transparent) !important;} & input[type=checkbox]{margin:0 .2rem 0 0 !important;} & label {font-size: var(--wp--preset--font-size--small); }" + }, + "core/search": { + "css": "& .wp-block-search__input{border-color: color-mix(in srgb, currentColor 20%, transparent);}" + } + } + } + } + } +} diff --git a/wp-content/themes/twentytwentyfive/styles/06-morning.json b/wp-content/themes/twentytwentyfive/styles/06-morning.json new file mode 100644 index 0000000..60d1173 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/styles/06-morning.json @@ -0,0 +1,505 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.7/theme.json", + "version": 3, + "title": "Morning", + "settings": { + "color": { + "palette": [ + { + "color": "#DFDCD7", + "name": "Base", + "slug": "base" + }, + { + "color": "#191919", + "name": "Contrast", + "slug": "contrast" + }, + { + "color": "#7A9BDB", + "name": "Accent 1", + "slug": "accent-1" + }, + { + "color": "#F7E6FF", + "name": "Accent 2", + "slug": "accent-2" + }, + { + "color": "#182949", + "name": "Accent 3", + "slug": "accent-3" + }, + { + "color": "#5F5F5F", + "name": "Accent 4", + "slug": "accent-4" + }, + { + "color": "#D7D3CC", + "name": "Accent 5", + "slug": "accent-5" + }, + { + "color": "#19191933", + "name": "Accent 6", + "slug": "accent-6" + } + ] + }, + "typography": { + "fontFamilies": [ + { + "name": "Literata", + "slug": "literata", + "fontFamily": "Literata, serif", + "fontFace": [ + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-ExtraLight.woff2" + ], + "fontWeight": "200", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-ExtraLightItalic.woff2" + ], + "fontWeight": "200", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-Light.woff2" + ], + "fontWeight": "300", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-LightItalic.woff2" + ], + "fontWeight": "300", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-Regular.woff2" + ], + "fontWeight": "400", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-RegularItalic.woff2" + ], + "fontWeight": "400", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-Medium.woff2" + ], + "fontWeight": "500", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-MediumItalic.woff2" + ], + "fontWeight": "500", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-SemiBold.woff2" + ], + "fontWeight": "600", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-SemiBoldItalic.woff2" + ], + "fontWeight": "600", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-Bold.woff2" + ], + "fontWeight": "700", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-BoldItalic.woff2" + ], + "fontWeight": "700", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-ExtraBold.woff2" + ], + "fontWeight": "800", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-ExtraBoldItalic.woff2" + ], + "fontWeight": "800", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-Black.woff2" + ], + "fontWeight": "900", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-BlackItalic.woff2" + ], + "fontWeight": "900", + "fontStyle": "italic", + "fontFamily": "Literata" + } + ] + }, + { + "name": "Ysabeau Office", + "slug": "ysabeau-office", + "fontFamily": "\"Ysabeau Office\", sans-serif", + "fontFace": [ + { + "src": [ + "file:./assets/fonts/ysabeau-office/YsabeauOffice-VariableFont_wght.woff2" + ], + "fontWeight": "100 900", + "fontStyle": "normal", + "fontFamily": "\"Ysabeau Office\"" + }, + { + "src": [ + "file:./assets/fonts/ysabeau-office/YsabeauOffice-Italic-VariableFont_wght.woff2" + ], + "fontWeight": "100 900", + "fontStyle": "italic", + "fontFamily": "\"Ysabeau Office\"" + } + ] + } + ], + "fontSizes": [ + { + "fluid": false, + "name": "Small", + "size": "0.875rem", + "slug": "small" + }, + { + "fluid": { + "max": "1.125rem", + "min": "1rem" + }, + "name": "Medium", + "size": "1rem", + "slug": "medium" + }, + { + "fluid": { + "max": "1.375rem", + "min": "1.125rem" + }, + "name": "Large", + "size": "1.38rem", + "slug": "large" + }, + { + "fluid": { + "max": "2rem", + "min": "1.75rem" + }, + "name": "Extra Large", + "size": "1.75rem", + "slug": "x-large" + }, + { + "fluid": { + "max": "2.6rem", + "min": "1.4rem" + }, + "name": "Extra Extra Large", + "size": "2.6rem", + "slug": "xx-large" + } + ] + } + }, + "styles": { + "color": { + "text": "var:preset|color|accent-4" + }, + "typography": { + "fontFamily": "var:preset|font-family|ysabeau-office", + "letterSpacing": "-0.24px" + }, + "blocks": { + "core/code": { + "color": { + "text": "var:preset|color|contrast", + "background": "var:preset|color|accent-5" + } + }, + "core/navigation": { + "typography": { + "fontSize": "1.25rem" + } + }, + "core/paragraph": { + "elements": { + "link": { + "color": { + "text": "var:preset|color|contrast" + } + } + } + }, + "core/post-author-name": { + "elements": { + "link": { + "color": { + "text": "var:preset|color|contrast" + } + } + } + }, + "core/post-title": { + "typography": { + "fontWeight": "900", + "letterSpacing": "-0.96px" + }, + "elements": { + "link": { + "color": { + "text": "var:preset|color|contrast" + } + } + } + }, + "core/pullquote": { + "color": { + "text": "var:preset|color|contrast" + }, + "typography": { + "fontSize": "var:preset|font-size|xx-large" + }, + "elements": { + "cite": { + "typography": { + "fontSize": "var:preset|font-size|medium", + "letterSpacing": "-0.14px" + }, + "color": { + "text": "var:preset|color|accent-4" + } + } + } + }, + "core/quote": { + "elements": { + "cite": { + "typography": { + "fontSize": "var:preset|font-size|medium", + "letterSpacing": "-0.14px" + }, + "color": { + "text": "var:preset|color|accent-4" + } + } + } + }, + "core/query-title": { + "typography": { + "fontWeight": "900" + } + }, + "core/site-title": { + "typography": { + "fontFamily": "var:preset|font-family|ysabeau-office", + "textTransform": "uppercase", + "letterSpacing": "1.6px" + } + } + }, + "elements": { + "button": { + "typography": { + "fontFamily": "var:preset|font-family|literata", + "fontSize": "var:preset|font-size|medium", + "fontWeight": "900", + "letterSpacing": "-0.36px" + }, + "color": { + "text": "var:preset|color|contrast", + "background": "var:preset|color|accent-1" + }, + "border": { + "radius": "0px" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--accent-1) 85%, transparent)", + "text": "var:preset|color|contrast" + } + } + }, + "heading": { + "color": { + "text": "var:preset|color|contrast" + }, + "typography": { + "fontFamily": "var:preset|font-family|literata", + "fontWeight": "900", + "lineHeight": "1.2" + } + }, + "h5": { + "typography": { + "letterSpacing": "0px" + } + }, + "h6": { + "typography": { + "fontWeight": "900", + "letterSpacing": "0px" + } + }, + "link": { + "color": { + "text": "currentColor" + } + } + }, + "variations": { + "post-terms-1": { + "typography": { + "fontSize": "var:preset|font-size|medium" + }, + "elements": { + "link": { + "color": { + "background": "var:preset|color|accent-5" + }, + "border": { + "radius": "100px", + "color": "var:preset|color|accent-5" + } + } + } + }, + "section-2": { + "elements": { + "button": { + "color": { + "background": "var:preset|color|accent-1", + "text": "var:preset|color|contrast" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--accent-1) 85%, transparent)" + } + } + } + } + }, + "section-3": { + "elements": { + "button": { + "color": { + "background": "var:preset|color|contrast", + "text": "var:preset|color|base" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--contrast) 85%, transparent)" + } + } + } + } + }, + "section-4": { + "color": { + "text": "var:preset|color|base" + }, + "elements": { + "heading": { + "color": { + "text": "currentColor" + } + }, + "button": { + "color": { + "background": "var:preset|color|accent-1", + "text": "var:preset|color|contrast" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--accent-1) 85%, transparent)", + "text": "var:preset|color|contrast" + } + } + }, + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "section-5": { + "elements": { + "heading": { + "color": { + "text": "var:preset|color|base" + } + }, + "button": { + "color": { + "background": "var:preset|color|accent-1", + "text": "var:preset|color|contrast" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--accent-1) 85%, transparent)" + } + } + }, + "link": { + "color": { + "text": "currentColor" + } + } + } + } + } + } +} diff --git a/wp-content/themes/twentytwentyfive/styles/07-sunrise.json b/wp-content/themes/twentytwentyfive/styles/07-sunrise.json new file mode 100644 index 0000000..fa5b100 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/styles/07-sunrise.json @@ -0,0 +1,508 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.7/theme.json", + "version": 3, + "title": "Sunrise", + "settings": { + "color": { + "palette": [ + { + "color": "#330616", + "name": "Base", + "slug": "base" + }, + { + "color": "#FFFFFF", + "name": "Contrast", + "slug": "contrast" + }, + { + "color": "#F0FDA6", + "name": "Accent 1", + "slug": "accent-1" + }, + { + "color": "#DB9AB1", + "name": "Accent 2", + "slug": "accent-2" + }, + { + "color": "#C1E4E7", + "name": "Accent 3", + "slug": "accent-3" + }, + { + "color": "#DB9AB1", + "name": "Accent 4", + "slug": "accent-4" + }, + { + "color": "#4A1628", + "name": "Accent 5", + "slug": "accent-5" + }, + { + "color": "#DB9AB133", + "name": "Accent 6", + "slug": "accent-6" + } + ] + }, + "typography": { + "fontFamilies": [ + { + "name": "Platypi", + "slug": "platypi", + "fontFamily": "Platypi", + "fontFace": [ + { + "fontFamily": "Platypi", + "fontStyle": "normal", + "fontWeight": "300 800", + "src": [ + "file:./assets/fonts/platypi/Platypi-VariableFont_wght.woff2" + ] + }, + { + "fontFamily": "Platypi", + "fontStyle": "italic", + "fontWeight": "300 800", + "src": [ + "file:./assets/fonts/platypi/Platypi-Italic-VariableFont_wght.woff2" + ] + } + ] + }, + { + "name": "Literata", + "slug": "literata", + "fontFamily": "Literata, serif", + "fontFace": [ + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-ExtraLight.woff2" + ], + "fontWeight": "200", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-ExtraLightItalic.woff2" + ], + "fontWeight": "200", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-Light.woff2" + ], + "fontWeight": "300", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-LightItalic.woff2" + ], + "fontWeight": "300", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-Regular.woff2" + ], + "fontWeight": "400", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-RegularItalic.woff2" + ], + "fontWeight": "400", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-Medium.woff2" + ], + "fontWeight": "500", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-MediumItalic.woff2" + ], + "fontWeight": "500", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-SemiBold.woff2" + ], + "fontWeight": "600", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-SemiBoldItalic.woff2" + ], + "fontWeight": "600", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-Bold.woff2" + ], + "fontWeight": "700", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-BoldItalic.woff2" + ], + "fontWeight": "700", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-ExtraBold.woff2" + ], + "fontWeight": "800", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-ExtraBoldItalic.woff2" + ], + "fontWeight": "800", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-Black.woff2" + ], + "fontWeight": "900", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-BlackItalic.woff2" + ], + "fontWeight": "900", + "fontStyle": "italic", + "fontFamily": "Literata" + } + ] + } + ] + } + }, + "styles": { + "color": { + "text": "var:preset|color|accent-2" + }, + "typography": { + "fontFamily": "var:preset|font-family|literata", + "fontSize": "1.5rem", + "letterSpacing": "-0.24px", + "lineHeight": "1.3" + }, + "blocks": { + "core/code": { + "color": { + "text": "var:preset|color|accent-2", + "background": "var:preset|color|accent-5" + } + }, + "core/navigation": { + "typography": { + "fontSize": "1.25rem" + } + }, + "core/post-author-name": { + "color": { + "text": "var:preset|color|contrast" + }, + "elements": { + "link": { + "color": { + "text": "var:preset|color|contrast" + } + } + } + }, + "core/post-terms": { + "typography": { + "fontWeight": "400" + }, + "color": { + "text": "var:preset|color|contrast" + }, + "elements": { + "link": { + "color": { + "text": "var:preset|color|contrast" + } + } + } + }, + "core/post-title": { + "typography": { + "fontWeight": "800", + "letterSpacing": "-0.96px" + }, + "elements": { + "link": { + "color": { + "text": "var:preset|color|accent-2" + } + } + } + }, + "core/pullquote": { + "color": { + "text": "var:preset|color|accent-2" + }, + "typography": { + "fontFamily": "var:preset|font-family|platypi", + "fontSize": "var:preset|font-size|x-large", + "letterSpacing": "-0.76px", + "fontWeight": "800" + }, + "elements": { + "cite": { + "typography": { + "fontFamily": "var:preset|font-family|literata", + "fontWeight": "400", + "letterSpacing": "-0.14px" + }, + "color": { + "text": "var:preset|color|accent-2" + } + } + } + }, + "core/quote": { + "color": { + "text": "var:preset|color|accent-2" + }, + "typography": { + "fontSize": "1.5rem", + "fontWeight": "600", + "letterSpacing": "-0.24px" + }, + "elements": { + "cite": { + "typography": { + "letterSpacing": "-0.14px" + }, + "color": { + "text": "var:preset|color|accent-2" + } + } + } + }, + "core/site-title": { + "typography": { + "fontFamily": "var:preset|font-family|platypi", + "fontSize": "30px", + "fontWeight": "800", + "letterSpacing": "-0.6px" + }, + "elements": { + "link": { + "color": { + "text": "var:preset|color|accent-2" + } + } + } + } + }, + "elements": { + "button": { + "color": { + "text": "var:preset|color|base", + "background": "var:preset|color|accent-2" + }, + "border": { + "radius": "0px" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--accent-2) 85%, transparent)" + } + }, + "typography": { + "fontFamily": "var:preset|font-family|platypi", + "fontSize": "1.5rem", + "fontWeight": "800" + } + }, + "heading": { + "typography": { + "fontFamily": "var:preset|font-family|platypi", + "fontWeight": "800" + } + }, + "link": { + "color": { + "text": "var:preset|color|contrast" + } + } + }, + "variations": { + "post-terms-1": { + "typography": { + "fontSize": "16px" + }, + "elements": { + "link": { + "color": { + "background": "var:preset|color|accent-5" + }, + "border": { + "radius": "100px", + "color": "var:preset|color|accent-5" + } + } + } + }, + "section-1": { + "color": { + "text": "var:preset|color|accent-5", + "background": "var:preset|color|contrast" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + }, + "button": { + "color": { + "background": "var:preset|color|base", + "text": "var:preset|color|contrast" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--base) 85%, transparent)" + } + } + } + } + }, + "section-2": { + "color": { + "text": "var:preset|color|base" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + }, + "button": { + "color": { + "background": "var:preset|color|base", + "text": "var:preset|color|contrast" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--base) 85%, transparent)" + } + } + } + } + }, + "section-3": { + "color": { + "text": "var:preset|color|base" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + }, + "button": { + "color": { + "background": "var:preset|color|base", + "text": "var:preset|color|contrast" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--base) 85%, transparent)" + } + } + } + } + }, + "section-4": { + "color": { + "text": "var:preset|color|base" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + }, + "button": { + "color": { + "background": "var:preset|color|base", + "text": "var:preset|color|contrast" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--base) 85%, transparent)" + } + } + } + } + }, + "section-5": { + "color": { + "text": "var:preset|color|contrast", + "background": "var:preset|color|accent-5" + }, + "elements": { + "heading": { + "color": { + "text": "currentColor" + } + }, + "link": { + "color": { + "text": "currentColor" + } + }, + "button": { + "color": { + "background": "var:preset|color|contrast", + "text": "var:preset|color|base" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--contrast) 85%, transparent)", + "text": "var:preset|color|base" + } + } + } + } + } + } + } +} diff --git a/wp-content/themes/twentytwentyfive/styles/08-midnight.json b/wp-content/themes/twentytwentyfive/styles/08-midnight.json new file mode 100644 index 0000000..9272d14 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/styles/08-midnight.json @@ -0,0 +1,612 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.7/theme.json", + "version": 3, + "title": "Midnight", + "settings": { + "color": { + "duotone": [ + { + "colors": [ + "#4433A6", + "#79F3B1" + ], + "name": "Midnight filter", + "slug": "midnight-filter" + } + ], + "palette": [ + { + "color": "#4433A6", + "name": "Base", + "slug": "base" + }, + { + "color": "#79F3B1", + "name": "Contrast", + "slug": "contrast" + }, + { + "color": "#5644BC", + "name": "Accent 1", + "slug": "accent-1" + }, + { + "color": "#372696", + "name": "Accent 2", + "slug": "accent-2" + }, + { + "color": "#251D51", + "name": "Accent 3", + "slug": "accent-3" + }, + { + "color": "#79F3B1", + "name": "Accent 4", + "slug": "accent-4" + }, + { + "color": "#E8B7FF", + "name": "Accent 5", + "slug": "accent-5" + }, + { + "color": "#79F3B133", + "name": "Accent 6", + "slug": "accent-6" + } + ] + }, + "typography": { + "fontSizes": [ + { + "fluid": false, + "name": "Small", + "size": "0.9rem", + "slug": "small" + }, + { + "fluid": { + "max": "1.2rem", + "min": "0.9rem" + }, + "name": "Medium", + "size": "1rem", + "slug": "medium" + }, + { + "fluid": { + "max": "1.8rem", + "min": "1.2rem" + }, + "name": "Large", + "size": "1.2rem", + "slug": "large" + }, + { + "fluid": { + "max": "2.2rem", + "min": "1.8rem" + }, + "name": "Extra Large", + "size": "1.8rem", + "slug": "x-large" + }, + { + "fluid": { + "max": "2.8rem", + "min": "2rem" + }, + "name": "Extra Extra Large", + "size": "2rem", + "slug": "xx-large" + } + ], + "fontFamilies": [ + { + "name": "Literata", + "slug": "literata", + "fontFamily": "Literata, serif", + "fontFace": [ + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-ExtraLight.woff2" + ], + "fontWeight": "200", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-ExtraLightItalic.woff2" + ], + "fontWeight": "200", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-Light.woff2" + ], + "fontWeight": "300", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-LightItalic.woff2" + ], + "fontWeight": "300", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-Regular.woff2" + ], + "fontWeight": "400", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-RegularItalic.woff2" + ], + "fontWeight": "400", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-Medium.woff2" + ], + "fontWeight": "500", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-MediumItalic.woff2" + ], + "fontWeight": "500", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-SemiBold.woff2" + ], + "fontWeight": "600", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-SemiBoldItalic.woff2" + ], + "fontWeight": "600", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-Bold.woff2" + ], + "fontWeight": "700", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-BoldItalic.woff2" + ], + "fontWeight": "700", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-ExtraBold.woff2" + ], + "fontWeight": "800", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-ExtraBoldItalic.woff2" + ], + "fontWeight": "800", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-Black.woff2" + ], + "fontWeight": "900", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-BlackItalic.woff2" + ], + "fontWeight": "900", + "fontStyle": "italic", + "fontFamily": "Literata" + } + ] + }, + { + "name": "Fira Sans", + "slug": "fira-sans", + "fontFamily": "\"Fira Sans\", sans-serif", + "fontFace": [ + { + "src": [ + "file:./assets/fonts/fira-sans/FiraSans-Thin.woff2" + ], + "fontWeight": "100", + "fontStyle": "normal", + "fontFamily": "\"Fira Sans\"" + }, + { + "src": [ + "file:./assets/fonts/fira-sans/FiraSans-ThinItalic.woff2" + ], + "fontWeight": "100", + "fontStyle": "italic", + "fontFamily": "\"Fira Sans\"" + }, + { + "src": [ + "file:./assets/fonts/fira-sans/FiraSans-ExtraLight.woff2" + ], + "fontWeight": "200", + "fontStyle": "normal", + "fontFamily": "\"Fira Sans\"" + }, + { + "src": [ + "file:./assets/fonts/fira-sans/FiraSans-ExtraLightItalic.woff2" + ], + "fontWeight": "200", + "fontStyle": "italic", + "fontFamily": "\"Fira Sans\"" + }, + { + "src": [ + "file:./assets/fonts/fira-sans/FiraSans-Light.woff2" + ], + "fontWeight": "300", + "fontStyle": "normal", + "fontFamily": "\"Fira Sans\"" + }, + { + "src": [ + "file:./assets/fonts/fira-sans/FiraSans-LightItalic.woff2" + ], + "fontWeight": "300", + "fontStyle": "italic", + "fontFamily": "\"Fira Sans\"" + }, + { + "src": [ + "file:./assets/fonts/fira-sans/FiraSans-Italic.woff2" + ], + "fontWeight": "400", + "fontStyle": "italic", + "fontFamily": "\"Fira Sans\"" + }, + { + "src": [ + "file:./assets/fonts/fira-sans/FiraSans-Regular.woff2" + ], + "fontWeight": "400", + "fontStyle": "normal", + "fontFamily": "\"Fira Sans\"" + }, + { + "src": [ + "file:./assets/fonts/fira-sans/FiraSans-Medium.woff2" + ], + "fontWeight": "500", + "fontStyle": "normal", + "fontFamily": "\"Fira Sans\"" + }, + { + "src": [ + "file:./assets/fonts/fira-sans/FiraSans-MediumItalic.woff2" + ], + "fontWeight": "500", + "fontStyle": "italic", + "fontFamily": "\"Fira Sans\"" + }, + { + "src": [ + "file:./assets/fonts/fira-sans/FiraSans-SemiBold.woff2" + ], + "fontWeight": "600", + "fontStyle": "normal", + "fontFamily": "\"Fira Sans\"" + }, + { + "src": [ + "file:./assets/fonts/fira-sans/FiraSans-SemiBoldItalic.woff2" + ], + "fontWeight": "600", + "fontStyle": "italic", + "fontFamily": "\"Fira Sans\"" + }, + { + "src": [ + "file:./assets/fonts/fira-sans/FiraSans-Bold.woff2" + ], + "fontWeight": "700", + "fontStyle": "normal", + "fontFamily": "\"Fira Sans\"" + }, + { + "src": [ + "file:./assets/fonts/fira-sans/FiraSans-BoldItalic.woff2" + ], + "fontWeight": "700", + "fontStyle": "italic", + "fontFamily": "\"Fira Sans\"" + }, + { + "src": [ + "file:./assets/fonts/fira-sans/FiraSans-ExtraBold.woff2" + ], + "fontWeight": "800", + "fontStyle": "normal", + "fontFamily": "\"Fira Sans\"" + }, + { + "src": [ + "file:./assets/fonts/fira-sans/FiraSans-ExtraBoldItalic.woff2" + ], + "fontWeight": "800", + "fontStyle": "italic", + "fontFamily": "\"Fira Sans\"" + }, + { + "src": [ + "file:./assets/fonts/fira-sans/FiraSans-Black.woff2" + ], + "fontWeight": "900", + "fontStyle": "normal", + "fontFamily": "\"Fira Sans\"" + }, + { + "src": [ + "file:./assets/fonts/fira-sans/FiraSans-BlackItalic.woff2" + ], + "fontWeight": "900", + "fontStyle": "italic", + "fontFamily": "\"Fira Sans\"" + } + ] + } + ] + } + }, + "styles": { + "typography": { + "fontSize": "var:preset|font-size|medium", + "fontFamily": "var:preset|font-family|fira-sans", + "letterSpacing": "-0.01em", + "lineHeight": "1.5" + }, + "blocks": { + "core/avatar": { + "filter": { + "duotone": "var:preset|duotone|midnight-filter" + } + }, + "core/button": { + "variations": { + "outline": { + "spacing": { + "padding": { + "bottom": "1rem", + "left": "1rem", + "right": "1rem", + "top": "1rem" + } + } + } + } + }, + "core/code": { + "color": { + "background": "var:preset|color|accent-2", + "text": "var:preset|color|contrast" + } + }, + "core/cover": { + "filter": { + "duotone": "var:preset|duotone|midnight-filter" + } + }, + "core/image": { + "filter": { + "duotone": "var:preset|duotone|midnight-filter" + } + }, + "core/post-date": { + "color": { + "text": "var:preset|color|contrast" + }, + "elements": { + "link": { + "color": { + "text": "var:preset|color|contrast" + } + } + } + }, + "core/post-featured-image": { + "filter": { + "duotone": "var:preset|duotone|midnight-filter" + } + }, + "core/post-title": { + "typography": { + "fontWeight": "200" + } + }, + "core/pullquote": { + "border": { + "bottom": { + "style": "none", + "width": "0px" + }, + "left": { + "style": "none", + "width": "0px" + }, + "right": { + "style": "none", + "width": "0px" + }, + "top": { + "style": "none", + "width": "0px" + } + }, + "typography": { + "fontFamily": "var:preset|font-family|literata", + "fontWeight": "200", + "letterSpacing": "0em" + } + }, + "core/query-pagination": { + "typography": { + "fontWeight": "300", + "letterSpacing": "0px" + } + }, + "core/quote": { + "typography": { + "fontSize": "var:preset|font-size|medium", + "letterSpacing": "-0.01em", + "lineHeight": "1.5", + "fontWeight": "300" + } + }, + "core/search": { + "border": { + "radius": "0px" + } + }, + "core/site-logo": { + "filter": { + "duotone": "var:preset|duotone|midnight-filter" + } + }, + "core/site-title": { + "typography": { + "fontFamily": "var:preset|font-family|literata", + "fontSize": "var:preset|font-size|x-large", + "fontWeight": "300", + "letterSpacing": "-0.56px", + "textTransform": "uppercase" + } + } + }, + "elements": { + "button": { + "border": { + "radius": "0px" + }, + "color": { + "background": "var:preset|color|contrast", + "text": "var:preset|color|base" + }, + "spacing": { + "padding": { + "bottom": "1rem", + "left": "1rem", + "right": "1rem", + "top": "1rem" + } + }, + "typography": { + "fontFamily": "var:preset|font-family|literata", + "fontSize": "var:preset|font-size|medium", + "fontWeight": "400", + "letterSpacing": "-0.01em", + "textTransform": "uppercase" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--contrast) 85%, transparent)" + } + } + }, + "heading": { + "typography": { + "fontFamily": "var:preset|font-family|literata", + "fontWeight": "200", + "letterSpacing": "-0.02em", + "lineHeight": "1.24" + } + }, + "h6": { + "typography": { + "fontWeight": "200" + } + } + }, + "variations": { + "section-1": { + "color": { + "text": "var:preset|color|accent-3" + }, + "elements": { + "button": { + "color": { + "background": "var:preset|color|accent-3", + "text": "var:preset|color|accent-5" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--accent-3) 85%, transparent)" + } + } + }, + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "section-4": { + "color": { + "text": "var:preset|color|accent-5" + }, + "elements": { + "button": { + "color": { + "background": "var:preset|color|accent-5", + "text": "var:preset|color|accent-3" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--accent-5) 85%, transparent)" + } + } + }, + "link": { + "color": { + "text": "currentColor" + } + } + } + } + } + } +} diff --git a/wp-content/themes/twentytwentyfive/styles/blocks/01-display.json b/wp-content/themes/twentytwentyfive/styles/blocks/01-display.json new file mode 100644 index 0000000..ff8eaae --- /dev/null +++ b/wp-content/themes/twentytwentyfive/styles/blocks/01-display.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.7/theme.json", + "version": 3, + "title": "Display", + "slug": "text-display", + "blockTypes": ["core/heading", "core/paragraph"], + "styles": { + "typography": { + "fontSize": "clamp(2.2rem, 2.2rem + ((1vw - 0.2rem) * 1.333), 3.5rem)", + "lineHeight": "1.2" + } + } +} diff --git a/wp-content/themes/twentytwentyfive/styles/blocks/02-subtitle.json b/wp-content/themes/twentytwentyfive/styles/blocks/02-subtitle.json new file mode 100644 index 0000000..bd9640c --- /dev/null +++ b/wp-content/themes/twentytwentyfive/styles/blocks/02-subtitle.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.7/theme.json", + "version": 3, + "title": "Subtitle", + "slug": "text-subtitle", + "blockTypes": ["core/heading", "core/paragraph"], + "styles": { + "typography": { + "fontSize": "clamp(1.5rem, 1.5rem + ((1vw - 0.2rem) * 0.392), 1.75rem)", + "lineHeight": "1.2" + } + } +} diff --git a/wp-content/themes/twentytwentyfive/styles/blocks/03-annotation.json b/wp-content/themes/twentytwentyfive/styles/blocks/03-annotation.json new file mode 100644 index 0000000..41391e3 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/styles/blocks/03-annotation.json @@ -0,0 +1,36 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.7/theme.json", + "version": 3, + "title": "Annotation", + "slug": "text-annotation", + "blockTypes": ["core/heading", "core/paragraph"], + "styles": { + "css": "width: fit-content", + "typography": { + "fontSize": "var:preset|font-size|small", + "lineHeight": "1.5", + "letterSpacing": "normal" + }, + "border": { + "color": "currentColor", + "style": "solid", + "width": "1px", + "radius": "16px" + }, + "spacing": { + "padding": { + "top": "0.2rem", + "right": "0.6rem", + "bottom": "0.25rem", + "left": "0.6rem" + } + }, + "elements": { + "link": { + "typography": { + "textDecoration": "none" + } + } + } + } +} diff --git a/wp-content/themes/twentytwentyfive/styles/blocks/post-terms-1.json b/wp-content/themes/twentytwentyfive/styles/blocks/post-terms-1.json new file mode 100644 index 0000000..5995fbb --- /dev/null +++ b/wp-content/themes/twentytwentyfive/styles/blocks/post-terms-1.json @@ -0,0 +1,37 @@ +{ + "version": 3, + "$schema": "https://schemas.wp.org/wp/6.7/theme.json", + "title": "Pill shaped", + "slug": "post-terms-1", + "blockTypes": ["core/post-terms"], + "styles": { + "elements": { + "link": { + "border": { + "color": "var:preset|color|accent-6", + "radius": "20px", + "width": "0.8px", + "style": "solid" + }, + "spacing": { + "padding": { + "top": "5px", + "right": "10px", + "bottom": "5px", + "left": "10px" + } + }, + "typography": { + "fontWeight": "400", + "lineHeight": "2.8", + "textDecoration": "none" + }, + ":hover": { + "typography": { + "textDecoration": "underline" + } + } + } + } + } +} diff --git a/wp-content/themes/twentytwentyfive/styles/colors/01-evening.json b/wp-content/themes/twentytwentyfive/styles/colors/01-evening.json new file mode 100644 index 0000000..56c88fb --- /dev/null +++ b/wp-content/themes/twentytwentyfive/styles/colors/01-evening.json @@ -0,0 +1,102 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.7/theme.json", + "version": 3, + "title": "Evening", + "settings": { + "color": { + "palette": [ + { + "color": "#1B1B1B", + "name": "Base", + "slug": "base" + }, + { + "color": "#F0F0F0", + "name": "Contrast", + "slug": "contrast" + }, + { + "color": "#786D0A", + "name": "Accent 1", + "slug": "accent-1" + }, + { + "color": "#442369", + "name": "Accent 2", + "slug": "accent-2" + }, + { + "color": "#D1D0EA", + "name": "Accent 3", + "slug": "accent-3" + }, + { + "color": "#CBCBCB", + "name": "Accent 4", + "slug": "accent-4" + }, + { + "color": "#353535", + "name": "Accent 5", + "slug": "accent-5" + }, + { + "color": "#FFFFFF33", + "name": "Accent 6", + "slug": "accent-6" + } + ] + } + }, + "styles": { + "color": { + "text": "var:preset|color|accent-4" + }, + "elements": { + "button": { + "color": { + "background": "var:preset|color|contrast", + "text": "var:preset|color|base" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--contrast) 85%, transparent)", + "text": "var:preset|color|base" + } + } + } + }, + "variations": { + "section-2": { + "elements": { + "button": { + "color": { + "background": "var:preset|color|base", + "text": "var:preset|color|contrast" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--base) 85%, transparent)" + } + } + } + } + }, + "section-4": { + "elements": { + "button": { + "color": { + "background": "var:preset|color|accent-2", + "text": "var:preset|color|contrast" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--accent-2) 85%, transparent)" + } + } + } + } + } + } + } +} diff --git a/wp-content/themes/twentytwentyfive/styles/colors/02-noon.json b/wp-content/themes/twentytwentyfive/styles/colors/02-noon.json new file mode 100644 index 0000000..97b12a5 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/styles/colors/02-noon.json @@ -0,0 +1,167 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.7/theme.json", + "version": 3, + "title": "Noon", + "settings": { + "color": { + "palette": [ + { + "color": "#F8F7F5", + "name": "Base", + "slug": "base" + }, + { + "color": "#191919", + "name": "Contrast", + "slug": "contrast" + }, + { + "color": "#FFFFFF", + "name": "Accent 1", + "slug": "accent-1" + }, + { + "color": "#F5B684", + "name": "Accent 2", + "slug": "accent-2" + }, + { + "color": "#191919", + "name": "Accent 3", + "slug": "accent-3" + }, + { + "color": "#5F5F5F", + "name": "Accent 4", + "slug": "accent-4" + }, + { + "color": "#F1EEE9", + "name": "Accent 5", + "slug": "accent-5" + }, + { + "color": "#19191933", + "name": "Accent 6", + "slug": "accent-6" + } + ] + } + }, + "styles": { + "color": { + "text": "var:preset|color|accent-4" + }, + "blocks": { + "core/button": { + "border": { + "color": "var:preset|color|contrast" + } + }, + "core/post-title": { + "color": { + "text": "var:preset|color|accent-3" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "core/pullquote": { + "color": { + "text": "var:preset|color|accent-3" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "core/query-title": { + "color": { + "text": "var:preset|color|accent-3" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + } + } + } + }, + "elements": { + "button": { + "color": { + "background": "var:preset|color|contrast", + "text": "var:preset|color|base" + } + }, + "heading": { + "color": { + "text": "var:preset|color|accent-3" + } + }, + "link": { + "color": { + "text": "currentColor" + } + } + }, + "variations": { + "section-4": { + "color": { + "text": "var:preset|color|accent-2" + }, + "elements": { + "button": { + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--accent-2) 85%, transparent)" + } + } + }, + "heading": { + "color": { + "text": "currentColor" + } + }, + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "section-5": { + "color": { + "text": "var:preset|color|base" + }, + "elements": { + "button": { + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--base) 85%, transparent)" + } + } + }, + "heading": { + "color": { + "text": "var:preset|color|base" + } + }, + "link": { + "color": { + "text": "currentColor" + } + } + } + } + } + } +} diff --git a/wp-content/themes/twentytwentyfive/styles/colors/03-dusk.json b/wp-content/themes/twentytwentyfive/styles/colors/03-dusk.json new file mode 100644 index 0000000..705c827 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/styles/colors/03-dusk.json @@ -0,0 +1,276 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.7/theme.json", + "version": 3, + "title": "Dusk", + "settings": { + "color": { + "palette": [ + { + "color": "#E2E2E2", + "name": "Base", + "slug": "base" + }, + { + "color": "#3B3B3B", + "name": "Contrast", + "slug": "contrast" + }, + { + "color": "#F5EDFF", + "name": "Accent 1", + "slug": "accent-1" + }, + { + "color": "#650DD4", + "name": "Accent 2", + "slug": "accent-2" + }, + { + "color": "#191919", + "name": "Accent 3", + "slug": "accent-3" + }, + { + "color": "#5F5F5F", + "name": "Accent 4", + "slug": "accent-4" + }, + { + "color": "#DBDBDB", + "name": "Accent 5", + "slug": "accent-5" + }, + { + "color": "#3B3B3B33", + "name": "Accent 6", + "slug": "accent-6" + } + ] + }, + "custom": { + "color": { + "accent-2-opacity-20": "#650DD433" + } + } + }, + "styles": { + "blocks": { + "core/code": { + "color": { + "text": "var:preset|color|black", + "background": "var:preset|color|accent-5" + } + }, + "core/paragraph": { + "elements": { + "link": { + "color": { + "text": "var:preset|color|accent-2" + } + } + } + }, + "core/post-author-name": { + "color": { + "text": "var:preset|color|accent-2" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "core/post-terms": { + "color": { + "text": "var:preset|color|accent-2" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "core/post-title": { + "elements": { + "link": { + "color": { + "text": "var:preset|color|accent-3" + } + } + } + }, + "core/pullquote": { + "color": { + "text": "var:preset|color|black" + }, + "elements": { + "cite": { + "color": { + "text": "var:preset|color|contrast" + } + } + } + }, + "core/quote": { + "color": { + "text": "var:preset|color|black" + } + }, + "core/site-title": { + "color": { + "text": "var:preset|color|accent-3" + }, + "elements": { + "link": { + "color": { + "text": "var:preset|color|accent-3" + } + } + } + } + }, + "elements": { + "button": { + "color": { + "text": "var:preset|color|base", + "background": "var:preset|color|accent-2" + }, + "border": { + "color": "transparent" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--accent-2) 85%, transparent)" + } + } + }, + "heading": { + "color": { + "text": "var:preset|color|accent-3" + } + }, + "link": { + "color": { + "text": "var:preset|color|accent-3" + } + } + }, + "variations": { + "post-terms-1": { + "elements": { + "link": { + "border": { + "color": "var:custom|color|accent-2-opacity-20" + } + } + } + }, + "section-1": { + "elements": { + "link": { + "color": { + "text": "var:preset|color|accent-3" + } + } + } + }, + "section-2": { + "color": { + "text": "var:preset|color|base" + }, + "elements": { + "button": { + "color": { + "background": "var:preset|color|accent-3", + "text": "var:preset|color|base" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--accent-3) 85%, transparent)" + } + } + }, + "link": { + "color": { + "text": "currentColor" + } + }, + "heading": { + "color": { + "text": "currentColor" + } + } + } + }, + "section-3": { + "color": { + "text": "var:preset|color|accent-2" + }, + "elements": { + "heading": { + "color": { + "text": "currentColor" + } + } + } + }, + "section-4": { + "color": { + "text": "var:preset|color|base" + }, + "elements": { + "button": { + "color": { + "text": "var:preset|color|base" + }, + ":hover": { + "color": { + "text": "var:preset|color|base" + } + } + }, + "link": { + "color": { + "text": "currentColor" + } + }, + "heading": { + "color": { + "text": "currentColor" + } + } + } + }, + "section-5": { + "elements": { + "button": { + "color": { + "background": "var:preset|color|accent-2", + "text": "var:preset|color|base" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--accent-2) 85%, transparent)", + "text": "var:preset|color|base" + } + } + }, + "heading": { + "color": { + "text": "var:preset|color|base" + } + }, + "link": { + "color": { + "text": "var:preset|color|base" + } + } + } + } + } + } +} diff --git a/wp-content/themes/twentytwentyfive/styles/colors/04-afternoon.json b/wp-content/themes/twentytwentyfive/styles/colors/04-afternoon.json new file mode 100644 index 0000000..60da749 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/styles/colors/04-afternoon.json @@ -0,0 +1,105 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.7/theme.json", + "version": 3, + "title": "Afternoon", + "settings": { + "color": { + "palette": [ + { + "color": "#DAE7BD", + "name": "Base", + "slug": "base" + }, + { + "color": "#516028", + "name": "Contrast", + "slug": "contrast" + }, + { + "color": "#C7F642", + "name": "Accent 1", + "slug": "accent-1" + }, + { + "color": "#EBF6D3", + "name": "Accent 2", + "slug": "accent-2" + }, + { + "color": "#303D10", + "name": "Accent 3", + "slug": "accent-3" + }, + { + "color": "#516028", + "name": "Accent 4", + "slug": "accent-4" + }, + { + "color": "#EBF6D3", + "name": "Accent 5", + "slug": "accent-5" + }, + { + "color": "#51602833", + "name": "Accent 6", + "slug": "accent-6" + } + ] + } + }, + "styles": { + "elements": { + "button": { + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--contrast) 85%, black)" + } + } + } + }, + "variations": { + "section-2": { + "color": { + "background": "var:preset|color|accent-3", + "text": "var:preset|color|accent-1" + }, + "elements": { + "button": { + "color": { + "background": "var:preset|color|accent-1", + "text": "var:preset|color|accent-3" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--accent-1) 85%, transparent)" + } + } + } + } + }, + "section-4": { + "elements": { + "button": { + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--accent-2) 85%, transparent)" + } + } + } + } + }, + "section-5": { + "elements": { + "button": { + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--base) 90%, transparent)" + } + } + } + } + } + } + } +} diff --git a/wp-content/themes/twentytwentyfive/styles/colors/05-twilight.json b/wp-content/themes/twentytwentyfive/styles/colors/05-twilight.json new file mode 100644 index 0000000..329164d --- /dev/null +++ b/wp-content/themes/twentytwentyfive/styles/colors/05-twilight.json @@ -0,0 +1,78 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.7/theme.json", + "version": 3, + "title": "Twilight", + "settings": { + "color": { + "palette": [ + { + "color": "#131313", + "name": "Base", + "slug": "base" + }, + { + "color": "#FFFFFF", + "name": "Contrast", + "slug": "contrast" + }, + { + "color": "#4B52FF", + "name": "Accent 1", + "slug": "accent-1" + }, + { + "color": "#FF7A5C", + "name": "Accent 2", + "slug": "accent-2" + }, + { + "color": "#252525", + "name": "Accent 3", + "slug": "accent-3" + }, + { + "color": "#FFFFFF", + "name": "Accent 4", + "slug": "accent-4" + }, + { + "color": "#252525", + "name": "Accent 5", + "slug": "accent-5" + }, + { + "color": "#FFFFFF33", + "name": "Accent 6", + "slug": "accent-6" + } + ] + } + }, + "styles": { + "variations": { + "section-2": { + "color": { + "text": "var:preset|color|base" + }, + "elements": { + "button": { + "color": { + "background": "var:preset|color|base", + "text": "var:preset|color|accent-2" + }, + ":hover": { + "color": { + "text": "var:preset|color|accent-2" + } + } + }, + "link": { + "color": { + "text": "currentColor" + } + } + } + } + } + } +} diff --git a/wp-content/themes/twentytwentyfive/styles/colors/06-morning.json b/wp-content/themes/twentytwentyfive/styles/colors/06-morning.json new file mode 100644 index 0000000..4330045 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/styles/colors/06-morning.json @@ -0,0 +1,234 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.7/theme.json", + "version": 3, + "title": "Morning", + "settings": { + "color": { + "palette": [ + { + "color": "#DFDCD7", + "name": "Base", + "slug": "base" + }, + { + "color": "#191919", + "name": "Contrast", + "slug": "contrast" + }, + { + "color": "#7A9BDB", + "name": "Accent 1", + "slug": "accent-1" + }, + { + "color": "#F7E6FF", + "name": "Accent 2", + "slug": "accent-2" + }, + { + "color": "#182949", + "name": "Accent 3", + "slug": "accent-3" + }, + { + "color": "#5F5F5F", + "name": "Accent 4", + "slug": "accent-4" + }, + { + "color": "#D7D3CC", + "name": "Accent 5", + "slug": "accent-5" + }, + { + "color": "#19191933", + "name": "Accent 6", + "slug": "accent-6" + } + ] + } + }, + "styles": { + "color": { + "text": "var:preset|color|accent-4" + }, + "blocks": { + "core/code": { + "color": { + "text": "var:preset|color|contrast", + "background": "var:preset|color|accent-5" + } + }, + "core/paragraph": { + "elements": { + "link": { + "color": { + "text": "var:preset|color|contrast" + } + } + } + }, + "core/post-author-name": { + "elements": { + "link": { + "color": { + "text": "var:preset|color|contrast" + } + } + } + }, + "core/post-title": { + "elements": { + "link": { + "color": { + "text": "var:preset|color|contrast" + } + } + } + }, + "core/pullquote": { + "color": { + "text": "var:preset|color|contrast" + }, + "elements": { + "cite": { + "color": { + "text": "var:preset|color|accent-4" + } + } + } + }, + "core/quote": { + "elements": { + "cite": { + "color": { + "text": "var:preset|color|accent-4" + } + } + } + } + }, + "elements": { + "button": { + "color": { + "text": "var:preset|color|contrast", + "background": "var:preset|color|accent-1" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--accent-1) 85%, transparent)", + "text": "var:preset|color|contrast" + } + } + }, + "heading": { + "color": { + "text": "var:preset|color|contrast" + } + }, + "link": { + "color": { + "text": "currentColor" + } + } + }, + "variations": { + "post-terms-1": { + "elements": { + "link": { + "color": { + "background": "var:preset|color|accent-5" + }, + "border": { + "color": "var:preset|color|accent-5" + } + } + } + }, + "section-2": { + "elements": { + "button": { + "color": { + "background": "var:preset|color|accent-1", + "text": "var:preset|color|contrast" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--accent-1) 85%, transparent)" + } + } + } + } + }, + "section-3": { + "elements": { + "button": { + "color": { + "background": "var:preset|color|contrast", + "text": "var:preset|color|base" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--contrast) 85%, transparent)" + } + } + } + } + }, + "section-4": { + "color": { + "text": "var:preset|color|base" + }, + "elements": { + "heading": { + "color": { + "text": "currentColor" + } + }, + "button": { + "color": { + "background": "var:preset|color|accent-1", + "text": "var:preset|color|contrast" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--accent-1) 85%, transparent)", + "text": "var:preset|color|contrast" + } + } + }, + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "section-5": { + "elements": { + "heading": { + "color": { + "text": "var:preset|color|base" + } + }, + "button": { + "color": { + "background": "var:preset|color|accent-1", + "text": "var:preset|color|contrast" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--accent-1) 85%, transparent)" + } + } + }, + "link": { + "color": { + "text": "currentColor" + } + } + } + } + } + } +} diff --git a/wp-content/themes/twentytwentyfive/styles/colors/07-sunrise.json b/wp-content/themes/twentytwentyfive/styles/colors/07-sunrise.json new file mode 100644 index 0000000..ee39df9 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/styles/colors/07-sunrise.json @@ -0,0 +1,285 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.7/theme.json", + "version": 3, + "title": "Sunrise", + "settings": { + "color": { + "palette": [ + { + "color": "#330616", + "name": "Base", + "slug": "base" + }, + { + "color": "#FFFFFF", + "name": "Contrast", + "slug": "contrast" + }, + { + "color": "#F0FDA6", + "name": "Accent 1", + "slug": "accent-1" + }, + { + "color": "#DB9AB1", + "name": "Accent 2", + "slug": "accent-2" + }, + { + "color": "#C1E4E7", + "name": "Accent 3", + "slug": "accent-3" + }, + { + "color": "#DB9AB1", + "name": "Accent 4", + "slug": "accent-4" + }, + { + "color": "#4A1628", + "name": "Accent 5", + "slug": "accent-5" + }, + { + "color": "#DB9AB133", + "name": "Accent 6", + "slug": "accent-6" + } + ] + } + }, + "styles": { + "color": { + "text": "var:preset|color|accent-2" + }, + "blocks": { + "core/code": { + "color": { + "text": "var:preset|color|accent-2", + "background": "var:preset|color|accent-5" + } + }, + "core/post-author-name": { + "color": { + "text": "var:preset|color|contrast" + }, + "elements": { + "link": { + "color": { + "text": "var:preset|color|contrast" + } + } + } + }, + "core/post-terms": { + "color": { + "text": "var:preset|color|contrast" + }, + "elements": { + "link": { + "color": { + "text": "var:preset|color|contrast" + } + } + } + }, + "core/post-title": { + "elements": { + "link": { + "color": { + "text": "var:preset|color|accent-2" + } + } + } + }, + "core/pullquote": { + "color": { + "text": "var:preset|color|accent-2" + }, + "elements": { + "cite": { + "color": { + "text": "var:preset|color|accent-2" + } + } + } + }, + "core/quote": { + "color": { + "text": "var:preset|color|accent-2" + }, + "elements": { + "cite": { + "color": { + "text": "var:preset|color|accent-2" + } + } + } + }, + "core/site-title": { + "elements": { + "link": { + "color": { + "text": "var:preset|color|accent-2" + } + } + } + } + }, + "elements": { + "button": { + "color": { + "text": "var:preset|color|base", + "background": "var:preset|color|accent-2" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--accent-2) 85%, transparent)" + } + } + }, + "link": { + "color": { + "text": "var:preset|color|contrast" + } + } + }, + "variations": { + "post-terms-1": { + "elements": { + "link": { + "color": { + "background": "var:preset|color|accent-5" + }, + "border": { + "color": "var:preset|color|accent-5" + } + } + } + }, + "section-1": { + "color": { + "text": "var:preset|color|accent-5", + "background": "var:preset|color|contrast" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + }, + "button": { + "color": { + "background": "var:preset|color|base", + "text": "var:preset|color|contrast" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--base) 85%, transparent)" + } + } + } + } + }, + "section-2": { + "color": { + "text": "var:preset|color|base" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + }, + "button": { + "color": { + "background": "var:preset|color|base", + "text": "var:preset|color|contrast" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--base) 85%, transparent)" + } + } + } + } + }, + "section-3": { + "color": { + "text": "var:preset|color|base" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + }, + "button": { + "color": { + "background": "var:preset|color|base", + "text": "var:preset|color|contrast" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--base) 85%, transparent)" + } + } + } + } + }, + "section-4": { + "color": { + "text": "var:preset|color|base" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + }, + "button": { + "color": { + "background": "var:preset|color|base", + "text": "var:preset|color|contrast" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--base) 85%, transparent)" + } + } + } + } + }, + "section-5": { + "color": { + "text": "var:preset|color|contrast", + "background": "var:preset|color|accent-5" + }, + "elements": { + "heading": { + "color": { + "text": "currentColor" + } + }, + "link": { + "color": { + "text": "currentColor" + } + }, + "button": { + "color": { + "background": "var:preset|color|contrast", + "text": "var:preset|color|base" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--contrast) 85%, transparent)", + "text": "var:preset|color|base" + } + } + } + } + } + } + } +} diff --git a/wp-content/themes/twentytwentyfive/styles/colors/08-midnight.json b/wp-content/themes/twentytwentyfive/styles/colors/08-midnight.json new file mode 100644 index 0000000..c995e2e --- /dev/null +++ b/wp-content/themes/twentytwentyfive/styles/colors/08-midnight.json @@ -0,0 +1,144 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.7/theme.json", + "version": 3, + "title": "Midnight", + "settings": { + "color": { + "duotone": [ + { + "colors": [ + "#4433A6", + "#79F3B1" + ], + "name": "Midnight filter", + "slug": "midnight-filter" + } + ], + "palette": [ + { + "color": "#4433A6", + "name": "Base", + "slug": "base" + }, + { + "color": "#79F3B1", + "name": "Contrast", + "slug": "contrast" + }, + { + "color": "#5644BC", + "name": "Accent 1", + "slug": "accent-1" + }, + { + "color": "#372696", + "name": "Accent 2", + "slug": "accent-2" + }, + { + "color": "#251D51", + "name": "Accent 3", + "slug": "accent-3" + }, + { + "color": "#79F3B1", + "name": "Accent 4", + "slug": "accent-4" + }, + { + "color": "#E8B7FF", + "name": "Accent 5", + "slug": "accent-5" + }, + { + "color": "#79F3B133", + "name": "Accent 6", + "slug": "accent-6" + } + ] + } + }, + "styles": { + "blocks": { + "core/code": { + "color": { + "background": "var:preset|color|accent-2", + "text": "var:preset|color|contrast" + } + }, + "core/post-date": { + "color": { + "text": "var:preset|color|contrast" + }, + "elements": { + "link": { + "color": { + "text": "var:preset|color|contrast" + } + } + } + } + }, + "elements": { + "button": { + "color": { + "background": "var:preset|color|contrast", + "text": "var:preset|color|base" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--contrast) 85%, transparent)" + } + } + } + }, + "variations": { + "section-1": { + "color": { + "text": "var:preset|color|accent-3" + }, + "elements": { + "button": { + "color": { + "background": "var:preset|color|accent-3", + "text": "var:preset|color|accent-5" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--accent-3) 85%, transparent)" + } + } + }, + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "section-4": { + "color": { + "text": "var:preset|color|accent-5" + }, + "elements": { + "button": { + "color": { + "background": "var:preset|color|accent-5", + "text": "var:preset|color|accent-3" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--accent-5) 85%, transparent)" + } + } + }, + "link": { + "color": { + "text": "currentColor" + } + } + } + } + } + } +} diff --git a/wp-content/themes/twentytwentyfive/styles/sections/section-1.json b/wp-content/themes/twentytwentyfive/styles/sections/section-1.json new file mode 100644 index 0000000..642f3b2 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/styles/sections/section-1.json @@ -0,0 +1,130 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.7/theme.json", + "version": 3, + "slug": "section-1", + "title": "Style 1", + "blockTypes": [ + "core/group", + "core/columns", + "core/column" + ], + "styles": { + "color": { + "background": "var:preset|color|accent-5", + "text": "var:preset|color|contrast" + }, + "blocks": { + "core/separator": { + "color": { + "text": "color-mix(in srgb, currentColor 25%, transparent)" + } + }, + "core/site-title": { + "color": { + "text": "currentColor" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "core/post-author-name": { + "color": { + "text": "currentColor" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "core/post-date": { + "color":{ + "text": "color-mix(in srgb, currentColor 85%, transparent)" + }, + "elements": { + "link": { + "color" : { + "text": "color-mix(in srgb, currentColor 85%, transparent)" + } + } + } + }, + "core/post-terms": { + "color": { + "text": "currentColor" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "core/comment-author-name": { + "color": { + "text": "currentColor" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "core/comment-date": { + "color": { + "text": "currentColor" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "core/comment-edit-link": { + "color": { + "text": "currentColor" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "core/comment-reply-link": { + "color": { + "text": "currentColor" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "core/pullquote": { + "color": { + "text": "currentColor" + } + }, + "core/quote": { + "color": { + "text": "currentColor" + } + } + } + } +} diff --git a/wp-content/themes/twentytwentyfive/styles/sections/section-2.json b/wp-content/themes/twentytwentyfive/styles/sections/section-2.json new file mode 100644 index 0000000..81459c0 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/styles/sections/section-2.json @@ -0,0 +1,118 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.7/theme.json", + "version": 3, + "slug": "section-2", + "title": "Style 2", + "blockTypes": [ + "core/group", + "core/columns", + "core/column" + ], + "styles": { + "color": { + "background": "var:preset|color|accent-2", + "text": "var:preset|color|contrast" + }, + "blocks": { + "core/separator": { + "color": { + "text": "color-mix(in srgb, currentColor 25%, transparent)" + } + }, + "core/post-author-name": { + "color": { + "text": "currentColor" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "core/post-date": { + "color":{ + "text": "color-mix(in srgb, currentColor 85%, transparent)" + }, + "elements": { + "link": { + "color" : { + "text": "color-mix(in srgb, currentColor 85%, transparent)" + } + } + } + }, + "core/post-terms": { + "color": { + "text": "currentColor" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "core/comment-author-name": { + "color": { + "text": "currentColor" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "core/comment-date": { + "color": { + "text": "currentColor" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "core/comment-edit-link": { + "color": { + "text": "currentColor" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "core/comment-reply-link": { + "color": { + "text": "currentColor" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "core/pullquote": { + "color": { + "text": "currentColor" + } + }, + "core/quote": { + "color": { + "text": "currentColor" + } + } + } + } +} diff --git a/wp-content/themes/twentytwentyfive/styles/sections/section-3.json b/wp-content/themes/twentytwentyfive/styles/sections/section-3.json new file mode 100644 index 0000000..3d1c0a6 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/styles/sections/section-3.json @@ -0,0 +1,118 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.7/theme.json", + "version": 3, + "slug": "section-3", + "title": "Style 3", + "blockTypes": [ + "core/group", + "core/columns", + "core/column" + ], + "styles": { + "color": { + "background": "var:preset|color|accent-1", + "text": "var:preset|color|contrast" + }, + "blocks": { + "core/separator": { + "color": { + "text": "color-mix(in srgb, currentColor 25%, transparent)" + } + }, + "core/post-author-name": { + "color": { + "text": "currentColor" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "core/post-date": { + "color":{ + "text": "color-mix(in srgb, currentColor 85%, transparent)" + }, + "elements": { + "link": { + "color" : { + "text": "color-mix(in srgb, currentColor 85%, transparent)" + } + } + } + }, + "core/post-terms": { + "color": { + "text": "currentColor" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "core/comment-author-name": { + "color": { + "text": "currentColor" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "core/comment-date": { + "color": { + "text": "currentColor" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "core/comment-edit-link": { + "color": { + "text": "currentColor" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "core/comment-reply-link": { + "color": { + "text": "currentColor" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "core/pullquote": { + "color": { + "text": "currentColor" + } + }, + "core/quote": { + "color": { + "text": "currentColor" + } + } + } + } +} diff --git a/wp-content/themes/twentytwentyfive/styles/sections/section-4.json b/wp-content/themes/twentytwentyfive/styles/sections/section-4.json new file mode 100644 index 0000000..226779b --- /dev/null +++ b/wp-content/themes/twentytwentyfive/styles/sections/section-4.json @@ -0,0 +1,132 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.7/theme.json", + "version": 3, + "slug": "section-4", + "title": "Style 4", + "blockTypes": [ + "core/group", + "core/columns", + "core/column" + ], + "styles": { + "color": { + "background": "var:preset|color|accent-3", + "text": "var:preset|color|accent-2" + }, + "blocks": { + "core/separator": { + "color": { + "text": "color-mix(in srgb, currentColor 25%, transparent)" + } + }, + "core/post-author-name": { + "color": { + "text": "currentColor" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "core/post-date": { + "color":{ + "text": "color-mix(in srgb, currentColor 85%, transparent)" + }, + "elements": { + "link": { + "color" : { + "text": "color-mix(in srgb, currentColor 85%, transparent)" + } + } + } + }, + "core/post-terms": { + "color": { + "text": "currentColor" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "core/comment-author-name": { + "color": { + "text": "currentColor" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "core/comment-date": { + "color": { + "text": "currentColor" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "core/comment-edit-link": { + "color": { + "text": "currentColor" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "core/comment-reply-link": { + "color": { + "text": "currentColor" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "core/pullquote": { + "color": { + "text": "currentColor" + } + }, + "core/quote": { + "color": { + "text": "currentColor" + } + } + }, + "elements": { + "button": { + "color": { + "background": "var:preset|color|accent-2", + "text": "var:preset|color|accent-3" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--accent-2) 85%, transparent)", + "text": "var:preset|color|accent-3" + } + } + } + } + } +} diff --git a/wp-content/themes/twentytwentyfive/styles/sections/section-5.json b/wp-content/themes/twentytwentyfive/styles/sections/section-5.json new file mode 100644 index 0000000..c9b37a8 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/styles/sections/section-5.json @@ -0,0 +1,132 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.7/theme.json", + "version": 3, + "slug": "section-5", + "title": "Style 5", + "blockTypes": [ + "core/group", + "core/columns", + "core/column" + ], + "styles": { + "color": { + "background": "var:preset|color|contrast", + "text": "var:preset|color|base" + }, + "blocks": { + "core/separator": { + "color": { + "text": "color-mix(in srgb, currentColor 25%, transparent)" + } + }, + "core/post-author-name": { + "color": { + "text": "currentColor" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "core/post-date": { + "color":{ + "text": "color-mix(in srgb, currentColor 85%, transparent)" + }, + "elements": { + "link": { + "color" : { + "text": "color-mix(in srgb, currentColor 85%, transparent)" + } + } + } + }, + "core/post-terms": { + "color": { + "text": "currentColor" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "core/comment-author-name": { + "color": { + "text": "currentColor" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "core/comment-date": { + "color": { + "text": "currentColor" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "core/comment-edit-link": { + "color": { + "text": "currentColor" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "core/comment-reply-link": { + "color": { + "text": "currentColor" + }, + "elements": { + "link": { + "color": { + "text": "currentColor" + } + } + } + }, + "core/pullquote": { + "color": { + "text": "currentColor" + } + }, + "core/quote": { + "color": { + "text": "currentColor" + } + } + }, + "elements": { + "button": { + "color": { + "background": "var:preset|color|base", + "text": "var:preset|color|contrast" + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--base) 80%, transparent)", + "text": "var:preset|color|contrast" + } + } + } + } + } +} diff --git a/wp-content/themes/twentytwentyfive/styles/typography/typography-preset-1.json b/wp-content/themes/twentytwentyfive/styles/typography/typography-preset-1.json new file mode 100644 index 0000000..ad6c6cd --- /dev/null +++ b/wp-content/themes/twentytwentyfive/styles/typography/typography-preset-1.json @@ -0,0 +1,292 @@ +{ + "version": 3, + "$schema": "https://schemas.wp.org/wp/6.7/theme.json", + "title": "Beiruti & Literata", + "slug": "typography-preset-1", + "settings": { + "typography": { + "fontFamilies": [ + { + "name": "Beiruti", + "slug": "beiruti", + "fontFamily": "Beiruti, sans-serif", + "fontFace": [ + { + "fontFamily": "Beiruti", + "fontStyle": "normal", + "fontWeight": "200 900", + "src": [ + "file:./assets/fonts/beiruti/Beiruti-VariableFont_wght.woff2" + ] + } + ] + }, + { + "name": "Literata", + "slug": "literata", + "fontFamily": "Literata, serif", + "fontFace": [ + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-ExtraLight.woff2" + ], + "fontWeight": "200", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-ExtraLightItalic.woff2" + ], + "fontWeight": "200", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-Light.woff2" + ], + "fontWeight": "300", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-LightItalic.woff2" + ], + "fontWeight": "300", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-Regular.woff2" + ], + "fontWeight": "400", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-RegularItalic.woff2" + ], + "fontWeight": "400", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-Medium.woff2" + ], + "fontWeight": "500", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-MediumItalic.woff2" + ], + "fontWeight": "500", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-SemiBold.woff2" + ], + "fontWeight": "600", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-SemiBoldItalic.woff2" + ], + "fontWeight": "600", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-Bold.woff2" + ], + "fontWeight": "700", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-BoldItalic.woff2" + ], + "fontWeight": "700", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-ExtraBold.woff2" + ], + "fontWeight": "800", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-ExtraBoldItalic.woff2" + ], + "fontWeight": "800", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-Black.woff2" + ], + "fontWeight": "900", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-BlackItalic.woff2" + ], + "fontWeight": "900", + "fontStyle": "italic", + "fontFamily": "Literata" + } + ] + } + ], + "fontSizes": [ + { + "fluid": false, + "name": "Small", + "size": "0.9rem", + "slug": "small" + }, + { + "fluid": { + "max": "1.2rem", + "min": "1rem" + }, + "name": "Medium", + "size": "1rem", + "slug": "medium" + }, + { + "fluid": { + "max": "1.8rem", + "min": "1.6rem" + }, + "name": "Large", + "size": "1.6rem", + "slug": "large" + }, + { + "fluid": { + "max": "2.2rem", + "min": "1.8em" + }, + "name": "Extra Large", + "size": "1.8rem", + "slug": "x-large" + }, + { + "fluid": { + "max": "2.8rem", + "min": "2rem" + }, + "name": "Extra Extra Large", + "size": "2rem", + "slug": "xx-large" + } + ] + } + }, + "styles": { + "typography": { + "fontFamily": "var:preset|font-family|literata", + "fontSize": "var:preset|font-size|medium", + "letterSpacing": "-0.01em", + "lineHeight": "1.6" + }, + "blocks": { + "core/button": { + "typography": { + "fontFamily": "var:preset|font-family|beiruti" + } + }, + "core/list": { + "typography": { + "lineHeight": "1.3" + } + }, + "core/loginout": { + "typography": { + "fontSize": "var:preset|font-size|medium" + } + }, + "core/post-terms": { + "typography": { + "fontWeight": "300" + } + }, + "core/pullquote": { + "typography": { + "fontFamily": "var:preset|font-family|beiruti", + "fontWeight": "500", + "lineHeight": "1" + } + }, + "core/quote": { + "typography": { + "fontSize": "var:preset|font-size|medium" + } + }, + "core/query-pagination": { + "typography": { + "fontWeight": "300" + } + }, + "core/site-tagline": { + "typography": { + "fontSize": "var:preset|font-size|small" + } + }, + "core/site-title": { + "typography": { + "fontFamily": "var:preset|font-family|beiruti", + "fontWeight": "600", + "letterSpacing": "2.4px", + "textTransform": "uppercase" + } + } + }, + "elements": { + "h4": { + "typography": { + "fontSize": "var:preset|font-size|large" + } + }, + "h5": { + "typography": { + "fontSize": "var:preset|font-size|medium", + "letterSpacing": "0px" + } + }, + "h6": { + "typography": { + "fontSize": "var:preset|font-size|small" + } + }, + "heading": { + "typography": { + "fontFamily": "var:preset|font-family|beiruti", + "fontWeight": "500", + "letterSpacing": "-0.02em", + "lineHeight": "1.02" + } + } + } + } +} diff --git a/wp-content/themes/twentytwentyfive/styles/typography/typography-preset-2.json b/wp-content/themes/twentytwentyfive/styles/typography/typography-preset-2.json new file mode 100644 index 0000000..e3e26b3 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/styles/typography/typography-preset-2.json @@ -0,0 +1,150 @@ +{ + "version": 3, + "$schema": "https://schemas.wp.org/wp/6.7/theme.json", + "title": "Vollkorn & Fira Code", + "slug": "typography-preset-2", + "settings": { + "typography": { + "fontFamilies": [ + { + "name": "Vollkorn", + "slug": "vollkorn", + "fontFamily": "Vollkorn, serif", + "fontFace": [ + { + "src": [ + "file:./assets/fonts/vollkorn/Vollkorn-Italic-VariableFont_wght.woff2" + ], + "fontWeight": "400 900", + "fontStyle": "italic", + "fontFamily": "Vollkorn" + }, + { + "src": [ + "file:./assets/fonts/vollkorn/Vollkorn-VariableFont_wght.woff2" + ], + "fontWeight": "400 900", + "fontStyle": "normal", + "fontFamily": "Vollkorn" + } + ] + }, + { + "name": "Fira Code", + "slug": "fira-code", + "fontFamily": "\"Fira Code\", monospace", + "fontFace": [ + { + "src": [ + "file:./assets/fonts/fira-code/FiraCode-VariableFont_wght.woff2" + ], + "fontWeight": "300 700", + "fontStyle": "normal", + "fontFamily": "\"Fira Code\"" + } + ] + } + ] + } + }, + "styles": { + "typography": { + "fontFamily": "var:preset|font-family|fira-code", + "fontSize": "var:preset|font-size|medium", + "letterSpacing": "-0.18px", + "lineHeight": "1.5" + }, + "blocks": { + "core/post-author-name": { + "typography": { + "fontWeight": "300" + } + }, + "core/post-terms": { + "typography": { + "fontWeight": "300" + } + }, + "core/post-title": { + "typography": { + "fontWeight": "400", + "letterSpacing": "-0.96px" + } + }, + "core/pullquote": { + "typography": { + "fontFamily": "var:preset|font-family|vollkorn", + "fontSize": "var:preset|font-size|x-large", + "fontWeight": "400" + }, + "elements": { + "cite": { + "typography": { + "fontFamily": "var:preset|font-family|fira-code", + "fontWeight": "300", + "letterSpacing": "-0.14px" + } + } + } + }, + "core/quote": { + "typography": { + "fontFamily": "var:preset|font-family|fira-code", + "fontWeight": "500", + "letterSpacing": "-0.18px" + } + }, + "core/site-title": { + "typography": { + "fontFamily": "var:preset|font-family|vollkorn", + "fontSize": "var:preset|font-size|x-large" + } + } + }, + "elements": { + "button": { + "typography": { + "fontFamily": "var:preset|font-family|fira-code", + "fontSize": "var:preset|font-size|medium", + "fontWeight": "400", + "letterSpacing": "-0.36px" + } + }, + "heading": { + "typography": { + "fontFamily": "var:preset|font-family|vollkorn" + } + }, + "h1": { + "typography": { + "fontSize": "48px", + "letterSpacing": "-0.96px;" + } + }, + "h2": { + "typography": { + "fontSize": "38px", + "letterSpacing": "-0.96px" + } + }, + "h3": { + "typography": { + "fontSize": "32px", + "letterSpacing": "-0.64px" + } + }, + "h4": { + "typography": { + "fontSize": "28px", + "letterSpacing": "-0.56px" + } + }, + "h5": { + "typography": { + "fontSize": "24px", + "letterSpacing": "-0.48px" + } + } + } + } +} diff --git a/wp-content/themes/twentytwentyfive/styles/typography/typography-preset-3.json b/wp-content/themes/twentytwentyfive/styles/typography/typography-preset-3.json new file mode 100644 index 0000000..6d64153 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/styles/typography/typography-preset-3.json @@ -0,0 +1,186 @@ +{ + "version": 3, + "$schema": "https://schemas.wp.org/wp/6.7/theme.json", + "title": "Platypi & Ysabeau Office", + "slug": "typography-preset-3", + "settings": { + "typography": { + "fontFamilies": [ + { + "name": "Platypi", + "slug": "platypi", + "fontFamily": "Platypi", + "fontFace": [ + { + "fontFamily": "Platypi", + "fontStyle": "normal", + "fontWeight": "300 800", + "src": [ + "file:./assets/fonts/platypi/Platypi-VariableFont_wght.woff2" + ] + }, + { + "fontFamily": "Platypi", + "fontStyle": "italic", + "fontWeight": "300 800", + "src": [ + "file:./assets/fonts/platypi/Platypi-Italic-VariableFont_wght.woff2" + ] + } + ] + }, + { + "name": "Ysabeau Office", + "slug": "ysabeau-office", + "fontFamily": "\"Ysabeau Office\", sans-serif", + "fontFace": [ + { + "src": [ + "file:./assets/fonts/ysabeau-office/YsabeauOffice-VariableFont_wght.woff2" + ], + "fontWeight": "100 900", + "fontStyle": "normal", + "fontFamily": "\"Ysabeau Office\"" + }, + { + "src": [ + "file:./assets/fonts/ysabeau-office/YsabeauOffice-Italic-VariableFont_wght.woff2" + ], + "fontWeight": "100 900", + "fontStyle": "italic", + "fontFamily": "\"Ysabeau Office\"" + } + ] + } + ], + "fontSizes": [ + { + "fluid": false, + "name": "Small", + "size": "0.875rem", + "slug": "small" + }, + { + "fluid": { + "max": "1.125rem", + "min": "1rem" + }, + "name": "Medium", + "size": "1rem", + "slug": "medium" + }, + { + "fluid": { + "max": "1.375rem", + "min": "1.125rem" + }, + "name": "Large", + "size": "1.38rem", + "slug": "large" + }, + { + "fluid": { + "max": "1.8rem", + "min": "1.4rem" + }, + "name": "Extra Large", + "size": "1.4rem", + "slug": "x-large" + }, + { + "fluid": { + "max": "2.6rem", + "min": "2rem" + }, + "name": "Extra Extra Large", + "size": "2rem", + "slug": "xx-large" + } + ] + } + }, + "styles": { + "typography": { + "fontFamily": "var:preset|font-family|ysabeau-office", + "letterSpacing": "-0.22px", + "lineHeight": "1.5" + }, + "blocks":{ + "core/code": { + "typography": { + "letterSpacing": "0px" + } + }, + "core/heading": { + "typography": { + "lineHeight": "1.2" + } + }, + "core/list": { + "typography": { + "lineHeight": "1.3" + } + }, + "core/loginout": { + "typography": { + "fontSize": "var:preset|font-size|medium" + } + }, + "core/post-terms": { + "typography": { + "fontWeight": "400" + } + }, + "core/pullquote": { + "typography": { + "fontFamily": "var:preset|font-family|platypi", + "letterSpacing": "-0.01em", + "lineHeight": "1.1" + } + }, + "core/quote": { + "typography": { + "fontWeight": "300" + } + }, + "core/site-title": { + "typography": { + "fontFamily": "var:preset|font-family|ysabeau-office", + "fontSize": "var:preset|font-size|large", + "letterSpacing": "1.44px", + "textTransform": "uppercase" + } + } + }, + "elements": { + "button": { + "typography": { + "fontFamily": "var:preset|font-family|ysabeau-office", + "fontWeight": "600", + "letterSpacing": "1.44px", + "textTransform": "uppercase" + } + }, + "heading": { + "typography": { + "fontFamily": "var:preset|font-family|platypi" + } + }, + "h5": { + "typography": { + "fontSize": "var:preset|font-size|medium", + "letterSpacing": "normal" + } + }, + "h6": { + "typography": { + "fontSize": "var:preset|font-size|small", + "fontWeight": "400", + "fontStyle": "initial", + "letterSpacing": "initial", + "textTransform": "initial" + } + } + } + } +} diff --git a/wp-content/themes/twentytwentyfive/styles/typography/typography-preset-4.json b/wp-content/themes/twentytwentyfive/styles/typography/typography-preset-4.json new file mode 100644 index 0000000..62a6362 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/styles/typography/typography-preset-4.json @@ -0,0 +1,154 @@ +{ + "version": 3, + "$schema": "https://schemas.wp.org/wp/6.7/theme.json", + "title": "Roboto Slab & Manrope", + "slug": "typography-preset-4", + "settings": { + "typography": { + "fontFamilies": [ + { + "name": "Roboto Slab", + "slug": "roboto-slab", + "fontFamily": "\"Roboto Slab\", serif", + "fontFace": [ + { + "fontFamily": "\"Roboto Slab\"", + "fontStyle": "normal", + "fontWeight": "100 900", + "src": [ + "file:./assets/fonts/roboto-slab/RobotoSlab-VariableFont_wght.woff2" + ] + } + ] + }, + { + "name": "Manrope", + "slug": "manrope", + "fontFamily": "Manrope, sans-serif", + "fontFace": [ + { + "src": [ + "file:./assets/fonts/manrope/Manrope-VariableFont_wght.woff2" + ], + "fontWeight": "200 800", + "fontStyle": "normal", + "fontFamily": "Manrope" + } + ] + } + ], + "fontSizes": [ + { + "fluid": false, + "name": "Small", + "size": "0.875rem", + "slug": "small" + }, + { + "fluid": { + "max": "1.125rem", + "min": "1rem" + }, + "name": "Medium", + "size": "1rem", + "slug": "medium" + }, + { + "fluid": { + "max": "1.375rem", + "min": "1.125rem" + }, + "name": "Large", + "size": "1.38rem", + "slug": "large" + }, + { + "fluid": { + "max": "2rem", + "min": "1.75rem" + }, + "name": "Extra Large", + "size": "1.75rem", + "slug": "x-large" + }, + { + "fluid": { + "max": "2.4rem", + "min": "2.15rem" + }, + "name": "Extra Extra Large", + "size": "2.15rem", + "slug": "xx-large" + } + ] + } + }, + "styles": { + "typography": { + "letterSpacing": "0" + }, + "blocks": { + "core/navigation": { + "typography": { + "fontSize": "var:preset|font-size|large", + "letterSpacing": "-0.28px", + "textTransform": "uppercase" + } + }, + "core/post-author": { + "typography": { + "fontSize": "var:preset|font-size|small" + } + }, + "core/post-author-name": { + "typography": { + "fontSize": "var:preset|font-size|small" + } + }, + "core/post-terms": { + "typography": { + "fontWeight": "500" + } + }, + "core/pullquote": { + "typography": { + "fontFamily": "var:preset|font-family|roboto-slab", + "fontSize": "var:preset|font-size|xx-large", + "fontWeight": "200" + } + }, + "core/search": { + "typography": { + "textTransform": "uppercase" + } + }, + "core/site-tagline": { + "typography": { + "fontSize": "var:preset|font-size|large" + } + }, + "core/site-title": { + "typography": { + "textTransform": "uppercase" + } + } + }, + "elements": { + "button": { + "typography": { + "fontWeight": "500", + "letterSpacing": "-0.36px", + "textTransform": "uppercase" + } + }, + "heading": { + "typography": { + "fontFamily": "var:preset|font-family|roboto-slab", + "fontWeight": "300", + "letterSpacing": "-0.5px", + "lineHeight": "1.2" + } + } + } + } +} diff --git a/wp-content/themes/twentytwentyfive/styles/typography/typography-preset-5.json b/wp-content/themes/twentytwentyfive/styles/typography/typography-preset-5.json new file mode 100644 index 0000000..e30d03e --- /dev/null +++ b/wp-content/themes/twentytwentyfive/styles/typography/typography-preset-5.json @@ -0,0 +1,303 @@ +{ + "version": 3, + "$schema": "https://schemas.wp.org/wp/6.7/theme.json", + "title": "Literata & Ysabeau Office", + "slug": "typography-preset-5", + "settings": { + "typography": { + "fontFamilies": [ + { + "name": "Literata", + "slug": "literata", + "fontFamily": "Literata, serif", + "fontFace": [ + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-ExtraLight.woff2" + ], + "fontWeight": "200", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-ExtraLightItalic.woff2" + ], + "fontWeight": "200", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-Light.woff2" + ], + "fontWeight": "300", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-LightItalic.woff2" + ], + "fontWeight": "300", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-Regular.woff2" + ], + "fontWeight": "400", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-RegularItalic.woff2" + ], + "fontWeight": "400", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-Medium.woff2" + ], + "fontWeight": "500", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-MediumItalic.woff2" + ], + "fontWeight": "500", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-SemiBold.woff2" + ], + "fontWeight": "600", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-SemiBoldItalic.woff2" + ], + "fontWeight": "600", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-Bold.woff2" + ], + "fontWeight": "700", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-BoldItalic.woff2" + ], + "fontWeight": "700", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-ExtraBold.woff2" + ], + "fontWeight": "800", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-ExtraBoldItalic.woff2" + ], + "fontWeight": "800", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-Black.woff2" + ], + "fontWeight": "900", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-BlackItalic.woff2" + ], + "fontWeight": "900", + "fontStyle": "italic", + "fontFamily": "Literata" + } + ] + }, + { + "name": "Ysabeau Office", + "slug": "ysabeau-office", + "fontFamily": "\"Ysabeau Office\", sans-serif", + "fontFace": [ + { + "src": [ + "file:./assets/fonts/ysabeau-office/YsabeauOffice-VariableFont_wght.woff2" + ], + "fontWeight": "100 900", + "fontStyle": "normal", + "fontFamily": "\"Ysabeau Office\"" + }, + { + "src": [ + "file:./assets/fonts/ysabeau-office/YsabeauOffice-Italic-VariableFont_wght.woff2" + ], + "fontWeight": "100 900", + "fontStyle": "italic", + "fontFamily": "\"Ysabeau Office\"" + } + ] + } + ], + "fontSizes": [ + { + "fluid": false, + "name": "Small", + "size": "0.875rem", + "slug": "small" + }, + { + "fluid": { + "max": "1.125rem", + "min": "1rem" + }, + "name": "Medium", + "size": "1rem", + "slug": "medium" + }, + { + "fluid": { + "max": "1.375rem", + "min": "1.125rem" + }, + "name": "Large", + "size": "1.38rem", + "slug": "large" + }, + { + "fluid": { + "max": "2rem", + "min": "1.75rem" + }, + "name": "Extra Large", + "size": "1.75rem", + "slug": "x-large" + }, + { + "fluid": { + "max": "2.6rem", + "min": "1.4rem" + }, + "name": "Extra Extra Large", + "size": "2.6rem", + "slug": "xx-large" + } + ] + } + }, + "styles": { + "typography": { + "fontFamily": "var:preset|font-family|ysabeau-office", + "letterSpacing": "-0.24px" + }, + "blocks": { + "core/navigation": { + "typography": { + "fontSize": "1.25rem" + } + }, + "core/post-title": { + "typography": { + "fontWeight": "900", + "letterSpacing": "-0.96px" + } + }, + "core/pullquote": { + "typography": { + "fontSize": "var:preset|font-size|xx-large" + }, + "elements": { + "cite": { + "typography": { + "fontSize": "var:preset|font-size|medium", + "letterSpacing": "-0.14px" + } + } + } + }, + "core/quote": { + "elements": { + "cite": { + "typography": { + "fontSize": "var:preset|font-size|medium", + "letterSpacing": "-0.14px" + } + } + } + }, + "core/query-title": { + "typography": { + "fontWeight": "900" + } + }, + "core/site-title": { + "typography": { + "fontFamily": "var:preset|font-family|ysabeau-office", + "textTransform": "uppercase", + "letterSpacing": "1.6px" + } + } + }, + "elements": { + "button": { + "typography": { + "fontFamily": "var:preset|font-family|literata", + "fontSize": "var:preset|font-size|medium", + "fontWeight": "900", + "letterSpacing": "-0.36px" + } + }, + "heading": { + "typography": { + "fontFamily": "var:preset|font-family|literata", + "fontWeight": "900", + "lineHeight": "1.2" + } + }, + "h5": { + "typography": { + "letterSpacing": "0px" + } + }, + "h6": { + "typography": { + "fontWeight": "900", + "letterSpacing": "0px" + } + } + }, + "variations": { + "post-terms-1": { + "typography": { + "fontSize": "var:preset|font-size|medium" + } + } + } + } +} diff --git a/wp-content/themes/twentytwentyfive/styles/typography/typography-preset-6.json b/wp-content/themes/twentytwentyfive/styles/typography/typography-preset-6.json new file mode 100644 index 0000000..d9eb663 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/styles/typography/typography-preset-6.json @@ -0,0 +1,257 @@ +{ + "version": 3, + "$schema": "https://schemas.wp.org/wp/6.7/theme.json", + "title": "Platypi & Literata", + "slug": "typography-preset-6", + "settings": { + "typography": { + "fontFamilies": [ + { + "name": "Platypi", + "slug": "platypi", + "fontFamily": "Platypi", + "fontFace": [ + { + "fontFamily": "Platypi", + "fontStyle": "normal", + "fontWeight": "300 800", + "src": [ + "file:./assets/fonts/platypi/Platypi-VariableFont_wght.woff2" + ] + }, + { + "fontFamily": "Platypi", + "fontStyle": "italic", + "fontWeight": "300 800", + "src": [ + "file:./assets/fonts/platypi/Platypi-Italic-VariableFont_wght.woff2" + ] + } + ] + }, + { + "name": "Literata", + "slug": "literata", + "fontFamily": "Literata, serif", + "fontFace": [ + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-ExtraLight.woff2" + ], + "fontWeight": "200", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-ExtraLightItalic.woff2" + ], + "fontWeight": "200", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-Light.woff2" + ], + "fontWeight": "300", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-LightItalic.woff2" + ], + "fontWeight": "300", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-Regular.woff2" + ], + "fontWeight": "400", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-RegularItalic.woff2" + ], + "fontWeight": "400", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-Medium.woff2" + ], + "fontWeight": "500", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-MediumItalic.woff2" + ], + "fontWeight": "500", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-SemiBold.woff2" + ], + "fontWeight": "600", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-SemiBoldItalic.woff2" + ], + "fontWeight": "600", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-Bold.woff2" + ], + "fontWeight": "700", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-BoldItalic.woff2" + ], + "fontWeight": "700", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-ExtraBold.woff2" + ], + "fontWeight": "800", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-ExtraBoldItalic.woff2" + ], + "fontWeight": "800", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-Black.woff2" + ], + "fontWeight": "900", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-BlackItalic.woff2" + ], + "fontWeight": "900", + "fontStyle": "italic", + "fontFamily": "Literata" + } + ] + } + ] + } + }, + "styles": { + "typography": { + "fontFamily": "var:preset|font-family|literata", + "fontSize": "1.5rem", + "letterSpacing": "-0.24px", + "lineHeight": "1.3" + }, + "blocks": { + "core/navigation": { + "typography": { + "fontSize": "1.25rem" + } + }, + "core/post-terms": { + "typography": { + "fontWeight": "400" + } + }, + "core/post-title": { + "typography": { + "fontWeight": "800", + "letterSpacing": "-0.96px" + } + }, + "core/pullquote": { + "typography": { + "fontFamily": "var:preset|font-family|platypi", + "fontSize": "var:preset|font-size|x-large", + "letterSpacing": "-0.76px", + "fontWeight": "800" + }, + "elements": { + "cite": { + "typography": { + "fontFamily": "var:preset|font-family|literata", + "fontWeight": "400", + "letterSpacing": "-0.14px" + } + } + } + }, + "core/quote": { + "typography": { + "fontSize": "1.5rem", + "fontWeight": "600", + "letterSpacing": "-0.24px" + }, + "elements": { + "cite": { + "typography": { + "letterSpacing": "-0.14px" + } + } + } + }, + "core/site-title": { + "typography": { + "fontFamily": "var:preset|font-family|platypi", + "fontSize": "30px", + "fontWeight": "800", + "letterSpacing": "-0.6px" + } + } + }, + "elements": { + "button": { + "typography": { + "fontFamily": "var:preset|font-family|platypi", + "fontSize": "1.5rem", + "fontWeight": "800" + } + }, + "heading": { + "typography": { + "fontFamily": "var:preset|font-family|platypi", + "fontWeight": "800" + } + } + }, + "variations": { + "post-terms-1": { + "typography": { + "fontSize": "16px" + } + } + } + } +} diff --git a/wp-content/themes/twentytwentyfive/styles/typography/typography-preset-7.json b/wp-content/themes/twentytwentyfive/styles/typography/typography-preset-7.json new file mode 100644 index 0000000..69b1740 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/styles/typography/typography-preset-7.json @@ -0,0 +1,411 @@ +{ + "version": 3, + "$schema": "https://schemas.wp.org/wp/6.7/theme.json", + "title": "Literata & Fira Sans", + "slug": "typography-preset-7", + "settings": { + "typography": { + "fontFamilies": [ + { + "name": "Literata", + "slug": "literata", + "fontFamily": "Literata, serif", + "fontFace": [ + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-ExtraLight.woff2" + ], + "fontWeight": "200", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-ExtraLightItalic.woff2" + ], + "fontWeight": "200", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-Light.woff2" + ], + "fontWeight": "300", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-LightItalic.woff2" + ], + "fontWeight": "300", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-Regular.woff2" + ], + "fontWeight": "400", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-RegularItalic.woff2" + ], + "fontWeight": "400", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-Medium.woff2" + ], + "fontWeight": "500", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-MediumItalic.woff2" + ], + "fontWeight": "500", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-SemiBold.woff2" + ], + "fontWeight": "600", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-SemiBoldItalic.woff2" + ], + "fontWeight": "600", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-Bold.woff2" + ], + "fontWeight": "700", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-BoldItalic.woff2" + ], + "fontWeight": "700", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-ExtraBold.woff2" + ], + "fontWeight": "800", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-ExtraBoldItalic.woff2" + ], + "fontWeight": "800", + "fontStyle": "italic", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-Black.woff2" + ], + "fontWeight": "900", + "fontStyle": "normal", + "fontFamily": "Literata" + }, + { + "src": [ + "file:./assets/fonts/literata/Literata72pt-BlackItalic.woff2" + ], + "fontWeight": "900", + "fontStyle": "italic", + "fontFamily": "Literata" + } + ] + }, + { + "name": "Fira Sans", + "slug": "fira-sans", + "fontFamily": "\"Fira Sans\", sans-serif", + "fontFace": [ + { + "src": [ + "file:./assets/fonts/fira-sans/FiraSans-Thin.woff2" + ], + "fontWeight": "100", + "fontStyle": "normal", + "fontFamily": "\"Fira Sans\"" + }, + { + "src": [ + "file:./assets/fonts/fira-sans/FiraSans-ThinItalic.woff2" + ], + "fontWeight": "100", + "fontStyle": "italic", + "fontFamily": "\"Fira Sans\"" + }, + { + "src": [ + "file:./assets/fonts/fira-sans/FiraSans-ExtraLight.woff2" + ], + "fontWeight": "200", + "fontStyle": "normal", + "fontFamily": "\"Fira Sans\"" + }, + { + "src": [ + "file:./assets/fonts/fira-sans/FiraSans-ExtraLightItalic.woff2" + ], + "fontWeight": "200", + "fontStyle": "italic", + "fontFamily": "\"Fira Sans\"" + }, + { + "src": [ + "file:./assets/fonts/fira-sans/FiraSans-Light.woff2" + ], + "fontWeight": "300", + "fontStyle": "normal", + "fontFamily": "\"Fira Sans\"" + }, + { + "src": [ + "file:./assets/fonts/fira-sans/FiraSans-LightItalic.woff2" + ], + "fontWeight": "300", + "fontStyle": "italic", + "fontFamily": "\"Fira Sans\"" + }, + { + "src": [ + "file:./assets/fonts/fira-sans/FiraSans-Italic.woff2" + ], + "fontWeight": "400", + "fontStyle": "italic", + "fontFamily": "\"Fira Sans\"" + }, + { + "src": [ + "file:./assets/fonts/fira-sans/FiraSans-Regular.woff2" + ], + "fontWeight": "400", + "fontStyle": "normal", + "fontFamily": "\"Fira Sans\"" + }, + { + "src": [ + "file:./assets/fonts/fira-sans/FiraSans-Medium.woff2" + ], + "fontWeight": "500", + "fontStyle": "normal", + "fontFamily": "\"Fira Sans\"" + }, + { + "src": [ + "file:./assets/fonts/fira-sans/FiraSans-MediumItalic.woff2" + ], + "fontWeight": "500", + "fontStyle": "italic", + "fontFamily": "\"Fira Sans\"" + }, + { + "src": [ + "file:./assets/fonts/fira-sans/FiraSans-SemiBold.woff2" + ], + "fontWeight": "600", + "fontStyle": "normal", + "fontFamily": "\"Fira Sans\"" + }, + { + "src": [ + "file:./assets/fonts/fira-sans/FiraSans-SemiBoldItalic.woff2" + ], + "fontWeight": "600", + "fontStyle": "italic", + "fontFamily": "\"Fira Sans\"" + }, + { + "src": [ + "file:./assets/fonts/fira-sans/FiraSans-Bold.woff2" + ], + "fontWeight": "700", + "fontStyle": "normal", + "fontFamily": "\"Fira Sans\"" + }, + { + "src": [ + "file:./assets/fonts/fira-sans/FiraSans-BoldItalic.woff2" + ], + "fontWeight": "700", + "fontStyle": "italic", + "fontFamily": "\"Fira Sans\"" + }, + { + "src": [ + "file:./assets/fonts/fira-sans/FiraSans-ExtraBold.woff2" + ], + "fontWeight": "800", + "fontStyle": "normal", + "fontFamily": "\"Fira Sans\"" + }, + { + "src": [ + "file:./assets/fonts/fira-sans/FiraSans-ExtraBoldItalic.woff2" + ], + "fontWeight": "800", + "fontStyle": "italic", + "fontFamily": "\"Fira Sans\"" + }, + { + "src": [ + "file:./assets/fonts/fira-sans/FiraSans-Black.woff2" + ], + "fontWeight": "900", + "fontStyle": "normal", + "fontFamily": "\"Fira Sans\"" + }, + { + "src": [ + "file:./assets/fonts/fira-sans/FiraSans-BlackItalic.woff2" + ], + "fontWeight": "900", + "fontStyle": "italic", + "fontFamily": "\"Fira Sans\"" + } + ] + } + ], + "fontSizes": [ + { + "fluid": false, + "name": "Small", + "size": "0.9rem", + "slug": "small" + }, + { + "fluid": { + "max": "1.2rem", + "min": "0.9rem" + }, + "name": "Medium", + "size": "1rem", + "slug": "medium" + }, + { + "fluid": { + "max": "1.8rem", + "min": "1.2rem" + }, + "name": "Large", + "size": "1.2rem", + "slug": "large" + }, + { + "fluid": { + "max": "2.2rem", + "min": "1.8rem" + }, + "name": "Extra Large", + "size": "1.8rem", + "slug": "x-large" + }, + { + "fluid": { + "max": "2.8rem", + "min": "2rem" + }, + "name": "Extra Extra Large", + "size": "2rem", + "slug": "xx-large" + } + ] + } + }, + "styles": { + "typography": { + "fontSize": "var:preset|font-size|medium", + "fontFamily": "var:preset|font-family|fira-sans", + "letterSpacing": "-0.01em", + "lineHeight": "1.5" + }, + "blocks": { + "core/post-title": { + "typography": { + "fontWeight": "200" + } + }, + "core/pullquote": { + "typography": { + "fontFamily": "var:preset|font-family|literata", + "fontWeight": "200", + "letterSpacing": "0em" + } + }, + "core/query-pagination": { + "typography": { + "fontWeight": "300", + "letterSpacing": "0px" + } + }, + "core/quote": { + "typography": { + "fontSize": "var:preset|font-size|medium", + "letterSpacing": "-0.01em", + "lineHeight": "1.5", + "fontWeight": "300" + } + }, + "core/site-title": { + "typography": { + "fontFamily": "var:preset|font-family|literata", + "fontSize": "var:preset|font-size|x-large", + "fontWeight": "300", + "letterSpacing": "-0.56px", + "textTransform": "uppercase" + } + } + }, + "elements": { + "button": { + "typography": { + "fontFamily": "var:preset|font-family|literata", + "fontSize": "var:preset|font-size|medium", + "fontWeight": "400", + "letterSpacing": "-0.01em", + "textTransform": "uppercase" + } + }, + "heading": { + "typography": { + "fontFamily": "var:preset|font-family|literata", + "fontWeight": "200", + "letterSpacing": "-0.02em", + "lineHeight": "1.24" + } + }, + "h6": { + "typography": { + "fontWeight": "200" + } + } + } + } +} diff --git a/wp-content/themes/twentytwentyfive/templates/404.html b/wp-content/themes/twentytwentyfive/templates/404.html new file mode 100644 index 0000000..379f83d --- /dev/null +++ b/wp-content/themes/twentytwentyfive/templates/404.html @@ -0,0 +1,9 @@ + + + +
    + +
    + + + diff --git a/wp-content/themes/twentytwentyfive/templates/archive.html b/wp-content/themes/twentytwentyfive/templates/archive.html new file mode 100644 index 0000000..3b0ddbe --- /dev/null +++ b/wp-content/themes/twentytwentyfive/templates/archive.html @@ -0,0 +1,11 @@ + + + +
    + + + +
    + + + diff --git a/wp-content/themes/twentytwentyfive/templates/home.html b/wp-content/themes/twentytwentyfive/templates/home.html new file mode 100644 index 0000000..ae6870c --- /dev/null +++ b/wp-content/themes/twentytwentyfive/templates/home.html @@ -0,0 +1,10 @@ + + + +
    + + +
    + + + diff --git a/wp-content/themes/twentytwentyfive/templates/index.html b/wp-content/themes/twentytwentyfive/templates/index.html new file mode 100644 index 0000000..ae6870c --- /dev/null +++ b/wp-content/themes/twentytwentyfive/templates/index.html @@ -0,0 +1,10 @@ + + + +
    + + +
    + + + diff --git a/wp-content/themes/twentytwentyfive/templates/page-no-title.html b/wp-content/themes/twentytwentyfive/templates/page-no-title.html new file mode 100644 index 0000000..17e4781 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/templates/page-no-title.html @@ -0,0 +1,9 @@ + + + +
    + +
    + + + diff --git a/wp-content/themes/twentytwentyfive/templates/page.html b/wp-content/themes/twentytwentyfive/templates/page.html new file mode 100644 index 0000000..4331194 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/templates/page.html @@ -0,0 +1,15 @@ + + + +
    + +
    + + + +
    + +
    + + + diff --git a/wp-content/themes/twentytwentyfive/templates/search.html b/wp-content/themes/twentytwentyfive/templates/search.html new file mode 100644 index 0000000..3ccff6f --- /dev/null +++ b/wp-content/themes/twentytwentyfive/templates/search.html @@ -0,0 +1,12 @@ + + + +
    + + + + +
    + + + diff --git a/wp-content/themes/twentytwentyfive/templates/single.html b/wp-content/themes/twentytwentyfive/templates/single.html new file mode 100644 index 0000000..90b7fb2 --- /dev/null +++ b/wp-content/themes/twentytwentyfive/templates/single.html @@ -0,0 +1,25 @@ + + + +
    + +
    + + + + + +
    + +
    + + + + +
    + + +
    + + + diff --git a/wp-content/themes/twentytwentyfive/theme.json b/wp-content/themes/twentytwentyfive/theme.json new file mode 100644 index 0000000..7daeb0d --- /dev/null +++ b/wp-content/themes/twentytwentyfive/theme.json @@ -0,0 +1,733 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.7/theme.json", + "version": 3, + "settings": { + "appearanceTools": true, + "color": { + "defaultDuotone": false, + "defaultGradients": false, + "defaultPalette": false, + "palette": [ + { + "color": "#FFFFFF", + "name": "Base", + "slug": "base" + }, + { + "color": "#111111", + "name": "Contrast", + "slug": "contrast" + }, + { + "color": "#FFEE58", + "name": "Accent 1", + "slug": "accent-1" + }, + { + "color": "#F6CFF4", + "name": "Accent 2", + "slug": "accent-2" + }, + { + "color": "#503AA8", + "name": "Accent 3", + "slug": "accent-3" + }, + { + "color": "#686868", + "name": "Accent 4", + "slug": "accent-4" + }, + { + "color": "#FBFAF3", + "name": "Accent 5", + "slug": "accent-5" + }, + { + "color": "color-mix(in srgb, currentColor 20%, transparent)", + "name": "Accent 6", + "slug": "accent-6" + } + ] + }, + "layout": { + "contentSize": "645px", + "wideSize": "1340px" + }, + "spacing": { + "defaultSpacingSizes": false, + "spacingSizes": [ + { + "name": "Tiny", + "size": "10px", + "slug": "20" + }, + { + "name": "X-Small", + "size": "20px", + "slug": "30" + }, + { + "name": "Small", + "size": "30px", + "slug": "40" + }, + { + "name": "Regular", + "size": "clamp(30px, 5vw, 50px)", + "slug": "50" + }, + { + "name": "Large", + "size": "clamp(30px, 7vw, 70px)", + "slug": "60" + }, + { + "name": "X-Large", + "size": "clamp(50px, 7vw, 90px)", + "slug": "70" + }, + { + "name": "XX-Large", + "size": "clamp(70px, 10vw, 140px)", + "slug": "80" + } + ], + "units": [ + "%", + "px", + "em", + "rem", + "vh", + "vw" + ] + }, + "typography": { + "writingMode": true, + "defaultFontSizes": false, + "fluid": true, + "fontSizes": [ + { + "fluid": false, + "name": "Small", + "size": "0.875rem", + "slug": "small" + }, + { + "fluid": { + "max": "1.125rem", + "min": "1rem" + }, + "name": "Medium", + "size": "1rem", + "slug": "medium" + }, + { + "fluid": { + "max": "1.375rem", + "min": "1.125rem" + }, + "name": "Large", + "size": "1.38rem", + "slug": "large" + }, + { + "fluid": { + "max": "2rem", + "min": "1.75rem" + }, + "name": "Extra Large", + "size": "1.75rem", + "slug": "x-large" + }, + { + "fluid": { + "max": "3rem", + "min": "2.15rem" + }, + "name": "Extra Extra Large", + "size": "2.15rem", + "slug": "xx-large" + } + ], + "fontFamilies": [ + { + "name": "Manrope", + "slug": "manrope", + "fontFamily": "Manrope, sans-serif", + "fontFace": [ + { + "src": [ + "file:./assets/fonts/manrope/Manrope-VariableFont_wght.woff2" + ], + "fontWeight": "200 800", + "fontStyle": "normal", + "fontFamily": "Manrope" + } + ] + }, + { + "name": "Fira Code", + "slug": "fira-code", + "fontFamily": "\"Fira Code\", monospace", + "fontFace": [ + { + "src": [ + "file:./assets/fonts/fira-code/FiraCode-VariableFont_wght.woff2" + ], + "fontWeight": "300 700", + "fontStyle": "normal", + "fontFamily": "\"Fira Code\"" + } + ] + } + ] + }, + "useRootPaddingAwareAlignments": true + }, + "styles": { + "color": { + "background": "var:preset|color|base", + "text": "var:preset|color|contrast" + }, + "spacing": { + "blockGap": "1.2rem", + "padding": { + "left": "var:preset|spacing|50", + "right": "var:preset|spacing|50" + } + }, + "typography": { + "fontFamily": "var:preset|font-family|manrope", + "fontSize": "var:preset|font-size|large", + "fontWeight": "300", + "letterSpacing": "-0.1px", + "lineHeight": "1.4" + }, + "blocks": { + "core/avatar": { + "border": { + "radius": "100px" + } + }, + "core/button": { + "variations": { + "outline": { + "border": { + "color": "currentColor", + "width": "1px" + }, + "css": ".wp-block-button__link:not(.has-background):hover {background-color:color-mix(in srgb, var(--wp--preset--color--contrast) 5%, transparent);}", + "spacing": { + "padding": { + "bottom": "calc(1rem - 1px)", + "left": "calc(2.25rem - 1px)", + "right": "calc(2.25rem - 1px)", + "top": "calc(1rem - 1px)" + } + } + } + } + }, + "core/columns": { + "spacing": { + "blockGap": "var:preset|spacing|50" + } + }, + "core/buttons": { + "spacing": { + "blockGap": "16px" + } + }, + "core/code": { + "typography": { + "fontFamily": "var:preset|font-family|fira-code", + "fontSize": "var:preset|font-size|medium", + "fontWeight": "300" + }, + "color": { + "background": "var:preset|color|accent-5", + "text": "var:preset|color|contrast" + }, + "spacing": { + "padding": { + "right": "var:preset|spacing|40", + "bottom": "var:preset|spacing|40", + "left": "var:preset|spacing|40", + "top": "var:preset|spacing|40" + } + } + }, + "core/comment-author-name": { + "color": { + "text": "var:preset|color|accent-4" + }, + "elements": { + "link": { + "color": { + "text": "var:preset|color|accent-4" + }, + "typography": { + "textDecoration": "none" + }, + ":hover": { + "typography": { + "textDecoration": "underline" + } + } + } + }, + "typography": { + "fontSize": "var:preset|font-size|small" + }, + "spacing": { + "margin": { + "top": "5px", + "bottom": "0px" + } + } + }, + "core/comment-content": { + "typography": { + "fontSize": "var:preset|font-size|medium" + }, + "spacing": { + "margin": { + "top": "var:preset|spacing|30", + "bottom": "var:preset|spacing|30" + } + } + }, + "core/comment-date": { + "typography": { + "fontSize": "var:preset|font-size|small" + }, + "color": { + "text": "var:preset|color|contrast" + }, + "elements": { + "link": { + "color": { + "text": "var:preset|color|contrast" + } + } + } + }, + "core/comment-edit-link": { + "elements": { + "link": { + "color": { + "text": "var:preset|color|contrast" + } + } + }, + "typography": { + "fontSize": "var:preset|font-size|small" + } + }, + "core/comment-reply-link": { + "elements": { + "link": { + "color": { + "text": "var:preset|color|contrast" + } + } + }, + "typography": { + "fontSize": "var:preset|font-size|small" + } + }, + "core/post-comments-form": { + "css": "& textarea, input:not([type=submit]){border-radius:.25rem; border-color: var(--wp--preset--color--accent-6) !important;} & input[type=checkbox]{margin:0 .2rem 0 0 !important;} & label {font-size: var(--wp--preset--font-size--small); }", + "typography": { + "fontSize": "var:preset|font-size|medium" + }, + "spacing": { + "padding": { + "top": "var:preset|spacing|40", + "bottom": "var:preset|spacing|40" + } + } + }, + "core/comments-pagination": { + "typography": { + "fontSize": "var:preset|font-size|medium" + }, + "spacing": { + "margin": { + "top": "var:preset|spacing|40", + "bottom": "var:preset|spacing|40" + } + } + }, + "core/comments-pagination-next": { + "typography": { + "fontSize": "var:preset|font-size|medium" + } + }, + "core/comments-pagination-numbers": { + "typography": { + "fontSize": "var:preset|font-size|medium" + } + }, + "core/comments-pagination-previous": { + "typography": { + "fontSize": "var:preset|font-size|medium" + } + }, + "core/post-date": { + "color":{ + "text": "var:preset|color|accent-4" + }, + "elements": { + "link": { + "color" : { + "text": "var:preset|color|accent-4" + }, + ":hover": { + "typography": { + "textDecoration": "underline" + } + }, + "typography": { + "textDecoration": "none" + } + } + }, + "typography": { + "fontSize": "var:preset|font-size|small" + } + }, + "core/post-navigation-link": { + "typography": { + "fontSize": "var:preset|font-size|medium" + } + }, + "core/post-terms": { + "css": "& a { white-space: nowrap; }", + "typography": { + "fontSize": "var:preset|font-size|small", + "fontWeight": "600" + } + }, + "core/post-title": { + "elements": { + "link": { + ":hover": { + "typography": { + "textDecoration": "underline" + } + }, + "typography": { + "textDecoration": "none" + } + } + } + }, + "core/quote": { + "border": { + "style": "solid", + "width": "0 0 0 2px", + "color": "currentColor" + }, + "spacing": { + "blockGap": "var:preset|spacing|30", + "margin": { + "left": "0", + "right": "0" + }, + "padding": { + "top": "var:preset|spacing|30", + "right": "var:preset|spacing|40", + "bottom": "var:preset|spacing|30", + "left": "var:preset|spacing|40" + } + }, + "typography": { + "fontSize": "var:preset|font-size|large", + "fontWeight": "300" + }, + "elements": { + "cite": { + "typography": { + "fontSize": "var:preset|font-size|small", + "fontStyle": "normal", + "fontWeight": "300" + }, + "css": "& sub { font-size: 0.65em }" + } + }, + "css": "&.has-text-align-right { border-width: 0 2px 0 0; } &.has-text-align-center { border-width: 0;border-inline: 0; padding-inline: 0; }", + "variations": { + "plain": { + "border": { + "color": "transparent", + "style": "none", + "width": "0", + "radius": "0" + }, + "spacing": { + "padding": { + "top": "0", + "right": "0", + "bottom": "0", + "left": "0" + } + } + } + } + }, + "core/pullquote": { + "typography": { + "fontSize": "var:preset|font-size|xx-large", + "fontWeight": "300", + "lineHeight": "1.2" + }, + "elements": { + "cite": { + "typography": { + "fontSize": "var:preset|font-size|small", + "fontStyle": "normal" + } + } + }, + "spacing": { + "padding": { + "bottom": "var:preset|spacing|30", + "top": "var:preset|spacing|30" + } + }, + "css": "& p:last-of-type {margin-bottom: var(--wp--preset--spacing--30);}" + }, + "core/query-pagination": { + "typography": { + "fontSize": "var:preset|font-size|medium", + "fontWeight": "500" + } + }, + "core/search": { + "css": "& .wp-block-search__input{border-radius:3.125rem;padding-left:1.5625rem;padding-right:1.5625rem;border-color:var(--wp--preset--color--accent-6);}", + "typography": { + "fontSize": "var:preset|font-size|medium", + "lineHeight": "1.6" + }, + "elements": { + "button": { + "border": { + "radius": "3.125rem" + }, + "spacing": { + "margin": { + "left": "1.125rem" + } + }, + ":hover" : { + "border": { + "color": "transparent" + } + } + } + } + }, + "core/separator": { + "border": { + "color": "currentColor", + "style": "solid", + "width": "0 0 1px 0" + }, + "color": { + "text": "var:preset|color|accent-6" + }, + "variations": { + "wide": { + "css": " &:not(.alignfull){max-width: var(--wp--style--global--wide-size) !important;}" + } + } + }, + "core/site-tagline": { + "typography": { + "fontSize": "var:preset|font-size|medium" + } + }, + "core/site-title": { + "typography": { + "fontWeight": "700", + "letterSpacing": "-.5px" + }, + "elements": { + "link": { + "typography": { + "textDecoration": "none" + }, + ":hover": { + "typography": { + "textDecoration": "underline" + } + } + } + } + }, + "core/term-description": { + "typography": { + "fontSize": "var:preset|font-size|medium" + } + }, + "core/navigation": { + "typography": { + "fontSize": "var:preset|font-size|medium" + }, + "elements": { + "link": { + ":hover": { + "typography": { + "textDecoration": "underline" + } + }, + "typography": { + "textDecoration": "none" + } + } + } + }, + "core/list": { + "css": "& li{margin-top: 0.5rem;}" + } + }, + "elements": { + "button": { + "color": { + "background": "var:preset|color|contrast", + "text": "var:preset|color|base" + }, + ":focus": { + "outline": { + "color": "var:preset|color|accent-4", + "offset": "2px" + } + }, + ":hover": { + "color": { + "background": "color-mix(in srgb, var(--wp--preset--color--contrast) 85%, transparent)", + "text": "var:preset|color|base" + }, + "border": { + "color": "transparent" + } + }, + "spacing": { + "padding": { + "bottom": "1rem", + "left": "2.25rem", + "right": "2.25rem", + "top": "1rem" + } + }, + "typography": { + "fontSize": "var:preset|font-size|medium" + } + }, + "caption": { + "typography": { + "fontSize": "var:preset|font-size|small", + "lineHeight": "1.4" + } + }, + "h1": { + "typography": { + "fontSize": "var:preset|font-size|xx-large" + } + }, + "h2": { + "typography": { + "fontSize": "var:preset|font-size|x-large" + } + }, + "h3": { + "typography": { + "fontSize": "var:preset|font-size|large" + } + }, + "h4": { + "typography": { + "fontSize": "var:preset|font-size|medium" + } + }, + "h5": { + "typography": { + "fontSize": "var:preset|font-size|small", + "letterSpacing": "0.5px" + } + }, + "h6": { + "typography": { + "fontSize": "var:preset|font-size|small", + "fontWeight": "700", + "letterSpacing": "1.4px", + "textTransform": "uppercase" + } + }, + "heading": { + "typography": { + "fontWeight": "400", + "lineHeight": "1.125", + "letterSpacing": "-0.1px" + } + }, + "link": { + "color": { + "text": "currentColor" + }, + ":hover": { + "typography": { + "textDecoration": "none" + } + } + } + } + }, + "templateParts": [ + { + "area": "header", + "name": "header", + "title": "Header" + }, + { + "area": "header", + "name": "vertical-header", + "title": "Vertical site header" + }, + { + "area": "header", + "name": "header-large-title", + "title": "Header with large title" + + }, + { + "area": "footer", + "name": "footer", + "title": "Footer" + }, + { + "area": "footer", + "name": "footer-columns", + "title": "Footer Columns" + }, + { + "area": "footer", + "name": "footer-newsletter", + "title": "Footer Newsletter" + }, + { + "area": "uncategorized", + "name": "sidebar", + "title": "Sidebar" + } + ], + "customTemplates": [ + { + "name": "page-no-title", + "postTypes": ["page"], + "title": "Page No Title" + } + ] +} diff --git a/wp-content/themes/twentytwentyfour/assets/css/button-outline.css b/wp-content/themes/twentytwentyfour/assets/css/button-outline.css new file mode 100644 index 0000000..2603236 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/assets/css/button-outline.css @@ -0,0 +1,6 @@ +.wp-block-button.is-style-outline + > .wp-block-button__link:not(.has-text-color, .has-background):hover { + background-color: var(--wp--preset--color--contrast-2, var(--wp--preset--color--contrast, transparent)); + color: var(--wp--preset--color--base); + border-color: var(--wp--preset--color--contrast-2, var(--wp--preset--color--contrast, currentColor)); +} diff --git a/wp-content/themes/twentytwentyfour/assets/fonts/cardo/LICENSE.txt b/wp-content/themes/twentytwentyfour/assets/fonts/cardo/LICENSE.txt new file mode 100644 index 0000000..ed707cd --- /dev/null +++ b/wp-content/themes/twentytwentyfour/assets/fonts/cardo/LICENSE.txt @@ -0,0 +1,93 @@ +Copyright (c) 2002-2011, David J. Perry (hospes02@scholarsfonts.net) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/wp-content/themes/twentytwentyfour/assets/fonts/cardo/cardo_italic_400.woff2 b/wp-content/themes/twentytwentyfour/assets/fonts/cardo/cardo_italic_400.woff2 new file mode 100644 index 0000000..46905a8 Binary files /dev/null and b/wp-content/themes/twentytwentyfour/assets/fonts/cardo/cardo_italic_400.woff2 differ diff --git a/wp-content/themes/twentytwentyfour/assets/fonts/cardo/cardo_normal_400.woff2 b/wp-content/themes/twentytwentyfour/assets/fonts/cardo/cardo_normal_400.woff2 new file mode 100644 index 0000000..536d7a5 Binary files /dev/null and b/wp-content/themes/twentytwentyfour/assets/fonts/cardo/cardo_normal_400.woff2 differ diff --git a/wp-content/themes/twentytwentyfour/assets/fonts/cardo/cardo_normal_700.woff2 b/wp-content/themes/twentytwentyfour/assets/fonts/cardo/cardo_normal_700.woff2 new file mode 100644 index 0000000..2d280ef Binary files /dev/null and b/wp-content/themes/twentytwentyfour/assets/fonts/cardo/cardo_normal_700.woff2 differ diff --git a/wp-content/themes/twentytwentyfour/assets/fonts/instrument-sans/InstrumentSans-Italic-VariableFont_wdth,wght.woff2 b/wp-content/themes/twentytwentyfour/assets/fonts/instrument-sans/InstrumentSans-Italic-VariableFont_wdth,wght.woff2 new file mode 100644 index 0000000..f5f2861 Binary files /dev/null and b/wp-content/themes/twentytwentyfour/assets/fonts/instrument-sans/InstrumentSans-Italic-VariableFont_wdth,wght.woff2 differ diff --git a/wp-content/themes/twentytwentyfour/assets/fonts/instrument-sans/InstrumentSans-VariableFont_wdth,wght.woff2 b/wp-content/themes/twentytwentyfour/assets/fonts/instrument-sans/InstrumentSans-VariableFont_wdth,wght.woff2 new file mode 100644 index 0000000..02203d6 Binary files /dev/null and b/wp-content/themes/twentytwentyfour/assets/fonts/instrument-sans/InstrumentSans-VariableFont_wdth,wght.woff2 differ diff --git a/wp-content/themes/twentytwentyfour/assets/fonts/instrument-sans/OFL.txt b/wp-content/themes/twentytwentyfour/assets/fonts/instrument-sans/OFL.txt new file mode 100644 index 0000000..56e04aa --- /dev/null +++ b/wp-content/themes/twentytwentyfour/assets/fonts/instrument-sans/OFL.txt @@ -0,0 +1,93 @@ +Copyright 2022 The Instrument Sans Project Authors (https://github.com/Instrument/instrument-sans) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/wp-content/themes/twentytwentyfour/assets/fonts/inter/Inter-VariableFont_slnt,wght.woff2 b/wp-content/themes/twentytwentyfour/assets/fonts/inter/Inter-VariableFont_slnt,wght.woff2 new file mode 100644 index 0000000..350bbbc Binary files /dev/null and b/wp-content/themes/twentytwentyfour/assets/fonts/inter/Inter-VariableFont_slnt,wght.woff2 differ diff --git a/wp-content/themes/twentytwentyfour/assets/fonts/inter/LICENSE.txt b/wp-content/themes/twentytwentyfour/assets/fonts/inter/LICENSE.txt new file mode 100644 index 0000000..b525cbf --- /dev/null +++ b/wp-content/themes/twentytwentyfour/assets/fonts/inter/LICENSE.txt @@ -0,0 +1,93 @@ +Copyright 2020 The Inter Project Authors (https://github.com/rsms/inter) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/wp-content/themes/twentytwentyfour/assets/fonts/jost/Jost-Italic-VariableFont_wght.woff2 b/wp-content/themes/twentytwentyfour/assets/fonts/jost/Jost-Italic-VariableFont_wght.woff2 new file mode 100644 index 0000000..184c920 Binary files /dev/null and b/wp-content/themes/twentytwentyfour/assets/fonts/jost/Jost-Italic-VariableFont_wght.woff2 differ diff --git a/wp-content/themes/twentytwentyfour/assets/fonts/jost/Jost-VariableFont_wght.woff2 b/wp-content/themes/twentytwentyfour/assets/fonts/jost/Jost-VariableFont_wght.woff2 new file mode 100644 index 0000000..eedcc3f Binary files /dev/null and b/wp-content/themes/twentytwentyfour/assets/fonts/jost/Jost-VariableFont_wght.woff2 differ diff --git a/wp-content/themes/twentytwentyfour/assets/fonts/jost/OFL.txt b/wp-content/themes/twentytwentyfour/assets/fonts/jost/OFL.txt new file mode 100644 index 0000000..85b6b99 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/assets/fonts/jost/OFL.txt @@ -0,0 +1,93 @@ +Copyright 2020 The Jost Project Authors (https://github.com/indestructible-type) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/wp-content/themes/twentytwentyfour/assets/images/abstract-geometric-art.webp b/wp-content/themes/twentytwentyfour/assets/images/abstract-geometric-art.webp new file mode 100644 index 0000000..4b7fd1a Binary files /dev/null and b/wp-content/themes/twentytwentyfour/assets/images/abstract-geometric-art.webp differ diff --git a/wp-content/themes/twentytwentyfour/assets/images/angular-roof.webp b/wp-content/themes/twentytwentyfour/assets/images/angular-roof.webp new file mode 100644 index 0000000..c9b8d7a Binary files /dev/null and b/wp-content/themes/twentytwentyfour/assets/images/angular-roof.webp differ diff --git a/wp-content/themes/twentytwentyfour/assets/images/art-gallery.webp b/wp-content/themes/twentytwentyfour/assets/images/art-gallery.webp new file mode 100644 index 0000000..34b458b Binary files /dev/null and b/wp-content/themes/twentytwentyfour/assets/images/art-gallery.webp differ diff --git a/wp-content/themes/twentytwentyfour/assets/images/building-exterior.webp b/wp-content/themes/twentytwentyfour/assets/images/building-exterior.webp new file mode 100644 index 0000000..936ecf1 Binary files /dev/null and b/wp-content/themes/twentytwentyfour/assets/images/building-exterior.webp differ diff --git a/wp-content/themes/twentytwentyfour/assets/images/green-staircase.webp b/wp-content/themes/twentytwentyfour/assets/images/green-staircase.webp new file mode 100644 index 0000000..1da8272 Binary files /dev/null and b/wp-content/themes/twentytwentyfour/assets/images/green-staircase.webp differ diff --git a/wp-content/themes/twentytwentyfour/assets/images/hotel-facade.webp b/wp-content/themes/twentytwentyfour/assets/images/hotel-facade.webp new file mode 100644 index 0000000..a076a58 Binary files /dev/null and b/wp-content/themes/twentytwentyfour/assets/images/hotel-facade.webp differ diff --git a/wp-content/themes/twentytwentyfour/assets/images/icon-message.webp b/wp-content/themes/twentytwentyfour/assets/images/icon-message.webp new file mode 100644 index 0000000..f6e5e24 Binary files /dev/null and b/wp-content/themes/twentytwentyfour/assets/images/icon-message.webp differ diff --git a/wp-content/themes/twentytwentyfour/assets/images/museum.webp b/wp-content/themes/twentytwentyfour/assets/images/museum.webp new file mode 100644 index 0000000..df42352 Binary files /dev/null and b/wp-content/themes/twentytwentyfour/assets/images/museum.webp differ diff --git a/wp-content/themes/twentytwentyfour/assets/images/tourist-and-building.webp b/wp-content/themes/twentytwentyfour/assets/images/tourist-and-building.webp new file mode 100644 index 0000000..285e37c Binary files /dev/null and b/wp-content/themes/twentytwentyfour/assets/images/tourist-and-building.webp differ diff --git a/wp-content/themes/twentytwentyfour/assets/images/windows.webp b/wp-content/themes/twentytwentyfour/assets/images/windows.webp new file mode 100644 index 0000000..39a4e41 Binary files /dev/null and b/wp-content/themes/twentytwentyfour/assets/images/windows.webp differ diff --git a/wp-content/themes/twentytwentyfour/functions.php b/wp-content/themes/twentytwentyfour/functions.php new file mode 100644 index 0000000..6d22c85 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/functions.php @@ -0,0 +1,206 @@ + 'arrow-icon-details', + 'label' => __( 'Arrow icon', 'twentytwentyfour' ), + /* + * Styles for the custom Arrow icon style of the Details block + */ + 'inline_style' => ' + .is-style-arrow-icon-details { + padding-top: var(--wp--preset--spacing--10); + padding-bottom: var(--wp--preset--spacing--10); + } + + .is-style-arrow-icon-details summary { + list-style-type: "\2193\00a0\00a0\00a0"; + } + + .is-style-arrow-icon-details[open]>summary { + list-style-type: "\2192\00a0\00a0\00a0"; + }', + ) + ); + register_block_style( + 'core/post-terms', + array( + 'name' => 'pill', + 'label' => __( 'Pill', 'twentytwentyfour' ), + /* + * Styles variation for post terms + * https://github.com/WordPress/gutenberg/issues/24956 + */ + 'inline_style' => ' + .is-style-pill a, + .is-style-pill span:not([class], [data-rich-text-placeholder]) { + display: inline-block; + background-color: var(--wp--preset--color--base-2); + padding: 0.375rem 0.875rem; + border-radius: var(--wp--preset--spacing--20); + } + + .is-style-pill a:hover { + background-color: var(--wp--preset--color--contrast-3); + }', + ) + ); + register_block_style( + 'core/list', + array( + 'name' => 'checkmark-list', + 'label' => __( 'Checkmark', 'twentytwentyfour' ), + /* + * Styles for the custom checkmark list block style + * https://github.com/WordPress/gutenberg/issues/51480 + */ + 'inline_style' => ' + ul.is-style-checkmark-list { + list-style-type: "\2713"; + } + + ul.is-style-checkmark-list li { + padding-inline-start: 1ch; + }', + ) + ); + register_block_style( + 'core/navigation-link', + array( + 'name' => 'arrow-link', + 'label' => __( 'With arrow', 'twentytwentyfour' ), + /* + * Styles for the custom arrow nav link block style + */ + 'inline_style' => ' + .is-style-arrow-link .wp-block-navigation-item__label:after { + content: "\2197"; + padding-inline-start: 0.25rem; + vertical-align: middle; + text-decoration: none; + display: inline-block; + }', + ) + ); + register_block_style( + 'core/heading', + array( + 'name' => 'asterisk', + 'label' => __( 'With asterisk', 'twentytwentyfour' ), + 'inline_style' => " + .is-style-asterisk:before { + content: ''; + width: 1.5rem; + height: 3rem; + background: var(--wp--preset--color--contrast-2, currentColor); + clip-path: path('M11.93.684v8.039l5.633-5.633 1.216 1.23-5.66 5.66h8.04v1.737H13.2l5.701 5.701-1.23 1.23-5.742-5.742V21h-1.737v-8.094l-5.77 5.77-1.23-1.217 5.743-5.742H.842V9.98h8.162l-5.701-5.7 1.23-1.231 5.66 5.66V.684h1.737Z'); + display: block; + } + + /* Hide the asterisk if the heading has no content, to avoid using empty headings to display the asterisk only, which is an A11Y issue */ + .is-style-asterisk:empty:before { + content: none; + } + + .is-style-asterisk:-moz-only-whitespace:before { + content: none; + } + + .is-style-asterisk.has-text-align-center:before { + margin: 0 auto; + } + + .is-style-asterisk.has-text-align-right:before { + margin-left: auto; + } + + .rtl .is-style-asterisk.has-text-align-left:before { + margin-right: auto; + }", + ) + ); + } +endif; + +add_action( 'init', 'twentytwentyfour_block_styles' ); + +/** + * Enqueue block stylesheets. + */ + +if ( ! function_exists( 'twentytwentyfour_block_stylesheets' ) ) : + /** + * Enqueues custom block stylesheets. + * + * @since Twenty Twenty-Four 1.0 + * @return void + */ + function twentytwentyfour_block_stylesheets() { + /** + * The wp_enqueue_block_style() function allows us to enqueue a stylesheet + * for a specific block. These will only get loaded when the block is rendered + * (both in the editor and on the front end), improving performance + * and reducing the amount of data requested by visitors. + * + * See https://make.wordpress.org/core/2021/12/15/using-multiple-stylesheets-per-block/ for more info. + */ + wp_enqueue_block_style( + 'core/button', + array( + 'handle' => 'twentytwentyfour-button-style-outline', + 'src' => get_parent_theme_file_uri( 'assets/css/button-outline.css' ), + 'ver' => wp_get_theme( get_template() )->get( 'Version' ), + 'path' => get_parent_theme_file_path( 'assets/css/button-outline.css' ), + ) + ); + } +endif; + +add_action( 'init', 'twentytwentyfour_block_stylesheets' ); + +/** + * Register pattern categories. + */ + +if ( ! function_exists( 'twentytwentyfour_pattern_categories' ) ) : + /** + * Registers pattern categories. + * + * @since Twenty Twenty-Four 1.0 + * @return void + */ + function twentytwentyfour_pattern_categories() { + + register_block_pattern_category( + 'twentytwentyfour_page', + array( + 'label' => _x( 'Pages', 'Block pattern category', 'twentytwentyfour' ), + 'description' => __( 'A collection of full page layouts.', 'twentytwentyfour' ), + ) + ); + } +endif; + +add_action( 'init', 'twentytwentyfour_pattern_categories' ); diff --git a/wp-content/themes/twentytwentyfour/parts/footer.html b/wp-content/themes/twentytwentyfour/parts/footer.html new file mode 100644 index 0000000..c21388e --- /dev/null +++ b/wp-content/themes/twentytwentyfour/parts/footer.html @@ -0,0 +1 @@ + diff --git a/wp-content/themes/twentytwentyfour/parts/header.html b/wp-content/themes/twentytwentyfour/parts/header.html new file mode 100644 index 0000000..2fa483b --- /dev/null +++ b/wp-content/themes/twentytwentyfour/parts/header.html @@ -0,0 +1,26 @@ + +
    + +
    + +
    + + + +
    + +
    + +
    + + + +
    + +
    + +
    + +
    + \ No newline at end of file diff --git a/wp-content/themes/twentytwentyfour/parts/post-meta.html b/wp-content/themes/twentytwentyfour/parts/post-meta.html new file mode 100644 index 0000000..e11eda3 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/parts/post-meta.html @@ -0,0 +1 @@ + diff --git a/wp-content/themes/twentytwentyfour/parts/sidebar.html b/wp-content/themes/twentytwentyfour/parts/sidebar.html new file mode 100644 index 0000000..93c36b9 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/parts/sidebar.html @@ -0,0 +1 @@ + diff --git a/wp-content/themes/twentytwentyfour/patterns/banner-hero.php b/wp-content/themes/twentytwentyfour/patterns/banner-hero.php new file mode 100644 index 0000000..9971884 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/banner-hero.php @@ -0,0 +1,56 @@ + + + +
    + + +
    + + +

    + + + + + + + +

    + + + + + + + +
    + +
    + +
    + +
    + +
    + + + + + + + +
    + <?php esc_attr_e( 'Building exterior in Toronto, Canada', 'twentytwentyfour' ); ?> +
    + +
    + diff --git a/wp-content/themes/twentytwentyfour/patterns/banner-project-description.php b/wp-content/themes/twentytwentyfour/patterns/banner-project-description.php new file mode 100644 index 0000000..7ddeea7 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/banner-project-description.php @@ -0,0 +1,45 @@ + + +
    + +
    + +
    + +

    + +
    + + + +
    + + +

    + + +
    + +
    + + + + + + + +
    + <?php esc_attr_e( 'Hyatt Regency San Francisco, San Francisco, United States', 'twentytwentyfour' ); ?> +
    + +
    + diff --git a/wp-content/themes/twentytwentyfour/patterns/cta-content-image-on-right.php b/wp-content/themes/twentytwentyfour/patterns/cta-content-image-on-right.php new file mode 100644 index 0000000..49bceb2 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/cta-content-image-on-right.php @@ -0,0 +1,67 @@ + + + +
    + +
    + +
    + +

    + + + +
      + +
    • + + + +
    • + + + +
    • + +
    + + + +
    + +
    + +
    + + + +
    + +
    + +
    + +
    + + + +
    + +
    + <?php esc_attr_e( 'White abstract geometric artwork from Dresden, Germany', 'twentytwentyfour' ); ?> +
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfour/patterns/cta-pricing.php b/wp-content/themes/twentytwentyfour/patterns/cta-pricing.php new file mode 100644 index 0000000..4ba3937 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/cta-pricing.php @@ -0,0 +1,215 @@ + + + +
    + +
    + +
    + +

    + + + +

    + +
    + + + + + + + +
    + +
    + +

    + +

    + + + +
    + + + + + + + +
    + +

    Études Articles per month.', 'Feature for pricing level', 'twentytwentyfour' ) ); ?>

    + + + +
    + + + + + + + +
    + + + + + +
    + + + + + + + +
    + +
    + +
    + +
    + +
    + + + +
    + +

    + +

    + + + +
    + + + + + + + +
    + +

    Études Articles per month.', 'Feature for pricing level', 'twentytwentyfour' ) ); ?>

    + + + +
    + + + +

    + + + +
    + + + +

    Études app for iOS and Android.', 'Feature for pricing level', 'twentytwentyfour' ) ); ?>

    + +
    + + + + + + + +
    + +
    + +
    + +
    + +
    + + + +
    + +

    + +

    + + + +
    + + + + + + + +
    + +

    Études Articles.', 'Feature for pricing level', 'twentytwentyfour' ) ); ?>

    + + + +
    + + + +

    + + + +
    + + + +

    Études app for iOS and Android', 'Feature for pricing level', 'twentytwentyfour' ) ); ?>

    + +
    + + + + + + + +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfour/patterns/cta-rsvp.php b/wp-content/themes/twentytwentyfour/patterns/cta-rsvp.php new file mode 100644 index 0000000..a123869 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/cta-rsvp.php @@ -0,0 +1,58 @@ + + + +
    + +
    + +
    + +
    + + +

    + + + +
    + +

    + + + +
    + +
    + +
    + +
    + +
    + +
    + +
    + + + +
    + +
    + <?php esc_attr_e( 'A ramp along a curved wall in the Kiasma Museu, Helsinki, Finland', 'twentytwentyfour' ); ?> +
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfour/patterns/cta-services-image-left.php b/wp-content/themes/twentytwentyfour/patterns/cta-services-image-left.php new file mode 100644 index 0000000..b6315b0 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/cta-services-image-left.php @@ -0,0 +1,49 @@ + + + +
    + +
    + +
    + +
    + <?php esc_attr_e( 'White abstract geometric artwork from Dresden, Germany', 'twentytwentyfour' ); ?> +
    + +
    + + + +
    + +

    + + + +

    + + + +
    + +
    + +
    + +
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfour/patterns/cta-subscribe-centered.php b/wp-content/themes/twentytwentyfour/patterns/cta-subscribe-centered.php new file mode 100644 index 0000000..c11b913 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/cta-subscribe-centered.php @@ -0,0 +1,43 @@ + + + +
    + +
    + + + + + +

    + + + +

    + + + +
    + +
    + +
    + +
    + + + + + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfour/patterns/footer-centered-logo-nav.php b/wp-content/themes/twentytwentyfour/patterns/footer-centered-logo-nav.php new file mode 100644 index 0000000..3925876 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/footer-centered-logo-nav.php @@ -0,0 +1,32 @@ + + + +
    + + + + + + + + +
    + diff --git a/wp-content/themes/twentytwentyfour/patterns/footer-colophon-3-col.php b/wp-content/themes/twentytwentyfour/patterns/footer-colophon-3-col.php new file mode 100644 index 0000000..e0de63b --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/footer-colophon-3-col.php @@ -0,0 +1,106 @@ + + + +
    + +
    + +
    + +
    + + + +
    + + + +
    + +
    + +

    + +
    + + +
    + +
    + +

    + + +

    + +
    + +
    + + +
    + +
    + +
    + +
    + +

    + + +

    /

    + +
    + +
    + +
    + +
    + +
    + + + + + + + +
    + +
    + +

    + + +
    + + +

    + WordPress'; + echo sprintf( + /* Translators: Designed with WordPress */ + esc_html__( 'Designed with %1$s', 'twentytwentyfour' ), + $wordpress_link + ); + ?> +

    + +
    + + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfour/patterns/footer.php b/wp-content/themes/twentytwentyfour/patterns/footer.php new file mode 100644 index 0000000..4b8aeb2 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/footer.php @@ -0,0 +1,129 @@ + + + +
    + +
    + +
    + +
    + + + + + +
    + +
    + + + +
    +
    + + + +
    + +
    + +
    + +

    + + + +
    + + + + + + + + + +
    + +
    + + + + +
    + +

    + + + +
    + + + + + + + + + +
    + +
    + + + +
    + +

    + + + +
    + + + + + + + + + +
    + +
    + +
    + +
    + +
    + + + +
    + + + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfour/patterns/gallery-full-screen-image.php b/wp-content/themes/twentytwentyfour/patterns/gallery-full-screen-image.php new file mode 100644 index 0000000..dc9cc5d --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/gallery-full-screen-image.php @@ -0,0 +1,22 @@ + + + +
    + + +
    + + + +
    +
    + diff --git a/wp-content/themes/twentytwentyfour/patterns/gallery-offset-images-grid-2-col.php b/wp-content/themes/twentytwentyfour/patterns/gallery-offset-images-grid-2-col.php new file mode 100644 index 0000000..8e2222e --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/gallery-offset-images-grid-2-col.php @@ -0,0 +1,59 @@ + + +
    + +
    + +
    + +
    + +
    + + + + + + + +
    + +
    + +
    + + + +
    + + + + + +
    +
    + + + + + + + +
    +
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfour/patterns/gallery-offset-images-grid-3-col.php b/wp-content/themes/twentytwentyfour/patterns/gallery-offset-images-grid-3-col.php new file mode 100644 index 0000000..5f32f7f --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/gallery-offset-images-grid-3-col.php @@ -0,0 +1,111 @@ + + +
    + +
    + +
    + +
    + +
    + + + + + + + +
    + +
    + + + + + + + +
    + +
    + +
    + + + +
    + + + + + +
    + +
    + + + + + + + +
    + +
    + + + + + + + +
    + +
    + +
    + + + +
    + +
    + +
    + + + + + + + +
    + +
    + + + + + + + +
    + +
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfour/patterns/gallery-offset-images-grid-4-col.php b/wp-content/themes/twentytwentyfour/patterns/gallery-offset-images-grid-4-col.php new file mode 100644 index 0000000..df9341d --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/gallery-offset-images-grid-4-col.php @@ -0,0 +1,150 @@ + + + +
    + +
    + +
    + +
    + +
    + + + + + + + +
    + +
    + + + + + + + +
    + +
    + +
    + + + +
    + + + + + +
    + +
    + + + + + + + +
    + +
    + + + + + + + +
    + +
    + +
    + + + +
    + +
    + +
    + + + + + + + +
    + +
    + + + + + + + +
    + +
    + +
    + + + +
    + + + + + +
    + +
    + + + + + + + +
    + +
    + + + + + + + +
    + +
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfour/patterns/gallery-project-layout.php b/wp-content/themes/twentytwentyfour/patterns/gallery-project-layout.php new file mode 100644 index 0000000..143d61b --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/gallery-project-layout.php @@ -0,0 +1,66 @@ + + + + + diff --git a/wp-content/themes/twentytwentyfour/patterns/hidden-404.php b/wp-content/themes/twentytwentyfour/patterns/hidden-404.php new file mode 100644 index 0000000..d033a13 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/hidden-404.php @@ -0,0 +1,15 @@ + + + +

    + + +

    + + diff --git a/wp-content/themes/twentytwentyfour/patterns/hidden-comments.php b/wp-content/themes/twentytwentyfour/patterns/hidden-comments.php new file mode 100644 index 0000000..bd10668 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/hidden-comments.php @@ -0,0 +1,47 @@ + + + +
    + +

    + + + + +
    + +
    + + +
    + + +
    + +
    + + + +
    + + +
    + +
    + + + + + + + + + +
    + diff --git a/wp-content/themes/twentytwentyfour/patterns/hidden-no-results.php b/wp-content/themes/twentytwentyfour/patterns/hidden-no-results.php new file mode 100644 index 0000000..00bbf97 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/hidden-no-results.php @@ -0,0 +1,10 @@ + + +

    + diff --git a/wp-content/themes/twentytwentyfour/patterns/hidden-portfolio-hero.php b/wp-content/themes/twentytwentyfour/patterns/hidden-portfolio-hero.php new file mode 100644 index 0000000..1af3e7d --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/hidden-portfolio-hero.php @@ -0,0 +1,19 @@ + + + + + + + +
    + +

    Leia Acosta, a passionate photographer who finds inspiration in capturing the fleeting beauty of life.', 'twentytwentyfour' ) ); ?>

    + +
    + diff --git a/wp-content/themes/twentytwentyfour/patterns/hidden-post-meta.php b/wp-content/themes/twentytwentyfour/patterns/hidden-post-meta.php new file mode 100644 index 0000000..add4a1c --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/hidden-post-meta.php @@ -0,0 +1,30 @@ + + + +
    + +
    + + + +

    + + + +

    + + + + + + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfour/patterns/hidden-post-navigation.php b/wp-content/themes/twentytwentyfour/patterns/hidden-post-navigation.php new file mode 100644 index 0000000..be2dcb2 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/hidden-post-navigation.php @@ -0,0 +1,14 @@ + + + + + diff --git a/wp-content/themes/twentytwentyfour/patterns/hidden-posts-heading.php b/wp-content/themes/twentytwentyfour/patterns/hidden-posts-heading.php new file mode 100644 index 0000000..9b28115 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/hidden-posts-heading.php @@ -0,0 +1,11 @@ + + +

    + diff --git a/wp-content/themes/twentytwentyfour/patterns/hidden-search.php b/wp-content/themes/twentytwentyfour/patterns/hidden-search.php new file mode 100644 index 0000000..e4aaa64 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/hidden-search.php @@ -0,0 +1,9 @@ + + + diff --git a/wp-content/themes/twentytwentyfour/patterns/hidden-sidebar.php b/wp-content/themes/twentytwentyfour/patterns/hidden-sidebar.php new file mode 100644 index 0000000..abcb01b --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/hidden-sidebar.php @@ -0,0 +1,84 @@ + + +
    + +
    + + + +
    + +

    + + + +
    + +
    + + + +
    + + + +
    + +

    + + + +
    + + + +
    + + + +
    + +
    + +

    + + + +

    + +
    + + + + + + +
    + + + +
    + + + +
    + +

    + + + +
    + + + + + +
    + diff --git a/wp-content/themes/twentytwentyfour/patterns/page-about-business.php b/wp-content/themes/twentytwentyfour/patterns/page-about-business.php new file mode 100644 index 0000000..7b662c2 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/page-about-business.php @@ -0,0 +1,20 @@ + + + + + + + + + diff --git a/wp-content/themes/twentytwentyfour/patterns/page-home-blogging.php b/wp-content/themes/twentytwentyfour/patterns/page-home-blogging.php new file mode 100644 index 0000000..bd08b6e --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/page-home-blogging.php @@ -0,0 +1,84 @@ + + + + + +
    + +
    + +
    +
    + + + +
    + +
    + + +
    + + + + + + +
    + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + +
    +
    + + + +
    + +
    + + + +
    +
    + +
    + +
    + + + diff --git a/wp-content/themes/twentytwentyfour/patterns/page-home-business.php b/wp-content/themes/twentytwentyfour/patterns/page-home-business.php new file mode 100644 index 0000000..3f2c748 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/page-home-business.php @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/wp-content/themes/twentytwentyfour/patterns/page-home-portfolio-gallery.php b/wp-content/themes/twentytwentyfour/patterns/page-home-portfolio-gallery.php new file mode 100644 index 0000000..6c64ade --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/page-home-portfolio-gallery.php @@ -0,0 +1,15 @@ + + + + diff --git a/wp-content/themes/twentytwentyfour/patterns/page-home-portfolio.php b/wp-content/themes/twentytwentyfour/patterns/page-home-portfolio.php new file mode 100644 index 0000000..c03d1b1 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/page-home-portfolio.php @@ -0,0 +1,15 @@ + + + + diff --git a/wp-content/themes/twentytwentyfour/patterns/page-newsletter-landing.php b/wp-content/themes/twentytwentyfour/patterns/page-newsletter-landing.php new file mode 100644 index 0000000..6ad69ff --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/page-newsletter-landing.php @@ -0,0 +1,48 @@ + + + +
    + +
    + +
    + +
    + + + + + + + + + + + + + + + +
    + +
    + +
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfour/patterns/page-portfolio-overview.php b/wp-content/themes/twentytwentyfour/patterns/page-portfolio-overview.php new file mode 100644 index 0000000..6aee66b --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/page-portfolio-overview.php @@ -0,0 +1,18 @@ + + + + + + + diff --git a/wp-content/themes/twentytwentyfour/patterns/page-rsvp-landing.php b/wp-content/themes/twentytwentyfour/patterns/page-rsvp-landing.php new file mode 100644 index 0000000..6ec6732 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/page-rsvp-landing.php @@ -0,0 +1,57 @@ + + + +
    + +
    + +
    + +
    + +

    + + +
    + +

    + + +
    + +
    + +
    + +
    + +
    + +
    + +
    + + +
    + +
    + <?php esc_attr_e( 'Green staircase at Western University, London, Canada', 'twentytwentyfour' ); ?> +
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfour/patterns/posts-1-col.php b/wp-content/themes/twentytwentyfour/patterns/posts-1-col.php new file mode 100644 index 0000000..f2bbaa1 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/posts-1-col.php @@ -0,0 +1,44 @@ + + + +
    + + + + + +
    + + + +
    + + + + + + +
    + + + + + + + + + + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfour/patterns/posts-3-col.php b/wp-content/themes/twentytwentyfour/patterns/posts-3-col.php new file mode 100644 index 0000000..8556154 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/posts-3-col.php @@ -0,0 +1,53 @@ + + + +
    + + + + + +
    + + + + + + +
    + + + + + + + + + +
    + + + + + + + + + + + + + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfour/patterns/posts-grid-2-col.php b/wp-content/themes/twentytwentyfour/patterns/posts-grid-2-col.php new file mode 100644 index 0000000..d6a584f --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/posts-grid-2-col.php @@ -0,0 +1,81 @@ + + + +
    + +

    + + + + + + + +
    + +
    + +
    + + + + + + + + +
    + + + + + + +
    + + +
    + +
    + + + +
    + +
    + + + + + + + + +
    + + + + + +
    + + +
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfour/patterns/posts-images-only-3-col.php b/wp-content/themes/twentytwentyfour/patterns/posts-images-only-3-col.php new file mode 100644 index 0000000..7aee493 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/posts-images-only-3-col.php @@ -0,0 +1,36 @@ + + + +
    + + + + + +
    + + + + + + + + + + + + + + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfour/patterns/posts-images-only-offset-4-col.php b/wp-content/themes/twentytwentyfour/patterns/posts-images-only-offset-4-col.php new file mode 100644 index 0000000..2cbcaff --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/posts-images-only-offset-4-col.php @@ -0,0 +1,84 @@ + + + +
    + +
    + +
    + +
    + + + +
    + +
    + + + +
    + + + + + +
    + + + +
    + + + + + +
    + + + +
    + +
    + + + +
    + +
    + + + +
    + + + + + +
    + + + +
    + + + + + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfour/patterns/posts-list.php b/wp-content/themes/twentytwentyfour/patterns/posts-list.php new file mode 100644 index 0000000..e298a54 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/posts-list.php @@ -0,0 +1,63 @@ + + + +
    + +

    + + + +
    + +
    + + +
    + + + +
    + +
    + +
    + + + +
    + +
    + +
    + + + + + + + + + + + + + + + + + + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfour/patterns/team-4-col.php b/wp-content/themes/twentytwentyfour/patterns/team-4-col.php new file mode 100644 index 0000000..86a8bfa --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/team-4-col.php @@ -0,0 +1,130 @@ + + + +
    + +
    + +

    + + + +

    + +
    + + + + + + + +
    + +
    + +
    + +
    + + + +
    + +

    + +

    + + + +

    + +
    + +
    + + + +
    + +
    + +
    + + + +
    + +

    + +

    + + + +

    + +
    + +
    + + + +
    + +
    + +
    + + + +
    + +

    + +

    + + + +

    + +
    + +
    + + + +
    + +
    + +
    + + + +
    + +

    + +

    + + + +

    + +
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfour/patterns/template-archive-blogging.php b/wp-content/themes/twentytwentyfour/patterns/template-archive-blogging.php new file mode 100644 index 0000000..6d193a4 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/template-archive-blogging.php @@ -0,0 +1,21 @@ + + + + + +
    + + + +
    + + + diff --git a/wp-content/themes/twentytwentyfour/patterns/template-archive-portfolio.php b/wp-content/themes/twentytwentyfour/patterns/template-archive-portfolio.php new file mode 100644 index 0000000..aa347ad --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/template-archive-portfolio.php @@ -0,0 +1,23 @@ + + + + + +
    + + + + + +
    + + + diff --git a/wp-content/themes/twentytwentyfour/patterns/template-home-blogging.php b/wp-content/themes/twentytwentyfour/patterns/template-home-blogging.php new file mode 100644 index 0000000..4a96d74 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/template-home-blogging.php @@ -0,0 +1,21 @@ + + + + + +
    + + + +
    + + + diff --git a/wp-content/themes/twentytwentyfour/patterns/template-home-business.php b/wp-content/themes/twentytwentyfour/patterns/template-home-business.php new file mode 100644 index 0000000..e84a5ac --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/template-home-business.php @@ -0,0 +1,19 @@ + + + + + +
    + +
    + + + diff --git a/wp-content/themes/twentytwentyfour/patterns/template-home-portfolio.php b/wp-content/themes/twentytwentyfour/patterns/template-home-portfolio.php new file mode 100644 index 0000000..4fc4f07 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/template-home-portfolio.php @@ -0,0 +1,22 @@ + + + + + +
    + + + + +
    + + + diff --git a/wp-content/themes/twentytwentyfour/patterns/template-index-blogging.php b/wp-content/themes/twentytwentyfour/patterns/template-index-blogging.php new file mode 100644 index 0000000..b810186 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/template-index-blogging.php @@ -0,0 +1,23 @@ + + + + + +
    + +

    + + + +
    + + + diff --git a/wp-content/themes/twentytwentyfour/patterns/template-index-portfolio.php b/wp-content/themes/twentytwentyfour/patterns/template-index-portfolio.php new file mode 100644 index 0000000..7b78323 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/template-index-portfolio.php @@ -0,0 +1,24 @@ + + + + + +
    + +

    + + + + +
    + + + diff --git a/wp-content/themes/twentytwentyfour/patterns/template-search-blogging.php b/wp-content/themes/twentytwentyfour/patterns/template-search-blogging.php new file mode 100644 index 0000000..ec9a29b --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/template-search-blogging.php @@ -0,0 +1,26 @@ + + + + + +
    + +
    + + +
    + + + +
    + + + diff --git a/wp-content/themes/twentytwentyfour/patterns/template-search-portfolio.php b/wp-content/themes/twentytwentyfour/patterns/template-search-portfolio.php new file mode 100644 index 0000000..1c60eb1 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/template-search-portfolio.php @@ -0,0 +1,27 @@ + + + + + +
    + + + +
    + +
    + + + +
    + + + diff --git a/wp-content/themes/twentytwentyfour/patterns/template-single-portfolio.php b/wp-content/themes/twentytwentyfour/patterns/template-single-portfolio.php new file mode 100644 index 0000000..ba54d58 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/template-single-portfolio.php @@ -0,0 +1,36 @@ + + + + + +
    + + + + + + + +
    + +
    + + + + + + +
    + + + diff --git a/wp-content/themes/twentytwentyfour/patterns/testimonial-centered.php b/wp-content/themes/twentytwentyfour/patterns/testimonial-centered.php new file mode 100644 index 0000000..1bac825 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/testimonial-centered.php @@ -0,0 +1,47 @@ + + + +
    + +
    + +

    + +

    + + + + + + + +
    + +
    + +
    + + + +

    + + + +

    + +
    + + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfour/patterns/text-alternating-images.php b/wp-content/themes/twentytwentyfour/patterns/text-alternating-images.php new file mode 100644 index 0000000..6ee2251 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/text-alternating-images.php @@ -0,0 +1,116 @@ + + + +
    + +
    + +
    + + +

    + + + +

    + +
    + + + + + + + +
    + +
    + +

    + + + +
      + + +
    • + + + +
    • + + + +
    • + + +
    + +
    + + + +
    + +
    + <?php esc_attr_e( 'Tourist taking photo of a building', 'twentytwentyfour' ); ?> +
    + +
    + +
    + + + + + + + +
    + +
    + +
    + <?php esc_attr_e( 'Windows of a building in Nuremberg, Germany', 'twentytwentyfour' ); ?> +
    + +
    + + + +
    + +

    + + + +
      + +
    • + + + +
    • + + + +
    • + +
    + +
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfour/patterns/text-centered-statement-small.php b/wp-content/themes/twentytwentyfour/patterns/text-centered-statement-small.php new file mode 100644 index 0000000..c558518 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/text-centered-statement-small.php @@ -0,0 +1,31 @@ + + + +
    + + +

    + + ' . esc_html__( 'Money Studies', 'twentytwentyfour' ) . ''; + echo sprintf( + /* Translators: About text placeholder */ + esc_html__( 'I write about finance, management and economy, my book “%1$s” is out now.', 'twentytwentyfour' ), + $about_link + ); + ?> + +

    + +
    + diff --git a/wp-content/themes/twentytwentyfour/patterns/text-centered-statement.php b/wp-content/themes/twentytwentyfour/patterns/text-centered-statement.php new file mode 100644 index 0000000..ca909ca --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/text-centered-statement.php @@ -0,0 +1,30 @@ + + + +
    + +
    + + + + + +

    Études is not confined to the past—we are passionate about the cutting edge designs shaping our world today.', 'twentytwentyfour' ) ); ?>

    + + + + + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfour/patterns/text-faq.php b/wp-content/themes/twentytwentyfour/patterns/text-faq.php new file mode 100644 index 0000000..3e0c3ae --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/text-faq.php @@ -0,0 +1,69 @@ + + + + + diff --git a/wp-content/themes/twentytwentyfour/patterns/text-feature-grid-3-col.php b/wp-content/themes/twentytwentyfour/patterns/text-feature-grid-3-col.php new file mode 100644 index 0000000..03310f5 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/text-feature-grid-3-col.php @@ -0,0 +1,119 @@ + + + +
    + +
    + +

    + + + + + + + +

    + +
    + + + + + + + +
    + +
    + +

    + + + +

    + +
    + + + +
    + +

    + + + +

    + +
    + + + +
    + +

    + + + +

    + +
    + +
    + + + + + + + +
    + +
    + +

    + + + +

    + +
    + + + +
    + +

    + + + +

    + +
    + + + +
    + +

    + + + +

    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfour/patterns/text-project-details.php b/wp-content/themes/twentytwentyfour/patterns/text-project-details.php new file mode 100644 index 0000000..9116a97 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/text-project-details.php @@ -0,0 +1,54 @@ + + + +
    + +
    + +
    + +

    + +
    + + + +
    + + +

    + + + +
    + +
    + +

    + +
    + + + +
    + +

    + +
    + +
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfour/patterns/text-title-left-image-right.php b/wp-content/themes/twentytwentyfour/patterns/text-title-left-image-right.php new file mode 100644 index 0000000..cfcbf6d --- /dev/null +++ b/wp-content/themes/twentytwentyfour/patterns/text-title-left-image-right.php @@ -0,0 +1,59 @@ + + + +
    + +
    + +
    + +
    + + +

    + + + +
    + + +

    + + + +
    + +
    + +
    + +
    + +
    + +
    + +
    + + + +
    + +
    + <?php esc_attr_e( 'A ramp along a curved wall in the Kiasma Museu, Helsinki, Finland', 'twentytwentyfour' ); ?> +
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentyfour/readme.txt b/wp-content/themes/twentytwentyfour/readme.txt new file mode 100644 index 0000000..df36951 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/readme.txt @@ -0,0 +1,96 @@ +=== Twenty Twenty-Four === +Contributors: wordpressdotorg +Requires at least: 6.4 +Tested up to: 6.9 +Requires PHP: 7.0 +Stable tag: 1.4 +License: GPLv2 or later +License URI: http://www.gnu.org/licenses/gpl-2.0.html + +== Description == + +Twenty Twenty-Four is designed to be flexible, versatile and applicable to any website. Its collection of templates and patterns tailor to different needs, such as presenting a business, blogging and writing or showcasing work. A multitude of possibilities open up with just a few adjustments to color and typography. Twenty Twenty-Four comes with style variations and full page designs to help speed up the site building process, is fully compatible with the site editor, and takes advantage of new design tools introduced in WordPress 6.4. + +== Changelog == + += 1.4 = +* Released: December 2, 2025 + +https://wordpress.org/documentation/article/twenty-twenty-four-changelog/#Version_1.4 + += 1.3 = +* Released: November 12, 2024 + +https://wordpress.org/documentation/article/twenty-twenty-four-changelog/#Version_1.3 + += 1.2 = +* Released: July 16, 2024 + +https://wordpress.org/documentation/article/twenty-twenty-four-changelog/#Version_1.2 + += 1.1 = +* Released: April 2, 2024 + +https://wordpress.org/documentation/article/twenty-twenty-four-changelog/#Version_1.1 + += 1.0 = +* Released: November 7, 2023 + +https://wordpress.org/documentation/article/twenty-twenty-four-changelog/#Version_1.0 + +== Copyright == + +Twenty Twenty-Four WordPress Theme, (C) 2023-2025 WordPress.org and contributors. +Twenty Twenty-Four is distributed under the terms of the GNU GPL. + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + + +This theme bundles the following third-party resources: + +=== Fonts === + +Cardo Font +Copyright (c) 2002-2011, David J. Perry (hospes02@scholarsfonts.net) +License: SIL Open Font License, 1.1, https://opensource.org/licenses/OFL-1.1 +Source: http://scholarsfonts.net + +Instrument Sans Font +Copyright 2022 The Instrument Sans Project Authors. +License: SIL Open Font License, 1.1, https://opensource.org/licenses/OFL-1.1 +Source: https://github.com/Instrument/instrument-sans + +Inter Font +Copyright 2020 The Inter Project Authors. +License: SIL Open Font License, 1.1, https://opensource.org/licenses/OFL-1.1 +Source: https://github.com/rsms/inter + +Jost Font +Copyright 2020 The Jost Project Authors. +License: SIL Open Font License, 1.1, https://opensource.org/licenses/OFL-1.1 +Source: https://github.com/indestructible-type/Jost + +=== Images === + +License: CC0 https://creativecommons.org/publicdomain/zero/1.0/ + +museum.webp - https://www.rawpixel.com/image/3297419/free-photo-image-interior-hallway-architecture +tourist-and-building.webp - https://www.rawpixel.com/image/5928004/photo-image-public-domain-hand-person +building-exterior.webp - https://www.rawpixel.com/image/430335/free-photo-image-architecture-building-roof +windows.webp - https://www.rawpixel.com/image/3286615/free-photo-image-texture-architecture-building +abstract-geometric-art.webp - https://www.rawpixel.com/image/3283970/free-photo-image-pattern-artwork-abstract +angular-roof.webp - https://www.rawpixel.com/image/3289063/free-photo-image-architectural-detail-architecture +art-gallery.webp - https://www.rawpixel.com/image/3286187/free-photo-image-person-stairs-architecture +green-staircase.webp - https://www.rawpixel.com/image/430558/free-photo-image-abstract-architecture-art-public-domain +hotel-facade.webp - https://www.rawpixel.com/image/3286725/free-photo-image-black-and-white-background-photos + +License: UNICODE LICENSE V3 https://www.unicode.org/license.txt +icon-message.webp diff --git a/wp-content/themes/twentytwentyfour/screenshot.png b/wp-content/themes/twentytwentyfour/screenshot.png new file mode 100644 index 0000000..0bce237 Binary files /dev/null and b/wp-content/themes/twentytwentyfour/screenshot.png differ diff --git a/wp-content/themes/twentytwentyfour/style.css b/wp-content/themes/twentytwentyfour/style.css new file mode 100644 index 0000000..3128c53 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/style.css @@ -0,0 +1,15 @@ +/* +Theme Name: Twenty Twenty-Four +Theme URI: https://wordpress.org/themes/twentytwentyfour/ +Author: the WordPress team +Author URI: https://wordpress.org +Description: Twenty Twenty-Four is designed to be flexible, versatile and applicable to any website. Its collection of templates and patterns tailor to different needs, such as presenting a business, blogging and writing or showcasing work. A multitude of possibilities open up with just a few adjustments to color and typography. Twenty Twenty-Four comes with style variations and full page designs to help speed up the site building process, is fully compatible with the site editor, and takes advantage of new design tools introduced in WordPress 6.4. +Requires at least: 6.4 +Tested up to: 6.9 +Requires PHP: 7.0 +Version: 1.4 +License: GNU General Public License v2 or later +License URI: http://www.gnu.org/licenses/gpl-2.0.html +Text Domain: twentytwentyfour +Tags: one-column, custom-colors, custom-menu, custom-logo, editor-style, featured-images, full-site-editing, block-patterns, rtl-language-support, sticky-post, threaded-comments, translation-ready, wide-blocks, block-styles, style-variations, accessibility-ready, blog, portfolio, news +*/ diff --git a/wp-content/themes/twentytwentyfour/styles/ember.json b/wp-content/themes/twentytwentyfour/styles/ember.json new file mode 100644 index 0000000..3c8f08d --- /dev/null +++ b/wp-content/themes/twentytwentyfour/styles/ember.json @@ -0,0 +1,249 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.5/theme.json", + "version": 2, + "title": "Ember", + "settings": { + "color": { + "duotone": [ + { + "colors": [ + "#D73301", + "#F9F8F5" + ], + "slug": "duotone-2", + "name": "Orange and white" + } + ], + "gradients": [ + { + "slug": "gradient-1", + "gradient": "linear-gradient(to bottom, #f6decd 0%, #dbab88 100%)", + "name": "Vertical linen to beige" + }, + { + "slug": "gradient-2", + "gradient": "linear-gradient(to bottom, #A4A4A4 0%, #dbab88 100%)", + "name": "Vertical taupe to beige" + }, + { + "slug": "gradient-3", + "gradient": "linear-gradient(to bottom, #353535 0%, #dbab88 100%)", + "name": "Vertical sable to beige" + }, + { + "slug": "gradient-4", + "gradient": "linear-gradient(to bottom, #111111 0%, #dbab88 100%)", + "name": "Vertical ebony to beige" + }, + { + "slug": "gradient-5", + "gradient": "linear-gradient(to bottom, #353535 0%, #A4A4A4 100%)", + "name": "Vertical sable to beige" + }, + { + "slug": "gradient-6", + "gradient": "linear-gradient(to bottom, #111111 0%, #353535 100%)", + "name": "Vertical ebony to sable" + }, + { + "slug": "gradient-7", + "gradient": "linear-gradient(to bottom, #dbab88 50%, #f6decd 50%)", + "name": "Vertical hard beige to linen" + }, + { + "slug": "gradient-8", + "gradient": "linear-gradient(to bottom, #A4A4A4 50%, #dbab88 50%)", + "name": "Vertical hard taupe to beige" + }, + { + "slug": "gradient-9", + "gradient": "linear-gradient(to bottom, #353535 50%, #dbab88 50%)", + "name": "Vertical hard sable to beige" + }, + { + "slug": "gradient-10", + "gradient": "linear-gradient(to bottom, #111111 50%, #dbab88 50%)", + "name": "Vertical hard ebony to beige" + }, + { + "slug": "gradient-11", + "gradient": "linear-gradient(to bottom, #353535 50%, #A4A4A4 50%)", + "name": "Vertical hard sable to taupe" + }, + { + "slug": "gradient-12", + "gradient": "linear-gradient(to bottom, #111111 50%, #353535 50%)", + "name": "Vertical hard ebony to sable" + } + ], + "palette": [ + { + "color": "#F9F8F5", + "name": "Base", + "slug": "base" + }, + { + "color": "#D73301", + "name": "Contrast / 2", + "slug": "contrast-2" + }, + { + "color": "#000", + "name": "Contrast", + "slug": "contrast" + }, + { + "color": "#f6decd", + "name": "Base / Two", + "slug": "base-2" + } + ] + }, + "typography": { + "fontFamilies": [ + { + "fontFace": [ + { + "fontFamily": "Instrument Sans", + "fontStyle": "normal", + "fontWeight": "400 700", + "src": [ + "file:./assets/fonts/instrument-sans/InstrumentSans-VariableFont_wdth,wght.woff2" + ] + }, + { + "fontFamily": "Instrument Sans", + "fontStyle": "italic", + "fontWeight": "400 700", + "src": [ + "file:./assets/fonts/instrument-sans/InstrumentSans-Italic-VariableFont_wdth,wght.woff2" + ] + } + ], + "fontFamily": "\"Instrument Sans\", sans-serif", + "name": "Instrument Sans", + "slug": "body" + }, + { + "fontFace": [ + { + "fontFamily": "Jost", + "fontStyle": "normal", + "fontWeight": "100 900", + "src": ["file:./assets/fonts/jost/Jost-VariableFont_wght.woff2"] + }, + { + "fontFamily": "Jost", + "fontStyle": "italic", + "fontWeight": "100 900", + "src": [ + "file:./assets/fonts/jost/Jost-Italic-VariableFont_wght.woff2" + ] + } + ], + "fontFamily": "\"Jost\", sans-serif", + "name": "Jost", + "slug": "heading" + }, + { + "fontFamily": "-apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif", + "name": "System Sans-serif", + "slug": "system-sans-serif" + }, + { + "fontFamily": "Iowan Old Style, Apple Garamond, Baskerville, Times New Roman, Droid Serif, Times, Source Serif Pro, serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol", + "name": "System Serif", + "slug": "system-serif" + } + ] + } + }, + "styles": { + "blocks": { + "core/button": { + "variations": { + "outline": { + "spacing": { + "padding": { + "bottom": "calc(0.9rem - 2px)", + "left": "calc(2rem - 2px)", + "right": "calc(2rem - 2px)", + "top": "calc(0.9rem - 2px)" + } + }, + "border": { + "width": "2px" + } + } + } + }, + "core/image": { + "filter": { + "duotone": "var(--wp--preset--duotone--duotone-2)" + } + }, + "core/pullquote": { + "typography": { + "fontSize": "var(--wp--preset--font-size--large)", + "fontStyle": "normal", + "fontWeight": "normal", + "lineHeight": "1.2" + } + }, + "core/quote": { + "typography": { + "fontFamily": "var(--wp--preset--font-family--heading)", + "fontSize": "var(--wp--preset--font-size--large)", + "fontStyle": "normal" + }, + "variations": { + "plain": { + "typography": { + "fontStyle": "normal", + "fontWeight": "400" + } + } + } + }, + "core/site-title": { + "typography": { + "fontWeight": "400" + } + }, + "core/navigation": { + "typography": { + "fontWeight": "400" + } + } + }, + "elements": { + "button": { + "border": { + "radius": "100px" + }, + "color": { + "background": "var(--wp--preset--color--contrast-2)", + "text": "var(--wp--preset--color--base)" + }, + "spacing": { + "padding": { + "bottom": "0.9rem", + "left": "2rem", + "right": "2rem", + "top": "0.9rem" + } + }, + "typography": { + "fontFamily": "var(--wp--preset--font-family--heading)", + "fontSize": "var(--wp--preset--font-size--small)", + "fontStyle": "normal" + }, + ":hover": { + "color": { + "background": "var(--wp--preset--color--contrast)" + } + } + } + } + } +} diff --git a/wp-content/themes/twentytwentyfour/styles/fossil.json b/wp-content/themes/twentytwentyfour/styles/fossil.json new file mode 100644 index 0000000..ffd8f99 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/styles/fossil.json @@ -0,0 +1,279 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.5/theme.json", + "version": 2, + "title": "Fossil", + "settings": { + "color": { + "gradients": [ + { + "slug": "gradient-1", + "gradient": "linear-gradient(to bottom, #E1DFDB 0%, #D6D2CE 100%)", + "name": "Vertical linen to beige" + }, + { + "slug": "gradient-2", + "gradient": "linear-gradient(to bottom, #958D86 0%, #D6D2CE 100%)", + "name": "Vertical taupe to beige" + }, + { + "slug": "gradient-3", + "gradient": "linear-gradient(to bottom, #65574E 0%, #D6D2CE 100%)", + "name": "Vertical sable to beige" + }, + { + "slug": "gradient-4", + "gradient": "linear-gradient(to bottom, #1A1514 0%, #D6D2CE 100%)", + "name": "Vertical ebony to beige" + }, + { + "slug": "gradient-5", + "gradient": "linear-gradient(to bottom, #65574E 0%, #958D86 100%)", + "name": "Vertical sable to beige" + }, + { + "slug": "gradient-6", + "gradient": "linear-gradient(to bottom, #1A1514 0%, #65574E 100%)", + "name": "Vertical ebony to sable" + }, + { + "slug": "gradient-7", + "gradient": "linear-gradient(to bottom, #D6D2CE 50%, #E1DFDB 50%)", + "name": "Vertical hard beige to linen" + }, + { + "slug": "gradient-8", + "gradient": "linear-gradient(to bottom, #958D86 50%, #D6D2CE 50%)", + "name": "Vertical hard taupe to beige" + }, + { + "slug": "gradient-9", + "gradient": "linear-gradient(to bottom, #65574E 50%, #D6D2CE 50%)", + "name": "Vertical hard sable to beige" + }, + { + "slug": "gradient-10", + "gradient": "linear-gradient(to bottom, #1A1514 50%, #D6D2CE 50%)", + "name": "Vertical hard ebony to beige" + }, + { + "slug": "gradient-11", + "gradient": "linear-gradient(to bottom, #65574E 50%, #958D86 50%)", + "name": "Vertical hard sable to taupe" + }, + { + "slug": "gradient-12", + "gradient": "linear-gradient(to bottom, #1A1514 50%, #65574E 50%)", + "name": "Vertical hard ebony to sable" + } + ], + "palette": [ + { + "color": "#D6D2CE", + "name": "Base", + "slug": "base" + }, + { + "color": "#E1DFDB", + "name": "Base / Two", + "slug": "base-2" + }, + { + "color": "#1A1514", + "name": "Contrast", + "slug": "contrast" + }, + { + "color": "#65574E", + "name": "Contrast / Two", + "slug": "contrast-2" + }, + { + "color": "#958D86", + "name": "Contrast / Three", + "slug": "contrast-3" + } + ] + }, + "typography": { + "fontFamilies": [ + { + "fontFace": [ + { + "fontFamily": "Inter", + "fontStretch": "normal", + "fontStyle": "normal", + "fontWeight": "300 900", + "src": [ + "file:./assets/fonts/inter/Inter-VariableFont_slnt,wght.woff2" + ] + } + ], + "fontFamily": "\"Inter\", sans-serif", + "name": "Inter", + "slug": "heading" + }, + { + "fontFace": [ + { + "fontFamily": "Cardo", + "fontStyle": "normal", + "fontWeight": "400", + "src": ["file:./assets/fonts/cardo/cardo_normal_400.woff2"] + }, + { + "fontFamily": "Cardo", + "fontStyle": "italic", + "fontWeight": "400", + "src": ["file:./assets/fonts/cardo/cardo_italic_400.woff2"] + }, + { + "fontFamily": "Cardo", + "fontStyle": "normal", + "fontWeight": "700", + "src": ["file:./assets/fonts/cardo/cardo_normal_700.woff2"] + } + ], + "fontFamily": "Cardo", + "name": "Cardo", + "slug": "body" + }, + { + "fontFamily": "-apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif", + "name": "System Sans-serif", + "slug": "system-sans-serif" + }, + { + "fontFamily": "Iowan Old Style, Apple Garamond, Baskerville, Times New Roman, Droid Serif, Times, Source Serif Pro, serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol", + "name": "System Serif", + "slug": "system-serif" + } + ], + "fontSizes": [ + { + "fluid": false, + "name": "Small", + "size": "1rem", + "slug": "small" + }, + { + "fluid": false, + "name": "Medium", + "size": "1.2rem", + "slug": "medium" + }, + { + "fluid": { + "min": "1.5rem", + "max": "2rem" + }, + "name": "Large", + "size": "2rem", + "slug": "large" + }, + { + "fluid": { + "min": "2rem", + "max": "2.65rem" + }, + "name": "Extra Large", + "size": "2.65rem", + "slug": "x-large" + }, + { + "fluid": { + "min": "2.65rem", + "max": "3.5rem" + }, + "name": "Extra Extra Large", + "size": "3.5rem", + "slug": "xx-large" + } + ] + } + }, + "styles": { + "blocks": { + "core/button": { + "variations": { + "outline": { + "spacing": { + "padding": { + "bottom": "calc(0.9rem - 2px)", + "left": "calc(2rem - 2px)", + "right": "calc(2rem - 2px)", + "top": "calc(0.9rem - 2px)" + } + }, + "border": { + "width": "2px" + } + } + } + }, + "core/pullquote": { + "typography": { + "fontSize": "var(--wp--preset--font-size--large)", + "fontStyle": "normal", + "fontWeight": "normal", + "lineHeight": "1.2" + } + }, + "core/quote": { + "typography": { + "fontFamily": "var(--wp--preset--font-family--heading)", + "fontSize": "var(--wp--preset--font-size--large)", + "fontStyle": "normal" + }, + "variations": { + "plain": { + "typography": { + "fontStyle": "normal", + "fontWeight": "400" + } + } + } + }, + "core/site-title": { + "typography": { + "fontWeight": "400" + } + } + }, + "elements": { + "button": { + "border": { + "radius": "100px", + "color": "var(--wp--preset--color--contrast-2)" + }, + "color": { + "background": "var(--wp--preset--color--contrast-2)", + "text": "var(--wp--preset--color--white)" + }, + "spacing": { + "padding": { + "bottom": "0.9rem", + "left": "2rem", + "right": "2rem", + "top": "0.9rem" + } + }, + "typography": { + "fontFamily": "var(--wp--preset--font-family--heading)", + "fontSize": "var(--wp--preset--font-size--small)", + "fontStyle": "normal" + }, + ":hover": { + "color": { + "background": "var(--wp--preset--color--contrast)" + } + } + }, + "heading": { + "typography": { + "fontWeight": "normal", + "letterSpacing": "0" + } + } + } + } +} diff --git a/wp-content/themes/twentytwentyfour/styles/ice.json b/wp-content/themes/twentytwentyfour/styles/ice.json new file mode 100644 index 0000000..7f56a7b --- /dev/null +++ b/wp-content/themes/twentytwentyfour/styles/ice.json @@ -0,0 +1,280 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.5/theme.json", + "version": 2, + "title": "Ice", + "settings": { + "color": { + "gradients": [ + { + "slug": "gradient-1", + "gradient": "linear-gradient(to bottom, #cbd9e1 0%, #EBEBEF 100%)", + "name": "Vertical azure to ice" + }, + { + "slug": "gradient-2", + "gradient": "linear-gradient(to bottom, #466577 0%, #EBEBEF 100%)", + "name": "Vertical slate to ice" + }, + { + "slug": "gradient-3", + "gradient": "linear-gradient(to bottom, #37505d 0%, #EBEBEF 100%)", + "name": "Vertical ocean to ice" + }, + { + "slug": "gradient-4", + "gradient": "linear-gradient(to bottom, #1C2930 0%, #EBEBEF 100%)", + "name": "Vertical ink to ice" + }, + { + "slug": "gradient-5", + "gradient": "linear-gradient(to bottom, #37505d 0%, #466577 100%)", + "name": "Vertical ocean to slate" + }, + { + "slug": "gradient-6", + "gradient": "linear-gradient(to bottom, #1C2930 0%, #37505d 100%)", + "name": "Vertical ink to ocean" + }, + { + "slug": "gradient-7", + "gradient": "linear-gradient(to bottom, #EBEBEF 50%, #cbd9e1 50%)", + "name": "Vertical hard ice to azure" + }, + { + "slug": "gradient-8", + "gradient": "linear-gradient(to bottom, #466577 50%, #EBEBEF 50%)", + "name": "Vertical hard slate to ice" + }, + { + "slug": "gradient-9", + "gradient": "linear-gradient(to bottom, #37505d 50%, #EBEBEF 50%)", + "name": "Vertical hard ocean to ice" + }, + { + "slug": "gradient-10", + "gradient": "linear-gradient(to bottom, #1C2930 50%, #EBEBEF 50%)", + "name": "Vertical hard ink to ice" + }, + { + "slug": "gradient-11", + "gradient": "linear-gradient(to bottom, #37505d 50%, #466577 50%)", + "name": "Vertical hard ocean to slate" + }, + { + "slug": "gradient-12", + "gradient": "linear-gradient(to bottom, #1C2930 50%, #37505d 50%)", + "name": "Vertical hard ink to ocean" + } + ], + "palette": [ + { + "color": "#EBEBEF", + "name": "Base", + "slug": "base" + }, + { + "color": "#DCE0E6", + "name": "Base / Two", + "slug": "base-2" + }, + { + "color": "#1C2930", + "name": "Contrast", + "slug": "contrast" + }, + { + "color": "#37505d", + "name": "Contrast / Two", + "slug": "contrast-2" + }, + { + "color": "#96A5B2", + "name": "Contrast / Three", + "slug": "contrast-3" + } + ] + }, + "typography": { + "fontFamilies": [ + { + "fontFace": [ + { + "fontFamily": "Inter", + "fontStretch": "normal", + "fontStyle": "normal", + "fontWeight": "300 900", + "src": [ + "file:./assets/fonts/inter/Inter-VariableFont_slnt,wght.woff2" + ] + } + ], + "fontFamily": "\"Inter\", sans-serif", + "name": "Inter", + "slug": "heading" + }, + { + "fontFace": [ + { + "fontFamily": "Jost", + "fontStyle": "normal", + "fontWeight": "100 900", + "src": ["file:./assets/fonts/jost/Jost-VariableFont_wght.woff2"] + }, + { + "fontFamily": "Jost", + "fontStyle": "italic", + "fontWeight": "100 900", + "src": [ + "file:./assets/fonts/jost/Jost-Italic-VariableFont_wght.woff2" + ] + } + ], + "fontFamily": "\"Jost\", sans-serif", + "name": "Jost", + "slug": "body" + }, + { + "fontFamily": "-apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif", + "name": "System Sans-serif", + "slug": "system-sans-serif" + }, + { + "fontFamily": "Iowan Old Style, Apple Garamond, Baskerville, Times New Roman, Droid Serif, Times, Source Serif Pro, serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol", + "name": "System Serif", + "slug": "system-serif" + } + ], + "fontSizes": [ + { + "fluid": false, + "name": "Small", + "size": "1rem", + "slug": "small" + }, + { + "fluid": false, + "name": "Medium", + "size": "1.2rem", + "slug": "medium" + }, + { + "fluid": { + "min": "1.5rem", + "max": "2rem" + }, + "name": "Large", + "size": "2rem", + "slug": "large" + }, + { + "fluid": { + "min": "2rem", + "max": "2.65rem" + }, + "name": "Extra Large", + "size": "2.65rem", + "slug": "x-large" + }, + { + "fluid": { + "min": "2.65rem", + "max": "3.5rem" + }, + "name": "Extra Extra Large", + "size": "3.5rem", + "slug": "xx-large" + } + ] + } + }, + "styles": { + "blocks": { + "core/button": { + "variations": { + "outline": { + "spacing": { + "padding": { + "bottom": "calc(1rem - 1px)", + "left": "calc(2.2rem - 1px)", + "right": "calc(2.2rem - 1px)", + "top": "calc(1rem - 1px)" + } + }, + "border": { + "width": "1px" + } + } + } + }, + "core/pullquote": { + "typography": { + "fontSize": "var(--wp--preset--font-size--large)", + "fontStyle": "normal", + "fontWeight": "normal", + "lineHeight": "1.2" + } + }, + "core/quote": { + "typography": { + "fontFamily": "var(--wp--preset--font-family--heading)", + "fontSize": "var(--wp--preset--font-size--large)", + "fontStyle": "normal" + }, + "variations": { + "plain": { + "typography": { + "fontStyle": "normal", + "fontWeight": "400" + } + } + } + }, + "core/site-title": { + "typography": { + "fontWeight": "400" + } + } + }, + "elements": { + "button": { + "border": { + "radius": "4px", + "color": "var(--wp--preset--color--contrast-2)" + }, + "color": { + "background": "var(--wp--preset--color--contrast-2)", + "text": "var(--wp--preset--color--white)" + }, + "spacing": { + "padding": { + "bottom": "1rem", + "left": "2.2rem", + "right": "2.2rem", + "top": "1rem" + } + }, + "typography": { + "fontFamily": "var(--wp--preset--font-family--heading)", + "fontSize": "0.75rem", + "fontStyle": "normal", + "textTransform": "uppercase", + "letterSpacing": "0.1rem" + }, + ":hover": { + "color": { + "background": "var(--wp--preset--color--contrast)" + }, + "border": { + "color": "var(--wp--preset--color--contrast)" + } + } + }, + "heading": { + "typography": { + "fontWeight": "normal", + "letterSpacing": "0" + } + } + } + } +} diff --git a/wp-content/themes/twentytwentyfour/styles/maelstrom.json b/wp-content/themes/twentytwentyfour/styles/maelstrom.json new file mode 100644 index 0000000..fe92140 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/styles/maelstrom.json @@ -0,0 +1,205 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.5/theme.json", + "version": 2, + "title": "Maelstrom", + "settings": { + "color": { + "palette": [ + { + "color": "#38629F", + "name": "Base", + "slug": "base" + }, + { + "color": "#244E8A", + "name": "Base / Two", + "slug": "base-2" + }, + { + "color": "#FFFFFFA1", + "name": "Contrast / 2", + "slug": "contrast-2" + }, + { + "color": "#FFFFFF", + "name": "Contrast", + "slug": "contrast" + }, + { + "color": "#D5E0F0", + "name": "Contrast / 3", + "slug": "contrast-3" + } + ] + }, + "typography": { + "fontFamilies": [ + { + "fontFace": [ + { + "fontFamily": "Cardo", + "fontStyle": "normal", + "fontWeight": "400", + "src": ["file:./assets/fonts/cardo/cardo_normal_400.woff2"] + }, + { + "fontFamily": "Cardo", + "fontStyle": "italic", + "fontWeight": "400", + "src": ["file:./assets/fonts/cardo/cardo_italic_400.woff2"] + }, + { + "fontFamily": "Cardo", + "fontStyle": "normal", + "fontWeight": "700", + "src": ["file:./assets/fonts/cardo/cardo_normal_700.woff2"] + } + ], + "fontFamily": "Cardo", + "name": "Cardo", + "slug": "body" + }, + { + "fontFace": [ + { + "fontFamily": "Jost", + "fontStyle": "normal", + "fontWeight": "100 900", + "src": ["file:./assets/fonts/jost/Jost-VariableFont_wght.woff2"] + }, + { + "fontFamily": "Jost", + "fontStyle": "italic", + "fontWeight": "100 900", + "src": [ + "file:./assets/fonts/jost/Jost-Italic-VariableFont_wght.woff2" + ] + } + ], + "fontFamily": "\"Jost\", sans-serif", + "name": "Jost", + "slug": "heading" + }, + { + "fontFamily": "-apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif", + "name": "System Sans-serif", + "slug": "system-sans-serif" + }, + { + "fontFamily": "Iowan Old Style, Apple Garamond, Baskerville, Times New Roman, Droid Serif, Times, Source Serif Pro, serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol", + "name": "System Serif", + "slug": "system-serif" + } + ], + "fontSizes": [ + { + "fluid": false, + "name": "Small", + "size": "1rem", + "slug": "small" + }, + { + "fluid": false, + "name": "Medium", + "size": "1.2rem", + "slug": "medium" + }, + { + "fluid": { + "min": "1.5rem", + "max": "2rem" + }, + "name": "Large", + "size": "2rem", + "slug": "large" + }, + { + "fluid": { + "min": "2rem", + "max": "2.65rem" + }, + "name": "Extra Large", + "size": "2.65rem", + "slug": "x-large" + }, + { + "fluid": { + "min": "2.65rem", + "max": "3.5rem" + }, + "name": "Extra Extra Large", + "size": "3.5rem", + "slug": "xx-large" + } + ] + } + }, + "styles": { + "blocks": { + "core/button": { + "variations": { + "outline": { + "spacing": { + "padding": { + "bottom": "calc(0.8rem - 2px)", + "left": "calc(1.6rem - 2px)", + "right": "calc(1.6rem - 2px)", + "top": "calc(0.8rem - 2px)" + } + }, + "border": { + "width": "2px" + } + } + } + }, + "core/site-title": { + "typography": { + "fontFamily": "var(--wp--preset--font-family--heading)", + "fontWeight": "normal" + } + }, + "core/navigation": { + "typography": { + "fontSize": "var(--wp--preset--font-size--small)", + "fontWeight": "normal" + } + } + }, + "elements": { + "button": { + "border": { + "radius": "6px" + }, + "color": { + "background": "var(--wp--preset--color--contrast)", + "text": "var(--wp--preset--color--base-2)" + }, + "spacing": { + "padding": { + "bottom": "0.98rem", + "left": "1.6rem", + "right": "1.6rem", + "top": "0.8rem" + } + }, + "typography": { + "fontFamily": "var(--wp--preset--font-family--heading)", + "fontSize": "var(--wp--preset--font-size--small)", + "fontStyle": "normal" + }, + ":hover": { + "color": { + "background": "var(--wp--preset--color--contrast)" + } + } + }, + "heading": { + "typography": { + "fontFamily": "var(--wp--preset--font-family--heading)", + "letterSpacing": "0" + } + } + } + } +} diff --git a/wp-content/themes/twentytwentyfour/styles/mint.json b/wp-content/themes/twentytwentyfour/styles/mint.json new file mode 100644 index 0000000..645d732 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/styles/mint.json @@ -0,0 +1,169 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.5/theme.json", + "version": 2, + "title": "Mint", + "settings": { + "color": { + "palette": [ + { + "color": "#e4efeb", + "name": "Base", + "slug": "base" + }, + { + "color": "#f1fefb", + "name": "Base / Two", + "slug": "base-2" + }, + { + "color": "#000000", + "name": "Contrast", + "slug": "contrast" + }, + { + "color": "#353535", + "name": "Contrast / Two", + "slug": "contrast-2" + }, + { + "color": "#A4A4A4", + "name": "Contrast / Three", + "slug": "contrast-3" + } + ] + }, + "typography": { + "fluid": true, + "fontFamilies": [ + { + "fontFace": [ + { + "fontFamily": "Instrument Sans", + "fontStyle": "normal", + "fontWeight": "400 700", + "src": [ + "file:./assets/fonts/instrument-sans/InstrumentSans-VariableFont_wdth,wght.woff2" + ] + }, + { + "fontFamily": "Instrument Sans", + "fontStyle": "italic", + "fontWeight": "400 700", + "src": [ + "file:./assets/fonts/instrument-sans/InstrumentSans-Italic-VariableFont_wdth,wght.woff2" + ] + } + ], + "fontFamily": "\"Instrument Sans\", sans-serif", + "name": "Instrument Sans", + "slug": "heading" + }, + { + "fontFace": [ + { + "fontFamily": "Jost", + "fontStyle": "normal", + "fontWeight": "100 900", + "src": ["file:./assets/fonts/jost/Jost-VariableFont_wght.woff2"] + }, + { + "fontFamily": "Jost", + "fontStyle": "italic", + "fontWeight": "100 900", + "src": [ + "file:./assets/fonts/jost/Jost-Italic-VariableFont_wght.woff2" + ] + } + ], + "fontFamily": "\"Jost\", sans-serif", + "name": "Jost", + "slug": "body" + }, + { + "fontFamily": "-apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif", + "name": "System Sans-serif", + "slug": "system-sans-serif" + }, + { + "fontFamily": "Iowan Old Style, Apple Garamond, Baskerville, Times New Roman, Droid Serif, Times, Source Serif Pro, serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol", + "name": "System Serif", + "slug": "system-serif" + } + ] + } + }, + "styles": { + "blocks": { + "core/navigation": { + "typography": { + "fontStyle": "normal", + "fontWeight": "400" + } + }, + "core/pullquote": { + "typography": { + "fontFamily": "var(--wp--preset--font-family--body)", + "fontSize": "var(--wp--preset--font-size--x-large)", + "fontStyle": "normal", + "fontWeight": "600", + "lineHeight": "1.3" + } + }, + "core/quote": { + "typography": { + "fontFamily": "var(--wp--preset--font-family--body)", + "fontSize": "var(--wp--preset--font-size--large)", + "fontStyle": "normal", + "fontWeight": "400" + } + }, + "core/site-title": { + "typography": { + "fontFamily": "var(--wp--preset--font-family--heading)" + } + } + }, + "elements": { + "caption": { + "typography": { + "fontFamily": "var(--wp--preset--font-family--body)" + } + }, + "h1": { + "typography": { + "fontSize": "var(--wp--preset--font-size--x-large)" + } + }, + "h2": { + "typography": { + "fontSize": "2.1rem" + } + }, + "h3": { + "typography": { + "fontSize": "var(--wp--preset--font-size--large)" + } + }, + "h4": { + "typography": { + "fontSize": "1.6rem" + } + }, + "h5": { + "typography": { + "fontSize": "1.4rem" + } + }, + "heading": { + "typography": { + "fontFamily": "var(--wp--preset--font-family--heading)", + "fontStyle": "normal", + "fontWeight": "600" + } + } + }, + "typography": { + "fontFamily": "var(--wp--preset--font-family--body)" + } + } +} diff --git a/wp-content/themes/twentytwentyfour/styles/onyx.json b/wp-content/themes/twentytwentyfour/styles/onyx.json new file mode 100644 index 0000000..2b23fd7 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/styles/onyx.json @@ -0,0 +1,165 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.5/theme.json", + "version": 2, + "title": "Onyx", + "settings": { + "color": { + "duotone": [ + { + "colors": [ + "#272727", + "#f9f9f9" + ], + "slug": "duotone-1", + "name": "Dark gray and white" + }, + { + "colors": [ + "#272727", + "#5F584F" + ], + "slug": "duotone-2", + "name": "Dark gray and walnut" + }, + { + "colors": [ + "#272727", + "#973C20" + ], + "slug": "duotone-3", + "name": "Dark gray and cinnamon" + }, + { + "colors": [ + "#272727", + "#4D5B48" + ], + "slug": "duotone-4", + "name": "Dark gray and olive" + }, + { + "colors": [ + "#272727", + "#4F5959" + ], + "slug": "duotone-5", + "name": "Dark gray and steel" + } + ], + "gradients": [ + { + "slug": "gradient-1", + "gradient": "linear-gradient(to bottom, #5F584F 0%, #272727 100%)", + "name": "Vertical soft driftwood to dark gray" + }, + { + "slug": "gradient-2", + "gradient": "linear-gradient(to bottom, #6D533C 0%, #272727 100%)", + "name": "Vertical soft walnut to dark gray" + }, + { + "slug": "gradient-3", + "gradient": "linear-gradient(to bottom, #973C20 0%, #272727 100%)", + "name": "Vertical soft cinnamon to dark gray" + }, + { + "slug": "gradient-4", + "gradient": "linear-gradient(to bottom, #4D5B48 0%, #272727 100%)", + "name": "Vertical soft olive to dark gray" + }, + { + "slug": "gradient-5", + "gradient": "linear-gradient(to bottom, #4F5959 0%, #272727 100%)", + "name": "Vertical soft steel to dark gray" + }, + { + "slug": "gradient-6", + "gradient": "linear-gradient(to bottom, #909090 0%, #272727 100%)", + "name": "Vertical soft pewter to dark gray" + }, + { + "slug": "gradient-7", + "gradient": "linear-gradient(to bottom, #5F584F 50%, #272727 50%)", + "name": "Vertical hard beige to dark gray" + }, + { + "slug": "gradient-8", + "gradient": "linear-gradient(to bottom, #6D533C 50%, #272727 50%)", + "name": "Vertical hard walnut to dark gray" + }, + { + "slug": "gradient-9", + "gradient": "linear-gradient(to bottom, #973C20 50%, #272727 50%)", + "name": "Vertical hard cinnamon to dark gray" + }, + { + "slug": "gradient-10", + "gradient": "linear-gradient(to bottom, #4D5B48 50%, #272727 50%)", + "name": "Vertical hard olive to dark gray" + }, + { + "slug": "gradient-11", + "gradient": "linear-gradient(to bottom, #4F5959 50%, #272727 50%)", + "name": "Vertical hard steel to dark gray" + }, + { + "slug": "gradient-12", + "gradient": "linear-gradient(to bottom, #A4A4A4 50%, #272727 50%)", + "name": "Vertical hard pewter to dark gray" + } + ], + "palette": [ + { + "color": "#272727", + "name": "Base", + "slug": "base" + }, + { + "color": "#303030", + "name": "Base / Two", + "slug": "base-2" + }, + { + "color": "#f9f9f9", + "name": "Contrast", + "slug": "contrast" + }, + { + "color": "#B7B7B7", + "name": "Contrast / Two", + "slug": "contrast-2" + }, + { + "color": "#909090", + "name": "Contrast / Three", + "slug": "contrast-3" + }, + { + "color": "#5F584F", + "name": "Accent", + "slug": "accent" + }, + { + "color": "#6D533C", + "name": "Accent / Two", + "slug": "accent-2" + }, + { + "color": "#973C20", + "name": "Accent / Three", + "slug": "accent-3" + }, + { + "color": "#4D5B48", + "name": "Accent / Four", + "slug": "accent-4" + }, + { + "color": "#4F5959", + "name": "Accent / Five", + "slug": "accent-5" + } + ] + } + } +} diff --git a/wp-content/themes/twentytwentyfour/styles/rust.json b/wp-content/themes/twentytwentyfour/styles/rust.json new file mode 100644 index 0000000..d90a497 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/styles/rust.json @@ -0,0 +1,145 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.5/theme.json", + "version": 2, + "title": "Rust", + "settings": { + "color": { + "duotone": [ + { + "colors": [ + "#A62B0C", + "#F3F0E7" + ], + "slug": "duotone-1", + "name": "Dark rust to beige" + } + ], + "gradients": [ + { + "slug": "gradient-1", + "gradient": "linear-gradient(to bottom, #A62A0C42 0%, #F3F0E7 100%)", + "name": "Vertical transparent rust to beige" + }, + { + "slug": "gradient-7", + "gradient": "linear-gradient(to bottom, #A62A0C42 50%, #F3F0E7 50%)", + "name": "Vertical hard transparent rust to beige" + }, + { + "slug": "gradient-2", + "gradient": "linear-gradient(to bottom, #A62B0C 0%, #F3F0E7 100%)", + "name": "Vertical rust to beige" + }, + { + "slug": "gradient-8", + "gradient": "linear-gradient(to bottom, #A62B0C 50%, #F3F0E7 50%)", + "name": "Vertical hard rust to beige" + } + ], + "palette": [ + { + "color": "#F3F0E7", + "name": "Base", + "slug": "base" + }, + { + "color": "#ECEADF", + "name": "Base / 2", + "slug": "base-2" + }, + { + "color": "#A62B0C", + "name": "Contrast", + "slug": "contrast" + } + ] + } + }, + "styles": { + "blocks": { + "core/calendar": { + "css": ".wp-block-calendar table:where(:not(.has-text-color)) th{background-color:var(--wp--preset--color--contrast);color:var(--wp--preset--color--base);border-color:var(--wp--preset--color--contrast)} & table:where(:not(.has-text-color)) td{border-color:var(--wp--preset--color--contrast)}" + }, + "core/comment-date": { + "color": { + "text": "var(--wp--preset--color--contrast)" + }, + "elements": { + "link": { + "color": { + "text": "var(--wp--preset--color--contrast)" + } + } + } + }, + "core/comment-edit-link": { + "elements": { + "link": { + "color": { + "text": "var(--wp--preset--color--contrast)" + } + } + } + }, + "core/comment-reply-link": { + "elements": { + "link": { + "color": { + "text": "var(--wp--preset--color--contrast)" + } + } + } + }, + "core/post-date": { + "color": { + "text": "var(--wp--preset--color--contrast)" + }, + "elements": { + "link": { + "color": { + "text": "var(--wp--preset--color--contrast)" + } + } + } + }, + "core/post-terms": { + "css":"& .wp-block-post-terms__prefix{color: var(--wp--preset--color--contrast);}" + }, + "core/quote": { + "color": { + "background": "var(--wp--preset--color--base)" + } + }, + "core/site-tagline": { + "color": { + "text": "var(--wp--preset--color--contrast)" + } + } + }, + "elements": { + "button": { + ":focus": { + "color": { + "background": "var(--wp--preset--color--contrast)" + }, + "border": { + "color": "var(--wp--preset--color--contrast)" + } + }, + ":hover": { + "color": { + "background": "var(--wp--preset--color--contrast)" + }, + "border": { + "color": "var(--wp--preset--color--contrast)" + } + } + }, + "caption": { + "color": { + "text": "var(--wp--preset--color--contrast)" + } + } + } + } +} diff --git a/wp-content/themes/twentytwentyfour/templates/404.html b/wp-content/themes/twentytwentyfour/templates/404.html new file mode 100644 index 0000000..37abd55 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/templates/404.html @@ -0,0 +1,9 @@ + + + +
    + +
    + + + diff --git a/wp-content/themes/twentytwentyfour/templates/archive.html b/wp-content/themes/twentytwentyfour/templates/archive.html new file mode 100644 index 0000000..e430722 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/templates/archive.html @@ -0,0 +1,13 @@ + + + +
    + + + + + +
    + + + diff --git a/wp-content/themes/twentytwentyfour/templates/home.html b/wp-content/themes/twentytwentyfour/templates/home.html new file mode 100644 index 0000000..196f82e --- /dev/null +++ b/wp-content/themes/twentytwentyfour/templates/home.html @@ -0,0 +1,9 @@ + + + +
    + +
    + + + diff --git a/wp-content/themes/twentytwentyfour/templates/index.html b/wp-content/themes/twentytwentyfour/templates/index.html new file mode 100644 index 0000000..363f49a --- /dev/null +++ b/wp-content/themes/twentytwentyfour/templates/index.html @@ -0,0 +1,10 @@ + + + +
    + + +
    + + + diff --git a/wp-content/themes/twentytwentyfour/templates/page-no-title.html b/wp-content/themes/twentytwentyfour/templates/page-no-title.html new file mode 100644 index 0000000..f221eaf --- /dev/null +++ b/wp-content/themes/twentytwentyfour/templates/page-no-title.html @@ -0,0 +1,9 @@ + + + +
    + +
    + + + diff --git a/wp-content/themes/twentytwentyfour/templates/page-wide.html b/wp-content/themes/twentytwentyfour/templates/page-wide.html new file mode 100644 index 0000000..21478ea --- /dev/null +++ b/wp-content/themes/twentytwentyfour/templates/page-wide.html @@ -0,0 +1,33 @@ + + + +
    + +
    + +
    + + + +
    + +
    + +
    + +
    + + + +
    + +
    + +
    + +
    + +
    + + + diff --git a/wp-content/themes/twentytwentyfour/templates/page-with-sidebar.html b/wp-content/themes/twentytwentyfour/templates/page-with-sidebar.html new file mode 100644 index 0000000..f57b2ba --- /dev/null +++ b/wp-content/themes/twentytwentyfour/templates/page-with-sidebar.html @@ -0,0 +1,54 @@ + + + +
    + + +
    + +
    +
    + + + +
    + +
    + + + + + + + + + +
    + +
    + + + +
    +
    + + + +
    + +
    + + + +
    +
    + +
    + +
    + + + diff --git a/wp-content/themes/twentytwentyfour/templates/page.html b/wp-content/themes/twentytwentyfour/templates/page.html new file mode 100644 index 0000000..0486031 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/templates/page.html @@ -0,0 +1,26 @@ + + + +
    + +
    + + + + + + + + + + + +
    + + + +
    + + + diff --git a/wp-content/themes/twentytwentyfour/templates/search.html b/wp-content/themes/twentytwentyfour/templates/search.html new file mode 100644 index 0000000..c4d2f90 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/templates/search.html @@ -0,0 +1,17 @@ + + + +
    + + + +
    + +
    + + + +
    + + + diff --git a/wp-content/themes/twentytwentyfour/templates/single-with-sidebar.html b/wp-content/themes/twentytwentyfour/templates/single-with-sidebar.html new file mode 100644 index 0000000..990a3a8 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/templates/single-with-sidebar.html @@ -0,0 +1,61 @@ + + + +
    + +
    + +
    + +
    + + + + + + + + + + +
    + + + +
    + + + +
    + + + +
    + + + + + + + + + + + + +
    + +
    + + + +
    + +
    + +
    + +
    + + + diff --git a/wp-content/themes/twentytwentyfour/templates/single.html b/wp-content/themes/twentytwentyfour/templates/single.html new file mode 100644 index 0000000..e263370 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/templates/single.html @@ -0,0 +1,49 @@ + + + +
    + +
    + + + +
    + + + +
    + +
    + + + + + +
    + + + +
    + + + + + +
    + + + + + + +
    + +
    + +
    + + + diff --git a/wp-content/themes/twentytwentyfour/theme.json b/wp-content/themes/twentytwentyfour/theme.json new file mode 100644 index 0000000..134da28 --- /dev/null +++ b/wp-content/themes/twentytwentyfour/theme.json @@ -0,0 +1,956 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.5/theme.json", + "version": 2, + "patterns": [ + "three-columns-of-services", + "clients-section" + ], + "settings": { + "appearanceTools": true, + "color": { + "defaultDuotone": false, + "defaultPalette": false, + "defaultGradients": false, + "duotone": [ + { + "colors": ["#111111", "#ffffff"], + "slug": "duotone-1", + "name": "Black and white" + }, + { + "colors": ["#111111", "#C2A990"], + "slug": "duotone-2", + "name": "Black and sandstone" + }, + { + "colors": ["#111111", "#D8613C"], + "slug": "duotone-3", + "name": "Black and rust" + }, + { + "colors": ["#111111", "#B1C5A4"], + "slug": "duotone-4", + "name": "Black and sage" + }, + { + "colors": ["#111111", "#B5BDBC"], + "slug": "duotone-5", + "name": "Black and pastel blue" + } + ], + "gradients": [ + { + "slug": "gradient-1", + "gradient": "linear-gradient(to bottom, #cfcabe 0%, #F9F9F9 100%)", + "name": "Vertical soft beige to white" + }, + { + "slug": "gradient-2", + "gradient": "linear-gradient(to bottom, #C2A990 0%, #F9F9F9 100%)", + "name": "Vertical soft sandstone to white" + }, + { + "slug": "gradient-3", + "gradient": "linear-gradient(to bottom, #D8613C 0%, #F9F9F9 100%)", + "name": "Vertical soft rust to white" + }, + { + "slug": "gradient-4", + "gradient": "linear-gradient(to bottom, #B1C5A4 0%, #F9F9F9 100%)", + "name": "Vertical soft sage to white" + }, + { + "slug": "gradient-5", + "gradient": "linear-gradient(to bottom, #B5BDBC 0%, #F9F9F9 100%)", + "name": "Vertical soft mint to white" + }, + { + "slug": "gradient-6", + "gradient": "linear-gradient(to bottom, #A4A4A4 0%, #F9F9F9 100%)", + "name": "Vertical soft pewter to white" + }, + { + "slug": "gradient-7", + "gradient": "linear-gradient(to bottom, #cfcabe 50%, #F9F9F9 50%)", + "name": "Vertical hard beige to white" + }, + { + "slug": "gradient-8", + "gradient": "linear-gradient(to bottom, #C2A990 50%, #F9F9F9 50%)", + "name": "Vertical hard sandstone to white" + }, + { + "slug": "gradient-9", + "gradient": "linear-gradient(to bottom, #D8613C 50%, #F9F9F9 50%)", + "name": "Vertical hard rust to white" + }, + { + "slug": "gradient-10", + "gradient": "linear-gradient(to bottom, #B1C5A4 50%, #F9F9F9 50%)", + "name": "Vertical hard sage to white" + }, + { + "slug": "gradient-11", + "gradient": "linear-gradient(to bottom, #B5BDBC 50%, #F9F9F9 50%)", + "name": "Vertical hard mint to white" + }, + { + "slug": "gradient-12", + "gradient": "linear-gradient(to bottom, #A4A4A4 50%, #F9F9F9 50%)", + "name": "Vertical hard pewter to white" + } + ], + "palette": [ + { + "color": "#f9f9f9", + "name": "Base", + "slug": "base" + }, + { + "color": "#ffffff", + "name": "Base / Two", + "slug": "base-2" + }, + { + "color": "#111111", + "name": "Contrast", + "slug": "contrast" + }, + { + "color": "#636363", + "name": "Contrast / Two", + "slug": "contrast-2" + }, + { + "color": "#A4A4A4", + "name": "Contrast / Three", + "slug": "contrast-3" + }, + { + "color": "#cfcabe", + "name": "Accent", + "slug": "accent" + }, + { + "color": "#c2a990", + "name": "Accent / Two", + "slug": "accent-2" + }, + { + "color": "#d8613c", + "name": "Accent / Three", + "slug": "accent-3" + }, + { + "color": "#b1c5a4", + "name": "Accent / Four", + "slug": "accent-4" + }, + { + "color": "#b5bdbc", + "name": "Accent / Five", + "slug": "accent-5" + } + ] + }, + "layout": { + "contentSize": "620px", + "wideSize": "1280px" + }, + "spacing": { + "spacingScale": { + "steps": 0 + }, + "spacingSizes": [ + { + "name": "1", + "size": "1rem", + "slug": "10" + }, + { + "name": "2", + "size": "min(1.5rem, 2vw)", + "slug": "20" + }, + { + "name": "3", + "size": "min(2.5rem, 3vw)", + "slug": "30" + }, + { + "name": "4", + "size": "min(4rem, 5vw)", + "slug": "40" + }, + { + "name": "5", + "size": "min(6.5rem, 8vw)", + "slug": "50" + }, + { + "name": "6", + "size": "min(10.5rem, 13vw)", + "slug": "60" + } + ], + "units": ["%", "px", "em", "rem", "vh", "vw"] + }, + "typography": { + "fluid": true, + "fontFamilies": [ + { + "fontFace": [ + { + "fontFamily": "Inter", + "fontStretch": "normal", + "fontStyle": "normal", + "fontWeight": "300 900", + "src": [ + "file:./assets/fonts/inter/Inter-VariableFont_slnt,wght.woff2" + ] + } + ], + "fontFamily": "\"Inter\", sans-serif", + "name": "Inter", + "slug": "body" + }, + { + "fontFace": [ + { + "fontFamily": "Cardo", + "fontStyle": "normal", + "fontWeight": "400", + "src": ["file:./assets/fonts/cardo/cardo_normal_400.woff2"] + }, + { + "fontFamily": "Cardo", + "fontStyle": "italic", + "fontWeight": "400", + "src": ["file:./assets/fonts/cardo/cardo_italic_400.woff2"] + }, + { + "fontFamily": "Cardo", + "fontStyle": "normal", + "fontWeight": "700", + "src": ["file:./assets/fonts/cardo/cardo_normal_700.woff2"] + } + ], + "fontFamily": "Cardo", + "name": "Cardo", + "slug": "heading" + }, + { + "fontFamily": "-apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif", + "name": "System Sans-serif", + "slug": "system-sans-serif" + }, + { + "fontFamily": "Iowan Old Style, Apple Garamond, Baskerville, Times New Roman, Droid Serif, Times, Source Serif Pro, serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol", + "name": "System Serif", + "slug": "system-serif" + } + ], + "fontSizes": [ + { + "fluid": false, + "name": "Small", + "size": "0.9rem", + "slug": "small" + }, + { + "fluid": false, + "name": "Medium", + "size": "1.05rem", + "slug": "medium" + }, + { + "fluid": { + "min": "1.39rem", + "max": "1.85rem" + }, + "name": "Large", + "size": "1.85rem", + "slug": "large" + }, + { + "fluid": { + "min": "1.85rem", + "max": "2.5rem" + }, + "name": "Extra Large", + "size": "2.5rem", + "slug": "x-large" + }, + { + "fluid": { + "min": "2.5rem", + "max": "3.27rem" + }, + "name": "Extra Extra Large", + "size": "3.27rem", + "slug": "xx-large" + } + ], + "writingMode": true + }, + "useRootPaddingAwareAlignments": true + }, + "styles": { + "blocks": { + "core/avatar": { + "border": { + "radius": "90px" + } + }, + "core/button": { + "variations": { + "outline": { + "spacing": { + "padding": { + "bottom": "calc(0.6rem - 1px)", + "left": "calc(1rem - 1px)", + "right": "calc(1rem - 1px)", + "top": "calc(0.6rem - 1px)" + } + }, + "border": { + "width": "1px" + } + } + } + }, + "core/buttons": { + "spacing": { + "blockGap": "0.7rem" + } + }, + "core/calendar": { + "color": { + "text": "var(--wp--preset--color--contrast)" + }, + "css": ".wp-block-calendar table:where(:not(.has-text-color)) th{background-color:var(--wp--preset--color--contrast-2);color:var(--wp--preset--color--base);border-color:var(--wp--preset--color--contrast-2)} & table:where(:not(.has-text-color)) td{border-color:var(--wp--preset--color--contrast-2)}" + }, + "core/categories": { + "spacing": { + "padding": { + "left": "0px", + "right": "0px" + } + }, + "css": "& {list-style-type:none;} & li{margin-bottom: 0.5rem;}" + }, + "core/code": { + "border": { + "color": "var(--wp--preset--color--contrast)", + "radius": "var(--wp--preset--spacing--20)" + }, + "color": { + "background": "var(--wp--preset--color--base-2)", + "text": "var(--wp--preset--color--contrast-2)" + }, + "spacing": { + "padding": { + "bottom": "calc(var(--wp--preset--spacing--30) + 0.75rem)", + "left": "calc(var(--wp--preset--spacing--30) + 0.75rem)", + "right": "calc(var(--wp--preset--spacing--30) + 0.75rem)", + "top": "calc(var(--wp--preset--spacing--30) + 0.75rem)" + } + }, + "typography": { + "fontSize": "var(--wp--preset--font-size--medium)", + "fontStyle": "normal", + "fontWeight": "400", + "lineHeight": "1.6" + } + }, + "core/comment-author-name": { + "color": { + "text": "var(--wp--preset--color--contrast)" + }, + "elements": { + "link": { + "color": { + "text": "var(--wp--preset--color--contrast)" + }, + "typography": { + "textDecoration": "none" + }, + ":hover": { + "typography": { + "textDecoration": "underline" + } + } + } + }, + "typography": { + "fontSize": "var(--wp--preset--font-size--small)", + "fontStyle": "normal", + "fontWeight": "600" + } + }, + "core/comment-content": { + "typography": { + "fontSize": "var(--wp--preset--font-size--small)" + }, + "spacing": { + "margin": { + "top": "var(--wp--preset--spacing--20)", + "bottom": "var(--wp--preset--spacing--20)" + } + } + }, + "core/comment-date": { + "color": { + "text": "var(--wp--preset--color--contrast-2)" + }, + "elements": { + "link": { + "color": { + "text": "var(--wp--preset--color--contrast-2)" + }, + "typography": { + "textDecoration": "none" + }, + ":hover": { + "typography": { + "textDecoration": "underline" + } + } + } + }, + "typography": { + "fontSize": "var(--wp--preset--font-size--small)" + }, + "spacing": { + "margin": { + "top": "0px", + "bottom": "0px" + } + } + }, + "core/comment-edit-link": { + "elements": { + "link": { + "color": { + "text": "var(--wp--preset--color--contrast-2)" + }, + "typography": { + "textDecoration": "none" + }, + ":hover": { + "typography": { + "textDecoration": "underline" + } + } + } + }, + "typography": { + "fontSize": "var(--wp--preset--font-size--small)" + } + }, + "core/comment-reply-link": { + "elements": { + "link": { + "color": { + "text": "var(--wp--preset--color--contrast-2)" + }, + "typography": { + "textDecoration": "none" + }, + ":hover": { + "typography": { + "textDecoration": "underline" + } + } + } + }, + "typography": { + "fontSize": "var(--wp--preset--font-size--small)" + } + }, + "core/post-comments-form": { + "css": "& textarea, input{border-radius:.33rem}" + }, + "core/comments-pagination": { + "typography": { + "fontSize": "var(--wp--preset--font-size--small)" + } + }, + "core/comments-pagination-next": { + "typography": { + "fontSize": "var(--wp--preset--font-size--small)" + } + }, + "core/comments-pagination-numbers": { + "typography": { + "fontSize": "var(--wp--preset--font-size--small)" + } + }, + "core/comments-pagination-previous": { + "typography": { + "fontSize": "var(--wp--preset--font-size--small)" + } + }, + "core/footnotes": { + "typography": { + "fontSize": "var(--wp--preset--font-size--small)" + } + }, + "core/gallery": { + "spacing": { + "margin": { + "bottom": "var(--wp--preset--spacing--50)" + } + } + }, + "core/image": { + "variations": { + "rounded": { + "border": { + "radius": "var(--wp--preset--spacing--20)" + } + } + } + }, + "core/list": { + "spacing": { + "padding": { + "left": "var(--wp--preset--spacing--10)" + } + } + }, + "core/loginout": { + "css": "& input{border-radius:.33rem;padding:calc(0.667em + 2px);border:1px solid #949494;}" + }, + "core/navigation": { + "elements": { + "link": { + ":hover": { + "typography": { + "textDecoration": "underline" + } + }, + "typography": { + "textDecoration": "none" + } + } + }, + "typography": { + "fontWeight": "500" + } + }, + "core/post-author": { + "typography": { + "fontSize": "var(--wp--preset--font-size--small)" + } + }, + "core/post-author-name": { + "elements": { + "link": { + ":hover": { + "typography": { + "textDecoration": "underline" + } + }, + "typography": { + "textDecoration": "none" + } + } + }, + "typography": { + "fontSize": "var(--wp--preset--font-size--small)" + } + }, + "core/post-date": { + "color": { + "text": "var(--wp--preset--color--contrast-2)" + }, + "elements": { + "link": { + ":hover": { + "typography": { + "textDecoration": "underline" + } + }, + "color": { + "text": "var(--wp--preset--color--contrast-2)" + }, + "typography": { + "textDecoration": "none" + } + } + }, + "typography": { + "fontSize": "var(--wp--preset--font-size--small)" + } + }, + "core/post-excerpt": { + "typography": { + "lineHeight": "1.6" + } + }, + "core/post-featured-image": { + "border": { + "radius": "var(--wp--preset--spacing--20)" + } + }, + "core/post-terms": { + "elements": { + "link": { + ":hover": { + "typography": { + "textDecoration": "underline" + } + }, + "typography": { + "textDecoration": "none" + } + } + }, + "typography": { + "fontSize": "var(--wp--preset--font-size--small)" + }, + "css":"& .wp-block-post-terms__prefix{color: var(--wp--preset--color--contrast-2);}" + }, + "core/post-title": { + "elements": { + "link": { + ":hover": { + "typography": { + "textDecoration": "underline" + } + }, + "typography": { + "textDecoration": "none" + } + } + } + }, + "core/pullquote": { + "border": { + "radius": "var(--wp--preset--spacing--20)" + }, + "elements": { + "cite": { + "typography": { + "fontFamily": "var(--wp--preset--font-family--body)", + "fontSize": "var(--wp--preset--font-size--medium)", + "fontStyle": "normal" + } + } + }, + "spacing": { + "padding": { + "bottom": "var(--wp--preset--spacing--40)", + "top": "var(--wp--preset--spacing--40)" + } + }, + "typography": { + "fontFamily": "var(--wp--preset--font-family--heading)", + "fontSize": "var(--wp--preset--font-size--x-large)", + "fontStyle": "italic", + "fontWeight": "400", + "letterSpacing": "0em", + "lineHeight": "1.5" + } + }, + "core/query-title": { + "css": "& span {font-style: italic;}" + }, + "core/query-no-results": { + "spacing": { + "padding": { + "top": "var(--wp--preset--spacing--30)" + } + } + }, + "core/quote": { + "border": { + "radius": "var(--wp--preset--spacing--20)" + }, + "color": { + "background": "var(--wp--preset--color--base-2)" + }, + "css": "& :where(p) {margin-block-start:0;margin-block-end:calc(var(--wp--preset--spacing--10) + 0.5rem);} & :where(:last-child) {margin-block-end:0;} &.has-text-align-right.is-style-plain, .rtl .is-style-plain.wp-block-quote:not(.has-text-align-center):not(.has-text-align-left){border-width: 0 2px 0 0;padding-left:calc(var(--wp--preset--spacing--20) + 0.5rem);padding-right:calc(var(--wp--preset--spacing--20) + 0.5rem);} &.has-text-align-left.is-style-plain, body:not(.rtl) .is-style-plain.wp-block-quote:not(.has-text-align-center):not(.has-text-align-right){border-width: 0 0 0 2px;padding-left:calc(var(--wp--preset--spacing--20) + 0.5rem);padding-right:calc(var(--wp--preset--spacing--20) + 0.5rem)}", + "elements": { + "cite": { + "typography": { + "fontFamily": "var(--wp--preset--font-family--body)", + "fontSize": "var(--wp--preset--font-size--small)", + "fontStyle": "normal" + } + } + }, + "spacing": { + "padding": { + "bottom": "calc(var(--wp--preset--spacing--30) + 0.75rem)", + "left": "calc(var(--wp--preset--spacing--30) + 0.75rem)", + "right": "calc(var(--wp--preset--spacing--30) + 0.75rem)", + "top": "calc(var(--wp--preset--spacing--30) + 0.75rem)" + } + }, + "typography": { + "fontFamily": "var(--wp--preset--font-family--heading)", + "fontSize": "var(--wp--preset--font-size--large)", + "fontStyle": "italic", + "lineHeight": "1.3" + }, + "variations": { + "plain": { + "border": { + "color": "var(--wp--preset--color--contrast)", + "radius": "0", + "style": "solid", + "width": "0" + }, + "color": { + "background": "transparent" + }, + "spacing": { + "padding": { + "bottom": "var(--wp--preset--spacing--20)", + "left": "var(--wp--preset--spacing--20)", + "right": "var(--wp--preset--spacing--20)", + "top": "var(--wp--preset--spacing--20)" + } + }, + "typography": { + "fontFamily": "var(--wp--preset--font-family--body)", + "fontStyle": "normal", + "fontSize": "var(--wp--preset--font-size--medium)", + "lineHeight": "1.5" + } + } + } + }, + "core/search": { + "css": "& .wp-block-search__input{border-radius:.33rem}", + "typography": { + "fontSize": "var(--wp--preset--font-size--small)" + }, + "elements": { + "button": { + "border": { + "radius": { "ref": "styles.elements.button.border.radius" } + } + } + } + }, + "core/separator": { + "border": { + "color": "currentColor", + "style": "solid", + "width": "0 0 1px 0" + }, + "color": { + "text": "var(--wp--preset--color--contrast)" + }, + "css": " &:not(.is-style-wide):not(.is-style-dots):not(.alignwide):not(.alignfull){width: var(--wp--preset--spacing--60)}" + }, + "core/site-tagline": { + "color": { + "text": "var(--wp--preset--color--contrast-2)" + }, + "typography": { + "fontSize": "var(--wp--preset--font-size--small)" + } + }, + "core/site-title": { + "elements": { + "link": { + ":hover": { + "typography": { + "textDecoration": "none" + } + }, + "typography": { + "textDecoration": "none" + } + } + }, + "typography": { + "fontFamily": "var(--wp--preset--font-family--body)", + "fontSize": "1.2rem", + "fontStyle": "normal", + "fontWeight": "600" + } + } + }, + "color": { + "background": "var(--wp--preset--color--base)", + "text": "var(--wp--preset--color--contrast)" + }, + "elements": { + "button": { + ":active": { + "color": { + "background": "var(--wp--preset--color--contrast)", + "text": "var(--wp--preset--color--base)" + } + }, + ":focus": { + "color": { + "background": "var(--wp--preset--color--contrast-2)", + "text": "var(--wp--preset--color--base)" + }, + "outline": { + "color": "var(--wp--preset--color--contrast)", + "offset": "2px" + }, + "border": { + "color": "var(--wp--preset--color--contrast-2)" + } + }, + ":hover": { + "color": { + "background": "var(--wp--preset--color--contrast-2)", + "text": "var(--wp--preset--color--base)" + }, + "border": { + "color": "var(--wp--preset--color--contrast-2)" + } + }, + "border": { + "radius": ".33rem", + "color": "var(--wp--preset--color--contrast)" + }, + "color": { + "background": "var(--wp--preset--color--contrast)", + "text": "var(--wp--preset--color--base)" + }, + "spacing": { + "padding": { + "bottom": "0.6rem", + "left": "1rem", + "right": "1rem", + "top": "0.6rem" + } + }, + "typography": { + "fontSize": "var(--wp--preset--font-size--small)", + "fontStyle": "normal", + "fontWeight": "500" + } + }, + "caption": { + "color": { + "text": "var(--wp--preset--color--contrast-2)" + }, + "typography": { + "fontFamily": "var(--wp--preset--font-family--body)", + "fontSize": "0.8rem" + } + }, + "h1": { + "typography": { + "fontSize": "var(--wp--preset--font-size--xx-large)", + "lineHeight": "1.15" + } + }, + "h2": { + "typography": { + "fontSize": "var(--wp--preset--font-size--x-large)" + } + }, + "h3": { + "typography": { + "fontSize": "var(--wp--preset--font-size--large)" + } + }, + "h4": { + "typography": { + "fontSize": "clamp(1.1rem, 1.1rem + ((1vw - 0.2rem) * 0.767), 1.5rem)" + } + }, + "h5": { + "typography": { + "fontSize": "var(--wp--preset--font-size--medium)" + } + }, + "h6": { + "typography": { + "fontSize": "var(--wp--preset--font-size--small)" + } + }, + "heading": { + "color": { + "text": "var(--wp--preset--color--contrast)" + }, + "typography": { + "fontFamily": "var(--wp--preset--font-family--heading)", + "fontWeight": "400", + "lineHeight": "1.2" + } + }, + "link": { + ":hover": { + "typography": { + "textDecoration": "none" + } + }, + "color": { + "text": "var(--wp--preset--color--contrast)" + } + } + }, + "spacing": { + "blockGap": "1.2rem", + "padding": { + "left": "var(--wp--preset--spacing--50)", + "right": "var(--wp--preset--spacing--50)" + } + }, + "typography": { + "fontFamily": "var(--wp--preset--font-family--body)", + "fontSize": "var(--wp--preset--font-size--medium)", + "fontStyle": "normal", + "fontWeight": "400", + "lineHeight": "1.55" + }, + "css": ":where(.wp-site-blocks *:focus){outline-width:2px;outline-style:solid}" + }, + "templateParts": [ + { + "area": "header", + "name": "header", + "title": "Header" + }, + { + "area": "footer", + "name": "footer", + "title": "Footer" + }, + { + "area": "uncategorized", + "name": "sidebar", + "title": "Sidebar" + }, + { + "area": "uncategorized", + "name": "post-meta", + "title": "Post Meta" + } + ], + "customTemplates": [ + { + "name": "page-no-title", + "postTypes": ["page"], + "title": "Page No Title" + }, + { + "name": "page-with-sidebar", + "postTypes": ["page"], + "title": "Page with Sidebar" + }, + { + "name": "page-wide", + "postTypes": ["page"], + "title": "Page with Wide Image" + }, + { + "name": "single-with-sidebar", + "postTypes": ["post"], + "title": "Single with Sidebar" + } + ] +} diff --git a/wp-content/themes/twentytwentythree/assets/fonts/dm-sans/DMSans-Bold-Italic.woff2 b/wp-content/themes/twentytwentythree/assets/fonts/dm-sans/DMSans-Bold-Italic.woff2 new file mode 100644 index 0000000..262239c Binary files /dev/null and b/wp-content/themes/twentytwentythree/assets/fonts/dm-sans/DMSans-Bold-Italic.woff2 differ diff --git a/wp-content/themes/twentytwentythree/assets/fonts/dm-sans/DMSans-Bold.woff2 b/wp-content/themes/twentytwentythree/assets/fonts/dm-sans/DMSans-Bold.woff2 new file mode 100644 index 0000000..2787a75 Binary files /dev/null and b/wp-content/themes/twentytwentythree/assets/fonts/dm-sans/DMSans-Bold.woff2 differ diff --git a/wp-content/themes/twentytwentythree/assets/fonts/dm-sans/DMSans-Regular-Italic.woff2 b/wp-content/themes/twentytwentythree/assets/fonts/dm-sans/DMSans-Regular-Italic.woff2 new file mode 100644 index 0000000..6220e15 Binary files /dev/null and b/wp-content/themes/twentytwentythree/assets/fonts/dm-sans/DMSans-Regular-Italic.woff2 differ diff --git a/wp-content/themes/twentytwentythree/assets/fonts/dm-sans/DMSans-Regular.woff2 b/wp-content/themes/twentytwentythree/assets/fonts/dm-sans/DMSans-Regular.woff2 new file mode 100644 index 0000000..9e5a00f Binary files /dev/null and b/wp-content/themes/twentytwentythree/assets/fonts/dm-sans/DMSans-Regular.woff2 differ diff --git a/wp-content/themes/twentytwentythree/assets/fonts/dm-sans/LICENSE.txt b/wp-content/themes/twentytwentythree/assets/fonts/dm-sans/LICENSE.txt new file mode 100644 index 0000000..02d522f --- /dev/null +++ b/wp-content/themes/twentytwentythree/assets/fonts/dm-sans/LICENSE.txt @@ -0,0 +1,94 @@ +Copyright 2014-2017 Indian Type Foundry (info@indiantypefoundry.com). Copyright 2019 Google LLC. +Copyright 2014-2018 Adobe (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe in the United States and/or other countries. Copyright 2019 Google LLC. + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/wp-content/themes/twentytwentythree/assets/fonts/ibm-plex-mono/IBMPlexMono-Bold.woff2 b/wp-content/themes/twentytwentythree/assets/fonts/ibm-plex-mono/IBMPlexMono-Bold.woff2 new file mode 100644 index 0000000..6124ae1 Binary files /dev/null and b/wp-content/themes/twentytwentythree/assets/fonts/ibm-plex-mono/IBMPlexMono-Bold.woff2 differ diff --git a/wp-content/themes/twentytwentythree/assets/fonts/ibm-plex-mono/IBMPlexMono-Italic.woff2 b/wp-content/themes/twentytwentythree/assets/fonts/ibm-plex-mono/IBMPlexMono-Italic.woff2 new file mode 100644 index 0000000..21d9681 Binary files /dev/null and b/wp-content/themes/twentytwentythree/assets/fonts/ibm-plex-mono/IBMPlexMono-Italic.woff2 differ diff --git a/wp-content/themes/twentytwentythree/assets/fonts/ibm-plex-mono/IBMPlexMono-Light.woff2 b/wp-content/themes/twentytwentythree/assets/fonts/ibm-plex-mono/IBMPlexMono-Light.woff2 new file mode 100644 index 0000000..b714a13 Binary files /dev/null and b/wp-content/themes/twentytwentythree/assets/fonts/ibm-plex-mono/IBMPlexMono-Light.woff2 differ diff --git a/wp-content/themes/twentytwentythree/assets/fonts/ibm-plex-mono/IBMPlexMono-Regular.woff2 b/wp-content/themes/twentytwentythree/assets/fonts/ibm-plex-mono/IBMPlexMono-Regular.woff2 new file mode 100644 index 0000000..64ad179 Binary files /dev/null and b/wp-content/themes/twentytwentythree/assets/fonts/ibm-plex-mono/IBMPlexMono-Regular.woff2 differ diff --git a/wp-content/themes/twentytwentythree/assets/fonts/ibm-plex-mono/OFL.txt b/wp-content/themes/twentytwentythree/assets/fonts/ibm-plex-mono/OFL.txt new file mode 100644 index 0000000..245d5f4 --- /dev/null +++ b/wp-content/themes/twentytwentythree/assets/fonts/ibm-plex-mono/OFL.txt @@ -0,0 +1,93 @@ +Copyright © 2017 IBM Corp. with Reserved Font Name "Plex" + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/wp-content/themes/twentytwentythree/assets/fonts/inter/Inter-VariableFont_slnt,wght.ttf b/wp-content/themes/twentytwentythree/assets/fonts/inter/Inter-VariableFont_slnt,wght.ttf new file mode 100644 index 0000000..ec3164e Binary files /dev/null and b/wp-content/themes/twentytwentythree/assets/fonts/inter/Inter-VariableFont_slnt,wght.ttf differ diff --git a/wp-content/themes/twentytwentythree/assets/fonts/inter/LICENSE.txt b/wp-content/themes/twentytwentythree/assets/fonts/inter/LICENSE.txt new file mode 100644 index 0000000..b525cbf --- /dev/null +++ b/wp-content/themes/twentytwentythree/assets/fonts/inter/LICENSE.txt @@ -0,0 +1,93 @@ +Copyright 2020 The Inter Project Authors (https://github.com/rsms/inter) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/wp-content/themes/twentytwentythree/assets/fonts/source-serif-pro/LICENSE.md b/wp-content/themes/twentytwentythree/assets/fonts/source-serif-pro/LICENSE.md new file mode 100644 index 0000000..7cd3e74 --- /dev/null +++ b/wp-content/themes/twentytwentythree/assets/fonts/source-serif-pro/LICENSE.md @@ -0,0 +1,93 @@ +Copyright 2014 - 2021 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries. + +This Font Software is licensed under the SIL Open Font License, Version 1.1. + +This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, + in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, + redistributed and/or sold with any software, provided that each copy + contains the above copyright notice and this license. These can be + included either as stand-alone text files, human-readable headers or + in the appropriate machine-readable metadata fields within text or + binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font + Name(s) unless explicit written permission is granted by the corresponding + Copyright Holder. This restriction only applies to the primary font name as + presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font + Software shall not be used to promote, endorse or advertise any + Modified Version, except to acknowledge the contribution(s) of the + Copyright Holder(s) and the Author(s) or with their explicit written + permission. + +5) The Font Software, modified or unmodified, in part or in whole, + must be distributed entirely under this license, and must not be + distributed under any other license. The requirement for fonts to + remain under this license does not apply to any document created + using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/wp-content/themes/twentytwentythree/assets/fonts/source-serif-pro/SourceSerif4Variable-Italic.otf.woff2 b/wp-content/themes/twentytwentythree/assets/fonts/source-serif-pro/SourceSerif4Variable-Italic.otf.woff2 new file mode 100644 index 0000000..2387849 Binary files /dev/null and b/wp-content/themes/twentytwentythree/assets/fonts/source-serif-pro/SourceSerif4Variable-Italic.otf.woff2 differ diff --git a/wp-content/themes/twentytwentythree/assets/fonts/source-serif-pro/SourceSerif4Variable-Italic.ttf.woff2 b/wp-content/themes/twentytwentythree/assets/fonts/source-serif-pro/SourceSerif4Variable-Italic.ttf.woff2 new file mode 100644 index 0000000..4cbd4c3 Binary files /dev/null and b/wp-content/themes/twentytwentythree/assets/fonts/source-serif-pro/SourceSerif4Variable-Italic.ttf.woff2 differ diff --git a/wp-content/themes/twentytwentythree/assets/fonts/source-serif-pro/SourceSerif4Variable-Roman.otf.woff2 b/wp-content/themes/twentytwentythree/assets/fonts/source-serif-pro/SourceSerif4Variable-Roman.otf.woff2 new file mode 100644 index 0000000..28701e6 Binary files /dev/null and b/wp-content/themes/twentytwentythree/assets/fonts/source-serif-pro/SourceSerif4Variable-Roman.otf.woff2 differ diff --git a/wp-content/themes/twentytwentythree/assets/fonts/source-serif-pro/SourceSerif4Variable-Roman.ttf.woff2 b/wp-content/themes/twentytwentythree/assets/fonts/source-serif-pro/SourceSerif4Variable-Roman.ttf.woff2 new file mode 100644 index 0000000..3b74d30 Binary files /dev/null and b/wp-content/themes/twentytwentythree/assets/fonts/source-serif-pro/SourceSerif4Variable-Roman.ttf.woff2 differ diff --git a/wp-content/themes/twentytwentythree/parts/comments.html b/wp-content/themes/twentytwentythree/parts/comments.html new file mode 100644 index 0000000..a5bc7d8 --- /dev/null +++ b/wp-content/themes/twentytwentythree/parts/comments.html @@ -0,0 +1 @@ + diff --git a/wp-content/themes/twentytwentythree/parts/footer.html b/wp-content/themes/twentytwentythree/parts/footer.html new file mode 100644 index 0000000..256c8db --- /dev/null +++ b/wp-content/themes/twentytwentythree/parts/footer.html @@ -0,0 +1 @@ + diff --git a/wp-content/themes/twentytwentythree/parts/header.html b/wp-content/themes/twentytwentythree/parts/header.html new file mode 100644 index 0000000..8a94130 --- /dev/null +++ b/wp-content/themes/twentytwentythree/parts/header.html @@ -0,0 +1,14 @@ + +
    + +
    + + +
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentythree/parts/post-meta.html b/wp-content/themes/twentytwentythree/parts/post-meta.html new file mode 100644 index 0000000..de968be --- /dev/null +++ b/wp-content/themes/twentytwentythree/parts/post-meta.html @@ -0,0 +1 @@ + diff --git a/wp-content/themes/twentytwentythree/patterns/call-to-action.php b/wp-content/themes/twentytwentythree/patterns/call-to-action.php new file mode 100644 index 0000000..1542790 --- /dev/null +++ b/wp-content/themes/twentytwentythree/patterns/call-to-action.php @@ -0,0 +1,42 @@ + + +
    + +
    + +

    +

    + + + +
    + +
    + + + +
    + +
    + +
    + + + +
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentythree/patterns/footer-default.php b/wp-content/themes/twentytwentythree/patterns/footer-default.php new file mode 100644 index 0000000..e382724 --- /dev/null +++ b/wp-content/themes/twentytwentythree/patterns/footer-default.php @@ -0,0 +1,29 @@ + + +
    + +
    + + +

    + WordPress' + ) + ?> +

    + +
    + +
    + diff --git a/wp-content/themes/twentytwentythree/patterns/hidden-404.php b/wp-content/themes/twentytwentythree/patterns/hidden-404.php new file mode 100644 index 0000000..ae7dbb1 --- /dev/null +++ b/wp-content/themes/twentytwentythree/patterns/hidden-404.php @@ -0,0 +1,28 @@ + + + + + + +

    + + + +
    + +

    + + + +
    + + + + + diff --git a/wp-content/themes/twentytwentythree/patterns/hidden-comments.php b/wp-content/themes/twentytwentythree/patterns/hidden-comments.php new file mode 100644 index 0000000..84d4a78 --- /dev/null +++ b/wp-content/themes/twentytwentythree/patterns/hidden-comments.php @@ -0,0 +1,57 @@ + + +
    + +
    + +

    + + + + + + +
    + +
    + +
    + + + +
    + + + +
    + + +
    + + + + + +
    + +
    + + + + + + + + + + +
    + +
    + diff --git a/wp-content/themes/twentytwentythree/patterns/hidden-heading.php b/wp-content/themes/twentytwentythree/patterns/hidden-heading.php new file mode 100644 index 0000000..542f9be --- /dev/null +++ b/wp-content/themes/twentytwentythree/patterns/hidden-heading.php @@ -0,0 +1,10 @@ + + +

    + diff --git a/wp-content/themes/twentytwentythree/patterns/hidden-no-results.php b/wp-content/themes/twentytwentythree/patterns/hidden-no-results.php new file mode 100644 index 0000000..d3f7ae0 --- /dev/null +++ b/wp-content/themes/twentytwentythree/patterns/hidden-no-results.php @@ -0,0 +1,14 @@ + + +

    + +

    + + + diff --git a/wp-content/themes/twentytwentythree/patterns/post-meta.php b/wp-content/themes/twentytwentythree/patterns/post-meta.php new file mode 100644 index 0000000..a1a9226 --- /dev/null +++ b/wp-content/themes/twentytwentythree/patterns/post-meta.php @@ -0,0 +1,77 @@ + + + + + + +
    + +
    + + + +
    + +
    + +
    + +

    + +

    + + + + + +

    + +

    + + + +
    + + + +
    + +

    + +

    + + + +
    + +
    + + + +
    + +
    + +

    + +

    + + + +
    + +
    + +
    + +
    + diff --git a/wp-content/themes/twentytwentythree/readme.txt b/wp-content/themes/twentytwentythree/readme.txt new file mode 100644 index 0000000..3c242e5 --- /dev/null +++ b/wp-content/themes/twentytwentythree/readme.txt @@ -0,0 +1,91 @@ +=== Twenty Twenty-Three === +Contributors: wordpressdotorg +Requires at least: 6.1 +Tested up to: 6.9 +Requires PHP: 5.6 +Stable tag: 1.6 +License: GPLv2 or later +License URI: http://www.gnu.org/licenses/gpl-2.0.html + +== Description == + +Twenty Twenty-Three is designed to take advantage of the new design tools introduced in WordPress 6.1. With a clean, blank base as a starting point, this default theme includes ten diverse style variations created by members of the WordPress community. + +Whether you want to build a complex or incredibly simple website, you can do it quickly and intuitively through the bundled styles or dive into creation and full customization yourself. + +== Changelog == + += 1.6 = +* Released: November 12, 2024 + +https://wordpress.org/documentation/article/twenty-twenty-three-changelog/#Version_1.6 + += 1.5 = +* Released: July 16, 2024 + +https://wordpress.org/documentation/article/twenty-twenty-three-changelog/#Version_1.5 + += 1.4 = +* Released: April 2, 2024 + +https://wordpress.org/documentation/article/twenty-twenty-three-changelog/#Version_1.4 + += 1.3 = +* Released: November 7, 2023 + +https://wordpress.org/documentation/article/twenty-twenty-three-changelog/#Version_1.3 + += 1.2 = +* Released: August 8, 2023 + +https://wordpress.org/documentation/article/twenty-twenty-three-changelog/#Version_1.2 + += 1.1 = +* Released: March 28, 2023 + +https://wordpress.org/documentation/article/twenty-twenty-three-changelog/#Version_1.1 + += 1.0 = +* Released: November 1, 2022 + +https://wordpress.org/documentation/article/twenty-twenty-three-changelog/#Version_1.0 + +== Copyright == + +Twenty Twenty-Three WordPress Theme, (C) 2022-2025 WordPress.org and contributors. +Twenty Twenty-Three is distributed under the terms of the GNU GPL. + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + + +This theme bundles the following third-party resources: + +DM Sans Font +Copyright 2014-2017 Indian Type Foundry (info@indiantypefoundry.com) +Copyright 2019 Google LLC +Copyright 2014-2018 Adobe (http://www.adobe.com/) +License: SIL Open Font License, 1.1, https://opensource.org/licenses/OFL-1.1 +Source: https://github.com/googlefonts/dm-fonts + +IBM Plex Font +Copyright 2017 IBM Corp. +License: SIL Open Font License, 1.1, https://opensource.org/licenses/OFL-1.1 +Source: https://github.com/IBM/plex + +Inter Font +Copyright (c) 2016-2020 The Inter Project Authors. +License: SIL Open Font License, 1.1, https://opensource.org/licenses/OFL-1.1 +Source: https://github.com/rsms/inter + +Source Serif Font +Copyright 2014-2021 Adobe (http://www.adobe.com/) +License: SIL Open Font License, 1.1, https://opensource.org/licenses/OFL-1.1 +Source: https://github.com/adobe-fonts/source-serif diff --git a/wp-content/themes/twentytwentythree/screenshot.png b/wp-content/themes/twentytwentythree/screenshot.png new file mode 100644 index 0000000..417d979 Binary files /dev/null and b/wp-content/themes/twentytwentythree/screenshot.png differ diff --git a/wp-content/themes/twentytwentythree/style.css b/wp-content/themes/twentytwentythree/style.css new file mode 100644 index 0000000..4a302c9 --- /dev/null +++ b/wp-content/themes/twentytwentythree/style.css @@ -0,0 +1,15 @@ +/* +Theme Name: Twenty Twenty-Three +Theme URI: https://wordpress.org/themes/twentytwentythree +Author: the WordPress team +Author URI: https://wordpress.org +Description: Twenty Twenty-Three is designed to take advantage of the new design tools introduced in WordPress 6.1. With a clean, blank base as a starting point, this default theme includes ten diverse style variations created by members of the WordPress community. Whether you want to build a complex or incredibly simple website, you can do it quickly and intuitively through the bundled styles or dive into creation and full customization yourself. +Requires at least: 6.1 +Tested up to: 6.9 +Requires PHP: 5.6 +Version: 1.6 +License: GNU General Public License v2 or later +License URI: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html +Text Domain: twentytwentythree +Tags: one-column, custom-colors, custom-menu, custom-logo, editor-style, featured-images, full-site-editing, block-patterns, rtl-language-support, sticky-post, threaded-comments, translation-ready, wide-blocks, block-styles, style-variations, accessibility-ready, blog, portfolio, news +*/ diff --git a/wp-content/themes/twentytwentythree/styles/aubergine.json b/wp-content/themes/twentytwentythree/styles/aubergine.json new file mode 100644 index 0000000..9e741ee --- /dev/null +++ b/wp-content/themes/twentytwentythree/styles/aubergine.json @@ -0,0 +1,292 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.5/theme.json", + "version": 2, + "title": "Aubergine", + "settings": { + "color": { + "gradients": [ + { + "gradient": "linear-gradient(180deg, var(--wp--preset--color--secondary) 0%,var(--wp--preset--color--base) 100%)", + "name": "Secondary to Base", + "slug": "secondary-base" + }, + { + "gradient": "linear-gradient(180deg, var(--wp--preset--color--base) 0 clamp(10vh, 24rem, 14vh), var(--wp--preset--color--secondary) 0% 30%, var(--wp--preset--color--base) 100%)", + "name": "Base to Secondary to Base", + "slug": "base-secondary-base" + }, + { + "gradient": "linear-gradient(90deg, var(--wp--preset--color--tertiary) 5.74%, var(--wp--preset--color--primary) 100%)", + "name": "Tertiary to Primary", + "slug": "tertiary-primary" + }, + { + "gradient": "linear-gradient(90deg, var(--wp--preset--color--primary) 5.74%, var(--wp--preset--color--tertiary) 100%)", + "name": "Primary to Tertiary", + "slug": "primary-tertiary" + } + ], + "palette": [ + { + "color": "#1B1031", + "name": "Base", + "slug": "base" + }, + { + "color": "#FFFFFF", + "name": "Contrast", + "slug": "contrast" + }, + { + "color": "#FF746D", + "name": "Primary", + "slug": "primary" + }, + { + "color": "#551C5E", + "name": "Secondary", + "slug": "secondary" + }, + { + "color": "#FB326B", + "name": "Tertiary", + "slug": "tertiary" + } + ] + }, + "typography": { + "fontSizes": [ + { + "fluid": { + "min": "0.875rem", + "max": "1rem" + }, + "size": "1rem", + "slug": "small" + }, + { + "fluid": { + "min": "1rem", + "max": "1.125rem" + }, + "size": "1.125rem", + "slug": "medium" + }, + { + "size": "1.75rem", + "slug": "large", + "fluid": false + }, + { + "size": "3.25rem", + "slug": "x-large", + "fluid": false + }, + { + "size": "10rem", + "slug": "xx-large", + "fluid": { + "min": "10rem", + "max": "16.3rem" + } + } + ] + } + }, + "styles": { + "blocks": { + "core/comment-reply-link": { + "elements": { + "link": { + "color": { + "text": "var(--wp--preset--color--primary)" + }, + "typography": { + "fontStyle": "italic" + } + } + } + }, + "core/group": { + "border": { + "color": "var(--wp--preset--color--primary)" + } + }, + "core/navigation": { + "typography": { + "fontSize": "var(--wp--preset--font-size--medium)" + } + }, + "core/post-author": { + "color": { + "text": "var(--wp--preset--color--primary)" + }, + "typography": { + "fontStyle": "italic" + } + }, + "core/post-content": { + "elements": { + "link": { + "color": { + "text": "var(--wp--preset--color--primary)" + } + } + } + }, + "core/post-date": { + "elements": { + "link": { + "color": { + "text": "var(--wp--preset--color--contrast)" + }, + "typography": { + "letterSpacing": "0.09rem", + "textTransform": "uppercase" + } + } + } + }, + "core/post-terms": { + "elements": { + "link": { + "color": { + "text": "var(--wp--preset--color--primary)" + }, + "typography": { + "fontStyle": "italic" + } + } + } + }, + "core/post-title": { + "elements": { + "link": { + ":active": { + "color": { + "text": "var(--wp--preset--color--contrast)" + } + } + } + }, + "typography": { + "fontSize": "clamp(2.625rem, calc(2.625rem + ((1vw - 0.48rem) * 8.4135)), 3.25rem)" + } + }, + "core/query": { + "elements": { + "h3": { + "color": { + "text": "var(--wp--preset--color--primary)" + }, + "typography": { + "fontSize": "var(--wp--preset--font-size--large)", + "fontWeight": "700" + } + }, + "link": { + "color": { + "text": "var(--wp--preset--color--primary)" + } + } + } + }, + "core/separator": { + "color": { + "text": "var(--wp--preset--color--primary)" + } + }, + "core/site-title": { + "border": { + "color": "var(--wp--preset--color--primary)", + "style": "solid", + "width": "0 0 2px 0" + }, + "elements": { + "link": { + ":active": { + "color": { + "text": "var(--wp--preset--color--primary)" + } + }, + ":focus": { + "color": { + "text": "var(--wp--preset--color--primary)" + }, + "typography": { + "textDecoration": "none" + } + }, + ":hover": { + "color": { + "text": "var(--wp--preset--color--primary)" + }, + "typography": { + "textDecoration": "none" + } + } + } + }, + "typography": { + "letterSpacing": "0.09rem", + "textTransform": "uppercase" + } + } + }, + "color": { + "gradient": "var(--wp--preset--gradient--base-secondary-base) no-repeat" + }, + "elements": { + "button": { + "border": { + "radius": "99999px" + }, + "color": { + "gradient": "var(--wp--preset--gradient--tertiary-primary)", + "text": "var(--wp--preset--color--base)" + }, + ":hover": { + "color": { + "background": "var(--wp--preset--color--primary)", + "gradient": "none", + "text": "var(--wp--preset--color--secondary)" + } + }, + ":focus": { + "color": { + "background": "var(--wp--preset--color--primary)", + "gradient": "none", + "text": "var(--wp--preset--color--secondary)" + } + }, + ":active": { + "color": { + "background": "var(--wp--preset--color--primary)", + "gradient": "none", + "text": "var(--wp--preset--color--secondary)" + } + }, + ":visited": { + "color": { + "text": "var(--wp--preset--color--base)" + } + } + }, + "heading": { + "typography": { + "letterSpacing": "-0.019rem" + } + }, + "link": { + ":active": { + "color": { + "text": "var(--wp--preset--color--primary)" + } + } + } + }, + "typography": { + "fontFamily": "var(--wp--preset--font-family--dm-sans)" + } + } +} diff --git a/wp-content/themes/twentytwentythree/styles/block-out.json b/wp-content/themes/twentytwentythree/styles/block-out.json new file mode 100644 index 0000000..cdeaab7 --- /dev/null +++ b/wp-content/themes/twentytwentythree/styles/block-out.json @@ -0,0 +1,245 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.5/theme.json", + "version": 2, + "title": "Block out", + "settings": { + "color": { + "duotone": [ + { + "colors": [ + "#E2161D", + "#FF9C9C" + ], + "slug": "default-filter", + "name": "Default filter" + } + ], + "palette": [ + { + "color": "#ff5252", + "name": "Base", + "slug": "base" + }, + { + "color": "#252525", + "name": "Contrast", + "slug": "contrast" + }, + { + "color": "#ffffff", + "name": "Primary", + "slug": "primary" + }, + { + "color": "#ff2d34", + "name": "Secondary", + "slug": "secondary" + }, + { + "color": "#ff7e7e", + "name": "Tertiary", + "slug": "tertiary" + } + ] + }, + "layout": { + "contentSize": "800px" + }, + "typography": { + "fontSizes": [ + { + "fluid": { + "max": "1rem", + "min": "0.875rem" + }, + "size": "1rem", + "slug": "small" + }, + { + "fluid": { + "max": "1.125rem", + "min": "1rem" + }, + "size": "1.125rem", + "slug": "medium" + }, + { + "fluid": false, + "size": "1.75rem", + "slug": "large" + }, + { + "fluid": false, + "size": "2.25rem", + "slug": "x-large" + }, + { + "fluid": { + "max": "7rem", + "min": "4.3rem" + }, + "size": "7rem", + "slug": "xx-large" + } + ] + } + }, + "styles": { + "blocks": { + "core/avatar": { + "filter": { + "duotone": "var(--wp--preset--duotone--default-filter)" + } + }, + "core/image": { + "border": { + "radius": "8px" + }, + "filter": { + "duotone": "var(--wp--preset--duotone--default-filter)" + } + }, + "core/navigation": { + "typography": { + "fontSize": "var(--wp--preset--font-size--large)" + } + }, + "core/post-content": { + "elements": { + "link": { + "color": { + "text": "var(--wp--preset--color--contrast)" + } + }, + "h1": { + "color": { + "text": "var(--wp--preset--color--contrast)" + } + } + } + }, + "core/post-featured-image": { + "border": { + "radius": "8px" + }, + "filter": { + "duotone": "var(--wp--preset--duotone--default-filter)" + } + }, + "core/post-title": { + "elements": { + "link": { + ":active": { + "color": { + "text": "var(--wp--preset--color--primary)" + } + } + } + }, + "color": { + "text": "var(--wp--preset--color--primary)" + } + }, + "core/quote": { + "border": { + "width": "1px" + } + }, + "core/search": { + "border": { + "radius": "8px" + } + }, + "core/site-logo": { + "filter": { + "duotone": "var(--wp--preset--duotone--default-filter)" + } + }, + "core/site-title": { + "elements": { + "link": { + ":active": { + "color": { + "text": "var(--wp--preset--color--primary)" + } + } + } + }, + "spacing": { + "padding": { + "bottom": "var(--wp--preset--spacing--30)", + "top": "var(--wp--preset--spacing--30)" + } + }, + "typography": { + "fontSize": "var(--wp--preset--font-size--xx-large)", + "lineHeight": "1.1", + "textTransform": "lowercase" + } + }, + "core/query": { + "elements": { + "h2": { + "typography": { + "fontSize": "var(--wp--preset--font-size--large)" + } + } + } + } + }, + "elements": { + "button": { + "border": { + "radius": "8px" + }, + "typography": { + "fontFamily": "var(--wp--preset--font-family--ibm-plex-mono)", + "fontStyle": "italic", + "fontWeight": "400" + }, + ":active": { + "color": { + "text": "var(--wp--preset--color--contrast)" + } + } + }, + "h1": { + "color": { + "text": "var(--wp--preset--color--primary)" + } + }, + "h6": { + "typography": { + "fontWeight": "400" + } + }, + "heading": { + "typography": { + "fontFamily": "var(--wp--preset--font-family--ibm-plex-mono)", + "fontStyle": "italic" + } + }, + "link": { + ":active": { + "color": { + "text": "var(--wp--preset--color--primary)" + } + }, + "typography": { + "fontFamily": "var(--wp--preset--font-family--ibm-plex-mono)", + "fontStyle": "italic", + "fontWeight": "400" + } + } + }, + "spacing": { + "padding": { + "bottom": "0px", + "top": "0px" + } + }, + "typography": { + "fontFamily": "var(--wp--preset--font-family--dm-sans)" + } + } +} diff --git a/wp-content/themes/twentytwentythree/styles/canary.json b/wp-content/themes/twentytwentythree/styles/canary.json new file mode 100644 index 0000000..b58af0a --- /dev/null +++ b/wp-content/themes/twentytwentythree/styles/canary.json @@ -0,0 +1,251 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.5/theme.json", + "version": 2, + "title": "Canary", + "settings": { + "color": { + "duotone": [ + { + "colors": [ + "#000000", + "#ffffff" + ], + "slug": "default-filter", + "name": "Default filter" + } + ], + "palette": [ + { + "color": "#fdff85", + "name": "Base", + "slug": "base" + }, + { + "color": "#000000", + "name": "Contrast", + "slug": "contrast" + }, + { + "color": "#000000", + "name": "Primary", + "slug": "primary" + }, + { + "color": "#353535", + "name": "Secondary", + "slug": "secondary" + }, + { + "color": "#ffffff", + "name": "Tertiary", + "slug": "tertiary" + } + ] + }, + "layout": { + "wideSize": "650px" + }, + "typography": { + "fontSizes": [ + { + "size": "0.75rem", + "slug": "small" + }, + { + "size": "1.125rem", + "slug": "medium" + }, + { + "size": "1.75rem", + "slug": "large" + }, + { + "size": "2.25rem", + "slug": "x-large" + }, + { + "size": "10rem", + "slug": "xx-large" + } + ] + } + }, + "styles": { + "blocks": { + "core/comments": { + "elements": { + "link": { + "typography": { + "textDecoration": "underline" + }, + ":hover": { + "typography": { + "textDecoration": "none" + } + } + } + } + }, + "core/comment-reply-link": { + "typography": { + "fontSize": "var(--wp--preset--font-size--small)" + } + }, + "core/comments-title":{ + "typography": { + "fontSize": "var(--wp--preset--font-size--small)" + } + }, + "core/image": { + "border": { + "radius": "100px 0 0 0" + }, + "filter": { + "duotone": "var(--wp--preset--duotone--default-filter)" + } + }, + "core/navigation": { + "typography": { + "textTransform": "lowercase" + } + }, + "core/post-content": { + "elements": { + "link": { + "typography": { + "textDecoration": "underline" + }, + ":hover": { + "typography": { + "textDecoration": "none" + } + } + } + } + }, + "core/post-excerpt": { + "typography": { + "fontSize": "var(--wp--preset--font-size--small)" + } + }, + "core/post-featured-image": { + "border": { + "radius": "100px 0 0 0" + }, + "spacing": { + "margin": { + "bottom": "0px", + "left": "0px", + "right": "0px", + "top": "0px" + }, + "padding": { + "bottom": "0px", + "left": "0px", + "right": "0px", + "top": "0px" + } + } + }, + "core/post-title": { + "typography": { + "fontWeight": "700" + } + }, + "core/separator": { + "border": { + "width": "2px" + } + }, + "core/site-title": { + "typography": { + "fontWeight": "700", + "textTransform": "lowercase", + "fontSize": "var(--wp--preset--font-size--small)" + } + } + }, + "elements": { + "button": { + ":hover": { + "color": { + "background": "var(--wp--preset--color--base)", + "text": "var(--wp--preset--color--contrast)" + }, + "border": { + "color": "var(--wp--preset--color--contrast)", + "style": "solid", + "width": "2px" + } + }, + ":focus": { + "color": { + "background": "var(--wp--preset--color--base)", + "text": "var(--wp--preset--color--contrast)" + }, + "border": { + "color": "var(--wp--preset--color--contrast)", + "style": "solid", + "width": "2px" + } + }, + ":visited": { + "color": { + "text": "var(--wp--preset--color--base)" + } + }, + "border": { + "radius": "5px", + "color": "var(--wp--preset--color--contrast)", + "style": "solid", + "width": "2px" + }, + "color": { + "text": "var(--wp--preset--color--base)" + }, + "spacing": { + "padding": { + "bottom": "0.667em", + "left": "1.333em", + "right": "1.333em", + "top": "0.667em" + } + } + }, + "h1": { + "typography": { + "fontSize": "var(--wp--preset--font-size--small)" + } + }, + "h2": { + "typography": { + "fontSize": "var(--wp--preset--font-size--small)" + } + }, + "h3": { + "typography": { + "fontSize": "var(--wp--preset--font-size--small)" + } + }, + "h4": { + "typography": { + "fontSize": "var(--wp--preset--font-size--small)" + } + }, + "heading": { + "typography": { + "fontWeight": "700" + } + }, + "link": { + "typography": { + "textDecoration": "none" + } + } + }, + "typography": { + "fontFamily": "var(--wp--preset--font-family--ibm-plex-mono)", + "fontSize": "var(--wp--preset--font-size--small)" + } + } +} diff --git a/wp-content/themes/twentytwentythree/styles/electric.json b/wp-content/themes/twentytwentythree/styles/electric.json new file mode 100644 index 0000000..9bd275a --- /dev/null +++ b/wp-content/themes/twentytwentythree/styles/electric.json @@ -0,0 +1,100 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.5/theme.json", + "version": 2, + "title": "Electric", + "settings": { + "color": { + "palette": [ + { + "color": "#f3f3f1", + "name": "Base", + "slug": "base" + }, + { + "color": "#2500ff", + "name": "Contrast", + "slug": "contrast" + }, + { + "color": "#f3f3f1", + "name": "Primary", + "slug": "primary" + }, + { + "color": "#2500ff", + "name": "Secondary", + "slug": "secondary" + }, + { + "color": "#f6f6f6", + "name": "Tertiary", + "slug": "tertiary" + } + ] + } + }, + "styles": { + "elements": { + "button": { + "border": { + "style": "solid", + "width": "2px", + "color": "var(--wp--preset--color--contrast)" + }, + "color": { + "background": "var(--wp--preset--color--contrast)", + "text": "var(--wp--preset--color--base)" + }, + "spacing": { + "padding": { + "top": ".667em", + "right": "1.333em", + "bottom": ".667em", + "left": "1.333em" + } + }, + ":active": { + "typography": { + "textDecoration": "underline dotted" + } + }, + ":focus": { + "typography": { + "textDecoration": "underline dotted" + } + }, + ":hover": { + "border": { + "color": "var(--wp--preset--color--contrast)", + "style": "solid", + "width": "2px" + }, + "color": { + "background": "var(--wp--preset--color--base)", + "text": "var(--wp--preset--color--contrast)" + } + }, + ":visited": { + "color": { + "text": "var(--wp--preset--color--base)" + } + } + }, + "link": { + ":focus": { + "typography": { + "textDecoration": "underline dotted" + } + }, + ":active": { + "typography": { + "textDecoration": "underline dotted" + } + } + } + }, + "typography": { + "fontFamily": "var(--wp--preset--font-family--dm-sans)" + } + } +} diff --git a/wp-content/themes/twentytwentythree/styles/grapes.json b/wp-content/themes/twentytwentythree/styles/grapes.json new file mode 100644 index 0000000..dd3c2b2 --- /dev/null +++ b/wp-content/themes/twentytwentythree/styles/grapes.json @@ -0,0 +1,97 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.5/theme.json", + "version": 2, + "title": "Grapes", + "settings": { + "color": { + "palette": [ + { + "color": "#E1E1C7", + "name": "Base", + "slug": "base" + }, + { + "color": "#000000", + "name": "Contrast", + "slug": "contrast" + }, + { + "color": "#214F31", + "name": "Primary", + "slug": "primary" + }, + { + "color": "#000000", + "name": "Secondary", + "slug": "secondary" + }, + { + "color": "#F0EBD2", + "name": "Tertiary", + "slug": "tertiary" + } + ] + } + }, + "styles": { + "blocks": { + "core/post-comments": { + "elements": { + "link": { + ":hover": { + "typography": { + "textDecoration": "underline dashed" + } + } + } + } + }, + "core/post-date": { + "typography": { + "fontFamily": "var(--wp--preset--font-family--source-serif-pro)", + "fontStyle": "italic" + } + }, + "core/post-terms": { + "typography": { + "fontFamily": "var(--wp--preset--font-family--source-serif-pro)", + "fontStyle": "italic" + } + }, + "core/site-title": { + "typography": { + "textTransform": "lowercase" + } + } + }, + "elements": { + "button": { + "border": { + "radius": "9999px" + }, + "color": { + "background": "var(--wp--preset--color--primary)", + "text": "var(--wp--preset--color--base)" + }, + ":visited": { + "color": { + "text": "var(--wp--preset--color--base)" + } + } + }, + "heading": { + "typography": { + "fontFamily": "var(--wp--preset--font-family--source-serif-pro)", + "fontWeight": "600" + } + }, + "link": { + ":hover": { + "typography": { + "textDecoration": "underline dashed" + } + } + } + } + } +} diff --git a/wp-content/themes/twentytwentythree/styles/marigold.json b/wp-content/themes/twentytwentythree/styles/marigold.json new file mode 100644 index 0000000..4271d96 --- /dev/null +++ b/wp-content/themes/twentytwentythree/styles/marigold.json @@ -0,0 +1,311 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.5/theme.json", + "version": 2, + "title": "Marigold", + "settings": { + "color": { + "palette": [ + { + "color": "#F6F2EC", + "name": "Base", + "slug": "base" + }, + { + "color": "#21251F", + "name": "Contrast", + "slug": "contrast" + }, + { + "color": "#5B4460", + "name": "Primary", + "slug": "primary" + }, + { + "color": "#FCC263", + "name": "Secondary", + "slug": "secondary" + }, + { + "color": "#E7A1A9", + "name": "Tertiary", + "slug": "tertiary" + } + ] + }, + "layout": { + "wideSize": "1200px" + }, + "spacing": { + "spacingSizes": [ + { + "size": "clamp(0.625rem, 0.434rem + 0.61vw, 0.938rem)", + "name": "1", + "slug": "30" + }, + { + "size": "clamp(1.25rem, 0.869rem + 1.22vw, 1.875rem)", + "name": "2", + "slug": "40" + }, + { + "size": "clamp(1.875rem, 1.303rem + 1.83vw, 2.813rem)", + "name": "3", + "slug": "50" + }, + { + "size": "clamp(2.5rem, 1.738rem + 2.44vw, 3.75rem)", + "name": "4", + "slug": "60" + }, + { + "size": "clamp(2.813rem, 1.098rem + 5.49vw, 5.625rem)", + "name": "5", + "slug": "70" + }, + { + "size": "clamp(3.75rem, 1.463rem + 7.32vw, 7.5rem)", + "name": "6", + "slug": "80" + } + ] + }, + "typography": { + "fontSizes": [ + { + "size": "clamp(0.875rem, 0.799rem + 0.24vw, 1rem)", + "name": "Tiny", + "slug": "tiny" + }, + { + "size": "clamp(1rem, 0.924rem + 0.24vw, 1.125rem)", + "slug": "small" + }, + { + "size": "clamp(1.125rem, 1.049rem + 0.24vw, 1.25rem)", + "name": "Normal", + "slug": "normal" + }, + { + "size": "clamp(1.25rem, 1.021rem + 0.73vw, 1.625rem)", + "slug": "medium" + }, + { + "size": "clamp(1.375rem, 1.07rem + 0.98vw, 1.875rem)", + "slug": "large" + }, + { + "size": "clamp(1.75rem, 1.369rem + 1.22vw, 2.375rem)", + "slug": "x-large" + }, + { + "size": "clamp(2.125rem, 1.706rem + 1.34vw, 2.813rem)", + "slug": "xx-large" + }, + { + "size": "clamp(2.5rem, 1.966rem + 1.71vw, 3.375rem)", + "name": "Huge", + "slug": "huge" + }, + { + "size": "clamp(3.375rem, 2.384rem + 3.17vw, 5rem)", + "name": "Gigantic", + "slug": "gigantic" + } + ] + } + }, + "styles": { + "blocks": { + "core/comment-author-name": { + "elements": { + "link": { + ":active": { + "color": { + "text": "var(--wp--preset--color--primary)" + } + } + } + } + }, + "core/query": { + "spacing": { + "padding": { + "left": "0", + "right": "0" + } + } + }, + "core/post-content": { + "elements": { + "link": { + "color": { + "text": "var(--wp--preset--color--primary)" + } + } + } + }, + "core/post-excerpt": { + "typography": { + "fontSize": "var(--wp--preset--font-size--normal)" + } + }, + "core/post-title": { + "elements": { + "link": { + "typography": { + "textDecoration": "none" + }, + "color": { + "text": "var(--wp--preset--color--primary)" + } + } + }, + "spacing": { + "margin": { + "bottom": "var(--wp--preset--spacing--50)", + "top": "var(--wp--preset--spacing--50)" + } + }, + "typography": { + "fontSize": "var(--wp--preset--font-size--large)", + "fontWeight": "600" + } + }, + "core/pullquote": { + "border": { + "width": "1px 0" + } + }, + "core/query-pagination": { + "elements": { + "link": { + "typography": { + "textDecoration": "none" + } + } + }, + "typography": { + "fontSize": "var(--wp--preset--font-size--small)", + "fontWeight": "400" + } + }, + "core/quote": { + "elements": { + "cite": { + "typography": { + "fontSize": "1.25rem" + } + } + }, + "typography": { + "fontSize": "1.625rem", + "lineHeight": "1.5" + } + }, + "core/site-title": { + "typography": { + "fontSize": "var(--wp--preset--font-size--normal)", + "textTransform": "lowercase" + } + } + }, + "elements": { + "h1": { + "typography": { + "fontSize": "var(--wp--preset--font-size--huge)", + "lineHeight": "1.1" + } + }, + "h2": { + "typography": { + "fontSize": "var(--wp--preset--font-size--xx-large)", + "lineHeight": "1.2" + } + }, + "h3": { + "typography": { + "fontSize": "var(--wp--preset--font-size--x-large)", + "lineHeight": "1.2" + } + }, + "h4": { + "typography": { + "fontSize": "var(--wp--preset--font-size--large)", + "fontWeight": "600" + } + }, + "h5": { + "typography": { + "fontStyle": "normal", + "fontWeight": "600", + "textTransform": "none" + } + }, + "h6": { + "typography": { + "fontSize": "var(--wp--preset--font-size--normal)", + "fontStyle": "normal", + "fontWeight": "600" + } + }, + "heading": { + "typography": { + "fontStyle": "italic" + } + }, + "link": { + ":active": { + "color": { + "text": "var(--wp--preset--color--primary)" + } + }, + ":hover": { + "typography": { + "textDecoration": "none" + } + } + }, + "button": { + "border": { + "radius": "50px" + }, + "color": { + "background": "var(--wp--preset--color--secondary)" + }, + "typography": { + "fontSize": "var(--wp--preset--font-size--normal)" + }, + ":hover": { + "color": { + "background": "var(--wp--preset--color--tertiary)", + "text": "var(--wp--preset--color--contrast)" + } + }, + ":focus": { + "color": { + "background": "var(--wp--preset--color--primary)" + } + }, + ":active": { + "color": { + "background": "var(--wp--preset--color--primary)" + } + } + } + }, + "spacing": { + "blockGap": "2.5rem", + "padding": { + "bottom": "var(--wp--preset--spacing--50)", + "left": "var(--wp--preset--spacing--40)", + "right": "var(--wp--preset--spacing--40)", + "top": "var(--wp--preset--spacing--50)" + } + }, + "typography": { + "fontFamily": "var(--wp--preset--font-family--source-serif-pro)", + "fontSize": "var(--wp--preset--font-size--normal)", + "lineHeight": "1.5" + } + } +} diff --git a/wp-content/themes/twentytwentythree/styles/pilgrimage.json b/wp-content/themes/twentytwentythree/styles/pilgrimage.json new file mode 100644 index 0000000..bfcfcb4 --- /dev/null +++ b/wp-content/themes/twentytwentythree/styles/pilgrimage.json @@ -0,0 +1,323 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.5/theme.json", + "version": 2, + "title": "Pilgrimage", + "settings": { + "color": { + "duotone": [ + { + "colors": [ + "#222828", + "#9EF9FD" + ], + "slug": "default-filter", + "name": "Default filter" + } + ], + "gradients": [ + { + "gradient": "linear-gradient(180deg, var(--wp--preset--color--primary) 0%,var(--wp--preset--color--secondary) 100%)", + "name": "Primary to Secondary", + "slug": "primary-secondary" + }, + { + "gradient": "linear-gradient(180deg, var(--wp--preset--color--secondary) 0%,var(--wp--preset--color--primary) 100%)", + "name": "Secondary to Primary", + "slug": "secondary-primary" + }, + { + "gradient": "linear-gradient(180deg, var(--wp--preset--color--primary) 0%,var(--wp--preset--color--tertiary) 100%)", + "name": "Tertiary to Secondary", + "slug": "tertiary-secondary" + }, + { + "gradient": "linear-gradient(180deg, var(--wp--preset--color--tertiary) 0%,var(--wp--preset--color--primary) 100%)", + "name": "Tertiary to Primary", + "slug": "tertiary-primary" + }, + { + "gradient": "linear-gradient(180deg, var(--wp--preset--color--base) 0%,var(--wp--preset--color--primary) 350%)", + "name": "Base to Primary", + "slug": "base-primary" + }, + { + "gradient": "radial-gradient(circle at 5px 5px,#0c0d0d70 2px,#ffffff00 0px,#ffffff00 0px) 0 0 / 8px 8px, linear-gradient(180deg, var(--wp--preset--color--base) 0%,#000000 200%)", + "name": "Dots", + "slug": "dots" + } + ], + "palette": [ + { + "color": "#222828", + "name": "Base", + "slug": "base" + }, + { + "color": "#ffffff", + "name": "Contrast", + "slug": "contrast" + }, + { + "color": "#53ED85", + "name": "Primary", + "slug": "primary" + }, + { + "color": "#9EF9FD", + "name": "Secondary", + "slug": "secondary" + }, + { + "color": "#D8E202", + "name": "Tertiary", + "slug": "tertiary" + } + ] + } + }, + "styles": { + "blocks": { + "core/comment-author-name": { + "elements": { + "link": { + ":active": { + "color": { + "text": "var(--wp--preset--color--tertiary)" + } + } + } + } + }, + "core/comment-date": { + "elements": { + "link": { + ":active": { + "color": { + "text": "var(--wp--preset--color--tertiary)" + }, + "typography": { + "textDecoration": "underline" + } + } + } + } + }, + "core/comment-edit-link": { + "elements": { + "link": { + ":active": { + "color": { + "text": "var(--wp--preset--color--tertiary)" + } + } + } + } + }, + "core/comments-pagination": { + "elements": { + "link": { + "typography": { + "textDecoration": "underline" + } + } + } + }, + "core/image": { + "filter": { + "duotone": "var(--wp--preset--duotone--default-filter)" + } + }, + "core/navigation": { + "elements": { + "link": { + ":active": { + "typography": { + "textDecoration": "underline dashed" + } + }, + "color": { + "text": "var(--wp--preset--color--primary)" + }, + "typography": { + "textDecoration": "underline" + } + } + } + }, + "core/paragraph": { + "color": { + "text": "var(--wp--preset--color--contrast)" + }, + "elements": { + "link": { + ":hover": { + "color": { + "text": "var(--wp--preset--color--tertiary)" + } + } + } + } + }, + "core/post-content": { + "elements": { + "link": { + "color": { + "text": "var(--wp--preset--color--primary)" + } + } + } + }, + "core/post-date": { + "elements": { + "link": { + "typography": { + "textDecoration": "none", + "fontStyle": "italic" + } + } + } + }, + "core/post-featured-image": { + "filter": { + "duotone": "var(--wp--preset--duotone--default-filter)" + } + }, + "core/post-title": { + "elements": { + "link": { + ":active": { + "color": { + "text": "var(--wp--preset--color--tertiary)" + }, + "typography": { + "textDecoration": "underline" + } + }, + "typography": { + "textDecoration": "underline" + } + } + } + }, + "core/query-pagination": { + "elements": { + "link": { + "typography": { + "textDecoration": "underline" + } + } + } + }, + "core/separator": { + "color": { + "text": "var(--wp--preset--color--secondary)" + } + }, + "core/site-title": { + "elements": { + "link": { + ":active": { + "color": { + "text": "var(--wp--preset--color--primary)" + } + } + } + }, + "typography": { + "fontStyle": "italic", + "fontWeight": "700" + } + } + }, + "color": { + "gradient": "var(--wp--preset--gradient--dots)" + }, + "elements": { + "button": { + ":active": { + "color": { + "background": "var(--wp--preset--color--secondary)", + "gradient": "none" + } + }, + ":focus": { + "color": { + "gradient": "var(--wp--preset--gradient--secondary-primary)" + } + }, + ":hover": { + "color": { + "gradient": "var(--wp--preset--gradient--secondary-primary)" + } + }, + ":visited": { + "color": { + "text": "var(--wp--preset--color--base)" + } + }, + "border": { + "radius": "5px" + }, + "color": { + "gradient": "var(--wp--preset--gradient--primary-secondary)", + "text": "var(--wp--preset--color--base)" + } + }, + "h1": { + "color": { + "text": "var(--wp--preset--color--contrast)" + } + }, + "h2": { + "color": { + "text": "var(--wp--preset--color--contrast)" + } + }, + "h3": { + "color": { + "text": "var(--wp--preset--color--primary)" + } + }, + "h4": { + "color": { + "text": "var(--wp--preset--color--primary)" + } + }, + "h5": { + "color": { + "text": "var(--wp--preset--color--primary)" + } + }, + "h6": { + "color": { + "text": "var(--wp--preset--color--primary)" + } + }, + "heading": { + "color": { + "text": "var(--wp--preset--color--primary)" + } + }, + "link": { + "color": { + "text": "var(--wp--preset--color--primary)" + }, + ":hover": { + "color": { + "text":"var(--wp--preset--color--tertiary)" + } + }, + ":focus": { + "color": { + "text":"var(--wp--preset--color--tertiary)" + } + }, + ":active": { + "color": { + "text": "var(--wp--preset--color--tertiary)" + } + } + } + } + } +} diff --git a/wp-content/themes/twentytwentythree/styles/pitch.json b/wp-content/themes/twentytwentythree/styles/pitch.json new file mode 100644 index 0000000..b8283d7 --- /dev/null +++ b/wp-content/themes/twentytwentythree/styles/pitch.json @@ -0,0 +1,242 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.5/theme.json", + "version": 2, + "title": "Pitch", + "settings": { + "color": { + "palette": [ + { + "color": "#202124", + "name": "Base", + "slug": "base" + }, + { + "color": "#e8eaed", + "name": "Contrast", + "slug": "contrast" + }, + { + "color": "#e3cbc0", + "name": "Primary", + "slug": "primary" + }, + { + "color": "#876C3A", + "name": "Secondary", + "slug": "secondary" + }, + { + "color": "#303134", + "name": "Tertiary", + "slug": "tertiary" + } + ] + }, + "layout": { + "contentSize": "min(640px, 90vw)", + "wideSize": "90vw" + }, + "spacing": { + "spacingScale": { + "steps": 7 + }, + "spacingSizes": [ + { + "size": "calc(8px + 1.5625vw)", + "slug": "20", + "name": "1" + }, + { + "size": "calc(12px + 1.5625vw)", + "slug": "30", + "name": "2" + }, + { + "size": "calc(16px + 1.5625vw)", + "slug": "40", + "name": "3" + }, + { + "size": "calc(20px + 1.5625vw)", + "slug": "50", + "name": "4" + }, + { + "size": "calc(24px + 1.5625vw)", + "slug": "60", + "name": "5" + }, + { + "size": "calc(28px + 1.5625vw)", + "slug": "70", + "name": "6" + }, + { + "size": "calc(32px + 1.5625vw)", + "slug": "80", + "name": "7" + } + ] + }, + "typography": { + "fontSizes": [ + { + "size": "0.85rem", + "fluid": { + "min": "0.85rem", + "max": "1rem" + }, + "slug": "small", + "name": "small" + }, + { + "size": "1.1rem", + "fluid": { + "min": "1.1rem", + "max": "1.4rem" + }, + "slug": "medium", + "name": "Medium" + }, + { + "size": "1.999rem", + "fluid": { + "min": "1.999rem", + "max": "2.827rem" + }, + "slug": "large", + "name": "Large" + }, + { + "size": "2.827rem", + "fluid": { + "min": "2.827rem", + "max": "3.998rem" + }, + "slug": "x-large", + "name": "Extra Large" + }, + { + "size": "3.2rem", + "fluid": { + "min": "3.2rem", + "max": "5.2rem" + }, + "slug": "xx-large", + "name": "2X Large" + } + ] + } + }, + "styles": { + "blocks": { + "core/separator": { + "border": { + "color":"var(--wp--preset--color--tertiary)", + "width": "2px" + } + }, + "core/site-title": { + "typography": { + "fontSize": "var(--wp--preset--font-size--medium)", + "fontStyle": "normal", + "fontWeight": "600" + } + } + }, + "elements": { + "button": { + "border": { + "radius": "0", + "style": "solid", + "width": "2px", + "color": "var(--wp--preset--color--primary)" + }, + "color": { + "background": "var(--wp--preset--color--primary)", + "text": "var(--wp--preset--color--base)" + }, + "spacing": { + "padding": { + "top": "min(1.125rem, 3vw) !important", + "right": "min(2.125rem, 5vw) !important", + "bottom": "min(1.125rem, 3vw) !important", + "left": "min(2.125rem, 5vw) !important" + } + }, + "typography": { + "fontSize": "var(--wp--preset--font-size--small)", + "fontWeight": "600", + "textTransform": "uppercase", + "letterSpacing": "0.01em" + }, + ":hover": { + "border": { + "color": "var(--wp--preset--color--contrast)" + }, + "color": { + "background": "var(--wp--preset--color--contrast)", + "text": "var(--wp--preset--color--tertiary)" + } + }, + ":focus": { + "border": { + "color": "var(--wp--preset--color--contrast)" + }, + "color": { + "background": "var(--wp--preset--color--contrast)", + "text": "var(--wp--preset--color--tertiary)" + } + }, + ":active": { + "border": { + "color": "var(--wp--preset--color--contrast)" + }, + "color": { + "background": "var(--wp--preset--color--contrast)", + "text": "var(--wp--preset--color--tertiary)" + } + }, + ":visited": { + "color": { + "text": "var(--wp--preset--color--base)" + } + } + }, + "h1": { + "typography": { + "fontSize": "var(--wp--preset--font-size--xx-large)", + "lineHeight": "1.1" + } + }, + "h2": { + "typography": { + "fontSize": "var(--wp--preset--font-size--x-large)", + "lineHeight": "1.1" + } + }, + "h3": { + "typography": { + "fontSize": "var(--wp--preset--font-size--large)" + } + }, + "heading": { + "typography": { + "fontWeight": "500" + } + } + }, + "spacing": { + "blockGap": "var(--wp--preset--spacing--40)", + "padding": { + "right": "var(--wp--preset--spacing--70)", + "left": "var(--wp--preset--spacing--70)" + } + }, + "typography": { + "fontFamily": "var(--wp--preset--font-family--inter)", + "fontSize": "var(--wp--preset--font-size--medium)", + "lineHeight": "1.7" + } + } +} diff --git a/wp-content/themes/twentytwentythree/styles/sherbet.json b/wp-content/themes/twentytwentythree/styles/sherbet.json new file mode 100644 index 0000000..6e500ee --- /dev/null +++ b/wp-content/themes/twentytwentythree/styles/sherbet.json @@ -0,0 +1,243 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.5/theme.json", + "version": 2, + "title": "Sherbet", + "settings": { + "color": { + "duotone": [ + { + "colors": [ + "#FF99FF", + "#FFFF99", + "#99FFFF" + ], + "name": "Default filter", + "slug": "default-filter" + } + ], + "gradients": [ + { + "gradient": "linear-gradient(135deg, var(--wp--preset--color--primary) 0%, var(--wp--preset--color--secondary) 50%, var(--wp--preset--color--tertiary) 100%)", + "name": "Primary to Secondary to Tertiary", + "slug": "primary-secondary-tertiary" + }, + { + "gradient": "linear-gradient(135deg, var(--wp--preset--color--primary) 0%, var(--wp--preset--color--secondary) 50%, var(--wp--preset--color--tertiary) 100%) fixed", + "name": "Primary to Secondary to Tertiary Fixed", + "slug": "primary-secondary-tertiary-fixed" + }, + { + "gradient": "linear-gradient(135deg, var(--wp--preset--color--tertiary) 0%, var(--wp--preset--color--secondary) 50%, var(--wp--preset--color--primary) 100%) fixed", + "name": "Tertiary to Secondary to Primary Fixed", + "slug": "tertiary-secondary-primary-fixed" + } + ], + "palette": [ + { + "color": "#FFFFFF", + "name": "Base", + "slug": "base" + }, + { + "color": "#000000", + "name": "Contrast", + "slug": "contrast" + }, + { + "color": "#FFCCFF", + "name": "Primary", + "slug": "primary" + }, + { + "color": "#FFFFCC", + "name": "Secondary", + "slug": "secondary" + }, + { + "color": "#CCFFFF", + "name": "Tertiary", + "slug": "tertiary" + } + ] + }, + "typography": { + "fontSizes": [ + { + "fluid": false, + "size": "0.75rem", + "slug": "x-small" + }, + { + "fluid": { + "min": "0.875rem", + "max": "1rem" + }, + "size": "1rem", + "slug": "small" + }, + { + "fluid": { + "min": "1rem", + "max": "1.125rem" + }, + "size": "1.125rem", + "slug": "medium" + }, + { + "fluid": { + "min": "1.5rem", + "max": "1.75rem" + }, + "size": "1.75rem", + "slug": "large" + }, + { + "fluid": { + "min": "2rem", + "max": "2.25rem" + }, + "size": "2.25rem", + "slug": "x-large" + }, + { + "fluid": { + "min": "2.5rem", + "max": "2.75rem" + }, + "size": "2.75rem", + "slug": "xx-large" + } + ] + } + }, + "styles": { + "blocks": { + "core/comments": { + "elements": { + "link": { + ":active": { + "color": { + "text": "var(--wp--preset--color--contrast)" + } + } + } + } + }, + "core/comment-author-name": { + "typography": { + "fontSize": "var(--wp--preset--font-size--medium)", + "textTransform": "initial" + } + }, + "core/comment-content": { + "typography": { + "fontSize": "var(--wp--preset--font-size--medium)", + "textTransform": "initial" + } + }, + "core/navigation": { + "typography": { + "fontSize": "var(--wp--preset--font-size--small)", + "fontWeight": "500", + "textTransform": "uppercase" + } + }, + "core/post-content": { + "elements": { + "link": { + "color": { + "text": "var(--wp--preset--color--contrast)" + }, + ":active": { + "color": { + "text": "var(--wp--preset--color--contrast)" + } + } + } + } + }, + "core/post-date": { + "typography": { + "textTransform": "uppercase" + } + }, + "core/post-featured-image": { + "filter": { + "duotone": "var(--wp--preset--duotone--default-filter)" + }, + "border": { + "color": "var(--wp--preset--color--tertiary)", + "style": "solid" + } + }, + "core/post-title": { + "typography": { + "fontWeight": "500", + "textTransform": "uppercase" + } + }, + "core/site-title": { + "typography": { + "fontWeight": "500" + } + }, + "core/template-part": { + "typography": { + "fontSize": "var(--wp--preset--font-size--x-small)", + "fontWeight": "400", + "textTransform": "uppercase" + } + } + }, + "color": { + "gradient": "var(--wp--preset--gradient--primary-secondary-tertiary)" + }, + "elements": { + "button": { + "border": { + "color": "var(--wp--preset--color--contrast)", + "radius": "99999px", + "style": "solid", + "width": "2px" + }, + "color": { + "background": "var(--wp--preset--color--base)", + "gradient": "var(--wp--preset--gradient--primary-secondary-tertiary-fixed)", + "text": "var(--wp--preset--color--contrast)" + }, + "typography": { + "fontSize": "var(--wp--preset--font-size--x-small)", + "fontWeight": "400", + "textTransform": "uppercase" + }, + ":hover": { + "color": { + "gradient": "var(--wp--preset--gradient--tertiary-secondary-primary-fixed)", + "text": "var(--wp--preset--color--contrast)" + } + }, + ":focus": { + "color": { + "background": "var(--wp--preset--color--contrast)", + "gradient": "none" + } + }, + ":active": { + "color": { + "background": "var(--wp--preset--color--contrast)", + "gradient": "none" + } + } + }, + "heading": { + "typography": { + "fontWeight": "500" + } + } + }, + "typography": { + "fontSize": "var(--wp--preset--font-size--small)", + "fontFamily": "var(--wp--preset--font-family--inter)" + } + } +} diff --git a/wp-content/themes/twentytwentythree/styles/whisper.json b/wp-content/themes/twentytwentythree/styles/whisper.json new file mode 100644 index 0000000..c92cce3 --- /dev/null +++ b/wp-content/themes/twentytwentythree/styles/whisper.json @@ -0,0 +1,587 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.5/theme.json", + "version": 2, + "title": "Whisper", + "settings": { + "color": { + "palette": [ + { + "color": "#E5E7F2", + "name": "Base", + "slug": "base" + }, + { + "color": "#47484B", + "name": "Contrast", + "slug": "contrast" + }, + { + "color": "#B50B3E", + "name": "Primary", + "slug": "primary" + }, + { + "color": "#0B0033", + "name": "Secondary", + "slug": "secondary" + }, + { + "color": "#F9F9FB", + "name": "Tertiary", + "slug": "tertiary" + } + ] + }, + "layout": { + "contentSize": "710px", + "wideSize": "1200px" + }, + "typography": { + "fontSizes": [ + { + "fluid": { + "min": "0.875rem", + "max": "1rem" + }, + "size": "1rem", + "slug": "small" + }, + { + "fluid": { + "min": "1rem", + "max": "1.187rem" + }, + "size": "1.187rem", + "slug": "medium" + }, + { + "fluid": { + "min": "1.187rem", + "max": "1.3125rem" + }, + "size": "1.3125rem", + "slug": "large" + }, + { + "fluid": { + "min": "1.562rem", + "max": "2rem" + }, + "size": "2rem", + "slug": "x-large" + }, + { + "fluid": { + "min": "3.5rem", + "max": "5.7rem" + }, + "size": "5.7rem", + "slug": "xx-large" + } + ] + } + }, + "styles": { + "blocks": { + "core/image": { + "elements": { + "link": { + "border": { + "width": "0" + }, + ":hover": { + "color": { + "background": "transparent" + } + } + } + } + }, + "core/navigation": { + "color": { + "text": "var(--wp--preset--color--contrast)" + }, + "elements": { + "link": { + "border": { + "bottom": { + "color": "transparent", + "style": "solid", + "width": "0.2ch" + } + }, + "color": { + "text": "var(--wp--preset--color--contrast)" + }, + ":hover": { + "border": { + "color": "var(--wp--preset--color--primary)" + }, + "color": { + "background": "transparent", + "text": "var(--wp--preset--color--secondary)" + }, + "typography": { + "textDecoration": "none" + } + }, + ":focus": { + "typography": { + "textDecoration": "none" + } + }, + ":active": { + "typography": { + "textDecoration": "none" + } + }, + "typography": { + "textDecoration": "none" + } + } + }, + "typography": { + "fontSize": "var(--wp--preset--font-size--large)" + } + }, + "core/navigation-submenu": { + "color": { + "text": "var(--wp--preset--color--primary)" + } + }, + "core/post-content": { + "elements": { + "link": { + ":hover": { + "border": { + "color": "var(--wp--preset--color--contrast)" + }, + "color": { + "background": "var(--wp--preset--color--tertiary)" + }, + "typography": { + "textDecoration": "none" + } + } + } + } + }, + "core/post-date": { + "elements": { + "link": { + ":hover": { + "border": { + "color": "var(--wp--preset--color--contrast)" + }, + "color": { + "background": "var(--wp--preset--color--tertiary)" + }, + "typography": { + "textDecoration": "none" + } + } + } + } + }, + "core/post-featured-image": { + "elements": { + "link": { + "border": { + "width": "0" + }, + ":hover": { + "color": { + "background": "transparent" + } + } + } + } + }, + "core/post-title": { + "elements": { + "link": { + "border": { + "width": "0 !important" + }, + ":hover": { + "color": { + "text": "var(--wp--preset--color--primary)" + } + }, + ":focus": { + "color": { + "text": "var(--wp--preset--color--primary)" + } + }, + ":active": { + "color": { + "text": "var(--wp--preset--color--primary)" + } + } + } + } + }, + "core/pullquote": { + "border": { + "color": "var(--wp--preset--color--contrast)", + "style": "double", + "width": "6px" + }, + "color": { + "text": "var(--wp--preset--color--secondary)" + } + }, + "core/quote": { + "border": { + "color": "var(--wp--preset--color--contrast)", + "style": "double", + "width": "0 0 0 6px" + }, + "color": { + "text": "var(--wp--preset--color--secondary)" + }, + "spacing": { + "margin": { + "left": "var(--wp--preset--spacing--30)" + }, + "padding": { + "left": "var(--wp--preset--spacing--30)" + } + } + }, + "core/query-pagination": { + "elements": { + "link": { + ":hover": { + "border": { + "color": "var(--wp--preset--color--contrast)" + }, + "color": { + "background": "var(--wp--preset--color--tertiary)" + }, + "typography": { + "textDecoration": "none" + } + }, + ":active": { + "border": { + "color": "var(--wp--preset--color--base)", + "width": "0 0 2px 0" + } + } + } + } + }, + "core/separator": { + "border": { + "color": "var(--wp--preset--color--contrast)", + "style": "double", + "width": "6px 0 0 0" + } + }, + "core/site-logo": { + "elements": { + "link": { + "border": { + "width": "0" + } + } + } + }, + "core/site-title": { + "elements": { + "link": { + "border": { + "color": "transparent" + }, + "color": { + "text": "var(--wp--preset--color--primary)" + }, + ":hover": { + "border": { + "color": "var(--wp--preset--color--primary)" + }, + "color": { + "background": "transparent" + }, + "typography": { + "textDecoration": "none" + } + }, + ":focus": { + "typography": { + "textDecoration": "none" + } + }, + ":active": { + "border": { + "color": "var(--wp--preset--color--primary)" + }, + "color": { + "background": "transparent" + }, + "typography": { + "textDecoration": "none" + } + }, + "typography": { + "textDecoration": "none" + } + } + }, + "typography": { + "fontFamily": "var(--wp--preset--font-family--dm-sans)", + "fontSize": "var(--wp--preset--font-size--large)", + "fontWeight": "700", + "letterSpacing": "-0.01em", + "lineHeight": "1.4", + "textTransform": "capitalize" + } + }, + "core/comment-author-name":{ + "elements": { + "link": { + ":hover": { + "typography": { + "textDecoration": "none" + } + }, + ":focus": { + "typography": { + "textDecoration": "none" + } + } + } + } + }, + "core/comment-date": { + "elements": { + "link": { + ":hover": { + "typography": { + "textDecoration": "none" + } + }, + ":focus": { + "typography": { + "textDecoration": "none" + } + } + } + } + }, + "core/comment-edit-link": { + "elements": { + "link": { + ":hover": { + "typography": { + "textDecoration": "none" + } + }, + ":focus": { + "typography": { + "textDecoration": "none" + } + } + } + } + } + }, + "elements": { + "button": { + "border": { + "color": "var(--wp--preset--color--primary)", + "radius": "10px", + "style": "solid", + "width": "2px 2px 6px 2px !important" + }, + "color": { + "background": "transparent", + "text": "var(--wp--preset--color--primary)" + }, + "spacing": { + "padding": { + "top": "min(1rem, 3vw) !important", + "right": "min(2.75rem, 6vw) !important", + "bottom": "min(1rem, 3vw) !important", + "left": "min(2.75rem, 6vw) !important" + } + }, + "typography": { + "fontWeight": "700", + "letterSpacing": "1px", + "textTransform": "uppercase" + }, + ":hover": { + "border": { + "color": "var(--wp--preset--color--secondary)", + "width": "2px 2px 4px 2px !important" + }, + "color": { + "background": "var(--wp--preset--color--tertiary)", + "text": "var(--wp--preset--color--secondary)" + }, + "spacing": { + "padding": { + "bottom": "min(calc(1rem + 2px), 3vw) !important" + } + } + }, + ":focus": { + "border": { + "color": "var(--wp--preset--color--secondary)", + "style": "dashed dashed double", + "width": "2px 2px 4px 2px !important" + }, + "color": { + "background": "var(--wp--preset--color--tertiary)", + "text": "var(--wp--preset--color--secondary)" + }, + "spacing": { + "padding": { + "bottom": "min(calc(1rem + 2px), 3vw) !important" + } + } + }, + ":active": { + "border": { + "color": "var(--wp--preset--color--secondary)", + "width": "2px 2px 4px 2px !important" + }, + "color": { + "background": "var(--wp--preset--color--tertiary)", + "text": "var(--wp--preset--color--secondary)" + }, + "spacing": { + "padding": { + "bottom": "min(calc(1rem + 2px), 3vw) !important" + } + } + }, + ":visited": { + "color": { + "text": "var(--wp--preset--color--primary)" + } + } + }, + "cite": { + "typography": { + "fontFamily": "var(--wp--preset--font-family--source-serif-pro)" + } + }, + "h1": { + "typography": { + "fontSize": "clamp(4.21rem, 1.43vw + 3.85rem, 5rem)", + "fontWeight": "300", + "letterSpacing": "-0.01em" + } + }, + "h2": { + "color": { + "text": "var(--wp--preset--color--secondary)" + }, + "typography": { + "fontSize": "clamp(3.16rem, 1.08vw + 2.89rem, 3.75rem)", + "fontWeight": "400", + "letterSpacing": "-0.01em" + } + }, + "h3": { + "color": { + "text": "var(--wp--preset--color--secondary)" + }, + "typography": { + "fontSize": "clamp(2.37rem, 0.81vw + 2.17rem, 2.81rem)", + "fontWeight": "500" + } + }, + "h4": { + "typography": { + "fontSize": "clamp(1.78rem, 0.61vw + 1.63rem, 2.11rem)", + "fontWeight": "600" + } + }, + "h5": { + "typography": { + "fontSize": "clamp(1.33rem, 0.45vw + 1.22rem, 1.58rem)", + "fontWeight": "700", + "letterSpacing": "1px" + } + }, + "h6": { + "typography": { + "fontSize": "clamp(1rem, 0.34vw + 0.91rem, 1.19rem)", + "fontWeight": "900", + "letterSpacing": "2px" + } + }, + "heading": { + "color": { + "text": "var(--wp--preset--color--secondary)" + }, + "typography": { + "fontFamily": "var(--wp--preset--font-family--source-serif-pro)" + } + }, + "link": { + "border": { + "color": "var(--wp--preset--color--primary)", + "style": "solid", + "width": "0 0 2px 0" + }, + "color": { + "text": "var(--wp--preset--color--secondary)" + }, + ":hover": { + "border": { + "color": "var(--wp--preset--color--contrast)" + }, + "color": { + "text": "var(--wp--preset--color--secondary)" + }, + "typography": { + "textDecoration": "none" + } + }, + ":focus": { + "border": { + "style": "dashed" + }, + "typography": { + "textDecoration": "none" + } + }, + ":active": { + "border": { + "width": "0" + }, + "color": { + "text": "var(--wp--preset--color--secondary)" + }, + "typography": { + "textDecoration": "none" + } + }, + "typography": { + "textDecoration": "none" + } + } + }, + "border": { + "color": "var(--wp--preset--color--tertiary)", + "style": "solid", + "width": "max(1vw, 0.5rem)" + }, + "spacing": { + "padding": { + "top": "var(--wp--preset--spacing--40)", + "right": "var(--wp--preset--spacing--30)", + "bottom": "var(--wp--preset--spacing--40)", + "left": "var(--wp--preset--spacing--30)" + } + }, + "typography": { + "fontFamily": "var(--wp--preset--font-family--dm-sans)" + } + } +} diff --git a/wp-content/themes/twentytwentythree/templates/404.html b/wp-content/themes/twentytwentythree/templates/404.html new file mode 100644 index 0000000..404842c --- /dev/null +++ b/wp-content/themes/twentytwentythree/templates/404.html @@ -0,0 +1,9 @@ + + + +
    + +
    + + + diff --git a/wp-content/themes/twentytwentythree/templates/archive.html b/wp-content/themes/twentytwentythree/templates/archive.html new file mode 100644 index 0000000..c09d1b9 --- /dev/null +++ b/wp-content/themes/twentytwentythree/templates/archive.html @@ -0,0 +1,29 @@ + + + +
    + + + +
    + + + + + + + + + + + + + + + +
    + +
    + + + diff --git a/wp-content/themes/twentytwentythree/templates/blank.html b/wp-content/themes/twentytwentythree/templates/blank.html new file mode 100644 index 0000000..3d3bd7c --- /dev/null +++ b/wp-content/themes/twentytwentythree/templates/blank.html @@ -0,0 +1 @@ + diff --git a/wp-content/themes/twentytwentythree/templates/blog-alternative.html b/wp-content/themes/twentytwentythree/templates/blog-alternative.html new file mode 100644 index 0000000..cd6c89b --- /dev/null +++ b/wp-content/themes/twentytwentythree/templates/blog-alternative.html @@ -0,0 +1,29 @@ + + + +
    + +
    + + +
    + +
    + +
    + + + +
    + +
    + +
    + + +
    + +
    + + + diff --git a/wp-content/themes/twentytwentythree/templates/home.html b/wp-content/themes/twentytwentythree/templates/home.html new file mode 100644 index 0000000..54c5101 --- /dev/null +++ b/wp-content/themes/twentytwentythree/templates/home.html @@ -0,0 +1,35 @@ + + + +
    + + + +
    + + + + + + + + + + + + + + + +
    + + + + + + + +
    + + + diff --git a/wp-content/themes/twentytwentythree/templates/index.html b/wp-content/themes/twentytwentythree/templates/index.html new file mode 100644 index 0000000..bed3d1e --- /dev/null +++ b/wp-content/themes/twentytwentythree/templates/index.html @@ -0,0 +1,27 @@ + + + +
    + +
    + + + + + + + + + + + + + + + +
    + +
    + + + diff --git a/wp-content/themes/twentytwentythree/templates/page.html b/wp-content/themes/twentytwentythree/templates/page.html new file mode 100644 index 0000000..c9408fc --- /dev/null +++ b/wp-content/themes/twentytwentythree/templates/page.html @@ -0,0 +1,17 @@ + + + +
    + +
    + + +
    + + + + +
    + + + diff --git a/wp-content/themes/twentytwentythree/templates/search.html b/wp-content/themes/twentytwentythree/templates/search.html new file mode 100644 index 0000000..53ec6ba --- /dev/null +++ b/wp-content/themes/twentytwentythree/templates/search.html @@ -0,0 +1,33 @@ + + + +
    + + + +
    + + + + + + + + + + + + + + + + + + + +
    + +
    + + + diff --git a/wp-content/themes/twentytwentythree/templates/single.html b/wp-content/themes/twentytwentythree/templates/single.html new file mode 100644 index 0000000..33d4dd4 --- /dev/null +++ b/wp-content/themes/twentytwentythree/templates/single.html @@ -0,0 +1,18 @@ + + + +
    + +
    + + +
    + + + + + +
    + + + diff --git a/wp-content/themes/twentytwentythree/theme.json b/wp-content/themes/twentytwentythree/theme.json new file mode 100644 index 0000000..4ac5ac8 --- /dev/null +++ b/wp-content/themes/twentytwentythree/theme.json @@ -0,0 +1,741 @@ +{ + "$schema": "https://schemas.wp.org/wp/6.5/theme.json", + "version": 2, + "customTemplates": [ + { + "name": "blank", + "postTypes": [ + "page", + "post" + ], + "title": "Blank" + }, + { + "name": "blog-alternative", + "postTypes": [ + "page" + ], + "title": "Blog (Alternative)" + }, + { + "name": "404", + "postTypes": [ + "page" + ], + "title": "404" + } + ], + "settings": { + "appearanceTools": true, + "color": { + "palette": [ + { + "color": "#ffffff", + "name": "Base", + "slug": "base" + }, + { + "color": "#000000", + "name": "Contrast", + "slug": "contrast" + }, + { + "color": "#9DFF20", + "name": "Primary", + "slug": "primary" + }, + { + "color": "#345C00", + "name": "Secondary", + "slug": "secondary" + }, + { + "color": "#F6F6F6", + "name": "Tertiary", + "slug": "tertiary" + } + ] + }, + "layout": { + "contentSize": "650px", + "wideSize": "1200px" + }, + "spacing": { + "spacingScale": { + "steps": 0 + }, + "spacingSizes": [ + { + "size": "clamp(1.5rem, 5vw, 2rem)", + "slug": "30", + "name": "1" + }, + { + "size": "clamp(1.8rem, 1.8rem + ((1vw - 0.48rem) * 2.885), 3rem)", + "slug": "40", + "name": "2" + }, + { + "size": "clamp(2.5rem, 8vw, 4.5rem)", + "slug": "50", + "name": "3" + }, + { + "size": "clamp(3.75rem, 10vw, 7rem)", + "slug": "60", + "name": "4" + }, + { + "size": "clamp(5rem, 5.25rem + ((1vw - 0.48rem) * 9.096), 8rem)", + "slug": "70", + "name": "5" + }, + { + "size": "clamp(7rem, 14vw, 11rem)", + "slug": "80", + "name": "6" + } + ], + "units": [ + "%", + "px", + "em", + "rem", + "vh", + "vw" + ] + }, + "typography": { + "dropCap": false, + "fluid": true, + "fontFamilies": [ + { + "fontFace": [ + { + "fontFamily": "DM Sans", + "fontStretch": "normal", + "fontStyle": "normal", + "fontWeight": "400", + "src": [ + "file:./assets/fonts/dm-sans/DMSans-Regular.woff2" + ] + }, + { + "fontFamily": "DM Sans", + "fontStretch": "normal", + "fontStyle": "italic", + "fontWeight": "400", + "src": [ + "file:./assets/fonts/dm-sans/DMSans-Regular-Italic.woff2" + ] + }, + { + "fontFamily": "DM Sans", + "fontStretch": "normal", + "fontStyle": "normal", + "fontWeight": "700", + "src": [ + "file:./assets/fonts/dm-sans/DMSans-Bold.woff2" + ] + }, + { + "fontFamily": "DM Sans", + "fontStretch": "normal", + "fontStyle": "italic", + "fontWeight": "700", + "src": [ + "file:./assets/fonts/dm-sans/DMSans-Bold-Italic.woff2" + ] + } + ], + "fontFamily": "\"DM Sans\", sans-serif", + "name": "DM Sans", + "slug": "dm-sans" + }, + { + "fontFace": [ + { + "fontDisplay": "block", + "fontFamily": "IBM Plex Mono", + "fontStretch": "normal", + "fontStyle": "normal", + "fontWeight": "300", + "src": [ + "file:./assets/fonts/ibm-plex-mono/IBMPlexMono-Light.woff2" + ] + }, + { + "fontDisplay": "block", + "fontFamily": "IBM Plex Mono", + "fontStretch": "normal", + "fontStyle": "normal", + "fontWeight": "400", + "src": [ + "file:./assets/fonts/ibm-plex-mono/IBMPlexMono-Regular.woff2" + ] + }, + { + "fontDisplay": "block", + "fontFamily": "IBM Plex Mono", + "fontStretch": "normal", + "fontStyle": "italic", + "fontWeight": "400", + "src": [ + "file:./assets/fonts/ibm-plex-mono/IBMPlexMono-Italic.woff2" + ] + }, + { + "fontDisplay": "block", + "fontFamily": "IBM Plex Mono", + "fontStretch": "normal", + "fontStyle": "normal", + "fontWeight": "700", + "src": [ + "file:./assets/fonts/ibm-plex-mono/IBMPlexMono-Bold.woff2" + ] + } + ], + "fontFamily": "'IBM Plex Mono', monospace", + "name": "IBM Plex Mono", + "slug": "ibm-plex-mono" + }, + { + "fontFace": [ + { + "fontFamily": "Inter", + "fontStretch": "normal", + "fontStyle": "normal", + "fontWeight": "200 900", + "src": [ + "file:./assets/fonts/inter/Inter-VariableFont_slnt,wght.ttf" + ] + } + ], + "fontFamily": "\"Inter\", sans-serif", + "name": "Inter", + "slug": "inter" + }, + { + "fontFamily": "-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif", + "name": "System Font", + "slug": "system-font" + }, + { + "fontFace": [ + { + "fontFamily": "Source Serif Pro", + "fontStretch": "normal", + "fontStyle": "normal", + "fontWeight": "200 900", + "src": [ + "file:./assets/fonts/source-serif-pro/SourceSerif4Variable-Roman.ttf.woff2" + ] + }, + { + "fontFamily": "Source Serif Pro", + "fontStretch": "normal", + "fontStyle": "italic", + "fontWeight": "200 900", + "src": [ + "file:./assets/fonts/source-serif-pro/SourceSerif4Variable-Italic.ttf.woff2" + ] + } + ], + "fontFamily": "\"Source Serif Pro\", serif", + "name": "Source Serif Pro", + "slug": "source-serif-pro" + } + ], + "fontSizes": [ + { + "fluid": { + "min": "0.875rem", + "max": "1rem" + }, + "size": "1rem", + "slug": "small" + }, + { + "fluid": { + "min": "1rem", + "max": "1.125rem" + }, + "size": "1.125rem", + "slug": "medium" + }, + { + "fluid": { + "min": "1.75rem", + "max": "1.875rem" + }, + "size": "1.75rem", + "slug": "large" + }, + { + "fluid": false, + "size": "2.25rem", + "slug": "x-large" + }, + { + "fluid": { + "min": "6.1rem", + "max": "10rem" + }, + "size": "10rem", + "slug": "xx-large" + } + ] + }, + "useRootPaddingAwareAlignments": true + }, + "styles": { + "blocks": { + "core/navigation": { + "elements": { + "link": { + ":hover": { + "typography": { + "textDecoration": "underline" + } + }, + ":focus": { + "typography": { + "textDecoration": "underline dashed" + } + }, + ":active": { + "typography": { + "textDecoration": "none" + } + }, + "typography": { + "textDecoration": "none" + } + } + }, + "typography": { + "fontSize": "var(--wp--preset--font-size--small)" + } + }, + "core/post-author": { + "typography": { + "fontSize": "var(--wp--preset--font-size--small)" + } + }, + "core/post-content": { + "elements": { + "link": { + "color": { + "text": "var(--wp--preset--color--secondary)" + } + } + } + }, + "core/post-excerpt": { + "typography": { + "fontSize": "var(--wp--preset--font-size--medium)" + } + }, + "core/post-date": { + "typography": { + "fontSize": "var(--wp--preset--font-size--small)", + "fontWeight": "400" + }, + "elements": { + "link": { + "typography": { + "textDecoration": "none" + }, + ":hover": { + "typography": { + "textDecoration": "underline" + } + } + } + } + }, + "core/post-terms": { + "typography": { + "fontSize": "var(--wp--preset--font-size--small)" + } + }, + "core/post-title": { + "spacing": { + "margin": { + "bottom": "1.25rem", + "top": "1.25rem" + } + }, + "typography": { + "fontWeight": "400" + }, + "elements": { + "link": { + ":hover": { + "typography": { + "textDecoration": "underline" + } + }, + ":focus": { + "typography": { + "textDecoration": "underline dashed" + } + }, + ":active": { + "color": { + "text": "var(--wp--preset--color--secondary)" + }, + "typography": { + "textDecoration": "none" + } + }, + "typography": { + "textDecoration": "none" + } + } + } + }, + "core/comments-title":{ + "typography": { + "fontSize": "var(--wp--preset--font-size--large)" + }, + "spacing": { + "margin": { + "bottom": "var(--wp--preset--spacing--40)" + } + } + }, + "core/comment-author-name": { + "elements": { + "link": { + ":hover": { + "typography": { + "textDecoration": "underline" + } + }, + ":focus": { + "typography": { + "textDecoration": "underline dashed" + } + }, + ":active": { + "color": { + "text": "var(--wp--preset--color--secondary)" + }, + "typography": { + "textDecoration": "none" + } + }, + "typography": { + "textDecoration": "none" + } + } + } + }, + "core/comment-date": { + "typography": { + "fontSize": "var(--wp--preset--font-size--small)" + }, + "elements": { + "link": { + ":hover": { + "typography": { + "textDecoration": "underline" + } + }, + ":focus": { + "typography": { + "textDecoration": "underline dashed" + } + }, + ":active": { + "color": { + "text": "var(--wp--preset--color--secondary)" + }, + "typography": { + "textDecoration": "none" + } + }, + "typography": { + "textDecoration": "none" + } + } + } + }, + "core/comment-edit-link": { + "typography": { + "fontSize": "var(--wp--preset--font-size--small)" + } + }, + "core/comment-reply-link": { + "typography": { + "fontSize": "var(--wp--preset--font-size--small)" + } + }, + "core/comments-pagination": { + "spacing": { + "margin": { + "top": "var(--wp--preset--spacing--40)" + } + }, + "elements": { + "link": { + "typography": { + "textDecoration": "none" + } + } + } + }, + "core/pullquote": { + "border": { + "style": "solid", + "width": "1px 0" + }, + "elements": { + "cite": { + "typography": { + "fontSize": "var(--wp--preset--font-size--small)", + "fontStyle": "normal", + "textTransform": "none" + } + } + }, + "typography": { + "lineHeight": "1.3" + }, + "spacing": { + "margin": { + "bottom": "var(--wp--preset--spacing--40) !important", + "top": "var(--wp--preset--spacing--40) !important" + } + } + }, + "core/query": { + "elements": { + "h2": { + "typography": { + "fontSize": "var(--wp--preset--font-size--x-large)" + } + } + } + }, + "core/query-pagination": { + "typography": { + "fontSize": "var(--wp--preset--font-size--small)", + "fontWeight": "400" + }, + "elements": { + "link": { + "typography": { + "textDecoration": "none" + }, + ":hover": { + "typography": { + "textDecoration": "underline" + } + } + } + } + }, + "core/quote": { + "border": { + "left": { + "color": "inherit", + "style": "solid", + "width": "1px" + } + }, + "elements": { + "cite": { + "typography": { + "fontSize": "var(--wp--preset--font-size--small)", + "fontStyle": "normal" + } + } + }, + "spacing": { + "padding": { + "left": "var(--wp--preset--spacing--30)", + "right": "var(--wp--preset--spacing--30)" + } + } + }, + "core/site-title": { + "elements": { + "link": { + ":hover": { + "typography": { + "textDecoration": "underline" + } + }, + ":focus": { + "typography": { + "textDecoration": "underline dashed" + } + }, + ":active": { + "color": { + "text": "var(--wp--preset--color--secondary)" + }, + "typography": { + "textDecoration": "none" + } + }, + "typography": { + "textDecoration": "none" + } + } + }, + "typography": { + "fontSize": "var(--wp--preset--font-size--medium)", + "fontWeight": "normal", + "lineHeight": "1.4" + } + }, + "core/separator": { + "css": " &:not(.is-style-wide):not(.is-style-dots):not(.alignwide):not(.alignfull){width: 100px}" + } + }, + "color": { + "background": "var(--wp--preset--color--base)", + "text": "var(--wp--preset--color--contrast)" + }, + "elements": { + "button": { + "border": { + "radius": "0" + }, + "color": { + "background": "var(--wp--preset--color--primary)", + "text": "var(--wp--preset--color--contrast)" + }, + ":hover": { + "color": { + "background": "var(--wp--preset--color--contrast)", + "text": "var(--wp--preset--color--base)" + } + }, + ":focus": { + "color": { + "background": "var(--wp--preset--color--contrast)", + "text": "var(--wp--preset--color--base)" + } + }, + ":active": { + "color": { + "background": "var(--wp--preset--color--secondary)", + "text": "var(--wp--preset--color--base)" + } + }, + ":visited": { + "color": { + "text": "var(--wp--preset--color--contrast)" + } + } + }, + "h1": { + "typography": { + "fontSize": "3.625rem", + "lineHeight": "1.2" + } + }, + "h2": { + "typography": { + "fontSize": "clamp(2.625rem, calc(2.625rem + ((1vw - 0.48rem) * 8.4135)), 3.25rem)", + "lineHeight": "1.2" + } + }, + "h3": { + "typography": { + "fontSize": "var(--wp--preset--font-size--x-large)" + } + }, + "h4": { + "typography": { + "fontSize": "var(--wp--preset--font-size--large)" + } + }, + "h5": { + "typography": { + "fontSize": "var(--wp--preset--font-size--medium)", + "fontWeight": "700", + "textTransform": "uppercase" + } + }, + "h6": { + "typography": { + "fontSize": "var(--wp--preset--font-size--medium)", + "textTransform": "uppercase" + } + }, + "heading": { + "typography": { + "fontWeight": "400", + "lineHeight": "1.4" + } + }, + "link": { + "color": { + "text": "var(--wp--preset--color--contrast)" + }, + ":hover": { + "typography": { + "textDecoration": "none" + } + }, + ":focus": { + "typography": { + "textDecoration": "underline dashed" + } + }, + ":active": { + "color": { + "text": "var(--wp--preset--color--secondary)" + }, + "typography": { + "textDecoration": "none" + } + }, + "typography": { + "textDecoration": "underline" + } + } + }, + "spacing": { + "blockGap": "1.5rem", + "padding": { + "top": "var(--wp--preset--spacing--40)", + "right": "var(--wp--preset--spacing--30)", + "bottom": "var(--wp--preset--spacing--40)", + "left": "var(--wp--preset--spacing--30)" + } + }, + "typography": { + "fontFamily": "var(--wp--preset--font-family--system-font)", + "fontSize": "var(--wp--preset--font-size--medium)", + "lineHeight": "1.6" + } + }, + "templateParts": [ + { + "area": "header", + "name": "header", + "title": "Header" + }, + { + "area": "footer", + "name": "footer", + "title": "Footer" + }, + { + "area": "uncategorized", + "name": "comments", + "title": "Comments Template Part" + }, + { + "area": "uncategorized", + "name": "post-meta", + "title": "Post Meta" + } + ] +}